@lerianstudio/sindarian-ui 1.2.0-beta.13 → 1.2.0-beta.14

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 (657) hide show
  1. package/dist/charts/chart.d.ts +64 -0
  2. package/dist/charts/chart.d.ts.map +1 -0
  3. package/dist/charts/chart.js +232 -0
  4. package/dist/charts/index.d.ts +3 -0
  5. package/dist/charts/index.d.ts.map +1 -0
  6. package/dist/charts/index.js +11 -0
  7. package/dist/components/breadcrumb/get-breadcrumb-paths.js +5 -2
  8. package/dist/components/form/date-time-picker-field/index.js +1 -1
  9. package/dist/components/form/file-upload-field/index.d.ts +52 -0
  10. package/dist/components/form/file-upload-field/index.d.ts.map +1 -0
  11. package/dist/components/form/file-upload-field/index.js +50 -0
  12. package/dist/components/form/index.d.ts +3 -0
  13. package/dist/components/form/index.d.ts.map +1 -1
  14. package/dist/components/form/index.js +3 -0
  15. package/dist/components/form/radio-group-field/index.d.ts +32 -0
  16. package/dist/components/form/radio-group-field/index.d.ts.map +1 -0
  17. package/dist/components/form/radio-group-field/index.js +29 -0
  18. package/dist/components/form/renderable-label.d.ts +35 -0
  19. package/dist/components/form/renderable-label.d.ts.map +1 -0
  20. package/dist/components/form/renderable-label.js +57 -0
  21. package/dist/components/form/textarea-field/index.d.ts +31 -0
  22. package/dist/components/form/textarea-field/index.d.ts.map +1 -0
  23. package/dist/components/form/textarea-field/index.js +23 -0
  24. package/dist/components/table/id-table-cell.js +5 -2
  25. package/dist/components/ui/accordion/index.d.ts +14 -0
  26. package/dist/components/ui/accordion/index.d.ts.map +1 -0
  27. package/dist/components/ui/accordion/index.js +62 -0
  28. package/dist/components/ui/alert-dialog/index.d.ts +15 -0
  29. package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
  30. package/dist/components/ui/alert-dialog/index.js +84 -0
  31. package/dist/components/ui/autocomplete/index.js +4 -4
  32. package/dist/components/ui/file-upload/index.d.ts +94 -0
  33. package/dist/components/ui/file-upload/index.d.ts.map +1 -0
  34. package/dist/components/ui/file-upload/index.js +230 -0
  35. package/dist/components/ui/hover-card/index.d.ts +7 -0
  36. package/dist/components/ui/hover-card/index.d.ts.map +1 -0
  37. package/dist/components/ui/hover-card/index.js +51 -0
  38. package/dist/components/ui/input/index.js +2 -2
  39. package/dist/components/ui/otp-input/index.d.ts.map +1 -1
  40. package/dist/components/ui/otp-input/index.js +1 -1
  41. package/dist/components/ui/radio-group/index.d.ts +6 -0
  42. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  43. package/dist/components/ui/radio-group/index.js +48 -0
  44. package/dist/components/ui/scroll-area/index.d.ts +6 -0
  45. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  46. package/dist/components/ui/scroll-area/index.js +49 -0
  47. package/dist/components/ui/sidebar/index.d.ts +1 -0
  48. package/dist/components/ui/sidebar/index.d.ts.map +1 -1
  49. package/dist/components/ui/sidebar/index.js +1 -0
  50. package/dist/components/ui/sidebar/next-router.cjs +44 -0
  51. package/dist/components/ui/sidebar/next-router.d.cts +7 -0
  52. package/dist/components/ui/sidebar/sidebar-item-button.d.ts +2 -2
  53. package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -1
  54. package/dist/components/ui/sidebar/sidebar-item-button.js +3 -5
  55. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +2 -2
  56. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -1
  57. package/dist/components/ui/sidebar/sidebar-item-icon-button.js +3 -5
  58. package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -1
  59. package/dist/components/ui/sidebar/sidebar-item.js +3 -2
  60. package/dist/components/ui/sidebar/sidebar-router.d.ts +82 -0
  61. package/dist/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
  62. package/dist/components/ui/sidebar/sidebar-router.js +126 -0
  63. package/dist/components/ui/toast/index.d.ts +1 -1
  64. package/dist/components/ui/toast/index.d.ts.map +1 -1
  65. package/dist/components/ui/toggle-group/index.d.ts +18 -0
  66. package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
  67. package/dist/components/ui/toggle-group/index.js +87 -0
  68. package/dist/domain/blotter/index.d.ts +40 -0
  69. package/dist/domain/blotter/index.d.ts.map +1 -0
  70. package/dist/domain/blotter/index.js +16 -0
  71. package/dist/domain/delinquency-aging/aging-buckets.d.ts +37 -0
  72. package/dist/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
  73. package/dist/domain/delinquency-aging/aging-buckets.js +97 -0
  74. package/dist/domain/delinquency-aging/index.d.ts +52 -0
  75. package/dist/domain/delinquency-aging/index.d.ts.map +1 -0
  76. package/dist/domain/delinquency-aging/index.js +151 -0
  77. package/dist/domain/figure/index.d.ts +30 -0
  78. package/dist/domain/figure/index.d.ts.map +1 -0
  79. package/dist/domain/figure/index.js +18 -0
  80. package/dist/domain/format.d.ts +57 -0
  81. package/dist/domain/format.d.ts.map +1 -0
  82. package/dist/domain/format.js +102 -0
  83. package/dist/domain/index.d.ts +22 -0
  84. package/dist/domain/index.d.ts.map +1 -0
  85. package/dist/domain/index.js +43 -0
  86. package/dist/domain/key-id/index.d.ts +31 -0
  87. package/dist/domain/key-id/index.d.ts.map +1 -0
  88. package/dist/domain/key-id/index.js +167 -0
  89. package/dist/domain/ledger-sheet/index.d.ts +45 -0
  90. package/dist/domain/ledger-sheet/index.d.ts.map +1 -0
  91. package/dist/domain/ledger-sheet/index.js +28 -0
  92. package/dist/domain/money-diff.d.ts +23 -0
  93. package/dist/domain/money-diff.d.ts.map +1 -0
  94. package/dist/domain/money-diff.js +48 -0
  95. package/dist/domain/money-math.d.ts +32 -0
  96. package/dist/domain/money-math.d.ts.map +1 -0
  97. package/dist/domain/money-math.js +104 -0
  98. package/dist/domain/money-text/index.d.ts +37 -0
  99. package/dist/domain/money-text/index.d.ts.map +1 -0
  100. package/dist/domain/money-text/index.js +113 -0
  101. package/dist/domain/section-label/index.d.ts +21 -0
  102. package/dist/domain/section-label/index.d.ts.map +1 -0
  103. package/dist/domain/section-label/index.js +9 -0
  104. package/dist/domain/status-rail/index.d.ts +40 -0
  105. package/dist/domain/status-rail/index.d.ts.map +1 -0
  106. package/dist/domain/status-rail/index.js +64 -0
  107. package/dist/domain/threshold-gauge/index.d.ts +84 -0
  108. package/dist/domain/threshold-gauge/index.d.ts.map +1 -0
  109. package/dist/domain/threshold-gauge/index.js +157 -0
  110. package/dist/enterprise/alert-banner/index.d.ts +30 -0
  111. package/dist/enterprise/alert-banner/index.d.ts.map +1 -0
  112. package/dist/enterprise/alert-banner/index.js +24 -0
  113. package/dist/enterprise/app-shell/index.d.ts +61 -0
  114. package/dist/enterprise/app-shell/index.d.ts.map +1 -0
  115. package/dist/enterprise/app-shell/index.js +87 -0
  116. package/dist/enterprise/cursor-pager/index.d.ts +21 -0
  117. package/dist/enterprise/cursor-pager/index.d.ts.map +1 -0
  118. package/dist/enterprise/cursor-pager/index.js +26 -0
  119. package/dist/enterprise/data-table/index.d.ts +88 -0
  120. package/dist/enterprise/data-table/index.d.ts.map +1 -0
  121. package/dist/enterprise/data-table/index.js +245 -0
  122. package/dist/enterprise/date-range-picker/index.d.ts +37 -0
  123. package/dist/enterprise/date-range-picker/index.d.ts.map +1 -0
  124. package/dist/enterprise/date-range-picker/index.js +74 -0
  125. package/dist/enterprise/detail-panel/index.d.ts +54 -0
  126. package/dist/enterprise/detail-panel/index.d.ts.map +1 -0
  127. package/dist/enterprise/detail-panel/index.js +20 -0
  128. package/dist/enterprise/empty-state/index.d.ts +32 -0
  129. package/dist/enterprise/empty-state/index.d.ts.map +1 -0
  130. package/dist/enterprise/empty-state/index.js +13 -0
  131. package/dist/enterprise/index.d.ts +26 -0
  132. package/dist/enterprise/index.d.ts.map +1 -0
  133. package/dist/enterprise/index.js +39 -0
  134. package/dist/enterprise/number-input/index.d.ts +55 -0
  135. package/dist/enterprise/number-input/index.d.ts.map +1 -0
  136. package/dist/enterprise/number-input/index.js +238 -0
  137. package/dist/enterprise/search-input/index.d.ts +32 -0
  138. package/dist/enterprise/search-input/index.d.ts.map +1 -0
  139. package/dist/enterprise/search-input/index.js +114 -0
  140. package/dist/enterprise/stat-card/index.d.ts +43 -0
  141. package/dist/enterprise/stat-card/index.d.ts.map +1 -0
  142. package/dist/enterprise/stat-card/index.js +67 -0
  143. package/dist/enterprise/status-badge/index.d.ts +31 -0
  144. package/dist/enterprise/status-badge/index.d.ts.map +1 -0
  145. package/dist/enterprise/status-badge/index.js +120 -0
  146. package/dist/enterprise/use-is-mobile.d.ts +11 -0
  147. package/dist/enterprise/use-is-mobile.d.ts.map +1 -0
  148. package/dist/enterprise/use-is-mobile.js +59 -0
  149. package/dist/enterprise/virtualized-table/index.d.ts +26 -0
  150. package/dist/enterprise/virtualized-table/index.d.ts.map +1 -0
  151. package/dist/enterprise/virtualized-table/index.js +114 -0
  152. package/dist/esm/charts/chart.d.ts +64 -0
  153. package/dist/esm/charts/chart.d.ts.map +1 -0
  154. package/dist/esm/charts/chart.js +191 -0
  155. package/dist/esm/charts/index.d.ts +3 -0
  156. package/dist/esm/charts/index.d.ts.map +1 -0
  157. package/dist/esm/charts/index.js +3 -0
  158. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts +10 -0
  159. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts.map +1 -0
  160. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.js +12 -0
  161. package/dist/esm/components/breadcrumb/index.d.ts +11 -0
  162. package/dist/esm/components/breadcrumb/index.d.ts.map +1 -0
  163. package/dist/esm/components/breadcrumb/index.js +6 -0
  164. package/dist/esm/components/card/account-card/index.d.ts +32 -0
  165. package/dist/esm/components/card/account-card/index.d.ts.map +1 -0
  166. package/dist/esm/components/card/account-card/index.js +53 -0
  167. package/dist/esm/components/card/basic-card/index.d.ts +6 -0
  168. package/dist/esm/components/card/basic-card/index.d.ts.map +1 -0
  169. package/dist/esm/components/card/basic-card/index.js +14 -0
  170. package/dist/esm/components/card/dashboard-card/index.d.ts +5 -0
  171. package/dist/esm/components/card/dashboard-card/index.d.ts.map +1 -0
  172. package/dist/esm/components/card/dashboard-card/index.js +14 -0
  173. package/dist/esm/components/card/entity-card/index.d.ts +22 -0
  174. package/dist/esm/components/card/entity-card/index.d.ts.map +1 -0
  175. package/dist/esm/components/card/entity-card/index.js +48 -0
  176. package/dist/esm/components/card/index.d.ts +5 -0
  177. package/dist/esm/components/card/index.d.ts.map +1 -0
  178. package/dist/esm/components/card/index.js +4 -0
  179. package/dist/esm/components/dialog/confirmation-dialog/index.d.ts +16 -0
  180. package/dist/esm/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
  181. package/dist/esm/components/dialog/confirmation-dialog/index.js +25 -0
  182. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
  183. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
  184. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.js +49 -0
  185. package/dist/esm/components/dialog/index.d.ts +4 -0
  186. package/dist/esm/components/dialog/index.d.ts.map +1 -0
  187. package/dist/esm/components/dialog/index.js +3 -0
  188. package/dist/esm/components/dialog/large-dialog/index.d.ts +11 -0
  189. package/dist/esm/components/dialog/large-dialog/index.d.ts.map +1 -0
  190. package/dist/esm/components/dialog/large-dialog/index.js +16 -0
  191. package/dist/esm/components/entity-box/index.d.ts +17 -0
  192. package/dist/esm/components/entity-box/index.d.ts.map +1 -0
  193. package/dist/esm/components/entity-box/index.js +31 -0
  194. package/dist/esm/components/entity-data-table/index.d.ts +17 -0
  195. package/dist/esm/components/entity-data-table/index.d.ts.map +1 -0
  196. package/dist/esm/components/entity-data-table/index.js +17 -0
  197. package/dist/esm/components/form/combo-box-field/index.d.ts +14 -0
  198. package/dist/esm/components/form/combo-box-field/index.d.ts.map +1 -0
  199. package/dist/esm/components/form/combo-box-field/index.js +28 -0
  200. package/dist/esm/components/form/country-field/index.d.ts +5 -0
  201. package/dist/esm/components/form/country-field/index.d.ts.map +1 -0
  202. package/dist/esm/components/form/country-field/index.js +7 -0
  203. package/dist/esm/components/form/date-picker-field/index.d.ts +21 -0
  204. package/dist/esm/components/form/date-picker-field/index.d.ts.map +1 -0
  205. package/dist/esm/components/form/date-picker-field/index.js +38 -0
  206. package/dist/esm/components/form/date-range-field/index.d.ts +21 -0
  207. package/dist/esm/components/form/date-range-field/index.d.ts.map +1 -0
  208. package/dist/esm/components/form/date-range-field/index.js +17 -0
  209. package/dist/esm/components/form/date-time-picker-field/index.d.ts +23 -0
  210. package/dist/esm/components/form/date-time-picker-field/index.d.ts.map +1 -0
  211. package/dist/esm/components/form/date-time-picker-field/index.js +73 -0
  212. package/dist/esm/components/form/file-upload-field/index.d.ts +52 -0
  213. package/dist/esm/components/form/file-upload-field/index.d.ts.map +1 -0
  214. package/dist/esm/components/form/file-upload-field/index.js +46 -0
  215. package/dist/esm/components/form/index.d.ts +16 -0
  216. package/dist/esm/components/form/index.d.ts.map +1 -0
  217. package/dist/esm/components/form/index.js +15 -0
  218. package/dist/esm/components/form/input-field/index.d.ts +26 -0
  219. package/dist/esm/components/form/input-field/index.d.ts.map +1 -0
  220. package/dist/esm/components/form/input-field/index.js +10 -0
  221. package/dist/esm/components/form/otp-field/index.d.ts +18 -0
  222. package/dist/esm/components/form/otp-field/index.d.ts.map +1 -0
  223. package/dist/esm/components/form/otp-field/index.js +15 -0
  224. package/dist/esm/components/form/pagination-limit-field/index.d.ts +9 -0
  225. package/dist/esm/components/form/pagination-limit-field/index.d.ts.map +1 -0
  226. package/dist/esm/components/form/pagination-limit-field/index.js +6 -0
  227. package/dist/esm/components/form/password-field/index.d.ts +14 -0
  228. package/dist/esm/components/form/password-field/index.d.ts.map +1 -0
  229. package/dist/esm/components/form/password-field/index.js +10 -0
  230. package/dist/esm/components/form/radio-group-field/index.d.ts +32 -0
  231. package/dist/esm/components/form/radio-group-field/index.d.ts.map +1 -0
  232. package/dist/esm/components/form/radio-group-field/index.js +25 -0
  233. package/dist/esm/components/form/renderable-label.d.ts +35 -0
  234. package/dist/esm/components/form/renderable-label.d.ts.map +1 -0
  235. package/dist/esm/components/form/renderable-label.js +54 -0
  236. package/dist/esm/components/form/select-field/index.d.ts +20 -0
  237. package/dist/esm/components/form/select-field/index.d.ts.map +1 -0
  238. package/dist/esm/components/form/select-field/index.js +16 -0
  239. package/dist/esm/components/form/state-field/index.d.ts +10 -0
  240. package/dist/esm/components/form/state-field/index.d.ts.map +1 -0
  241. package/dist/esm/components/form/state-field/index.js +35 -0
  242. package/dist/esm/components/form/switch-field/index.d.ts +15 -0
  243. package/dist/esm/components/form/switch-field/index.d.ts.map +1 -0
  244. package/dist/esm/components/form/switch-field/index.js +7 -0
  245. package/dist/esm/components/form/textarea-field/index.d.ts +31 -0
  246. package/dist/esm/components/form/textarea-field/index.d.ts.map +1 -0
  247. package/dist/esm/components/form/textarea-field/index.js +19 -0
  248. package/dist/esm/components/page/index.d.ts +4 -0
  249. package/dist/esm/components/page/index.d.ts.map +1 -0
  250. package/dist/esm/components/page/index.js +11 -0
  251. package/dist/esm/components/page-header/index.d.ts +33 -0
  252. package/dist/esm/components/page-header/index.d.ts.map +1 -0
  253. package/dist/esm/components/page-header/index.js +40 -0
  254. package/dist/esm/components/pagination/index.d.ts +8 -0
  255. package/dist/esm/components/pagination/index.d.ts.map +1 -0
  256. package/dist/esm/components/pagination/index.js +6 -0
  257. package/dist/esm/components/table/id-table-cell.d.ts +7 -0
  258. package/dist/esm/components/table/id-table-cell.d.ts.map +1 -0
  259. package/dist/esm/components/table/id-table-cell.js +12 -0
  260. package/dist/esm/components/table/index.d.ts +3 -0
  261. package/dist/esm/components/table/index.d.ts.map +1 -0
  262. package/dist/esm/components/table/index.js +2 -0
  263. package/dist/esm/components/table/locked-table-actions.d.ts +7 -0
  264. package/dist/esm/components/table/locked-table-actions.d.ts.map +1 -0
  265. package/dist/esm/components/table/locked-table-actions.js +7 -0
  266. package/dist/esm/components/table/name-table-cell.d.ts +6 -0
  267. package/dist/esm/components/table/name-table-cell.d.ts.map +1 -0
  268. package/dist/esm/components/table/name-table-cell.js +6 -0
  269. package/dist/esm/components/ui/accordion/index.d.ts +14 -0
  270. package/dist/esm/components/ui/accordion/index.d.ts.map +1 -0
  271. package/dist/esm/components/ui/accordion/index.js +24 -0
  272. package/dist/esm/components/ui/alert/index.d.ts +15 -0
  273. package/dist/esm/components/ui/alert/index.d.ts.map +1 -0
  274. package/dist/esm/components/ui/alert/index.js +38 -0
  275. package/dist/esm/components/ui/alert-dialog/index.d.ts +15 -0
  276. package/dist/esm/components/ui/alert-dialog/index.d.ts.map +1 -0
  277. package/dist/esm/components/ui/alert-dialog/index.js +39 -0
  278. package/dist/esm/components/ui/autocomplete/index.d.ts +54 -0
  279. package/dist/esm/components/ui/autocomplete/index.d.ts.map +1 -0
  280. package/dist/esm/components/ui/autocomplete/index.js +276 -0
  281. package/dist/esm/components/ui/autosize-textarea/index.d.ts +15 -0
  282. package/dist/esm/components/ui/autosize-textarea/index.d.ts.map +1 -0
  283. package/dist/esm/components/ui/autosize-textarea/index.js +51 -0
  284. package/dist/esm/components/ui/avatar/index.d.ts +7 -0
  285. package/dist/esm/components/ui/avatar/index.d.ts.map +1 -0
  286. package/dist/esm/components/ui/avatar/index.js +14 -0
  287. package/dist/esm/components/ui/badge/index.d.ts +11 -0
  288. package/dist/esm/components/ui/badge/index.d.ts.map +1 -0
  289. package/dist/esm/components/ui/badge/index.js +29 -0
  290. package/dist/esm/components/ui/breadcrumb/index.d.ts +12 -0
  291. package/dist/esm/components/ui/breadcrumb/index.d.ts.map +1 -0
  292. package/dist/esm/components/ui/breadcrumb/index.js +27 -0
  293. package/dist/esm/components/ui/button/index.d.ts +22 -0
  294. package/dist/esm/components/ui/button/index.d.ts.map +1 -0
  295. package/dist/esm/components/ui/button/index.js +59 -0
  296. package/dist/esm/components/ui/calendar/index.d.ts +9 -0
  297. package/dist/esm/components/ui/calendar/index.d.ts.map +1 -0
  298. package/dist/esm/components/ui/calendar/index.js +79 -0
  299. package/dist/esm/components/ui/card/index.d.ts +10 -0
  300. package/dist/esm/components/ui/card/index.d.ts.map +1 -0
  301. package/dist/esm/components/ui/card/index.js +24 -0
  302. package/dist/esm/components/ui/checkbox/index.d.ts +5 -0
  303. package/dist/esm/components/ui/checkbox/index.d.ts.map +1 -0
  304. package/dist/esm/components/ui/checkbox/index.js +9 -0
  305. package/dist/esm/components/ui/collapsible/index.d.ts +6 -0
  306. package/dist/esm/components/ui/collapsible/index.d.ts.map +1 -0
  307. package/dist/esm/components/ui/collapsible/index.js +13 -0
  308. package/dist/esm/components/ui/command/index.d.ts +14 -0
  309. package/dist/esm/components/ui/command/index.d.ts.map +1 -0
  310. package/dist/esm/components/ui/command/index.js +51 -0
  311. package/dist/esm/components/ui/copy-field/index.d.ts +56 -0
  312. package/dist/esm/components/ui/copy-field/index.d.ts.map +1 -0
  313. package/dist/esm/components/ui/copy-field/index.js +114 -0
  314. package/dist/esm/components/ui/dialog/index.d.ts +16 -0
  315. package/dist/esm/components/ui/dialog/index.d.ts.map +1 -0
  316. package/dist/esm/components/ui/dialog/index.js +36 -0
  317. package/dist/esm/components/ui/dropdown-menu/index.d.ts +27 -0
  318. package/dist/esm/components/ui/dropdown-menu/index.d.ts.map +1 -0
  319. package/dist/esm/components/ui/dropdown-menu/index.js +57 -0
  320. package/dist/esm/components/ui/field/index.d.ts +25 -0
  321. package/dist/esm/components/ui/field/index.d.ts.map +1 -0
  322. package/dist/esm/components/ui/field/index.js +68 -0
  323. package/dist/esm/components/ui/file-upload/index.d.ts +94 -0
  324. package/dist/esm/components/ui/file-upload/index.d.ts.map +1 -0
  325. package/dist/esm/components/ui/file-upload/index.js +193 -0
  326. package/dist/esm/components/ui/form.d.ts +39 -0
  327. package/dist/esm/components/ui/form.d.ts.map +1 -0
  328. package/dist/esm/components/ui/form.js +67 -0
  329. package/dist/esm/components/ui/hover-card/index.d.ts +7 -0
  330. package/dist/esm/components/ui/hover-card/index.d.ts.map +1 -0
  331. package/dist/esm/components/ui/hover-card/index.js +14 -0
  332. package/dist/esm/components/ui/icon-button/index.d.ts +13 -0
  333. package/dist/esm/components/ui/icon-button/index.d.ts.map +1 -0
  334. package/dist/esm/components/ui/icon-button/index.js +31 -0
  335. package/dist/esm/components/ui/input/adornment.d.ts +9 -0
  336. package/dist/esm/components/ui/input/adornment.d.ts.map +1 -0
  337. package/dist/esm/components/ui/input/adornment.js +17 -0
  338. package/dist/esm/components/ui/input/index.d.ts +18 -0
  339. package/dist/esm/components/ui/input/index.d.ts.map +1 -0
  340. package/dist/esm/components/ui/input/index.js +60 -0
  341. package/dist/esm/components/ui/label/index.d.ts +7 -0
  342. package/dist/esm/components/ui/label/index.d.ts.map +1 -0
  343. package/dist/esm/components/ui/label/index.js +10 -0
  344. package/dist/esm/components/ui/loading-button/index.d.ts +8 -0
  345. package/dist/esm/components/ui/loading-button/index.d.ts.map +1 -0
  346. package/dist/esm/components/ui/loading-button/index.js +7 -0
  347. package/dist/esm/components/ui/multiple-select/index.d.ts +91 -0
  348. package/dist/esm/components/ui/multiple-select/index.d.ts.map +1 -0
  349. package/dist/esm/components/ui/multiple-select/index.js +196 -0
  350. package/dist/esm/components/ui/otp-input/index.d.ts +13 -0
  351. package/dist/esm/components/ui/otp-input/index.d.ts.map +1 -0
  352. package/dist/esm/components/ui/otp-input/index.js +21 -0
  353. package/dist/esm/components/ui/paper/index.d.ts +4 -0
  354. package/dist/esm/components/ui/paper/index.d.ts.map +1 -0
  355. package/dist/esm/components/ui/paper/index.js +5 -0
  356. package/dist/esm/components/ui/paper-collapsible/index.d.ts +9 -0
  357. package/dist/esm/components/ui/paper-collapsible/index.d.ts.map +1 -0
  358. package/dist/esm/components/ui/paper-collapsible/index.js +19 -0
  359. package/dist/esm/components/ui/popover/index.d.ts +8 -0
  360. package/dist/esm/components/ui/popover/index.d.ts.map +1 -0
  361. package/dist/esm/components/ui/popover/index.js +17 -0
  362. package/dist/esm/components/ui/progress/index.d.ts +8 -0
  363. package/dist/esm/components/ui/progress/index.d.ts.map +1 -0
  364. package/dist/esm/components/ui/progress/index.js +8 -0
  365. package/dist/esm/components/ui/qr-code/index.d.ts +26 -0
  366. package/dist/esm/components/ui/qr-code/index.d.ts.map +1 -0
  367. package/dist/esm/components/ui/qr-code/index.js +24 -0
  368. package/dist/esm/components/ui/radio-group/index.d.ts +6 -0
  369. package/dist/esm/components/ui/radio-group/index.d.ts.map +1 -0
  370. package/dist/esm/components/ui/radio-group/index.js +12 -0
  371. package/dist/esm/components/ui/scroll-area/index.d.ts +6 -0
  372. package/dist/esm/components/ui/scroll-area/index.d.ts.map +1 -0
  373. package/dist/esm/components/ui/scroll-area/index.js +13 -0
  374. package/dist/esm/components/ui/select/index.d.ts +18 -0
  375. package/dist/esm/components/ui/select/index.d.ts.map +1 -0
  376. package/dist/esm/components/ui/select/index.js +47 -0
  377. package/dist/esm/components/ui/separator/index.d.ts +5 -0
  378. package/dist/esm/components/ui/separator/index.d.ts.map +1 -0
  379. package/dist/esm/components/ui/separator/index.js +8 -0
  380. package/dist/esm/components/ui/sheet/index.d.ts +19 -0
  381. package/dist/esm/components/ui/sheet/index.d.ts.map +1 -0
  382. package/dist/esm/components/ui/sheet/index.js +59 -0
  383. package/dist/esm/components/ui/sidebar/index.d.ts +11 -0
  384. package/dist/esm/components/ui/sidebar/index.d.ts.map +1 -0
  385. package/dist/esm/components/ui/sidebar/index.js +10 -0
  386. package/dist/esm/components/ui/sidebar/next-router.cjs +44 -0
  387. package/dist/esm/components/ui/sidebar/next-router.d.cts +7 -0
  388. package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
  389. package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
  390. package/dist/esm/components/ui/sidebar/sidebar-back-button.js +5 -0
  391. package/dist/esm/components/ui/sidebar/sidebar-components.d.ts +23 -0
  392. package/dist/esm/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
  393. package/dist/esm/components/ui/sidebar/sidebar-components.js +15 -0
  394. package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts +7 -0
  395. package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
  396. package/dist/esm/components/ui/sidebar/sidebar-expand-button.js +12 -0
  397. package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
  398. package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
  399. package/dist/esm/components/ui/sidebar/sidebar-item-button.js +18 -0
  400. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
  401. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
  402. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.js +44 -0
  403. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
  404. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
  405. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.js +14 -0
  406. package/dist/esm/components/ui/sidebar/sidebar-item.d.ts +13 -0
  407. package/dist/esm/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
  408. package/dist/esm/components/ui/sidebar/sidebar-item.js +16 -0
  409. package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts +12 -0
  410. package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
  411. package/dist/esm/components/ui/sidebar/sidebar-provider.js +51 -0
  412. package/dist/esm/components/ui/sidebar/sidebar-root.d.ts +3 -0
  413. package/dist/esm/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
  414. package/dist/esm/components/ui/sidebar/sidebar-root.js +20 -0
  415. package/dist/esm/components/ui/sidebar/sidebar-router.d.ts +82 -0
  416. package/dist/esm/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
  417. package/dist/esm/components/ui/sidebar/sidebar-router.js +89 -0
  418. package/dist/esm/components/ui/skeleton/index.d.ts +3 -0
  419. package/dist/esm/components/ui/skeleton/index.d.ts.map +1 -0
  420. package/dist/esm/components/ui/skeleton/index.js +6 -0
  421. package/dist/esm/components/ui/stepper/index.d.ts +18 -0
  422. package/dist/esm/components/ui/stepper/index.d.ts.map +1 -0
  423. package/dist/esm/components/ui/stepper/index.js +20 -0
  424. package/dist/esm/components/ui/switch/index.d.ts +5 -0
  425. package/dist/esm/components/ui/switch/index.d.ts.map +1 -0
  426. package/dist/esm/components/ui/switch/index.js +8 -0
  427. package/dist/esm/components/ui/table/index.d.ts +21 -0
  428. package/dist/esm/components/ui/table/index.d.ts.map +1 -0
  429. package/dist/esm/components/ui/table/index.js +44 -0
  430. package/dist/esm/components/ui/tabs/index.d.ts +8 -0
  431. package/dist/esm/components/ui/tabs/index.d.ts.map +1 -0
  432. package/dist/esm/components/ui/tabs/index.js +17 -0
  433. package/dist/esm/components/ui/textarea/index.d.ts +4 -0
  434. package/dist/esm/components/ui/textarea/index.d.ts.map +1 -0
  435. package/dist/esm/components/ui/textarea/index.js +6 -0
  436. package/dist/esm/components/ui/time-picker/index.d.ts +18 -0
  437. package/dist/esm/components/ui/time-picker/index.d.ts.map +1 -0
  438. package/dist/esm/components/ui/time-picker/index.js +49 -0
  439. package/dist/esm/components/ui/toast/index.d.ts +18 -0
  440. package/dist/esm/components/ui/toast/index.d.ts.map +1 -0
  441. package/dist/esm/components/ui/toast/index.js +2 -0
  442. package/dist/esm/components/ui/toast/toaster.d.ts +6 -0
  443. package/dist/esm/components/ui/toast/toaster.d.ts.map +1 -0
  444. package/dist/esm/components/ui/toast/toaster.js +8 -0
  445. package/dist/esm/components/ui/toggle-group/index.d.ts +18 -0
  446. package/dist/esm/components/ui/toggle-group/index.d.ts.map +1 -0
  447. package/dist/esm/components/ui/toggle-group/index.js +51 -0
  448. package/dist/esm/components/ui/tooltip/index.d.ts +11 -0
  449. package/dist/esm/components/ui/tooltip/index.d.ts.map +1 -0
  450. package/dist/esm/components/ui/tooltip/index.js +28 -0
  451. package/dist/esm/domain/blotter/index.d.ts +40 -0
  452. package/dist/esm/domain/blotter/index.d.ts.map +1 -0
  453. package/dist/esm/domain/blotter/index.js +12 -0
  454. package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts +37 -0
  455. package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
  456. package/dist/esm/domain/delinquency-aging/aging-buckets.js +92 -0
  457. package/dist/esm/domain/delinquency-aging/index.d.ts +52 -0
  458. package/dist/esm/domain/delinquency-aging/index.d.ts.map +1 -0
  459. package/dist/esm/domain/delinquency-aging/index.js +147 -0
  460. package/dist/esm/domain/figure/index.d.ts +30 -0
  461. package/dist/esm/domain/figure/index.d.ts.map +1 -0
  462. package/dist/esm/domain/figure/index.js +14 -0
  463. package/dist/esm/domain/format.d.ts +57 -0
  464. package/dist/esm/domain/format.d.ts.map +1 -0
  465. package/dist/esm/domain/format.js +94 -0
  466. package/dist/esm/domain/index.d.ts +22 -0
  467. package/dist/esm/domain/index.d.ts.map +1 -0
  468. package/dist/esm/domain/index.js +19 -0
  469. package/dist/esm/domain/key-id/index.d.ts +31 -0
  470. package/dist/esm/domain/key-id/index.d.ts.map +1 -0
  471. package/dist/esm/domain/key-id/index.js +162 -0
  472. package/dist/esm/domain/ledger-sheet/index.d.ts +45 -0
  473. package/dist/esm/domain/ledger-sheet/index.d.ts.map +1 -0
  474. package/dist/esm/domain/ledger-sheet/index.js +24 -0
  475. package/dist/esm/domain/money-diff.d.ts +23 -0
  476. package/dist/esm/domain/money-diff.d.ts.map +1 -0
  477. package/dist/esm/domain/money-diff.js +45 -0
  478. package/dist/esm/domain/money-math.d.ts +32 -0
  479. package/dist/esm/domain/money-math.d.ts.map +1 -0
  480. package/dist/esm/domain/money-math.js +98 -0
  481. package/dist/esm/domain/money-text/index.d.ts +37 -0
  482. package/dist/esm/domain/money-text/index.d.ts.map +1 -0
  483. package/dist/esm/domain/money-text/index.js +108 -0
  484. package/dist/esm/domain/section-label/index.d.ts +21 -0
  485. package/dist/esm/domain/section-label/index.d.ts.map +1 -0
  486. package/dist/esm/domain/section-label/index.js +6 -0
  487. package/dist/esm/domain/status-rail/index.d.ts +40 -0
  488. package/dist/esm/domain/status-rail/index.d.ts.map +1 -0
  489. package/dist/esm/domain/status-rail/index.js +59 -0
  490. package/dist/esm/domain/threshold-gauge/index.d.ts +84 -0
  491. package/dist/esm/domain/threshold-gauge/index.d.ts.map +1 -0
  492. package/dist/esm/domain/threshold-gauge/index.js +153 -0
  493. package/dist/esm/enterprise/alert-banner/index.d.ts +30 -0
  494. package/dist/esm/enterprise/alert-banner/index.d.ts.map +1 -0
  495. package/dist/esm/enterprise/alert-banner/index.js +21 -0
  496. package/dist/esm/enterprise/app-shell/index.d.ts +61 -0
  497. package/dist/esm/enterprise/app-shell/index.d.ts.map +1 -0
  498. package/dist/esm/enterprise/app-shell/index.js +51 -0
  499. package/dist/esm/enterprise/cursor-pager/index.d.ts +21 -0
  500. package/dist/esm/enterprise/cursor-pager/index.d.ts.map +1 -0
  501. package/dist/esm/enterprise/cursor-pager/index.js +23 -0
  502. package/dist/esm/enterprise/data-table/index.d.ts +88 -0
  503. package/dist/esm/enterprise/data-table/index.d.ts.map +1 -0
  504. package/dist/esm/enterprise/data-table/index.js +242 -0
  505. package/dist/esm/enterprise/date-range-picker/index.d.ts +37 -0
  506. package/dist/esm/enterprise/date-range-picker/index.d.ts.map +1 -0
  507. package/dist/esm/enterprise/date-range-picker/index.js +71 -0
  508. package/dist/esm/enterprise/detail-panel/index.d.ts +54 -0
  509. package/dist/esm/enterprise/detail-panel/index.d.ts.map +1 -0
  510. package/dist/esm/enterprise/detail-panel/index.js +17 -0
  511. package/dist/esm/enterprise/empty-state/index.d.ts +32 -0
  512. package/dist/esm/enterprise/empty-state/index.d.ts.map +1 -0
  513. package/dist/esm/enterprise/empty-state/index.js +10 -0
  514. package/dist/esm/enterprise/index.d.ts +26 -0
  515. package/dist/esm/enterprise/index.d.ts.map +1 -0
  516. package/dist/esm/enterprise/index.js +22 -0
  517. package/dist/esm/enterprise/number-input/index.d.ts +55 -0
  518. package/dist/esm/enterprise/number-input/index.d.ts.map +1 -0
  519. package/dist/esm/enterprise/number-input/index.js +200 -0
  520. package/dist/esm/enterprise/search-input/index.d.ts +32 -0
  521. package/dist/esm/enterprise/search-input/index.d.ts.map +1 -0
  522. package/dist/esm/enterprise/search-input/index.js +78 -0
  523. package/dist/esm/enterprise/stat-card/index.d.ts +43 -0
  524. package/dist/esm/enterprise/stat-card/index.d.ts.map +1 -0
  525. package/dist/esm/enterprise/stat-card/index.js +64 -0
  526. package/dist/esm/enterprise/status-badge/index.d.ts +31 -0
  527. package/dist/esm/enterprise/status-badge/index.d.ts.map +1 -0
  528. package/dist/esm/enterprise/status-badge/index.js +116 -0
  529. package/dist/esm/enterprise/use-is-mobile.d.ts +11 -0
  530. package/dist/esm/enterprise/use-is-mobile.d.ts.map +1 -0
  531. package/dist/esm/enterprise/use-is-mobile.js +23 -0
  532. package/dist/esm/enterprise/virtualized-table/index.d.ts +26 -0
  533. package/dist/esm/enterprise/virtualized-table/index.d.ts.map +1 -0
  534. package/dist/esm/enterprise/virtualized-table/index.js +111 -0
  535. package/dist/esm/hooks/use-click-away.d.ts +9 -0
  536. package/dist/esm/hooks/use-click-away.d.ts.map +1 -0
  537. package/dist/esm/hooks/use-click-away.js +22 -0
  538. package/dist/esm/hooks/use-pagination.d.ts +13 -0
  539. package/dist/esm/hooks/use-pagination.d.ts.map +1 -0
  540. package/dist/esm/hooks/use-pagination.js +38 -0
  541. package/dist/esm/hooks/use-stepper.d.ts +11 -0
  542. package/dist/esm/hooks/use-stepper.d.ts.map +1 -0
  543. package/dist/esm/hooks/use-stepper.js +22 -0
  544. package/dist/esm/hooks/use-time.d.ts +6 -0
  545. package/dist/esm/hooks/use-time.d.ts.map +1 -0
  546. package/dist/esm/hooks/use-time.js +13 -0
  547. package/dist/esm/hooks/use-toast.d.ts +31 -0
  548. package/dist/esm/hooks/use-toast.d.ts.map +1 -0
  549. package/dist/esm/hooks/use-toast.js +63 -0
  550. package/dist/esm/index.d.ts +69 -0
  551. package/dist/esm/index.d.ts.map +1 -0
  552. package/dist/esm/index.js +74 -0
  553. package/dist/esm/lib/storage/get-storage-object.d.ts +2 -0
  554. package/dist/esm/lib/storage/get-storage-object.d.ts.map +1 -0
  555. package/dist/esm/lib/storage/get-storage-object.js +17 -0
  556. package/dist/esm/lib/storage/get-storage.d.ts +2 -0
  557. package/dist/esm/lib/storage/get-storage.d.ts.map +1 -0
  558. package/dist/esm/lib/storage/get-storage.js +14 -0
  559. package/dist/esm/lib/storage/index.d.ts +3 -0
  560. package/dist/esm/lib/storage/index.d.ts.map +1 -0
  561. package/dist/esm/lib/storage/index.js +2 -0
  562. package/dist/esm/lib/typography.d.ts +17 -0
  563. package/dist/esm/lib/typography.d.ts.map +1 -0
  564. package/dist/esm/lib/typography.js +16 -0
  565. package/dist/esm/lib/utils.d.ts +3 -0
  566. package/dist/esm/lib/utils.d.ts.map +1 -0
  567. package/dist/esm/lib/utils.js +5 -0
  568. package/dist/esm/package.json +1 -0
  569. package/dist/esm/public/countries.json +21210 -0
  570. package/dist/esm/theme/get-theme-script.d.ts +3 -0
  571. package/dist/esm/theme/get-theme-script.d.ts.map +1 -0
  572. package/dist/esm/theme/get-theme-script.js +41 -0
  573. package/dist/esm/theme/index.d.ts +6 -0
  574. package/dist/esm/theme/index.d.ts.map +1 -0
  575. package/dist/esm/theme/index.js +4 -0
  576. package/dist/esm/theme/mode-toggle.d.ts +25 -0
  577. package/dist/esm/theme/mode-toggle.d.ts.map +1 -0
  578. package/dist/esm/theme/mode-toggle.js +27 -0
  579. package/dist/esm/theme/theme-provider.d.ts +38 -0
  580. package/dist/esm/theme/theme-provider.d.ts.map +1 -0
  581. package/dist/esm/theme/theme-provider.js +98 -0
  582. package/dist/esm/toast/helpers.d.ts +16 -0
  583. package/dist/esm/toast/helpers.d.ts.map +1 -0
  584. package/dist/esm/toast/helpers.js +29 -0
  585. package/dist/esm/toast/index.d.ts +3 -0
  586. package/dist/esm/toast/index.d.ts.map +1 -0
  587. package/dist/esm/toast/index.js +4 -0
  588. package/dist/esm/types/metadata-type.d.ts +2 -0
  589. package/dist/esm/types/metadata-type.d.ts.map +1 -0
  590. package/dist/esm/types/metadata-type.js +1 -0
  591. package/dist/esm/utils/countries.cjs +17 -0
  592. package/dist/esm/utils/countries.d.cts +14 -0
  593. package/dist/esm/utils/country-utils.d.ts +17 -0
  594. package/dist/esm/utils/country-utils.d.ts.map +1 -0
  595. package/dist/esm/utils/country-utils.js +18 -0
  596. package/dist/esm/utils/currency-codes.d.ts +5 -0
  597. package/dist/esm/utils/currency-codes.d.ts.map +1 -0
  598. package/dist/esm/utils/currency-codes.js +181 -0
  599. package/dist/globals.css +66 -0
  600. package/dist/hooks/use-toast.d.ts +1 -1
  601. package/dist/hooks/use-toast.d.ts.map +1 -1
  602. package/dist/hooks/use-toast.js +4 -0
  603. package/dist/index.d.ts +14 -0
  604. package/dist/index.d.ts.map +1 -1
  605. package/dist/index.js +19 -1
  606. package/dist/lib/storage/get-storage-object.d.ts.map +1 -1
  607. package/dist/lib/storage/get-storage-object.js +6 -2
  608. package/dist/lib/typography.d.ts +17 -0
  609. package/dist/lib/typography.d.ts.map +1 -0
  610. package/dist/lib/typography.js +19 -0
  611. package/dist/public/countries.json +21200 -21200
  612. package/dist/theme/get-theme-script.d.ts +3 -0
  613. package/dist/theme/get-theme-script.d.ts.map +1 -0
  614. package/dist/theme/get-theme-script.js +44 -0
  615. package/dist/theme/index.d.ts +6 -0
  616. package/dist/theme/index.d.ts.map +1 -0
  617. package/dist/theme/index.js +11 -0
  618. package/dist/theme/mode-toggle.d.ts +25 -0
  619. package/dist/theme/mode-toggle.d.ts.map +1 -0
  620. package/dist/theme/mode-toggle.js +30 -0
  621. package/dist/theme/theme-provider.d.ts +38 -0
  622. package/dist/theme/theme-provider.d.ts.map +1 -0
  623. package/dist/theme/theme-provider.js +135 -0
  624. package/dist/toast/helpers.d.ts +16 -0
  625. package/dist/toast/helpers.d.ts.map +1 -0
  626. package/dist/toast/helpers.js +34 -0
  627. package/dist/toast/index.d.ts +3 -0
  628. package/dist/toast/index.d.ts.map +1 -0
  629. package/dist/toast/index.js +10 -0
  630. package/dist/utils/countries.cjs +17 -0
  631. package/dist/utils/countries.d.cts +14 -0
  632. package/dist/utils/country-utils.js +2 -2
  633. package/package.json +54 -18
  634. package/dist/components/ui/button/button.test.d.ts +0 -2
  635. package/dist/components/ui/button/button.test.d.ts.map +0 -1
  636. package/dist/components/ui/button/button.test.js +0 -65
  637. package/dist/components/ui/copy-field/copy-field.test.d.ts +0 -2
  638. package/dist/components/ui/copy-field/copy-field.test.d.ts.map +0 -1
  639. package/dist/components/ui/copy-field/copy-field.test.js +0 -268
  640. package/dist/components/ui/input/input.test.d.ts +0 -2
  641. package/dist/components/ui/input/input.test.d.ts.map +0 -1
  642. package/dist/components/ui/input/input.test.js +0 -52
  643. package/dist/components/ui/label/label.stories.d.ts +0 -5
  644. package/dist/components/ui/label/label.stories.d.ts.map +0 -1
  645. package/dist/components/ui/label/label.stories.js +0 -24
  646. package/dist/components/ui/qr-code/qr-code.test.d.ts +0 -2
  647. package/dist/components/ui/qr-code/qr-code.test.d.ts.map +0 -1
  648. package/dist/components/ui/qr-code/qr-code.test.js +0 -60
  649. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +0 -2
  650. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +0 -1
  651. package/dist/components/ui/sidebar/sidebar-provider.test.js +0 -170
  652. package/dist/hooks/use-click-away.test.d.ts +0 -2
  653. package/dist/hooks/use-click-away.test.d.ts.map +0 -1
  654. package/dist/hooks/use-click-away.test.js +0 -39
  655. package/dist/hooks/use-stepper.test.d.ts +0 -2
  656. package/dist/hooks/use-stepper.test.d.ts.map +0 -1
  657. package/dist/hooks/use-stepper.test.js +0 -45
