@ramme-io/ui 3.0.0 → 4.0.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 (1795) hide show
  1. package/README.md +55 -1
  2. package/dist/blocks/ai/Actions.js +6 -0
  3. package/dist/blocks/ai/ChatFAB.js +31 -0
  4. package/dist/blocks/ai/Conversation.js +15 -0
  5. package/dist/blocks/ai/Loader.js +34 -0
  6. package/dist/blocks/ai/Message.js +26 -0
  7. package/dist/blocks/ai/PromptInput.js +18 -0
  8. package/dist/blocks/engines/WatchlistEngine.d.ts +8 -0
  9. package/dist/blocks/engines/WatchlistEngine.js +130 -0
  10. package/dist/blocks/iot/DeviceCard.js +48 -0
  11. package/dist/blocks/iot/TelemetryLog.d.ts +12 -0
  12. package/dist/blocks/iot/TelemetryLog.js +93 -0
  13. package/dist/blocks/iot/WaterPumpControl.d.ts +12 -0
  14. package/dist/blocks/iot/WaterPumpControl.js +106 -0
  15. package/dist/component-registry.js +382 -0
  16. package/dist/components/ai/AIChatThread/AIChatThread.d.ts +24 -0
  17. package/dist/components/ai/AIChatThread/AIChatThread.js +175 -0
  18. package/dist/components/ai/CompanyProfileCard/CompanyProfileCard.d.ts +9 -0
  19. package/dist/components/ai/CompanyProfileCard/CompanyProfileCard.js +109 -0
  20. package/dist/components/ai/KeyInjectionOverlay.js +51 -0
  21. package/dist/components/ai/LiveQuoteCard/LiveQuoteCard.js +72 -0
  22. package/dist/components/ai/NewsSummaryCard/NewsSummaryCard.js +77 -0
  23. package/dist/components/ai/StockChart/StockChart.js +199 -0
  24. package/dist/components/ai/TelemetryGraph/TelemetryGraph.js +125 -0
  25. package/dist/components/auth/AuthLayout.d.ts +8 -0
  26. package/dist/components/auth/AuthLayout.js +50 -0
  27. package/dist/components/auth/LoginPage.d.ts +12 -0
  28. package/dist/components/auth/LoginPage.js +98 -0
  29. package/dist/components/auth/SignupPage.d.ts +11 -0
  30. package/dist/components/auth/SignupPage.js +67 -0
  31. package/dist/components/data-display/ActivityFeed.js +41 -0
  32. package/dist/components/data-display/AreaChart.js +56 -0
  33. package/dist/components/data-display/BarChart.js +34 -0
  34. package/dist/components/data-display/ChartWithTable.d.ts +7 -0
  35. package/dist/components/data-display/ChartWithTable.js +68 -0
  36. package/dist/components/data-display/CodeBlock.js +45 -0
  37. package/dist/components/data-display/DataTable.d.ts +1 -1
  38. package/dist/components/data-display/DataTable.js +92 -0
  39. package/dist/components/data-display/KpiGrid.d.ts +29 -0
  40. package/dist/components/data-display/KpiGrid.js +45 -0
  41. package/dist/components/data-display/LineChart.js +58 -0
  42. package/dist/components/data-display/PieChart.js +41 -0
  43. package/dist/components/data-display/ScatterChart.js +55 -0
  44. package/dist/components/data-display/StatCard.d.ts +4 -1
  45. package/dist/components/data-display/StatCard.js +47 -0
  46. package/dist/components/data-display/StatusBadge.d.ts +10 -2
  47. package/dist/components/data-display/StatusBadge.js +30 -0
  48. package/dist/components/data-display/Table.js +20 -0
  49. package/dist/components/feedback/Alert.js +37 -0
  50. package/dist/components/feedback/EmptyState.js +12 -0
  51. package/dist/components/feedback/Plan.js +67 -0
  52. package/dist/components/feedback/Skeleton.d.ts +13 -0
  53. package/dist/components/feedback/Skeleton.js +10 -0
  54. package/dist/components/feedback/TippyTooltip.js +24 -0
  55. package/dist/components/feedback/Toast.js +72 -0
  56. package/dist/components/feedback/ToastProvider.js +40 -0
  57. package/dist/components/forms/ButtonGroup.js +23 -0
  58. package/dist/components/forms/Checkbox.js +20 -0
  59. package/dist/components/forms/ComboBox.js +77 -0
  60. package/dist/components/forms/DatePicker.js +63 -0
  61. package/dist/components/forms/FileUpload.js +96 -0
  62. package/dist/components/forms/FormTemplate.js +87 -0
  63. package/dist/components/forms/Input.js +43 -0
  64. package/dist/components/forms/Label.d.ts +11 -0
  65. package/dist/components/forms/Label.js +19 -0
  66. package/dist/components/forms/MultiSelect.d.ts +18 -0
  67. package/dist/components/forms/MultiSelect.js +111 -0
  68. package/dist/components/forms/Radio.js +19 -0
  69. package/dist/components/forms/SearchInput.js +13 -0
  70. package/dist/components/forms/SegmentedControl.d.ts +1 -1
  71. package/dist/components/forms/SegmentedControl.js +37 -0
  72. package/dist/components/forms/Select.js +92 -0
  73. package/dist/components/forms/Textarea.js +19 -0
  74. package/dist/components/forms/ToggleSwitch.js +39 -0
  75. package/dist/components/hardware/CircularDial.d.ts +37 -0
  76. package/dist/components/hardware/CircularDial.js +65 -0
  77. package/dist/components/hardware/EdgeInsightTerminal.d.ts +12 -0
  78. package/dist/components/hardware/EdgeInsightTerminal.js +68 -0
  79. package/dist/components/hardware/HardwareCommandButton.d.ts +14 -0
  80. package/dist/components/hardware/HardwareCommandButton.js +55 -0
  81. package/dist/components/hardware/Sparkline.d.ts +13 -0
  82. package/dist/components/hardware/Sparkline.js +34 -0
  83. package/dist/components/layout/AboutRamme.js +87 -0
  84. package/dist/components/layout/Accordion.js +52 -0
  85. package/dist/components/layout/ActionBar.js +5 -0
  86. package/dist/components/layout/AppShell.d.ts +18 -0
  87. package/dist/components/layout/AppShell.js +74 -0
  88. package/dist/components/layout/Card.d.ts +11 -0
  89. package/dist/components/layout/Card.js +89 -0
  90. package/dist/components/layout/CollectionLayout.d.ts +15 -0
  91. package/dist/components/layout/CollectionLayout.js +33 -0
  92. package/dist/components/layout/DenseMetricRibbon.d.ts +11 -0
  93. package/dist/components/layout/DenseMetricRibbon.js +56 -0
  94. package/dist/components/layout/DetailDrawer.d.ts +18 -0
  95. package/dist/components/layout/DetailDrawer.js +89 -0
  96. package/dist/components/layout/Drawer.js +102 -0
  97. package/dist/components/layout/FilterPanel.d.ts +15 -0
  98. package/dist/components/layout/FilterPanel.js +10 -0
  99. package/dist/components/layout/Header.d.ts +10 -0
  100. package/dist/components/layout/Header.js +20 -0
  101. package/dist/components/layout/List.js +17 -0
  102. package/dist/components/layout/Modal.js +48 -0
  103. package/dist/components/layout/PageContainer.d.ts +9 -3
  104. package/dist/components/layout/PageContainer.js +20 -0
  105. package/dist/components/layout/PageHeader.js +11 -0
  106. package/dist/components/layout/RammeInspectorTrigger.js +20 -0
  107. package/dist/components/layout/SectionHeader.js +8 -0
  108. package/dist/components/layout/SettingsContainer.d.ts +13 -0
  109. package/dist/components/layout/SettingsContainer.js +22 -0
  110. package/dist/components/layout/Sidebar.js +132 -0
  111. package/dist/components/layout/Statusbar.d.ts +10 -0
  112. package/dist/components/layout/Statusbar.js +20 -0
  113. package/dist/components/layout/Toolbar.d.ts +10 -0
  114. package/dist/components/layout/Toolbar.js +20 -0
  115. package/dist/components/layout/UserNav.d.ts +18 -0
  116. package/dist/components/layout/UserNav.js +148 -0
  117. package/dist/components/molecular/ConnectorOverlay.js +27 -0
  118. package/dist/components/molecular/DataCard.d.ts +14 -0
  119. package/dist/components/molecular/DataCard.js +44 -0
  120. package/dist/components/molecular/StateMatrix.d.ts +14 -0
  121. package/dist/components/molecular/StateMatrix.js +34 -0
  122. package/dist/components/navigation/Breadcrumbs.js +21 -0
  123. package/dist/components/navigation/Menu.js +87 -0
  124. package/dist/components/navigation/MobileNav.js +130 -0
  125. package/dist/components/navigation/Pagination.js +71 -0
  126. package/dist/components/navigation/Stepper.js +34 -0
  127. package/dist/components/navigation/Tabs.js +40 -0
  128. package/dist/components/showroom/ShowroomCanvas.js +121 -0
  129. package/dist/components/showroom/ShowroomContainer.js +103 -0
  130. package/dist/components/showroom/ShowroomRenderer.js +141 -0
  131. package/dist/components/showroom/ShowroomSidebar.js +152 -0
  132. package/dist/components/showroom/SkuBadge.js +27 -0
  133. package/dist/components/theme/AestheticProfileGrid.js +37 -0
  134. package/dist/components/theme/FineTuningControls.d.ts +1 -0
  135. package/dist/components/theme/FineTuningControls.js +108 -0
  136. package/dist/components/theme/ThemeLab.js +332 -0
  137. package/dist/components/theme/ThemeLivePreview.js +146 -0
  138. package/dist/components/theme/ThemeSettings.js +34 -0
  139. package/dist/components/theme/ThemeSynthesizer.js +55 -0
  140. package/dist/components/ui/Avatar.js +38 -0
  141. package/dist/components/ui/Badge.js +38 -0
  142. package/dist/components/ui/BrandLogo.d.ts +11 -0
  143. package/dist/components/ui/BrandLogo.js +33 -0
  144. package/dist/components/ui/Button.js +69 -0
  145. package/dist/components/ui/Icon.js +22 -0
  146. package/dist/components/ui/icon-loader.d.ts +1 -1
  147. package/dist/contexts/ThemeContext.js +242 -0
  148. package/dist/data/mockData.js +16 -0
  149. package/dist/index.css +1 -1
  150. package/dist/index.d.ts +5 -1
  151. package/dist/index.js +275 -0
  152. package/dist/lib/formatters.d.ts +1 -1
  153. package/dist/lib/formatters.js +49 -0
  154. package/dist/lib/hooks/useChartTheme.d.ts +7 -0
  155. package/dist/lib/hooks/useChartTheme.js +38 -0
  156. package/dist/lib/hooks/useDataFetch.js +19 -0
  157. package/dist/lib/hooks/useMediaQuery.d.ts +4 -0
  158. package/dist/lib/hooks/useMediaQuery.js +16 -0
  159. package/dist/lib/theme/ThemeGenerator.logic.js +477 -0
  160. package/dist/lib/theme/themeAgent.js +46 -0
  161. package/dist/lib/theme/themeUtils.js +83 -0
  162. package/dist/utils/cn.js +8 -0
  163. package/dist/wizardManifest.js +4170 -0
  164. package/package.json +30 -17
  165. package/src/index.css +335 -0
  166. package/src/wizardManifest.ts +1366 -21
  167. package/tailwind.preset.js +1 -0
  168. package/dist/a-arrow-down-BzXy5sLm.mjs +0 -17
  169. package/dist/a-arrow-up-CTPBOS5Q.mjs +0 -17
  170. package/dist/a-large-small-lIPfXl_I.mjs +0 -17
  171. package/dist/accessibility-BamJRVjJ.mjs +0 -18
  172. package/dist/activity-C0aeM-3-.mjs +0 -20
  173. package/dist/air-vent-C5pdClUB.mjs +0 -23
  174. package/dist/airplay-BGIxOSJn.mjs +0 -21
  175. package/dist/alarm-clock-check-lCEoX4Q4.mjs +0 -19
  176. package/dist/alarm-clock-jIz6aSZs.mjs +0 -19
  177. package/dist/alarm-clock-minus-CwreFouQ.mjs +0 -19
  178. package/dist/alarm-clock-off-Cv6cc3_V.mjs +0 -19
  179. package/dist/alarm-clock-plus-By5yTVda.mjs +0 -20
  180. package/dist/alarm-smoke-CiUuweTw.mjs +0 -21
  181. package/dist/album-tVBsHEoM.mjs +0 -15
  182. package/dist/align-center-DN8y9rkB.mjs +0 -16
  183. package/dist/align-center-horizontal-vdeppJcY.mjs +0 -18
  184. package/dist/align-center-vertical-eBl-YSR0.mjs +0 -18
  185. package/dist/align-end-horizontal-BUf3GkXt.mjs +0 -16
  186. package/dist/align-end-vertical-CukjbvPV.mjs +0 -16
  187. package/dist/align-horizontal-distribute-center-DUQbY3b1.mjs +0 -22
  188. package/dist/align-horizontal-distribute-end-DAqppgxf.mjs +0 -20
  189. package/dist/align-horizontal-distribute-start-SHU8awgN.mjs +0 -20
  190. package/dist/align-horizontal-justify-center-BDDYVStB.mjs +0 -19
  191. package/dist/align-horizontal-justify-end-Cnf_laQ3.mjs +0 -16
  192. package/dist/align-horizontal-justify-start-CxkvOgcU.mjs +0 -16
  193. package/dist/align-horizontal-space-around-ggc3wB0u.mjs +0 -16
  194. package/dist/align-horizontal-space-between-DNd3MePU.mjs +0 -17
  195. package/dist/align-justify-ccEP7AEE.mjs +0 -16
  196. package/dist/align-left-r1lga-wT.mjs +0 -16
  197. package/dist/align-right-BxkuEu1m.mjs +0 -16
  198. package/dist/align-start-horizontal-BFCpKg2w.mjs +0 -16
  199. package/dist/align-start-vertical-CI8Z9jbD.mjs +0 -16
  200. package/dist/align-vertical-distribute-center-CIdJWqBD.mjs +0 -22
  201. package/dist/align-vertical-distribute-end-NiICqh4g.mjs +0 -17
  202. package/dist/align-vertical-distribute-start-CU27rk09.mjs +0 -20
  203. package/dist/align-vertical-justify-center-BnHssf8L.mjs +0 -16
  204. package/dist/align-vertical-justify-end-CdowlTXm.mjs +0 -16
  205. package/dist/align-vertical-justify-start-C6-QLpDb.mjs +0 -16
  206. package/dist/align-vertical-space-around-C_yhEVOR.mjs +0 -16
  207. package/dist/align-vertical-space-between-D18JqT0r.mjs +0 -17
  208. package/dist/ambulance-6g_fkvEi.mjs +0 -26
  209. package/dist/ampersand-DgjR4Gpm.mjs +0 -21
  210. package/dist/ampersands-3MDmP69m.mjs +0 -27
  211. package/dist/amphora--OqfO2E6.mjs +0 -22
  212. package/dist/anchor-CljJR9NU.mjs +0 -16
  213. package/dist/angry-CuWINE8u.mjs +0 -19
  214. package/dist/annoyed-CqFNMKyr.mjs +0 -17
  215. package/dist/antenna-Qtun-KPc.mjs +0 -19
  216. package/dist/anvil-Cth7PBcV.mjs +0 -24
  217. package/dist/aperture-DHqVF0WG.mjs +0 -20
  218. package/dist/app-window-CzcHfgAh.mjs +0 -17
  219. package/dist/app-window-mac-BCGiQX59.mjs +0 -17
  220. package/dist/apple-CI-5Z1YO.mjs +0 -21
  221. package/dist/archive-MgOBUX_V.mjs +0 -16
  222. package/dist/archive-restore-Ccv1psem.mjs +0 -18
  223. package/dist/archive-x-D6p0VDfo.mjs +0 -17
  224. package/dist/armchair-DKlmDqF4.mjs +0 -23
  225. package/dist/arrow-big-down-BN-6omKQ.mjs +0 -20
  226. package/dist/arrow-big-down-dash-BkejvajN.mjs +0 -21
  227. package/dist/arrow-big-left-dash-BtvtP2BX.mjs +0 -21
  228. package/dist/arrow-big-left-uozxXK2N.mjs +0 -20
  229. package/dist/arrow-big-right-BDYgD0Pa.mjs +0 -20
  230. package/dist/arrow-big-right-dash-TGS557XP.mjs +0 -21
  231. package/dist/arrow-big-up-CWRB8jR0.mjs +0 -20
  232. package/dist/arrow-big-up-dash-Dxs0Ruje.mjs +0 -21
  233. package/dist/arrow-down-0-1-CDibhOn_.mjs +0 -18
  234. package/dist/arrow-down-1-0-jH79iwmK.mjs +0 -18
  235. package/dist/arrow-down-C5zaDmNz.mjs +0 -15
  236. package/dist/arrow-down-a-z-BNZfg3s5.mjs +0 -18
  237. package/dist/arrow-down-from-line-DnRHwsPG.mjs +0 -16
  238. package/dist/arrow-down-left-Bdo6BDem.mjs +0 -15
  239. package/dist/arrow-down-narrow-wide-_HLMJOq5.mjs +0 -18
  240. package/dist/arrow-down-right-DpmgLKbF.mjs +0 -15
  241. package/dist/arrow-down-to-dot-BYuaqFZu.mjs +0 -16
  242. package/dist/arrow-down-to-line-CmBo3nNW.mjs +0 -16
  243. package/dist/arrow-down-up-BLB6Da_2.mjs +0 -17
  244. package/dist/arrow-down-wide-narrow-CiUDSnRE.mjs +0 -18
  245. package/dist/arrow-down-z-a-FfPMXUCh.mjs +0 -18
  246. package/dist/arrow-left-DV0-twHV.mjs +0 -15
  247. package/dist/arrow-left-from-line-es-uBbTW.mjs +0 -16
  248. package/dist/arrow-left-right-CRpv-IiA.mjs +0 -17
  249. package/dist/arrow-left-to-line-BZM2yEan.mjs +0 -16
  250. package/dist/arrow-right-CcAH5Q1S.mjs +0 -15
  251. package/dist/arrow-right-from-line-thZbxQ9z.mjs +0 -16
  252. package/dist/arrow-right-left-BN2x0fo8.mjs +0 -17
  253. package/dist/arrow-right-to-line-Df3cyboz.mjs +0 -16
  254. package/dist/arrow-up-0-1-ALphnByM.mjs +0 -18
  255. package/dist/arrow-up-1-0-3B4fcc_n.mjs +0 -18
  256. package/dist/arrow-up-Ck6XC1gN.mjs +0 -15
  257. package/dist/arrow-up-a-z-CvnExWzo.mjs +0 -18
  258. package/dist/arrow-up-down-nIBJizgf.mjs +0 -17
  259. package/dist/arrow-up-from-dot-Dop8METp.mjs +0 -16
  260. package/dist/arrow-up-from-line-CbMoIQvg.mjs +0 -16
  261. package/dist/arrow-up-left-4aqh16bW.mjs +0 -15
  262. package/dist/arrow-up-narrow-wide-CIekazsZ.mjs +0 -18
  263. package/dist/arrow-up-right-BmAArd9p.mjs +0 -15
  264. package/dist/arrow-up-to-line-D6iubxhW.mjs +0 -16
  265. package/dist/arrow-up-wide-narrow-4hdiyl_o.mjs +0 -18
  266. package/dist/arrow-up-z-a-BcsaMwKF.mjs +0 -18
  267. package/dist/arrows-up-from-line-DcH1KKNr.mjs +0 -18
  268. package/dist/asterisk-D1hF2-6m.mjs +0 -16
  269. package/dist/at-sign-zwHlT-DK.mjs +0 -15
  270. package/dist/atom-Cq56ueR7.mjs +0 -28
  271. package/dist/audio-lines-DwVHiE8p.mjs +0 -19
  272. package/dist/audio-waveform-BHpBCYi4.mjs +0 -20
  273. package/dist/award-C_fom9e3.mjs +0 -21
  274. package/dist/axe-BiaVnfx0.mjs +0 -21
  275. package/dist/axis-3d-BMiwe4au.mjs +0 -17
  276. package/dist/baby-dU7jt3qG.mjs +0 -23
  277. package/dist/backpack-C0N3LGM8.mjs +0 -21
  278. package/dist/badge-BSzX3aR1.mjs +0 -20
  279. package/dist/badge-alert-w-oAPpNz.mjs +0 -22
  280. package/dist/badge-cent-fjeFiGbn.mjs +0 -22
  281. package/dist/badge-check-BEn25bF5.mjs +0 -21
  282. package/dist/badge-dollar-sign-B1DMEc32.mjs +0 -22
  283. package/dist/badge-euro-Cv0nNAdK.mjs +0 -22
  284. package/dist/badge-indian-rupee-1hYwV8hK.mjs +0 -23
  285. package/dist/badge-info-v-RVGtFL.mjs +0 -22
  286. package/dist/badge-japanese-yen-BJVSwytV.mjs +0 -24
  287. package/dist/badge-minus-Bi9MJCVc.mjs +0 -21
  288. package/dist/badge-percent-CJoiOP2Q.mjs +0 -23
  289. package/dist/badge-plus-CLqC72zP.mjs +0 -22
  290. package/dist/badge-pound-sterling-BPpO-RHC.mjs +0 -23
  291. package/dist/badge-question-mark-CPqfyXpI.mjs +0 -22
  292. package/dist/badge-russian-ruble-BNX8c-46.mjs +0 -22
  293. package/dist/badge-swiss-franc-B3-wE1K2.mjs +0 -23
  294. package/dist/badge-turkish-lira-CZqNn-Ax.mjs +0 -22
  295. package/dist/badge-x-CfEbSBZt.mjs +0 -22
  296. package/dist/baggage-claim-CyROAsJZ.mjs +0 -18
  297. package/dist/ban-DLRqQKgs.mjs +0 -15
  298. package/dist/banana-B6-HuqxU.mjs +0 -21
  299. package/dist/bandage-B__LW5e9.mjs +0 -20
  300. package/dist/banknote-_4WnWcfz.mjs +0 -16
  301. package/dist/banknote-arrow-down-CrCKYIeA.mjs +0 -19
  302. package/dist/banknote-arrow-up-DiOzkKWD.mjs +0 -19
  303. package/dist/banknote-x-BdwwCxcW.mjs +0 -19
  304. package/dist/barcode-D9zCUH-O.mjs +0 -18
  305. package/dist/barrel-Pnlb87aT.mjs +0 -24
  306. package/dist/baseline-Drw3QXy8.mjs +0 -16
  307. package/dist/bath-CNXw8eET.mjs +0 -24
  308. package/dist/battery-C_xclHnH.mjs +0 -15
  309. package/dist/battery-charging-D1Dt1KKJ.mjs +0 -17
  310. package/dist/battery-full-DRxUo1Jq.mjs +0 -18
  311. package/dist/battery-low-Bmh5AP_p.mjs +0 -16
  312. package/dist/battery-medium-Cq5dVj28.mjs +0 -17
  313. package/dist/battery-plus-CO4HLNbw.mjs +0 -18
  314. package/dist/battery-warning-CzrzwoJ1.mjs +0 -18
  315. package/dist/beaker-BnNn6x9j.mjs +0 -16
  316. package/dist/bean-4NWb610A.mjs +0 -21
  317. package/dist/bean-off-CXT5gM6S.mjs +0 -29
  318. package/dist/bed-I3chMFCV.mjs +0 -17
  319. package/dist/bed-double-D3VD1she.mjs +0 -17
  320. package/dist/bed-single-DVOqpQ1T.mjs +0 -16
  321. package/dist/beef-DGzjo56L.mjs +0 -28
  322. package/dist/beer-BpcpkKr5.mjs +0 -24
  323. package/dist/beer-off-DE5cCA06.mjs +0 -30
  324. package/dist/bell-D-6xmH5Y.mjs +0 -21
  325. package/dist/bell-dot-Be-ssUZe.mjs +0 -22
  326. package/dist/bell-electric-Btpyvkdr.mjs +0 -19
  327. package/dist/bell-minus-CMGWy23u.mjs +0 -22
  328. package/dist/bell-off-B9Dw_v4U.mjs +0 -23
  329. package/dist/bell-plus-46novELH.mjs +0 -23
  330. package/dist/bell-ring-Bu5ArKYd.mjs +0 -23
  331. package/dist/between-horizontal-end-BfqSIvNd.mjs +0 -16
  332. package/dist/between-horizontal-start-CMI7THsp.mjs +0 -16
  333. package/dist/between-vertical-end-BzkuHNPh.mjs +0 -16
  334. package/dist/between-vertical-start-CipYwf3W.mjs +0 -16
  335. package/dist/biceps-flexed-CRNdRVv8.mjs +0 -22
  336. package/dist/bike-D5QIERl-.mjs +0 -17
  337. package/dist/binary-B6AT8M9_.mjs +0 -19
  338. package/dist/binoculars-4qWHoyVy.mjs +0 -31
  339. package/dist/biohazard-PFG5tFGu.mjs +0 -23
  340. package/dist/bird-BE-aPvz3.mjs +0 -19
  341. package/dist/bitcoin-Db0IQE02.mjs +0 -20
  342. package/dist/blend-Ck0fW3GS.mjs +0 -15
  343. package/dist/blinds-0ZRLb-fb.mjs +0 -20
  344. package/dist/blocks/iot/CircularDial.d.ts +0 -16
  345. package/dist/blocks-xZqIy2tb.mjs +0 -21
  346. package/dist/bluetooth-Bs5XEi7k.mjs +0 -12
  347. package/dist/bluetooth-connected-D0DV8RXS.mjs +0 -16
  348. package/dist/bluetooth-off-Bl82QWpz.mjs +0 -16
  349. package/dist/bluetooth-searching-C3EwW9mZ.mjs +0 -16
  350. package/dist/bold-Cgldr1-3.mjs +0 -17
  351. package/dist/bolt-CyCvJeNW.mjs +0 -21
  352. package/dist/bomb-Bl7hxLmT.mjs +0 -22
  353. package/dist/bone-BA5sn1h4.mjs +0 -20
  354. package/dist/book-BM_fgHPW.mjs +0 -20
  355. package/dist/book-a-CnLeu6h1.mjs +0 -22
  356. package/dist/book-alert-CEiJti8Q.mjs +0 -22
  357. package/dist/book-audio-Dp-GhZRz.mjs +0 -23
  358. package/dist/book-check-C32Dg0NN.mjs +0 -21
  359. package/dist/book-copy-kY-irrk3.mjs +0 -22
  360. package/dist/book-dashed-BcA-q74M.mjs +0 -24
  361. package/dist/book-down-DdJpmeY6.mjs +0 -22
  362. package/dist/book-headphones-Ik0e0zcY.mjs +0 -23
  363. package/dist/book-heart-B3l1Dpac.mjs +0 -27
  364. package/dist/book-image-CGG7mlbq.mjs +0 -22
  365. package/dist/book-key-_V2DhoUX.mjs +0 -18
  366. package/dist/book-lock-DHpgQfIG.mjs +0 -17
  367. package/dist/book-marked-BU0dWfIi.mjs +0 -21
  368. package/dist/book-minus-B-Unpk1q.mjs +0 -21
  369. package/dist/book-open-CrZ4ONsR.mjs +0 -21
  370. package/dist/book-open-check-B8bI4E4I.mjs +0 -22
  371. package/dist/book-open-text-b5pnD0g_.mjs +0 -25
  372. package/dist/book-plus-DesMUGXo.mjs +0 -22
  373. package/dist/book-text-DWGZrUvM.mjs +0 -22
  374. package/dist/book-type-De6fZy2_.mjs +0 -23
  375. package/dist/book-up-2-Wo6_RQ5D.mjs +0 -18
  376. package/dist/book-up-DxkHd1Lx.mjs +0 -22
  377. package/dist/book-user-emmAsgFc.mjs +0 -22
  378. package/dist/book-x-CQDQSyMH.mjs +0 -22
  379. package/dist/bookmark-4dP0aKg6.mjs +0 -14
  380. package/dist/bookmark-check-CK-0U0Bv.mjs +0 -15
  381. package/dist/bookmark-minus-hDNcsCkS.mjs +0 -15
  382. package/dist/bookmark-plus-CfsgftdU.mjs +0 -16
  383. package/dist/bookmark-x-DSMCknl-.mjs +0 -16
  384. package/dist/boom-box-Cmee64Tk.mjs +0 -20
  385. package/dist/bot-CGqta80h.mjs +0 -19
  386. package/dist/bot-message-square-ERCAV8eb.mjs +0 -25
  387. package/dist/bot-off-BYR1YCaC.mjs +0 -20
  388. package/dist/bottle-wine-ChHzx-hY.mjs +0 -21
  389. package/dist/bow-arrow-BbHvP_IY.mjs +0 -27
  390. package/dist/box-DM3jevsK.mjs +0 -22
  391. package/dist/boxes-hF6CpZ2v.mjs +0 -43
  392. package/dist/braces-DiWZyeeB.mjs +0 -24
  393. package/dist/brackets-CnDZ9nOZ.mjs +0 -15
  394. package/dist/brain-CX2FuJEe.mjs +0 -21
  395. package/dist/brain-circuit-quCu3v5n.mjs +0 -32
  396. package/dist/brain-cog-l5CEJN_H.mjs +0 -40
  397. package/dist/brick-wall-fire-uaKp1P0r.mjs +0 -29
  398. package/dist/brick-wall-hcs8XT0K.mjs +0 -21
  399. package/dist/briefcase-business-CeCT5Ygm.mjs +0 -17
  400. package/dist/briefcase-conveyor-belt-CAsCUZfk.mjs +0 -20
  401. package/dist/briefcase-medical-DAvOBycb.mjs +0 -19
  402. package/dist/briefcase-oMBzmiJS.mjs +0 -15
  403. package/dist/bring-to-front-Y-JdOhQQ.mjs +0 -16
  404. package/dist/brush-Dw7eDX5V.mjs +0 -19
  405. package/dist/brush-cleaning-QIjwxJHr.mjs +0 -23
  406. package/dist/bubbles-ya0iclxh.mjs +0 -17
  407. package/dist/bug-CVo2ZDwC.mjs +0 -30
  408. package/dist/bug-off-B0KXeBc7.mjs +0 -22
  409. package/dist/bug-play-C4rv1tj7.mjs +0 -28
  410. package/dist/building-2-COBDvQSh.mjs +0 -20
  411. package/dist/building-EYTBbUrY.mjs +0 -24
  412. package/dist/bus-HjSHZdnN.mjs +0 -26
  413. package/dist/bus-front-D9OGV00n.mjs +0 -22
  414. package/dist/cable-COlVN2Ae.mjs +0 -26
  415. package/dist/cable-car-D8ByP-E-.mjs +0 -21
  416. package/dist/cake-cdR8W4QG.mjs +0 -22
  417. package/dist/cake-slice-C49FY424.mjs +0 -23
  418. package/dist/calculator-5ChdZOdF.mjs +0 -23
  419. package/dist/calendar-1-DP-eE7jA.mjs +0 -18
  420. package/dist/calendar-BCdHbMva.mjs +0 -17
  421. package/dist/calendar-arrow-down-C4QF4pX9.mjs +0 -22
  422. package/dist/calendar-arrow-up-DFPX6ISs.mjs +0 -19
  423. package/dist/calendar-check-2-C5Hy52L7.mjs +0 -18
  424. package/dist/calendar-check-AjC_bSJr.mjs +0 -18
  425. package/dist/calendar-clock-CETAAZjv.mjs +0 -19
  426. package/dist/calendar-cog-iJUEq6Dz.mjs +0 -26
  427. package/dist/calendar-days-BUdnzG8v.mjs +0 -23
  428. package/dist/calendar-fold-Do4oVxwl.mjs +0 -18
  429. package/dist/calendar-heart-COxSPb8B.mjs +0 -27
  430. package/dist/calendar-minus-2-CRuVubfk.mjs +0 -18
  431. package/dist/calendar-minus-B9IMvgsD.mjs +0 -18
  432. package/dist/calendar-off-FAZRdOXM.mjs +0 -19
  433. package/dist/calendar-plus-2-5E4JfKyX.mjs +0 -19
  434. package/dist/calendar-plus-DsNMd8Uo.mjs +0 -19
  435. package/dist/calendar-range-BixxUPsG.mjs +0 -21
  436. package/dist/calendar-search-DIjE1Kcl.mjs +0 -19
  437. package/dist/calendar-sync-Dq8RutHU.mjs +0 -21
  438. package/dist/calendar-x-2-CKGagINW.mjs +0 -19
  439. package/dist/calendar-x-2UCEQkga.mjs +0 -19
  440. package/dist/camera-l-P3oai6.mjs +0 -21
  441. package/dist/camera-off-DUS7Msfb.mjs +0 -17
  442. package/dist/candy-D0pMuI2P.mjs +0 -36
  443. package/dist/candy-cane-YqUMT8bP.mjs +0 -24
  444. package/dist/candy-off-CGFmra1l.mjs +0 -35
  445. package/dist/cannabis-BSYkTx8u.mjs +0 -21
  446. package/dist/captions-C_2r-Vp_.mjs +0 -15
  447. package/dist/captions-off-Cf8Z1ejw.mjs +0 -19
  448. package/dist/car-CJRafZpm.mjs +0 -23
  449. package/dist/car-front-F0liVo4E.mjs +0 -22
  450. package/dist/car-taxi-front-D4ieM2nM.mjs +0 -23
  451. package/dist/caravan-DsOOKujW.mjs +0 -17
  452. package/dist/card-sim--M2uMaGx.mjs +0 -23
  453. package/dist/carrot-D2xYKwmK.mjs +0 -22
  454. package/dist/case-lower-Dh3RCLLG.mjs +0 -17
  455. package/dist/case-sensitive-CK2N1_7l.mjs +0 -17
  456. package/dist/case-upper-DqcozNqz.mjs +0 -22
  457. package/dist/cassette-tape-BEQrFrUS.mjs +0 -18
  458. package/dist/cast-YGq6e4wZ.mjs +0 -17
  459. package/dist/castle-BpVIN5G3.mjs +0 -21
  460. package/dist/cat-EQe74QcU.mjs +0 -23
  461. package/dist/cctv-uFkHPSkH.mjs +0 -30
  462. package/dist/chart-area-C72HuImW.mjs +0 -21
  463. package/dist/chart-bar-Duu0z7QY.mjs +0 -17
  464. package/dist/chart-bar-big-_nU1NUHN.mjs +0 -16
  465. package/dist/chart-bar-decreasing-DVjHblcY.mjs +0 -17
  466. package/dist/chart-bar-increasing-DOiAD7As.mjs +0 -17
  467. package/dist/chart-bar-stacked-DCRoqA5P.mjs +0 -18
  468. package/dist/chart-candlestick-9WQuwJFp.mjs +0 -20
  469. package/dist/chart-column-BMsQoAwS.mjs +0 -17
  470. package/dist/chart-column-big-DMtkfjJR.mjs +0 -16
  471. package/dist/chart-column-decreasing-Dv7mUgh1.mjs +0 -17
  472. package/dist/chart-column-increasing-Bq4Y39wr.mjs +0 -17
  473. package/dist/chart-column-stacked-BtxN9S59.mjs +0 -18
  474. package/dist/chart-gantt-BjrTwjzS.mjs +0 -17
  475. package/dist/chart-line-DxAw4S1x.mjs +0 -15
  476. package/dist/chart-network-D06Kl0t1.mjs +0 -20
  477. package/dist/chart-no-axes-column-BlIy8jQD.mjs +0 -16
  478. package/dist/chart-no-axes-column-decreasing-CTbUocEG.mjs +0 -16
  479. package/dist/chart-no-axes-column-increasing-BK3yuhVM.mjs +0 -16
  480. package/dist/chart-no-axes-combined-DuhaV-5G.mjs +0 -22
  481. package/dist/chart-no-axes-gantt-Cd-PC0yj.mjs +0 -16
  482. package/dist/chart-pie-C-vLfQp7.mjs +0 -21
  483. package/dist/chart-scatter-BlnAk4gR.mjs +0 -19
  484. package/dist/chart-spline-RGSljJTf.mjs +0 -15
  485. package/dist/check-BmcylvsH.mjs +0 -12
  486. package/dist/check-check-DN4M2VGL.mjs +0 -15
  487. package/dist/check-line-D5Zbrrk-.mjs +0 -16
  488. package/dist/chef-hat-IX46aMe0.mjs +0 -21
  489. package/dist/cherry-8Wpt2Fog.mjs +0 -17
  490. package/dist/chevron-first-BzEWP8p5.mjs +0 -15
  491. package/dist/chevron-last-DA1K0JK4.mjs +0 -15
  492. package/dist/chevron-left-XxAGHYMj.mjs +0 -12
  493. package/dist/chevron-right-DQ86H9Cu.mjs +0 -12
  494. package/dist/chevron-up-DxJACCYi.mjs +0 -12
  495. package/dist/chevrons-down-CiAJYl7j.mjs +0 -15
  496. package/dist/chevrons-down-up-CUT-PuFk.mjs +0 -15
  497. package/dist/chevrons-left-DNqi1j1j.mjs +0 -15
  498. package/dist/chevrons-left-right-CJJXyBWv.mjs +0 -15
  499. package/dist/chevrons-left-right-ellipsis-DkpMNZqV.mjs +0 -18
  500. package/dist/chevrons-right-H0Kp1jPD.mjs +0 -15
  501. package/dist/chevrons-right-left-BvLO7_0o.mjs +0 -15
  502. package/dist/chevrons-up-BO6nrnq8.mjs +0 -15
  503. package/dist/chevrons-up-down-CCAeht2h.mjs +0 -15
  504. package/dist/chrome-COU_gDlV.mjs +0 -18
  505. package/dist/church-BCiit0fL.mjs +0 -30
  506. package/dist/cigarette-B_ySIDHV.mjs +0 -18
  507. package/dist/cigarette-off-6GuWVYRs.mjs +0 -19
  508. package/dist/circle-arrow-down-D5XK0ATr.mjs +0 -16
  509. package/dist/circle-arrow-left-CHbC6ewy.mjs +0 -16
  510. package/dist/circle-arrow-out-down-left-Cx4NCiYK.mjs +0 -16
  511. package/dist/circle-arrow-out-down-right-WmOdU1Bq.mjs +0 -16
  512. package/dist/circle-arrow-out-up-left-Dt8MXTLe.mjs +0 -16
  513. package/dist/circle-arrow-out-up-right-CISaVHew.mjs +0 -16
  514. package/dist/circle-arrow-right-Bp7nwR4J.mjs +0 -16
  515. package/dist/circle-arrow-up-Dj-Fscsv.mjs +0 -16
  516. package/dist/circle-check-big-DNs6xr31.mjs +0 -15
  517. package/dist/circle-chevron-down-CgCRJ412.mjs +0 -15
  518. package/dist/circle-chevron-left-J-W00Rp1.mjs +0 -15
  519. package/dist/circle-chevron-right-YuFvZb43.mjs +0 -15
  520. package/dist/circle-chevron-up-dtPD-KfH.mjs +0 -15
  521. package/dist/circle-divide-DSh4Abk_.mjs +0 -17
  522. package/dist/circle-dollar-sign-blzh6NNe.mjs +0 -16
  523. package/dist/circle-dot-CusheZeT.mjs +0 -15
  524. package/dist/circle-dot-dashed-Dux42kE9.mjs +0 -22
  525. package/dist/circle-ellipsis-DTy4T_-_.mjs +0 -17
  526. package/dist/circle-equal-CoV3thi-.mjs +0 -16
  527. package/dist/circle-fading-arrow-up-DDqmXWRB.mjs +0 -20
  528. package/dist/circle-fading-plus-DnFwCLdW.mjs +0 -20
  529. package/dist/circle-gauge-BxFO7BEi.mjs +0 -16
  530. package/dist/circle-minus-BskNm45w.mjs +0 -15
  531. package/dist/circle-off-C8vN0VTI.mjs +0 -16
  532. package/dist/circle-parking-DvE6CBtS.mjs +0 -15
  533. package/dist/circle-parking-off-bv5qA4NC.mjs +0 -19
  534. package/dist/circle-pause-CIrLzJJB.mjs +0 -16
  535. package/dist/circle-percent-CcEOWXN1.mjs +0 -17
  536. package/dist/circle-play-CgI-IOwb.mjs +0 -21
  537. package/dist/circle-plus-DNvu81iJ.mjs +0 -16
  538. package/dist/circle-pound-sterling-BXhbwtyF.mjs +0 -17
  539. package/dist/circle-power-Bimkp0ut.mjs +0 -16
  540. package/dist/circle-question-mark-D-U23rKG.mjs +0 -16
  541. package/dist/circle-slash-2-DRUJ5Qr-.mjs +0 -15
  542. package/dist/circle-slash-Y2x9Qfj0.mjs +0 -15
  543. package/dist/circle-small-CjmWcQK3.mjs +0 -12
  544. package/dist/circle-star-B22kye2W.mjs +0 -21
  545. package/dist/circle-stop-VMRR1RW6.mjs +0 -15
  546. package/dist/circle-user-Cb0qcfq-.mjs +0 -16
  547. package/dist/circle-user-round-DYr1qXme.mjs +0 -16
  548. package/dist/circle-x-CPrzSyFT.mjs +0 -16
  549. package/dist/circuit-board-BOLDIWZD.mjs +0 -18
  550. package/dist/citrus-F4UH-6I0.mjs +0 -23
  551. package/dist/clapperboard-EB7KqBC7.mjs +0 -20
  552. package/dist/clipboard-DpsjZX5L.mjs +0 -21
  553. package/dist/clipboard-check-DDuADEGb.mjs +0 -22
  554. package/dist/clipboard-clock-B_JjPiCd.mjs +0 -18
  555. package/dist/clipboard-copy-bBvxLvAg.mjs +0 -18
  556. package/dist/clipboard-list-Bxzu40u7.mjs +0 -25
  557. package/dist/clipboard-minus-dSxk7GYZ.mjs +0 -22
  558. package/dist/clipboard-paste-Co4mpTmn.mjs +0 -18
  559. package/dist/clipboard-pen-C--sZ4Mt.mjs +0 -23
  560. package/dist/clipboard-pen-line-fFQTKcPI.mjs +0 -24
  561. package/dist/clipboard-plus-DD2YOG3H.mjs +0 -23
  562. package/dist/clipboard-type-BqDqtnAk.mjs +0 -24
  563. package/dist/clipboard-x-l0qCpUKM.mjs +0 -23
  564. package/dist/clock-1-QRRPWf4I.mjs +0 -15
  565. package/dist/clock-10-KAyElEJf.mjs +0 -15
  566. package/dist/clock-11-CLma0kuS.mjs +0 -15
  567. package/dist/clock-12-DVs9u36P.mjs +0 -15
  568. package/dist/clock-2-45IGhad_.mjs +0 -15
  569. package/dist/clock-3-CLp8qLWe.mjs +0 -15
  570. package/dist/clock-4-B7tdu1eE.mjs +0 -15
  571. package/dist/clock-5-DYGSRRbY.mjs +0 -15
  572. package/dist/clock-6-DYuHn-kN.mjs +0 -15
  573. package/dist/clock-7-CoaVLh6S.mjs +0 -15
  574. package/dist/clock-8-Bn8vk5kT.mjs +0 -15
  575. package/dist/clock-9-C_Fk7J_S.mjs +0 -15
  576. package/dist/clock-Kl-UUFxM.mjs +0 -15
  577. package/dist/clock-alert-Kvq3JIC4.mjs +0 -17
  578. package/dist/clock-arrow-down-BQaVSWOQ.mjs +0 -17
  579. package/dist/clock-arrow-up-BiyKDisj.mjs +0 -17
  580. package/dist/clock-fading-BqTeal9_.mjs +0 -19
  581. package/dist/clock-plus-BmXltmdQ.mjs +0 -17
  582. package/dist/closed-caption-CBQr6sRL.mjs +0 -16
  583. package/dist/cloud-KPCexTei.mjs +0 -14
  584. package/dist/cloud-alert-BPv3wc4c.mjs +0 -16
  585. package/dist/cloud-check--3FDREKP.mjs +0 -15
  586. package/dist/cloud-cog-BUTAszRJ.mjs +0 -28
  587. package/dist/cloud-download-Bwi2_7Sv.mjs +0 -16
  588. package/dist/cloud-drizzle-BeE4eq6l.mjs +0 -20
  589. package/dist/cloud-fog-CuV4Z82j.mjs +0 -16
  590. package/dist/cloud-hail-zTJ3NDrQ.mjs +0 -20
  591. package/dist/cloud-lightning-Ci9F2IHw.mjs +0 -15
  592. package/dist/cloud-moon-D6CP9ZxW.mjs +0 -21
  593. package/dist/cloud-moon-rain-jS7j1rym.mjs +0 -23
  594. package/dist/cloud-off-CN-TTREb.mjs +0 -19
  595. package/dist/cloud-rain-Bmk6HD0h.mjs +0 -17
  596. package/dist/cloud-rain-wind-DJwR6voX.mjs +0 -17
  597. package/dist/cloud-snow-m9HhX8yL.mjs +0 -20
  598. package/dist/cloud-sun-BQGzqkqg.mjs +0 -19
  599. package/dist/cloud-sun-rain-DqSM51Wx.mjs +0 -21
  600. package/dist/cloud-upload-gXZE35fv.mjs +0 -16
  601. package/dist/cloudy-l40vh98e.mjs +0 -15
  602. package/dist/clover-CXujNg0q.mjs +0 -22
  603. package/dist/club-Dhle1dd5.mjs +0 -21
  604. package/dist/code-B8gi3K0b.mjs +0 -15
  605. package/dist/code-xml-jsQiLGFd.mjs +0 -16
  606. package/dist/codepen-ByF7WdLt.mjs +0 -18
  607. package/dist/codesandbox-BYmpgoAF.mjs +0 -25
  608. package/dist/coffee-CSFAPAOF.mjs +0 -23
  609. package/dist/cog-Dx36dlEX.mjs +0 -27
  610. package/dist/coins-DyAkFAD1.mjs +0 -17
  611. package/dist/columns-2-Dsa4M484.mjs +0 -15
  612. package/dist/columns-3-DxsytuqD.mjs +0 -16
  613. package/dist/columns-3-cog-DDvWDtfP.mjs +0 -25
  614. package/dist/columns-4-1IzSPvFV.mjs +0 -17
  615. package/dist/combine-CkFXjLUD.mjs +0 -19
  616. package/dist/command-DrumzsAe.mjs +0 -17
  617. package/dist/compass-fKirfmhg.mjs +0 -21
  618. package/dist/component-Cf5QfeA9.mjs +0 -41
  619. package/dist/computer-BHaBb9Mt.mjs +0 -17
  620. package/dist/concierge-bell-Dd04FAT6.mjs +0 -20
  621. package/dist/cone-DMYvWoRp.mjs +0 -15
  622. package/dist/construction-CK75GywQ.mjs +0 -21
  623. package/dist/contact-CocDFXEu.mjs +0 -18
  624. package/dist/contact-round-PXePHE2H.mjs +0 -18
  625. package/dist/container-BOxbA_m7.mjs +0 -24
  626. package/dist/contrast-CuFQ1ZjA.mjs +0 -15
  627. package/dist/cookie-Dj2ujOB1.mjs +0 -19
  628. package/dist/cooking-pot-B1Fd0IiL.mjs +0 -23
  629. package/dist/copy-Cs6nWNsO.mjs +0 -15
  630. package/dist/copy-check-DSLjTRw4.mjs +0 -16
  631. package/dist/copy-minus-iBg7eMLY.mjs +0 -16
  632. package/dist/copy-plus-C8nHOidu.mjs +0 -17
  633. package/dist/copy-slash-Ci08dp6Z.mjs +0 -16
  634. package/dist/copy-x-BDP35oGY.mjs +0 -17
  635. package/dist/copyleft-CaKYgKMq.mjs +0 -15
  636. package/dist/copyright-CGhrgOae.mjs +0 -15
  637. package/dist/corner-down-left-xqS-P4ka.mjs +0 -15
  638. package/dist/corner-down-right-DDogz8Tq.mjs +0 -15
  639. package/dist/corner-left-down-DNrqMOqF.mjs +0 -15
  640. package/dist/corner-left-up-C2aN7dbH.mjs +0 -15
  641. package/dist/corner-right-down-CbjM6Dyg.mjs +0 -15
  642. package/dist/corner-right-up-D3pKkvhw.mjs +0 -15
  643. package/dist/corner-up-left-BST5gsLy.mjs +0 -15
  644. package/dist/corner-up-right-D93gweG_.mjs +0 -15
  645. package/dist/cpu-DmK8bTag.mjs +0 -27
  646. package/dist/creative-commons-AEv6MObB.mjs +0 -22
  647. package/dist/credit-card-C_kQYahb.mjs +0 -15
  648. package/dist/croissant-B8OWIM_j.mjs +0 -24
  649. package/dist/crop-C_oN91Vk.mjs +0 -15
  650. package/dist/cross-DLVwnKLx.mjs +0 -20
  651. package/dist/crosshair-C4pxV26e.mjs +0 -18
  652. package/dist/crown-C0CFbdbw.mjs +0 -21
  653. package/dist/cuboid-Do0pUeer.mjs +0 -22
  654. package/dist/cup-soda-BejWpwOV.mjs +0 -17
  655. package/dist/currency-C4DvYgfC.mjs +0 -18
  656. package/dist/cylinder-CuOL-WpA.mjs +0 -15
  657. package/dist/dam-9FSyozww.mjs +0 -26
  658. package/dist/database-0YIOtaZx.mjs +0 -16
  659. package/dist/database-backup-CL75KEeh.mjs +0 -25
  660. package/dist/database-zap-CAT3f0WX.mjs +0 -18
  661. package/dist/decimals-arrow-left-DEHgEAR8.mjs +0 -17
  662. package/dist/decimals-arrow-right-DBnksj3i.mjs +0 -18
  663. package/dist/delete-9fHHerrT.mjs +0 -22
  664. package/dist/dessert-3DoFyBAt.mjs +0 -22
  665. package/dist/diameter-CFcHdosz.mjs +0 -18
  666. package/dist/diamond-CGvCQ23P.mjs +0 -20
  667. package/dist/diamond-minus-CsdlW45a.mjs +0 -21
  668. package/dist/diamond-percent-B0AG0KOL.mjs +0 -23
  669. package/dist/diamond-plus-DtN2QHHj.mjs +0 -22
  670. package/dist/dice-1-msADNDl4.mjs +0 -15
  671. package/dist/dice-2-D0553yhp.mjs +0 -16
  672. package/dist/dice-3-CEezet3p.mjs +0 -17
  673. package/dist/dice-4-sHfj0Itj.mjs +0 -18
  674. package/dist/dice-5-Bu-lpoUg.mjs +0 -19
  675. package/dist/dice-6-zYgt7xrZ.mjs +0 -20
  676. package/dist/dices-BQlixHT5.mjs +0 -22
  677. package/dist/diff-DP83CojG.mjs +0 -16
  678. package/dist/disc-2-BnLinQux.mjs +0 -16
  679. package/dist/disc-3-DBq3UIva.mjs +0 -17
  680. package/dist/disc-BVoIQaZB.mjs +0 -15
  681. package/dist/disc-album-CYuSHHgS.mjs +0 -16
  682. package/dist/divide-g2DAvx9S.mjs +0 -16
  683. package/dist/dna-off-9FZpY4ca.mjs +0 -23
  684. package/dist/dna-xup_O8m7.mjs +0 -24
  685. package/dist/dock-pgButQRY.mjs +0 -16
  686. package/dist/dog-DsXJupzi.mjs +0 -30
  687. package/dist/dollar-sign-CuIO2tXg.mjs +0 -15
  688. package/dist/donut-O6O2Vj1F.mjs +0 -21
  689. package/dist/door-closed-0mIO2H70.mjs +0 -16
  690. package/dist/door-closed-locked-C1iPoA-L.mjs +0 -18
  691. package/dist/door-open-BaAggYT7.mjs +0 -24
  692. package/dist/dot-C0kzwGr3.mjs +0 -12
  693. package/dist/download-cCXA87oJ.mjs +0 -16
  694. package/dist/drafting-compass-3XDEENrB.mjs +0 -18
  695. package/dist/drama-D3JdudrB.mjs +0 -27
  696. package/dist/dribbble-BNQzRUpz.mjs +0 -17
  697. package/dist/drill-BGvfpANP.mjs +0 -28
  698. package/dist/drone-Zayh698_.mjs +0 -22
  699. package/dist/droplet-DPG8NmYg.mjs +0 -20
  700. package/dist/droplet-off-BIfczt0Q.mjs +0 -25
  701. package/dist/droplets-BItsfwJP.mjs +0 -27
  702. package/dist/drum-q-2YaJh0.mjs +0 -20
  703. package/dist/drumstick-mGjGZ5kq.mjs +0 -24
  704. package/dist/dumbbell-COTais8X.mjs +0 -30
  705. package/dist/ear-BxL2esrf.mjs +0 -15
  706. package/dist/ear-off-f0Ky3-v5.mjs +0 -18
  707. package/dist/earth-CkNv7E9g.mjs +0 -23
  708. package/dist/earth-lock-D6HgirD6.mjs +0 -19
  709. package/dist/eclipse-upnx-N0P.mjs +0 -15
  710. package/dist/egg-C03UwYKm.mjs +0 -14
  711. package/dist/egg-fried-U6WSzvAk.mjs +0 -21
  712. package/dist/egg-off-Ch0Ln3Sn.mjs +0 -16
  713. package/dist/ellipsis-D4gMk5N_.mjs +0 -16
  714. package/dist/ellipsis-vertical-BnAse1ye.mjs +0 -16
  715. package/dist/equal-CFt6Ciot.mjs +0 -15
  716. package/dist/equal-approximately-BcoCO1fg.mjs +0 -15
  717. package/dist/equal-not-D1qvebHL.mjs +0 -16
  718. package/dist/eraser-B4V8PZts.mjs +0 -21
  719. package/dist/ethernet-port-YFfZUGt0.mjs +0 -24
  720. package/dist/euro-CkXWDSE1.mjs +0 -22
  721. package/dist/expand-n5gw1tEG.mjs +0 -21
  722. package/dist/external-link-BtgVnpey.mjs +0 -16
  723. package/dist/eye-CMAwD73L.mjs +0 -21
  724. package/dist/eye-closed-DS-gHwLz.mjs +0 -18
  725. package/dist/eye-off-B0gRqprE.mjs +0 -29
  726. package/dist/facebook-Cp5kKFbq.mjs +0 -17
  727. package/dist/factory-Duogi5Uf.mjs +0 -23
  728. package/dist/fan-DxTvzMZ5.mjs +0 -21
  729. package/dist/fast-forward-CG0hvhwL.mjs +0 -21
  730. package/dist/feather-HPuK4Go_.mjs +0 -22
  731. package/dist/fence-GdIoOINY.mjs +0 -20
  732. package/dist/ferris-wheel-z-k64Udx.mjs +0 -22
  733. package/dist/figma-D-f0N1ga.mjs +0 -18
  734. package/dist/file-CKOPy1wV.mjs +0 -15
  735. package/dist/file-archive-Bkb8JLxT.mjs +0 -22
  736. package/dist/file-audio-2-YRGQN880.mjs +0 -18
  737. package/dist/file-audio-oZlCvGQv.mjs +0 -22
  738. package/dist/file-axis-3d-BG7fcix2.mjs +0 -17
  739. package/dist/file-badge-2-HKyfjWev.mjs +0 -22
  740. package/dist/file-badge-BgVZ0Mw5.mjs +0 -23
  741. package/dist/file-box-B9DApX6_.mjs +0 -24
  742. package/dist/file-chart-column-ZGrZxciY.mjs +0 -18
  743. package/dist/file-chart-column-increasing-CK9vx_7R.mjs +0 -18
  744. package/dist/file-chart-line-DWOJtsLI.mjs +0 -16
  745. package/dist/file-chart-pie-P78UuPhl.mjs +0 -23
  746. package/dist/file-check-2-D4fsTZfI.mjs +0 -16
  747. package/dist/file-check-zeFfON7y.mjs +0 -16
  748. package/dist/file-clock-jV4At4r3.mjs +0 -17
  749. package/dist/file-code-2-DLqm-98u.mjs +0 -17
  750. package/dist/file-code-CSPCgIBW.mjs +0 -17
  751. package/dist/file-cog-Db-ZT-lx.mjs +0 -30
  752. package/dist/file-diff-DZvnBWZW.mjs +0 -17
  753. package/dist/file-digit-nvyX7Lim.mjs +0 -18
  754. package/dist/file-down-NYCQXE3Q.mjs +0 -17
  755. package/dist/file-heart-BCRPgTwr.mjs +0 -25
  756. package/dist/file-image-Ce9Kq5et.mjs +0 -17
  757. package/dist/file-input-B80S1zuS.mjs +0 -17
  758. package/dist/file-json-2-wjM_pYfS.mjs +0 -23
  759. package/dist/file-json-hkVVrKrh.mjs +0 -23
  760. package/dist/file-key-2-Dw10m0XZ.mjs +0 -18
  761. package/dist/file-key-DCh7Kzhe.mjs +0 -17
  762. package/dist/file-lock-2-B1f7aOkT.mjs +0 -17
  763. package/dist/file-lock-DTPTGydh.mjs +0 -16
  764. package/dist/file-minus-2-h4-kK3zK.mjs +0 -16
  765. package/dist/file-minus-DuRt7DVr.mjs +0 -16
  766. package/dist/file-music-CXpV9H7H.mjs +0 -17
  767. package/dist/file-output-VH3VZ7zE.mjs +0 -18
  768. package/dist/file-pen-9pD70kJR.mjs +0 -22
  769. package/dist/file-pen-line-BL0V1a5g.mjs +0 -28
  770. package/dist/file-play-2YMHT9Lz.mjs +0 -22
  771. package/dist/file-plus-2-Wgrn4xKo.mjs +0 -17
  772. package/dist/file-plus-28wWtZ1b.mjs +0 -17
  773. package/dist/file-question-mark-D7mhdjg2.mjs +0 -16
  774. package/dist/file-scan-CZK9Zr9z.mjs +0 -19
  775. package/dist/file-search-2-CI6JWcBx.mjs +0 -17
  776. package/dist/file-search-Dn0z0dyW.mjs +0 -20
  777. package/dist/file-sliders-j4kI8QPh.mjs +0 -19
  778. package/dist/file-spreadsheet-BQFVZuce.mjs +0 -19
  779. package/dist/file-stack-BhOOHd5H.mjs +0 -22
  780. package/dist/file-symlink-DvwvEM3s.mjs +0 -22
  781. package/dist/file-terminal-CzhBw-iV.mjs +0 -17
  782. package/dist/file-text-CplLhgvB.mjs +0 -18
  783. package/dist/file-type-2-BapVq8qO.mjs +0 -18
  784. package/dist/file-type-DvNTXOw9.mjs +0 -18
  785. package/dist/file-up-Csb-I1VV.mjs +0 -17
  786. package/dist/file-user-Bs50xrn7.mjs +0 -17
  787. package/dist/file-video-camera-CW-Esvj3.mjs +0 -23
  788. package/dist/file-volume-2-AN9BI0vs.mjs +0 -18
  789. package/dist/file-volume-CsoCwpVC.mjs +0 -26
  790. package/dist/file-warning-CgyicvVS.mjs +0 -16
  791. package/dist/file-x-2-CHol2CDM.mjs +0 -17
  792. package/dist/file-x-CAr2JriW.mjs +0 -17
  793. package/dist/files-CoWX8Muq.mjs +0 -22
  794. package/dist/film-BX6n_zkd.mjs +0 -21
  795. package/dist/fingerprint-B6fbilqd.mjs +0 -22
  796. package/dist/fire-extinguisher-BepvqGm_.mjs +0 -19
  797. package/dist/fish-DsYfSjuC.mjs +0 -37
  798. package/dist/fish-off-D8oJKwgd.mjs +0 -34
  799. package/dist/fish-symbol-mADd_IYM.mjs +0 -14
  800. package/dist/flag-F2gAGgxO.mjs +0 -20
  801. package/dist/flag-off-B2FYyjLm.mjs +0 -17
  802. package/dist/flag-triangle-left-B5scQFC8.mjs +0 -17
  803. package/dist/flag-triangle-right-DfPhLm-S.mjs +0 -17
  804. package/dist/flame-D70zN7GB.mjs +0 -20
  805. package/dist/flame-kindling-DEQWVPfr.mjs +0 -22
  806. package/dist/flashlight-OO7jl5D-.mjs +0 -22
  807. package/dist/flashlight-off-psi1lmXm.mjs +0 -17
  808. package/dist/flask-conical-CP_o2Igt.mjs +0 -22
  809. package/dist/flask-conical-off-GIstW6KQ.mjs +0 -19
  810. package/dist/flask-round-C3BHpgGV.mjs +0 -16
  811. package/dist/flip-horizontal-2-BiAAR6yT.mjs +0 -19
  812. package/dist/flip-horizontal-CpICS89E.mjs +0 -19
  813. package/dist/flip-vertical-2-eDJSHeJ7.mjs +0 -19
  814. package/dist/flip-vertical-BQ6XYyIP.mjs +0 -19
  815. package/dist/flower-2-CnJP-fPo.mjs +0 -24
  816. package/dist/flower-DmL_O2Yk.mjs +0 -29
  817. package/dist/focus-YQB-A6pY.mjs +0 -18
  818. package/dist/fold-horizontal-B8kGm0S8.mjs +0 -21
  819. package/dist/fold-vertical-C13FPAfK.mjs +0 -21
  820. package/dist/folder-DkXkt0w1.mjs +0 -20
  821. package/dist/folder-archive-qWtTOCBD.mjs +0 -23
  822. package/dist/folder-check-DWoVR8JG.mjs +0 -21
  823. package/dist/folder-clock-Dg3i3Rqf.mjs +0 -22
  824. package/dist/folder-closed-D3l12cg_.mjs +0 -21
  825. package/dist/folder-code-CsIKqmxi.mjs +0 -22
  826. package/dist/folder-cog-BBo5FdwE.mjs +0 -29
  827. package/dist/folder-dot-qeWd1SQ1.mjs +0 -21
  828. package/dist/folder-down-B89HVd3I.mjs +0 -22
  829. package/dist/folder-git-2-D5NlkX1x.mjs +0 -23
  830. package/dist/folder-git-CZu7lfky.mjs +0 -23
  831. package/dist/folder-heart-J9LKeCu0.mjs +0 -27
  832. package/dist/folder-input-CRV_u3p_.mjs +0 -22
  833. package/dist/folder-kanban-DPiHjNVD.mjs +0 -23
  834. package/dist/folder-key-CZ1Ys_dO.mjs +0 -23
  835. package/dist/folder-lock-CKrTuKND.mjs +0 -22
  836. package/dist/folder-minus-BW93YZSq.mjs +0 -21
  837. package/dist/folder-open-Dkb7lb_U.mjs +0 -20
  838. package/dist/folder-open-dot-vTeLAxBE.mjs +0 -21
  839. package/dist/folder-output-D2A0mWLz.mjs +0 -22
  840. package/dist/folder-pen-CzD5Rba_.mjs +0 -27
  841. package/dist/folder-plus-DwfqJoTk.mjs +0 -22
  842. package/dist/folder-root-D7Qo8Ei_.mjs +0 -22
  843. package/dist/folder-search-2-DXhl8wzz.mjs +0 -22
  844. package/dist/folder-search-Cuj6jPOj.mjs +0 -22
  845. package/dist/folder-symlink-DuQ74R5A.mjs +0 -21
  846. package/dist/folder-sync-DIb3hlPD.mjs +0 -24
  847. package/dist/folder-tree-BD4f5f7c.mjs +0 -29
  848. package/dist/folder-up-C_jQgsCC.mjs +0 -22
  849. package/dist/folder-x-A4WkGl8B.mjs +0 -22
  850. package/dist/folders-DeDQiCeV.mjs +0 -24
  851. package/dist/footprints-BuWQsmFw.mjs +0 -29
  852. package/dist/forklift-0m85jP3p.mjs +0 -17
  853. package/dist/forward-C7SEH1q4.mjs +0 -15
  854. package/dist/frame-DhfMzPtv.mjs +0 -17
  855. package/dist/framer-DkBSyh_J.mjs +0 -14
  856. package/dist/frown-DvA_GLfi.mjs +0 -17
  857. package/dist/fuel-Cx3HFHIN.mjs +0 -23
  858. package/dist/fullscreen-CORM5Wp0.mjs +0 -18
  859. package/dist/funnel-plus-x3LjpBR4.mjs +0 -22
  860. package/dist/funnel-x-B8No-eD6.mjs +0 -22
  861. package/dist/funnel-zCUpnvSx.mjs +0 -20
  862. package/dist/gallery-horizontal-end-ZCC7hxE2.mjs +0 -16
  863. package/dist/gallery-horizontal-gpvUhOZG.mjs +0 -16
  864. package/dist/gallery-thumbnails-DVizfWqS.mjs +0 -18
  865. package/dist/gallery-vertical-C0kiApNg.mjs +0 -16
  866. package/dist/gallery-vertical-end-C6R6jD2U.mjs +0 -16
  867. package/dist/gamepad-2-BNwnrwos.mjs +0 -24
  868. package/dist/gamepad-CzFKquiZ.mjs +0 -18
  869. package/dist/gauge-BwDSvg5Q.mjs +0 -15
  870. package/dist/gavel-DhZv2Byj.mjs +0 -18
  871. package/dist/gem-D89o5jCC.mjs +0 -22
  872. package/dist/georgian-lari-DgLmP18R.mjs +0 -17
  873. package/dist/ghost-B6VdOAEw.mjs +0 -22
  874. package/dist/gift-BPeg8VWM.mjs +0 -23
  875. package/dist/git-branch-3vC-uEcD.mjs +0 -17
  876. package/dist/git-branch-plus-Dl9GYs-e.mjs +0 -19
  877. package/dist/git-commit-horizontal-CjUlsuDP.mjs +0 -16
  878. package/dist/git-commit-vertical-CeCE3H1y.mjs +0 -16
  879. package/dist/git-compare-ChzDRWgT.mjs +0 -17
  880. package/dist/git-compare-arrows-0ZVK-lCr.mjs +0 -19
  881. package/dist/git-fork-TeIJZwJg.mjs +0 -18
  882. package/dist/git-graph-DIYCwWoV.mjs +0 -19
  883. package/dist/git-merge-BvxnNCn8.mjs +0 -16
  884. package/dist/git-pull-request-arrow-B3FxRC91.mjs +0 -18
  885. package/dist/git-pull-request-closed-Dn-BrUzB.mjs +0 -19
  886. package/dist/git-pull-request-create-CretLl_u.mjs +0 -18
  887. package/dist/git-pull-request-create-arrow-C5H_jC8f.mjs +0 -19
  888. package/dist/git-pull-request-draft-C9UOqbnV.mjs +0 -18
  889. package/dist/git-pull-request-fa1QHfnp.mjs +0 -17
  890. package/dist/github-hrl4sPzv.mjs +0 -21
  891. package/dist/gitlab-CI6CITF7.mjs +0 -20
  892. package/dist/glass-water-CcBszzZb.mjs +0 -21
  893. package/dist/glasses-DctuuKx7.mjs +0 -18
  894. package/dist/globe-lock-CgJzByVk.mjs +0 -23
  895. package/dist/globe-pmEzOdg4.mjs +0 -16
  896. package/dist/goal-Dm492HBP.mjs +0 -16
  897. package/dist/gpu-Bkv6AD_0.mjs +0 -18
  898. package/dist/graduation-cap-dbRRKHnb.mjs +0 -22
  899. package/dist/grape-DQlUoTuZ.mjs +0 -22
  900. package/dist/grid-2x2-BJ50dkaD.mjs +0 -16
  901. package/dist/grid-2x2-check-mDoKKOAA.mjs +0 -21
  902. package/dist/grid-2x2-plus-BnBz4K9V.mjs +0 -22
  903. package/dist/grid-2x2-x-B0OmYUnL.mjs +0 -22
  904. package/dist/grid-3x2-CPhFCzjU.mjs +0 -17
  905. package/dist/grid-3x3-CqOqbODB.mjs +0 -18
  906. package/dist/grip-WgMvlXeI.mjs +0 -22
  907. package/dist/grip-horizontal-B4K8TD8N.mjs +0 -19
  908. package/dist/grip-vertical-B473dM8T.mjs +0 -19
  909. package/dist/group-B0SzJOnB.mjs +0 -19
  910. package/dist/guitar-DLdSLiB4.mjs +0 -29
  911. package/dist/ham-CezQkKZO.mjs +0 -29
  912. package/dist/hamburger-C7NeoaZ0.mjs +0 -23
  913. package/dist/hammer-DF49hoqK.mjs +0 -22
  914. package/dist/hand-BpTVhHqy.mjs +0 -23
  915. package/dist/hand-coins-Bbc22zUK.mjs +0 -24
  916. package/dist/hand-fist-CnflDKIQ.mjs +0 -23
  917. package/dist/hand-grab-BNdGxlie.mjs +0 -21
  918. package/dist/hand-heart-4Qw2eV7o.mjs +0 -29
  919. package/dist/hand-helping-CP8NTU2e.mjs +0 -22
  920. package/dist/hand-metal-EyF0Do0q.mjs +0 -23
  921. package/dist/hand-platter-CPN_Hcva.mjs +0 -25
  922. package/dist/handbag-Cb3kUsOr.mjs +0 -21
  923. package/dist/handshake-B6BBkZEg.mjs +0 -24
  924. package/dist/hard-drive-download-B4sV-YjY.mjs +0 -18
  925. package/dist/hard-drive-kfxOj8Ny.mjs +0 -23
  926. package/dist/hard-drive-upload-C1qq9G0f.mjs +0 -18
  927. package/dist/hard-hat-GpMQhU2j.mjs +0 -17
  928. package/dist/hash-DNX7bb_-.mjs +0 -17
  929. package/dist/hat-glasses-BY4F9PVf.mjs +0 -24
  930. package/dist/haze-DnX4A-IE.mjs +0 -21
  931. package/dist/hdmi-port-mFs82gbG.mjs +0 -21
  932. package/dist/heading-1-DT1QfUwE.mjs +0 -17
  933. package/dist/heading-2-BaE-JCt3.mjs +0 -17
  934. package/dist/heading-3-Dme_8nWe.mjs +0 -18
  935. package/dist/heading-4-DEbP8mhX.mjs +0 -18
  936. package/dist/heading-5-Cs7-aPvQ.mjs +0 -21
  937. package/dist/heading-6-DcONb5Fs.mjs +0 -18
  938. package/dist/heading-tI4q5-4e.mjs +0 -16
  939. package/dist/headphone-off-Ck_h_ghy.mjs +0 -24
  940. package/dist/headphones-mPp3WAO2.mjs +0 -20
  941. package/dist/headset-DIkZiVVz.mjs +0 -21
  942. package/dist/heart-BSddaJpm.mjs +0 -20
  943. package/dist/heart-crack-DtPBIuzJ.mjs +0 -27
  944. package/dist/heart-handshake-CMd1nKBb.mjs +0 -20
  945. package/dist/heart-minus-Op7_KhyK.mjs +0 -21
  946. package/dist/heart-off-BUWxTiKL.mjs +0 -28
  947. package/dist/heart-plus-CBHiVUu8.mjs +0 -22
  948. package/dist/heart-pulse-ZhTWkWRm.mjs +0 -21
  949. package/dist/heater-lfgpIbQk.mjs +0 -26
  950. package/dist/hexagon-BJ8TaEB9.mjs +0 -20
  951. package/dist/highlighter-Br_6GV-P.mjs +0 -15
  952. package/dist/history-C11BducL.mjs +0 -16
  953. package/dist/hop-CjSSeAZ5.mjs +0 -63
  954. package/dist/hop-off-BjVcut2N.mjs +0 -52
  955. package/dist/hospital-DnmVax9l.mjs +0 -24
  956. package/dist/hotel-DZRNkclm.mjs +0 -23
  957. package/dist/hourglass-SZHnG5L3.mjs +0 -26
  958. package/dist/house-BMo-Npdm.mjs +0 -21
  959. package/dist/house-plug-DmGNPGYR.mjs +0 -26
  960. package/dist/house-plus-Cnjx6f5P.mjs +0 -23
  961. package/dist/house-wifi-ZE_RKyzh.mjs +0 -23
  962. package/dist/ice-cream-bowl-C2vKEQbj.mjs +0 -22
  963. package/dist/ice-cream-cone-DQgQ4ir_.mjs +0 -16
  964. package/dist/id-card-JDAryCCP.mjs +0 -18
  965. package/dist/id-card-lanyard-oMl4gQ5B.mjs +0 -24
  966. package/dist/image-CTKSYf3w.mjs +0 -16
  967. package/dist/image-down-C5FkHCY2.mjs +0 -23
  968. package/dist/image-minus-Bimuf4zF.mjs +0 -17
  969. package/dist/image-off-6wSXarGl.mjs +0 -25
  970. package/dist/image-play-BpcMarBE.mjs +0 -23
  971. package/dist/image-plus-BNlb_1IQ.mjs +0 -18
  972. package/dist/image-up-Cx9fSKws.mjs +0 -23
  973. package/dist/image-upscale-Cqi34Gn6.mjs +0 -21
  974. package/dist/images-BDEEBedI.mjs +0 -17
  975. package/dist/import-C6fI1W31.mjs +0 -22
  976. package/dist/inbox-GBqD7CDz.mjs +0 -21
  977. package/dist/indent-decrease-qTEEl3jc.mjs +0 -17
  978. package/dist/indent-increase-JGgN5AbH.mjs +0 -17
  979. package/dist/index-BwNtmqJQ.mjs +0 -31557
  980. package/dist/index.es.js +0 -153
  981. package/dist/index.umd.js +0 -8366
  982. package/dist/indian-rupee-DTjsbNXL.mjs +0 -18
  983. package/dist/infinity-BDSmEv-u.mjs +0 -14
  984. package/dist/info-BCbN5_UP.mjs +0 -16
  985. package/dist/inspection-panel-D-FSZrBN.mjs +0 -18
  986. package/dist/instagram-BPHi6ab3.mjs +0 -16
  987. package/dist/italic-BpdugAWB.mjs +0 -16
  988. package/dist/iteration-ccw-BCGqFRV_.mjs +0 -15
  989. package/dist/iteration-cw-DYWeH9ZR.mjs +0 -15
  990. package/dist/japanese-yen-BgwHoRoK.mjs +0 -16
  991. package/dist/joystick-HR534_Qd.mjs +0 -23
  992. package/dist/kanban-W438Lvce.mjs +0 -16
  993. package/dist/key-Cx9B22VA.mjs +0 -16
  994. package/dist/key-round-CjWJg_28.mjs +0 -21
  995. package/dist/key-square-DhgGlElw.mjs +0 -28
  996. package/dist/keyboard-B9KPwTeY.mjs +0 -22
  997. package/dist/keyboard-music-BhzbXN4u.mjs +0 -22
  998. package/dist/keyboard-off-B0TLprtp.mjs +0 -23
  999. package/dist/lamp-BjpJWhuT.mjs +0 -25
  1000. package/dist/lamp-ceiling-ttuWftU3.mjs +0 -22
  1001. package/dist/lamp-desk-DJM5gMY8.mjs +0 -26
  1002. package/dist/lamp-floor-CJSCo8aP.mjs +0 -22
  1003. package/dist/lamp-wall-down-CEZK0hm1.mjs +0 -25
  1004. package/dist/lamp-wall-up-DhA9u9uS.mjs +0 -25
  1005. package/dist/land-plot-D-XFPfVW.mjs +0 -23
  1006. package/dist/landmark-CnHdyjHf.mjs +0 -25
  1007. package/dist/languages-C8U1L7Fg.mjs +0 -19
  1008. package/dist/laptop-AO8EPLu9.mjs +0 -21
  1009. package/dist/laptop-minimal-C2CD_3M5.mjs +0 -15
  1010. package/dist/laptop-minimal-check-CGlEgpE6.mjs +0 -16
  1011. package/dist/lasso-Dl7B_fXa.mjs +0 -22
  1012. package/dist/lasso-select-BZnUbpE6.mjs +0 -30
  1013. package/dist/laugh-Diiy7Kfl.mjs +0 -17
  1014. package/dist/layers-2-DTRkPreP.mjs +0 -27
  1015. package/dist/layers-Cz_pBWN2.mjs +0 -34
  1016. package/dist/layout-dashboard-D_D-U8jz.mjs +0 -17
  1017. package/dist/layout-grid-DJnBN9k2.mjs +0 -17
  1018. package/dist/layout-list-CeNxyubs.mjs +0 -19
  1019. package/dist/layout-panel-left-nOepVqtI.mjs +0 -16
  1020. package/dist/layout-panel-top-DR10MpzO.mjs +0 -16
  1021. package/dist/layout-template-CjlJcZOl.mjs +0 -16
  1022. package/dist/leaf-Bz6dXErq.mjs +0 -21
  1023. package/dist/leafy-green-DF1jAqSA.mjs +0 -21
  1024. package/dist/lectern-B5wo-8zn.mjs +0 -22
  1025. package/dist/letter-text-BShNCNco.mjs +0 -18
  1026. package/dist/library-DYcTDiOU.mjs +0 -17
  1027. package/dist/library-big-CujiSmGz.mjs +0 -22
  1028. package/dist/life-buoy-94oWNSp4.mjs +0 -19
  1029. package/dist/ligature-t2yrYd5E.mjs +0 -18
  1030. package/dist/lightbulb-DK3DEBPJ.mjs +0 -22
  1031. package/dist/lightbulb-off-DWJ7HmhR.mjs +0 -18
  1032. package/dist/line-squiggle-DlELa3NW.mjs +0 -20
  1033. package/dist/link-2-Bu20_5Na.mjs +0 -16
  1034. package/dist/link-2-off-BzO9TsEo.mjs +0 -17
  1035. package/dist/link-BmDefg4D.mjs +0 -15
  1036. package/dist/linkedin-B_l21zzd.mjs +0 -22
  1037. package/dist/list-Cdgcy0B-.mjs +0 -19
  1038. package/dist/list-check-BPxP6c74.mjs +0 -17
  1039. package/dist/list-checks-DrPD2XaM.mjs +0 -18
  1040. package/dist/list-collapse-BNaCKHjG.mjs +0 -18
  1041. package/dist/list-end-BmSqlHUs.mjs +0 -18
  1042. package/dist/list-filter-B7K0lqEi.mjs +0 -16
  1043. package/dist/list-filter-plus-CJhVsaib.mjs +0 -18
  1044. package/dist/list-minus-BhsAKR3H.mjs +0 -17
  1045. package/dist/list-music-D5BrrCpm.mjs +0 -18
  1046. package/dist/list-ordered-BYTtk-Y_.mjs +0 -19
  1047. package/dist/list-plus-CzG-K42h.mjs +0 -18
  1048. package/dist/list-restart-DqDsPgdi.mjs +0 -24
  1049. package/dist/list-start-hmCdQTrT.mjs +0 -18
  1050. package/dist/list-todo-C3QhfNwN.mjs +0 -18
  1051. package/dist/list-tree-CXEPhqP-.mjs +0 -18
  1052. package/dist/list-video-B-huPznF.mjs +0 -23
  1053. package/dist/list-x-DH4v4hD_.mjs +0 -18
  1054. package/dist/loader-DvCy8V0_.mjs +0 -21
  1055. package/dist/loader-circle-Br7oFO_a.mjs +0 -12
  1056. package/dist/loader-pinwheel-CuK0Tzht.mjs +0 -17
  1057. package/dist/locate-ZnDPqkqP.mjs +0 -18
  1058. package/dist/locate-fixed-DAzfEA2q.mjs +0 -19
  1059. package/dist/locate-off-CP43M-Og.mjs +0 -20
  1060. package/dist/lock-DrO58Y0F.mjs +0 -15
  1061. package/dist/lock-keyhole-CiK4lT2f.mjs +0 -16
  1062. package/dist/lock-keyhole-open-DAwujlF4.mjs +0 -16
  1063. package/dist/lock-open-C7XtqFSV.mjs +0 -15
  1064. package/dist/log-in-BY2qVG48.mjs +0 -16
  1065. package/dist/log-out-Yko3MhVV.mjs +0 -16
  1066. package/dist/logs-CdiwHgnw.mjs +0 -22
  1067. package/dist/lollipop-V1PJcl0L.mjs +0 -16
  1068. package/dist/luggage-RsX_XMY6.mjs +0 -21
  1069. package/dist/magnet-ChBuSo-W.mjs +0 -22
  1070. package/dist/mail-D2q_sskZ.mjs +0 -15
  1071. package/dist/mail-check-1fGsRAgm.mjs +0 -16
  1072. package/dist/mail-minus-C6mHYrS3.mjs +0 -16
  1073. package/dist/mail-open-BqQrLMVE.mjs +0 -21
  1074. package/dist/mail-plus-qJBOvttB.mjs +0 -17
  1075. package/dist/mail-question-mark-DhJkm1Ei.mjs +0 -23
  1076. package/dist/mail-search-CA6Xp9Co.mjs +0 -18
  1077. package/dist/mail-warning-CcaDp_jk.mjs +0 -17
  1078. package/dist/mail-x-COHsvFbt.mjs +0 -17
  1079. package/dist/mailbox-Cdr0Ae1T.mjs +0 -23
  1080. package/dist/mails-CAtTBHpp.mjs +0 -16
  1081. package/dist/map-D3AzNtZn.mjs +0 -22
  1082. package/dist/map-minus-BLCKXOqJ.mjs +0 -23
  1083. package/dist/map-pin-D_4tv8iv.mjs +0 -21
  1084. package/dist/map-pin-check-BXe5HAfF.mjs +0 -22
  1085. package/dist/map-pin-check-inside-BnUyqMkH.mjs +0 -21
  1086. package/dist/map-pin-house-DmnFcXMY.mjs +0 -29
  1087. package/dist/map-pin-minus-CpayyYYP.mjs +0 -22
  1088. package/dist/map-pin-minus-inside-p8yEQYd5.mjs +0 -21
  1089. package/dist/map-pin-off-DOC99Qld.mjs +0 -24
  1090. package/dist/map-pin-pen-DUCtLoFs.mjs +0 -22
  1091. package/dist/map-pin-plus-B7Okgz18.mjs +0 -23
  1092. package/dist/map-pin-plus-inside-DY5JcAa6.mjs +0 -22
  1093. package/dist/map-pin-x-inside-Dk7ZlzSj.mjs +0 -22
  1094. package/dist/map-pin-x-wIe7ybiN.mjs +0 -23
  1095. package/dist/map-pinned-CdHE2N_U.mjs +0 -28
  1096. package/dist/map-plus-DJRQ2omS.mjs +0 -24
  1097. package/dist/mars-DvbODfxW.mjs +0 -16
  1098. package/dist/mars-stroke-BD1Gu977.mjs +0 -17
  1099. package/dist/martini-BYoTwsqC.mjs +0 -16
  1100. package/dist/maximize-2-DbkRUmg-.mjs +0 -17
  1101. package/dist/maximize-Cbo8AUb-.mjs +0 -17
  1102. package/dist/medal-CM4d4dX6.mjs +0 -25
  1103. package/dist/megaphone-DRsJKrLe.mjs +0 -22
  1104. package/dist/megaphone-off-DQPDVBkA.mjs +0 -21
  1105. package/dist/meh-a1Ki_vAN.mjs +0 -17
  1106. package/dist/memory-stick-IohjPEG0.mjs +0 -28
  1107. package/dist/menu-D5FMSJI3.mjs +0 -16
  1108. package/dist/merge-W6-S485f.mjs +0 -16
  1109. package/dist/message-circle-D2MkXjiS.mjs +0 -20
  1110. package/dist/message-circle-code--kHzT1LH.mjs +0 -22
  1111. package/dist/message-circle-dashed-Bv5kN0f8.mjs +0 -21
  1112. package/dist/message-circle-heart-DFMmU6iE.mjs +0 -27
  1113. package/dist/message-circle-more-D9ZOgiq9.mjs +0 -23
  1114. package/dist/message-circle-off-DPG6ahzJ.mjs +0 -22
  1115. package/dist/message-circle-plus-BLlxgJ1L.mjs +0 -22
  1116. package/dist/message-circle-question-mark-a6WzId0z.mjs +0 -22
  1117. package/dist/message-circle-reply-CjZnkv7u.mjs +0 -22
  1118. package/dist/message-circle-warning-BId8yXUm.mjs +0 -22
  1119. package/dist/message-circle-x-BQV4M8U3.mjs +0 -22
  1120. package/dist/message-square-DAz4Ky_B.mjs +0 -20
  1121. package/dist/message-square-code-DoBR1Vag.mjs +0 -22
  1122. package/dist/message-square-dashed-h-AzNChz.mjs +0 -29
  1123. package/dist/message-square-diff-DYVOGjzI.mjs +0 -23
  1124. package/dist/message-square-dot-B5rWCzKf.mjs +0 -21
  1125. package/dist/message-square-heart-6TiCBpL_.mjs +0 -27
  1126. package/dist/message-square-lock-CAcs7F5P.mjs +0 -22
  1127. package/dist/message-square-more-C2PD7aBq.mjs +0 -23
  1128. package/dist/message-square-off-CCPHOQhK.mjs +0 -22
  1129. package/dist/message-square-plus-C69Gwiep.mjs +0 -22
  1130. package/dist/message-square-quote-B1VwJuwX.mjs +0 -22
  1131. package/dist/message-square-reply-Bd9xCfDI.mjs +0 -22
  1132. package/dist/message-square-share-CNB-HNzp.mjs +0 -22
  1133. package/dist/message-square-text-Bxr1sDtL.mjs +0 -23
  1134. package/dist/message-square-warning-CqodBgyy.mjs +0 -22
  1135. package/dist/message-square-x-B95jOjjG.mjs +0 -22
  1136. package/dist/messages-square-DgfpOmA9.mjs +0 -27
  1137. package/dist/mic-CIgtdmHk.mjs +0 -16
  1138. package/dist/mic-off-sPhXnQAf.mjs +0 -19
  1139. package/dist/mic-vocal-D7ZkwJ6S.mjs +0 -28
  1140. package/dist/microchip-Dl4BPYVO.mjs +0 -30
  1141. package/dist/microscope-CXpUMU5J.mjs +0 -19
  1142. package/dist/microwave-O0Q3K8_K.mjs +0 -18
  1143. package/dist/milestone-BMNQx2p-.mjs +0 -22
  1144. package/dist/milk-CoHXzRdL.mjs +0 -22
  1145. package/dist/milk-off-D9UDmZ4l.mjs +0 -23
  1146. package/dist/minimize-2-CV6_SF_8.mjs +0 -17
  1147. package/dist/minimize-DejxYjKB.mjs +0 -17
  1148. package/dist/minus-Sh2WaeaJ.mjs +0 -12
  1149. package/dist/monitor-_QK_mLsU.mjs +0 -16
  1150. package/dist/monitor-check-B8YwV-iE.mjs +0 -17
  1151. package/dist/monitor-cog-JhIN6vLt.mjs +0 -25
  1152. package/dist/monitor-dot-Z3Bnv2mc.mjs +0 -20
  1153. package/dist/monitor-down-vBIZ4b16.mjs +0 -18
  1154. package/dist/monitor-off-VqKPNlHt.mjs +0 -18
  1155. package/dist/monitor-pause-BJW9zXuG.mjs +0 -18
  1156. package/dist/monitor-play-Cz0nE7tC.mjs +0 -23
  1157. package/dist/monitor-smartphone-CFQodFDL.mjs +0 -17
  1158. package/dist/monitor-speaker-EgdmLTeC.mjs +0 -18
  1159. package/dist/monitor-stop-BHGjv0-8.mjs +0 -17
  1160. package/dist/monitor-up-DZEZPEVc.mjs +0 -18
  1161. package/dist/monitor-x-BtsP26ye.mjs +0 -18
  1162. package/dist/moon-DTsrbfD3.mjs +0 -20
  1163. package/dist/moon-star-e0gjq6wj.mjs +0 -22
  1164. package/dist/mountain-DxOK_x3C.mjs +0 -12
  1165. package/dist/mountain-snow-DFvKsDyR.mjs +0 -18
  1166. package/dist/mouse-5rugwRpz.mjs +0 -15
  1167. package/dist/mouse-off-Bybo7qhJ.mjs +0 -17
  1168. package/dist/mouse-pointer-2-BQdhazsX.mjs +0 -20
  1169. package/dist/mouse-pointer-DcRz1f3B.mjs +0 -21
  1170. package/dist/mouse-pointer-ban-BdQlBKCI.mjs +0 -22
  1171. package/dist/mouse-pointer-click-PvuAXsx2.mjs +0 -24
  1172. package/dist/move-3d-DIS2BrIs.mjs +0 -17
  1173. package/dist/move-BvbcUb_6.mjs +0 -19
  1174. package/dist/move-diagonal-2-BF08yinQ.mjs +0 -16
  1175. package/dist/move-diagonal-CUGOvVtc.mjs +0 -16
  1176. package/dist/move-down-Be2pFFRG.mjs +0 -15
  1177. package/dist/move-down-left-BvEi6p2G.mjs +0 -15
  1178. package/dist/move-down-right-CGPSEsC5.mjs +0 -15
  1179. package/dist/move-horizontal-Cp70QySd.mjs +0 -16
  1180. package/dist/move-left-Ds5IWAEk.mjs +0 -15
  1181. package/dist/move-right-B5D6n0ca.mjs +0 -15
  1182. package/dist/move-up-D7B6Q27c.mjs +0 -15
  1183. package/dist/move-up-left-BY4g8sCH.mjs +0 -15
  1184. package/dist/move-up-right-DbQ_7_08.mjs +0 -15
  1185. package/dist/move-vertical-DHpJ-QKa.mjs +0 -16
  1186. package/dist/music-2-DYSvy0IL.mjs +0 -15
  1187. package/dist/music-3-45Vrh0Sp.mjs +0 -15
  1188. package/dist/music-4-CVZe6pbM.mjs +0 -17
  1189. package/dist/music-DzyHA0X7.mjs +0 -16
  1190. package/dist/navigation-2-T5xGx48D.mjs +0 -14
  1191. package/dist/navigation-2-off-C1CACT1b.mjs +0 -16
  1192. package/dist/navigation-CA6IdVBA.mjs +0 -14
  1193. package/dist/navigation-off-CMPBRi5r.mjs +0 -16
  1194. package/dist/network-CMsdzIRo.mjs +0 -18
  1195. package/dist/newspaper-yLzq4p7I.mjs +0 -23
  1196. package/dist/nfc-ilrkprdK.mjs +0 -17
  1197. package/dist/non-binary-BAq5CHL-.mjs +0 -17
  1198. package/dist/notebook-BBWkp2-k.mjs +0 -19
  1199. package/dist/notebook-pen--4w7UtR7.mjs +0 -25
  1200. package/dist/notebook-tabs-C3lxfMer.mjs +0 -22
  1201. package/dist/notebook-text-CYTcpZva.mjs +0 -21
  1202. package/dist/notepad-text-DIPzOCge.mjs +0 -20
  1203. package/dist/notepad-text-dashed-D3jO3D8U.mjs +0 -26
  1204. package/dist/nut-COeqay51.mjs +0 -28
  1205. package/dist/nut-off-CoIuzPds.mjs +0 -30
  1206. package/dist/octagon-T4sXUN16.mjs +0 -20
  1207. package/dist/octagon-alert-vXoQEjeb.mjs +0 -22
  1208. package/dist/octagon-minus-BZ2Z6YRv.mjs +0 -21
  1209. package/dist/octagon-pause-BpGQMVgt.mjs +0 -22
  1210. package/dist/octagon-x-BGuLV31b.mjs +0 -22
  1211. package/dist/omega-pjGHw9oq.mjs +0 -20
  1212. package/dist/option-B7g6JUTt.mjs +0 -15
  1213. package/dist/orbit-vrbzx4_l.mjs +0 -18
  1214. package/dist/origami-UrBA8YLO.mjs +0 -28
  1215. package/dist/package-2-o0VPl4iP.mjs +0 -22
  1216. package/dist/package-BkKon-PU.mjs +0 -23
  1217. package/dist/package-check-Bieve-iF.mjs +0 -24
  1218. package/dist/package-minus-DdvOb9Ph.mjs +0 -24
  1219. package/dist/package-open-4B4YT7QX.mjs +0 -35
  1220. package/dist/package-plus-DZXMs_5E.mjs +0 -25
  1221. package/dist/package-search-CV559qFr.mjs +0 -25
  1222. package/dist/package-x-DeluK3qo.mjs +0 -24
  1223. package/dist/paint-bucket-CV80oYNZ.mjs +0 -20
  1224. package/dist/paint-roller-jlspsZlh.mjs +0 -16
  1225. package/dist/paintbrush-BO4-TYCN.mjs +0 -28
  1226. package/dist/paintbrush-vertical-Dp39I67b.mjs +0 -23
  1227. package/dist/palette-DMqWscvx.mjs +0 -24
  1228. package/dist/panda-DSx3jdma.mjs +0 -25
  1229. package/dist/panel-bottom-PHDqRJsg.mjs +0 -15
  1230. package/dist/panel-bottom-close-CDG9Zw5E.mjs +0 -16
  1231. package/dist/panel-bottom-dashed-BCsackhm.mjs +0 -18
  1232. package/dist/panel-bottom-open-BKAudloc.mjs +0 -16
  1233. package/dist/panel-left-CW2NOKxx.mjs +0 -15
  1234. package/dist/panel-left-close-C57JwSfh.mjs +0 -16
  1235. package/dist/panel-left-dashed-yd9ZGFp-.mjs +0 -18
  1236. package/dist/panel-left-open-DBGdfAJo.mjs +0 -16
  1237. package/dist/panel-right-BPLDqSKA.mjs +0 -15
  1238. package/dist/panel-right-close-B4Q2Q7eq.mjs +0 -16
  1239. package/dist/panel-right-dashed-DeYApgzX.mjs +0 -18
  1240. package/dist/panel-right-open-S4neZsku.mjs +0 -16
  1241. package/dist/panel-top-ESnG67Bn.mjs +0 -15
  1242. package/dist/panel-top-close-BClNIJB9.mjs +0 -16
  1243. package/dist/panel-top-dashed-DH1ar-2q.mjs +0 -18
  1244. package/dist/panel-top-open-CSsq-s6A.mjs +0 -16
  1245. package/dist/panels-left-bottom-CGLZRiDU.mjs +0 -16
  1246. package/dist/panels-right-bottom-eouZm4b6.mjs +0 -16
  1247. package/dist/panels-top-left-Ddc5mucV.mjs +0 -16
  1248. package/dist/paperclip-DgtOvRVQ.mjs +0 -20
  1249. package/dist/parentheses-DjnSFlL2.mjs +0 -15
  1250. package/dist/parking-meter-bzHtXkoC.mjs +0 -24
  1251. package/dist/party-popper-CYQsSt_5.mjs +0 -37
  1252. package/dist/pause-BqgPwa3Y.mjs +0 -15
  1253. package/dist/paw-print-BI3WBwVZ.mjs +0 -23
  1254. package/dist/pc-case-B941rqCi.mjs +0 -17
  1255. package/dist/pen-Dz33Hbi2.mjs +0 -20
  1256. package/dist/pen-line-kYa0UYY3.mjs +0 -21
  1257. package/dist/pen-off-CObtWifu.mjs +0 -22
  1258. package/dist/pen-tool-DjdcyPgJ.mjs +0 -29
  1259. package/dist/pencil-BYqNZSTy.mjs +0 -21
  1260. package/dist/pencil-line-C1nRfDli.mjs +0 -22
  1261. package/dist/pencil-off-jaJQMMbP.mjs +0 -23
  1262. package/dist/pencil-ruler-DZ4-3ISt.mjs +0 -34
  1263. package/dist/pentagon-B9nsIFhh.mjs +0 -20
  1264. package/dist/percent-CvShSvzv.mjs +0 -16
  1265. package/dist/person-standing-DyZn6yO-.mjs +0 -17
  1266. package/dist/philippine-peso-Dvu8xBLS.mjs +0 -16
  1267. package/dist/phone-atwNPR9n.mjs +0 -20
  1268. package/dist/phone-call-B_10Fk6u.mjs +0 -22
  1269. package/dist/phone-forwarded-C9-mc4ni.mjs +0 -22
  1270. package/dist/phone-incoming-Cylp1uL0.mjs +0 -22
  1271. package/dist/phone-missed-CDDj7GYB.mjs +0 -22
  1272. package/dist/phone-off-U7KAXIxB.mjs +0 -28
  1273. package/dist/phone-outgoing-Bc6X3nEz.mjs +0 -22
  1274. package/dist/pi-B-__jVq9.mjs +0 -16
  1275. package/dist/piano-4X4z5Lew.mjs +0 -25
  1276. package/dist/pickaxe-ClkjMO9x.mjs +0 -35
  1277. package/dist/picture-in-picture-2-DMCbwT_o.mjs +0 -15
  1278. package/dist/picture-in-picture-D6XwKlJM.mjs +0 -18
  1279. package/dist/piggy-bank-4581YQuG.mjs +0 -22
  1280. package/dist/pilcrow-BvSg9q-P.mjs +0 -16
  1281. package/dist/pilcrow-left-BZMkReN9.mjs +0 -18
  1282. package/dist/pilcrow-right-9DTF_rlL.mjs +0 -18
  1283. package/dist/pill-Jmdk4iCL.mjs +0 -18
  1284. package/dist/pill-bottle-BUmxWtWb.mjs +0 -16
  1285. package/dist/pin-CsS5JUyc.mjs +0 -21
  1286. package/dist/pin-off-Bosy9Pqq.mjs +0 -23
  1287. package/dist/pipette-DEfgLB78.mjs +0 -28
  1288. package/dist/pizza-Vv-ehzPK.mjs +0 -24
  1289. package/dist/plane-jbvZy-DP.mjs +0 -20
  1290. package/dist/plane-landing-CgaNJpQR.mjs +0 -21
  1291. package/dist/plane-takeoff-CbVveOMu.mjs +0 -21
  1292. package/dist/play-CGIGiM3B.mjs +0 -20
  1293. package/dist/plug-2-DPj9zW6i.mjs +0 -18
  1294. package/dist/plug-D7alz0pZ.mjs +0 -17
  1295. package/dist/plug-zap-CDpGI78b.mjs +0 -21
  1296. package/dist/plus-DvBAsiX3.mjs +0 -15
  1297. package/dist/pocket-B0yYrcDI.mjs +0 -15
  1298. package/dist/pocket-knife-BiLM14CR.mjs +0 -18
  1299. package/dist/podcast-DevEellm.mjs +0 -20
  1300. package/dist/pointer-D31F12MD.mjs +0 -24
  1301. package/dist/pointer-off-BasdTIts.mjs +0 -28
  1302. package/dist/popcorn-bgxfJwUh.mjs +0 -29
  1303. package/dist/popsicle-BJ3ujHzN.mjs +0 -21
  1304. package/dist/pound-sterling-C0ZdPCM7.mjs +0 -17
  1305. package/dist/power-C8s0IQwC.mjs +0 -15
  1306. package/dist/power-off-D5Fu-8T6.mjs +0 -17
  1307. package/dist/presentation-CrNDhIvT.mjs +0 -16
  1308. package/dist/printer-CHuRL2d7.mjs +0 -22
  1309. package/dist/printer-check-CpJyOvA3.mjs +0 -17
  1310. package/dist/projector-_JDJOFdk.mjs +0 -25
  1311. package/dist/proportions-CaYVVnys.mjs +0 -16
  1312. package/dist/puzzle-DTXdQMX4.mjs +0 -20
  1313. package/dist/pyramid-Ct4EqZMO.mjs +0 -21
  1314. package/dist/qr-code-B9p_cwqq.mjs +0 -25
  1315. package/dist/quote-DzFoj8Tc.mjs +0 -27
  1316. package/dist/rabbit-mDi2-nX9.mjs +0 -24
  1317. package/dist/radar-NJn1rBQC.mjs +0 -21
  1318. package/dist/radiation-CkJZUZ8a.mjs +0 -35
  1319. package/dist/radical-BTherhjH.mjs +0 -20
  1320. package/dist/radio-DaNl-sl9.mjs +0 -18
  1321. package/dist/radio-receiver-bFspp--2.mjs +0 -17
  1322. package/dist/radio-tower-PnmXZjLA.mjs +0 -20
  1323. package/dist/radius-BPXa_QMu.mjs +0 -17
  1324. package/dist/rail-symbol-DOUNbmMt.mjs +0 -16
  1325. package/dist/rainbow-CM7ZLfsl.mjs +0 -16
  1326. package/dist/rat-BkGHk72J.mjs +0 -24
  1327. package/dist/ratio-B0oA5Pco.mjs +0 -15
  1328. package/dist/receipt-cent-7ZeRvb8e.mjs +0 -19
  1329. package/dist/receipt-euro-D5z4N3_2.mjs +0 -19
  1330. package/dist/receipt-indian-rupee-D1CYIrr6.mjs +0 -20
  1331. package/dist/receipt-japanese-yen-cTEIpKwV.mjs +0 -21
  1332. package/dist/receipt-p2Oev-J5.mjs +0 -19
  1333. package/dist/receipt-pound-sterling-BiajtOOl.mjs +0 -20
  1334. package/dist/receipt-russian-ruble-B5yTO_GR.mjs +0 -19
  1335. package/dist/receipt-swiss-franc-CRTxXnR0.mjs +0 -20
  1336. package/dist/receipt-text-CaiFqp81.mjs +0 -20
  1337. package/dist/receipt-turkish-lira-CBiIULzP.mjs +0 -19
  1338. package/dist/rectangle-circle-3L3GUiBf.mjs +0 -15
  1339. package/dist/rectangle-ellipsis-SQGV_qgQ.mjs +0 -17
  1340. package/dist/rectangle-goggles-CqRmH5jZ.mjs +0 -20
  1341. package/dist/rectangle-horizontal-C9gFAb5e.mjs +0 -14
  1342. package/dist/rectangle-vertical-CBqebWL2.mjs +0 -14
  1343. package/dist/recycle-XKhP0QLP.mjs +0 -37
  1344. package/dist/redo-2-C77JW2tv.mjs +0 -15
  1345. package/dist/redo-DT3l4TyM.mjs +0 -15
  1346. package/dist/redo-dot-BKxXkecZ.mjs +0 -16
  1347. package/dist/refresh-ccw-dot-CnX1XUx2.mjs +0 -18
  1348. package/dist/refresh-ccw-fOZ9PJh1.mjs +0 -17
  1349. package/dist/refresh-cw-B3je8iLe.mjs +0 -17
  1350. package/dist/refresh-cw-off-iKL2lFxS.mjs +0 -20
  1351. package/dist/refrigerator-BGTEAJT1.mjs +0 -19
  1352. package/dist/regex-DeLHhyCA.mjs +0 -20
  1353. package/dist/remove-formatting-Eei2jjtu.mjs +0 -18
  1354. package/dist/repeat-1-BPKSHlJ-.mjs +0 -18
  1355. package/dist/repeat-2-DGPjBxee.mjs +0 -17
  1356. package/dist/repeat-2UJTqQ32.mjs +0 -17
  1357. package/dist/replace-all-rZ8-rIUb.mjs +0 -22
  1358. package/dist/replace-tCTgNT_j.mjs +0 -20
  1359. package/dist/reply-DXfnMKAu.mjs +0 -15
  1360. package/dist/reply-all-CBznp2I1.mjs +0 -16
  1361. package/dist/rewind-3SXNIFP8.mjs +0 -21
  1362. package/dist/ribbon-BWCVSRfm.mjs +0 -27
  1363. package/dist/rocket-Dqf2fXS4.mjs +0 -29
  1364. package/dist/rocking-chair-RhKy6oWm.mjs +0 -17
  1365. package/dist/roller-coaster-CPl_3j2y.mjs +0 -20
  1366. package/dist/rotate-3d-qPb419Ww.mjs +0 -28
  1367. package/dist/rotate-ccw-jvTSRq9j.mjs +0 -15
  1368. package/dist/rotate-ccw-key-Bb5AAbTQ.mjs +0 -18
  1369. package/dist/rotate-ccw-square-BvIpSX-y.mjs +0 -16
  1370. package/dist/rotate-cw-BkoAZaYn.mjs +0 -15
  1371. package/dist/rotate-cw-square-Dy_6FOUa.mjs +0 -16
  1372. package/dist/route-CgvHO_1v.mjs +0 -16
  1373. package/dist/route-off-CwiJ8lJh.mjs +0 -20
  1374. package/dist/router-CPKcMcDU.mjs +0 -19
  1375. package/dist/rows-2-Bf0rpZp7.mjs +0 -15
  1376. package/dist/rows-3-87e_R0el.mjs +0 -16
  1377. package/dist/rows-4-DjNVsjae.mjs +0 -17
  1378. package/dist/rss-BYvZJodW.mjs +0 -16
  1379. package/dist/ruler-dimension-line-Dhp5SgyM.mjs +0 -20
  1380. package/dist/ruler-pZUH9oCi.mjs +0 -24
  1381. package/dist/russian-ruble-uia_STAo.mjs +0 -15
  1382. package/dist/sailboat-BxR0V2ae.mjs +0 -25
  1383. package/dist/salad-BLMzKp93.mjs +0 -24
  1384. package/dist/sandwich-DdLlE5_R.mjs +0 -18
  1385. package/dist/satellite-dish-DqAEKMxa.mjs +0 -17
  1386. package/dist/satellite-zT8g0BVy.mjs +0 -36
  1387. package/dist/saudi-riyal-Q8UlQl0P.mjs +0 -17
  1388. package/dist/save-D_J4GFaN.mjs +0 -22
  1389. package/dist/save-all-9S0NnJKN.mjs +0 -23
  1390. package/dist/save-off-C-VSvbwZ.mjs +0 -23
  1391. package/dist/scale-3d-zO7L3ixP.mjs +0 -17
  1392. package/dist/scale-CpwJaHZa.mjs +0 -18
  1393. package/dist/scaling-De8M93J3.mjs +0 -17
  1394. package/dist/scan-CwNj_FJX.mjs +0 -17
  1395. package/dist/scan-barcode-Bo_7-7d1.mjs +0 -20
  1396. package/dist/scan-eye-NfT-0he3.mjs +0 -25
  1397. package/dist/scan-face-23-IE1ip.mjs +0 -20
  1398. package/dist/scan-heart-2CWrnWZP.mjs +0 -24
  1399. package/dist/scan-line-eAGucqsG.mjs +0 -18
  1400. package/dist/scan-qr-code-BYLZsXgm.mjs +0 -21
  1401. package/dist/scan-search-BrU2rHM9.mjs +0 -19
  1402. package/dist/scan-text-Bsv9mwjv.mjs +0 -20
  1403. package/dist/school-CpVEN5EN.mjs +0 -25
  1404. package/dist/scissors-VfbUOyJD.mjs +0 -18
  1405. package/dist/scissors-line-dashed-DgfDh6d8.mjs +0 -20
  1406. package/dist/screen-share-B29_kse8.mjs +0 -18
  1407. package/dist/screen-share-off-DfuIWloQ.mjs +0 -18
  1408. package/dist/scroll-D_BEPEI6.mjs +0 -21
  1409. package/dist/scroll-text-BwLlnn9c.mjs +0 -23
  1410. package/dist/search-DO4k0Z1F.mjs +0 -15
  1411. package/dist/search-check-CRmRGll8.mjs +0 -16
  1412. package/dist/search-code-BQiPhsyH.mjs +0 -17
  1413. package/dist/search-slash-BDwYEs5a.mjs +0 -16
  1414. package/dist/search-x-ClG_isXA.mjs +0 -17
  1415. package/dist/section-BwK61k__.mjs +0 -15
  1416. package/dist/send-ZskGu8KS.mjs +0 -21
  1417. package/dist/send-horizontal-5xpDrDyX.mjs +0 -21
  1418. package/dist/send-to-back-BylmzYfw.mjs +0 -17
  1419. package/dist/separator-horizontal-BflFRULq.mjs +0 -16
  1420. package/dist/separator-vertical-CGhg3Yn-.mjs +0 -16
  1421. package/dist/server-DDasQ3SH.mjs +0 -17
  1422. package/dist/server-cog-B3NljGEg.mjs +0 -37
  1423. package/dist/server-crash-BwZ8_G8a.mjs +0 -30
  1424. package/dist/server-off-B6fJcmR3.mjs +0 -19
  1425. package/dist/settings-2-DgRNOWJB.mjs +0 -17
  1426. package/dist/settings-C7QGm63f.mjs +0 -21
  1427. package/dist/shapes-DU7aUjjX.mjs +0 -22
  1428. package/dist/share-2-CSV4YFmc.mjs +0 -18
  1429. package/dist/share-B_d9BN2R.mjs +0 -16
  1430. package/dist/sheet-BCJDTaz7.mjs +0 -18
  1431. package/dist/shell-DBf999x8.mjs +0 -20
  1432. package/dist/shield-DkNbjQr2.mjs +0 -20
  1433. package/dist/shield-alert-C8PTpuVk.mjs +0 -22
  1434. package/dist/shield-ban-C1qeimHR.mjs +0 -21
  1435. package/dist/shield-check-CUzPrz9-.mjs +0 -21
  1436. package/dist/shield-ellipsis-DlxSU4ET.mjs +0 -23
  1437. package/dist/shield-half-gsxXj1W7.mjs +0 -21
  1438. package/dist/shield-minus-CfNHOqHL.mjs +0 -21
  1439. package/dist/shield-off-Dir4Osy6.mjs +0 -28
  1440. package/dist/shield-plus-DcYwjs0R.mjs +0 -22
  1441. package/dist/shield-question-mark-XekDI4x4.mjs +0 -22
  1442. package/dist/shield-user-DnOkHZRD.mjs +0 -22
  1443. package/dist/shield-x-xNDmnCrK.mjs +0 -22
  1444. package/dist/ship-DcoQ1J1N.mjs +0 -30
  1445. package/dist/ship-wheel-Bk2ntQEr.mjs +0 -23
  1446. package/dist/shirt-B5aC-hEJ.mjs +0 -20
  1447. package/dist/shopping-bag-BJcFWmNy.mjs +0 -22
  1448. package/dist/shopping-basket-_HXmCxM2.mjs +0 -20
  1449. package/dist/shopping-cart-BWsbYDnk.mjs +0 -22
  1450. package/dist/shovel-BIKoXyek.mjs +0 -28
  1451. package/dist/shower-head-B11mdo8C.mjs +0 -23
  1452. package/dist/shredder-KGrgpo0e.mjs +0 -20
  1453. package/dist/shrimp-DZN1DwcC.mjs +0 -24
  1454. package/dist/shrink-auGu499X.mjs +0 -17
  1455. package/dist/shrub-CXa59PNv.mjs +0 -16
  1456. package/dist/shuffle-B-H_KhEw.mjs +0 -18
  1457. package/dist/sigma-ZHZbTgDY.mjs +0 -20
  1458. package/dist/signal-DL8jKP95.mjs +0 -18
  1459. package/dist/signal-high-BUycpj-B.mjs +0 -17
  1460. package/dist/signal-low-Diwj9b86.mjs +0 -15
  1461. package/dist/signal-medium-BIVjkHuS.mjs +0 -16
  1462. package/dist/signal-zero-B2fa1CjC.mjs +0 -12
  1463. package/dist/signature-Cl9lTWcy.mjs +0 -21
  1464. package/dist/signpost-0HB0yOJJ.mjs +0 -22
  1465. package/dist/signpost-big-DUy-S2cF.mjs +0 -17
  1466. package/dist/siren-CVIUtQLB.mjs +0 -24
  1467. package/dist/skip-back-CIqd5NnD.mjs +0 -21
  1468. package/dist/skip-forward-CK6BnaMc.mjs +0 -21
  1469. package/dist/skull-boAhDA8m.mjs +0 -23
  1470. package/dist/slack-CyyCmZ-c.mjs +0 -21
  1471. package/dist/slash-DYMQE9ef.mjs +0 -12
  1472. package/dist/slice-CZprozHy.mjs +0 -20
  1473. package/dist/sliders-horizontal-CVhQskhp.mjs +0 -22
  1474. package/dist/sliders-vertical-ChF-aTgx.mjs +0 -22
  1475. package/dist/smartphone-DM1IaNpo.mjs +0 -15
  1476. package/dist/smartphone-charging-C6xRYASk.mjs +0 -15
  1477. package/dist/smartphone-nfc-DkrZPbhP.mjs +0 -17
  1478. package/dist/smile-BuVJaSQS.mjs +0 -17
  1479. package/dist/smile-plus-C5rTZxPQ.mjs +0 -19
  1480. package/dist/snail-B-KJdURR.mjs +0 -18
  1481. package/dist/snowflake-Bvo_Yr3V.mjs +0 -25
  1482. package/dist/soap-dispenser-droplet-ZMiOat72.mjs +0 -29
  1483. package/dist/sofa-FsRXU7pF.mjs +0 -24
  1484. package/dist/soup-_beywNx9.mjs +0 -34
  1485. package/dist/space-B1lP_NrK.mjs +0 -14
  1486. package/dist/spade-CrrqZ1uA.mjs +0 -21
  1487. package/dist/sparkle-BPtlabqt.mjs +0 -20
  1488. package/dist/sparkles-Dxb0XXqP.mjs +0 -23
  1489. package/dist/speaker-DS2c5-49.mjs +0 -17
  1490. package/dist/speech-YomIfGDo.mjs +0 -22
  1491. package/dist/spell-check-2-CQl0ncnd.mjs +0 -22
  1492. package/dist/spell-check-DqEQ6RFn.mjs +0 -16
  1493. package/dist/spline-DfN-y9Fw.mjs +0 -16
  1494. package/dist/spline-pointer-CRaE9PRX.mjs +0 -23
  1495. package/dist/split-C5Mextx6.mjs +0 -17
  1496. package/dist/spool-CCWBqkrA.mjs +0 -27
  1497. package/dist/spotlight-ZY7ZB-qz.mjs +0 -24
  1498. package/dist/spray-can-BXinI5LI.mjs +0 -23
  1499. package/dist/sprout-urksMFRT.mjs +0 -22
  1500. package/dist/square-Bk_aEsSJ.mjs +0 -14
  1501. package/dist/square-activity-CryI_ziK.mjs +0 -15
  1502. package/dist/square-arrow-down-CrMXHUR2.mjs +0 -16
  1503. package/dist/square-arrow-down-left-C_rHm-e4.mjs +0 -16
  1504. package/dist/square-arrow-down-right-vXLQEz9i.mjs +0 -16
  1505. package/dist/square-arrow-left-CWW3bhcN.mjs +0 -16
  1506. package/dist/square-arrow-out-down-left-BcqYQDG0.mjs +0 -16
  1507. package/dist/square-arrow-out-down-right-BH_m-J34.mjs +0 -16
  1508. package/dist/square-arrow-out-up-left-CyWbPwSb.mjs +0 -16
  1509. package/dist/square-arrow-out-up-right-CZKiZ7q4.mjs +0 -16
  1510. package/dist/square-arrow-right-DFDubDLv.mjs +0 -16
  1511. package/dist/square-arrow-up-Dy-K72ZB.mjs +0 -16
  1512. package/dist/square-arrow-up-left-DBpMm3HO.mjs +0 -16
  1513. package/dist/square-arrow-up-right-CngmCRuC.mjs +0 -16
  1514. package/dist/square-asterisk-CoV58zq6.mjs +0 -17
  1515. package/dist/square-bottom-dashed-scissors-CREaS8SH.mjs +0 -24
  1516. package/dist/square-chart-gantt-CNZrK_7Q.mjs +0 -17
  1517. package/dist/square-check-BskvEe_i.mjs +0 -15
  1518. package/dist/square-check-big-CybLD05D.mjs +0 -18
  1519. package/dist/square-chevron-down-fzLBkgl2.mjs +0 -15
  1520. package/dist/square-chevron-left-D5NaPrUK.mjs +0 -15
  1521. package/dist/square-chevron-right-URn-52xb.mjs +0 -15
  1522. package/dist/square-chevron-up-CkdAc3Hs.mjs +0 -15
  1523. package/dist/square-code-s3GrRt2B.mjs +0 -16
  1524. package/dist/square-dashed-avwMYce7.mjs +0 -25
  1525. package/dist/square-dashed-bottom-LpQjTkfl.mjs +0 -19
  1526. package/dist/square-dashed-bottom-code-Df16fboA.mjs +0 -21
  1527. package/dist/square-dashed-kanban-DCZPX2Ql.mjs +0 -28
  1528. package/dist/square-dashed-mouse-pointer-DwOgV6OK.mjs +0 -29
  1529. package/dist/square-dashed-top-solid-h91hFaEe.mjs +0 -22
  1530. package/dist/square-divide-BwSzOZYw.mjs +0 -17
  1531. package/dist/square-dot-BWgUiC0s.mjs +0 -15
  1532. package/dist/square-equal-BwyYDFVX.mjs +0 -16
  1533. package/dist/square-function-BEIbllgJ.mjs +0 -16
  1534. package/dist/square-kanban-WZ7IyAyp.mjs +0 -17
  1535. package/dist/square-library-CakTaz97.mjs +0 -17
  1536. package/dist/square-m-Cld-e3jH.mjs +0 -15
  1537. package/dist/square-menu-BOE18D2m.mjs +0 -17
  1538. package/dist/square-minus-DWmXmYmU.mjs +0 -15
  1539. package/dist/square-mouse-pointer-CP3oaGlI.mjs +0 -21
  1540. package/dist/square-parking-Bn2H57oc.mjs +0 -15
  1541. package/dist/square-parking-off-C-wIraJ8.mjs +0 -18
  1542. package/dist/square-pause-O4zjydoX.mjs +0 -16
  1543. package/dist/square-pen-CH8zdRwo.mjs +0 -21
  1544. package/dist/square-percent-BsxQy359.mjs +0 -17
  1545. package/dist/square-pi-2p4fR0eo.mjs +0 -17
  1546. package/dist/square-pilcrow-zkqyZF4p.mjs +0 -17
  1547. package/dist/square-play-DFhKUfuj.mjs +0 -21
  1548. package/dist/square-plus-DfHSTfuS.mjs +0 -16
  1549. package/dist/square-power-D3FuV9Tz.mjs +0 -16
  1550. package/dist/square-radical-B2lfqT3R.mjs +0 -15
  1551. package/dist/square-round-corner-ywk93ovw.mjs +0 -15
  1552. package/dist/square-scissors-e0rXnfmd.mjs +0 -19
  1553. package/dist/square-sigma-DPmsXaPH.mjs +0 -15
  1554. package/dist/square-slash-Dr9s6MIy.mjs +0 -15
  1555. package/dist/square-split-horizontal-CgoTM4BG.mjs +0 -16
  1556. package/dist/square-split-vertical-a7X4cNaq.mjs +0 -16
  1557. package/dist/square-square-BsH6_Z5y.mjs +0 -15
  1558. package/dist/square-stack-CmDVJwZN.mjs +0 -16
  1559. package/dist/square-star-R9vXxqur.mjs +0 -21
  1560. package/dist/square-stop-RqRVmJA9.mjs +0 -15
  1561. package/dist/square-terminal-DogKsvpT.mjs +0 -16
  1562. package/dist/square-user-BpIQvrd4.mjs +0 -16
  1563. package/dist/square-user-round-_tPYGrtW.mjs +0 -16
  1564. package/dist/square-x-BoBz-QPU.mjs +0 -16
  1565. package/dist/squares-exclude-70KoE17u.mjs +0 -27
  1566. package/dist/squares-intersect-Cs-9iBM2.mjs +0 -27
  1567. package/dist/squares-subtract-b1SSpFyI.mjs +0 -25
  1568. package/dist/squares-unite-BN53U5D8.mjs +0 -20
  1569. package/dist/squircle-CAT71xK4.mjs +0 -14
  1570. package/dist/squircle-dashed-r2TeWc2J.mjs +0 -21
  1571. package/dist/squirrel-qYfWqauh.mjs +0 -23
  1572. package/dist/stamp-j_TNnFyJ.mjs +0 -22
  1573. package/dist/star-CIsPfKln.mjs +0 -20
  1574. package/dist/star-half-YtUWBjz2.mjs +0 -20
  1575. package/dist/star-off-BU4IUrd5.mjs +0 -16
  1576. package/dist/step-back-B4ZYuzlM.mjs +0 -21
  1577. package/dist/step-forward-Bw_vBlIm.mjs +0 -21
  1578. package/dist/stethoscope-B88kby-e.mjs +0 -18
  1579. package/dist/sticker-C3qrv9n5.mjs +0 -21
  1580. package/dist/sticky-note-CfYnY0Gg.mjs +0 -15
  1581. package/dist/store-CRl11B9A.mjs +0 -24
  1582. package/dist/stretch-horizontal-COJtxhmi.mjs +0 -15
  1583. package/dist/stretch-vertical-DsCvNGE1.mjs +0 -15
  1584. package/dist/strikethrough-W5I0F5ZF.mjs +0 -16
  1585. package/dist/subscript-C1oI8kEi.mjs +0 -22
  1586. package/dist/sun-Bll35pcy.mjs +0 -22
  1587. package/dist/sun-dim-DCrFzwMp.mjs +0 -22
  1588. package/dist/sun-medium-CH68rvzI.mjs +0 -22
  1589. package/dist/sun-moon-DdwtQalD.mjs +0 -24
  1590. package/dist/sun-snow-DHpNHPJA.mjs +0 -24
  1591. package/dist/sunrise-BSQghPM0.mjs +0 -21
  1592. package/dist/sunset-sXdo1kan.mjs +0 -21
  1593. package/dist/superscript-Du2Vdf_7.mjs +0 -22
  1594. package/dist/swatch-book-74adtFkl.mjs +0 -23
  1595. package/dist/swiss-franc-GBM2TUuB.mjs +0 -16
  1596. package/dist/switch-camera-Ce8uDMUG.mjs +0 -18
  1597. package/dist/sword-vLod4XxR.mjs +0 -17
  1598. package/dist/swords-gAZQLbsy.mjs +0 -21
  1599. package/dist/syringe-y8OIgjGP.mjs +0 -19
  1600. package/dist/table-2-B18rk1cL.mjs +0 -20
  1601. package/dist/table-BEEsgySt.mjs +0 -17
  1602. package/dist/table-cells-merge-D73Xmj0M.mjs +0 -18
  1603. package/dist/table-cells-split-H8HCOkE8.mjs +0 -17
  1604. package/dist/table-columns-split-C8mmkDJI.mjs +0 -24
  1605. package/dist/table-of-contents-C3SBKSLJ.mjs +0 -19
  1606. package/dist/table-properties-D1S4-fHT.mjs +0 -17
  1607. package/dist/table-rows-split-CZHEBgL8.mjs +0 -24
  1608. package/dist/tablet-BOs_Ob9l.mjs +0 -15
  1609. package/dist/tablet-smartphone-CHKKyqZV.mjs +0 -16
  1610. package/dist/tablets-DoB91bTM.mjs +0 -17
  1611. package/dist/tag-C0Rv3OIe.mjs +0 -21
  1612. package/dist/tags-Dfe6cIao.mjs +0 -25
  1613. package/dist/tally-1-CKqmMopm.mjs +0 -12
  1614. package/dist/tally-2-Di3O2oWU.mjs +0 -15
  1615. package/dist/tally-3-CBuSgUK-.mjs +0 -16
  1616. package/dist/tally-4-Bta4_jgC.mjs +0 -17
  1617. package/dist/tally-5-DurW3Zyr.mjs +0 -18
  1618. package/dist/tangent-DyHjFlcS.mjs +0 -17
  1619. package/dist/target-CWn2x0wh.mjs +0 -16
  1620. package/dist/telescope-D66olGIR.mjs +0 -32
  1621. package/dist/tent-pEKKlYjB.mjs +0 -17
  1622. package/dist/tent-tree-Cwg86_hB.mjs +0 -20
  1623. package/dist/terminal-DTbtM4LZ.mjs +0 -15
  1624. package/dist/test-tube-BQAm97AZ.mjs +0 -16
  1625. package/dist/test-tube-diagonal-DpmPJT5S.mjs +0 -19
  1626. package/dist/test-tubes-WJFsx3C4.mjs +0 -19
  1627. package/dist/text-CPWr_x9X.mjs +0 -16
  1628. package/dist/text-cursor-C4EPXMLF.mjs +0 -16
  1629. package/dist/text-cursor-input-BRn3pIQI.mjs +0 -18
  1630. package/dist/text-quote-Ck6kSykD.mjs +0 -17
  1631. package/dist/text-search-DJPPACD4.mjs +0 -18
  1632. package/dist/text-select-B1Y6vH6N.mjs +0 -28
  1633. package/dist/theater-B3VEMRG7.mjs +0 -22
  1634. package/dist/thermometer-D8x8jBjN.mjs +0 -14
  1635. package/dist/thermometer-snowflake-CI3i8io2.mjs +0 -21
  1636. package/dist/thermometer-sun-3x2C2g4a.mjs +0 -19
  1637. package/dist/thumbs-down-D9dSzeRq.mjs +0 -21
  1638. package/dist/thumbs-up-B4YIs80I.mjs +0 -21
  1639. package/dist/ticket-DXX-INA6.mjs +0 -23
  1640. package/dist/ticket-check-BEzQBL9c.mjs +0 -21
  1641. package/dist/ticket-minus-CaTyJC9G.mjs +0 -21
  1642. package/dist/ticket-percent-DR01r_wB.mjs +0 -23
  1643. package/dist/ticket-plus-DSapCCrx.mjs +0 -22
  1644. package/dist/ticket-slash-D9wSC22Q.mjs +0 -21
  1645. package/dist/ticket-x-D7k7zQEJ.mjs +0 -22
  1646. package/dist/tickets-CeO6AU4X.mjs +0 -18
  1647. package/dist/tickets-plane-Ct2qNd-K.mjs +0 -20
  1648. package/dist/timer-DpuAPJAc.mjs +0 -16
  1649. package/dist/timer-off-YoOjHz7D.mjs +0 -18
  1650. package/dist/timer-reset-BvkgWrSz.mjs +0 -17
  1651. package/dist/toggle-left-DFhLnBtd.mjs +0 -15
  1652. package/dist/toggle-right-Cbp8IFit.mjs +0 -15
  1653. package/dist/toilet-Dz6YDOwR.mjs +0 -21
  1654. package/dist/tool-case-D_GtEcaf.mjs +0 -35
  1655. package/dist/tornado-C-ojJi4k.mjs +0 -18
  1656. package/dist/torus-CVCCAOyX.mjs +0 -15
  1657. package/dist/touchpad-Dwkbe3br.mjs +0 -16
  1658. package/dist/touchpad-off-1_AF4_BK.mjs +0 -19
  1659. package/dist/tower-control-D1bofBew.mjs +0 -23
  1660. package/dist/toy-brick-DAlrspfS.mjs +0 -16
  1661. package/dist/tractor-BBj3-TFb.mjs +0 -22
  1662. package/dist/traffic-cone-BY1NipJ3.mjs +0 -23
  1663. package/dist/train-front-BBZkt4DB.mjs +0 -19
  1664. package/dist/train-front-tunnel-yMXdB9-e.mjs +0 -20
  1665. package/dist/train-track-BuCXIxWY.mjs +0 -20
  1666. package/dist/tram-front-B6Cx5tv-.mjs +0 -20
  1667. package/dist/transgender-DFmoQUsq.mjs +0 -21
  1668. package/dist/trash-2-BoqsOI6d.mjs +0 -18
  1669. package/dist/trash-NR2P0kJq.mjs +0 -16
  1670. package/dist/tree-deciduous-k8sH7S47.mjs +0 -21
  1671. package/dist/tree-palm-DZv2uyOq.mjs +0 -26
  1672. package/dist/tree-pine-B7Gm0RPt.mjs +0 -21
  1673. package/dist/trees-BMBXVOIq.mjs +0 -23
  1674. package/dist/trello-BNNTBXkz.mjs +0 -16
  1675. package/dist/trending-down-ChZXd_f4.mjs +0 -15
  1676. package/dist/trending-up-BnF7r-5t.mjs +0 -15
  1677. package/dist/trending-up-down-B0312MXp.mjs +0 -17
  1678. package/dist/triangle-C0qF4sHu.mjs +0 -17
  1679. package/dist/triangle-alert-5JJiey3y.mjs +0 -22
  1680. package/dist/triangle-dashed-BccAkEa0.mjs +0 -22
  1681. package/dist/triangle-right-Bh8fjLoO.mjs +0 -20
  1682. package/dist/trophy-D_SpMJ6u.mjs +0 -19
  1683. package/dist/truck-BoSyzQK_.mjs +0 -24
  1684. package/dist/truck-electric-C7sPRQb0.mjs +0 -29
  1685. package/dist/turkish-lira-DGCVi5Os.mjs +0 -16
  1686. package/dist/turntable-DkTAicc9.mjs +0 -17
  1687. package/dist/turtle-CCacVKhm.mjs +0 -23
  1688. package/dist/tv-minimal-BtJ_6EHu.mjs +0 -15
  1689. package/dist/tv-minimal-play-Dt9XACoZ.mjs +0 -22
  1690. package/dist/tv-rZd6SaWX.mjs +0 -15
  1691. package/dist/twitch-C8zcJbc_.mjs +0 -14
  1692. package/dist/twitter-B-3HXpBg.mjs +0 -20
  1693. package/dist/type-BYrpfxhu.mjs +0 -16
  1694. package/dist/type-outline-DhOCqsE9.mjs +0 -20
  1695. package/dist/umbrella-CWZmS_XI.mjs +0 -16
  1696. package/dist/umbrella-off-1nO-oy3y.mjs +0 -17
  1697. package/dist/underline-CG3VAMqK.mjs +0 -15
  1698. package/dist/undo-2-DOPbSXZx.mjs +0 -15
  1699. package/dist/undo-BllN9fCr.mjs +0 -15
  1700. package/dist/undo-dot-DEJcSpM4.mjs +0 -16
  1701. package/dist/unfold-horizontal-Clxk4pZg.mjs +0 -21
  1702. package/dist/unfold-vertical-DKnI1M8C.mjs +0 -21
  1703. package/dist/ungroup-CQvkqaun.mjs +0 -15
  1704. package/dist/university-xbjgEoWF.mjs +0 -26
  1705. package/dist/unlink-2-Cr73ybse.mjs +0 -14
  1706. package/dist/unlink-6YvTE73T.mjs +0 -31
  1707. package/dist/unplug-Ch82UO0J.mjs +0 -25
  1708. package/dist/upload-C5q5MsnD.mjs +0 -16
  1709. package/dist/usb-CJB_TUeN.mjs +0 -20
  1710. package/dist/user-Cn7H3CDD.mjs +0 -15
  1711. package/dist/user-check-SxKUjVUN.mjs +0 -16
  1712. package/dist/user-cog-3N9vrFWu.mjs +0 -24
  1713. package/dist/user-lock-CMFotaxX.mjs +0 -17
  1714. package/dist/user-minus-L22bxxzP.mjs +0 -16
  1715. package/dist/user-pen-manl3Mho.mjs +0 -22
  1716. package/dist/user-plus-Cuh1RznW.mjs +0 -17
  1717. package/dist/user-round-check-OHqr0TG-.mjs +0 -16
  1718. package/dist/user-round-cog-BJHDR50K.mjs +0 -24
  1719. package/dist/user-round-minus-mTiBjLzC.mjs +0 -16
  1720. package/dist/user-round-pen-gx_pl-vB.mjs +0 -22
  1721. package/dist/user-round-plus-B-Am0DZF.mjs +0 -17
  1722. package/dist/user-round-search-C8DrDT7a.mjs +0 -17
  1723. package/dist/user-round-t1yt2Iyh.mjs +0 -15
  1724. package/dist/user-round-x-DDjakCCU.mjs +0 -17
  1725. package/dist/user-search-DIFCcej2.mjs +0 -17
  1726. package/dist/user-star-DYMq08BB.mjs +0 -22
  1727. package/dist/user-x-6YRqEjy_.mjs +0 -17
  1728. package/dist/users-Brdxa0WP.mjs +0 -17
  1729. package/dist/users-round-C_IYL8RQ.mjs +0 -16
  1730. package/dist/utensils-DPj22KcV.mjs +0 -16
  1731. package/dist/utensils-crossed-6okCYsjG.mjs +0 -20
  1732. package/dist/utility-pole-CkrUytqZ.mjs +0 -20
  1733. package/dist/utils/formatters.d.ts +0 -2
  1734. package/dist/variable-BJb_R1EC.mjs +0 -17
  1735. package/dist/vault-MxNHPvks.mjs +0 -23
  1736. package/dist/vector-square-7k9hgbLH.mjs +0 -21
  1737. package/dist/vegan-BJzMQDI_.mjs +0 -16
  1738. package/dist/venetian-mask-BwXIsbW5.mjs +0 -22
  1739. package/dist/venus-CYmOAd2B.mjs +0 -16
  1740. package/dist/venus-and-mars-CYnhgohF.mjs +0 -18
  1741. package/dist/vibrate-C-Jl4TxS.mjs +0 -16
  1742. package/dist/vibrate-off-DBo0xJSg.mjs +0 -18
  1743. package/dist/video-CWal20pc.mjs +0 -21
  1744. package/dist/video-off-CXdF0w-a.mjs +0 -19
  1745. package/dist/videotape-C7zS57XH.mjs +0 -18
  1746. package/dist/view-Dr2kTqFk.mjs +0 -23
  1747. package/dist/voicemail-KQbE3MuK.mjs +0 -16
  1748. package/dist/volleyball-C3GcTgbl.mjs +0 -19
  1749. package/dist/volume-1--HYBG8lR.mjs +0 -21
  1750. package/dist/volume-2-CkhMiYAU.mjs +0 -22
  1751. package/dist/volume-Bure_q5B.mjs +0 -20
  1752. package/dist/volume-off-DqiwkfDd.mjs +0 -24
  1753. package/dist/volume-x-BPVVz_V5.mjs +0 -22
  1754. package/dist/vote-CiUhKoOY.mjs +0 -16
  1755. package/dist/wallet-DQJiv0t1.mjs +0 -21
  1756. package/dist/wallet-cards-BpZIuiLq.mjs +0 -22
  1757. package/dist/wallet-minimal-yfIp_Mhl.mjs +0 -21
  1758. package/dist/wallpaper-DhHr2iaC.mjs +0 -23
  1759. package/dist/wand--z-BrOZc.mjs +0 -22
  1760. package/dist/wand-sparkles-C9v__iBg.mjs +0 -27
  1761. package/dist/warehouse-DMawiynX.mjs +0 -23
  1762. package/dist/washing-machine-BXTQYZwF.mjs +0 -18
  1763. package/dist/watch-gs3YCWIa.mjs +0 -20
  1764. package/dist/waves-C905fnSD.mjs +0 -34
  1765. package/dist/waves-ladder-DFGf3cN8.mjs +0 -24
  1766. package/dist/waypoints-oHqf0FDT.mjs +0 -20
  1767. package/dist/webcam-CVIZhcg2.mjs +0 -17
  1768. package/dist/webhook-CXOz7-mY.mjs +0 -22
  1769. package/dist/webhook-off-PPzd1Gc3.mjs +0 -20
  1770. package/dist/weight-CKE-CS6Q.mjs +0 -21
  1771. package/dist/wheat-DwUZC2Of.mjs +0 -57
  1772. package/dist/wheat-off-B5r5DOyi.mjs +0 -53
  1773. package/dist/whole-word-CDYjR0H9.mjs +0 -18
  1774. package/dist/wifi-LsTdrlUD.mjs +0 -17
  1775. package/dist/wifi-cog-boaZEGNf.mjs +0 -25
  1776. package/dist/wifi-high-CMApg_e5.mjs +0 -16
  1777. package/dist/wifi-low-XYDy-vtA.mjs +0 -15
  1778. package/dist/wifi-off-CwFO5U_I.mjs +0 -20
  1779. package/dist/wifi-pen-Cbj7bExS.mjs +0 -23
  1780. package/dist/wifi-sync-Cdkkkg3m.mjs +0 -20
  1781. package/dist/wifi-zero-DnPxtz7N.mjs +0 -12
  1782. package/dist/wind-D-Mum6bV.mjs +0 -16
  1783. package/dist/wind-arrow-down-Dfy2pgwL.mjs +0 -17
  1784. package/dist/wine-DvyVSlkW.mjs +0 -20
  1785. package/dist/wine-off-C-CM10Q8.mjs +0 -24
  1786. package/dist/workflow-K1vmN1EE.mjs +0 -16
  1787. package/dist/worm-DC87Dr1v.mjs +0 -22
  1788. package/dist/wrap-text-Yia3aHNl.mjs +0 -17
  1789. package/dist/wrench-DjcYuwep.mjs +0 -20
  1790. package/dist/x-DsuUQwdv.mjs +0 -15
  1791. package/dist/youtube-CQOoI4rF.mjs +0 -21
  1792. package/dist/zap-Br7LJLG_.mjs +0 -20
  1793. package/dist/zap-off-Dyk5N-CK.mjs +0 -23
  1794. package/dist/zoom-in-C7ZwoYIs.mjs +0 -17
  1795. package/dist/zoom-out-yeNWkgzp.mjs +0 -16
