@pithyjs/ui-kit 0.1.0-beta.0

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 (417) hide show
  1. package/LICENSE +21 -0
  2. package/dist/animation/animate-in.d.ts +35 -0
  3. package/dist/animation/animate-in.d.ts.map +1 -0
  4. package/dist/animation/animate-in.js +71 -0
  5. package/dist/animation/animate-in.js.map +1 -0
  6. package/dist/atoms/actions/_icon-control.scss +53 -0
  7. package/dist/atoms/actions/button/Button.d.ts +93 -0
  8. package/dist/atoms/actions/button/Button.d.ts.map +1 -0
  9. package/dist/atoms/actions/button/Button.js +332 -0
  10. package/dist/atoms/actions/button/Button.js.map +1 -0
  11. package/dist/atoms/actions/button/button.scss +342 -0
  12. package/dist/atoms/actions/icon-button/IconButton.d.ts +47 -0
  13. package/dist/atoms/actions/icon-button/IconButton.d.ts.map +1 -0
  14. package/dist/atoms/actions/icon-button/IconButton.js +81 -0
  15. package/dist/atoms/actions/icon-button/IconButton.js.map +1 -0
  16. package/dist/atoms/actions/icon-button/icon-button.scss +20 -0
  17. package/dist/atoms/actions/icon-group/IconGroup.d.ts +60 -0
  18. package/dist/atoms/actions/icon-group/IconGroup.d.ts.map +1 -0
  19. package/dist/atoms/actions/icon-group/IconGroup.js +191 -0
  20. package/dist/atoms/actions/icon-group/IconGroup.js.map +1 -0
  21. package/dist/atoms/actions/icon-group/icon-group.scss +36 -0
  22. package/dist/atoms/actions/segmented-control/SegmentedControl.d.ts +49 -0
  23. package/dist/atoms/actions/segmented-control/SegmentedControl.d.ts.map +1 -0
  24. package/dist/atoms/actions/segmented-control/SegmentedControl.js +107 -0
  25. package/dist/atoms/actions/segmented-control/SegmentedControl.js.map +1 -0
  26. package/dist/atoms/actions/segmented-control/segmented-control.scss +90 -0
  27. package/dist/atoms/content/_mixins.scss +79 -0
  28. package/dist/atoms/content/action-tile/ActionTile.d.ts +27 -0
  29. package/dist/atoms/content/action-tile/ActionTile.d.ts.map +1 -0
  30. package/dist/atoms/content/action-tile/ActionTile.js +98 -0
  31. package/dist/atoms/content/action-tile/ActionTile.js.map +1 -0
  32. package/dist/atoms/content/action-tile/action-tile.scss +150 -0
  33. package/dist/atoms/content/badge/Badge.d.ts +57 -0
  34. package/dist/atoms/content/badge/Badge.d.ts.map +1 -0
  35. package/dist/atoms/content/badge/Badge.js +177 -0
  36. package/dist/atoms/content/badge/Badge.js.map +1 -0
  37. package/dist/atoms/content/badge/badge.scss +198 -0
  38. package/dist/atoms/content/heading/Heading.d.ts +53 -0
  39. package/dist/atoms/content/heading/Heading.d.ts.map +1 -0
  40. package/dist/atoms/content/heading/Heading.js +142 -0
  41. package/dist/atoms/content/heading/Heading.js.map +1 -0
  42. package/dist/atoms/content/heading/heading.scss +43 -0
  43. package/dist/atoms/content/icon/Icon.d.ts +68 -0
  44. package/dist/atoms/content/icon/Icon.d.ts.map +1 -0
  45. package/dist/atoms/content/icon/Icon.js +137 -0
  46. package/dist/atoms/content/icon/Icon.js.map +1 -0
  47. package/dist/atoms/content/icon/icon.scss +66 -0
  48. package/dist/atoms/content/icon/resolveIconSvg.d.ts +21 -0
  49. package/dist/atoms/content/icon/resolveIconSvg.d.ts.map +1 -0
  50. package/dist/atoms/content/icon/resolveIconSvg.js +73 -0
  51. package/dist/atoms/content/icon/resolveIconSvg.js.map +1 -0
  52. package/dist/atoms/content/image/Image.d.ts +81 -0
  53. package/dist/atoms/content/image/Image.d.ts.map +1 -0
  54. package/dist/atoms/content/image/Image.js +293 -0
  55. package/dist/atoms/content/image/Image.js.map +1 -0
  56. package/dist/atoms/content/image/image.scss +77 -0
  57. package/dist/atoms/content/text/Text.d.ts +58 -0
  58. package/dist/atoms/content/text/Text.d.ts.map +1 -0
  59. package/dist/atoms/content/text/Text.js +158 -0
  60. package/dist/atoms/content/text/Text.js.map +1 -0
  61. package/dist/atoms/content/text/text.scss +98 -0
  62. package/dist/atoms/content/tile/Tile.d.ts +66 -0
  63. package/dist/atoms/content/tile/Tile.d.ts.map +1 -0
  64. package/dist/atoms/content/tile/Tile.js +125 -0
  65. package/dist/atoms/content/tile/Tile.js.map +1 -0
  66. package/dist/atoms/content/tile/tile.scss +122 -0
  67. package/dist/atoms/feedback/tooltip/Tooltip.d.ts +44 -0
  68. package/dist/atoms/feedback/tooltip/Tooltip.d.ts.map +1 -0
  69. package/dist/atoms/feedback/tooltip/Tooltip.js +121 -0
  70. package/dist/atoms/feedback/tooltip/Tooltip.js.map +1 -0
  71. package/dist/atoms/feedback/tooltip/tooltip.scss +96 -0
  72. package/dist/atoms/forms/checkbox/Checkbox.d.ts +49 -0
  73. package/dist/atoms/forms/checkbox/Checkbox.d.ts.map +1 -0
  74. package/dist/atoms/forms/checkbox/Checkbox.js +269 -0
  75. package/dist/atoms/forms/checkbox/Checkbox.js.map +1 -0
  76. package/dist/atoms/forms/checkbox/CheckboxGroup.d.ts +50 -0
  77. package/dist/atoms/forms/checkbox/CheckboxGroup.d.ts.map +1 -0
  78. package/dist/atoms/forms/checkbox/CheckboxGroup.js +132 -0
  79. package/dist/atoms/forms/checkbox/CheckboxGroup.js.map +1 -0
  80. package/dist/atoms/forms/checkbox/checkbox.scss +506 -0
  81. package/dist/atoms/forms/file-picker/FilePicker.d.ts +23 -0
  82. package/dist/atoms/forms/file-picker/FilePicker.d.ts.map +1 -0
  83. package/dist/atoms/forms/file-picker/FilePicker.js +103 -0
  84. package/dist/atoms/forms/file-picker/FilePicker.js.map +1 -0
  85. package/dist/atoms/forms/file-picker/file-picker.scss +84 -0
  86. package/dist/atoms/forms/form-field/FormField.d.ts +39 -0
  87. package/dist/atoms/forms/form-field/FormField.d.ts.map +1 -0
  88. package/dist/atoms/forms/form-field/FormField.js +139 -0
  89. package/dist/atoms/forms/form-field/FormField.js.map +1 -0
  90. package/dist/atoms/forms/form-field/form-field.scss +46 -0
  91. package/dist/atoms/forms/input/Input.d.ts +81 -0
  92. package/dist/atoms/forms/input/Input.d.ts.map +1 -0
  93. package/dist/atoms/forms/input/Input.js +417 -0
  94. package/dist/atoms/forms/input/Input.js.map +1 -0
  95. package/dist/atoms/forms/input/input.scss +547 -0
  96. package/dist/atoms/forms/radio/Radio.d.ts +54 -0
  97. package/dist/atoms/forms/radio/Radio.d.ts.map +1 -0
  98. package/dist/atoms/forms/radio/Radio.js +278 -0
  99. package/dist/atoms/forms/radio/Radio.js.map +1 -0
  100. package/dist/atoms/forms/radio/RadioGroup.d.ts +54 -0
  101. package/dist/atoms/forms/radio/RadioGroup.d.ts.map +1 -0
  102. package/dist/atoms/forms/radio/RadioGroup.js +137 -0
  103. package/dist/atoms/forms/radio/RadioGroup.js.map +1 -0
  104. package/dist/atoms/forms/radio/radio.scss +459 -0
  105. package/dist/atoms/forms/select/Select.d.ts +57 -0
  106. package/dist/atoms/forms/select/Select.d.ts.map +1 -0
  107. package/dist/atoms/forms/select/Select.js +457 -0
  108. package/dist/atoms/forms/select/Select.js.map +1 -0
  109. package/dist/atoms/forms/select/select-dropdown.d.ts +49 -0
  110. package/dist/atoms/forms/select/select-dropdown.d.ts.map +1 -0
  111. package/dist/atoms/forms/select/select-dropdown.js +305 -0
  112. package/dist/atoms/forms/select/select-dropdown.js.map +1 -0
  113. package/dist/atoms/forms/select/select-keyboard.d.ts +14 -0
  114. package/dist/atoms/forms/select/select-keyboard.d.ts.map +1 -0
  115. package/dist/atoms/forms/select/select-keyboard.js +182 -0
  116. package/dist/atoms/forms/select/select-keyboard.js.map +1 -0
  117. package/dist/atoms/forms/select/select.scss +630 -0
  118. package/dist/atoms/forms/textarea/Textarea.d.ts +69 -0
  119. package/dist/atoms/forms/textarea/Textarea.d.ts.map +1 -0
  120. package/dist/atoms/forms/textarea/Textarea.js +394 -0
  121. package/dist/atoms/forms/textarea/Textarea.js.map +1 -0
  122. package/dist/atoms/forms/textarea/textarea.scss +486 -0
  123. package/dist/atoms/forms/toggle/Toggle.d.ts +47 -0
  124. package/dist/atoms/forms/toggle/Toggle.d.ts.map +1 -0
  125. package/dist/atoms/forms/toggle/Toggle.js +243 -0
  126. package/dist/atoms/forms/toggle/Toggle.js.map +1 -0
  127. package/dist/atoms/forms/toggle/toggle.scss +561 -0
  128. package/dist/compiler.d.ts +7 -0
  129. package/dist/compiler.d.ts.map +1 -0
  130. package/dist/compiler.js +18 -0
  131. package/dist/compiler.js.map +1 -0
  132. package/dist/icons/index.d.ts +14 -0
  133. package/dist/icons/index.d.ts.map +1 -0
  134. package/dist/icons/index.js +14 -0
  135. package/dist/icons/index.js.map +1 -0
  136. package/dist/icons/registry.d.ts +65 -0
  137. package/dist/icons/registry.d.ts.map +1 -0
  138. package/dist/icons/registry.js +126 -0
  139. package/dist/icons/registry.js.map +1 -0
  140. package/dist/index.d.ts +55 -0
  141. package/dist/index.d.ts.map +1 -0
  142. package/dist/index.js +64 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/layout/Grid.d.ts +78 -0
  145. package/dist/layout/Grid.d.ts.map +1 -0
  146. package/dist/layout/Grid.js +272 -0
  147. package/dist/layout/Grid.js.map +1 -0
  148. package/dist/layout/GridItem.d.ts +52 -0
  149. package/dist/layout/GridItem.d.ts.map +1 -0
  150. package/dist/layout/GridItem.js +99 -0
  151. package/dist/layout/GridItem.js.map +1 -0
  152. package/dist/layout/PageSection.d.ts +43 -0
  153. package/dist/layout/PageSection.d.ts.map +1 -0
  154. package/dist/layout/PageSection.js +75 -0
  155. package/dist/layout/PageSection.js.map +1 -0
  156. package/dist/layout/SmartContainer.d.ts +66 -0
  157. package/dist/layout/SmartContainer.d.ts.map +1 -0
  158. package/dist/layout/SmartContainer.js +194 -0
  159. package/dist/layout/SmartContainer.js.map +1 -0
  160. package/dist/layout/Stack.d.ts +65 -0
  161. package/dist/layout/Stack.d.ts.map +1 -0
  162. package/dist/layout/Stack.js +114 -0
  163. package/dist/layout/Stack.js.map +1 -0
  164. package/dist/organisms/content/Card.d.ts +93 -0
  165. package/dist/organisms/content/Card.d.ts.map +1 -0
  166. package/dist/organisms/content/Card.js +353 -0
  167. package/dist/organisms/content/Card.js.map +1 -0
  168. package/dist/organisms/content/_card-horizontal.scss +88 -0
  169. package/dist/organisms/content/_card-link.scss +49 -0
  170. package/dist/organisms/content/_card-overlay.scss +91 -0
  171. package/dist/organisms/content/_card-root.scss +99 -0
  172. package/dist/organisms/content/_card-slots.scss +143 -0
  173. package/dist/organisms/content/_card-states.scss +166 -0
  174. package/dist/organisms/content/_card-tokens.scss +22 -0
  175. package/dist/organisms/content/_card-variants.scss +31 -0
  176. package/dist/organisms/content/card.scss +15 -0
  177. package/dist/organisms/feedback/Modal.d.ts +39 -0
  178. package/dist/organisms/feedback/Modal.d.ts.map +1 -0
  179. package/dist/organisms/feedback/Modal.js +120 -0
  180. package/dist/organisms/feedback/Modal.js.map +1 -0
  181. package/dist/organisms/feedback/Popover.d.ts +30 -0
  182. package/dist/organisms/feedback/Popover.d.ts.map +1 -0
  183. package/dist/organisms/feedback/Popover.js +151 -0
  184. package/dist/organisms/feedback/Popover.js.map +1 -0
  185. package/dist/organisms/feedback/modal.scss +66 -0
  186. package/dist/organisms/feedback/popover.scss +27 -0
  187. package/dist/organisms/forms/DynamicForm.d.ts +118 -0
  188. package/dist/organisms/forms/DynamicForm.d.ts.map +1 -0
  189. package/dist/organisms/forms/DynamicForm.js +546 -0
  190. package/dist/organisms/forms/DynamicForm.js.map +1 -0
  191. package/dist/organisms/forms/Form.d.ts +62 -0
  192. package/dist/organisms/forms/Form.d.ts.map +1 -0
  193. package/dist/organisms/forms/Form.js +131 -0
  194. package/dist/organisms/forms/Form.js.map +1 -0
  195. package/dist/organisms/forms/dynamic-form.scss +91 -0
  196. package/dist/organisms/forms/form-helpers.d.ts +21 -0
  197. package/dist/organisms/forms/form-helpers.d.ts.map +1 -0
  198. package/dist/organisms/forms/form-helpers.js +57 -0
  199. package/dist/organisms/forms/form-helpers.js.map +1 -0
  200. package/dist/organisms/forms/form-state.d.ts +66 -0
  201. package/dist/organisms/forms/form-state.d.ts.map +1 -0
  202. package/dist/organisms/forms/form-state.js +156 -0
  203. package/dist/organisms/forms/form-state.js.map +1 -0
  204. package/dist/organisms/forms/form.scss +23 -0
  205. package/dist/organisms/forms/validation.d.ts +32 -0
  206. package/dist/organisms/forms/validation.d.ts.map +1 -0
  207. package/dist/organisms/forms/validation.js +118 -0
  208. package/dist/organisms/forms/validation.js.map +1 -0
  209. package/dist/organisms/navigation/Navbar.d.ts +66 -0
  210. package/dist/organisms/navigation/Navbar.d.ts.map +1 -0
  211. package/dist/organisms/navigation/Navbar.js +881 -0
  212. package/dist/organisms/navigation/Navbar.js.map +1 -0
  213. package/dist/organisms/navigation/_navbar-announcement.scss +62 -0
  214. package/dist/organisms/navigation/_navbar-brand.scss +69 -0
  215. package/dist/organisms/navigation/_navbar-container.scss +37 -0
  216. package/dist/organisms/navigation/_navbar-desktop.scss +116 -0
  217. package/dist/organisms/navigation/_navbar-drawer.scss +97 -0
  218. package/dist/organisms/navigation/_navbar-links.scss +143 -0
  219. package/dist/organisms/navigation/_navbar-menu.scss +193 -0
  220. package/dist/organisms/navigation/_navbar-root.scss +107 -0
  221. package/dist/organisms/navigation/_navbar-search.scss +83 -0
  222. package/dist/organisms/navigation/_navbar-toggle.scss +91 -0
  223. package/dist/organisms/navigation/_navbar-tokens.scss +15 -0
  224. package/dist/organisms/navigation/navbar.scss +17 -0
  225. package/dist/registry/categories.d.ts +6 -0
  226. package/dist/registry/categories.d.ts.map +1 -0
  227. package/dist/registry/categories.js +13 -0
  228. package/dist/registry/categories.js.map +1 -0
  229. package/dist/registry/components.d.ts +5 -0
  230. package/dist/registry/components.d.ts.map +1 -0
  231. package/dist/registry/components.js +95 -0
  232. package/dist/registry/components.js.map +1 -0
  233. package/dist/registry/index.d.ts +59 -0
  234. package/dist/registry/index.d.ts.map +1 -0
  235. package/dist/registry/index.js +79 -0
  236. package/dist/registry/index.js.map +1 -0
  237. package/dist/registry/levels.d.ts +6 -0
  238. package/dist/registry/levels.d.ts.map +1 -0
  239. package/dist/registry/levels.js +9 -0
  240. package/dist/registry/levels.js.map +1 -0
  241. package/dist/registry/registry-meta-types.d.ts +67 -0
  242. package/dist/registry/registry-meta-types.d.ts.map +1 -0
  243. package/dist/registry/registry-meta-types.js +6 -0
  244. package/dist/registry/registry-meta-types.js.map +1 -0
  245. package/dist/registry/registry-meta.d.ts +5 -0
  246. package/dist/registry/registry-meta.d.ts.map +1 -0
  247. package/dist/registry/registry-meta.js +731 -0
  248. package/dist/registry/registry-meta.js.map +1 -0
  249. package/dist/registry/renderer.d.ts +69 -0
  250. package/dist/registry/renderer.d.ts.map +1 -0
  251. package/dist/registry/renderer.js +311 -0
  252. package/dist/registry/renderer.js.map +1 -0
  253. package/dist/sections/_section-base.scss +204 -0
  254. package/dist/sections/contact/ContactSection.d.ts +55 -0
  255. package/dist/sections/contact/ContactSection.d.ts.map +1 -0
  256. package/dist/sections/contact/ContactSection.js +142 -0
  257. package/dist/sections/contact/ContactSection.js.map +1 -0
  258. package/dist/sections/contact/contact-section.scss +142 -0
  259. package/dist/sections/cta/CTASection.d.ts +52 -0
  260. package/dist/sections/cta/CTASection.d.ts.map +1 -0
  261. package/dist/sections/cta/CTASection.js +130 -0
  262. package/dist/sections/cta/CTASection.js.map +1 -0
  263. package/dist/sections/cta/cta-section.scss +131 -0
  264. package/dist/sections/entrance.d.ts +29 -0
  265. package/dist/sections/entrance.d.ts.map +1 -0
  266. package/dist/sections/entrance.js +69 -0
  267. package/dist/sections/entrance.js.map +1 -0
  268. package/dist/sections/features/FeaturesSection.d.ts +54 -0
  269. package/dist/sections/features/FeaturesSection.d.ts.map +1 -0
  270. package/dist/sections/features/FeaturesSection.js +139 -0
  271. package/dist/sections/features/FeaturesSection.js.map +1 -0
  272. package/dist/sections/features/features-section.scss +140 -0
  273. package/dist/sections/footer/FooterSection.d.ts +53 -0
  274. package/dist/sections/footer/FooterSection.d.ts.map +1 -0
  275. package/dist/sections/footer/FooterSection.js +147 -0
  276. package/dist/sections/footer/FooterSection.js.map +1 -0
  277. package/dist/sections/footer/footer-section.scss +131 -0
  278. package/dist/sections/hero/HeroSection.d.ts +66 -0
  279. package/dist/sections/hero/HeroSection.d.ts.map +1 -0
  280. package/dist/sections/hero/HeroSection.js +156 -0
  281. package/dist/sections/hero/HeroSection.js.map +1 -0
  282. package/dist/sections/hero/hero-section.scss +211 -0
  283. package/dist/shared/_form-animations.scss +283 -0
  284. package/dist/shared/_media-fit.scss +63 -0
  285. package/dist/shared/_mixins.scss +69 -0
  286. package/dist/shared/_tokens.scss +116 -0
  287. package/dist/shared/badge.d.ts +15 -0
  288. package/dist/shared/badge.d.ts.map +1 -0
  289. package/dist/shared/badge.js +15 -0
  290. package/dist/shared/badge.js.map +1 -0
  291. package/dist/shared/button.d.ts +22 -0
  292. package/dist/shared/button.d.ts.map +1 -0
  293. package/dist/shared/button.js +22 -0
  294. package/dist/shared/button.js.map +1 -0
  295. package/dist/shared/card.d.ts +21 -0
  296. package/dist/shared/card.d.ts.map +1 -0
  297. package/dist/shared/card.js +38 -0
  298. package/dist/shared/card.js.map +1 -0
  299. package/dist/shared/checkbox.d.ts +10 -0
  300. package/dist/shared/checkbox.d.ts.map +1 -0
  301. package/dist/shared/checkbox.js +28 -0
  302. package/dist/shared/checkbox.js.map +1 -0
  303. package/dist/shared/clickable.d.ts +34 -0
  304. package/dist/shared/clickable.d.ts.map +1 -0
  305. package/dist/shared/clickable.js +54 -0
  306. package/dist/shared/clickable.js.map +1 -0
  307. package/dist/shared/common.d.ts +31 -0
  308. package/dist/shared/common.d.ts.map +1 -0
  309. package/dist/shared/common.js +92 -0
  310. package/dist/shared/common.js.map +1 -0
  311. package/dist/shared/entrance-config.d.ts +46 -0
  312. package/dist/shared/entrance-config.d.ts.map +1 -0
  313. package/dist/shared/entrance-config.js +54 -0
  314. package/dist/shared/entrance-config.js.map +1 -0
  315. package/dist/shared/focusable.d.ts +8 -0
  316. package/dist/shared/focusable.d.ts.map +1 -0
  317. package/dist/shared/focusable.js +17 -0
  318. package/dist/shared/focusable.js.map +1 -0
  319. package/dist/shared/form-elements.d.ts +57 -0
  320. package/dist/shared/form-elements.d.ts.map +1 -0
  321. package/dist/shared/form-elements.js +95 -0
  322. package/dist/shared/form-elements.js.map +1 -0
  323. package/dist/shared/form-state.d.ts +52 -0
  324. package/dist/shared/form-state.d.ts.map +1 -0
  325. package/dist/shared/form-state.js +151 -0
  326. package/dist/shared/form-state.js.map +1 -0
  327. package/dist/shared/grid.d.ts +21 -0
  328. package/dist/shared/grid.d.ts.map +1 -0
  329. package/dist/shared/grid.js +187 -0
  330. package/dist/shared/grid.js.map +1 -0
  331. package/dist/shared/icon-slot.d.ts +22 -0
  332. package/dist/shared/icon-slot.d.ts.map +1 -0
  333. package/dist/shared/icon-slot.js +38 -0
  334. package/dist/shared/icon-slot.js.map +1 -0
  335. package/dist/shared/icon.d.ts +17 -0
  336. package/dist/shared/icon.d.ts.map +1 -0
  337. package/dist/shared/icon.js +18 -0
  338. package/dist/shared/icon.js.map +1 -0
  339. package/dist/shared/icons.d.ts +19 -0
  340. package/dist/shared/icons.d.ts.map +1 -0
  341. package/dist/shared/icons.js +22 -0
  342. package/dist/shared/icons.js.map +1 -0
  343. package/dist/shared/image.d.ts +35 -0
  344. package/dist/shared/image.d.ts.map +1 -0
  345. package/dist/shared/image.js +46 -0
  346. package/dist/shared/image.js.map +1 -0
  347. package/dist/shared/input.d.ts +12 -0
  348. package/dist/shared/input.d.ts.map +1 -0
  349. package/dist/shared/input.js +29 -0
  350. package/dist/shared/input.js.map +1 -0
  351. package/dist/shared/radio.d.ts +10 -0
  352. package/dist/shared/radio.d.ts.map +1 -0
  353. package/dist/shared/radio.js +29 -0
  354. package/dist/shared/radio.js.map +1 -0
  355. package/dist/shared/reconcile-list.d.ts +37 -0
  356. package/dist/shared/reconcile-list.d.ts.map +1 -0
  357. package/dist/shared/reconcile-list.js +95 -0
  358. package/dist/shared/reconcile-list.js.map +1 -0
  359. package/dist/shared/section.d.ts +23 -0
  360. package/dist/shared/section.d.ts.map +1 -0
  361. package/dist/shared/section.js +65 -0
  362. package/dist/shared/section.js.map +1 -0
  363. package/dist/shared/segmented.d.ts +17 -0
  364. package/dist/shared/segmented.d.ts.map +1 -0
  365. package/dist/shared/segmented.js +53 -0
  366. package/dist/shared/segmented.js.map +1 -0
  367. package/dist/shared/select.d.ts +18 -0
  368. package/dist/shared/select.d.ts.map +1 -0
  369. package/dist/shared/select.js +14 -0
  370. package/dist/shared/select.js.map +1 -0
  371. package/dist/shared/slots.d.ts +11 -0
  372. package/dist/shared/slots.d.ts.map +1 -0
  373. package/dist/shared/slots.js +33 -0
  374. package/dist/shared/slots.js.map +1 -0
  375. package/dist/shared/smart-container.d.ts +19 -0
  376. package/dist/shared/smart-container.d.ts.map +1 -0
  377. package/dist/shared/smart-container.js +29 -0
  378. package/dist/shared/smart-container.js.map +1 -0
  379. package/dist/shared/text.d.ts +29 -0
  380. package/dist/shared/text.d.ts.map +1 -0
  381. package/dist/shared/text.js +72 -0
  382. package/dist/shared/text.js.map +1 -0
  383. package/dist/shared/textarea.d.ts +6 -0
  384. package/dist/shared/textarea.d.ts.map +1 -0
  385. package/dist/shared/textarea.js +18 -0
  386. package/dist/shared/textarea.js.map +1 -0
  387. package/dist/shared/toggle.d.ts +6 -0
  388. package/dist/shared/toggle.d.ts.map +1 -0
  389. package/dist/shared/toggle.js +19 -0
  390. package/dist/shared/toggle.js.map +1 -0
  391. package/dist/shared/types.d.ts +41 -0
  392. package/dist/shared/types.d.ts.map +1 -0
  393. package/dist/shared/types.js +20 -0
  394. package/dist/shared/types.js.map +1 -0
  395. package/dist/structural/ErrorBoundary.d.ts +18 -0
  396. package/dist/structural/ErrorBoundary.d.ts.map +1 -0
  397. package/dist/structural/ErrorBoundary.js +119 -0
  398. package/dist/structural/ErrorBoundary.js.map +1 -0
  399. package/dist/structural/For.d.ts +37 -0
  400. package/dist/structural/For.d.ts.map +1 -0
  401. package/dist/structural/For.js +129 -0
  402. package/dist/structural/For.js.map +1 -0
  403. package/dist/structural/Lazy.d.ts +43 -0
  404. package/dist/structural/Lazy.d.ts.map +1 -0
  405. package/dist/structural/Lazy.js +47 -0
  406. package/dist/structural/Lazy.js.map +1 -0
  407. package/dist/structural/NavLink.d.ts +45 -0
  408. package/dist/structural/NavLink.d.ts.map +1 -0
  409. package/dist/structural/NavLink.js +37 -0
  410. package/dist/structural/NavLink.js.map +1 -0
  411. package/dist/structural/Show.d.ts +35 -0
  412. package/dist/structural/Show.d.ts.map +1 -0
  413. package/dist/structural/Show.js +34 -0
  414. package/dist/structural/Show.js.map +1 -0
  415. package/dist/structural/nav-link.scss +54 -0
  416. package/dist/styles/index.scss +58 -0
  417. package/package.json +64 -0
