@kubuild/components 0.8.1 → 0.8.2

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 (275) hide show
  1. package/dist/blocks/forms.d.cts +6 -0
  2. package/dist/blocks/forms.d.cts.map +1 -0
  3. package/dist/blocks/forms.d.ts +1 -1
  4. package/dist/blocks/forms.d.ts.map +1 -1
  5. package/dist/blocks/index.cjs.map +1 -1
  6. package/dist/blocks/index.d.cts +12 -0
  7. package/dist/blocks/index.d.cts.map +1 -0
  8. package/dist/blocks/index.d.ts +6 -6
  9. package/dist/blocks/index.d.ts.map +1 -1
  10. package/dist/blocks/index.js +1 -1
  11. package/dist/blocks/layout.d.cts +6 -0
  12. package/dist/blocks/layout.d.cts.map +1 -0
  13. package/dist/blocks/layout.d.ts +1 -1
  14. package/dist/blocks/layout.d.ts.map +1 -1
  15. package/dist/blocks/sales.d.cts +7 -0
  16. package/dist/blocks/sales.d.cts.map +1 -0
  17. package/dist/blocks/sales.d.ts +1 -1
  18. package/dist/blocks/sales.d.ts.map +1 -1
  19. package/dist/blocks/sections.d.cts +6 -0
  20. package/dist/blocks/sections.d.cts.map +1 -0
  21. package/dist/blocks/sections.d.ts +1 -1
  22. package/dist/blocks/sections.d.ts.map +1 -1
  23. package/dist/blocks/types.d.cts +13 -0
  24. package/dist/blocks/types.d.cts.map +1 -0
  25. package/dist/canonical-props.d.cts +8 -0
  26. package/dist/canonical-props.d.cts.map +1 -0
  27. package/dist/canonical-props.d.ts +1 -1
  28. package/dist/canonical-props.d.ts.map +1 -1
  29. package/dist/{chunk-OK53DS7G.js → chunk-BCQERSFK.js} +1 -1
  30. package/dist/chunk-BCQERSFK.js.map +1 -0
  31. package/dist/{chunk-CJN5OHHX.js → chunk-TTVLQR7L.js} +2 -2
  32. package/dist/chunk-TTVLQR7L.js.map +1 -0
  33. package/dist/{chunk-DIZKTXJI.js → chunk-YEN6JQLF.js} +1 -1
  34. package/dist/chunk-YEN6JQLF.js.map +1 -0
  35. package/dist/definitions/constants.d.cts +10 -0
  36. package/dist/definitions/constants.d.cts.map +1 -0
  37. package/dist/definitions/conversion/accordion.d.cts +8 -0
  38. package/dist/definitions/conversion/accordion.d.cts.map +1 -0
  39. package/dist/definitions/conversion/accordion.d.ts +1 -1
  40. package/dist/definitions/conversion/accordion.d.ts.map +1 -1
  41. package/dist/definitions/conversion/carousel.d.cts +7 -0
  42. package/dist/definitions/conversion/carousel.d.cts.map +1 -0
  43. package/dist/definitions/conversion/carousel.d.ts +1 -1
  44. package/dist/definitions/conversion/carousel.d.ts.map +1 -1
  45. package/dist/definitions/conversion/countdown.d.cts +19 -0
  46. package/dist/definitions/conversion/countdown.d.cts.map +1 -0
  47. package/dist/definitions/conversion/countdown.d.ts +1 -1
  48. package/dist/definitions/conversion/countdown.d.ts.map +1 -1
  49. package/dist/definitions/conversion/divider.d.cts +9 -0
  50. package/dist/definitions/conversion/divider.d.cts.map +1 -0
  51. package/dist/definitions/conversion/divider.d.ts +1 -1
  52. package/dist/definitions/conversion/divider.d.ts.map +1 -1
  53. package/dist/definitions/conversion/index.d.cts +7 -0
  54. package/dist/definitions/conversion/index.d.cts.map +1 -0
  55. package/dist/definitions/conversion/index.d.ts +6 -6
  56. package/dist/definitions/conversion/index.d.ts.map +1 -1
  57. package/dist/definitions/conversion/rating.d.cts +7 -0
  58. package/dist/definitions/conversion/rating.d.cts.map +1 -0
  59. package/dist/definitions/conversion/rating.d.ts +1 -1
  60. package/dist/definitions/conversion/rating.d.ts.map +1 -1
  61. package/dist/definitions/conversion/tabs.d.cts +9 -0
  62. package/dist/definitions/conversion/tabs.d.cts.map +1 -0
  63. package/dist/definitions/conversion/tabs.d.ts +1 -1
  64. package/dist/definitions/conversion/tabs.d.ts.map +1 -1
  65. package/dist/definitions/data/collection.d.cts +3 -0
  66. package/dist/definitions/data/collection.d.cts.map +1 -0
  67. package/dist/definitions/data/collection.d.ts +1 -1
  68. package/dist/definitions/data/collection.d.ts.map +1 -1
  69. package/dist/definitions/data/index.d.cts +4 -0
  70. package/dist/definitions/data/index.d.cts.map +1 -0
  71. package/dist/definitions/data/index.d.ts +3 -3
  72. package/dist/definitions/data/index.d.ts.map +1 -1
  73. package/dist/definitions/data/list.d.cts +4 -0
  74. package/dist/definitions/data/list.d.cts.map +1 -0
  75. package/dist/definitions/data/list.d.ts +1 -1
  76. package/dist/definitions/data/list.d.ts.map +1 -1
  77. package/dist/definitions/data/table.d.cts +5 -0
  78. package/dist/definitions/data/table.d.cts.map +1 -0
  79. package/dist/definitions/data/table.d.ts +1 -1
  80. package/dist/definitions/data/table.d.ts.map +1 -1
  81. package/dist/definitions/form/button.d.cts +4 -0
  82. package/dist/definitions/form/button.d.cts.map +1 -0
  83. package/dist/definitions/form/button.d.ts +1 -1
  84. package/dist/definitions/form/button.d.ts.map +1 -1
  85. package/dist/definitions/form/checkbox.d.cts +3 -0
  86. package/dist/definitions/form/checkbox.d.cts.map +1 -0
  87. package/dist/definitions/form/checkbox.d.ts +1 -1
  88. package/dist/definitions/form/checkbox.d.ts.map +1 -1
  89. package/dist/definitions/form/file-upload.d.cts +3 -0
  90. package/dist/definitions/form/file-upload.d.cts.map +1 -0
  91. package/dist/definitions/form/file-upload.d.ts +1 -1
  92. package/dist/definitions/form/file-upload.d.ts.map +1 -1
  93. package/dist/definitions/form/form.d.cts +3 -0
  94. package/dist/definitions/form/form.d.cts.map +1 -0
  95. package/dist/definitions/form/form.d.ts +1 -1
  96. package/dist/definitions/form/form.d.ts.map +1 -1
  97. package/dist/definitions/form/index.d.cts +10 -0
  98. package/dist/definitions/form/index.d.cts.map +1 -0
  99. package/dist/definitions/form/index.d.ts +9 -9
  100. package/dist/definitions/form/index.d.ts.map +1 -1
  101. package/dist/definitions/form/input.d.cts +3 -0
  102. package/dist/definitions/form/input.d.cts.map +1 -0
  103. package/dist/definitions/form/input.d.ts +1 -1
  104. package/dist/definitions/form/input.d.ts.map +1 -1
  105. package/dist/definitions/form/radio.d.cts +5 -0
  106. package/dist/definitions/form/radio.d.cts.map +1 -0
  107. package/dist/definitions/form/radio.d.ts +1 -1
  108. package/dist/definitions/form/radio.d.ts.map +1 -1
  109. package/dist/definitions/form/select.d.cts +3 -0
  110. package/dist/definitions/form/select.d.cts.map +1 -0
  111. package/dist/definitions/form/select.d.ts +1 -1
  112. package/dist/definitions/form/select.d.ts.map +1 -1
  113. package/dist/definitions/form/switch.d.cts +3 -0
  114. package/dist/definitions/form/switch.d.cts.map +1 -0
  115. package/dist/definitions/form/switch.d.ts +1 -1
  116. package/dist/definitions/form/switch.d.ts.map +1 -1
  117. package/dist/definitions/form/textarea.d.cts +3 -0
  118. package/dist/definitions/form/textarea.d.cts.map +1 -0
  119. package/dist/definitions/form/textarea.d.ts +1 -1
  120. package/dist/definitions/form/textarea.d.ts.map +1 -1
  121. package/dist/definitions/index.cjs.map +1 -1
  122. package/dist/definitions/index.d.cts +13 -0
  123. package/dist/definitions/index.d.cts.map +1 -0
  124. package/dist/definitions/index.d.ts +10 -10
  125. package/dist/definitions/index.d.ts.map +1 -1
  126. package/dist/definitions/index.js +2 -2
  127. package/dist/definitions/interactive/collapsible.d.cts +3 -0
  128. package/dist/definitions/interactive/collapsible.d.cts.map +1 -0
  129. package/dist/definitions/interactive/collapsible.d.ts +1 -1
  130. package/dist/definitions/interactive/collapsible.d.ts.map +1 -1
  131. package/dist/definitions/interactive/drawer.d.cts +3 -0
  132. package/dist/definitions/interactive/drawer.d.cts.map +1 -0
  133. package/dist/definitions/interactive/drawer.d.ts +1 -1
  134. package/dist/definitions/interactive/drawer.d.ts.map +1 -1
  135. package/dist/definitions/interactive/index.d.cts +4 -0
  136. package/dist/definitions/interactive/index.d.cts.map +1 -0
  137. package/dist/definitions/interactive/index.d.ts +3 -3
  138. package/dist/definitions/interactive/index.d.ts.map +1 -1
  139. package/dist/definitions/interactive/modal.d.cts +3 -0
  140. package/dist/definitions/interactive/modal.d.cts.map +1 -0
  141. package/dist/definitions/interactive/modal.d.ts +1 -1
  142. package/dist/definitions/interactive/modal.d.ts.map +1 -1
  143. package/dist/definitions/layout/columns.d.cts +3 -0
  144. package/dist/definitions/layout/columns.d.cts.map +1 -0
  145. package/dist/definitions/layout/columns.d.ts +1 -1
  146. package/dist/definitions/layout/columns.d.ts.map +1 -1
  147. package/dist/definitions/layout/container.d.cts +3 -0
  148. package/dist/definitions/layout/container.d.cts.map +1 -0
  149. package/dist/definitions/layout/container.d.ts +1 -1
  150. package/dist/definitions/layout/container.d.ts.map +1 -1
  151. package/dist/definitions/layout/flex.d.cts +7 -0
  152. package/dist/definitions/layout/flex.d.cts.map +1 -0
  153. package/dist/definitions/layout/flex.d.ts +1 -1
  154. package/dist/definitions/layout/flex.d.ts.map +1 -1
  155. package/dist/definitions/layout/grid.d.cts +7 -0
  156. package/dist/definitions/layout/grid.d.cts.map +1 -0
  157. package/dist/definitions/layout/grid.d.ts +1 -1
  158. package/dist/definitions/layout/grid.d.ts.map +1 -1
  159. package/dist/definitions/layout/index.d.cts +7 -0
  160. package/dist/definitions/layout/index.d.cts.map +1 -0
  161. package/dist/definitions/layout/index.d.ts +6 -6
  162. package/dist/definitions/layout/index.d.ts.map +1 -1
  163. package/dist/definitions/layout/page.d.cts +3 -0
  164. package/dist/definitions/layout/page.d.cts.map +1 -0
  165. package/dist/definitions/layout/page.d.ts +1 -1
  166. package/dist/definitions/layout/page.d.ts.map +1 -1
  167. package/dist/definitions/layout/section.d.cts +3 -0
  168. package/dist/definitions/layout/section.d.cts.map +1 -0
  169. package/dist/definitions/layout/section.d.ts +1 -1
  170. package/dist/definitions/layout/section.d.ts.map +1 -1
  171. package/dist/definitions/media/html-embed.d.cts +3 -0
  172. package/dist/definitions/media/html-embed.d.cts.map +1 -0
  173. package/dist/definitions/media/html-embed.d.ts +1 -1
  174. package/dist/definitions/media/html-embed.d.ts.map +1 -1
  175. package/dist/definitions/media/icon.d.cts +3 -0
  176. package/dist/definitions/media/icon.d.cts.map +1 -0
  177. package/dist/definitions/media/icon.d.ts +1 -1
  178. package/dist/definitions/media/icon.d.ts.map +1 -1
  179. package/dist/definitions/media/image.d.cts +3 -0
  180. package/dist/definitions/media/image.d.cts.map +1 -0
  181. package/dist/definitions/media/image.d.ts +1 -1
  182. package/dist/definitions/media/image.d.ts.map +1 -1
  183. package/dist/definitions/media/index.d.cts +5 -0
  184. package/dist/definitions/media/index.d.cts.map +1 -0
  185. package/dist/definitions/media/index.d.ts +4 -4
  186. package/dist/definitions/media/index.d.ts.map +1 -1
  187. package/dist/definitions/media/video.d.cts +3 -0
  188. package/dist/definitions/media/video.d.cts.map +1 -0
  189. package/dist/definitions/media/video.d.ts +1 -1
  190. package/dist/definitions/media/video.d.ts.map +1 -1
  191. package/dist/definitions/types.d.cts +8 -0
  192. package/dist/definitions/types.d.cts.map +1 -0
  193. package/dist/definitions/typography/badge.d.cts +3 -0
  194. package/dist/definitions/typography/badge.d.cts.map +1 -0
  195. package/dist/definitions/typography/badge.d.ts +1 -1
  196. package/dist/definitions/typography/badge.d.ts.map +1 -1
  197. package/dist/definitions/typography/blockquote.d.cts +3 -0
  198. package/dist/definitions/typography/blockquote.d.cts.map +1 -0
  199. package/dist/definitions/typography/blockquote.d.ts +1 -1
  200. package/dist/definitions/typography/blockquote.d.ts.map +1 -1
  201. package/dist/definitions/typography/code-block.d.cts +3 -0
  202. package/dist/definitions/typography/code-block.d.cts.map +1 -0
  203. package/dist/definitions/typography/code-block.d.ts +1 -1
  204. package/dist/definitions/typography/code-block.d.ts.map +1 -1
  205. package/dist/definitions/typography/heading.d.cts +3 -0
  206. package/dist/definitions/typography/heading.d.cts.map +1 -0
  207. package/dist/definitions/typography/heading.d.ts +1 -1
  208. package/dist/definitions/typography/heading.d.ts.map +1 -1
  209. package/dist/definitions/typography/index.d.cts +8 -0
  210. package/dist/definitions/typography/index.d.cts.map +1 -0
  211. package/dist/definitions/typography/index.d.ts +7 -7
  212. package/dist/definitions/typography/index.d.ts.map +1 -1
  213. package/dist/definitions/typography/link.d.cts +3 -0
  214. package/dist/definitions/typography/link.d.cts.map +1 -0
  215. package/dist/definitions/typography/link.d.ts +1 -1
  216. package/dist/definitions/typography/link.d.ts.map +1 -1
  217. package/dist/definitions/typography/paragraph.d.cts +3 -0
  218. package/dist/definitions/typography/paragraph.d.cts.map +1 -0
  219. package/dist/definitions/typography/paragraph.d.ts +1 -1
  220. package/dist/definitions/typography/paragraph.d.ts.map +1 -1
  221. package/dist/definitions/typography/text.d.cts +3 -0
  222. package/dist/definitions/typography/text.d.cts.map +1 -0
  223. package/dist/definitions/typography/text.d.ts +1 -1
  224. package/dist/definitions/typography/text.d.ts.map +1 -1
  225. package/dist/index.cjs.map +1 -1
  226. package/dist/index.d.cts +8 -0
  227. package/dist/index.d.cts.map +1 -0
  228. package/dist/index.d.ts +7 -7
  229. package/dist/index.d.ts.map +1 -1
  230. package/dist/index.js +3 -3
  231. package/dist/index.js.map +1 -1
  232. package/dist/prop-types.d.cts +10 -0
  233. package/dist/prop-types.d.cts.map +1 -0
  234. package/dist/prop-types.d.ts +1 -1
  235. package/dist/prop-types.d.ts.map +1 -1
  236. package/dist/registry.d.cts +108 -0
  237. package/dist/registry.d.cts.map +1 -0
  238. package/dist/registry.d.ts +1 -1
  239. package/dist/registry.d.ts.map +1 -1
  240. package/dist/requirements.d.cts +18 -0
  241. package/dist/requirements.d.cts.map +1 -0
  242. package/dist/requirements.d.ts +1 -1
  243. package/dist/requirements.d.ts.map +1 -1
  244. package/dist/traits/common.d.cts +8 -0
  245. package/dist/traits/common.d.cts.map +1 -0
  246. package/dist/traits/common.d.ts +1 -1
  247. package/dist/traits/common.d.ts.map +1 -1
  248. package/dist/traits/form.d.cts +80 -0
  249. package/dist/traits/form.d.cts.map +1 -0
  250. package/dist/traits/form.d.ts +1 -1
  251. package/dist/traits/form.d.ts.map +1 -1
  252. package/dist/traits/index.cjs.map +1 -1
  253. package/dist/traits/index.d.cts +7 -0
  254. package/dist/traits/index.d.cts.map +1 -0
  255. package/dist/traits/index.d.ts +6 -6
  256. package/dist/traits/index.d.ts.map +1 -1
  257. package/dist/traits/index.js +1 -1
  258. package/dist/traits/link.d.cts +8 -0
  259. package/dist/traits/link.d.cts.map +1 -0
  260. package/dist/traits/link.d.ts +1 -1
  261. package/dist/traits/link.d.ts.map +1 -1
  262. package/dist/traits/media.d.cts +18 -0
  263. package/dist/traits/media.d.cts.map +1 -0
  264. package/dist/traits/media.d.ts +1 -1
  265. package/dist/traits/media.d.ts.map +1 -1
  266. package/dist/traits/structure.d.cts +10 -0
  267. package/dist/traits/structure.d.cts.map +1 -0
  268. package/dist/traits/structure.d.ts +1 -1
  269. package/dist/traits/structure.d.ts.map +1 -1
  270. package/dist/traits/types.d.cts +69 -0
  271. package/dist/traits/types.d.cts.map +1 -0
  272. package/package.json +36 -16
  273. package/dist/chunk-CJN5OHHX.js.map +0 -1
  274. package/dist/chunk-DIZKTXJI.js.map +0 -1
  275. package/dist/chunk-OK53DS7G.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/blocks/index.ts","../../src/blocks/types.ts","../../src/blocks/layout.ts","../../src/blocks/sections.ts","../../src/blocks/forms.ts","../../src/blocks/sales.ts"],"sourcesContent":["import { BlockDefinition } from './types';\nimport { LAYOUT_STARTER_BLOCKS } from './layout';\nimport { UI_STARTER_BLOCKS } from './sections';\nimport { FORM_STARTER_BLOCKS } from './forms';\nimport { SALES_STARTER_BLOCKS } from './sales';\n\nexport * from './types';\nexport * from './layout';\nexport * from './sections';\nexport * from './forms';\nexport * from './sales';\n\n/**\n * Predefined Starter Layout Blocks (STORA-241), Pre-composed UI Blocks (STORA-242),\n * Pre-composed Form Templates (STORA-350), and Sales / conversion sections (STORA-549).\n */\nexport const STARTER_BLOCKS: BlockDefinition[] = [\n ...LAYOUT_STARTER_BLOCKS,\n ...UI_STARTER_BLOCKS,\n ...FORM_STARTER_BLOCKS,\n ...SALES_STARTER_BLOCKS,\n];\n\n","import { Node } from '@kubuild/schema';\n\nexport interface BlockDefinition {\n id: string;\n name: string;\n category: 'layout' | 'sections' | 'ui' | 'pricing' | 'cta' | 'forms' | string;\n categoryLabel?: string;\n description?: string;\n icon?: string;\n thumbnailSvg?: string;\n createNodeTree: (generateId?: (prefix?: string) => string) => Node;\n}\n\nlet nextId = 1;\nexport function defaultGenId(prefix = 'node'): string {\n return `${prefix}-${Date.now().toString(36)}-${(nextId++).toString(36)}`;\n}\n\n","import { BlockDefinition, defaultGenId } from './types';\n\n/**\n * Predefined Starter Layout Blocks (STORA-241).\n */\nexport const LAYOUT_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'layout-1-col',\n name: '1 Column',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Full-width single column container inside a section',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { maxWidth: '1200px', margin: '0 auto', width: '100%' } },\n children: [],\n },\n ],\n }),\n },\n {\n id: 'layout-2-col-50-50',\n name: '2 Columns (50/50)',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Two equal-width 50/50 columns with flexible layout',\n icon: 'columns',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 2, gap: '24px' },\n styles: { base: { display: 'flex', gap: '24px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'layout-2-col-30-70',\n name: '2 Columns (30/70)',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Two asymmetric columns: 30% sidebar and 70% main area',\n icon: 'columns',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 2, gap: '24px' },\n styles: { base: { display: 'flex', gap: '24px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '0 0 30%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'layout-3-col',\n name: '3 Columns',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Three equal-width columns for grid showcases or card groups',\n icon: 'grid',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 3, gap: '24px' },\n styles: { base: { display: 'flex', gap: '24px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'layout-4-col',\n name: '4 Columns',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Four equal columns for metric stats, logos, or compact feature cards',\n icon: 'grid',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 4, gap: '16px' },\n styles: { base: { display: 'flex', gap: '16px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n];\n\n","import { ResponsiveStyles } from '@kubuild/schema';\nimport { BlockDefinition, defaultGenId } from './types';\n\n/**\n * Pre-composed UI Blocks (STORA-242).\n */\nexport const UI_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'navbar',\n name: 'Navbar',\n category: 'sections',\n categoryLabel: 'Navigation & Headers',\n description: 'Responsive top navigation bar with brand logo, nav links, CTA button, and mobile hamburger menu',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '24px',\n paddingRight: '24px',\n backgroundColor: '#ffffff',\n borderBottom: '1px solid #e2e8f0',\n width: '100%',\n },\n mobile: {\n paddingLeft: '16px',\n paddingRight: '16px',\n paddingTop: '12px',\n paddingBottom: '12px',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n maxWidth: '1200px',\n margin: '0 auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n flexWrap: 'wrap',\n },\n },\n children: [\n // 1. Brand Logo\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Brand', level: 3 },\n styles: {\n base: {\n fontSize: '20px',\n fontWeight: '800',\n color: '#0f172a',\n margin: '0',\n },\n },\n },\n // 2. Desktop Navigation Links (hidden on mobile)\n {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '24px',\n },\n mobile: {\n display: 'none',\n },\n },\n children: [\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Home', href: '#home' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#0f172a',\n textDecoration: 'none',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Features', href: '#features' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Pricing', href: '#pricing' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'About', href: '#about' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n },\n },\n },\n ],\n },\n // 3. Desktop CTA Buttons (hidden on mobile)\n {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '12px',\n },\n mobile: {\n display: 'none',\n },\n },\n children: [\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Sign In', href: '#signin' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#475569',\n textDecoration: 'none',\n padding: '8px 12px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Get Started', href: '#signup' },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '8px 18px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '600',\n display: 'inline-block',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n // 4. Mobile Hamburger Button (hidden on desktop, visible on mobile)\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: '☰',\n activeLabel: '✕',\n isEditable: false,\n modalId: 'mobile-nav-drawer',\n ariaLabel: 'Toggle navigation menu',\n variant: 'secondary',\n },\n styles: {\n base: {\n display: 'none',\n },\n mobile: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '6px 12px',\n fontSize: '18px',\n backgroundColor: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '6px',\n color: '#0f172a',\n cursor: 'pointer',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'click',\n label: 'Toggle Mobile Menu',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'open_modal',\n label: 'Toggle Navigation Drawer',\n payload: {\n modalId: 'mobile-nav-drawer',\n toggle: true,\n },\n },\n ],\n },\n ],\n },\n // 5. Mobile Navigation Dropdown (hidden on desktop, stacked on mobile)\n // A `collapsible`, not a plain flex: this is an in-flow disclosure that expands\n // inside the navbar (its width/border styles depend on staying there), so it must\n // not be treated as a floating overlay. The dedicated renderer also keeps it\n // visible while editing, so the menu's links stay reachable on the canvas, and\n // only honours the open/closed state at runtime.\n {\n id: gen('collapsible'),\n type: 'collapsible',\n props: {\n modalId: 'mobile-nav-drawer',\n ariaLabel: 'Mobile navigation menu',\n defaultOpen: false,\n animated: true,\n },\n styles: {\n base: {\n display: 'none',\n },\n mobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n gap: '8px',\n paddingTop: '16px',\n marginTop: '12px',\n borderTop: '1px solid #f1f5f9',\n },\n },\n children: [\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Home', href: '#home' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#0f172a',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Features', href: '#features' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Pricing', href: '#pricing' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'About', href: '#about' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Get Started', href: '#signup' },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '10px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '600',\n textAlign: 'center',\n display: 'block',\n marginTop: '8px',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'hero-section',\n name: 'Hero Section',\n category: 'sections',\n categoryLabel: 'Hero & Headers',\n description: 'Engaging hero banner with headline, lead paragraph, and call-to-action button',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '80px 24px',\n backgroundColor: '#f8fafc',\n textAlign: 'center',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { maxWidth: '768px', margin: '0 auto' } },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Build Remarkable Experiences', level: 1 },\n styles: {\n base: {\n fontSize: '44px',\n fontWeight: '800',\n color: '#0f172a',\n marginBottom: '16px',\n lineHeight: '1.2',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text:\n 'A visual builder designed for maximum craft, responsiveness, and performance.',\n },\n styles: {\n base: {\n fontSize: '18px',\n color: '#475569',\n marginBottom: '32px',\n lineHeight: '1.6',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Get Started Today', href: '#explore' },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px 28px',\n borderRadius: '8px',\n fontWeight: '600',\n display: 'inline-block',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'feature-card',\n name: 'Feature Card',\n category: 'ui',\n categoryLabel: 'UI Blocks',\n description: 'Clean elevated feature card with badge, title, text, and action link',\n icon: 'box',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n padding: '24px',\n backgroundColor: '#ffffff',\n borderRadius: '12px',\n border: '1px solid #e2e8f0',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.05)',\n },\n },\n children: [\n {\n id: gen('badge'),\n type: 'badge',\n props: { text: 'PRO FEATURE', variant: 'primary' },\n styles: { base: { marginBottom: '12px', display: 'inline-block' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Next-Gen Performance', level: 3 },\n styles: {\n base: { fontSize: '20px', fontWeight: '700', color: '#1e293b', marginBottom: '8px' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Engineered for sub-millisecond render updates and zero runtime overhead.',\n },\n styles: { base: { fontSize: '14px', color: '#64748b', lineHeight: '1.5' } },\n },\n ],\n }),\n },\n {\n id: 'media-object',\n name: 'Media Object',\n category: 'ui',\n categoryLabel: 'UI Blocks',\n description: 'Horizontal media layout with image beside text content',\n icon: 'image',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n display: 'flex',\n gap: '16px',\n alignItems: 'flex-start',\n padding: '16px',\n backgroundColor: '#ffffff',\n borderRadius: '8px',\n border: '1px solid #e2e8f0',\n },\n },\n children: [\n {\n id: gen('image'),\n type: 'image',\n props: {\n src: 'https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=160&auto=format&fit=crop&q=80',\n alt: 'Visual preview',\n },\n styles: {\n base: {\n width: '80px',\n height: '80px',\n borderRadius: '8px',\n objectFit: 'cover',\n flexShrink: '0',\n },\n },\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%' } },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Creative Studio Asset', level: 4 },\n styles: {\n base: { fontSize: '16px', fontWeight: '600', color: '#0f172a', marginBottom: '4px' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'High dynamic range gradients crafted for modern presentations.' },\n styles: { base: { fontSize: '13px', color: '#64748b', lineHeight: '1.4' } },\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'pricing-table',\n name: 'Pricing Table',\n category: 'pricing',\n categoryLabel: 'Pricing',\n description: 'Highlighted subscription pricing plan with price, feature list, and buy button',\n icon: 'table',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n padding: '32px 24px',\n backgroundColor: '#ffffff',\n borderRadius: '16px',\n border: '2px solid #3b82f6',\n boxShadow: '0 10px 15px -3px rgba(59, 130, 246, 0.1)',\n textAlign: 'center',\n maxWidth: '360px',\n },\n },\n children: [\n {\n id: gen('badge'),\n type: 'badge',\n props: { text: 'MOST POPULAR', variant: 'primary' },\n styles: { base: { marginBottom: '12px', display: 'inline-block' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Professional', level: 3 },\n styles: { base: { fontSize: '22px', fontWeight: '700', color: '#0f172a' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: '$29 / mo', level: 2 },\n styles: {\n base: { fontSize: '36px', fontWeight: '800', color: '#2563eb', margin: '16px 0 24px 0' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'Includes unlimited pages, custom domains, and team collaboration.' },\n styles: { base: { fontSize: '14px', color: '#64748b', marginBottom: '24px' } },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Upgrade to Pro', href: '#checkout' },\n styles: {\n base: {\n width: '100%',\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px',\n borderRadius: '8px',\n fontWeight: '600',\n display: 'block',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n }),\n },\n {\n id: 'cta-banner',\n name: 'CTA Banner',\n category: 'cta',\n categoryLabel: 'Call to Action',\n description: 'High-contrast conversion banner with title and action button',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '60px 24px',\n backgroundColor: '#0f172a',\n color: '#ffffff',\n borderRadius: '16px',\n textAlign: 'center',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Ready to boost your workflow?', level: 2 },\n styles: {\n base: { fontSize: '32px', fontWeight: '700', color: '#ffffff', marginBottom: '12px' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'Start building with zero installation and instant live preview.' },\n styles: {\n base: { fontSize: '16px', color: '#94a3b8', marginBottom: '24px', maxWidth: '600px', margin: '0 auto 24px auto' },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Start Free Trial', href: '#signup' },\n styles: {\n base: {\n backgroundColor: '#ffffff',\n color: '#0f172a',\n padding: '12px 28px',\n borderRadius: '8px',\n fontWeight: '700',\n display: 'inline-block',\n },\n states: {\n ':hover': { backgroundColor: '#f1f5f9' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n }),\n },\n];\n\n","import { ResponsiveStyles } from '@kubuild/schema';\nimport { BlockDefinition, defaultGenId } from './types';\n\n/**\n * Starter Form Templates (STORA-350).\n */\nexport const FORM_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'form-contact-us',\n name: 'Contact Us Form',\n category: 'forms',\n categoryLabel: 'Form Templates',\n description: 'Contact form with Name, Email, Subject, Message, and submit action pipeline with API request and toast notifications',\n icon: 'form',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '64px 20px',\n backgroundColor: '#f8fafc',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div', maxWidth: '640px' },\n styles: {\n base: {\n maxWidth: '640px',\n margin: '0 auto',\n width: '100%',\n backgroundColor: '#ffffff',\n padding: '36px',\n borderRadius: '16px',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05)',\n border: '1px solid #e2e8f0',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Contact Us', level: 2 },\n styles: {\n base: {\n fontSize: '28px',\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: '8px',\n textAlign: 'center',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Have questions or need assistance? Fill out the form below and we will get back to you shortly.',\n },\n styles: {\n base: {\n fontSize: '15px',\n color: '#64748b',\n marginBottom: '28px',\n textAlign: 'center',\n lineHeight: '1.5',\n },\n },\n },\n {\n id: gen('form'),\n type: 'form',\n props: {\n name: 'contact_us_form',\n method: 'POST',\n preventDefault: true,\n scrollToFirstError: true,\n resetOnSubmit: true,\n },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '20px',\n width: '100%',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'submit',\n label: 'Submit Contact Form',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'api_request',\n label: 'Send Contact Message',\n payload: {\n url: '/api/mock/submit-lead',\n method: 'POST',\n bodyFormat: 'json',\n },\n onSuccess: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Success Toast',\n payload: {\n message: 'Thank you! Your message has been sent successfully.',\n type: 'success',\n title: 'Message Sent',\n duration: 4000,\n },\n },\n {\n id: gen('step'),\n type: 'reset_form',\n label: 'Reset Form',\n payload: {},\n },\n ],\n onError: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Error Toast',\n payload: {\n message: 'Failed to send message. Please check your connection and try again.',\n type: 'error',\n title: 'Submission Failed',\n duration: 5000,\n },\n },\n ],\n },\n ],\n },\n ],\n children: [\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'name',\n label: 'Your Name',\n type: 'text',\n placeholder: 'Jane Doe',\n required: true,\n rules: [\n { type: 'required', message: 'Please enter your name' },\n { type: 'min_length', value: 2, message: 'Name must be at least 2 characters' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'email',\n label: 'Email Address',\n type: 'email',\n placeholder: 'jane@example.com',\n required: true,\n rules: [\n { type: 'required', message: 'Please enter your email' },\n { type: 'email', message: 'Please enter a valid email address' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'subject',\n label: 'Subject',\n type: 'text',\n placeholder: 'How can we help you?',\n required: true,\n rules: [\n { type: 'required', message: 'Please enter a subject' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('textarea'),\n type: 'textarea',\n props: {\n name: 'message',\n label: 'Message',\n placeholder: 'Write your message here...',\n rows: 4,\n required: true,\n rules: [\n { type: 'required', message: 'Please enter your message' },\n { type: 'min_length', value: 10, message: 'Message must be at least 10 characters' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: 'Send Message',\n variant: 'primary',\n buttonType: 'submit',\n },\n styles: {\n base: {\n width: '100%',\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px',\n borderRadius: '8px',\n fontWeight: '600',\n fontSize: '15px',\n display: 'inline-block',\n textAlign: 'center',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'form-newsletter',\n name: 'Newsletter Subscribe Form',\n category: 'forms',\n categoryLabel: 'Form Templates',\n description: 'Inline email newsletter subscription form with real-time feedback',\n icon: 'mail',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '48px 20px',\n backgroundColor: '#f1f5f9',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div', maxWidth: '580px' },\n styles: {\n base: {\n maxWidth: '580px',\n margin: '0 auto',\n width: '100%',\n textAlign: 'center',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Stay in the Loop', level: 3 },\n styles: {\n base: {\n fontSize: '26px',\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: '8px',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Subscribe to our newsletter for weekly curated insights, updates, and best practices.',\n },\n styles: {\n base: {\n fontSize: '15px',\n color: '#64748b',\n marginBottom: '24px',\n lineHeight: '1.5',\n },\n },\n },\n {\n id: gen('form'),\n type: 'form',\n props: {\n name: 'newsletter_form',\n method: 'POST',\n preventDefault: true,\n resetOnSubmit: true,\n },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n alignItems: 'center',\n width: '100%',\n },\n mobile: {\n flexDirection: 'column',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'submit',\n label: 'Subscribe to Newsletter',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'api_request',\n label: 'Submit Subscription',\n payload: {\n url: '/api/mock/submit-lead',\n method: 'POST',\n bodyFormat: 'json',\n },\n onSuccess: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Success Toast',\n payload: {\n message: 'Thank you for subscribing to our newsletter!',\n type: 'success',\n title: 'Subscription Confirmed',\n duration: 4000,\n },\n },\n {\n id: gen('step'),\n type: 'reset_form',\n label: 'Reset Form',\n payload: {},\n },\n ],\n onError: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Error Toast',\n payload: {\n message: 'Unable to subscribe right now. Please try again later.',\n type: 'error',\n title: 'Error',\n duration: 5000,\n },\n },\n ],\n },\n ],\n },\n ],\n children: [\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'email',\n type: 'email',\n placeholder: 'Enter your email address...',\n required: true,\n rules: [\n { type: 'required', message: 'Email address is required' },\n { type: 'email', message: 'Please enter a valid email address' },\n ],\n },\n styles: {\n base: {\n flex: '1 1 0%',\n minWidth: '0',\n padding: '12px 16px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n backgroundColor: '#ffffff',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: 'Subscribe',\n variant: 'primary',\n buttonType: 'submit',\n },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px 24px',\n borderRadius: '8px',\n fontWeight: '600',\n fontSize: '14px',\n whiteSpace: 'nowrap',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'form-lead-gen',\n name: 'Lead Generation Form',\n category: 'forms',\n categoryLabel: 'Form Templates',\n description: 'Multi-field lead generation form with phone validation, interest dropdown, and API submission pipeline',\n icon: 'users',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '64px 20px',\n backgroundColor: '#ffffff',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div', maxWidth: '640px' },\n styles: {\n base: {\n maxWidth: '640px',\n margin: '0 auto',\n width: '100%',\n backgroundColor: '#ffffff',\n padding: '36px',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.05)',\n },\n },\n children: [\n {\n id: gen('badge'),\n type: 'badge',\n props: { text: 'FREE CONSULTATION', variant: 'primary' },\n styles: { base: { marginBottom: '12px', display: 'inline-block' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Schedule a Consultation', level: 2 },\n styles: {\n base: {\n fontSize: '28px',\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: '8px',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Share your project details with our solutions team. We will analyze your needs and provide a personalized roadmap.',\n },\n styles: {\n base: {\n fontSize: '15px',\n color: '#64748b',\n marginBottom: '28px',\n lineHeight: '1.5',\n },\n },\n },\n {\n id: gen('form'),\n type: 'form',\n props: {\n name: 'lead_generation_form',\n method: 'POST',\n preventDefault: true,\n scrollToFirstError: true,\n resetOnSubmit: true,\n },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '18px',\n width: '100%',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'submit',\n label: 'Submit Lead Form',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'api_request',\n label: 'Send Lead Data',\n payload: {\n url: '/api/mock/submit-lead',\n method: 'POST',\n bodyFormat: 'json',\n },\n onSuccess: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Success Toast',\n payload: {\n message: 'Thank you! Your request has been received. Our team will contact you shortly.',\n type: 'success',\n title: 'Request Submitted',\n duration: 4000,\n },\n },\n {\n id: gen('step'),\n type: 'reset_form',\n label: 'Reset Form',\n payload: {},\n },\n ],\n onError: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Error Toast',\n payload: {\n message: 'Submission failed. Please verify your information and try again.',\n type: 'error',\n title: 'Submission Error',\n duration: 5000,\n },\n },\n ],\n },\n ],\n },\n ],\n children: [\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'full_name',\n label: 'Full Name',\n type: 'text',\n placeholder: 'Alex Morgan',\n required: true,\n rules: [\n { type: 'required', message: 'Full name is required' },\n { type: 'min_length', value: 2, message: 'Name must be at least 2 characters' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'email',\n label: 'Business Email',\n type: 'email',\n placeholder: 'alex@company.com',\n required: true,\n rules: [\n { type: 'required', message: 'Business email is required' },\n { type: 'email', message: 'Please enter a valid email address' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'phone',\n label: 'Phone Number',\n type: 'tel',\n placeholder: '+62 812-3456-7890',\n required: true,\n rules: [\n { type: 'required', message: 'Phone number is required' },\n {\n type: 'custom_regex',\n value: '^[+]?[0-9\\\\s-()]{8,20}$',\n message: 'Please enter a valid phone number (min 8 digits)',\n },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('select'),\n type: 'select',\n props: {\n name: 'interest',\n label: 'Area of Interest',\n placeholder: 'Select your interest / service...',\n required: true,\n defaultValue: '',\n options: [\n { label: 'Web Platform Development', value: 'web_platform' },\n { label: 'Mobile Application', value: 'mobile_app' },\n { label: 'Cloud Architecture & DevOps', value: 'cloud_devops' },\n { label: 'UI/UX Product Design', value: 'product_design' },\n { label: 'General Inquiry', value: 'general' },\n ],\n rules: [\n { type: 'required', message: 'Please select an area of interest' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n backgroundColor: '#ffffff',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'company',\n label: 'Company Name (Optional)',\n type: 'text',\n placeholder: 'Company / Organization',\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: 'Request Consultation',\n variant: 'primary',\n buttonType: 'submit',\n },\n styles: {\n base: {\n width: '100%',\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px 24px',\n borderRadius: '8px',\n fontWeight: '600',\n fontSize: '15px',\n marginTop: '4px',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n];\n\n","import { Node, ResponsiveStyles } from '@kubuild/schema';\nimport { BlockDefinition, defaultGenId } from './types';\n\ntype Gen = (prefix?: string) => string;\n\nconst SALES_CATEGORY = 'sales';\nconst SALES_CATEGORY_LABEL = 'Sales & Conversion';\n\n/** Full-width section wrapping a centered, max-width container. */\nfunction sectionShell(\n gen: Gen,\n children: Node[],\n sectionStyles: ResponsiveStyles = {},\n maxWidth = '960px',\n): Node {\n return {\n id: gen('section'),\n type: 'section',\n styles: {\n ...sectionStyles,\n base: {\n paddingTop: '64px',\n paddingBottom: '64px',\n paddingLeft: '24px',\n paddingRight: '24px',\n width: '100%',\n ...(sectionStyles.base ?? {}),\n },\n mobile: {\n paddingTop: '40px',\n paddingBottom: '40px',\n paddingLeft: '16px',\n paddingRight: '16px',\n ...(sectionStyles.mobile ?? {}),\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n maxWidth,\n margin: '0 auto',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n },\n },\n children,\n },\n ],\n };\n}\n\nfunction sectionHeading(gen: Gen, text: string, subtitle?: string, color = '#0f172a'): Node[] {\n const nodes: Node[] = [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text, level: 2 },\n styles: {\n base: { fontSize: '32px', fontWeight: '800', color, textAlign: 'center', margin: '0' },\n mobile: { fontSize: '26px' },\n },\n },\n ];\n if (subtitle) {\n nodes.push({\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: subtitle },\n styles: { base: { fontSize: '16px', color: '#64748b', textAlign: 'center', margin: '0' } },\n });\n }\n return nodes;\n}\n\nfunction faqItem(gen: Gen, question: string, answer: string): Node {\n return {\n id: gen('accordion-item'),\n type: 'accordion-item',\n props: { title: question },\n styles: { base: { borderBottom: '1px solid #e2e8f0' } },\n children: [\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: answer },\n styles: { base: { fontSize: '15px', color: '#475569', margin: '0', lineHeight: '1.6' } },\n },\n ],\n };\n}\n\nfunction testimonialSlide(\n gen: Gen,\n quote: string,\n name: string,\n role: string,\n rating: number,\n): Node {\n return {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '16px',\n padding: '32px 48px',\n textAlign: 'center',\n },\n mobile: { padding: '24px 40px' },\n },\n children: [\n {\n id: gen('rating'),\n type: 'rating',\n props: { value: rating, max: 5, size: 20, color: '#f59e0b' },\n },\n {\n id: gen('blockquote'),\n type: 'blockquote',\n props: { text: quote },\n styles: {\n base: {\n fontSize: '18px',\n color: '#0f172a',\n fontStyle: 'italic',\n margin: '0',\n lineHeight: '1.6',\n },\n },\n },\n {\n id: gen('text'),\n type: 'text',\n props: { text: `${name} — ${role}` },\n styles: { base: { fontSize: '14px', fontWeight: '600', color: '#64748b' } },\n },\n ],\n };\n}\n\nfunction badgeItem(gen: Gen, iconName: string, label: string): Node {\n return {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '8px',\n padding: '16px',\n textAlign: 'center',\n },\n },\n children: [\n {\n id: gen('icon'),\n type: 'icon',\n props: { name: iconName, size: 28, color: '#16a34a', ariaLabel: label },\n },\n {\n id: gen('text'),\n type: 'text',\n props: { text: label },\n styles: { base: { fontSize: '14px', fontWeight: '600', color: '#334155' } },\n },\n ],\n };\n}\n\nfunction planCard(\n gen: Gen,\n name: string,\n price: string,\n features: string[],\n highlighted: boolean,\n): Node {\n return {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n padding: '28px 24px',\n backgroundColor: '#ffffff',\n borderRadius: '16px',\n border: highlighted ? '2px solid #2563eb' : '1px solid #e2e8f0',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: name, level: 3 },\n styles: { base: { fontSize: '20px', fontWeight: '700', color: '#0f172a', margin: '0' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: price, level: 4 },\n styles: { base: { fontSize: '32px', fontWeight: '800', color: '#2563eb', margin: '0' } },\n },\n {\n id: gen('list'),\n type: 'list',\n props: { tag: 'ul', listStyleType: 'disc' },\n styles: { base: { fontSize: '14px', color: '#475569', paddingLeft: '20px', margin: '0' } },\n children: features.map((feature) => ({\n id: gen('list-item'),\n type: 'list-item',\n props: { text: feature },\n })),\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: `Choose ${name}`,\n href: '#checkout',\n variant: highlighted ? 'primary' : 'secondary',\n },\n styles: {\n base: {\n width: '100%',\n padding: '12px',\n borderRadius: '8px',\n fontWeight: '600',\n marginTop: '8px',\n },\n },\n },\n ],\n };\n}\n\nfunction planColumns(gen: Gen, plans: Array<[string, string, string[], boolean]>): Node {\n return {\n id: gen('columns'),\n type: 'columns',\n props: { columns: plans.length, gap: '16px' },\n styles: {\n base: {\n display: 'grid',\n gridTemplateColumns: `repeat(${plans.length}, minmax(0, 1fr))`,\n gap: '16px',\n },\n mobile: { gridTemplateColumns: 'repeat(1, minmax(0, 1fr))' },\n },\n children: plans.map(([name, price, features, highlighted]) =>\n planCard(gen, name, price, features, highlighted),\n ),\n };\n}\n\n/**\n * Sales / funnel section blocks (STORA-549) built on the Epic 60 conversion\n * components. Every tree is valid under `validateDocument` with `strictChildPolicy`.\n */\nexport const SALES_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'sales-faq',\n name: 'FAQ',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Frequently asked questions accordion with FAQPage structured data for SEO',\n icon: 'chevron-down',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n ...sectionHeading(\n gen,\n 'Frequently Asked Questions',\n 'Everything you need to know before you buy.',\n ),\n {\n id: gen('accordion'),\n type: 'accordion',\n props: { allowMultiple: false, defaultOpenIndex: 0, icon: 'chevron', faqSchema: true },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n borderTop: '1px solid #e2e8f0',\n },\n },\n children: [\n faqItem(\n gen,\n 'What exactly do I get?',\n 'Instant access to the full program, all bonuses, and every future update.',\n ),\n faqItem(\n gen,\n 'How long do I have access?',\n 'Lifetime access — learn at your own pace, on any device.',\n ),\n faqItem(\n gen,\n 'Is there a money-back guarantee?',\n 'Yes. If you are not satisfied within 30 days, we refund you in full.',\n ),\n faqItem(\n gen,\n 'How do I pay?',\n 'We accept cards, bank transfer, and e-wallets through a secure checkout.',\n ),\n ],\n },\n ],\n {},\n '760px',\n ),\n },\n {\n id: 'sales-testimonials',\n name: 'Testimonials Carousel',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Customer testimonial slider with star ratings',\n icon: 'star',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n ...sectionHeading(gen, 'What Our Customers Say'),\n {\n id: gen('carousel'),\n type: 'carousel',\n props: {\n autoplay: true,\n interval: 6000,\n loop: true,\n showDots: true,\n showArrows: true,\n ariaLabel: 'Testimonials',\n },\n styles: {\n base: {\n position: 'relative',\n width: '100%',\n overflow: 'hidden',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n },\n },\n children: [\n testimonialSlide(\n gen,\n 'This completely changed how I run my business. Worth every cent.',\n 'Sarah K.',\n 'Founder',\n 5,\n ),\n testimonialSlide(\n gen,\n 'Clear, practical, and easy to follow. I saw results in the first week.',\n 'Budi S.',\n 'Marketing Lead',\n 4.5,\n ),\n testimonialSlide(\n gen,\n 'The support team is amazing and the material is top-notch.',\n 'Aisha R.',\n 'Freelancer',\n 5,\n ),\n ],\n },\n ],\n { base: { backgroundColor: '#ffffff' } },\n '760px',\n ),\n },\n {\n id: 'sales-countdown-banner',\n name: 'Countdown Banner',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Limited-time offer banner with an evergreen countdown timer and CTA',\n icon: 'clock',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n ...sectionHeading(gen, 'Special Launch Price Ends Soon', undefined, '#ffffff'),\n {\n id: gen('countdown'),\n type: 'countdown',\n props: {\n mode: 'evergreen',\n durationMinutes: 30,\n format: 'd h m s',\n labelDays: 'Days',\n labelHours: 'Hours',\n labelMinutes: 'Minutes',\n labelSeconds: 'Seconds',\n expireBehavior: 'text',\n expiredText: 'The special price has ended.',\n storage: 'session',\n ariaLabel: 'Offer ends in',\n },\n styles: {\n base: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '16px',\n fontSize: '36px',\n fontWeight: '800',\n color: '#ffffff',\n fontVariantNumeric: 'tabular-nums',\n },\n mobile: { fontSize: '28px', gap: '8px' },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Claim the Offer', href: '#checkout' },\n styles: {\n base: {\n alignSelf: 'center',\n backgroundColor: '#f59e0b',\n color: '#0f172a',\n padding: '14px 32px',\n borderRadius: '9999px',\n fontSize: '16px',\n fontWeight: '700',\n },\n },\n },\n ],\n { base: { backgroundColor: '#0f172a' } },\n ),\n },\n {\n id: 'sales-guarantee',\n name: 'Money-Back Guarantee',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Risk-reversal guarantee section with shield icon',\n icon: 'badge',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '24px',\n padding: '32px',\n backgroundColor: '#f0fdf4',\n border: '2px dashed #16a34a',\n borderRadius: '16px',\n },\n mobile: { flexDirection: 'column', textAlign: 'center', padding: '24px' },\n },\n children: [\n {\n id: gen('icon'),\n type: 'icon',\n props: { name: 'shield-check', size: 64, color: '#16a34a', ariaLabel: 'Guarantee' },\n },\n {\n id: gen('flex'),\n type: 'flex',\n styles: { base: { display: 'flex', flexDirection: 'column', gap: '8px' } },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: '30-Day Money-Back Guarantee', level: 3 },\n styles: {\n base: { fontSize: '22px', fontWeight: '800', color: '#14532d', margin: '0' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Try it risk-free. If it is not right for you, email us within 30 days and we will refund every cent — no questions asked.',\n },\n styles: {\n base: { fontSize: '15px', color: '#166534', margin: '0', lineHeight: '1.6' },\n },\n },\n ],\n },\n ],\n },\n ],\n {},\n '760px',\n ),\n },\n {\n id: 'sales-trust-badges',\n name: 'Trust Badges',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Row of trust signals: secure payment, guarantee, support, and delivery',\n icon: 'grid',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n {\n id: gen('grid'),\n type: 'grid',\n styles: {\n base: {\n display: 'grid',\n gridTemplateColumns: 'repeat(4, minmax(0, 1fr))',\n gap: '16px',\n },\n mobile: { gridTemplateColumns: 'repeat(2, minmax(0, 1fr))' },\n },\n children: [\n badgeItem(gen, 'lock', 'Secure Payment'),\n badgeItem(gen, 'shield-check', 'Money-Back Guarantee'),\n badgeItem(gen, 'headphones', '24/7 Support'),\n badgeItem(gen, 'zap', 'Instant Access'),\n ],\n },\n {\n id: gen('divider'),\n type: 'divider',\n props: { lineStyle: 'solid', thickness: 1, color: '#e2e8f0', label: '' },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'Trusted by 10,000+ customers.' },\n styles: {\n base: { fontSize: '14px', color: '#64748b', textAlign: 'center', margin: '0' },\n },\n },\n ],\n { base: { paddingTop: '32px', paddingBottom: '32px' } },\n ),\n },\n {\n id: 'sales-plan-comparison',\n name: 'Plan Comparison',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Monthly/yearly tabs comparing pricing plans side by side',\n icon: 'columns',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(gen, [\n ...sectionHeading(gen, 'Choose Your Plan', 'Switch between monthly and yearly billing.'),\n {\n id: gen('tabs'),\n type: 'tabs',\n props: { activeIndex: 0, ariaLabel: 'Billing period' },\n styles: { base: { display: 'flex', flexDirection: 'column', width: '100%' } },\n children: [\n {\n id: gen('tab-panel'),\n type: 'tab-panel',\n props: { label: 'Monthly' },\n styles: { base: { paddingTop: '24px' } },\n children: [\n planColumns(gen, [\n ['Basic', '$19 / mo', ['1 project', 'Email support', 'Core features'], false],\n [\n 'Pro',\n '$49 / mo',\n ['Unlimited projects', 'Priority support', 'All features'],\n true,\n ],\n ]),\n ],\n },\n {\n id: gen('tab-panel'),\n type: 'tab-panel',\n props: { label: 'Yearly' },\n styles: { base: { paddingTop: '24px' } },\n children: [\n planColumns(gen, [\n [\n 'Basic',\n '$190 / yr',\n ['1 project', 'Email support', 'Core features', '2 months free'],\n false,\n ],\n [\n 'Pro',\n '$490 / yr',\n ['Unlimited projects', 'Priority support', 'All features', '2 months free'],\n true,\n ],\n ]),\n ],\n },\n ],\n },\n {\n id: gen('spacer'),\n type: 'spacer',\n styles: { base: { width: '100%', height: '16px' }, mobile: { height: '8px' } },\n },\n ]),\n },\n];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/blocks/index.ts","../../src/blocks/types.ts","../../src/blocks/layout.ts","../../src/blocks/sections.ts","../../src/blocks/forms.ts","../../src/blocks/sales.ts"],"sourcesContent":["import { BlockDefinition } from './types.js';\nimport { LAYOUT_STARTER_BLOCKS } from './layout.js';\nimport { UI_STARTER_BLOCKS } from './sections.js';\nimport { FORM_STARTER_BLOCKS } from './forms.js';\nimport { SALES_STARTER_BLOCKS } from './sales.js';\n\nexport * from './types.js';\nexport * from './layout.js';\nexport * from './sections.js';\nexport * from './forms.js';\nexport * from './sales.js';\n\n/**\n * Predefined Starter Layout Blocks (STORA-241), Pre-composed UI Blocks (STORA-242),\n * Pre-composed Form Templates (STORA-350), and Sales / conversion sections (STORA-549).\n */\nexport const STARTER_BLOCKS: BlockDefinition[] = [\n ...LAYOUT_STARTER_BLOCKS,\n ...UI_STARTER_BLOCKS,\n ...FORM_STARTER_BLOCKS,\n ...SALES_STARTER_BLOCKS,\n];\n\n","import { Node } from '@kubuild/schema';\n\nexport interface BlockDefinition {\n id: string;\n name: string;\n category: 'layout' | 'sections' | 'ui' | 'pricing' | 'cta' | 'forms' | string;\n categoryLabel?: string;\n description?: string;\n icon?: string;\n thumbnailSvg?: string;\n createNodeTree: (generateId?: (prefix?: string) => string) => Node;\n}\n\nlet nextId = 1;\nexport function defaultGenId(prefix = 'node'): string {\n return `${prefix}-${Date.now().toString(36)}-${(nextId++).toString(36)}`;\n}\n\n","import { BlockDefinition, defaultGenId } from './types.js';\n\n/**\n * Predefined Starter Layout Blocks (STORA-241).\n */\nexport const LAYOUT_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'layout-1-col',\n name: '1 Column',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Full-width single column container inside a section',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { maxWidth: '1200px', margin: '0 auto', width: '100%' } },\n children: [],\n },\n ],\n }),\n },\n {\n id: 'layout-2-col-50-50',\n name: '2 Columns (50/50)',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Two equal-width 50/50 columns with flexible layout',\n icon: 'columns',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 2, gap: '24px' },\n styles: { base: { display: 'flex', gap: '24px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'layout-2-col-30-70',\n name: '2 Columns (30/70)',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Two asymmetric columns: 30% sidebar and 70% main area',\n icon: 'columns',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 2, gap: '24px' },\n styles: { base: { display: 'flex', gap: '24px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '0 0 30%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'layout-3-col',\n name: '3 Columns',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Three equal-width columns for grid showcases or card groups',\n icon: 'grid',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 3, gap: '24px' },\n styles: { base: { display: 'flex', gap: '24px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'layout-4-col',\n name: '4 Columns',\n category: 'layout',\n categoryLabel: 'Layout Blocks',\n description: 'Four equal columns for metric stats, logos, or compact feature cards',\n icon: 'grid',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: { base: { padding: '40px 20px', width: '100%' } },\n children: [\n {\n id: gen('columns'),\n type: 'columns',\n props: { columns: 4, gap: '16px' },\n styles: { base: { display: 'flex', gap: '16px', width: '100%', maxWidth: '1200px', margin: '0 auto' } },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%', minWidth: '0' } },\n children: [],\n },\n ],\n },\n ],\n }),\n },\n];\n\n","import { ResponsiveStyles } from '@kubuild/schema';\nimport { BlockDefinition, defaultGenId } from './types.js';\n\n/**\n * Pre-composed UI Blocks (STORA-242).\n */\nexport const UI_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'navbar',\n name: 'Navbar',\n category: 'sections',\n categoryLabel: 'Navigation & Headers',\n description: 'Responsive top navigation bar with brand logo, nav links, CTA button, and mobile hamburger menu',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '24px',\n paddingRight: '24px',\n backgroundColor: '#ffffff',\n borderBottom: '1px solid #e2e8f0',\n width: '100%',\n },\n mobile: {\n paddingLeft: '16px',\n paddingRight: '16px',\n paddingTop: '12px',\n paddingBottom: '12px',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n maxWidth: '1200px',\n margin: '0 auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n flexWrap: 'wrap',\n },\n },\n children: [\n // 1. Brand Logo\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Brand', level: 3 },\n styles: {\n base: {\n fontSize: '20px',\n fontWeight: '800',\n color: '#0f172a',\n margin: '0',\n },\n },\n },\n // 2. Desktop Navigation Links (hidden on mobile)\n {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '24px',\n },\n mobile: {\n display: 'none',\n },\n },\n children: [\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Home', href: '#home' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#0f172a',\n textDecoration: 'none',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Features', href: '#features' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Pricing', href: '#pricing' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'About', href: '#about' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n },\n },\n },\n ],\n },\n // 3. Desktop CTA Buttons (hidden on mobile)\n {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '12px',\n },\n mobile: {\n display: 'none',\n },\n },\n children: [\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Sign In', href: '#signin' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#475569',\n textDecoration: 'none',\n padding: '8px 12px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Get Started', href: '#signup' },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '8px 18px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '600',\n display: 'inline-block',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n // 4. Mobile Hamburger Button (hidden on desktop, visible on mobile)\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: '☰',\n activeLabel: '✕',\n isEditable: false,\n modalId: 'mobile-nav-drawer',\n ariaLabel: 'Toggle navigation menu',\n variant: 'secondary',\n },\n styles: {\n base: {\n display: 'none',\n },\n mobile: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '6px 12px',\n fontSize: '18px',\n backgroundColor: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '6px',\n color: '#0f172a',\n cursor: 'pointer',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'click',\n label: 'Toggle Mobile Menu',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'open_modal',\n label: 'Toggle Navigation Drawer',\n payload: {\n modalId: 'mobile-nav-drawer',\n toggle: true,\n },\n },\n ],\n },\n ],\n },\n // 5. Mobile Navigation Dropdown (hidden on desktop, stacked on mobile)\n // A `collapsible`, not a plain flex: this is an in-flow disclosure that expands\n // inside the navbar (its width/border styles depend on staying there), so it must\n // not be treated as a floating overlay. The dedicated renderer also keeps it\n // visible while editing, so the menu's links stay reachable on the canvas, and\n // only honours the open/closed state at runtime.\n {\n id: gen('collapsible'),\n type: 'collapsible',\n props: {\n modalId: 'mobile-nav-drawer',\n ariaLabel: 'Mobile navigation menu',\n defaultOpen: false,\n animated: true,\n },\n styles: {\n base: {\n display: 'none',\n },\n mobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n gap: '8px',\n paddingTop: '16px',\n marginTop: '12px',\n borderTop: '1px solid #f1f5f9',\n },\n },\n children: [\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Home', href: '#home' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#0f172a',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Features', href: '#features' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'Pricing', href: '#pricing' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('link'),\n type: 'link',\n props: { text: 'About', href: '#about' },\n styles: {\n base: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#64748b',\n textDecoration: 'none',\n padding: '6px 0',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Get Started', href: '#signup' },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '10px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '600',\n textAlign: 'center',\n display: 'block',\n marginTop: '8px',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'hero-section',\n name: 'Hero Section',\n category: 'sections',\n categoryLabel: 'Hero & Headers',\n description: 'Engaging hero banner with headline, lead paragraph, and call-to-action button',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '80px 24px',\n backgroundColor: '#f8fafc',\n textAlign: 'center',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { maxWidth: '768px', margin: '0 auto' } },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Build Remarkable Experiences', level: 1 },\n styles: {\n base: {\n fontSize: '44px',\n fontWeight: '800',\n color: '#0f172a',\n marginBottom: '16px',\n lineHeight: '1.2',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text:\n 'A visual builder designed for maximum craft, responsiveness, and performance.',\n },\n styles: {\n base: {\n fontSize: '18px',\n color: '#475569',\n marginBottom: '32px',\n lineHeight: '1.6',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Get Started Today', href: '#explore' },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px 28px',\n borderRadius: '8px',\n fontWeight: '600',\n display: 'inline-block',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'feature-card',\n name: 'Feature Card',\n category: 'ui',\n categoryLabel: 'UI Blocks',\n description: 'Clean elevated feature card with badge, title, text, and action link',\n icon: 'box',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n padding: '24px',\n backgroundColor: '#ffffff',\n borderRadius: '12px',\n border: '1px solid #e2e8f0',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.05)',\n },\n },\n children: [\n {\n id: gen('badge'),\n type: 'badge',\n props: { text: 'PRO FEATURE', variant: 'primary' },\n styles: { base: { marginBottom: '12px', display: 'inline-block' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Next-Gen Performance', level: 3 },\n styles: {\n base: { fontSize: '20px', fontWeight: '700', color: '#1e293b', marginBottom: '8px' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Engineered for sub-millisecond render updates and zero runtime overhead.',\n },\n styles: { base: { fontSize: '14px', color: '#64748b', lineHeight: '1.5' } },\n },\n ],\n }),\n },\n {\n id: 'media-object',\n name: 'Media Object',\n category: 'ui',\n categoryLabel: 'UI Blocks',\n description: 'Horizontal media layout with image beside text content',\n icon: 'image',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n display: 'flex',\n gap: '16px',\n alignItems: 'flex-start',\n padding: '16px',\n backgroundColor: '#ffffff',\n borderRadius: '8px',\n border: '1px solid #e2e8f0',\n },\n },\n children: [\n {\n id: gen('image'),\n type: 'image',\n props: {\n src: 'https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=160&auto=format&fit=crop&q=80',\n alt: 'Visual preview',\n },\n styles: {\n base: {\n width: '80px',\n height: '80px',\n borderRadius: '8px',\n objectFit: 'cover',\n flexShrink: '0',\n },\n },\n },\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: { base: { flex: '1 1 0%' } },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Creative Studio Asset', level: 4 },\n styles: {\n base: { fontSize: '16px', fontWeight: '600', color: '#0f172a', marginBottom: '4px' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'High dynamic range gradients crafted for modern presentations.' },\n styles: { base: { fontSize: '13px', color: '#64748b', lineHeight: '1.4' } },\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'pricing-table',\n name: 'Pricing Table',\n category: 'pricing',\n categoryLabel: 'Pricing',\n description: 'Highlighted subscription pricing plan with price, feature list, and buy button',\n icon: 'table',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n padding: '32px 24px',\n backgroundColor: '#ffffff',\n borderRadius: '16px',\n border: '2px solid #3b82f6',\n boxShadow: '0 10px 15px -3px rgba(59, 130, 246, 0.1)',\n textAlign: 'center',\n maxWidth: '360px',\n },\n },\n children: [\n {\n id: gen('badge'),\n type: 'badge',\n props: { text: 'MOST POPULAR', variant: 'primary' },\n styles: { base: { marginBottom: '12px', display: 'inline-block' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Professional', level: 3 },\n styles: { base: { fontSize: '22px', fontWeight: '700', color: '#0f172a' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: '$29 / mo', level: 2 },\n styles: {\n base: { fontSize: '36px', fontWeight: '800', color: '#2563eb', margin: '16px 0 24px 0' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'Includes unlimited pages, custom domains, and team collaboration.' },\n styles: { base: { fontSize: '14px', color: '#64748b', marginBottom: '24px' } },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Upgrade to Pro', href: '#checkout' },\n styles: {\n base: {\n width: '100%',\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px',\n borderRadius: '8px',\n fontWeight: '600',\n display: 'block',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n }),\n },\n {\n id: 'cta-banner',\n name: 'CTA Banner',\n category: 'cta',\n categoryLabel: 'Call to Action',\n description: 'High-contrast conversion banner with title and action button',\n icon: 'layout',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '60px 24px',\n backgroundColor: '#0f172a',\n color: '#ffffff',\n borderRadius: '16px',\n textAlign: 'center',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Ready to boost your workflow?', level: 2 },\n styles: {\n base: { fontSize: '32px', fontWeight: '700', color: '#ffffff', marginBottom: '12px' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'Start building with zero installation and instant live preview.' },\n styles: {\n base: { fontSize: '16px', color: '#94a3b8', marginBottom: '24px', maxWidth: '600px', margin: '0 auto 24px auto' },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Start Free Trial', href: '#signup' },\n styles: {\n base: {\n backgroundColor: '#ffffff',\n color: '#0f172a',\n padding: '12px 28px',\n borderRadius: '8px',\n fontWeight: '700',\n display: 'inline-block',\n },\n states: {\n ':hover': { backgroundColor: '#f1f5f9' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n }),\n },\n];\n\n","import { ResponsiveStyles } from '@kubuild/schema';\nimport { BlockDefinition, defaultGenId } from './types.js';\n\n/**\n * Starter Form Templates (STORA-350).\n */\nexport const FORM_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'form-contact-us',\n name: 'Contact Us Form',\n category: 'forms',\n categoryLabel: 'Form Templates',\n description: 'Contact form with Name, Email, Subject, Message, and submit action pipeline with API request and toast notifications',\n icon: 'form',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '64px 20px',\n backgroundColor: '#f8fafc',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div', maxWidth: '640px' },\n styles: {\n base: {\n maxWidth: '640px',\n margin: '0 auto',\n width: '100%',\n backgroundColor: '#ffffff',\n padding: '36px',\n borderRadius: '16px',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05)',\n border: '1px solid #e2e8f0',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Contact Us', level: 2 },\n styles: {\n base: {\n fontSize: '28px',\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: '8px',\n textAlign: 'center',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Have questions or need assistance? Fill out the form below and we will get back to you shortly.',\n },\n styles: {\n base: {\n fontSize: '15px',\n color: '#64748b',\n marginBottom: '28px',\n textAlign: 'center',\n lineHeight: '1.5',\n },\n },\n },\n {\n id: gen('form'),\n type: 'form',\n props: {\n name: 'contact_us_form',\n method: 'POST',\n preventDefault: true,\n scrollToFirstError: true,\n resetOnSubmit: true,\n },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '20px',\n width: '100%',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'submit',\n label: 'Submit Contact Form',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'api_request',\n label: 'Send Contact Message',\n payload: {\n url: '/api/mock/submit-lead',\n method: 'POST',\n bodyFormat: 'json',\n },\n onSuccess: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Success Toast',\n payload: {\n message: 'Thank you! Your message has been sent successfully.',\n type: 'success',\n title: 'Message Sent',\n duration: 4000,\n },\n },\n {\n id: gen('step'),\n type: 'reset_form',\n label: 'Reset Form',\n payload: {},\n },\n ],\n onError: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Error Toast',\n payload: {\n message: 'Failed to send message. Please check your connection and try again.',\n type: 'error',\n title: 'Submission Failed',\n duration: 5000,\n },\n },\n ],\n },\n ],\n },\n ],\n children: [\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'name',\n label: 'Your Name',\n type: 'text',\n placeholder: 'Jane Doe',\n required: true,\n rules: [\n { type: 'required', message: 'Please enter your name' },\n { type: 'min_length', value: 2, message: 'Name must be at least 2 characters' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'email',\n label: 'Email Address',\n type: 'email',\n placeholder: 'jane@example.com',\n required: true,\n rules: [\n { type: 'required', message: 'Please enter your email' },\n { type: 'email', message: 'Please enter a valid email address' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'subject',\n label: 'Subject',\n type: 'text',\n placeholder: 'How can we help you?',\n required: true,\n rules: [\n { type: 'required', message: 'Please enter a subject' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('textarea'),\n type: 'textarea',\n props: {\n name: 'message',\n label: 'Message',\n placeholder: 'Write your message here...',\n rows: 4,\n required: true,\n rules: [\n { type: 'required', message: 'Please enter your message' },\n { type: 'min_length', value: 10, message: 'Message must be at least 10 characters' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: 'Send Message',\n variant: 'primary',\n buttonType: 'submit',\n },\n styles: {\n base: {\n width: '100%',\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px',\n borderRadius: '8px',\n fontWeight: '600',\n fontSize: '15px',\n display: 'inline-block',\n textAlign: 'center',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'form-newsletter',\n name: 'Newsletter Subscribe Form',\n category: 'forms',\n categoryLabel: 'Form Templates',\n description: 'Inline email newsletter subscription form with real-time feedback',\n icon: 'mail',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '48px 20px',\n backgroundColor: '#f1f5f9',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div', maxWidth: '580px' },\n styles: {\n base: {\n maxWidth: '580px',\n margin: '0 auto',\n width: '100%',\n textAlign: 'center',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Stay in the Loop', level: 3 },\n styles: {\n base: {\n fontSize: '26px',\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: '8px',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Subscribe to our newsletter for weekly curated insights, updates, and best practices.',\n },\n styles: {\n base: {\n fontSize: '15px',\n color: '#64748b',\n marginBottom: '24px',\n lineHeight: '1.5',\n },\n },\n },\n {\n id: gen('form'),\n type: 'form',\n props: {\n name: 'newsletter_form',\n method: 'POST',\n preventDefault: true,\n resetOnSubmit: true,\n },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n alignItems: 'center',\n width: '100%',\n },\n mobile: {\n flexDirection: 'column',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'submit',\n label: 'Subscribe to Newsletter',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'api_request',\n label: 'Submit Subscription',\n payload: {\n url: '/api/mock/submit-lead',\n method: 'POST',\n bodyFormat: 'json',\n },\n onSuccess: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Success Toast',\n payload: {\n message: 'Thank you for subscribing to our newsletter!',\n type: 'success',\n title: 'Subscription Confirmed',\n duration: 4000,\n },\n },\n {\n id: gen('step'),\n type: 'reset_form',\n label: 'Reset Form',\n payload: {},\n },\n ],\n onError: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Error Toast',\n payload: {\n message: 'Unable to subscribe right now. Please try again later.',\n type: 'error',\n title: 'Error',\n duration: 5000,\n },\n },\n ],\n },\n ],\n },\n ],\n children: [\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'email',\n type: 'email',\n placeholder: 'Enter your email address...',\n required: true,\n rules: [\n { type: 'required', message: 'Email address is required' },\n { type: 'email', message: 'Please enter a valid email address' },\n ],\n },\n styles: {\n base: {\n flex: '1 1 0%',\n minWidth: '0',\n padding: '12px 16px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n backgroundColor: '#ffffff',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: 'Subscribe',\n variant: 'primary',\n buttonType: 'submit',\n },\n styles: {\n base: {\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px 24px',\n borderRadius: '8px',\n fontWeight: '600',\n fontSize: '14px',\n whiteSpace: 'nowrap',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n {\n id: 'form-lead-gen',\n name: 'Lead Generation Form',\n category: 'forms',\n categoryLabel: 'Form Templates',\n description: 'Multi-field lead generation form with phone validation, interest dropdown, and API submission pipeline',\n icon: 'users',\n createNodeTree: (gen = defaultGenId) => ({\n id: gen('section'),\n type: 'section',\n styles: {\n base: {\n padding: '64px 20px',\n backgroundColor: '#ffffff',\n width: '100%',\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div', maxWidth: '640px' },\n styles: {\n base: {\n maxWidth: '640px',\n margin: '0 auto',\n width: '100%',\n backgroundColor: '#ffffff',\n padding: '36px',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.05)',\n },\n },\n children: [\n {\n id: gen('badge'),\n type: 'badge',\n props: { text: 'FREE CONSULTATION', variant: 'primary' },\n styles: { base: { marginBottom: '12px', display: 'inline-block' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: 'Schedule a Consultation', level: 2 },\n styles: {\n base: {\n fontSize: '28px',\n fontWeight: '700',\n color: '#0f172a',\n marginBottom: '8px',\n },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Share your project details with our solutions team. We will analyze your needs and provide a personalized roadmap.',\n },\n styles: {\n base: {\n fontSize: '15px',\n color: '#64748b',\n marginBottom: '28px',\n lineHeight: '1.5',\n },\n },\n },\n {\n id: gen('form'),\n type: 'form',\n props: {\n name: 'lead_generation_form',\n method: 'POST',\n preventDefault: true,\n scrollToFirstError: true,\n resetOnSubmit: true,\n },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '18px',\n width: '100%',\n },\n },\n actions: [\n {\n id: gen('pipeline'),\n trigger: 'submit',\n label: 'Submit Lead Form',\n enabled: true,\n steps: [\n {\n id: gen('step'),\n type: 'api_request',\n label: 'Send Lead Data',\n payload: {\n url: '/api/mock/submit-lead',\n method: 'POST',\n bodyFormat: 'json',\n },\n onSuccess: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Success Toast',\n payload: {\n message: 'Thank you! Your request has been received. Our team will contact you shortly.',\n type: 'success',\n title: 'Request Submitted',\n duration: 4000,\n },\n },\n {\n id: gen('step'),\n type: 'reset_form',\n label: 'Reset Form',\n payload: {},\n },\n ],\n onError: [\n {\n id: gen('step'),\n type: 'show_toast',\n label: 'Show Error Toast',\n payload: {\n message: 'Submission failed. Please verify your information and try again.',\n type: 'error',\n title: 'Submission Error',\n duration: 5000,\n },\n },\n ],\n },\n ],\n },\n ],\n children: [\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'full_name',\n label: 'Full Name',\n type: 'text',\n placeholder: 'Alex Morgan',\n required: true,\n rules: [\n { type: 'required', message: 'Full name is required' },\n { type: 'min_length', value: 2, message: 'Name must be at least 2 characters' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'email',\n label: 'Business Email',\n type: 'email',\n placeholder: 'alex@company.com',\n required: true,\n rules: [\n { type: 'required', message: 'Business email is required' },\n { type: 'email', message: 'Please enter a valid email address' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'phone',\n label: 'Phone Number',\n type: 'tel',\n placeholder: '+62 812-3456-7890',\n required: true,\n rules: [\n { type: 'required', message: 'Phone number is required' },\n {\n type: 'custom_regex',\n value: '^[+]?[0-9\\\\s-()]{8,20}$',\n message: 'Please enter a valid phone number (min 8 digits)',\n },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('select'),\n type: 'select',\n props: {\n name: 'interest',\n label: 'Area of Interest',\n placeholder: 'Select your interest / service...',\n required: true,\n defaultValue: '',\n options: [\n { label: 'Web Platform Development', value: 'web_platform' },\n { label: 'Mobile Application', value: 'mobile_app' },\n { label: 'Cloud Architecture & DevOps', value: 'cloud_devops' },\n { label: 'UI/UX Product Design', value: 'product_design' },\n { label: 'General Inquiry', value: 'general' },\n ],\n rules: [\n { type: 'required', message: 'Please select an area of interest' },\n ],\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n backgroundColor: '#ffffff',\n },\n },\n },\n {\n id: gen('input'),\n type: 'input',\n props: {\n name: 'company',\n label: 'Company Name (Optional)',\n type: 'text',\n placeholder: 'Company / Organization',\n },\n styles: {\n base: {\n width: '100%',\n padding: '10px 14px',\n borderRadius: '8px',\n border: '1px solid #cbd5e1',\n fontSize: '14px',\n },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: 'Request Consultation',\n variant: 'primary',\n buttonType: 'submit',\n },\n styles: {\n base: {\n width: '100%',\n backgroundColor: '#2563eb',\n color: '#ffffff',\n padding: '12px 24px',\n borderRadius: '8px',\n fontWeight: '600',\n fontSize: '15px',\n marginTop: '4px',\n },\n states: {\n ':hover': { backgroundColor: '#1d4ed8' },\n },\n } as unknown as ResponsiveStyles,\n },\n ],\n },\n ],\n },\n ],\n }),\n },\n];\n\n","import { Node, ResponsiveStyles } from '@kubuild/schema';\nimport { BlockDefinition, defaultGenId } from './types.js';\n\ntype Gen = (prefix?: string) => string;\n\nconst SALES_CATEGORY = 'sales';\nconst SALES_CATEGORY_LABEL = 'Sales & Conversion';\n\n/** Full-width section wrapping a centered, max-width container. */\nfunction sectionShell(\n gen: Gen,\n children: Node[],\n sectionStyles: ResponsiveStyles = {},\n maxWidth = '960px',\n): Node {\n return {\n id: gen('section'),\n type: 'section',\n styles: {\n ...sectionStyles,\n base: {\n paddingTop: '64px',\n paddingBottom: '64px',\n paddingLeft: '24px',\n paddingRight: '24px',\n width: '100%',\n ...(sectionStyles.base ?? {}),\n },\n mobile: {\n paddingTop: '40px',\n paddingBottom: '40px',\n paddingLeft: '16px',\n paddingRight: '16px',\n ...(sectionStyles.mobile ?? {}),\n },\n },\n children: [\n {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n maxWidth,\n margin: '0 auto',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n },\n },\n children,\n },\n ],\n };\n}\n\nfunction sectionHeading(gen: Gen, text: string, subtitle?: string, color = '#0f172a'): Node[] {\n const nodes: Node[] = [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text, level: 2 },\n styles: {\n base: { fontSize: '32px', fontWeight: '800', color, textAlign: 'center', margin: '0' },\n mobile: { fontSize: '26px' },\n },\n },\n ];\n if (subtitle) {\n nodes.push({\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: subtitle },\n styles: { base: { fontSize: '16px', color: '#64748b', textAlign: 'center', margin: '0' } },\n });\n }\n return nodes;\n}\n\nfunction faqItem(gen: Gen, question: string, answer: string): Node {\n return {\n id: gen('accordion-item'),\n type: 'accordion-item',\n props: { title: question },\n styles: { base: { borderBottom: '1px solid #e2e8f0' } },\n children: [\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: answer },\n styles: { base: { fontSize: '15px', color: '#475569', margin: '0', lineHeight: '1.6' } },\n },\n ],\n };\n}\n\nfunction testimonialSlide(\n gen: Gen,\n quote: string,\n name: string,\n role: string,\n rating: number,\n): Node {\n return {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '16px',\n padding: '32px 48px',\n textAlign: 'center',\n },\n mobile: { padding: '24px 40px' },\n },\n children: [\n {\n id: gen('rating'),\n type: 'rating',\n props: { value: rating, max: 5, size: 20, color: '#f59e0b' },\n },\n {\n id: gen('blockquote'),\n type: 'blockquote',\n props: { text: quote },\n styles: {\n base: {\n fontSize: '18px',\n color: '#0f172a',\n fontStyle: 'italic',\n margin: '0',\n lineHeight: '1.6',\n },\n },\n },\n {\n id: gen('text'),\n type: 'text',\n props: { text: `${name} — ${role}` },\n styles: { base: { fontSize: '14px', fontWeight: '600', color: '#64748b' } },\n },\n ],\n };\n}\n\nfunction badgeItem(gen: Gen, iconName: string, label: string): Node {\n return {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '8px',\n padding: '16px',\n textAlign: 'center',\n },\n },\n children: [\n {\n id: gen('icon'),\n type: 'icon',\n props: { name: iconName, size: 28, color: '#16a34a', ariaLabel: label },\n },\n {\n id: gen('text'),\n type: 'text',\n props: { text: label },\n styles: { base: { fontSize: '14px', fontWeight: '600', color: '#334155' } },\n },\n ],\n };\n}\n\nfunction planCard(\n gen: Gen,\n name: string,\n price: string,\n features: string[],\n highlighted: boolean,\n): Node {\n return {\n id: gen('container'),\n type: 'container',\n props: { tag: 'div' },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n padding: '28px 24px',\n backgroundColor: '#ffffff',\n borderRadius: '16px',\n border: highlighted ? '2px solid #2563eb' : '1px solid #e2e8f0',\n },\n },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: name, level: 3 },\n styles: { base: { fontSize: '20px', fontWeight: '700', color: '#0f172a', margin: '0' } },\n },\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: price, level: 4 },\n styles: { base: { fontSize: '32px', fontWeight: '800', color: '#2563eb', margin: '0' } },\n },\n {\n id: gen('list'),\n type: 'list',\n props: { tag: 'ul', listStyleType: 'disc' },\n styles: { base: { fontSize: '14px', color: '#475569', paddingLeft: '20px', margin: '0' } },\n children: features.map((feature) => ({\n id: gen('list-item'),\n type: 'list-item',\n props: { text: feature },\n })),\n },\n {\n id: gen('button'),\n type: 'button',\n props: {\n label: `Choose ${name}`,\n href: '#checkout',\n variant: highlighted ? 'primary' : 'secondary',\n },\n styles: {\n base: {\n width: '100%',\n padding: '12px',\n borderRadius: '8px',\n fontWeight: '600',\n marginTop: '8px',\n },\n },\n },\n ],\n };\n}\n\nfunction planColumns(gen: Gen, plans: Array<[string, string, string[], boolean]>): Node {\n return {\n id: gen('columns'),\n type: 'columns',\n props: { columns: plans.length, gap: '16px' },\n styles: {\n base: {\n display: 'grid',\n gridTemplateColumns: `repeat(${plans.length}, minmax(0, 1fr))`,\n gap: '16px',\n },\n mobile: { gridTemplateColumns: 'repeat(1, minmax(0, 1fr))' },\n },\n children: plans.map(([name, price, features, highlighted]) =>\n planCard(gen, name, price, features, highlighted),\n ),\n };\n}\n\n/**\n * Sales / funnel section blocks (STORA-549) built on the Epic 60 conversion\n * components. Every tree is valid under `validateDocument` with `strictChildPolicy`.\n */\nexport const SALES_STARTER_BLOCKS: BlockDefinition[] = [\n {\n id: 'sales-faq',\n name: 'FAQ',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Frequently asked questions accordion with FAQPage structured data for SEO',\n icon: 'chevron-down',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n ...sectionHeading(\n gen,\n 'Frequently Asked Questions',\n 'Everything you need to know before you buy.',\n ),\n {\n id: gen('accordion'),\n type: 'accordion',\n props: { allowMultiple: false, defaultOpenIndex: 0, icon: 'chevron', faqSchema: true },\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n borderTop: '1px solid #e2e8f0',\n },\n },\n children: [\n faqItem(\n gen,\n 'What exactly do I get?',\n 'Instant access to the full program, all bonuses, and every future update.',\n ),\n faqItem(\n gen,\n 'How long do I have access?',\n 'Lifetime access — learn at your own pace, on any device.',\n ),\n faqItem(\n gen,\n 'Is there a money-back guarantee?',\n 'Yes. If you are not satisfied within 30 days, we refund you in full.',\n ),\n faqItem(\n gen,\n 'How do I pay?',\n 'We accept cards, bank transfer, and e-wallets through a secure checkout.',\n ),\n ],\n },\n ],\n {},\n '760px',\n ),\n },\n {\n id: 'sales-testimonials',\n name: 'Testimonials Carousel',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Customer testimonial slider with star ratings',\n icon: 'star',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n ...sectionHeading(gen, 'What Our Customers Say'),\n {\n id: gen('carousel'),\n type: 'carousel',\n props: {\n autoplay: true,\n interval: 6000,\n loop: true,\n showDots: true,\n showArrows: true,\n ariaLabel: 'Testimonials',\n },\n styles: {\n base: {\n position: 'relative',\n width: '100%',\n overflow: 'hidden',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n },\n },\n children: [\n testimonialSlide(\n gen,\n 'This completely changed how I run my business. Worth every cent.',\n 'Sarah K.',\n 'Founder',\n 5,\n ),\n testimonialSlide(\n gen,\n 'Clear, practical, and easy to follow. I saw results in the first week.',\n 'Budi S.',\n 'Marketing Lead',\n 4.5,\n ),\n testimonialSlide(\n gen,\n 'The support team is amazing and the material is top-notch.',\n 'Aisha R.',\n 'Freelancer',\n 5,\n ),\n ],\n },\n ],\n { base: { backgroundColor: '#ffffff' } },\n '760px',\n ),\n },\n {\n id: 'sales-countdown-banner',\n name: 'Countdown Banner',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Limited-time offer banner with an evergreen countdown timer and CTA',\n icon: 'clock',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n ...sectionHeading(gen, 'Special Launch Price Ends Soon', undefined, '#ffffff'),\n {\n id: gen('countdown'),\n type: 'countdown',\n props: {\n mode: 'evergreen',\n durationMinutes: 30,\n format: 'd h m s',\n labelDays: 'Days',\n labelHours: 'Hours',\n labelMinutes: 'Minutes',\n labelSeconds: 'Seconds',\n expireBehavior: 'text',\n expiredText: 'The special price has ended.',\n storage: 'session',\n ariaLabel: 'Offer ends in',\n },\n styles: {\n base: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '16px',\n fontSize: '36px',\n fontWeight: '800',\n color: '#ffffff',\n fontVariantNumeric: 'tabular-nums',\n },\n mobile: { fontSize: '28px', gap: '8px' },\n },\n },\n {\n id: gen('button'),\n type: 'button',\n props: { label: 'Claim the Offer', href: '#checkout' },\n styles: {\n base: {\n alignSelf: 'center',\n backgroundColor: '#f59e0b',\n color: '#0f172a',\n padding: '14px 32px',\n borderRadius: '9999px',\n fontSize: '16px',\n fontWeight: '700',\n },\n },\n },\n ],\n { base: { backgroundColor: '#0f172a' } },\n ),\n },\n {\n id: 'sales-guarantee',\n name: 'Money-Back Guarantee',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Risk-reversal guarantee section with shield icon',\n icon: 'badge',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n {\n id: gen('flex'),\n type: 'flex',\n styles: {\n base: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '24px',\n padding: '32px',\n backgroundColor: '#f0fdf4',\n border: '2px dashed #16a34a',\n borderRadius: '16px',\n },\n mobile: { flexDirection: 'column', textAlign: 'center', padding: '24px' },\n },\n children: [\n {\n id: gen('icon'),\n type: 'icon',\n props: { name: 'shield-check', size: 64, color: '#16a34a', ariaLabel: 'Guarantee' },\n },\n {\n id: gen('flex'),\n type: 'flex',\n styles: { base: { display: 'flex', flexDirection: 'column', gap: '8px' } },\n children: [\n {\n id: gen('heading'),\n type: 'heading',\n props: { text: '30-Day Money-Back Guarantee', level: 3 },\n styles: {\n base: { fontSize: '22px', fontWeight: '800', color: '#14532d', margin: '0' },\n },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: {\n text: 'Try it risk-free. If it is not right for you, email us within 30 days and we will refund every cent — no questions asked.',\n },\n styles: {\n base: { fontSize: '15px', color: '#166534', margin: '0', lineHeight: '1.6' },\n },\n },\n ],\n },\n ],\n },\n ],\n {},\n '760px',\n ),\n },\n {\n id: 'sales-trust-badges',\n name: 'Trust Badges',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Row of trust signals: secure payment, guarantee, support, and delivery',\n icon: 'grid',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(\n gen,\n [\n {\n id: gen('grid'),\n type: 'grid',\n styles: {\n base: {\n display: 'grid',\n gridTemplateColumns: 'repeat(4, minmax(0, 1fr))',\n gap: '16px',\n },\n mobile: { gridTemplateColumns: 'repeat(2, minmax(0, 1fr))' },\n },\n children: [\n badgeItem(gen, 'lock', 'Secure Payment'),\n badgeItem(gen, 'shield-check', 'Money-Back Guarantee'),\n badgeItem(gen, 'headphones', '24/7 Support'),\n badgeItem(gen, 'zap', 'Instant Access'),\n ],\n },\n {\n id: gen('divider'),\n type: 'divider',\n props: { lineStyle: 'solid', thickness: 1, color: '#e2e8f0', label: '' },\n },\n {\n id: gen('paragraph'),\n type: 'paragraph',\n props: { text: 'Trusted by 10,000+ customers.' },\n styles: {\n base: { fontSize: '14px', color: '#64748b', textAlign: 'center', margin: '0' },\n },\n },\n ],\n { base: { paddingTop: '32px', paddingBottom: '32px' } },\n ),\n },\n {\n id: 'sales-plan-comparison',\n name: 'Plan Comparison',\n category: SALES_CATEGORY,\n categoryLabel: SALES_CATEGORY_LABEL,\n description: 'Monthly/yearly tabs comparing pricing plans side by side',\n icon: 'columns',\n createNodeTree: (gen = defaultGenId) =>\n sectionShell(gen, [\n ...sectionHeading(gen, 'Choose Your Plan', 'Switch between monthly and yearly billing.'),\n {\n id: gen('tabs'),\n type: 'tabs',\n props: { activeIndex: 0, ariaLabel: 'Billing period' },\n styles: { base: { display: 'flex', flexDirection: 'column', width: '100%' } },\n children: [\n {\n id: gen('tab-panel'),\n type: 'tab-panel',\n props: { label: 'Monthly' },\n styles: { base: { paddingTop: '24px' } },\n children: [\n planColumns(gen, [\n ['Basic', '$19 / mo', ['1 project', 'Email support', 'Core features'], false],\n [\n 'Pro',\n '$49 / mo',\n ['Unlimited projects', 'Priority support', 'All features'],\n true,\n ],\n ]),\n ],\n },\n {\n id: gen('tab-panel'),\n type: 'tab-panel',\n props: { label: 'Yearly' },\n styles: { base: { paddingTop: '24px' } },\n children: [\n planColumns(gen, [\n [\n 'Basic',\n '$190 / yr',\n ['1 project', 'Email support', 'Core features', '2 months free'],\n false,\n ],\n [\n 'Pro',\n '$490 / yr',\n ['Unlimited projects', 'Priority support', 'All features', '2 months free'],\n true,\n ],\n ]),\n ],\n },\n ],\n },\n {\n id: gen('spacer'),\n type: 'spacer',\n styles: { base: { width: '100%', height: '16px' }, mobile: { height: '8px' } },\n },\n ]),\n },\n];\n"],"mappings":"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","names":[]}