Skip to content

group

group<TCollectionSlug, TFieldKey, TFieldMeta>(options): GroupField<TCollectionSlug, TFieldMeta>

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

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)
  • required — false
  • defaultValue — {}
  • admin.hidden — false
  • admin.readOnly — false
  • admin.position — "main"
  • admin.width — "100%"
  • admin.cellAlignment — "left"

TCollectionSlug extends string = string

TFieldKey extends string = never

TFieldMeta extends BaseFieldMeta = BaseFieldMeta

GroupFieldInput<TCollectionSlug, TFieldKey, TFieldMeta>

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

GroupField<TCollectionSlug, 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(),
},
}),
},
})