@aglyn/plugins-ai 1.0.0-beta.151 → 1.0.0-beta.152

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../libs/plugins/ai/src/lib/runtime/ai-palette.generated.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * GENERATED by tools/scripts/generate-ai-palette.mts from the registered\n * plugin bundles (AGL-2905). Do not edit; re-run the generator, and\n * `npm run check:ai-palette` fails CI when this file is stale.\n */\nimport type {\n AiNodeCapability,\n AiPaletteEntry,\n AiSurface,\n AiSurfaceDefinition,\n AiSxTokens,\n} from './ai-palette'\n\n/** Every registered component, by id. */\nexport const AI_PALETTE: Record<string, AiPaletteEntry> = {\n booking: {\n pluginId: 'bookings',\n kind: 'element',\n category: 'Input',\n displayName: 'Booking',\n summary: 'Service and time picker that books appointments.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n successMessage: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n successMessage: 'text',\n },\n propFields: {\n heading: 'text-field',\n successMessage: 'text-field',\n },\n textLimits: {\n heading: 200,\n successMessage: 200,\n },\n presets: ['Booking'],\n },\n cart: {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Cart',\n summary:\n 'The shopping cart — a badge icon with a slide-out drawer, or the full cart page.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['button', 'inline'],\n },\n checkoutLabel: {\n type: 'string',\n maxLength: 200,\n },\n showCoupon: {\n type: 'boolean',\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n checkoutLabel: 'text',\n emptyText: 'text',\n },\n propFields: {\n variant: 'select',\n checkoutLabel: 'text-field',\n showCoupon: 'checkbox',\n emptyText: 'text-field',\n },\n textLimits: {\n checkoutLabel: 200,\n emptyText: 200,\n },\n presets: ['Cart button', 'Cart page'],\n },\n collectionCategories: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Category Pills',\n summary: 'A pill per collection category, each filtering the listing.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n allLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n allLabel: 'text',\n },\n propFields: {\n collectionSlug: 'text-field',\n allLabel: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n allLabel: 200,\n },\n presets: ['Category Pills'],\n },\n collectionEntries: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Collection Entries',\n summary: 'Repeats its children once per entry in a content collection.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n entriesLimit: {\n type: 'string',\n maxLength: 200,\n },\n filterCategory: {\n type: 'string',\n maxLength: 200,\n },\n filterTag: {\n type: 'string',\n maxLength: 200,\n },\n perPage: {\n type: 'string',\n maxLength: 200,\n },\n page: {\n type: 'string',\n maxLength: 200,\n },\n firstPageOnly: {\n type: 'boolean',\n },\n search: {\n type: 'boolean',\n },\n searchMode: {\n type: 'string',\n enum: ['filter', 'suggest'],\n },\n searchPlaceholder: {\n type: 'string',\n maxLength: 200,\n },\n spacing: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n entriesLimit: 'text',\n filterCategory: 'text',\n filterTag: 'text',\n perPage: 'text',\n page: 'text',\n searchPlaceholder: 'text',\n spacing: 'text',\n },\n propFields: {\n collectionSlug: 'text-field',\n entriesLimit: 'text-field',\n filterCategory: 'text-field',\n filterTag: 'text-field',\n perPage: 'text-field',\n page: 'text-field',\n firstPageOnly: 'switch',\n search: 'switch',\n searchMode: 'select',\n searchPlaceholder: 'text-field',\n spacing: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n entriesLimit: 200,\n filterCategory: 200,\n filterTag: 200,\n perPage: 200,\n page: 200,\n searchPlaceholder: 200,\n spacing: 200,\n },\n presets: ['Collection Entries'],\n },\n collectionEntryAuthor: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Entry Author',\n summary: 'The author card for an entry — portrait, byline and bio.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n maxLength: 200,\n },\n bio: {\n type: 'string',\n maxLength: 2000,\n },\n image: {\n type: 'string',\n },\n pageUrl: {\n type: 'string',\n },\n url: {\n type: 'string',\n },\n showLinks: {\n type: 'boolean',\n },\n showBio: {\n type: 'boolean',\n },\n showAvatar: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n name: 'text',\n bio: 'text',\n image: 'media',\n pageUrl: 'url',\n url: 'url',\n },\n propFields: {\n name: 'text-field',\n bio: 'textarea',\n image: 'text-field',\n pageUrl: 'text-field',\n url: 'text-field',\n showLinks: 'switch',\n showBio: 'switch',\n showAvatar: 'switch',\n },\n textLimits: {\n name: 200,\n bio: 2000,\n },\n presets: ['Entry Author'],\n },\n collectionEntryBody: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Entry Body',\n summary: \"The current entry's markdown body, on an entry template.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n markdown: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n markdown: 'text',\n },\n propFields: {\n markdown: 'text-field',\n },\n textLimits: {\n markdown: 200,\n },\n presets: ['Entry Body'],\n },\n collectionEntryMeta: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Entry Meta',\n summary: 'The byline row for an entry — author, date, category and tags.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n date: {\n type: 'string',\n maxLength: 200,\n },\n dateFormat: {\n type: 'string',\n enum: ['default', 'monthYear', 'mediumDate', 'longDate', 'iso'],\n },\n author: {\n type: 'string',\n maxLength: 200,\n },\n category: {\n type: 'string',\n maxLength: 200,\n },\n tags: {\n type: 'string',\n maxLength: 200,\n },\n avatarImage: {\n type: 'string',\n maxLength: 200,\n },\n showDate: {\n type: 'boolean',\n },\n showCategory: {\n type: 'boolean',\n },\n showTags: {\n type: 'boolean',\n },\n authorPageUrl: {\n type: 'string',\n },\n linkAuthor: {\n type: 'boolean',\n },\n showAuthor: {\n type: 'boolean',\n },\n showAvatar: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n date: 'text',\n author: 'text',\n category: 'text',\n tags: 'text',\n avatarImage: 'text',\n authorPageUrl: 'url',\n },\n propFields: {\n date: 'text-field',\n dateFormat: 'select',\n author: 'text-field',\n category: 'text-field',\n tags: 'text-field',\n avatarImage: 'text-field',\n showDate: 'switch',\n showCategory: 'switch',\n showTags: 'switch',\n authorPageUrl: 'text-field',\n linkAuthor: 'switch',\n showAuthor: 'switch',\n showAvatar: 'switch',\n },\n textLimits: {\n date: 200,\n author: 200,\n category: 200,\n tags: 200,\n avatarImage: 200,\n },\n presets: ['Entry Meta'],\n },\n collectionRelated: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Related Posts',\n summary: \"Other entries sharing this one's category or tags.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n limit: {\n type: 'string',\n maxLength: 200,\n },\n layout: {\n type: 'string',\n enum: ['list', 'cards'],\n },\n columns: {\n type: 'string',\n maxLength: 200,\n },\n showCover: {\n type: 'boolean',\n },\n headingVariant: {\n type: 'string',\n enum: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n },\n titleVariant: {\n type: 'string',\n enum: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n },\n showDate: {\n type: 'boolean',\n },\n dateFormat: {\n type: 'string',\n enum: ['default', 'monthYear', 'mediumDate', 'longDate', 'iso'],\n },\n showCategory: {\n type: 'boolean',\n },\n showExcerpt: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n limit: 'text',\n columns: 'text',\n },\n propFields: {\n heading: 'text-field',\n limit: 'text-field',\n layout: 'select',\n columns: 'text-field',\n showCover: 'switch',\n headingVariant: 'select',\n titleVariant: 'select',\n showDate: 'switch',\n dateFormat: 'select',\n showCategory: 'switch',\n showExcerpt: 'switch',\n },\n textLimits: {\n heading: 200,\n limit: 200,\n columns: 200,\n },\n presets: ['Related Posts'],\n },\n collectionSearch: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Collection Search',\n summary:\n 'A search box for a content collection, with a suggestions dropdown.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n searchPlaceholder: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n searchPlaceholder: 'text',\n },\n propFields: {\n collectionSlug: 'text-field',\n searchPlaceholder: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n searchPlaceholder: 200,\n },\n presets: ['Collection Search'],\n },\n collectionShare: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Share Bar',\n summary: 'Share buttons for the current page, plus a copy link.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n },\n propFields: {\n heading: 'text-field',\n },\n textLimits: {\n heading: 200,\n },\n presets: ['Share Bar'],\n },\n contentAuthorProfile: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Author Profile',\n summary:\n 'Who an author page is about — portrait, name, role, bio and links.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n maxLength: 200,\n },\n bio: {\n type: 'string',\n maxLength: 2000,\n },\n image: {\n type: 'string',\n },\n jobTitle: {\n type: 'string',\n maxLength: 200,\n },\n worksFor: {\n type: 'string',\n maxLength: 200,\n },\n url: {\n type: 'string',\n },\n showLinks: {\n type: 'boolean',\n },\n showBio: {\n type: 'boolean',\n },\n showRole: {\n type: 'boolean',\n },\n showAvatar: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n name: 'text',\n bio: 'text',\n image: 'media',\n jobTitle: 'text',\n worksFor: 'text',\n url: 'url',\n },\n propFields: {\n name: 'text-field',\n bio: 'textarea',\n image: 'text-field',\n jobTitle: 'text-field',\n worksFor: 'text-field',\n url: 'text-field',\n showLinks: 'switch',\n showBio: 'switch',\n showRole: 'switch',\n showAvatar: 'switch',\n },\n textLimits: {\n name: 200,\n bio: 2000,\n jobTitle: 200,\n worksFor: 200,\n },\n presets: ['Author Profile'],\n },\n 'custom-html': {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Custom HTML',\n summary:\n 'Your own markup, sanitised on render, or isolated in a sandboxed iframe.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n html: {\n type: 'string',\n maxLength: 200,\n },\n css: {\n type: 'string',\n maxLength: 200,\n },\n embedMode: {\n type: 'boolean',\n },\n embedHeight: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n html: 'text',\n css: 'text',\n embedHeight: 'text',\n },\n propFields: {\n html: 'text-field',\n css: 'text-field',\n embedMode: 'checkbox',\n embedHeight: 'text-field',\n },\n textLimits: {\n html: 200,\n css: 200,\n embedHeight: 200,\n },\n presets: ['Custom HTML'],\n },\n 'customer-account': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Customer account',\n summary: 'Sign-in and account area — profile, addresses and order history.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n signedOutHeading: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n signedOutHeading: 'text',\n },\n propFields: {\n signedOutHeading: 'text-field',\n },\n textLimits: {\n signedOutHeading: 200,\n },\n presets: ['Customer account'],\n },\n dataTable: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Sections & Blocks',\n displayName: 'Table',\n summary:\n 'A grid of rows and columns — a feature matrix, a spec sheet, a comparison.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n headerRow: {\n type: 'boolean',\n },\n emphasizeColumn: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n emphasizeColumn: 'text',\n },\n propFields: {\n headerRow: 'checkbox',\n emphasizeColumn: 'text-field',\n },\n textLimits: {\n emphasizeColumn: 200,\n },\n presets: ['Table'],\n },\n div: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Document',\n summary:\n 'The page itself — the outermost element every other element sits in.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'main',\n 'header',\n 'footer',\n 'nav',\n 'aside',\n 'section',\n 'article',\n ],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n component: 'select',\n },\n textLimits: {},\n presets: [],\n },\n emailButton: {\n pluginId: 'email',\n kind: 'element',\n category: 'Input',\n displayName: 'Email button',\n summary: 'A call-to-action button that survives every mail client.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 40,\n },\n href: {\n type: 'string',\n },\n backgroundColor: {\n type: 'string',\n },\n color: {\n type: 'string',\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n href: 'url',\n },\n propFields: {\n children: 'text-field',\n href: 'text-field',\n backgroundColor: 'color-picker',\n color: 'color-picker',\n align: 'select',\n },\n textLimits: {\n children: 40,\n },\n presets: ['Email button'],\n },\n emailDivider: {\n pluginId: 'email',\n kind: 'element',\n category: 'Layout',\n displayName: 'Email divider',\n summary: 'A horizontal rule between email sections.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n color: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n color: 'color-picker',\n },\n textLimits: {},\n presets: ['Email divider'],\n },\n emailHtml: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email custom HTML',\n summary: 'Hand-written HTML for an email, used as-is.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n html: {\n type: 'string',\n maxLength: 2000,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n html: 'text',\n },\n propFields: {\n html: 'textarea',\n },\n textLimits: {\n html: 2000,\n },\n presets: ['Email custom HTML'],\n },\n emailImage: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email image',\n summary: 'An email-safe image, capped at 600px wide, optionally linked.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n src: {\n type: 'string',\n },\n alt: {\n type: 'string',\n maxLength: 200,\n },\n width: {\n type: 'string',\n maxLength: 200,\n },\n href: {\n type: 'string',\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n src: 'media',\n alt: 'text',\n width: 'text',\n href: 'url',\n },\n propFields: {\n src: 'text-field',\n alt: 'text-field',\n width: 'text-field',\n href: 'text-field',\n align: 'select',\n },\n textLimits: {\n alt: 200,\n width: 200,\n },\n presets: ['Email image'],\n },\n emailProduct: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email product',\n summary: 'A product card resolved at send time, so it never goes stale.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n buttonLabel: {\n type: 'string',\n maxLength: 40,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n buttonLabel: 'text',\n },\n propFields: {\n buttonLabel: 'text-field',\n },\n textLimits: {\n buttonLabel: 40,\n },\n presets: ['Email product'],\n },\n emailRichtext: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email rich text',\n summary: 'An HTML fragment in an email, sanitised on render.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n html: {\n type: 'string',\n maxLength: 2000,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n html: 'text',\n },\n propFields: {\n html: 'textarea',\n },\n textLimits: {\n html: 2000,\n },\n presets: ['Email rich text'],\n },\n emailSection: {\n pluginId: 'email',\n kind: 'element',\n category: 'Layout',\n displayName: 'Email section',\n summary: 'An email-safe band with its own background color and padding.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n backgroundColor: {\n type: 'string',\n },\n padding: {\n type: 'string',\n maxLength: 200,\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n padding: 'text',\n },\n propFields: {\n backgroundColor: 'color-picker',\n padding: 'text-field',\n align: 'select',\n },\n textLimits: {\n padding: 200,\n },\n presets: ['Email section'],\n },\n emailSpacer: {\n pluginId: 'email',\n kind: 'element',\n category: 'Layout',\n displayName: 'Email spacer',\n summary: 'Fixed vertical whitespace between email blocks.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n height: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n height: 'text',\n },\n propFields: {\n height: 'text-field',\n },\n textLimits: {\n height: 200,\n },\n presets: ['Email spacer'],\n },\n emailText: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email text',\n summary: 'A paragraph of email copy in one of the preset styles.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n variant: {\n type: 'string',\n enum: ['heading', 'subheading', 'body', 'caption'],\n },\n color: {\n type: 'string',\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n },\n propFields: {\n children: 'textarea',\n variant: 'select',\n color: 'color-picker',\n align: 'select',\n },\n textLimits: {\n children: 2000,\n },\n presets: ['Email text'],\n },\n eventList: {\n pluginId: 'events-calendar',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Event List',\n summary:\n 'Your published events, each marked up so search engines can show it.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n mode: {\n type: 'string',\n enum: ['past'],\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n maxItems: 'text',\n },\n propFields: {\n heading: 'text-field',\n mode: 'select',\n maxItems: 'text-field',\n },\n textLimits: {\n heading: 200,\n maxItems: 200,\n },\n presets: ['Event List'],\n },\n form: {\n pluginId: 'forms',\n kind: 'element',\n category: 'Forms',\n displayName: 'Form',\n summary:\n 'Collects its Form Fields and sends the answers to you, or into a dataset.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n formName: {\n type: 'string',\n maxLength: 200,\n },\n datasetName: {\n type: 'string',\n maxLength: 200,\n },\n submitLabel: {\n type: 'string',\n maxLength: 40,\n },\n successMessage: {\n type: 'string',\n maxLength: 200,\n },\n afterSubmit: {\n type: 'string',\n enum: ['message', 'redirect', 'reveal'],\n },\n redirectScreenId: {\n type: 'string',\n },\n redirectUrl: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n formName: 'text',\n datasetName: 'text',\n submitLabel: 'text',\n successMessage: 'text',\n redirectScreenId: 'screen',\n redirectUrl: 'url',\n },\n propFields: {\n formName: 'text-field',\n datasetName: 'text-field',\n submitLabel: 'text-field',\n successMessage: 'text-field',\n afterSubmit: 'select',\n redirectScreenId: 'screen-select',\n redirectUrl: 'text-field',\n },\n textLimits: {\n formName: 200,\n datasetName: 200,\n submitLabel: 40,\n successMessage: 200,\n },\n presets: ['Contact Form'],\n },\n formField: {\n pluginId: 'forms',\n kind: 'element',\n category: 'Forms',\n displayName: 'Form Field',\n summary:\n 'One input inside a form — text, select, radio, checkbox or rating.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n fieldName: {\n type: 'string',\n maxLength: 200,\n },\n label: {\n type: 'string',\n maxLength: 200,\n },\n placeholder: {\n type: 'string',\n maxLength: 200,\n },\n fieldType: {\n type: 'string',\n enum: [\n 'text',\n 'email',\n 'textarea',\n 'select',\n 'radio',\n 'checkbox',\n 'rating',\n ],\n },\n options: {\n type: 'string',\n maxLength: 2000,\n },\n required: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n fieldName: 'text',\n label: 'text',\n placeholder: 'text',\n options: 'text',\n },\n propFields: {\n fieldName: 'text-field',\n label: 'text-field',\n placeholder: 'text-field',\n fieldType: 'select',\n options: 'textarea',\n required: 'switch',\n },\n textLimits: {\n fieldName: 200,\n label: 200,\n placeholder: 200,\n options: 2000,\n },\n presets: ['Form Field', 'Marketing consent'],\n },\n functionInput: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Calculator Input',\n summary:\n 'Asks one parameter of the Calculator it sits in: a number box, a list, a switch, or quick-pick chips.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n parameter: {\n type: 'string',\n maxLength: 200,\n },\n control: {\n type: 'string',\n enum: ['auto', 'number', 'text', 'select', 'chips', 'switch'],\n },\n choices: {\n type: 'string',\n maxLength: 200,\n },\n label: {\n type: 'string',\n maxLength: 200,\n },\n hideLabel: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n parameter: 'text',\n choices: 'text',\n label: 'text',\n },\n propFields: {\n parameter: 'text-field',\n control: 'select',\n choices: 'text-field',\n label: 'text-field',\n hideLabel: 'switch',\n },\n textLimits: {\n parameter: 200,\n choices: 200,\n label: 200,\n },\n presets: ['Calculator Input'],\n },\n functionOutput: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Calculator Result',\n summary:\n 'Shows one value from the Calculator it sits in, updated as the visitor answers.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n maxLength: 200,\n },\n placeholder: {\n type: 'string',\n maxLength: 200,\n },\n element: {\n type: 'string',\n enum: ['div', 'p', 'span'],\n },\n announce: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n name: 'text',\n placeholder: 'text',\n },\n propFields: {\n name: 'text-field',\n placeholder: 'text-field',\n element: 'select',\n announce: 'switch',\n },\n textLimits: {\n name: 200,\n placeholder: 200,\n },\n presets: ['Calculator Result'],\n },\n functionScope: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Calculator',\n summary: 'A container bound to one of your functions.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n functionName: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n functionName: 'text',\n },\n propFields: {\n functionName: 'text-field',\n },\n textLimits: {\n functionName: 200,\n },\n presets: ['Calculator'],\n },\n functionShow: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Show When',\n summary:\n 'A container inside a Calculator that appears only while one of the function’s values is true, non-zero or non…',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n when: {\n type: 'string',\n maxLength: 200,\n },\n invert: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n when: 'text',\n },\n propFields: {\n when: 'text-field',\n invert: 'switch',\n },\n textLimits: {\n when: 200,\n },\n presets: ['Show When'],\n },\n functionWidget: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Function Widget',\n summary:\n 'Runs one of your no-code functions and shows the result — calculators, quotes.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n functionName: {\n type: 'string',\n maxLength: 200,\n },\n title: {\n type: 'string',\n maxLength: 200,\n },\n buttonLabel: {\n type: 'string',\n maxLength: 40,\n },\n resultLabel: {\n type: 'string',\n maxLength: 200,\n },\n outputs: {\n type: 'string',\n maxLength: 2000,\n },\n autoRun: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n functionName: 'text',\n title: 'text',\n buttonLabel: 'text',\n resultLabel: 'text',\n outputs: 'text',\n },\n propFields: {\n functionName: 'text-field',\n title: 'text-field',\n buttonLabel: 'text-field',\n resultLabel: 'text-field',\n outputs: 'textarea',\n autoRun: 'switch',\n },\n textLimits: {\n functionName: 200,\n title: 200,\n buttonLabel: 40,\n resultLabel: 200,\n outputs: 2000,\n },\n presets: ['Function Widget'],\n },\n gate: {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Members gate',\n summary: 'Shows its children only to entitled members.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n teaserText: {\n type: 'string',\n maxLength: 200,\n },\n ctaLabel: {\n type: 'string',\n maxLength: 200,\n },\n ctaHref: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n teaserText: 'text',\n ctaLabel: 'text',\n ctaHref: 'text',\n },\n propFields: {\n teaserText: 'text-field',\n ctaLabel: 'text-field',\n ctaHref: 'text-field',\n },\n textLimits: {\n teaserText: 200,\n ctaLabel: 200,\n ctaHref: 200,\n },\n presets: ['Members gate'],\n },\n 'gated-video': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Members video',\n summary:\n 'A video only entitled members can play, resuming where they left off.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n videoIndex: {\n type: 'string',\n maxLength: 200,\n },\n lockedText: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n videoIndex: 'text',\n lockedText: 'text',\n },\n propFields: {\n videoIndex: 'text-field',\n lockedText: 'text-field',\n },\n textLimits: {\n videoIndex: 200,\n lockedText: 200,\n },\n presets: ['Members video'],\n },\n icon: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Icon',\n summary: 'A single icon from the library, at the size and color you pick.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n iconId: {\n type: 'string',\n },\n size: {\n type: 'string',\n maxLength: 200,\n },\n color: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n size: 'text',\n color: 'text',\n },\n propFields: {\n iconId: 'icon-picker',\n size: 'text-field',\n color: 'text-field',\n },\n textLimits: {\n size: 200,\n color: 200,\n },\n presets: ['Icon'],\n },\n image: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Image',\n summary:\n 'A picture from your media library or any URL, with fit, size and an optional link.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n src: {\n type: 'string',\n },\n alt: {\n type: 'string',\n maxLength: 200,\n },\n decorative: {\n type: 'boolean',\n },\n title: {\n type: 'string',\n maxLength: 200,\n },\n objectFit: {\n type: 'string',\n enum: ['cover', 'contain', 'fill', 'none', 'scale-down'],\n },\n width: {\n type: 'string',\n },\n height: {\n type: 'string',\n },\n loading: {\n type: 'string',\n enum: ['lazy', 'eager'],\n },\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n src: 'media',\n alt: 'text',\n title: 'text',\n screenId: 'screen',\n href: 'url',\n },\n propFields: {\n src: 'text-field',\n alt: 'text-field',\n decorative: 'switch',\n title: 'text-field',\n objectFit: 'select',\n width: 'css-dimension',\n height: 'css-dimension',\n loading: 'select',\n screenId: 'screen-select',\n href: 'text-field',\n },\n textLimits: {\n alt: 200,\n title: 200,\n },\n presets: ['Image'],\n },\n languageSwitcher: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Language Switcher',\n summary: \"Links between this screen's translations.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['text', 'buttons'],\n },\n uppercase: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n variant: 'select',\n uppercase: 'checkbox',\n },\n textLimits: {},\n presets: ['Language Switcher'],\n },\n layoutSlot: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Layout Slot',\n summary:\n \"Marks where each bound screen's content renders inside this layout.\",\n acceptsChildren: false,\n restrictChildren: [\n 'limitedTo',\n {\n components: [],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n caption: {\n type: 'string',\n maxLength: 200,\n },\n component: {\n type: 'string',\n enum: ['main', 'div', 'section', 'article'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n caption: 'text',\n },\n propFields: {\n caption: 'text-field',\n component: 'select',\n },\n textLimits: {\n caption: 200,\n },\n presets: ['Layout Slot'],\n },\n markdown: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Markdown',\n summary: 'A whole document written as markdown.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n content: {\n type: 'string',\n maxLength: 2000,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n content: 'text',\n },\n propFields: {\n content: 'markdown',\n },\n textLimits: {\n content: 2000,\n },\n presets: ['Markdown'],\n },\n marketplacePlugin: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Plugin',\n summary:\n 'Where an installed marketplace plugin renders, in its own sandbox.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: ['Plugin'],\n },\n 'member-feed': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Member feed',\n summary: 'Updates only entitled members can see.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n emptyText: 'text',\n maxItems: 'text',\n },\n propFields: {\n heading: 'text-field',\n emptyText: 'text-field',\n maxItems: 'text-field',\n },\n textLimits: {\n heading: 200,\n emptyText: 200,\n maxItems: 200,\n },\n presets: ['Member feed'],\n },\n 'member-recovery': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Members',\n displayName: 'Password recovery',\n summary:\n 'Forgot-password request, and the reset form the emailed link opens.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n signinPath: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n signinPath: 'text',\n },\n propFields: {\n heading: 'text-field',\n signinPath: 'text-field',\n },\n textLimits: {\n heading: 200,\n signinPath: 200,\n },\n presets: ['Password recovery'],\n },\n 'member-signin': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Members',\n displayName: 'Member sign-in',\n summary: 'An email and password sign-in form for site members.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n signupPath: {\n type: 'string',\n maxLength: 200,\n },\n recoveryPath: {\n type: 'string',\n maxLength: 200,\n },\n continueFallback: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n signupPath: 'text',\n recoveryPath: 'text',\n continueFallback: 'text',\n },\n propFields: {\n heading: 'text-field',\n signupPath: 'text-field',\n recoveryPath: 'text-field',\n continueFallback: 'text-field',\n },\n textLimits: {\n heading: 200,\n signupPath: 200,\n recoveryPath: 200,\n continueFallback: 200,\n },\n presets: ['Member sign-in'],\n },\n 'member-signup': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Members',\n displayName: 'Member sign-up',\n summary: 'A create-account form for site membership.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n signinPath: {\n type: 'string',\n maxLength: 200,\n },\n continueFallback: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n signinPath: 'text',\n continueFallback: 'text',\n },\n propFields: {\n heading: 'text-field',\n signinPath: 'text-field',\n continueFallback: 'text-field',\n },\n textLimits: {\n heading: 200,\n signinPath: 200,\n continueFallback: 200,\n },\n presets: ['Member sign-up'],\n },\n muiAccordion: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Accordion',\n summary:\n 'Header that expands to reveal its details — FAQs, long forms, anything progressive.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiAccordionSummary', 'muiAccordionDetails'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n defaultExpanded: {\n type: 'boolean',\n },\n disableGutters: {\n type: 'boolean',\n },\n disabled: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n defaultExpanded: 'switch',\n disableGutters: 'switch',\n disabled: 'switch',\n },\n textLimits: {},\n presets: ['Accordion'],\n },\n muiAccordionDetails: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Accordion Details',\n summary: 'The region an accordion reveals when expanded.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: [],\n },\n muiAccordionSummary: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Accordion Summary',\n summary: 'The clickable header row of an accordion.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n screenId: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n screenId: 'screen',\n },\n propFields: {\n children: 'textarea',\n screenId: 'screen-select',\n },\n textLimits: {\n children: 2000,\n },\n presets: [],\n },\n muiAppBar: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'App Bar',\n summary:\n 'The bar across the top of the site — put a Toolbar Content inside it.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n color: {\n type: 'string',\n enum: [\n 'default',\n 'inherit',\n 'transparent',\n 'primary',\n 'secondary',\n 'tertiary',\n ],\n },\n position: {\n type: 'string',\n enum: ['absolute', 'fixed', 'relative', 'static', 'sticky'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n color: 'select',\n position: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['App Bar', 'Nav Bar'],\n },\n muiBox: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Box',\n summary:\n 'Generic container with no styling of its own — style it from the styles panel.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'span',\n 'p',\n 'figure',\n 'figcaption',\n 'blockquote',\n 'pre',\n ],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n component: 'select',\n },\n textLimits: {},\n presets: ['Two-tone Statement', 'Box'],\n },\n muiBreadcrumbs: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Breadcrumbs',\n summary: 'Trail showing where a page sits.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n separator: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n itemsBeforeCollapse: {\n type: 'string',\n maxLength: 200,\n },\n itemsAfterCollapse: {\n type: 'string',\n maxLength: 200,\n },\n expandText: {\n type: 'string',\n maxLength: 200,\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n separator: 'text',\n maxItems: 'text',\n itemsBeforeCollapse: 'text',\n itemsAfterCollapse: 'text',\n expandText: 'text',\n ariaLabel: 'text',\n },\n propFields: {\n separator: 'text-field',\n maxItems: 'text-field',\n itemsBeforeCollapse: 'text-field',\n itemsAfterCollapse: 'text-field',\n expandText: 'text-field',\n ariaLabel: 'text-field',\n },\n textLimits: {\n separator: 200,\n maxItems: 200,\n itemsBeforeCollapse: 200,\n itemsAfterCollapse: 200,\n expandText: 200,\n ariaLabel: 200,\n },\n presets: ['Breadcrumbs'],\n },\n muiButton: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Button',\n summary:\n 'A button — or a link styled as one, if you point it at a screen or URL.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 40,\n },\n color: {\n type: 'string',\n enum: [\n 'inherit',\n 'primary',\n 'secondary',\n 'success',\n 'error',\n 'info',\n 'warning',\n ],\n },\n disabled: {\n type: 'boolean',\n },\n fullWidth: {\n type: 'boolean',\n },\n size: {\n type: 'string',\n enum: ['inherit', 'small', 'medium', 'large'],\n },\n variant: {\n type: 'string',\n enum: ['text', 'outlined', 'contained'],\n },\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n target: {\n type: 'string',\n enum: ['_self', '_blank', 'custom'],\n },\n targetName: {\n type: 'string',\n maxLength: 200,\n },\n renderAs: {\n type: 'string',\n enum: ['button', 'linkButton'],\n },\n startIconId: {\n type: 'string',\n },\n endIconId: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n screenId: 'screen',\n href: 'url',\n targetName: 'text',\n },\n propFields: {\n children: 'textarea',\n color: 'select',\n disabled: 'switch',\n fullWidth: 'switch',\n size: 'select',\n variant: 'select',\n screenId: 'screen-select',\n href: 'text-field',\n target: 'select',\n targetName: 'text-field',\n renderAs: 'select',\n startIconId: 'icon-picker',\n endIconId: 'icon-picker',\n },\n textLimits: {\n children: 40,\n targetName: 200,\n },\n presets: ['Outlined Button'],\n },\n muiCard: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card',\n summary:\n 'Surface that groups a header, content and actions about one subject.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n variant: {\n type: 'string',\n enum: ['elevation', 'outlined'],\n },\n elevation: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n elevation: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n variant: 'select',\n elevation: 'text-field',\n },\n textLimits: {\n ariaLabel: 200,\n elevation: 200,\n },\n presets: ['Card', 'Card Outlined'],\n },\n muiCardActions: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card Actions',\n summary: 'The button row at the bottom of a card.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n disableSpacing: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n disableSpacing: 'switch',\n },\n textLimits: {},\n presets: [],\n },\n muiCardContent: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card Content',\n summary: 'The padded body region of a card.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: [],\n },\n muiCardHeader: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card Header',\n summary: 'The title and subheader at the top of a card.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n maxLength: 200,\n },\n subheader: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n title: 'text',\n subheader: 'text',\n },\n propFields: {\n title: 'text-field',\n subheader: 'text-field',\n },\n textLimits: {\n title: 200,\n subheader: 200,\n },\n presets: [],\n },\n muiContainer: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Container',\n summary: 'Centers your page content and caps how wide it gets.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n fixed: {\n type: 'boolean',\n },\n disableGutters: {\n type: 'boolean',\n },\n maxWidth: {\n type: 'string',\n enum: ['xs', 'sm', 'md', 'lg', 'xl'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n fixed: 'switch',\n disableGutters: 'switch',\n maxWidth: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Container', 'Prose Container'],\n },\n muiDrawer: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Drawer',\n summary: 'A panel that slides in from an edge.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n anchor: {\n type: 'string',\n enum: ['left', 'right', 'top', 'bottom'],\n },\n width: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n anchor: 'select',\n width: 'css-dimension',\n },\n textLimits: {},\n presets: ['Drawer'],\n },\n muiDrawerToggle: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Menu Button',\n summary: \"A hamburger button that opens the page's drawer.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n ariaLabel: 'text-field',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Menu Button'],\n },\n muiGrid: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Grid',\n summary: 'Responsive 12-column layout.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n container: {\n type: 'boolean',\n },\n size: {\n type: 'string',\n },\n offset: {\n type: 'string',\n },\n spacing: {\n type: 'string',\n maxLength: 200,\n },\n rowSpacing: {\n type: 'string',\n maxLength: 200,\n },\n columnSpacing: {\n type: 'string',\n maxLength: 200,\n },\n columns: {\n type: 'string',\n maxLength: 200,\n },\n direction: {\n type: 'string',\n enum: ['row', 'row-reverse'],\n },\n wrap: {\n type: 'string',\n enum: ['wrap', 'nowrap', 'wrap-reverse'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n spacing: 'text',\n rowSpacing: 'text',\n columnSpacing: 'text',\n columns: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n container: 'switch',\n size: 'breakpoint-span',\n offset: 'breakpoint-span',\n spacing: 'text-field',\n rowSpacing: 'text-field',\n columnSpacing: 'text-field',\n columns: 'text-field',\n direction: 'select',\n wrap: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n spacing: 200,\n rowSpacing: 200,\n columnSpacing: 200,\n columns: 200,\n },\n presets: ['Grid', 'Grid Cell'],\n },\n muiImageList: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Image List',\n summary: 'Dense grid of images — standard, quilted, masonry or woven.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiImageListItem'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['standard', 'quilted', 'masonry', 'woven'],\n },\n cols: {\n type: 'string',\n maxLength: 200,\n },\n gap: {\n type: 'string',\n maxLength: 200,\n },\n rowHeight: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n cols: 'text',\n gap: 'text',\n rowHeight: 'text',\n },\n propFields: {\n variant: 'select',\n cols: 'text-field',\n gap: 'text-field',\n rowHeight: 'text-field',\n },\n textLimits: {\n cols: 200,\n gap: 200,\n rowHeight: 200,\n },\n presets: ['Image List', 'Image List Masonry'],\n },\n muiImageListItem: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Image List Item',\n summary: 'One tile of an image list, with an optional caption bar.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n maxLength: 200,\n },\n subtitle: {\n type: 'string',\n maxLength: 200,\n },\n barPosition: {\n type: 'string',\n enum: ['bottom', 'top', 'below'],\n },\n cols: {\n type: 'string',\n maxLength: 200,\n },\n rows: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n title: 'text',\n subtitle: 'text',\n cols: 'text',\n rows: 'text',\n },\n propFields: {\n title: 'text-field',\n subtitle: 'text-field',\n barPosition: 'select',\n cols: 'text-field',\n rows: 'text-field',\n },\n textLimits: {\n title: 200,\n subtitle: 200,\n cols: 200,\n rows: 200,\n },\n presets: ['Image List Item'],\n },\n muiInlineText: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Inline Text',\n summary:\n 'One run of text inside a sentence — put several side by side in a paragraph to emphasise a phrase without bre…',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n element: {\n type: 'string',\n enum: ['span', 'strong', 'em', 'mark', 'small'],\n },\n tone: {\n type: 'string',\n enum: [\n 'inherit',\n 'primary',\n 'secondary',\n 'disabled',\n 'accent',\n 'accentAlt',\n 'success',\n 'warning',\n 'error',\n ],\n },\n weight: {\n type: 'string',\n enum: ['inherit', 'regular', 'medium', 'semibold', 'bold'],\n },\n decoration: {\n type: 'string',\n enum: ['inherit', 'none', 'underline', 'lineThrough'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n },\n propFields: {\n children: 'textarea',\n element: 'select',\n tone: 'select',\n weight: 'select',\n decoration: 'select',\n },\n textLimits: {\n children: 2000,\n },\n presets: ['Inline Text', 'Emphasised Text'],\n },\n muiLinkBox: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Link Container',\n summary:\n 'Container that is itself a link — put an icon, a heading and a description inside and the whole box becomes o…',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n newTab: {\n type: 'boolean',\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n redundant: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n screenId: 'screen',\n href: 'url',\n ariaLabel: 'text',\n },\n propFields: {\n screenId: 'screen-select',\n href: 'text-field',\n newTab: 'switch',\n ariaLabel: 'text-field',\n redundant: 'switch',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Link Container'],\n },\n muiList: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'List',\n summary: 'Vertical list of items, optionally under a sticky heading.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiListItem'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n subheader: {\n type: 'string',\n maxLength: 200,\n },\n dense: {\n type: 'boolean',\n },\n disablePadding: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n subheader: 'text',\n },\n propFields: {\n subheader: 'text-field',\n dense: 'switch',\n disablePadding: 'switch',\n },\n textLimits: {\n subheader: 200,\n },\n presets: ['List'],\n },\n muiListItem: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'List Item',\n summary: 'One row of a list.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiListItemText'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n divider: {\n type: 'boolean',\n },\n alignItems: {\n type: 'string',\n enum: ['center', 'flex-start'],\n },\n dense: {\n type: 'boolean',\n },\n disableGutters: {\n type: 'boolean',\n },\n disablePadding: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n divider: 'switch',\n alignItems: 'select',\n dense: 'switch',\n disableGutters: 'switch',\n disablePadding: 'switch',\n },\n textLimits: {},\n presets: ['List Item'],\n },\n muiListItemText: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'List Item Text',\n summary: 'The primary and secondary text pair inside a list row.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n primary: {\n type: 'string',\n maxLength: 2000,\n },\n secondary: {\n type: 'string',\n maxLength: 2000,\n },\n inset: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n primary: 'text',\n secondary: 'text',\n },\n propFields: {\n primary: 'textarea',\n secondary: 'textarea',\n inset: 'switch',\n },\n textLimits: {\n primary: 2000,\n secondary: 2000,\n },\n presets: ['List Item Text'],\n },\n muiMegaMenu: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Mega Menu',\n summary:\n 'A nav item that opens a wide panel — columns of links, promos, whatever you build.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n label: {\n type: 'string',\n maxLength: 200,\n },\n panelWidth: {\n type: 'string',\n enum: ['auto', 'wide', 'full'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n label: 'text',\n },\n propFields: {\n label: 'text-field',\n panelWidth: 'select',\n },\n textLimits: {\n label: 200,\n },\n presets: ['Mega Menu'],\n },\n muiNavMenu: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Dropdown Menu',\n summary: 'A nav item that opens a dropdown of links beneath it.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n label: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n label: 'text',\n },\n propFields: {\n label: 'text-field',\n },\n textLimits: {\n label: 200,\n },\n presets: ['Dropdown Menu'],\n },\n muiPagination: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Pagination',\n summary: 'Page picker.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n count: {\n type: 'string',\n maxLength: 200,\n },\n defaultPage: {\n type: 'string',\n maxLength: 200,\n },\n variant: {\n type: 'string',\n enum: ['text', 'outlined'],\n },\n shape: {\n type: 'string',\n enum: ['circular', 'rounded'],\n },\n color: {\n type: 'string',\n enum: ['standard', 'primary', 'secondary'],\n },\n size: {\n type: 'string',\n enum: ['medium', 'small', 'large'],\n },\n siblingCount: {\n type: 'string',\n maxLength: 200,\n },\n boundaryCount: {\n type: 'string',\n maxLength: 200,\n },\n showFirstButton: {\n type: 'boolean',\n },\n showLastButton: {\n type: 'boolean',\n },\n hidePrevButton: {\n type: 'boolean',\n },\n hideNextButton: {\n type: 'boolean',\n },\n disabled: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n count: 'text',\n defaultPage: 'text',\n siblingCount: 'text',\n boundaryCount: 'text',\n },\n propFields: {\n count: 'text-field',\n defaultPage: 'text-field',\n variant: 'select',\n shape: 'select',\n color: 'select',\n size: 'select',\n siblingCount: 'text-field',\n boundaryCount: 'text-field',\n showFirstButton: 'switch',\n showLastButton: 'switch',\n hidePrevButton: 'switch',\n hideNextButton: 'switch',\n disabled: 'switch',\n },\n textLimits: {\n count: 200,\n defaultPage: 200,\n siblingCount: 200,\n boundaryCount: 200,\n },\n presets: ['Pagination'],\n },\n muiPaper: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Paper',\n summary: 'Themed surface with a shadow or an outline.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n variant: {\n type: 'string',\n enum: ['elevation', 'outlined'],\n },\n elevation: {\n type: 'string',\n maxLength: 200,\n },\n square: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n elevation: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n variant: 'select',\n elevation: 'text-field',\n square: 'switch',\n },\n textLimits: {\n ariaLabel: 200,\n elevation: 200,\n },\n presets: ['Paper', 'Paper Outlined'],\n },\n muiScreenLink: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Screen Link',\n summary: 'Links to another screen by id, so it survives a slug change.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 40,\n },\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n target: {\n type: 'string',\n enum: ['_self', '_blank', 'custom'],\n },\n targetName: {\n type: 'string',\n maxLength: 200,\n },\n renderAs: {\n type: 'string',\n enum: ['button', 'link', 'linkButton'],\n },\n color: {\n type: 'string',\n enum: [\n 'inherit',\n 'primary',\n 'secondary',\n 'success',\n 'error',\n 'info',\n 'warning',\n ],\n },\n size: {\n type: 'string',\n enum: ['inherit', 'small', 'medium', 'large'],\n },\n fullWidth: {\n type: 'boolean',\n },\n variant: {\n type: 'string',\n enum: ['text', 'outlined', 'contained'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n screenId: 'screen',\n href: 'url',\n targetName: 'text',\n },\n propFields: {\n children: 'textarea',\n screenId: 'screen-select',\n href: 'text-field',\n target: 'select',\n targetName: 'text-field',\n renderAs: 'select',\n color: 'select',\n size: 'select',\n fullWidth: 'switch',\n variant: 'select',\n },\n textLimits: {\n children: 40,\n targetName: 200,\n },\n presets: ['Screen Link'],\n },\n muiStack: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Stack',\n summary:\n 'Lays children out in a row or column with even spacing — the workhorse for most layouts.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n direction: {\n type: 'string',\n enum: ['column', 'column-reverse', 'row', 'row-reverse'],\n },\n justifyContent: {\n type: 'string',\n enum: [\n 'flex-start',\n 'center',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ],\n },\n alignItems: {\n type: 'string',\n enum: ['stretch', 'flex-start', 'center', 'flex-end', 'baseline'],\n },\n spacing: {\n type: 'string',\n maxLength: 200,\n },\n useFlexGap: {\n type: 'boolean',\n },\n flexWrap: {\n type: 'string',\n enum: ['nowrap', 'wrap', 'wrap-reverse'],\n },\n divider: {\n type: 'string',\n enum: ['line', 'dashed'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n spacing: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n direction: 'select',\n justifyContent: 'select',\n alignItems: 'select',\n spacing: 'text-field',\n useFlexGap: 'switch',\n flexWrap: 'select',\n divider: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n spacing: 200,\n },\n presets: [\n 'Image Gallery',\n 'Testimonials',\n 'Pricing Table',\n 'FAQ',\n 'Announcement Bar',\n 'Hero',\n 'Feature Grid',\n 'Image + Text',\n 'Call to Action',\n 'Dropdown Panel',\n 'Mobile Nav',\n 'Stack Horizontal',\n 'Stack Vertical',\n 'Contact Section',\n 'Product page',\n ],\n },\n muiTabPanel: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Tab Panel',\n summary: 'The content shown under one tab.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n label: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n label: 'text',\n },\n propFields: {\n label: 'text-field',\n },\n textLimits: {\n label: 200,\n },\n presets: ['Tab Panel'],\n },\n muiTabs: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Tabs',\n summary:\n 'Tab strip whose Tab Panel children each name the tab that reveals them.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiTabPanel'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n labels: {\n type: 'string',\n maxLength: 2000,\n },\n tabLink1: {\n type: 'string',\n },\n tabLink2: {\n type: 'string',\n },\n tabLink3: {\n type: 'string',\n },\n tabLink4: {\n type: 'string',\n },\n tabLink5: {\n type: 'string',\n },\n tabLink6: {\n type: 'string',\n },\n tabLink7: {\n type: 'string',\n },\n tabLink8: {\n type: 'string',\n },\n opensOn: {\n type: 'string',\n },\n orientation: {\n type: 'string',\n enum: ['horizontal', 'vertical'],\n },\n variant: {\n type: 'string',\n enum: ['standard', 'scrollable', 'fullWidth'],\n },\n ssrPanels: {\n type: 'boolean',\n },\n centered: {\n type: 'boolean',\n },\n textColor: {\n type: 'string',\n enum: ['primary', 'secondary', 'inherit'],\n },\n indicatorColor: {\n type: 'string',\n enum: ['primary', 'secondary'],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n labels: 'text',\n tabLink1: 'screen',\n tabLink2: 'screen',\n tabLink3: 'screen',\n tabLink4: 'screen',\n tabLink5: 'screen',\n tabLink6: 'screen',\n tabLink7: 'screen',\n tabLink8: 'screen',\n ariaLabel: 'text',\n },\n propFields: {\n labels: 'textarea',\n tabLink1: 'screen-select',\n tabLink2: 'screen-select',\n tabLink3: 'screen-select',\n tabLink4: 'screen-select',\n tabLink5: 'screen-select',\n tabLink6: 'screen-select',\n tabLink7: 'screen-select',\n tabLink8: 'screen-select',\n opensOn: 'select',\n orientation: 'select',\n variant: 'select',\n ssrPanels: 'switch',\n centered: 'switch',\n textColor: 'select',\n indicatorColor: 'select',\n ariaLabel: 'text-field',\n },\n textLimits: {\n labels: 2000,\n ariaLabel: 200,\n },\n presets: ['Tabs'],\n },\n muiToolbar: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Toolbar Content',\n summary: 'The content row inside an App Bar — brand, links, actions.',\n acceptsChildren: true,\n restrictParent: [\n 'limitedTo',\n {\n components: ['muiAppBar'],\n plugins: ['mui'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n disableGutters: {\n type: 'boolean',\n },\n variant: {\n type: 'string',\n enum: ['dense', 'regular'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n disableGutters: 'switch',\n variant: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Toolbar Content'],\n },\n muiTypography: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Typography',\n summary: \"A block of text in one of the theme's type styles.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n variant: {\n type: 'string',\n enum: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n },\n component: {\n type: 'string',\n enum: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'div', 'span'],\n },\n align: {\n type: 'string',\n enum: ['inherit', 'left', 'center', 'right', 'justify'],\n },\n noWrap: {\n type: 'boolean',\n },\n gutterBottom: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n },\n propFields: {\n children: 'textarea',\n variant: 'select',\n component: 'select',\n align: 'select',\n noWrap: 'switch',\n gutterBottom: 'switch',\n },\n textLimits: {\n children: 2000,\n },\n presets: [\n 'Display XL',\n 'Heading 1',\n 'Heading 2',\n 'Heading 3',\n 'Heading 4',\n 'Heading 5',\n 'Heading 6',\n 'Subtitle 1',\n 'Subtitle 2',\n 'Body 1',\n 'Body 2',\n 'Lede',\n 'Overline',\n 'Caption',\n 'Body compact',\n 'Micro',\n ],\n },\n 'newsletter-signup': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Newsletter signup',\n summary: 'A consented email capture that writes straight into contacts.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n buttonLabel: {\n type: 'string',\n maxLength: 40,\n },\n successText: {\n type: 'string',\n maxLength: 200,\n },\n listId: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n buttonLabel: 'text',\n successText: 'text',\n listId: 'text',\n },\n propFields: {\n heading: 'text-field',\n buttonLabel: 'text-field',\n successText: 'text-field',\n listId: 'text-field',\n },\n textLimits: {\n heading: 200,\n buttonLabel: 40,\n successText: 200,\n listId: 200,\n },\n presets: ['Newsletter signup'],\n },\n product: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product',\n summary: 'A single product card with a buy button, priced on the server.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n productId: {\n type: 'string',\n maxLength: 200,\n },\n name: {\n type: 'string',\n maxLength: 200,\n },\n priceUsd: {\n type: 'string',\n maxLength: 200,\n },\n description: {\n type: 'string',\n maxLength: 200,\n },\n imageUrl: {\n type: 'string',\n },\n buyLabel: {\n type: 'string',\n maxLength: 200,\n },\n showCoupon: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n productId: 'text',\n name: 'text',\n priceUsd: 'text',\n description: 'text',\n imageUrl: 'url',\n buyLabel: 'text',\n },\n propFields: {\n productId: 'text-field',\n name: 'text-field',\n priceUsd: 'text-field',\n description: 'text-field',\n imageUrl: 'text-field',\n buyLabel: 'text-field',\n showCoupon: 'checkbox',\n },\n textLimits: {\n productId: 200,\n name: 200,\n priceUsd: 200,\n description: 200,\n buyLabel: 200,\n },\n presets: ['Product'],\n },\n 'product-detail': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product detail',\n summary: \"One product's gallery, options and buy button.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n slug: {\n type: 'string',\n maxLength: 200,\n },\n buyLabel: {\n type: 'string',\n maxLength: 200,\n },\n hideDescription: {\n type: 'boolean',\n },\n showCoupon: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n slug: 'text',\n buyLabel: 'text',\n },\n propFields: {\n slug: 'text-field',\n buyLabel: 'text-field',\n hideDescription: 'checkbox',\n showCoupon: 'checkbox',\n },\n textLimits: {\n slug: 200,\n buyLabel: 200,\n },\n presets: ['Product detail'],\n },\n 'product-grid': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product grid',\n summary:\n 'Your catalog as a grid, with optional search, category chips, sort and paging.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n source: {\n type: 'string',\n enum: ['all', 'collection', 'category', 'tag'],\n },\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n categorySlug: {\n type: 'string',\n maxLength: 200,\n },\n tag: {\n type: 'string',\n maxLength: 200,\n },\n sort: {\n type: 'string',\n enum: ['name', 'price-asc', 'price-desc', 'newest'],\n },\n columns: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n showFilters: {\n type: 'boolean',\n },\n showSearch: {\n type: 'boolean',\n },\n showCategories: {\n type: 'boolean',\n },\n showSort: {\n type: 'boolean',\n },\n showTypeFilter: {\n type: 'boolean',\n },\n showPriceFilter: {\n type: 'boolean',\n },\n pageSize: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n categorySlug: 'text',\n tag: 'text',\n columns: 'text',\n maxItems: 'text',\n emptyText: 'text',\n pageSize: 'text',\n },\n propFields: {\n source: 'select',\n collectionSlug: 'text-field',\n categorySlug: 'text-field',\n tag: 'text-field',\n sort: 'select',\n columns: 'text-field',\n maxItems: 'text-field',\n emptyText: 'text-field',\n showFilters: 'checkbox',\n showSearch: 'checkbox',\n showCategories: 'checkbox',\n showSort: 'checkbox',\n showTypeFilter: 'checkbox',\n showPriceFilter: 'checkbox',\n pageSize: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n categorySlug: 200,\n tag: 200,\n columns: 200,\n maxItems: 200,\n emptyText: 200,\n pageSize: 200,\n },\n presets: ['Product grid', 'Shop catalog'],\n },\n 'product-reviews': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product reviews',\n summary:\n 'Approved reviews with verified-buyer badges, and a form to add one.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n },\n propFields: {\n heading: 'text-field',\n },\n textLimits: {\n heading: 200,\n },\n presets: ['Product reviews'],\n },\n 'related-products': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Related products',\n summary:\n 'An upsell strip — your manual picks, or what people buy together.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n maxItems: 'text',\n },\n propFields: {\n heading: 'text-field',\n maxItems: 'text-field',\n },\n textLimits: {\n heading: 200,\n maxItems: 200,\n },\n presets: ['Related products'],\n },\n 'reservation-widget': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Reservation widget',\n summary:\n 'A date-range booking with a live quote and a deposit taken up front.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n resourceId: {\n type: 'string',\n maxLength: 200,\n },\n reserveLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n resourceId: 'text',\n reserveLabel: 'text',\n },\n propFields: {\n resourceId: 'text-field',\n reserveLabel: 'text-field',\n },\n textLimits: {\n resourceId: 200,\n reserveLabel: 200,\n },\n presets: ['Reservation widget'],\n },\n reusableInstance: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Reusable Component',\n summary: 'Where a reusable component is placed.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: [],\n },\n searchBox: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Forms',\n displayName: 'Search Box',\n summary: \"A search field that opens the site's search page.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n placeholder: {\n type: 'string',\n maxLength: 200,\n },\n defaultValue: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n placeholder: 'text',\n defaultValue: 'text',\n },\n propFields: {\n placeholder: 'text-field',\n defaultValue: 'text-field',\n },\n textLimits: {\n placeholder: 200,\n defaultValue: 200,\n },\n presets: ['Search Box'],\n },\n section: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Section',\n summary:\n 'Groups components inside a semantic HTML element (section, article, nav, …).',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n element: {\n type: 'string',\n enum: [\n 'section',\n 'div',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n element: 'select',\n ariaLabel: 'text-field',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Footer', 'Section'],\n },\n socialLinks: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Social Links',\n summary: 'A row of icon links to whichever social profiles you fill in.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n twitter: {\n type: 'string',\n maxLength: 200,\n },\n instagram: {\n type: 'string',\n maxLength: 200,\n },\n facebook: {\n type: 'string',\n maxLength: 200,\n },\n linkedin: {\n type: 'string',\n maxLength: 200,\n },\n youtube: {\n type: 'string',\n maxLength: 200,\n },\n github: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n twitter: 'text',\n instagram: 'text',\n facebook: 'text',\n linkedin: 'text',\n youtube: 'text',\n github: 'text',\n },\n propFields: {\n twitter: 'text-field',\n instagram: 'text-field',\n facebook: 'text-field',\n linkedin: 'text-field',\n youtube: 'text-field',\n github: 'text-field',\n },\n textLimits: {\n twitter: 200,\n instagram: 200,\n facebook: 200,\n linkedin: 200,\n youtube: 200,\n github: 200,\n },\n presets: ['Social Links'],\n },\n tableOfContents: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Table of Contents',\n summary: \"An on-this-page list linking to a Markdown element's headings.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n depth: {\n type: 'string',\n enum: ['3', '2'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n },\n propFields: {\n heading: 'text-field',\n depth: 'select',\n },\n textLimits: {\n heading: 200,\n },\n presets: ['Table of Contents'],\n },\n themeModeSwitcher: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Theme mode switcher',\n summary:\n 'Lets visitors override the site theme with light, dark, or device default.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['icon', 'toggle'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n variant: 'select',\n },\n textLimits: {},\n presets: ['Theme mode switcher'],\n },\n video: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Video',\n summary: 'Plays a video file from your media library or any URL.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n src: {\n type: 'string',\n },\n poster: {\n type: 'string',\n },\n title: {\n type: 'string',\n maxLength: 200,\n },\n description: {\n type: 'string',\n maxLength: 2000,\n },\n uploadDate: {\n type: 'string',\n maxLength: 200,\n },\n durationSeconds: {\n type: 'string',\n maxLength: 200,\n },\n lightbox: {\n type: 'boolean',\n },\n loadPlayer: {\n type: 'boolean',\n },\n preload: {\n type: 'string',\n enum: ['none', 'metadata', 'auto'],\n },\n controls: {\n type: 'boolean',\n },\n autoPlay: {\n type: 'boolean',\n },\n loop: {\n type: 'boolean',\n },\n muted: {\n type: 'boolean',\n },\n playsInline: {\n type: 'boolean',\n },\n captionsSrc: {\n type: 'string',\n maxLength: 200,\n },\n captionsLabel: {\n type: 'string',\n maxLength: 200,\n },\n captionsLang: {\n type: 'string',\n maxLength: 200,\n },\n width: {\n type: 'string',\n },\n height: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n src: 'media',\n poster: 'media',\n title: 'text',\n description: 'text',\n uploadDate: 'text',\n durationSeconds: 'text',\n captionsSrc: 'text',\n captionsLabel: 'text',\n captionsLang: 'text',\n },\n propFields: {\n src: 'text-field',\n poster: 'text-field',\n title: 'text-field',\n description: 'textarea',\n uploadDate: 'text-field',\n durationSeconds: 'text-field',\n lightbox: 'switch',\n loadPlayer: 'switch',\n preload: 'select',\n controls: 'checkbox',\n autoPlay: 'checkbox',\n loop: 'checkbox',\n muted: 'checkbox',\n playsInline: 'checkbox',\n captionsSrc: 'text-field',\n captionsLabel: 'text-field',\n captionsLang: 'text-field',\n width: 'css-dimension',\n height: 'css-dimension',\n },\n textLimits: {\n title: 200,\n description: 2000,\n uploadDate: 200,\n durationSeconds: 200,\n captionsSrc: 200,\n captionsLabel: 200,\n captionsLang: 200,\n },\n presets: ['Video'],\n },\n videoEmbed: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Video',\n summary: \"Embeds a YouTube or Vimeo player from the video's URL.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n url: {\n type: 'string',\n },\n height: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n url: 'url',\n },\n propFields: {\n url: 'text-field',\n height: 'css-dimension',\n },\n textLimits: {},\n presets: ['Video'],\n },\n wishlist: {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Wishlist',\n summary: 'Products a visitor saved, linking back to their pages.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n emptyText: 'text',\n },\n propFields: {\n heading: 'text-field',\n emptyText: 'text-field',\n },\n textLimits: {\n heading: 200,\n emptyText: 200,\n },\n presets: ['Wishlist'],\n },\n}\n\n/** What every node can do, whatever its componentId. */\nexport const AI_NODE_CAPABILITIES: Record<string, AiNodeCapability> = {\n repeat: {\n id: 'repeat',\n displayName: 'Repeat',\n summary: 'Renders an element once per record of the data it repeats over.',\n propsSchema: {\n type: 'object',\n properties: {\n repeatSelf: {\n type: 'string',\n enum: ['false', 'true'],\n },\n repeatLimit: {\n type: 'string',\n maxLength: 200,\n },\n repeatFilter: {\n type: 'string',\n maxLength: 200,\n },\n repeatSort: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n repeatLimit: 'text',\n repeatFilter: 'text',\n repeatSort: 'text',\n },\n propFields: {\n repeatSelf: 'select',\n repeatLimit: 'text-field',\n repeatFilter: 'text-field',\n repeatSort: 'text-field',\n },\n textLimits: {\n repeatLimit: 200,\n repeatFilter: 200,\n repeatSort: 200,\n },\n childrenOnlyProps: ['repeatSelf'],\n omittedProps: [],\n },\n}\n\n/** Attribute field kinds this palette declares nowhere, and so turned away. */\nexport const AI_UNDECLARED_FIELD_KINDS: readonly string[] = [\n 'category-select',\n 'collection-select',\n 'data-table',\n 'dataset-field-select',\n 'dataset-select',\n 'form-select',\n 'node-select',\n 'plugin-select',\n 'plugin-settings',\n 'product-select',\n]\n\n/** The root and the allowed component ids of each surface. */\nexport const AI_SURFACES: Record<AiSurface, AiSurfaceDefinition> = {\n screen: {\n root: 'div',\n allow: [\n 'collectionCategories',\n 'collectionEntries',\n 'collectionEntryAuthor',\n 'collectionEntryBody',\n 'collectionEntryMeta',\n 'collectionRelated',\n 'collectionSearch',\n 'collectionShare',\n 'contentAuthorProfile',\n 'dataTable',\n 'form',\n 'formField',\n 'image',\n 'muiAccordion',\n 'muiAccordionDetails',\n 'muiAccordionSummary',\n 'muiAppBar',\n 'muiBox',\n 'muiBreadcrumbs',\n 'muiButton',\n 'muiCard',\n 'muiCardActions',\n 'muiCardContent',\n 'muiCardHeader',\n 'muiContainer',\n 'muiGrid',\n 'muiImageList',\n 'muiImageListItem',\n 'muiList',\n 'muiListItem',\n 'muiListItemText',\n 'muiScreenLink',\n 'muiStack',\n 'muiToolbar',\n 'muiTypography',\n 'searchBox',\n 'section',\n 'socialLinks',\n 'videoEmbed',\n ],\n },\n email: {\n root: 'div',\n allow: [\n 'emailButton',\n 'emailDivider',\n 'emailImage',\n 'emailProduct',\n 'emailSection',\n 'emailSpacer',\n 'emailText',\n ],\n },\n form: {\n root: 'form',\n allow: ['form', 'formField'],\n },\n layout: {\n root: 'div',\n allow: [\n 'collectionCategories',\n 'collectionEntries',\n 'collectionEntryAuthor',\n 'collectionEntryBody',\n 'collectionEntryMeta',\n 'collectionRelated',\n 'collectionSearch',\n 'collectionShare',\n 'contentAuthorProfile',\n 'dataTable',\n 'form',\n 'formField',\n 'image',\n 'layoutSlot',\n 'muiAccordion',\n 'muiAccordionDetails',\n 'muiAccordionSummary',\n 'muiAppBar',\n 'muiBox',\n 'muiBreadcrumbs',\n 'muiButton',\n 'muiCard',\n 'muiCardActions',\n 'muiCardContent',\n 'muiCardHeader',\n 'muiContainer',\n 'muiGrid',\n 'muiImageList',\n 'muiImageListItem',\n 'muiList',\n 'muiListItem',\n 'muiListItemText',\n 'muiScreenLink',\n 'muiStack',\n 'muiToolbar',\n 'muiTypography',\n 'searchBox',\n 'section',\n 'socialLinks',\n 'videoEmbed',\n ],\n },\n component: {\n root: 'div',\n allow: [\n 'collectionCategories',\n 'collectionEntries',\n 'collectionEntryAuthor',\n 'collectionEntryBody',\n 'collectionEntryMeta',\n 'collectionRelated',\n 'collectionSearch',\n 'collectionShare',\n 'contentAuthorProfile',\n 'dataTable',\n 'form',\n 'formField',\n 'icon',\n 'image',\n 'muiAccordion',\n 'muiAccordionDetails',\n 'muiAccordionSummary',\n 'muiAppBar',\n 'muiBox',\n 'muiBreadcrumbs',\n 'muiButton',\n 'muiCard',\n 'muiCardActions',\n 'muiCardContent',\n 'muiCardHeader',\n 'muiContainer',\n 'muiGrid',\n 'muiImageList',\n 'muiImageListItem',\n 'muiList',\n 'muiListItem',\n 'muiListItemText',\n 'muiScreenLink',\n 'muiStack',\n 'muiToolbar',\n 'muiTypography',\n 'searchBox',\n 'section',\n 'socialLinks',\n 'videoEmbed',\n ],\n },\n}\n\n/** Theme vocabulary an `sx` value may name. */\nexport const AI_SX_TOKENS: AiSxTokens = {\n palette: [\n 'action.active',\n 'action.disabled',\n 'action.disabledBackground',\n 'action.focus',\n 'action.hover',\n 'action.selected',\n 'background.default',\n 'background.paper',\n 'common.black',\n 'common.white',\n 'divider',\n 'error.contrastText',\n 'error.dark',\n 'error.light',\n 'error.main',\n 'grey.100',\n 'grey.200',\n 'grey.300',\n 'grey.400',\n 'grey.50',\n 'grey.500',\n 'grey.600',\n 'grey.700',\n 'grey.800',\n 'grey.900',\n 'grey.A100',\n 'grey.A200',\n 'grey.A400',\n 'grey.A700',\n 'info.contrastText',\n 'info.dark',\n 'info.light',\n 'info.main',\n 'inputOutline',\n 'primary.contrastText',\n 'primary.dark',\n 'primary.light',\n 'primary.main',\n 'secondary.contrastText',\n 'secondary.dark',\n 'secondary.light',\n 'secondary.main',\n 'success.contrastText',\n 'success.dark',\n 'success.light',\n 'success.main',\n 'surface.contrastText',\n 'surface.dark',\n 'surface.light',\n 'surface.main',\n 'svgBackground.active',\n 'svgBackground.focus',\n 'svgBackground.hover',\n 'svgBackground.main',\n 'svgFilled.active',\n 'svgFilled.focus',\n 'svgFilled.hover',\n 'svgFilled.main',\n 'svgStroke.active',\n 'svgStroke.focus',\n 'svgStroke.hover',\n 'svgStroke.main',\n 'tertiary.contrastText',\n 'tertiary.dark',\n 'tertiary.light',\n 'tertiary.main',\n 'text.disabled',\n 'text.primary',\n 'text.secondary',\n 'tint.primary',\n 'tint.secondary',\n 'tint.tertiary',\n 'warning.contrastText',\n 'warning.dark',\n 'warning.light',\n 'warning.main',\n ],\n breakpoints: ['xs', 'sm', 'md', 'lg', 'xl'],\n typographyVariants: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n}\n\n/** The prompt catalog of each surface. */\nexport const AI_PALETTE_CATALOG: Record<AiSurface, string> = {\n screen:\n \"Surface: screen. Root: the document wrapper (componentId \\\"div\\\", id \\\"_@_\\\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- collectionCategories (Category Pills): A pill per collection category, each filtering the listing. — leaf — collectionSlug=text≤200, allLabel=text≤200\\n- collectionEntries (Collection Entries): Repeats its children once per entry in a content collection. — holds any — collectionSlug=text≤200, entriesLimit=text≤200, filterCategory=text≤200, filterTag=text≤200, searchMode=filter|suggest\\n- collectionEntryAuthor (Entry Author): The author card for an entry — portrait, byline and bio. — leaf — name=text≤200, bio=text≤2000, image=media, pageUrl=url, url=url\\n- collectionEntryBody (Entry Body): The current entry's markdown body, on an entry template. — leaf — markdown=text≤200\\n- collectionEntryMeta (Entry Meta): The byline row for an entry — author, date, category and tags. — leaf — date=text≤200, dateFormat=default|monthYear|mediumDate|longDate|iso, author=text≤200, category=text≤200, authorPageUrl=url\\n- collectionRelated (Related Posts): Other entries sharing this one's category or tags. — leaf — heading=text≤200, layout=list|cards, headingVariant=displayXl|h1|h2|h3|h4|h5|…, titleVariant=displayXl|h1|h2|h3|h4|h5|…, dateFormat=default|monthYear|mediumDate|longDate|iso\\n- collectionSearch (Collection Search): A search box for a content collection, with a suggestions dropdown. — leaf — collectionSlug=text≤200, searchPlaceholder=text≤200\\n- collectionShare (Share Bar): Share buttons for the current page, plus a copy link. — leaf — heading=text≤200\\n- contentAuthorProfile (Author Profile): Who an author page is about — portrait, name, role, bio and links. — leaf — name=text≤200, bio=text≤2000, image=media, jobTitle=text≤200, url=url\\n- dataTable (Table): A grid of rows and columns — a feature matrix, a spec sheet, a comparison. — leaf — headerRow=boolean, emphasizeColumn=text≤200\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\n- image (Image): A picture from your media library or any URL, with fit, size and an optional link. — leaf — src=media, objectFit=cover|contain|fill|none|scale-down, loading=lazy|eager, screenId=screen, href=url\\n- muiAccordion (Accordion): Header that expands to reveal its details — FAQs, long forms, anything progressive. — holds only muiAccordionSummary|muiAccordionDetails — defaultExpanded=boolean, disableGutters=boolean, disabled=boolean\\n- muiAccordionDetails (Accordion Details): The region an accordion reveals when expanded. — holds any — no props\\n- muiAccordionSummary (Accordion Summary): The clickable header row of an accordion. — leaf — children=text≤2000, screenId=screen\\n- muiAppBar (App Bar): The bar across the top of the site — put a Toolbar Content inside it. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, color=default|inherit|transparent|primary|secondary|tertiary, position=absolute|fixed|relative|static|sticky\\n- muiBox (Box): Generic container with no styling of its own — style it from the styles panel. — holds any — component=div|span|p|figure|figcaption|blockquote|…\\n- muiBreadcrumbs (Breadcrumbs): Trail showing where a page sits. — holds any — separator=text≤200, maxItems=text≤200, itemsBeforeCollapse=text≤200, itemsAfterCollapse=text≤200, expandText=text≤200\\n- muiButton (Button): A button — or a link styled as one, if you point it at a screen or URL. — leaf — children=text≤40, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large, variant=text|outlined|contained, target=_self|_blank|custom\\n- muiCard (Card): Surface that groups a header, content and actions about one subject. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, variant=elevation|outlined, elevation=text≤200\\n- muiCardActions (Card Actions): The button row at the bottom of a card. — holds any — disableSpacing=boolean\\n- muiCardContent (Card Content): The padded body region of a card. — holds any — no props\\n- muiCardHeader (Card Header): The title and subheader at the top of a card. — leaf — title=text≤200, subheader=text≤200\\n- muiContainer (Container): Centers your page content and caps how wide it gets. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, fixed=boolean, disableGutters=boolean, maxWidth=xs|sm|md|lg|xl\\n- muiGrid (Grid): Responsive 12-column layout. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, size=string, direction=row|row-reverse, wrap=wrap|nowrap|wrap-reverse\\n- muiImageList (Image List): Dense grid of images — standard, quilted, masonry or woven. — holds only muiImageListItem — variant=standard|quilted|masonry|woven, cols=text≤200, gap=text≤200, rowHeight=text≤200\\n- muiImageListItem (Image List Item): One tile of an image list, with an optional caption bar. — holds any — title=text≤200, subtitle=text≤200, barPosition=bottom|top|below, cols=text≤200, rows=text≤200\\n- muiList (List): Vertical list of items, optionally under a sticky heading. — holds only muiListItem — subheader=text≤200, dense=boolean, disablePadding=boolean\\n- muiListItem (List Item): One row of a list. — holds only muiListItemText — divider=boolean, alignItems=center|flex-start, dense=boolean, disableGutters=boolean, disablePadding=boolean\\n- muiListItemText (List Item Text): The primary and secondary text pair inside a list row. — leaf — primary=text≤2000, secondary=text≤2000, inset=boolean\\n- muiScreenLink (Screen Link): Links to another screen by id, so it survives a slug change. — leaf — children=text≤40, target=_self|_blank|custom, renderAs=button|link|linkButton, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large\\n- muiStack (Stack): Lays children out in a row or column with even spacing — the workhorse for most layouts. — holds any — component=div|section|article|aside|nav|header|…, direction=column|column-reverse|row|row-reverse, justifyContent=flex-start|center|flex-end|space-between|space-around|space-evenly, alignItems=stretch|flex-start|center|flex-end|baseline, flexWrap=nowrap|wrap|wrap-reverse\\n- muiToolbar (Toolbar Content): The content row inside an App Bar — brand, links, actions. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, disableGutters=boolean, variant=dense|regular\\n- muiTypography (Typography): A block of text in one of the theme's type styles. — leaf — children=text≤2000, variant=displayXl|h1|h2|h3|h4|h5|…, component=h1|h2|h3|h4|h5|h6|…, align=inherit|left|center|right|justify, noWrap=boolean\\n- searchBox (Search Box): A search field that opens the site's search page. — leaf — placeholder=text≤200, defaultValue=text≤200\\n- section (Section): Groups components inside a semantic HTML element (section, article, nav, …). — holds any — element=section|div|article|aside|nav|header|…, ariaLabel=text≤200\\n- socialLinks (Social Links): A row of icon links to whichever social profiles you fill in. — leaf — twitter=text≤200, instagram=text≤200, facebook=text≤200, linkedin=text≤200, youtube=text≤200\\n- videoEmbed (Video): Embeds a YouTube or Vimeo player from the video's URL. — leaf — url=url, height=string\\nNamed blocks to imitate: App Bar (muiAppBar); List (muiList); List Item (muiListItem); Image Gallery (muiStack); Testimonials (muiStack); Pricing Table (muiStack); FAQ (muiStack); Announcement Bar (muiStack); Nav Bar (muiAppBar); Hero (muiStack); Feature Grid (muiStack); Image + Text (muiStack); Call to Action (muiStack); Footer (section); Collection Entries (collectionEntries); Dropdown Panel (muiStack); Grid (muiGrid); Grid Cell (muiGrid); Card (muiCard); Card Outlined (muiCard); Accordion (muiAccordion); FAQ (muiStack); Image List (muiImageList); Image List Masonry (muiImageList); Image List Item (muiImageListItem); Breadcrumbs (muiBreadcrumbs); Contact Form (form); Contact Section (muiStack).\",\n email:\n 'Surface: email. Root: the document wrapper (componentId \"div\", id \"_@_\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- emailButton (Email button): A call-to-action button that survives every mail client. — leaf — children=text≤40, href=url, backgroundColor=string, color=string, align=left|center|right\\n- emailDivider (Email divider): A horizontal rule between email sections. — leaf — color=string\\n- emailImage (Email image): An email-safe image, capped at 600px wide, optionally linked. — leaf — src=media, alt=text≤200, width=text≤200, href=url, align=left|center|right\\n- emailProduct (Email product): A product card resolved at send time, so it never goes stale. — leaf — buttonLabel=text≤40\\n- emailSection (Email section): An email-safe band with its own background color and padding. — holds any — backgroundColor=string, padding=text≤200, align=left|center|right\\n- emailSpacer (Email spacer): Fixed vertical whitespace between email blocks. — leaf — height=text≤200\\n- emailText (Email text): A paragraph of email copy in one of the preset styles. — leaf — children=text≤2000, variant=heading|subheading|body|caption, color=string, align=left|center|right',\n form: 'Surface: form. Root: one \"form\" node.\\nElements (id (name): purpose — children — props; * = required):\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\nNamed blocks to imitate: Contact Form (form).',\n layout:\n \"Surface: layout. Root: the document wrapper (componentId \\\"div\\\", id \\\"_@_\\\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- collectionCategories (Category Pills): A pill per collection category, each filtering the listing. — leaf — collectionSlug=text≤200, allLabel=text≤200\\n- collectionEntries (Collection Entries): Repeats its children once per entry in a content collection. — holds any — collectionSlug=text≤200, entriesLimit=text≤200, filterCategory=text≤200, filterTag=text≤200, searchMode=filter|suggest\\n- collectionEntryAuthor (Entry Author): The author card for an entry — portrait, byline and bio. — leaf — name=text≤200, bio=text≤2000, image=media, pageUrl=url, url=url\\n- collectionEntryBody (Entry Body): The current entry's markdown body, on an entry template. — leaf — markdown=text≤200\\n- collectionEntryMeta (Entry Meta): The byline row for an entry — author, date, category and tags. — leaf — date=text≤200, dateFormat=default|monthYear|mediumDate|longDate|iso, author=text≤200, category=text≤200, authorPageUrl=url\\n- collectionRelated (Related Posts): Other entries sharing this one's category or tags. — leaf — heading=text≤200, layout=list|cards, headingVariant=displayXl|h1|h2|h3|h4|h5|…, titleVariant=displayXl|h1|h2|h3|h4|h5|…, dateFormat=default|monthYear|mediumDate|longDate|iso\\n- collectionSearch (Collection Search): A search box for a content collection, with a suggestions dropdown. — leaf — collectionSlug=text≤200, searchPlaceholder=text≤200\\n- collectionShare (Share Bar): Share buttons for the current page, plus a copy link. — leaf — heading=text≤200\\n- contentAuthorProfile (Author Profile): Who an author page is about — portrait, name, role, bio and links. — leaf — name=text≤200, bio=text≤2000, image=media, jobTitle=text≤200, url=url\\n- dataTable (Table): A grid of rows and columns — a feature matrix, a spec sheet, a comparison. — leaf — headerRow=boolean, emphasizeColumn=text≤200\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\n- image (Image): A picture from your media library or any URL, with fit, size and an optional link. — leaf — src=media, objectFit=cover|contain|fill|none|scale-down, loading=lazy|eager, screenId=screen, href=url\\n- layoutSlot (Layout Slot): Marks where each bound screen's content renders inside this layout. — leaf — caption=text≤200, component=main|div|section|article\\n- muiAccordion (Accordion): Header that expands to reveal its details — FAQs, long forms, anything progressive. — holds only muiAccordionSummary|muiAccordionDetails — defaultExpanded=boolean, disableGutters=boolean, disabled=boolean\\n- muiAccordionDetails (Accordion Details): The region an accordion reveals when expanded. — holds any — no props\\n- muiAccordionSummary (Accordion Summary): The clickable header row of an accordion. — leaf — children=text≤2000, screenId=screen\\n- muiAppBar (App Bar): The bar across the top of the site — put a Toolbar Content inside it. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, color=default|inherit|transparent|primary|secondary|tertiary, position=absolute|fixed|relative|static|sticky\\n- muiBox (Box): Generic container with no styling of its own — style it from the styles panel. — holds any — component=div|span|p|figure|figcaption|blockquote|…\\n- muiBreadcrumbs (Breadcrumbs): Trail showing where a page sits. — holds any — separator=text≤200, maxItems=text≤200, itemsBeforeCollapse=text≤200, itemsAfterCollapse=text≤200, expandText=text≤200\\n- muiButton (Button): A button — or a link styled as one, if you point it at a screen or URL. — leaf — children=text≤40, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large, variant=text|outlined|contained, target=_self|_blank|custom\\n- muiCard (Card): Surface that groups a header, content and actions about one subject. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, variant=elevation|outlined, elevation=text≤200\\n- muiCardActions (Card Actions): The button row at the bottom of a card. — holds any — disableSpacing=boolean\\n- muiCardContent (Card Content): The padded body region of a card. — holds any — no props\\n- muiCardHeader (Card Header): The title and subheader at the top of a card. — leaf — title=text≤200, subheader=text≤200\\n- muiContainer (Container): Centers your page content and caps how wide it gets. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, fixed=boolean, disableGutters=boolean, maxWidth=xs|sm|md|lg|xl\\n- muiGrid (Grid): Responsive 12-column layout. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, size=string, direction=row|row-reverse, wrap=wrap|nowrap|wrap-reverse\\n- muiImageList (Image List): Dense grid of images — standard, quilted, masonry or woven. — holds only muiImageListItem — variant=standard|quilted|masonry|woven, cols=text≤200, gap=text≤200, rowHeight=text≤200\\n- muiImageListItem (Image List Item): One tile of an image list, with an optional caption bar. — holds any — title=text≤200, subtitle=text≤200, barPosition=bottom|top|below, cols=text≤200, rows=text≤200\\n- muiList (List): Vertical list of items, optionally under a sticky heading. — holds only muiListItem — subheader=text≤200, dense=boolean, disablePadding=boolean\\n- muiListItem (List Item): One row of a list. — holds only muiListItemText — divider=boolean, alignItems=center|flex-start, dense=boolean, disableGutters=boolean, disablePadding=boolean\\n- muiListItemText (List Item Text): The primary and secondary text pair inside a list row. — leaf — primary=text≤2000, secondary=text≤2000, inset=boolean\\n- muiScreenLink (Screen Link): Links to another screen by id, so it survives a slug change. — leaf — children=text≤40, target=_self|_blank|custom, renderAs=button|link|linkButton, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large\\n- muiStack (Stack): Lays children out in a row or column with even spacing — the workhorse for most layouts. — holds any — component=div|section|article|aside|nav|header|…, direction=column|column-reverse|row|row-reverse, justifyContent=flex-start|center|flex-end|space-between|space-around|space-evenly, alignItems=stretch|flex-start|center|flex-end|baseline, flexWrap=nowrap|wrap|wrap-reverse\\n- muiToolbar (Toolbar Content): The content row inside an App Bar — brand, links, actions. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, disableGutters=boolean, variant=dense|regular\\n- muiTypography (Typography): A block of text in one of the theme's type styles. — leaf — children=text≤2000, variant=displayXl|h1|h2|h3|h4|h5|…, component=h1|h2|h3|h4|h5|h6|…, align=inherit|left|center|right|justify, noWrap=boolean\\n- searchBox (Search Box): A search field that opens the site's search page. — leaf — placeholder=text≤200, defaultValue=text≤200\\n- section (Section): Groups components inside a semantic HTML element (section, article, nav, …). — holds any — element=section|div|article|aside|nav|header|…, ariaLabel=text≤200\\n- socialLinks (Social Links): A row of icon links to whichever social profiles you fill in. — leaf — twitter=text≤200, instagram=text≤200, facebook=text≤200, linkedin=text≤200, youtube=text≤200\\n- videoEmbed (Video): Embeds a YouTube or Vimeo player from the video's URL. — leaf — url=url, height=string\\nNamed blocks to imitate: App Bar (muiAppBar); List (muiList); List Item (muiListItem); Image Gallery (muiStack); Testimonials (muiStack); Pricing Table (muiStack); FAQ (muiStack); Announcement Bar (muiStack); Nav Bar (muiAppBar); Hero (muiStack); Feature Grid (muiStack); Image + Text (muiStack); Call to Action (muiStack); Footer (section); Collection Entries (collectionEntries); Dropdown Panel (muiStack); Grid (muiGrid); Grid Cell (muiGrid); Card (muiCard); Card Outlined (muiCard); Accordion (muiAccordion); FAQ (muiStack); Image List (muiImageList); Image List Masonry (muiImageList); Image List Item (muiImageListItem); Breadcrumbs (muiBreadcrumbs); Contact Form (form); Contact Section (muiStack).\",\n component:\n \"Surface: component. Root: the document wrapper (componentId \\\"div\\\", id \\\"_@_\\\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- collectionCategories (Category Pills): A pill per collection category, each filtering the listing. — leaf — collectionSlug=text≤200, allLabel=text≤200\\n- collectionEntries (Collection Entries): Repeats its children once per entry in a content collection. — holds any — collectionSlug=text≤200, entriesLimit=text≤200, filterCategory=text≤200, filterTag=text≤200, searchMode=filter|suggest\\n- collectionEntryAuthor (Entry Author): The author card for an entry — portrait, byline and bio. — leaf — name=text≤200, bio=text≤2000, image=media, pageUrl=url, url=url\\n- collectionEntryBody (Entry Body): The current entry's markdown body, on an entry template. — leaf — markdown=text≤200\\n- collectionEntryMeta (Entry Meta): The byline row for an entry — author, date, category and tags. — leaf — date=text≤200, dateFormat=default|monthYear|mediumDate|longDate|iso, author=text≤200, category=text≤200, authorPageUrl=url\\n- collectionRelated (Related Posts): Other entries sharing this one's category or tags. — leaf — heading=text≤200, layout=list|cards, headingVariant=displayXl|h1|h2|h3|h4|h5|…, titleVariant=displayXl|h1|h2|h3|h4|h5|…, dateFormat=default|monthYear|mediumDate|longDate|iso\\n- collectionSearch (Collection Search): A search box for a content collection, with a suggestions dropdown. — leaf — collectionSlug=text≤200, searchPlaceholder=text≤200\\n- collectionShare (Share Bar): Share buttons for the current page, plus a copy link. — leaf — heading=text≤200\\n- contentAuthorProfile (Author Profile): Who an author page is about — portrait, name, role, bio and links. — leaf — name=text≤200, bio=text≤2000, image=media, jobTitle=text≤200, url=url\\n- dataTable (Table): A grid of rows and columns — a feature matrix, a spec sheet, a comparison. — leaf — headerRow=boolean, emphasizeColumn=text≤200\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\n- icon (Icon): A single icon from the library, at the size and color you pick. — leaf — iconId=string, size=text≤200, color=text≤200\\n- image (Image): A picture from your media library or any URL, with fit, size and an optional link. — leaf — src=media, objectFit=cover|contain|fill|none|scale-down, loading=lazy|eager, screenId=screen, href=url\\n- muiAccordion (Accordion): Header that expands to reveal its details — FAQs, long forms, anything progressive. — holds only muiAccordionSummary|muiAccordionDetails — defaultExpanded=boolean, disableGutters=boolean, disabled=boolean\\n- muiAccordionDetails (Accordion Details): The region an accordion reveals when expanded. — holds any — no props\\n- muiAccordionSummary (Accordion Summary): The clickable header row of an accordion. — leaf — children=text≤2000, screenId=screen\\n- muiAppBar (App Bar): The bar across the top of the site — put a Toolbar Content inside it. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, color=default|inherit|transparent|primary|secondary|tertiary, position=absolute|fixed|relative|static|sticky\\n- muiBox (Box): Generic container with no styling of its own — style it from the styles panel. — holds any — component=div|span|p|figure|figcaption|blockquote|…\\n- muiBreadcrumbs (Breadcrumbs): Trail showing where a page sits. — holds any — separator=text≤200, maxItems=text≤200, itemsBeforeCollapse=text≤200, itemsAfterCollapse=text≤200, expandText=text≤200\\n- muiButton (Button): A button — or a link styled as one, if you point it at a screen or URL. — leaf — children=text≤40, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large, variant=text|outlined|contained, target=_self|_blank|custom\\n- muiCard (Card): Surface that groups a header, content and actions about one subject. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, variant=elevation|outlined, elevation=text≤200\\n- muiCardActions (Card Actions): The button row at the bottom of a card. — holds any — disableSpacing=boolean\\n- muiCardContent (Card Content): The padded body region of a card. — holds any — no props\\n- muiCardHeader (Card Header): The title and subheader at the top of a card. — leaf — title=text≤200, subheader=text≤200\\n- muiContainer (Container): Centers your page content and caps how wide it gets. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, fixed=boolean, disableGutters=boolean, maxWidth=xs|sm|md|lg|xl\\n- muiGrid (Grid): Responsive 12-column layout. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, size=string, direction=row|row-reverse, wrap=wrap|nowrap|wrap-reverse\\n- muiImageList (Image List): Dense grid of images — standard, quilted, masonry or woven. — holds only muiImageListItem — variant=standard|quilted|masonry|woven, cols=text≤200, gap=text≤200, rowHeight=text≤200\\n- muiImageListItem (Image List Item): One tile of an image list, with an optional caption bar. — holds any — title=text≤200, subtitle=text≤200, barPosition=bottom|top|below, cols=text≤200, rows=text≤200\\n- muiList (List): Vertical list of items, optionally under a sticky heading. — holds only muiListItem — subheader=text≤200, dense=boolean, disablePadding=boolean\\n- muiListItem (List Item): One row of a list. — holds only muiListItemText — divider=boolean, alignItems=center|flex-start, dense=boolean, disableGutters=boolean, disablePadding=boolean\\n- muiListItemText (List Item Text): The primary and secondary text pair inside a list row. — leaf — primary=text≤2000, secondary=text≤2000, inset=boolean\\n- muiScreenLink (Screen Link): Links to another screen by id, so it survives a slug change. — leaf — children=text≤40, target=_self|_blank|custom, renderAs=button|link|linkButton, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large\\n- muiStack (Stack): Lays children out in a row or column with even spacing — the workhorse for most layouts. — holds any — component=div|section|article|aside|nav|header|…, direction=column|column-reverse|row|row-reverse, justifyContent=flex-start|center|flex-end|space-between|space-around|space-evenly, alignItems=stretch|flex-start|center|flex-end|baseline, flexWrap=nowrap|wrap|wrap-reverse\\n- muiToolbar (Toolbar Content): The content row inside an App Bar — brand, links, actions. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, disableGutters=boolean, variant=dense|regular\\n- muiTypography (Typography): A block of text in one of the theme's type styles. — leaf — children=text≤2000, variant=displayXl|h1|h2|h3|h4|h5|…, component=h1|h2|h3|h4|h5|h6|…, align=inherit|left|center|right|justify, noWrap=boolean\\n- searchBox (Search Box): A search field that opens the site's search page. — leaf — placeholder=text≤200, defaultValue=text≤200\\n- section (Section): Groups components inside a semantic HTML element (section, article, nav, …). — holds any — element=section|div|article|aside|nav|header|…, ariaLabel=text≤200\\n- socialLinks (Social Links): A row of icon links to whichever social profiles you fill in. — leaf — twitter=text≤200, instagram=text≤200, facebook=text≤200, linkedin=text≤200, youtube=text≤200\\n- videoEmbed (Video): Embeds a YouTube or Vimeo player from the video's URL. — leaf — url=url, height=string\\nNamed blocks to imitate: App Bar (muiAppBar); List (muiList); List Item (muiListItem); Image Gallery (muiStack); Testimonials (muiStack); Pricing Table (muiStack); FAQ (muiStack); Announcement Bar (muiStack); Nav Bar (muiAppBar); Hero (muiStack); Feature Grid (muiStack); Image + Text (muiStack); Call to Action (muiStack); Footer (section); Collection Entries (collectionEntries); Dropdown Panel (muiStack); Grid (muiGrid); Grid Cell (muiGrid); Card (muiCard); Card Outlined (muiCard); Accordion (muiAccordion); FAQ (muiStack); Image List (muiImageList); Image List Masonry (muiImageList); Image List Item (muiImageListItem); Breadcrumbs (muiBreadcrumbs); Contact Form (form); Contact Section (muiStack).\",\n}\n"],"names":["AI_PALETTE","booking","pluginId","kind","category","displayName","summary","acceptsChildren","propsSchema","type","properties","heading","maxLength","successMessage","required","additionalProperties","propRoles","propFields","textLimits","presets","cart","variant","enum","checkoutLabel","showCoupon","emptyText","collectionCategories","collectionSlug","allLabel","collectionEntries","entriesLimit","filterCategory","filterTag","perPage","page","firstPageOnly","search","searchMode","searchPlaceholder","spacing","collectionEntryAuthor","name","bio","image","pageUrl","url","showLinks","showBio","showAvatar","collectionEntryBody","markdown","collectionEntryMeta","date","dateFormat","author","tags","avatarImage","showDate","showCategory","showTags","authorPageUrl","linkAuthor","showAuthor","collectionRelated","limit","layout","columns","showCover","headingVariant","titleVariant","showExcerpt","collectionSearch","collectionShare","contentAuthorProfile","jobTitle","worksFor","showRole","html","css","embedMode","embedHeight","signedOutHeading","dataTable","headerRow","emphasizeColumn","div","component","emailButton","children","href","backgroundColor","color","align","emailDivider","emailHtml","emailImage","src","alt","width","emailProduct","buttonLabel","emailRichtext","emailSection","padding","emailSpacer","height","emailText","eventList","mode","maxItems","form","formName","datasetName","submitLabel","afterSubmit","redirectScreenId","redirectUrl","formField","fieldName","label","placeholder","fieldType","options","functionInput","parameter","control","choices","hideLabel","functionOutput","element","announce","functionScope","functionName","functionShow","when","invert","functionWidget","title","resultLabel","outputs","autoRun","gate","teaserText","ctaLabel","ctaHref","videoIndex","lockedText","icon","iconId","size","decorative","objectFit","loading","screenId","languageSwitcher","uppercase","layoutSlot","restrictChildren","components","caption","content","marketplacePlugin","signinPath","signupPath","recoveryPath","continueFallback","muiAccordion","defaultExpanded","disableGutters","disabled","muiAccordionDetails","muiAccordionSummary","muiAppBar","ariaLabel","position","muiBox","muiBreadcrumbs","separator","itemsBeforeCollapse","itemsAfterCollapse","expandText","muiButton","fullWidth","target","targetName","renderAs","startIconId","endIconId","muiCard","elevation","muiCardActions","disableSpacing","muiCardContent","muiCardHeader","subheader","muiContainer","fixed","maxWidth","muiDrawer","anchor","muiDrawerToggle","muiGrid","container","offset","rowSpacing","columnSpacing","direction","wrap","muiImageList","cols","gap","rowHeight","muiImageListItem","subtitle","barPosition","rows","muiInlineText","tone","weight","decoration","muiLinkBox","newTab","redundant","muiList","dense","disablePadding","muiListItem","divider","alignItems","muiListItemText","primary","secondary","inset","muiMegaMenu","panelWidth","muiNavMenu","muiPagination","count","defaultPage","shape","siblingCount","boundaryCount","showFirstButton","showLastButton","hidePrevButton","hideNextButton","muiPaper","square","muiScreenLink","muiStack","justifyContent","useFlexGap","flexWrap","muiTabPanel","muiTabs","labels","tabLink1","tabLink2","tabLink3","tabLink4","tabLink5","tabLink6","tabLink7","tabLink8","opensOn","orientation","ssrPanels","centered","textColor","indicatorColor","muiToolbar","restrictParent","plugins","muiTypography","noWrap","gutterBottom","successText","listId","product","productId","priceUsd","description","imageUrl","buyLabel","slug","hideDescription","source","categorySlug","tag","sort","showFilters","showSearch","showCategories","showSort","showTypeFilter","showPriceFilter","pageSize","resourceId","reserveLabel","reusableInstance","searchBox","defaultValue","section","socialLinks","twitter","instagram","facebook","linkedin","youtube","github","tableOfContents","depth","themeModeSwitcher","video","poster","uploadDate","durationSeconds","lightbox","loadPlayer","preload","controls","autoPlay","loop","muted","playsInline","captionsSrc","captionsLabel","captionsLang","videoEmbed","wishlist","AI_NODE_CAPABILITIES","repeat","id","repeatSelf","repeatLimit","repeatFilter","repeatSort","childrenOnlyProps","omittedProps","AI_UNDECLARED_FIELD_KINDS","AI_SURFACES","screen","root","allow","email","AI_SX_TOKENS","palette","breakpoints","typographyVariants","AI_PALETTE_CATALOG"],"mappings":"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d3D,MAAM;oBACNa,MAAM;wBACJ;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;qBACD;gBACH;gBACA+C,cAAc;oBACZ5D,MAAM;oBACNa,MAAM;wBACJ;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;qBACD;gBACH;gBACAmC,UAAU;oBACRhD,MAAM;gBACR;gBACA4C,YAAY;oBACV5C,MAAM;oBACNa,MAAM;wBAAC;wBAAW;wBAAa;wBAAc;wBAAY;qBAAM;gBACjE;gBACAoC,cAAc;oBACZjD,MAAM;gBACR;gBACA6D,aAAa;oBACX7D,MAAM;gBACR;YACF;YACAK,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTL,SAAS;YACTqD,OAAO;YACPE,SAAS;QACX;QACAjD,YAAY;YACVN,SAAS;YACTqD,OAAO;YACPC,QAAQ;YACRC,SAAS;YACTC,WAAW;YACXC,gBAAgB;YAChBC,cAAc;YACdZ,UAAU;YACVJ,YAAY;YACZK,cAAc;YACdY,aAAa;QACf;QACApD,YAAY;YACVP,SAAS;YACTqD,OAAO;YACPE,SAAS;QACX;QACA/C,SAAS;YAAC;SAAgB;IAC5B;IACAoD,kBAAkB;QAChBrE,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SACE;QACFC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACViB,gBAAgB;oBACdlB,MAAM;oBACNG,WAAW;gBACb;gBACA0B,mBAAmB;oBACjB7B,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTW,gBAAgB;YAChBW,mBAAmB;QACrB;QACArB,YAAY;YACVU,gBAAgB;YAChBW,mBAAmB;QACrB;QACApB,YAAY;YACVS,gBAAgB;YAChBW,mBAAmB;QACrB;QACAnB,SAAS;YAAC;SAAoB;IAChC;IACAqD,iBAAiB;QACftE,U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MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTwG,aAAa;YACbqL,cAAc;QAChB;QACA5R,YAAY;YACVuG,aAAa;YACbqL,cAAc;QAChB;QACA3R,YAAY;YACVsG,aAAa;YACbqL,cAAc;QAChB;QACA1R,SAAS;YAAC;SAAa;IACzB;IACA2R,SAAS;QACP5S,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SACE;QACFC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVuH,SAAS;oBACPxH,MAAM;oBACNa,MAAM;wBACJ;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;qBACD;gBACH;gBACAuJ,WAAW;oBACTpK,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACT6J,WAAW;QACb;QACA5J,YAAY;YACVgH,SAAS;YACT4C,WAAW;QACb;QACA3J,YAAY;YACV2J,WAAW;QACb;QACA1J,SAAS;YAAC;YAAU;SAAU;IAChC;IACA4R,aAAa;QACX7S,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVsS,SAAS;oBACPvS,MAAM;oBACNG,WAAW;gBACb;gBACAqS,WAAW;oBACTxS,MAAM;oBACNG,WAAW;gBACb;gBACAsS,UAAU;oBACRzS,MAAM;oBACNG,WAAW;gBACb;gBACAuS,UAAU;oBACR1S,MAAM;oBACNG,WAAW;gBACb;gBACAwS,SAAS;oBACP3S,MAAM;oBACNG,WAAW;gBACb;gBACAyS,QAAQ;oBACN5S,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTgS,SAAS;YACTC,WAAW;YACXC,UAAU;YACVC,UAAU;YACVC,SAAS;YACTC,QAAQ;QACV;QACApS,YAAY;YACV+R,SAAS;YACTC,WAAW;YACXC,UAAU;YACVC,UAAU;YAC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D,GAC5D,OAAO,MAAMC,cAAsD;IACjEC,QAAQ;QACNC,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAC,OAAO;QACLF,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAzO,MAAM;QACJwO,MAAM;QACNC,OAAO;YAAC;YAAQ;SAAY;IAC9B;IACAtR,QAAQ;QACNqR,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAjQ,WAAW;QACTgQ,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;AACF,EAAC;AAED,6CAA6C,GAC7C,OAAO,MAAME,eAA2B;IACtCC,SAAS;QACP;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IACDC,aAAa;QAAC;QAAM;QAAM;QAAM;QAAM;KAAK;IAC3CC,oBAAoB;QAClB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;AACH,EAAC;AAED,wCAAwC,GACxC,OAAO,MAAMC,qBAAgD;IAC3DR,QACE;IACFG,OACE;IACF1O,MAAM;IACN7C,QACE;IACFqB,WACE;AACJ,EAAC"}
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/ai/src/lib/runtime/ai-palette.generated.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * GENERATED by tools/scripts/generate-ai-palette.mts from the registered\n * plugin bundles (AGL-2905). Do not edit; re-run the generator, and\n * `npm run check:ai-palette` fails CI when this file is stale.\n */\nimport type {\n AiNodeCapability,\n AiPaletteEntry,\n AiSurface,\n AiSurfaceDefinition,\n AiSxTokens,\n} from './ai-palette'\n\n/** Every registered component, by id. */\nexport const AI_PALETTE: Record<string, AiPaletteEntry> = {\n booking: {\n pluginId: 'bookings',\n kind: 'element',\n category: 'Input',\n displayName: 'Booking',\n summary: 'Service and time picker that books appointments.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n successMessage: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n successMessage: 'text',\n },\n propFields: {\n heading: 'text-field',\n successMessage: 'text-field',\n },\n textLimits: {\n heading: 200,\n successMessage: 200,\n },\n presets: ['Booking'],\n },\n cart: {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Cart',\n summary:\n 'The shopping cart — a badge icon with a slide-out drawer, or the full cart page.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['button', 'inline'],\n },\n checkoutLabel: {\n type: 'string',\n maxLength: 200,\n },\n showCoupon: {\n type: 'boolean',\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n checkoutLabel: 'text',\n emptyText: 'text',\n },\n propFields: {\n variant: 'select',\n checkoutLabel: 'text-field',\n showCoupon: 'checkbox',\n emptyText: 'text-field',\n },\n textLimits: {\n checkoutLabel: 200,\n emptyText: 200,\n },\n presets: ['Cart button', 'Cart page'],\n },\n collectionCategories: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Category Pills',\n summary: 'A pill per collection category, each filtering the listing.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n allLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n allLabel: 'text',\n },\n propFields: {\n collectionSlug: 'text-field',\n allLabel: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n allLabel: 200,\n },\n presets: ['Category Pills'],\n },\n collectionEntries: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Collection Entries',\n summary: 'Repeats its children once per entry in a content collection.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n entriesLimit: {\n type: 'string',\n maxLength: 200,\n },\n filterCategory: {\n type: 'string',\n maxLength: 200,\n },\n filterTag: {\n type: 'string',\n maxLength: 200,\n },\n perPage: {\n type: 'string',\n maxLength: 200,\n },\n page: {\n type: 'string',\n maxLength: 200,\n },\n firstPageOnly: {\n type: 'boolean',\n },\n search: {\n type: 'boolean',\n },\n searchMode: {\n type: 'string',\n enum: ['filter', 'suggest'],\n },\n searchPlaceholder: {\n type: 'string',\n maxLength: 200,\n },\n spacing: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n entriesLimit: 'text',\n filterCategory: 'text',\n filterTag: 'text',\n perPage: 'text',\n page: 'text',\n searchPlaceholder: 'text',\n spacing: 'text',\n },\n propFields: {\n collectionSlug: 'text-field',\n entriesLimit: 'text-field',\n filterCategory: 'text-field',\n filterTag: 'text-field',\n perPage: 'text-field',\n page: 'text-field',\n firstPageOnly: 'switch',\n search: 'switch',\n searchMode: 'select',\n searchPlaceholder: 'text-field',\n spacing: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n entriesLimit: 200,\n filterCategory: 200,\n filterTag: 200,\n perPage: 200,\n page: 200,\n searchPlaceholder: 200,\n spacing: 200,\n },\n presets: ['Collection Entries'],\n },\n collectionEntryAuthor: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Entry Author',\n summary: 'The author card for an entry — portrait, byline and bio.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n maxLength: 200,\n },\n bio: {\n type: 'string',\n maxLength: 2000,\n },\n image: {\n type: 'string',\n },\n pageUrl: {\n type: 'string',\n },\n url: {\n type: 'string',\n },\n showLinks: {\n type: 'boolean',\n },\n showBio: {\n type: 'boolean',\n },\n showAvatar: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n name: 'text',\n bio: 'text',\n image: 'media',\n pageUrl: 'url',\n url: 'url',\n },\n propFields: {\n name: 'text-field',\n bio: 'textarea',\n image: 'text-field',\n pageUrl: 'text-field',\n url: 'text-field',\n showLinks: 'switch',\n showBio: 'switch',\n showAvatar: 'switch',\n },\n textLimits: {\n name: 200,\n bio: 2000,\n },\n presets: ['Entry Author'],\n },\n collectionEntryBody: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Entry Body',\n summary: \"The current entry's markdown body, on an entry template.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n markdown: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n markdown: 'text',\n },\n propFields: {\n markdown: 'text-field',\n },\n textLimits: {\n markdown: 200,\n },\n presets: ['Entry Body'],\n },\n collectionEntryMeta: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Entry Meta',\n summary: 'The byline row for an entry — author, date, category and tags.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n date: {\n type: 'string',\n maxLength: 200,\n },\n dateFormat: {\n type: 'string',\n enum: ['default', 'monthYear', 'mediumDate', 'longDate', 'iso'],\n },\n author: {\n type: 'string',\n maxLength: 200,\n },\n category: {\n type: 'string',\n maxLength: 200,\n },\n tags: {\n type: 'string',\n maxLength: 200,\n },\n avatarImage: {\n type: 'string',\n maxLength: 200,\n },\n showDate: {\n type: 'boolean',\n },\n showCategory: {\n type: 'boolean',\n },\n showTags: {\n type: 'boolean',\n },\n authorPageUrl: {\n type: 'string',\n },\n linkAuthor: {\n type: 'boolean',\n },\n showAuthor: {\n type: 'boolean',\n },\n showAvatar: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n date: 'text',\n author: 'text',\n category: 'text',\n tags: 'text',\n avatarImage: 'text',\n authorPageUrl: 'url',\n },\n propFields: {\n date: 'text-field',\n dateFormat: 'select',\n author: 'text-field',\n category: 'text-field',\n tags: 'text-field',\n avatarImage: 'text-field',\n showDate: 'switch',\n showCategory: 'switch',\n showTags: 'switch',\n authorPageUrl: 'text-field',\n linkAuthor: 'switch',\n showAuthor: 'switch',\n showAvatar: 'switch',\n },\n textLimits: {\n date: 200,\n author: 200,\n category: 200,\n tags: 200,\n avatarImage: 200,\n },\n presets: ['Entry Meta'],\n },\n collectionRelated: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Related Posts',\n summary: \"Other entries sharing this one's category or tags.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n limit: {\n type: 'string',\n maxLength: 200,\n },\n layout: {\n type: 'string',\n enum: ['list', 'cards'],\n },\n columns: {\n type: 'string',\n maxLength: 200,\n },\n showCover: {\n type: 'boolean',\n },\n headingVariant: {\n type: 'string',\n enum: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n },\n titleVariant: {\n type: 'string',\n enum: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n },\n showDate: {\n type: 'boolean',\n },\n dateFormat: {\n type: 'string',\n enum: ['default', 'monthYear', 'mediumDate', 'longDate', 'iso'],\n },\n showCategory: {\n type: 'boolean',\n },\n showExcerpt: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n limit: 'text',\n columns: 'text',\n },\n propFields: {\n heading: 'text-field',\n limit: 'text-field',\n layout: 'select',\n columns: 'text-field',\n showCover: 'switch',\n headingVariant: 'select',\n titleVariant: 'select',\n showDate: 'switch',\n dateFormat: 'select',\n showCategory: 'switch',\n showExcerpt: 'switch',\n },\n textLimits: {\n heading: 200,\n limit: 200,\n columns: 200,\n },\n presets: ['Related Posts'],\n },\n collectionSearch: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Collection Search',\n summary:\n 'A search box for a content collection, with a suggestions dropdown.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n searchPlaceholder: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n searchPlaceholder: 'text',\n },\n propFields: {\n collectionSlug: 'text-field',\n searchPlaceholder: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n searchPlaceholder: 200,\n },\n presets: ['Collection Search'],\n },\n collectionShare: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Share Bar',\n summary: 'Share buttons for the current page, plus a copy link.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n },\n propFields: {\n heading: 'text-field',\n },\n textLimits: {\n heading: 200,\n },\n presets: ['Share Bar'],\n },\n contentAuthorProfile: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Author Profile',\n summary:\n 'Who an author page is about — portrait, name, role, bio and links.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n maxLength: 200,\n },\n bio: {\n type: 'string',\n maxLength: 2000,\n },\n image: {\n type: 'string',\n },\n jobTitle: {\n type: 'string',\n maxLength: 200,\n },\n worksFor: {\n type: 'string',\n maxLength: 200,\n },\n url: {\n type: 'string',\n },\n showLinks: {\n type: 'boolean',\n },\n showBio: {\n type: 'boolean',\n },\n showRole: {\n type: 'boolean',\n },\n showAvatar: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n name: 'text',\n bio: 'text',\n image: 'media',\n jobTitle: 'text',\n worksFor: 'text',\n url: 'url',\n },\n propFields: {\n name: 'text-field',\n bio: 'textarea',\n image: 'text-field',\n jobTitle: 'text-field',\n worksFor: 'text-field',\n url: 'text-field',\n showLinks: 'switch',\n showBio: 'switch',\n showRole: 'switch',\n showAvatar: 'switch',\n },\n textLimits: {\n name: 200,\n bio: 2000,\n jobTitle: 200,\n worksFor: 200,\n },\n presets: ['Author Profile'],\n },\n 'custom-html': {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Custom HTML',\n summary:\n 'Your own markup, sanitised on render, or isolated in a sandboxed iframe.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n html: {\n type: 'string',\n maxLength: 200,\n },\n css: {\n type: 'string',\n maxLength: 200,\n },\n embedMode: {\n type: 'boolean',\n },\n embedHeight: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n html: 'text',\n css: 'text',\n embedHeight: 'text',\n },\n propFields: {\n html: 'text-field',\n css: 'text-field',\n embedMode: 'checkbox',\n embedHeight: 'text-field',\n },\n textLimits: {\n html: 200,\n css: 200,\n embedHeight: 200,\n },\n presets: ['Custom HTML'],\n },\n 'customer-account': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Customer account',\n summary: 'Sign-in and account area — profile, addresses and order history.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n signedOutHeading: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n signedOutHeading: 'text',\n },\n propFields: {\n signedOutHeading: 'text-field',\n },\n textLimits: {\n signedOutHeading: 200,\n },\n presets: ['Customer account'],\n },\n dataTable: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Sections & Blocks',\n displayName: 'Table',\n summary:\n 'A grid of rows and columns — a feature matrix, a spec sheet, a comparison.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n headerRow: {\n type: 'boolean',\n },\n emphasizeColumn: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n emphasizeColumn: 'text',\n },\n propFields: {\n headerRow: 'checkbox',\n emphasizeColumn: 'text-field',\n },\n textLimits: {\n emphasizeColumn: 200,\n },\n presets: ['Table'],\n },\n div: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Document',\n summary:\n 'The page itself — the outermost element every other element sits in.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'main',\n 'header',\n 'footer',\n 'nav',\n 'aside',\n 'section',\n 'article',\n ],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n component: 'select',\n },\n textLimits: {},\n presets: [],\n },\n emailButton: {\n pluginId: 'email',\n kind: 'element',\n category: 'Input',\n displayName: 'Email button',\n summary: 'A call-to-action button that survives every mail client.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 40,\n },\n href: {\n type: 'string',\n },\n backgroundColor: {\n type: 'string',\n },\n color: {\n type: 'string',\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n href: 'url',\n },\n propFields: {\n children: 'text-field',\n href: 'text-field',\n backgroundColor: 'color-picker',\n color: 'color-picker',\n align: 'select',\n },\n textLimits: {\n children: 40,\n },\n presets: ['Email button'],\n },\n emailDivider: {\n pluginId: 'email',\n kind: 'element',\n category: 'Layout',\n displayName: 'Email divider',\n summary: 'A horizontal rule between email sections.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n color: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n color: 'color-picker',\n },\n textLimits: {},\n presets: ['Email divider'],\n },\n emailHtml: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email custom HTML',\n summary: 'Hand-written HTML for an email, used as-is.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n html: {\n type: 'string',\n maxLength: 2000,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n html: 'text',\n },\n propFields: {\n html: 'textarea',\n },\n textLimits: {\n html: 2000,\n },\n presets: ['Email custom HTML'],\n },\n emailImage: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email image',\n summary: 'An email-safe image, capped at 600px wide, optionally linked.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n src: {\n type: 'string',\n },\n alt: {\n type: 'string',\n maxLength: 200,\n },\n width: {\n type: 'string',\n maxLength: 200,\n },\n href: {\n type: 'string',\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n src: 'media',\n alt: 'text',\n width: 'text',\n href: 'url',\n },\n propFields: {\n src: 'text-field',\n alt: 'text-field',\n width: 'text-field',\n href: 'text-field',\n align: 'select',\n },\n textLimits: {\n alt: 200,\n width: 200,\n },\n presets: ['Email image'],\n },\n emailProduct: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email product',\n summary: 'A product card resolved at send time, so it never goes stale.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n buttonLabel: {\n type: 'string',\n maxLength: 40,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n buttonLabel: 'text',\n },\n propFields: {\n buttonLabel: 'text-field',\n },\n textLimits: {\n buttonLabel: 40,\n },\n presets: ['Email product'],\n },\n emailRichtext: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email rich text',\n summary: 'An HTML fragment in an email, sanitised on render.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n html: {\n type: 'string',\n maxLength: 2000,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n html: 'text',\n },\n propFields: {\n html: 'textarea',\n },\n textLimits: {\n html: 2000,\n },\n presets: ['Email rich text'],\n },\n emailSection: {\n pluginId: 'email',\n kind: 'element',\n category: 'Layout',\n displayName: 'Email section',\n summary: 'An email-safe band with its own background color and padding.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n backgroundColor: {\n type: 'string',\n },\n padding: {\n type: 'string',\n maxLength: 200,\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n padding: 'text',\n },\n propFields: {\n backgroundColor: 'color-picker',\n padding: 'text-field',\n align: 'select',\n },\n textLimits: {\n padding: 200,\n },\n presets: ['Email section'],\n },\n emailSpacer: {\n pluginId: 'email',\n kind: 'element',\n category: 'Layout',\n displayName: 'Email spacer',\n summary: 'Fixed vertical whitespace between email blocks.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n height: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n height: 'text',\n },\n propFields: {\n height: 'text-field',\n },\n textLimits: {\n height: 200,\n },\n presets: ['Email spacer'],\n },\n emailText: {\n pluginId: 'email',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Email text',\n summary: 'A paragraph of email copy in one of the preset styles.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n variant: {\n type: 'string',\n enum: ['heading', 'subheading', 'body', 'caption'],\n },\n color: {\n type: 'string',\n },\n align: {\n type: 'string',\n enum: ['left', 'center', 'right'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n },\n propFields: {\n children: 'textarea',\n variant: 'select',\n color: 'color-picker',\n align: 'select',\n },\n textLimits: {\n children: 2000,\n },\n presets: ['Email text'],\n },\n eventList: {\n pluginId: 'events-calendar',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Event List',\n summary:\n 'Your published events, each marked up so search engines can show it.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n mode: {\n type: 'string',\n enum: ['past'],\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n maxItems: 'text',\n },\n propFields: {\n heading: 'text-field',\n mode: 'select',\n maxItems: 'text-field',\n },\n textLimits: {\n heading: 200,\n maxItems: 200,\n },\n presets: ['Event List'],\n },\n form: {\n pluginId: 'forms',\n kind: 'element',\n category: 'Forms',\n displayName: 'Form',\n summary:\n 'Collects its Form Fields and sends the answers to you, or into a dataset.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n formName: {\n type: 'string',\n maxLength: 200,\n },\n datasetName: {\n type: 'string',\n maxLength: 200,\n },\n submitLabel: {\n type: 'string',\n maxLength: 40,\n },\n successMessage: {\n type: 'string',\n maxLength: 200,\n },\n afterSubmit: {\n type: 'string',\n enum: ['message', 'redirect', 'reveal'],\n },\n redirectScreenId: {\n type: 'string',\n },\n redirectUrl: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n formName: 'text',\n datasetName: 'text',\n submitLabel: 'text',\n successMessage: 'text',\n redirectScreenId: 'screen',\n redirectUrl: 'url',\n },\n propFields: {\n formName: 'text-field',\n datasetName: 'text-field',\n submitLabel: 'text-field',\n successMessage: 'text-field',\n afterSubmit: 'select',\n redirectScreenId: 'screen-select',\n redirectUrl: 'text-field',\n },\n textLimits: {\n formName: 200,\n datasetName: 200,\n submitLabel: 40,\n successMessage: 200,\n },\n presets: ['Contact Form'],\n },\n formField: {\n pluginId: 'forms',\n kind: 'element',\n category: 'Forms',\n displayName: 'Form Field',\n summary:\n 'One input inside a form — text, select, radio, checkbox or rating.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n fieldName: {\n type: 'string',\n maxLength: 200,\n },\n label: {\n type: 'string',\n maxLength: 200,\n },\n placeholder: {\n type: 'string',\n maxLength: 200,\n },\n fieldType: {\n type: 'string',\n enum: [\n 'text',\n 'email',\n 'textarea',\n 'select',\n 'radio',\n 'checkbox',\n 'rating',\n ],\n },\n options: {\n type: 'string',\n maxLength: 2000,\n },\n required: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n fieldName: 'text',\n label: 'text',\n placeholder: 'text',\n options: 'text',\n },\n propFields: {\n fieldName: 'text-field',\n label: 'text-field',\n placeholder: 'text-field',\n fieldType: 'select',\n options: 'textarea',\n required: 'switch',\n },\n textLimits: {\n fieldName: 200,\n label: 200,\n placeholder: 200,\n options: 2000,\n },\n presets: ['Form Field', 'Marketing consent'],\n },\n functionInput: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Calculator Input',\n summary:\n 'Asks one parameter of the Calculator it sits in: a number box, a list, a switch, or quick-pick chips.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n parameter: {\n type: 'string',\n maxLength: 200,\n },\n control: {\n type: 'string',\n enum: ['auto', 'number', 'text', 'select', 'chips', 'switch'],\n },\n choices: {\n type: 'string',\n maxLength: 200,\n },\n label: {\n type: 'string',\n maxLength: 200,\n },\n hideLabel: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n parameter: 'text',\n choices: 'text',\n label: 'text',\n },\n propFields: {\n parameter: 'text-field',\n control: 'select',\n choices: 'text-field',\n label: 'text-field',\n hideLabel: 'switch',\n },\n textLimits: {\n parameter: 200,\n choices: 200,\n label: 200,\n },\n presets: ['Calculator Input'],\n },\n functionOutput: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Calculator Result',\n summary:\n 'Shows one value from the Calculator it sits in, updated as the visitor answers.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n maxLength: 200,\n },\n placeholder: {\n type: 'string',\n maxLength: 200,\n },\n element: {\n type: 'string',\n enum: ['div', 'p', 'span'],\n },\n announce: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n name: 'text',\n placeholder: 'text',\n },\n propFields: {\n name: 'text-field',\n placeholder: 'text-field',\n element: 'select',\n announce: 'switch',\n },\n textLimits: {\n name: 200,\n placeholder: 200,\n },\n presets: ['Calculator Result'],\n },\n functionScope: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Calculator',\n summary: 'A container bound to one of your functions.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n functionName: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n functionName: 'text',\n },\n propFields: {\n functionName: 'text-field',\n },\n textLimits: {\n functionName: 200,\n },\n presets: ['Calculator'],\n },\n functionShow: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Show When',\n summary:\n 'A container inside a Calculator that appears only while one of the function’s values is true, non-zero or non…',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n when: {\n type: 'string',\n maxLength: 200,\n },\n invert: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n when: 'text',\n },\n propFields: {\n when: 'text-field',\n invert: 'switch',\n },\n textLimits: {\n when: 200,\n },\n presets: ['Show When'],\n },\n functionWidget: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Function Widget',\n summary:\n 'Runs one of your no-code functions and shows the result — calculators, quotes.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n functionName: {\n type: 'string',\n maxLength: 200,\n },\n title: {\n type: 'string',\n maxLength: 200,\n },\n buttonLabel: {\n type: 'string',\n maxLength: 40,\n },\n resultLabel: {\n type: 'string',\n maxLength: 200,\n },\n outputs: {\n type: 'string',\n maxLength: 2000,\n },\n autoRun: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n functionName: 'text',\n title: 'text',\n buttonLabel: 'text',\n resultLabel: 'text',\n outputs: 'text',\n },\n propFields: {\n functionName: 'text-field',\n title: 'text-field',\n buttonLabel: 'text-field',\n resultLabel: 'text-field',\n outputs: 'textarea',\n autoRun: 'switch',\n },\n textLimits: {\n functionName: 200,\n title: 200,\n buttonLabel: 40,\n resultLabel: 200,\n outputs: 2000,\n },\n presets: ['Function Widget'],\n },\n gate: {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Members gate',\n summary: 'Shows its children only to entitled members.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n teaserText: {\n type: 'string',\n maxLength: 200,\n },\n ctaLabel: {\n type: 'string',\n maxLength: 200,\n },\n ctaHref: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n teaserText: 'text',\n ctaLabel: 'text',\n ctaHref: 'text',\n },\n propFields: {\n teaserText: 'text-field',\n ctaLabel: 'text-field',\n ctaHref: 'text-field',\n },\n textLimits: {\n teaserText: 200,\n ctaLabel: 200,\n ctaHref: 200,\n },\n presets: ['Members gate'],\n },\n 'gated-video': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Members video',\n summary:\n 'A video only entitled members can play, resuming where they left off.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n videoIndex: {\n type: 'string',\n maxLength: 200,\n },\n lockedText: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n videoIndex: 'text',\n lockedText: 'text',\n },\n propFields: {\n videoIndex: 'text-field',\n lockedText: 'text-field',\n },\n textLimits: {\n videoIndex: 200,\n lockedText: 200,\n },\n presets: ['Members video'],\n },\n icon: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Icon',\n summary: 'A single icon from the library, at the size and color you pick.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n iconId: {\n type: 'string',\n },\n size: {\n type: 'string',\n maxLength: 200,\n },\n color: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n size: 'text',\n color: 'text',\n },\n propFields: {\n iconId: 'icon-picker',\n size: 'text-field',\n color: 'text-field',\n },\n textLimits: {\n size: 200,\n color: 200,\n },\n presets: ['Icon'],\n },\n image: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Image',\n summary:\n 'A picture from your media library or any URL, with fit, size and an optional link.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n src: {\n type: 'string',\n },\n alt: {\n type: 'string',\n maxLength: 200,\n },\n decorative: {\n type: 'boolean',\n },\n title: {\n type: 'string',\n maxLength: 200,\n },\n objectFit: {\n type: 'string',\n enum: ['cover', 'contain', 'fill', 'none', 'scale-down'],\n },\n width: {\n type: 'string',\n },\n height: {\n type: 'string',\n },\n loading: {\n type: 'string',\n enum: ['lazy', 'eager'],\n },\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n src: 'media',\n alt: 'text',\n title: 'text',\n screenId: 'screen',\n href: 'url',\n },\n propFields: {\n src: 'text-field',\n alt: 'text-field',\n decorative: 'switch',\n title: 'text-field',\n objectFit: 'select',\n width: 'css-dimension',\n height: 'css-dimension',\n loading: 'select',\n screenId: 'screen-select',\n href: 'text-field',\n },\n textLimits: {\n alt: 200,\n title: 200,\n },\n presets: ['Image'],\n },\n languageSwitcher: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Language Switcher',\n summary: \"Links between this screen's translations.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['text', 'buttons'],\n },\n uppercase: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n variant: 'select',\n uppercase: 'checkbox',\n },\n textLimits: {},\n presets: ['Language Switcher'],\n },\n layoutSlot: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Layout Slot',\n summary:\n \"Marks where each bound screen's content renders inside this layout.\",\n acceptsChildren: false,\n restrictChildren: [\n 'limitedTo',\n {\n components: [],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n caption: {\n type: 'string',\n maxLength: 200,\n },\n component: {\n type: 'string',\n enum: ['main', 'div', 'section', 'article'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n caption: 'text',\n },\n propFields: {\n caption: 'text-field',\n component: 'select',\n },\n textLimits: {\n caption: 200,\n },\n presets: ['Layout Slot'],\n },\n markdown: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Markdown',\n summary: 'A whole document written as markdown.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n content: {\n type: 'string',\n maxLength: 2000,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n content: 'text',\n },\n propFields: {\n content: 'markdown',\n },\n textLimits: {\n content: 2000,\n },\n presets: ['Markdown'],\n },\n marketplacePlugin: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'Plugin',\n summary:\n 'Where an installed marketplace plugin renders, in its own sandbox.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: ['Plugin'],\n },\n 'member-feed': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Member feed',\n summary: 'Updates only entitled members can see.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n emptyText: 'text',\n maxItems: 'text',\n },\n propFields: {\n heading: 'text-field',\n emptyText: 'text-field',\n maxItems: 'text-field',\n },\n textLimits: {\n heading: 200,\n emptyText: 200,\n maxItems: 200,\n },\n presets: ['Member feed'],\n },\n 'member-recovery': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Members',\n displayName: 'Password recovery',\n summary:\n 'Forgot-password request, and the reset form the emailed link opens.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n signinPath: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n signinPath: 'text',\n },\n propFields: {\n heading: 'text-field',\n signinPath: 'text-field',\n },\n textLimits: {\n heading: 200,\n signinPath: 200,\n },\n presets: ['Password recovery'],\n },\n 'member-signin': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Members',\n displayName: 'Member sign-in',\n summary: 'An email and password sign-in form for site members.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n signupPath: {\n type: 'string',\n maxLength: 200,\n },\n recoveryPath: {\n type: 'string',\n maxLength: 200,\n },\n continueFallback: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n signupPath: 'text',\n recoveryPath: 'text',\n continueFallback: 'text',\n },\n propFields: {\n heading: 'text-field',\n signupPath: 'text-field',\n recoveryPath: 'text-field',\n continueFallback: 'text-field',\n },\n textLimits: {\n heading: 200,\n signupPath: 200,\n recoveryPath: 200,\n continueFallback: 200,\n },\n presets: ['Member sign-in'],\n },\n 'member-signup': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Members',\n displayName: 'Member sign-up',\n summary: 'A create-account form for site membership.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n signinPath: {\n type: 'string',\n maxLength: 200,\n },\n continueFallback: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n signinPath: 'text',\n continueFallback: 'text',\n },\n propFields: {\n heading: 'text-field',\n signinPath: 'text-field',\n continueFallback: 'text-field',\n },\n textLimits: {\n heading: 200,\n signinPath: 200,\n continueFallback: 200,\n },\n presets: ['Member sign-up'],\n },\n muiAccordion: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Accordion',\n summary:\n 'Header that expands to reveal its details — FAQs, long forms, anything progressive.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiAccordionSummary', 'muiAccordionDetails'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n defaultExpanded: {\n type: 'boolean',\n },\n disableGutters: {\n type: 'boolean',\n },\n disabled: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n defaultExpanded: 'switch',\n disableGutters: 'switch',\n disabled: 'switch',\n },\n textLimits: {},\n presets: ['Accordion'],\n },\n muiAccordionDetails: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Accordion Details',\n summary: 'The region an accordion reveals when expanded.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: [],\n },\n muiAccordionSummary: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Accordion Summary',\n summary: 'The clickable header row of an accordion.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n screenId: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n screenId: 'screen',\n },\n propFields: {\n children: 'textarea',\n screenId: 'screen-select',\n },\n textLimits: {\n children: 2000,\n },\n presets: [],\n },\n muiAppBar: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'App Bar',\n summary:\n 'The bar across the top of the site — put a Toolbar Content inside it.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n color: {\n type: 'string',\n enum: [\n 'default',\n 'inherit',\n 'transparent',\n 'primary',\n 'secondary',\n 'tertiary',\n ],\n },\n position: {\n type: 'string',\n enum: ['absolute', 'fixed', 'relative', 'static', 'sticky'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n color: 'select',\n position: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['App Bar', 'Nav Bar'],\n },\n muiBox: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Box',\n summary:\n 'Generic container with no styling of its own — style it from the styles panel.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'span',\n 'p',\n 'figure',\n 'figcaption',\n 'blockquote',\n 'pre',\n ],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n component: 'select',\n },\n textLimits: {},\n presets: ['Two-tone Statement', 'Box'],\n },\n muiBreadcrumbs: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Breadcrumbs',\n summary: 'Trail showing where a page sits.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n separator: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n itemsBeforeCollapse: {\n type: 'string',\n maxLength: 200,\n },\n itemsAfterCollapse: {\n type: 'string',\n maxLength: 200,\n },\n expandText: {\n type: 'string',\n maxLength: 200,\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n separator: 'text',\n maxItems: 'text',\n itemsBeforeCollapse: 'text',\n itemsAfterCollapse: 'text',\n expandText: 'text',\n ariaLabel: 'text',\n },\n propFields: {\n separator: 'text-field',\n maxItems: 'text-field',\n itemsBeforeCollapse: 'text-field',\n itemsAfterCollapse: 'text-field',\n expandText: 'text-field',\n ariaLabel: 'text-field',\n },\n textLimits: {\n separator: 200,\n maxItems: 200,\n itemsBeforeCollapse: 200,\n itemsAfterCollapse: 200,\n expandText: 200,\n ariaLabel: 200,\n },\n presets: ['Breadcrumbs'],\n },\n muiButton: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Button',\n summary:\n 'A button — or a link styled as one, if you point it at a screen or URL.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 40,\n },\n color: {\n type: 'string',\n enum: [\n 'inherit',\n 'primary',\n 'secondary',\n 'success',\n 'error',\n 'info',\n 'warning',\n ],\n },\n disabled: {\n type: 'boolean',\n },\n fullWidth: {\n type: 'boolean',\n },\n size: {\n type: 'string',\n enum: ['inherit', 'small', 'medium', 'large'],\n },\n variant: {\n type: 'string',\n enum: ['text', 'outlined', 'contained'],\n },\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n target: {\n type: 'string',\n enum: ['_self', '_blank', 'custom'],\n },\n targetName: {\n type: 'string',\n maxLength: 200,\n },\n renderAs: {\n type: 'string',\n enum: ['button', 'linkButton'],\n },\n startIconId: {\n type: 'string',\n },\n endIconId: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n screenId: 'screen',\n href: 'url',\n targetName: 'text',\n },\n propFields: {\n children: 'textarea',\n color: 'select',\n disabled: 'switch',\n fullWidth: 'switch',\n size: 'select',\n variant: 'select',\n screenId: 'screen-select',\n href: 'text-field',\n target: 'select',\n targetName: 'text-field',\n renderAs: 'select',\n startIconId: 'icon-picker',\n endIconId: 'icon-picker',\n },\n textLimits: {\n children: 40,\n targetName: 200,\n },\n presets: ['Outlined Button'],\n },\n muiCard: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card',\n summary:\n 'Surface that groups a header, content and actions about one subject.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n variant: {\n type: 'string',\n enum: ['elevation', 'outlined'],\n },\n elevation: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n elevation: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n variant: 'select',\n elevation: 'text-field',\n },\n textLimits: {\n ariaLabel: 200,\n elevation: 200,\n },\n presets: ['Card', 'Card Outlined'],\n },\n muiCardActions: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card Actions',\n summary: 'The button row at the bottom of a card.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n disableSpacing: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n disableSpacing: 'switch',\n },\n textLimits: {},\n presets: [],\n },\n muiCardContent: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card Content',\n summary: 'The padded body region of a card.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: [],\n },\n muiCardHeader: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Card Header',\n summary: 'The title and subheader at the top of a card.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n maxLength: 200,\n },\n subheader: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n title: 'text',\n subheader: 'text',\n },\n propFields: {\n title: 'text-field',\n subheader: 'text-field',\n },\n textLimits: {\n title: 200,\n subheader: 200,\n },\n presets: [],\n },\n muiContainer: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Container',\n summary: 'Centers your page content and caps how wide it gets.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n fixed: {\n type: 'boolean',\n },\n disableGutters: {\n type: 'boolean',\n },\n maxWidth: {\n type: 'string',\n enum: ['xs', 'sm', 'md', 'lg', 'xl'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n fixed: 'switch',\n disableGutters: 'switch',\n maxWidth: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Container', 'Prose Container'],\n },\n muiDrawer: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Drawer',\n summary: 'A panel that slides in from an edge.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n anchor: {\n type: 'string',\n enum: ['left', 'right', 'top', 'bottom'],\n },\n width: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n anchor: 'select',\n width: 'css-dimension',\n },\n textLimits: {},\n presets: ['Drawer'],\n },\n muiDrawerToggle: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Menu Button',\n summary: \"A hamburger button that opens the page's drawer.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n ariaLabel: 'text-field',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Menu Button'],\n },\n muiGrid: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Grid',\n summary: 'Responsive 12-column layout.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n container: {\n type: 'boolean',\n },\n size: {\n type: 'string',\n },\n offset: {\n type: 'string',\n },\n spacing: {\n type: 'string',\n maxLength: 200,\n },\n rowSpacing: {\n type: 'string',\n maxLength: 200,\n },\n columnSpacing: {\n type: 'string',\n maxLength: 200,\n },\n columns: {\n type: 'string',\n maxLength: 200,\n },\n direction: {\n type: 'string',\n enum: ['row', 'row-reverse'],\n },\n wrap: {\n type: 'string',\n enum: ['wrap', 'nowrap', 'wrap-reverse'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n spacing: 'text',\n rowSpacing: 'text',\n columnSpacing: 'text',\n columns: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n container: 'switch',\n size: 'breakpoint-span',\n offset: 'breakpoint-span',\n spacing: 'text-field',\n rowSpacing: 'text-field',\n columnSpacing: 'text-field',\n columns: 'text-field',\n direction: 'select',\n wrap: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n spacing: 200,\n rowSpacing: 200,\n columnSpacing: 200,\n columns: 200,\n },\n presets: ['Grid', 'Grid Cell'],\n },\n muiImageList: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Image List',\n summary: 'Dense grid of images — standard, quilted, masonry or woven.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiImageListItem'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['standard', 'quilted', 'masonry', 'woven'],\n },\n cols: {\n type: 'string',\n maxLength: 200,\n },\n gap: {\n type: 'string',\n maxLength: 200,\n },\n rowHeight: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n cols: 'text',\n gap: 'text',\n rowHeight: 'text',\n },\n propFields: {\n variant: 'select',\n cols: 'text-field',\n gap: 'text-field',\n rowHeight: 'text-field',\n },\n textLimits: {\n cols: 200,\n gap: 200,\n rowHeight: 200,\n },\n presets: ['Image List', 'Image List Masonry'],\n },\n muiImageListItem: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Image List Item',\n summary: 'One tile of an image list, with an optional caption bar.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n title: {\n type: 'string',\n maxLength: 200,\n },\n subtitle: {\n type: 'string',\n maxLength: 200,\n },\n barPosition: {\n type: 'string',\n enum: ['bottom', 'top', 'below'],\n },\n cols: {\n type: 'string',\n maxLength: 200,\n },\n rows: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n title: 'text',\n subtitle: 'text',\n cols: 'text',\n rows: 'text',\n },\n propFields: {\n title: 'text-field',\n subtitle: 'text-field',\n barPosition: 'select',\n cols: 'text-field',\n rows: 'text-field',\n },\n textLimits: {\n title: 200,\n subtitle: 200,\n cols: 200,\n rows: 200,\n },\n presets: ['Image List Item'],\n },\n muiInlineText: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Inline Text',\n summary:\n 'One run of text inside a sentence — put several side by side in a paragraph to emphasize a phrase without bre…',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n element: {\n type: 'string',\n enum: ['span', 'strong', 'em', 'mark', 'small'],\n },\n tone: {\n type: 'string',\n enum: [\n 'inherit',\n 'primary',\n 'secondary',\n 'disabled',\n 'accent',\n 'accentAlt',\n 'success',\n 'warning',\n 'error',\n ],\n },\n weight: {\n type: 'string',\n enum: ['inherit', 'regular', 'medium', 'semibold', 'bold'],\n },\n decoration: {\n type: 'string',\n enum: ['inherit', 'none', 'underline', 'lineThrough'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n },\n propFields: {\n children: 'textarea',\n element: 'select',\n tone: 'select',\n weight: 'select',\n decoration: 'select',\n },\n textLimits: {\n children: 2000,\n },\n presets: ['Inline Text', 'Emphasized Text'],\n },\n muiLinkBox: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Link Container',\n summary:\n 'Container that is itself a link — put an icon, a heading and a description inside and the whole box becomes o…',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n newTab: {\n type: 'boolean',\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n redundant: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n screenId: 'screen',\n href: 'url',\n ariaLabel: 'text',\n },\n propFields: {\n screenId: 'screen-select',\n href: 'text-field',\n newTab: 'switch',\n ariaLabel: 'text-field',\n redundant: 'switch',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Link Container'],\n },\n muiList: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'List',\n summary: 'Vertical list of items, optionally under a sticky heading.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiListItem'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n subheader: {\n type: 'string',\n maxLength: 200,\n },\n dense: {\n type: 'boolean',\n },\n disablePadding: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n subheader: 'text',\n },\n propFields: {\n subheader: 'text-field',\n dense: 'switch',\n disablePadding: 'switch',\n },\n textLimits: {\n subheader: 200,\n },\n presets: ['List'],\n },\n muiListItem: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'List Item',\n summary: 'One row of a list.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiListItemText'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n divider: {\n type: 'boolean',\n },\n alignItems: {\n type: 'string',\n enum: ['center', 'flex-start'],\n },\n dense: {\n type: 'boolean',\n },\n disableGutters: {\n type: 'boolean',\n },\n disablePadding: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n divider: 'switch',\n alignItems: 'select',\n dense: 'switch',\n disableGutters: 'switch',\n disablePadding: 'switch',\n },\n textLimits: {},\n presets: ['List Item'],\n },\n muiListItemText: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Data Display',\n displayName: 'List Item Text',\n summary: 'The primary and secondary text pair inside a list row.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n primary: {\n type: 'string',\n maxLength: 2000,\n },\n secondary: {\n type: 'string',\n maxLength: 2000,\n },\n inset: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n primary: 'text',\n secondary: 'text',\n },\n propFields: {\n primary: 'textarea',\n secondary: 'textarea',\n inset: 'switch',\n },\n textLimits: {\n primary: 2000,\n secondary: 2000,\n },\n presets: ['List Item Text'],\n },\n muiMegaMenu: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Mega Menu',\n summary:\n 'A nav item that opens a wide panel — columns of links, promos, whatever you build.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n label: {\n type: 'string',\n maxLength: 200,\n },\n panelWidth: {\n type: 'string',\n enum: ['auto', 'wide', 'full'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n label: 'text',\n },\n propFields: {\n label: 'text-field',\n panelWidth: 'select',\n },\n textLimits: {\n label: 200,\n },\n presets: ['Mega Menu'],\n },\n muiNavMenu: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Dropdown Menu',\n summary: 'A nav item that opens a dropdown of links beneath it.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n label: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n label: 'text',\n },\n propFields: {\n label: 'text-field',\n },\n textLimits: {\n label: 200,\n },\n presets: ['Dropdown Menu'],\n },\n muiPagination: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Pagination',\n summary: 'Page picker.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n count: {\n type: 'string',\n maxLength: 200,\n },\n defaultPage: {\n type: 'string',\n maxLength: 200,\n },\n variant: {\n type: 'string',\n enum: ['text', 'outlined'],\n },\n shape: {\n type: 'string',\n enum: ['circular', 'rounded'],\n },\n color: {\n type: 'string',\n enum: ['standard', 'primary', 'secondary'],\n },\n size: {\n type: 'string',\n enum: ['medium', 'small', 'large'],\n },\n siblingCount: {\n type: 'string',\n maxLength: 200,\n },\n boundaryCount: {\n type: 'string',\n maxLength: 200,\n },\n showFirstButton: {\n type: 'boolean',\n },\n showLastButton: {\n type: 'boolean',\n },\n hidePrevButton: {\n type: 'boolean',\n },\n hideNextButton: {\n type: 'boolean',\n },\n disabled: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n count: 'text',\n defaultPage: 'text',\n siblingCount: 'text',\n boundaryCount: 'text',\n },\n propFields: {\n count: 'text-field',\n defaultPage: 'text-field',\n variant: 'select',\n shape: 'select',\n color: 'select',\n size: 'select',\n siblingCount: 'text-field',\n boundaryCount: 'text-field',\n showFirstButton: 'switch',\n showLastButton: 'switch',\n hidePrevButton: 'switch',\n hideNextButton: 'switch',\n disabled: 'switch',\n },\n textLimits: {\n count: 200,\n defaultPage: 200,\n siblingCount: 200,\n boundaryCount: 200,\n },\n presets: ['Pagination'],\n },\n muiPaper: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Paper',\n summary: 'Themed surface with a shadow or an outline.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n variant: {\n type: 'string',\n enum: ['elevation', 'outlined'],\n },\n elevation: {\n type: 'string',\n maxLength: 200,\n },\n square: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n elevation: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n variant: 'select',\n elevation: 'text-field',\n square: 'switch',\n },\n textLimits: {\n ariaLabel: 200,\n elevation: 200,\n },\n presets: ['Paper', 'Paper Outlined'],\n },\n muiScreenLink: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Screen Link',\n summary: 'Links to another screen by id, so it survives a slug change.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 40,\n },\n screenId: {\n type: 'string',\n },\n href: {\n type: 'string',\n },\n target: {\n type: 'string',\n enum: ['_self', '_blank', 'custom'],\n },\n targetName: {\n type: 'string',\n maxLength: 200,\n },\n renderAs: {\n type: 'string',\n enum: ['button', 'link', 'linkButton'],\n },\n color: {\n type: 'string',\n enum: [\n 'inherit',\n 'primary',\n 'secondary',\n 'success',\n 'error',\n 'info',\n 'warning',\n ],\n },\n size: {\n type: 'string',\n enum: ['inherit', 'small', 'medium', 'large'],\n },\n fullWidth: {\n type: 'boolean',\n },\n variant: {\n type: 'string',\n enum: ['text', 'outlined', 'contained'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n screenId: 'screen',\n href: 'url',\n targetName: 'text',\n },\n propFields: {\n children: 'textarea',\n screenId: 'screen-select',\n href: 'text-field',\n target: 'select',\n targetName: 'text-field',\n renderAs: 'select',\n color: 'select',\n size: 'select',\n fullWidth: 'switch',\n variant: 'select',\n },\n textLimits: {\n children: 40,\n targetName: 200,\n },\n presets: ['Screen Link'],\n },\n muiStack: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Stack',\n summary:\n 'Lays children out in a row or column with even spacing — the workhorse for most layouts.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n direction: {\n type: 'string',\n enum: ['column', 'column-reverse', 'row', 'row-reverse'],\n },\n justifyContent: {\n type: 'string',\n enum: [\n 'flex-start',\n 'center',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ],\n },\n alignItems: {\n type: 'string',\n enum: ['stretch', 'flex-start', 'center', 'flex-end', 'baseline'],\n },\n spacing: {\n type: 'string',\n maxLength: 200,\n },\n useFlexGap: {\n type: 'boolean',\n },\n flexWrap: {\n type: 'string',\n enum: ['nowrap', 'wrap', 'wrap-reverse'],\n },\n divider: {\n type: 'string',\n enum: ['line', 'dashed'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n spacing: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n direction: 'select',\n justifyContent: 'select',\n alignItems: 'select',\n spacing: 'text-field',\n useFlexGap: 'switch',\n flexWrap: 'select',\n divider: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n spacing: 200,\n },\n presets: [\n 'Image Gallery',\n 'Testimonials',\n 'Pricing Table',\n 'FAQ',\n 'Announcement Bar',\n 'Hero',\n 'Feature Grid',\n 'Image + Text',\n 'Call to Action',\n 'Dropdown Panel',\n 'Mobile Nav',\n 'Stack Horizontal',\n 'Stack Vertical',\n 'Contact Section',\n 'Product page',\n ],\n },\n muiTabPanel: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Tab Panel',\n summary: 'The content shown under one tab.',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n label: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n label: 'text',\n },\n propFields: {\n label: 'text-field',\n },\n textLimits: {\n label: 200,\n },\n presets: ['Tab Panel'],\n },\n muiTabs: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Tabs',\n summary:\n 'Tab strip whose Tab Panel children each name the tab that reveals them.',\n acceptsChildren: true,\n restrictChildren: [\n 'limitedTo',\n {\n components: ['muiTabPanel'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n labels: {\n type: 'string',\n maxLength: 2000,\n },\n tabLink1: {\n type: 'string',\n },\n tabLink2: {\n type: 'string',\n },\n tabLink3: {\n type: 'string',\n },\n tabLink4: {\n type: 'string',\n },\n tabLink5: {\n type: 'string',\n },\n tabLink6: {\n type: 'string',\n },\n tabLink7: {\n type: 'string',\n },\n tabLink8: {\n type: 'string',\n },\n opensOn: {\n type: 'string',\n },\n orientation: {\n type: 'string',\n enum: ['horizontal', 'vertical'],\n },\n variant: {\n type: 'string',\n enum: ['standard', 'scrollable', 'fullWidth'],\n },\n ssrPanels: {\n type: 'boolean',\n },\n centered: {\n type: 'boolean',\n },\n textColor: {\n type: 'string',\n enum: ['primary', 'secondary', 'inherit'],\n },\n indicatorColor: {\n type: 'string',\n enum: ['primary', 'secondary'],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n labels: 'text',\n tabLink1: 'screen',\n tabLink2: 'screen',\n tabLink3: 'screen',\n tabLink4: 'screen',\n tabLink5: 'screen',\n tabLink6: 'screen',\n tabLink7: 'screen',\n tabLink8: 'screen',\n ariaLabel: 'text',\n },\n propFields: {\n labels: 'textarea',\n tabLink1: 'screen-select',\n tabLink2: 'screen-select',\n tabLink3: 'screen-select',\n tabLink4: 'screen-select',\n tabLink5: 'screen-select',\n tabLink6: 'screen-select',\n tabLink7: 'screen-select',\n tabLink8: 'screen-select',\n opensOn: 'select',\n orientation: 'select',\n variant: 'select',\n ssrPanels: 'switch',\n centered: 'switch',\n textColor: 'select',\n indicatorColor: 'select',\n ariaLabel: 'text-field',\n },\n textLimits: {\n labels: 2000,\n ariaLabel: 200,\n },\n presets: ['Tabs'],\n },\n muiToolbar: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Toolbar Content',\n summary: 'The content row inside an App Bar — brand, links, actions.',\n acceptsChildren: true,\n restrictParent: [\n 'limitedTo',\n {\n components: ['muiAppBar'],\n plugins: ['mui'],\n },\n ],\n propsSchema: {\n type: 'object',\n properties: {\n component: {\n type: 'string',\n enum: [\n 'div',\n 'section',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n disableGutters: {\n type: 'boolean',\n },\n variant: {\n type: 'string',\n enum: ['dense', 'regular'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n component: 'select',\n ariaLabel: 'text-field',\n disableGutters: 'switch',\n variant: 'select',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Toolbar Content'],\n },\n muiTypography: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Text',\n displayName: 'Typography',\n summary: \"A block of text in one of the theme's type styles.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n children: {\n type: 'string',\n maxLength: 2000,\n },\n variant: {\n type: 'string',\n enum: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n },\n component: {\n type: 'string',\n enum: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'div', 'span'],\n },\n align: {\n type: 'string',\n enum: ['inherit', 'left', 'center', 'right', 'justify'],\n },\n noWrap: {\n type: 'boolean',\n },\n gutterBottom: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n children: 'text',\n },\n propFields: {\n children: 'textarea',\n variant: 'select',\n component: 'select',\n align: 'select',\n noWrap: 'switch',\n gutterBottom: 'switch',\n },\n textLimits: {\n children: 2000,\n },\n presets: [\n 'Display XL',\n 'Heading 1',\n 'Heading 2',\n 'Heading 3',\n 'Heading 4',\n 'Heading 5',\n 'Heading 6',\n 'Subtitle 1',\n 'Subtitle 2',\n 'Body 1',\n 'Body 2',\n 'Lede',\n 'Overline',\n 'Caption',\n 'Body compact',\n 'Micro',\n ],\n },\n 'newsletter-signup': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Newsletter signup',\n summary: 'A consented email capture that writes straight into contacts.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n buttonLabel: {\n type: 'string',\n maxLength: 40,\n },\n successText: {\n type: 'string',\n maxLength: 200,\n },\n listId: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n buttonLabel: 'text',\n successText: 'text',\n listId: 'text',\n },\n propFields: {\n heading: 'text-field',\n buttonLabel: 'text-field',\n successText: 'text-field',\n listId: 'text-field',\n },\n textLimits: {\n heading: 200,\n buttonLabel: 40,\n successText: 200,\n listId: 200,\n },\n presets: ['Newsletter signup'],\n },\n product: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product',\n summary: 'A single product card with a buy button, priced on the server.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n productId: {\n type: 'string',\n maxLength: 200,\n },\n name: {\n type: 'string',\n maxLength: 200,\n },\n priceUsd: {\n type: 'string',\n maxLength: 200,\n },\n description: {\n type: 'string',\n maxLength: 200,\n },\n imageUrl: {\n type: 'string',\n },\n buyLabel: {\n type: 'string',\n maxLength: 200,\n },\n showCoupon: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n productId: 'text',\n name: 'text',\n priceUsd: 'text',\n description: 'text',\n imageUrl: 'url',\n buyLabel: 'text',\n },\n propFields: {\n productId: 'text-field',\n name: 'text-field',\n priceUsd: 'text-field',\n description: 'text-field',\n imageUrl: 'text-field',\n buyLabel: 'text-field',\n showCoupon: 'checkbox',\n },\n textLimits: {\n productId: 200,\n name: 200,\n priceUsd: 200,\n description: 200,\n buyLabel: 200,\n },\n presets: ['Product'],\n },\n 'product-detail': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product detail',\n summary: \"One product's gallery, options and buy button.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n slug: {\n type: 'string',\n maxLength: 200,\n },\n buyLabel: {\n type: 'string',\n maxLength: 200,\n },\n hideDescription: {\n type: 'boolean',\n },\n showCoupon: {\n type: 'boolean',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n slug: 'text',\n buyLabel: 'text',\n },\n propFields: {\n slug: 'text-field',\n buyLabel: 'text-field',\n hideDescription: 'checkbox',\n showCoupon: 'checkbox',\n },\n textLimits: {\n slug: 200,\n buyLabel: 200,\n },\n presets: ['Product detail'],\n },\n 'product-grid': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product grid',\n summary:\n 'Your catalog as a grid, with optional search, category chips, sort and paging.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n source: {\n type: 'string',\n enum: ['all', 'collection', 'category', 'tag'],\n },\n collectionSlug: {\n type: 'string',\n maxLength: 200,\n },\n categorySlug: {\n type: 'string',\n maxLength: 200,\n },\n tag: {\n type: 'string',\n maxLength: 200,\n },\n sort: {\n type: 'string',\n enum: ['name', 'price-asc', 'price-desc', 'newest'],\n },\n columns: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n showFilters: {\n type: 'boolean',\n },\n showSearch: {\n type: 'boolean',\n },\n showCategories: {\n type: 'boolean',\n },\n showSort: {\n type: 'boolean',\n },\n showTypeFilter: {\n type: 'boolean',\n },\n showPriceFilter: {\n type: 'boolean',\n },\n pageSize: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n collectionSlug: 'text',\n categorySlug: 'text',\n tag: 'text',\n columns: 'text',\n maxItems: 'text',\n emptyText: 'text',\n pageSize: 'text',\n },\n propFields: {\n source: 'select',\n collectionSlug: 'text-field',\n categorySlug: 'text-field',\n tag: 'text-field',\n sort: 'select',\n columns: 'text-field',\n maxItems: 'text-field',\n emptyText: 'text-field',\n showFilters: 'checkbox',\n showSearch: 'checkbox',\n showCategories: 'checkbox',\n showSort: 'checkbox',\n showTypeFilter: 'checkbox',\n showPriceFilter: 'checkbox',\n pageSize: 'text-field',\n },\n textLimits: {\n collectionSlug: 200,\n categorySlug: 200,\n tag: 200,\n columns: 200,\n maxItems: 200,\n emptyText: 200,\n pageSize: 200,\n },\n presets: ['Product grid', 'Shop catalog'],\n },\n 'product-reviews': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Product reviews',\n summary:\n 'Approved reviews with verified-buyer badges, and a form to add one.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n },\n propFields: {\n heading: 'text-field',\n },\n textLimits: {\n heading: 200,\n },\n presets: ['Product reviews'],\n },\n 'related-products': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Related products',\n summary:\n 'An upsell strip — your manual picks, or what people buy together.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n maxItems: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n maxItems: 'text',\n },\n propFields: {\n heading: 'text-field',\n maxItems: 'text-field',\n },\n textLimits: {\n heading: 200,\n maxItems: 200,\n },\n presets: ['Related products'],\n },\n 'reservation-widget': {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Reservation widget',\n summary:\n 'A date-range booking with a live quote and a deposit taken up front.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n resourceId: {\n type: 'string',\n maxLength: 200,\n },\n reserveLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n resourceId: 'text',\n reserveLabel: 'text',\n },\n propFields: {\n resourceId: 'text-field',\n reserveLabel: 'text-field',\n },\n textLimits: {\n resourceId: 200,\n reserveLabel: 200,\n },\n presets: ['Reservation widget'],\n },\n reusableInstance: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Surface',\n displayName: 'Reusable Component',\n summary: 'Where a reusable component is placed.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {},\n textLimits: {},\n presets: [],\n },\n searchBox: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Forms',\n displayName: 'Search Box',\n summary: \"A search field that opens the site's search page.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n placeholder: {\n type: 'string',\n maxLength: 200,\n },\n defaultValue: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n placeholder: 'text',\n defaultValue: 'text',\n },\n propFields: {\n placeholder: 'text-field',\n defaultValue: 'text-field',\n },\n textLimits: {\n placeholder: 200,\n defaultValue: 200,\n },\n presets: ['Search Box'],\n },\n section: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Layout',\n displayName: 'Section',\n summary:\n 'Groups components inside a semantic HTML element (section, article, nav, …).',\n acceptsChildren: true,\n propsSchema: {\n type: 'object',\n properties: {\n element: {\n type: 'string',\n enum: [\n 'section',\n 'div',\n 'article',\n 'aside',\n 'nav',\n 'header',\n 'footer',\n ],\n },\n ariaLabel: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n ariaLabel: 'text',\n },\n propFields: {\n element: 'select',\n ariaLabel: 'text-field',\n },\n textLimits: {\n ariaLabel: 200,\n },\n presets: ['Footer', 'Section'],\n },\n socialLinks: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Social Links',\n summary: 'A row of icon links to whichever social profiles you fill in.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n twitter: {\n type: 'string',\n maxLength: 200,\n },\n instagram: {\n type: 'string',\n maxLength: 200,\n },\n facebook: {\n type: 'string',\n maxLength: 200,\n },\n linkedin: {\n type: 'string',\n maxLength: 200,\n },\n youtube: {\n type: 'string',\n maxLength: 200,\n },\n github: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n twitter: 'text',\n instagram: 'text',\n facebook: 'text',\n linkedin: 'text',\n youtube: 'text',\n github: 'text',\n },\n propFields: {\n twitter: 'text-field',\n instagram: 'text-field',\n facebook: 'text-field',\n linkedin: 'text-field',\n youtube: 'text-field',\n github: 'text-field',\n },\n textLimits: {\n twitter: 200,\n instagram: 200,\n facebook: 200,\n linkedin: 200,\n youtube: 200,\n github: 200,\n },\n presets: ['Social Links'],\n },\n tableOfContents: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Navigation',\n displayName: 'Table of Contents',\n summary: \"An on-this-page list linking to a Markdown element's headings.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n depth: {\n type: 'string',\n enum: ['3', '2'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n },\n propFields: {\n heading: 'text-field',\n depth: 'select',\n },\n textLimits: {\n heading: 200,\n },\n presets: ['Table of Contents'],\n },\n themeModeSwitcher: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Input',\n displayName: 'Theme mode switcher',\n summary:\n 'Lets visitors override the site theme with light, dark, or device default.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n variant: {\n type: 'string',\n enum: ['icon', 'toggle'],\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {},\n propFields: {\n variant: 'select',\n },\n textLimits: {},\n presets: ['Theme mode switcher'],\n },\n video: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Video',\n summary: 'Plays a video file from your media library or any URL.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n src: {\n type: 'string',\n },\n poster: {\n type: 'string',\n },\n title: {\n type: 'string',\n maxLength: 200,\n },\n description: {\n type: 'string',\n maxLength: 2000,\n },\n uploadDate: {\n type: 'string',\n maxLength: 200,\n },\n durationSeconds: {\n type: 'string',\n maxLength: 200,\n },\n lightbox: {\n type: 'boolean',\n },\n loadPlayer: {\n type: 'boolean',\n },\n preload: {\n type: 'string',\n enum: ['none', 'metadata', 'auto'],\n },\n controls: {\n type: 'boolean',\n },\n autoPlay: {\n type: 'boolean',\n },\n loop: {\n type: 'boolean',\n },\n muted: {\n type: 'boolean',\n },\n playsInline: {\n type: 'boolean',\n },\n captionsSrc: {\n type: 'string',\n maxLength: 200,\n },\n captionsLabel: {\n type: 'string',\n maxLength: 200,\n },\n captionsLang: {\n type: 'string',\n maxLength: 200,\n },\n width: {\n type: 'string',\n },\n height: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n src: 'media',\n poster: 'media',\n title: 'text',\n description: 'text',\n uploadDate: 'text',\n durationSeconds: 'text',\n captionsSrc: 'text',\n captionsLabel: 'text',\n captionsLang: 'text',\n },\n propFields: {\n src: 'text-field',\n poster: 'text-field',\n title: 'text-field',\n description: 'textarea',\n uploadDate: 'text-field',\n durationSeconds: 'text-field',\n lightbox: 'switch',\n loadPlayer: 'switch',\n preload: 'select',\n controls: 'checkbox',\n autoPlay: 'checkbox',\n loop: 'checkbox',\n muted: 'checkbox',\n playsInline: 'checkbox',\n captionsSrc: 'text-field',\n captionsLabel: 'text-field',\n captionsLang: 'text-field',\n width: 'css-dimension',\n height: 'css-dimension',\n },\n textLimits: {\n title: 200,\n description: 2000,\n uploadDate: 200,\n durationSeconds: 200,\n captionsSrc: 200,\n captionsLabel: 200,\n captionsLang: 200,\n },\n presets: ['Video'],\n },\n videoEmbed: {\n pluginId: 'mui',\n kind: 'element',\n category: 'Media',\n displayName: 'Video',\n summary: \"Embeds a YouTube or Vimeo player from the video's URL.\",\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n url: {\n type: 'string',\n },\n height: {\n type: 'string',\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n url: 'url',\n },\n propFields: {\n url: 'text-field',\n height: 'css-dimension',\n },\n textLimits: {},\n presets: ['Video'],\n },\n wishlist: {\n pluginId: 'commerce',\n kind: 'element',\n category: 'Commerce',\n displayName: 'Wishlist',\n summary: 'Products a visitor saved, linking back to their pages.',\n acceptsChildren: false,\n propsSchema: {\n type: 'object',\n properties: {\n heading: {\n type: 'string',\n maxLength: 200,\n },\n emptyText: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n heading: 'text',\n emptyText: 'text',\n },\n propFields: {\n heading: 'text-field',\n emptyText: 'text-field',\n },\n textLimits: {\n heading: 200,\n emptyText: 200,\n },\n presets: ['Wishlist'],\n },\n}\n\n/** What every node can do, whatever its componentId. */\nexport const AI_NODE_CAPABILITIES: Record<string, AiNodeCapability> = {\n repeat: {\n id: 'repeat',\n displayName: 'Repeat',\n summary: 'Renders an element once per record of the data it repeats over.',\n propsSchema: {\n type: 'object',\n properties: {\n repeatSelf: {\n type: 'string',\n enum: ['false', 'true'],\n },\n repeatLimit: {\n type: 'string',\n maxLength: 200,\n },\n repeatFilter: {\n type: 'string',\n maxLength: 200,\n },\n repeatSort: {\n type: 'string',\n maxLength: 200,\n },\n },\n required: [],\n additionalProperties: false,\n },\n propRoles: {\n repeatLimit: 'text',\n repeatFilter: 'text',\n repeatSort: 'text',\n },\n propFields: {\n repeatSelf: 'select',\n repeatLimit: 'text-field',\n repeatFilter: 'text-field',\n repeatSort: 'text-field',\n },\n textLimits: {\n repeatLimit: 200,\n repeatFilter: 200,\n repeatSort: 200,\n },\n childrenOnlyProps: ['repeatSelf'],\n omittedProps: [],\n },\n}\n\n/** Attribute field kinds this palette declares nowhere, and so turned away. */\nexport const AI_UNDECLARED_FIELD_KINDS: readonly string[] = [\n 'category-select',\n 'collection-select',\n 'data-table',\n 'dataset-field-select',\n 'dataset-select',\n 'form-select',\n 'node-select',\n 'plugin-select',\n 'plugin-settings',\n 'product-select',\n]\n\n/** The root and the allowed component ids of each surface. */\nexport const AI_SURFACES: Record<AiSurface, AiSurfaceDefinition> = {\n screen: {\n root: 'div',\n allow: [\n 'collectionCategories',\n 'collectionEntries',\n 'collectionEntryAuthor',\n 'collectionEntryBody',\n 'collectionEntryMeta',\n 'collectionRelated',\n 'collectionSearch',\n 'collectionShare',\n 'contentAuthorProfile',\n 'dataTable',\n 'form',\n 'formField',\n 'image',\n 'muiAccordion',\n 'muiAccordionDetails',\n 'muiAccordionSummary',\n 'muiAppBar',\n 'muiBox',\n 'muiBreadcrumbs',\n 'muiButton',\n 'muiCard',\n 'muiCardActions',\n 'muiCardContent',\n 'muiCardHeader',\n 'muiContainer',\n 'muiGrid',\n 'muiImageList',\n 'muiImageListItem',\n 'muiList',\n 'muiListItem',\n 'muiListItemText',\n 'muiScreenLink',\n 'muiStack',\n 'muiToolbar',\n 'muiTypography',\n 'searchBox',\n 'section',\n 'socialLinks',\n 'videoEmbed',\n ],\n },\n email: {\n root: 'div',\n allow: [\n 'emailButton',\n 'emailDivider',\n 'emailImage',\n 'emailProduct',\n 'emailSection',\n 'emailSpacer',\n 'emailText',\n ],\n },\n form: {\n root: 'form',\n allow: ['form', 'formField'],\n },\n layout: {\n root: 'div',\n allow: [\n 'collectionCategories',\n 'collectionEntries',\n 'collectionEntryAuthor',\n 'collectionEntryBody',\n 'collectionEntryMeta',\n 'collectionRelated',\n 'collectionSearch',\n 'collectionShare',\n 'contentAuthorProfile',\n 'dataTable',\n 'form',\n 'formField',\n 'image',\n 'layoutSlot',\n 'muiAccordion',\n 'muiAccordionDetails',\n 'muiAccordionSummary',\n 'muiAppBar',\n 'muiBox',\n 'muiBreadcrumbs',\n 'muiButton',\n 'muiCard',\n 'muiCardActions',\n 'muiCardContent',\n 'muiCardHeader',\n 'muiContainer',\n 'muiGrid',\n 'muiImageList',\n 'muiImageListItem',\n 'muiList',\n 'muiListItem',\n 'muiListItemText',\n 'muiScreenLink',\n 'muiStack',\n 'muiToolbar',\n 'muiTypography',\n 'searchBox',\n 'section',\n 'socialLinks',\n 'videoEmbed',\n ],\n },\n component: {\n root: 'div',\n allow: [\n 'collectionCategories',\n 'collectionEntries',\n 'collectionEntryAuthor',\n 'collectionEntryBody',\n 'collectionEntryMeta',\n 'collectionRelated',\n 'collectionSearch',\n 'collectionShare',\n 'contentAuthorProfile',\n 'dataTable',\n 'form',\n 'formField',\n 'icon',\n 'image',\n 'muiAccordion',\n 'muiAccordionDetails',\n 'muiAccordionSummary',\n 'muiAppBar',\n 'muiBox',\n 'muiBreadcrumbs',\n 'muiButton',\n 'muiCard',\n 'muiCardActions',\n 'muiCardContent',\n 'muiCardHeader',\n 'muiContainer',\n 'muiGrid',\n 'muiImageList',\n 'muiImageListItem',\n 'muiList',\n 'muiListItem',\n 'muiListItemText',\n 'muiScreenLink',\n 'muiStack',\n 'muiToolbar',\n 'muiTypography',\n 'searchBox',\n 'section',\n 'socialLinks',\n 'videoEmbed',\n ],\n },\n}\n\n/** Theme vocabulary an `sx` value may name. */\nexport const AI_SX_TOKENS: AiSxTokens = {\n palette: [\n 'action.active',\n 'action.disabled',\n 'action.disabledBackground',\n 'action.focus',\n 'action.hover',\n 'action.selected',\n 'background.default',\n 'background.paper',\n 'common.black',\n 'common.white',\n 'divider',\n 'error.contrastText',\n 'error.dark',\n 'error.light',\n 'error.main',\n 'grey.100',\n 'grey.200',\n 'grey.300',\n 'grey.400',\n 'grey.50',\n 'grey.500',\n 'grey.600',\n 'grey.700',\n 'grey.800',\n 'grey.900',\n 'grey.A100',\n 'grey.A200',\n 'grey.A400',\n 'grey.A700',\n 'info.contrastText',\n 'info.dark',\n 'info.light',\n 'info.main',\n 'inputOutline',\n 'primary.contrastText',\n 'primary.dark',\n 'primary.light',\n 'primary.main',\n 'secondary.contrastText',\n 'secondary.dark',\n 'secondary.light',\n 'secondary.main',\n 'success.contrastText',\n 'success.dark',\n 'success.light',\n 'success.main',\n 'surface.contrastText',\n 'surface.dark',\n 'surface.light',\n 'surface.main',\n 'svgBackground.active',\n 'svgBackground.focus',\n 'svgBackground.hover',\n 'svgBackground.main',\n 'svgFilled.active',\n 'svgFilled.focus',\n 'svgFilled.hover',\n 'svgFilled.main',\n 'svgStroke.active',\n 'svgStroke.focus',\n 'svgStroke.hover',\n 'svgStroke.main',\n 'tertiary.contrastText',\n 'tertiary.dark',\n 'tertiary.light',\n 'tertiary.main',\n 'text.disabled',\n 'text.primary',\n 'text.secondary',\n 'tint.primary',\n 'tint.secondary',\n 'tint.tertiary',\n 'warning.contrastText',\n 'warning.dark',\n 'warning.light',\n 'warning.main',\n ],\n breakpoints: ['xs', 'sm', 'md', 'lg', 'xl'],\n typographyVariants: [\n 'displayXl',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'lede',\n 'overline',\n 'caption',\n 'bodyCompact',\n 'micro',\n ],\n}\n\n/** The prompt catalog of each surface. */\nexport const AI_PALETTE_CATALOG: Record<AiSurface, string> = {\n screen:\n \"Surface: screen. Root: the document wrapper (componentId \\\"div\\\", id \\\"_@_\\\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- collectionCategories (Category Pills): A pill per collection category, each filtering the listing. — leaf — collectionSlug=text≤200, allLabel=text≤200\\n- collectionEntries (Collection Entries): Repeats its children once per entry in a content collection. — holds any — collectionSlug=text≤200, entriesLimit=text≤200, filterCategory=text≤200, filterTag=text≤200, searchMode=filter|suggest\\n- collectionEntryAuthor (Entry Author): The author card for an entry — portrait, byline and bio. — leaf — name=text≤200, bio=text≤2000, image=media, pageUrl=url, url=url\\n- collectionEntryBody (Entry Body): The current entry's markdown body, on an entry template. — leaf — markdown=text≤200\\n- collectionEntryMeta (Entry Meta): The byline row for an entry — author, date, category and tags. — leaf — date=text≤200, dateFormat=default|monthYear|mediumDate|longDate|iso, author=text≤200, category=text≤200, authorPageUrl=url\\n- collectionRelated (Related Posts): Other entries sharing this one's category or tags. — leaf — heading=text≤200, layout=list|cards, headingVariant=displayXl|h1|h2|h3|h4|h5|…, titleVariant=displayXl|h1|h2|h3|h4|h5|…, dateFormat=default|monthYear|mediumDate|longDate|iso\\n- collectionSearch (Collection Search): A search box for a content collection, with a suggestions dropdown. — leaf — collectionSlug=text≤200, searchPlaceholder=text≤200\\n- collectionShare (Share Bar): Share buttons for the current page, plus a copy link. — leaf — heading=text≤200\\n- contentAuthorProfile (Author Profile): Who an author page is about — portrait, name, role, bio and links. — leaf — name=text≤200, bio=text≤2000, image=media, jobTitle=text≤200, url=url\\n- dataTable (Table): A grid of rows and columns — a feature matrix, a spec sheet, a comparison. — leaf — headerRow=boolean, emphasizeColumn=text≤200\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\n- image (Image): A picture from your media library or any URL, with fit, size and an optional link. — leaf — src=media, objectFit=cover|contain|fill|none|scale-down, loading=lazy|eager, screenId=screen, href=url\\n- muiAccordion (Accordion): Header that expands to reveal its details — FAQs, long forms, anything progressive. — holds only muiAccordionSummary|muiAccordionDetails — defaultExpanded=boolean, disableGutters=boolean, disabled=boolean\\n- muiAccordionDetails (Accordion Details): The region an accordion reveals when expanded. — holds any — no props\\n- muiAccordionSummary (Accordion Summary): The clickable header row of an accordion. — leaf — children=text≤2000, screenId=screen\\n- muiAppBar (App Bar): The bar across the top of the site — put a Toolbar Content inside it. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, color=default|inherit|transparent|primary|secondary|tertiary, position=absolute|fixed|relative|static|sticky\\n- muiBox (Box): Generic container with no styling of its own — style it from the styles panel. — holds any — component=div|span|p|figure|figcaption|blockquote|…\\n- muiBreadcrumbs (Breadcrumbs): Trail showing where a page sits. — holds any — separator=text≤200, maxItems=text≤200, itemsBeforeCollapse=text≤200, itemsAfterCollapse=text≤200, expandText=text≤200\\n- muiButton (Button): A button — or a link styled as one, if you point it at a screen or URL. — leaf — children=text≤40, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large, variant=text|outlined|contained, target=_self|_blank|custom\\n- muiCard (Card): Surface that groups a header, content and actions about one subject. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, variant=elevation|outlined, elevation=text≤200\\n- muiCardActions (Card Actions): The button row at the bottom of a card. — holds any — disableSpacing=boolean\\n- muiCardContent (Card Content): The padded body region of a card. — holds any — no props\\n- muiCardHeader (Card Header): The title and subheader at the top of a card. — leaf — title=text≤200, subheader=text≤200\\n- muiContainer (Container): Centers your page content and caps how wide it gets. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, fixed=boolean, disableGutters=boolean, maxWidth=xs|sm|md|lg|xl\\n- muiGrid (Grid): Responsive 12-column layout. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, size=string, direction=row|row-reverse, wrap=wrap|nowrap|wrap-reverse\\n- muiImageList (Image List): Dense grid of images — standard, quilted, masonry or woven. — holds only muiImageListItem — variant=standard|quilted|masonry|woven, cols=text≤200, gap=text≤200, rowHeight=text≤200\\n- muiImageListItem (Image List Item): One tile of an image list, with an optional caption bar. — holds any — title=text≤200, subtitle=text≤200, barPosition=bottom|top|below, cols=text≤200, rows=text≤200\\n- muiList (List): Vertical list of items, optionally under a sticky heading. — holds only muiListItem — subheader=text≤200, dense=boolean, disablePadding=boolean\\n- muiListItem (List Item): One row of a list. — holds only muiListItemText — divider=boolean, alignItems=center|flex-start, dense=boolean, disableGutters=boolean, disablePadding=boolean\\n- muiListItemText (List Item Text): The primary and secondary text pair inside a list row. — leaf — primary=text≤2000, secondary=text≤2000, inset=boolean\\n- muiScreenLink (Screen Link): Links to another screen by id, so it survives a slug change. — leaf — children=text≤40, target=_self|_blank|custom, renderAs=button|link|linkButton, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large\\n- muiStack (Stack): Lays children out in a row or column with even spacing — the workhorse for most layouts. — holds any — component=div|section|article|aside|nav|header|…, direction=column|column-reverse|row|row-reverse, justifyContent=flex-start|center|flex-end|space-between|space-around|space-evenly, alignItems=stretch|flex-start|center|flex-end|baseline, flexWrap=nowrap|wrap|wrap-reverse\\n- muiToolbar (Toolbar Content): The content row inside an App Bar — brand, links, actions. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, disableGutters=boolean, variant=dense|regular\\n- muiTypography (Typography): A block of text in one of the theme's type styles. — leaf — children=text≤2000, variant=displayXl|h1|h2|h3|h4|h5|…, component=h1|h2|h3|h4|h5|h6|…, align=inherit|left|center|right|justify, noWrap=boolean\\n- searchBox (Search Box): A search field that opens the site's search page. — leaf — placeholder=text≤200, defaultValue=text≤200\\n- section (Section): Groups components inside a semantic HTML element (section, article, nav, …). — holds any — element=section|div|article|aside|nav|header|…, ariaLabel=text≤200\\n- socialLinks (Social Links): A row of icon links to whichever social profiles you fill in. — leaf — twitter=text≤200, instagram=text≤200, facebook=text≤200, linkedin=text≤200, youtube=text≤200\\n- videoEmbed (Video): Embeds a YouTube or Vimeo player from the video's URL. — leaf — url=url, height=string\\nNamed blocks to imitate: App Bar (muiAppBar); List (muiList); List Item (muiListItem); Image Gallery (muiStack); Testimonials (muiStack); Pricing Table (muiStack); FAQ (muiStack); Announcement Bar (muiStack); Nav Bar (muiAppBar); Hero (muiStack); Feature Grid (muiStack); Image + Text (muiStack); Call to Action (muiStack); Footer (section); Collection Entries (collectionEntries); Dropdown Panel (muiStack); Grid (muiGrid); Grid Cell (muiGrid); Card (muiCard); Card Outlined (muiCard); Accordion (muiAccordion); FAQ (muiStack); Image List (muiImageList); Image List Masonry (muiImageList); Image List Item (muiImageListItem); Breadcrumbs (muiBreadcrumbs); Contact Form (form); Contact Section (muiStack).\",\n email:\n 'Surface: email. Root: the document wrapper (componentId \"div\", id \"_@_\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- emailButton (Email button): A call-to-action button that survives every mail client. — leaf — children=text≤40, href=url, backgroundColor=string, color=string, align=left|center|right\\n- emailDivider (Email divider): A horizontal rule between email sections. — leaf — color=string\\n- emailImage (Email image): An email-safe image, capped at 600px wide, optionally linked. — leaf — src=media, alt=text≤200, width=text≤200, href=url, align=left|center|right\\n- emailProduct (Email product): A product card resolved at send time, so it never goes stale. — leaf — buttonLabel=text≤40\\n- emailSection (Email section): An email-safe band with its own background color and padding. — holds any — backgroundColor=string, padding=text≤200, align=left|center|right\\n- emailSpacer (Email spacer): Fixed vertical whitespace between email blocks. — leaf — height=text≤200\\n- emailText (Email text): A paragraph of email copy in one of the preset styles. — leaf — children=text≤2000, variant=heading|subheading|body|caption, color=string, align=left|center|right',\n form: 'Surface: form. Root: one \"form\" node.\\nElements (id (name): purpose — children — props; * = required):\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\nNamed blocks to imitate: Contact Form (form).',\n layout:\n \"Surface: layout. Root: the document wrapper (componentId \\\"div\\\", id \\\"_@_\\\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- collectionCategories (Category Pills): A pill per collection category, each filtering the listing. — leaf — collectionSlug=text≤200, allLabel=text≤200\\n- collectionEntries (Collection Entries): Repeats its children once per entry in a content collection. — holds any — collectionSlug=text≤200, entriesLimit=text≤200, filterCategory=text≤200, filterTag=text≤200, searchMode=filter|suggest\\n- collectionEntryAuthor (Entry Author): The author card for an entry — portrait, byline and bio. — leaf — name=text≤200, bio=text≤2000, image=media, pageUrl=url, url=url\\n- collectionEntryBody (Entry Body): The current entry's markdown body, on an entry template. — leaf — markdown=text≤200\\n- collectionEntryMeta (Entry Meta): The byline row for an entry — author, date, category and tags. — leaf — date=text≤200, dateFormat=default|monthYear|mediumDate|longDate|iso, author=text≤200, category=text≤200, authorPageUrl=url\\n- collectionRelated (Related Posts): Other entries sharing this one's category or tags. — leaf — heading=text≤200, layout=list|cards, headingVariant=displayXl|h1|h2|h3|h4|h5|…, titleVariant=displayXl|h1|h2|h3|h4|h5|…, dateFormat=default|monthYear|mediumDate|longDate|iso\\n- collectionSearch (Collection Search): A search box for a content collection, with a suggestions dropdown. — leaf — collectionSlug=text≤200, searchPlaceholder=text≤200\\n- collectionShare (Share Bar): Share buttons for the current page, plus a copy link. — leaf — heading=text≤200\\n- contentAuthorProfile (Author Profile): Who an author page is about — portrait, name, role, bio and links. — leaf — name=text≤200, bio=text≤2000, image=media, jobTitle=text≤200, url=url\\n- dataTable (Table): A grid of rows and columns — a feature matrix, a spec sheet, a comparison. — leaf — headerRow=boolean, emphasizeColumn=text≤200\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\n- image (Image): A picture from your media library or any URL, with fit, size and an optional link. — leaf — src=media, objectFit=cover|contain|fill|none|scale-down, loading=lazy|eager, screenId=screen, href=url\\n- layoutSlot (Layout Slot): Marks where each bound screen's content renders inside this layout. — leaf — caption=text≤200, component=main|div|section|article\\n- muiAccordion (Accordion): Header that expands to reveal its details — FAQs, long forms, anything progressive. — holds only muiAccordionSummary|muiAccordionDetails — defaultExpanded=boolean, disableGutters=boolean, disabled=boolean\\n- muiAccordionDetails (Accordion Details): The region an accordion reveals when expanded. — holds any — no props\\n- muiAccordionSummary (Accordion Summary): The clickable header row of an accordion. — leaf — children=text≤2000, screenId=screen\\n- muiAppBar (App Bar): The bar across the top of the site — put a Toolbar Content inside it. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, color=default|inherit|transparent|primary|secondary|tertiary, position=absolute|fixed|relative|static|sticky\\n- muiBox (Box): Generic container with no styling of its own — style it from the styles panel. — holds any — component=div|span|p|figure|figcaption|blockquote|…\\n- muiBreadcrumbs (Breadcrumbs): Trail showing where a page sits. — holds any — separator=text≤200, maxItems=text≤200, itemsBeforeCollapse=text≤200, itemsAfterCollapse=text≤200, expandText=text≤200\\n- muiButton (Button): A button — or a link styled as one, if you point it at a screen or URL. — leaf — children=text≤40, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large, variant=text|outlined|contained, target=_self|_blank|custom\\n- muiCard (Card): Surface that groups a header, content and actions about one subject. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, variant=elevation|outlined, elevation=text≤200\\n- muiCardActions (Card Actions): The button row at the bottom of a card. — holds any — disableSpacing=boolean\\n- muiCardContent (Card Content): The padded body region of a card. — holds any — no props\\n- muiCardHeader (Card Header): The title and subheader at the top of a card. — leaf — title=text≤200, subheader=text≤200\\n- muiContainer (Container): Centers your page content and caps how wide it gets. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, fixed=boolean, disableGutters=boolean, maxWidth=xs|sm|md|lg|xl\\n- muiGrid (Grid): Responsive 12-column layout. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, size=string, direction=row|row-reverse, wrap=wrap|nowrap|wrap-reverse\\n- muiImageList (Image List): Dense grid of images — standard, quilted, masonry or woven. — holds only muiImageListItem — variant=standard|quilted|masonry|woven, cols=text≤200, gap=text≤200, rowHeight=text≤200\\n- muiImageListItem (Image List Item): One tile of an image list, with an optional caption bar. — holds any — title=text≤200, subtitle=text≤200, barPosition=bottom|top|below, cols=text≤200, rows=text≤200\\n- muiList (List): Vertical list of items, optionally under a sticky heading. — holds only muiListItem — subheader=text≤200, dense=boolean, disablePadding=boolean\\n- muiListItem (List Item): One row of a list. — holds only muiListItemText — divider=boolean, alignItems=center|flex-start, dense=boolean, disableGutters=boolean, disablePadding=boolean\\n- muiListItemText (List Item Text): The primary and secondary text pair inside a list row. — leaf — primary=text≤2000, secondary=text≤2000, inset=boolean\\n- muiScreenLink (Screen Link): Links to another screen by id, so it survives a slug change. — leaf — children=text≤40, target=_self|_blank|custom, renderAs=button|link|linkButton, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large\\n- muiStack (Stack): Lays children out in a row or column with even spacing — the workhorse for most layouts. — holds any — component=div|section|article|aside|nav|header|…, direction=column|column-reverse|row|row-reverse, justifyContent=flex-start|center|flex-end|space-between|space-around|space-evenly, alignItems=stretch|flex-start|center|flex-end|baseline, flexWrap=nowrap|wrap|wrap-reverse\\n- muiToolbar (Toolbar Content): The content row inside an App Bar — brand, links, actions. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, disableGutters=boolean, variant=dense|regular\\n- muiTypography (Typography): A block of text in one of the theme's type styles. — leaf — children=text≤2000, variant=displayXl|h1|h2|h3|h4|h5|…, component=h1|h2|h3|h4|h5|h6|…, align=inherit|left|center|right|justify, noWrap=boolean\\n- searchBox (Search Box): A search field that opens the site's search page. — leaf — placeholder=text≤200, defaultValue=text≤200\\n- section (Section): Groups components inside a semantic HTML element (section, article, nav, …). — holds any — element=section|div|article|aside|nav|header|…, ariaLabel=text≤200\\n- socialLinks (Social Links): A row of icon links to whichever social profiles you fill in. — leaf — twitter=text≤200, instagram=text≤200, facebook=text≤200, linkedin=text≤200, youtube=text≤200\\n- videoEmbed (Video): Embeds a YouTube or Vimeo player from the video's URL. — leaf — url=url, height=string\\nNamed blocks to imitate: App Bar (muiAppBar); List (muiList); List Item (muiListItem); Image Gallery (muiStack); Testimonials (muiStack); Pricing Table (muiStack); FAQ (muiStack); Announcement Bar (muiStack); Nav Bar (muiAppBar); Hero (muiStack); Feature Grid (muiStack); Image + Text (muiStack); Call to Action (muiStack); Footer (section); Collection Entries (collectionEntries); Dropdown Panel (muiStack); Grid (muiGrid); Grid Cell (muiGrid); Card (muiCard); Card Outlined (muiCard); Accordion (muiAccordion); FAQ (muiStack); Image List (muiImageList); Image List Masonry (muiImageList); Image List Item (muiImageListItem); Breadcrumbs (muiBreadcrumbs); Contact Form (form); Contact Section (muiStack).\",\n component:\n \"Surface: component. Root: the document wrapper (componentId \\\"div\\\", id \\\"_@_\\\"); every other node carries an allowed componentId.\\nElements (id (name): purpose — children — props; * = required):\\n- collectionCategories (Category Pills): A pill per collection category, each filtering the listing. — leaf — collectionSlug=text≤200, allLabel=text≤200\\n- collectionEntries (Collection Entries): Repeats its children once per entry in a content collection. — holds any — collectionSlug=text≤200, entriesLimit=text≤200, filterCategory=text≤200, filterTag=text≤200, searchMode=filter|suggest\\n- collectionEntryAuthor (Entry Author): The author card for an entry — portrait, byline and bio. — leaf — name=text≤200, bio=text≤2000, image=media, pageUrl=url, url=url\\n- collectionEntryBody (Entry Body): The current entry's markdown body, on an entry template. — leaf — markdown=text≤200\\n- collectionEntryMeta (Entry Meta): The byline row for an entry — author, date, category and tags. — leaf — date=text≤200, dateFormat=default|monthYear|mediumDate|longDate|iso, author=text≤200, category=text≤200, authorPageUrl=url\\n- collectionRelated (Related Posts): Other entries sharing this one's category or tags. — leaf — heading=text≤200, layout=list|cards, headingVariant=displayXl|h1|h2|h3|h4|h5|…, titleVariant=displayXl|h1|h2|h3|h4|h5|…, dateFormat=default|monthYear|mediumDate|longDate|iso\\n- collectionSearch (Collection Search): A search box for a content collection, with a suggestions dropdown. — leaf — collectionSlug=text≤200, searchPlaceholder=text≤200\\n- collectionShare (Share Bar): Share buttons for the current page, plus a copy link. — leaf — heading=text≤200\\n- contentAuthorProfile (Author Profile): Who an author page is about — portrait, name, role, bio and links. — leaf — name=text≤200, bio=text≤2000, image=media, jobTitle=text≤200, url=url\\n- dataTable (Table): A grid of rows and columns — a feature matrix, a spec sheet, a comparison. — leaf — headerRow=boolean, emphasizeColumn=text≤200\\n- form (Form): Collects its Form Fields and sends the answers to you, or into a dataset. — holds any — formName=text≤200, datasetName=text≤200, afterSubmit=message|redirect|reveal, redirectScreenId=screen, redirectUrl=url\\n- formField (Form Field): One input inside a form — text, select, radio, checkbox or rating. — leaf — fieldName=text≤200, label=text≤200, placeholder=text≤200, fieldType=text|email|textarea|select|radio|checkbox|…, options=text≤2000\\n- icon (Icon): A single icon from the library, at the size and color you pick. — leaf — iconId=string, size=text≤200, color=text≤200\\n- image (Image): A picture from your media library or any URL, with fit, size and an optional link. — leaf — src=media, objectFit=cover|contain|fill|none|scale-down, loading=lazy|eager, screenId=screen, href=url\\n- muiAccordion (Accordion): Header that expands to reveal its details — FAQs, long forms, anything progressive. — holds only muiAccordionSummary|muiAccordionDetails — defaultExpanded=boolean, disableGutters=boolean, disabled=boolean\\n- muiAccordionDetails (Accordion Details): The region an accordion reveals when expanded. — holds any — no props\\n- muiAccordionSummary (Accordion Summary): The clickable header row of an accordion. — leaf — children=text≤2000, screenId=screen\\n- muiAppBar (App Bar): The bar across the top of the site — put a Toolbar Content inside it. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, color=default|inherit|transparent|primary|secondary|tertiary, position=absolute|fixed|relative|static|sticky\\n- muiBox (Box): Generic container with no styling of its own — style it from the styles panel. — holds any — component=div|span|p|figure|figcaption|blockquote|…\\n- muiBreadcrumbs (Breadcrumbs): Trail showing where a page sits. — holds any — separator=text≤200, maxItems=text≤200, itemsBeforeCollapse=text≤200, itemsAfterCollapse=text≤200, expandText=text≤200\\n- muiButton (Button): A button — or a link styled as one, if you point it at a screen or URL. — leaf — children=text≤40, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large, variant=text|outlined|contained, target=_self|_blank|custom\\n- muiCard (Card): Surface that groups a header, content and actions about one subject. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, variant=elevation|outlined, elevation=text≤200\\n- muiCardActions (Card Actions): The button row at the bottom of a card. — holds any — disableSpacing=boolean\\n- muiCardContent (Card Content): The padded body region of a card. — holds any — no props\\n- muiCardHeader (Card Header): The title and subheader at the top of a card. — leaf — title=text≤200, subheader=text≤200\\n- muiContainer (Container): Centers your page content and caps how wide it gets. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, fixed=boolean, disableGutters=boolean, maxWidth=xs|sm|md|lg|xl\\n- muiGrid (Grid): Responsive 12-column layout. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, size=string, direction=row|row-reverse, wrap=wrap|nowrap|wrap-reverse\\n- muiImageList (Image List): Dense grid of images — standard, quilted, masonry or woven. — holds only muiImageListItem — variant=standard|quilted|masonry|woven, cols=text≤200, gap=text≤200, rowHeight=text≤200\\n- muiImageListItem (Image List Item): One tile of an image list, with an optional caption bar. — holds any — title=text≤200, subtitle=text≤200, barPosition=bottom|top|below, cols=text≤200, rows=text≤200\\n- muiList (List): Vertical list of items, optionally under a sticky heading. — holds only muiListItem — subheader=text≤200, dense=boolean, disablePadding=boolean\\n- muiListItem (List Item): One row of a list. — holds only muiListItemText — divider=boolean, alignItems=center|flex-start, dense=boolean, disableGutters=boolean, disablePadding=boolean\\n- muiListItemText (List Item Text): The primary and secondary text pair inside a list row. — leaf — primary=text≤2000, secondary=text≤2000, inset=boolean\\n- muiScreenLink (Screen Link): Links to another screen by id, so it survives a slug change. — leaf — children=text≤40, target=_self|_blank|custom, renderAs=button|link|linkButton, color=inherit|primary|secondary|success|error|info|…, size=inherit|small|medium|large\\n- muiStack (Stack): Lays children out in a row or column with even spacing — the workhorse for most layouts. — holds any — component=div|section|article|aside|nav|header|…, direction=column|column-reverse|row|row-reverse, justifyContent=flex-start|center|flex-end|space-between|space-around|space-evenly, alignItems=stretch|flex-start|center|flex-end|baseline, flexWrap=nowrap|wrap|wrap-reverse\\n- muiToolbar (Toolbar Content): The content row inside an App Bar — brand, links, actions. — holds any — component=div|section|article|aside|nav|header|…, ariaLabel=text≤200, disableGutters=boolean, variant=dense|regular\\n- muiTypography (Typography): A block of text in one of the theme's type styles. — leaf — children=text≤2000, variant=displayXl|h1|h2|h3|h4|h5|…, component=h1|h2|h3|h4|h5|h6|…, align=inherit|left|center|right|justify, noWrap=boolean\\n- searchBox (Search Box): A search field that opens the site's search page. — leaf — placeholder=text≤200, defaultValue=text≤200\\n- section (Section): Groups components inside a semantic HTML element (section, article, nav, …). — holds any — element=section|div|article|aside|nav|header|…, ariaLabel=text≤200\\n- socialLinks (Social Links): A row of icon links to whichever social profiles you fill in. — leaf — twitter=text≤200, instagram=text≤200, facebook=text≤200, linkedin=text≤200, youtube=text≤200\\n- videoEmbed (Video): Embeds a YouTube or Vimeo player from the video's URL. — leaf — url=url, height=string\\nNamed blocks to imitate: App Bar (muiAppBar); List (muiList); List Item (muiListItem); Image Gallery (muiStack); Testimonials (muiStack); Pricing Table (muiStack); FAQ (muiStack); Announcement Bar (muiStack); Nav Bar (muiAppBar); Hero (muiStack); Feature Grid (muiStack); Image + Text (muiStack); Call to Action (muiStack); Footer (section); Collection Entries (collectionEntries); Dropdown Panel (muiStack); Grid (muiGrid); Grid Cell (muiGrid); Card (muiCard); Card Outlined (muiCard); Accordion (muiAccordion); FAQ (muiStack); Image List (muiImageList); Image List Masonry (muiImageList); Image List Item (muiImageListItem); Breadcrumbs (muiBreadcrumbs); Contact Form (form); Contact Section (muiStack).\",\n}\n"],"names":["AI_PALETTE","booking","pluginId","kind","category","displayName","summary","acceptsChildren","propsSchema","type","properties","heading","maxLength","successMessage","required","additionalProperties","propRoles","propFields","textLimits","presets","cart","variant","enum","checkoutLabel","showCoupon","emptyText","collectionCategories","collectionSlug","allLabel","collectionEntries","entriesLimit","filterCategory","filterTag","perPage","page","firstPageOnly","search","searchMode","searchPlaceholder","spacing","collectionEntryAuthor","name","bio","image","pageUrl","url","showLinks","showBio","showAvatar","collectionEntryBody","markdown","collectionEntryMeta","date","dateFormat","author","tags","avatarImage","showDate","showCategory","showTags","authorPageUrl","linkAuthor","showAuthor","collectionRelated","limit","layout","columns","showCover","headingVariant","titleVariant","showExcerpt","collectionSearch","collectionShare","contentAuthorProfile","jobTitle","worksFor","showRole","html","css","embedMode","embedHeight","signedOutHeading","dataTable","headerRow","emphasizeColumn","div","component","emailButton","children","href","backgroundColor","color","align","emailDivider","emailHtml","emailImage","src","alt","width","emailProduct","buttonLabel","emailRichtext","emailSection","padding","emailSpacer","height","emailText","eventList","mode","maxItems","form","formName","datasetName","submitLabel","afterSubmit","redirectScreenId","redirectUrl","formField","fieldName","label","placeholder","fieldType","options","functionInput","parameter","control","choices","hideLabel","functionOutput","element","announce","functionScope","functionName","functionShow","when","invert","functionWidget","title","resultLabel","outputs","autoRun","gate","teaserText","ctaLabel","ctaHref","videoIndex","lockedText","icon","iconId","size","decorative","objectFit","loading","screenId","languageSwitcher","uppercase","layoutSlot","restrictChildren","components","caption","content","marketplacePlugin","signinPath","signupPath","recoveryPath","continueFallback","muiAccordion","defaultExpanded","disableGutters","disabled","muiAccordionDetails","muiAccordionSummary","muiAppBar","ariaLabel","position","muiBox","muiBreadcrumbs","separator","itemsBeforeCollapse","itemsAfterCollapse","expandText","muiButton","fullWidth","target","targetName","renderAs","startIconId","endIconId","muiCard","elevation","muiCardActions","disableSpacing","muiCardContent","muiCardHeader","subheader","muiContainer","fixed","maxWidth","muiDrawer","anchor","muiDrawerToggle","muiGrid","container","offset","rowSpacing","columnSpacing","direction","wrap","muiImageList","cols","gap","rowHeight","muiImageListItem","subtitle","barPosition","rows","muiInlineText","tone","weight","decoration","muiLinkBox","newTab","redundant","muiList","dense","disablePadding","muiListItem","divider","alignItems","muiListItemText","primary","secondary","inset","muiMegaMenu","panelWidth","muiNavMenu","muiPagination","count","defaultPage","shape","siblingCount","boundaryCount","showFirstButton","showLastButton","hidePrevButton","hideNextButton","muiPaper","square","muiScreenLink","muiStack","justifyContent","useFlexGap","flexWrap","muiTabPanel","muiTabs","labels","tabLink1","tabLink2","tabLink3","tabLink4","tabLink5","tabLink6","tabLink7","tabLink8","opensOn","orientation","ssrPanels","centered","textColor","indicatorColor","muiToolbar","restrictParent","plugins","muiTypography","noWrap","gutterBottom","successText","listId","product","productId","priceUsd","description","imageUrl","buyLabel","slug","hideDescription","source","categorySlug","tag","sort","showFilters","showSearch","showCategories","showSort","showTypeFilter","showPriceFilter","pageSize","resourceId","reserveLabel","reusableInstance","searchBox","defaultValue","section","socialLinks","twitter","instagram","facebook","linkedin","youtube","github","tableOfContents","depth","themeModeSwitcher","video","poster","uploadDate","durationSeconds","lightbox","loadPlayer","preload","controls","autoPlay","loop","muted","playsInline","captionsSrc","captionsLabel","captionsLang","videoEmbed","wishlist","AI_NODE_CAPABILITIES","repeat","id","repeatSelf","repeatLimit","repeatFilter","repeatSort","childrenOnlyProps","omittedProps","AI_UNDECLARED_FIELD_KINDS","AI_SURFACES","screen","root","allow","email","AI_SX_TOKENS","palette","breakpoints","typographyVariants","AI_PALETTE_CATALOG"],"mappings":"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d3D,MAAM;oBACNa,MAAM;wBACJ;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;qBACD;gBACH;gBACA+C,cAAc;oBACZ5D,MAAM;oBACNa,MAAM;wBACJ;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;qBACD;gBACH;gBACAmC,UAAU;oBACRhD,MAAM;gBACR;gBACA4C,YAAY;oBACV5C,MAAM;oBACNa,MAAM;wBAAC;wBAAW;wBAAa;wBAAc;wBAAY;qBAAM;gBACjE;gBACAoC,cAAc;oBACZjD,MAAM;gBACR;gBACA6D,aAAa;oBACX7D,MAAM;gBACR;YACF;YACAK,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTL,SAAS;YACTqD,OAAO;YACPE,SAAS;QACX;QACAjD,YAAY;YACVN,SAAS;YACTqD,OAAO;YACPC,QAAQ;YACRC,SAAS;YACTC,WAAW;YACXC,gBAAgB;YAChBC,cAAc;YACdZ,UAAU;YACVJ,YAAY;YACZK,cAAc;YACdY,aAAa;QACf;QACApD,YAAY;YACVP,SAAS;YACTqD,OAAO;YACPE,SAAS;QACX;QACA/C,SAAS;YAAC;SAAgB;IAC5B;IACAoD,kBAAkB;QAChBrE,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SACE;QACFC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACViB,gBAAgB;oBACdlB,MAAM;oBACNG,WAAW;gBACb;gBACA0B,mBAAmB;oBACjB7B,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTW,gBAAgB;YAChBW,mBAAmB;QACrB;QACArB,YAAY;YACVU,gBAAgB;YAChBW,mBAAmB;QACrB;QACApB,YAAY;YACVS,gBAAgB;YAChBW,mBAAmB;QACrB;QACAnB,SAAS;YAAC;SAAoB;IAChC;IACAqD,iBAAiB;QACftE,U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MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTwG,aAAa;YACbqL,cAAc;QAChB;QACA5R,YAAY;YACVuG,aAAa;YACbqL,cAAc;QAChB;QACA3R,YAAY;YACVsG,aAAa;YACbqL,cAAc;QAChB;QACA1R,SAAS;YAAC;SAAa;IACzB;IACA2R,SAAS;QACP5S,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SACE;QACFC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVuH,SAAS;oBACPxH,MAAM;oBACNa,MAAM;wBACJ;wBACA;wBACA;wBACA;wBACA;wBACA;wBACA;qBACD;gBACH;gBACAuJ,WAAW;oBACTpK,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACT6J,WAAW;QACb;QACA5J,YAAY;YACVgH,SAAS;YACT4C,WAAW;QACb;QACA3J,YAAY;YACV2J,WAAW;QACb;QACA1J,SAAS;YAAC;YAAU;SAAU;IAChC;IACA4R,aAAa;QACX7S,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVsS,SAAS;oBACPvS,MAAM;oBACNG,WAAW;gBACb;gBACAqS,WAAW;oBACTxS,MAAM;oBACNG,WAAW;gBACb;gBACAsS,UAAU;oBACRzS,MAAM;oBACNG,WAAW;gBACb;gBACAuS,UAAU;oBACR1S,MAAM;oBACNG,WAAW;gBACb;gBACAwS,SAAS;oBACP3S,MAAM;oBACNG,WAAW;gBACb;gBACAyS,QAAQ;oBACN5S,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTgS,SAAS;YACTC,WAAW;YACXC,UAAU;YACVC,UAAU;YACVC,SAAS;YACTC,QAAQ;QACV;QACApS,YAAY;YACV+R,SAAS;YACTC,WAAW;YACXC,UAAU;YACVC,UAAU;YACVC,SAAS;YACTC,QAAQ;QACV;QACAnS,YAAY;YACV8R,SAAS;YACTC,WAAW;YACXC,UAAU;YACVC,UAAU;YACVC,SAAS;YACTC,QAAQ;QACV;QACAlS,SAAS;YAAC;SAAe;IAC3B;IACAmS,iBAAiB;QACfpT,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVC,SAAS;oBACPF,MAAM;oBACNG,WAAW;gBACb;gBACA2S,OAAO;oBACL9S,MAAM;oBACNa,MAAM;wBAAC;wBAAK;qBAAI;gBAClB;YACF;YACAR,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTL,SAAS;QACX;QACAM,YAAY;YACVN,SAAS;YACT4S,OAAO;QACT;QACArS,YAAY;YACVP,SAAS;QACX;QACAQ,SAAS;YAAC;SAAoB;IAChC;IACAqS,mBAAmB;QACjBtT,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SACE;QACFC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVW,SAAS;oBACPZ,MAAM;oBACNa,MAAM;wBAAC;wBAAQ;qBAAS;gBAC1B;YACF;YACAR,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW,CAAC;QACZC,YAAY;YACVI,SAAS;QACX;QACAH,YAAY,CAAC;QACbC,SAAS;YAAC;SAAsB;IAClC;IACAsS,OAAO;QACLvT,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVsF,KAAK;oBACHvF,MAAM;gBACR;gBACAiT,QAAQ;oBACNjT,MAAM;gBACR;gBACAgI,OAAO;oBACLhI,MAAM;oBACNG,WAAW;gBACb;gBACA6Q,aAAa;oBACXhR,MAAM;oBACNG,WAAW;gBACb;gBACA+S,YAAY;oBACVlT,MAAM;oBACNG,WAAW;gBACb;gBACAgT,iBAAiB;oBACfnT,MAAM;oBACNG,WAAW;gBACb;gBACAiT,UAAU;oBACRpT,MAAM;gBACR;gBACAqT,YAAY;oBACVrT,MAAM;gBACR;gBACAsT,SAAS;oBACPtT,MAAM;oBACNa,MAAM;wBAAC;wBAAQ;wBAAY;qBAAO;gBACpC;gBACA0S,UAAU;oBACRvT,MAAM;gBACR;gBACAwT,UAAU;oBACRxT,MAAM;gBACR;gBACAyT,MAAM;oBACJzT,MAAM;gBACR;gBACA0T,OAAO;oBACL1T,MAAM;gBACR;gBACA2T,aAAa;oBACX3T,MAAM;gBACR;gBACA4T,aAAa;oBACX5T,MAAM;oBACNG,WAAW;gBACb;gBACA0T,eAAe;oBACb7T,MAAM;oBACNG,WAAW;gBACb;gBACA2T,cAAc;oBACZ9T,MAAM;oBACNG,WAAW;gBACb;gBACAsF,OAAO;oBACLzF,MAAM;gBACR;gBACAgG,QAAQ;oBACNhG,MAAM;gBACR;YACF;YACAK,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTgF,KAAK;YACL0N,QAAQ;YACRjL,OAAO;YACPgJ,aAAa;YACbkC,YAAY;YACZC,iBAAiB;YACjBS,aAAa;YACbC,eAAe;YACfC,cAAc;QAChB;QACAtT,YAAY;YACV+E,KAAK;YACL0N,QAAQ;YACRjL,OAAO;YACPgJ,aAAa;YACbkC,YAAY;YACZC,iBAAiB;YACjBC,UAAU;YACVC,YAAY;YACZC,SAAS;YACTC,UAAU;YACVC,UAAU;YACVC,MAAM;YACNC,OAAO;YACPC,aAAa;YACbC,aAAa;YACbC,eAAe;YACfC,cAAc;YACdrO,OAAO;YACPO,QAAQ;QACV;QACAvF,YAAY;YACVuH,OAAO;YACPgJ,aAAa;YACbkC,YAAY;YACZC,iBAAiB;YACjBS,aAAa;YACbC,eAAe;YACfC,cAAc;QAChB;QACApT,SAAS;YAAC;SAAQ;IACpB;IACAqT,YAAY;QACVtU,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVmC,KAAK;oBACHpC,MAAM;gBACR;gBACAgG,QAAQ;oBACNhG,MAAM;gBACR;YACF;YACAK,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACT6B,KAAK;QACP;QACA5B,YAAY;YACV4B,KAAK;YACL4D,QAAQ;QACV;QACAvF,YAAY,CAAC;QACbC,SAAS;YAAC;SAAQ;IACpB;IACAsT,UAAU;QACRvU,UAAU;QACVC,MAAM;QACNC,UAAU;QACVC,aAAa;QACbC,SAAS;QACTC,iBAAiB;QACjBC,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVC,SAAS;oBACPF,MAAM;oBACNG,WAAW;gBACb;gBACAa,WAAW;oBACThB,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACTL,SAAS;YACTc,WAAW;QACb;QACAR,YAAY;YACVN,SAAS;YACTc,WAAW;QACb;QACAP,YAAY;YACVP,SAAS;YACTc,WAAW;QACb;QACAN,SAAS;YAAC;SAAW;IACvB;AACF,EAAC;AAED,sDAAsD,GACtD,OAAO,MAAMuT,uBAAyD;IACpEC,QAAQ;QACNC,IAAI;QACJvU,aAAa;QACbC,SAAS;QACTE,aAAa;YACXC,MAAM;YACNC,YAAY;gBACVmU,YAAY;oBACVpU,MAAM;oBACNa,MAAM;wBAAC;wBAAS;qBAAO;gBACzB;gBACAwT,aAAa;oBACXrU,MAAM;oBACNG,WAAW;gBACb;gBACAmU,cAAc;oBACZtU,MAAM;oBACNG,WAAW;gBACb;gBACAoU,YAAY;oBACVvU,MAAM;oBACNG,WAAW;gBACb;YACF;YACAE,UAAU,EAAE;YACZC,sBAAsB;QACxB;QACAC,WAAW;YACT8T,aAAa;YACbC,cAAc;YACdC,YAAY;QACd;QACA/T,YAAY;YACV4T,YAAY;YACZC,aAAa;YACbC,cAAc;YACdC,YAAY;QACd;QACA9T,YAAY;YACV4T,aAAa;YACbC,cAAc;YACdC,YAAY;QACd;QACAC,mBAAmB;YAAC;SAAa;QACjCC,cAAc,EAAE;IAClB;AACF,EAAC;AAED,6EAA6E,GAC7E,OAAO,MAAMC,4BAA+C;IAC1D;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAA;AAED,4DAA4D,GAC5D,OAAO,MAAMC,cAAsD;IACjEC,QAAQ;QACNC,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAC,OAAO;QACLF,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAzO,MAAM;QACJwO,MAAM;QACNC,OAAO;YAAC;YAAQ;SAAY;IAC9B;IACAtR,QAAQ;QACNqR,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;IACAjQ,WAAW;QACTgQ,MAAM;QACNC,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD;IACH;AACF,EAAC;AAED,6CAA6C,GAC7C,OAAO,MAAME,eAA2B;IACtCC,SAAS;QACP;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IACDC,aAAa;QAAC;QAAM;QAAM;QAAM;QAAM;KAAK;IAC3CC,oBAAoB;QAClB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;AACH,EAAC;AAED,wCAAwC,GACxC,OAAO,MAAMC,qBAAgD;IAC3DR,QACE;IACFG,OACE;IACF1O,MAAM;IACN7C,QACE;IACFqB,WACE;AACJ,EAAC"}