@lerianstudio/sindarian-ui 1.2.0 → 1.3.0-beta.2

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 (661) 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 +64 -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 +36 -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.d.ts +1 -1
  32. package/dist/components/ui/autocomplete/index.d.ts.map +1 -1
  33. package/dist/components/ui/autocomplete/index.js +45 -9
  34. package/dist/components/ui/badge/index.d.ts.map +1 -1
  35. package/dist/components/ui/badge/index.js +2 -2
  36. package/dist/components/ui/button/index.d.ts.map +1 -1
  37. package/dist/components/ui/button/index.js +1 -1
  38. package/dist/components/ui/copy-field/index.d.ts +56 -0
  39. package/dist/components/ui/copy-field/index.d.ts.map +1 -0
  40. package/dist/components/ui/copy-field/index.js +155 -0
  41. package/dist/components/ui/dialog/styles.css +3 -3
  42. package/dist/components/ui/file-upload/index.d.ts +94 -0
  43. package/dist/components/ui/file-upload/index.d.ts.map +1 -0
  44. package/dist/components/ui/file-upload/index.js +237 -0
  45. package/dist/components/ui/hover-card/index.d.ts +7 -0
  46. package/dist/components/ui/hover-card/index.d.ts.map +1 -0
  47. package/dist/components/ui/hover-card/index.js +51 -0
  48. package/dist/components/ui/icon-button/styles.css +24 -24
  49. package/dist/components/ui/input/index.d.ts.map +1 -1
  50. package/dist/components/ui/input/index.js +6 -5
  51. package/dist/components/ui/input/styles.css +6 -2
  52. package/dist/components/ui/otp-input/index.d.ts.map +1 -1
  53. package/dist/components/ui/otp-input/index.js +1 -1
  54. package/dist/components/ui/qr-code/index.d.ts +26 -0
  55. package/dist/components/ui/qr-code/index.d.ts.map +1 -0
  56. package/dist/components/ui/qr-code/index.js +27 -0
  57. package/dist/components/ui/radio-group/index.d.ts +6 -0
  58. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  59. package/dist/components/ui/radio-group/index.js +48 -0
  60. package/dist/components/ui/scroll-area/index.d.ts +6 -0
  61. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  62. package/dist/components/ui/scroll-area/index.js +49 -0
  63. package/dist/components/ui/sidebar/index.d.ts +1 -0
  64. package/dist/components/ui/sidebar/index.d.ts.map +1 -1
  65. package/dist/components/ui/sidebar/index.js +1 -0
  66. package/dist/components/ui/sidebar/next-router.cjs +119 -0
  67. package/dist/components/ui/sidebar/next-router.d.cts +7 -0
  68. package/dist/components/ui/sidebar/sidebar-item-button.d.ts +2 -2
  69. package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -1
  70. package/dist/components/ui/sidebar/sidebar-item-button.js +3 -5
  71. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +3 -3
  72. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -1
  73. package/dist/components/ui/sidebar/sidebar-item-icon-button.js +5 -7
  74. package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -1
  75. package/dist/components/ui/sidebar/sidebar-item.js +3 -2
  76. package/dist/components/ui/sidebar/sidebar-router.d.ts +82 -0
  77. package/dist/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
  78. package/dist/components/ui/sidebar/sidebar-router.js +126 -0
  79. package/dist/components/ui/toast/index.d.ts +1 -1
  80. package/dist/components/ui/toast/index.d.ts.map +1 -1
  81. package/dist/components/ui/toggle-group/index.d.ts +18 -0
  82. package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
  83. package/dist/components/ui/toggle-group/index.js +87 -0
  84. package/dist/domain/blotter/index.d.ts +40 -0
  85. package/dist/domain/blotter/index.d.ts.map +1 -0
  86. package/dist/domain/blotter/index.js +16 -0
  87. package/dist/domain/delinquency-aging/aging-buckets.d.ts +57 -0
  88. package/dist/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
  89. package/dist/domain/delinquency-aging/aging-buckets.js +110 -0
  90. package/dist/domain/delinquency-aging/index.d.ts +71 -0
  91. package/dist/domain/delinquency-aging/index.d.ts.map +1 -0
  92. package/dist/domain/delinquency-aging/index.js +213 -0
  93. package/dist/domain/figure/index.d.ts +30 -0
  94. package/dist/domain/figure/index.d.ts.map +1 -0
  95. package/dist/domain/figure/index.js +18 -0
  96. package/dist/domain/format.d.ts +79 -0
  97. package/dist/domain/format.d.ts.map +1 -0
  98. package/dist/domain/format.js +137 -0
  99. package/dist/domain/index.d.ts +23 -0
  100. package/dist/domain/index.d.ts.map +1 -0
  101. package/dist/domain/index.js +43 -0
  102. package/dist/domain/key-id/index.d.ts +31 -0
  103. package/dist/domain/key-id/index.d.ts.map +1 -0
  104. package/dist/domain/key-id/index.js +174 -0
  105. package/dist/domain/ledger-sheet/index.d.ts +45 -0
  106. package/dist/domain/ledger-sheet/index.d.ts.map +1 -0
  107. package/dist/domain/ledger-sheet/index.js +28 -0
  108. package/dist/domain/money-diff.d.ts +28 -0
  109. package/dist/domain/money-diff.d.ts.map +1 -0
  110. package/dist/domain/money-diff.js +48 -0
  111. package/dist/domain/money-math.d.ts +32 -0
  112. package/dist/domain/money-math.d.ts.map +1 -0
  113. package/dist/domain/money-math.js +104 -0
  114. package/dist/domain/money-text/index.d.ts +37 -0
  115. package/dist/domain/money-text/index.d.ts.map +1 -0
  116. package/dist/domain/money-text/index.js +115 -0
  117. package/dist/domain/section-label/index.d.ts +21 -0
  118. package/dist/domain/section-label/index.d.ts.map +1 -0
  119. package/dist/domain/section-label/index.js +13 -0
  120. package/dist/domain/status-rail/index.d.ts +40 -0
  121. package/dist/domain/status-rail/index.d.ts.map +1 -0
  122. package/dist/domain/status-rail/index.js +72 -0
  123. package/dist/domain/threshold-gauge/index.d.ts +84 -0
  124. package/dist/domain/threshold-gauge/index.d.ts.map +1 -0
  125. package/dist/domain/threshold-gauge/index.js +157 -0
  126. package/dist/enterprise/alert-banner/index.d.ts +30 -0
  127. package/dist/enterprise/alert-banner/index.d.ts.map +1 -0
  128. package/dist/enterprise/alert-banner/index.js +24 -0
  129. package/dist/enterprise/app-shell/index.d.ts +61 -0
  130. package/dist/enterprise/app-shell/index.d.ts.map +1 -0
  131. package/dist/enterprise/app-shell/index.js +87 -0
  132. package/dist/enterprise/cursor-pager/index.d.ts +21 -0
  133. package/dist/enterprise/cursor-pager/index.d.ts.map +1 -0
  134. package/dist/enterprise/cursor-pager/index.js +26 -0
  135. package/dist/enterprise/data-table/index.d.ts +88 -0
  136. package/dist/enterprise/data-table/index.d.ts.map +1 -0
  137. package/dist/enterprise/data-table/index.js +245 -0
  138. package/dist/enterprise/date-range-picker/index.d.ts +37 -0
  139. package/dist/enterprise/date-range-picker/index.d.ts.map +1 -0
  140. package/dist/enterprise/date-range-picker/index.js +92 -0
  141. package/dist/enterprise/detail-panel/index.d.ts +54 -0
  142. package/dist/enterprise/detail-panel/index.d.ts.map +1 -0
  143. package/dist/enterprise/detail-panel/index.js +20 -0
  144. package/dist/enterprise/empty-state/index.d.ts +32 -0
  145. package/dist/enterprise/empty-state/index.d.ts.map +1 -0
  146. package/dist/enterprise/empty-state/index.js +13 -0
  147. package/dist/enterprise/index.d.ts +26 -0
  148. package/dist/enterprise/index.d.ts.map +1 -0
  149. package/dist/enterprise/index.js +39 -0
  150. package/dist/enterprise/number-input/index.d.ts +55 -0
  151. package/dist/enterprise/number-input/index.d.ts.map +1 -0
  152. package/dist/enterprise/number-input/index.js +252 -0
  153. package/dist/enterprise/search-input/index.d.ts +32 -0
  154. package/dist/enterprise/search-input/index.d.ts.map +1 -0
  155. package/dist/enterprise/search-input/index.js +121 -0
  156. package/dist/enterprise/stat-card/index.d.ts +43 -0
  157. package/dist/enterprise/stat-card/index.d.ts.map +1 -0
  158. package/dist/enterprise/stat-card/index.js +67 -0
  159. package/dist/enterprise/status-badge/index.d.ts +31 -0
  160. package/dist/enterprise/status-badge/index.d.ts.map +1 -0
  161. package/dist/enterprise/status-badge/index.js +120 -0
  162. package/dist/enterprise/use-is-mobile.d.ts +20 -0
  163. package/dist/enterprise/use-is-mobile.d.ts.map +1 -0
  164. package/dist/enterprise/use-is-mobile.js +68 -0
  165. package/dist/enterprise/virtualized-table/index.d.ts +26 -0
  166. package/dist/enterprise/virtualized-table/index.d.ts.map +1 -0
  167. package/dist/enterprise/virtualized-table/index.js +114 -0
  168. package/dist/esm/charts/chart.d.ts +64 -0
  169. package/dist/esm/charts/chart.d.ts.map +1 -0
  170. package/dist/esm/charts/chart.js +191 -0
  171. package/dist/esm/charts/index.d.ts +3 -0
  172. package/dist/esm/charts/index.d.ts.map +1 -0
  173. package/dist/esm/charts/index.js +3 -0
  174. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts +10 -0
  175. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts.map +1 -0
  176. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.js +12 -0
  177. package/dist/esm/components/breadcrumb/index.d.ts +11 -0
  178. package/dist/esm/components/breadcrumb/index.d.ts.map +1 -0
  179. package/dist/esm/components/breadcrumb/index.js +6 -0
  180. package/dist/esm/components/card/account-card/index.d.ts +32 -0
  181. package/dist/esm/components/card/account-card/index.d.ts.map +1 -0
  182. package/dist/esm/components/card/account-card/index.js +53 -0
  183. package/dist/esm/components/card/basic-card/index.d.ts +6 -0
  184. package/dist/esm/components/card/basic-card/index.d.ts.map +1 -0
  185. package/dist/esm/components/card/basic-card/index.js +14 -0
  186. package/dist/esm/components/card/dashboard-card/index.d.ts +5 -0
  187. package/dist/esm/components/card/dashboard-card/index.d.ts.map +1 -0
  188. package/dist/esm/components/card/dashboard-card/index.js +14 -0
  189. package/dist/esm/components/card/entity-card/index.d.ts +22 -0
  190. package/dist/esm/components/card/entity-card/index.d.ts.map +1 -0
  191. package/dist/esm/components/card/entity-card/index.js +48 -0
  192. package/dist/esm/components/card/index.d.ts +5 -0
  193. package/dist/esm/components/card/index.d.ts.map +1 -0
  194. package/dist/esm/components/card/index.js +4 -0
  195. package/dist/esm/components/dialog/confirmation-dialog/index.d.ts +16 -0
  196. package/dist/esm/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
  197. package/dist/esm/components/dialog/confirmation-dialog/index.js +25 -0
  198. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
  199. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
  200. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.js +49 -0
  201. package/dist/esm/components/dialog/index.d.ts +4 -0
  202. package/dist/esm/components/dialog/index.d.ts.map +1 -0
  203. package/dist/esm/components/dialog/index.js +3 -0
  204. package/dist/esm/components/dialog/large-dialog/index.d.ts +11 -0
  205. package/dist/esm/components/dialog/large-dialog/index.d.ts.map +1 -0
  206. package/dist/esm/components/dialog/large-dialog/index.js +16 -0
  207. package/dist/esm/components/entity-box/index.d.ts +17 -0
  208. package/dist/esm/components/entity-box/index.d.ts.map +1 -0
  209. package/dist/esm/components/entity-box/index.js +31 -0
  210. package/dist/esm/components/entity-data-table/index.d.ts +17 -0
  211. package/dist/esm/components/entity-data-table/index.d.ts.map +1 -0
  212. package/dist/esm/components/entity-data-table/index.js +17 -0
  213. package/dist/esm/components/form/combo-box-field/index.d.ts +14 -0
  214. package/dist/esm/components/form/combo-box-field/index.d.ts.map +1 -0
  215. package/dist/esm/components/form/combo-box-field/index.js +28 -0
  216. package/dist/esm/components/form/country-field/index.d.ts +5 -0
  217. package/dist/esm/components/form/country-field/index.d.ts.map +1 -0
  218. package/dist/esm/components/form/country-field/index.js +7 -0
  219. package/dist/esm/components/form/date-picker-field/index.d.ts +21 -0
  220. package/dist/esm/components/form/date-picker-field/index.d.ts.map +1 -0
  221. package/dist/esm/components/form/date-picker-field/index.js +38 -0
  222. package/dist/esm/components/form/date-range-field/index.d.ts +21 -0
  223. package/dist/esm/components/form/date-range-field/index.d.ts.map +1 -0
  224. package/dist/esm/components/form/date-range-field/index.js +17 -0
  225. package/dist/esm/components/form/date-time-picker-field/index.d.ts +23 -0
  226. package/dist/esm/components/form/date-time-picker-field/index.d.ts.map +1 -0
  227. package/dist/esm/components/form/date-time-picker-field/index.js +73 -0
  228. package/dist/esm/components/form/file-upload-field/index.d.ts +52 -0
  229. package/dist/esm/components/form/file-upload-field/index.d.ts.map +1 -0
  230. package/dist/esm/components/form/file-upload-field/index.js +60 -0
  231. package/dist/esm/components/form/index.d.ts +16 -0
  232. package/dist/esm/components/form/index.d.ts.map +1 -0
  233. package/dist/esm/components/form/index.js +15 -0
  234. package/dist/esm/components/form/input-field/index.d.ts +26 -0
  235. package/dist/esm/components/form/input-field/index.d.ts.map +1 -0
  236. package/dist/esm/components/form/input-field/index.js +10 -0
  237. package/dist/esm/components/form/otp-field/index.d.ts +18 -0
  238. package/dist/esm/components/form/otp-field/index.d.ts.map +1 -0
  239. package/dist/esm/components/form/otp-field/index.js +15 -0
  240. package/dist/esm/components/form/pagination-limit-field/index.d.ts +9 -0
  241. package/dist/esm/components/form/pagination-limit-field/index.d.ts.map +1 -0
  242. package/dist/esm/components/form/pagination-limit-field/index.js +6 -0
  243. package/dist/esm/components/form/password-field/index.d.ts +14 -0
  244. package/dist/esm/components/form/password-field/index.d.ts.map +1 -0
  245. package/dist/esm/components/form/password-field/index.js +10 -0
  246. package/dist/esm/components/form/radio-group-field/index.d.ts +32 -0
  247. package/dist/esm/components/form/radio-group-field/index.d.ts.map +1 -0
  248. package/dist/esm/components/form/radio-group-field/index.js +32 -0
  249. package/dist/esm/components/form/renderable-label.d.ts +35 -0
  250. package/dist/esm/components/form/renderable-label.d.ts.map +1 -0
  251. package/dist/esm/components/form/renderable-label.js +54 -0
  252. package/dist/esm/components/form/select-field/index.d.ts +20 -0
  253. package/dist/esm/components/form/select-field/index.d.ts.map +1 -0
  254. package/dist/esm/components/form/select-field/index.js +16 -0
  255. package/dist/esm/components/form/state-field/index.d.ts +10 -0
  256. package/dist/esm/components/form/state-field/index.d.ts.map +1 -0
  257. package/dist/esm/components/form/state-field/index.js +35 -0
  258. package/dist/esm/components/form/switch-field/index.d.ts +15 -0
  259. package/dist/esm/components/form/switch-field/index.d.ts.map +1 -0
  260. package/dist/esm/components/form/switch-field/index.js +7 -0
  261. package/dist/esm/components/form/textarea-field/index.d.ts +31 -0
  262. package/dist/esm/components/form/textarea-field/index.d.ts.map +1 -0
  263. package/dist/esm/components/form/textarea-field/index.js +19 -0
  264. package/dist/esm/components/page/index.d.ts +4 -0
  265. package/dist/esm/components/page/index.d.ts.map +1 -0
  266. package/dist/esm/components/page/index.js +11 -0
  267. package/dist/esm/components/page-header/index.d.ts +33 -0
  268. package/dist/esm/components/page-header/index.d.ts.map +1 -0
  269. package/dist/esm/components/page-header/index.js +40 -0
  270. package/dist/esm/components/pagination/index.d.ts +8 -0
  271. package/dist/esm/components/pagination/index.d.ts.map +1 -0
  272. package/dist/esm/components/pagination/index.js +6 -0
  273. package/dist/esm/components/table/id-table-cell.d.ts +7 -0
  274. package/dist/esm/components/table/id-table-cell.d.ts.map +1 -0
  275. package/dist/esm/components/table/id-table-cell.js +12 -0
  276. package/dist/esm/components/table/index.d.ts +3 -0
  277. package/dist/esm/components/table/index.d.ts.map +1 -0
  278. package/dist/esm/components/table/index.js +2 -0
  279. package/dist/esm/components/table/locked-table-actions.d.ts +7 -0
  280. package/dist/esm/components/table/locked-table-actions.d.ts.map +1 -0
  281. package/dist/esm/components/table/locked-table-actions.js +7 -0
  282. package/dist/esm/components/table/name-table-cell.d.ts +6 -0
  283. package/dist/esm/components/table/name-table-cell.d.ts.map +1 -0
  284. package/dist/esm/components/table/name-table-cell.js +6 -0
  285. package/dist/esm/components/ui/accordion/index.d.ts +14 -0
  286. package/dist/esm/components/ui/accordion/index.d.ts.map +1 -0
  287. package/dist/esm/components/ui/accordion/index.js +24 -0
  288. package/dist/esm/components/ui/alert/index.d.ts +15 -0
  289. package/dist/esm/components/ui/alert/index.d.ts.map +1 -0
  290. package/dist/esm/components/ui/alert/index.js +38 -0
  291. package/dist/esm/components/ui/alert-dialog/index.d.ts +15 -0
  292. package/dist/esm/components/ui/alert-dialog/index.d.ts.map +1 -0
  293. package/dist/esm/components/ui/alert-dialog/index.js +39 -0
  294. package/dist/esm/components/ui/autocomplete/index.d.ts +54 -0
  295. package/dist/esm/components/ui/autocomplete/index.d.ts.map +1 -0
  296. package/dist/esm/components/ui/autocomplete/index.js +312 -0
  297. package/dist/esm/components/ui/autosize-textarea/index.d.ts +15 -0
  298. package/dist/esm/components/ui/autosize-textarea/index.d.ts.map +1 -0
  299. package/dist/esm/components/ui/autosize-textarea/index.js +51 -0
  300. package/dist/esm/components/ui/avatar/index.d.ts +7 -0
  301. package/dist/esm/components/ui/avatar/index.d.ts.map +1 -0
  302. package/dist/esm/components/ui/avatar/index.js +14 -0
  303. package/dist/esm/components/ui/badge/index.d.ts +11 -0
  304. package/dist/esm/components/ui/badge/index.d.ts.map +1 -0
  305. package/dist/esm/components/ui/badge/index.js +29 -0
  306. package/dist/esm/components/ui/breadcrumb/index.d.ts +12 -0
  307. package/dist/esm/components/ui/breadcrumb/index.d.ts.map +1 -0
  308. package/dist/esm/components/ui/breadcrumb/index.js +27 -0
  309. package/dist/esm/components/ui/button/index.d.ts +22 -0
  310. package/dist/esm/components/ui/button/index.d.ts.map +1 -0
  311. package/dist/esm/components/ui/button/index.js +59 -0
  312. package/dist/esm/components/ui/calendar/index.d.ts +9 -0
  313. package/dist/esm/components/ui/calendar/index.d.ts.map +1 -0
  314. package/dist/esm/components/ui/calendar/index.js +79 -0
  315. package/dist/esm/components/ui/card/index.d.ts +10 -0
  316. package/dist/esm/components/ui/card/index.d.ts.map +1 -0
  317. package/dist/esm/components/ui/card/index.js +24 -0
  318. package/dist/esm/components/ui/checkbox/index.d.ts +5 -0
  319. package/dist/esm/components/ui/checkbox/index.d.ts.map +1 -0
  320. package/dist/esm/components/ui/checkbox/index.js +9 -0
  321. package/dist/esm/components/ui/collapsible/index.d.ts +6 -0
  322. package/dist/esm/components/ui/collapsible/index.d.ts.map +1 -0
  323. package/dist/esm/components/ui/collapsible/index.js +13 -0
  324. package/dist/esm/components/ui/command/index.d.ts +14 -0
  325. package/dist/esm/components/ui/command/index.d.ts.map +1 -0
  326. package/dist/esm/components/ui/command/index.js +51 -0
  327. package/dist/esm/components/ui/copy-field/index.d.ts +56 -0
  328. package/dist/esm/components/ui/copy-field/index.d.ts.map +1 -0
  329. package/dist/esm/components/ui/copy-field/index.js +119 -0
  330. package/dist/esm/components/ui/dialog/index.d.ts +16 -0
  331. package/dist/esm/components/ui/dialog/index.d.ts.map +1 -0
  332. package/dist/esm/components/ui/dialog/index.js +36 -0
  333. package/dist/esm/components/ui/dropdown-menu/index.d.ts +27 -0
  334. package/dist/esm/components/ui/dropdown-menu/index.d.ts.map +1 -0
  335. package/dist/esm/components/ui/dropdown-menu/index.js +57 -0
  336. package/dist/esm/components/ui/field/index.d.ts +25 -0
  337. package/dist/esm/components/ui/field/index.d.ts.map +1 -0
  338. package/dist/esm/components/ui/field/index.js +68 -0
  339. package/dist/esm/components/ui/file-upload/index.d.ts +94 -0
  340. package/dist/esm/components/ui/file-upload/index.d.ts.map +1 -0
  341. package/dist/esm/components/ui/file-upload/index.js +200 -0
  342. package/dist/esm/components/ui/form.d.ts +39 -0
  343. package/dist/esm/components/ui/form.d.ts.map +1 -0
  344. package/dist/esm/components/ui/form.js +67 -0
  345. package/dist/esm/components/ui/hover-card/index.d.ts +7 -0
  346. package/dist/esm/components/ui/hover-card/index.d.ts.map +1 -0
  347. package/dist/esm/components/ui/hover-card/index.js +14 -0
  348. package/dist/esm/components/ui/icon-button/index.d.ts +13 -0
  349. package/dist/esm/components/ui/icon-button/index.d.ts.map +1 -0
  350. package/dist/esm/components/ui/icon-button/index.js +31 -0
  351. package/dist/esm/components/ui/input/adornment.d.ts +9 -0
  352. package/dist/esm/components/ui/input/adornment.d.ts.map +1 -0
  353. package/dist/esm/components/ui/input/adornment.js +17 -0
  354. package/dist/esm/components/ui/input/index.d.ts +18 -0
  355. package/dist/esm/components/ui/input/index.d.ts.map +1 -0
  356. package/dist/esm/components/ui/input/index.js +60 -0
  357. package/dist/esm/components/ui/label/index.d.ts +7 -0
  358. package/dist/esm/components/ui/label/index.d.ts.map +1 -0
  359. package/dist/esm/components/ui/label/index.js +10 -0
  360. package/dist/esm/components/ui/loading-button/index.d.ts +8 -0
  361. package/dist/esm/components/ui/loading-button/index.d.ts.map +1 -0
  362. package/dist/esm/components/ui/loading-button/index.js +7 -0
  363. package/dist/esm/components/ui/multiple-select/index.d.ts +91 -0
  364. package/dist/esm/components/ui/multiple-select/index.d.ts.map +1 -0
  365. package/dist/esm/components/ui/multiple-select/index.js +196 -0
  366. package/dist/esm/components/ui/otp-input/index.d.ts +13 -0
  367. package/dist/esm/components/ui/otp-input/index.d.ts.map +1 -0
  368. package/dist/esm/components/ui/otp-input/index.js +21 -0
  369. package/dist/esm/components/ui/paper/index.d.ts +4 -0
  370. package/dist/esm/components/ui/paper/index.d.ts.map +1 -0
  371. package/dist/esm/components/ui/paper/index.js +5 -0
  372. package/dist/esm/components/ui/paper-collapsible/index.d.ts +9 -0
  373. package/dist/esm/components/ui/paper-collapsible/index.d.ts.map +1 -0
  374. package/dist/esm/components/ui/paper-collapsible/index.js +19 -0
  375. package/dist/esm/components/ui/popover/index.d.ts +8 -0
  376. package/dist/esm/components/ui/popover/index.d.ts.map +1 -0
  377. package/dist/esm/components/ui/popover/index.js +17 -0
  378. package/dist/esm/components/ui/progress/index.d.ts +8 -0
  379. package/dist/esm/components/ui/progress/index.d.ts.map +1 -0
  380. package/dist/esm/components/ui/progress/index.js +8 -0
  381. package/dist/esm/components/ui/qr-code/index.d.ts +26 -0
  382. package/dist/esm/components/ui/qr-code/index.d.ts.map +1 -0
  383. package/dist/esm/components/ui/qr-code/index.js +24 -0
  384. package/dist/esm/components/ui/radio-group/index.d.ts +6 -0
  385. package/dist/esm/components/ui/radio-group/index.d.ts.map +1 -0
  386. package/dist/esm/components/ui/radio-group/index.js +12 -0
  387. package/dist/esm/components/ui/scroll-area/index.d.ts +6 -0
  388. package/dist/esm/components/ui/scroll-area/index.d.ts.map +1 -0
  389. package/dist/esm/components/ui/scroll-area/index.js +13 -0
  390. package/dist/esm/components/ui/select/index.d.ts +18 -0
  391. package/dist/esm/components/ui/select/index.d.ts.map +1 -0
  392. package/dist/esm/components/ui/select/index.js +47 -0
  393. package/dist/esm/components/ui/separator/index.d.ts +5 -0
  394. package/dist/esm/components/ui/separator/index.d.ts.map +1 -0
  395. package/dist/esm/components/ui/separator/index.js +8 -0
  396. package/dist/esm/components/ui/sheet/index.d.ts +19 -0
  397. package/dist/esm/components/ui/sheet/index.d.ts.map +1 -0
  398. package/dist/esm/components/ui/sheet/index.js +59 -0
  399. package/dist/esm/components/ui/sidebar/index.d.ts +11 -0
  400. package/dist/esm/components/ui/sidebar/index.d.ts.map +1 -0
  401. package/dist/esm/components/ui/sidebar/index.js +10 -0
  402. package/dist/esm/components/ui/sidebar/next-router.cjs +119 -0
  403. package/dist/esm/components/ui/sidebar/next-router.d.cts +7 -0
  404. package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
  405. package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
  406. package/dist/esm/components/ui/sidebar/sidebar-back-button.js +5 -0
  407. package/dist/esm/components/ui/sidebar/sidebar-components.d.ts +23 -0
  408. package/dist/esm/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
  409. package/dist/esm/components/ui/sidebar/sidebar-components.js +15 -0
  410. package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts +7 -0
  411. package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
  412. package/dist/esm/components/ui/sidebar/sidebar-expand-button.js +12 -0
  413. package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
  414. package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
  415. package/dist/esm/components/ui/sidebar/sidebar-item-button.js +18 -0
  416. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
  417. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
  418. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.js +44 -0
  419. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
  420. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
  421. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.js +14 -0
  422. package/dist/esm/components/ui/sidebar/sidebar-item.d.ts +13 -0
  423. package/dist/esm/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
  424. package/dist/esm/components/ui/sidebar/sidebar-item.js +16 -0
  425. package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts +12 -0
  426. package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
  427. package/dist/esm/components/ui/sidebar/sidebar-provider.js +51 -0
  428. package/dist/esm/components/ui/sidebar/sidebar-root.d.ts +3 -0
  429. package/dist/esm/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
  430. package/dist/esm/components/ui/sidebar/sidebar-root.js +20 -0
  431. package/dist/esm/components/ui/sidebar/sidebar-router.d.ts +82 -0
  432. package/dist/esm/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
  433. package/dist/esm/components/ui/sidebar/sidebar-router.js +89 -0
  434. package/dist/esm/components/ui/skeleton/index.d.ts +3 -0
  435. package/dist/esm/components/ui/skeleton/index.d.ts.map +1 -0
  436. package/dist/esm/components/ui/skeleton/index.js +6 -0
  437. package/dist/esm/components/ui/stepper/index.d.ts +18 -0
  438. package/dist/esm/components/ui/stepper/index.d.ts.map +1 -0
  439. package/dist/esm/components/ui/stepper/index.js +20 -0
  440. package/dist/esm/components/ui/switch/index.d.ts +5 -0
  441. package/dist/esm/components/ui/switch/index.d.ts.map +1 -0
  442. package/dist/esm/components/ui/switch/index.js +8 -0
  443. package/dist/esm/components/ui/table/index.d.ts +21 -0
  444. package/dist/esm/components/ui/table/index.d.ts.map +1 -0
  445. package/dist/esm/components/ui/table/index.js +44 -0
  446. package/dist/esm/components/ui/tabs/index.d.ts +8 -0
  447. package/dist/esm/components/ui/tabs/index.d.ts.map +1 -0
  448. package/dist/esm/components/ui/tabs/index.js +17 -0
  449. package/dist/esm/components/ui/textarea/index.d.ts +4 -0
  450. package/dist/esm/components/ui/textarea/index.d.ts.map +1 -0
  451. package/dist/esm/components/ui/textarea/index.js +6 -0
  452. package/dist/esm/components/ui/time-picker/index.d.ts +18 -0
  453. package/dist/esm/components/ui/time-picker/index.d.ts.map +1 -0
  454. package/dist/esm/components/ui/time-picker/index.js +49 -0
  455. package/dist/esm/components/ui/toast/index.d.ts +18 -0
  456. package/dist/esm/components/ui/toast/index.d.ts.map +1 -0
  457. package/dist/esm/components/ui/toast/index.js +2 -0
  458. package/dist/esm/components/ui/toast/toaster.d.ts +6 -0
  459. package/dist/esm/components/ui/toast/toaster.d.ts.map +1 -0
  460. package/dist/esm/components/ui/toast/toaster.js +8 -0
  461. package/dist/esm/components/ui/toggle-group/index.d.ts +18 -0
  462. package/dist/esm/components/ui/toggle-group/index.d.ts.map +1 -0
  463. package/dist/esm/components/ui/toggle-group/index.js +51 -0
  464. package/dist/esm/components/ui/tooltip/index.d.ts +11 -0
  465. package/dist/esm/components/ui/tooltip/index.d.ts.map +1 -0
  466. package/dist/esm/components/ui/tooltip/index.js +28 -0
  467. package/dist/esm/domain/blotter/index.d.ts +40 -0
  468. package/dist/esm/domain/blotter/index.d.ts.map +1 -0
  469. package/dist/esm/domain/blotter/index.js +12 -0
  470. package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts +57 -0
  471. package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
  472. package/dist/esm/domain/delinquency-aging/aging-buckets.js +105 -0
  473. package/dist/esm/domain/delinquency-aging/index.d.ts +71 -0
  474. package/dist/esm/domain/delinquency-aging/index.d.ts.map +1 -0
  475. package/dist/esm/domain/delinquency-aging/index.js +209 -0
  476. package/dist/esm/domain/figure/index.d.ts +30 -0
  477. package/dist/esm/domain/figure/index.d.ts.map +1 -0
  478. package/dist/esm/domain/figure/index.js +14 -0
  479. package/dist/esm/domain/format.d.ts +79 -0
  480. package/dist/esm/domain/format.d.ts.map +1 -0
  481. package/dist/esm/domain/format.js +128 -0
  482. package/dist/esm/domain/index.d.ts +23 -0
  483. package/dist/esm/domain/index.d.ts.map +1 -0
  484. package/dist/esm/domain/index.js +19 -0
  485. package/dist/esm/domain/key-id/index.d.ts +31 -0
  486. package/dist/esm/domain/key-id/index.d.ts.map +1 -0
  487. package/dist/esm/domain/key-id/index.js +169 -0
  488. package/dist/esm/domain/ledger-sheet/index.d.ts +45 -0
  489. package/dist/esm/domain/ledger-sheet/index.d.ts.map +1 -0
  490. package/dist/esm/domain/ledger-sheet/index.js +24 -0
  491. package/dist/esm/domain/money-diff.d.ts +28 -0
  492. package/dist/esm/domain/money-diff.d.ts.map +1 -0
  493. package/dist/esm/domain/money-diff.js +45 -0
  494. package/dist/esm/domain/money-math.d.ts +32 -0
  495. package/dist/esm/domain/money-math.d.ts.map +1 -0
  496. package/dist/esm/domain/money-math.js +98 -0
  497. package/dist/esm/domain/money-text/index.d.ts +37 -0
  498. package/dist/esm/domain/money-text/index.d.ts.map +1 -0
  499. package/dist/esm/domain/money-text/index.js +110 -0
  500. package/dist/esm/domain/section-label/index.d.ts +21 -0
  501. package/dist/esm/domain/section-label/index.d.ts.map +1 -0
  502. package/dist/esm/domain/section-label/index.js +10 -0
  503. package/dist/esm/domain/status-rail/index.d.ts +40 -0
  504. package/dist/esm/domain/status-rail/index.d.ts.map +1 -0
  505. package/dist/esm/domain/status-rail/index.js +67 -0
  506. package/dist/esm/domain/threshold-gauge/index.d.ts +84 -0
  507. package/dist/esm/domain/threshold-gauge/index.d.ts.map +1 -0
  508. package/dist/esm/domain/threshold-gauge/index.js +153 -0
  509. package/dist/esm/enterprise/alert-banner/index.d.ts +30 -0
  510. package/dist/esm/enterprise/alert-banner/index.d.ts.map +1 -0
  511. package/dist/esm/enterprise/alert-banner/index.js +21 -0
  512. package/dist/esm/enterprise/app-shell/index.d.ts +61 -0
  513. package/dist/esm/enterprise/app-shell/index.d.ts.map +1 -0
  514. package/dist/esm/enterprise/app-shell/index.js +51 -0
  515. package/dist/esm/enterprise/cursor-pager/index.d.ts +21 -0
  516. package/dist/esm/enterprise/cursor-pager/index.d.ts.map +1 -0
  517. package/dist/esm/enterprise/cursor-pager/index.js +23 -0
  518. package/dist/esm/enterprise/data-table/index.d.ts +88 -0
  519. package/dist/esm/enterprise/data-table/index.d.ts.map +1 -0
  520. package/dist/esm/enterprise/data-table/index.js +242 -0
  521. package/dist/esm/enterprise/date-range-picker/index.d.ts +37 -0
  522. package/dist/esm/enterprise/date-range-picker/index.d.ts.map +1 -0
  523. package/dist/esm/enterprise/date-range-picker/index.js +89 -0
  524. package/dist/esm/enterprise/detail-panel/index.d.ts +54 -0
  525. package/dist/esm/enterprise/detail-panel/index.d.ts.map +1 -0
  526. package/dist/esm/enterprise/detail-panel/index.js +17 -0
  527. package/dist/esm/enterprise/empty-state/index.d.ts +32 -0
  528. package/dist/esm/enterprise/empty-state/index.d.ts.map +1 -0
  529. package/dist/esm/enterprise/empty-state/index.js +10 -0
  530. package/dist/esm/enterprise/index.d.ts +26 -0
  531. package/dist/esm/enterprise/index.d.ts.map +1 -0
  532. package/dist/esm/enterprise/index.js +22 -0
  533. package/dist/esm/enterprise/number-input/index.d.ts +55 -0
  534. package/dist/esm/enterprise/number-input/index.d.ts.map +1 -0
  535. package/dist/esm/enterprise/number-input/index.js +214 -0
  536. package/dist/esm/enterprise/search-input/index.d.ts +32 -0
  537. package/dist/esm/enterprise/search-input/index.d.ts.map +1 -0
  538. package/dist/esm/enterprise/search-input/index.js +85 -0
  539. package/dist/esm/enterprise/stat-card/index.d.ts +43 -0
  540. package/dist/esm/enterprise/stat-card/index.d.ts.map +1 -0
  541. package/dist/esm/enterprise/stat-card/index.js +64 -0
  542. package/dist/esm/enterprise/status-badge/index.d.ts +31 -0
  543. package/dist/esm/enterprise/status-badge/index.d.ts.map +1 -0
  544. package/dist/esm/enterprise/status-badge/index.js +116 -0
  545. package/dist/esm/enterprise/use-is-mobile.d.ts +20 -0
  546. package/dist/esm/enterprise/use-is-mobile.d.ts.map +1 -0
  547. package/dist/esm/enterprise/use-is-mobile.js +31 -0
  548. package/dist/esm/enterprise/virtualized-table/index.d.ts +26 -0
  549. package/dist/esm/enterprise/virtualized-table/index.d.ts.map +1 -0
  550. package/dist/esm/enterprise/virtualized-table/index.js +111 -0
  551. package/dist/esm/hooks/use-click-away.d.ts +9 -0
  552. package/dist/esm/hooks/use-click-away.d.ts.map +1 -0
  553. package/dist/esm/hooks/use-click-away.js +22 -0
  554. package/dist/esm/hooks/use-pagination.d.ts +13 -0
  555. package/dist/esm/hooks/use-pagination.d.ts.map +1 -0
  556. package/dist/esm/hooks/use-pagination.js +38 -0
  557. package/dist/esm/hooks/use-stepper.d.ts +11 -0
  558. package/dist/esm/hooks/use-stepper.d.ts.map +1 -0
  559. package/dist/esm/hooks/use-stepper.js +22 -0
  560. package/dist/esm/hooks/use-time.d.ts +6 -0
  561. package/dist/esm/hooks/use-time.d.ts.map +1 -0
  562. package/dist/esm/hooks/use-time.js +13 -0
  563. package/dist/esm/hooks/use-toast.d.ts +31 -0
  564. package/dist/esm/hooks/use-toast.d.ts.map +1 -0
  565. package/dist/esm/hooks/use-toast.js +63 -0
  566. package/dist/esm/index.d.ts +69 -0
  567. package/dist/esm/index.d.ts.map +1 -0
  568. package/dist/esm/index.js +74 -0
  569. package/dist/esm/lib/storage/get-storage-object.d.ts +2 -0
  570. package/dist/esm/lib/storage/get-storage-object.d.ts.map +1 -0
  571. package/dist/esm/lib/storage/get-storage-object.js +17 -0
  572. package/dist/esm/lib/storage/get-storage.d.ts +2 -0
  573. package/dist/esm/lib/storage/get-storage.d.ts.map +1 -0
  574. package/dist/esm/lib/storage/get-storage.js +14 -0
  575. package/dist/esm/lib/storage/index.d.ts +3 -0
  576. package/dist/esm/lib/storage/index.d.ts.map +1 -0
  577. package/dist/esm/lib/storage/index.js +2 -0
  578. package/dist/esm/lib/typography.d.ts +17 -0
  579. package/dist/esm/lib/typography.d.ts.map +1 -0
  580. package/dist/esm/lib/typography.js +16 -0
  581. package/dist/esm/lib/utils.d.ts +3 -0
  582. package/dist/esm/lib/utils.d.ts.map +1 -0
  583. package/dist/esm/lib/utils.js +5 -0
  584. package/dist/esm/package.json +1 -0
  585. package/dist/esm/public/countries.json +21210 -0
  586. package/dist/esm/theme/get-theme-script.d.ts +3 -0
  587. package/dist/esm/theme/get-theme-script.d.ts.map +1 -0
  588. package/dist/esm/theme/get-theme-script.js +41 -0
  589. package/dist/esm/theme/index.d.ts +6 -0
  590. package/dist/esm/theme/index.d.ts.map +1 -0
  591. package/dist/esm/theme/index.js +4 -0
  592. package/dist/esm/theme/mode-toggle.d.ts +25 -0
  593. package/dist/esm/theme/mode-toggle.d.ts.map +1 -0
  594. package/dist/esm/theme/mode-toggle.js +45 -0
  595. package/dist/esm/theme/theme-provider.d.ts +38 -0
  596. package/dist/esm/theme/theme-provider.d.ts.map +1 -0
  597. package/dist/esm/theme/theme-provider.js +112 -0
  598. package/dist/esm/toast/helpers.d.ts +16 -0
  599. package/dist/esm/toast/helpers.d.ts.map +1 -0
  600. package/dist/esm/toast/helpers.js +29 -0
  601. package/dist/esm/toast/index.d.ts +3 -0
  602. package/dist/esm/toast/index.d.ts.map +1 -0
  603. package/dist/esm/toast/index.js +4 -0
  604. package/dist/esm/types/metadata-type.d.ts +2 -0
  605. package/dist/esm/types/metadata-type.d.ts.map +1 -0
  606. package/dist/esm/types/metadata-type.js +1 -0
  607. package/dist/esm/utils/countries.cjs +17 -0
  608. package/dist/esm/utils/countries.d.cts +14 -0
  609. package/dist/esm/utils/country-utils.d.ts +17 -0
  610. package/dist/esm/utils/country-utils.d.ts.map +1 -0
  611. package/dist/esm/utils/country-utils.js +18 -0
  612. package/dist/esm/utils/currency-codes.d.ts +5 -0
  613. package/dist/esm/utils/currency-codes.d.ts.map +1 -0
  614. package/dist/esm/utils/currency-codes.js +181 -0
  615. package/dist/globals.css +74 -0
  616. package/dist/hooks/use-toast.d.ts +1 -1
  617. package/dist/hooks/use-toast.d.ts.map +1 -1
  618. package/dist/hooks/use-toast.js +4 -0
  619. package/dist/index.d.ts +16 -0
  620. package/dist/index.d.ts.map +1 -1
  621. package/dist/index.js +21 -1
  622. package/dist/lib/storage/get-storage-object.d.ts.map +1 -1
  623. package/dist/lib/storage/get-storage-object.js +6 -2
  624. package/dist/lib/typography.d.ts +17 -0
  625. package/dist/lib/typography.d.ts.map +1 -0
  626. package/dist/lib/typography.js +19 -0
  627. package/dist/public/countries.json +21200 -21200
  628. package/dist/theme/get-theme-script.d.ts +3 -0
  629. package/dist/theme/get-theme-script.d.ts.map +1 -0
  630. package/dist/theme/get-theme-script.js +44 -0
  631. package/dist/theme/index.d.ts +6 -0
  632. package/dist/theme/index.d.ts.map +1 -0
  633. package/dist/theme/index.js +11 -0
  634. package/dist/theme/mode-toggle.d.ts +25 -0
  635. package/dist/theme/mode-toggle.d.ts.map +1 -0
  636. package/dist/theme/mode-toggle.js +48 -0
  637. package/dist/theme/theme-provider.d.ts +38 -0
  638. package/dist/theme/theme-provider.d.ts.map +1 -0
  639. package/dist/theme/theme-provider.js +149 -0
  640. package/dist/toast/helpers.d.ts +16 -0
  641. package/dist/toast/helpers.d.ts.map +1 -0
  642. package/dist/toast/helpers.js +34 -0
  643. package/dist/toast/index.d.ts +3 -0
  644. package/dist/toast/index.d.ts.map +1 -0
  645. package/dist/toast/index.js +10 -0
  646. package/dist/utils/countries.cjs +17 -0
  647. package/dist/utils/countries.d.cts +14 -0
  648. package/dist/utils/country-utils.js +2 -2
  649. package/package.json +55 -18
  650. package/dist/components/ui/label/label.stories.d.ts +0 -5
  651. package/dist/components/ui/label/label.stories.d.ts.map +0 -1
  652. package/dist/components/ui/label/label.stories.js +0 -24
  653. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +0 -2
  654. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +0 -1
  655. package/dist/components/ui/sidebar/sidebar-provider.test.js +0 -170
  656. package/dist/hooks/use-click-away.test.d.ts +0 -2
  657. package/dist/hooks/use-click-away.test.d.ts.map +0 -1
  658. package/dist/hooks/use-click-away.test.js +0 -39
  659. package/dist/hooks/use-stepper.test.d.ts +0 -2
  660. package/dist/hooks/use-stepper.test.d.ts.map +0 -1
  661. package/dist/hooks/use-stepper.test.js +0 -45
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatCard = StatCard;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const blotter_1 = require("../../domain/blotter");
6
+ const figure_1 = require("../../domain/figure");
7
+ const ledger_sheet_1 = require("../../domain/ledger-sheet");
8
+ const section_label_1 = require("../../domain/section-label");
9
+ const utils_1 = require("../../lib/utils");
10
+ /** Value/delta color per tone. `default` keeps the high-contrast foreground;
11
+ * the rest escalate to a semantic theme token that tracks light/dark. */
12
+ const TONE_VALUE = {
13
+ default: 'text-foreground',
14
+ success: 'text-system-success-text',
15
+ warning: 'text-system-alert-text',
16
+ destructive: 'text-destructive'
17
+ };
18
+ /** Trend stroke color per tone. Resolved through the `--color-*` wrappers (the
19
+ * raw `--chart-N` tokens are bare HSL triples, not usable colors). */
20
+ const TONE_TREND = {
21
+ default: 'var(--color-chart-1)',
22
+ success: 'var(--color-system-success)',
23
+ warning: 'var(--color-system-alert)',
24
+ destructive: 'var(--color-destructive)'
25
+ };
26
+ const TREND_VIEWBOX_WIDTH = 100;
27
+ const TREND_VIEWBOX_HEIGHT = 40;
28
+ /**
29
+ * Chrome-less inline trend: no axes, grid, legend or tooltip. Decorative by
30
+ * construction (`aria-hidden`) — the figure above it carries the meaning.
31
+ * Renders nothing when fewer than two points are plottable.
32
+ */
33
+ function TrendSpark({ data, dataKey, color }) {
34
+ // Drop absent samples BEFORE coercing: Number(null) and Number('') are both
35
+ // 0, which would draw a phantom dip to the floor where the series simply has
36
+ // no reading.
37
+ const points = [];
38
+ for (const row of data) {
39
+ const raw = row[dataKey];
40
+ if (raw === null || raw === undefined || raw === '')
41
+ continue;
42
+ const n = Number(raw);
43
+ if (Number.isFinite(n))
44
+ points.push(n);
45
+ }
46
+ if (points.length < 2)
47
+ return null;
48
+ const min = Math.min(...points);
49
+ const max = Math.max(...points);
50
+ // A flat series has zero span; pin it to the vertical midline instead of
51
+ // dividing by zero.
52
+ const span = max - min;
53
+ const stepX = TREND_VIEWBOX_WIDTH / (points.length - 1);
54
+ const coords = points.map((n, i) => {
55
+ const x = i * stepX;
56
+ const y = span === 0
57
+ ? TREND_VIEWBOX_HEIGHT / 2
58
+ : TREND_VIEWBOX_HEIGHT - ((n - min) / span) * TREND_VIEWBOX_HEIGHT;
59
+ return `${x.toFixed(2)},${y.toFixed(2)}`;
60
+ });
61
+ return ((0, jsx_runtime_1.jsxs)("svg", { "aria-hidden": true, role: "presentation", viewBox: `0 0 ${TREND_VIEWBOX_WIDTH} ${TREND_VIEWBOX_HEIGHT}`, preserveAspectRatio: "none", className: "h-10 w-full", children: [(0, jsx_runtime_1.jsx)("polygon", { points: `0,${TREND_VIEWBOX_HEIGHT} ${coords.join(' ')} ${TREND_VIEWBOX_WIDTH},${TREND_VIEWBOX_HEIGHT}`, fill: color, fillOpacity: 0.15 }), (0, jsx_runtime_1.jsx)("polyline", { points: coords.join(' '), fill: "none", stroke: color, strokeWidth: 1.75, vectorEffect: "non-scaling-stroke" })] }));
62
+ }
63
+ function StatCard({ label, value, delta, tone = 'default', trend, trendKey = 'value', rows, className }) {
64
+ const hasTrend = trend !== undefined && trend.length > 0;
65
+ const hasRows = rows !== undefined && rows.length > 0;
66
+ return ((0, jsx_runtime_1.jsxs)(ledger_sheet_1.LedgerPanel, { "data-tone": tone, className: className, children: [(0, jsx_runtime_1.jsx)(section_label_1.SectionLabel, { children: label }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-1", children: [(0, jsx_runtime_1.jsx)(figure_1.Figure, { size: "hero", className: (0, utils_1.cn)('block', TONE_VALUE[tone]), children: value }), delta !== undefined ? ((0, jsx_runtime_1.jsx)("p", { className: (0, utils_1.cn)('font-mono text-xs tabular-nums', TONE_VALUE[tone]), children: delta })) : null] }), hasTrend ? ((0, jsx_runtime_1.jsx)(TrendSpark, { data: trend, dataKey: trendKey, color: TONE_TREND[tone] })) : null, hasRows ? ((0, jsx_runtime_1.jsx)(blotter_1.Blotter, { className: "mt-auto", children: rows.map((row, i) => ((0, jsx_runtime_1.jsx)(blotter_1.BlotterRow, { label: row.label, value: row.value }, i))) })) : null] }));
67
+ }
@@ -0,0 +1,31 @@
1
+ import { type BadgeProps } from '../../components/ui/badge';
2
+ type BadgeVariant = NonNullable<BadgeProps['variant']>;
3
+ /**
4
+ * Generic lifecycle defaults — extend per-app via the `variantMap` prop.
5
+ *
6
+ * The KEYS are the frozen legacy contract (apps merge their own domain statuses
7
+ * into this map). The VALUES are sindarian-ui Badge variants: sindarian-ui is
8
+ * senior, so the legacy `muted`/`warning` variants resolve to sindarian-ui's
9
+ * `inactive`/`alert`.
10
+ */
11
+ export declare const DEFAULT_STATUS_VARIANTS: Record<string, BadgeVariant>;
12
+ export type StatusBadgeProps = {
13
+ /** Raw status/severity value (case-insensitive). */
14
+ status: string | null | undefined;
15
+ /** Override the displayed label; defaults to a humanized form. */
16
+ label?: string;
17
+ /** Shallow-merged over DEFAULT_STATUS_VARIANTS to add/override mappings. */
18
+ variantMap?: Record<string, BadgeVariant>;
19
+ /**
20
+ * Render the non-color severity cue: a leading glyph + an sr-only severity
21
+ * word, so the badge does not carry meaning by tint alone (WCAG 1.4.1).
22
+ * Opt-in; defaults to false to keep existing color-only usage unchanged.
23
+ */
24
+ withIcon?: boolean;
25
+ /** Label shown when `status` is empty. */
26
+ unknownLabel?: string;
27
+ className?: string;
28
+ };
29
+ export declare function StatusBadge({ status, label, variantMap, withIcon, unknownLabel, className }: StatusBadgeProps): import("react").JSX.Element;
30
+ export {};
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/status-badge/index.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAG9D,KAAK,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6BhE,CAAA;AAqDD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,oDAAoD;IACpD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAAgB,EAChB,YAAwB,EACxB,SAAS,EACV,EAAE,gBAAgB,+BA6BlB"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_STATUS_VARIANTS = void 0;
4
+ exports.StatusBadge = StatusBadge;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * StatusBadge maps a status/severity string to a Badge variant and a humanized
8
+ * label. Unknown values fall back to a neutral "outline" badge with a
9
+ * title-cased label, so new server enum values never render raw or crash.
10
+ *
11
+ * The variant map is injectable (`variantMap`) and shallow-merges over a
12
+ * generic lifecycle default, so apps extend it with their own domain statuses
13
+ * without forking the component.
14
+ *
15
+ * INVARIANT (WCAG 1.4.1): the bare badge is color-only — the variant tint is the
16
+ * sole carrier of severity. That is a non-color-cue failure for a severity badge
17
+ * (a CRITICAL risk band must read as critical in grayscale and to a color-blind
18
+ * reader). `withIcon` opts the badge into the non-color canon: a leading
19
+ * severity GLYPH plus an sr-only severity word, with the tint as reinforcement
20
+ * only. It is opt-in so existing color-only usage is unaffected.
21
+ *
22
+ * Pure display: no directive, no interactivity. A leading lucide glyph is
23
+ * server-safe, so the component stays RSC-safe for the consuming Next.js app.
24
+ */
25
+ const lucide_react_1 = require("lucide-react");
26
+ const badge_1 = require("../../components/ui/badge");
27
+ const utils_1 = require("../../lib/utils");
28
+ /**
29
+ * Generic lifecycle defaults — extend per-app via the `variantMap` prop.
30
+ *
31
+ * The KEYS are the frozen legacy contract (apps merge their own domain statuses
32
+ * into this map). The VALUES are sindarian-ui Badge variants: sindarian-ui is
33
+ * senior, so the legacy `muted`/`warning` variants resolve to sindarian-ui's
34
+ * `inactive`/`alert`.
35
+ */
36
+ exports.DEFAULT_STATUS_VARIANTS = {
37
+ DRAFT: 'inactive',
38
+ ACTIVE: 'success',
39
+ ENABLED: 'success',
40
+ INACTIVE: 'inactive',
41
+ DISABLED: 'inactive',
42
+ PAUSED: 'alert',
43
+ ARCHIVED: 'inactive',
44
+ QUEUED: 'secondary',
45
+ PENDING: 'alert',
46
+ PROCESSING: 'alert',
47
+ RUNNING: 'alert',
48
+ COMPLETE: 'success',
49
+ COMPLETED: 'success',
50
+ SUCCEEDED: 'success',
51
+ SUCCESS: 'success',
52
+ FAILED: 'destructive',
53
+ ERROR: 'destructive',
54
+ CANCELED: 'inactive',
55
+ CANCELLED: 'inactive',
56
+ EXPIRED: 'inactive',
57
+ OPEN: 'alert',
58
+ RESOLVED: 'success',
59
+ REJECTED: 'destructive',
60
+ CONFIRMED: 'success',
61
+ LOW: 'inactive',
62
+ MEDIUM: 'secondary',
63
+ HIGH: 'alert',
64
+ CRITICAL: 'destructive'
65
+ };
66
+ /**
67
+ * Variant → non-color severity cue: a distinct glyph + an sr-only severity word.
68
+ * This is the load-bearing cue when `withIcon` is set; the Badge's own tint only
69
+ * reinforces it, so severity survives grayscale and color-vision deficiency.
70
+ *
71
+ * A constant lookup keyed on the Badge variant — the variant already encodes the
72
+ * severity, so the glyph follows the variant rather than re-deriving severity
73
+ * from the raw status. `secondary` is a neutral bucket (e.g. MEDIUM/QUEUED) and,
74
+ * like `inactive`, carries the calm dash glyph. The pure color-carrier variants
75
+ * and the unknown `outline` fallback have no severity semantics, so they render
76
+ * no glyph.
77
+ */
78
+ const SEVERITY_CUE = {
79
+ success: { Icon: lucide_react_1.Check, word: 'OK' },
80
+ alert: { Icon: lucide_react_1.TriangleAlert, word: 'Warning' },
81
+ destructive: { Icon: lucide_react_1.OctagonX, word: 'Critical' },
82
+ inactive: { Icon: lucide_react_1.Minus, word: 'Neutral' },
83
+ secondary: { Icon: lucide_react_1.Minus, word: 'Neutral' }
84
+ };
85
+ /**
86
+ * Merge a caller's map over the defaults, upper-casing its KEYS.
87
+ *
88
+ * Lookup has always upper-cased the incoming `status`, but sindarian-x merged
89
+ * `variantMap` verbatim — so `{ reconciled: 'success' }` could never match and
90
+ * fell through to the neutral `outline` badge, silently. That was an unstated
91
+ * requirement rather than a design choice: lender's own call sites work around
92
+ * it by hand (`variantMap={{ [reason.toUpperCase()]: 'destructive' }}`).
93
+ * Normalising here is strictly additive — already-uppercase keys are unchanged.
94
+ */
95
+ function mergeVariants(variantMap) {
96
+ if (!variantMap)
97
+ return exports.DEFAULT_STATUS_VARIANTS;
98
+ const merged = { ...exports.DEFAULT_STATUS_VARIANTS };
99
+ for (const [key, variant] of Object.entries(variantMap)) {
100
+ merged[key.toUpperCase()] = variant;
101
+ }
102
+ return merged;
103
+ }
104
+ function humanize(value) {
105
+ return value
106
+ .toLowerCase()
107
+ .split(/[_\s]+/)
108
+ .map((w) => (w[0] ? w[0].toUpperCase() + w.slice(1) : w))
109
+ .join(' ');
110
+ }
111
+ function StatusBadge({ status, label, variantMap, withIcon = false, unknownLabel = 'Unknown', className }) {
112
+ if (!status) {
113
+ return ((0, jsx_runtime_1.jsx)(badge_1.Badge, { variant: "outline", className: (0, utils_1.cn)('text-muted-foreground', className), children: label ?? unknownLabel }));
114
+ }
115
+ const variant = mergeVariants(variantMap)[status.toUpperCase()] ?? 'outline';
116
+ // The glyph follows the resolved variant; an unknown/non-severity variant has
117
+ // no cue, so the badge gracefully renders label-only even with withIcon set.
118
+ const cue = withIcon ? SEVERITY_CUE[variant] : undefined;
119
+ return ((0, jsx_runtime_1.jsxs)(badge_1.Badge, { variant: variant, className: (0, utils_1.cn)('gap-1', className), children: [cue ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(cue.Icon, { "aria-hidden": true, className: "size-3.5 shrink-0" }), (0, jsx_runtime_1.jsxs)("span", { className: "sr-only", children: [cue.word, ": "] })] })) : null, label ?? humanize(status)] }));
120
+ }
@@ -0,0 +1,20 @@
1
+ /** The one breakpoint the hook subscribes at. Exported so its tests can bind to
2
+ * it instead of re-stating the number. */
3
+ export declare const MOBILE_BREAKPOINT = 768;
4
+ /**
5
+ * True while the viewport is narrower than the 768px mobile breakpoint.
6
+ *
7
+ * Always false on the FIRST render, server and client alike, so a narrow
8
+ * viewport can never produce a hydration mismatch. The correction lands in a
9
+ * `useEffect`, which runs AFTER the browser paints: on a narrow viewport the
10
+ * first painted frame therefore shows the desktop branch and the mobile branch
11
+ * appears on the next frame. That one frame is the deliberate price of
12
+ * hydration safety — a layout effect would remove it but would also change the
13
+ * render timing every existing consumer is built on.
14
+ *
15
+ * Every reading comes from the media query itself rather than a mix of
16
+ * `matchMedia` and `window.innerWidth`, so the initial value and the change
17
+ * events can never disagree at the breakpoint boundary.
18
+ */
19
+ export declare function useIsMobile(): boolean;
20
+ //# 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":"AAIA;2CAC2C;AAC3C,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,YAY1B"}
@@ -0,0 +1,68 @@
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.MOBILE_BREAKPOINT = void 0;
38
+ exports.useIsMobile = useIsMobile;
39
+ const React = __importStar(require("react"));
40
+ /** The one breakpoint the hook subscribes at. Exported so its tests can bind to
41
+ * it instead of re-stating the number. */
42
+ exports.MOBILE_BREAKPOINT = 768;
43
+ /**
44
+ * True while the viewport is narrower than the 768px mobile breakpoint.
45
+ *
46
+ * Always false on the FIRST render, server and client alike, so a narrow
47
+ * viewport can never produce a hydration mismatch. The correction lands in a
48
+ * `useEffect`, which runs AFTER the browser paints: on a narrow viewport the
49
+ * first painted frame therefore shows the desktop branch and the mobile branch
50
+ * appears on the next frame. That one frame is the deliberate price of
51
+ * hydration safety — a layout effect would remove it but would also change the
52
+ * render timing every existing consumer is built on.
53
+ *
54
+ * Every reading comes from the media query itself rather than a mix of
55
+ * `matchMedia` and `window.innerWidth`, so the initial value and the change
56
+ * events can never disagree at the breakpoint boundary.
57
+ */
58
+ function useIsMobile() {
59
+ const [isMobile, setIsMobile] = React.useState(false);
60
+ React.useEffect(() => {
61
+ const mql = window.matchMedia(`(max-width: ${exports.MOBILE_BREAKPOINT - 1}px)`);
62
+ const onChange = () => setIsMobile(mql.matches);
63
+ onChange();
64
+ mql.addEventListener('change', onChange);
65
+ return () => mql.removeEventListener('change', onChange);
66
+ }, []);
67
+ return isMobile;
68
+ }
@@ -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"}