AdminField
AdminField<
TFieldMeta> =TextField<VexResourceSlug,TFieldMeta> |EmailField<VexResourceSlug,TFieldMeta> |TextareaField<VexResourceSlug,TFieldMeta> |NumberField<VexResourceSlug,TFieldMeta> |CheckboxField<VexResourceSlug,TFieldMeta> |DateField<VexResourceSlug,TFieldMeta> |CommitTsField<VexResourceSlug,TFieldMeta> |SelectField<VexResourceSlug,TFieldMeta> |UrlField<VexResourceSlug,TFieldMeta> |ColorField<VexResourceSlug,TFieldMeta> |ArrayField<VexResourceSlug,ArrayType,TFieldMeta> |RelationshipField<VexResourceSlug,TFieldMeta> |UploadField<VexResourceSlug,TFieldMeta> |BlocksField<VexResourceSlug,TFieldMeta> |GroupField<VexResourceSlug,TFieldMeta> |RichTextField<VexResourceSlug,TFieldMeta> |JsonField<VexResourceSlug,TFieldMeta> |TabsField<VexResourceSlug,TFieldMeta> |CollapsibleField<VexResourceSlug,TFieldMeta> |RowField<VexResourceSlug,TFieldMeta> |UIField<VexResourceSlug,TFieldMeta>
Defined in: packages/core/src/fields/types.ts:84
Discriminated union of all field types in VexCMS.
Switch on field.type to narrow to a specific field type and access
its type-specific properties.
Currently includes:
TextField— single-line text inputNumberField— numeric value (price, quantity, rating, etc.)CheckboxField— boolean toggle (published state, feature flag, opt-in, etc.)DateField— Unix ms timestamp (publish date, expiry date, event time, etc.)SelectField— single-choice from a predefined set of optionsUrlField— validated URL stringColorField— CSS colour string, or avar(--token)reference whenthemeColorsis onRelationshipField— ConvexIdreference to a document in another collection
Type Parameters
Section titled “Type Parameters”TFieldMeta
Section titled “TFieldMeta”TFieldMeta extends BaseFieldMeta = BaseFieldMeta
Example
Section titled “Example”function handleField(field: AdminField) { switch (field.type) { case "text": // field is TextField break; }}