Skip to content

group

group<TFieldMeta>(options): GroupField<TFieldMeta>

Defined in: packages/core/src/fields/group/config.ts:50

Creates a group field with all defaults applied.

Group fields store a named set of sub-fields as a single nested Convex v.object({...}). Each sub-field respects its own required setting — required sub-fields emit bare validators (e.g. v.string()); optional ones emit v.optional(v.string()).

Defaults applied:

  • label"" (inferred from the field key by defineCollection)
  • requiredfalse
  • defaultValue{}
  • admin.hiddenfalse
  • admin.readOnlyfalse
  • admin.position"main"
  • admin.width"full"
  • admin.cellAlignment"left"

TFieldMeta extends BaseFieldMeta = BaseFieldMeta

GroupFieldInput<TFieldMeta>

Group field configuration. fields is required; all other properties are optional.

GroupField<TFieldMeta>

Resolved group field definition with all defaults applied.

import { group, text, url } from "@vexcms/core"
posts: defineCollection({
fields: {
seo: group({
label: "SEO",
fields: {
title: text({ required: true }),
description: text(),
ogImage: url(),
},
}),
},
})