@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,238 @@
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.parseRaw = parseRaw;
38
+ exports.isTransientPartial = isTransientPartial;
39
+ exports.NumberInput = NumberInput;
40
+ const jsx_runtime_1 = require("react/jsx-runtime");
41
+ /**
42
+ * NumberInput — a controlled numeric input with +/- steppers.
43
+ *
44
+ * Composes sindarian-ui's Input (the text field) and IconButton (the two
45
+ * steppers). The external contract is a plain `number | null` (null = empty).
46
+ * Steppers step by `step` and clamp the result to [min, max]. While focused the
47
+ * field shows the raw, editable string the user is typing; on blur it reformats
48
+ * the committed number via Intl.NumberFormat(locale, { maximumFractionDigits:
49
+ * precision }) (e.g. 1,234.50). Parsing always emits the raw number, so digits
50
+ * the user types are never silently rewritten mid-edit.
51
+ */
52
+ const React = __importStar(require("react"));
53
+ const lucide_react_1 = require("lucide-react");
54
+ const icon_button_1 = require("../../components/ui/icon-button");
55
+ const input_1 = require("../../components/ui/input");
56
+ const utils_1 = require("../../lib/utils");
57
+ function clamp(value, min, max) {
58
+ let next = value;
59
+ if (typeof min === 'number' && next < min)
60
+ next = min;
61
+ if (typeof max === 'number' && next > max)
62
+ next = max;
63
+ return next;
64
+ }
65
+ /**
66
+ * `Number.prototype.toFixed` rejects more than 100 fraction digits. Denormals
67
+ * genuinely need more (`decimalPlaces(5e-324)` is 324), so this is a RangeError
68
+ * guard, not a precision policy — no step a person types comes close.
69
+ */
70
+ const MAX_FIXED_DIGITS = 100;
71
+ /**
72
+ * Fraction digits a number carries, reading exponent notation correctly.
73
+ * `String(1e-7)` is `'1e-7'`, which has no '.' at all, so counting characters
74
+ * after a decimal point reports 0 and silently kills any step below 1e-6.
75
+ * `toExponential()` gives a canonical mantissa/exponent pair instead:
76
+ * 1e-7 -> mantissa '1', exponent -7 -> 7 fraction digits.
77
+ */
78
+ function decimalPlaces(value) {
79
+ if (!Number.isFinite(value) || Number.isInteger(value))
80
+ return 0;
81
+ const [mantissa, exponent] = value.toExponential().split('e');
82
+ const mantissaDigits = (mantissa.split('.')[1] ?? '').length;
83
+ return Math.max(0, mantissaDigits - Number(exponent));
84
+ }
85
+ /**
86
+ * Snap a stepped result to the fraction digits its own operands carry, so
87
+ * binary float drift never escapes to the parent: stepping 0.1 by 0.2 must
88
+ * commit 0.3, not 0.30000000000000004.
89
+ *
90
+ * Anchoring on the OPERANDS is what makes this safe at both ends of the range.
91
+ * Rounding to a fixed number of significant digits cannot work: at 1e15 the
92
+ * 15th significant digit is the units place, so 1e15 + 0.5 would snap straight
93
+ * back to 1e15 and the stepper would die. Nor can a "is this change small
94
+ * enough to be noise?" tolerance decide it — 1e15 + 0.125 is exactly
95
+ * representable and must be kept, yet its relative distance from the rounded
96
+ * form (1.25e-16) is SMALLER than genuine drift in 0.1 + 0.2 (1.85e-16), so no
97
+ * threshold separates the two cases. The operands do: `1e15` and `0.5` need one
98
+ * fraction digit between them, `0.1` and `0.2` also one, and rounding each
99
+ * result to its own digit count keeps the first and repairs the second.
100
+ *
101
+ * `toFixed` (not `value * 10 ** digits`) does the rounding: the multiply
102
+ * overflows Number.MAX_SAFE_INTEGER for large values and hands back the very
103
+ * drift it was meant to remove.
104
+ */
105
+ function snapToStep(value, base, step) {
106
+ if (!Number.isFinite(value))
107
+ return value;
108
+ const digits = Math.min(MAX_FIXED_DIGITS, Math.max(decimalPlaces(base), decimalPlaces(step)));
109
+ return Number(value.toFixed(digits));
110
+ }
111
+ /** The locale's decimal and group separators, derived from a known sample. */
112
+ function localeSeparators(locale) {
113
+ const parts = new Intl.NumberFormat(locale).formatToParts(11111.1);
114
+ const decimal = parts.find((p) => p.type === 'decimal')?.value ?? '.';
115
+ const group = parts.find((p) => p.type === 'group')?.value ?? '';
116
+ return { decimal, group };
117
+ }
118
+ /**
119
+ * Parse the editable string into a number, round-tripping the component's
120
+ * `locale`: strip the locale group separators, swap the locale decimal mark to
121
+ * '.', then `Number()`. Null when empty/unparseable.
122
+ *
123
+ * Internal (not part of the public barrel) but exported for its unit tests —
124
+ * numeric-entry correctness is the load-bearing behavior here.
125
+ */
126
+ function parseRaw(raw, locale) {
127
+ const trimmed = raw.trim();
128
+ if (trimmed === '')
129
+ return null;
130
+ const { decimal, group } = localeSeparators(locale);
131
+ let normalized = trimmed;
132
+ if (group)
133
+ normalized = normalized.split(group).join('');
134
+ if (decimal !== '.')
135
+ normalized = normalized.split(decimal).join('.');
136
+ if (normalized === '')
137
+ return null;
138
+ const parsed = Number(normalized);
139
+ return Number.isNaN(parsed) ? null : parsed;
140
+ }
141
+ /**
142
+ * A transient partial entry that should not commit yet — a lone sign, a lone
143
+ * decimal mark, sign+decimal, or a value ending in the decimal mark (the user
144
+ * is still typing). Suppressing these keeps the external value from
145
+ * round-tripping through `null` mid-edit.
146
+ *
147
+ * Internal (not part of the public barrel) but exported for its unit tests.
148
+ */
149
+ function isTransientPartial(raw, locale) {
150
+ const trimmed = raw.trim();
151
+ if (trimmed === '')
152
+ return false;
153
+ const { decimal } = localeSeparators(locale);
154
+ const d = decimal.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
155
+ return new RegExp(`^-?(${d})?$|${d}$`).test(trimmed);
156
+ }
157
+ function NumberInput({ value, onValueChange, min, max, step = 1, precision, locale, disabled = false, id, className, placeholder, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedBy }) {
158
+ const [focused, setFocused] = React.useState(false);
159
+ // The string the user is editing. Only authoritative while focused.
160
+ const [draft, setDraft] = React.useState('');
161
+ const formatter = React.useMemo(() => new Intl.NumberFormat(locale, {
162
+ maximumFractionDigits: precision ?? 20,
163
+ minimumFractionDigits: precision ?? 0,
164
+ useGrouping: true
165
+ }), [locale, precision]);
166
+ // Blurred display: locale-formatted committed value, or empty.
167
+ const displayValue = focused
168
+ ? draft
169
+ : value === null
170
+ ? ''
171
+ : formatter.format(value);
172
+ const commit = (next) => {
173
+ onValueChange(next);
174
+ };
175
+ const stepBy = (direction) => {
176
+ const base = value ?? 0;
177
+ // Snap FIRST, then clamp — never the other way round. Snapping rounds to
178
+ // the operands' fraction digits, so snapping a CLAMPED value rounds the
179
+ // bound itself: stepping 0.2 by 0.1 under max 0.25 clamps to 0.25, which
180
+ // then snaps to one digit as 0.3 and escapes the maximum. Clamping last
181
+ // makes the bound the final word, and `clamp` returns it verbatim, so a
182
+ // bound is emitted exactly as the caller gave it.
183
+ const next = clamp(snapToStep(base + direction * step, base, step), min, max);
184
+ commit(next);
185
+ // Seed the draft via the locale formatter so a stepper press doesn't flip
186
+ // the user's separators (e.g. ',' → '.').
187
+ if (focused)
188
+ setDraft(formatter.format(next));
189
+ };
190
+ const onChange = (event) => {
191
+ const raw = event.target.value;
192
+ setDraft(raw);
193
+ // Commit only a genuine clear or a parsed number; suppress transient
194
+ // partials ("-", ".", "-.", trailing separator) so typing a negative or
195
+ // decimal doesn't round-trip the external value through null mid-entry.
196
+ if (raw.trim() === '') {
197
+ commit(null);
198
+ return;
199
+ }
200
+ if (isTransientPartial(raw, locale))
201
+ return;
202
+ const parsed = parseRaw(raw, locale);
203
+ if (parsed !== null)
204
+ commit(parsed);
205
+ };
206
+ // Keyboard stepping (WCAG 2.1.1): the steppers are tabIndex={-1}, so the
207
+ // input owns keyboard interaction per the ARIA spinbutton pattern.
208
+ const onKeyDown = (event) => {
209
+ if (disabled)
210
+ return;
211
+ if (event.key === 'ArrowUp') {
212
+ event.preventDefault();
213
+ stepBy(1);
214
+ }
215
+ else if (event.key === 'ArrowDown') {
216
+ event.preventDefault();
217
+ stepBy(-1);
218
+ }
219
+ };
220
+ const onFocus = () => {
221
+ setFocused(true);
222
+ // Seed via the locale formatter (not String(value), which forces '.') so
223
+ // focusing doesn't flip the separator the user expects.
224
+ setDraft(value === null ? '' : formatter.format(value));
225
+ };
226
+ const onBlur = () => {
227
+ setFocused(false);
228
+ // Re-clamp the committed value so a typed out-of-range entry settles.
229
+ if (value !== null) {
230
+ const clamped = clamp(value, min, max);
231
+ if (clamped !== value)
232
+ commit(clamped);
233
+ }
234
+ };
235
+ const atMin = typeof min === 'number' && value !== null && value <= min;
236
+ const atMax = typeof max === 'number' && value !== null && value >= max;
237
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('inline-flex items-stretch gap-1', className), children: [(0, jsx_runtime_1.jsx)(icon_button_1.IconButton, { type: "button", variant: "outline", disabled: disabled || atMin, "aria-label": `Decrease${ariaLabel ? ` ${ariaLabel}` : ''}`, onClick: () => stepBy(-1), tabIndex: -1, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Minus, { className: "size-4", "aria-hidden": true }) }), (0, jsx_runtime_1.jsx)("div", { className: "w-28", children: (0, jsx_runtime_1.jsx)(input_1.Input, { id: id, inputMode: "decimal", role: "spinbutton", "aria-valuenow": value ?? undefined, "aria-valuemin": min, "aria-valuemax": max, className: "text-right tabular-nums", value: displayValue, placeholder: placeholder, disabled: disabled, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, onChange: onChange, onKeyDown: onKeyDown, onFocus: onFocus, onBlur: onBlur }) }), (0, jsx_runtime_1.jsx)(icon_button_1.IconButton, { type: "button", variant: "outline", disabled: disabled || atMax, "aria-label": `Increase${ariaLabel ? ` ${ariaLabel}` : ''}`, onClick: () => stepBy(1), tabIndex: -1, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { className: "size-4", "aria-hidden": true }) })] }));
238
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * SearchInput — the console filter row's text field.
3
+ *
4
+ * A controlled text field with a leading search glyph and a trailing clear
5
+ * button that appears only when there is text. It debounces the *emission*
6
+ * (`onValueChange`) while keeping the visible field perfectly responsive: a
7
+ * local draft mirrors the controlled `value`, every keystroke updates the draft
8
+ * immediately, and a trailing timer flushes the draft to the parent after
9
+ * `debounceMs`. Clearing flushes synchronously (no lingering timer fighting an
10
+ * explicit empty).
11
+ *
12
+ * Composes sindarian-ui's Input via its start/end adornment slots.
13
+ */
14
+ import * as React from 'react';
15
+ export type SearchInputProps = {
16
+ /** Controlled value. The visible field mirrors this between keystrokes. */
17
+ value: string;
18
+ /** Debounced emission of the current text. */
19
+ onValueChange: (value: string) => void;
20
+ /** Trailing debounce in ms before `onValueChange` fires. Default 250. */
21
+ debounceMs?: number;
22
+ placeholder?: string;
23
+ /** Accessible label for the field (defaults to the placeholder or "Search"). */
24
+ 'aria-label'?: string;
25
+ /** Accessible label for the clear button. */
26
+ clearLabel?: string;
27
+ disabled?: boolean;
28
+ className?: string;
29
+ id?: string;
30
+ };
31
+ export declare function SearchInput({ value, onValueChange, debounceMs, placeholder, 'aria-label': ariaLabel, clearLabel, disabled, className, id }: SearchInputProps): React.JSX.Element;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/search-input/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,aAAa,EACb,UAAgB,EAChB,WAAuB,EACvB,YAAY,EAAE,SAAS,EACvB,UAA2B,EAC3B,QAAgB,EAChB,SAAS,EACT,EAAE,EACH,EAAE,gBAAgB,qBAgGlB"}
@@ -0,0 +1,114 @@
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.SearchInput = SearchInput;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ /**
40
+ * SearchInput — the console filter row's text field.
41
+ *
42
+ * A controlled text field with a leading search glyph and a trailing clear
43
+ * button that appears only when there is text. It debounces the *emission*
44
+ * (`onValueChange`) while keeping the visible field perfectly responsive: a
45
+ * local draft mirrors the controlled `value`, every keystroke updates the draft
46
+ * immediately, and a trailing timer flushes the draft to the parent after
47
+ * `debounceMs`. Clearing flushes synchronously (no lingering timer fighting an
48
+ * explicit empty).
49
+ *
50
+ * Composes sindarian-ui's Input via its start/end adornment slots.
51
+ */
52
+ const React = __importStar(require("react"));
53
+ const lucide_react_1 = require("lucide-react");
54
+ const icon_button_1 = require("../../components/ui/icon-button");
55
+ const input_1 = require("../../components/ui/input");
56
+ const utils_1 = require("../../lib/utils");
57
+ /**
58
+ * Marks "no emission of ours is awaiting its echo". A unique object, not a
59
+ * string: any string sentinel is a value a parent could legitimately pass.
60
+ */
61
+ const NO_PENDING_ECHO = Symbol('no pending echo');
62
+ function SearchInput({ value, onValueChange, debounceMs = 250, placeholder = 'Search…', 'aria-label': ariaLabel, clearLabel = 'Clear search', disabled = false, className, id }) {
63
+ // Local draft keeps typing instant; the controlled `value` is the source of
64
+ // truth between edits. When the parent changes `value` out of band (reset,
65
+ // programmatic set), the draft follows.
66
+ const [draft, setDraft] = React.useState(value);
67
+ const timer = React.useRef(null);
68
+ // The value this component last emitted and has not yet seen echoed back. The
69
+ // parent echoes it one render later, by which time the user may already have
70
+ // typed further — syncing the draft to that echo would rewind the field and
71
+ // swallow those keystrokes. Starts as the sentinel rather than `value`, so the
72
+ // initial value is never mistaken for an echo of something we sent.
73
+ const lastEmitted = React.useRef(NO_PENDING_ECHO);
74
+ React.useEffect(() => {
75
+ if (lastEmitted.current === value) {
76
+ // This is the echo of our own emission. Consume the token: a LATER
77
+ // external change back to this same text (foo -> bar -> foo) is a real
78
+ // change and must reach the draft.
79
+ lastEmitted.current = NO_PENDING_ECHO;
80
+ return;
81
+ }
82
+ setDraft(value);
83
+ }, [value]);
84
+ const clearTimer = React.useCallback(() => {
85
+ if (timer.current !== null) {
86
+ clearTimeout(timer.current);
87
+ timer.current = null;
88
+ }
89
+ }, []);
90
+ // Cancel any pending debounced emission on unmount — don't fire a stale
91
+ // search into a parent that's tearing down. (Clearing flushes synchronously
92
+ // via handleClear, so a real clear is never lost.)
93
+ React.useEffect(() => clearTimer, [clearTimer]);
94
+ const handleChange = (event) => {
95
+ const next = event.target.value;
96
+ setDraft(next);
97
+ clearTimer();
98
+ timer.current = setTimeout(() => {
99
+ timer.current = null;
100
+ lastEmitted.current = next;
101
+ onValueChange(next);
102
+ }, debounceMs);
103
+ };
104
+ const handleClear = () => {
105
+ clearTimer();
106
+ setDraft('');
107
+ lastEmitted.current = '';
108
+ onValueChange('');
109
+ };
110
+ const hasValue = draft.length > 0;
111
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('relative w-full sm:w-64', className), children: (0, jsx_runtime_1.jsx)(input_1.Input, { id: id, type: "search", role: "searchbox", value: draft, onChange: handleChange, placeholder: placeholder, "aria-label": ariaLabel ?? placeholder ?? 'Search', disabled: disabled,
112
+ // The native search clear glyph would duplicate our button.
113
+ className: "[&::-webkit-search-cancel-button]:appearance-none", startAdornment: (0, jsx_runtime_1.jsx)(input_1.InputAdornment, { position: "start", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Search, { "aria-hidden": true }) }), endAdornment: hasValue ? ((0, jsx_runtime_1.jsx)(input_1.InputAdornment, { position: "end", children: (0, jsx_runtime_1.jsx)(icon_button_1.IconButton, { type: "button", variant: "plain", size: "small", "aria-label": clearLabel, disabled: disabled, onClick: handleClear, className: "text-muted-foreground hover:text-foreground", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "size-4", "aria-hidden": true }) }) })) : undefined }) }));
114
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * StatCard — a single headline-figure cell of the console.
3
+ *
4
+ * A `LedgerPanel` holding a recessive `SectionLabel`, the dominant mono
5
+ * `Figure`, an optional delta line, an optional inline trend, and optional
6
+ * secondary `BlotterRow` key/value rows. Drop StatCards into a `LedgerSheet` so
7
+ * they read as connected hairline-seamed panels rather than floating cards.
8
+ *
9
+ * <StatCard label="Match rate" value="98.4%" delta="+0.6 pts" tone="success" />
10
+ * <StatCard label="In flight" value="R$ 129,004" trend={series} trendKey="v" />
11
+ *
12
+ * The `tone` escalates the value + delta color to a semantic theme token.
13
+ *
14
+ * NOTE (sindarian-x port): the legacy StatCard drew its trend with the
15
+ * recharts-backed Sparkline. That component is outside the port census, so the
16
+ * trend here is a dependency-free inline SVG; everything else composes the same
17
+ * ledger grammar the legacy card did.
18
+ */
19
+ import type { ReactNode } from 'react';
20
+ export type StatCardTone = 'default' | 'success' | 'warning' | 'destructive';
21
+ export type StatCardRow = {
22
+ label: ReactNode;
23
+ value: ReactNode;
24
+ };
25
+ export type StatCardProps = {
26
+ /** Recessive uppercase heading. */
27
+ label: string;
28
+ /** The dominant headline value — rendered in the hero mono figure. */
29
+ value: ReactNode;
30
+ /** Optional delta line below the value (e.g. `+0.6 pts`, `-3`). Inherits the tone color. */
31
+ delta?: ReactNode;
32
+ /** Semantic escalation for the value + delta color. */
33
+ tone?: StatCardTone;
34
+ /** Optional trend series for the inline sparkline. */
35
+ trend?: ReadonlyArray<Record<string, string | number | null>>;
36
+ /** Key in each `trend` datum to plot. Defaults to `value`. */
37
+ trendKey?: string;
38
+ /** Optional secondary key/value rows. */
39
+ rows?: StatCardRow[];
40
+ className?: string;
41
+ };
42
+ export declare function StatCard({ label, value, delta, tone, trend, trendKey, rows, className }: StatCardProps): import("react").JSX.Element;
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/stat-card/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAQtC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAoB5E,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,sEAAsE;IACtE,KAAK,EAAE,SAAS,CAAA;IAChB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,uDAAuD;IACvD,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;IAC7D,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAwED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAgB,EAChB,KAAK,EACL,QAAkB,EAClB,IAAI,EACJ,SAAS,EACV,EAAE,aAAa,+BAgCf"}
@@ -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
+ }