@adminiumjs/ui 0.1.0-rc.1

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 (598) hide show
  1. package/LICENSE +661 -0
  2. package/dist/components/alert/Alert.d.ts +27 -0
  3. package/dist/components/alert/Alert.d.ts.map +1 -0
  4. package/dist/components/alert/Alert.js +25 -0
  5. package/dist/components/alert/Alert.js.map +1 -0
  6. package/dist/components/alert/index.d.ts +3 -0
  7. package/dist/components/alert/index.d.ts.map +1 -0
  8. package/dist/components/alert/index.js +2 -0
  9. package/dist/components/alert/index.js.map +1 -0
  10. package/dist/components/auth-layout/AuthLayout.d.ts +54 -0
  11. package/dist/components/auth-layout/AuthLayout.d.ts.map +1 -0
  12. package/dist/components/auth-layout/AuthLayout.js +30 -0
  13. package/dist/components/auth-layout/AuthLayout.js.map +1 -0
  14. package/dist/components/auth-layout/index.d.ts +3 -0
  15. package/dist/components/auth-layout/index.d.ts.map +1 -0
  16. package/dist/components/auth-layout/index.js +2 -0
  17. package/dist/components/auth-layout/index.js.map +1 -0
  18. package/dist/components/auth-screens/ForgotPasswordForm.d.ts +80 -0
  19. package/dist/components/auth-screens/ForgotPasswordForm.d.ts.map +1 -0
  20. package/dist/components/auth-screens/ForgotPasswordForm.js +50 -0
  21. package/dist/components/auth-screens/ForgotPasswordForm.js.map +1 -0
  22. package/dist/components/auth-screens/ResetPasswordForm.d.ts +55 -0
  23. package/dist/components/auth-screens/ResetPasswordForm.d.ts.map +1 -0
  24. package/dist/components/auth-screens/ResetPasswordForm.js +45 -0
  25. package/dist/components/auth-screens/ResetPasswordForm.js.map +1 -0
  26. package/dist/components/auth-screens/SignInForm.d.ts +67 -0
  27. package/dist/components/auth-screens/SignInForm.d.ts.map +1 -0
  28. package/dist/components/auth-screens/SignInForm.js +47 -0
  29. package/dist/components/auth-screens/SignInForm.js.map +1 -0
  30. package/dist/components/auth-screens/TwoFactorForm.d.ts +54 -0
  31. package/dist/components/auth-screens/TwoFactorForm.d.ts.map +1 -0
  32. package/dist/components/auth-screens/TwoFactorForm.js +47 -0
  33. package/dist/components/auth-screens/TwoFactorForm.js.map +1 -0
  34. package/dist/components/auth-screens/index.d.ts +9 -0
  35. package/dist/components/auth-screens/index.d.ts.map +1 -0
  36. package/dist/components/auth-screens/index.js +5 -0
  37. package/dist/components/auth-screens/index.js.map +1 -0
  38. package/dist/components/autosave-indicator/AutosaveIndicator.d.ts +28 -0
  39. package/dist/components/autosave-indicator/AutosaveIndicator.d.ts.map +1 -0
  40. package/dist/components/autosave-indicator/AutosaveIndicator.js +14 -0
  41. package/dist/components/autosave-indicator/AutosaveIndicator.js.map +1 -0
  42. package/dist/components/autosave-indicator/index.d.ts +3 -0
  43. package/dist/components/autosave-indicator/index.d.ts.map +1 -0
  44. package/dist/components/autosave-indicator/index.js +2 -0
  45. package/dist/components/autosave-indicator/index.js.map +1 -0
  46. package/dist/components/avatar/Avatar.d.ts +48 -0
  47. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  48. package/dist/components/avatar/Avatar.js +104 -0
  49. package/dist/components/avatar/Avatar.js.map +1 -0
  50. package/dist/components/avatar/index.d.ts +3 -0
  51. package/dist/components/avatar/index.d.ts.map +1 -0
  52. package/dist/components/avatar/index.js +2 -0
  53. package/dist/components/avatar/index.js.map +1 -0
  54. package/dist/components/avatar-stack/AvatarStack.d.ts +21 -0
  55. package/dist/components/avatar-stack/AvatarStack.d.ts.map +1 -0
  56. package/dist/components/avatar-stack/AvatarStack.js +16 -0
  57. package/dist/components/avatar-stack/AvatarStack.js.map +1 -0
  58. package/dist/components/avatar-stack/index.d.ts +3 -0
  59. package/dist/components/avatar-stack/index.d.ts.map +1 -0
  60. package/dist/components/avatar-stack/index.js +2 -0
  61. package/dist/components/avatar-stack/index.js.map +1 -0
  62. package/dist/components/badge/Badge.d.ts +22 -0
  63. package/dist/components/badge/Badge.d.ts.map +1 -0
  64. package/dist/components/badge/Badge.js +21 -0
  65. package/dist/components/badge/Badge.js.map +1 -0
  66. package/dist/components/badge/index.d.ts +3 -0
  67. package/dist/components/badge/index.d.ts.map +1 -0
  68. package/dist/components/badge/index.js +6 -0
  69. package/dist/components/badge/index.js.map +1 -0
  70. package/dist/components/banner/Banner.d.ts +21 -0
  71. package/dist/components/banner/Banner.d.ts.map +1 -0
  72. package/dist/components/banner/Banner.js +24 -0
  73. package/dist/components/banner/Banner.js.map +1 -0
  74. package/dist/components/banner/index.d.ts +3 -0
  75. package/dist/components/banner/index.d.ts.map +1 -0
  76. package/dist/components/banner/index.js +2 -0
  77. package/dist/components/banner/index.js.map +1 -0
  78. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +22 -0
  79. package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  80. package/dist/components/breadcrumbs/Breadcrumbs.js +24 -0
  81. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  82. package/dist/components/breadcrumbs/index.d.ts +3 -0
  83. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  84. package/dist/components/breadcrumbs/index.js +2 -0
  85. package/dist/components/breadcrumbs/index.js.map +1 -0
  86. package/dist/components/bulk-action-bar/BulkActionBar.d.ts +35 -0
  87. package/dist/components/bulk-action-bar/BulkActionBar.d.ts.map +1 -0
  88. package/dist/components/bulk-action-bar/BulkActionBar.js +17 -0
  89. package/dist/components/bulk-action-bar/BulkActionBar.js.map +1 -0
  90. package/dist/components/bulk-action-bar/index.d.ts +3 -0
  91. package/dist/components/bulk-action-bar/index.d.ts.map +1 -0
  92. package/dist/components/bulk-action-bar/index.js +2 -0
  93. package/dist/components/bulk-action-bar/index.js.map +1 -0
  94. package/dist/components/button/Button.d.ts +27 -0
  95. package/dist/components/button/Button.d.ts.map +1 -0
  96. package/dist/components/button/Button.js +43 -0
  97. package/dist/components/button/Button.js.map +1 -0
  98. package/dist/components/button/index.d.ts +3 -0
  99. package/dist/components/button/index.d.ts.map +1 -0
  100. package/dist/components/button/index.js +2 -0
  101. package/dist/components/button/index.js.map +1 -0
  102. package/dist/components/card/Card.d.ts +27 -0
  103. package/dist/components/card/Card.d.ts.map +1 -0
  104. package/dist/components/card/Card.js +41 -0
  105. package/dist/components/card/Card.js.map +1 -0
  106. package/dist/components/card/index.d.ts +3 -0
  107. package/dist/components/card/index.d.ts.map +1 -0
  108. package/dist/components/card/index.js +2 -0
  109. package/dist/components/card/index.js.map +1 -0
  110. package/dist/components/checkbox/Checkbox.d.ts +13 -0
  111. package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
  112. package/dist/components/checkbox/Checkbox.js +16 -0
  113. package/dist/components/checkbox/Checkbox.js.map +1 -0
  114. package/dist/components/checkbox/index.d.ts +3 -0
  115. package/dist/components/checkbox/index.d.ts.map +1 -0
  116. package/dist/components/checkbox/index.js +2 -0
  117. package/dist/components/checkbox/index.js.map +1 -0
  118. package/dist/components/chip-input/ChipInput.d.ts +29 -0
  119. package/dist/components/chip-input/ChipInput.d.ts.map +1 -0
  120. package/dist/components/chip-input/ChipInput.js +96 -0
  121. package/dist/components/chip-input/ChipInput.js.map +1 -0
  122. package/dist/components/chip-input/index.d.ts +3 -0
  123. package/dist/components/chip-input/index.d.ts.map +1 -0
  124. package/dist/components/chip-input/index.js +2 -0
  125. package/dist/components/chip-input/index.js.map +1 -0
  126. package/dist/components/choice-chips/ChoiceChips.d.ts +40 -0
  127. package/dist/components/choice-chips/ChoiceChips.d.ts.map +1 -0
  128. package/dist/components/choice-chips/ChoiceChips.js +76 -0
  129. package/dist/components/choice-chips/ChoiceChips.js.map +1 -0
  130. package/dist/components/choice-chips/index.d.ts +3 -0
  131. package/dist/components/choice-chips/index.d.ts.map +1 -0
  132. package/dist/components/choice-chips/index.js +2 -0
  133. package/dist/components/choice-chips/index.js.map +1 -0
  134. package/dist/components/combobox/Combobox.d.ts +54 -0
  135. package/dist/components/combobox/Combobox.d.ts.map +1 -0
  136. package/dist/components/combobox/Combobox.js +127 -0
  137. package/dist/components/combobox/Combobox.js.map +1 -0
  138. package/dist/components/combobox/index.d.ts +3 -0
  139. package/dist/components/combobox/index.d.ts.map +1 -0
  140. package/dist/components/combobox/index.js +2 -0
  141. package/dist/components/combobox/index.js.map +1 -0
  142. package/dist/components/command-palette/CommandPalette.d.ts +62 -0
  143. package/dist/components/command-palette/CommandPalette.d.ts.map +1 -0
  144. package/dist/components/command-palette/CommandPalette.js +91 -0
  145. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  146. package/dist/components/command-palette/index.d.ts +4 -0
  147. package/dist/components/command-palette/index.d.ts.map +1 -0
  148. package/dist/components/command-palette/index.js +3 -0
  149. package/dist/components/command-palette/index.js.map +1 -0
  150. package/dist/components/command-palette/useCommandK.d.ts +9 -0
  151. package/dist/components/command-palette/useCommandK.d.ts.map +1 -0
  152. package/dist/components/command-palette/useCommandK.js +24 -0
  153. package/dist/components/command-palette/useCommandK.js.map +1 -0
  154. package/dist/components/confirm-modal/ConfirmModal.d.ts +38 -0
  155. package/dist/components/confirm-modal/ConfirmModal.d.ts.map +1 -0
  156. package/dist/components/confirm-modal/ConfirmModal.js +40 -0
  157. package/dist/components/confirm-modal/ConfirmModal.js.map +1 -0
  158. package/dist/components/confirm-modal/index.d.ts +3 -0
  159. package/dist/components/confirm-modal/index.d.ts.map +1 -0
  160. package/dist/components/confirm-modal/index.js +2 -0
  161. package/dist/components/confirm-modal/index.js.map +1 -0
  162. package/dist/components/count-badge/CountBadge.d.ts +13 -0
  163. package/dist/components/count-badge/CountBadge.d.ts.map +1 -0
  164. package/dist/components/count-badge/CountBadge.js +20 -0
  165. package/dist/components/count-badge/CountBadge.js.map +1 -0
  166. package/dist/components/count-badge/index.d.ts +3 -0
  167. package/dist/components/count-badge/index.d.ts.map +1 -0
  168. package/dist/components/count-badge/index.js +2 -0
  169. package/dist/components/count-badge/index.js.map +1 -0
  170. package/dist/components/date-input/DateInput.d.ts +53 -0
  171. package/dist/components/date-input/DateInput.d.ts.map +1 -0
  172. package/dist/components/date-input/DateInput.js +38 -0
  173. package/dist/components/date-input/DateInput.js.map +1 -0
  174. package/dist/components/date-input/index.d.ts +3 -0
  175. package/dist/components/date-input/index.d.ts.map +1 -0
  176. package/dist/components/date-input/index.js +2 -0
  177. package/dist/components/date-input/index.js.map +1 -0
  178. package/dist/components/delta-pill/DeltaPill.d.ts +25 -0
  179. package/dist/components/delta-pill/DeltaPill.d.ts.map +1 -0
  180. package/dist/components/delta-pill/DeltaPill.js +36 -0
  181. package/dist/components/delta-pill/DeltaPill.js.map +1 -0
  182. package/dist/components/delta-pill/index.d.ts +3 -0
  183. package/dist/components/delta-pill/index.d.ts.map +1 -0
  184. package/dist/components/delta-pill/index.js +2 -0
  185. package/dist/components/delta-pill/index.js.map +1 -0
  186. package/dist/components/divider/Divider.d.ts +15 -0
  187. package/dist/components/divider/Divider.d.ts.map +1 -0
  188. package/dist/components/divider/Divider.js +23 -0
  189. package/dist/components/divider/Divider.js.map +1 -0
  190. package/dist/components/divider/index.d.ts +3 -0
  191. package/dist/components/divider/index.d.ts.map +1 -0
  192. package/dist/components/divider/index.js +2 -0
  193. package/dist/components/divider/index.js.map +1 -0
  194. package/dist/components/drawer/Drawer.d.ts +44 -0
  195. package/dist/components/drawer/Drawer.d.ts.map +1 -0
  196. package/dist/components/drawer/Drawer.js +45 -0
  197. package/dist/components/drawer/Drawer.js.map +1 -0
  198. package/dist/components/drawer/index.d.ts +3 -0
  199. package/dist/components/drawer/index.d.ts.map +1 -0
  200. package/dist/components/drawer/index.js +2 -0
  201. package/dist/components/drawer/index.js.map +1 -0
  202. package/dist/components/dropdown-menu/DropdownMenu.d.ts +35 -0
  203. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -0
  204. package/dist/components/dropdown-menu/DropdownMenu.js +38 -0
  205. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -0
  206. package/dist/components/dropdown-menu/index.d.ts +3 -0
  207. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  208. package/dist/components/dropdown-menu/index.js +2 -0
  209. package/dist/components/dropdown-menu/index.js.map +1 -0
  210. package/dist/components/empty-state/EmptyState.d.ts +26 -0
  211. package/dist/components/empty-state/EmptyState.d.ts.map +1 -0
  212. package/dist/components/empty-state/EmptyState.js +24 -0
  213. package/dist/components/empty-state/EmptyState.js.map +1 -0
  214. package/dist/components/empty-state/index.d.ts +3 -0
  215. package/dist/components/empty-state/index.d.ts.map +1 -0
  216. package/dist/components/empty-state/index.js +2 -0
  217. package/dist/components/empty-state/index.js.map +1 -0
  218. package/dist/components/filter-chip/FilterChip.d.ts +26 -0
  219. package/dist/components/filter-chip/FilterChip.d.ts.map +1 -0
  220. package/dist/components/filter-chip/FilterChip.js +17 -0
  221. package/dist/components/filter-chip/FilterChip.js.map +1 -0
  222. package/dist/components/filter-chip/index.d.ts +3 -0
  223. package/dist/components/filter-chip/index.d.ts.map +1 -0
  224. package/dist/components/filter-chip/index.js +2 -0
  225. package/dist/components/filter-chip/index.js.map +1 -0
  226. package/dist/components/form-field/FormField.d.ts +50 -0
  227. package/dist/components/form-field/FormField.d.ts.map +1 -0
  228. package/dist/components/form-field/FormField.js +31 -0
  229. package/dist/components/form-field/FormField.js.map +1 -0
  230. package/dist/components/form-field/index.d.ts +3 -0
  231. package/dist/components/form-field/index.d.ts.map +1 -0
  232. package/dist/components/form-field/index.js +2 -0
  233. package/dist/components/form-field/index.js.map +1 -0
  234. package/dist/components/icon/Icon.d.ts +36 -0
  235. package/dist/components/icon/Icon.d.ts.map +1 -0
  236. package/dist/components/icon/Icon.js +24 -0
  237. package/dist/components/icon/Icon.js.map +1 -0
  238. package/dist/components/icon/index.d.ts +3 -0
  239. package/dist/components/icon/index.d.ts.map +1 -0
  240. package/dist/components/icon/index.js +2 -0
  241. package/dist/components/icon/index.js.map +1 -0
  242. package/dist/components/icon-button/IconButton.d.ts +19 -0
  243. package/dist/components/icon-button/IconButton.d.ts.map +1 -0
  244. package/dist/components/icon-button/IconButton.js +31 -0
  245. package/dist/components/icon-button/IconButton.js.map +1 -0
  246. package/dist/components/icon-button/index.d.ts +3 -0
  247. package/dist/components/icon-button/index.d.ts.map +1 -0
  248. package/dist/components/icon-button/index.js +2 -0
  249. package/dist/components/icon-button/index.js.map +1 -0
  250. package/dist/components/icon-tile/IconTile.d.ts +24 -0
  251. package/dist/components/icon-tile/IconTile.d.ts.map +1 -0
  252. package/dist/components/icon-tile/IconTile.js +32 -0
  253. package/dist/components/icon-tile/IconTile.js.map +1 -0
  254. package/dist/components/icon-tile/index.d.ts +3 -0
  255. package/dist/components/icon-tile/index.d.ts.map +1 -0
  256. package/dist/components/icon-tile/index.js +2 -0
  257. package/dist/components/icon-tile/index.js.map +1 -0
  258. package/dist/components/input/Input.d.ts +28 -0
  259. package/dist/components/input/Input.d.ts.map +1 -0
  260. package/dist/components/input/Input.js +34 -0
  261. package/dist/components/input/Input.js.map +1 -0
  262. package/dist/components/input/index.d.ts +3 -0
  263. package/dist/components/input/index.d.ts.map +1 -0
  264. package/dist/components/input/index.js +2 -0
  265. package/dist/components/input/index.js.map +1 -0
  266. package/dist/components/input-group/InputGroup.d.ts +34 -0
  267. package/dist/components/input-group/InputGroup.d.ts.map +1 -0
  268. package/dist/components/input-group/InputGroup.js +23 -0
  269. package/dist/components/input-group/InputGroup.js.map +1 -0
  270. package/dist/components/input-group/index.d.ts +3 -0
  271. package/dist/components/input-group/index.d.ts.map +1 -0
  272. package/dist/components/input-group/index.js +2 -0
  273. package/dist/components/input-group/index.js.map +1 -0
  274. package/dist/components/kbd/Kbd.d.ts +8 -0
  275. package/dist/components/kbd/Kbd.d.ts.map +1 -0
  276. package/dist/components/kbd/Kbd.js +10 -0
  277. package/dist/components/kbd/Kbd.js.map +1 -0
  278. package/dist/components/kbd/index.d.ts +3 -0
  279. package/dist/components/kbd/index.d.ts.map +1 -0
  280. package/dist/components/kbd/index.js +2 -0
  281. package/dist/components/kbd/index.js.map +1 -0
  282. package/dist/components/key-value-list/KeyValueList.d.ts +27 -0
  283. package/dist/components/key-value-list/KeyValueList.d.ts.map +1 -0
  284. package/dist/components/key-value-list/KeyValueList.js +16 -0
  285. package/dist/components/key-value-list/KeyValueList.js.map +1 -0
  286. package/dist/components/key-value-list/index.d.ts +3 -0
  287. package/dist/components/key-value-list/index.d.ts.map +1 -0
  288. package/dist/components/key-value-list/index.js +2 -0
  289. package/dist/components/key-value-list/index.js.map +1 -0
  290. package/dist/components/label/Label.d.ts +14 -0
  291. package/dist/components/label/Label.d.ts.map +1 -0
  292. package/dist/components/label/Label.js +17 -0
  293. package/dist/components/label/Label.js.map +1 -0
  294. package/dist/components/label/index.d.ts +3 -0
  295. package/dist/components/label/index.d.ts.map +1 -0
  296. package/dist/components/label/index.js +2 -0
  297. package/dist/components/label/index.js.map +1 -0
  298. package/dist/components/modal/Modal.d.ts +48 -0
  299. package/dist/components/modal/Modal.d.ts.map +1 -0
  300. package/dist/components/modal/Modal.js +48 -0
  301. package/dist/components/modal/Modal.js.map +1 -0
  302. package/dist/components/modal/index.d.ts +3 -0
  303. package/dist/components/modal/index.d.ts.map +1 -0
  304. package/dist/components/modal/index.js +2 -0
  305. package/dist/components/modal/index.js.map +1 -0
  306. package/dist/components/mono-text/MonoText.d.ts +13 -0
  307. package/dist/components/mono-text/MonoText.d.ts.map +1 -0
  308. package/dist/components/mono-text/MonoText.js +14 -0
  309. package/dist/components/mono-text/MonoText.js.map +1 -0
  310. package/dist/components/mono-text/index.d.ts +3 -0
  311. package/dist/components/mono-text/index.d.ts.map +1 -0
  312. package/dist/components/mono-text/index.js +2 -0
  313. package/dist/components/mono-text/index.js.map +1 -0
  314. package/dist/components/number-stepper/NumberStepper.d.ts +29 -0
  315. package/dist/components/number-stepper/NumberStepper.d.ts.map +1 -0
  316. package/dist/components/number-stepper/NumberStepper.js +50 -0
  317. package/dist/components/number-stepper/NumberStepper.js.map +1 -0
  318. package/dist/components/number-stepper/index.d.ts +3 -0
  319. package/dist/components/number-stepper/index.d.ts.map +1 -0
  320. package/dist/components/number-stepper/index.js +2 -0
  321. package/dist/components/number-stepper/index.js.map +1 -0
  322. package/dist/components/otp-input/OtpInput.d.ts +30 -0
  323. package/dist/components/otp-input/OtpInput.d.ts.map +1 -0
  324. package/dist/components/otp-input/OtpInput.js +35 -0
  325. package/dist/components/otp-input/OtpInput.js.map +1 -0
  326. package/dist/components/otp-input/index.d.ts +3 -0
  327. package/dist/components/otp-input/index.d.ts.map +1 -0
  328. package/dist/components/otp-input/index.js +2 -0
  329. package/dist/components/otp-input/index.js.map +1 -0
  330. package/dist/components/pagination/Pagination.d.ts +26 -0
  331. package/dist/components/pagination/Pagination.d.ts.map +1 -0
  332. package/dist/components/pagination/Pagination.js +34 -0
  333. package/dist/components/pagination/Pagination.js.map +1 -0
  334. package/dist/components/pagination/index.d.ts +3 -0
  335. package/dist/components/pagination/index.d.ts.map +1 -0
  336. package/dist/components/pagination/index.js +2 -0
  337. package/dist/components/pagination/index.js.map +1 -0
  338. package/dist/components/password-strength/PasswordStrength.d.ts +29 -0
  339. package/dist/components/password-strength/PasswordStrength.d.ts.map +1 -0
  340. package/dist/components/password-strength/PasswordStrength.js +43 -0
  341. package/dist/components/password-strength/PasswordStrength.js.map +1 -0
  342. package/dist/components/password-strength/index.d.ts +3 -0
  343. package/dist/components/password-strength/index.d.ts.map +1 -0
  344. package/dist/components/password-strength/index.js +2 -0
  345. package/dist/components/password-strength/index.js.map +1 -0
  346. package/dist/components/permission-matrix/PermissionMatrix.d.ts +90 -0
  347. package/dist/components/permission-matrix/PermissionMatrix.d.ts.map +1 -0
  348. package/dist/components/permission-matrix/PermissionMatrix.js +62 -0
  349. package/dist/components/permission-matrix/PermissionMatrix.js.map +1 -0
  350. package/dist/components/permission-matrix/index.d.ts +3 -0
  351. package/dist/components/permission-matrix/index.d.ts.map +1 -0
  352. package/dist/components/permission-matrix/index.js +2 -0
  353. package/dist/components/permission-matrix/index.js.map +1 -0
  354. package/dist/components/popover/Popover.d.ts +19 -0
  355. package/dist/components/popover/Popover.d.ts.map +1 -0
  356. package/dist/components/popover/Popover.js +21 -0
  357. package/dist/components/popover/Popover.js.map +1 -0
  358. package/dist/components/popover/index.d.ts +3 -0
  359. package/dist/components/popover/index.d.ts.map +1 -0
  360. package/dist/components/popover/index.js +2 -0
  361. package/dist/components/popover/index.js.map +1 -0
  362. package/dist/components/progress-bar/ProgressBar.d.ts +24 -0
  363. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -0
  364. package/dist/components/progress-bar/ProgressBar.js +35 -0
  365. package/dist/components/progress-bar/ProgressBar.js.map +1 -0
  366. package/dist/components/progress-bar/index.d.ts +3 -0
  367. package/dist/components/progress-bar/index.d.ts.map +1 -0
  368. package/dist/components/progress-bar/index.js +2 -0
  369. package/dist/components/progress-bar/index.js.map +1 -0
  370. package/dist/components/radio/Radio.d.ts +25 -0
  371. package/dist/components/radio/Radio.d.ts.map +1 -0
  372. package/dist/components/radio/Radio.js +28 -0
  373. package/dist/components/radio/Radio.js.map +1 -0
  374. package/dist/components/radio/index.d.ts +3 -0
  375. package/dist/components/radio/index.d.ts.map +1 -0
  376. package/dist/components/radio/index.js +2 -0
  377. package/dist/components/radio/index.js.map +1 -0
  378. package/dist/components/radio-card/RadioCard.d.ts +22 -0
  379. package/dist/components/radio-card/RadioCard.d.ts.map +1 -0
  380. package/dist/components/radio-card/RadioCard.js +16 -0
  381. package/dist/components/radio-card/RadioCard.js.map +1 -0
  382. package/dist/components/radio-card/index.d.ts +3 -0
  383. package/dist/components/radio-card/index.d.ts.map +1 -0
  384. package/dist/components/radio-card/index.js +2 -0
  385. package/dist/components/radio-card/index.js.map +1 -0
  386. package/dist/components/runtime-chip/RuntimeChip.d.ts +54 -0
  387. package/dist/components/runtime-chip/RuntimeChip.d.ts.map +1 -0
  388. package/dist/components/runtime-chip/RuntimeChip.js +46 -0
  389. package/dist/components/runtime-chip/RuntimeChip.js.map +1 -0
  390. package/dist/components/runtime-chip/index.d.ts +3 -0
  391. package/dist/components/runtime-chip/index.d.ts.map +1 -0
  392. package/dist/components/runtime-chip/index.js +2 -0
  393. package/dist/components/runtime-chip/index.js.map +1 -0
  394. package/dist/components/search-input/SearchInput.d.ts +27 -0
  395. package/dist/components/search-input/SearchInput.d.ts.map +1 -0
  396. package/dist/components/search-input/SearchInput.js +36 -0
  397. package/dist/components/search-input/SearchInput.js.map +1 -0
  398. package/dist/components/search-input/index.d.ts +3 -0
  399. package/dist/components/search-input/index.d.ts.map +1 -0
  400. package/dist/components/search-input/index.js +2 -0
  401. package/dist/components/search-input/index.js.map +1 -0
  402. package/dist/components/secret-input/SecretInput.d.ts +27 -0
  403. package/dist/components/secret-input/SecretInput.d.ts.map +1 -0
  404. package/dist/components/secret-input/SecretInput.js +49 -0
  405. package/dist/components/secret-input/SecretInput.js.map +1 -0
  406. package/dist/components/secret-input/index.d.ts +3 -0
  407. package/dist/components/secret-input/index.d.ts.map +1 -0
  408. package/dist/components/secret-input/index.js +2 -0
  409. package/dist/components/secret-input/index.js.map +1 -0
  410. package/dist/components/segmented-control/SegmentedControl.d.ts +35 -0
  411. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -0
  412. package/dist/components/segmented-control/SegmentedControl.js +67 -0
  413. package/dist/components/segmented-control/SegmentedControl.js.map +1 -0
  414. package/dist/components/segmented-control/index.d.ts +3 -0
  415. package/dist/components/segmented-control/index.d.ts.map +1 -0
  416. package/dist/components/segmented-control/index.js +2 -0
  417. package/dist/components/segmented-control/index.js.map +1 -0
  418. package/dist/components/select/Select.d.ts +17 -0
  419. package/dist/components/select/Select.d.ts.map +1 -0
  420. package/dist/components/select/Select.js +14 -0
  421. package/dist/components/select/Select.js.map +1 -0
  422. package/dist/components/select/index.d.ts +3 -0
  423. package/dist/components/select/index.d.ts.map +1 -0
  424. package/dist/components/select/index.js +2 -0
  425. package/dist/components/select/index.js.map +1 -0
  426. package/dist/components/skeleton/Skeleton.d.ts +18 -0
  427. package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
  428. package/dist/components/skeleton/Skeleton.js +30 -0
  429. package/dist/components/skeleton/Skeleton.js.map +1 -0
  430. package/dist/components/skeleton/index.d.ts +3 -0
  431. package/dist/components/skeleton/index.d.ts.map +1 -0
  432. package/dist/components/skeleton/index.js +2 -0
  433. package/dist/components/skeleton/index.js.map +1 -0
  434. package/dist/components/slider/Slider.d.ts +17 -0
  435. package/dist/components/slider/Slider.d.ts.map +1 -0
  436. package/dist/components/slider/Slider.js +14 -0
  437. package/dist/components/slider/Slider.js.map +1 -0
  438. package/dist/components/slider/index.d.ts +3 -0
  439. package/dist/components/slider/index.d.ts.map +1 -0
  440. package/dist/components/slider/index.js +2 -0
  441. package/dist/components/slider/index.js.map +1 -0
  442. package/dist/components/snackbar/Snackbar.d.ts +21 -0
  443. package/dist/components/snackbar/Snackbar.d.ts.map +1 -0
  444. package/dist/components/snackbar/Snackbar.js +12 -0
  445. package/dist/components/snackbar/Snackbar.js.map +1 -0
  446. package/dist/components/snackbar/index.d.ts +3 -0
  447. package/dist/components/snackbar/index.d.ts.map +1 -0
  448. package/dist/components/snackbar/index.js +2 -0
  449. package/dist/components/snackbar/index.js.map +1 -0
  450. package/dist/components/spinner/Spinner.d.ts +22 -0
  451. package/dist/components/spinner/Spinner.d.ts.map +1 -0
  452. package/dist/components/spinner/Spinner.js +28 -0
  453. package/dist/components/spinner/Spinner.js.map +1 -0
  454. package/dist/components/spinner/index.d.ts +3 -0
  455. package/dist/components/spinner/index.d.ts.map +1 -0
  456. package/dist/components/spinner/index.js +2 -0
  457. package/dist/components/spinner/index.js.map +1 -0
  458. package/dist/components/status-pill/StatusPill.d.ts +19 -0
  459. package/dist/components/status-pill/StatusPill.d.ts.map +1 -0
  460. package/dist/components/status-pill/StatusPill.js +16 -0
  461. package/dist/components/status-pill/StatusPill.js.map +1 -0
  462. package/dist/components/status-pill/index.d.ts +3 -0
  463. package/dist/components/status-pill/index.d.ts.map +1 -0
  464. package/dist/components/status-pill/index.js +2 -0
  465. package/dist/components/status-pill/index.js.map +1 -0
  466. package/dist/components/stepper/Stepper.d.ts +31 -0
  467. package/dist/components/stepper/Stepper.d.ts.map +1 -0
  468. package/dist/components/stepper/Stepper.js +49 -0
  469. package/dist/components/stepper/Stepper.js.map +1 -0
  470. package/dist/components/stepper/index.d.ts +3 -0
  471. package/dist/components/stepper/index.d.ts.map +1 -0
  472. package/dist/components/stepper/index.js +2 -0
  473. package/dist/components/stepper/index.js.map +1 -0
  474. package/dist/components/success-state/SuccessState.d.ts +27 -0
  475. package/dist/components/success-state/SuccessState.d.ts.map +1 -0
  476. package/dist/components/success-state/SuccessState.js +14 -0
  477. package/dist/components/success-state/SuccessState.js.map +1 -0
  478. package/dist/components/success-state/index.d.ts +3 -0
  479. package/dist/components/success-state/index.d.ts.map +1 -0
  480. package/dist/components/success-state/index.js +2 -0
  481. package/dist/components/success-state/index.js.map +1 -0
  482. package/dist/components/switch/Switch.d.ts +11 -0
  483. package/dist/components/switch/Switch.d.ts.map +1 -0
  484. package/dist/components/switch/Switch.js +13 -0
  485. package/dist/components/switch/Switch.js.map +1 -0
  486. package/dist/components/switch/index.d.ts +3 -0
  487. package/dist/components/switch/index.d.ts.map +1 -0
  488. package/dist/components/switch/index.js +2 -0
  489. package/dist/components/switch/index.js.map +1 -0
  490. package/dist/components/tabs/Tabs.d.ts +32 -0
  491. package/dist/components/tabs/Tabs.d.ts.map +1 -0
  492. package/dist/components/tabs/Tabs.js +43 -0
  493. package/dist/components/tabs/Tabs.js.map +1 -0
  494. package/dist/components/tabs/index.d.ts +3 -0
  495. package/dist/components/tabs/index.d.ts.map +1 -0
  496. package/dist/components/tabs/index.js +2 -0
  497. package/dist/components/tabs/index.js.map +1 -0
  498. package/dist/components/tag/Tag.d.ts +30 -0
  499. package/dist/components/tag/Tag.d.ts.map +1 -0
  500. package/dist/components/tag/Tag.js +35 -0
  501. package/dist/components/tag/Tag.js.map +1 -0
  502. package/dist/components/tag/index.d.ts +3 -0
  503. package/dist/components/tag/index.d.ts.map +1 -0
  504. package/dist/components/tag/index.js +2 -0
  505. package/dist/components/tag/index.js.map +1 -0
  506. package/dist/components/textarea/Textarea.d.ts +19 -0
  507. package/dist/components/textarea/Textarea.d.ts.map +1 -0
  508. package/dist/components/textarea/Textarea.js +11 -0
  509. package/dist/components/textarea/Textarea.js.map +1 -0
  510. package/dist/components/textarea/index.d.ts +3 -0
  511. package/dist/components/textarea/index.d.ts.map +1 -0
  512. package/dist/components/textarea/index.js +2 -0
  513. package/dist/components/textarea/index.js.map +1 -0
  514. package/dist/components/toast/Toast.d.ts +67 -0
  515. package/dist/components/toast/Toast.d.ts.map +1 -0
  516. package/dist/components/toast/Toast.js +63 -0
  517. package/dist/components/toast/Toast.js.map +1 -0
  518. package/dist/components/toast/index.d.ts +5 -0
  519. package/dist/components/toast/index.d.ts.map +1 -0
  520. package/dist/components/toast/index.js +3 -0
  521. package/dist/components/toast/index.js.map +1 -0
  522. package/dist/components/toast/useToastQueue.d.ts +73 -0
  523. package/dist/components/toast/useToastQueue.d.ts.map +1 -0
  524. package/dist/components/toast/useToastQueue.js +191 -0
  525. package/dist/components/toast/useToastQueue.js.map +1 -0
  526. package/dist/components/toggle-matrix/ToggleMatrix.d.ts +58 -0
  527. package/dist/components/toggle-matrix/ToggleMatrix.d.ts.map +1 -0
  528. package/dist/components/toggle-matrix/ToggleMatrix.js +95 -0
  529. package/dist/components/toggle-matrix/ToggleMatrix.js.map +1 -0
  530. package/dist/components/toggle-matrix/index.d.ts +3 -0
  531. package/dist/components/toggle-matrix/index.d.ts.map +1 -0
  532. package/dist/components/toggle-matrix/index.js +2 -0
  533. package/dist/components/toggle-matrix/index.js.map +1 -0
  534. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  535. package/dist/components/tooltip/Tooltip.d.ts.map +1 -0
  536. package/dist/components/tooltip/Tooltip.js +19 -0
  537. package/dist/components/tooltip/Tooltip.js.map +1 -0
  538. package/dist/components/tooltip/index.d.ts +3 -0
  539. package/dist/components/tooltip/index.d.ts.map +1 -0
  540. package/dist/components/tooltip/index.js +2 -0
  541. package/dist/components/tooltip/index.js.map +1 -0
  542. package/dist/components/two-phase-modal/TwoPhaseModal.d.ts +45 -0
  543. package/dist/components/two-phase-modal/TwoPhaseModal.d.ts.map +1 -0
  544. package/dist/components/two-phase-modal/TwoPhaseModal.js +50 -0
  545. package/dist/components/two-phase-modal/TwoPhaseModal.js.map +1 -0
  546. package/dist/components/two-phase-modal/index.d.ts +3 -0
  547. package/dist/components/two-phase-modal/index.d.ts.map +1 -0
  548. package/dist/components/two-phase-modal/index.js +2 -0
  549. package/dist/components/two-phase-modal/index.js.map +1 -0
  550. package/dist/hooks/index.d.ts +3 -0
  551. package/dist/hooks/index.d.ts.map +1 -0
  552. package/dist/hooks/index.js +2 -0
  553. package/dist/hooks/index.js.map +1 -0
  554. package/dist/hooks/useUndoableAction.d.ts +62 -0
  555. package/dist/hooks/useUndoableAction.d.ts.map +1 -0
  556. package/dist/hooks/useUndoableAction.js +85 -0
  557. package/dist/hooks/useUndoableAction.js.map +1 -0
  558. package/dist/index.d.ts +69 -0
  559. package/dist/index.d.ts.map +1 -0
  560. package/dist/index.js +72 -0
  561. package/dist/index.js.map +1 -0
  562. package/dist/lib/cn.d.ts +33 -0
  563. package/dist/lib/cn.d.ts.map +1 -0
  564. package/dist/lib/cn.js +59 -0
  565. package/dist/lib/cn.js.map +1 -0
  566. package/dist/lib/index.d.ts +3 -0
  567. package/dist/lib/index.d.ts.map +1 -0
  568. package/dist/lib/index.js +2 -0
  569. package/dist/lib/index.js.map +1 -0
  570. package/dist/lib/tones.d.ts +40 -0
  571. package/dist/lib/tones.d.ts.map +1 -0
  572. package/dist/lib/tones.js +91 -0
  573. package/dist/lib/tones.js.map +1 -0
  574. package/dist/theme/ThemeProvider.d.ts +15 -0
  575. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  576. package/dist/theme/ThemeProvider.js +186 -0
  577. package/dist/theme/ThemeProvider.js.map +1 -0
  578. package/dist/theme/context.d.ts +21 -0
  579. package/dist/theme/context.d.ts.map +1 -0
  580. package/dist/theme/context.js +7 -0
  581. package/dist/theme/context.js.map +1 -0
  582. package/dist/theme/index.d.ts +9 -0
  583. package/dist/theme/index.d.ts.map +1 -0
  584. package/dist/theme/index.js +5 -0
  585. package/dist/theme/index.js.map +1 -0
  586. package/dist/theme/subscribe.d.ts +12 -0
  587. package/dist/theme/subscribe.d.ts.map +1 -0
  588. package/dist/theme/subscribe.js +14 -0
  589. package/dist/theme/subscribe.js.map +1 -0
  590. package/dist/theme/types.d.ts +32 -0
  591. package/dist/theme/types.d.ts.map +1 -0
  592. package/dist/theme/types.js +23 -0
  593. package/dist/theme/types.js.map +1 -0
  594. package/dist/theme/useTheme.d.ts +14 -0
  595. package/dist/theme/useTheme.d.ts.map +1 -0
  596. package/dist/theme/useTheme.js +27 -0
  597. package/dist/theme/useTheme.js.map +1 -0
  598. package/package.json +48 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * lib/tones.ts — the canonical home of the semantic tone vocabulary and the