@@ -0,0 +1,731 @@
1
+ // THIS FILE IS GENERATED by packages/ui-kit/scripts/sync-registry.ts
2
+ // DO NOT EDIT by hand. Run `pnpm --filter @pithyjs/ui-kit sync-registry` to
3
+ // regenerate from PIDL specs in packages/pidl-catalog/specs/.
4
+ export { PROP_TABS, } from "./registry-meta-types";
5
+ export const REGISTRY_META = {
6
+ "ui.button": {
7
+ id: "ui.button",
8
+ name: "Button",
9
+ displayName: "Button",
10
+ level: "atom",
11
+ domain: "actions",
12
+ props: [
13
+ { name: "text", label: "Label", tab: "content", type: "string", placeholder: "Click me", reactive: true },
14
+ { name: "iconStart", label: "Leading icon", tab: "content", type: "icon", reactive: true },
15
+ { name: "iconEnd", label: "Trailing icon", tab: "content", type: "icon", reactive: true },
16
+ { name: "variant", label: "Variant", tab: "content", type: "enum", enum: ["solid", "outline", "ghost", "link"] },
17
+ { name: "color", label: "Color", tab: "content", type: "token-color", enum: ["primary", "secondary", "tertiary", "success", "info", "warning", "danger"] },
18
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
19
+ { name: "shape", label: "Shape", tab: "content", type: "enum", enum: ["none", "xs", "sm", "md", "lg", "xl"] },
20
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
21
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
22
+ { name: "type", label: "Type", tab: "settings", type: "enum", enum: ["button", "submit", "reset"] },
23
+ { name: "loadingText", label: "Loading text", tab: "settings", type: "string" },
24
+ { name: "fullWidth", label: "Full width", tab: "layout", type: "boolean" },
25
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["button", "a"] },
26
+ { name: "href", label: "Link URL", tab: "content", type: "string" },
27
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", type: "string", reactive: true },
28
+ ],
29
+ slots: [
30
+ { name: "default", displayName: "Content", accepts: ["ui.icon", "ui.text"] },
31
+ ],
32
+ },
33
+ "ui.icon-group": {
34
+ id: "ui.icon-group",
35
+ name: "IconGroup",
36
+ displayName: "Icon Group",
37
+ level: "atom",
38
+ domain: "actions",
39
+ props: [
40
+ { name: "items", label: "Items", tab: "content", required: true, type: "array", placeholder: [{ "value": "desktop", "icon": "desktop", "ariaLabel": "Desktop" }, { "value": "tablet", "icon": "tablet", "ariaLabel": "Tablet" }, { "value": "mobile", "icon": "mobile", "ariaLabel": "Mobile" }], itemSchema: { "value": { type: "string", required: true }, "icon": { type: "icon", required: true }, "ariaLabel": { type: "string", required: true } } },
41
+ { name: "value", label: "Value", tab: "content", required: true, type: "string" },
42
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", required: true, type: "string", placeholder: "View mode" },
43
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
44
+ { name: "iconSize", label: "Icon size", tab: "content", type: "enum", enum: ["xs", "sm", "md", "lg", "xl", "xxl"] },
45
+ ],
46
+ slots: [],
47
+ },
48
+ "ui.segmented-control": {
49
+ id: "ui.segmented-control",
50
+ name: "SegmentedControl",
51
+ displayName: "Segmented Control",
52
+ level: "atom",
53
+ domain: "actions",
54
+ props: [
55
+ { name: "items", label: "Items", tab: "content", required: true, type: "array", placeholder: [{ "value": "all", "label": "All" }, { "value": "active", "label": "Active" }, { "value": "archived", "label": "Archived" }], itemSchema: { "value": { type: "string", required: true }, "label": { type: "string", required: true } } },
56
+ { name: "value", label: "Value", tab: "content", required: true, type: "string" },
57
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", required: true, type: "string", placeholder: "Filter scope" },
58
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
59
+ ],
60
+ slots: [],
61
+ },
62
+ "ui.text": {
63
+ id: "ui.text",
64
+ name: "Text",
65
+ displayName: "Text",
66
+ level: "atom",
67
+ domain: "content",
68
+ props: [
69
+ { name: "text", label: "Text", tab: "content", type: "string", placeholder: "Body copy. Replace this with your own content.", multiline: true, reactive: true },
70
+ { name: "size", label: "Size", tab: "content", type: "token-font", enum: ["xs", "sm", "base", "lg", "xl", "2xl", "3xl", "4xl"] },
71
+ { name: "weight", label: "Weight", tab: "content", type: "enum", enum: ["thin", "light", "normal", "medium", "semibold", "bold", "extrabold"] },
72
+ { name: "color", label: "Color", tab: "content", type: "token-color", enum: ["text", "text-muted", "text-inverse", "primary", "secondary", "tertiary"] },
73
+ { name: "align", label: "Align", tab: "content", type: "enum", enum: ["start", "center", "end", "justify"] },
74
+ { name: "truncate", label: "Truncate", tab: "layout", type: "number" },
75
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["p", "span", "div", "small", "strong", "em", "s", "abbr", "time", "blockquote", "figcaption", "cite", "q", "mark", "code", "pre", "kbd", "samp"] },
76
+ { name: "title", label: "Title", tab: "settings", type: "string" },
77
+ { name: "datetime", label: "Datetime", tab: "settings", type: "string" },
78
+ ],
79
+ slots: [],
80
+ },
81
+ "ui.heading": {
82
+ id: "ui.heading",
83
+ name: "Heading",
84
+ displayName: "Heading",
85
+ level: "atom",
86
+ domain: "content",
87
+ props: [
88
+ { name: "text", label: "Text", tab: "content", type: "string", placeholder: "Your heading", reactive: true },
89
+ { name: "level", label: "Level", tab: "settings", type: "number", enum: [1, 2, 3, 4, 5, 6] },
90
+ { name: "size", label: "Size", tab: "content", type: "token-font", enum: ["xs", "sm", "base", "lg", "xl", "2xl", "3xl", "4xl"] },
91
+ { name: "weight", label: "Weight", tab: "content", type: "enum", enum: ["thin", "light", "normal", "medium", "semibold", "bold", "extrabold"] },
92
+ { name: "color", label: "Color", tab: "content", type: "token-color", enum: ["text", "text-muted", "text-inverse", "primary", "secondary", "tertiary"] },
93
+ { name: "align", label: "Align", tab: "content", type: "enum", enum: ["start", "center", "end", "justify"] },
94
+ { name: "truncate", label: "Truncate", tab: "layout", type: "number" },
95
+ ],
96
+ slots: [],
97
+ },
98
+ "ui.image": {
99
+ id: "ui.image",
100
+ name: "Image",
101
+ displayName: "Image",
102
+ level: "atom",
103
+ domain: "content",
104
+ props: [
105
+ { name: "src", label: "Image source", tab: "content", required: true, type: "image", placeholder: "https://placehold.co/600x400?text=Replace+me", reactive: true },
106
+ { name: "alt", label: "Alt text", tab: "content", required: true, type: "string", placeholder: "Replace this image and update the alt text", reactive: true, kind: "alt-text" },
107
+ { name: "width", label: "Width", tab: "layout", type: "number" },
108
+ { name: "height", label: "Height", tab: "layout", type: "number" },
109
+ { name: "loading", label: "Loading", tab: "settings", type: "enum", enum: ["lazy", "eager"] },
110
+ { name: "decoding", label: "Decoding", tab: "settings", type: "enum", enum: ["async", "sync", "auto"] },
111
+ { name: "fetchPriority", label: "Fetch priority", tab: "settings", type: "enum", enum: ["high", "low", "auto"] },
112
+ { name: "aspectRatio", label: "Aspect ratio", tab: "layout", type: "enum", enum: ["16/9", "4/3", "1/1", "3/2", "21/9", "3/4", "2/3", "9/16"] },
113
+ { name: "sizing", label: "Sizing", tab: "layout", type: "enum", enum: ["auto", "fill"] },
114
+ { name: "fit", label: "Fit", tab: "layout", type: "enum", enum: ["contain", "cover", "fill", "none", "scale-down"] },
115
+ { name: "sizes", label: "Sizes", tab: "settings", type: "string" },
116
+ { name: "srcset", label: "Srcset", tab: "settings", type: "string" },
117
+ { name: "sources", label: "Sources", tab: "settings", type: "array" },
118
+ { name: "rounded", label: "Rounded", tab: "effects", type: "boolean" },
119
+ ],
120
+ slots: [],
121
+ },
122
+ "ui.icon": {
123
+ id: "ui.icon",
124
+ name: "Icon",
125
+ displayName: "Icon",
126
+ level: "atom",
127
+ domain: "content",
128
+ props: [
129
+ { name: "name", label: "Icon name", tab: "content", type: "icon", reactive: true },
130
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["xs", "sm", "md", "lg", "xl", "xxl"] },
131
+ { name: "color", label: "Color", tab: "content", type: "token-color", enum: ["text", "text-muted", "text-inverse", "primary", "secondary", "tertiary", "success", "info", "warning", "danger"] },
132
+ { name: "decorative", label: "Decorative", tab: "settings", type: "boolean" },
133
+ { name: "label", label: "Label", tab: "settings", type: "string" },
134
+ ],
135
+ slots: [],
136
+ },
137
+ "ui.badge": {
138
+ id: "ui.badge",
139
+ name: "Badge",
140
+ displayName: "Badge",
141
+ level: "atom",
142
+ domain: "content",
143
+ props: [
144
+ { name: "text", label: "Text", tab: "content", type: "string", placeholder: "New", reactive: true },
145
+ { name: "iconStart", label: "Leading icon", tab: "content", type: "icon", reactive: true },
146
+ { name: "color", label: "Color", tab: "content", type: "token-color", enum: ["primary", "secondary", "tertiary", "success", "info", "warning", "danger"] },
147
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
148
+ { name: "variant", label: "Variant", tab: "content", type: "enum", enum: ["filled", "outline", "subtle"] },
149
+ { name: "dot", label: "Dot", tab: "content", type: "boolean" },
150
+ { name: "pulse", label: "Pulse", tab: "content", type: "boolean" },
151
+ { name: "label", label: "Label", tab: "content", type: "string" },
152
+ ],
153
+ slots: [],
154
+ },
155
+ "ui.tile": {
156
+ id: "ui.tile",
157
+ name: "Tile",
158
+ displayName: "Tile",
159
+ level: "atom",
160
+ domain: "content",
161
+ props: [
162
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Tile" },
163
+ { name: "selected", label: "Selected", tab: "content", type: "boolean" },
164
+ { name: "disabled", label: "Disabled", tab: "content", type: "boolean" },
165
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", type: "string" },
166
+ { name: "draggable", label: "Draggable", tab: "settings", type: "boolean" },
167
+ { name: "data", label: "Data", tab: "settings", type: "object" },
168
+ ],
169
+ slots: [
170
+ { name: "default", displayName: "Content" },
171
+ ],
172
+ },
173
+ "ui.action-tile": {
174
+ id: "ui.action-tile",
175
+ name: "ActionTile",
176
+ displayName: "Action Tile",
177
+ level: "atom",
178
+ domain: "content",
179
+ props: [
180
+ { name: "title", label: "Title", tab: "content", required: true, type: "string", placeholder: "Share Preview" },
181
+ { name: "description", label: "Description", tab: "content", type: "string", placeholder: "One self-contained HTML file" },
182
+ { name: "loading", label: "Loading", tab: "content", type: "boolean", reactive: true },
183
+ { name: "disabled", label: "Disabled", tab: "content", type: "boolean", reactive: true },
184
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", type: "string" },
185
+ ],
186
+ slots: [
187
+ { name: "default", displayName: "Icon" },
188
+ ],
189
+ },
190
+ "ui.input": {
191
+ id: "ui.input",
192
+ name: "Input",
193
+ displayName: "Input",
194
+ level: "atom",
195
+ domain: "forms",
196
+ props: [
197
+ { name: "type", label: "Type", tab: "content", type: "enum", enum: ["text", "email", "password", "number", "tel", "url"] },
198
+ { name: "id", label: "ID", tab: "settings", type: "string" },
199
+ { name: "name", label: "Name", tab: "settings", type: "string" },
200
+ { name: "value", label: "Value", tab: "content", type: "string", reactive: true },
201
+ { name: "placeholder", label: "Placeholder", tab: "content", type: "string" },
202
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
203
+ { name: "readonly", label: "Read-only", tab: "settings", type: "boolean" },
204
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
205
+ { name: "error", label: "Error", tab: "settings", type: "boolean" },
206
+ { name: "errorMessage", label: "Error message", tab: "settings", type: "string" },
207
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
208
+ { name: "success", label: "Success", tab: "settings", type: "boolean" },
209
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
210
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Email" },
211
+ { name: "floatingLabel", label: "Floating label", tab: "content", type: "boolean" },
212
+ { name: "autocomplete", label: "Autocomplete", tab: "settings", type: "string" },
213
+ { name: "maxLength", label: "Max length", tab: "content", type: "number" },
214
+ { name: "min", label: "Min", tab: "content", type: "number" },
215
+ { name: "max", label: "Max", tab: "content", type: "number" },
216
+ { name: "step", label: "Step", tab: "content", type: "number" },
217
+ { name: "clearable", label: "Clearable", tab: "content", type: "boolean" },
218
+ { name: "showPasswordToggle", label: "Show password toggle", tab: "content", type: "boolean" },
219
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
220
+ ],
221
+ slots: [
222
+ { name: "prefix", displayName: "Prefix", accepts: ["ui.icon", "ui.text"], max: 1 },
223
+ { name: "suffix", displayName: "Suffix", accepts: ["ui.icon", "ui.button"], max: 1 },
224
+ ],
225
+ },
226
+ "ui.select": {
227
+ id: "ui.select",
228
+ name: "Select",
229
+ displayName: "Select",
230
+ level: "atom",
231
+ domain: "forms",
232
+ props: [
233
+ { name: "options", label: "Options", tab: "content", required: true, type: "array", placeholder: [{ "value": "us", "label": "United States" }, { "value": "ca", "label": "Canada" }, { "value": "uk", "label": "United Kingdom" }], reactive: true, itemSchema: { "value": { type: "string", required: true }, "label": { type: "string", required: true }, "disabled": { type: "boolean" } } },
234
+ { name: "id", label: "ID", tab: "settings", type: "string" },
235
+ { name: "name", label: "Name", tab: "settings", type: "string" },
236
+ { name: "value", label: "Value", tab: "content", type: "string", reactive: true },
237
+ { name: "placeholder", label: "Placeholder", tab: "content", type: "string" },
238
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
239
+ { name: "readonly", label: "Read-only", tab: "settings", type: "boolean" },
240
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
241
+ { name: "error", label: "Error", tab: "settings", type: "boolean" },
242
+ { name: "errorMessage", label: "Error message", tab: "settings", type: "string" },
243
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
244
+ { name: "success", label: "Success", tab: "settings", type: "boolean" },
245
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
246
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Country" },
247
+ { name: "searchable", label: "Searchable", tab: "content", type: "boolean" },
248
+ { name: "clearable", label: "Clearable", tab: "content", type: "boolean" },
249
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
250
+ ],
251
+ slots: [],
252
+ },
253
+ "ui.textarea": {
254
+ id: "ui.textarea",
255
+ name: "Textarea",
256
+ displayName: "Textarea",
257
+ level: "atom",
258
+ domain: "forms",
259
+ props: [
260
+ { name: "id", label: "ID", tab: "settings", type: "string" },
261
+ { name: "name", label: "Name", tab: "settings", type: "string" },
262
+ { name: "value", label: "Value", tab: "content", type: "string", reactive: true },
263
+ { name: "placeholder", label: "Placeholder", tab: "content", type: "string" },
264
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
265
+ { name: "readonly", label: "Read-only", tab: "settings", type: "boolean" },
266
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
267
+ { name: "error", label: "Error", tab: "settings", type: "boolean" },
268
+ { name: "errorMessage", label: "Error message", tab: "settings", type: "string" },
269
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
270
+ { name: "success", label: "Success", tab: "settings", type: "boolean" },
271
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
272
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Message" },
273
+ { name: "floatingLabel", label: "Floating label", tab: "content", type: "boolean" },
274
+ { name: "autocomplete", label: "Autocomplete", tab: "settings", type: "string" },
275
+ { name: "maxLength", label: "Max length", tab: "content", type: "number" },
276
+ { name: "rows", label: "Rows", tab: "layout", type: "number" },
277
+ { name: "autoResize", label: "Auto resize", tab: "layout", type: "boolean" },
278
+ { name: "maxBlockSize", label: "Max block size", tab: "layout", type: "string" },
279
+ { name: "minBlockSize", label: "Min block size", tab: "layout", type: "string" },
280
+ { name: "clearable", label: "Clearable", tab: "content", type: "boolean" },
281
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
282
+ ],
283
+ slots: [],
284
+ },
285
+ "ui.checkbox": {
286
+ id: "ui.checkbox",
287
+ name: "Checkbox",
288
+ displayName: "Checkbox",
289
+ level: "atom",
290
+ domain: "forms",
291
+ props: [
292
+ { name: "id", label: "ID", tab: "settings", type: "string" },
293
+ { name: "name", label: "Name", tab: "settings", type: "string" },
294
+ { name: "value", label: "Value", tab: "settings", type: "string" },
295
+ { name: "checked", label: "Checked", tab: "settings", type: "boolean" },
296
+ { name: "indeterminate", label: "Indeterminate", tab: "settings", type: "boolean" },
297
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
298
+ { name: "readonly", label: "Read-only", tab: "settings", type: "boolean" },
299
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
300
+ { name: "error", label: "Error", tab: "settings", type: "boolean" },
301
+ { name: "errorMessage", label: "Error message", tab: "settings", type: "string" },
302
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
303
+ { name: "success", label: "Success", tab: "settings", type: "boolean" },
304
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
305
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Accept terms and conditions" },
306
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
307
+ ],
308
+ slots: [],
309
+ },
310
+ "ui.checkbox-group": {
311
+ id: "ui.checkbox-group",
312
+ name: "CheckboxGroup",
313
+ displayName: "Checkbox Group",
314
+ level: "atom",
315
+ domain: "forms",
316
+ props: [
317
+ { name: "id", label: "ID", tab: "settings", type: "string" },
318
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Pick your favorites" },
319
+ { name: "hideLabel", label: "Hide label", tab: "content", type: "boolean" },
320
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
321
+ { name: "errorMessage", label: "Error message", tab: "content", type: "string" },
322
+ { name: "error", label: "Error", tab: "content", type: "boolean" },
323
+ { name: "disabled", label: "Disabled", tab: "content", type: "boolean" },
324
+ ],
325
+ slots: [
326
+ { name: "default", displayName: "Checkboxes", accepts: ["ui.checkbox"] },
327
+ ],
328
+ },
329
+ "ui.radio": {
330
+ id: "ui.radio",
331
+ name: "Radio",
332
+ displayName: "Radio",
333
+ level: "atom",
334
+ domain: "forms",
335
+ props: [
336
+ { name: "id", label: "ID", tab: "settings", type: "string" },
337
+ { name: "name", label: "Name", tab: "settings", required: true, type: "string" },
338
+ { name: "value", label: "Value", tab: "settings", required: true, type: "string" },
339
+ { name: "checked", label: "Checked", tab: "settings", type: "boolean" },
340
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
341
+ { name: "readonly", label: "Read-only", tab: "settings", type: "boolean" },
342
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
343
+ { name: "error", label: "Error", tab: "settings", type: "boolean" },
344
+ { name: "errorMessage", label: "Error message", tab: "settings", type: "string" },
345
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
346
+ { name: "success", label: "Success", tab: "settings", type: "boolean" },
347
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
348
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Option label" },
349
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
350
+ ],
351
+ slots: [],
352
+ },
353
+ "ui.radio-group": {
354
+ id: "ui.radio-group",
355
+ name: "RadioGroup",
356
+ displayName: "Radio Group",
357
+ level: "atom",
358
+ domain: "forms",
359
+ props: [
360
+ { name: "id", label: "ID", tab: "settings", type: "string" },
361
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Pick one" },
362
+ { name: "hideLabel", label: "Hide label", tab: "content", type: "boolean" },
363
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
364
+ { name: "errorMessage", label: "Error message", tab: "content", type: "string" },
365
+ { name: "error", label: "Error", tab: "content", type: "boolean" },
366
+ { name: "disabled", label: "Disabled", tab: "content", type: "boolean" },
367
+ ],
368
+ slots: [
369
+ { name: "default", displayName: "Radios", accepts: ["ui.radio"] },
370
+ ],
371
+ },
372
+ "ui.toggle": {
373
+ id: "ui.toggle",
374
+ name: "Toggle",
375
+ displayName: "Toggle",
376
+ level: "atom",
377
+ domain: "forms",
378
+ props: [
379
+ { name: "id", label: "ID", tab: "settings", type: "string" },
380
+ { name: "name", label: "Name", tab: "settings", type: "string" },
381
+ { name: "value", label: "Value", tab: "settings", type: "string" },
382
+ { name: "checked", label: "Checked", tab: "settings", type: "boolean" },
383
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean" },
384
+ { name: "readonly", label: "Read-only", tab: "settings", type: "boolean" },
385
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
386
+ { name: "error", label: "Error", tab: "settings", type: "boolean" },
387
+ { name: "errorMessage", label: "Error message", tab: "settings", type: "string" },
388
+ { name: "helperText", label: "Helper text", tab: "content", type: "string" },
389
+ { name: "success", label: "Success", tab: "settings", type: "boolean" },
390
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
391
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Enable notifications" },
392
+ { name: "loading", label: "Loading", tab: "settings", type: "boolean" },
393
+ ],
394
+ slots: [],
395
+ },
396
+ "ui.file-picker": {
397
+ id: "ui.file-picker",
398
+ name: "FilePicker",
399
+ displayName: "File Picker",
400
+ level: "atom",
401
+ domain: "forms",
402
+ props: [
403
+ { name: "accept", label: "Accept", tab: "settings", type: "string", placeholder: "image/*" },
404
+ { name: "maxSizeBytes", label: "Max size (bytes)", tab: "settings", type: "number" },
405
+ { name: "showPreview", label: "Show preview", tab: "settings", type: "boolean" },
406
+ { name: "hint", label: "Hint", tab: "content", type: "string", placeholder: "Click or drag a file here" },
407
+ { name: "ariaLabel", label: "Accessible label", tab: "settings", type: "string" },
408
+ ],
409
+ slots: [],
410
+ },
411
+ "ui.form-field": {
412
+ id: "ui.form-field",
413
+ name: "FormField",
414
+ displayName: "Form Field",
415
+ level: "molecule",
416
+ domain: "forms",
417
+ props: [
418
+ { name: "label", label: "Label", tab: "content", required: true, type: "string", placeholder: "Field label" },
419
+ { name: "required", label: "Required", tab: "content", type: "boolean" },
420
+ { name: "inputId", label: "Input ID", tab: "settings", type: "string" },
421
+ { name: "size", label: "Size", tab: "content", type: "enum", enum: ["sm", "md", "lg"] },
422
+ ],
423
+ slots: [
424
+ { name: "default", displayName: "Content" },
425
+ ],
426
+ },
427
+ "ui.form": {
428
+ id: "ui.form",
429
+ name: "Form",
430
+ displayName: "Form",
431
+ level: "organism",
432
+ domain: "forms",
433
+ props: [
434
+ { name: "initialValues", label: "Initial values", tab: "content", type: "object" },
435
+ { name: "validateOn", label: "Validate on", tab: "settings", type: "enum", enum: ["change", "blur", "submit"] },
436
+ { name: "validationRules", label: "Validation rules", tab: "settings", type: "object" },
437
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", type: "string" },
438
+ { name: "ariaLabelledBy", label: "ARIA labelled by", tab: "settings", type: "string" },
439
+ ],
440
+ slots: [
441
+ { name: "default", displayName: "Form Fields" },
442
+ ],
443
+ },
444
+ "ui.dynamic-form": {
445
+ id: "ui.dynamic-form",
446
+ name: "DynamicForm",
447
+ displayName: "Dynamic Form",
448
+ level: "organism",
449
+ domain: "forms",
450
+ props: [
451
+ { name: "config", label: "Config", tab: "content", required: true, type: "object" },
452
+ { name: "columns", label: "Columns", tab: "layout", type: "number" },
453
+ { name: "validateOn", label: "Validate on", tab: "settings", type: "enum", enum: ["change", "blur", "submit"] },
454
+ { name: "action", label: "Action URL", tab: "settings", type: "string" },
455
+ { name: "method", label: "Method", tab: "settings", type: "enum", enum: ["GET", "POST"] },
456
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", type: "string" },
457
+ { name: "ariaLabelledBy", label: "ARIA labelled by", tab: "settings", type: "string" },
458
+ ],
459
+ slots: [],
460
+ },
461
+ "ui.card": {
462
+ id: "ui.card",
463
+ name: "Card",
464
+ displayName: "Card",
465
+ level: "organism",
466
+ domain: "content",
467
+ props: [
468
+ { name: "variant", label: "Variant", tab: "content", type: "enum", enum: ["default", "outlined", "elevated", "subtle", "ghost"] },
469
+ { name: "padding", label: "Padding", tab: "layout", type: "enum", enum: ["none", "sm", "md", "lg"] },
470
+ { name: "radius", label: "Radius", tab: "content", type: "enum", enum: ["none", "sm", "md", "lg"] },
471
+ { name: "orientation", label: "Orientation", tab: "layout", type: "enum", enum: ["vertical", "horizontal"] },
472
+ { name: "mediaAspect", label: "Media aspect", tab: "layout", type: "enum", enum: ["1/1", "4/3", "16/9", "3/2", "21/9"] },
473
+ { name: "mediaOverlay", label: "Media overlay", tab: "content", type: "boolean" },
474
+ { name: "clickable", label: "Clickable", tab: "content", type: "boolean" },
475
+ { name: "href", label: "Link URL", tab: "content", type: "string" },
476
+ { name: "linkLabel", label: "Link label", tab: "settings", type: "string" },
477
+ { name: "disabled", label: "Disabled", tab: "settings", type: "boolean", reactive: true },
478
+ { name: "selected", label: "Selected", tab: "settings", type: "boolean", reactive: true },
479
+ { name: "eyebrow", label: "Eyebrow", tab: "content", type: "string" },
480
+ { name: "ariaLabel", label: "ARIA label", tab: "settings", type: "string" },
481
+ { name: "ariaLabelledBy", label: "ARIA labelled by", tab: "settings", type: "string" },
482
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
483
+ ],
484
+ slots: [
485
+ { name: "media", displayName: "Media", accepts: ["ui.image", "ui.icon"], max: 1, media: "fill" },
486
+ { name: "header", displayName: "Header", accepts: ["ui.heading", "ui.text", "ui.badge"] },
487
+ { name: "default", displayName: "Body" },
488
+ { name: "footer", displayName: "Footer", accepts: ["ui.text", "ui.button", "ui.badge"] },
489
+ ],
490
+ },
491
+ "ui.modal": {
492
+ id: "ui.modal",
493
+ name: "Modal",
494
+ displayName: "Modal",
495
+ level: "organism",
496
+ domain: "feedback",
497
+ props: [
498
+ { name: "open", label: "Open", tab: "content", required: true, type: "boolean", reactive: true },
499
+ { name: "title", label: "Title", tab: "content", required: true, type: "string", placeholder: "Publish" },
500
+ { name: "titleId", label: "Title element id", tab: "settings", type: "string" },
501
+ { name: "dialogId", label: "Dialog id", tab: "settings", type: "string" },
502
+ { name: "closeOnBackdrop", label: "Close on backdrop click", tab: "settings", type: "boolean" },
503
+ { name: "closeOnEscape", label: "Close on Escape", tab: "settings", type: "boolean" },
504
+ ],
505
+ slots: [
506
+ { name: "default", displayName: "Content" },
507
+ ],
508
+ },
509
+ "ui.navbar": {
510
+ id: "ui.navbar",
511
+ name: "Navbar",
512
+ displayName: "Navbar",
513
+ level: "organism",
514
+ domain: "navigation",
515
+ props: [
516
+ { name: "label", label: "Label", tab: "settings", required: true, type: "string", placeholder: "Primary" },
517
+ { name: "brand", label: "Brand", tab: "content", type: "string", placeholder: "Your Brand" },
518
+ { name: "brandImageSrc", label: "Brand image source", tab: "content", type: "string" },
519
+ { name: "brandImageAlt", label: "Brand image alt", tab: "content", type: "string" },
520
+ { name: "brandHref", label: "Brand link", tab: "content", type: "string" },
521
+ { name: "items", label: "Items", tab: "content", type: "array", placeholder: [{ "label": "Features", "href": "/features" }, { "label": "Pricing", "href": "/pricing" }, { "label": "Docs", "href": "/docs" }], itemSchema: { "label": { type: "string", required: true }, "href": { type: "string", required: true }, "exactActive": { type: "boolean" }, "prefetch": { type: "enum", enum: ["none", "hover", "visible", "intent"] } } },
522
+ { name: "sticky", label: "Sticky", tab: "layout", type: "boolean" },
523
+ { name: "transparent", label: "Transparent", tab: "content", type: "boolean" },
524
+ { name: "density", label: "Density", tab: "layout", type: "enum", enum: ["comfortable", "compact"] },
525
+ { name: "skipToContentTarget", label: "Skip to content target", tab: "settings", type: "string" },
526
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
527
+ ],
528
+ slots: [
529
+ { name: "brand", displayName: "Brand", accepts: ["ui.image", "ui.text"], max: 1, media: "logo" },
530
+ { name: "actions", displayName: "Actions", accepts: ["ui.button", "ui.icon-group"] },
531
+ { name: "search", displayName: "Search", accepts: ["ui.input"], max: 1 },
532
+ { name: "announcement", displayName: "Announcement", max: 1 },
533
+ ],
534
+ },
535
+ "ui.stack": {
536
+ id: "ui.stack",
537
+ name: "Stack",
538
+ displayName: "Stack",
539
+ level: "atom",
540
+ domain: "layout",
541
+ props: [
542
+ { name: "direction", label: "Direction", tab: "layout", type: "enum", enum: ["vertical", "horizontal"] },
543
+ { name: "gap", label: "Gap", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
544
+ { name: "align", label: "Align", tab: "layout", type: "enum", enum: ["start", "center", "end", "stretch", "baseline"] },
545
+ { name: "wrap", label: "Wrap", tab: "layout", type: "boolean" },
546
+ { name: "reverse", label: "Reverse", tab: "layout", type: "boolean" },
547
+ { name: "minChildWidth", label: "Min child width", tab: "layout", type: "string" },
548
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["div", "section", "article", "aside", "header", "footer", "main", "nav", "ul", "ol", "fieldset"] },
549
+ ],
550
+ slots: [
551
+ { name: "default", displayName: "Content" },
552
+ ],
553
+ },
554
+ "ui.grid": {
555
+ id: "ui.grid",
556
+ name: "Grid",
557
+ displayName: "Grid",
558
+ level: "atom",
559
+ domain: "layout",
560
+ props: [
561
+ { name: "columns", label: "Columns", tab: "layout", type: "string" },
562
+ { name: "rows", label: "Rows", tab: "layout", type: "number" },
563
+ { name: "gap", label: "Gap", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
564
+ { name: "rowGap", label: "Row gap", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
565
+ { name: "colGap", label: "Column gap", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
566
+ { name: "align", label: "Align", tab: "layout", type: "enum", enum: ["start", "center", "end", "stretch", "baseline"] },
567
+ { name: "justify", label: "Justify", tab: "layout", type: "enum", enum: ["start", "end", "center", "between", "around", "evenly"] },
568
+ { name: "minColumnWidth", label: "Min column width", tab: "layout", type: "string" },
569
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["div", "section", "article", "aside", "ul", "ol"] },
570
+ ],
571
+ slots: [
572
+ { name: "default", displayName: "Content" },
573
+ ],
574
+ },
575
+ "ui.grid-item": {
576
+ id: "ui.grid-item",
577
+ name: "GridItem",
578
+ displayName: "Grid Item",
579
+ level: "atom",
580
+ domain: "layout",
581
+ props: [
582
+ { name: "span", label: "Span", tab: "layout", type: "string" },
583
+ { name: "start", label: "Column start", tab: "layout", type: "number" },
584
+ { name: "end", label: "Column end", tab: "layout", type: "number" },
585
+ { name: "rowSpan", label: "Row span", tab: "layout", type: "number" },
586
+ { name: "rowStart", label: "Row start", tab: "layout", type: "number" },
587
+ { name: "rowEnd", label: "Row end", tab: "layout", type: "number" },
588
+ { name: "placeSelf", label: "Place self", tab: "layout", type: "enum", enum: ["start", "center", "end", "stretch"] },
589
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["div", "section", "article", "aside", "li"] },
590
+ ],
591
+ slots: [
592
+ { name: "default", displayName: "Content" },
593
+ ],
594
+ },
595
+ "ui.smart-container": {
596
+ id: "ui.smart-container",
597
+ name: "SmartContainer",
598
+ displayName: "Smart Container",
599
+ level: "atom",
600
+ domain: "layout",
601
+ props: [
602
+ { name: "recipe", label: "Recipe", tab: "layout", type: "enum", enum: ["auto-grid", "stack-to-row", "row-wrap", "sidebar", "equal-cards"] },
603
+ { name: "minItem", label: "Min item", tab: "layout", type: "string" },
604
+ { name: "gap", label: "Gap", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
605
+ { name: "density", label: "Density", tab: "layout", type: "enum", enum: ["compact", "normal", "relaxed"] },
606
+ { name: "align", label: "Align", tab: "layout", type: "enum", enum: ["start", "center", "end", "stretch", "baseline"] },
607
+ { name: "justify", label: "Justify", tab: "layout", type: "enum", enum: ["start", "end", "center", "between", "around", "evenly"] },
608
+ { name: "lanes", label: "Lanes", tab: "layout", type: "number" },
609
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["div", "section", "article", "aside"] },
610
+ ],
611
+ slots: [
612
+ { name: "default", displayName: "Content" },
613
+ ],
614
+ },
615
+ "ui.page-section": {
616
+ id: "ui.page-section",
617
+ name: "PageSection",
618
+ displayName: "Page Section",
619
+ level: "atom",
620
+ domain: "layout",
621
+ props: [
622
+ { name: "spacing", label: "Spacing", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
623
+ { name: "contained", label: "Contained", tab: "layout", type: "boolean" },
624
+ { name: "fullBleed", label: "Full bleed", tab: "layout", type: "boolean" },
625
+ { name: "as", label: "Element", tab: "settings", type: "enum", enum: ["section", "article", "aside", "header", "footer", "main"] },
626
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
627
+ ],
628
+ slots: [
629
+ { name: "default", displayName: "Content" },
630
+ ],
631
+ },
632
+ "ui.hero-section": {
633
+ id: "ui.hero-section",
634
+ name: "HeroSection",
635
+ displayName: "Hero Section",
636
+ level: "section",
637
+ domain: "sections",
638
+ props: [
639
+ { name: "variant", label: "Variant", tab: "content", type: "enum", enum: ["centered", "split"] },
640
+ { name: "eyebrow", label: "Eyebrow", tab: "content", type: "string", placeholder: "NEW", reactive: true },
641
+ { name: "heading", label: "Heading", tab: "content", required: true, type: "string", placeholder: "Build something amazing", reactive: true },
642
+ { name: "headingLevel", label: "Heading level", tab: "settings", type: "number", enum: [1, 2, 3, 4, 5, 6] },
643
+ { name: "subheading", label: "Subheading", tab: "content", type: "string", placeholder: "Ship faster with a framework designed for performance and developer joy.", reactive: true },
644
+ { name: "imageSrc", label: "Image source", tab: "content", type: "string", placeholder: "https://placehold.co/480x320?text=Hero+image", reactive: true, visibleWhen: { "prop": "variant", "equals": "split" } },
645
+ { name: "imageAlt", label: "Alt text", tab: "content", type: "string", placeholder: "Replace this image and update the alt text", reactive: true, kind: "alt-text", visibleWhen: { "prop": "variant", "equals": "split" } },
646
+ { name: "imageWidth", label: "Image width", tab: "layout", type: "number", placeholder: 480, visibleWhen: { "prop": "variant", "equals": "split" } },
647
+ { name: "imageHeight", label: "Image height", tab: "layout", type: "number", placeholder: 320, visibleWhen: { "prop": "variant", "equals": "split" } },
648
+ { name: "spacing", label: "Spacing", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
649
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
650
+ ],
651
+ slots: [
652
+ { name: "actions", displayName: "Actions", accepts: ["ui.button"] },
653
+ ],
654
+ },
655
+ "ui.features-section": {
656
+ id: "ui.features-section",
657
+ name: "FeaturesSection",
658
+ displayName: "Features Section",
659
+ level: "section",
660
+ domain: "sections",
661
+ props: [
662
+ { name: "heading", label: "Heading", tab: "content", type: "string", placeholder: "Why choose us", reactive: true },
663
+ { name: "headingLevel", label: "Heading level", tab: "settings", type: "number", enum: [1, 2, 3, 4, 5, 6] },
664
+ { name: "subheading", label: "Subheading", tab: "content", type: "string", placeholder: "Everything you need to ship great products.", reactive: true },
665
+ { name: "items", label: "Items", tab: "content", required: true, type: "array", placeholder: [{ "title": "Lightning fast", "description": "Sub-second page loads with fine-grained reactivity." }, { "title": "Secure by default", "description": "Built-in protection against the OWASP top 10." }, { "title": "Built for teams", "description": "Collaborate seamlessly with role-based access control." }], reactive: true, itemSchema: { "icon": { type: "icon" }, "title": { type: "string", required: true }, "description": { type: "string", required: true } } },
666
+ { name: "columns", label: "Columns", tab: "layout", type: "number", enum: [2, 3, 4] },
667
+ { name: "spacing", label: "Spacing", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
668
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
669
+ ],
670
+ slots: [
671
+ { name: "extras", displayName: "Extras" },
672
+ ],
673
+ },
674
+ "ui.cta-section": {
675
+ id: "ui.cta-section",
676
+ name: "CTASection",
677
+ displayName: "CTA Section",
678
+ level: "section",
679
+ domain: "sections",
680
+ props: [
681
+ { name: "eyebrow", label: "Eyebrow", tab: "content", type: "string", placeholder: "GET STARTED", reactive: true },
682
+ { name: "heading", label: "Heading", tab: "content", required: true, type: "string", placeholder: "Ready to ship faster?", reactive: true },
683
+ { name: "headingLevel", label: "Heading level", tab: "settings", type: "number", enum: [1, 2, 3, 4, 5, 6] },
684
+ { name: "description", label: "Description", tab: "content", type: "string", placeholder: "Join thousands of developers building with our platform.", reactive: true },
685
+ { name: "color", label: "Color", tab: "content", type: "token-color", enum: ["primary", "secondary", "tertiary", "success", "info", "warning", "danger"] },
686
+ { name: "variant", label: "Variant", tab: "content", type: "enum", enum: ["centered", "inline"] },
687
+ { name: "spacing", label: "Spacing", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
688
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
689
+ ],
690
+ slots: [
691
+ { name: "actions", displayName: "Actions", accepts: ["ui.button"] },
692
+ ],
693
+ },
694
+ "ui.contact-section": {
695
+ id: "ui.contact-section",
696
+ name: "ContactSection",
697
+ displayName: "Contact Section",
698
+ level: "section",
699
+ domain: "sections",
700
+ props: [
701
+ { name: "heading", label: "Heading", tab: "content", type: "string", placeholder: "Get in touch", reactive: true },
702
+ { name: "headingLevel", label: "Heading level", tab: "settings", type: "number", enum: [1, 2, 3, 4, 5, 6] },
703
+ { name: "description", label: "Description", tab: "content", type: "string", placeholder: "We'd love to hear from you. Reach out anytime.", reactive: true },
704
+ { name: "contacts", label: "Contacts", tab: "content", type: "array", placeholder: [{ "label": "Email", "value": "hello@example.com", "href": "mailto:hello@example.com" }, { "label": "Phone", "value": "+1 (555) 010-0000", "href": "tel:+15550100000" }, { "label": "Address", "value": "123 Main St, Suite 100, San Francisco, CA 94103" }], reactive: true, itemSchema: { "label": { type: "string", required: true }, "value": { type: "string", required: true }, "icon": { type: "icon" }, "href": { type: "string" } } },
705
+ { name: "spacing", label: "Spacing", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
706
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
707
+ ],
708
+ slots: [
709
+ { name: "form", displayName: "Form", accepts: ["ui.form"], max: 1 },
710
+ ],
711
+ },
712
+ "ui.footer-section": {
713
+ id: "ui.footer-section",
714
+ name: "FooterSection",
715
+ displayName: "Footer Section",
716
+ level: "section",
717
+ domain: "sections",
718
+ props: [
719
+ { name: "groups", label: "Link groups", tab: "content", type: "array", placeholder: [{ "title": "Product", "links": [{ "label": "Features", "href": "/features" }, { "label": "Pricing", "href": "/pricing" }] }, { "title": "Company", "links": [{ "label": "About", "href": "/about" }, { "label": "Blog", "href": "/blog" }] }, { "title": "Support", "links": [{ "label": "Help", "href": "/help" }, { "label": "Contact", "href": "/contact" }] }], reactive: true, itemSchema: { "title": { type: "string", required: true }, "links": { type: "array", required: true, itemSchema: { "label": { type: "string", required: true }, "href": { type: "string", required: true } } } } },
720
+ { name: "brandName", label: "Brand name", tab: "content", type: "string", placeholder: "Your Brand", reactive: true },
721
+ { name: "copyrightYear", label: "Copyright year", tab: "settings", type: "number" },
722
+ { name: "headingLevel", label: "Heading level", tab: "settings", type: "number", enum: [1, 2, 3, 4, 5, 6] },
723
+ { name: "spacing", label: "Spacing", tab: "layout", type: "token-space", enum: ["0", "xs", "sm", "md", "lg", "xl"] },
724
+ { name: "id", label: "Anchor ID", tab: "settings", type: "string" },
725
+ ],
726
+ slots: [
727
+ { name: "extras", displayName: "Extras" },
728
+ ],
729
+ },
730
+ };
731
+ //# sourceMappingURL=registry-meta.js.map