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()
A 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.