@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,193 @@
1
+ /// Navbar menu popover — mobile drawer + backdrop + scroll-mask
2
+ /// @group organisms/navigation
3
+
4
+ @use '@pithyjs/design-system/a11y/styles/mixins' as a11y;
5
+ @use '@pithyjs/design-system/layout/styles/glass' as glass;
6
+ @use '@pithyjs/design-system/layout/styles/scroll-mask' as scroll-mask;
7
+
8
+ // ============================================
9
+ // Menu (popover)
10
+ // ============================================
11
+
12
+ // Suppress popover transitions while JS flips layout, otherwise the
13
+ // allow-discrete display animation flashes items on desktop→mobile.
14
+ .ui-navbar[data-layout-transitioning] .ui-navbar-menu,
15
+ .ui-navbar[data-layout-transitioning] .ui-navbar-menu::backdrop {
16
+ transition: none !important;
17
+ }
18
+
19
+ .ui-navbar-menu {
20
+ border: none;
21
+ padding: var(--space-md);
22
+ // Clears the iOS home indicator / Android gesture bar.
23
+ padding-block-end: max(var(--space-md), env(safe-area-inset-bottom));
24
+ margin: 0;
25
+ background: var(--color-surface);
26
+ color: var(--color-text);
27
+ border-radius: var(--radius-lg);
28
+ box-shadow: var(--shadow-lg);
29
+ // Drawer-width on mobile: span full viewport minus gutters. Desktop
30
+ // :not([data-layout="mobile"]) selector resets to auto.
31
+ inline-size: calc(100vw - var(--space-md) * 2);
32
+ max-inline-size: calc(100vw - var(--space-md) * 2);
33
+
34
+ // JS publishes `--_menu-top` on open; CSS subtracts it so max-block-size
35
+ // can factor in env() + dvh, which JS can't read. 100vh is the fallback
36
+ // for engines without dvh.
37
+ max-block-size: calc(
38
+ 100vh - var(--_menu-top, 0px) - env(safe-area-inset-bottom) - var(
39
+ --space-md
40
+ )
41
+ );
42
+ max-block-size: calc(
43
+ 100dvh - var(--_menu-top, 0px) - env(safe-area-inset-bottom) - var(
44
+ --space-md
45
+ )
46
+ );
47
+ overflow-y: auto;
48
+ overscroll-behavior: contain;
49
+
50
+ // Strong dim + meaningful blur so the drawer reads as modal on mobile.
51
+ // The menu's `overlay allow-discrete` transition keeps the backdrop in the
52
+ // render tree long enough to fade on close.
53
+ &::backdrop {
54
+ @include glass.glass-scrim(var(--color-text), 55%, glass);
55
+
56
+ @include a11y.motion-safe {
57
+ // Exit: quick fade — backdrop shouldn't linger after drawer is gone.
58
+ transition:
59
+ background-color var(--motion-duration-normal) var(--motion-easing-exit),
60
+ backdrop-filter var(--motion-duration-normal) var(--motion-easing-exit),
61
+ -webkit-backdrop-filter var(--motion-duration-normal)
62
+ var(--motion-easing-exit);
63
+
64
+ @starting-style {
65
+ background-color: transparent;
66
+ backdrop-filter: blur(0);
67
+ -webkit-backdrop-filter: blur(0);
68
+ }
69
+ }
70
+ }
71
+
72
+ // Entrance: slow fade matches the drawer slide-in for a cohesive feel.
73
+ &:popover-open::backdrop {
74
+ @include a11y.motion-safe {
75
+ transition:
76
+ background-color var(--motion-duration-slow)
77
+ var(--motion-easing-entrance),
78
+ backdrop-filter var(--motion-duration-slow)
79
+ var(--motion-easing-entrance),
80
+ -webkit-backdrop-filter var(--motion-duration-slow)
81
+ var(--motion-easing-entrance);
82
+ }
83
+ }
84
+
85
+ &:not(:popover-open)::backdrop {
86
+ background-color: transparent;
87
+ backdrop-filter: blur(0);
88
+ -webkit-backdrop-filter: blur(0);
89
+ }
90
+
91
+ @include a11y.forced-colors {
92
+ border: 1px solid ButtonText;
93
+ background: Canvas;
94
+ color: CanvasText;
95
+ }
96
+ }
97
+
98
+ // Mobile: full-height side-sheet anchored to the trailing edge (origin matches
99
+ // the hamburger). JS skips the desktop anchor-positioning on mobile so CSS here
100
+ // fully owns layout. Scoped so `:not(:popover-open)` doesn't bleed into desktop.
101
+ .ui-navbar[data-layout='mobile'] {
102
+ .ui-navbar-menu {
103
+ --_ui-navbar-menu-inline-size: min(88vw, 22rem);
104
+
105
+ position: fixed;
106
+ inset-block-start: 0;
107
+ inset-block-end: 0;
108
+ inset-inline-end: 0;
109
+ inset-inline-start: auto;
110
+ inline-size: var(--_ui-navbar-menu-inline-size);
111
+ max-inline-size: var(--_ui-navbar-menu-inline-size);
112
+ block-size: 100dvh;
113
+ max-block-size: 100dvh;
114
+ padding-block: var(--space-lg);
115
+ padding-block-end: max(var(--space-lg), env(safe-area-inset-bottom));
116
+ padding-inline: var(--space-lg);
117
+ border-radius: var(--radius-lg) 0 0 var(--radius-lg);
118
+ box-shadow: var(--shadow-xl);
119
+ border-inline-start: var(--border-width-hairline) solid var(--color-border);
120
+
121
+ &:popover-open {
122
+ display: flex;
123
+ flex-direction: column;
124
+ gap: var(--space-sm);
125
+ }
126
+
127
+ @include a11y.motion-safe {
128
+ opacity: 1;
129
+ translate: 0 0;
130
+ // Exit: responsive snap-out — fast enough to feel instant but visible.
131
+ transition:
132
+ opacity var(--motion-duration-normal) var(--motion-easing-exit),
133
+ translate var(--motion-duration-normal) var(--motion-easing-exit),
134
+ display var(--motion-duration-normal) allow-discrete,
135
+ overlay var(--motion-duration-normal) allow-discrete;
136
+
137
+ // Entrance: deliberate slide-in with deceleration for premium weight.
138
+ &:popover-open {
139
+ transition:
140
+ opacity var(--motion-duration-slow) var(--motion-easing-entrance),
141
+ translate var(--motion-duration-slow) var(--motion-easing-entrance),
142
+ display var(--motion-duration-slow) allow-discrete,
143
+ overlay var(--motion-duration-slow) allow-discrete;
144
+ }
145
+
146
+ // Closed state: fully off-screen to the trailing edge.
147
+ &:not(:popover-open) {
148
+ opacity: 0;
149
+ translate: 100% 0;
150
+ }
151
+
152
+ @starting-style {
153
+ &:popover-open {
154
+ opacity: 0;
155
+ translate: 100% 0;
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ // Scroll-driven scroll-edge mask — Chromium 115+ / Safari 18+.
162
+ // Engines without scroll-driven animations get a crisp edge.
163
+ .ui-navbar-menu {
164
+ @include scroll-mask.scroll-fade-mask('_navbar-menu');
165
+ }
166
+
167
+ // Keyframes for the scroll-driven fade. 0% = both edges crisp (covers
168
+ // "at top" and "no overflow" since scroll-timeline stays at 0%).
169
+ @supports (animation-timeline: scroll()) {
170
+ @keyframes _navbar-menu-edge-fade {
171
+ 0% {
172
+ --_navbar-menu-mask-top: 0px;
173
+ --_navbar-menu-mask-bottom: 0px;
174
+ }
175
+ 2% {
176
+ --_navbar-menu-mask-top: 0px;
177
+ --_navbar-menu-mask-bottom: var(--_navbar-mask-fade);
178
+ }
179
+ 5% {
180
+ --_navbar-menu-mask-top: var(--_navbar-mask-fade);
181
+ --_navbar-menu-mask-bottom: var(--_navbar-mask-fade);
182
+ }
183
+ 95% {
184
+ --_navbar-menu-mask-top: var(--_navbar-mask-fade);
185
+ --_navbar-menu-mask-bottom: var(--_navbar-mask-fade);
186
+ }
187
+ 100% {
188
+ --_navbar-menu-mask-top: var(--_navbar-mask-fade);
189
+ --_navbar-menu-mask-bottom: 0px;
190
+ }
191
+ }
192
+ }
193
+ }
@@ -0,0 +1,107 @@
1
+ /// Navbar root element + skip-to-content
2
+ /// @group organisms/navigation
3
+
4
+ @use '@pithyjs/design-system/a11y/styles/mixins' as a11y;
5
+ @use '@pithyjs/design-system/layout/styles/glass' as glass;
6
+
7
+ // ============================================
8
+ // Root
9
+ // ============================================
10
+
11
+ .ui-navbar {
12
+ // -- Component-scoped custom properties ------------------------------------
13
+ --_navbar-brand-dot: 0.55em;
14
+ --_navbar-brand-ls: -0.01em;
15
+ --_navbar-brand-ls-scrolled: -0.02em;
16
+ --_navbar-announcement-ls: 0.005em;
17
+ --_navbar-drawer-link-ls: -0.014em;
18
+ --_navbar-mask-fade: 0.75rem;
19
+
20
+ container-type: inline-size;
21
+ contain: layout paint;
22
+ position: relative;
23
+ display: block;
24
+ inline-size: 100%;
25
+
26
+ color: var(--color-text);
27
+ font-size: var(--font-size-sm);
28
+ -webkit-font-smoothing: antialiased;
29
+ -moz-osx-font-smoothing: grayscale;
30
+
31
+ // Prevents layout shift on hydration.
32
+ min-block-size: calc(
33
+ var(--control-padding-y-md) * 2 + var(--control-min-touch)
34
+ );
35
+
36
+ background-color: var(--color-surface);
37
+ border-block-end: var(--border-width-hairline) solid transparent;
38
+
39
+ @include a11y.motion-safe {
40
+ transition:
41
+ background-color var(--motion-duration-normal)
42
+ var(--motion-easing-standard),
43
+ border-block-end-color var(--motion-duration-normal)
44
+ var(--motion-easing-standard),
45
+ box-shadow var(--motion-duration-normal) var(--motion-easing-standard),
46
+ backdrop-filter var(--motion-duration-normal)
47
+ var(--motion-easing-standard),
48
+ min-block-size var(--motion-duration-normal) var(--motion-easing-standard);
49
+ }
50
+
51
+ &[data-density='compact'] {
52
+ min-block-size: calc(
53
+ var(--control-padding-y-sm) * 2 + var(--control-min-touch)
54
+ );
55
+ }
56
+
57
+ &[data-sticky='true'] {
58
+ position: sticky;
59
+ inset-block-start: 0;
60
+ z-index: 50;
61
+ }
62
+
63
+ &[data-transparent='true'] {
64
+ background-color: transparent;
65
+ }
66
+
67
+ // Both variants converge on a tinted, blurred, hair-bordered surface once scrolled.
68
+ // The inset 1px highlight seals the frosted surface — the "Linear/Vercel" effect.
69
+ &[data-scrolled='true'] {
70
+ @include glass.glass-surface(
71
+ var(--color-surface),
72
+ 80%,
73
+ backdrop,
74
+ var(--color-text),
75
+ 6%,
76
+ var(--shadow-sm)
77
+ );
78
+ border-block-end-color: var(--color-border);
79
+ }
80
+
81
+ // Compact is already condensed; only comfortable shrinks on scroll.
82
+ &[data-density='comfortable'][data-scrolled='true'] {
83
+ min-block-size: calc(
84
+ var(--control-padding-y-sm) * 2 + var(--control-min-touch)
85
+ );
86
+ }
87
+
88
+ @include a11y.forced-colors {
89
+ border-block-end: 1px solid ButtonText;
90
+ background-color: Canvas;
91
+ }
92
+
93
+ // Nav is chrome, not content.
94
+ @media print {
95
+ display: none;
96
+ }
97
+
98
+ @include a11y.primary-selection;
99
+ }
100
+
101
+ // ============================================
102
+ // Skip-to-content
103
+ // ============================================
104
+
105
+ .ui-navbar-skip {
106
+ @include a11y.skip-link;
107
+ }
@@ -0,0 +1,83 @@
1
+ /// Navbar search slot (optional, between items and actions)
2
+ /// @group organisms/navigation
3
+
4
+ @use '@pithyjs/design-system/a11y/styles/mixins' as a11y;
5
+
6
+ // ============================================
7
+ // Search slot (optional, between items and actions)
8
+ // ============================================
9
+
10
+ .ui-navbar-search {
11
+ display: flex;
12
+ align-items: center;
13
+ min-inline-size: 0;
14
+ }
15
+
16
+ // Opinionated shell for a command-palette trigger. Consumers put their own
17
+ // button inside the slot; this class styles the trigger into a muted pill
18
+ // with a trailing kbd chip.
19
+ .ui-navbar-search-hint {
20
+ appearance: none;
21
+ display: inline-flex;
22
+ align-items: center;
23
+ gap: var(--space-sm); // Close friends — label ↔ kbd
24
+ min-block-size: var(--control-min-touch);
25
+ padding-inline: var(--control-padding-x-sm);
26
+ padding-block: var(--control-padding-y-sm);
27
+ border-radius: var(--radius-md);
28
+ border: var(--border-width-hairline) solid var(--color-border);
29
+ background-color: var(--color-surface-variant);
30
+ color: var(--color-text-muted);
31
+ font-size: var(--font-size-sm);
32
+ font-weight: var(--font-weight-regular);
33
+ text-decoration: none;
34
+ cursor: pointer;
35
+ @include a11y.touch-optimize;
36
+
37
+ @include a11y.motion-safe {
38
+ transition:
39
+ var(--motion-transition-background), var(--motion-transition-color),
40
+ var(--motion-transition-border);
41
+ }
42
+
43
+ &:hover {
44
+ color: var(--color-text);
45
+ border-color: var(--color-border);
46
+ @include a11y.state-background(hover, var(--color-primary));
47
+ }
48
+ &:focus-visible {
49
+ @include a11y.focus-ring;
50
+ }
51
+
52
+ kbd {
53
+ @include a11y.kbd-chip;
54
+ }
55
+
56
+ @include a11y.forced-colors {
57
+ border: 1px solid ButtonText;
58
+ kbd {
59
+ border: 1px solid ButtonText;
60
+ }
61
+ }
62
+ }
63
+
64
+ .ui-navbar[data-layout='mobile'] {
65
+ // Actions anchor to the bottom of the side-sheet — makes the theme toggle
66
+ // feel pinned rather than orphaned in whitespace.
67
+ .ui-navbar-actions {
68
+ margin-block-start: auto;
69
+ padding-block-start: var(--space-md);
70
+ border-block-start: var(--border-width-hairline) solid var(--color-divider);
71
+ inline-size: 100%;
72
+ }
73
+ .ui-navbar-search {
74
+ margin-block-start: var(--space-md);
75
+ padding-block-start: var(--space-md);
76
+ border-block-start: var(--border-width-hairline) solid var(--color-divider);
77
+ inline-size: 100%;
78
+ }
79
+ // When both slots are present, only the first one needs a divider — search
80
+ // already separates the lists cluster, so actions falls below search without
81
+ // a second rule. Actions next to search keeps its own divider intact because
82
+ // it's still separated by a semantic cluster (CTAs vs. trigger).
83
+ }
@@ -0,0 +1,91 @@
1
+ /// Navbar hamburger toggle + SVG morph
2
+ /// @group organisms/navigation
3
+
4
+ @use '@pithyjs/design-system/a11y/styles/mixins' as a11y;
5
+
6
+ // ============================================
7
+ // Hamburger toggle
8
+ // ============================================
9
+
10
+ // Hidden in desktop layout via [data-layout] selector; visible only in mobile.
11
+ .ui-navbar-toggle {
12
+ appearance: none;
13
+ border: none;
14
+ background: none;
15
+ color: var(--color-text);
16
+ cursor: pointer;
17
+ @include a11y.touch-optimize;
18
+ padding: 0;
19
+ inline-size: var(--control-min-touch);
20
+ block-size: var(--control-min-touch);
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ border-radius: var(--radius-md);
25
+ margin-inline-start: auto;
26
+
27
+ @include a11y.motion-safe {
28
+ transition:
29
+ background-color var(--motion-duration-fast) var(--motion-easing-standard),
30
+ transform var(--motion-duration-fast) var(--motion-easing-standard),
31
+ color var(--motion-duration-fast) var(--motion-easing-standard);
32
+ }
33
+
34
+ &:hover {
35
+ @include a11y.state-background(hover, var(--color-primary));
36
+ color: var(--color-primary);
37
+ }
38
+ &:focus-visible {
39
+ @include a11y.focus-ring;
40
+ }
41
+ // Shared pressed state ties trigger + popover together as one cause/effect;
42
+ // scale is tap-only so the button isn't permanently smaller while open.
43
+ &:active,
44
+ &[aria-expanded='true'] {
45
+ @include a11y.state-background(pressed, var(--color-primary));
46
+ }
47
+ &:active {
48
+ transform: scale(var(--motion-scale-subtle));
49
+ }
50
+
51
+ @include a11y.forced-colors {
52
+ border: 1px solid ButtonText;
53
+ }
54
+ }
55
+
56
+ // ============================================
57
+ // Hamburger SVG (morph → X when menu open)
58
+ // ============================================
59
+
60
+ .ui-navbar-hamburger {
61
+ inline-size: var(--icon-size-md);
62
+ block-size: var(--icon-size-md);
63
+ display: block;
64
+ overflow: visible;
65
+ }
66
+
67
+ .ui-navbar-hamburger-line {
68
+ stroke: currentColor;
69
+ stroke-width: var(--icon-stroke-medium);
70
+ stroke-linecap: round;
71
+ // Center of the 24×24 viewBox.
72
+ transform-origin: center;
73
+
74
+ @include a11y.motion-safe {
75
+ transition:
76
+ transform var(--motion-duration-fast) var(--motion-easing-standard),
77
+ opacity var(--motion-duration-fast) var(--motion-easing-standard);
78
+ }
79
+ }
80
+
81
+ .ui-navbar-toggle[aria-expanded='true'] {
82
+ .ui-navbar-hamburger-line[data-line='top'] {
83
+ transform: translateY(5px) rotate(45deg);
84
+ }
85
+ .ui-navbar-hamburger-line[data-line='mid'] {
86
+ opacity: 0;
87
+ }
88
+ .ui-navbar-hamburger-line[data-line='bot'] {
89
+ transform: translateY(-5px) rotate(-45deg);
90
+ }
91
+ }
@@ -0,0 +1,15 @@
1
+ /// Navbar @property registrations for animatable custom properties
2
+ /// @group organisms/navigation
3
+
4
+ // Registered so the mask stops can interpolate across keyframes instead
5
+ // of jumping discretely.
6
+ @property --_navbar-menu-mask-top {
7
+ syntax: '<length>';
8
+ inherits: false;
9
+ initial-value: 0px;
10
+ }
11
+ @property --_navbar-menu-mask-bottom {
12
+ syntax: '<length>';
13
+ inherits: false;
14
+ initial-value: 0px;
15
+ }
@@ -0,0 +1,17 @@
1
+ /// Navbar organism styles
2
+ /// Top-of-page navigation with brand, primary links, trailing actions,
3
+ /// native Popover mobile menu, and scroll-aware chrome.
4
+ ///
5
+ /// @group organisms/navigation
6
+
7
+ @forward 'navbar-tokens';
8
+ @forward 'navbar-root';
9
+ @forward 'navbar-announcement';
10
+ @forward 'navbar-container';
11
+ @forward 'navbar-brand';
12
+ @forward 'navbar-toggle';
13
+ @forward 'navbar-drawer';
14
+ @forward 'navbar-menu';
15
+ @forward 'navbar-links';
16
+ @forward 'navbar-search';
17
+ @forward 'navbar-desktop';
@@ -0,0 +1,6 @@
1
+ /** @codex { "id": "pithy.ui-kit.registry-categories", "title": "Component Domain Categories", "category": "types" } */
2
+ /** @codexApi {"parent":"pithy.ui-kit.registry-categories","name":"COMPONENT_DOMAINS","stability":"stable","signature":"readonly [\"actions\", \"content\", \"layout\", \"navigation\", \"forms\", \"data\", \"feedback\", \"sections\"]"} */
3
+ export declare const COMPONENT_DOMAINS: readonly ["actions", "content", "layout", "navigation", "forms", "data", "feedback", "sections"];
4
+ /** @codexApi {"parent":"pithy.ui-kit.registry-categories","name":"ComponentDomain","stability":"stable","signature":"type ComponentDomain = \"actions\" | \"content\" | \"layout\" | \"navigation\" | \"forms\" | \"data\" | \"feedback\" | \"sections\""} */
5
+ export type ComponentDomain = (typeof COMPONENT_DOMAINS)[number];
6
+ //# sourceMappingURL=categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../src/registry/categories.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAEvH,6OAA6O;AAC7O,eAAO,MAAM,iBAAiB,kGASpB,CAAC;AAEX,8PAA8P;AAC9P,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** @codex { "id": "pithy.ui-kit.registry-categories", "title": "Component Domain Categories", "category": "types" } */
2
+ /** @codexApi {"parent":"pithy.ui-kit.registry-categories","name":"COMPONENT_DOMAINS","stability":"stable","signature":"readonly [\"actions\", \"content\", \"layout\", \"navigation\", \"forms\", \"data\", \"feedback\", \"sections\"]"} */
3
+ export const COMPONENT_DOMAINS = [
4
+ 'actions',
5
+ 'content',
6
+ 'layout',
7
+ 'navigation',
8
+ 'forms',
9
+ 'data',
10
+ 'feedback',
11
+ 'sections',
12
+ ];
13
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/registry/categories.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAEvH,6OAA6O;AAC7O,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,MAAM;IACN,UAAU;IACV,UAAU;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @codexApi {"parent":"pithy.ui-kit.registry-components","name":"registerAll","stability":"experimental","signature":"() => void"}
3
+ */
4
+ export declare function registerAll(): void;
5
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/registry/components.ts"],"names":[],"mappings":"AA4GA;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
@@ -0,0 +1,95 @@
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
+ /** @codex { "id": "pithy.ui-kit.registry-components", "title": "V0.1 Component Registrations", "category": "feature" } */
5
+ /**
6
+ * Registers all V0.1 UI Kit components into the registry.
7
+ * Import this module for its side-effect (populating the registry).
8
+ *
9
+ * Component code is lazy-loaded via dynamic import.
10
+ */
11
+ import { registerComponent, VALID_LEVELS, VALID_DOMAINS, } from "./index";
12
+ import { REGISTRY_META } from "./registry-meta";
13
+ function fromMeta(id, load) {
14
+ const meta = REGISTRY_META[id];
15
+ if (!meta) {
16
+ console.error(`[ui-kit/registry] No PIDL metadata found for "${id}". Add it via PIDL spec + scripts/component-paths.ts.`);
17
+ return null;
18
+ }
19
+ if (import.meta.env?.DEV) {
20
+ if (meta.id !== id) {
21
+ console.warn(`[ui-kit/registry] Key "${id}" does not match meta.id "${meta.id}".`);
22
+ }
23
+ if (!VALID_LEVELS.has(meta.level)) {
24
+ console.warn(`[ui-kit/registry] PIDL "${id}" has invalid level "${meta.level}".`);
25
+ }
26
+ if (!VALID_DOMAINS.has(meta.domain)) {
27
+ console.warn(`[ui-kit/registry] PIDL "${id}" has invalid domain "${meta.domain}".`);
28
+ }
29
+ }
30
+ return {
31
+ id: meta.id,
32
+ name: meta.name,
33
+ level: meta.level,
34
+ domain: meta.domain,
35
+ pidl: meta,
36
+ load,
37
+ };
38
+ }
39
+ const V0_1_COMPONENTS = [
40
+ // Atoms — actions
41
+ fromMeta("ui.button", () => import("../atoms/actions/button/Button")),
42
+ fromMeta("ui.icon-group", () => import("../atoms/actions/icon-group/IconGroup")),
43
+ fromMeta("ui.segmented-control", () => import("../atoms/actions/segmented-control/SegmentedControl")),
44
+ // Atoms — content
45
+ fromMeta("ui.text", () => import("../atoms/content/text/Text")),
46
+ fromMeta("ui.heading", () => import("../atoms/content/heading/Heading")),
47
+ fromMeta("ui.image", () => import("../atoms/content/image/Image")),
48
+ fromMeta("ui.icon", () => import("../atoms/content/icon/Icon")),
49
+ fromMeta("ui.badge", () => import("../atoms/content/badge/Badge")),
50
+ fromMeta("ui.tile", () => import("../atoms/content/tile/Tile")),
51
+ fromMeta("ui.action-tile", () => import("../atoms/content/action-tile/ActionTile")),
52
+ // Forms (atoms + molecules)
53
+ fromMeta("ui.input", () => import("../atoms/forms/input/Input")),
54
+ fromMeta("ui.select", () => import("../atoms/forms/select/Select")),
55
+ fromMeta("ui.textarea", () => import("../atoms/forms/textarea/Textarea")),
56
+ fromMeta("ui.checkbox", () => import("../atoms/forms/checkbox/Checkbox")),
57
+ fromMeta("ui.checkbox-group", () => import("../atoms/forms/checkbox/CheckboxGroup")),
58
+ fromMeta("ui.radio", () => import("../atoms/forms/radio/Radio")),
59
+ fromMeta("ui.radio-group", () => import("../atoms/forms/radio/RadioGroup")),
60
+ fromMeta("ui.toggle", () => import("../atoms/forms/toggle/Toggle")),
61
+ fromMeta("ui.file-picker", () => import("../atoms/forms/file-picker/FilePicker")),
62
+ fromMeta("ui.form-field", () => import("../atoms/forms/form-field/FormField")),
63
+ // Organisms — forms
64
+ fromMeta("ui.form", () => import("../organisms/forms/Form")),
65
+ fromMeta("ui.dynamic-form", () => import("../organisms/forms/DynamicForm")),
66
+ // Organisms — content
67
+ fromMeta("ui.card", () => import("../organisms/content/Card")),
68
+ // Organisms — navigation
69
+ fromMeta("ui.navbar", () => import("../organisms/navigation/Navbar")),
70
+ // Layout
71
+ fromMeta("ui.stack", () => import("../layout/Stack")),
72
+ fromMeta("ui.grid", () => import("../layout/Grid")),
73
+ fromMeta("ui.grid-item", () => import("../layout/GridItem")),
74
+ fromMeta("ui.smart-container", () => import("../layout/SmartContainer")),
75
+ fromMeta("ui.page-section", () => import("../layout/PageSection")),
76
+ // Sections
77
+ fromMeta("ui.hero-section", () => import("../sections/hero/HeroSection")),
78
+ fromMeta("ui.features-section", () => import("../sections/features/FeaturesSection")),
79
+ fromMeta("ui.cta-section", () => import("../sections/cta/CTASection")),
80
+ fromMeta("ui.contact-section", () => import("../sections/contact/ContactSection")),
81
+ fromMeta("ui.footer-section", () => import("../sections/footer/FooterSection")),
82
+ // Other
83
+ fromMeta("ui.modal", () => import("../organisms/feedback/Modal")),
84
+ ];
85
+ /**
86
+ * @codexApi {"parent":"pithy.ui-kit.registry-components","name":"registerAll","stability":"experimental","signature":"() => void"}
87
+ */
88
+ export function registerAll() {
89
+ for (const meta of V0_1_COMPONENTS) {
90
+ if (meta)
91
+ registerComponent(meta);
92
+ }
93
+ }
94
+ registerAll();
95
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/registry/components.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,4EAA4E;AAC5E,8DAA8D;AAE9D,0HAA0H;AAE1H;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,aAAa,GAEd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAuB,MAAM,iBAAiB,CAAC;AAErE,SAAS,QAAQ,CACf,EAAU,EACV,IAA4C;IAE5C,MAAM,IAAI,GAA+B,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CACX,iDAAiD,EAAE,uDAAuD,CAC3G,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,6BAA6B,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,wBAAwB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,yBAAyB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI;QACV,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAA6B;IAChD,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;IACrE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;IAChF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC;IAErG,kBAAkB;IAClB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC/D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACxE,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;IAEnF,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACzE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACzE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;IACpF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC3E,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACnE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;IACjF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;IAE9E,oBAAoB;IACpB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAE3E,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAE9D,yBAAyB;IACzB,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAErE,SAAS;IACT,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC5D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACxE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAElE,WAAW;IACX,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACzE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;IACrF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACtE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAClF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IAE/E,QAAQ;IACR,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;CAClE,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,IAAI;YAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,WAAW,EAAE,CAAC"}