SelectFieldInput
Defined in: packages/core/src/fields/select/types.ts:53
Configuration input for a select() field.
Select fields store an array of chosen option values — status labels, categories, tags, or any enumerable set. All properties are optional; unset properties fall back to the defaults listed below.
Defaults applied by select():
{ type: "select", label: "", // inferred from the field key by defineCollection required: false, // field is optional by default defaultValue: [], // empty selection options: [], // no options configured hasMany: false, // single-select by default admin: { hidden: false, // visible in the admin form readOnly: false, // editable by default position: "main", // placed in the main content column, not the sidebar width: "full", // spans the full form width, not half cellAlignment: "left", // aligned left in the data table column }}Example
Section titled “Example”// Single-select statusstatus: select({ required: true, options: [ { label: "Draft", value: "draft" }, { label: "Published", value: "published" }, ],})
// Multi-select tags with badge colourstags: select({ hasMany: true, options: [ { label: "News", value: "news", badgeColor: "#3b82f6" }, { label: "Tutorial", value: "tutorial", badgeColor: "#10b981" }, ],})BaseFieldInput for shared properties (label, description, required, admin, index)
Extends
Section titled “Extends”BaseFieldInput<TFieldMeta>
Type Parameters
Section titled “Type Parameters”TFieldMeta
Section titled “TFieldMeta”TFieldMeta extends object = { }
Properties
Section titled “Properties”admin?
Section titled “admin?”
optionaladmin?:FieldAdminConfigInput
Defined in: packages/core/src/fields/baseTypes.ts:209
Admin UI configuration for this field.
Inherited from
Section titled “Inherited from”defaultValue?
Section titled “defaultValue?”
optionaldefaultValue?:string[]
Defined in: packages/core/src/fields/select/types.ts:61
Pre-filled value shown in the admin form when creating a new field. Does not apply to database values
Overrides
Section titled “Overrides”description?
Section titled “description?”
optionaldescription?:string
Defined in: packages/core/src/fields/baseTypes.ts:194
Semantic description of the field. Used in three places:
- Helper text rendered below the field input in the admin form UI.
- As the Zod
.meta({ description })value for form validation. - As the JSDoc comment on the generated document interface property.
To write a separate JSDoc comment, use interfaceDescription in addition.
Inherited from
Section titled “Inherited from”hasMany?
Section titled “hasMany?”
optionalhasMany?:boolean
Defined in: packages/core/src/fields/select/types.ts:67
index?
Section titled “index?”
optionalindex?:string
Defined in: packages/core/src/fields/baseTypes.ts:220
Create a database index on this field. The string value becomes the index name in Convex.
Example
Section titled “Example”slug: { type: "text", index: "by_slug", required: true }// Generates: .index("by_slug", ["slug"])Inherited from
Section titled “Inherited from”interfaceDescription?
Section titled “interfaceDescription?”
optionalinterfaceDescription?:string
Defined in: packages/core/src/fields/baseTypes.ts:196
The JSDoc comment on the generated document interface property
Inherited from
Section titled “Inherited from”BaseFieldInput.interfaceDescription
label?
Section titled “label?”
optionallabel?:string
Defined in: packages/core/src/fields/baseTypes.ts:185
Display label for the field in the admin form.
Inherited from
Section titled “Inherited from”
optionalmeta?:TFieldMeta
Defined in: packages/core/src/fields/baseTypes.ts:221
Inherited from
Section titled “Inherited from”optionInterfaceName?
Section titled “optionInterfaceName?”
optionaloptionInterfaceName?:string
Defined in: packages/core/src/fields/select/types.ts:68
options?
Section titled “options?”
optionaloptions?:object[]
Defined in: packages/core/src/fields/select/types.ts:62
badgeColor?
Section titled “badgeColor?”
optionalbadgeColor?:string
label:
string
value:
string
required?
Section titled “required?”
optionalrequired?:boolean
Defined in: packages/core/src/fields/baseTypes.ts:202
Whether this field is required.
Default: false