Field Types

Complete reference for all form field types available in ArcanFlows.

Overview

ArcanFlows provides a comprehensive set of field types for building any kind of form. Each field type has specific configuration options and validation rules.

Text Fields

Text Input

Single-line text entry for short responses.

Configuration:

OptionDescription
LabelField label text
PlaceholderHint text
Default ValuePre-filled value
Min LengthMinimum characters
Max LengthMaximum characters
PatternRegex validation

Use Cases: Names, titles, short answers

json
{
  "type": "text",
  "label": "Full Name",
  "placeholder": "Enter your full name",
  "required": true,
  "minLength": 2,
  "maxLength": 100
}

Text Area

Multi-line text for longer responses.

Configuration:

OptionDescription
RowsVisible rows (height)
Min LengthMinimum characters
Max LengthMaximum characters
Resizenone, vertical, horizontal, both

Use Cases: Messages, descriptions, comments

json
{
  "type": "textarea",
  "label": "Message",
  "placeholder": "Type your message here...",
  "rows": 4,
  "maxLength": 2000
}

Email

Email address with built-in validation.

Configuration:

OptionDescription
Allow MultipleAccept comma-separated emails
Domain WhitelistOnly allow specific domains
Domain BlacklistBlock specific domains

Use Cases: Contact forms, registrations

json
{
  "type": "email",
  "label": "Email Address",
  "placeholder": "you@example.com",
  "required": true
}

Phone

Phone number with formatting.

Configuration:

OptionDescription
CountryDefault country code
FormatDisplay format
ValidateCheck if valid number

Use Cases: Contact info, verification

json
{
  "type": "phone",
  "label": "Phone Number",
  "defaultCountry": "US",
  "format": "national"
}

URL

Website URL with validation.

Configuration:

OptionDescription
Require ProtocolMust include http(s)://
Allowed Protocolshttp, https, ftp, etc.

Use Cases: Website links, social profiles

json
{
  "type": "url",
  "label": "Website",
  "placeholder": "https://example.com",
  "requireProtocol": true
}

Password

Secure password entry.

Configuration:

OptionDescription
Min LengthMinimum characters
Require UppercaseMust include A-Z
Require LowercaseMust include a-z
Require NumberMust include 0-9
Require SymbolMust include special char
Show StrengthDisplay strength meter

Use Cases: Account creation, authentication

json
{
  "type": "password",
  "label": "Password",
  "minLength": 8,
  "requireUppercase": true,
  "requireNumber": true,
  "showStrength": true
}

Number Fields

Number

Numeric input with optional constraints.

Configuration:

OptionDescription
MinMinimum value
MaxMaximum value
StepIncrement amount
DecimalsDecimal places allowed
FormatNumber format (thousand separators)

Use Cases: Quantities, amounts, ages

json
{
  "type": "number",
  "label": "Quantity",
  "min": 1,
  "max": 100,
  "step": 1,
  "defaultValue": 1
}

Currency

Money input with currency formatting.

Configuration:

OptionDescription
CurrencyUSD, EUR, GBP, etc.
MinMinimum amount
MaxMaximum amount
DecimalsDecimal places (usually 2)

Use Cases: Prices, budgets, donations

json
{
  "type": "currency",
  "label": "Budget",
  "currency": "USD",
  "min": 0,
  "max": 1000000,
  "decimals": 2
}

Slider

Visual range selection.

Configuration:

OptionDescription
MinMinimum value
MaxMaximum value
StepIncrement
Show ValueDisplay current value
Show LabelsShow min/max labels

Use Cases: Ratings, ranges, preferences

json
{
  "type": "slider",
  "label": "Satisfaction",
  "min": 0,
  "max": 10,
  "step": 1,
  "showValue": true
}

Rating

Star or numeric rating.

Configuration:

OptionDescription
MaxMaximum rating (e.g., 5 stars)
Iconstar, heart, thumb
Allow HalfAllow half values
Show LabelsLabel for each value

Use Cases: Reviews, feedback, surveys

json
{
  "type": "rating",
  "label": "Rate your experience",
  "max": 5,
  "icon": "star",
  "allowHalf": true
}

Selection Fields

Single selection from a list.

Configuration:

OptionDescription
OptionsList of choices
SearchableEnable search/filter
ClearableAllow clearing selection
PlaceholderDefault text

Use Cases: Countries, categories, single choice

json
{
  "type": "dropdown",
  "label": "Country",
  "placeholder": "Select a country",
  "searchable": true,
  "options": [
    { "value": "us", "label": "United States" },
    { "value": "uk", "label": "United Kingdom" },
    { "value": "ca", "label": "Canada" }
  ]
}

Multi-Select

Multiple selections from a list.

Configuration:

OptionDescription
OptionsList of choices
Min SelectionsMinimum required
Max SelectionsMaximum allowed
SearchableEnable search

Use Cases: Skills, interests, multiple categories

json
{
  "type": "multiselect",
  "label": "Skills",
  "minSelections": 1,
  "maxSelections": 5,
  "options": [
    { "value": "js", "label": "JavaScript" },
    { "value": "py", "label": "Python" },
    { "value": "go", "label": "Go" }
  ]
}

Radio Buttons

Single selection with all options visible.

Configuration:

OptionDescription
OptionsList of choices
Layoutvertical, horizontal
Other OptionAllow custom input

Use Cases: Yes/No, small option sets

