@kismet-ux/constellation 1.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 (668) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/dist/brand/Logo/index.d.ts +2 -0
  4. package/dist/brand/Logo/index.d.ts.map +1 -0
  5. package/dist/brand/Logo/logo.d.ts +23 -0
  6. package/dist/brand/Logo/logo.d.ts.map +1 -0
  7. package/dist/brand/Logo/logo.js +28 -0
  8. package/dist/brand/Logo/logo.js.map +1 -0
  9. package/dist/brand/Logo/logo.module.scss.js +4 -0
  10. package/dist/brand/Logo/logo.module.scss.js.map +1 -0
  11. package/dist/brand/index.d.ts +2 -0
  12. package/dist/brand/index.d.ts.map +1 -0
  13. package/dist/brand.d.ts +25 -0
  14. package/dist/brand.js +2 -0
  15. package/dist/brand.js.map +1 -0
  16. package/dist/form/Checkbox/checkbox.d.ts +20 -0
  17. package/dist/form/Checkbox/checkbox.d.ts.map +1 -0
  18. package/dist/form/Checkbox/checkbox.js +57 -0
  19. package/dist/form/Checkbox/checkbox.js.map +1 -0
  20. package/dist/form/Checkbox/checkbox.module.scss.js +4 -0
  21. package/dist/form/Checkbox/checkbox.module.scss.js.map +1 -0
  22. package/dist/form/Checkbox/index.d.ts +2 -0
  23. package/dist/form/Checkbox/index.d.ts.map +1 -0
  24. package/dist/form/DatePicker/date-picker.d.ts +5 -0
  25. package/dist/form/DatePicker/date-picker.d.ts.map +1 -0
  26. package/dist/form/DatePicker/date-picker.js +251 -0
  27. package/dist/form/DatePicker/date-picker.js.map +1 -0
  28. package/dist/form/DatePicker/date-picker.module.scss.js +4 -0
  29. package/dist/form/DatePicker/date-picker.module.scss.js.map +1 -0
  30. package/dist/form/DatePicker/index.d.ts +2 -0
  31. package/dist/form/DatePicker/index.d.ts.map +1 -0
  32. package/dist/form/DatePicker/use-calendar.d.ts +40 -0
  33. package/dist/form/DatePicker/use-calendar.d.ts.map +1 -0
  34. package/dist/form/DatePicker/use-calendar.js +202 -0
  35. package/dist/form/DatePicker/use-calendar.js.map +1 -0
  36. package/dist/form/Input/index.d.ts +2 -0
  37. package/dist/form/Input/index.d.ts.map +1 -0
  38. package/dist/form/Input/input.d.ts +23 -0
  39. package/dist/form/Input/input.d.ts.map +1 -0
  40. package/dist/form/Input/input.js +24 -0
  41. package/dist/form/Input/input.js.map +1 -0
  42. package/dist/form/Input/input.module.scss.js +4 -0
  43. package/dist/form/Input/input.module.scss.js.map +1 -0
  44. package/dist/form/Label/index.d.ts +2 -0
  45. package/dist/form/Label/index.d.ts.map +1 -0
  46. package/dist/form/Label/label-variants.d.ts +5 -0
  47. package/dist/form/Label/label-variants.d.ts.map +1 -0
  48. package/dist/form/Label/label-variants.js +29 -0
  49. package/dist/form/Label/label-variants.js.map +1 -0
  50. package/dist/form/Label/label.d.ts +10 -0
  51. package/dist/form/Label/label.d.ts.map +1 -0
  52. package/dist/form/Label/label.js +13 -0
  53. package/dist/form/Label/label.js.map +1 -0
  54. package/dist/form/Label/label.module.scss.js +4 -0
  55. package/dist/form/Label/label.module.scss.js.map +1 -0
  56. package/dist/form/Select/index.d.ts +2 -0
  57. package/dist/form/Select/index.d.ts.map +1 -0
  58. package/dist/form/Select/select.d.ts +16 -0
  59. package/dist/form/Select/select.d.ts.map +1 -0
  60. package/dist/form/Select/select.js +857 -0
  61. package/dist/form/Select/select.js.map +1 -0
  62. package/dist/form/Select/select.module.scss.js +4 -0
  63. package/dist/form/Select/select.module.scss.js.map +1 -0
  64. package/dist/form/index.d.ts +6 -0
  65. package/dist/form/index.d.ts.map +1 -0
  66. package/dist/form.d.ts +5 -0
  67. package/dist/form.js +6 -0
  68. package/dist/form.js.map +1 -0
  69. package/dist/hooks/index.d.ts +6 -0
  70. package/dist/hooks/index.d.ts.map +1 -0
  71. package/dist/hooks/layout/index.d.ts +2 -0
  72. package/dist/hooks/layout/index.d.ts.map +1 -0
  73. package/dist/hooks/layout/use-sidebar.d.ts +3 -0
  74. package/dist/hooks/layout/use-sidebar.d.ts.map +1 -0
  75. package/dist/hooks/layout/use-sidebar.js +13 -0
  76. package/dist/hooks/layout/use-sidebar.js.map +1 -0
  77. package/dist/hooks/ui/index.d.ts +3 -0
  78. package/dist/hooks/ui/index.d.ts.map +1 -0
  79. package/dist/hooks/ui/use-alerts.d.ts +3 -0
  80. package/dist/hooks/ui/use-alerts.d.ts.map +1 -0
  81. package/dist/hooks/ui/use-alerts.js +13 -0
  82. package/dist/hooks/ui/use-alerts.js.map +1 -0
  83. package/dist/hooks/ui/use-table-sorting.d.ts +6 -0
  84. package/dist/hooks/ui/use-table-sorting.d.ts.map +1 -0
  85. package/dist/hooks/ui/use-table-sorting.js +37 -0
  86. package/dist/hooks/ui/use-table-sorting.js.map +1 -0
  87. package/dist/hooks/use-appearance.d.ts +10 -0
  88. package/dist/hooks/use-appearance.d.ts.map +1 -0
  89. package/dist/hooks/use-appearance.js +123 -0
  90. package/dist/hooks/use-appearance.js.map +1 -0
  91. package/dist/hooks/use-initials.d.ts +2 -0
  92. package/dist/hooks/use-initials.d.ts.map +1 -0
  93. package/dist/hooks/use-initials.js +17 -0
  94. package/dist/hooks/use-initials.js.map +1 -0
  95. package/dist/hooks/use-mobile-navigation.d.ts +2 -0
  96. package/dist/hooks/use-mobile-navigation.d.ts.map +1 -0
  97. package/dist/hooks/use-mobile-navigation.js +11 -0
  98. package/dist/hooks/use-mobile-navigation.js.map +1 -0
  99. package/dist/hooks/use-mobile.d.ts +6 -0
  100. package/dist/hooks/use-mobile.d.ts.map +1 -0
  101. package/dist/hooks/use-mobile.js +73 -0
  102. package/dist/hooks/use-mobile.js.map +1 -0
  103. package/dist/index-Bzf20Rpc.d.ts +120 -0
  104. package/dist/index-DECPicJT.d.ts +450 -0
  105. package/dist/index-qbk6vH0X.d.ts +186 -0
  106. package/dist/index.css +7611 -0
  107. package/dist/index.css.map +1 -0
  108. package/dist/index.d.ts +55 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +63 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/input-CWHXOpeH.d.ts +25 -0
  113. package/dist/internal/create-ripple.d.ts +8 -0
  114. package/dist/internal/create-ripple.d.ts.map +1 -0
  115. package/dist/internal/create-ripple.js +24 -0
  116. package/dist/internal/create-ripple.js.map +1 -0
  117. package/dist/internal/merge-refs.d.ts +3 -0
  118. package/dist/internal/merge-refs.d.ts.map +1 -0
  119. package/dist/internal/merge-refs.js +15 -0
  120. package/dist/internal/merge-refs.js.map +1 -0
  121. package/dist/internal/slot.d.ts +7 -0
  122. package/dist/internal/slot.d.ts.map +1 -0
  123. package/dist/internal/slot.js +42 -0
  124. package/dist/internal/slot.js.map +1 -0
  125. package/dist/internal/use-animation-state.d.ts +12 -0
  126. package/dist/internal/use-animation-state.d.ts.map +1 -0
  127. package/dist/internal/use-animation-state.js +36 -0
  128. package/dist/internal/use-animation-state.js.map +1 -0
  129. package/dist/internal/use-focus-trap.d.ts +3 -0
  130. package/dist/internal/use-focus-trap.d.ts.map +1 -0
  131. package/dist/internal/use-focus-trap.js +55 -0
  132. package/dist/internal/use-focus-trap.js.map +1 -0
  133. package/dist/internal/use-scroll-lock.d.ts +2 -0
  134. package/dist/internal/use-scroll-lock.d.ts.map +1 -0
  135. package/dist/internal/use-scroll-lock.js +22 -0
  136. package/dist/internal/use-scroll-lock.js.map +1 -0
  137. package/dist/internal/with-aria-hidden-children.d.ts +16 -0
  138. package/dist/internal/with-aria-hidden-children.d.ts.map +1 -0
  139. package/dist/internal/with-aria-hidden-children.js +29 -0
  140. package/dist/internal/with-aria-hidden-children.js.map +1 -0
  141. package/dist/layout/AppContent/app-content.d.ts +3 -0
  142. package/dist/layout/AppContent/app-content.d.ts.map +1 -0
  143. package/dist/layout/AppContent/app-content.js +11 -0
  144. package/dist/layout/AppContent/app-content.js.map +1 -0
  145. package/dist/layout/AppContent/app-content.module.scss.js +4 -0
  146. package/dist/layout/AppContent/app-content.module.scss.js.map +1 -0
  147. package/dist/layout/AppContent/index.d.ts +2 -0
  148. package/dist/layout/AppContent/index.d.ts.map +1 -0
  149. package/dist/layout/AppFooter/app-footer.d.ts +10 -0
  150. package/dist/layout/AppFooter/app-footer.d.ts.map +1 -0
  151. package/dist/layout/AppFooter/app-footer.js +19 -0
  152. package/dist/layout/AppFooter/app-footer.js.map +1 -0
  153. package/dist/layout/AppFooter/app-footer.module.scss.js +4 -0
  154. package/dist/layout/AppFooter/app-footer.module.scss.js.map +1 -0
  155. package/dist/layout/AppFooter/index.d.ts +2 -0
  156. package/dist/layout/AppFooter/index.d.ts.map +1 -0
  157. package/dist/layout/AppShell/app-shell.d.ts +11 -0
  158. package/dist/layout/AppShell/app-shell.d.ts.map +1 -0
  159. package/dist/layout/AppShell/app-shell.js +9 -0
  160. package/dist/layout/AppShell/app-shell.js.map +1 -0
  161. package/dist/layout/AppShell/index.d.ts +2 -0
  162. package/dist/layout/AppShell/index.d.ts.map +1 -0
  163. package/dist/layout/AppSidebar/app-sidebar.d.ts +14 -0
  164. package/dist/layout/AppSidebar/app-sidebar.d.ts.map +1 -0
  165. package/dist/layout/AppSidebar/app-sidebar.js +71 -0
  166. package/dist/layout/AppSidebar/app-sidebar.js.map +1 -0
  167. package/dist/layout/AppSidebar/index.d.ts +2 -0
  168. package/dist/layout/AppSidebar/index.d.ts.map +1 -0
  169. package/dist/layout/AppSidebarHeader/app-sidebar-header.d.ts +13 -0
  170. package/dist/layout/AppSidebarHeader/app-sidebar-header.d.ts.map +1 -0
  171. package/dist/layout/AppSidebarHeader/app-sidebar-header.js +20 -0
  172. package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -0
  173. package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js +4 -0
  174. package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js.map +1 -0
  175. package/dist/layout/AppSidebarHeader/index.d.ts +2 -0
  176. package/dist/layout/AppSidebarHeader/index.d.ts.map +1 -0
  177. package/dist/layout/Collapse/collapse.d.ts +8 -0
  178. package/dist/layout/Collapse/collapse.d.ts.map +1 -0
  179. package/dist/layout/Collapse/collapse.js +14 -0
  180. package/dist/layout/Collapse/collapse.js.map +1 -0
  181. package/dist/layout/Collapse/collapse.module.scss.js +4 -0
  182. package/dist/layout/Collapse/collapse.module.scss.js.map +1 -0
  183. package/dist/layout/Collapse/index.d.ts +2 -0
  184. package/dist/layout/Collapse/index.d.ts.map +1 -0
  185. package/dist/layout/Column/column.d.ts +4 -0
  186. package/dist/layout/Column/column.d.ts.map +1 -0
  187. package/dist/layout/Column/column.js +14 -0
  188. package/dist/layout/Column/column.js.map +1 -0
  189. package/dist/layout/Column/column.module.scss.js +4 -0
  190. package/dist/layout/Column/column.module.scss.js.map +1 -0
  191. package/dist/layout/Column/index.d.ts +3 -0
  192. package/dist/layout/Column/index.d.ts.map +1 -0
  193. package/dist/layout/Container/container.d.ts +4 -0
  194. package/dist/layout/Container/container.d.ts.map +1 -0
  195. package/dist/layout/Container/container.js +35 -0
  196. package/dist/layout/Container/container.js.map +1 -0
  197. package/dist/layout/Container/container.module.scss.js +4 -0
  198. package/dist/layout/Container/container.module.scss.js.map +1 -0
  199. package/dist/layout/Container/index.d.ts +2 -0
  200. package/dist/layout/Container/index.d.ts.map +1 -0
  201. package/dist/layout/Grid/grid.d.ts +5 -0
  202. package/dist/layout/Grid/grid.d.ts.map +1 -0
  203. package/dist/layout/Grid/grid.js +15 -0
  204. package/dist/layout/Grid/grid.js.map +1 -0
  205. package/dist/layout/Grid/grid.module.scss.js +4 -0
  206. package/dist/layout/Grid/grid.module.scss.js.map +1 -0
  207. package/dist/layout/Grid/index.d.ts +2 -0
  208. package/dist/layout/Grid/index.d.ts.map +1 -0
  209. package/dist/layout/Row/index.d.ts +3 -0
  210. package/dist/layout/Row/index.d.ts.map +1 -0
  211. package/dist/layout/Row/row.d.ts +4 -0
  212. package/dist/layout/Row/row.d.ts.map +1 -0
  213. package/dist/layout/Row/row.js +19 -0
  214. package/dist/layout/Row/row.js.map +1 -0
  215. package/dist/layout/Row/row.module.scss.js +4 -0
  216. package/dist/layout/Row/row.module.scss.js.map +1 -0
  217. package/dist/layout/Sidebar/index.d.ts +2 -0
  218. package/dist/layout/Sidebar/index.d.ts.map +1 -0
  219. package/dist/layout/Sidebar/sidebar-context.d.ts +4 -0
  220. package/dist/layout/Sidebar/sidebar-context.d.ts.map +1 -0
  221. package/dist/layout/Sidebar/sidebar-context.js +6 -0
  222. package/dist/layout/Sidebar/sidebar-context.js.map +1 -0
  223. package/dist/layout/Sidebar/sidebar-variants.d.ts +5 -0
  224. package/dist/layout/Sidebar/sidebar-variants.d.ts.map +1 -0
  225. package/dist/layout/Sidebar/sidebar-variants.js +23 -0
  226. package/dist/layout/Sidebar/sidebar-variants.js.map +1 -0
  227. package/dist/layout/Sidebar/sidebar.d.ts +57 -0
  228. package/dist/layout/Sidebar/sidebar.d.ts.map +1 -0
  229. package/dist/layout/Sidebar/sidebar.js +200 -0
  230. package/dist/layout/Sidebar/sidebar.js.map +1 -0
  231. package/dist/layout/Sidebar/sidebar.module.scss.js +4 -0
  232. package/dist/layout/Sidebar/sidebar.module.scss.js.map +1 -0
  233. package/dist/layout/Skeleton/index.d.ts +2 -0
  234. package/dist/layout/Skeleton/index.d.ts.map +1 -0
  235. package/dist/layout/Skeleton/skeleton.d.ts +3 -0
  236. package/dist/layout/Skeleton/skeleton.d.ts.map +1 -0
  237. package/dist/layout/Skeleton/skeleton.js +10 -0
  238. package/dist/layout/Skeleton/skeleton.js.map +1 -0
  239. package/dist/layout/Skeleton/skeleton.module.scss.js +4 -0
  240. package/dist/layout/Skeleton/skeleton.module.scss.js.map +1 -0
  241. package/dist/layout/index.d.ts +13 -0
  242. package/dist/layout/index.d.ts.map +1 -0
  243. package/dist/layout.d.ts +10 -0
  244. package/dist/layout.js +13 -0
  245. package/dist/layout.js.map +1 -0
  246. package/dist/nav-user-CJIcWKyY.d.ts +41 -0
  247. package/dist/navigation/Breadcrumbs/breadcrumbs.d.ts +7 -0
  248. package/dist/navigation/Breadcrumbs/breadcrumbs.d.ts.map +1 -0
  249. package/dist/navigation/Breadcrumbs/breadcrumbs.js +19 -0
  250. package/dist/navigation/Breadcrumbs/breadcrumbs.js.map +1 -0
  251. package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js +4 -0
  252. package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js.map +1 -0
  253. package/dist/navigation/Breadcrumbs/index.d.ts +2 -0
  254. package/dist/navigation/Breadcrumbs/index.d.ts.map +1 -0
  255. package/dist/navigation/DropdownMenu/dropdown-menu.d.ts +50 -0
  256. package/dist/navigation/DropdownMenu/dropdown-menu.d.ts.map +1 -0
  257. package/dist/navigation/DropdownMenu/dropdown-menu.js +193 -0
  258. package/dist/navigation/DropdownMenu/dropdown-menu.js.map +1 -0
  259. package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js +4 -0
  260. package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js.map +1 -0
  261. package/dist/navigation/DropdownMenu/index.d.ts +2 -0
  262. package/dist/navigation/DropdownMenu/index.d.ts.map +1 -0
  263. package/dist/navigation/Link/index.d.ts +2 -0
  264. package/dist/navigation/Link/index.d.ts.map +1 -0
  265. package/dist/navigation/Link/link-variants.d.ts +6 -0
  266. package/dist/navigation/Link/link-variants.d.ts.map +1 -0
  267. package/dist/navigation/Link/link-variants.js +33 -0
  268. package/dist/navigation/Link/link-variants.js.map +1 -0
  269. package/dist/navigation/Link/link.d.ts +24 -0
  270. package/dist/navigation/Link/link.d.ts.map +1 -0
  271. package/dist/navigation/Link/link.js +49 -0
  272. package/dist/navigation/Link/link.js.map +1 -0
  273. package/dist/navigation/Link/link.module.scss.js +4 -0
  274. package/dist/navigation/Link/link.module.scss.js.map +1 -0
  275. package/dist/navigation/NavUser/index.d.ts +2 -0
  276. package/dist/navigation/NavUser/index.d.ts.map +1 -0
  277. package/dist/navigation/NavUser/nav-user.d.ts +8 -0
  278. package/dist/navigation/NavUser/nav-user.d.ts.map +1 -0
  279. package/dist/navigation/NavUser/nav-user.js +15 -0
  280. package/dist/navigation/NavUser/nav-user.js.map +1 -0
  281. package/dist/navigation/NavUser/nav-user.module.scss.js +4 -0
  282. package/dist/navigation/NavUser/nav-user.module.scss.js.map +1 -0
  283. package/dist/navigation/Router/index.d.ts +2 -0
  284. package/dist/navigation/Router/index.d.ts.map +1 -0
  285. package/dist/navigation/Router/router-context.d.ts +38 -0
  286. package/dist/navigation/Router/router-context.d.ts.map +1 -0
  287. package/dist/navigation/Router/router-context.js +49 -0
  288. package/dist/navigation/Router/router-context.js.map +1 -0
  289. package/dist/navigation/Sheet/index.d.ts +2 -0
  290. package/dist/navigation/Sheet/index.d.ts.map +1 -0
  291. package/dist/navigation/Sheet/sheet.d.ts +36 -0
  292. package/dist/navigation/Sheet/sheet.d.ts.map +1 -0
  293. package/dist/navigation/Sheet/sheet.js +104 -0
  294. package/dist/navigation/Sheet/sheet.js.map +1 -0
  295. package/dist/navigation/Sheet/sheet.module.scss.js +4 -0
  296. package/dist/navigation/Sheet/sheet.module.scss.js.map +1 -0
  297. package/dist/navigation/index.d.ts +7 -0
  298. package/dist/navigation/index.d.ts.map +1 -0
  299. package/dist/navigation.d.ts +160 -0
  300. package/dist/navigation.js +7 -0
  301. package/dist/navigation.js.map +1 -0
  302. package/dist/row-CS9-talZ.d.ts +14 -0
  303. package/dist/settings/AppearanceDropdown/appearance-dropdown.d.ts +3 -0
  304. package/dist/settings/AppearanceDropdown/appearance-dropdown.d.ts.map +1 -0
  305. package/dist/settings/AppearanceDropdown/appearance-dropdown.js +27 -0
  306. package/dist/settings/AppearanceDropdown/appearance-dropdown.js.map +1 -0
  307. package/dist/settings/AppearanceDropdown/index.d.ts +2 -0
  308. package/dist/settings/AppearanceDropdown/index.d.ts.map +1 -0
  309. package/dist/settings/AppearanceTabs/appearance-tabs.d.ts +7 -0
  310. package/dist/settings/AppearanceTabs/appearance-tabs.d.ts.map +1 -0
  311. package/dist/settings/AppearanceTabs/appearance-tabs.js +23 -0
  312. package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -0
  313. package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js +4 -0
  314. package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js.map +1 -0
  315. package/dist/settings/AppearanceTabs/index.d.ts +2 -0
  316. package/dist/settings/AppearanceTabs/index.d.ts.map +1 -0
  317. package/dist/settings/index.d.ts +3 -0
  318. package/dist/settings/index.d.ts.map +1 -0
  319. package/dist/settings.d.ts +10 -0
  320. package/dist/settings.js +3 -0
  321. package/dist/settings.js.map +1 -0
  322. package/dist/styles/index.d.ts +2 -0
  323. package/dist/styles/index.d.ts.map +1 -0
  324. package/dist/tooltip-XagXjWLB.d.ts +41 -0
  325. package/dist/types/app.d.ts +7 -0
  326. package/dist/types/app.d.ts.map +1 -0
  327. package/dist/types/form/date-picker.d.ts +19 -0
  328. package/dist/types/form/date-picker.d.ts.map +1 -0
  329. package/dist/types/form/select.d.ts +52 -0
  330. package/dist/types/form/select.d.ts.map +1 -0
  331. package/dist/types/form/theme.d.ts +2 -0
  332. package/dist/types/form/theme.d.ts.map +1 -0
  333. package/dist/types/form/upload.d.ts +4 -0
  334. package/dist/types/form/upload.d.ts.map +1 -0
  335. package/dist/types/index.d.ts +15 -0
  336. package/dist/types/index.d.ts.map +1 -0
  337. package/dist/types/layout/column.d.ts +11 -0
  338. package/dist/types/layout/column.d.ts.map +1 -0
  339. package/dist/types/layout/container.d.ts +18 -0
  340. package/dist/types/layout/container.d.ts.map +1 -0
  341. package/dist/types/layout/grid.d.ts +23 -0
  342. package/dist/types/layout/grid.d.ts.map +1 -0
  343. package/dist/types/layout/row.d.ts +12 -0
  344. package/dist/types/layout/row.d.ts.map +1 -0
  345. package/dist/types/layout/sidebar.d.ts +14 -0
  346. package/dist/types/layout/sidebar.d.ts.map +1 -0
  347. package/dist/types/navigation.d.ts +30 -0
  348. package/dist/types/navigation.d.ts.map +1 -0
  349. package/dist/types/ui/alerts.d.ts +20 -0
  350. package/dist/types/ui/alerts.d.ts.map +1 -0
  351. package/dist/types/ui/pagination.d.ts +10 -0
  352. package/dist/types/ui/pagination.d.ts.map +1 -0
  353. package/dist/types/ui/table.d.ts +11 -0
  354. package/dist/types/ui/table.d.ts.map +1 -0
  355. package/dist/typography/Heading/heading.d.ts +21 -0
  356. package/dist/typography/Heading/heading.d.ts.map +1 -0
  357. package/dist/typography/Heading/heading.js +21 -0
  358. package/dist/typography/Heading/heading.js.map +1 -0
  359. package/dist/typography/Heading/heading.module.scss.js +4 -0
  360. package/dist/typography/Heading/heading.module.scss.js.map +1 -0
  361. package/dist/typography/Heading/index.d.ts +2 -0
  362. package/dist/typography/Heading/index.d.ts.map +1 -0
  363. package/dist/typography/TruncatedText/index.d.ts +2 -0
  364. package/dist/typography/TruncatedText/index.d.ts.map +1 -0
  365. package/dist/typography/TruncatedText/truncated-text.d.ts +15 -0
  366. package/dist/typography/TruncatedText/truncated-text.d.ts.map +1 -0
  367. package/dist/typography/TruncatedText/truncated-text.js +61 -0
  368. package/dist/typography/TruncatedText/truncated-text.js.map +1 -0
  369. package/dist/typography/TruncatedText/truncated-text.module.scss.js +4 -0
  370. package/dist/typography/TruncatedText/truncated-text.module.scss.js.map +1 -0
  371. package/dist/typography/Typography/index.d.ts +2 -0
  372. package/dist/typography/Typography/index.d.ts.map +1 -0
  373. package/dist/typography/Typography/typography-variants.d.ts +9 -0
  374. package/dist/typography/Typography/typography-variants.d.ts.map +1 -0
  375. package/dist/typography/Typography/typography-variants.js +75 -0
  376. package/dist/typography/Typography/typography-variants.js.map +1 -0
  377. package/dist/typography/Typography/typography.d.ts +19 -0
  378. package/dist/typography/Typography/typography.d.ts.map +1 -0
  379. package/dist/typography/Typography/typography.js +43 -0
  380. package/dist/typography/Typography/typography.js.map +1 -0
  381. package/dist/typography/Typography/typography.module.scss.js +4 -0
  382. package/dist/typography/Typography/typography.module.scss.js.map +1 -0
  383. package/dist/typography/index.d.ts +4 -0
  384. package/dist/typography/index.d.ts.map +1 -0
  385. package/dist/typography-DOZHFR5A.d.ts +21 -0
  386. package/dist/typography.d.ts +37 -0
  387. package/dist/typography.js +4 -0
  388. package/dist/typography.js.map +1 -0
  389. package/dist/ui/Alert/alert-context.d.ts +3 -0
  390. package/dist/ui/Alert/alert-context.d.ts.map +1 -0
  391. package/dist/ui/Alert/alert-context.js +6 -0
  392. package/dist/ui/Alert/alert-context.js.map +1 -0
  393. package/dist/ui/Alert/alert-persist.d.ts +4 -0
  394. package/dist/ui/Alert/alert-persist.d.ts.map +1 -0
  395. package/dist/ui/Alert/alert-persist.js +27 -0
  396. package/dist/ui/Alert/alert-persist.js.map +1 -0
  397. package/dist/ui/Alert/alert-provider.d.ts +6 -0
  398. package/dist/ui/Alert/alert-provider.d.ts.map +1 -0
  399. package/dist/ui/Alert/alert-provider.js +57 -0
  400. package/dist/ui/Alert/alert-provider.js.map +1 -0
  401. package/dist/ui/Alert/alert-variants.d.ts +4 -0
  402. package/dist/ui/Alert/alert-variants.d.ts.map +1 -0
  403. package/dist/ui/Alert/alert-variants.js +23 -0
  404. package/dist/ui/Alert/alert-variants.js.map +1 -0
  405. package/dist/ui/Alert/alert.d.ts +24 -0
  406. package/dist/ui/Alert/alert.d.ts.map +1 -0
  407. package/dist/ui/Alert/alert.js +37 -0
  408. package/dist/ui/Alert/alert.js.map +1 -0
  409. package/dist/ui/Alert/alert.module.scss.js +4 -0
  410. package/dist/ui/Alert/alert.module.scss.js.map +1 -0
  411. package/dist/ui/Alert/index.d.ts +4 -0
  412. package/dist/ui/Alert/index.d.ts.map +1 -0
  413. package/dist/ui/Avatar/avatar.d.ts +9 -0
  414. package/dist/ui/Avatar/avatar.d.ts.map +1 -0
  415. package/dist/ui/Avatar/avatar.js +29 -0
  416. package/dist/ui/Avatar/avatar.js.map +1 -0
  417. package/dist/ui/Avatar/avatar.module.scss.js +4 -0
  418. package/dist/ui/Avatar/avatar.module.scss.js.map +1 -0
  419. package/dist/ui/Avatar/index.d.ts +2 -0
  420. package/dist/ui/Avatar/index.d.ts.map +1 -0
  421. package/dist/ui/Button/button-variants.d.ts +8 -0
  422. package/dist/ui/Button/button-variants.d.ts.map +1 -0
  423. package/dist/ui/Button/button-variants.js +45 -0
  424. package/dist/ui/Button/button-variants.js.map +1 -0
  425. package/dist/ui/Button/button.d.ts +9 -0
  426. package/dist/ui/Button/button.d.ts.map +1 -0
  427. package/dist/ui/Button/button.js +65 -0
  428. package/dist/ui/Button/button.js.map +1 -0
  429. package/dist/ui/Button/button.module.scss.js +4 -0
  430. package/dist/ui/Button/button.module.scss.js.map +1 -0
  431. package/dist/ui/Button/index.d.ts +2 -0
  432. package/dist/ui/Button/index.d.ts.map +1 -0
  433. package/dist/ui/Chip/chip-variants.d.ts +6 -0
  434. package/dist/ui/Chip/chip-variants.d.ts.map +1 -0
  435. package/dist/ui/Chip/chip-variants.js +32 -0
  436. package/dist/ui/Chip/chip-variants.js.map +1 -0
  437. package/dist/ui/Chip/chip.d.ts +8 -0
  438. package/dist/ui/Chip/chip.d.ts.map +1 -0
  439. package/dist/ui/Chip/chip.js +13 -0
  440. package/dist/ui/Chip/chip.js.map +1 -0
  441. package/dist/ui/Chip/chip.module.scss.js +4 -0
  442. package/dist/ui/Chip/chip.module.scss.js.map +1 -0
  443. package/dist/ui/Chip/index.d.ts +2 -0
  444. package/dist/ui/Chip/index.d.ts.map +1 -0
  445. package/dist/ui/CodeBlock/code-block-variants.d.ts +5 -0
  446. package/dist/ui/CodeBlock/code-block-variants.d.ts.map +1 -0
  447. package/dist/ui/CodeBlock/code-block-variants.js +29 -0
  448. package/dist/ui/CodeBlock/code-block-variants.js.map +1 -0
  449. package/dist/ui/CodeBlock/code-block.d.ts +20 -0
  450. package/dist/ui/CodeBlock/code-block.d.ts.map +1 -0
  451. package/dist/ui/CodeBlock/code-block.js +70 -0
  452. package/dist/ui/CodeBlock/code-block.js.map +1 -0
  453. package/dist/ui/CodeBlock/code-block.module.scss.js +4 -0
  454. package/dist/ui/CodeBlock/code-block.module.scss.js.map +1 -0
  455. package/dist/ui/CodeBlock/index.d.ts +2 -0
  456. package/dist/ui/CodeBlock/index.d.ts.map +1 -0
  457. package/dist/ui/DevIndicator/dev-indicator.d.ts +5 -0
  458. package/dist/ui/DevIndicator/dev-indicator.d.ts.map +1 -0
  459. package/dist/ui/DevIndicator/dev-indicator.js +20 -0
  460. package/dist/ui/DevIndicator/dev-indicator.js.map +1 -0
  461. package/dist/ui/DevIndicator/dev-indicator.module.scss.js +4 -0
  462. package/dist/ui/DevIndicator/dev-indicator.module.scss.js.map +1 -0
  463. package/dist/ui/DevIndicator/index.d.ts +2 -0
  464. package/dist/ui/DevIndicator/index.d.ts.map +1 -0
  465. package/dist/ui/Dialog/dialog.d.ts +50 -0
  466. package/dist/ui/Dialog/dialog.d.ts.map +1 -0
  467. package/dist/ui/Dialog/dialog.js +133 -0
  468. package/dist/ui/Dialog/dialog.js.map +1 -0
  469. package/dist/ui/Dialog/dialog.module.scss.js +4 -0
  470. package/dist/ui/Dialog/dialog.module.scss.js.map +1 -0
  471. package/dist/ui/Dialog/index.d.ts +2 -0
  472. package/dist/ui/Dialog/index.d.ts.map +1 -0
  473. package/dist/ui/EmptyState/empty-state-variants.d.ts +5 -0
  474. package/dist/ui/EmptyState/empty-state-variants.d.ts.map +1 -0
  475. package/dist/ui/EmptyState/empty-state-variants.js +29 -0
  476. package/dist/ui/EmptyState/empty-state-variants.js.map +1 -0
  477. package/dist/ui/EmptyState/empty-state.d.ts +16 -0
  478. package/dist/ui/EmptyState/empty-state.d.ts.map +1 -0
  479. package/dist/ui/EmptyState/empty-state.js +13 -0
  480. package/dist/ui/EmptyState/empty-state.js.map +1 -0
  481. package/dist/ui/EmptyState/empty-state.module.scss.js +4 -0
  482. package/dist/ui/EmptyState/empty-state.module.scss.js.map +1 -0
  483. package/dist/ui/EmptyState/index.d.ts +2 -0
  484. package/dist/ui/EmptyState/index.d.ts.map +1 -0
  485. package/dist/ui/Icon/icon-variants.d.ts +7 -0
  486. package/dist/ui/Icon/icon-variants.d.ts.map +1 -0
  487. package/dist/ui/Icon/icon-variants.js +43 -0
  488. package/dist/ui/Icon/icon-variants.js.map +1 -0
  489. package/dist/ui/Icon/icon.d.ts +44 -0
  490. package/dist/ui/Icon/icon.d.ts.map +1 -0
  491. package/dist/ui/Icon/icon.js +41 -0
  492. package/dist/ui/Icon/icon.js.map +1 -0
  493. package/dist/ui/Icon/icon.module.scss.js +4 -0
  494. package/dist/ui/Icon/icon.module.scss.js.map +1 -0
  495. package/dist/ui/Icon/index.d.ts +2 -0
  496. package/dist/ui/Icon/index.d.ts.map +1 -0
  497. package/dist/ui/List/index.d.ts +2 -0
  498. package/dist/ui/List/index.d.ts.map +1 -0
  499. package/dist/ui/List/list.d.ts +14 -0
  500. package/dist/ui/List/list.d.ts.map +1 -0
  501. package/dist/ui/List/list.js +20 -0
  502. package/dist/ui/List/list.js.map +1 -0
  503. package/dist/ui/List/list.module.scss.js +4 -0
  504. package/dist/ui/List/list.module.scss.js.map +1 -0
  505. package/dist/ui/Pagination/index.d.ts +2 -0
  506. package/dist/ui/Pagination/index.d.ts.map +1 -0
  507. package/dist/ui/Pagination/pagination.d.ts +5 -0
  508. package/dist/ui/Pagination/pagination.d.ts.map +1 -0
  509. package/dist/ui/Pagination/pagination.js +37 -0
  510. package/dist/ui/Pagination/pagination.js.map +1 -0
  511. package/dist/ui/Pagination/pagination.module.scss.js +4 -0
  512. package/dist/ui/Pagination/pagination.module.scss.js.map +1 -0
  513. package/dist/ui/ProgressBar/index.d.ts +2 -0
  514. package/dist/ui/ProgressBar/index.d.ts.map +1 -0
  515. package/dist/ui/ProgressBar/progress-bar-variants.d.ts +9 -0
  516. package/dist/ui/ProgressBar/progress-bar-variants.d.ts.map +1 -0
  517. package/dist/ui/ProgressBar/progress-bar-variants.js +46 -0
  518. package/dist/ui/ProgressBar/progress-bar-variants.js.map +1 -0
  519. package/dist/ui/ProgressBar/progress-bar.d.ts +12 -0
  520. package/dist/ui/ProgressBar/progress-bar.d.ts.map +1 -0
  521. package/dist/ui/ProgressBar/progress-bar.js +14 -0
  522. package/dist/ui/ProgressBar/progress-bar.js.map +1 -0
  523. package/dist/ui/ProgressBar/progress-bar.module.scss.js +4 -0
  524. package/dist/ui/ProgressBar/progress-bar.module.scss.js.map +1 -0
  525. package/dist/ui/Separator/index.d.ts +2 -0
  526. package/dist/ui/Separator/index.d.ts.map +1 -0
  527. package/dist/ui/Separator/separator.d.ts +8 -0
  528. package/dist/ui/Separator/separator.d.ts.map +1 -0
  529. package/dist/ui/Separator/separator.js +10 -0
  530. package/dist/ui/Separator/separator.js.map +1 -0
  531. package/dist/ui/Separator/separator.module.scss.js +4 -0
  532. package/dist/ui/Separator/separator.module.scss.js.map +1 -0
  533. package/dist/ui/StatCard/index.d.ts +2 -0
  534. package/dist/ui/StatCard/index.d.ts.map +1 -0
  535. package/dist/ui/StatCard/stat-card-variants.d.ts +6 -0
  536. package/dist/ui/StatCard/stat-card-variants.d.ts.map +1 -0
  537. package/dist/ui/StatCard/stat-card-variants.js +35 -0
  538. package/dist/ui/StatCard/stat-card-variants.js.map +1 -0
  539. package/dist/ui/StatCard/stat-card.d.ts +31 -0
  540. package/dist/ui/StatCard/stat-card.d.ts.map +1 -0
  541. package/dist/ui/StatCard/stat-card.js +56 -0
  542. package/dist/ui/StatCard/stat-card.js.map +1 -0
  543. package/dist/ui/StatCard/stat-card.module.scss.js +4 -0
  544. package/dist/ui/StatCard/stat-card.module.scss.js.map +1 -0
  545. package/dist/ui/StepProgress/index.d.ts +2 -0
  546. package/dist/ui/StepProgress/index.d.ts.map +1 -0
  547. package/dist/ui/StepProgress/step-progress-variants.d.ts +7 -0
  548. package/dist/ui/StepProgress/step-progress-variants.d.ts.map +1 -0
  549. package/dist/ui/StepProgress/step-progress-variants.js +39 -0
  550. package/dist/ui/StepProgress/step-progress-variants.js.map +1 -0
  551. package/dist/ui/StepProgress/step-progress.d.ts +20 -0
  552. package/dist/ui/StepProgress/step-progress.d.ts.map +1 -0
  553. package/dist/ui/StepProgress/step-progress.js +40 -0
  554. package/dist/ui/StepProgress/step-progress.js.map +1 -0
  555. package/dist/ui/StepProgress/step-progress.module.scss.js +4 -0
  556. package/dist/ui/StepProgress/step-progress.module.scss.js.map +1 -0
  557. package/dist/ui/Switch/index.d.ts +2 -0
  558. package/dist/ui/Switch/index.d.ts.map +1 -0
  559. package/dist/ui/Switch/switch-variants.d.ts +5 -0
  560. package/dist/ui/Switch/switch-variants.d.ts.map +1 -0
  561. package/dist/ui/Switch/switch-variants.js +29 -0
  562. package/dist/ui/Switch/switch-variants.js.map +1 -0
  563. package/dist/ui/Switch/switch.d.ts +10 -0
  564. package/dist/ui/Switch/switch.d.ts.map +1 -0
  565. package/dist/ui/Switch/switch.js +18 -0
  566. package/dist/ui/Switch/switch.js.map +1 -0
  567. package/dist/ui/Switch/switch.module.scss.js +4 -0
  568. package/dist/ui/Switch/switch.module.scss.js.map +1 -0
  569. package/dist/ui/Table/index.d.ts +2 -0
  570. package/dist/ui/Table/index.d.ts.map +1 -0
  571. package/dist/ui/Table/table-sort-context.d.ts +4 -0
  572. package/dist/ui/Table/table-sort-context.d.ts.map +1 -0
  573. package/dist/ui/Table/table-sort-context.js +6 -0
  574. package/dist/ui/Table/table-sort-context.js.map +1 -0
  575. package/dist/ui/Table/table.d.ts +32 -0
  576. package/dist/ui/Table/table.d.ts.map +1 -0
  577. package/dist/ui/Table/table.js +59 -0
  578. package/dist/ui/Table/table.js.map +1 -0
  579. package/dist/ui/Table/table.module.scss.js +4 -0
  580. package/dist/ui/Table/table.module.scss.js.map +1 -0
  581. package/dist/ui/TableActionCell/index.d.ts +2 -0
  582. package/dist/ui/TableActionCell/index.d.ts.map +1 -0
  583. package/dist/ui/TableActionCell/table-action-cell.d.ts +28 -0
  584. package/dist/ui/TableActionCell/table-action-cell.d.ts.map +1 -0
  585. package/dist/ui/TableActionCell/table-action-cell.js +27 -0
  586. package/dist/ui/TableActionCell/table-action-cell.js.map +1 -0
  587. package/dist/ui/TableActionCell/table-action-cell.module.scss.js +4 -0
  588. package/dist/ui/TableActionCell/table-action-cell.module.scss.js.map +1 -0
  589. package/dist/ui/TableToolbar/index.d.ts +2 -0
  590. package/dist/ui/TableToolbar/index.d.ts.map +1 -0
  591. package/dist/ui/TableToolbar/table-toolbar.d.ts +29 -0
  592. package/dist/ui/TableToolbar/table-toolbar.d.ts.map +1 -0
  593. package/dist/ui/TableToolbar/table-toolbar.js +18 -0
  594. package/dist/ui/TableToolbar/table-toolbar.js.map +1 -0
  595. package/dist/ui/TableToolbar/table-toolbar.module.scss.js +4 -0
  596. package/dist/ui/TableToolbar/table-toolbar.module.scss.js.map +1 -0
  597. package/dist/ui/Toggle/index.d.ts +2 -0
  598. package/dist/ui/Toggle/index.d.ts.map +1 -0
  599. package/dist/ui/Toggle/toggle-group-context.d.ts +9 -0
  600. package/dist/ui/Toggle/toggle-group-context.d.ts.map +1 -0
  601. package/dist/ui/Toggle/toggle-group-context.js +6 -0
  602. package/dist/ui/Toggle/toggle-group-context.js.map +1 -0
  603. package/dist/ui/Toggle/toggle-variants.d.ts +8 -0
  604. package/dist/ui/Toggle/toggle-variants.d.ts.map +1 -0
  605. package/dist/ui/Toggle/toggle-variants.js +45 -0
  606. package/dist/ui/Toggle/toggle-variants.js.map +1 -0
  607. package/dist/ui/Toggle/toggle.d.ts +12 -0
  608. package/dist/ui/Toggle/toggle.d.ts.map +1 -0
  609. package/dist/ui/Toggle/toggle.js +49 -0
  610. package/dist/ui/Toggle/toggle.js.map +1 -0
  611. package/dist/ui/Toggle/toggle.module.scss.js +4 -0
  612. package/dist/ui/Toggle/toggle.module.scss.js.map +1 -0
  613. package/dist/ui/ToggleGroup/index.d.ts +2 -0
  614. package/dist/ui/ToggleGroup/index.d.ts.map +1 -0
  615. package/dist/ui/ToggleGroup/toggle-group.d.ts +24 -0
  616. package/dist/ui/ToggleGroup/toggle-group.d.ts.map +1 -0
  617. package/dist/ui/ToggleGroup/toggle-group.js +80 -0
  618. package/dist/ui/ToggleGroup/toggle-group.js.map +1 -0
  619. package/dist/ui/ToggleGroup/toggle-group.module.scss.js +4 -0
  620. package/dist/ui/ToggleGroup/toggle-group.module.scss.js.map +1 -0
  621. package/dist/ui/Tooltip/index.d.ts +2 -0
  622. package/dist/ui/Tooltip/index.d.ts.map +1 -0
  623. package/dist/ui/Tooltip/tooltip.d.ts +24 -0
  624. package/dist/ui/Tooltip/tooltip.d.ts.map +1 -0
  625. package/dist/ui/Tooltip/tooltip.js +192 -0
  626. package/dist/ui/Tooltip/tooltip.js.map +1 -0
  627. package/dist/ui/Tooltip/tooltip.module.scss.js +4 -0
  628. package/dist/ui/Tooltip/tooltip.module.scss.js.map +1 -0
  629. package/dist/ui/index.d.ts +23 -0
  630. package/dist/ui/index.d.ts.map +1 -0
  631. package/dist/ui.d.ts +6 -0
  632. package/dist/ui.js +25 -0
  633. package/dist/ui.js.map +1 -0
  634. package/dist/user/UserInfo/index.d.ts +2 -0
  635. package/dist/user/UserInfo/index.d.ts.map +1 -0
  636. package/dist/user/UserInfo/user-info.d.ts +6 -0
  637. package/dist/user/UserInfo/user-info.d.ts.map +1 -0
  638. package/dist/user/UserInfo/user-info.js +17 -0
  639. package/dist/user/UserInfo/user-info.js.map +1 -0
  640. package/dist/user/UserInfo/user-info.module.scss.js +4 -0
  641. package/dist/user/UserInfo/user-info.module.scss.js.map +1 -0
  642. package/dist/user/UserMenuContent/index.d.ts +2 -0
  643. package/dist/user/UserMenuContent/index.d.ts.map +1 -0
  644. package/dist/user/UserMenuContent/user-menu-content.d.ts +25 -0
  645. package/dist/user/UserMenuContent/user-menu-content.d.ts.map +1 -0
  646. package/dist/user/UserMenuContent/user-menu-content.js +23 -0
  647. package/dist/user/UserMenuContent/user-menu-content.js.map +1 -0
  648. package/dist/user/index.d.ts +3 -0
  649. package/dist/user/index.d.ts.map +1 -0
  650. package/dist/user-menu-content-D0Ldzigm.d.ts +34 -0
  651. package/dist/user.d.ts +10 -0
  652. package/dist/user.js +3 -0
  653. package/dist/user.js.map +1 -0
  654. package/dist/utils/csrf.d.ts +2 -0
  655. package/dist/utils/csrf.d.ts.map +1 -0
  656. package/dist/utils/csrf.js +13 -0
  657. package/dist/utils/csrf.js.map +1 -0
  658. package/dist/utils/index.d.ts +2 -0
  659. package/dist/utils/index.d.ts.map +1 -0
  660. package/dist/utils.d.ts +3 -0
  661. package/dist/utils.js +2 -0
  662. package/dist/utils.js.map +1 -0
  663. package/package.json +208 -0
  664. package/src/styles/_mixins.scss +105 -0
  665. package/src/styles/_theme-context.scss +12 -0
  666. package/src/styles/mixins.scss +1 -0
  667. package/vite-plugin.d.ts +26 -0
  668. package/vite-plugin.mjs +95 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Andrew Loehr
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,170 @@
1
+ # Kismet Constellation
2
+
3
+ A themeable React component library. ~60 components, light/dark out of the box, and a design-token system where **one file holds every color decision**.
4
+
5
+ No router dependency, no bundled fonts, no registry, no brand baked in — it's meant to be copied into a project and made yours.
6
+
7
+ ```bash
8
+ npm install
9
+ npm run dev # → http://localhost:5173
10
+ ```
11
+
12
+ The dev server opens on **Foundations**, a live showcase of the whole token system: color families, type scale, spacing, radius, elevation, and components in context. Every other component has its own preview page in the sidebar.
13
+
14
+ Append `?theme=light`, `?theme=dark`, or `?theme=system` to pin the mode.
15
+
16
+ ---
17
+
18
+ ## Two ways to use it
19
+
20
+ **Copy the repo** (what it's designed for) — you own the source, and rebranding means editing `_palette.scss` and `_theme.scss` as described below.
21
+
22
+ **Install it** as a dependency:
23
+
24
+ ```bash
25
+ npm install @kismet-ux/constellation
26
+ ```
27
+
28
+ ```tsx
29
+ import '@kismet-ux/constellation/styles';
30
+ import { Button } from '@kismet-ux/constellation/ui';
31
+ ```
32
+
33
+ Installed, the SCSS is already compiled, so the two-file seam isn't available to you — retheme by overriding the custom properties *after* importing the stylesheet. Every token in the next section is fair game:
34
+
35
+ ```css
36
+ @import '@kismet-ux/constellation/styles';
37
+
38
+ :root {
39
+ --primary-main: #7c3aed;
40
+ --primary-emphasis: #6d28d9;
41
+ --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
42
+ }
43
+ :root:not([data-theme='light']) { /* your dark overrides */ }
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Making it yours
49
+
50
+ ### 1. Color
51
+
52
+ Everything routes through two files:
53
+
54
+ | File | Holds |
55
+ |---|---|
56
+ | `src/styles/_palette.scss` | The raw ramps — `$sky-500`, `$slate-900`, … |
57
+ | `src/styles/_theme.scss` | The mapping to CSS custom properties, light and dark |
58
+
59
+ No component names a color. Change the ramps and the entire library follows.
60
+
61
+ Seven theme families ship by default — `primary` (sky), `secondary` (violet), `info`, `success` (emerald), `warning` (amber), `destructive` (rose), `slate` — and every one exposes the same ten roles:
62
+
63
+ ```
64
+ main · dark · emphasis · light · contrast
65
+ focus · focus-visible · hover · outlined-border · selected
66
+ ```
67
+
68
+ That uniformity is what lets any component accept a `theme` prop and behave predictably:
69
+
70
+ ```tsx
71
+ <Button theme={'success'}>Save</Button>
72
+ <Chip theme={'warning'}>Pending</Chip>
73
+ <StatCard theme={'info'} label={'Queries'} value={42} />
74
+ ```
75
+
76
+ Two ramp shapes, chosen on purpose:
77
+
78
+ - **Alpha tints (25–400)** for states that sit over an unknown surface — hover, selected, focus. They compose correctly on light and dark without knowing what's behind them.
79
+ - **Solid shades (500–950)** for text and fills, where the value must be exact.
80
+
81
+ `$info-*` is the per-channel midpoint of `$slate-*` and `$sky-*`, shade for shade. Same hue as primary at lower chroma — which is what makes "info" read as the quiet informational tone rather than a competing accent. If you re-pick the primary, regenerate info the same way.
82
+
83
+ ### 2. Type
84
+
85
+ `--font-sans`, `--font-serif` and `--font-mono` resolve to system stacks. Nothing to download, nothing to license, no flash of unstyled text. To brand it, override one variable:
86
+
87
+ ```scss
88
+ :root { --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; }
89
+ ```
90
+
91
+ `src/styles/_fonts.scss` has a `font-face` mixin and notes for self-hosting.
92
+
93
+ ### 3. Brand
94
+
95
+ `<Logo />` is a geometric mark plus a **text** wordmark — no baked-in SVG paths:
96
+
97
+ ```tsx
98
+ <Logo name={'Acme'} /> {/* rename */}
99
+ <Logo name={'Acme'} mark={<YourMark />} /> {/* or replace the glyph */}
100
+ <Logo name={null} /> {/* mark only */}
101
+ ```
102
+
103
+ Colors come from `--logo-mark` and `--logo-fill`. Inside a collapsed sidebar the wordmark folds away and the mark holds its place.
104
+
105
+ ### 4. Space, radius, elevation
106
+
107
+ - `--size-1` … `--size-12`, where `--size-N` is N ÷ 2 rem. No magic numbers.
108
+ - `--radius-xs|sm|md|lg|xl|2xl|full`.
109
+ - 24 elevation levels. In light mode height is carried by a two-layer key + ambient shadow; in dark mode, where shadow reads as nothing, by a progressively lighter surface. Both ramps are generated in `_theme.scss` — change the formula once, not 24 times.
110
+
111
+ ---
112
+
113
+ ## Routing
114
+
115
+ The library never imports a router. Out of the box `Link` renders a plain `<a>` and navigation is a full page load — correct everywhere, just not SPA-fast.
116
+
117
+ Wrap the app once and every link, breadcrumb, sidebar item and menu action upgrades together:
118
+
119
+ ```tsx
120
+ import { RouterProvider } from '@kismet-ux/constellation/navigation';
121
+ import { Link, useNavigate } from 'react-router-dom';
122
+
123
+ <RouterProvider linkComponent={Link} navigate={useNavigate()}>
124
+ <App />
125
+ </RouterProvider>
126
+ ```
127
+
128
+ Works the same with Next, TanStack Router, or anything else that exposes a link component and an imperative navigate.
129
+
130
+ Components take data, never globals: `AppShell` takes `defaultSidebarOpen`, `NavUser` takes `user` plus `onSettings` / `onLogout`.
131
+
132
+ ---
133
+
134
+ ## Layout of the repo
135
+
136
+ ```
137
+ src/
138
+ styles/ ← _palette.scss + _theme.scss: the theming seam
139
+ ui/ Button, Dialog, Table, Chip, Alert, StatCard, …
140
+ form/ Input, Select, Checkbox, DatePicker, Label
141
+ layout/ AppShell, Sidebar, Container, Row, Column, Grid
142
+ navigation/ Link, RouterProvider, Breadcrumbs, DropdownMenu, Sheet
143
+ typography/ Typography, Heading, TruncatedText
144
+ settings/ appearance switchers
145
+ user/ UserInfo, UserMenuContent
146
+ brand/ Logo
147
+ hooks/ useAppearance, useBreakpoint, useAlerts, useTableSorting, …
148
+ dev/ the preview harness you see at localhost:5173
149
+ ```
150
+
151
+ Each component is a folder: `component-name.tsx` + `component-name.module.scss` + `index.ts`.
152
+
153
+ ---
154
+
155
+ ## Commands
156
+
157
+ ```bash
158
+ npm run dev # dev harness
159
+ npm run build # bundle + type declarations → dist/
160
+ npm run typecheck # tsc --noEmit
161
+ npm run lint # eslint --fix
162
+ npm run stylelint # alphabetical SCSS property order
163
+ npm run format # prettier
164
+ ```
165
+
166
+ ---
167
+
168
+ ## Notes for agents
169
+
170
+ `AGENTS.md` documents the architecture and conventions; `.claude/skills/constellation-*` carry per-category component references. Load the relevant skill before editing in a category.
@@ -0,0 +1,2 @@
1
+ export * from './logo';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/brand/Logo/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ export interface LogoProps {
3
+ className?: string;
4
+ /** Overall mark height in px. Defaults to `--size-4` (2rem). */
5
+ height?: number;
6
+ /** Wordmark text. Pass `null` to render the mark alone. */
7
+ name?: React.ReactNode;
8
+ /** Replace the default glyph entirely (any SVG/ReactNode). */
9
+ mark?: React.ReactNode;
10
+ /** Accessible label. Defaults to `name` when that is a string. */
11
+ title?: string;
12
+ }
13
+ /**
14
+ * Brand lockup: a constellation mark plus a text wordmark.
15
+ *
16
+ * The wordmark is real text rather than baked-into-SVG paths, so a consuming
17
+ * project rebrands by passing `name` — no vector editing, no font subsetting.
18
+ * The mark is likewise swappable via `mark`. Colors read from `--logo-mark`
19
+ * and `--logo-fill`, so a brand override is two custom properties.
20
+ */
21
+ declare function Logo({ className, height, name, mark, title }: LogoProps): React.JSX.Element;
22
+ export { Logo };
23
+ //# sourceMappingURL=logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../../src/brand/Logo/logo.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,iBAAS,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,qBAkBlF;AAsBD,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import cn from 'clsx';
3
+ import s from './logo.module.scss.js';
4
+
5
+ /**
6
+ * Brand lockup: a constellation mark plus a text wordmark.
7
+ *
8
+ * The wordmark is real text rather than baked-into-SVG paths, so a consuming
9
+ * project rebrands by passing `name` — no vector editing, no font subsetting.
10
+ * The mark is likewise swappable via `mark`. Colors read from `--logo-mark`
11
+ * and `--logo-fill`, so a brand override is two custom properties.
12
+ */
13
+ function Logo({ className, height, name = 'Constellation', mark, title }) {
14
+ const style = height ? { '--logo-height': `${height}px` } : undefined;
15
+ const label = title ?? (typeof name === 'string' ? name : undefined);
16
+ return (jsxs("span", { "data-slot": 'logo', className: cn(s.logo, className), style: style, role: 'img', "aria-label": label, children: [jsx("span", { className: s.mark, "aria-hidden": true, children: mark ?? jsx(DefaultMark, {}) }), name ? jsx("span", { className: s.wordmark, children: name }) : null] }));
17
+ }
18
+ /**
19
+ * A five-star asterism: links drawn first, stars on top, the lead star largest.
20
+ * Deliberately sparse so it still reads as a constellation at 16px in a
21
+ * collapsed sidebar, where a busier mark turns to mush.
22
+ */
23
+ function DefaultMark() {
24
+ return (jsxs("svg", { viewBox: '0 0 32 32', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', children: [jsx("path", { d: 'M6 13 15.5 16.5 24 7', className: s['mark-link'] }), jsx("path", { d: 'M15.5 16.5 12 26', className: s['mark-link'] }), jsx("path", { d: 'M15.5 16.5 26 22', className: s['mark-link'] }), jsx("circle", { cx: '24', cy: '7', r: '4', className: s['mark-star-lead'] }), jsx("circle", { cx: '15.5', cy: '16.5', r: '2.5', className: s['mark-star'] }), jsx("circle", { cx: '6', cy: '13', r: '1.75', className: s['mark-star-dim'] }), jsx("circle", { cx: '12', cy: '26', r: '1.75', className: s['mark-star-dim'] }), jsx("circle", { cx: '26', cy: '22', r: '1.75', className: s['mark-star-dim'] })] }));
25
+ }
26
+
27
+ export { Logo };
28
+ //# sourceMappingURL=logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.js","sources":["../../../src/brand/Logo/logo.tsx"],"sourcesContent":["import cn from 'clsx';\nimport * as React from 'react';\nimport s from './logo.module.scss';\n\nexport interface LogoProps {\n className?: string;\n /** Overall mark height in px. Defaults to `--size-4` (2rem). */\n height?: number;\n /** Wordmark text. Pass `null` to render the mark alone. */\n name?: React.ReactNode;\n /** Replace the default glyph entirely (any SVG/ReactNode). */\n mark?: React.ReactNode;\n /** Accessible label. Defaults to `name` when that is a string. */\n title?: string;\n}\n\n/**\n * Brand lockup: a constellation mark plus a text wordmark.\n *\n * The wordmark is real text rather than baked-into-SVG paths, so a consuming\n * project rebrands by passing `name` — no vector editing, no font subsetting.\n * The mark is likewise swappable via `mark`. Colors read from `--logo-mark`\n * and `--logo-fill`, so a brand override is two custom properties.\n */\nfunction Logo({ className, height, name = 'Constellation', mark, title }: LogoProps) {\n const style = height ? ({ '--logo-height': `${height}px` } as React.CSSProperties) : undefined;\n const label = title ?? (typeof name === 'string' ? name : undefined);\n\n return (\n <span\n data-slot={'logo'}\n className={cn(s.logo, className)}\n style={style}\n role={'img'}\n aria-label={label}\n >\n <span className={s.mark} aria-hidden={true}>\n {mark ?? <DefaultMark />}\n </span>\n {name ? <span className={s.wordmark}>{name}</span> : null}\n </span>\n );\n}\n\n/**\n * A five-star asterism: links drawn first, stars on top, the lead star largest.\n * Deliberately sparse so it still reads as a constellation at 16px in a\n * collapsed sidebar, where a busier mark turns to mush.\n */\nfunction DefaultMark() {\n return (\n <svg viewBox={'0 0 32 32'} fill={'none'} xmlns={'http://www.w3.org/2000/svg'}>\n <path d={'M6 13 15.5 16.5 24 7'} className={s['mark-link']} />\n <path d={'M15.5 16.5 12 26'} className={s['mark-link']} />\n <path d={'M15.5 16.5 26 22'} className={s['mark-link']} />\n <circle cx={'24'} cy={'7'} r={'4'} className={s['mark-star-lead']} />\n <circle cx={'15.5'} cy={'16.5'} r={'2.5'} className={s['mark-star']} />\n <circle cx={'6'} cy={'13'} r={'1.75'} className={s['mark-star-dim']} />\n <circle cx={'12'} cy={'26'} r={'1.75'} className={s['mark-star-dim']} />\n <circle cx={'26'} cy={'22'} r={'1.75'} className={s['mark-star-dim']} />\n </svg>\n );\n}\n\nexport { Logo };\n"],"names":["_jsxs","_jsx"],"mappings":";;;;AAgBA;;;;;;;AAOG;AACH,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAG,eAAe,EAAE,IAAI,EAAE,KAAK,EAAa,EAAA;AACjF,IAAA,MAAM,KAAK,GAAG,MAAM,GAAI,EAAE,eAAe,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,EAA0B,GAAG,SAAS;AAC9F,IAAA,MAAM,KAAK,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;AAEpE,IAAA,QACEA,IAAA,CAAA,MAAA,EAAA,EAAA,WAAA,EACa,MAAM,EACjB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAChC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,EAAA,YAAA,EACC,KAAK,EAAA,QAAA,EAAA,CAEjBC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAA,aAAA,EAAe,IAAI,EAAA,QAAA,EACvC,IAAI,IAAIA,GAAA,CAAC,WAAW,EAAA,EAAA,CAAG,EAAA,CACnB,EACN,IAAI,GAAGA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,GAAG,IAAI,CAAA,EAAA,CACpD;AAEX;AAEA;;;;AAIG;AACH,SAAS,WAAW,GAAA;AAClB,IAAA,QACED,IAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B,EAAA,QAAA,EAAA,CAC1EC,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,GAAI,EAC9DA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAA,CAAI,EAC1DA,cAAM,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAA,CAAI,EAC1DA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAA,CAAI,EACrEA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAA,CAAI,EACvEA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,GAAI,EACvEA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,EAAA,CAAI,EACxEA,gBAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,EAAA,CAAI,CAAA,EAAA,CACpE;AAEV;;"}
@@ -0,0 +1,4 @@
1
+ var s = {"logo":"logo-module_logo__JNon2","mark":"logo-module_mark__hFkmQ","mark-link":"logo-module_mark-link__uFFv5","mark-star":"logo-module_mark-star__hbpwu","mark-star-dim":"logo-module_mark-star-dim__8wZWz","mark-star-lead":"logo-module_mark-star-lead__AAWv4","wordmark":"logo-module_wordmark__GnfAC"};
2
+
3
+ export { s as default };
4
+ //# sourceMappingURL=logo.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,2 @@
1
+ export * from './Logo';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/brand/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+
3
+ interface LogoProps {
4
+ className?: string;
5
+ /** Overall mark height in px. Defaults to `--size-4` (2rem). */
6
+ height?: number;
7
+ /** Wordmark text. Pass `null` to render the mark alone. */
8
+ name?: React.ReactNode;
9
+ /** Replace the default glyph entirely (any SVG/ReactNode). */
10
+ mark?: React.ReactNode;
11
+ /** Accessible label. Defaults to `name` when that is a string. */
12
+ title?: string;
13
+ }
14
+ /**
15
+ * Brand lockup: a constellation mark plus a text wordmark.
16
+ *
17
+ * The wordmark is real text rather than baked-into-SVG paths, so a consuming
18
+ * project rebrands by passing `name` — no vector editing, no font subsetting.
19
+ * The mark is likewise swappable via `mark`. Colors read from `--logo-mark`
20
+ * and `--logo-fill`, so a brand override is two custom properties.
21
+ */
22
+ declare function Logo({ className, height, name, mark, title }: LogoProps): React.JSX.Element;
23
+
24
+ export { Logo };
25
+ export type { LogoProps };
package/dist/brand.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Logo } from './brand/Logo/logo.js';
2
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { type FormTheme } from '@constellation/types';
2
+ import * as React from 'react';
3
+ type CheckedState = boolean | 'indeterminate';
4
+ export interface CheckboxProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'value' | 'defaultValue' | 'defaultChecked'> {
5
+ theme?: FormTheme;
6
+ destructive?: boolean;
7
+ checked?: CheckedState;
8
+ defaultChecked?: CheckedState;
9
+ onCheckedChange?: (checked: CheckedState) => void;
10
+ value?: string;
11
+ name?: string;
12
+ required?: boolean;
13
+ /** Optional inline label rendered to the right of the checkbox and associated via htmlFor. */
14
+ label?: React.ReactNode;
15
+ /** Optional helper / validation text rendered beneath the checkbox + label row. */
16
+ helperText?: React.ReactNode;
17
+ }
18
+ declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
19
+ export { Checkbox };
20
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/form/Checkbox/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAE9C,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,gBAAgB,CACzD;IACC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,QAAA,MAAM,QAAQ,yFAmIb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { Label } from '../Label/label.js';
3
+ import { Typography } from '../../typography/Typography/typography.js';
4
+ import cn from 'clsx';
5
+ import { CheckIcon } from 'lucide-react';
6
+ import * as React from 'react';
7
+ import s from './checkbox.module.scss.js';
8
+ import { Column } from '../../layout/Column/column.js';
9
+ import { Row } from '../../layout/Row/row.js';
10
+
11
+ const Checkbox = React.forwardRef(({ className, id, theme = 'primary', destructive = false, checked: controlledChecked, defaultChecked = false, onCheckedChange, disabled, value = 'on', name, required, label, helperText, ['aria-invalid']: ariaInvalid, ['aria-describedby']: ariaDescribedBy, onClick, onKeyDown, ...props }, ref) => {
12
+ const isControlled = controlledChecked !== undefined;
13
+ const [internalChecked, setInternalChecked] = React.useState(defaultChecked);
14
+ const checked = isControlled ? controlledChecked : internalChecked;
15
+ const generatedId = React.useId();
16
+ const checkboxId = id ?? generatedId;
17
+ const helperId = helperText ? `${checkboxId}-helper` : undefined;
18
+ const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(' ') || undefined;
19
+ const dataState = checked === 'indeterminate' ? 'indeterminate' : checked ? 'checked' : 'unchecked';
20
+ const toggle = () => {
21
+ if (disabled)
22
+ return;
23
+ const next = checked === 'indeterminate' ? true : !checked;
24
+ if (!isControlled) {
25
+ setInternalChecked(next);
26
+ }
27
+ onCheckedChange?.(next);
28
+ };
29
+ const handleClick = (e) => {
30
+ onClick?.(e);
31
+ if (e.defaultPrevented)
32
+ return;
33
+ toggle();
34
+ };
35
+ const handleKeyDown = (e) => {
36
+ onKeyDown?.(e);
37
+ if (e.defaultPrevented)
38
+ return;
39
+ if (e.key === ' ') {
40
+ e.preventDefault();
41
+ toggle();
42
+ }
43
+ };
44
+ const button = (jsx("button", { ref: ref, id: checkboxId, type: 'button', role: 'checkbox', "aria-checked": checked === 'indeterminate' ? 'mixed' : checked, "aria-invalid": destructive ? 'true' : ariaInvalid, "aria-required": required, "aria-describedby": describedBy, "data-slot": 'checkbox', "data-state": dataState, disabled: disabled, className: cn(s.checkbox, s[`theme-${theme}`], className), ...props, onClick: handleClick, onKeyDown: handleKeyDown, children: checked ? (jsx("span", { "data-slot": 'checkbox-indicator', className: s.indicator, children: jsx(CheckIcon, { className: s.icon }) })) : null }));
45
+ // Match native <input type='checkbox'> form-submission semantics: an
46
+ // unchecked (or indeterminate) box is omitted entirely from the submission,
47
+ // not present-but-empty. Only emit the hidden input when actually checked.
48
+ const hiddenInput = name && checked === true ? jsx("input", { type: 'hidden', name: name, value: value }) : null;
49
+ if (label === undefined && helperText === undefined) {
50
+ return (jsxs(Fragment, { children: [button, hiddenInput] }));
51
+ }
52
+ return (jsxs(Column, { "data-slot": 'checkbox-field', gap: 1, children: [jsxs(Row, { "data-slot": 'checkbox-row', gap: 1, align: 'center', children: [button, label !== undefined ? (jsx(Label, { "data-slot": 'checkbox-label', htmlFor: checkboxId, className: cn(s['label'], disabled && s['label--disabled']), theme: destructive ? 'destructive' : 'inherit', children: label })) : null] }), helperText !== undefined ? (jsx(Typography, { "data-slot": 'checkbox-helper-text', id: helperId, variant: 'caption', theme: destructive ? 'destructive' : 'muted', className: s['helper-text'], children: helperText })) : null, hiddenInput] }));
53
+ });
54
+ Checkbox.displayName = 'Checkbox';
55
+
56
+ export { Checkbox };
57
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sources":["../../../src/form/Checkbox/checkbox.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { Column, Row } from '@constellation/layout';\nimport { type FormTheme } from '@constellation/types';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport { CheckIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './checkbox.module.scss';\n\ntype CheckedState = boolean | 'indeterminate';\n\nexport interface CheckboxProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange' | 'value' | 'defaultValue' | 'defaultChecked'\n> {\n theme?: FormTheme;\n destructive?: boolean;\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n onCheckedChange?: (checked: CheckedState) => void;\n value?: string;\n name?: string;\n required?: boolean;\n /** Optional inline label rendered to the right of the checkbox and associated via htmlFor. */\n label?: React.ReactNode;\n /** Optional helper / validation text rendered beneath the checkbox + label row. */\n helperText?: React.ReactNode;\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n className,\n id,\n theme = 'primary',\n destructive = false,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n value = 'on',\n name,\n required,\n label,\n helperText,\n ['aria-invalid']: ariaInvalid,\n ['aria-describedby']: ariaDescribedBy,\n onClick,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = React.useState<CheckedState>(defaultChecked);\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n const helperId = helperText ? `${checkboxId}-helper` : undefined;\n const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(' ') || undefined;\n\n const dataState =\n checked === 'indeterminate' ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n\n const toggle = () => {\n if (disabled) return;\n const next = checked === 'indeterminate' ? true : !checked;\n if (!isControlled) {\n setInternalChecked(next);\n }\n onCheckedChange?.(next);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n toggle();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n if (e.key === ' ') {\n e.preventDefault();\n toggle();\n }\n };\n\n const button = (\n <button\n ref={ref}\n id={checkboxId}\n type={'button'}\n role={'checkbox'}\n aria-checked={checked === 'indeterminate' ? 'mixed' : checked}\n aria-invalid={destructive ? 'true' : ariaInvalid}\n aria-required={required}\n aria-describedby={describedBy}\n data-slot={'checkbox'}\n data-state={dataState}\n disabled={disabled}\n className={cn(s.checkbox, s[`theme-${theme}`], className)}\n {...props}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {checked ? (\n <span data-slot={'checkbox-indicator'} className={s.indicator}>\n <CheckIcon className={s.icon} />\n </span>\n ) : null}\n </button>\n );\n\n // Match native <input type='checkbox'> form-submission semantics: an\n // unchecked (or indeterminate) box is omitted entirely from the submission,\n // not present-but-empty. Only emit the hidden input when actually checked.\n const hiddenInput =\n name && checked === true ? <input type={'hidden'} name={name} value={value} /> : null;\n\n if (label === undefined && helperText === undefined) {\n return (\n <>\n {button}\n {hiddenInput}\n </>\n );\n }\n\n return (\n <Column data-slot={'checkbox-field'} gap={1}>\n <Row data-slot={'checkbox-row'} gap={1} align={'center'}>\n {button}\n {label !== undefined ? (\n <Label\n data-slot={'checkbox-label'}\n htmlFor={checkboxId}\n className={cn(s['label'], disabled && s['label--disabled'])}\n theme={destructive ? 'destructive' : 'inherit'}\n >\n {label}\n </Label>\n ) : null}\n </Row>\n {helperText !== undefined ? (\n <Typography\n data-slot={'checkbox-helper-text'}\n id={helperId}\n variant={'caption'}\n theme={destructive ? 'destructive' : 'muted'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n ) : null}\n {hiddenInput}\n </Column>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var s = {"theme-inherit":"checkbox-module_theme-inherit__C6Vro","theme-primary":"checkbox-module_theme-primary__AgTNt","theme-secondary":"checkbox-module_theme-secondary__J05hl","theme-destructive":"checkbox-module_theme-destructive__p72dr","theme-warning":"checkbox-module_theme-warning__xi20w","theme-success":"checkbox-module_theme-success__l3EdW","theme-info":"checkbox-module_theme-info__r4j29","theme-slate":"checkbox-module_theme-slate__-oru5","checkbox":"checkbox-module_checkbox__AK-jG","indicator":"checkbox-module_indicator__nSbkR","icon":"checkbox-module_icon__oy8pi","label":"checkbox-module_label__Vxoru","label--disabled":"checkbox-module_label--disabled__iH6YY","helper-text":"checkbox-module_helper-text__kVhvq"};
2
+
3
+ export { s as default };
4
+ //# sourceMappingURL=checkbox.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,2 @@
1
+ export * from './checkbox';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/Checkbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type DatePickerProps } from '@constellation/types';
2
+ import * as React from 'react';
3
+ declare function DatePicker({ value: valueProp, defaultValue, onChange, label, helperText, error, disabled, sizeVariant, placeholder, min, max, required, id, className, name, }: DatePickerProps): React.JSX.Element;
4
+ export { DatePicker };
5
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/form/DatePicker/date-picker.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,iBAAS,UAAU,CAAC,EAClB,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAa,EACb,QAAgB,EAChB,WAAW,EACX,WAAW,EACX,GAAG,EACH,GAAG,EACH,QAAgB,EAChB,EAAE,EACF,SAAS,EACT,IAAI,GACL,EAAE,eAAe,qBAmcjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}