@kubuild/components 0.2.0 → 0.3.1

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.
Files changed (133) hide show
  1. package/dist/blocks/forms.d.ts +6 -0
  2. package/dist/blocks/forms.d.ts.map +1 -0
  3. package/dist/blocks/index.cjs +1661 -0
  4. package/dist/blocks/index.cjs.map +1 -0
  5. package/dist/blocks/index.d.ts +11 -0
  6. package/dist/blocks/index.d.ts.map +1 -0
  7. package/dist/blocks/index.js +15 -0
  8. package/dist/blocks/index.js.map +1 -0
  9. package/dist/blocks/layout.d.ts +6 -0
  10. package/dist/blocks/layout.d.ts.map +1 -0
  11. package/dist/blocks/sections.d.ts +6 -0
  12. package/dist/blocks/sections.d.ts.map +1 -0
  13. package/dist/{blocks.d.ts → blocks/types.d.ts} +2 -5
  14. package/dist/blocks/types.d.ts.map +1 -0
  15. package/dist/chunk-JTQ35OQQ.js +1631 -0
  16. package/dist/chunk-JTQ35OQQ.js.map +1 -0
  17. package/dist/chunk-K6I6U7F3.js +2707 -0
  18. package/dist/chunk-K6I6U7F3.js.map +1 -0
  19. package/dist/chunk-OK53DS7G.js +911 -0
  20. package/dist/chunk-OK53DS7G.js.map +1 -0
  21. package/dist/definitions/constants.d.ts +10 -0
  22. package/dist/definitions/constants.d.ts.map +1 -0
  23. package/dist/definitions/data/collection.d.ts +3 -0
  24. package/dist/definitions/data/collection.d.ts.map +1 -0
  25. package/dist/definitions/data/index.d.ts +4 -0
  26. package/dist/definitions/data/index.d.ts.map +1 -0
  27. package/dist/definitions/data/list.d.ts +4 -0
  28. package/dist/definitions/data/list.d.ts.map +1 -0
  29. package/dist/definitions/data/table.d.ts +5 -0
  30. package/dist/definitions/data/table.d.ts.map +1 -0
  31. package/dist/definitions/form/button.d.ts +4 -0
  32. package/dist/definitions/form/button.d.ts.map +1 -0
  33. package/dist/definitions/form/checkbox.d.ts +3 -0
  34. package/dist/definitions/form/checkbox.d.ts.map +1 -0
  35. package/dist/definitions/form/file-upload.d.ts +3 -0
  36. package/dist/definitions/form/file-upload.d.ts.map +1 -0
  37. package/dist/definitions/form/form.d.ts +3 -0
  38. package/dist/definitions/form/form.d.ts.map +1 -0
  39. package/dist/definitions/form/index.d.ts +10 -0
  40. package/dist/definitions/form/index.d.ts.map +1 -0
  41. package/dist/definitions/form/input.d.ts +3 -0
  42. package/dist/definitions/form/input.d.ts.map +1 -0
  43. package/dist/definitions/form/radio.d.ts +5 -0
  44. package/dist/definitions/form/radio.d.ts.map +1 -0
  45. package/dist/definitions/form/select.d.ts +3 -0
  46. package/dist/definitions/form/select.d.ts.map +1 -0
  47. package/dist/definitions/form/switch.d.ts +3 -0
  48. package/dist/definitions/form/switch.d.ts.map +1 -0
  49. package/dist/definitions/form/textarea.d.ts +3 -0
  50. package/dist/definitions/form/textarea.d.ts.map +1 -0
  51. package/dist/definitions/index.cjs +3512 -0
  52. package/dist/definitions/index.cjs.map +1 -0
  53. package/dist/definitions/index.d.ts +12 -0
  54. package/dist/definitions/index.d.ts.map +1 -0
  55. package/dist/definitions/index.js +90 -0
  56. package/dist/definitions/index.js.map +1 -0
  57. package/dist/definitions/interactive/collapsible.d.ts +3 -0
  58. package/dist/definitions/interactive/collapsible.d.ts.map +1 -0
  59. package/dist/definitions/interactive/drawer.d.ts +3 -0
  60. package/dist/definitions/interactive/drawer.d.ts.map +1 -0
  61. package/dist/definitions/interactive/index.d.ts +4 -0
  62. package/dist/definitions/interactive/index.d.ts.map +1 -0
  63. package/dist/definitions/interactive/modal.d.ts +3 -0
  64. package/dist/definitions/interactive/modal.d.ts.map +1 -0
  65. package/dist/definitions/layout/columns.d.ts +3 -0
  66. package/dist/definitions/layout/columns.d.ts.map +1 -0
  67. package/dist/definitions/layout/container.d.ts +3 -0
  68. package/dist/definitions/layout/container.d.ts.map +1 -0
  69. package/dist/definitions/layout/flex.d.ts +7 -0
  70. package/dist/definitions/layout/flex.d.ts.map +1 -0
  71. package/dist/definitions/layout/grid.d.ts +7 -0
  72. package/dist/definitions/layout/grid.d.ts.map +1 -0
  73. package/dist/definitions/layout/index.d.ts +7 -0
  74. package/dist/definitions/layout/index.d.ts.map +1 -0
  75. package/dist/definitions/layout/page.d.ts +3 -0
  76. package/dist/definitions/layout/page.d.ts.map +1 -0
  77. package/dist/definitions/layout/section.d.ts +3 -0
  78. package/dist/definitions/layout/section.d.ts.map +1 -0
  79. package/dist/definitions/media/html-embed.d.ts +3 -0
  80. package/dist/definitions/media/html-embed.d.ts.map +1 -0
  81. package/dist/definitions/media/icon.d.ts +3 -0
  82. package/dist/definitions/media/icon.d.ts.map +1 -0
  83. package/dist/definitions/media/image.d.ts +3 -0
  84. package/dist/definitions/media/image.d.ts.map +1 -0
  85. package/dist/definitions/media/index.d.ts +5 -0
  86. package/dist/definitions/media/index.d.ts.map +1 -0
  87. package/dist/definitions/media/video.d.ts +3 -0
  88. package/dist/definitions/media/video.d.ts.map +1 -0
  89. package/dist/definitions/types.d.ts +5 -0
  90. package/dist/definitions/types.d.ts.map +1 -0
  91. package/dist/definitions/typography/badge.d.ts +3 -0
  92. package/dist/definitions/typography/badge.d.ts.map +1 -0
  93. package/dist/definitions/typography/blockquote.d.ts +3 -0
  94. package/dist/definitions/typography/blockquote.d.ts.map +1 -0
  95. package/dist/definitions/typography/code-block.d.ts +3 -0
  96. package/dist/definitions/typography/code-block.d.ts.map +1 -0
  97. package/dist/definitions/typography/heading.d.ts +3 -0
  98. package/dist/definitions/typography/heading.d.ts.map +1 -0
  99. package/dist/definitions/typography/index.d.ts +8 -0
  100. package/dist/definitions/typography/index.d.ts.map +1 -0
  101. package/dist/definitions/typography/link.d.ts +3 -0
  102. package/dist/definitions/typography/link.d.ts.map +1 -0
  103. package/dist/definitions/typography/paragraph.d.ts +3 -0
  104. package/dist/definitions/typography/paragraph.d.ts.map +1 -0
  105. package/dist/definitions/typography/text.d.ts +3 -0
  106. package/dist/definitions/typography/text.d.ts.map +1 -0
  107. package/dist/index.cjs +1568 -814
  108. package/dist/index.cjs.map +1 -1
  109. package/dist/index.js +120 -4332
  110. package/dist/index.js.map +1 -1
  111. package/dist/traits/common.d.ts +8 -0
  112. package/dist/traits/common.d.ts.map +1 -0
  113. package/dist/{traits.d.ts → traits/form.d.ts} +2 -109
  114. package/dist/traits/form.d.ts.map +1 -0
  115. package/dist/traits/index.cjs +998 -0
  116. package/dist/traits/index.cjs.map +1 -0
  117. package/dist/traits/index.d.ts +7 -0
  118. package/dist/traits/index.d.ts.map +1 -0
  119. package/dist/traits/index.js +129 -0
  120. package/dist/traits/index.js.map +1 -0
  121. package/dist/traits/link.d.ts +8 -0
  122. package/dist/traits/link.d.ts.map +1 -0
  123. package/dist/traits/media.d.ts +18 -0
  124. package/dist/traits/media.d.ts.map +1 -0
  125. package/dist/traits/structure.d.ts +10 -0
  126. package/dist/traits/structure.d.ts.map +1 -0
  127. package/dist/traits/types.d.ts +69 -0
  128. package/dist/traits/types.d.ts.map +1 -0
  129. package/package.json +20 -4
  130. package/dist/blocks.d.ts.map +0 -1
  131. package/dist/definitions.d.ts +0 -37
  132. package/dist/definitions.d.ts.map +0 -1
  133. package/dist/traits.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/registry.ts","../src/definitions/constants.ts","../src/definitions/layout/page.ts","../src/definitions/layout/section.ts","../src/definitions/layout/container.ts","../src/definitions/layout/columns.ts","../src/definitions/layout/flex.ts","../src/definitions/layout/grid.ts","../src/definitions/typography/heading.ts","../src/definitions/typography/text.ts","../src/definitions/typography/paragraph.ts","../src/definitions/typography/link.ts","../src/definitions/typography/blockquote.ts","../src/definitions/typography/badge.ts","../src/definitions/typography/code-block.ts","../src/definitions/media/image.ts","../src/definitions/media/video.ts","../src/definitions/media/icon.ts","../src/definitions/media/html-embed.ts","../src/definitions/data/table.ts","../src/definitions/data/list.ts","../src/definitions/data/collection.ts","../src/definitions/form/button.ts","../src/definitions/form/form.ts","../src/definitions/form/input.ts","../src/definitions/form/textarea.ts","../src/definitions/form/select.ts","../src/definitions/form/checkbox.ts","../src/definitions/form/switch.ts","../src/definitions/form/radio.ts","../src/definitions/form/file-upload.ts","../src/definitions/interactive/modal.ts","../src/definitions/interactive/drawer.ts","../src/definitions/interactive/collapsible.ts","../src/definitions/index.ts"],"sourcesContent":["import { Node, ResponsiveStyles } from '@kubuild/schema';\n\nexport type ComponentCategory = 'layout' | 'typography' | 'media' | 'form' | 'interactive' | 'data' | 'custom';\n\nexport interface ComponentFieldDefinition {\n name: string;\n label: string;\n type: 'string' | 'textarea' | 'number' | 'boolean' | 'select' | 'color' | 'image' | 'action' | 'json';\n defaultValue?: unknown;\n options?: Array<{ label: string; value: unknown }>;\n description?: string;\n}\n\nexport interface ComponentDefaultChildSpec {\n type: string;\n props?: Record<string, unknown>;\n styles?: ResponsiveStyles;\n children?: ComponentDefaultChildSpec[];\n}\n\nexport interface ComponentDefinition<TRenderer = unknown> {\n type: string;\n label: string;\n category: ComponentCategory;\n description?: string;\n icon?: string;\n acceptsChildren?: boolean;\n allowedChildren?: string[];\n disallowedParents?: string[];\n defaultProps?: Record<string, unknown>;\n /** Default responsive style override (base/desktop/tablet/mobile), matching a Node's `styles` field. */\n defaultStyles?: ResponsiveStyles;\n /** Default child node template specs inserted automatically when this component is instantiated. */\n defaultChildren?: ComponentDefaultChildSpec[];\n /**\n * Inspector metadata: describes each editable prop (label, input type, options)\n * so a host editor can render property controls without hardcoding per-type UI.\n */\n propFields?: ComponentFieldDefinition[];\n /**\n * Trait metadata (STORA-210): functional props separated from styling.\n * Traits carry semantic/behavioral attributes (href, target, alt, placeholder,\n * aria-label, id, etc.) that map to HTML attributes at render time.\n * Distinct from `propFields` which may include visual styling knobs;\n * traits are purely functional.\n */\n traits?: import('./traits').ComponentTraits;\n /**\n * Prop schema slot: validates a node's props for this component type.\n * Returns `true`/`[]` (valid), `false` (generic failure), or an array of\n * human-readable error messages.\n */\n validateProps?: (props: Record<string, unknown>) => boolean | string[];\n /**\n * Type-to-renderer mapping slot. Deliberately untyped here (`unknown` by\n * default) so `@kubuild/components` stays framework-agnostic — no React\n * import. A consumer package (e.g. `@kubuild/renderer`) specializes\n * `ComponentDefinition<TRenderer>`/`ComponentRegistry<TRenderer>` with a\n * concrete renderer type (e.g. `React.ComponentType<...>`) and populates\n * or reads this field with that type.\n */\n renderer?: TRenderer;\n /**\n * Host-provided runtime capabilities this component type needs to fully\n * resolve at render time (e.g. `'assetProvider'`, `'actionRegistry'` — see\n * `@kubuild/core`'s `RuntimeContext`). Names correspond to entries a host\n * would list in a `.stora` manifest's `requiredCapabilities` (see\n * `@kubuild/schema`'s `ManifestSchema`) so an importer can check it has\n * everything a document needs before accepting it.\n */\n capabilities?: string[];\n}\n\nexport class ComponentRegistry<TRenderer = unknown> {\n private components = new Map<string, ComponentDefinition<TRenderer>>();\n\n register(definition: ComponentDefinition<TRenderer>, allowOverride = false): void {\n if (!allowOverride && this.components.has(definition.type)) {\n throw new Error(`Component type \"${definition.type}\" is already registered.`);\n }\n this.components.set(definition.type, definition);\n }\n\n unregister(type: string): boolean {\n return this.components.delete(type);\n }\n\n get(type: string): ComponentDefinition<TRenderer> | undefined {\n return this.components.get(type);\n }\n\n has(type: string): boolean {\n return this.components.has(type);\n }\n\n list(): ComponentDefinition<TRenderer>[] {\n return Array.from(this.components.values());\n }\n\n listByCategory(category: ComponentCategory): ComponentDefinition<TRenderer>[] {\n return this.list().filter((c) => c.category === category);\n }\n\n /**\n * Check whether `childType` is a valid insertion target under `parentType`,\n * covering both directions of child policy: the parent's `acceptsChildren`/\n * `allowedChildren` (by type, category, or `'*'`) and the child's own\n * `disallowedParents`. Used by the builder to reject an invalid insertion\n * before a node is constructed, rather than after the fact via `validateNode`.\n */\n canInsertChild(parentType: string, childType: string): { valid: boolean; errors: string[] } {\n const errors: string[] = [];\n const parentDef = this.get(parentType);\n const childDef = this.get(childType);\n\n if (!parentDef) {\n errors.push(`Unknown target parent type: \"${parentType}\".`);\n }\n if (!childDef) {\n errors.push(`Unknown component type: \"${childType}\".`);\n }\n if (!parentDef || !childDef) {\n return { valid: false, errors };\n }\n\n if (!parentDef.acceptsChildren) {\n errors.push(`\"${parentDef.label}\" does not accept children.`);\n } else if (parentDef.allowedChildren) {\n const allowed =\n parentDef.allowedChildren.includes('*') ||\n parentDef.allowedChildren.includes(childType) ||\n parentDef.allowedChildren.includes(childDef.category);\n if (!allowed) {\n errors.push(`\"${parentDef.label}\" does not allow \"${childDef.label}\" as a child.`);\n }\n }\n\n if (childDef.disallowedParents?.includes(parentType)) {\n errors.push(`\"${childDef.label}\" is not allowed inside \"${parentDef.label}\".`);\n }\n\n return { valid: errors.length === 0, errors };\n }\n\n validateNode(node: Node, parentType?: string): { valid: boolean; errors: string[] } {\n const def = this.get(node.type);\n const errors: string[] = [];\n\n if (!def) {\n errors.push(`Unknown component type: \"${node.type}\"`);\n return { valid: false, errors };\n }\n\n if (!def.acceptsChildren && node.children && node.children.length > 0) {\n errors.push(`Component \"${node.type}\" does not accept children.`);\n }\n\n if (def.allowedChildren && node.children) {\n for (const child of node.children) {\n const childCategory = this.get(child.type)?.category;\n const allowed =\n def.allowedChildren.includes('*') ||\n def.allowedChildren.includes(child.type) ||\n (childCategory !== undefined && def.allowedChildren.includes(childCategory));\n if (!allowed) {\n errors.push(`Component \"${node.type}\" does not allow child type \"${child.type}\".`);\n }\n }\n }\n\n if (parentType && def.disallowedParents?.includes(parentType)) {\n errors.push(`Component \"${node.type}\" is not allowed inside parent \"${parentType}\".`);\n }\n\n if (def.validateProps && node.props) {\n const propResult = def.validateProps(node.props);\n if (Array.isArray(propResult) && propResult.length > 0) {\n errors.push(...propResult);\n } else if (propResult === false) {\n errors.push(`Props validation failed for component \"${node.type}\".`);\n }\n }\n\n return { valid: errors.length === 0, errors };\n }\n}\n","/**\n * Layout nesting policy (STORA-021): page > section > container/columns > content.\n * `page` is never a valid child anywhere (excluded from every allowedChildren list\n * below, and explicitly barred via disallowedParents) so a \"page\" node can never\n * appear nested inside another node, and content nodes can never become the root\n * (enforced separately by the schema's RootPageNodeSchema refinement).\n */\nexport const LAYOUT_PARENTS = ['page', 'section', 'container', 'columns', 'flex', 'grid', 'modal', 'drawer', 'collapsible'];\n\nexport const CONTENT_CHILD_TYPES = [\n 'heading',\n 'text',\n 'paragraph',\n 'link',\n 'blockquote',\n 'badge',\n 'code-block',\n 'image',\n 'video',\n 'icon',\n 'html-embed',\n 'button',\n 'button-submit',\n 'form',\n 'input',\n 'textarea',\n 'select',\n 'checkbox',\n 'switch',\n 'radio-group',\n 'radio',\n 'radio-item',\n 'file-upload',\n 'list',\n 'table',\n 'collection',\n 'custom',\n 'modal',\n 'drawer',\n 'collapsible',\n];\n\n","import { ComponentDefinition } from '../../registry';\nimport { idTrait, titleTrait } from '../../traits';\nimport { CONTENT_CHILD_TYPES, LAYOUT_PARENTS } from '../constants';\n\nexport const pageDefinition: ComponentDefinition = {\n type: 'page',\n label: 'Page',\n category: 'layout',\n icon: 'layout',\n acceptsChildren: true,\n allowedChildren: ['section', 'custom'],\n disallowedParents: [...LAYOUT_PARENTS, ...CONTENT_CHILD_TYPES, 'list-item', 'table-row', 'table-cell'],\n defaultProps: { title: 'New Page' },\n traits: [\n titleTrait({ defaultValue: 'New Page', description: 'The document title shown in the browser tab and search results.' }),\n idTrait(),\n ],\n defaultStyles: { base: { minHeight: '100vh', backgroundColor: '#ffffff' } },\n};\n\n","import { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait } from '../../traits';\nimport { CONTENT_CHILD_TYPES } from '../constants';\n\nexport const sectionDefinition: ComponentDefinition = {\n type: 'section',\n label: 'Section',\n category: 'layout',\n icon: 'rows',\n acceptsChildren: true,\n allowedChildren: ['container', 'columns', 'flex', 'grid', ...CONTENT_CHILD_TYPES],\n defaultProps: {},\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name for the section landmark.' }),\n ],\n defaultStyles: {\n base: {\n paddingTop: '48px',\n paddingBottom: '48px',\n paddingLeft: '16px',\n paddingRight: '16px',\n },\n tablet: {\n paddingTop: '32px',\n paddingBottom: '32px',\n },\n mobile: {\n paddingTop: '24px',\n paddingBottom: '24px',\n paddingLeft: '16px',\n paddingRight: '16px',\n },\n },\n};\n\n","import { ComponentDefinition } from '../../registry';\nimport { idTrait } from '../../traits';\nimport { CONTENT_CHILD_TYPES } from '../constants';\n\nexport const containerDefinition: ComponentDefinition = {\n type: 'container',\n label: 'Container',\n category: 'layout',\n icon: 'box',\n acceptsChildren: true,\n allowedChildren: ['columns', 'flex', 'grid', ...CONTENT_CHILD_TYPES],\n defaultProps: { maxWidth: '1200px' },\n traits: [\n idTrait(),\n ],\n defaultStyles: {\n base: {\n maxWidth: '1200px',\n margin: '0 auto',\n width: '100%',\n },\n tablet: {\n maxWidth: '720px',\n },\n mobile: {\n maxWidth: '100%',\n paddingLeft: '16px',\n paddingRight: '16px',\n },\n },\n};\n\n","import { ComponentDefinition } from '../../registry';\nimport { idTrait } from '../../traits';\nimport { CONTENT_CHILD_TYPES } from '../constants';\n\nexport const columnsDefinition: ComponentDefinition = {\n type: 'columns',\n label: 'Columns',\n category: 'layout',\n icon: 'columns',\n acceptsChildren: true,\n allowedChildren: ['container', 'flex', 'grid', ...CONTENT_CHILD_TYPES],\n defaultProps: { columns: 2, gap: '16px' },\n traits: [\n idTrait(),\n ],\n defaultStyles: {\n base: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n gap: '16px',\n },\n tablet: {\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n gap: '12px',\n },\n mobile: {\n gridTemplateColumns: 'repeat(1, minmax(0, 1fr))',\n gap: '12px',\n },\n },\n};\n\n","import { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait } from '../../traits';\n\n/**\n * Flex Frame Component Definition (STORA-102)\n * Auto Layout Flexbox container supporting any child with default column direction and 16px gap.\n */\nexport const flexDefinition: ComponentDefinition = {\n type: 'flex',\n label: 'Flex',\n category: 'layout',\n icon: 'flex',\n acceptsChildren: true,\n allowedChildren: ['*'],\n disallowedParents: ['page'],\n defaultProps: {},\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name for the flex container.' }),\n ],\n defaultStyles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n },\n },\n};\n","import { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait } from '../../traits';\n\n/**\n * CSS Grid Component Definition (STORA-111)\n * Visual CSS Grid container with default 3 equal columns and 16px gap.\n */\nexport const gridDefinition: ComponentDefinition = {\n type: 'grid',\n label: 'Grid',\n category: 'layout',\n icon: 'grid',\n acceptsChildren: true,\n allowedChildren: ['*'],\n disallowedParents: ['page'],\n defaultProps: {\n columns: 3,\n gap: '16px',\n },\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name for the grid container.' }),\n ],\n defaultStyles: {\n base: {\n display: 'grid',\n gridTemplateColumns: 'repeat(3, minmax(0, 1fr))',\n gap: '16px',\n },\n tablet: {\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n gap: '16px',\n },\n mobile: {\n gridTemplateColumns: 'repeat(1, minmax(0, 1fr))',\n gap: '16px',\n },\n },\n};\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const headingDefinition: ComponentDefinition = {\n type: 'heading',\n label: 'Heading',\n category: 'typography',\n icon: 'heading',\n acceptsChildren: false,\n defaultProps: { text: 'Heading Text', level: 2 },\n propFields: [\n { name: 'text', label: 'Text', type: 'string', defaultValue: 'Heading Text' },\n {\n name: 'level',\n label: 'Heading Level',\n type: 'select',\n defaultValue: 2,\n options: [1, 2, 3, 4, 5, 6].map((level) => ({ label: `H${level}`, value: level })),\n },\n ],\n traits: [\n idTrait(),\n titleTrait({ description: 'Advisory title shown when hovering the heading.' }),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (!isVariableBinding(props.text) && (typeof props.text !== 'string' || props.text.trim().length === 0)) {\n errors.push('Heading requires a non-empty \"text\".');\n }\n if (props.level !== undefined && (typeof props.level !== 'number' || props.level < 1 || props.level > 6)) {\n errors.push('Heading \"level\" must be a number between 1 and 6.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n fontSize: '32px',\n fontWeight: '700',\n color: '#111827',\n margin: '0 0 16px 0',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const textDefinition: ComponentDefinition = {\n type: 'text',\n label: 'Text',\n category: 'typography',\n icon: 'type',\n acceptsChildren: false,\n defaultProps: { content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' },\n propFields: [\n { name: 'content', label: 'Content', type: 'string', defaultValue: 'Lorem ipsum dolor sit amet.' },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n if (!isVariableBinding(props.content) && (typeof props.content !== 'string' || props.content.trim().length === 0)) {\n return ['Text requires a non-empty \"content\".'];\n }\n return true;\n },\n defaultStyles: {\n base: {\n fontSize: '16px',\n color: '#4b5563',\n lineHeight: '1.6',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const paragraphDefinition: ComponentDefinition = {\n type: 'paragraph',\n label: 'Paragraph',\n category: 'typography',\n icon: 'paragraph',\n acceptsChildren: false,\n defaultProps: {\n text: 'A paragraph of text with clean semantic typography.',\n },\n propFields: [\n {\n name: 'text',\n label: 'Text',\n type: 'string',\n defaultValue: 'A paragraph of text with clean semantic typography.',\n },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n const textVal = props.text ?? props.content;\n if (\n textVal !== undefined &&\n !isVariableBinding(textVal) &&\n (typeof textVal !== 'string' || textVal.trim().length === 0)\n ) {\n errors.push('Paragraph requires a non-empty \"text\".');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n fontSize: '16px',\n color: '#4b5563',\n lineHeight: '1.6',\n margin: '0 0 16px 0',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, hrefTrait, idTrait, relTrait, targetTrait, titleTrait } from '../../traits';\n\nexport const linkDefinition: ComponentDefinition = {\n type: 'link',\n label: 'Link',\n category: 'typography',\n icon: 'link',\n acceptsChildren: false,\n defaultProps: {\n text: 'Click here',\n href: '#',\n target: '_self',\n rel: '',\n },\n propFields: [\n { name: 'text', label: 'Link Text', type: 'string', defaultValue: 'Click here' },\n { name: 'href', label: 'URL (href)', type: 'string', defaultValue: '#' },\n {\n name: 'target',\n label: 'Target',\n type: 'select',\n defaultValue: '_self',\n options: [\n { label: 'Same tab (_self)', value: '_self' },\n { label: 'New tab (_blank)', value: '_blank' },\n { label: 'Parent (_parent)', value: '_parent' },\n { label: 'Top (_top)', value: '_top' },\n ],\n },\n { name: 'rel', label: 'Relationship (rel)', type: 'string', defaultValue: '' },\n ],\n traits: [\n hrefTrait(),\n targetTrait(),\n relTrait(),\n idTrait(),\n titleTrait({ description: 'Advisory title shown when hovering the link.' }),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (\n props.text !== undefined &&\n !isVariableBinding(props.text) &&\n (typeof props.text !== 'string' || props.text.trim().length === 0)\n ) {\n errors.push('Link requires a non-empty \"text\".');\n }\n if (props.href !== undefined && typeof props.href !== 'string' && !isVariableBinding(props.href)) {\n errors.push('Link \"href\" must be a string when provided.');\n }\n if (props.target !== undefined && !isVariableBinding(props.target)) {\n const allowedTargets = ['_self', '_blank', '_parent', '_top'];\n if (typeof props.target !== 'string' || !allowedTargets.includes(props.target)) {\n errors.push(`Link \"target\" must be one of: ${allowedTargets.join(', ')}.`);\n }\n }\n if (props.rel !== undefined && typeof props.rel !== 'string' && !isVariableBinding(props.rel)) {\n errors.push('Link \"rel\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n color: '#2563eb',\n textDecoration: 'underline',\n cursor: 'pointer',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, citeTrait, idTrait, titleTrait } from '../../traits';\n\nexport const blockquoteDefinition: ComponentDefinition = {\n type: 'blockquote',\n label: 'Blockquote',\n category: 'typography',\n icon: 'blockquote',\n acceptsChildren: true,\n allowedChildren: [\n 'paragraph',\n 'text',\n 'heading',\n 'link',\n 'badge',\n 'code-block',\n 'image',\n 'video',\n 'icon',\n 'html-embed',\n 'custom',\n ],\n defaultProps: {\n text: '“Simplicity is the soul of efficiency.”',\n },\n propFields: [\n {\n name: 'text',\n label: 'Quote Text',\n type: 'string',\n defaultValue: '“Simplicity is the soul of efficiency.”',\n },\n { name: 'cite', label: 'Citation URL (cite)', type: 'string' },\n ],\n traits: [\n citeTrait(),\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.text !== undefined && typeof props.text !== 'string' && !isVariableBinding(props.text)) {\n errors.push('Blockquote \"text\" must be a string when provided.');\n }\n if (props.cite !== undefined && typeof props.cite !== 'string' && !isVariableBinding(props.cite)) {\n errors.push('Blockquote \"cite\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n borderLeftWidth: '4px',\n borderLeftColor: '#3b82f6',\n borderLeftStyle: 'solid',\n paddingTop: '8px',\n paddingBottom: '8px',\n paddingLeft: '16px',\n paddingRight: '12px',\n margin: '0 0 16px 0',\n fontStyle: 'italic',\n color: '#4b5563',\n backgroundColor: '#f8fafc',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const badgeDefinition: ComponentDefinition = {\n type: 'badge',\n label: 'Badge',\n category: 'typography',\n icon: 'badge',\n acceptsChildren: false,\n defaultProps: {\n text: 'Badge',\n variant: 'default',\n },\n propFields: [\n { name: 'text', label: 'Badge Text', type: 'string', defaultValue: 'Badge' },\n {\n name: 'variant',\n label: 'Variant',\n type: 'select',\n defaultValue: 'default',\n options: [\n { label: 'Default', value: 'default' },\n { label: 'Success', value: 'success' },\n { label: 'Warning', value: 'warning' },\n { label: 'Danger', value: 'danger' },\n { label: 'Info', value: 'info' },\n ],\n },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (\n props.text !== undefined &&\n !isVariableBinding(props.text) &&\n (typeof props.text !== 'string' || props.text.trim().length === 0)\n ) {\n errors.push('Badge requires a non-empty \"text\".');\n }\n if (props.variant !== undefined && typeof props.variant !== 'string' && !isVariableBinding(props.variant)) {\n errors.push('Badge \"variant\" must be a string.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n paddingLeft: '10px',\n paddingRight: '10px',\n paddingTop: '2px',\n paddingBottom: '2px',\n borderRadius: '9999px',\n fontSize: '12px',\n fontWeight: '500',\n lineHeight: '1.4',\n backgroundColor: '#e0e7ff',\n color: '#3730a3',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const codeBlockDefinition: ComponentDefinition = {\n type: 'code-block',\n label: 'Code Block',\n category: 'typography',\n icon: 'code-block',\n acceptsChildren: false,\n defaultProps: {\n code: 'console.log(\"Hello, world!\");',\n language: 'javascript',\n },\n propFields: [\n {\n name: 'code',\n label: 'Code',\n type: 'textarea',\n defaultValue: 'console.log(\"Hello, world!\");',\n },\n {\n name: 'language',\n label: 'Language',\n type: 'string',\n defaultValue: 'javascript',\n },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait({ description: 'Accessible label describing what the code example shows.' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.code !== undefined && typeof props.code !== 'string' && !isVariableBinding(props.code)) {\n errors.push('Code Block \"code\" must be a string when provided.');\n }\n if (props.language !== undefined && typeof props.language !== 'string' && !isVariableBinding(props.language)) {\n errors.push('Code Block \"language\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n backgroundColor: '#1e293b',\n color: '#f8fafc',\n padding: '16px',\n borderRadius: '8px',\n fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n fontSize: '14px',\n lineHeight: '1.5',\n overflowX: 'auto',\n margin: '0 0 16px 0',\n whiteSpace: 'pre',\n },\n },\n};\n\n","import { isAssetReference, isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { altTrait, ariaLabelTrait, idTrait, loadingTrait, srcTrait, titleTrait } from '../../traits';\n\nexport const imageDefinition: ComponentDefinition = {\n type: 'image',\n label: 'Image',\n category: 'media',\n icon: 'image',\n acceptsChildren: false,\n capabilities: ['assetProvider'],\n defaultProps: {\n src: 'https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=800&auto=format&fit=crop&q=80',\n alt: 'Default image',\n width: 600,\n height: 400,\n },\n propFields: [\n { name: 'src', label: 'Image URL', type: 'string' },\n { name: 'asset', label: 'Asset Reference', type: 'json' },\n { name: 'alt', label: 'Alt Text', type: 'string', defaultValue: 'Default image' },\n { name: 'width', label: 'Width', type: 'number' },\n { name: 'height', label: 'Height', type: 'number' },\n ],\n traits: [\n srcTrait(),\n altTrait({ defaultValue: 'Default image' }),\n loadingTrait(),\n idTrait(),\n titleTrait(),\n ariaLabelTrait({ description: 'Override the alt text for assistive technology (rarely needed).' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n const hasSrc = (typeof props.src === 'string' && props.src.trim().length > 0) || isVariableBinding(props.src);\n const hasAsset = isAssetReference(props.asset);\n if (!hasSrc && !hasAsset) {\n errors.push('Image requires either a non-empty \"src\" URL or a valid \"asset\" reference.');\n }\n const hasAlt = (typeof props.alt === 'string' && props.alt.trim().length > 0) || isVariableBinding(props.alt);\n if (!hasAlt) {\n errors.push('Image requires non-empty \"alt\" text.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n maxWidth: '100%',\n height: 'auto',\n borderRadius: '8px',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n autoplayTrait,\n controlsTrait,\n idTrait,\n loopTrait,\n mutedTrait,\n posterTrait,\n srcTrait,\n titleTrait,\n} from '../../traits';\n\nexport const videoDefinition: ComponentDefinition = {\n type: 'video',\n label: 'Video',\n category: 'media',\n icon: 'video',\n acceptsChildren: false,\n defaultProps: {\n src: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',\n provider: 'auto',\n poster: '',\n controls: true,\n autoplay: false,\n loop: false,\n muted: false,\n aspectRatio: '16:9',\n },\n propFields: [\n {\n name: 'src',\n label: 'Video URL (HTML5, YouTube, Vimeo)',\n type: 'string',\n defaultValue: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',\n },\n {\n name: 'provider',\n label: 'Provider',\n type: 'select',\n defaultValue: 'auto',\n options: [\n { label: 'Auto Detect', value: 'auto' },\n { label: 'HTML5 Video', value: 'html5' },\n { label: 'YouTube Embed', value: 'youtube' },\n { label: 'Vimeo Embed', value: 'vimeo' },\n ],\n },\n { name: 'poster', label: 'Poster Image URL', type: 'string', defaultValue: '' },\n { name: 'controls', label: 'Show Controls', type: 'boolean', defaultValue: true },\n { name: 'autoplay', label: 'Autoplay', type: 'boolean', defaultValue: false },\n { name: 'loop', label: 'Loop', type: 'boolean', defaultValue: false },\n { name: 'muted', label: 'Muted', type: 'boolean', defaultValue: false },\n {\n name: 'aspectRatio',\n label: 'Aspect Ratio',\n type: 'select',\n defaultValue: '16:9',\n options: [\n { label: '16:9 (Widescreen)', value: '16:9' },\n { label: '4:3 (Standard)', value: '4:3' },\n { label: '1:1 (Square)', value: '1:1' },\n { label: '9:16 (Vertical)', value: '9:16' },\n { label: 'Auto', value: 'auto' },\n ],\n },\n ],\n traits: [\n srcTrait(),\n posterTrait(),\n controlsTrait(),\n autoplayTrait(),\n loopTrait(),\n mutedTrait(),\n idTrait(),\n titleTrait(),\n ariaLabelTrait({ description: 'Accessible name summarizing the video content.' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.src !== undefined && typeof props.src !== 'string' && !isVariableBinding(props.src)) {\n errors.push('Video \"src\" must be a string when provided.');\n }\n if (props.provider !== undefined && !isVariableBinding(props.provider)) {\n const allowed = ['auto', 'html5', 'youtube', 'vimeo'];\n if (typeof props.provider !== 'string' || !allowed.includes(props.provider)) {\n errors.push(`Video \"provider\" must be one of: ${allowed.join(', ')}.`);\n }\n }\n if (props.controls !== undefined && typeof props.controls !== 'boolean' && !isVariableBinding(props.controls)) {\n errors.push('Video \"controls\" must be a boolean.');\n }\n if (props.autoplay !== undefined && typeof props.autoplay !== 'boolean' && !isVariableBinding(props.autoplay)) {\n errors.push('Video \"autoplay\" must be a boolean.');\n }\n if (props.loop !== undefined && typeof props.loop !== 'boolean' && !isVariableBinding(props.loop)) {\n errors.push('Video \"loop\" must be a boolean.');\n }\n if (props.muted !== undefined && typeof props.muted !== 'boolean' && !isVariableBinding(props.muted)) {\n errors.push('Video \"muted\" must be a boolean.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n maxWidth: '800px',\n borderRadius: '8px',\n overflow: 'hidden',\n display: 'block',\n margin: '0 0 16px 0',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const iconDefinition: ComponentDefinition = {\n type: 'icon',\n label: 'Icon',\n category: 'media',\n icon: 'sparkles',\n acceptsChildren: false,\n defaultProps: {\n name: 'star',\n size: 24,\n color: '#2563eb',\n strokeWidth: 2,\n },\n propFields: [\n { name: 'name', label: 'Icon Name (Lucide)', type: 'string', defaultValue: 'star' },\n { name: 'size', label: 'Size (px)', type: 'number', defaultValue: 24 },\n { name: 'color', label: 'Color', type: 'color', defaultValue: '#2563eb' },\n { name: 'strokeWidth', label: 'Stroke Width', type: 'number', defaultValue: 2 },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait({ required: true, description: 'Required: describes what the icon represents for screen readers.' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (\n props.name !== undefined &&\n !isVariableBinding(props.name) &&\n (typeof props.name !== 'string' || props.name.trim().length === 0)\n ) {\n errors.push('Icon requires a non-empty \"name\".');\n }\n if (props.size !== undefined && !isVariableBinding(props.size)) {\n if (typeof props.size !== 'number' || props.size < 0) {\n errors.push('Icon \"size\" must be a non-negative number.');\n }\n }\n if (props.strokeWidth !== undefined && !isVariableBinding(props.strokeWidth)) {\n if (typeof props.strokeWidth !== 'number' || props.strokeWidth < 0) {\n errors.push('Icon \"strokeWidth\" must be a non-negative number.');\n }\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait } from '../../traits';\n\nexport const htmlEmbedDefinition: ComponentDefinition = {\n type: 'html-embed',\n label: 'HTML Embed',\n category: 'custom',\n icon: 'code',\n acceptsChildren: false,\n defaultProps: {\n html: '<div style=\"padding: 16px; background: #f1f5f9; border-radius: 8px; text-align: center; font-family: sans-serif; color: #475569;\">Custom HTML Embed Content</div>',\n },\n propFields: [\n {\n name: 'html',\n label: 'HTML / Embed Code',\n type: 'textarea',\n defaultValue: '<div style=\"padding: 16px; background: #f1f5f9; border-radius: 8px; text-align: center; font-family: sans-serif; color: #475569;\">Custom HTML Embed Content</div>',\n },\n ],\n traits: [\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.html !== undefined && typeof props.html !== 'string' && !isVariableBinding(props.html)) {\n errors.push('HTML Embed \"html\" must be a string.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n margin: '0 0 16px 0',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, colSpanTrait, idTrait, rowSpanTrait } from '../../traits';\n\nexport const tableDefinition: ComponentDefinition = {\n type: 'table',\n label: 'Table',\n category: 'layout',\n icon: 'table',\n acceptsChildren: true,\n allowedChildren: ['table-row'],\n defaultProps: {\n striped: false,\n bordered: true,\n compact: false,\n },\n defaultChildren: [\n {\n type: 'table-row',\n children: [\n { type: 'table-cell', props: { tag: 'th', text: 'Header 1' } },\n { type: 'table-cell', props: { tag: 'th', text: 'Header 2' } },\n ],\n },\n {\n type: 'table-row',\n children: [\n { type: 'table-cell', props: { tag: 'td', text: 'Data 1' } },\n { type: 'table-cell', props: { tag: 'td', text: 'Data 2' } },\n ],\n },\n ],\n propFields: [\n { name: 'striped', label: 'Striped Rows', type: 'boolean', defaultValue: false },\n { name: 'bordered', label: 'Bordered', type: 'boolean', defaultValue: true },\n { name: 'compact', label: 'Compact Spacing', type: 'boolean', defaultValue: false },\n ],\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Required: provides a caption summary for the table when no visible caption exists.' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.striped !== undefined && typeof props.striped !== 'boolean' && !isVariableBinding(props.striped)) {\n errors.push('Table \"striped\" must be a boolean.');\n }\n if (props.bordered !== undefined && typeof props.bordered !== 'boolean' && !isVariableBinding(props.bordered)) {\n errors.push('Table \"bordered\" must be a boolean.');\n }\n if (props.compact !== undefined && typeof props.compact !== 'boolean' && !isVariableBinding(props.compact)) {\n errors.push('Table \"compact\" must be a boolean.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n margin: '0 0 16px 0',\n borderCollapse: 'collapse',\n },\n },\n};\n\nexport const tableRowDefinition: ComponentDefinition = {\n type: 'table-row',\n label: 'Table Row',\n category: 'layout',\n icon: 'table-row',\n acceptsChildren: true,\n allowedChildren: ['table-cell'],\n disallowedParents: ['page'],\n defaultProps: {},\n defaultChildren: [\n { type: 'table-cell', props: { tag: 'td', text: 'Data' } },\n ],\n traits: [\n idTrait(),\n ariaLabelTrait(),\n ],\n defaultStyles: {\n base: {},\n },\n};\n\nexport const tableCellDefinition: ComponentDefinition = {\n type: 'table-cell',\n label: 'Table Cell',\n category: 'layout',\n icon: 'table-cell',\n acceptsChildren: true,\n allowedChildren: [\n 'heading',\n 'text',\n 'paragraph',\n 'link',\n 'blockquote',\n 'badge',\n 'code-block',\n 'image',\n 'video',\n 'icon',\n 'html-embed',\n 'button',\n 'list',\n 'custom',\n ],\n disallowedParents: ['page'],\n defaultProps: {\n tag: 'td',\n text: 'Cell',\n colSpan: 1,\n rowSpan: 1,\n },\n propFields: [\n {\n name: 'tag',\n label: 'Cell Type',\n type: 'select',\n defaultValue: 'td',\n options: [\n { label: 'Data Cell (td)', value: 'td' },\n { label: 'Header Cell (th)', value: 'th' },\n ],\n },\n { name: 'text', label: 'Text', type: 'string', defaultValue: 'Cell' },\n { name: 'colSpan', label: 'Column Span (colSpan)', type: 'number', defaultValue: 1 },\n { name: 'rowSpan', label: 'Row Span (rowSpan)', type: 'number', defaultValue: 1 },\n ],\n traits: [\n colSpanTrait(),\n rowSpanTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.tag !== undefined && !isVariableBinding(props.tag)) {\n if (props.tag !== 'td' && props.tag !== 'th') {\n errors.push('Table Cell \"tag\" must be either \"td\" or \"th\".');\n }\n }\n if (props.colSpan !== undefined && !isVariableBinding(props.colSpan)) {\n if (typeof props.colSpan !== 'number' || props.colSpan < 1 || !Number.isInteger(props.colSpan)) {\n errors.push('Table Cell \"colSpan\" must be a positive integer (>= 1).');\n }\n }\n if (props.rowSpan !== undefined && !isVariableBinding(props.rowSpan)) {\n if (typeof props.rowSpan !== 'number' || props.rowSpan < 1 || !Number.isInteger(props.rowSpan)) {\n errors.push('Table Cell \"rowSpan\" must be a positive integer (>= 1).');\n }\n }\n if (props.text !== undefined && typeof props.text !== 'string' && !isVariableBinding(props.text)) {\n errors.push('Table Cell \"text\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n padding: '8px 12px',\n borderWidth: '1px',\n borderColor: '#e2e8f0',\n borderStyle: 'solid',\n textAlign: 'left',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait, titleTrait } from '../../traits';\n\nexport const listDefinition: ComponentDefinition = {\n type: 'list',\n label: 'List',\n category: 'typography',\n icon: 'list',\n acceptsChildren: true,\n allowedChildren: ['list-item'],\n defaultProps: {\n tag: 'ul',\n listStyleType: 'disc',\n },\n defaultChildren: [\n { type: 'list-item', props: { text: 'List item 1' } },\n { type: 'list-item', props: { text: 'List item 2' } },\n { type: 'list-item', props: { text: 'List item 3' } },\n ],\n propFields: [\n {\n name: 'tag',\n label: 'Tag',\n type: 'select',\n defaultValue: 'ul',\n options: [\n { label: 'Unordered (ul)', value: 'ul' },\n { label: 'Ordered (ol)', value: 'ol' },\n ],\n },\n {\n name: 'listStyleType',\n label: 'List Style Type',\n type: 'select',\n defaultValue: 'disc',\n options: [\n { label: 'Disc', value: 'disc' },\n { label: 'Circle', value: 'circle' },\n { label: 'Square', value: 'square' },\n { label: 'Decimal', value: 'decimal' },\n { label: 'None', value: 'none' },\n { label: 'Custom Icon', value: 'custom-icon' },\n ],\n },\n ],\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name for the list (e.g. \"Navigation menu\", \"Features\").' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.tag !== undefined && !isVariableBinding(props.tag)) {\n if (props.tag !== 'ul' && props.tag !== 'ol') {\n errors.push('List \"tag\" must be either \"ul\" or \"ol\".');\n }\n }\n if (props.listStyleType !== undefined && !isVariableBinding(props.listStyleType)) {\n const allowed = ['disc', 'circle', 'square', 'decimal', 'none', 'custom-icon'];\n if (typeof props.listStyleType !== 'string' || !allowed.includes(props.listStyleType)) {\n errors.push(`List \"listStyleType\" must be one of: ${allowed.join(', ')}.`);\n }\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n margin: '0 0 16px 0',\n paddingLeft: '24px',\n },\n },\n};\n\nexport const listItemDefinition: ComponentDefinition = {\n type: 'list-item',\n label: 'List Item',\n category: 'typography',\n icon: 'list-item',\n acceptsChildren: true,\n allowedChildren: [\n 'heading',\n 'text',\n 'paragraph',\n 'link',\n 'blockquote',\n 'badge',\n 'code-block',\n 'image',\n 'video',\n 'icon',\n 'html-embed',\n 'button',\n 'list',\n 'custom',\n ],\n defaultProps: {\n text: 'List item',\n },\n propFields: [\n {\n name: 'text',\n label: 'Text',\n type: 'string',\n defaultValue: 'List item',\n },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.text !== undefined && typeof props.text !== 'string' && !isVariableBinding(props.text)) {\n errors.push('List Item \"text\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n margin: '4px 0',\n fontSize: '16px',\n color: '#374151',\n lineHeight: '1.5',\n },\n },\n};\n\n","import { ComponentDefinition } from '../../registry';\nimport { ariaLabelTrait, idTrait } from '../../traits';\n\nexport const collectionDefinition: ComponentDefinition = {\n type: 'collection',\n label: 'Collection',\n category: 'data',\n icon: 'database',\n acceptsChildren: true,\n defaultProps: {\n sourceKey: 'items',\n itemAlias: 'item',\n },\n propFields: [\n { name: 'sourceKey', label: 'Source Variable', type: 'string', defaultValue: 'items' },\n { name: 'itemAlias', label: 'Item Alias', type: 'string', defaultValue: 'item' },\n ],\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name summarizing the repeated collection (e.g. \"Product list\").' }),\n ],\n};\n\n","import { isActionBinding, isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n autoDisableOnSubmitTrait,\n buttonTypeTrait,\n disabledTrait,\n hrefTrait,\n idTrait,\n labelTextTrait,\n loadingTextTrait,\n prefixIconTrait,\n relTrait,\n showSpinnerTrait,\n suffixIconTrait,\n targetTrait,\n titleTrait,\n} from '../../traits';\n\nexport const buttonDefinition: ComponentDefinition = {\n type: 'button',\n label: 'Button',\n category: 'interactive',\n icon: 'mouse-pointer',\n acceptsChildren: false,\n capabilities: ['actionRegistry'],\n defaultProps: {\n label: 'Click Me',\n variant: 'primary',\n },\n propFields: [\n { name: 'label', label: 'Label', type: 'string', defaultValue: 'Click Me' },\n { name: 'href', label: 'Link URL', type: 'string' },\n { name: 'action', label: 'Action', type: 'action' },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n {\n name: 'buttonType',\n label: 'Button Type',\n type: 'select',\n defaultValue: 'button',\n options: [\n { label: 'Button', value: 'button' },\n { label: 'Submit Form (submit)', value: 'submit' },\n { label: 'Reset Form (reset)', value: 'reset' },\n ],\n },\n {\n name: 'variant',\n label: 'Variant',\n type: 'select',\n defaultValue: 'primary',\n options: [\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n ],\n },\n ],\n traits: [\n buttonTypeTrait(),\n disabledTrait(),\n hrefTrait({ description: 'Optional URL — when set, the button renders as an anchor styled like a button.' }),\n targetTrait({ description: 'Where to open the href URL (only used when href is set).' }),\n relTrait({ description: 'Relationship tokens (only used when href is set).' }),\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n const hasLabel =\n (typeof props.label === 'string' && props.label.trim().length > 0) || isVariableBinding(props.label);\n if (!hasLabel) {\n errors.push('Button requires a non-empty \"label\".');\n }\n if (props.href !== undefined && typeof props.href !== 'string' && !isVariableBinding(props.href)) {\n errors.push('Button \"href\" must be a string when provided.');\n }\n if (props.buttonType !== undefined && !isVariableBinding(props.buttonType)) {\n if (!['button', 'submit', 'reset'].includes(props.buttonType as string)) {\n errors.push('Button \"buttonType\" must be one of: \"button\", \"submit\", \"reset\".');\n }\n }\n if (props.action !== undefined && !isActionBinding(props.action)) {\n errors.push('Button \"action\" must be a valid action binding when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Button \"disabled\" must be a boolean when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '20px',\n paddingRight: '20px',\n borderRadius: '6px',\n fontWeight: '500',\n fontSize: '15px',\n border: 'none',\n cursor: 'pointer',\n },\n },\n};\n\nexport const buttonSubmitDefinition: ComponentDefinition = {\n type: 'button-submit',\n label: 'Submit Button',\n category: 'form',\n icon: 'send',\n acceptsChildren: false,\n capabilities: ['actionRegistry'],\n disallowedParents: ['page'],\n defaultProps: {\n label: 'Submit',\n loadingText: 'Submitting...',\n showSpinner: true,\n autoDisableOnSubmit: true,\n variant: 'primary',\n disabled: false,\n buttonType: 'submit',\n },\n propFields: [\n { name: 'label', label: 'Label', type: 'string', defaultValue: 'Submit' },\n { name: 'loadingText', label: 'Loading Text', type: 'string', defaultValue: 'Submitting...' },\n { name: 'showSpinner', label: 'Show Loading Spinner', type: 'boolean', defaultValue: true },\n { name: 'autoDisableOnSubmit', label: 'Auto Disable on Submit', type: 'boolean', defaultValue: true },\n {\n name: 'buttonType',\n label: 'Button Type',\n type: 'select',\n defaultValue: 'submit',\n options: [\n { label: 'Submit Form (submit)', value: 'submit' },\n { label: 'Reset Form (reset)', value: 'reset' },\n ],\n },\n {\n name: 'variant',\n label: 'Variant',\n type: 'select',\n defaultValue: 'primary',\n options: [\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n ],\n },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'prefixIcon', label: 'Prefix Icon', type: 'string' },\n { name: 'suffixIcon', label: 'Suffix Icon', type: 'string' },\n ],\n traits: [\n buttonTypeTrait({\n defaultValue: 'submit',\n options: [\n { label: 'Submit Form (submit)', value: 'submit' },\n { label: 'Reset Form (reset)', value: 'reset' },\n ],\n }),\n labelTextTrait({ defaultValue: 'Submit', label: 'Label' }),\n loadingTextTrait(),\n showSpinnerTrait(),\n autoDisableOnSubmitTrait(),\n disabledTrait(),\n prefixIconTrait(),\n suffixIconTrait(),\n idTrait(),\n titleTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n const hasLabel =\n (typeof props.label === 'string' && props.label.trim().length > 0) || isVariableBinding(props.label);\n if (!hasLabel) {\n errors.push('Submit Button requires a non-empty \"label\".');\n }\n if (props.loadingText !== undefined && typeof props.loadingText !== 'string' && !isVariableBinding(props.loadingText)) {\n errors.push('Submit Button \"loadingText\" must be a string when provided.');\n }\n if (props.showSpinner !== undefined && typeof props.showSpinner !== 'boolean' && !isVariableBinding(props.showSpinner)) {\n errors.push('Submit Button \"showSpinner\" must be a boolean when provided.');\n }\n if (props.autoDisableOnSubmit !== undefined && typeof props.autoDisableOnSubmit !== 'boolean' && !isVariableBinding(props.autoDisableOnSubmit)) {\n errors.push('Submit Button \"autoDisableOnSubmit\" must be a boolean when provided.');\n }\n if (props.buttonType !== undefined && !isVariableBinding(props.buttonType)) {\n if (!['submit', 'reset', 'button'].includes(props.buttonType as string)) {\n errors.push('Submit Button \"buttonType\" must be one of: \"submit\", \"reset\", \"button\".');\n }\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Submit Button \"disabled\" must be a boolean when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '20px',\n paddingRight: '20px',\n borderRadius: '6px',\n fontWeight: '500',\n fontSize: '15px',\n border: 'none',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '8px',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n actionTrait,\n ariaLabelTrait,\n autoCompleteTrait,\n fieldNameTrait,\n idTrait,\n methodTrait,\n preventDefaultTrait,\n resetOnSubmitTrait,\n scrollToFirstErrorTrait,\n targetTrait,\n} from '../../traits';\nimport { CONTENT_CHILD_TYPES } from '../constants';\n\nexport const formDefinition: ComponentDefinition = {\n type: 'form',\n label: 'Form',\n category: 'form',\n icon: 'form',\n acceptsChildren: true,\n allowedChildren: [\n ...CONTENT_CHILD_TYPES,\n 'container',\n 'columns',\n 'section',\n ],\n disallowedParents: ['page'],\n defaultProps: {\n name: 'contact_form',\n method: 'POST',\n action: '',\n target: '_self',\n autoComplete: 'on',\n preventDefault: true,\n scrollToFirstError: true,\n resetOnSubmit: false,\n },\n defaultChildren: [\n { type: 'input', props: { name: 'name', type: 'text', placeholder: 'Your Name', required: true } },\n { type: 'input', props: { name: 'email', type: 'email', placeholder: 'Your Email', required: true } },\n { type: 'textarea', props: { name: 'message', placeholder: 'Your Message', rows: 4, required: true } },\n { type: 'checkbox', props: { name: 'agree', label: 'I agree to the terms and privacy policy', required: true } },\n { type: 'button', props: { label: 'Send Message', variant: 'primary', buttonType: 'submit' } },\n ],\n propFields: [\n { name: 'name', label: 'Form Name', type: 'string', defaultValue: 'contact_form' },\n { name: 'action', label: 'Action URL', type: 'string' },\n {\n name: 'method',\n label: 'Method',\n type: 'select',\n defaultValue: 'POST',\n options: [\n { label: 'POST', value: 'POST' },\n { label: 'GET', value: 'GET' },\n ],\n },\n {\n name: 'target',\n label: 'Target',\n type: 'select',\n defaultValue: '_self',\n options: [\n { label: 'Same Window (_self)', value: '_self' },\n { label: 'New Tab (_blank)', value: '_blank' },\n ],\n },\n {\n name: 'autoComplete',\n label: 'Auto Complete',\n type: 'select',\n defaultValue: 'on',\n options: [\n { label: 'On', value: 'on' },\n { label: 'Off', value: 'off' },\n ],\n },\n { name: 'preventDefault', label: 'Prevent Default', type: 'boolean', defaultValue: true },\n { name: 'scrollToFirstError', label: 'Scroll to First Error', type: 'boolean', defaultValue: true },\n { name: 'resetOnSubmit', label: 'Reset on Submit', type: 'boolean', defaultValue: false },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'contact_form', required: false }),\n actionTrait(),\n methodTrait(),\n targetTrait({ options: [\n { label: 'Same Window (_self)', value: '_self' },\n { label: 'New Tab (_blank)', value: '_blank' },\n { label: 'Parent (_parent)', value: '_parent' },\n { label: 'Top (_top)', value: '_top' },\n ]}),\n autoCompleteTrait(),\n preventDefaultTrait(),\n scrollToFirstErrorTrait(),\n resetOnSubmitTrait(),\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name for the form landmark.' }),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Form \"name\" must be a string when provided.');\n }\n if (props.action !== undefined && typeof props.action !== 'string' && !isVariableBinding(props.action)) {\n errors.push('Form \"action\" must be a string when provided.');\n }\n if (props.method !== undefined && !isVariableBinding(props.method)) {\n if (!['GET', 'POST', 'get', 'post'].includes(props.method as string)) {\n errors.push('Form \"method\" must be either \"GET\" or \"POST\".');\n }\n }\n if (props.target !== undefined && !isVariableBinding(props.target)) {\n if (!['_self', '_blank', '_parent', '_top'].includes(props.target as string)) {\n errors.push('Form \"target\" must be one of: \"_self\", \"_blank\", \"_parent\", \"_top\".');\n }\n }\n if (props.autoComplete !== undefined && !isVariableBinding(props.autoComplete)) {\n if (!['on', 'off'].includes(props.autoComplete as string)) {\n errors.push('Form \"autoComplete\" must be either \"on\" or \"off\".');\n }\n }\n if (props.preventDefault !== undefined && typeof props.preventDefault !== 'boolean' && !isVariableBinding(props.preventDefault)) {\n errors.push('Form \"preventDefault\" must be a boolean when provided.');\n }\n if (props.scrollToFirstError !== undefined && typeof props.scrollToFirstError !== 'boolean' && !isVariableBinding(props.scrollToFirstError)) {\n errors.push('Form \"scrollToFirstError\" must be a boolean when provided.');\n }\n if (props.resetOnSubmit !== undefined && typeof props.resetOnSubmit !== 'boolean' && !isVariableBinding(props.resetOnSubmit)) {\n errors.push('Form \"resetOnSubmit\" must be a boolean when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n defaultValueTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n inputTypeTrait,\n maxLengthTrait,\n minLengthTrait,\n patternTrait,\n placeholderTrait,\n readOnlyTrait,\n requiredTrait,\n prefixIconTrait,\n suffixIconTrait,\n} from '../../traits';\n\nexport const inputDefinition: ComponentDefinition = {\n type: 'input',\n label: 'Input',\n category: 'form',\n icon: 'input',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'input_field',\n type: 'text',\n placeholder: 'Enter text...',\n defaultValue: '',\n required: false,\n disabled: false,\n readOnly: false,\n pattern: '',\n minLength: undefined,\n maxLength: undefined,\n prefixIcon: '',\n suffixIcon: '',\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Field Name', type: 'string', defaultValue: 'input_field' },\n {\n name: 'type',\n label: 'Input Type',\n type: 'select',\n defaultValue: 'text',\n options: [\n { label: 'Text', value: 'text' },\n { label: 'Email', value: 'email' },\n { label: 'Number', value: 'number' },\n { label: 'Password', value: 'password' },\n { label: 'Phone (tel)', value: 'tel' },\n { label: 'URL', value: 'url' },\n { label: 'Search', value: 'search' },\n { label: 'Date', value: 'date' },\n ],\n },\n { name: 'placeholder', label: 'Placeholder', type: 'string', defaultValue: 'Enter text...' },\n { name: 'defaultValue', label: 'Default Value', type: 'string' },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'readOnly', label: 'Read Only', type: 'boolean', defaultValue: false },\n { name: 'pattern', label: 'Pattern (regex)', type: 'string' },\n { name: 'minLength', label: 'Min Length', type: 'number' },\n { name: 'maxLength', label: 'Max Length', type: 'number' },\n { name: 'prefixIcon', label: 'Prefix Icon', type: 'string' },\n { name: 'suffixIcon', label: 'Suffix Icon', type: 'string' },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n inputTypeTrait({ options: [\n { label: 'Text', value: 'text' },\n { label: 'Email', value: 'email' },\n { label: 'Number', value: 'number' },\n { label: 'Password', value: 'password' },\n { label: 'Phone (tel)', value: 'tel' },\n { label: 'URL', value: 'url' },\n { label: 'Search', value: 'search' },\n { label: 'Date', value: 'date' },\n { label: 'Hidden', value: 'hidden' },\n ]}),\n fieldNameTrait({ defaultValue: 'input_field' }),\n placeholderTrait({ defaultValue: 'Enter text...' }),\n defaultValueTrait(),\n requiredTrait(),\n patternTrait(),\n minLengthTrait(),\n maxLengthTrait(),\n prefixIconTrait(),\n suffixIconTrait(),\n helperTextTrait(),\n disabledTrait(),\n readOnlyTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Input \"name\" must be a string when provided.');\n }\n if (props.type !== undefined && !isVariableBinding(props.type)) {\n const validTypes = ['text', 'email', 'number', 'password', 'tel', 'url', 'search', 'date', 'hidden'];\n if (!validTypes.includes(props.type as string)) {\n errors.push(`Input \"type\" must be one of: ${validTypes.join(', ')}.`);\n }\n }\n if (props.placeholder !== undefined && typeof props.placeholder !== 'string' && !isVariableBinding(props.placeholder)) {\n errors.push('Input \"placeholder\" must be a string when provided.');\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('Input \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Input \"disabled\" must be a boolean when provided.');\n }\n if (props.readOnly !== undefined && typeof props.readOnly !== 'boolean' && !isVariableBinding(props.readOnly)) {\n errors.push('Input \"readOnly\" must be a boolean when provided.');\n }\n if (props.pattern !== undefined && typeof props.pattern !== 'string' && !isVariableBinding(props.pattern)) {\n errors.push('Input \"pattern\" must be a string when provided.');\n }\n if (props.minLength !== undefined && !isVariableBinding(props.minLength)) {\n if (typeof props.minLength !== 'number' || props.minLength < 0 || !Number.isInteger(props.minLength)) {\n errors.push('Input \"minLength\" must be a non-negative integer when provided.');\n }\n }\n if (props.maxLength !== undefined && !isVariableBinding(props.maxLength)) {\n if (typeof props.maxLength !== 'number' || props.maxLength < 0 || !Number.isInteger(props.maxLength)) {\n errors.push('Input \"maxLength\" must be a non-negative integer when provided.');\n }\n }\n if (props.prefixIcon !== undefined && typeof props.prefixIcon !== 'string' && !isVariableBinding(props.prefixIcon)) {\n errors.push('Input \"prefixIcon\" must be a string when provided.');\n }\n if (props.suffixIcon !== undefined && typeof props.suffixIcon !== 'string' && !isVariableBinding(props.suffixIcon)) {\n errors.push('Input \"suffixIcon\" must be a string when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('Input \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '14px',\n paddingRight: '14px',\n borderRadius: '6px',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '#cbd5e1',\n fontSize: '14px',\n backgroundColor: '#ffffff',\n color: '#1e293b',\n boxSizing: 'border-box',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n autoGrowTrait,\n defaultValueTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n maxCharCountTrait,\n placeholderTrait,\n readOnlyTrait,\n requiredTrait,\n resizeTrait,\n rowsTrait,\n} from '../../traits';\n\nexport const textareaDefinition: ComponentDefinition = {\n type: 'textarea',\n label: 'Textarea',\n category: 'form',\n icon: 'textarea',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'message',\n placeholder: 'Enter your message...',\n defaultValue: '',\n rows: 4,\n required: false,\n disabled: false,\n readOnly: false,\n resize: 'vertical',\n autoGrow: false,\n maxCharCount: undefined,\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Field Name', type: 'string', defaultValue: 'message' },\n { name: 'placeholder', label: 'Placeholder', type: 'string', defaultValue: 'Enter your message...' },\n { name: 'defaultValue', label: 'Default Value', type: 'textarea' },\n { name: 'rows', label: 'Rows', type: 'number', defaultValue: 4 },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'readOnly', label: 'Read Only', type: 'boolean', defaultValue: false },\n {\n name: 'resize',\n label: 'Resize',\n type: 'select',\n defaultValue: 'vertical',\n options: [\n { label: 'Vertical only', value: 'vertical' },\n { label: 'Horizontal only', value: 'horizontal' },\n { label: 'Both', value: 'both' },\n { label: 'None', value: 'none' },\n ],\n },\n { name: 'autoGrow', label: 'Auto Grow', type: 'boolean', defaultValue: false },\n { name: 'maxCharCount', label: 'Max Character Count', type: 'number' },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'message' }),\n placeholderTrait({ defaultValue: 'Enter your message...' }),\n defaultValueTrait(),\n rowsTrait(),\n resizeTrait(),\n autoGrowTrait(),\n maxCharCountTrait(),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n readOnlyTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Textarea \"name\" must be a string when provided.');\n }\n if (props.rows !== undefined && !isVariableBinding(props.rows)) {\n if (typeof props.rows !== 'number' || props.rows < 1 || !Number.isInteger(props.rows)) {\n errors.push('Textarea \"rows\" must be a positive integer (>= 1).');\n }\n }\n if (props.placeholder !== undefined && typeof props.placeholder !== 'string' && !isVariableBinding(props.placeholder)) {\n errors.push('Textarea \"placeholder\" must be a string when provided.');\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('Textarea \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Textarea \"disabled\" must be a boolean when provided.');\n }\n if (props.readOnly !== undefined && typeof props.readOnly !== 'boolean' && !isVariableBinding(props.readOnly)) {\n errors.push('Textarea \"readOnly\" must be a boolean when provided.');\n }\n if (props.resize !== undefined && !isVariableBinding(props.resize)) {\n const allowedResize = ['vertical', 'horizontal', 'both', 'none'];\n if (typeof props.resize !== 'string' || !allowedResize.includes(props.resize)) {\n errors.push(`Textarea \"resize\" must be one of: ${allowedResize.join(', ')}.`);\n }\n }\n if (props.autoGrow !== undefined && typeof props.autoGrow !== 'boolean' && !isVariableBinding(props.autoGrow)) {\n errors.push('Textarea \"autoGrow\" must be a boolean when provided.');\n }\n if (props.maxCharCount !== undefined && !isVariableBinding(props.maxCharCount)) {\n if (typeof props.maxCharCount !== 'number' || props.maxCharCount < 1 || !Number.isInteger(props.maxCharCount)) {\n errors.push('Textarea \"maxCharCount\" must be a positive integer (>= 1) when provided.');\n }\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('Textarea \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '14px',\n paddingRight: '14px',\n borderRadius: '6px',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '#cbd5e1',\n fontSize: '14px',\n backgroundColor: '#ffffff',\n color: '#1e293b',\n boxSizing: 'border-box',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n defaultValueTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n optionsListTrait,\n placeholderTrait,\n requiredTrait,\n} from '../../traits';\n\nexport const selectDefinition: ComponentDefinition = {\n type: 'select',\n label: 'Select',\n category: 'form',\n icon: 'select',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'select_field',\n placeholder: 'Select an option...',\n options: [\n { label: 'Option 1', value: 'option1' },\n { label: 'Option 2', value: 'option2' },\n { label: 'Option 3', value: 'option3' },\n ],\n defaultValue: '',\n required: false,\n disabled: false,\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Field Name', type: 'string', defaultValue: 'select_field' },\n { name: 'placeholder', label: 'Placeholder', type: 'string', defaultValue: 'Select an option...' },\n {\n name: 'options',\n label: 'Options (JSON list)',\n type: 'json',\n defaultValue: [\n { label: 'Option 1', value: 'option1' },\n { label: 'Option 2', value: 'option2' },\n { label: 'Option 3', value: 'option3' },\n ],\n },\n { name: 'defaultValue', label: 'Default Selected Value', type: 'string' },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'select_field' }),\n placeholderTrait({ defaultValue: 'Select an option...' }),\n optionsListTrait({ description: 'The list of dropdown choices (label + value pairs). Editable via the inspector trait panel.' }),\n defaultValueTrait({ description: 'The initially selected option value (must match one of the option values).' }),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Select \"name\" must be a string when provided.');\n }\n if (props.options !== undefined && !isVariableBinding(props.options)) {\n if (!Array.isArray(props.options) && typeof props.options !== 'string') {\n errors.push('Select \"options\" must be an array of option objects or a JSON string.');\n }\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('Select \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Select \"disabled\" must be a boolean when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('Select \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n width: '100%',\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '14px',\n paddingRight: '14px',\n borderRadius: '6px',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '#cbd5e1',\n fontSize: '14px',\n backgroundColor: '#ffffff',\n color: '#1e293b',\n boxSizing: 'border-box',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n defaultCheckedTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n indeterminateTrait,\n labelTextTrait,\n requiredTrait,\n valueTrait,\n} from '../../traits';\n\nexport const checkboxDefinition: ComponentDefinition = {\n type: 'checkbox',\n label: 'Checkbox',\n category: 'form',\n icon: 'checkbox',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'checkbox_field',\n label: 'I agree to the terms and conditions',\n value: 'yes',\n defaultChecked: false,\n indeterminate: false,\n required: false,\n disabled: false,\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Field Name', type: 'string', defaultValue: 'checkbox_field' },\n { name: 'label', label: 'Label Text', type: 'string', defaultValue: 'I agree to the terms and conditions' },\n { name: 'value', label: 'Checked Value', type: 'string', defaultValue: 'yes' },\n { name: 'defaultChecked', label: 'Default Checked', type: 'boolean', defaultValue: false },\n { name: 'indeterminate', label: 'Indeterminate', type: 'boolean', defaultValue: false },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'checkbox_field' }),\n labelTextTrait({ defaultValue: 'I agree to the terms and conditions' }),\n valueTrait({ defaultValue: 'yes' }),\n defaultCheckedTrait(),\n indeterminateTrait(),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.label !== undefined && typeof props.label !== 'string' && !isVariableBinding(props.label)) {\n errors.push('Checkbox \"label\" must be a string when provided.');\n }\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Checkbox \"name\" must be a string when provided.');\n }\n if (props.value !== undefined && typeof props.value !== 'string' && !isVariableBinding(props.value)) {\n errors.push('Checkbox \"value\" must be a string when provided.');\n }\n if (props.defaultChecked !== undefined && typeof props.defaultChecked !== 'boolean' && !isVariableBinding(props.defaultChecked)) {\n errors.push('Checkbox \"defaultChecked\" must be a boolean when provided.');\n }\n if (props.indeterminate !== undefined && typeof props.indeterminate !== 'boolean' && !isVariableBinding(props.indeterminate)) {\n errors.push('Checkbox \"indeterminate\" must be a boolean when provided.');\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('Checkbox \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Checkbox \"disabled\" must be a boolean when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('Checkbox \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n color: '#1e293b',\n cursor: 'pointer',\n userSelect: 'none',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n defaultCheckedTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n labelTextTrait,\n requiredTrait,\n switchSizeTrait,\n valueTrait,\n} from '../../traits';\n\nexport const switchDefinition: ComponentDefinition = {\n type: 'switch',\n label: 'Switch',\n category: 'form',\n icon: 'switch',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'switch_field',\n label: 'Enable feature',\n value: 'yes',\n defaultChecked: false,\n switchSize: 'md',\n required: false,\n disabled: false,\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Field Name', type: 'string', defaultValue: 'switch_field' },\n { name: 'label', label: 'Label Text', type: 'string', defaultValue: 'Enable feature' },\n { name: 'value', label: 'Checked Value', type: 'string', defaultValue: 'yes' },\n { name: 'defaultChecked', label: 'Default Checked', type: 'boolean', defaultValue: false },\n {\n name: 'switchSize',\n label: 'Size',\n type: 'select',\n defaultValue: 'md',\n options: [\n { label: 'Small', value: 'sm' },\n { label: 'Medium', value: 'md' },\n { label: 'Large', value: 'lg' },\n ],\n },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'switch_field' }),\n labelTextTrait({ defaultValue: 'Enable feature' }),\n valueTrait({ defaultValue: 'yes' }),\n defaultCheckedTrait(),\n switchSizeTrait(),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.label !== undefined && typeof props.label !== 'string' && !isVariableBinding(props.label)) {\n errors.push('Switch \"label\" must be a string when provided.');\n }\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Switch \"name\" must be a string when provided.');\n }\n if (props.value !== undefined && typeof props.value !== 'string' && !isVariableBinding(props.value)) {\n errors.push('Switch \"value\" must be a string when provided.');\n }\n if (props.defaultChecked !== undefined && typeof props.defaultChecked !== 'boolean' && !isVariableBinding(props.defaultChecked)) {\n errors.push('Switch \"defaultChecked\" must be a boolean when provided.');\n }\n if (props.switchSize !== undefined && !isVariableBinding(props.switchSize)) {\n const allowedSizes = ['sm', 'md', 'lg'];\n if (typeof props.switchSize !== 'string' || !allowedSizes.includes(props.switchSize)) {\n errors.push(`Switch \"switchSize\" must be one of: ${allowedSizes.join(', ')}.`);\n }\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('Switch \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Switch \"disabled\" must be a boolean when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('Switch \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n color: '#1e293b',\n cursor: 'pointer',\n userSelect: 'none',\n },\n },\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n ariaLabelTrait,\n defaultCheckedTrait,\n defaultSelectedTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n labelTextTrait,\n orientationTrait,\n requiredTrait,\n valueTrait,\n} from '../../traits';\n\nexport const radioGroupDefinition: ComponentDefinition = {\n type: 'radio-group',\n label: 'Radio Group',\n category: 'form',\n icon: 'radio-group',\n acceptsChildren: true,\n allowedChildren: ['radio', 'radio-item', 'custom'],\n disallowedParents: ['page'],\n defaultProps: {\n name: 'radio_group',\n defaultSelected: 'option1',\n orientation: 'vertical',\n required: false,\n disabled: false,\n helperText: '',\n },\n defaultChildren: [\n { type: 'radio', props: { name: 'radio_group', label: 'Option 1', value: 'option1', defaultChecked: true } },\n { type: 'radio', props: { name: 'radio_group', label: 'Option 2', value: 'option2', defaultChecked: false } },\n { type: 'radio', props: { name: 'radio_group', label: 'Option 3', value: 'option3', defaultChecked: false } },\n ],\n propFields: [\n { name: 'name', label: 'Group Name', type: 'string', defaultValue: 'radio_group' },\n { name: 'defaultSelected', label: 'Default Selected', type: 'string', defaultValue: 'option1' },\n {\n name: 'orientation',\n label: 'Orientation',\n type: 'select',\n defaultValue: 'vertical',\n options: [\n { label: 'Vertical', value: 'vertical' },\n { label: 'Horizontal', value: 'horizontal' },\n ],\n },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'radio_group', label: 'Group Name' }),\n defaultSelectedTrait({ defaultValue: 'option1' }),\n orientationTrait(),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('RadioGroup \"name\" must be a string when provided.');\n }\n if (props.defaultSelected !== undefined && typeof props.defaultSelected !== 'string' && !isVariableBinding(props.defaultSelected)) {\n errors.push('RadioGroup \"defaultSelected\" must be a string when provided.');\n }\n if (props.orientation !== undefined && !isVariableBinding(props.orientation)) {\n const allowedOrientations = ['vertical', 'horizontal'];\n if (typeof props.orientation !== 'string' || !allowedOrientations.includes(props.orientation)) {\n errors.push(`RadioGroup \"orientation\" must be one of: ${allowedOrientations.join(', ')}.`);\n }\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('RadioGroup \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('RadioGroup \"disabled\" must be a boolean when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('RadioGroup \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n },\n },\n};\n\nexport const radioDefinition: ComponentDefinition = {\n type: 'radio',\n label: 'Radio',\n category: 'form',\n icon: 'radio',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'radio_group',\n label: 'Option 1',\n value: 'option1',\n defaultChecked: false,\n required: false,\n disabled: false,\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Group Name', type: 'string', defaultValue: 'radio_group' },\n { name: 'label', label: 'Label Text', type: 'string', defaultValue: 'Option 1' },\n { name: 'value', label: 'Radio Value', type: 'string', defaultValue: 'option1' },\n { name: 'defaultChecked', label: 'Default Selected', type: 'boolean', defaultValue: false },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'radio_group', label: 'Group Name' }),\n labelTextTrait({ defaultValue: 'Option 1' }),\n valueTrait({ defaultValue: 'option1' }),\n defaultCheckedTrait(),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.label !== undefined && typeof props.label !== 'string' && !isVariableBinding(props.label)) {\n errors.push('Radio \"label\" must be a string when provided.');\n }\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('Radio \"name\" must be a string when provided.');\n }\n if (props.value !== undefined && typeof props.value !== 'string' && !isVariableBinding(props.value)) {\n errors.push('Radio \"value\" must be a string when provided.');\n }\n if (props.defaultChecked !== undefined && typeof props.defaultChecked !== 'boolean' && !isVariableBinding(props.defaultChecked)) {\n errors.push('Radio \"defaultChecked\" must be a boolean when provided.');\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('Radio \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('Radio \"disabled\" must be a boolean when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('Radio \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '14px',\n color: '#1e293b',\n cursor: 'pointer',\n userSelect: 'none',\n },\n },\n};\n\nexport const radioItemDefinition: ComponentDefinition = {\n ...radioDefinition,\n type: 'radio-item',\n label: 'Radio Item',\n};\n\n","import { isVariableBinding } from '@kubuild/schema';\nimport { ComponentDefinition } from '../../registry';\nimport {\n acceptTrait,\n ariaLabelTrait,\n disabledTrait,\n fieldNameTrait,\n helperTextTrait,\n idTrait,\n labelTextTrait,\n maxFileSizeTrait,\n multipleTrait,\n requiredTrait,\n showPreviewTrait,\n} from '../../traits';\n\nexport const fileUploadDefinition: ComponentDefinition = {\n type: 'file-upload',\n label: 'File Upload',\n category: 'form',\n icon: 'upload',\n acceptsChildren: false,\n disallowedParents: ['page'],\n defaultProps: {\n name: 'file_upload',\n label: 'Upload File',\n accept: '*/*',\n maxFileSize: 10,\n multiple: false,\n showPreview: true,\n required: false,\n disabled: false,\n helperText: '',\n },\n propFields: [\n { name: 'name', label: 'Field Name', type: 'string', defaultValue: 'file_upload' },\n { name: 'label', label: 'Label Text', type: 'string', defaultValue: 'Upload File' },\n { name: 'accept', label: 'Accepted File Types', type: 'string', defaultValue: '*/*' },\n { name: 'maxFileSize', label: 'Max File Size (MB)', type: 'number', defaultValue: 10 },\n { name: 'multiple', label: 'Allow Multiple Files', type: 'boolean', defaultValue: false },\n { name: 'showPreview', label: 'Show Preview', type: 'boolean', defaultValue: true },\n { name: 'required', label: 'Required', type: 'boolean', defaultValue: false },\n { name: 'disabled', label: 'Disabled', type: 'boolean', defaultValue: false },\n { name: 'helperText', label: 'Helper Text', type: 'string' },\n ],\n traits: [\n fieldNameTrait({ defaultValue: 'file_upload' }),\n labelTextTrait({ defaultValue: 'Upload File' }),\n acceptTrait(),\n maxFileSizeTrait(),\n multipleTrait(),\n showPreviewTrait(),\n helperTextTrait(),\n requiredTrait(),\n disabledTrait(),\n idTrait(),\n ariaLabelTrait(),\n ],\n validateProps: (props) => {\n const errors: string[] = [];\n if (props.label !== undefined && typeof props.label !== 'string' && !isVariableBinding(props.label)) {\n errors.push('FileUpload \"label\" must be a string when provided.');\n }\n if (props.name !== undefined && typeof props.name !== 'string' && !isVariableBinding(props.name)) {\n errors.push('FileUpload \"name\" must be a string when provided.');\n }\n if (props.accept !== undefined && typeof props.accept !== 'string' && !isVariableBinding(props.accept)) {\n errors.push('FileUpload \"accept\" must be a string when provided.');\n }\n if (props.maxFileSize !== undefined && !isVariableBinding(props.maxFileSize)) {\n if (typeof props.maxFileSize !== 'number' || props.maxFileSize <= 0) {\n errors.push('FileUpload \"maxFileSize\" must be a positive number when provided.');\n }\n }\n if (props.multiple !== undefined && typeof props.multiple !== 'boolean' && !isVariableBinding(props.multiple)) {\n errors.push('FileUpload \"multiple\" must be a boolean when provided.');\n }\n if (props.showPreview !== undefined && typeof props.showPreview !== 'boolean' && !isVariableBinding(props.showPreview)) {\n errors.push('FileUpload \"showPreview\" must be a boolean when provided.');\n }\n if (props.required !== undefined && typeof props.required !== 'boolean' && !isVariableBinding(props.required)) {\n errors.push('FileUpload \"required\" must be a boolean when provided.');\n }\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean' && !isVariableBinding(props.disabled)) {\n errors.push('FileUpload \"disabled\" must be a boolean when provided.');\n }\n if (props.helperText !== undefined && typeof props.helperText !== 'string' && !isVariableBinding(props.helperText)) {\n errors.push('FileUpload \"helperText\" must be a string when provided.');\n }\n return errors.length > 0 ? errors : true;\n },\n defaultStyles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n fontSize: '14px',\n color: '#1e293b',\n },\n },\n};\n\n","import { ComponentDefinition } from '../../registry';\nimport { idTrait, ariaLabelTrait, titleTrait } from '../../traits';\n\nexport const modalDefinition: ComponentDefinition = {\n type: 'modal',\n label: 'Modal',\n category: 'interactive',\n icon: 'layout',\n description: 'Pop-up overlay dialog container with backdrop and close controls.',\n acceptsChildren: true,\n allowedChildren: ['*'],\n defaultProps: {\n modalId: 'modal-dialog',\n title: 'Modal Title',\n backdrop: true,\n closeOnBackdrop: true,\n closeOnEscape: true,\n size: 'md',\n showCloseButton: true,\n },\n propFields: [\n {\n name: 'modalId',\n label: 'Modal Target ID',\n type: 'string',\n defaultValue: 'modal-dialog',\n description: 'Unique identifier targeted by open_modal and close_modal actions.',\n },\n {\n name: 'title',\n label: 'Modal Title',\n type: 'string',\n defaultValue: 'Modal Title',\n description: 'Header title text displayed at the top of the dialog.',\n },\n {\n name: 'size',\n label: 'Size',\n type: 'select',\n defaultValue: 'md',\n options: [\n { label: 'Small (400px)', value: 'sm' },\n { label: 'Medium (560px)', value: 'md' },\n { label: 'Large (768px)', value: 'lg' },\n { label: 'Full Screen', value: 'fullscreen' },\n ],\n },\n {\n name: 'backdrop',\n label: 'Show Backdrop',\n type: 'boolean',\n defaultValue: true,\n },\n {\n name: 'closeOnBackdrop',\n label: 'Close on Backdrop Click',\n type: 'boolean',\n defaultValue: true,\n },\n {\n name: 'closeOnEscape',\n label: 'Close on Escape Key',\n type: 'boolean',\n defaultValue: true,\n },\n {\n name: 'showCloseButton',\n label: 'Show Close Button',\n type: 'boolean',\n defaultValue: true,\n },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait({ description: 'Accessible name for the modal dialog.' }),\n ],\n defaultStyles: {\n base: {\n backgroundColor: '#ffffff',\n borderRadius: '12px',\n boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n padding: '24px',\n maxWidth: '560px',\n width: '100%',\n },\n },\n};\n","import { ComponentDefinition } from '../../registry';\nimport { idTrait, ariaLabelTrait, titleTrait } from '../../traits';\n\nexport const drawerDefinition: ComponentDefinition = {\n type: 'drawer',\n label: 'Drawer',\n category: 'interactive',\n icon: 'sidebar',\n description: 'Off-canvas slide-over panel container, ideal for mobile navigation and side sheets.',\n acceptsChildren: true,\n allowedChildren: ['*'],\n defaultProps: {\n modalId: 'mobile-drawer',\n title: 'Navigation Menu',\n placement: 'right',\n backdrop: true,\n closeOnBackdrop: true,\n closeOnEscape: true,\n showCloseButton: true,\n },\n propFields: [\n {\n name: 'modalId',\n label: 'Drawer Target ID',\n type: 'string',\n defaultValue: 'mobile-drawer',\n description: 'Unique identifier targeted by open_modal and close_modal actions.',\n },\n {\n name: 'placement',\n label: 'Placement',\n type: 'select',\n defaultValue: 'right',\n options: [\n { label: 'Slide from Right', value: 'right' },\n { label: 'Slide from Left', value: 'left' },\n { label: 'Slide from Top (Dropdown)', value: 'top' },\n { label: 'Slide from Bottom', value: 'bottom' },\n ],\n },\n {\n name: 'title',\n label: 'Drawer Title',\n type: 'string',\n defaultValue: 'Navigation Menu',\n description: 'Header title text displayed at the top of the drawer.',\n },\n {\n name: 'backdrop',\n label: 'Show Backdrop',\n type: 'boolean',\n defaultValue: true,\n },\n {\n name: 'closeOnBackdrop',\n label: 'Close on Backdrop Click',\n type: 'boolean',\n defaultValue: true,\n },\n {\n name: 'closeOnEscape',\n label: 'Close on Escape Key',\n type: 'boolean',\n defaultValue: true,\n },\n {\n name: 'showCloseButton',\n label: 'Show Close Button',\n type: 'boolean',\n defaultValue: true,\n },\n ],\n traits: [\n idTrait(),\n titleTrait(),\n ariaLabelTrait({ description: 'Accessible name for the off-canvas drawer.' }),\n ],\n defaultStyles: {\n base: {\n backgroundColor: '#ffffff',\n boxShadow: '-4px 0 24px rgba(0, 0, 0, 0.15)',\n padding: '24px',\n width: '320px',\n maxWidth: '100%',\n },\n mobile: {\n width: '100%',\n },\n },\n};\n","import { ComponentDefinition } from '../../registry';\nimport { idTrait, ariaLabelTrait } from '../../traits';\n\nexport const collapsibleDefinition: ComponentDefinition = {\n type: 'collapsible',\n label: 'Collapsible',\n category: 'interactive',\n icon: 'chevron-down',\n description: 'In-flow expandable container that toggles visibility without a fullscreen overlay.',\n acceptsChildren: true,\n allowedChildren: ['*'],\n defaultProps: {\n modalId: 'collapsible-content',\n defaultOpen: false,\n animated: true,\n },\n propFields: [\n {\n name: 'modalId',\n label: 'Target ID',\n type: 'string',\n defaultValue: 'collapsible-content',\n description: 'Identifier targeted by Open Modal (with \"Toggle\" enabled) or Close Modal actions.',\n },\n {\n name: 'defaultOpen',\n label: 'Default Open',\n type: 'boolean',\n defaultValue: false,\n description: 'Whether the collapsible container starts expanded on initial render.',\n },\n {\n name: 'animated',\n label: 'Smooth Transition',\n type: 'boolean',\n defaultValue: true,\n },\n ],\n traits: [\n idTrait(),\n ariaLabelTrait({ description: 'Accessible name for the collapsible container.' }),\n ],\n defaultStyles: {\n base: {\n width: '100%',\n overflow: 'hidden',\n },\n },\n};\n","import { ComponentDefinition, ComponentRegistry } from '../registry';\nimport {\n columnsDefinition,\n containerDefinition,\n flexDefinition,\n gridDefinition,\n pageDefinition,\n sectionDefinition,\n} from './layout';\nimport {\n badgeDefinition,\n blockquoteDefinition,\n codeBlockDefinition,\n headingDefinition,\n linkDefinition,\n paragraphDefinition,\n textDefinition,\n} from './typography';\nimport {\n htmlEmbedDefinition,\n iconDefinition,\n imageDefinition,\n videoDefinition,\n} from './media';\nimport {\n collectionDefinition,\n listDefinition,\n listItemDefinition,\n tableCellDefinition,\n tableDefinition,\n tableRowDefinition,\n} from './data';\nimport {\n buttonDefinition,\n buttonSubmitDefinition,\n checkboxDefinition,\n fileUploadDefinition,\n formDefinition,\n inputDefinition,\n radioDefinition,\n radioGroupDefinition,\n radioItemDefinition,\n selectDefinition,\n switchDefinition,\n textareaDefinition,\n} from './form';\n\nexport * from './constants';\nexport * from './types';\nexport * from './layout';\nexport * from './typography';\nexport * from './media';\nexport * from './data';\nexport * from './form';\nexport * from './interactive';\n\nimport {\n modalDefinition,\n drawerDefinition,\n collapsibleDefinition,\n} from './interactive';\n\nexport const coreComponentDefinitions: ComponentDefinition[] = [\n pageDefinition,\n sectionDefinition,\n containerDefinition,\n columnsDefinition,\n flexDefinition,\n gridDefinition,\n headingDefinition,\n textDefinition,\n paragraphDefinition,\n linkDefinition,\n blockquoteDefinition,\n badgeDefinition,\n codeBlockDefinition,\n imageDefinition,\n videoDefinition,\n iconDefinition,\n htmlEmbedDefinition,\n buttonDefinition,\n buttonSubmitDefinition,\n formDefinition,\n inputDefinition,\n textareaDefinition,\n selectDefinition,\n checkboxDefinition,\n switchDefinition,\n radioGroupDefinition,\n radioDefinition,\n radioItemDefinition,\n fileUploadDefinition,\n collectionDefinition,\n listDefinition,\n listItemDefinition,\n tableDefinition,\n tableRowDefinition,\n tableCellDefinition,\n modalDefinition,\n drawerDefinition,\n collapsibleDefinition,\n];\n\nexport function createDefaultComponentRegistry(): ComponentRegistry {\n const registry = new ComponentRegistry();\n for (const def of coreComponentDefinitions) {\n registry.register(def);\n }\n return registry;\n}\n\n"],"mappings":"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","names":["isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding","isVariableBinding"]}