json
{
  "type": "radio",
  "label": "Contact Preference",
  "layout": "vertical",
  "options": [
    { "value": "email", "label": "Email" },
    { "value": "phone", "label": "Phone" },
    { "value": "mail", "label": "Mail" }
  ]
}

Checkboxes

Multiple selections with all options visible.

Configuration:

OptionDescription
OptionsList of choices
Min SelectedMinimum required
Max SelectedMaximum allowed
Layoutvertical, horizontal, grid

Use Cases: Multiple features, agreements

json
{
  "type": "checkbox",
  "label": "Features",
  "layout": "vertical",
  "options": [
    { "value": "dark", "label": "Dark Mode" },
    { "value": "notif", "label": "Notifications" },
    { "value": "auto", "label": "Auto-save" }
  ]
}

Single Checkbox

Boolean yes/no selection.

Configuration:

OptionDescription
LabelCheckbox label
DefaultChecked by default

Use Cases: Terms acceptance, opt-ins

json
{
  "type": "single-checkbox",
  "label": "I agree to the terms and conditions",
  "required": true
}

Date & Time Fields

Date

Date selection with calendar picker.

Configuration:

OptionDescription
Min DateEarliest allowed date
Max DateLatest allowed date
FormatDisplay format
Disable DatesSpecific dates to disable
Disable WeekendsBlock Sat/Sun

Use Cases: Birthdays, appointments, deadlines

json
{
  "type": "date",
  "label": "Date of Birth",
  "maxDate": "today",
  "format": "MM/DD/YYYY"
}

Time

Time selection.

Configuration:

OptionDescription
Format12h or 24h
Min TimeEarliest time
Max TimeLatest time
IntervalMinute intervals (15, 30, etc.)

Use Cases: Appointment times, schedules

json
{
  "type": "time",
  "label": "Preferred Time",
  "format": "12h",
  "interval": 30,
  "minTime": "09:00",
  "maxTime": "17:00"
}

Date-Time

Combined date and time picker.

Configuration: Same as Date + Time combined.

Use Cases: Event scheduling, timestamps

json
{
  "type": "datetime",
  "label": "Event Date & Time",
  "minDate": "today",
  "format": "MM/DD/YYYY hh:mm A"
}

Date Range

Select start and end dates.

Configuration:

OptionDescription
Min RangeMinimum days between
Max RangeMaximum days between

Use Cases: Booking periods, date ranges

json
{
  "type": "daterange",
  "label": "Travel Dates",
  "minDate": "today",
  "minRange": 1,
  "maxRange": 30
}

File Fields

File Upload

Single or multiple file uploads.

Configuration:

OptionDescription
AcceptAllowed file types
Max SizeMaximum file size
MultipleAllow multiple files
Max FilesMaximum number of files

Use Cases: Documents, images, attachments

json
{
  "type": "file",
  "label": "Attachments",
  "accept": ".pdf,.doc,.docx",
  "maxSize": "10MB",
  "multiple": true,
  "maxFiles": 5
}

Image Upload

Image-specific upload with preview.

Configuration:

OptionDescription
AcceptImage types (jpg, png, etc.)
Max SizeMaximum file size
CropEnable cropping
Aspect RatioRequired ratio (1:1, 16:9)

Use Cases: Profile photos, product images

json
{
  "type": "image",
  "label": "Profile Photo",
  "accept": ".jpg,.jpeg,.png",
  "maxSize": "5MB",
  "crop": true,
  "aspectRatio": "1:1"
}

Signature

Digital signature capture.

Configuration:

OptionDescription
WidthCanvas width
HeightCanvas height
Pen ColorSignature color
BackgroundCanvas background

Use Cases: Contracts, agreements, approvals

json
{
  "type": "signature",
  "label": "Signature",
  "width": 400,
  "height": 150,
  "penColor": "#000000",
  "required": true
}

Special Fields

Hidden

Invisible field for passing data.

Configuration:

OptionDescription
ValueStatic or dynamic value

Use Cases: Tracking IDs, source, metadata

json
{
  "type": "hidden",
  "name": "source",
  "value": "{{url.utm_source}}"
}

Rich Text Editor

Formatted text input.

Configuration:

OptionDescription
ToolbarAvailable formatting options
Max LengthCharacter limit
Allow ImagesEnable image insertion

Use Cases: Long descriptions, formatted content

json
{
  "type": "richtext",
  "label": "Description",
  "toolbar": ["bold", "italic", "link", "list"],
  "maxLength": 5000
}

Address

Complete address input.

Configuration:

OptionDescription
CountriesAvailable countries
AutocompleteGoogle Places integration
FieldsWhich fields to show

Use Cases: Shipping, billing, locations

json
{
  "type": "address",
  "label": "Shipping Address",
  "autocomplete": true,
  "fields": ["street", "city", "state", "zip", "country"]
}

Layout Fields

Section

Group fields with a header.

json
{
  "type": "section",
  "title": "Contact Information",
  "description": "How can we reach you?",
  "collapsible": true
}

Divider

Visual separator between fields.

json
{
  "type": "divider",
  "style": "solid"
}

HTML Block

Custom HTML content.

json
{
  "type": "html",
  "content": "<p class='text-gray-500'>Additional information...</p>"
}

Page Break

Multi-step form page separator.

json
{
  "type": "pagebreak",
  "title": "Step 2: Payment Details"
}