3
+ * status→tone registry (workplan/03-component-library.md §3.3, §7.6).
4
+ *
5
+ * The SINGLE source of truth: components/icon-tile, components/badge and
6
+ * components/status-pill re-export from here (their wave-1 local copies are
7
+ * gone), so there is exactly one `Tone` union, one class map per recipe, and
8
+ * one status→tone registry instance. New code must import from this module.
9
+ */
10
+ /** Semantic tone vocabulary shared across the library. */
11
+ export type Tone = 'neutral' | 'accent' | 'pos' | 'warn' | 'danger' | 'info';
12
+ /** Every tone, in canonical display order (stories, matrices). */
13
+ export declare const TONES: readonly Tone[];
14
+ /** Tone → soft background + strong tone foreground utility pairs. */
15
+ export declare const toneSoftClasses: Record<Tone, string>;
16
+ /** Tone → solid background + on-tone foreground utility pairs. */
17
+ export declare const toneSolidClasses: Record<Tone, string>;
18
+ /**
19
+ * Tone → `color-mix` border utilities used by Alert/Banner callouts
20
+ * (tone-soft bg + 30%-mixed tone border, research/design-system.md §3 Tier 3).
21
+ */
22
+ export declare const toneMixBorderClasses: Record<Tone, string>;
23
+ /**
24
+ * Sticky translucent bar recipe (workplan/03-component-library.md §7.5) —
25
+ * used by `Topbar`, `WizardLayout` footer and sticky table headers. Exported
26
+ * from here so the color-mix recipe lives in exactly one place.
27
+ */
28
+ export declare const glassBar = "sticky top-0 z-40 border-b border-border bg-[color-mix(in_srgb,var(--surface)_82%,transparent)] backdrop-blur-[8px]";
29
+ /**
30
+ * Default status→tone registry (workplan/03-component-library.md §7.6).
31
+ * Extended at runtime via `registerStatusTones` (widgets/manifests register
32
+ * domain statuses); tints always derive from the tone — never hardcoded per
33
+ * feature (the "Ticket Queue hardcoded priority tint" defect fix).
34
+ */
35
+ export declare const DEFAULT_STATUS_TONES: Readonly<Record<string, Tone>>;
36
+ /** Idempotent merge of domain statuses into the status→tone registry. */
37
+ export declare function registerStatusTones(map: Record<string, Tone>): void;
38
+ /** Resolve the semantic tone for a status key (case-insensitive). */
39
+ export declare function statusTone(status: string, fallback?: Tone): Tone;
40
+ //# sourceMappingURL=tones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tones.d.ts","sourceRoot":"","sources":["../../src/lib/tones.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0DAA0D;AAC1D,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7E,kEAAkE;AAClE,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAA2D,CAAC;AAE7F,qEAAqE;AACrE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAOhD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAOjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAOrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,wHACkG,CAAC;AAExH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAyB9D,CAAC;AAIH,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAInE;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,IAAgB,GAAG,IAAI,CAE3E"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * lib/tones.ts — the canonical home of the semantic tone vocabulary and the
3
+ * status→tone registry (workplan/03-component-library.md §3.3, §7.6).
4
+ *
5
+ * The SINGLE source of truth: components/icon-tile, components/badge and
6
+ * components/status-pill re-export from here (their wave-1 local copies are
7
+ * gone), so there is exactly one `Tone` union, one class map per recipe, and
8
+ * one status→tone registry instance. New code must import from this module.
9
+ */
10
+ /** Every tone, in canonical display order (stories, matrices). */
11
+ export const TONES = ['neutral', 'accent', 'pos', 'warn', 'danger', 'info'];
12
+ /** Tone → soft background + strong tone foreground utility pairs. */
13
+ export const toneSoftClasses = {
14
+ neutral: 'bg-surface-3 text-fg-muted',
15
+ accent: 'bg-accent-soft text-accent',
16
+ pos: 'bg-pos-soft text-pos',
17
+ warn: 'bg-warn-soft text-warn',
18
+ danger: 'bg-danger-soft text-danger',
19
+ info: 'bg-info-soft text-info',
20
+ };
21
+ /** Tone → solid background + on-tone foreground utility pairs. */
22
+ export const toneSolidClasses = {
23
+ neutral: 'bg-surface-3 text-fg',
24
+ accent: 'bg-accent text-accent-fg',
25
+ pos: 'bg-pos text-white',
26
+ warn: 'bg-warn text-white',
27
+ danger: 'bg-danger text-white',
28
+ info: 'bg-info text-white',
29
+ };
30
+ /**
31
+ * Tone → `color-mix` border utilities used by Alert/Banner callouts
32
+ * (tone-soft bg + 30%-mixed tone border, research/design-system.md §3 Tier 3).
33
+ */
34
+ export const toneMixBorderClasses = {
35
+ neutral: 'border-border',
36
+ accent: 'border-[color-mix(in_srgb,var(--accent)_30%,transparent)]',
37
+ pos: 'border-[color-mix(in_srgb,var(--pos)_30%,transparent)]',
38
+ warn: 'border-[color-mix(in_srgb,var(--warn)_30%,transparent)]',
39
+ danger: 'border-[color-mix(in_srgb,var(--danger)_30%,transparent)]',
40
+ info: 'border-[color-mix(in_srgb,var(--info)_30%,transparent)]',
41
+ };
42
+ /**
43
+ * Sticky translucent bar recipe (workplan/03-component-library.md §7.5) —
44
+ * used by `Topbar`, `WizardLayout` footer and sticky table headers. Exported
45
+ * from here so the color-mix recipe lives in exactly one place.
46
+ */
47
+ export const glassBar = 'sticky top-0 z-40 border-b border-border bg-[color-mix(in_srgb,var(--surface)_82%,transparent)] backdrop-blur-[8px]';
48
+ /**
49
+ * Default status→tone registry (workplan/03-component-library.md §7.6).
50
+ * Extended at runtime via `registerStatusTones` (widgets/manifests register
51
+ * domain statuses); tints always derive from the tone — never hardcoded per
52
+ * feature (the "Ticket Queue hardcoded priority tint" defect fix).
53
+ */
54
+ export const DEFAULT_STATUS_TONES = Object.freeze({
55
+ paid: 'pos',
56
+ active: 'pos',
57
+ connected: 'pos',
58
+ completed: 'pos',
59
+ published: 'pos',
60
+ healthy: 'pos',
61
+ pending: 'warn',
62
+ trialing: 'warn',
63
+ queued: 'warn',
64
+ degraded: 'warn',
65
+ past_due: 'warn',
66
+ failed: 'danger',
67
+ error: 'danger',
68
+ suspended: 'danger',
69
+ overdue: 'danger',
70
+ canceled: 'danger',
71
+ refunded: 'info',
72
+ running: 'info',
73
+ syncing: 'info',
74
+ scheduled: 'info',
75
+ draft: 'neutral',
76
+ archived: 'neutral',
77
+ inactive: 'neutral',
78
+ disabled: 'neutral',
79
+ });
80
+ const registry = new Map(Object.entries(DEFAULT_STATUS_TONES));
81
+ /** Idempotent merge of domain statuses into the status→tone registry. */
82
+ export function registerStatusTones(map) {
83
+ for (const [status, tone] of Object.entries(map)) {
84
+ registry.set(status.toLowerCase(), tone);
85
+ }
86
+ }
87
+ /** Resolve the semantic tone for a status key (case-insensitive). */
88
+ export function statusTone(status, fallback = 'neutral') {
89
+ return registry.get(status.toLowerCase()) ?? fallback;
90
+ }
91
+ //# sourceMappingURL=tones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tones.js","sourceRoot":"","sources":["../../src/lib/tones.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,kEAAkE;AAClE,MAAM,CAAC,MAAM,KAAK,GAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE7F,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,OAAO,EAAE,4BAA4B;IACrC,MAAM,EAAE,4BAA4B;IACpC,GAAG,EAAE,sBAAsB;IAC3B,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,4BAA4B;IACpC,IAAI,EAAE,wBAAwB;CAC/B,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAyB;IACpD,OAAO,EAAE,sBAAsB;IAC/B,MAAM,EAAE,0BAA0B;IAClC,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,sBAAsB;IAC9B,IAAI,EAAE,oBAAoB;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,2DAA2D;IACnE,GAAG,EAAE,wDAAwD;IAC7D,IAAI,EAAE,yDAAyD;IAC/D,MAAM,EAAE,2DAA2D;IACnE,IAAI,EAAE,yDAAyD;CAChE,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GACnB,qHAAqH,CAAC;AAExH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmC,MAAM,CAAC,MAAM,CAAC;IAChF,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,MAAM;IACjB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;CACpB,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAe,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAE7E,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,GAAyB;IAC3D,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,WAAiB,SAAS;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,CAAC;AACxD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type ThemePrefs } from './types.js';
3
+ /** Called after each `setPref` with the axis, the new value, and the next full prefs. */
4
+ export type ThemePrefChangeHandler = <K extends keyof ThemePrefs>(key: K, value: ThemePrefs[K], prefs: ThemePrefs) => void;
5
+ export interface ThemeProviderProps {
6
+ /** Global super-admin defaults from `adminium_settings` (M8; absent pre-M8/pre-auth). */
7
+ globalDefaults?: Partial<ThemePrefs>;
8
+ /** Per-user overrides from `adminium_user_prefs` (M8; absent pre-auth). */
9
+ userPrefs?: Partial<ThemePrefs>;
10
+ /** Persistence hook for `setPref` (M8 wires `PATCH /api/v1/me/prefs` here). */
11
+ onPrefChange?: ThemePrefChangeHandler;
12
+ children: ReactNode;
13
+ }
14
+ export declare function ThemeProvider(props: ThemeProviderProps): ReactNode;
15
+ //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAmBvC,OAAO,EAOL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAIpB,yFAAyF;AACzF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAC9D,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,UAAU,KACd,IAAI,CAAC;AAEV,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,cAAc,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AA2DD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAkHlE"}
@@ -0,0 +1,186 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * ThemeProvider — runtime for the four theming axes (theme/accent/density/locale→dir),
4
+ * per workplan/02-design-system.md §4 and 03-component-library.md §3.6.
5
+ *
6
+ * Responsibilities:
7
+ * 1. Resolve effective prefs per-axis (§4.2): baseline ← localStorage pre-paint
8
+ * cache ← `globalDefaults` (adminium_settings) ← `userPrefs`
9
+ * (adminium_user_prefs) ← in-session `setPref` calls. localStorage is a
10
+ * cache, not a preference source: it only fills axes the server props do
11
+ * not supply (pre-auth surfaces), and server-resolved values always win.
12
+ * The `setPref` layer (`sessionPrefs`) is optimistic and transient: an entry
13
+ * is reconciled away once the server-resolved props catch up to it (same
14
+ * value), and can be dropped explicitly via `clearSessionPref` when the
15
+ * caller resets an axis server-side (M8 reset-to-default) — otherwise a
16
+ * stale optimistic value would keep masking the refetched default until a
17
+ * reload. Entries whose value still differs from the props are treated as
18
+ * in flight and keep winning (§4 behavior 4).
19
+ * 2. Stamp `THEME_ATTRIBUTES` on `document.documentElement` (`data-theme` with
20
+ * the RESOLVED light/dark, `data-accent`, `data-density`, `dir`, `lang`).
21
+ * This is the only place theming attributes are set after pre-hydration.
22
+ * 3. Track `matchMedia('(prefers-color-scheme: dark)')` live while the
23
+ * effective theme pref is `system`; detach when it becomes explicit.
24
+ * 4. Write the cache back to localStorage under `STORAGE_KEYS` on every
25
+ * resolution change. The theme key stores the PREF (so `system` round-trips
26
+ * and the pre-hydration script re-resolves it against the OS at next boot —
27
+ * the script explicitly handles a cached "system"); `dir` stores the
28
+ * derived value the script needs pre-React.
29
+ * 5. Notify `subscribeTheme` listeners after the DOM attributes are committed.
30
+ *
31
+ * Persistence to `adminium_user_prefs` (M8) is the caller's job via
32
+ * `onPrefChange`; the provider itself never talks to the server.
33
+ */
34
+ import { DirectionProvider } from '@radix-ui/react-direction';
35
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
36
+ import { ACCENTS, DENSITIES, STORAGE_KEYS, THEMES, THEME_ATTRIBUTES, } from '@adminium/tokens';
37
+ import { ThemeContext, } from './context.js';
38
+ import { emitTheme } from './subscribe.js';
39
+ import { BASELINE_PREFS, LOCALES, dirForLocale, langForLocale, } from './types.js';
40
+ const DARK_QUERY = '(prefers-color-scheme: dark)';
41
+ /** Read the localStorage pre-paint cache, ignoring unknown/invalid values. */
42
+ function readStorageCache() {
43
+ const cache = {};
44
+ if (typeof window === 'undefined')
45
+ return cache;
46
+ try {
47
+ const theme = window.localStorage.getItem(STORAGE_KEYS.theme);
48
+ if (theme !== null && THEMES.includes(theme)) {
49
+ cache.theme = theme;
50
+ }
51
+ const accent = window.localStorage.getItem(STORAGE_KEYS.accent);
52
+ if (accent !== null && accent in ACCENTS)
53
+ cache.accent = accent;
54
+ const density = window.localStorage.getItem(STORAGE_KEYS.density);
55
+ if (density !== null && DENSITIES.includes(density)) {
56
+ cache.density = density;
57
+ }
58
+ const locale = window.localStorage.getItem(STORAGE_KEYS.locale);
59
+ if (locale !== null && LOCALES.includes(locale)) {
60
+ cache.locale = locale;
61
+ }
62
+ }
63
+ catch {
64
+ // Private mode / storage disabled: baseline render.
65
+ }
66
+ return cache;
67
+ }
68
+ function systemPrefersDark() {
69
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function')
70
+ return false;
71
+ return window.matchMedia(DARK_QUERY).matches;
72
+ }
73
+ /** Value-equality over the four axes (props identity churns when the parent
74
+ * re-derives `userPrefs`, so the reconcile trigger must compare by value). */
75
+ function samePrefs(a, b) {
76
+ return a.theme === b.theme && a.accent === b.accent && a.density === b.density && a.locale === b.locale;
77
+ }
78
+ /**
79
+ * Drop optimistic session entries the freshly-resolved props now confirm (the
80
+ * axis resolves to the same value with or without the override). Those entries
81
+ * have served their purpose; keeping them would mask a *later* authoritative
82
+ * change to the axis. Entries whose value still differs are left untouched —
83
+ * they are in flight and must keep winning. Returns the same reference when
84
+ * nothing changed so the caller can skip a state update.
85
+ */
86
+ function reconcileSessionPrefs(session, propsResolved) {
87
+ const confirmed = Object.keys(session).filter((key) => propsResolved[key] === session[key]);
88
+ if (confirmed.length === 0)
89
+ return session;
90
+ const next = { ...session };
91
+ for (const key of confirmed)
92
+ delete next[key];
93
+ return next;
94
+ }
95
+ export function ThemeProvider(props) {
96
+ const { globalDefaults, userPrefs, onPrefChange, children } = props;
97
+ // Read once per mount — the cache is a boot-time fallback, not a live source.
98
+ const [storageCache] = useState(readStorageCache);
99
+ // Axes changed via setPref during this session (optimistic layer, wins over props).
100
+ const [sessionPrefs, setSessionPrefs] = useState({});
101
+ const [prefersDark, setPrefersDark] = useState(systemPrefersDark);
102
+ // Everything resolvable from the server props (+ pre-paint cache), WITHOUT the
103
+ // optimistic session layer. `sessionPrefs` rides on top of this (§4.2).
104
+ const propsResolved = useMemo(() => ({
105
+ ...BASELINE_PREFS,
106
+ ...storageCache,
107
+ ...globalDefaults,
108
+ ...userPrefs,
109
+ }), [storageCache, globalDefaults, userPrefs]);
110
+ // When a fresh server resolution arrives (by value — the parent re-derives
111
+ // `userPrefs` into a new object each render), reconcile the optimistic layer:
112
+ // adjusting state during render (per the React docs' "storing information from
113
+ // previous renders" pattern) drops confirmed entries before commit, so it
114
+ // never re-stamps <html> or re-emits with an intermediate value.
115
+ const [prevPropsResolved, setPrevPropsResolved] = useState(propsResolved);
116
+ if (!samePrefs(propsResolved, prevPropsResolved)) {
117
+ setPrevPropsResolved(propsResolved);
118
+ setSessionPrefs((prev) => reconcileSessionPrefs(prev, propsResolved));
119
+ }
120
+ const prefs = useMemo(() => ({ ...propsResolved, ...sessionPrefs }), [propsResolved, sessionPrefs]);
121
+ // Live system-theme tracking, attached only while the pref is `system` (§4 behavior 2).
122
+ useEffect(() => {
123
+ if (prefs.theme !== 'system')
124
+ return;
125
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function')
126
+ return;
127
+ const mql = window.matchMedia(DARK_QUERY);
128
+ setPrefersDark(mql.matches);
129
+ const onChange = (event) => {
130
+ setPrefersDark(event.matches);
131
+ };
132
+ mql.addEventListener('change', onChange);
133
+ return () => {
134
+ mql.removeEventListener('change', onChange);
135
+ };
136
+ }, [prefs.theme]);
137
+ const resolved = useMemo(() => ({
138
+ theme: prefs.theme === 'system' ? (prefersDark ? 'dark' : 'light') : prefs.theme,
139
+ accent: prefs.accent,
140
+ density: prefs.density,
141
+ locale: prefs.locale,
142
+ dir: dirForLocale(prefs.locale),
143
+ }), [prefs, prefersDark]);
144
+ // Stamp <html>, write the cache back, then notify listeners (§4 behaviors 1/3/5).
145
+ useLayoutEffect(() => {
146
+ const el = document.documentElement;
147
+ el.setAttribute(THEME_ATTRIBUTES.theme, resolved.theme);
148
+ el.setAttribute(THEME_ATTRIBUTES.accent, resolved.accent);
149
+ el.setAttribute(THEME_ATTRIBUTES.density, resolved.density);
150
+ el.setAttribute(THEME_ATTRIBUTES.dir, resolved.dir);
151
+ el.setAttribute(THEME_ATTRIBUTES.lang, langForLocale(resolved.locale));
152
+ try {
153
+ window.localStorage.setItem(STORAGE_KEYS.theme, prefs.theme);
154
+ window.localStorage.setItem(STORAGE_KEYS.accent, resolved.accent);
155
+ window.localStorage.setItem(STORAGE_KEYS.density, resolved.density);
156
+ window.localStorage.setItem(STORAGE_KEYS.locale, resolved.locale);
157
+ window.localStorage.setItem(STORAGE_KEYS.dir, resolved.dir);
158
+ }
159
+ catch {
160
+ // Private mode / storage disabled: skip the pre-paint cache.
161
+ }
162
+ emitTheme(resolved);
163
+ }, [resolved, prefs.theme]);
164
+ const prefsRef = useRef(prefs);
165
+ prefsRef.current = prefs;
166
+ const onPrefChangeRef = useRef(onPrefChange);
167
+ onPrefChangeRef.current = onPrefChange;
168
+ const setPref = useCallback((key, value) => {
169
+ setSessionPrefs((prev) => ({ ...prev, [key]: value }));
170
+ onPrefChangeRef.current?.(key, value, { ...prefsRef.current, [key]: value });
171
+ }, []);
172
+ // Drop the optimistic entry so resolution falls back to the props (the caller
173
+ // owns the server-side clear). Not a `setPref`, so no `onPrefChange` fires.
174
+ const clearSessionPref = useCallback((key) => {
175
+ setSessionPrefs((prev) => {
176
+ if (!(key in prev))
177
+ return prev;
178
+ const next = { ...prev };
179
+ delete next[key];
180
+ return next;
181
+ });
182
+ }, []);
183
+ const contextValue = useMemo(() => ({ prefs, resolved, setPref, clearSessionPref }), [prefs, resolved, setPref, clearSessionPref]);
184
+ return (_jsx(ThemeContext.Provider, { value: contextValue, children: _jsx(DirectionProvider, { dir: resolved.dir, children: children }) }));
185
+ }
186
+ //# sourceMappingURL=ThemeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ResolvedTheme, ThemePrefs } from './types.js';
2
+ /** `setPref` updates one axis optimistically (02-design-system.md §4 behavior 4). */
3
+ export type SetThemePref = <K extends keyof ThemePrefs>(key: K, value: ThemePrefs[K]) => void;
4
+ /**
5
+ * Drop the optimistic session override for one axis so the resolved value falls
6
+ * back through to the server-resolved props (§4.2). The Preferences page calls
7
+ * this on "Reset to workspace default" — clearing an axis server-side does not
8
+ * change the in-session `setPref` layer, which would otherwise keep masking the
9
+ * refetched default until a reload.
10
+ */
11
+ export type ClearSessionPref = (key: keyof ThemePrefs) => void;
12
+ export interface ThemeContextValue {
13
+ /** Effective preferences after the resolution order (§4.2); `theme` may be `system`. */
14
+ prefs: ThemePrefs;
15
+ /** Resolved values as stamped on `<html>`. */
16
+ resolved: ResolvedTheme;
17
+ setPref: SetThemePref;
18
+ clearSessionPref: ClearSessionPref;
19
+ }
20
+ export declare const ThemeContext: import("react").Context<ThemeContextValue | null>;
21
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/theme/context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAE9F;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,UAAU,KAAK,IAAI,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,KAAK,EAAE,UAAU,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,eAAO,MAAM,YAAY,mDAAgD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * React context shared by ThemeProvider and the useTheme/useThemePrefs hooks.
3
+ * Internal module — consumers use the hooks, never the raw context.
4
+ */
5
+ import { createContext } from 'react';
6
+ export const ThemeContext = createContext(null);
7
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/theme/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAyBtC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { ThemeProvider } from './ThemeProvider.js';
2
+ export type { ThemeProviderProps, ThemePrefChangeHandler } from './ThemeProvider.js';
3
+ export { useTheme, useThemePrefs } from './useTheme.js';
4
+ export { subscribeTheme } from './subscribe.js';
5
+ export type { ThemeListener } from './subscribe.js';
6
+ export type { SetThemePref } from './context.js';
7
+ export { BASELINE_PREFS, LOCALES, dirForLocale, langForLocale } from './types.js';
8
+ export type { Locale, ResolvedTheme, ThemePrefs } from './types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClF,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { ThemeProvider } from './ThemeProvider.js';
2
+ export { useTheme, useThemePrefs } from './useTheme.js';
3
+ export { subscribeTheme } from './subscribe.js';
4
+ export { BASELINE_PREFS, LOCALES, dirForLocale, langForLocale } from './types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Non-React theme subscription (workplan/02-design-system.md §4.1) — for
3
+ * Leaflet tile swaps, chart re-tints, Electron `nativeTheme` mirroring.
4
+ * ThemeProvider emits AFTER the DOM attributes are committed (§4 behavior 5).
5
+ */
6
+ import type { ResolvedTheme } from './types.js';
7
+ export type ThemeListener = (theme: ResolvedTheme) => void;
8
+ /** Subscribe to resolved-theme changes; returns an unsubscribe function. */
9
+ export declare function subscribeTheme(listener: ThemeListener): () => void;
10
+ /** @internal Called by ThemeProvider after stamping `<html>`. Not part of the public API. */
11
+ export declare function emitTheme(theme: ResolvedTheme): void;
12
+ //# sourceMappingURL=subscribe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/theme/subscribe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAI3D,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAKlE;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEpD"}
@@ -0,0 +1,14 @@
1
+ const listeners = new Set();
2
+ /** Subscribe to resolved-theme changes; returns an unsubscribe function. */
3
+ export function subscribeTheme(listener) {
4
+ listeners.add(listener);
5
+ return () => {
6
+ listeners.delete(listener);
7
+ };
8
+ }
9
+ /** @internal Called by ThemeProvider after stamping `<html>`. Not part of the public API. */
10
+ export function emitTheme(theme) {
11
+ for (const listener of [...listeners])
12
+ listener(theme);
13
+ }
14
+ //# sourceMappingURL=subscribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/theme/subscribe.ts"],"names":[],"mappings":"AASA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;AAE3C,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,QAAuB;IACpD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,KAAoB;IAC5C,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;QAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Theming axis types for ThemeProvider (workplan/02-design-system.md §4.1).
3
+ * Axis value unions come from `@adminium/tokens` so the DOM attributes,
4
+ * Storybook toolbar and provider can never drift apart; the locale union and
5
+ * the pref/resolved shapes live here because they are UI-runtime concerns.
6
+ */
7
+ import type { Accent, Density, Dir, ResolvedTheme as ResolvedThemeMode, ThemePref } from '@adminium/tokens';
8
+ /** The 8 BRIEF locales (02-design-system.md §4.1). */
9
+ export declare const LOCALES: readonly ["en_US", "de_DE", "ar_EG", "zh_CN", "zh_TW", "cs_CZ", "da_DK", "fr_FR"];
10
+ export type Locale = (typeof LOCALES)[number];
11
+ /** User-facing preferences: `theme` may be `system`; `dir` is derived, not a pref. */
12
+ export interface ThemePrefs {
13
+ theme: ThemePref;
14
+ accent: Accent;
15
+ density: Density;
16
+ locale: Locale;
17
+ }
18
+ /** Fully resolved theme as stamped on `<html>`: `system` resolved, `dir` derived. */
19
+ export interface ResolvedTheme {
20
+ theme: ResolvedThemeMode;
21
+ accent: Accent;
22
+ density: Density;
23
+ locale: Locale;
24
+ dir: Dir;
25
+ }
26
+ /** Baseline of the resolution order (BRIEF §7 via `@adminium/tokens`). */
27
+ export declare const BASELINE_PREFS: ThemePrefs;
28
+ /** `rtl` iff the locale is `ar_EG` (02-design-system.md §4.1). */
29
+ export declare function dirForLocale(locale: Locale): Dir;
30
+ /** BCP-47 form of a locale for the `lang` attribute (`ar_EG` → `ar-EG`). */
31
+ export declare function langForLocale(locale: Locale): string;
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,MAAM,EACN,OAAO,EACP,GAAG,EACH,aAAa,IAAI,iBAAiB,EAClC,SAAS,EACV,MAAM,kBAAkB,CAAC;AAG1B,sDAAsD;AACtD,eAAO,MAAM,OAAO,mFASV,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,sFAAsF;AACtF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,CAAC;CACV;AAED,0EAA0E;AAC1E,eAAO,MAAM,cAAc,EAAE,UAAiC,CAAC;AAE/D,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAEhD;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,23 @@
1
+ import { DEFAULT_PREFS } from '@adminium/tokens';
2
+ /** The 8 BRIEF locales (02-design-system.md §4.1). */
3
+ export const LOCALES = [
4
+ 'en_US',
5
+ 'de_DE',
6
+ 'ar_EG',
7
+ 'zh_CN',
8
+ 'zh_TW',
9
+ 'cs_CZ',
10
+ 'da_DK',
11
+ 'fr_FR',
12
+ ];
13
+ /** Baseline of the resolution order (BRIEF §7 via `@adminium/tokens`). */
14
+ export const BASELINE_PREFS = { ...DEFAULT_PREFS };
15
+ /** `rtl` iff the locale is `ar_EG` (02-design-system.md §4.1). */
16
+ export function dirForLocale(locale) {
17
+ return locale === 'ar_EG' ? 'rtl' : 'ltr';
18
+ }
19
+ /** BCP-47 form of a locale for the `lang` attribute (`ar_EG` → `ar-EG`). */
20
+ export function langForLocale(locale) {
21
+ return locale.replace('_', '-');
22
+ }
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAC;AAoBX,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAe,EAAE,GAAG,aAAa,EAAE,CAAC;AAE/D,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type ClearSessionPref, type SetThemePref } from './context.js';
2
+ import type { ResolvedTheme, ThemePrefs } from './types.js';
3
+ /** The resolved theme as stamped on `<html>` (`system` already resolved, `dir` derived). */
4
+ export declare function useTheme(): ResolvedTheme;
5
+ /**
6
+ * The effective preferences (theme may be `system`), the optimistic setter, and
7
+ * `clearSessionPref` for dropping a session override on reset-to-default.
8
+ */
9
+ export declare function useThemePrefs(): {
10
+ prefs: ThemePrefs;
11
+ setPref: SetThemePref;
12
+ clearSessionPref: ClearSessionPref;
13
+ };
14
+ //# sourceMappingURL=useTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/theme/useTheme.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU5D,4FAA4F;AAC5F,wBAAgB,QAAQ,IAAI,aAAa,CAExC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAGA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Theme hooks (workplan/02-design-system.md §4.1).
3
+ * `useTheme` → resolved values for rendering; `useThemePrefs` → raw prefs +
4
+ * `setPref` for the appearance settings UI.
5
+ */
6
+ import { useContext } from 'react';
7
+ import { ThemeContext } from './context.js';
8
+ function useRequiredThemeContext(hook) {
9
+ const context = useContext(ThemeContext);
10
+ if (context === null) {
11
+ throw new Error(`${hook} must be used inside <ThemeProvider>`);
12
+ }
13
+ return context;
14
+ }
15
+ /** The resolved theme as stamped on `<html>` (`system` already resolved, `dir` derived). */
16
+ export function useTheme() {
17
+ return useRequiredThemeContext('useTheme()').resolved;
18
+ }
19
+ /**
20
+ * The effective preferences (theme may be `system`), the optimistic setter, and
21
+ * `clearSessionPref` for dropping a session override on reset-to-default.
22
+ */
23
+ export function useThemePrefs() {
24
+ const { prefs, setPref, clearSessionPref } = useRequiredThemeContext('useThemePrefs()');
25
+ return { prefs, setPref, clearSessionPref };
26
+ }
27
+ //# sourceMappingURL=useTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../src/theme/useTheme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,YAAY,EAA4C,MAAM,cAAc,CAAC;AAGtF,SAAS,uBAAuB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sCAAsC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,QAAQ;IACtB,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAK3B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IACxF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC9C,CAAC"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@adminiumjs/ui",
3
+ "version": "0.1.0-rc.1",
4
+ "license": "AGPL-3.0-only",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/MoSofi/Adminium.git",
8
+ "directory": "packages/ui"
9
+ },
10
+ "homepage": "https://adminium.dev",
11
+ "bugs": "https://github.com/MoSofi/Adminium/issues",
12
+ "type": "module",
13
+ "description": "Component library (Tiers 1-3), Radix-based, CVA variants, ThemeProvider",
14
+ "sideEffects": [
15
+ "**/*.css"
16
+ ],
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ }
24
+ },
25
+ "dependencies": {
26
+ "@adminium/tokens": "npm:@adminiumjs/tokens@0.1.0-rc.1",
27
+ "@radix-ui/react-checkbox": "^1.3.3",
28
+ "@radix-ui/react-dialog": "^1.1.15",
29
+ "@radix-ui/react-direction": "^1.1.1",
30
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
31
+ "@radix-ui/react-popover": "^1.1.15",
32
+ "@radix-ui/react-radio-group": "^1.3.8",
33
+ "@radix-ui/react-slider": "^1.3.6",
34
+ "@radix-ui/react-slot": "^1.2.3",
35
+ "@radix-ui/react-switch": "^1.2.6",
36
+ "@radix-ui/react-tabs": "^1.1.13",
37
+ "@radix-ui/react-tooltip": "^1.2.8",
38
+ "class-variance-authority": "^0.7.1",
39
+ "clsx": "^2.1.1",
40
+ "lucide-react": "^0.525.0",
41
+ "react": "^19.1.0",
42
+ "react-dom": "^19.1.0",
43
+ "tailwind-merge": "^3.3.1"
44
+ },
45
+ "files": [
46
+ "dist"
47
+ ]
48
+ }