@@ -0,0 +1,4170 @@
1
+ const e = {
2
+ components: [
3
+ {
4
+ id: "suggestion",
5
+ name: "Suggestion",
6
+ version: "1.0.0",
7
+ description: "A small, pill-shaped button that offers a quick, suggested reply or follow-up question to the user.",
8
+ tags: [
9
+ "ui",
10
+ "ai",
11
+ "button",
12
+ "suggestion",
13
+ "actions"
14
+ ],
15
+ category: "ai",
16
+ props: [
17
+ {
18
+ name: "onClick",
19
+ type: "() => void",
20
+ description: "Function to call when the suggestion is clicked."
21
+ }
22
+ ],
23
+ importPath: "./blocks/ai/Actions",
24
+ filePath: "src/blocks/ai/Actions.tsx",
25
+ sku: "@molecule/ai/suggestion",
26
+ humanLabel: "Suggestion",
27
+ humanDescription: "A small, pill-shaped button that offers a quick, suggested reply or follow-up question to the user."
28
+ },
29
+ {
30
+ id: "actions",
31
+ name: "Actions",
32
+ version: "1.0.0",
33
+ description: "A container for displaying a list of suggested, clickable actions that the user can take next.",
34
+ tags: [
35
+ "ui",
36
+ "ai",
37
+ "layout",
38
+ "actions",
39
+ "suggestion"
40
+ ],
41
+ category: "ai",
42
+ props: [],
43
+ importPath: "./blocks/ai/Actions",
44
+ filePath: "src/blocks/ai/Actions.tsx",
45
+ sku: "@molecule/ai/actions",
46
+ humanLabel: "Actions",
47
+ humanDescription: "A container for displaying a list of suggested, clickable actions that the user can take next."
48
+ },
49
+ {
50
+ id: "chat-fab",
51
+ name: "ChatFAB",
52
+ version: "1.0.0",
53
+ description: "A floating action button (FAB) specifically for opening a chat interface, with a tooltip and icon.",
54
+ tags: [
55
+ "ui",
56
+ "button",
57
+ "chat",
58
+ "fab",
59
+ "ai"
60
+ ],
61
+ category: "ui",
62
+ props: [
63
+ {
64
+ name: "onClick",
65
+ type: "() => void",
66
+ description: "Function to call when the button is clicked."
67
+ },
68
+ {
69
+ name: "className",
70
+ type: "string",
71
+ description: "Optional additional CSS classes for custom styling."
72
+ },
73
+ {
74
+ name: "tooltipContent",
75
+ type: "string",
76
+ description: "The text content for the button's tooltip.",
77
+ default: "'Open AI Assistant'"
78
+ }
79
+ ],
80
+ importPath: "./blocks/ai/ChatFAB",
81
+ filePath: "src/blocks/ai/ChatFAB.tsx",
82
+ sku: "@atom/primitive/chat-fab",
83
+ humanLabel: "ChatFAB",
84
+ humanDescription: "A floating action button (FAB) specifically for opening a chat interface, with a tooltip and icon."
85
+ },
86
+ {
87
+ id: "conversation",
88
+ name: "Conversation",
89
+ version: "1.0.0",
90
+ description: "A container component that holds a series of Message components and manages the layout and scrolling of the chat history.",
91
+ tags: [
92
+ "ui",
93
+ "ai",
94
+ "layout",
95
+ "chat"
96
+ ],
97
+ category: "ai",
98
+ props: [],
99
+ importPath: "./blocks/ai/Conversation",
100
+ filePath: "src/blocks/ai/Conversation.tsx",
101
+ sku: "@molecule/ai/conversation",
102
+ humanLabel: "Conversation",
103
+ humanDescription: "A container component that holds a series of Message components and manages the layout and scrolling of the chat history."
104
+ },
105
+ {
106
+ id: "loader",
107
+ name: "Loader",
108
+ version: "1.0.0",
109
+ description: "A compact, theme-aware animation for indicating AI processing states. Optimized for chat interfaces.",
110
+ tags: [
111
+ "ui",
112
+ "ai",
113
+ "feedback",
114
+ "loading",
115
+ "chat"
116
+ ],
117
+ category: "ai",
118
+ props: [
119
+ {
120
+ name: "variant",
121
+ type: `"'bubble' | 'sparkle' | 'bar'"`,
122
+ description: "The visual style. 'bubble' is standard for chat. 'sparkle' is for creative generation.",
123
+ default: "'bubble'"
124
+ },
125
+ {
126
+ name: "label",
127
+ type: "string",
128
+ description: "Optional text displayed next to the animation."
129
+ },
130
+ {
131
+ name: "className",
132
+ type: "string",
133
+ description: "Custom classes for the container."
134
+ }
135
+ ],
136
+ importPath: "./blocks/ai/Loader",
137
+ filePath: "src/blocks/ai/Loader.tsx",
138
+ sku: "@molecule/ai/loader",
139
+ humanLabel: "Loader",
140
+ humanDescription: "A compact, theme-aware animation for indicating AI processing states. Optimized for chat interfaces."
141
+ },
142
+ {
143
+ id: "message",
144
+ name: "Message",
145
+ version: "1.0.0",
146
+ description: "Displays a single message in a conversation, including an avatar, author, content, and optional suggestions.",
147
+ tags: [
148
+ "ui",
149
+ "ai",
150
+ "chat",
151
+ "display"
152
+ ],
153
+ category: "ai",
154
+ props: [
155
+ {
156
+ name: "author",
157
+ type: "string",
158
+ description: `"The name of the message author (e.g., 'User' or 'AI Assistant')."`
159
+ },
160
+ {
161
+ name: "content",
162
+ type: "string",
163
+ description: "The text content of the message."
164
+ },
165
+ {
166
+ name: "isUser",
167
+ type: "boolean",
168
+ description: "If true, styles the message as from the user."
169
+ },
170
+ {
171
+ name: "loading",
172
+ type: "boolean",
173
+ description: "If true, displays the Loader component instead of content."
174
+ },
175
+ {
176
+ name: "suggestions",
177
+ type: "string[]",
178
+ description: "An array of strings to display as suggested actions."
179
+ },
180
+ {
181
+ name: "onSuggestionClick",
182
+ type: "(suggestion: string) => void",
183
+ description: "Callback for when a suggestion is clicked."
184
+ }
185
+ ],
186
+ importPath: "./blocks/ai/Message",
187
+ filePath: "src/blocks/ai/Message.tsx",
188
+ sku: "@molecule/ai/message",
189
+ humanLabel: "Message",
190
+ humanDescription: "Displays a single message in a conversation, including an avatar, author, content, and optional suggestions."
191
+ },
192
+ {
193
+ id: "prompt-input",
194
+ name: "PromptInput",
195
+ version: "1.0.0",
196
+ description: "A specialized input field for users to type and submit prompts, including a send button.",
197
+ tags: [
198
+ "ui",
199
+ "ai",
200
+ "form",
201
+ "input",
202
+ "chat"
203
+ ],
204
+ category: "ai",
205
+ props: [
206
+ {
207
+ name: "value",
208
+ type: "string",
209
+ description: "The current value of the input field."
210
+ },
211
+ {
212
+ name: "onChange",
213
+ type: "(e: React.ChangeEvent<HTMLInputElement>) => void",
214
+ description: "Callback fired when the input value changes."
215
+ },
216
+ {
217
+ name: "onSubmit",
218
+ type: "(e: React.FormEvent) => void",
219
+ description: "Callback fired when the form is submitted."
220
+ },
221
+ {
222
+ name: "placeholder",
223
+ type: "string",
224
+ description: "Placeholder text for the input field.",
225
+ default: '"Type your message..."'
226
+ }
227
+ ],
228
+ importPath: "./blocks/ai/PromptInput",
229
+ filePath: "src/blocks/ai/PromptInput.tsx",
230
+ sku: "@molecule/ai/prompt-input",
231
+ humanLabel: "PromptInput",
232
+ humanDescription: "A specialized input field for users to type and submit prompts, including a send button."
233
+ },
234
+ {
235
+ id: "watchlist-engine",
236
+ name: "WatchlistEngine",
237
+ version: "1.0.0",
238
+ description: "A self-contained financial watchlist showing tickers with live price, day change, market cap, and a risk grade. Strategic purpose: a worked reference for a schema-validated data block — rows are parsed through FinancialAssetSchema before render, so malformed feed data is rejected at the boundary rather than crashing the table.",
239
+ tags: [
240
+ "engines",
241
+ "finance",
242
+ "watchlist",
243
+ "table",
244
+ "market",
245
+ "block"
246
+ ],
247
+ category: "blocks",
248
+ props: [],
249
+ importPath: "./blocks/engines/WatchlistEngine",
250
+ filePath: "src/blocks/engines/WatchlistEngine.tsx",
251
+ sku: "@molecule/block/watchlist-engine",
252
+ humanLabel: "WatchlistEngine",
253
+ humanDescription: "A self-contained financial watchlist showing tickers with live price, day change, market cap, and a risk grade. Strategic purpose: a worked reference for a schema-validated data block — rows are parsed through FinancialAssetSchema before render, so malformed feed data is rejected at the boundary rather than crashing the table."
254
+ },
255
+ {
256
+ id: "telemetry-log",
257
+ name: "TelemetryLog",
258
+ version: "1.0.0",
259
+ description: "A scrolling, newest-first table of raw sensor readings with a bounded row count. Strategic purpose: the debugging companion to a device dashboard — shows exactly what arrived and when, while `maxRows` caps memory so a high-frequency feed can run indefinitely without growing without limit.",
260
+ tags: [
261
+ "iot",
262
+ "telemetry",
263
+ "log",
264
+ "table",
265
+ "sensor",
266
+ "debug"
267
+ ],
268
+ category: "iot",
269
+ props: [
270
+ {
271
+ name: "rowData",
272
+ type: "Array<TelemetryLogRow>",
273
+ description: "Readings, each `{ timestamp, soilMoisture?, ambientLight?, temperature? }`."
274
+ },
275
+ {
276
+ name: "maxRows",
277
+ type: "number",
278
+ description: "Cap on retained rows; oldest are dropped past this."
279
+ },
280
+ {
281
+ name: "height",
282
+ type: "string",
283
+ description: "CSS height for the scroll viewport."
284
+ },
285
+ {
286
+ name: "className",
287
+ type: "string",
288
+ description: "Additional CSS classes."
289
+ }
290
+ ],
291
+ importPath: "./blocks/iot/TelemetryLog",
292
+ filePath: "src/blocks/iot/TelemetryLog.tsx",
293
+ sku: "@molecule/iot/telemetry-log",
294
+ humanLabel: "TelemetryLog",
295
+ humanDescription: "A scrolling, newest-first table of raw sensor readings with a bounded row count. Strategic purpose: the debugging companion to a device dashboard — shows exactly what arrived and when, while `maxRows` caps memory so a high-frequency feed can run indefinitely without growing without limit."
296
+ },
297
+ {
298
+ id: "water-pump-control",
299
+ name: "WaterPumpControl",
300
+ version: "1.0.0",
301
+ description: "An irrigation control block: choose automatic or manual operation and set the soil-moisture target the controller should hold. Strategic purpose: a worked example of the command half of an edge loop — it emits a typed payload for you to publish, and never talks to the broker itself, so it stays testable and transport-agnostic.",
302
+ tags: [
303
+ "iot",
304
+ "control",
305
+ "pump",
306
+ "irrigation",
307
+ "hardware",
308
+ "command"
309
+ ],
310
+ category: "iot",
311
+ props: [
312
+ {
313
+ name: "pumpMode",
314
+ type: "string",
315
+ description: "Current mode: 'AUTO', 'MANUAL_ON', or 'MANUAL_OFF'."
316
+ },
317
+ {
318
+ name: "targetMoisture",
319
+ type: "number",
320
+ description: "Moisture set-point the controller should maintain."
321
+ },
322
+ {
323
+ name: "onCommand",
324
+ type: "function",
325
+ description: "Called with `{ pumpMode, targetMoisture }` when the operator commits a change. Publish this via useMqtt()."
326
+ },
327
+ {
328
+ name: "className",
329
+ type: "string",
330
+ description: "Additional CSS classes."
331
+ }
332
+ ],
333
+ importPath: "./blocks/iot/WaterPumpControl",
334
+ filePath: "src/blocks/iot/WaterPumpControl.tsx",
335
+ sku: "@molecule/iot/water-pump-control",
336
+ humanLabel: "WaterPumpControl",
337
+ humanDescription: "An irrigation control block: choose automatic or manual operation and set the soil-moisture target the controller should hold. Strategic purpose: a worked example of the command half of an edge loop — it emits a typed payload for you to publish, and never talks to the broker itself, so it stays testable and transport-agnostic."
338
+ },
339
+ {
340
+ id: "aichat-thread",
341
+ name: "AIChatThread",
342
+ version: "1.0.0",
343
+ description: "A complete chat surface — message history, streaming indicator, error banner, provider/model attribution, and the composer. Strategic purpose: the presentational half of a chat feature, driven entirely by props from kernel's useRammeAI(). It holds no transport of its own, and takes a `renderMessage` override so products can add markdown or rich rendering without pulling those deps into @ramme-io/ui.",
344
+ tags: [
345
+ "ai",
346
+ "chat",
347
+ "thread",
348
+ "conversation",
349
+ "streaming",
350
+ "llm"
351
+ ],
352
+ category: "ai",
353
+ props: [
354
+ {
355
+ name: "messages",
356
+ type: "Array<ChatMessage>",
357
+ description: "Conversation history from useRammeAI()."
358
+ },
359
+ {
360
+ name: "isStreaming",
361
+ type: "boolean",
362
+ description: "True while the model is actively responding."
363
+ },
364
+ {
365
+ name: "onSubmit",
366
+ type: "function",
367
+ description: "Called with the trimmed user message on submit."
368
+ },
369
+ {
370
+ name: "error",
371
+ type: "string",
372
+ description: "Error text shown as a banner above the composer."
373
+ },
374
+ {
375
+ name: "activeProvider",
376
+ type: "string",
377
+ description: "Provider name for the attribution bar."
378
+ },
379
+ {
380
+ name: "activeModel",
381
+ type: "string",
382
+ description: "Model name for the attribution bar."
383
+ },
384
+ {
385
+ name: "connectionStatus",
386
+ type: "string",
387
+ description: "Status dot state: 'idle', 'streaming', or 'error'."
388
+ },
389
+ {
390
+ name: "renderMessage",
391
+ type: "function",
392
+ description: "Custom content renderer, receives (content, role). Use for markdown at the product layer."
393
+ }
394
+ ],
395
+ importPath: "./components/ai/AIChatThread/AIChatThread",
396
+ filePath: "src/components/ai/AIChatThread/AIChatThread.tsx",
397
+ sku: "@molecule/ai/aichat-thread",
398
+ humanLabel: "AIChatThread",
399
+ humanDescription: "A complete chat surface — message history, streaming indicator, error banner, provider/model attribution, and the composer. Strategic purpose: the presentational half of a chat feature, driven entirely by props from kernel's useRammeAI(). It holds no transport of its own, and takes a `renderMessage` override so products can add markdown or rich rendering without pulling those deps into @ramme-io/ui."
400
+ },
401
+ {
402
+ id: "company-profile-card",
403
+ name: "CompanyProfileCard",
404
+ version: "1.0.0",
405
+ description: "A company summary for a ticker — sector, industry, and description — fetched on demand and cached. Strategic purpose: a generative-UI block an AI tool call can render directly into a chat thread. Surfaces its own provenance, distinguishing a live fetch from a cached or stale answer instead of presenting all three as equally fresh.",
406
+ tags: [
407
+ "ai",
408
+ "finance",
409
+ "company",
410
+ "profile",
411
+ "card",
412
+ "generative-ui"
413
+ ],
414
+ category: "ai",
415
+ props: [
416
+ {
417
+ name: "ticker",
418
+ type: "string",
419
+ description: "The symbol to profile, e.g. 'AAPL'."
420
+ }
421
+ ],
422
+ importPath: "./components/ai/CompanyProfileCard/CompanyProfileCard",
423
+ filePath: "src/components/ai/CompanyProfileCard/CompanyProfileCard.tsx",
424
+ sku: "@molecule/ai/company-profile-card",
425
+ humanLabel: "CompanyProfileCard",
426
+ humanDescription: "A company summary for a ticker — sector, industry, and description — fetched on demand and cached. Strategic purpose: a generative-UI block an AI tool call can render directly into a chat thread. Surfaces its own provenance, distinguishing a live fetch from a cached or stale answer instead of presenting all three as equally fresh."
427
+ },
428
+ {
429
+ id: "live-quote-card",
430
+ name: "LiveQuoteCard",
431
+ version: "1.0.0",
432
+ description: "AI-generated live stock quote card with real-time price data",
433
+ tags: [
434
+ "ai",
435
+ "stocks",
436
+ "quote",
437
+ "real-time",
438
+ "generative-ui"
439
+ ],
440
+ category: "ai",
441
+ props: [],
442
+ importPath: "./components/ai/LiveQuoteCard/LiveQuoteCard",
443
+ filePath: "src/components/ai/LiveQuoteCard/LiveQuoteCard.tsx",
444
+ sku: "@molecule/ai/live-quote-card",
445
+ humanLabel: "LiveQuoteCard",
446
+ humanDescription: "AI-generated live stock quote card with real-time price data"
447
+ },
448
+ {
449
+ id: "news-summary-card",
450
+ name: "NewsSummaryCard",
451
+ version: "1.0.0",
452
+ description: "AI-generated news summary card with recent headlines",
453
+ tags: [
454
+ "ai",
455
+ "news",
456
+ "sentiment",
457
+ "generative-ui"
458
+ ],
459
+ category: "ai",
460
+ props: [],
461
+ importPath: "./components/ai/NewsSummaryCard/NewsSummaryCard",
462
+ filePath: "src/components/ai/NewsSummaryCard/NewsSummaryCard.tsx",
463
+ sku: "@molecule/ai/news-summary-card",
464
+ humanLabel: "NewsSummaryCard",
465
+ humanDescription: "AI-generated news summary card with recent headlines"
466
+ },
467
+ {
468
+ id: "stock-chart",
469
+ name: "StockChart",
470
+ version: "1.0.0",
471
+ description: "AI-generated financial chart component with Bloomberg-style theming",
472
+ tags: [
473
+ "ai",
474
+ "charts",
475
+ "finance",
476
+ "stocks",
477
+ "generative-ui"
478
+ ],
479
+ category: "ai",
480
+ props: [],
481
+ importPath: "./components/ai/StockChart/StockChart",
482
+ filePath: "src/components/ai/StockChart/StockChart.tsx",
483
+ sku: "@molecule/ai/stock-chart",
484
+ humanLabel: "StockChart",
485
+ humanDescription: "AI-generated financial chart component with Bloomberg-style theming"
486
+ },
487
+ {
488
+ id: "telemetry-graph",
489
+ name: "TelemetryGraph",
490
+ version: "1.0.0",
491
+ description: "AI-generated telemetry visualization component",
492
+ tags: [
493
+ "ai",
494
+ "charts",
495
+ "telemetry",
496
+ "generative-ui"
497
+ ],
498
+ category: "ai",
499
+ props: [],
500
+ importPath: "./components/ai/TelemetryGraph/TelemetryGraph",
501
+ filePath: "src/components/ai/TelemetryGraph/TelemetryGraph.tsx",
502
+ sku: "@molecule/ai/telemetry-graph",
503
+ humanLabel: "TelemetryGraph",
504
+ humanDescription: "AI-generated telemetry visualization component"
505
+ },
506
+ {
507
+ id: "login-page",
508
+ name: "LoginPage",
509
+ version: "1.0.0",
510
+ description: "The standard sign-in screen — email and password, with inline error and loading states already wired. Strategic purpose: a drop-in credential form so products don't rebuild one; `quickProfiles` adds one-click demo personas, which is what makes a prototype instantly explorable without real accounts.",
511
+ tags: [
512
+ "auth",
513
+ "login",
514
+ "form",
515
+ "signin",
516
+ "page"
517
+ ],
518
+ category: "auth",
519
+ props: [
520
+ {
521
+ name: "onLogin",
522
+ type: "function",
523
+ description: "Called with (email, password) on submit."
524
+ },
525
+ {
526
+ name: "error",
527
+ type: "string",
528
+ description: "Message shown above the form when sign-in fails."
529
+ },
530
+ {
531
+ name: "loading",
532
+ type: "boolean",
533
+ description: "Disables the form and shows progress while authenticating."
534
+ },
535
+ {
536
+ name: "quickProfiles",
537
+ type: "Array<QuickProfile>",
538
+ description: "Optional one-click demo identities, each `{ name, email, role }`."
539
+ }
540
+ ],
541
+ importPath: "./components/auth/LoginPage",
542
+ filePath: "src/components/auth/LoginPage.tsx",
543
+ sku: "@atom/auth/login-page",
544
+ humanLabel: "LoginPage",
545
+ humanDescription: "The standard sign-in screen — email and password, with inline error and loading states already wired. Strategic purpose: a drop-in credential form so products don't rebuild one; `quickProfiles` adds one-click demo personas, which is what makes a prototype instantly explorable without real accounts."
546
+ },
547
+ {
548
+ id: "signup-page",
549
+ name: "SignupPage",
550
+ version: "1.0.0",
551
+ description: "The standard account-creation screen — name, email, and password with inline error and loading states. Strategic purpose: the companion to LoginPage so both halves of the auth flow look and behave identically without either being hand-rolled.",
552
+ tags: [
553
+ "auth",
554
+ "signup",
555
+ "register",
556
+ "form",
557
+ "page"
558
+ ],
559
+ category: "auth",
560
+ props: [
561
+ {
562
+ name: "onSignup",
563
+ type: "function",
564
+ description: "Called with (name, email, password) on submit."
565
+ },
566
+ {
567
+ name: "error",
568
+ type: "string",
569
+ description: "Message shown above the form when sign-up fails."
570
+ },
571
+ {
572
+ name: "loading",
573
+ type: "boolean",
574
+ description: "Disables the form and shows progress while submitting."
575
+ }
576
+ ],
577
+ importPath: "./components/auth/SignupPage",
578
+ filePath: "src/components/auth/SignupPage.tsx",
579
+ sku: "@atom/auth/signup-page",
580
+ humanLabel: "SignupPage",
581
+ humanDescription: "The standard account-creation screen — name, email, and password with inline error and loading states. Strategic purpose: the companion to LoginPage so both halves of the auth flow look and behave identically without either being hand-rolled."
582
+ },
583
+ {
584
+ id: "activity-feed",
585
+ name: "ActivityFeed",
586
+ version: "1.0.0",
587
+ description: "Displays a chronological list of recent activities, typically with a timeline indicator.",
588
+ tags: [
589
+ "templates",
590
+ "patterns",
591
+ "feed",
592
+ "timeline",
593
+ "data-display"
594
+ ],
595
+ category: "templates-patterns",
596
+ props: [
597
+ {
598
+ name: "items",
599
+ type: "ActivityItemData[]",
600
+ description: "An array of activity items to display in the feed."
601
+ },
602
+ {
603
+ name: "title",
604
+ type: "string",
605
+ description: "An optional title for the activity feed card.",
606
+ default: '"Activity Feed"'
607
+ },
608
+ {
609
+ name: "changelogUrl",
610
+ type: "string",
611
+ description: 'An optional URL for a "View changelog" link.'
612
+ }
613
+ ],
614
+ importPath: "./components/data-display/ActivityFeed",
615
+ filePath: "src/components/data-display/ActivityFeed.tsx",
616
+ sku: "@atom/templates-patterns/activity-feed",
617
+ humanLabel: "ActivityFeed",
618
+ humanDescription: "Displays a chronological list of recent activities, typically with a timeline indicator."
619
+ },
620
+ {
621
+ id: "area-chart",
622
+ name: "AreaChart",
623
+ version: "1.0.0",
624
+ description: "A theme-aware area chart component powered by Recharts, ideal for showing trends and volume over time. Supports multi-series and stacked mode.",
625
+ tags: [
626
+ "charts",
627
+ "data-visualization",
628
+ "rechart",
629
+ "trend",
630
+ "timeseries"
631
+ ],
632
+ category: "charts",
633
+ props: [
634
+ {
635
+ name: "data",
636
+ type: "any[]",
637
+ description: "The dataset for the chart."
638
+ },
639
+ {
640
+ name: "dataKeyX",
641
+ type: "string",
642
+ description: "The key used for the X-axis (e.g., 'day', 'month')."
643
+ },
644
+ {
645
+ name: "areaKeys",
646
+ type: "string[]",
647
+ description: "One or more data keys to render as filled area series."
648
+ },
649
+ {
650
+ name: "colors",
651
+ type: "string[]",
652
+ description: "Optional override colors per series. Falls back to theme palette."
653
+ },
654
+ {
655
+ name: "stacked",
656
+ type: "boolean",
657
+ description: "Stack area series on top of each other. Default false."
658
+ },
659
+ {
660
+ name: "fillOpacity",
661
+ type: "number",
662
+ description: "Opacity of the area fill. Default 0.2."
663
+ }
664
+ ],
665
+ importPath: "./components/data-display/AreaChart",
666
+ filePath: "src/components/data-display/AreaChart.tsx",
667
+ sku: "@atom/charts/area-chart",
668
+ humanLabel: "AreaChart",
669
+ humanDescription: "A theme-aware area chart component powered by Recharts, ideal for showing trends and volume over time. Supports multi-series and stacked mode."
670
+ },
671
+ {
672
+ id: "bar-chart",
673
+ name: "BarChart",
674
+ version: "1.0.0",
675
+ description: "A theme-aware bar chart component powered by Recharts, for comparing categorical data.",
676
+ tags: [
677
+ "charts",
678
+ "data-visualization",
679
+ "rechart"
680
+ ],
681
+ category: "charts",
682
+ props: [
683
+ {
684
+ name: "data",
685
+ type: "any[]",
686
+ description: "The dataset for the chart. Each object in the array represents a category."
687
+ },
688
+ {
689
+ name: "dataKeyX",
690
+ type: "string",
691
+ description: "The key from your data objects to be used for the X-axis (e.g., 'name', 'category')."
692
+ },
693
+ {
694
+ name: "barKeys",
695
+ type: "{ key: string; color: string }[]",
696
+ description: "An array of objects, each specifying a data key for a bar series and its color (e.g., `[{ key: 'pv', color: '#8884d8' }]`)."
697
+ },
698
+ {
699
+ name: "title",
700
+ type: "string",
701
+ description: "An optional title to display above the chart."
702
+ }
703
+ ],
704
+ importPath: "./components/data-display/BarChart",
705
+ filePath: "src/components/data-display/BarChart.tsx",
706
+ sku: "@atom/charts/bar-chart",
707
+ humanLabel: "BarChart",
708
+ humanDescription: "A theme-aware bar chart component powered by Recharts, for comparing categorical data."
709
+ },
710
+ {
711
+ id: "chart-with-table",
712
+ name: "ChartWithTable",
713
+ version: "1.0.0",
714
+ description: "A wrapper component that combines a chart with an option to view its underlying data in a table within a drawer.",
715
+ tags: [
716
+ "templates",
717
+ "charts",
718
+ "data-display",
719
+ "pattern",
720
+ "dashboard"
721
+ ],
722
+ category: "templates-patterns",
723
+ props: [
724
+ {
725
+ name: "title",
726
+ type: "string",
727
+ description: "The title displayed at the top of the chart card."
728
+ },
729
+ {
730
+ name: "children",
731
+ type: "React.ReactNode",
732
+ description: "The chart component itself (e.g., <BarChart />, <LineChart />)."
733
+ },
734
+ {
735
+ name: "data",
736
+ type: "any[]",
737
+ description: "The raw data array used to render the chart and the table view."
738
+ },
739
+ {
740
+ name: "tableHeaders",
741
+ type: "TableHeader[]",
742
+ description: "The column definitions for the table view."
743
+ }
744
+ ],
745
+ importPath: "./components/data-display/ChartWithTable",
746
+ filePath: "src/components/data-display/ChartWithTable.tsx",
747
+ sku: "@atom/templates-patterns/chart-with-table",
748
+ humanLabel: "ChartWithTable",
749
+ humanDescription: "A wrapper component that combines a chart with an option to view its underlying data in a table within a drawer."
750
+ },
751
+ {
752
+ id: "code-block",
753
+ name: "CodeBlock",
754
+ version: "1.0.0",
755
+ description: "A component for displaying formatted and syntax-highlighted code snippets.",
756
+ tags: [
757
+ "ui",
758
+ "data-display",
759
+ "code"
760
+ ],
761
+ category: "ui",
762
+ props: [
763
+ {
764
+ name: "code",
765
+ type: "string",
766
+ description: "The string of code to display."
767
+ },
768
+ {
769
+ name: "language",
770
+ type: "string",
771
+ description: "The programming language for syntax highlighting (e.g., 'tsx', 'css', 'javascript')."
772
+ }
773
+ ],
774
+ importPath: "./components/data-display/CodeBlock",
775
+ filePath: "src/components/data-display/CodeBlock.tsx",
776
+ sku: "@atom/primitive/code-block",
777
+ humanLabel: "CodeBlock",
778
+ humanDescription: "A component for displaying formatted and syntax-highlighted code snippets."
779
+ },
780
+ {
781
+ id: "data-table",
782
+ name: "DataTable",
783
+ version: "1.0.0",
784
+ description: 'A "Smart" data grid that renders data based on a simple JSON schema.',
785
+ tags: [
786
+ "data-display",
787
+ "grid",
788
+ "table",
789
+ "smart-component"
790
+ ],
791
+ category: "data-display",
792
+ props: [],
793
+ importPath: "./components/data-display/DataTable",
794
+ filePath: "src/components/data-display/DataTable.tsx",
795
+ sku: "@molecule/data/data-table",
796
+ humanLabel: "DataTable",
797
+ humanDescription: 'A "Smart" data grid that renders data based on a simple JSON schema.'
798
+ },
799
+ {
800
+ id: "kpi-grid",
801
+ name: "KpiGrid",
802
+ version: "1.0.0",
803
+ description: "A framework-level abstraction that takes raw data and metric configurations to auto-calculate values and render a grid of StatCards.",
804
+ tags: [
805
+ "data-display",
806
+ "metrics",
807
+ "grid",
808
+ "templates"
809
+ ],
810
+ category: "templates-patterns",
811
+ props: [],
812
+ importPath: "./components/data-display/KpiGrid",
813
+ filePath: "src/components/data-display/KpiGrid.tsx",
814
+ sku: "@atom/templates-patterns/kpi-grid",
815
+ humanLabel: "KpiGrid",
816
+ humanDescription: "A framework-level abstraction that takes raw data and metric configurations to auto-calculate values and render a grid of StatCards."
817
+ },
818
+ {
819
+ id: "line-chart",
820
+ name: "LineChart",
821
+ version: "1.0.0",
822
+ description: "A theme-aware line chart component...",
823
+ tags: [
824
+ "charts",
825
+ "data-visualization",
826
+ "rechart"
827
+ ],
828
+ category: "charts",
829
+ props: [],
830
+ importPath: "./components/data-display/LineChart",
831
+ filePath: "src/components/data-display/LineChart.tsx",
832
+ sku: "@atom/charts/line-chart",
833
+ humanLabel: "LineChart",
834
+ humanDescription: "A theme-aware line chart component..."
835
+ },
836
+ {
837
+ id: "pie-chart",
838
+ name: "PieChart",
839
+ version: "1.0.0",
840
+ description: "A theme-aware pie chart component powered by Recharts, for showing proportional relationships of parts to a whole.",
841
+ tags: [
842
+ "charts",
843
+ "data-visualization",
844
+ "rechart"
845
+ ],
846
+ category: "charts",
847
+ props: [],
848
+ importPath: "./components/data-display/PieChart",
849
+ filePath: "src/components/data-display/PieChart.tsx",
850
+ sku: "@atom/charts/pie-chart",
851
+ humanLabel: "PieChart",
852
+ humanDescription: "A theme-aware pie chart component powered by Recharts, for showing proportional relationships of parts to a whole."
853
+ },
854
+ {
855
+ id: "scatter-chart",
856
+ name: "ScatterChart",
857
+ version: "1.0.0",
858
+ description: "A theme-aware scatter plot for visualising correlations and distributions between two numeric variables.",
859
+ tags: [
860
+ "charts",
861
+ "data-visualization",
862
+ "rechart",
863
+ "scatter",
864
+ "correlation"
865
+ ],
866
+ category: "charts",
867
+ props: [
868
+ {
869
+ name: "data",
870
+ type: "any[]",
871
+ description: "Dataset. Each object must have numeric values at dataKeyX and dataKeyY."
872
+ },
873
+ {
874
+ name: "dataKeyX",
875
+ type: "string",
876
+ description: "Key for the X-axis values."
877
+ },
878
+ {
879
+ name: "dataKeyY",
880
+ type: "string",
881
+ description: "Key for the Y-axis values."
882
+ },
883
+ {
884
+ name: "dataKeyZ",
885
+ type: "string",
886
+ description: "Optional key for bubble size (Z-axis). Omit for uniform dot size."
887
+ },
888
+ {
889
+ name: "xLabel",
890
+ type: "string",
891
+ description: "Optional label shown below the X-axis."
892
+ },
893
+ {
894
+ name: "yLabel",
895
+ type: "string",
896
+ description: "Optional label shown beside the Y-axis."
897
+ },
898
+ {
899
+ name: "colors",
900
+ type: "string[]",
901
+ description: "Optional override colors. Falls back to theme palette."
902
+ }
903
+ ],
904
+ importPath: "./components/data-display/ScatterChart",
905
+ filePath: "src/components/data-display/ScatterChart.tsx",
906
+ sku: "@atom/charts/scatter-chart",
907
+ humanLabel: "ScatterChart",
908
+ humanDescription: "A theme-aware scatter plot for visualising correlations and distributions between two numeric variables."
909
+ },
910
+ {
911
+ id: "stat-card",
912
+ name: "StatCard",
913
+ version: "1.0.0",
914
+ description: "A specialized card for prominently displaying a key statistic, including an icon and optional trend indicator.",
915
+ tags: [
916
+ "templates",
917
+ "data-display",
918
+ "metrics",
919
+ "dashboard",
920
+ "ui"
921
+ ],
922
+ category: "templates-patterns",
923
+ props: [
924
+ {
925
+ name: "title",
926
+ type: "string",
927
+ description: "The label for the displayed metric."
928
+ },
929
+ {
930
+ name: "value",
931
+ type: "string",
932
+ description: "The main value of the statistic."
933
+ },
934
+ {
935
+ name: "icon",
936
+ type: "IconName",
937
+ description: "The name of a Lucide icon to represent the metric."
938
+ },
939
+ {
940
+ name: "changeText",
941
+ type: "string",
942
+ description: "Text describing the change in the metric (e.g., '10% since last month')."
943
+ },
944
+ {
945
+ name: "changeDirection",
946
+ type: `"'positive' | 'negative'"`,
947
+ description: "The direction of change, which determines the color of the badge."
948
+ },
949
+ {
950
+ name: "footerText",
951
+ type: "string",
952
+ description: "Optional text displayed at the bottom of the card for context."
953
+ },
954
+ {
955
+ name: "className",
956
+ type: "string",
957
+ description: "Optional additional CSS classes for custom styling."
958
+ }
959
+ ],
960
+ importPath: "./components/data-display/StatCard",
961
+ filePath: "src/components/data-display/StatCard.tsx",
962
+ sku: "@atom/templates-patterns/stat-card",
963
+ humanLabel: "StatCard",
964
+ humanDescription: "A specialized card for prominently displaying a key statistic, including an icon and optional trend indicator."
965
+ },
966
+ {
967
+ id: "status-badge",
968
+ name: "StatusBadge",
969
+ version: "1.0.1",
970
+ description: "A consistent status indicator featuring a color-coded dot and an optional text label. Essential for IoT devices and system states.",
971
+ tags: [
972
+ "status",
973
+ "badge",
974
+ "iot",
975
+ "indicator",
976
+ "dot"
977
+ ],
978
+ category: "data-display",
979
+ props: [
980
+ {
981
+ name: "status",
982
+ type: "'online' | 'offline' | 'error' | 'warning' | 'active'",
983
+ description: "One of the 5 built-in presets. Determines the color of the dot. Omit and use `color`+`label` for a status outside this set."
984
+ },
985
+ {
986
+ name: "color",
987
+ type: "string",
988
+ description: "Tailwind background class for the dot (e.g. 'bg-emerald-500'). Overrides the `status` preset's color when both are given."
989
+ },
990
+ {
991
+ name: "label",
992
+ type: "string",
993
+ description: 'Custom text to display next to the dot. If omitted, displays the status name (e.g., "Online").'
994
+ },
995
+ {
996
+ name: "showDot",
997
+ type: "boolean",
998
+ description: "Whether to show the colored indicator dot.",
999
+ default: "true"
1000
+ },
1001
+ {
1002
+ name: "className",
1003
+ type: "string",
1004
+ description: "Additional CSS classes."
1005
+ }
1006
+ ],
1007
+ importPath: "./components/data-display/StatusBadge",
1008
+ filePath: "src/components/data-display/StatusBadge.tsx",
1009
+ sku: "@molecule/data/status-badge",
1010
+ humanLabel: "StatusBadge",
1011
+ humanDescription: "A consistent status indicator featuring a color-coded dot and an optional text label. Essential for IoT devices and system states."
1012
+ },
1013
+ {
1014
+ id: "table",
1015
+ name: "Table",
1016
+ version: "1.0.0",
1017
+ description: "A simple, theme-aware HTML table component for displaying tabular data, with support for custom cell rendering and empty states.",
1018
+ tags: [
1019
+ "data-display",
1020
+ "table",
1021
+ "ui"
1022
+ ],
1023
+ category: "data-display",
1024
+ props: [
1025
+ {
1026
+ name: "headers",
1027
+ type: '"{ key: string; label: string; render?: (value: any, row: Record<string, any>) => React.ReactNode; }[]"',
1028
+ description: "An array defining the table columns, including a `key`, `label`, and optional `render` function for custom cell content."
1029
+ },
1030
+ {
1031
+ name: "data",
1032
+ type: '"Record<string, any>[]"',
1033
+ description: "An array of objects, where each object represents a row of data for the table."
1034
+ },
1035
+ {
1036
+ name: "caption",
1037
+ type: "string",
1038
+ description: "An optional caption for the table, providing a title or summary."
1039
+ },
1040
+ {
1041
+ name: "className",
1042
+ type: "string",
1043
+ description: "Optional additional CSS classes for custom styling of the table container."
1044
+ }
1045
+ ],
1046
+ importPath: "./components/data-display/Table",
1047
+ filePath: "src/components/data-display/Table.tsx",
1048
+ sku: "@molecule/data/table",
1049
+ humanLabel: "Table",
1050
+ humanDescription: "A simple, theme-aware HTML table component for displaying tabular data, with support for custom cell rendering and empty states."
1051
+ },
1052
+ {
1053
+ id: "alert",
1054
+ name: "Alert",
1055
+ version: "1.0.0",
1056
+ description: "Displays static, in-page messages to convey important information like success, warnings, or errors.",
1057
+ tags: [
1058
+ "feedback",
1059
+ "message",
1060
+ "notification",
1061
+ "ui"
1062
+ ],
1063
+ category: "feedback",
1064
+ props: [
1065
+ {
1066
+ name: "title",
1067
+ type: "string",
1068
+ description: "The main heading or concise summary of the alert message."
1069
+ },
1070
+ {
1071
+ name: "children",
1072
+ type: "React.ReactNode",
1073
+ description: "Optional additional content or a longer description for the alert."
1074
+ },
1075
+ {
1076
+ name: "variant",
1077
+ type: "'info' | 'success' | 'warning' | 'danger'",
1078
+ description: "Defines the color scheme, icon, and semantic meaning of the alert.",
1079
+ default: "'info'"
1080
+ },
1081
+ {
1082
+ name: "className",
1083
+ type: "string",
1084
+ description: "Optional additional CSS classes for custom styling of the alert container."
1085
+ }
1086
+ ],
1087
+ importPath: "./components/feedback/Alert",
1088
+ filePath: "src/components/feedback/Alert.tsx",
1089
+ sku: "@molecule/feedback/alert",
1090
+ humanLabel: "Alert",
1091
+ humanDescription: "Displays static, in-page messages to convey important information like success, warnings, or errors."
1092
+ },
1093
+ {
1094
+ id: "empty-state",
1095
+ name: "EmptyState",
1096
+ version: "1.0.0",
1097
+ description: "A component for displaying a message when there is no data or content to show.",
1098
+ tags: [
1099
+ "ui",
1100
+ "feedback",
1101
+ "empty",
1102
+ "placeholder"
1103
+ ],
1104
+ category: "feedback",
1105
+ props: [
1106
+ {
1107
+ name: "icon",
1108
+ type: "React.ComponentProps<typeof Icon>['name']",
1109
+ description: "The name of a Lucide icon to visually represent the empty state."
1110
+ },
1111
+ {
1112
+ name: "title",
1113
+ type: "string",
1114
+ description: "The main heading or title for the empty state message."
1115
+ },
1116
+ {
1117
+ name: "description",
1118
+ type: "string",
1119
+ description: "A longer, descriptive text explaining the empty state or next steps."
1120
+ },
1121
+ {
1122
+ name: "actionButton",
1123
+ type: "React.ReactNode",
1124
+ description: "An optional React node, typically a Button, to provide a primary action."
1125
+ },
1126
+ {
1127
+ name: "className",
1128
+ type: "string",
1129
+ description: "Additional CSS classes for custom styling of the container."
1130
+ }
1131
+ ],
1132
+ importPath: "./components/feedback/EmptyState",
1133
+ filePath: "src/components/feedback/EmptyState.tsx",
1134
+ sku: "@molecule/feedback/empty-state",
1135
+ humanLabel: "EmptyState",
1136
+ humanDescription: "A component for displaying a message when there is no data or content to show."
1137
+ },
1138
+ {
1139
+ id: "plan",
1140
+ name: "Plan",
1141
+ version: "1.0.0",
1142
+ description: "A strategic component for displaying roadmaps, checklists, or step-by-step plans.",
1143
+ tags: [
1144
+ "feedback",
1145
+ "list",
1146
+ "roadmap",
1147
+ "plan"
1148
+ ],
1149
+ category: "feedback",
1150
+ props: [],
1151
+ importPath: "./components/feedback/Plan",
1152
+ filePath: "src/components/feedback/Plan.tsx",
1153
+ sku: "@molecule/feedback/plan",
1154
+ humanLabel: "Plan",
1155
+ humanDescription: "A strategic component for displaying roadmaps, checklists, or step-by-step plans."
1156
+ },
1157
+ {
1158
+ id: "skeleton",
1159
+ name: "Skeleton",
1160
+ version: "1.0.0",
1161
+ description: "A pulsing placeholder block for content that hasn't loaded yet. Size and shape it via className (e.g. 'h-16 w-full', 'h-3 w-24 rounded-full') to match the real content it stands in for.",
1162
+ tags: [
1163
+ "feedback",
1164
+ "loading",
1165
+ "skeleton",
1166
+ "placeholder"
1167
+ ],
1168
+ category: "feedback",
1169
+ props: [
1170
+ {
1171
+ name: "className",
1172
+ type: "string",
1173
+ description: "Sizing/shape classes applied on top of the base pulse + rounded-corner styling."
1174
+ }
1175
+ ],
1176
+ importPath: "./components/feedback/Skeleton",
1177
+ filePath: "src/components/feedback/Skeleton.tsx",
1178
+ sku: "@molecule/feedback/skeleton",
1179
+ humanLabel: "Skeleton",
1180
+ humanDescription: "A pulsing placeholder block for content that hasn't loaded yet. Size and shape it via className (e.g. 'h-16 w-full', 'h-3 w-24 rounded-full') to match the real content it stands in for."
1181
+ },
1182
+ {
1183
+ id: "tippy-tooltip",
1184
+ name: "TippyTooltip",
1185
+ version: "1.0.0",
1186
+ description: "A flexible and theme-aware tooltip component that displays additional information on hover.",
1187
+ tags: [
1188
+ "ui",
1189
+ "feedback",
1190
+ "tooltip",
1191
+ "overlay"
1192
+ ],
1193
+ category: "feedback",
1194
+ props: [
1195
+ {
1196
+ name: "children",
1197
+ type: "React.ReactNode",
1198
+ description: "The element that triggers the tooltip when hovered over (or clicked, etc.)."
1199
+ },
1200
+ {
1201
+ name: "content",
1202
+ type: "React.ReactNode",
1203
+ description: "The content to be displayed inside the tooltip."
1204
+ },
1205
+ {
1206
+ name: "placement",
1207
+ type: "TippyProps['placement']",
1208
+ description: "The position of the tooltip relative to its trigger element (e.g., 'top', 'bottom', 'left', 'right').",
1209
+ default: "'top'"
1210
+ },
1211
+ {
1212
+ name: "className",
1213
+ type: "string",
1214
+ description: "Optional additional CSS classes for custom styling of the tooltip content."
1215
+ }
1216
+ ],
1217
+ importPath: "./components/feedback/TippyTooltip",
1218
+ filePath: "src/components/feedback/TippyTooltip.tsx",
1219
+ sku: "@molecule/feedback/tippy-tooltip",
1220
+ humanLabel: "TippyTooltip",
1221
+ humanDescription: "A flexible and theme-aware tooltip component that displays additional information on hover."
1222
+ },
1223
+ {
1224
+ id: "toast",
1225
+ name: "Toast",
1226
+ version: "1.0.0",
1227
+ description: "A single, transient notification message that appears briefly to provide feedback.",
1228
+ tags: [
1229
+ "feedback",
1230
+ "notification",
1231
+ "message",
1232
+ "ui"
1233
+ ],
1234
+ category: "feedback",
1235
+ props: [
1236
+ {
1237
+ name: "id",
1238
+ type: "string",
1239
+ description: "A unique identifier for this specific toast instance."
1240
+ },
1241
+ {
1242
+ name: "title",
1243
+ type: "string",
1244
+ description: "An optional title for the toast notification."
1245
+ },
1246
+ {
1247
+ name: "message",
1248
+ type: "string",
1249
+ description: "The main text content of the toast notification."
1250
+ },
1251
+ {
1252
+ name: "type",
1253
+ type: `"'success' | 'error' | 'info' | 'warning'"`,
1254
+ description: "Defines the visual style and semantic meaning of the toast.",
1255
+ default: "'info'"
1256
+ },
1257
+ {
1258
+ name: "duration",
1259
+ type: "number",
1260
+ description: "How long the toast should remain visible in milliseconds. Set to `0` for a sticky toast.",
1261
+ default: "5000"
1262
+ },
1263
+ {
1264
+ name: "onDismiss",
1265
+ type: "(id: string) => void",
1266
+ description: "Callback function triggered when the toast is dismissed."
1267
+ }
1268
+ ],
1269
+ importPath: "./components/feedback/Toast",
1270
+ filePath: "src/components/feedback/Toast.tsx",
1271
+ sku: "@molecule/feedback/toast",
1272
+ humanLabel: "Toast",
1273
+ humanDescription: "A single, transient notification message that appears briefly to provide feedback."
1274
+ },
1275
+ {
1276
+ id: "use-toast",
1277
+ name: "useToast",
1278
+ version: "1.0.0",
1279
+ description: "A React hook to easily add and dismiss toast notifications anywhere within a `ToastProvider`.",
1280
+ tags: [
1281
+ "hook",
1282
+ "feedback",
1283
+ "notification"
1284
+ ],
1285
+ category: "feedback",
1286
+ props: [],
1287
+ importPath: "./components/feedback/ToastProvider",
1288
+ filePath: "src/components/feedback/ToastProvider.tsx",
1289
+ sku: "@molecule/feedback/use-toast",
1290
+ humanLabel: "useToast",
1291
+ humanDescription: "A React hook to easily add and dismiss toast notifications anywhere within a `ToastProvider`."
1292
+ },
1293
+ {
1294
+ id: "toast-provider",
1295
+ name: "ToastProvider",
1296
+ version: "1.0.0",
1297
+ description: "Provides a context for displaying transient notifications (toasts). Wrap your application with this component.",
1298
+ tags: [
1299
+ "feedback",
1300
+ "notification",
1301
+ "context",
1302
+ "provider"
1303
+ ],
1304
+ category: "feedback",
1305
+ props: [
1306
+ {
1307
+ name: "children",
1308
+ type: "React.ReactNode",
1309
+ description: "The React nodes that will have access to the `useToast` hook. Typically wraps the entire application."
1310
+ }
1311
+ ],
1312
+ importPath: "./components/feedback/ToastProvider",
1313
+ filePath: "src/components/feedback/ToastProvider.tsx",
1314
+ sku: "@molecule/feedback/toast-provider",
1315
+ humanLabel: "ToastProvider",
1316
+ humanDescription: "Provides a context for displaying transient notifications (toasts). Wrap your application with this component."
1317
+ },
1318
+ {
1319
+ id: "button-group",
1320
+ name: "ButtonGroup",
1321
+ version: "1.0.0",
1322
+ description: "Groups multiple Button components visually and can function as a segmented control (radio group).",
1323
+ tags: [
1324
+ "ui",
1325
+ "form",
1326
+ "action",
1327
+ "group"
1328
+ ],
1329
+ category: "form",
1330
+ props: [
1331
+ {
1332
+ name: "children",
1333
+ type: "React.ReactNode",
1334
+ description: "The `Button` components to be grouped together."
1335
+ },
1336
+ {
1337
+ name: "className",
1338
+ type: "string",
1339
+ description: "Optional additional CSS classes to apply to the container."
1340
+ },
1341
+ {
1342
+ name: "value",
1343
+ type: "string | number",
1344
+ description: "For segmented controls, the value of the currently selected button."
1345
+ },
1346
+ {
1347
+ name: "onValueChange",
1348
+ type: "(value: string | number) => void",
1349
+ description: "Callback function for segmented controls, called when the selected value changes."
1350
+ }
1351
+ ],
1352
+ importPath: "./components/forms/ButtonGroup",
1353
+ filePath: "src/components/forms/ButtonGroup.tsx",
1354
+ sku: "@atom/form/button-group",
1355
+ humanLabel: "ButtonGroup",
1356
+ humanDescription: "Groups multiple Button components visually and can function as a segmented control (radio group)."
1357
+ },
1358
+ {
1359
+ id: "checkbox",
1360
+ name: "Checkbox",
1361
+ version: "1.0.0",
1362
+ description: "A standard checkbox input for selecting one or more options from a set.",
1363
+ tags: [
1364
+ "form",
1365
+ "input",
1366
+ "selection",
1367
+ "ui"
1368
+ ],
1369
+ category: "form",
1370
+ props: [
1371
+ {
1372
+ name: "label",
1373
+ type: "React.ReactNode",
1374
+ description: "The visible label associated with the checkbox. Can be text or JSX."
1375
+ },
1376
+ {
1377
+ name: "id",
1378
+ type: "string",
1379
+ description: "A unique HTML `id` for the input element. Automatically generated if not provided."
1380
+ },
1381
+ {
1382
+ name: "checked",
1383
+ type: "boolean",
1384
+ description: "Controls whether the checkbox is currently checked."
1385
+ },
1386
+ {
1387
+ name: "onChange",
1388
+ type: "(event: React.ChangeEvent<HTMLInputElement>) => void",
1389
+ description: "Callback function triggered when the checkbox's checked state changes."
1390
+ },
1391
+ {
1392
+ name: "disabled",
1393
+ type: "boolean",
1394
+ description: "If true, the checkbox is unclickable and styled as disabled."
1395
+ },
1396
+ {
1397
+ name: "className",
1398
+ type: "string",
1399
+ description: "Optional additional CSS classes for the input element."
1400
+ }
1401
+ ],
1402
+ importPath: "./components/forms/Checkbox",
1403
+ filePath: "src/components/forms/Checkbox.tsx",
1404
+ sku: "@atom/form/checkbox",
1405
+ humanLabel: "Checkbox",
1406
+ humanDescription: "A standard checkbox input for selecting one or more options from a set."
1407
+ },
1408
+ {
1409
+ id: "combo-box",
1410
+ name: "ComboBox",
1411
+ version: "1.0.0",
1412
+ description: "A text input with an integrated dropdown list of selectable options, allowing both typing and selection.",
1413
+ tags: [
1414
+ "form",
1415
+ "input",
1416
+ "select",
1417
+ "dropdown",
1418
+ "autocomplete",
1419
+ "ui"
1420
+ ],
1421
+ category: "form",
1422
+ props: [],
1423
+ importPath: "./components/forms/ComboBox",
1424
+ filePath: "src/components/forms/ComboBox.tsx",
1425
+ sku: "@atom/form/combo-box",
1426
+ humanLabel: "ComboBox",
1427
+ humanDescription: "A text input with an integrated dropdown list of selectable options, allowing both typing and selection."
1428
+ },
1429
+ {
1430
+ id: "date-picker",
1431
+ name: "DatePicker",
1432
+ version: "1.0.0",
1433
+ description: 'A theme-aware calendar input for selecting dates. Wraps react-datepicker to ensure consistent styling and "Zero Jank" layout stability.',
1434
+ tags: [
1435
+ "form",
1436
+ "input",
1437
+ "date",
1438
+ "calendar",
1439
+ "ui"
1440
+ ],
1441
+ category: "form",
1442
+ props: [],
1443
+ importPath: "./components/forms/DatePicker",
1444
+ filePath: "src/components/forms/DatePicker.tsx",
1445
+ sku: "@atom/form/date-picker",
1446
+ humanLabel: "DatePicker",
1447
+ humanDescription: 'A theme-aware calendar input for selecting dates. Wraps react-datepicker to ensure consistent styling and "Zero Jank" layout stability.'
1448
+ },
1449
+ {
1450
+ id: "file-upload",
1451
+ name: "FileUpload",
1452
+ version: "1.0.0",
1453
+ description: "A modern drag-and-drop file upload area with visual feedback and file listing.",
1454
+ tags: [
1455
+ "form",
1456
+ "input",
1457
+ "upload",
1458
+ "files",
1459
+ "ui"
1460
+ ],
1461
+ category: "form",
1462
+ props: [],
1463
+ importPath: "./components/forms/FileUpload",
1464
+ filePath: "src/components/forms/FileUpload.tsx",
1465
+ sku: "@atom/form/file-upload",
1466
+ humanLabel: "FileUpload",
1467
+ humanDescription: "A modern drag-and-drop file upload area with visual feedback and file listing."
1468
+ },
1469
+ {
1470
+ id: "form-template",
1471
+ name: "FormTemplate",
1472
+ version: "1.0.0",
1473
+ description: "A data-driven form builder that renders a grid of input fields from a configuration array. Now supports File Uploads and Segmented Controls.",
1474
+ tags: [
1475
+ "form",
1476
+ "template",
1477
+ "builder",
1478
+ "input",
1479
+ "layout"
1480
+ ],
1481
+ category: "form",
1482
+ props: [
1483
+ {
1484
+ name: "fields",
1485
+ type: "FormField[]",
1486
+ description: "An array of field definition objects."
1487
+ },
1488
+ {
1489
+ name: "onSubmit",
1490
+ type: "(formData: Record<string, any>) => void",
1491
+ description: "Callback function triggered when the form is submitted."
1492
+ },
1493
+ {
1494
+ name: "className",
1495
+ type: "string",
1496
+ description: "Optional additional CSS classes for the form container."
1497
+ }
1498
+ ],
1499
+ importPath: "./components/forms/FormTemplate",
1500
+ filePath: "src/components/forms/FormTemplate.tsx",
1501
+ sku: "@atom/form/form-template",
1502
+ humanLabel: "FormTemplate",
1503
+ humanDescription: "A data-driven form builder that renders a grid of input fields from a configuration array. Now supports File Uploads and Segmented Controls."
1504
+ },
1505
+ {
1506
+ id: "input",
1507
+ name: "Input",
1508
+ version: "1.0.1",
1509
+ description: "A theme-aware text input with label, icon, helper text, and validation state support. Strategic purpose: single controlled input atom for all text-based data entry across Ramme apps. Forwards all standard HTML input attributes via spread.",
1510
+ tags: [
1511
+ "form",
1512
+ "input",
1513
+ "ui",
1514
+ "text"
1515
+ ],
1516
+ category: "form",
1517
+ props: [
1518
+ {
1519
+ name: "label",
1520
+ type: "string",
1521
+ description: "Optional label displayed above the input field."
1522
+ },
1523
+ {
1524
+ name: "icon",
1525
+ type: "string",
1526
+ description: "Optional Lucide icon name displayed inside the leading edge of the input."
1527
+ },
1528
+ {
1529
+ name: "helperText",
1530
+ type: "string",
1531
+ description: "Supporting text rendered below the input. Appears in destructive color when error is true."
1532
+ },
1533
+ {
1534
+ name: "error",
1535
+ type: "boolean",
1536
+ description: "If true, applies destructive border styling to indicate a validation error. Defaults to false."
1537
+ },
1538
+ {
1539
+ name: "required",
1540
+ type: "boolean",
1541
+ description: "If true, appends a required (*) indicator next to the label. Defaults to false."
1542
+ },
1543
+ {
1544
+ name: "showOptionalLabel",
1545
+ type: "boolean",
1546
+ description: "If true, appends an (optional) label when the field is not required. Defaults to false."
1547
+ },
1548
+ {
1549
+ name: "containerClassName",
1550
+ type: "string",
1551
+ description: "Additional CSS classes applied to the outer container div."
1552
+ }
1553
+ ],
1554
+ importPath: "./components/forms/Input",
1555
+ filePath: "src/components/forms/Input.tsx",
1556
+ sku: "@atom/form/input",
1557
+ humanLabel: "Input",
1558
+ humanDescription: "A theme-aware text input with label, icon, helper text, and validation state support. Strategic purpose: single controlled input atom for all text-based data entry across Ramme apps. Forwards all standard HTML input attributes via spread."
1559
+ },
1560
+ {
1561
+ id: "label",
1562
+ name: "Label",
1563
+ version: "1.0.0",
1564
+ description: "The accessible caption for a form control. Strategic purpose: pairs a field with its name so clicking the label focuses the input, and so screen readers announce the two together. Built on Radix's Label primitive — set `htmlFor` to the input's `id`, or nest the input inside. Dims automatically when the paired control is disabled (via `peer-disabled`).",
1565
+ tags: [
1566
+ "forms",
1567
+ "label",
1568
+ "caption",
1569
+ "accessibility",
1570
+ "field"
1571
+ ],
1572
+ category: "forms",
1573
+ props: [
1574
+ {
1575
+ name: "htmlFor",
1576
+ type: "string",
1577
+ description: "The `id` of the form control this labels. Required for the click-to-focus and screen-reader association unless the control is nested inside."
1578
+ },
1579
+ {
1580
+ name: "className",
1581
+ type: "string",
1582
+ description: "Additional CSS classes."
1583
+ },
1584
+ {
1585
+ name: "children",
1586
+ type: "ReactNode",
1587
+ description: "The label text."
1588
+ }
1589
+ ],
1590
+ importPath: "./components/forms/Label",
1591
+ filePath: "src/components/forms/Label.tsx",
1592
+ sku: "@molecule/form/label",
1593
+ humanLabel: "Label",
1594
+ humanDescription: "The accessible caption for a form control. Strategic purpose: pairs a field with its name so clicking the label focuses the input, and so screen readers announce the two together. Built on Radix's Label primitive — set `htmlFor` to the input's `id`, or nest the input inside. Dims automatically when the paired control is disabled (via `peer-disabled`)."
1595
+ },
1596
+ {
1597
+ id: "multi-select",
1598
+ name: "MultiSelect",
1599
+ version: "1.0.0",
1600
+ description: "A searchable dropdown for picking several options at once, rendering selections as removable chips. Strategic purpose: the canonical multi-value picker — use it for tag, category, and filter inputs rather than a native multiple-select or a hand-rolled checkbox list. For a single value use Select; for a free-text-plus-suggestions field use ComboBox.",
1601
+ tags: [
1602
+ "forms",
1603
+ "select",
1604
+ "multiselect",
1605
+ "dropdown",
1606
+ "tags",
1607
+ "filter",
1608
+ "input"
1609
+ ],
1610
+ category: "forms",
1611
+ props: [
1612
+ {
1613
+ name: "options",
1614
+ type: "Array<MultiSelectOption>",
1615
+ description: "Selectable options, each `{ value, label }`."
1616
+ },
1617
+ {
1618
+ name: "value",
1619
+ type: "Array<MultiSelectOption>",
1620
+ description: "Currently selected options. Controlled — pass null or [] for empty."
1621
+ },
1622
+ {
1623
+ name: "onChange",
1624
+ type: "function",
1625
+ description: "Called with the new selection array (or null when cleared)."
1626
+ },
1627
+ {
1628
+ name: "label",
1629
+ type: "string",
1630
+ description: "Caption rendered above the control."
1631
+ },
1632
+ {
1633
+ name: "placeholder",
1634
+ type: "string",
1635
+ description: "Text shown when nothing is selected."
1636
+ },
1637
+ {
1638
+ name: "isSearchable",
1639
+ type: "boolean",
1640
+ description: "Allows typing to filter the options. Defaults to true."
1641
+ },
1642
+ {
1643
+ name: "isClearable",
1644
+ type: "boolean",
1645
+ description: "Shows a control to clear the whole selection."
1646
+ },
1647
+ {
1648
+ name: "isLoading",
1649
+ type: "boolean",
1650
+ description: "Shows a loading indicator inside the control."
1651
+ },
1652
+ {
1653
+ name: "isDisabled",
1654
+ type: "boolean",
1655
+ description: "Disables interaction."
1656
+ },
1657
+ {
1658
+ name: "className",
1659
+ type: "string",
1660
+ description: "Additional CSS classes."
1661
+ }
1662
+ ],
1663
+ importPath: "./components/forms/MultiSelect",
1664
+ filePath: "src/components/forms/MultiSelect.tsx",
1665
+ sku: "@molecule/form/multi-select",
1666
+ humanLabel: "MultiSelect",
1667
+ humanDescription: "A searchable dropdown for picking several options at once, rendering selections as removable chips. Strategic purpose: the canonical multi-value picker — use it for tag, category, and filter inputs rather than a native multiple-select or a hand-rolled checkbox list. For a single value use Select; for a free-text-plus-suggestions field use ComboBox."
1668
+ },
1669
+ {
1670
+ id: "radio",
1671
+ name: "Radio",
1672
+ version: "1.0.0",
1673
+ description: "A single radio button input, typically used within a group where only one option can be selected.",
1674
+ tags: [
1675
+ "form",
1676
+ "input",
1677
+ "selection",
1678
+ "ui"
1679
+ ],
1680
+ category: "form",
1681
+ props: [
1682
+ {
1683
+ name: "label",
1684
+ type: "React.ReactNode",
1685
+ description: "The visible label associated with the radio button. Can be text or JSX."
1686
+ },
1687
+ {
1688
+ name: "id",
1689
+ type: "string",
1690
+ description: "A unique HTML `id` for the input element. Automatically generated if not provided."
1691
+ },
1692
+ {
1693
+ name: "name",
1694
+ type: "string",
1695
+ description: "The HTML `name` attribute, crucial for grouping radio buttons so only one can be selected."
1696
+ },
1697
+ {
1698
+ name: "value",
1699
+ type: "string | number | readonly string[]",
1700
+ description: "The value associated with this radio button when it is selected."
1701
+ },
1702
+ {
1703
+ name: "checked",
1704
+ type: "boolean",
1705
+ description: "Controls whether the radio button is currently selected."
1706
+ },
1707
+ {
1708
+ name: "onChange",
1709
+ type: "(event: React.ChangeEvent<HTMLInputElement>) => void",
1710
+ description: "Callback function triggered when the radio button's checked state changes."
1711
+ },
1712
+ {
1713
+ name: "disabled",
1714
+ type: "boolean",
1715
+ description: "If true, the radio button is unclickable and styled as disabled."
1716
+ },
1717
+ {
1718
+ name: "className",
1719
+ type: "string",
1720
+ description: "Optional additional CSS classes for the input element."
1721
+ }
1722
+ ],
1723
+ importPath: "./components/forms/Radio",
1724
+ filePath: "src/components/forms/Radio.tsx",
1725
+ sku: "@atom/form/radio",
1726
+ humanLabel: "Radio",
1727
+ humanDescription: "A single radio button input, typically used within a group where only one option can be selected."
1728
+ },
1729
+ {
1730
+ id: "search-input",
1731
+ name: "SearchInput",
1732
+ version: "1.0.0",
1733
+ description: "A specialized input for search functionality, using the base Input component with a search icon.",
1734
+ tags: [
1735
+ "form",
1736
+ "input",
1737
+ "search",
1738
+ "ui"
1739
+ ],
1740
+ category: "form",
1741
+ props: [],
1742
+ importPath: "./components/forms/SearchInput",
1743
+ filePath: "src/components/forms/SearchInput.tsx",
1744
+ sku: "@atom/form/search-input",
1745
+ humanLabel: "SearchInput",
1746
+ humanDescription: "A specialized input for search functionality, using the base Input component with a search icon."
1747
+ },
1748
+ {
1749
+ id: "segmented-control",
1750
+ name: "SegmentedControl",
1751
+ version: "1.0.0",
1752
+ description: 'A theme-aware linear toggle component. Ideal for switching between discrete modes (e.g., "Map / List").',
1753
+ tags: [
1754
+ "input",
1755
+ "toggle",
1756
+ "switch",
1757
+ "radio",
1758
+ "control"
1759
+ ],
1760
+ category: "form",
1761
+ props: [],
1762
+ importPath: "./components/forms/SegmentedControl",
1763
+ filePath: "src/components/forms/SegmentedControl.tsx",
1764
+ sku: "@atom/form/segmented-control",
1765
+ humanLabel: "SegmentedControl",
1766
+ humanDescription: 'A theme-aware linear toggle component. Ideal for switching between discrete modes (e.g., "Map / List").'
1767
+ },
1768
+ {
1769
+ id: "select",
1770
+ name: "Select",
1771
+ version: "1.0.0",
1772
+ description: "A fully theme-aware single-value dropdown selector built on react-select. Strategic purpose: replaces the native select element with a searchable, clearable atom that stays visually consistent across all Ramme themes via CSS variables, requiring no additional styling from the consumer.",
1773
+ tags: [
1774
+ "form",
1775
+ "input",
1776
+ "dropdown",
1777
+ "select",
1778
+ "ui"
1779
+ ],
1780
+ category: "form",
1781
+ props: [
1782
+ {
1783
+ name: "options",
1784
+ type: "Array",
1785
+ description: "Array of selectable options. Each option requires a value (string or number) and a label (string)."
1786
+ },
1787
+ {
1788
+ name: "value",
1789
+ type: "object",
1790
+ description: "The currently selected option object. Pass null to show the placeholder."
1791
+ },
1792
+ {
1793
+ name: "onChange",
1794
+ type: "function",
1795
+ description: "Callback fired when the selection changes. Receives the selected option or null when cleared."
1796
+ },
1797
+ {
1798
+ name: "label",
1799
+ type: "string",
1800
+ description: "Optional label rendered above the select control."
1801
+ },
1802
+ {
1803
+ name: "placeholder",
1804
+ type: "string",
1805
+ description: "Placeholder text shown when no option is selected. Defaults to Select..."
1806
+ },
1807
+ {
1808
+ name: "isDisabled",
1809
+ type: "boolean",
1810
+ description: "If true, the select is non-interactive. Defaults to false."
1811
+ },
1812
+ {
1813
+ name: "isLoading",
1814
+ type: "boolean",
1815
+ description: "If true, shows a loading spinner inside the control. Defaults to false."
1816
+ },
1817
+ {
1818
+ name: "isClearable",
1819
+ type: "boolean",
1820
+ description: "If true, displays a clear button to reset the selection. Defaults to true."
1821
+ },
1822
+ {
1823
+ name: "isSearchable",
1824
+ type: "boolean",
1825
+ description: "If true, allows the user to type to filter options. Defaults to true."
1826
+ },
1827
+ {
1828
+ name: "error",
1829
+ type: "boolean",
1830
+ description: "If true, applies destructive border styling to indicate a validation error."
1831
+ },
1832
+ {
1833
+ name: "helperText",
1834
+ type: "string",
1835
+ description: "Supporting text rendered below the control. Appears in destructive color when error is true."
1836
+ }
1837
+ ],
1838
+ importPath: "./components/forms/Select",
1839
+ filePath: "src/components/forms/Select.tsx",
1840
+ sku: "@atom/form/select",
1841
+ humanLabel: "Select",
1842
+ humanDescription: "A fully theme-aware single-value dropdown selector built on react-select. Strategic purpose: replaces the native select element with a searchable, clearable atom that stays visually consistent across all Ramme themes via CSS variables, requiring no additional styling from the consumer."
1843
+ },
1844
+ {
1845
+ id: "textarea",
1846
+ name: "Textarea",
1847
+ version: "1.0.0",
1848
+ description: "A theme-aware textarea component for multi-line text input.",
1849
+ tags: [
1850
+ "form",
1851
+ "input",
1852
+ "ui"
1853
+ ],
1854
+ category: "form",
1855
+ props: [
1856
+ {
1857
+ name: "label",
1858
+ type: "string",
1859
+ description: "An optional label to display above the textarea."
1860
+ },
1861
+ {
1862
+ name: "containerClassName",
1863
+ type: "string",
1864
+ description: "Optional additional CSS classes for the container div."
1865
+ }
1866
+ ],
1867
+ importPath: "./components/forms/Textarea",
1868
+ filePath: "src/components/forms/Textarea.tsx",
1869
+ sku: "@atom/form/textarea",
1870
+ humanLabel: "Textarea",
1871
+ humanDescription: "A theme-aware textarea component for multi-line text input."
1872
+ },
1873
+ {
1874
+ id: "toggle-switch",
1875
+ name: "ToggleSwitch",
1876
+ version: "1.0.0",
1877
+ description: "A theme-aware toggle switch component, offering a boolean input alternative to a checkbox.",
1878
+ tags: [
1879
+ "form",
1880
+ "ui",
1881
+ "toggle",
1882
+ "switch",
1883
+ "input"
1884
+ ],
1885
+ category: "form",
1886
+ props: [
1887
+ {
1888
+ name: "checked",
1889
+ type: "boolean",
1890
+ description: "Controls whether the toggle is in the 'on' (checked) or 'off' (unchecked) state."
1891
+ },
1892
+ {
1893
+ name: "onChange",
1894
+ type: "(checked: boolean) => void",
1895
+ description: "Callback function triggered when the toggle state changes."
1896
+ },
1897
+ {
1898
+ name: "label",
1899
+ type: "string",
1900
+ description: "An accessible text label displayed next to the toggle switch."
1901
+ },
1902
+ {
1903
+ name: "className",
1904
+ type: "string",
1905
+ description: "Optional additional CSS classes for the toggle switch container."
1906
+ },
1907
+ {
1908
+ name: "disabled",
1909
+ type: "boolean",
1910
+ description: "If true, the toggle will be unclickable and styled as disabled.",
1911
+ default: "false"
1912
+ }
1913
+ ],
1914
+ importPath: "./components/forms/ToggleSwitch",
1915
+ filePath: "src/components/forms/ToggleSwitch.tsx",
1916
+ sku: "@atom/form/toggle-switch",
1917
+ humanLabel: "ToggleSwitch",
1918
+ humanDescription: "A theme-aware toggle switch component, offering a boolean input alternative to a checkbox."
1919
+ },
1920
+ {
1921
+ id: "circular-dial",
1922
+ name: "CircularDial",
1923
+ version: "1.0.0",
1924
+ description: "A 270-degree arc gauge for a single live telemetry value, styled like a physical instrument dial.",
1925
+ tags: [
1926
+ "hardware",
1927
+ "gauge",
1928
+ "dial",
1929
+ "telemetry",
1930
+ "iot"
1931
+ ],
1932
+ category: "hardware",
1933
+ props: [
1934
+ {
1935
+ name: "value",
1936
+ type: "number",
1937
+ description: "The current value to display and plot on the arc."
1938
+ },
1939
+ {
1940
+ name: "min",
1941
+ type: "number",
1942
+ description: "The value at the start of the arc.",
1943
+ default: "0"
1944
+ },
1945
+ {
1946
+ name: "max",
1947
+ type: "number",
1948
+ description: "The value at the end of the arc.",
1949
+ default: "100"
1950
+ },
1951
+ {
1952
+ name: "label",
1953
+ type: "string",
1954
+ description: 'The caption shown beneath the dial (e.g., "CPU TEMP").'
1955
+ },
1956
+ {
1957
+ name: "unit",
1958
+ type: "string",
1959
+ description: 'The unit suffix shown beneath the readout (e.g., "°C").'
1960
+ },
1961
+ {
1962
+ name: "size",
1963
+ type: "number",
1964
+ description: "The width/height of the dial in pixels.",
1965
+ default: "160"
1966
+ },
1967
+ {
1968
+ name: "strokeWidth",
1969
+ type: "number",
1970
+ description: "The thickness of the arc track and indicator.",
1971
+ default: "12"
1972
+ },
1973
+ {
1974
+ name: "colorClass",
1975
+ type: "string",
1976
+ description: "A Tailwind text-color class applied to the live indicator arc.",
1977
+ default: "'text-emerald-500'"
1978
+ }
1979
+ ],
1980
+ importPath: "./components/hardware/CircularDial",
1981
+ filePath: "src/components/hardware/CircularDial.tsx",
1982
+ sku: "@atom/hardware/circular-dial",
1983
+ humanLabel: "CircularDial",
1984
+ humanDescription: "A 270-degree arc gauge for a single live telemetry value, styled like a physical instrument dial."
1985
+ },
1986
+ {
1987
+ id: "edge-insight-terminal",
1988
+ name: "EdgeInsightTerminal",
1989
+ version: "1.0.0",
1990
+ description: "A terminal-styled panel that streams an AI analysis of live edge telemetry as it arrives. Strategic purpose: pairs a device dashboard with a plain-language read of what the numbers mean, rendered progressively so the operator sees tokens as they land rather than waiting for a complete answer.",
1991
+ tags: [
1992
+ "hardware",
1993
+ "ai",
1994
+ "terminal",
1995
+ "insight",
1996
+ "telemetry",
1997
+ "streaming"
1998
+ ],
1999
+ category: "hardware",
2000
+ props: [
2001
+ {
2002
+ name: "isAnalyzing",
2003
+ type: "boolean",
2004
+ description: "True while a response is streaming; drives the busy affordance."
2005
+ },
2006
+ {
2007
+ name: "insightStream",
2008
+ type: "string",
2009
+ description: "The accumulated response text so far."
2010
+ },
2011
+ {
2012
+ name: "triggerAnalysis",
2013
+ type: "function",
2014
+ description: "Starts an analysis run."
2015
+ },
2016
+ {
2017
+ name: "className",
2018
+ type: "string",
2019
+ description: "Additional CSS classes."
2020
+ }
2021
+ ],
2022
+ importPath: "./components/hardware/EdgeInsightTerminal",
2023
+ filePath: "src/components/hardware/EdgeInsightTerminal.tsx",
2024
+ sku: "@atom/hardware/edge-insight-terminal",
2025
+ humanLabel: "EdgeInsightTerminal",
2026
+ humanDescription: "A terminal-styled panel that streams an AI analysis of live edge telemetry as it arrives. Strategic purpose: pairs a device dashboard with a plain-language read of what the numbers mean, rendered progressively so the operator sees tokens as they land rather than waiting for a complete answer."
2027
+ },
2028
+ {
2029
+ id: "hardware-command-button",
2030
+ name: "HardwareCommandButton",
2031
+ version: "1.0.0",
2032
+ description: "A command trigger that shows the full round trip to a physical device — transmitting, awaiting acknowledgement, then success or failure. Strategic purpose: edge commands are not instant and can fail silently; this makes the in-flight and unacknowledged states visible instead of leaving the operator guessing. Drive `status` from your MQTT publish/ack cycle.",
2033
+ tags: [
2034
+ "hardware",
2035
+ "button",
2036
+ "command",
2037
+ "iot",
2038
+ "mqtt",
2039
+ "control",
2040
+ "telemetry"
2041
+ ],
2042
+ category: "hardware",
2043
+ props: [
2044
+ {
2045
+ name: "label",
2046
+ type: "string",
2047
+ description: "The command's name."
2048
+ },
2049
+ {
2050
+ name: "status",
2051
+ type: "string",
2052
+ description: "Lifecycle state: 'idle', 'transmitting', 'awaiting_ack', 'success', or 'error'."
2053
+ },
2054
+ {
2055
+ name: "onClick",
2056
+ type: "function",
2057
+ description: "Fires the command."
2058
+ },
2059
+ {
2060
+ name: "icon",
2061
+ type: "ReactNode",
2062
+ description: "Optional leading icon."
2063
+ },
2064
+ {
2065
+ name: "disabled",
2066
+ type: "boolean",
2067
+ description: "Disables the trigger."
2068
+ },
2069
+ {
2070
+ name: "className",
2071
+ type: "string",
2072
+ description: "Additional CSS classes."
2073
+ }
2074
+ ],
2075
+ importPath: "./components/hardware/HardwareCommandButton",
2076
+ filePath: "src/components/hardware/HardwareCommandButton.tsx",
2077
+ sku: "@atom/hardware/hardware-command-button",
2078
+ humanLabel: "HardwareCommandButton",
2079
+ humanDescription: "A command trigger that shows the full round trip to a physical device — transmitting, awaiting acknowledgement, then success or failure. Strategic purpose: edge commands are not instant and can fail silently; this makes the in-flight and unacknowledged states visible instead of leaving the operator guessing. Drive `status` from your MQTT publish/ack cycle."
2080
+ },
2081
+ {
2082
+ id: "sparkline",
2083
+ name: "Sparkline",
2084
+ version: "1.0.0",
2085
+ description: "A compact, axis-less trend line for showing the shape of a series inline — in a table cell, a stat tile, or next to a live value. Strategic purpose: conveys direction and volatility in the space of a word, where a full chart would not fit. Auto-scales to the data's own min/max with 10% vertical padding so peaks are never clipped. For a full chart with axes and tooltips, use LineChart instead.",
2086
+ tags: [
2087
+ "data-display",
2088
+ "chart",
2089
+ "trend",
2090
+ "sparkline",
2091
+ "inline",
2092
+ "telemetry"
2093
+ ],
2094
+ category: "hardware",
2095
+ props: [
2096
+ {
2097
+ name: "data",
2098
+ type: "Array<number>",
2099
+ description: "The series to plot, oldest first. A single point renders a flat mid-line; an empty array renders nothing."
2100
+ },
2101
+ {
2102
+ name: "width",
2103
+ type: "number",
2104
+ description: "SVG width in px. Defaults to 100."
2105
+ },
2106
+ {
2107
+ name: "height",
2108
+ type: "number",
2109
+ description: "SVG height in px. Defaults to 24."
2110
+ },
2111
+ {
2112
+ name: "colorClass",
2113
+ type: "string",
2114
+ description: "Semantic text-color utility driving the stroke via currentColor. Defaults to text-success. Use a semantic token (text-success, text-destructive, text-primary) — never a numeric palette shade, which will not adapt across themes."
2115
+ },
2116
+ {
2117
+ name: "strokeWidth",
2118
+ type: "number",
2119
+ description: "Line thickness in px. Defaults to 2."
2120
+ }
2121
+ ],
2122
+ importPath: "./components/hardware/Sparkline",
2123
+ filePath: "src/components/hardware/Sparkline.tsx",
2124
+ sku: "@atom/hardware/sparkline",
2125
+ humanLabel: "Sparkline",
2126
+ humanDescription: "A compact, axis-less trend line for showing the shape of a series inline — in a table cell, a stat tile, or next to a live value. Strategic purpose: conveys direction and volatility in the space of a word, where a full chart would not fit. Auto-scales to the data's own min/max with 10% vertical padding so peaks are never clipped. For a full chart with axes and tooltips, use LineChart instead."
2127
+ },
2128
+ {
2129
+ id: "dense-metric-ribbon",
2130
+ name: "DenseMetricRibbon",
2131
+ version: "1.0.0",
2132
+ description: "A compact horizontal strip of KPIs with optional trend arrows. Strategic purpose: summary numbers above a collection, where a row of StatCards would eat too much vertical space. Pairs with CollectionLayout's `metricsRibbon` slot. Use StatCard or KpiGrid when the metrics are the page's main subject.",
2133
+ tags: [
2134
+ "data-display",
2135
+ "metrics",
2136
+ "kpi",
2137
+ "ribbon",
2138
+ "summary",
2139
+ "dashboard"
2140
+ ],
2141
+ category: "data-display",
2142
+ props: [
2143
+ {
2144
+ name: "metrics",
2145
+ type: "Array<MetricItem>",
2146
+ description: "The metrics to show. Each is `{ id, label, value, trend?, trendValue?, icon?, intent? }`."
2147
+ },
2148
+ {
2149
+ name: "bordered",
2150
+ type: "boolean",
2151
+ description: "Draws a border around the ribbon."
2152
+ },
2153
+ {
2154
+ name: "className",
2155
+ type: "string",
2156
+ description: "Additional CSS classes."
2157
+ }
2158
+ ],
2159
+ importPath: "./components/layout/DenseMetricRibbon",
2160
+ filePath: "src/components/layout/DenseMetricRibbon.tsx",
2161
+ sku: "@molecule/data/dense-metric-ribbon",
2162
+ humanLabel: "DenseMetricRibbon",
2163
+ humanDescription: "A compact horizontal strip of KPIs with optional trend arrows. Strategic purpose: summary numbers above a collection, where a row of StatCards would eat too much vertical space. Pairs with CollectionLayout's `metricsRibbon` slot. Use StatCard or KpiGrid when the metrics are the page's main subject."
2164
+ },
2165
+ {
2166
+ id: "page-header",
2167
+ name: "PageHeader",
2168
+ version: "1.0.0",
2169
+ description: "Displays the main header section of a page, including a title, optional description, and a slot for action buttons.",
2170
+ tags: [
2171
+ "layout",
2172
+ "typography",
2173
+ "header",
2174
+ "ui",
2175
+ "template"
2176
+ ],
2177
+ category: "templates-patterns",
2178
+ props: [
2179
+ {
2180
+ name: "title",
2181
+ type: "string",
2182
+ description: "The main title of the page."
2183
+ },
2184
+ {
2185
+ name: "description",
2186
+ type: "string",
2187
+ description: "A brief descriptive subtitle displayed below the main title."
2188
+ },
2189
+ {
2190
+ name: "actions",
2191
+ type: "React.ReactNode",
2192
+ description: "A slot for action buttons or other controls, typically aligned to the right of the header."
2193
+ },
2194
+ {
2195
+ name: "className",
2196
+ type: "string",
2197
+ description: "Optional additional CSS classes for custom styling of the page header container."
2198
+ }
2199
+ ],
2200
+ importPath: "./components/layout/PageHeader",
2201
+ filePath: "src/components/layout/PageHeader.tsx",
2202
+ sku: "@atom/templates-patterns/page-header",
2203
+ humanLabel: "PageHeader",
2204
+ humanDescription: "Displays the main header section of a page, including a title, optional description, and a slot for action buttons."
2205
+ },
2206
+ {
2207
+ id: "section-header",
2208
+ name: "SectionHeader",
2209
+ version: "1.0.1",
2210
+ description: "A simple, consistent header for organizing sections of content within a page.",
2211
+ tags: [
2212
+ "layout",
2213
+ "typography",
2214
+ "header",
2215
+ "ui"
2216
+ ],
2217
+ category: "templates-patterns",
2218
+ props: [
2219
+ {
2220
+ name: "title",
2221
+ type: "string",
2222
+ description: "The main title for the content section."
2223
+ },
2224
+ {
2225
+ name: "description",
2226
+ type: "string",
2227
+ description: "Optional additional descriptive text below the title."
2228
+ },
2229
+ {
2230
+ name: "className",
2231
+ type: "string",
2232
+ description: "Optional additional CSS classes for custom styling."
2233
+ }
2234
+ ],
2235
+ importPath: "./components/layout/SectionHeader",
2236
+ filePath: "src/components/layout/SectionHeader.tsx",
2237
+ sku: "@atom/templates-patterns/section-header",
2238
+ humanLabel: "SectionHeader",
2239
+ humanDescription: "A simple, consistent header for organizing sections of content within a page."
2240
+ },
2241
+ {
2242
+ id: "data-card",
2243
+ name: "DataCard",
2244
+ version: "1.0.0",
2245
+ description: "A Card that owns its own loading, error, and content states. Strategic purpose: the default wrapper for anything fetched — pass `loading` and `error` straight from your data hook and it renders a skeleton or an error message without the page branching on them. Use this instead of hand-rolling `{loading ? <Skeleton/> : error ? <Error/> : <Content/>}` around a plain Card.",
2246
+ tags: [
2247
+ "data-display",
2248
+ "card",
2249
+ "container",
2250
+ "loading",
2251
+ "error",
2252
+ "async"
2253
+ ],
2254
+ category: "data-display",
2255
+ props: [
2256
+ {
2257
+ name: "title",
2258
+ type: "ReactNode",
2259
+ description: "Card heading. Header block is omitted entirely when both title and description are absent."
2260
+ },
2261
+ {
2262
+ name: "description",
2263
+ type: "ReactNode",
2264
+ description: "Sub-heading under the title."
2265
+ },
2266
+ {
2267
+ name: "loading",
2268
+ type: "boolean",
2269
+ description: "Renders a pulsing skeleton overlay above the content."
2270
+ },
2271
+ {
2272
+ name: "error",
2273
+ type: "Error | string",
2274
+ description: "Replaces the content with an error message. Accepts an Error or a plain string."
2275
+ },
2276
+ {
2277
+ name: "children",
2278
+ type: "ReactNode",
2279
+ description: "The content, rendered when not in an error state."
2280
+ },
2281
+ {
2282
+ name: "className",
2283
+ type: "string",
2284
+ description: "Additional CSS classes."
2285
+ }
2286
+ ],
2287
+ importPath: "./components/molecular/DataCard",
2288
+ filePath: "src/components/molecular/DataCard.tsx",
2289
+ sku: "@molecule/data/data-card",
2290
+ humanLabel: "DataCard",
2291
+ humanDescription: "A Card that owns its own loading, error, and content states. Strategic purpose: the default wrapper for anything fetched — pass `loading` and `error` straight from your data hook and it renders a skeleton or an error message without the page branching on them. Use this instead of hand-rolling `{loading ? <Skeleton/> : error ? <Error/> : <Content/>}` around a plain Card."
2292
+ },
2293
+ {
2294
+ id: "state-matrix",
2295
+ name: "StateMatrix",
2296
+ version: "1.0.0",
2297
+ description: "A compact grid for cross-referencing entities against attributes, where each cell is a clickable state rather than free text. Strategic purpose: permission matrices, feature-by-plan grids, device-by-status boards — cases where DataTable's row model is the wrong shape. Handles its own loading and empty states.",
2298
+ tags: [
2299
+ "data-display",
2300
+ "matrix",
2301
+ "grid",
2302
+ "table",
2303
+ "state",
2304
+ "permissions"
2305
+ ],
2306
+ category: "data-display",
2307
+ props: [
2308
+ {
2309
+ name: "data",
2310
+ type: "Array<any>",
2311
+ description: "Rows to render."
2312
+ },
2313
+ {
2314
+ name: "columns",
2315
+ type: "Array<object>",
2316
+ description: "Column definitions, each `{ key, label }`."
2317
+ },
2318
+ {
2319
+ name: "onCellClick",
2320
+ type: "function",
2321
+ description: "Called with (row, columnKey) when a cell is activated."
2322
+ },
2323
+ {
2324
+ name: "loading",
2325
+ type: "boolean",
2326
+ description: "Renders a loading state instead of rows."
2327
+ },
2328
+ {
2329
+ name: "emptyMessage",
2330
+ type: "string",
2331
+ description: "Shown when data is empty."
2332
+ },
2333
+ {
2334
+ name: "className",
2335
+ type: "string",
2336
+ description: "Additional CSS classes."
2337
+ }
2338
+ ],
2339
+ importPath: "./components/molecular/StateMatrix",
2340
+ filePath: "src/components/molecular/StateMatrix.tsx",
2341
+ sku: "@molecule/data/state-matrix",
2342
+ humanLabel: "StateMatrix",
2343
+ humanDescription: "A compact grid for cross-referencing entities against attributes, where each cell is a clickable state rather than free text. Strategic purpose: permission matrices, feature-by-plan grids, device-by-status boards — cases where DataTable's row model is the wrong shape. Handles its own loading and empty states."
2344
+ },
2345
+ {
2346
+ id: "breadcrumb-item",
2347
+ name: "BreadcrumbItem",
2348
+ version: "1.0.0",
2349
+ description: "Represents a single step or link within a `Breadcrumbs` navigation path.",
2350
+ tags: [
2351
+ "navigation",
2352
+ "ui",
2353
+ "link"
2354
+ ],
2355
+ category: "navigation",
2356
+ props: [
2357
+ {
2358
+ name: "label",
2359
+ type: "React.ReactNode",
2360
+ description: "The text or content displayed for this breadcrumb item."
2361
+ },
2362
+ {
2363
+ name: "to",
2364
+ type: "string",
2365
+ description: "The URL path for this item to navigate to. If not provided, it's just text."
2366
+ },
2367
+ {
2368
+ name: "isCurrent",
2369
+ type: "boolean",
2370
+ description: "If true, indicates this is the current page and will not be a clickable link."
2371
+ },
2372
+ {
2373
+ name: "icon",
2374
+ type: "React.ReactNode",
2375
+ description: "An optional icon to display next to the breadcrumb label."
2376
+ },
2377
+ {
2378
+ name: "className",
2379
+ type: "string",
2380
+ description: "Additional CSS classes for custom styling of the individual item."
2381
+ }
2382
+ ],
2383
+ importPath: "./components/navigation/Breadcrumbs",
2384
+ filePath: "src/components/navigation/Breadcrumbs.tsx",
2385
+ sku: "@molecule/nav/breadcrumb-item",
2386
+ humanLabel: "BreadcrumbItem",
2387
+ humanDescription: "Represents a single step or link within a `Breadcrumbs` navigation path."
2388
+ },
2389
+ {
2390
+ id: "breadcrumbs",
2391
+ name: "Breadcrumbs",
2392
+ version: "1.0.0",
2393
+ description: "A navigation component that shows the user's current location within a hierarchy of pages.",
2394
+ tags: [
2395
+ "navigation",
2396
+ "ui",
2397
+ "path"
2398
+ ],
2399
+ category: "navigation",
2400
+ props: [
2401
+ {
2402
+ name: "children",
2403
+ type: "React.ReactElement<BreadcrumbItemProps>[]",
2404
+ description: "A collection of `BreadcrumbItem` components representing the path."
2405
+ },
2406
+ {
2407
+ name: "className",
2408
+ type: "string",
2409
+ description: "Additional CSS classes for custom styling of the breadcrumbs container."
2410
+ }
2411
+ ],
2412
+ importPath: "./components/navigation/Breadcrumbs",
2413
+ filePath: "src/components/navigation/Breadcrumbs.tsx",
2414
+ sku: "@molecule/nav/breadcrumbs",
2415
+ humanLabel: "Breadcrumbs",
2416
+ humanDescription: "A navigation component that shows the user's current location within a hierarchy of pages."
2417
+ },
2418
+ {
2419
+ id: "menu-divider",
2420
+ name: "MenuDivider",
2421
+ version: "1.0.0",
2422
+ description: "A visual separator for grouping MenuItems within a Menu.",
2423
+ tags: [],
2424
+ category: "",
2425
+ props: [],
2426
+ importPath: "./components/navigation/Menu",
2427
+ filePath: "src/components/navigation/Menu.tsx",
2428
+ sku: "@atom/primitive/menu-divider",
2429
+ humanLabel: "MenuDivider",
2430
+ humanDescription: "A visual separator for grouping MenuItems within a Menu."
2431
+ },
2432
+ {
2433
+ id: "menu-item",
2434
+ name: "MenuItem",
2435
+ version: "1.0.0",
2436
+ description: "An individual selectable item within a Menu component.",
2437
+ tags: [],
2438
+ category: "",
2439
+ props: [],
2440
+ importPath: "./components/navigation/Menu",
2441
+ filePath: "src/components/navigation/Menu.tsx",
2442
+ sku: "@atom/primitive/menu-item",
2443
+ humanLabel: "MenuItem",
2444
+ humanDescription: "An individual selectable item within a Menu component."
2445
+ },
2446
+ {
2447
+ id: "menu",
2448
+ name: "Menu",
2449
+ version: "1.0.0",
2450
+ description: "A dropdown menu component, useful for navigation or contextual actions.",
2451
+ tags: [],
2452
+ category: "",
2453
+ props: [],
2454
+ importPath: "./components/navigation/Menu",
2455
+ filePath: "src/components/navigation/Menu.tsx",
2456
+ sku: "@atom/primitive/menu",
2457
+ humanLabel: "Menu",
2458
+ humanDescription: "A dropdown menu component, useful for navigation or contextual actions."
2459
+ },
2460
+ {
2461
+ id: "mobile-nav",
2462
+ name: "MobileNav",
2463
+ version: "1.0.0",
2464
+ description: 'A fixed bottom tab bar for mobile screens, providing native-feeling navigation with primary icon+label tabs and a "More" drawer for secondary links. Hidden on md: and up via Tailwind. Designed as the mobile counterpart to the desktop Sidebar.',
2465
+ tags: [
2466
+ "navigation",
2467
+ "mobile",
2468
+ "bottom-bar",
2469
+ "shell",
2470
+ "ui"
2471
+ ],
2472
+ category: "navigation",
2473
+ props: [
2474
+ {
2475
+ name: "tabs",
2476
+ type: "Array",
2477
+ description: "Primary navigation tabs displayed in the bottom bar. Each: { id, label, icon, href?, onClick? }. Recommend 4-5 max."
2478
+ },
2479
+ {
2480
+ name: "secondaryItems",
2481
+ type: "Array",
2482
+ description: 'Secondary links shown inside the "More" drawer. Same shape as tabs.'
2483
+ },
2484
+ {
2485
+ name: "activeTabId",
2486
+ type: "string",
2487
+ description: "The id of the currently active tab or secondary item."
2488
+ },
2489
+ {
2490
+ name: "onNavigate",
2491
+ type: "function",
2492
+ description: "Callback fired when any tab or drawer item is tapped."
2493
+ },
2494
+ {
2495
+ name: "drawerTitle",
2496
+ type: "string",
2497
+ description: 'Title for the "More" drawer panel. Defaults to "Menu".'
2498
+ },
2499
+ {
2500
+ name: "drawerHeader",
2501
+ type: "ReactNode",
2502
+ description: "Optional slot rendered at the top of the drawer body."
2503
+ },
2504
+ {
2505
+ name: "drawerFooter",
2506
+ type: "ReactNode",
2507
+ description: "Optional slot rendered in the sticky drawer footer (e.g. Logout button)."
2508
+ },
2509
+ {
2510
+ name: "className",
2511
+ type: "string",
2512
+ description: "Additional CSS classes on the root nav bar."
2513
+ }
2514
+ ],
2515
+ importPath: "./components/navigation/MobileNav",
2516
+ filePath: "src/components/navigation/MobileNav.tsx",
2517
+ sku: "@molecule/nav/mobile-nav",
2518
+ humanLabel: "MobileNav",
2519
+ humanDescription: 'A fixed bottom tab bar for mobile screens, providing native-feeling navigation with primary icon+label tabs and a "More" drawer for secondary links. Hidden on md: and up via Tailwind. Designed as the mobile counterpart to the desktop Sidebar.'
2520
+ },
2521
+ {
2522
+ id: "pagination",
2523
+ name: "Pagination",
2524
+ version: "1.0.0",
2525
+ description: "A navigation control for moving between pages of content.",
2526
+ tags: [
2527
+ "navigation",
2528
+ "ui",
2529
+ "data-display"
2530
+ ],
2531
+ category: "navigation",
2532
+ props: [
2533
+ {
2534
+ name: "currentPage",
2535
+ type: "number",
2536
+ description: "The currently active page number (1-based index)."
2537
+ },
2538
+ {
2539
+ name: "totalPages",
2540
+ type: "number",
2541
+ description: "The total number of pages available."
2542
+ },
2543
+ {
2544
+ name: "onPageChange",
2545
+ type: "(page: number) => void",
2546
+ description: "Callback function invoked when the user selects a new page."
2547
+ },
2548
+ {
2549
+ name: "maxPageButtons",
2550
+ type: "number",
2551
+ description: "The maximum number of visible page number buttons.",
2552
+ default: "5"
2553
+ },
2554
+ {
2555
+ name: "className",
2556
+ type: "string",
2557
+ description: "Optional additional CSS classes for the container."
2558
+ }
2559
+ ],
2560
+ importPath: "./components/navigation/Pagination",
2561
+ filePath: "src/components/navigation/Pagination.tsx",
2562
+ sku: "@molecule/nav/pagination",
2563
+ humanLabel: "Pagination",
2564
+ humanDescription: "A navigation control for moving between pages of content."
2565
+ },
2566
+ {
2567
+ id: "stepper",
2568
+ name: "Stepper",
2569
+ version: "1.0.0",
2570
+ description: "Guides users through a sequence of discrete steps, ideal for multi-step forms or onboarding flows.",
2571
+ tags: [
2572
+ "navigation",
2573
+ "progress",
2574
+ "wizard",
2575
+ "ui"
2576
+ ],
2577
+ category: "navigation",
2578
+ props: [
2579
+ {
2580
+ name: "steps",
2581
+ type: "{ label: string; summary?: string; }[]",
2582
+ description: "An array of step objects, each with a `label` and optional `summary`."
2583
+ },
2584
+ {
2585
+ name: "currentStep",
2586
+ type: "number",
2587
+ description: "The 0-based index of the currently active step."
2588
+ },
2589
+ {
2590
+ name: "className",
2591
+ type: "string",
2592
+ description: "Optional additional CSS classes for the stepper container."
2593
+ }
2594
+ ],
2595
+ importPath: "./components/navigation/Stepper",
2596
+ filePath: "src/components/navigation/Stepper.tsx",
2597
+ sku: "@molecule/nav/stepper",
2598
+ humanLabel: "Stepper",
2599
+ humanDescription: "Guides users through a sequence of discrete steps, ideal for multi-step forms or onboarding flows."
2600
+ },
2601
+ {
2602
+ id: "tab-panel",
2603
+ name: "TabPanel",
2604
+ version: "1.0.0",
2605
+ description: "Represents a single tab and its associated content panel within a `Tabs` component.",
2606
+ tags: [
2607
+ "navigation",
2608
+ "ui",
2609
+ "content"
2610
+ ],
2611
+ category: "navigation",
2612
+ props: [
2613
+ {
2614
+ name: "id",
2615
+ type: "string",
2616
+ description: "A unique identifier for this tab panel, used to link it to its header."
2617
+ },
2618
+ {
2619
+ name: "label",
2620
+ type: "string",
2621
+ description: "The text label displayed on the tab header."
2622
+ },
2623
+ {
2624
+ name: "children",
2625
+ type: "React.ReactNode",
2626
+ description: "The content to be displayed when this tab is active."
2627
+ },
2628
+ {
2629
+ name: "icon",
2630
+ type: "React.ReactNode",
2631
+ description: "An optional icon to display next to the tab label in the header."
2632
+ }
2633
+ ],
2634
+ importPath: "./components/navigation/Tabs",
2635
+ filePath: "src/components/navigation/Tabs.tsx",
2636
+ sku: "@molecule/nav/tab-panel",
2637
+ humanLabel: "TabPanel",
2638
+ humanDescription: "Represents a single tab and its associated content panel within a `Tabs` component."
2639
+ },
2640
+ {
2641
+ id: "tabs",
2642
+ name: "Tabs",
2643
+ version: "1.0.1",
2644
+ description: "A navigation component that allows users to switch between different content panels within the same area.",
2645
+ tags: [
2646
+ "navigation",
2647
+ "ui",
2648
+ "content-switcher"
2649
+ ],
2650
+ category: "navigation",
2651
+ props: [
2652
+ {
2653
+ name: "children",
2654
+ type: "React.ReactElement<TabPanelProps>[]",
2655
+ description: "A collection of `TabPanel` components that define the tabs and their content."
2656
+ },
2657
+ {
2658
+ name: "defaultActiveTab",
2659
+ type: "string",
2660
+ description: "The `id` of the tab that should be active by default when the component mounts."
2661
+ },
2662
+ {
2663
+ name: "className",
2664
+ type: "string",
2665
+ description: "Additional CSS classes for custom styling of the tabs container."
2666
+ },
2667
+ {
2668
+ name: "size",
2669
+ type: "'sm' | 'md'",
2670
+ description: "The size of the tabs. Defaults to 'md'."
2671
+ }
2672
+ ],
2673
+ importPath: "./components/navigation/Tabs",
2674
+ filePath: "src/components/navigation/Tabs.tsx",
2675
+ sku: "@molecule/nav/tabs",
2676
+ humanLabel: "Tabs",
2677
+ humanDescription: "A navigation component that allows users to switch between different content panels within the same area."
2678
+ },
2679
+ {
2680
+ id: "avatar",
2681
+ name: "Avatar",
2682
+ version: "1.0.0",
2683
+ description: "Displays a user's profile picture or initials as a fallback, with different size options.",
2684
+ tags: [
2685
+ "ui",
2686
+ "profile",
2687
+ "user"
2688
+ ],
2689
+ category: "ui",
2690
+ props: [
2691
+ {
2692
+ name: "name",
2693
+ type: "string",
2694
+ description: "The name of the user, used for generating initials if no `src` is provided."
2695
+ },
2696
+ {
2697
+ name: "src",
2698
+ type: "string",
2699
+ description: "The URL of the image to display as the avatar. If not provided, initials are shown."
2700
+ },
2701
+ {
2702
+ name: "size",
2703
+ type: "'sm' | 'md' | 'lg'",
2704
+ description: "Controls the dimensions and font size of the avatar.",
2705
+ default: "'md'"
2706
+ },
2707
+ {
2708
+ name: "className",
2709
+ type: "string",
2710
+ description: "Optional additional CSS classes for custom styling."
2711
+ }
2712
+ ],
2713
+ importPath: "./components/ui/Avatar",
2714
+ filePath: "src/components/ui/Avatar.tsx",
2715
+ sku: "@atom/primitive/avatar",
2716
+ humanLabel: "Avatar",
2717
+ humanDescription: "Displays a user's profile picture or initials as a fallback, with different size options."
2718
+ },
2719
+ {
2720
+ id: "badge",
2721
+ name: "Badge",
2722
+ version: "1.0.0",
2723
+ description: "A small component to display a status, count, or label.",
2724
+ tags: [
2725
+ "ui",
2726
+ "label",
2727
+ "indicator"
2728
+ ],
2729
+ category: "ui",
2730
+ props: [
2731
+ {
2732
+ name: "variant",
2733
+ type: `"'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'outline'"`,
2734
+ description: "The visual style of the badge."
2735
+ },
2736
+ {
2737
+ name: "children",
2738
+ type: "React.ReactNode",
2739
+ description: "The content to display inside the badge."
2740
+ },
2741
+ {
2742
+ name: "className",
2743
+ type: "string",
2744
+ description: "Optional additional CSS classes."
2745
+ }
2746
+ ],
2747
+ importPath: "./components/ui/Badge",
2748
+ filePath: "src/components/ui/Badge.tsx",
2749
+ sku: "@atom/primitive/badge",
2750
+ humanLabel: "Badge",
2751
+ humanDescription: "A small component to display a status, count, or label."
2752
+ },
2753
+ {
2754
+ id: "brand-logo",
2755
+ name: "BrandLogo",
2756
+ version: "1.0.0",
2757
+ description: "The application's brand mark, theme-aware and sized by a single prop. Strategic purpose: one place to swap the logo across every surface (sidebar, auth screens, header) instead of scattering an <img> or inline SVG. Inherits colour from the current theme, so it adapts across all five without per-theme assets.",
2758
+ tags: [
2759
+ "ui",
2760
+ "brand",
2761
+ "logo",
2762
+ "identity",
2763
+ "icon"
2764
+ ],
2765
+ category: "ui",
2766
+ props: [
2767
+ {
2768
+ name: "logoName",
2769
+ type: "string",
2770
+ description: "Which mark to render: 'ramme' for the default, or any Lucide IconName to stand in for a product mark."
2771
+ },
2772
+ {
2773
+ name: "size",
2774
+ type: "number",
2775
+ description: "Rendered size in px (or any CSS length as a string)."
2776
+ },
2777
+ {
2778
+ name: "className",
2779
+ type: "string",
2780
+ description: "Additional CSS classes."
2781
+ }
2782
+ ],
2783
+ importPath: "./components/ui/BrandLogo",
2784
+ filePath: "src/components/ui/BrandLogo.tsx",
2785
+ sku: "@atom/primitive/brand-logo",
2786
+ humanLabel: "BrandLogo",
2787
+ humanDescription: "The application's brand mark, theme-aware and sized by a single prop. Strategic purpose: one place to swap the logo across every surface (sidebar, auth screens, header) instead of scattering an <img> or inline SVG. Inherits colour from the current theme, so it adapts across all five without per-theme assets."
2788
+ },
2789
+ {
2790
+ id: "button",
2791
+ name: "Button",
2792
+ version: "1.0.0",
2793
+ description: "The primary interactive trigger for all user actions in the Ramme design system. Strategic purpose: unifies every click target under a single theme-aware atom with built-in loading state, icon slots, and polymorphism via `asChild`. Use `variant` to communicate intent and `size` to match the surrounding layout context.",
2794
+ tags: [
2795
+ "ui",
2796
+ "action",
2797
+ "button",
2798
+ "interactive",
2799
+ "form"
2800
+ ],
2801
+ category: "ui",
2802
+ props: [
2803
+ {
2804
+ name: "variant",
2805
+ type: "string",
2806
+ description: "Visual style of the button. One of: primary, secondary, outline, ghost, danger, link, accent. Defaults to primary."
2807
+ },
2808
+ {
2809
+ name: "size",
2810
+ type: "string",
2811
+ description: "Size of the button. One of: sm, md, lg, icon. Defaults to md."
2812
+ },
2813
+ {
2814
+ name: "asChild",
2815
+ type: "boolean",
2816
+ description: "If true, renders as a Radix Slot, delegating the root element to the direct child. Use this to wrap router Link components."
2817
+ },
2818
+ {
2819
+ name: "loading",
2820
+ type: "boolean",
2821
+ description: "If true, replaces the left icon with an animated spinner and disables the button."
2822
+ },
2823
+ {
2824
+ name: "iconLeft",
2825
+ type: "string",
2826
+ description: "Lucide icon name rendered to the left of the label."
2827
+ },
2828
+ {
2829
+ name: "iconRight",
2830
+ type: "string",
2831
+ description: "Lucide icon name rendered to the right of the label."
2832
+ },
2833
+ {
2834
+ name: "iconBefore",
2835
+ type: "string",
2836
+ description: "Alias for iconLeft. Supports common icon naming conventions."
2837
+ },
2838
+ {
2839
+ name: "iconAfter",
2840
+ type: "string",
2841
+ description: "Alias for iconRight. Supports common icon naming conventions."
2842
+ }
2843
+ ],
2844
+ importPath: "./components/ui/Button",
2845
+ filePath: "src/components/ui/Button.tsx",
2846
+ sku: "@atom/primitive/button",
2847
+ humanLabel: "Button",
2848
+ humanDescription: "The primary interactive trigger for all user actions in the Ramme design system. Strategic purpose: unifies every click target under a single theme-aware atom with built-in loading state, icon slots, and polymorphism via `asChild`. Use `variant` to communicate intent and `size` to match the surrounding layout context."
2849
+ },
2850
+ {
2851
+ id: "icon",
2852
+ name: "Icon",
2853
+ version: "1.0.0",
2854
+ description: "A dynamic component that renders scalable vector icons from the Lucide library.",
2855
+ tags: [
2856
+ "ui",
2857
+ "graphics",
2858
+ "svg",
2859
+ "symbol"
2860
+ ],
2861
+ category: "ui",
2862
+ props: [
2863
+ {
2864
+ name: "name",
2865
+ type: "IconName",
2866
+ description: "The specific name of the Lucide icon to display (e.g., 'user', 'settings', 'check')."
2867
+ },
2868
+ {
2869
+ name: "size",
2870
+ type: "number | string",
2871
+ description: "The width and height of the icon in pixels or CSS units.",
2872
+ default: "24 (implicit from Lucide default)"
2873
+ },
2874
+ {
2875
+ name: "color",
2876
+ type: "string",
2877
+ description: "The color of the icon."
2878
+ },
2879
+ {
2880
+ name: "strokeWidth",
2881
+ type: "number | string",
2882
+ description: "The width of the icon's stroke.",
2883
+ default: "2 (implicit from Lucide default)"
2884
+ },
2885
+ {
2886
+ name: "className",
2887
+ type: "string",
2888
+ description: "Optional additional CSS classes for styling the SVG element."
2889
+ }
2890
+ ],
2891
+ importPath: "./components/ui/Icon",
2892
+ filePath: "src/components/ui/Icon.tsx",
2893
+ sku: "@atom/primitive/icon",
2894
+ humanLabel: "Icon",
2895
+ humanDescription: "A dynamic component that renders scalable vector icons from the Lucide library."
2896
+ }
2897
+ ],
2898
+ layouts: [
2899
+ {
2900
+ id: "device-card",
2901
+ name: "DeviceCard",
2902
+ version: "1.0.0",
2903
+ description: "A specialized card designed to represent a physical device or a digital entity with live state. Features slots for status, live values, and interactive controls.",
2904
+ tags: [
2905
+ "layout",
2906
+ "iot",
2907
+ "device",
2908
+ "card",
2909
+ "dashboard"
2910
+ ],
2911
+ category: "layout",
2912
+ props: [
2913
+ {
2914
+ name: "title",
2915
+ type: "string",
2916
+ description: 'The name of the device or entity (e.g., "Living Room Thermostat").'
2917
+ },
2918
+ {
2919
+ name: "description",
2920
+ type: "string",
2921
+ description: 'A subtitle, often used for location or ID (e.g., "Floor 2 • ID: #442").'
2922
+ },
2923
+ {
2924
+ name: "icon",
2925
+ type: "IconName",
2926
+ description: "The icon representing the device type."
2927
+ },
2928
+ {
2929
+ name: "status",
2930
+ type: "'online' | 'offline' | 'error' | 'warning' | 'active'",
2931
+ description: "The current operational state of the device. Changes the badge color.",
2932
+ default: "'offline'"
2933
+ },
2934
+ {
2935
+ name: "value",
2936
+ type: "string | number",
2937
+ description: 'The primary "live" metric to display (e.g., "72°", "1,240 rpm").'
2938
+ },
2939
+ {
2940
+ name: "trend",
2941
+ type: "string",
2942
+ description: 'Optional secondary metric to show change (e.g., "+2%").'
2943
+ },
2944
+ {
2945
+ name: "children",
2946
+ type: "React.ReactNode",
2947
+ description: "Interactive controls to place at the bottom of the card (e.g., a ToggleSwitch or Button)."
2948
+ },
2949
+ {
2950
+ name: "className",
2951
+ type: "string",
2952
+ description: "Optional additional CSS classes."
2953
+ }
2954
+ ],
2955
+ importPath: "./blocks/iot/DeviceCard",
2956
+ filePath: "src/blocks/iot/DeviceCard.tsx",
2957
+ sku: "@chassis/layout/device-card",
2958
+ humanLabel: "DeviceCard",
2959
+ humanDescription: "A specialized card designed to represent a physical device or a digital entity with live state. Features slots for status, live values, and interactive controls."
2960
+ },
2961
+ {
2962
+ id: "auth-layout",
2963
+ name: "AuthLayout",
2964
+ version: "1.0.0",
2965
+ description: "The centred, chrome-free frame for unauthenticated screens, rendering the matched child route via an Outlet. Strategic purpose: sign-in and sign-up must not show the app shell's sidebar or header — wrap those routes in this instead of conditionally hiding chrome inside AppShell.",
2966
+ tags: [
2967
+ "layout",
2968
+ "auth",
2969
+ "login",
2970
+ "shell",
2971
+ "route"
2972
+ ],
2973
+ category: "layout",
2974
+ props: [],
2975
+ importPath: "./components/auth/AuthLayout",
2976
+ filePath: "src/components/auth/AuthLayout.tsx",
2977
+ sku: "@chassis/layout/auth-layout",
2978
+ humanLabel: "AuthLayout",
2979
+ humanDescription: "The centred, chrome-free frame for unauthenticated screens, rendering the matched child route via an Outlet. Strategic purpose: sign-in and sign-up must not show the app shell's sidebar or header — wrap those routes in this instead of conditionally hiding chrome inside AppShell."
2980
+ },
2981
+ {
2982
+ id: "accordion-item",
2983
+ name: "AccordionItem",
2984
+ version: "1.0.0",
2985
+ description: "A single, collapsible section within an `Accordion` component, consisting of a header and a hidden content body.",
2986
+ tags: [
2987
+ "layout",
2988
+ "ui",
2989
+ "collapsible",
2990
+ "expandable"
2991
+ ],
2992
+ category: "layout",
2993
+ props: [
2994
+ {
2995
+ name: "id",
2996
+ type: "string",
2997
+ description: "A unique identifier for this accordion item. Essential for `singleOpen` behavior."
2998
+ },
2999
+ {
3000
+ name: "header",
3001
+ type: "React.ReactNode",
3002
+ description: "The content displayed in the clickable header of the accordion item."
3003
+ },
3004
+ {
3005
+ name: "children",
3006
+ type: "React.ReactNode",
3007
+ description: "The content that will be revealed or hidden when the accordion item is toggled."
3008
+ },
3009
+ {
3010
+ name: "isOpen",
3011
+ type: "boolean",
3012
+ description: "Controls the open/closed state for this specific item (when used in a controlled `Accordion`)."
3013
+ },
3014
+ {
3015
+ name: "onToggle",
3016
+ type: "(id: string, isOpen: boolean) => void",
3017
+ description: "Callback triggered when the item is toggled, providing its `id` and new `isOpen` state."
3018
+ }
3019
+ ],
3020
+ importPath: "./components/layout/Accordion",
3021
+ filePath: "src/components/layout/Accordion.tsx",
3022
+ sku: "@chassis/layout/accordion-item",
3023
+ humanLabel: "AccordionItem",
3024
+ humanDescription: "A single, collapsible section within an `Accordion` component, consisting of a header and a hidden content body."
3025
+ },
3026
+ {
3027
+ id: "accordion",
3028
+ name: "Accordion",
3029
+ version: "1.0.0",
3030
+ description: "A container for multiple collapsible sections (`AccordionItem`s), useful for organizing content.",
3031
+ tags: [
3032
+ "layout",
3033
+ "ui",
3034
+ "collapsible",
3035
+ "expandable"
3036
+ ],
3037
+ category: "layout",
3038
+ props: [
3039
+ {
3040
+ name: "children",
3041
+ type: "React.ReactElement<AccordionItemProps>[]",
3042
+ description: "A collection of `AccordionItem` components to be managed by this Accordion."
3043
+ },
3044
+ {
3045
+ name: "singleOpen",
3046
+ type: "boolean",
3047
+ description: "If true, only one `AccordionItem` can be open at a time. Opening one closes others.",
3048
+ default: "false"
3049
+ },
3050
+ {
3051
+ name: "className",
3052
+ type: "string",
3053
+ description: "Optional additional CSS classes for the Accordion container."
3054
+ }
3055
+ ],
3056
+ importPath: "./components/layout/Accordion",
3057
+ filePath: "src/components/layout/Accordion.tsx",
3058
+ sku: "@chassis/layout/accordion",
3059
+ humanLabel: "Accordion",
3060
+ humanDescription: "A container for multiple collapsible sections (`AccordionItem`s), useful for organizing content."
3061
+ },
3062
+ {
3063
+ id: "action-bar",
3064
+ name: "ActionBar",
3065
+ version: "1.0.0",
3066
+ description: "A persistent bar, typically at the bottom of a form or page, used to group primary actions like 'Save' and 'Cancel'.",
3067
+ tags: [
3068
+ "layout",
3069
+ "form",
3070
+ "actions",
3071
+ "buttons",
3072
+ "ui",
3073
+ "pattern"
3074
+ ],
3075
+ category: "layout",
3076
+ props: [
3077
+ {
3078
+ name: "children",
3079
+ type: "React.ReactNode",
3080
+ description: "The content of the action bar, typically `Button` components."
3081
+ },
3082
+ {
3083
+ name: "className",
3084
+ type: "string",
3085
+ description: "Optional additional CSS classes for custom styling of the action bar container."
3086
+ }
3087
+ ],
3088
+ importPath: "./components/layout/ActionBar",
3089
+ filePath: "src/components/layout/ActionBar.tsx",
3090
+ sku: "@chassis/layout/action-bar",
3091
+ humanLabel: "ActionBar",
3092
+ humanDescription: "A persistent bar, typically at the bottom of a form or page, used to group primary actions like 'Save' and 'Cancel'."
3093
+ },
3094
+ {
3095
+ id: "app-shell",
3096
+ name: "AppShell",
3097
+ version: "1.0.0",
3098
+ description: "The viewport orchestrator — the outermost frame that owns the sidebar, header, toolbar, statusbar, and inspector slots and decides how they compose. Strategic purpose: this is the only component allowed to control full-viewport geometry. Page components render inside it and must never set `h-screen` or `overflow-hidden` themselves. Pick a `layoutPreset` rather than rearranging slots by hand.",
3099
+ tags: [
3100
+ "layout",
3101
+ "shell",
3102
+ "chassis",
3103
+ "viewport",
3104
+ "scaffold",
3105
+ "application"
3106
+ ],
3107
+ category: "layout",
3108
+ props: [
3109
+ {
3110
+ name: "layoutPreset",
3111
+ type: "string",
3112
+ description: "Arrangement of the slots: 'dashboard' (default), 'explorer', 'studio', or 'focus'."
3113
+ },
3114
+ {
3115
+ name: "sidebarSlot",
3116
+ type: "ReactNode",
3117
+ description: "Primary navigation region."
3118
+ },
3119
+ {
3120
+ name: "headerSlot",
3121
+ type: "ReactNode",
3122
+ description: "Top bar, above the content canvas."
3123
+ },
3124
+ {
3125
+ name: "toolbarSlot",
3126
+ type: "ReactNode",
3127
+ description: "Secondary action strip beneath the header."
3128
+ },
3129
+ {
3130
+ name: "statusbarSlot",
3131
+ type: "ReactNode",
3132
+ description: "Persistent strip pinned to the bottom."
3133
+ },
3134
+ {
3135
+ name: "inspectorSlot",
3136
+ type: "ReactNode",
3137
+ description: "Right-hand detail panel."
3138
+ },
3139
+ {
3140
+ name: "isInspectorOpen",
3141
+ type: "boolean",
3142
+ description: "Controls inspector visibility."
3143
+ },
3144
+ {
3145
+ name: "setInspectorOpen",
3146
+ type: "function",
3147
+ description: "Setter paired with isInspectorOpen."
3148
+ },
3149
+ {
3150
+ name: "inspectorWidth",
3151
+ type: "number",
3152
+ description: "Inspector width in px."
3153
+ },
3154
+ {
3155
+ name: "children",
3156
+ type: "ReactNode",
3157
+ description: "The page content, rendered into the main canvas."
3158
+ }
3159
+ ],
3160
+ importPath: "./components/layout/AppShell",
3161
+ filePath: "src/components/layout/AppShell.tsx",
3162
+ sku: "@chassis/layout/app-shell",
3163
+ humanLabel: "AppShell",
3164
+ humanDescription: "The viewport orchestrator — the outermost frame that owns the sidebar, header, toolbar, statusbar, and inspector slots and decides how they compose. Strategic purpose: this is the only component allowed to control full-viewport geometry. Page components render inside it and must never set `h-screen` or `overflow-hidden` themselves. Pick a `layoutPreset` rather than rearranging slots by hand."
3165
+ },
3166
+ {
3167
+ id: "card",
3168
+ name: "Card",
3169
+ version: "1.0.1",
3170
+ description: "The primary container atom for grouping related content. Strategic purpose: the AI's default layout wrapper. Composes with CardHeader, CardTitle, CardDescription, CardContent, and CardFooter for structured multi-zone layouts. For simple single-zone cards, apply padding directly via className (e.g. p-4 or p-6).",
3171
+ tags: [
3172
+ "layout",
3173
+ "ui",
3174
+ "container",
3175
+ "box",
3176
+ "composition"
3177
+ ],
3178
+ category: "layout",
3179
+ props: [
3180
+ {
3181
+ name: "className",
3182
+ type: "string",
3183
+ description: "Additional CSS classes. Apply padding here for flat single-zone cards (e.g. p-4)."
3184
+ },
3185
+ {
3186
+ name: "children",
3187
+ type: "ReactNode",
3188
+ description: "Card body. Use CardHeader + CardContent + CardFooter sub-components for structured layouts, or any content for flat layouts."
3189
+ }
3190
+ ],
3191
+ importPath: "./components/layout/Card",
3192
+ filePath: "src/components/layout/Card.tsx",
3193
+ sku: "@chassis/layout/card",
3194
+ humanLabel: "Card",
3195
+ humanDescription: "The primary container atom for grouping related content. Strategic purpose: the AI's default layout wrapper. Composes with CardHeader, CardTitle, CardDescription, CardContent, and CardFooter for structured multi-zone layouts. For simple single-zone cards, apply padding directly via className (e.g. p-4 or p-6)."
3196
+ },
3197
+ {
3198
+ id: "card-header",
3199
+ name: "CardHeader",
3200
+ version: "1.0.1",
3201
+ description: "The top zone of a Card. Renders children in a vertical flex column with fluid padding. Use with CardTitle and CardDescription to build a consistent card head.",
3202
+ tags: [
3203
+ "layout",
3204
+ "ui",
3205
+ "card",
3206
+ "composition"
3207
+ ],
3208
+ category: "layout",
3209
+ props: [
3210
+ {
3211
+ name: "className",
3212
+ type: "string",
3213
+ description: "Additional CSS classes."
3214
+ },
3215
+ {
3216
+ name: "children",
3217
+ type: "ReactNode",
3218
+ description: "Typically a CardTitle and optionally a CardDescription."
3219
+ }
3220
+ ],
3221
+ importPath: "./components/layout/Card",
3222
+ filePath: "src/components/layout/Card.tsx",
3223
+ sku: "@chassis/layout/card-header",
3224
+ humanLabel: "CardHeader",
3225
+ humanDescription: "The top zone of a Card. Renders children in a vertical flex column with fluid padding. Use with CardTitle and CardDescription to build a consistent card head."
3226
+ },
3227
+ {
3228
+ id: "card-title",
3229
+ name: "CardTitle",
3230
+ version: "1.0.1",
3231
+ description: "The primary heading inside a CardHeader. Renders as an h3 with semibold weight and tight letter-spacing. Uses fluid typography.",
3232
+ tags: [
3233
+ "layout",
3234
+ "ui",
3235
+ "card",
3236
+ "typography"
3237
+ ],
3238
+ category: "layout",
3239
+ props: [
3240
+ {
3241
+ name: "className",
3242
+ type: "string",
3243
+ description: "Additional CSS classes."
3244
+ },
3245
+ {
3246
+ name: "children",
3247
+ type: "ReactNode",
3248
+ description: "The title text content."
3249
+ }
3250
+ ],
3251
+ importPath: "./components/layout/Card",
3252
+ filePath: "src/components/layout/Card.tsx",
3253
+ sku: "@chassis/layout/card-title",
3254
+ humanLabel: "CardTitle",
3255
+ humanDescription: "The primary heading inside a CardHeader. Renders as an h3 with semibold weight and tight letter-spacing. Uses fluid typography."
3256
+ },
3257
+ {
3258
+ id: "card-description",
3259
+ name: "CardDescription",
3260
+ version: "1.0.1",
3261
+ description: "A muted subtitle rendered below CardTitle inside a CardHeader. Uses muted-foreground color and fluid sm text size.",
3262
+ tags: [
3263
+ "layout",
3264
+ "ui",
3265
+ "card",
3266
+ "typography"
3267
+ ],
3268
+ category: "layout",
3269
+ props: [
3270
+ {
3271
+ name: "className",
3272
+ type: "string",
3273
+ description: "Additional CSS classes."
3274
+ },
3275
+ {
3276
+ name: "children",
3277
+ type: "ReactNode",
3278
+ description: "The description text content."
3279
+ }
3280
+ ],
3281
+ importPath: "./components/layout/Card",
3282
+ filePath: "src/components/layout/Card.tsx",
3283
+ sku: "@chassis/layout/card-description",
3284
+ humanLabel: "CardDescription",
3285
+ humanDescription: "A muted subtitle rendered below CardTitle inside a CardHeader. Uses muted-foreground color and fluid sm text size."
3286
+ },
3287
+ {
3288
+ id: "card-label",
3289
+ name: "CardLabel",
3290
+ version: "1.0.0",
3291
+ description: `A compact uppercase-tracking eyebrow label for a Card's header, optionally preceded by an icon. Renders as an h2 with a small flex row layout — the "small panel label" convention used by dashboard/data panels, distinct from CardTitle's larger heading style used for content-heavy cards.`,
3292
+ tags: [
3293
+ "layout",
3294
+ "ui",
3295
+ "card",
3296
+ "typography",
3297
+ "label"
3298
+ ],
3299
+ category: "layout",
3300
+ props: [
3301
+ {
3302
+ name: "className",
3303
+ type: "string",
3304
+ description: "Additional CSS classes."
3305
+ },
3306
+ {
3307
+ name: "children",
3308
+ type: "ReactNode",
3309
+ description: 'Label text, optionally preceded by an Icon element as a sibling child (e.g. `<Icon name="git-branch" className="h-3.5 w-3.5" />Corporate Structure`).'
3310
+ }
3311
+ ],
3312
+ importPath: "./components/layout/Card",
3313
+ filePath: "src/components/layout/Card.tsx",
3314
+ sku: "@chassis/layout/card-label",
3315
+ humanLabel: "CardLabel",
3316
+ humanDescription: `A compact uppercase-tracking eyebrow label for a Card's header, optionally preceded by an icon. Renders as an h2 with a small flex row layout — the "small panel label" convention used by dashboard/data panels, distinct from CardTitle's larger heading style used for content-heavy cards.`
3317
+ },
3318
+ {
3319
+ id: "card-content",
3320
+ name: "CardContent",
3321
+ version: "1.0.1",
3322
+ description: "The main body zone of a Card. Applies fluid padding by default so it sits flush below a CardHeader.",
3323
+ tags: [
3324
+ "layout",
3325
+ "ui",
3326
+ "card",
3327
+ "composition"
3328
+ ],
3329
+ category: "layout",
3330
+ props: [
3331
+ {
3332
+ name: "className",
3333
+ type: "string",
3334
+ description: "Additional CSS classes."
3335
+ },
3336
+ {
3337
+ name: "children",
3338
+ type: "ReactNode",
3339
+ description: "The primary content of the card (charts, tables, form fields, etc.)."
3340
+ }
3341
+ ],
3342
+ importPath: "./components/layout/Card",
3343
+ filePath: "src/components/layout/Card.tsx",
3344
+ sku: "@chassis/layout/card-content",
3345
+ humanLabel: "CardContent",
3346
+ humanDescription: "The main body zone of a Card. Applies fluid padding by default so it sits flush below a CardHeader."
3347
+ },
3348
+ {
3349
+ id: "card-footer",
3350
+ name: "CardFooter",
3351
+ version: "1.0.1",
3352
+ description: "The bottom action zone of a Card. Renders children in a horizontal flex row with fluid padding. Typically contains primary and secondary action buttons.",
3353
+ tags: [
3354
+ "layout",
3355
+ "ui",
3356
+ "card",
3357
+ "composition"
3358
+ ],
3359
+ category: "layout",
3360
+ props: [
3361
+ {
3362
+ name: "className",
3363
+ type: "string",
3364
+ description: "Additional CSS classes."
3365
+ },
3366
+ {
3367
+ name: "children",
3368
+ type: "ReactNode",
3369
+ description: "Typically Button components for card-level actions (e.g. Save, Cancel, View All)."
3370
+ }
3371
+ ],
3372
+ importPath: "./components/layout/Card",
3373
+ filePath: "src/components/layout/Card.tsx",
3374
+ sku: "@chassis/layout/card-footer",
3375
+ humanLabel: "CardFooter",
3376
+ humanDescription: "The bottom action zone of a Card. Renders children in a horizontal flex row with fluid padding. Typically contains primary and secondary action buttons."
3377
+ },
3378
+ {
3379
+ id: "collection-layout",
3380
+ name: "CollectionLayout",
3381
+ version: "1.0.0",
3382
+ description: "The standard page arrangement for any list of records — title, description, header actions, an optional metrics ribbon, an optional filter sidebar, and a bulk-action bar. Strategic purpose: every index/browse page in the app should look the same; reach for this instead of assembling a header and filter rail by hand.",
3383
+ tags: [
3384
+ "layout",
3385
+ "collection",
3386
+ "list",
3387
+ "index",
3388
+ "page",
3389
+ "browse"
3390
+ ],
3391
+ category: "layout",
3392
+ props: [
3393
+ {
3394
+ name: "title",
3395
+ type: "string",
3396
+ description: "Page title."
3397
+ },
3398
+ {
3399
+ name: "description",
3400
+ type: "string",
3401
+ description: "Sub-heading beneath the title."
3402
+ },
3403
+ {
3404
+ name: "headerActions",
3405
+ type: "ReactNode",
3406
+ description: 'Primary actions, top-right (e.g. a "New" Button).'
3407
+ },
3408
+ {
3409
+ name: "metricsRibbon",
3410
+ type: "ReactNode",
3411
+ description: "Summary strip above the collection — pairs with DenseMetricRibbon."
3412
+ },
3413
+ {
3414
+ name: "sidebar",
3415
+ type: "ReactNode",
3416
+ description: "Filter/facet rail beside the collection — pairs with FilterPanel."
3417
+ },
3418
+ {
3419
+ name: "bulkActions",
3420
+ type: "ReactNode",
3421
+ description: "Action bar shown when rows are selected."
3422
+ },
3423
+ {
3424
+ name: "children",
3425
+ type: "ReactNode",
3426
+ description: "The collection itself, typically a DataTable."
3427
+ }
3428
+ ],
3429
+ importPath: "./components/layout/CollectionLayout",
3430
+ filePath: "src/components/layout/CollectionLayout.tsx",
3431
+ sku: "@chassis/layout/collection-layout",
3432
+ humanLabel: "CollectionLayout",
3433
+ humanDescription: "The standard page arrangement for any list of records — title, description, header actions, an optional metrics ribbon, an optional filter sidebar, and a bulk-action bar. Strategic purpose: every index/browse page in the app should look the same; reach for this instead of assembling a header and filter rail by hand."
3434
+ },
3435
+ {
3436
+ id: "detail-drawer",
3437
+ name: "DetailDrawer",
3438
+ version: "1.0.0",
3439
+ description: 'A resizable side panel for inspecting one record without leaving the list. Strategic purpose: the master-detail companion — `push` compresses its siblings in a flex layout so the list stays visible and usable, while `overlay` floats above the page like a classic drawer. Use this for "click a row, see the detail" flows; use Modal when the task must block everything else.',
3440
+ tags: [
3441
+ "layout",
3442
+ "drawer",
3443
+ "panel",
3444
+ "detail",
3445
+ "master-detail",
3446
+ "inspector"
3447
+ ],
3448
+ category: "layout",
3449
+ props: [
3450
+ {
3451
+ name: "isOpen",
3452
+ type: "boolean",
3453
+ description: "Whether the drawer is showing."
3454
+ },
3455
+ {
3456
+ name: "onClose",
3457
+ type: "function",
3458
+ description: "Called when the drawer requests dismissal."
3459
+ },
3460
+ {
3461
+ name: "variant",
3462
+ type: "string",
3463
+ description: "'push' compresses sibling flex content so the list stays visible; 'overlay' floats fixed above the page. Defaults to push."
3464
+ },
3465
+ {
3466
+ name: "side",
3467
+ type: "string",
3468
+ description: "Which edge it docks to: 'left' or 'right'. Defaults to right."
3469
+ },
3470
+ {
3471
+ name: "resizable",
3472
+ type: "boolean",
3473
+ description: "Enables the draggable handle on the inner border."
3474
+ },
3475
+ {
3476
+ name: "width",
3477
+ type: "number",
3478
+ description: "Current width in px. Controlled — pair with onWidthChange."
3479
+ },
3480
+ {
3481
+ name: "onWidthChange",
3482
+ type: "function",
3483
+ description: "Called with the new width while dragging."
3484
+ },
3485
+ {
3486
+ name: "minWidth",
3487
+ type: "number",
3488
+ description: "Lower bound for resizing. Defaults to 320."
3489
+ },
3490
+ {
3491
+ name: "maxWidth",
3492
+ type: "number",
3493
+ description: "Upper bound for resizing. Defaults to 60% of the window width."
3494
+ },
3495
+ {
3496
+ name: "children",
3497
+ type: "ReactNode",
3498
+ description: "The detail content."
3499
+ }
3500
+ ],
3501
+ importPath: "./components/layout/DetailDrawer",
3502
+ filePath: "src/components/layout/DetailDrawer.tsx",
3503
+ sku: "@chassis/layout/detail-drawer",
3504
+ humanLabel: "DetailDrawer",
3505
+ humanDescription: 'A resizable side panel for inspecting one record without leaving the list. Strategic purpose: the master-detail companion — `push` compresses its siblings in a flex layout so the list stays visible and usable, while `overlay` floats above the page like a classic drawer. Use this for "click a row, see the detail" flows; use Modal when the task must block everything else.'
3506
+ },
3507
+ {
3508
+ id: "drawer",
3509
+ name: "Drawer",
3510
+ version: "1.0.0",
3511
+ description: "A slide-in panel that overlays the page from any edge. Strategic purpose: contextual detail views, settings panels, and secondary workflows that don't require full page navigation. Supports portal rendering, Escape key dismissal, overlay click-to-close, and body scroll lock while open.",
3512
+ tags: [
3513
+ "layout",
3514
+ "overlay",
3515
+ "panel",
3516
+ "drawer",
3517
+ "ui"
3518
+ ],
3519
+ category: "layout",
3520
+ props: [
3521
+ {
3522
+ name: "isOpen",
3523
+ type: "boolean",
3524
+ description: "Controls the open/closed state of the drawer. Required."
3525
+ },
3526
+ {
3527
+ name: "onClose",
3528
+ type: "function",
3529
+ description: "Callback fired when the drawer requests to close (Escape key, overlay click, or header X button). Required."
3530
+ },
3531
+ {
3532
+ name: "title",
3533
+ type: "string",
3534
+ description: "Optional title rendered in the sticky drawer header bar."
3535
+ },
3536
+ {
3537
+ name: "position",
3538
+ type: "string",
3539
+ description: "Edge the drawer slides in from. One of: left, right, top, bottom. Defaults to right."
3540
+ },
3541
+ {
3542
+ name: "size",
3543
+ type: "string",
3544
+ description: "Width (for left/right) or height (for top/bottom) of the panel. Presets: sm (320px), md (480px), lg (640px), xl (80vw), full (100vw). Accepts any CSS length string. Defaults to md."
3545
+ },
3546
+ {
3547
+ name: "footer",
3548
+ type: "ReactNode",
3549
+ description: "Optional content rendered in a sticky footer bar at the bottom of the panel. Use for primary action buttons."
3550
+ },
3551
+ {
3552
+ name: "overlayDismiss",
3553
+ type: "boolean",
3554
+ description: "If true, clicking the dimmed background overlay closes the drawer. Defaults to true."
3555
+ },
3556
+ {
3557
+ name: "className",
3558
+ type: "string",
3559
+ description: "Additional CSS classes applied to the drawer panel element."
3560
+ }
3561
+ ],
3562
+ importPath: "./components/layout/Drawer",
3563
+ filePath: "src/components/layout/Drawer.tsx",
3564
+ sku: "@chassis/layout/drawer",
3565
+ humanLabel: "Drawer",
3566
+ humanDescription: "A slide-in panel that overlays the page from any edge. Strategic purpose: contextual detail views, settings panels, and secondary workflows that don't require full page navigation. Supports portal rendering, Escape key dismissal, overlay click-to-close, and body scroll lock while open."
3567
+ },
3568
+ {
3569
+ id: "filter-panel",
3570
+ name: "FilterPanel",
3571
+ version: "1.0.0",
3572
+ description: "A bordered card container for a row of filter fields (selects, inputs, date ranges), laid out as a wrapping flex row with fields aligned to their bottom edge — the standard filter-bar shape used above a data table or grid.",
3573
+ tags: [
3574
+ "layout",
3575
+ "ui",
3576
+ "filter",
3577
+ "form",
3578
+ "panel"
3579
+ ],
3580
+ category: "layout",
3581
+ props: [
3582
+ {
3583
+ name: "className",
3584
+ type: "string",
3585
+ description: "Additional CSS classes applied to the inner flex row (not the outer card)."
3586
+ },
3587
+ {
3588
+ name: "children",
3589
+ type: "ReactNode",
3590
+ description: "Filter field elements (Select, Input, MultiSelect, etc.), typically each wrapped in its own width-constrained div."
3591
+ }
3592
+ ],
3593
+ importPath: "./components/layout/FilterPanel",
3594
+ filePath: "src/components/layout/FilterPanel.tsx",
3595
+ sku: "@chassis/layout/filter-panel",
3596
+ humanLabel: "FilterPanel",
3597
+ humanDescription: "A bordered card container for a row of filter fields (selects, inputs, date ranges), laid out as a wrapping flex row with fields aligned to their bottom edge — the standard filter-bar shape used above a data table or grid."
3598
+ },
3599
+ {
3600
+ id: "header",
3601
+ name: "Header",
3602
+ version: "1.0.0",
3603
+ description: "The top bar region of the app shell. Strategic purpose: a semantic, theme-aware slot for branding, page title, and global actions — pass it to AppShell's `headerSlot` rather than positioning a bar yourself. For a per-page title block inside the content area, use PageHeader instead.",
3604
+ tags: [
3605
+ "layout",
3606
+ "header",
3607
+ "chrome",
3608
+ "navigation",
3609
+ "appbar"
3610
+ ],
3611
+ category: "layout",
3612
+ props: [
3613
+ {
3614
+ name: "children",
3615
+ type: "ReactNode",
3616
+ description: "Header content."
3617
+ },
3618
+ {
3619
+ name: "className",
3620
+ type: "string",
3621
+ description: "Additional CSS classes."
3622
+ }
3623
+ ],
3624
+ importPath: "./components/layout/Header",
3625
+ filePath: "src/components/layout/Header.tsx",
3626
+ sku: "@chassis/layout/header",
3627
+ humanLabel: "Header",
3628
+ humanDescription: "The top bar region of the app shell. Strategic purpose: a semantic, theme-aware slot for branding, page title, and global actions — pass it to AppShell's `headerSlot` rather than positioning a bar yourself. For a per-page title block inside the content area, use PageHeader instead."
3629
+ },
3630
+ {
3631
+ id: "list-item",
3632
+ name: "ListItem",
3633
+ version: "1.0.0",
3634
+ description: "Represents a single item within a `List` component.",
3635
+ tags: [
3636
+ "ui",
3637
+ "layout",
3638
+ "typography"
3639
+ ],
3640
+ category: "layout",
3641
+ props: [
3642
+ {
3643
+ name: "children",
3644
+ type: "React.ReactNode",
3645
+ description: "The content of the list item."
3646
+ },
3647
+ {
3648
+ name: "className",
3649
+ type: "string",
3650
+ description: "Optional additional CSS classes for the list item (`<li>`)."
3651
+ }
3652
+ ],
3653
+ importPath: "./components/layout/List",
3654
+ filePath: "src/components/layout/List.tsx",
3655
+ sku: "@chassis/layout/list-item",
3656
+ humanLabel: "ListItem",
3657
+ humanDescription: "Represents a single item within a `List` component."
3658
+ },
3659
+ {
3660
+ id: "list",
3661
+ name: "List",
3662
+ version: "1.0.0",
3663
+ description: "A component for displaying either ordered or unordered lists of `ListItem`s.",
3664
+ tags: [
3665
+ "ui",
3666
+ "layout",
3667
+ "typography"
3668
+ ],
3669
+ category: "layout",
3670
+ props: [
3671
+ {
3672
+ name: "type",
3673
+ type: "'ul' | 'ol'",
3674
+ description: "Specifies whether the list should be unordered ('ul') or ordered ('ol').",
3675
+ default: "'ul'"
3676
+ },
3677
+ {
3678
+ name: "children",
3679
+ type: "React.ReactNode",
3680
+ description: "The list items, typically `ListItem` components."
3681
+ },
3682
+ {
3683
+ name: "className",
3684
+ type: "string",
3685
+ description: "Optional additional CSS classes for the list container (`<ul>` or `<ol>`)."
3686
+ }
3687
+ ],
3688
+ importPath: "./components/layout/List",
3689
+ filePath: "src/components/layout/List.tsx",
3690
+ sku: "@chassis/layout/list",
3691
+ humanLabel: "List",
3692
+ humanDescription: "A component for displaying either ordered or unordered lists of `ListItem`s."
3693
+ },
3694
+ {
3695
+ id: "definition-term",
3696
+ name: "DefinitionTerm",
3697
+ version: "1.0.0",
3698
+ description: "Represents a term within a `DefinitionList`.",
3699
+ tags: [
3700
+ "ui",
3701
+ "layout",
3702
+ "typography"
3703
+ ],
3704
+ category: "layout",
3705
+ props: [
3706
+ {
3707
+ name: "children",
3708
+ type: "React.ReactNode",
3709
+ description: "The content of the definition term."
3710
+ },
3711
+ {
3712
+ name: "className",
3713
+ type: "string",
3714
+ description: "Optional additional CSS classes for the definition term (`<dt>`)."
3715
+ }
3716
+ ],
3717
+ importPath: "./components/layout/List",
3718
+ filePath: "src/components/layout/List.tsx",
3719
+ sku: "@chassis/layout/definition-term",
3720
+ humanLabel: "DefinitionTerm",
3721
+ humanDescription: "Represents a term within a `DefinitionList`."
3722
+ },
3723
+ {
3724
+ id: "definition-description",
3725
+ name: "DefinitionDescription",
3726
+ version: "1.0.0",
3727
+ description: "Represents the description for a term within a `DefinitionList`.",
3728
+ tags: [
3729
+ "ui",
3730
+ "layout",
3731
+ "typography"
3732
+ ],
3733
+ category: "layout",
3734
+ props: [
3735
+ {
3736
+ name: "children",
3737
+ type: "React.ReactNode",
3738
+ description: "The content of the definition description."
3739
+ },
3740
+ {
3741
+ name: "className",
3742
+ type: "string",
3743
+ description: "Optional additional CSS classes for the definition description (`<dd>`)."
3744
+ }
3745
+ ],
3746
+ importPath: "./components/layout/List",
3747
+ filePath: "src/components/layout/List.tsx",
3748
+ sku: "@chassis/layout/definition-description",
3749
+ humanLabel: "DefinitionDescription",
3750
+ humanDescription: "Represents the description for a term within a `DefinitionList`."
3751
+ },
3752
+ {
3753
+ id: "definition-list",
3754
+ name: "DefinitionList",
3755
+ version: "1.0.0",
3756
+ description: "Displays a list of terms and their corresponding definitions.",
3757
+ tags: [
3758
+ "ui",
3759
+ "layout",
3760
+ "typography",
3761
+ "data-display"
3762
+ ],
3763
+ category: "layout",
3764
+ props: [
3765
+ {
3766
+ name: "children",
3767
+ type: "React.ReactNode",
3768
+ description: "A collection of `DefinitionTerm` and `DefinitionDescription` components."
3769
+ },
3770
+ {
3771
+ name: "className",
3772
+ type: "string",
3773
+ description: "Optional additional CSS classes for the definition list container (`<dl>`)."
3774
+ }
3775
+ ],
3776
+ importPath: "./components/layout/List",
3777
+ filePath: "src/components/layout/List.tsx",
3778
+ sku: "@chassis/layout/definition-list",
3779
+ humanLabel: "DefinitionList",
3780
+ humanDescription: "Displays a list of terms and their corresponding definitions."
3781
+ },
3782
+ {
3783
+ id: "modal",
3784
+ name: "Modal",
3785
+ version: "1.0.1",
3786
+ description: "A centered dialog that blocks interaction with the page until dismissed. Strategic purpose: confirmations, focused forms, and tasks requiring full user attention. Supports portal rendering, Escape key dismissal, and an optional sticky footer row for action buttons.",
3787
+ tags: [
3788
+ "ui",
3789
+ "overlay",
3790
+ "dialog",
3791
+ "popup",
3792
+ "layout"
3793
+ ],
3794
+ category: "layout",
3795
+ props: [
3796
+ {
3797
+ name: "isOpen",
3798
+ type: "boolean",
3799
+ description: "Controls the visible state of the modal. Required."
3800
+ },
3801
+ {
3802
+ name: "onClose",
3803
+ type: "function",
3804
+ description: "Callback fired when the modal requests to close via the Escape key or the header X button. Required."
3805
+ },
3806
+ {
3807
+ name: "title",
3808
+ type: "string",
3809
+ description: "Optional title rendered in the modal header bar."
3810
+ },
3811
+ {
3812
+ name: "footer",
3813
+ type: "ReactNode",
3814
+ description: "Optional content rendered in a sticky bottom row. Typically contains Cancel and Confirm action buttons."
3815
+ },
3816
+ {
3817
+ name: "className",
3818
+ type: "string",
3819
+ description: "Additional CSS classes applied to the modal panel element."
3820
+ }
3821
+ ],
3822
+ importPath: "./components/layout/Modal",
3823
+ filePath: "src/components/layout/Modal.tsx",
3824
+ sku: "@chassis/layout/modal",
3825
+ humanLabel: "Modal",
3826
+ humanDescription: "A centered dialog that blocks interaction with the page until dismissed. Strategic purpose: confirmations, focused forms, and tasks requiring full user attention. Supports portal rendering, Escape key dismissal, and an optional sticky footer row for action buttons."
3827
+ },
3828
+ {
3829
+ id: "page-container",
3830
+ name: "PageContainer",
3831
+ version: "1.0.0",
3832
+ description: "Standard responsive padding wrapper for the content inside a page. Strategic purpose: lets a page opt in to canonical spacing without the layout template imposing it, so page components stay free of layout chrome. Use this instead of hand-rolling `p-4 md:p-8` on every page. Never add `h-screen` or `overflow-hidden` here — the app shell owns the viewport.",
3833
+ tags: [
3834
+ "layout",
3835
+ "container",
3836
+ "page",
3837
+ "spacing",
3838
+ "padding"
3839
+ ],
3840
+ category: "layout",
3841
+ props: [
3842
+ {
3843
+ name: "children",
3844
+ type: "ReactNode",
3845
+ description: "The page content."
3846
+ },
3847
+ {
3848
+ name: "constrained",
3849
+ type: "boolean",
3850
+ description: "Caps width at a readable maximum and centres it. Defaults to false (full width)."
3851
+ },
3852
+ {
3853
+ name: "className",
3854
+ type: "string",
3855
+ description: "Additional CSS classes."
3856
+ }
3857
+ ],
3858
+ importPath: "./components/layout/PageContainer",
3859
+ filePath: "src/components/layout/PageContainer.tsx",
3860
+ sku: "@chassis/layout/page-container",
3861
+ humanLabel: "PageContainer",
3862
+ humanDescription: "Standard responsive padding wrapper for the content inside a page. Strategic purpose: lets a page opt in to canonical spacing without the layout template imposing it, so page components stay free of layout chrome. Use this instead of hand-rolling `p-4 md:p-8` on every page. Never add `h-screen` or `overflow-hidden` here — the app shell owns the viewport."
3863
+ },
3864
+ {
3865
+ id: "settings-container",
3866
+ name: "SettingsContainer",
3867
+ version: "1.0.0",
3868
+ description: "The canonical settings page arrangement, with a fixed slot per section so every app's settings read the same way. Strategic purpose: settings sprawl fast — this pins the section order and navigation so General, AI Gateway, Theme Lab, and About always live in the same place.",
3869
+ tags: [
3870
+ "layout",
3871
+ "settings",
3872
+ "preferences",
3873
+ "configuration",
3874
+ "page"
3875
+ ],
3876
+ category: "layout",
3877
+ props: [
3878
+ {
3879
+ name: "generalSlot",
3880
+ type: "ReactNode",
3881
+ description: "General application settings."
3882
+ },
3883
+ {
3884
+ name: "aiGatewaySlot",
3885
+ type: "ReactNode",
3886
+ description: "AI provider and key configuration — pairs with kernel's AiSettingsPanel."
3887
+ },
3888
+ {
3889
+ name: "themeLabSlot",
3890
+ type: "ReactNode",
3891
+ description: "Theme customisation."
3892
+ },
3893
+ {
3894
+ name: "aboutSlot",
3895
+ type: "ReactNode",
3896
+ description: "Version and attribution."
3897
+ },
3898
+ {
3899
+ name: "className",
3900
+ type: "string",
3901
+ description: "Additional CSS classes."
3902
+ }
3903
+ ],
3904
+ importPath: "./components/layout/SettingsContainer",
3905
+ filePath: "src/components/layout/SettingsContainer.tsx",
3906
+ sku: "@chassis/layout/settings-container",
3907
+ humanLabel: "SettingsContainer",
3908
+ humanDescription: "The canonical settings page arrangement, with a fixed slot per section so every app's settings read the same way. Strategic purpose: settings sprawl fast — this pins the section order and navigation so General, AI Gateway, Theme Lab, and About always live in the same place."
3909
+ },
3910
+ {
3911
+ id: "sidebar",
3912
+ name: "Sidebar",
3913
+ version: "1.0.0",
3914
+ description: "A collapsible, theme-aware application navigation rail. Strategic purpose: the primary structural shell atom for multi-page apps. Renders a vertical nav item list, an optional branded header, a footer slot for secondary actions, and a user menu. Collapses automatically below 768px.",
3915
+ tags: [
3916
+ "layout",
3917
+ "navigation",
3918
+ "shell",
3919
+ "sidebar",
3920
+ "ui"
3921
+ ],
3922
+ category: "layout",
3923
+ props: [
3924
+ {
3925
+ name: "items",
3926
+ type: "Array",
3927
+ description: "Navigation item array. Each item shape: { id: string, label?: string, icon?: IconName, href?: string, onClick?: function, badge?: string|number, type?: 'item'|'divider', variant?: 'default'|'ghost'|'primary'|'destructive', subItems?: SidebarItem[] }."
3928
+ },
3929
+ {
3930
+ name: "user",
3931
+ type: "object",
3932
+ description: "Optional user object for the bottom user menu. Shape: { name: string, email: string, avatarUrl?: string }."
3933
+ },
3934
+ {
3935
+ name: "activeItemId",
3936
+ type: "string",
3937
+ description: "The id of the currently active navigation item. Drives the highlighted state."
3938
+ },
3939
+ {
3940
+ name: "onNavigate",
3941
+ type: "function",
3942
+ description: "Callback fired when a nav item is clicked. Receives the full SidebarItem object."
3943
+ },
3944
+ {
3945
+ name: "logo",
3946
+ type: "ReactNode",
3947
+ description: "Node rendered in the expanded header slot (e.g. a logo image or branded wordmark)."
3948
+ },
3949
+ {
3950
+ name: "collapsedLogo",
3951
+ type: "ReactNode",
3952
+ description: "Node rendered in the collapsed header slot. Falls back to the first letter of title."
3953
+ },
3954
+ {
3955
+ name: "title",
3956
+ type: "string",
3957
+ description: "Text title used in the header when no logo node is provided."
3958
+ },
3959
+ {
3960
+ name: "footerSlot",
3961
+ type: "ReactNode",
3962
+ description: "ReactNode injected above the user menu in the footer. Use for secondary actions like Settings or Help."
3963
+ },
3964
+ {
3965
+ name: "defaultCollapsed",
3966
+ type: "boolean",
3967
+ description: "If true, the sidebar starts in collapsed (icon-only) state. Defaults to false."
3968
+ },
3969
+ {
3970
+ name: "onLogout",
3971
+ type: "function",
3972
+ description: "Callback fired when the user selects Logout from the user dropdown menu."
3973
+ },
3974
+ {
3975
+ name: "userMenuChildren",
3976
+ type: "ReactNode",
3977
+ description: "Additional items injected into the user dropdown menu."
3978
+ },
3979
+ {
3980
+ name: "className",
3981
+ type: "string",
3982
+ description: "Additional CSS classes applied to the sidebar root aside element."
3983
+ }
3984
+ ],
3985
+ importPath: "./components/layout/Sidebar",
3986
+ filePath: "src/components/layout/Sidebar.tsx",
3987
+ sku: "@chassis/layout/sidebar",
3988
+ humanLabel: "Sidebar",
3989
+ humanDescription: "A collapsible, theme-aware application navigation rail. Strategic purpose: the primary structural shell atom for multi-page apps. Renders a vertical nav item list, an optional branded header, a footer slot for secondary actions, and a user menu. Collapses automatically below 768px."
3990
+ },
3991
+ {
3992
+ id: "statusbar",
3993
+ name: "Statusbar",
3994
+ version: "1.0.0",
3995
+ description: "The persistent strip pinned to the bottom of the app shell. Strategic purpose: ambient state that should always be visible but never demand attention — connection status, record counts, sync state, build version. Pass to AppShell's `statusbarSlot`. Use Toast for things the user must acknowledge.",
3996
+ tags: [
3997
+ "layout",
3998
+ "statusbar",
3999
+ "chrome",
4000
+ "status",
4001
+ "ambient"
4002
+ ],
4003
+ category: "layout",
4004
+ props: [
4005
+ {
4006
+ name: "children",
4007
+ type: "ReactNode",
4008
+ description: "Statusbar content."
4009
+ },
4010
+ {
4011
+ name: "className",
4012
+ type: "string",
4013
+ description: "Additional CSS classes."
4014
+ }
4015
+ ],
4016
+ importPath: "./components/layout/Statusbar",
4017
+ filePath: "src/components/layout/Statusbar.tsx",
4018
+ sku: "@chassis/layout/statusbar",
4019
+ humanLabel: "Statusbar",
4020
+ humanDescription: "The persistent strip pinned to the bottom of the app shell. Strategic purpose: ambient state that should always be visible but never demand attention — connection status, record counts, sync state, build version. Pass to AppShell's `statusbarSlot`. Use Toast for things the user must acknowledge."
4021
+ },
4022
+ {
4023
+ id: "toolbar",
4024
+ name: "Toolbar",
4025
+ version: "1.0.0",
4026
+ description: "The secondary action strip that sits beneath the header. Strategic purpose: the canonical home for filters, view switches, and bulk actions that apply to the whole page — keeps them out of the header and off the content canvas. Pass to AppShell's `toolbarSlot`.",
4027
+ tags: [
4028
+ "layout",
4029
+ "toolbar",
4030
+ "actions",
4031
+ "filters",
4032
+ "chrome"
4033
+ ],
4034
+ category: "layout",
4035
+ props: [
4036
+ {
4037
+ name: "children",
4038
+ type: "ReactNode",
4039
+ description: "Toolbar content, typically Buttons or a SegmentedControl."
4040
+ },
4041
+ {
4042
+ name: "className",
4043
+ type: "string",
4044
+ description: "Additional CSS classes."
4045
+ }
4046
+ ],
4047
+ importPath: "./components/layout/Toolbar",
4048
+ filePath: "src/components/layout/Toolbar.tsx",
4049
+ sku: "@chassis/layout/toolbar",
4050
+ humanLabel: "Toolbar",
4051
+ humanDescription: "The secondary action strip that sits beneath the header. Strategic purpose: the canonical home for filters, view switches, and bulk actions that apply to the whole page — keeps them out of the header and off the content canvas. Pass to AppShell's `toolbarSlot`."
4052
+ },
4053
+ {
4054
+ id: "user-nav",
4055
+ name: "UserNav",
4056
+ version: "1.0.0",
4057
+ description: "The signed-in user's avatar menu — identity plus account actions. Strategic purpose: the standard account affordance for the app shell's header, with logout, settings, profile, and an optional theme toggle already wired. Compose extra entries with ButtonItem rather than rebuilding the menu.",
4058
+ tags: [
4059
+ "layout",
4060
+ "navigation",
4061
+ "user",
4062
+ "account",
4063
+ "menu",
4064
+ "avatar",
4065
+ "auth"
4066
+ ],
4067
+ category: "layout",
4068
+ props: [
4069
+ {
4070
+ name: "user",
4071
+ type: "object",
4072
+ description: "The signed-in user: `{ name, email, avatarUrl? }`. Falls back to initials when no avatar is given."
4073
+ },
4074
+ {
4075
+ name: "onLogout",
4076
+ type: "function",
4077
+ description: "Called when the user chooses sign out."
4078
+ },
4079
+ {
4080
+ name: "onSettings",
4081
+ type: "function",
4082
+ description: "Called when the user chooses settings."
4083
+ },
4084
+ {
4085
+ name: "onProfile",
4086
+ type: "function",
4087
+ description: "Called when the user chooses profile."
4088
+ },
4089
+ {
4090
+ name: "showThemeToggle",
4091
+ type: "boolean",
4092
+ description: "Adds a theme switcher inside the menu."
4093
+ },
4094
+ {
4095
+ name: "trigger",
4096
+ type: "ReactNode",
4097
+ description: "Replaces the default avatar trigger."
4098
+ },
4099
+ {
4100
+ name: "align",
4101
+ type: "string",
4102
+ description: "Menu alignment against the trigger: 'start', 'center', or 'end'."
4103
+ },
4104
+ {
4105
+ name: "side",
4106
+ type: "string",
4107
+ description: "Which side the menu opens on: 'top', 'bottom', 'left', or 'right'."
4108
+ },
4109
+ {
4110
+ name: "children",
4111
+ type: "ReactNode",
4112
+ description: "Extra menu entries, typically ButtonItem."
4113
+ },
4114
+ {
4115
+ name: "className",
4116
+ type: "string",
4117
+ description: "Additional CSS classes."
4118
+ }
4119
+ ],
4120
+ importPath: "./components/layout/UserNav",
4121
+ filePath: "src/components/layout/UserNav.tsx",
4122
+ sku: "@chassis/layout/user-nav",
4123
+ humanLabel: "UserNav",
4124
+ humanDescription: "The signed-in user's avatar menu — identity plus account actions. Strategic purpose: the standard account affordance for the app shell's header, with logout, settings, profile, and an optional theme toggle already wired. Compose extra entries with ButtonItem rather than rebuilding the menu."
4125
+ }
4126
+ ],
4127
+ utils: [],
4128
+ hooks: [],
4129
+ data: [
4130
+ {
4131
+ id: "mock-chart-data",
4132
+ name: "mockChartData",
4133
+ version: "1.0.0",
4134
+ description: "Pre-defined datasets for prototyping charts and other data-driven components.",
4135
+ tags: [
4136
+ "data",
4137
+ "mock",
4138
+ "example"
4139
+ ],
4140
+ category: "data",
4141
+ props: [],
4142
+ importPath: "./data/mockData",
4143
+ filePath: "src/data/mockData.ts",
4144
+ sku: "@data/mock/mock-chart-data",
4145
+ humanLabel: "mockChartData",
4146
+ humanDescription: "Pre-defined datasets for prototyping charts and other data-driven components."
4147
+ },
4148
+ {
4149
+ id: "mock-table-data",
4150
+ name: "mockTableData",
4151
+ version: "1.0.0",
4152
+ description: "Pre-defined datasets for prototyping tables and other data-driven components.",
4153
+ tags: [
4154
+ "data",
4155
+ "mock",
4156
+ "example"
4157
+ ],
4158
+ category: "data",
4159
+ props: [],
4160
+ importPath: "./data/mockData",
4161
+ filePath: "src/data/mockData.ts",
4162
+ sku: "@data/mock/mock-table-data",
4163
+ humanLabel: "mockTableData",
4164
+ humanDescription: "Pre-defined datasets for prototyping tables and other data-driven components."
4165
+ }
4166
+ ]
4167
+ };
4168
+ export {
4169
+ e as wizardManifest
4170
+ };