Skip to content

tabs

tabs<TCollectionSlug, TFieldMeta, TTabs>(props): TabsField<TCollectionSlug, TFieldMeta, TTabs>

Defined in: packages/core/src/fields/tabs/config.ts:34

Groups fields under admin-form tabs. Legal in any fields record (a collection/global’s own, a group()’s, a group-shaped array()’s items, a blocks() block’s own). An unnamed tab hoists its fields to the parent level once getDataFields flattens this field; a named tab (name set) nests its fields as one group-shaped data field under name instead.

TCollectionSlug extends string = string

Types admin.condition (on the tabs() field itself and on each tab) against that resource’s real document — same convention as collapsible()/row()/text().

TFieldMeta extends object = { }

TTabs extends readonly TabInput<TCollectionSlug, Record<string, AdminField>>[] = readonly TabInput<TCollectionSlug, Record<string, AdminField>>[]

TabsFieldInput<TCollectionSlug, TFieldMeta, TTabs>

Tabs field configuration: tabs and admin options.

TabsField<TCollectionSlug, TFieldMeta, TTabs>

The resolved TabsField definition with defaults applied.

If tabs has no entries, or any tab has no fields.

defineCollection({
fields: {
info: tabs<typeof TABLE_SLUG_PAGES>({
tabs: [
{ label: "Content", fields: { title: text({ required: true }), body: richtext() } },
{ label: "SEO", name: "seo", fields: { metaTitle: text() } },
],
}),
},
})