Example
FormValues are:
Forms.string()
A string value. Required by default.
Mutators
.default(value : string)
Sets a default value to return when no value is entered by the user.
.multiline()
Will cause the string input to be multiline.
A
<textarea /> rather than an <input type="text" /> in DOM-speak.url(options?: { protocol: RegExp; message?: string})
Validates that the string is a valid URL with an allowed protocol (default http/https) and a valid top-level domain. You can override the allowed protocol via options.protocol.
.optional()
By default, strings are required. This will change that to let null, undefined, and "" pass validation.
Forms.number()
A numeric value. Required by default.
Mutators
.default(value : number)
Sets a default value to return when no value is entered by the user.
.optional()
By default, numbers are required. This will change that to let null and undefined pass validation.
.min(min: number)
Provide a minimum value. Validation will fail if the user inputs number < min.
.max(max: number)
Provide a maximum value. Validation will fail if the user inputs number > max.
Forms.array(FormValue | Record<string, FormValue>)
An array of other form values or objects of form values.
They are referenced with a
name prop like "addresses[0].street".Mutators
.optional()
By default, arrays are required. This will change that to let undefined pass validation.
Forms.dateTime()
A date and time value. Required by default.
Mutators
.default(value: Date)
Sets a default value to return when no value is entered by the user.
.optional()
By default, dateTimes are required. This changes the behavior to allow undefined to pass validation.
.min(date: Date, options?: { message?: string })
Sets a minimum date. Validation will fail if the user inputs a date earlier than the given date.You can override the default error message with
options.message.
.max(date: Date, options?: { message?: string })
Sets a maximum date. Validation will fail if the user inputs a date later than the given date.You can override the default error message with
options.message.
Forms.plainDate()
A date string in ISO 8601 format (YYYY-MM-DD). Required by default.
Mutators
.default(value: string)
Sets a default value to return when no value is entered by the user.
.optional()
By default, plainDates are required. This changes the behavior to allow undefined to pass validation.
Forms.attioRecord()
An Attio record. Required by default.
Mutators
.default(value: AttioRecord)
Sets a default value to return when no value is entered by the user.
.optional()
By default, attioRecords are required. This changes the behavior to allow undefined to pass validation.
.object(config: { slug: ObjectSlug | Array<ObjectSlug> })
Limits which object types can be selected. Accepts either a single object slug via { slug: "people" } or an array of object slugs via { slug: ["people", "companies"] }. Valid object slugs include "people", "companies", "deals", "users", or any custom object slug.
Validation will fail if the user selects a record from an object type not included in the allowed list.