@@ -0,0 +1,11 @@
1
+ /**
2
+ * True while the viewport is narrower than the 768px mobile breakpoint.
3
+ *
4
+ * Always false on the FIRST render, server and client alike, so a narrow
5
+ * viewport can never produce a hydration mismatch; the effect corrects it
6
+ * before paint. Every reading comes from the media query itself rather than a
7
+ * mix of `matchMedia` and `window.innerWidth`, so the initial value and the
8
+ * change events can never disagree at the breakpoint boundary.
9
+ */
10
+ export declare function useIsMobile(): boolean;
11
+ //# sourceMappingURL=use-is-mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.d.ts","sourceRoot":"","sources":["../../src/enterprise/use-is-mobile.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,WAAW,YAY1B"}
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.useIsMobile = useIsMobile;
38
+ const React = __importStar(require("react"));
39
+ const MOBILE_BREAKPOINT = 768;
40
+ /**
41
+ * True while the viewport is narrower than the 768px mobile breakpoint.
42
+ *
43
+ * Always false on the FIRST render, server and client alike, so a narrow
44
+ * viewport can never produce a hydration mismatch; the effect corrects it
45
+ * before paint. Every reading comes from the media query itself rather than a
46
+ * mix of `matchMedia` and `window.innerWidth`, so the initial value and the
47
+ * change events can never disagree at the breakpoint boundary.
48
+ */
49
+ function useIsMobile() {
50
+ const [isMobile, setIsMobile] = React.useState(false);
51
+ React.useEffect(() => {
52
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
53
+ const onChange = () => setIsMobile(mql.matches);
54
+ onChange();
55
+ mql.addEventListener('change', onChange);
56
+ return () => mql.removeEventListener('change', onChange);
57
+ }, []);
58
+ return isMobile;
59
+ }
@@ -0,0 +1,26 @@
1
+ import { type ColumnDef } from '@tanstack/react-table';
2
+ export type VirtualizedTableProps<TData> = {
3
+ /** Same shape as DataTable: standard TanStack `ColumnDef<T>`. */
4
+ columns: ColumnDef<TData, unknown>[];
5
+ /** The full dataset, already in memory. Only the visible window renders. */
6
+ data: TData[];
7
+ /**
8
+ * Row height in px, fed to the virtualizer's `estimateSize`. Rows are
9
+ * rendered at this FIXED height — content taller than `rowHeight` will clip
10
+ * (cells use `truncate`). Use only for flat, single-line rows; this is not a
11
+ * variable-height table. Defaults to 40.
12
+ */
13
+ rowHeight?: number;
14
+ /**
15
+ * Max height of the scroll viewport (the inner overflow container, NOT the
16
+ * outer wrapper). A `number` is treated as px; a `string` is used verbatim
17
+ * (e.g. `'60vh'`). Defaults to `480` → `480px`.
18
+ */
19
+ maxHeight?: number | string;
20
+ /** Accessible name announced for the viewport while it is scrollable. */
21
+ scrollAreaLabel?: string;
22
+ /** Applied to the outer wrapper (the scroll container's parent). */
23
+ className?: string;
24
+ };
25
+ export declare function VirtualizedTable<TData>({ columns, data, rowHeight, maxHeight, scrollAreaLabel, className }: VirtualizedTableProps<TData>): import("react").JSX.Element;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/virtualized-table/index.tsx"],"names":[],"mappings":"AA+BA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAA;AAK9B,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IACzC,iEAAiE;IACjE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;IACpC,4EAA4E;IAC5E,IAAI,EAAE,KAAK,EAAE,CAAA;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,EACtC,OAAO,EACP,IAAI,EACJ,SAAc,EACd,SAAe,EACf,eAAyC,EACzC,SAAS,EACV,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAiM9B"}
@@ -0,0 +1,114 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VirtualizedTable = VirtualizedTable;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * VirtualizedTable — a windowed table for very large, flat datasets.
8
+ *
9
+ * Mirrors DataTable's column/data API (standard TanStack `ColumnDef<T>`, cells
10
+ * receive the row's `original`), so screens reuse the exact same column
11
+ * definitions. The difference is the rendering strategy: where DataTable
12
+ * renders every row, VirtualizedTable renders only the rows inside (and just
13
+ * past) the scroll viewport via `@tanstack/react-virtual`. Tens of thousands of
14
+ * rows stay scroll-smooth because the DOM only ever holds the visible window.
15
+ *
16
+ * Layout is div-based (role="table"/"row"/"cell"), not a real `<table>`:
17
+ * absolute positioning by `virtualItem.start` is incompatible with table
18
+ * layout, so a windowed table cannot use `<tbody>`. The header is a sibling
19
+ * above the scroll region: it stays put by layout (it simply sits above an
20
+ * overflow box), not via `position: sticky`. Inside the scroll container an
21
+ * inner spacer sized to `getTotalSize()` reserves the full scroll height, and
22
+ * each virtual row is absolutely positioned within that spacer.
23
+ *
24
+ * Rows are fixed-height (= `rowHeight`): cell content taller than `rowHeight`
25
+ * will clip — cells use `truncate`. This component is for flat, single-line
26
+ * datasets only; it does NOT measure rows, so it is not suitable for
27
+ * variable-height content.
28
+ *
29
+ * This is deliberately leaner than DataTable: no pagination, selection,
30
+ * keyboard nav, loading or empty affordances — it is the right tool only when
31
+ * the whole dataset is already in memory and the row count is the problem.
32
+ * For server-paged lists, reach for DataTable + CursorPager instead.
33
+ */
34
+ const react_1 = require("react");
35
+ const react_table_1 = require("@tanstack/react-table");
36
+ const react_virtual_1 = require("@tanstack/react-virtual");
37
+ const utils_1 = require("../../lib/utils");
38
+ /** Rows rendered just outside the viewport to keep fast scrolls smooth. */
39
+ const OVERSCAN = 8;
40
+ function VirtualizedTable({ columns, data, rowHeight = 40, maxHeight = 480, scrollAreaLabel = 'Scrollable table rows', className }) {
41
+ const scrollRef = (0, react_1.useRef)(null);
42
+ const [isScrollable, setIsScrollable] = (0, react_1.useState)(false);
43
+ // A number is px; a string is used verbatim (e.g. '60vh').
44
+ const viewportMaxHeight = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;
45
+ const table = (0, react_table_1.useReactTable)({
46
+ data,
47
+ columns,
48
+ getCoreRowModel: (0, react_table_1.getCoreRowModel)()
49
+ });
50
+ const rows = table.getRowModel().rows;
51
+ // Grouped columns (a ColumnDef with nested `columns`) render one header row
52
+ // per depth level, so the header is not always a single row.
53
+ const headerGroups = table.getHeaderGroups();
54
+ const headerRowCount = headerGroups.length;
55
+ // The table's real column geometry is its LEAF columns: a grouped ColumnDef
56
+ // contributes one spanning header cell but no column of its own, so counting
57
+ // top-level defs both under-reports aria-colcount and misplaces every
58
+ // aria-colindex to its right.
59
+ const leafColumns = table.getVisibleLeafColumns();
60
+ const leafPosition = new Map(leafColumns.map((column, i) => [column.id, i]));
61
+ const virtualizer = (0, react_virtual_1.useVirtualizer)({
62
+ count: rows.length,
63
+ getScrollElement: () => scrollRef.current,
64
+ estimateSize: () => rowHeight,
65
+ overscan: OVERSCAN
66
+ });
67
+ const virtualRows = virtualizer.getVirtualItems();
68
+ const totalSize = virtualizer.getTotalSize();
69
+ // `estimateSize` is read through a closure the virtualizer caches per item, so
70
+ // changing rowHeight leaves every already-measured row at its old size until
71
+ // the cache is dropped explicitly.
72
+ (0, react_1.useEffect)(() => {
73
+ virtualizer.measure();
74
+ }, [rowHeight, virtualizer]);
75
+ (0, react_1.useEffect)(() => {
76
+ const viewport = scrollRef.current;
77
+ if (!viewport)
78
+ return;
79
+ const updateScrollability = () => {
80
+ const nextIsScrollable = viewport.scrollHeight > viewport.clientHeight ||
81
+ viewport.scrollWidth > viewport.clientWidth;
82
+ setIsScrollable((current) => current === nextIsScrollable ? current : nextIsScrollable);
83
+ };
84
+ updateScrollability();
85
+ if (typeof ResizeObserver === 'undefined')
86
+ return;
87
+ const observer = new ResizeObserver(updateScrollability);
88
+ observer.observe(viewport);
89
+ const content = viewport.firstElementChild;
90
+ if (content)
91
+ observer.observe(content);
92
+ return () => observer.disconnect();
93
+ }, [totalSize, viewportMaxHeight]);
94
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('border-border bg-card text-card-foreground rounded-lg border', className), children: (0, jsx_runtime_1.jsxs)("div", { role: "table", "aria-rowcount": rows.length + headerRowCount, "aria-colcount": leafColumns.length, children: [(0, jsx_runtime_1.jsx)("div", { role: "rowgroup", className: "bg-card z-10", children: headerGroups.map((headerGroup, groupIndex) => ((0, jsx_runtime_1.jsx)("div", { role: "row", "aria-rowindex": groupIndex + 1, className: "border-border flex border-b", children: headerGroup.headers.map((header) => {
95
+ // Anchor the cell on its leftmost leaf column, so a spanning
96
+ // group reports the column it actually starts at rather than
97
+ // its position among its siblings.
98
+ const firstLeaf = header.column.getLeafColumns()[0];
99
+ const start = leafPosition.get(firstLeaf?.id ?? header.column.id);
100
+ return ((0, jsx_runtime_1.jsx)("div", { role: "columnheader", "aria-colindex": (start ?? 0) + 1, "aria-colspan": header.colSpan > 1 ? header.colSpan : undefined, style: { flex: `${header.colSpan} 1 0%` },
101
+ // Header height is independent of rowHeight: pinning it to a
102
+ // small rowHeight (32) clipped the uppercase label against its
103
+ // own padding. Padding sizes it; min-h keeps a stable rule.
104
+ className: "text-muted-foreground min-h-10 px-4 py-2.5 text-left text-xs font-medium tracking-wide uppercase", children: header.isPlaceholder
105
+ ? null
106
+ : (0, react_table_1.flexRender)(header.column.columnDef.header, header.getContext()) }, header.id));
107
+ }) }, headerGroup.id))) }), (0, jsx_runtime_1.jsx)("div", { ref: scrollRef, role: "rowgroup", "data-testid": "virtualized-table-viewport", "aria-label": isScrollable ? scrollAreaLabel : undefined, tabIndex: isScrollable ? 0 : undefined, className: "focus-visible:ring-ring relative overflow-auto focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none", style: { maxHeight: viewportMaxHeight }, children: (0, jsx_runtime_1.jsx)("div", { role: "presentation", className: "relative w-full", style: { height: totalSize }, children: virtualRows.map((virtualItem) => {
108
+ const row = rows[virtualItem.index];
109
+ return ((0, jsx_runtime_1.jsx)("div", { role: "row", "aria-rowindex": virtualItem.index + headerRowCount + 1, "data-index": virtualItem.index, className: "border-border absolute left-0 flex w-full items-center border-b text-sm", style: {
110
+ height: virtualItem.size,
111
+ transform: `translateY(${virtualItem.start}px)`
112
+ }, children: row.getVisibleCells().map((cell, i) => ((0, jsx_runtime_1.jsx)("div", { role: "cell", "aria-colindex": i + 1, className: "flex-1 truncate px-4", children: (0, react_table_1.flexRender)(cell.column.columnDef.cell, cell.getContext()) }, cell.id))) }, row.id));
113
+ }) }) })] }) }));
114
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Recharts wrapper family (shadcn canon).
3
+ *
4
+ * `ChartContainer` takes a `ChartConfig` keyed by series name and injects one
5
+ * `--color-<key>` CSS variable per series, scoped to that chart instance and
6
+ * emitted twice — once for light, once under `.dark` — so a chart re-colors
7
+ * with the theme without a re-render. Recharts series then reference
8
+ * `var(--color-<key>)`.
9
+ *
10
+ * Series colors come from the design tokens: pass `color: 'var(--color-chart-1)'`
11
+ * (the Tailwind `@theme` name, already wrapped in `hsl()`), never the raw
12
+ * `var(--chart-1)` triple, which is not a usable color value on its own.
13
+ */
14
+ import * as React from 'react';
15
+ import * as RechartsPrimitive from 'recharts';
16
+ import type { TooltipValueType } from 'recharts';
17
+ declare const THEMES: {
18
+ readonly light: "";
19
+ readonly dark: ".dark";
20
+ };
21
+ type TooltipNameType = number | string;
22
+ export type ChartConfig = Record<string, {
23
+ label?: React.ReactNode;
24
+ icon?: React.ComponentType;
25
+ } & ({
26
+ color?: string;
27
+ theme?: never;
28
+ } | {
29
+ color?: never;
30
+ theme: Record<keyof typeof THEMES, string>;
31
+ })>;
32
+ declare function ChartContainer({ id, className, children, config, ariaLabel, initialDimension, ...props }: React.ComponentProps<'div'> & {
33
+ config: ChartConfig;
34
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];
35
+ /**
36
+ * Accessible name for the chart. A non-empty string applies
37
+ * `role="img"` + `aria-label`; `false` marks the chart purely decorative
38
+ * with `aria-hidden`. `undefined` is treated as no name (no a11y attrs).
39
+ */
40
+ ariaLabel?: string | false;
41
+ initialDimension?: {
42
+ width: number;
43
+ height: number;
44
+ };
45
+ }): React.JSX.Element;
46
+ declare const ChartStyle: ({ id, config }: {
47
+ id: string;
48
+ config: ChartConfig;
49
+ }) => React.JSX.Element | null;
50
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
51
+ declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey }: React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<'div'> & {
52
+ hideLabel?: boolean;
53
+ hideIndicator?: boolean;
54
+ indicator?: 'line' | 'dot' | 'dashed';
55
+ nameKey?: string;
56
+ labelKey?: string;
57
+ } & Omit<RechartsPrimitive.DefaultTooltipContentProps<TooltipValueType, TooltipNameType>, 'accessibilityLayer'>): React.JSX.Element | null;
58
+ declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
59
+ declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey }: React.ComponentProps<'div'> & {
60
+ hideIcon?: boolean;
61
+ nameKey?: string;
62
+ } & RechartsPrimitive.DefaultLegendContentProps): React.JSX.Element | null;
63
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle };
64
+ //# sourceMappingURL=chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../src/charts/chart.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAKhD,QAAA,MAAM,MAAM;;;CAAwC,CAAA;AAqCpD,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAA;AAEtC,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,MAAM,EACN;IACE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC3B,GAAG,CACA;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACjC;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAChE,CACF,CAAA;AAkBD,iBAAS,cAAc,CAAC,EACtB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,SAAS,EACT,gBAAoC,EACpC,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC,cAAc,CAC5B,OAAO,iBAAiB,CAAC,mBAAmB,CAC7C,CAAC,UAAU,CAAC,CAAA;IACb;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC1B,gBAAgB,CAAC,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,qBAoCA;AAED,QAAA,MAAM,UAAU,GAAI,gBAAgB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,6BAqCtE,CAAA;AAED,QAAA,MAAM,YAAY,kCAA4B,CAAA;AAE9C,iBAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,KAAK,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,QAAQ,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,GACvD,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACrC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CACN,iBAAiB,CAAC,0BAA0B,CAC1C,gBAAgB,EAChB,eAAe,CAChB,EACD,oBAAoB,CACrB,4BA6HF;AAED,QAAA,MAAM,WAAW,sGAA2B,CAAA;AAE5C,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,QAAgB,EAChB,OAAO,EACP,aAAwB,EACxB,OAAO,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,iBAAiB,CAAC,yBAAyB,4BA4C9C;AAuCD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACX,CAAA"}
@@ -0,0 +1,191 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * Recharts wrapper family (shadcn canon).
5
+ *
6
+ * `ChartContainer` takes a `ChartConfig` keyed by series name and injects one
7
+ * `--color-<key>` CSS variable per series, scoped to that chart instance and
8
+ * emitted twice — once for light, once under `.dark` — so a chart re-colors
9
+ * with the theme without a re-render. Recharts series then reference
10
+ * `var(--color-<key>)`.
11
+ *
12
+ * Series colors come from the design tokens: pass `color: 'var(--color-chart-1)'`
13
+ * (the Tailwind `@theme` name, already wrapped in `hsl()`), never the raw
14
+ * `var(--chart-1)` triple, which is not a usable color value on its own.
15
+ */
16
+ import * as React from 'react';
17
+ import * as RechartsPrimitive from 'recharts';
18
+ import { cn } from '../lib/utils.js';
19
+ // Format: { THEME_NAME: CSS_SELECTOR }
20
+ const THEMES = { light: '', dark: '.dark' };
21
+ /**
22
+ * ChartStyle writes a stylesheet through `dangerouslySetInnerHTML`, so every
23
+ * interpolated value is an injection sink: `</style>` inside a config key, id,
24
+ * or color would close the element and let arbitrary markup follow. Config
25
+ * often carries server data (series names from an API), so these are validated
26
+ * rather than trusted.
27
+ *
28
+ * CSS_IDENT — the chart id, which lands in an UNQUOTED attribute selector and
29
+ * so may not lead with a digit.
30
+ * CONFIG_KEY — series keys, which become `--color-<key>` custom-property names.
31
+ * Custom properties DO allow a leading digit, so a numeric series (a year, say)
32
+ * must pass; only CSS syntax is excluded.
33
+ */
34
+ const CSS_IDENT = /^[A-Za-z_][\w-]*$/;
35
+ const CONFIG_KEY = /^[\w-]+$/;
36
+ /**
37
+ * A deliberately conservative character allowlist covering hex, named, `var(…)`,
38
+ * `rgb()/hsl()/color-mix()` and slash-alpha forms. It admits no `<`, `>`, `{`,
39
+ * `}`, `;`, `:`, quote, backslash, `@`, `*` or `!`, which rules out tag-closing,
40
+ * rule termination, comments, at-rules and `!important`.
41
+ *
42
+ * `url(…)` is rejected separately: the allowlist alone would pass an unquoted
43
+ * `url(//evil.test/pixel.png)` — no colon or quote required — which the browser
44
+ * would fetch, leaking the viewer's IP and referrer to a third party. The
45
+ * whitespace tolerance covers `url (…)` variants.
46
+ */
47
+ const CSS_COLOR = /^[\w\s#%.,()/-]+$/;
48
+ const CSS_URL = /url\s*\(/i;
49
+ function isSafeColor(color) {
50
+ return CSS_COLOR.test(color) && !CSS_URL.test(color);
51
+ }
52
+ const INITIAL_DIMENSION = { width: 320, height: 200 };
53
+ const ChartContext = React.createContext(null);
54
+ function useChart() {
55
+ const context = React.useContext(ChartContext);
56
+ if (!context) {
57
+ throw new Error('useChart must be used within a <ChartContainer />');
58
+ }
59
+ return context;
60
+ }
61
+ function ChartContainer({ id, className, children, config, ariaLabel, initialDimension = INITIAL_DIMENSION, ...props }) {
62
+ const uniqueId = React.useId();
63
+ // chartId lands in BOTH a DOM attribute and a CSS attribute selector, so the
64
+ // two must agree and neither may carry syntax — strip to [\w-] once, here.
65
+ const chartId = `chart-${(id ?? uniqueId).replace(/[^\w-]/g, '')}`;
66
+ // Resolve the accessibility contract for the container element:
67
+ // named → expose as an image with that name; false → hide from a11y tree.
68
+ const a11yProps = typeof ariaLabel === 'string' && ariaLabel.length > 0
69
+ ? { role: 'img', 'aria-label': ariaLabel }
70
+ : ariaLabel === false
71
+ ? { 'aria-hidden': true }
72
+ : {};
73
+ return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { "data-slot": "chart", "data-chart": chartId, ...a11yProps, className: cn("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), _jsx(RechartsPrimitive.ResponsiveContainer, { initialDimension: initialDimension, children: children })] }) }));
74
+ }
75
+ const ChartStyle = ({ id, config }) => {
76
+ // An id that cannot be written as a CSS identifier cannot be scoped safely,
77
+ // and an unscoped rule would leak across every chart on the page.
78
+ if (!CSS_IDENT.test(id)) {
79
+ return null;
80
+ }
81
+ const colorConfig = Object.entries(config).filter(([key, config]) => CONFIG_KEY.test(key) && (config.theme ?? config.color));
82
+ if (!colorConfig.length) {
83
+ return null;
84
+ }
85
+ return (_jsx("style", { dangerouslySetInnerHTML: {
86
+ __html: Object.entries(THEMES)
87
+ .map(([theme, prefix]) => `
88
+ ${prefix} [data-chart=${id}] {
89
+ ${colorConfig
90
+ .map(([key, itemConfig]) => {
91
+ const color = itemConfig.theme?.[theme] ??
92
+ itemConfig.color;
93
+ return color && isSafeColor(color) ? ` --color-${key}: ${color};` : null;
94
+ })
95
+ .join('\n')}
96
+ }
97
+ `)
98
+ .join('\n')
99
+ } }));
100
+ };
101
+ const ChartTooltip = RechartsPrimitive.Tooltip;
102
+ function ChartTooltipContent({ active, payload, className, indicator = 'dot', hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey }) {
103
+ const { config } = useChart();
104
+ const tooltipLabel = React.useMemo(() => {
105
+ if (hideLabel || !payload?.length) {
106
+ return null;
107
+ }
108
+ const [item] = payload;
109
+ const key = `${labelKey ?? item?.dataKey ?? item?.name ?? 'value'}`;
110
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
111
+ const value = !labelKey && typeof label === 'string'
112
+ ? (config[label]?.label ?? label)
113
+ : itemConfig?.label;
114
+ if (labelFormatter) {
115
+ return (_jsx("div", { className: cn('font-medium', labelClassName), children: labelFormatter(value, payload) }));
116
+ }
117
+ if (!value) {
118
+ return null;
119
+ }
120
+ return _jsx("div", { className: cn('font-medium', labelClassName), children: value });
121
+ }, [
122
+ label,
123
+ labelFormatter,
124
+ payload,
125
+ hideLabel,
126
+ labelClassName,
127
+ config,
128
+ labelKey
129
+ ]);
130
+ if (!active || !payload?.length) {
131
+ return null;
132
+ }
133
+ const nestLabel = payload.length === 1 && indicator !== 'dot';
134
+ return (_jsxs("div", { className: cn('border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl', className), children: [!nestLabel ? tooltipLabel : null, _jsx("div", { className: "grid gap-1.5", children: payload
135
+ .filter((item) => item.type !== 'none')
136
+ .map((item, index) => {
137
+ const key = `${nameKey ?? item.name ?? item.dataKey ?? 'value'}`;
138
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
139
+ const indicatorColor = color ?? item.payload?.fill ?? item.color;
140
+ return (_jsx("div", { className: cn('[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5', indicator === 'dot' && 'items-center'), children: formatter && item?.value !== undefined && item.name ? (formatter(item.value, item.name, item, index, item.payload)) : (_jsxs(_Fragment, { children: [itemConfig?.icon ? (_jsx(itemConfig.icon, {})) : (!hideIndicator && (_jsx("div", { className: cn('shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)', {
141
+ 'h-2.5 w-2.5': indicator === 'dot',
142
+ 'w-1': indicator === 'line',
143
+ 'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',
144
+ 'my-0.5': nestLabel && indicator === 'dashed'
145
+ }), style: {
146
+ '--color-bg': indicatorColor,
147
+ '--color-border': indicatorColor
148
+ } }))), _jsxs("div", { className: cn('flex flex-1 justify-between leading-none', nestLabel ? 'items-end' : 'items-center'), children: [_jsxs("div", { className: "grid gap-1.5", children: [nestLabel ? tooltipLabel : null, _jsx("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })] }), item.value != null && (_jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: typeof item.value === 'number'
149
+ ? item.value.toLocaleString()
150
+ : String(item.value) }))] })] })) }, index));
151
+ }) })] }));
152
+ }
153
+ const ChartLegend = RechartsPrimitive.Legend;
154
+ function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }) {
155
+ const { config } = useChart();
156
+ if (!payload?.length) {
157
+ return null;
158
+ }
159
+ return (_jsx("div", { className: cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className), children: payload
160
+ .filter((item) => item.type !== 'none')
161
+ .map((item, index) => {
162
+ const key = `${nameKey ?? item.dataKey ?? 'value'}`;
163
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
164
+ return (_jsxs("div", { className: cn('[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3'), children: [itemConfig?.icon && !hideIcon ? (_jsx(itemConfig.icon, {})) : (_jsx("div", { className: "h-2 w-2 shrink-0 rounded-[2px]", style: {
165
+ backgroundColor: item.color
166
+ } })), itemConfig?.label] }, index));
167
+ }) }));
168
+ }
169
+ // Helper to extract item config from a payload.
170
+ function getPayloadConfigFromPayload(config, payload, key) {
171
+ if (typeof payload !== 'object' || payload === null) {
172
+ return undefined;
173
+ }
174
+ const payloadPayload = 'payload' in payload &&
175
+ typeof payload.payload === 'object' &&
176
+ payload.payload !== null
177
+ ? payload.payload
178
+ : undefined;
179
+ let configLabelKey = key;
180
+ if (key in payload &&
181
+ typeof payload[key] === 'string') {
182
+ configLabelKey = payload[key];
183
+ }
184
+ else if (payloadPayload &&
185
+ key in payloadPayload &&
186
+ typeof payloadPayload[key] === 'string') {
187
+ configLabelKey = payloadPayload[key];
188
+ }
189
+ return configLabelKey in config ? config[configLabelKey] : config[key];
190
+ }
191
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle };
@@ -0,0 +1,3 @@
1
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent } from './chart.js';
2
+ export type { ChartConfig } from './chart.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/charts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,3 @@
1
+ // Owned by lane theme-toasts-charts — see docs/plans/2026-08-26-sindarian-x-retirement/
2
+ // ChartStyle stays internal: it is an implementation detail of ChartContainer.
3
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent } from './chart.js';
@@ -0,0 +1,10 @@
1
+ import { BreadcrumbPath } from './index.js';
2
+ type BreadcrumbPathTabs = (BreadcrumbPath & {
3
+ active?: () => boolean;
4
+ })[];
5
+ export declare function getBreadcrumbPaths(paths: BreadcrumbPathTabs): {
6
+ name: string;
7
+ href?: string;
8
+ }[];
9
+ export {};
10
+ //# sourceMappingURL=get-breadcrumb-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-breadcrumb-paths.d.ts","sourceRoot":"","sources":["../../../../src/components/breadcrumb/get-breadcrumb-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAA;AAGlC,KAAK,kBAAkB,GAAG,CAAC,cAAc,GAAG;IAC1C,MAAM,CAAC,EAAE,MAAM,OAAO,CAAA;CACvB,CAAC,EAAE,CAAA;AAEJ,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB;;;IAa3D"}
@@ -0,0 +1,12 @@
1
+ import isNil from 'lodash/isNil.js';
2
+ export function getBreadcrumbPaths(paths) {
3
+ return (paths
4
+ .filter((path) => {
5
+ if (isNil(path.active)) {
6
+ return true;
7
+ }
8
+ return path.active();
9
+ })
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
+ .map(({ active, ...path }) => path));
12
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export type BreadcrumbPath = {
3
+ name: string;
4
+ href?: string;
5
+ };
6
+ type BreadcrumbProps = {
7
+ paths: BreadcrumbPath[];
8
+ };
9
+ export declare const Breadcrumb: ({ paths }: BreadcrumbProps) => React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/breadcrumb/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,WAAW,eAAe,sBAoBpD,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Breadcrumb as BaseBreadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from '../../components/ui/breadcrumb/index.js';
4
+ export const Breadcrumb = ({ paths }) => {
5
+ return (_jsx(BaseBreadcrumb, { children: _jsx(BreadcrumbList, { children: paths.map((path, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: path.href ? (_jsx(BreadcrumbLink, { href: path.href, children: path.name })) : (_jsx(BreadcrumbPage, { children: path.name })) }), _jsx(BreadcrumbSeparator, {})] }, index))) }) }));
6
+ };
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { Collapsible } from '@radix-ui/react-collapsible';
3
+ import { Button } from '../../../components/ui/button/index.js';
4
+ import { LucideProps } from 'lucide-react';
5
+ import { CollapsibleContent } from '../../../components/ui/collapsible/index.js';
6
+ export declare function AccountBalanceCard({ className, open, onOpenChange, children, ...props }: React.ComponentProps<typeof Collapsible>): React.JSX.Element;
7
+ export declare function AccountBalanceCardIcon({ className, ...props }: LucideProps): React.JSX.Element;
8
+ export declare function AccountBalanceCardHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
9
+ export declare function AccountBalanceCardTitle({ className, ...props }: React.ComponentProps<'p'>): React.JSX.Element;
10
+ export declare function AccountBalanceCardDeleteButton({ className, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
11
+ export declare function AccountBalanceCardContent({ className, ...props }: React.ComponentProps<typeof CollapsibleContent>): React.JSX.Element;
12
+ export declare function AccountBalanceCardLoading({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
13
+ export declare function AccountBalanceCardEmpty({ className, ...props }: React.ComponentProps<'p'>): React.JSX.Element;
14
+ export type AccountBalanceCardInfoProps = React.ComponentProps<'div'> & {
15
+ assetCode: string;
16
+ value: string;
17
+ };
18
+ export declare function AccountBalanceCardInfo({ className, assetCode, value, children: _children, ref, ...props }: AccountBalanceCardInfoProps): React.JSX.Element;
19
+ export type AccountBalanceCardUpdateButtonProps = React.ComponentProps<typeof Button> & {
20
+ loading?: boolean;
21
+ timestamp: number;
22
+ loadingLabel?: string;
23
+ updatedInLabel?: string;
24
+ updatedLabel?: string;
25
+ onRefresh: () => void;
26
+ };
27
+ export declare function AccountBalanceCardUpdateButton({ className: _className, loading, timestamp, loadingLabel, updatedInLabel, updatedLabel, onRefresh, children: _children, ref, ...props }: AccountBalanceCardUpdateButtonProps): React.JSX.Element;
28
+ export declare function AccountBalanceCardTrigger({ className, openLabel, closeLabel, children: _children, ...props }: React.ComponentProps<typeof Button> & {
29
+ openLabel?: string;
30
+ closeLabel?: string;
31
+ }): React.JSX.Element;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/card/account-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAGzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAgB,WAAW,EAA0B,MAAM,cAAc,CAAA;AAChF,OAAO,EACL,kBAAkB,EAEnB,MAAM,6BAA6B,CAAA;AAUpC,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,qBAc1C;AAED,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,qBAS1E;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQ3B;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,qBAarC;AAED,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,qBAWjD;AAED,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAW3B;AAED,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IACtE,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,EAAE,SAAS,EACnB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,2BAA2B,qBAe7B;AAED,MAAM,MAAM,mCAAmC,GAAG,KAAK,CAAC,cAAc,CACpE,OAAO,MAAM,CACd,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,SAAS,EAAE,UAAU,EACrB,OAAO,EACP,SAAS,EACT,YAA4B,EAC5B,cAA6B,EAC7B,YAAwB,EACxB,SAAS,EACT,QAAQ,EAAE,SAAS,EACnB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,mCAAmC,qBAgCrC;AAED,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EAAE,SAAS,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,qBAeA"}