@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,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.delinquencyRate = delinquencyRate;
4
+ exports.DelinquencyAging = DelinquencyAging;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * DelinquencyAging — a loan/receivable delinquency surface: the ordered overdue
8
+ * aging distribution PLUS the headline delinquency rate (the share of portfolio
9
+ * value that is past due).
10
+ *
11
+ * <DelinquencyAging
12
+ * currency="BRL"
13
+ * locale="pt-BR"
14
+ * warn={0.05}
15
+ * breach={0.1}
16
+ * buckets={[
17
+ * { label: 'A vencer', count: 312, total: '1840500.00', overdue: false },
18
+ * { label: '1–30', count: 84, total: '402300.00', overdue: true },
19
+ * { label: '31–60', count: 21, total: '118900.00', overdue: true },
20
+ * { label: '61–90', count: 9, total: '54200.00', overdue: true },
21
+ * { label: '90+', count: 4, total: '38100.00', overdue: true }
22
+ * ]}
23
+ * />
24
+ *
25
+ * The distribution is delegated whole to `AgingBuckets`: it owns the ordered
26
+ * current → 90+ schedule, the per-bucket count/total, the ordinal band cue, and
27
+ * the money-math-exact grand total. This composite adds only the one fact aging
28
+ * alone does not state — the delinquency RATE.
29
+ *
30
+ * THIRD RAIL (money): the rate is overdueTotal / portfolioTotal, and BOTH totals
31
+ * are summed in integer minor units (BigInt, at the currency's CLDR scale) via
32
+ * `money-math` — never an IEEE-754 sum of decimals (0.1 + 0.2 ≠ 0.3 in float, a
33
+ * silent basis-point error on a portfolio). The single floating-point operation
34
+ * is the FINAL division of two already-exact integers, which is the correct,
35
+ * lossless-enough place for it (a ratio is not money). A zero portfolio yields a
36
+ * null rate — an explicit empty readout, never a NaN. A single unparseable
37
+ * bucket total poisons the rate to indeterminate rather than reporting a wrong
38
+ * share.
39
+ *
40
+ * NON-COLOR CUE (WCAG 1.4.1): the rate band (healthy / elevated / distressed) is
41
+ * resolved through the gauge's strict-edge `gaugeBand` (higher-is-worse: more
42
+ * overdue is worse) and named with a glyph + an sr-only word + a tint — the tint
43
+ * is reinforcement only, so the band survives grayscale and color-vision
44
+ * deficiency. A distressed rate reads loud (credit-red, role='alert').
45
+ *
46
+ * Pure display: no directive, no interactivity, server-safe for RSC.
47
+ */
48
+ const lucide_react_1 = require("lucide-react");
49
+ const typography_1 = require("../../lib/typography");
50
+ const utils_1 = require("../../lib/utils");
51
+ const figure_1 = require("../figure");
52
+ const format_1 = require("../format");
53
+ const money_math_1 = require("../money-math");
54
+ const section_label_1 = require("../section-label");
55
+ const aging_buckets_1 = require("./aging-buckets");
56
+ /** Fixed-point scale for the rate division: 1e12 keeps twelve decimal places of
57
+ * a 0..1 ratio, and both it and any in-range scaled quotient stay well inside
58
+ * the exact-integer range of a double (2^53), so the conversion is lossless. */
59
+ const RATE_PRECISION = 1000000000000n;
60
+ /**
61
+ * THIRD RAIL: the delinquency rate = overdue total / portfolio total, with both
62
+ * totals summed through integer minor units (BigInt) at `scale`. The only float
63
+ * operation is the final division of two EXACT integers — never a float sum of
64
+ * decimals. A zero portfolio gives a null rate (explicit empty, no NaN); an
65
+ * unparseable total poisons everything to indeterminate. Pure: unit-tested.
66
+ *
67
+ * Internal: exported for its unit tests, never from `src/domain/index.ts`.
68
+ */
69
+ function delinquencyRate(buckets, scale) {
70
+ // Parse each bucket exactly once: the sums and the per-bucket SIGN check both
71
+ // come off the same pass, so the two can never disagree about the same input.
72
+ const parsed = buckets.map((b) => (0, money_math_1.toMinor)(b.total, scale));
73
+ if (parsed.some((m) => m === null)) {
74
+ return {
75
+ rate: null,
76
+ overdueMinor: null,
77
+ totalMinor: null,
78
+ indeterminate: true
79
+ };
80
+ }
81
+ let totalMinor = 0n;
82
+ let overdueMinor = 0n;
83
+ let hasNegativeBucket = false;
84
+ parsed.forEach((m, i) => {
85
+ const minor = m;
86
+ if (minor < 0n)
87
+ hasNegativeBucket = true;
88
+ totalMinor += minor;
89
+ if (buckets[i].overdue)
90
+ overdueMinor += minor;
91
+ });
92
+ // A NEGATIVE bucket total is parseable but not interpretable as a share of a
93
+ // portfolio: overdue/total stops being bounded by 0..1 the moment a component
94
+ // is negative (a -50 current band against a 100 overdue band yields "200%
95
+ // delinquent"), and it can also cancel the denominator toward zero. A credit
96
+ // adjustment is real data, but it is not aging data, so the honest answer is
97
+ // that the RATE cannot be determined — the sums stay, since they are still
98
+ // correct, and the readout takes the no-value path. Legacy divided anyway and
99
+ // printed the out-of-range percentage.
100
+ if (hasNegativeBucket) {
101
+ return { rate: null, overdueMinor, totalMinor, indeterminate: true };
102
+ }
103
+ // A zero portfolio has no rate to report — null, never overdueMinor/0 (NaN).
104
+ if (totalMinor === 0n) {
105
+ return { rate: null, overdueMinor, totalMinor, indeterminate: false };
106
+ }
107
+ // The division is done as a BOUNDED BigInt ratio first, then converted once.
108
+ // Converting the two totals to Number separately overflowed on a large
109
+ // portfolio: past ~1.8e308 each side becomes Infinity and Infinity/Infinity is
110
+ // NaN — a portfolio big enough to matter reported no rate at all. Scaling the
111
+ // numerator by RATE_PRECISION keeps the quotient the size of a ratio (not the
112
+ // size of the money), so the single Number() sees a value it can hold exactly.
113
+ const scaled = (overdueMinor * RATE_PRECISION) / totalMinor;
114
+ const rate = Number(scaled) / Number(RATE_PRECISION);
115
+ // A ratio that still cannot be represented is no rate at all — the readout
116
+ // shows the no-value placeholder rather than a NaN/Infinity artifact.
117
+ if (!Number.isFinite(rate)) {
118
+ return { rate: null, overdueMinor, totalMinor, indeterminate: false };
119
+ }
120
+ return { rate, overdueMinor, totalMinor, indeterminate: false };
121
+ }
122
+ /** Fixed-point scale for comparing the ratio against a float threshold as exact
123
+ * integers. 1e18 is well past the ~1e-16 relative precision a double carries,
124
+ * so the comparison is exact to the limit of the threshold value itself. */
125
+ const THRESHOLD_SCALE = 10n ** 18n;
126
+ /**
127
+ * THIRD RAIL: `overdue / total > threshold`, decided on EXACT integers.
128
+ *
129
+ * The float `rate` is a TRUNCATED view of the ratio — RATE_PRECISION drops every
130
+ * digit past 1e-12 — so a rate a hair ABOVE a threshold rounds down onto it, and
131
+ * the strict-edge rule then reads it as the calmer band. 500000000001 /
132
+ * 10000000000000 is 0.0500000000001, genuinely past a 0.05 warn edge, and
133
+ * truncates to exactly 0.05, which reported "Saudável" on a portfolio that had
134
+ * crossed into "Elevada". Cross-multiplying keeps the comparison in integers,
135
+ * where no digit is dropped.
136
+ */
137
+ function ratioExceeds(overdue, total, threshold) {
138
+ // A non-finite threshold is no threshold: nothing can be past it.
139
+ if (!Number.isFinite(threshold))
140
+ return false;
141
+ // Scaling overflows to ±Infinity for a threshold that is finite but huge —
142
+ // 1e300 is enough, MAX_VALUE certainly — and `BigInt(Infinity)` throws a
143
+ // RangeError, mid-render, taking the surface down. Both overflow directions
144
+ // have an EXACT answer, so this degrades to the right result rather than a
145
+ // merely safe one: an overflowed positive threshold is one no 0..1 ratio could
146
+ // ever reach (not exceeded), an overflowed negative one sits below every ratio
147
+ // (always exceeded).
148
+ const scaled = Math.round(threshold * Number(THRESHOLD_SCALE));
149
+ if (!Number.isFinite(scaled))
150
+ return scaled < 0;
151
+ let scaledInt = BigInt(scaled);
152
+ // A threshold FINER than one unit of the scale rounds to zero, and a zero
153
+ // threshold means "anything above zero is past it" — the exact opposite of what
154
+ // a tiny positive threshold asks for. 4e-19 scaled to 0, so a ratio of 1e-19
155
+ // was reported as exceeding it. Clamp to one unit instead, keeping the sign, so
156
+ // a sub-scale threshold behaves as the finest one this comparison supports.
157
+ //
158
+ // ponytail: the floor is 1e-18 (THRESHOLD_SCALE), so a threshold between 0 and
159
+ // 1e-18 is treated as 1e-18 and a ratio in that sliver reads calmer than the
160
+ // literal number asks. Immaterial for a delinquency ratio — a portfolio would
161
+ // need ~1e18 currency units for one minor unit to land there — and the honest
162
+ // alternative is exact rational threshold conversion, which buys nothing real.
163
+ // An EXACT zero is left alone: every positive ratio does exceed it.
164
+ if (scaledInt === 0n && threshold !== 0) {
165
+ scaledInt = threshold < 0 ? -1n : 1n;
166
+ }
167
+ return overdue * THRESHOLD_SCALE > scaledInt * total;
168
+ }
169
+ /**
170
+ * The rate band, resolved from the exact minor-unit ratio. Mirrors `gaugeBand`'s
171
+ * higher-is-worse STRICT-edge canon (a ratio exactly ON a threshold stays in the
172
+ * calmer band) rather than calling it: `gaugeBand` takes a float, and handing it
173
+ * the truncated rate is precisely the defect above.
174
+ */
175
+ function exactBand(overdue, total, warn, breach) {
176
+ if (ratioExceeds(overdue, total, breach))
177
+ return 'breach';
178
+ if (ratioExceeds(overdue, total, warn))
179
+ return 'warn';
180
+ return 'low';
181
+ }
182
+ /** Band → glyph + tint + accessible word. The glyph and sr-only word are the
183
+ * load-bearing cue; the tint only reinforces, so the band survives grayscale
184
+ * and color-vision deficiency. Mirrors the gauge's three-band canon, renamed
185
+ * to the delinquency vocabulary. */
186
+ const RATE_BAND = {
187
+ low: { Icon: lucide_react_1.ShieldCheck, tint: 'text-system-success', word: 'Saudável' },
188
+ warn: { Icon: lucide_react_1.TriangleAlert, tint: 'text-system-alert', word: 'Elevada' },
189
+ breach: { Icon: lucide_react_1.AlertOctagon, tint: 'text-credit', word: 'Em estresse' }
190
+ };
191
+ function DelinquencyAging({ buckets, currency, locale, rateLabel = 'Inadimplência', rateBandLabels, emptyLabel = 'sem carteira', indeterminateLabel = 'indeterminada', bucketLabels, warn = 0.05, breach = 0.1, showTotal = false, className }) {
192
+ // THIRD RAIL: the rate scale and the two totals come from money-math, never
193
+ // float. The division below is of two exact BigInt-derived integers.
194
+ const scale = currency ? (0, money_math_1.minorDigitsOf)(currency) : 2;
195
+ const { rate, overdueMinor, totalMinor, indeterminate } = delinquencyRate(buckets, scale);
196
+ // The band is only meaningful when there is a rate; an empty/indeterminate
197
+ // portfolio has no band to name (rendered as the explicit no-value readout).
198
+ const hasRate = rate !== null;
199
+ // higher-is-worse: more value past due is worse. The band comes off the EXACT
200
+ // minor-unit ratio, never `rate` — that float is truncated at 1e-12 and is for
201
+ // DISPLAY only (one decimal place, where the truncation cannot show).
202
+ const band = hasRate && overdueMinor !== null && totalMinor !== null
203
+ ? exactBand(overdueMinor, totalMinor, warn, breach)
204
+ : 'low';
205
+ const { Icon, tint, word } = RATE_BAND[band];
206
+ // Shallow merge: an unlisted band keeps its pt-BR default.
207
+ const bandWord = rateBandLabels?.[band] ?? word;
208
+ const distressed = band === 'breach';
209
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('flex flex-col gap-4', className), children: [(0, jsx_runtime_1.jsxs)("header", { className: "flex items-baseline justify-between gap-3", children: [(0, jsx_runtime_1.jsx)(section_label_1.SectionLabel, { as: "span", children: rateLabel }), hasRate ? ((0, jsx_runtime_1.jsxs)("span", {
210
+ // A distressed rate is a credit alarm: announced the moment it
211
+ // crosses the band, so assistive tech does not lean on the tint.
212
+ role: distressed ? 'alert' : undefined, className: (0, utils_1.cn)('inline-flex items-center gap-1.5', tint), children: [(0, jsx_runtime_1.jsx)(Icon, { "aria-hidden": true, className: "size-4 shrink-0" }), (0, jsx_runtime_1.jsxs)("span", { className: "sr-only", children: [bandWord, ": "] }), (0, jsx_runtime_1.jsx)(figure_1.Figure, { size: "row", className: tint, children: (0, format_1.formatPercent)(rate, { unit: 'ratio', locale }) })] })) : ((0, jsx_runtime_1.jsxs)("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [(0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)(typography_1.LABEL_VOICE_CLASS, 'tracking-normal normal-case'), children: indeterminate ? indeterminateLabel : emptyLabel }), (0, jsx_runtime_1.jsx)(figure_1.Figure, { size: "row", className: "text-muted-foreground", children: format_1.NO_VALUE })] }))] }), (0, jsx_runtime_1.jsx)(aging_buckets_1.AgingBuckets, { buckets: buckets, currency: currency, locale: locale, showTotal: showTotal, labels: bucketLabels })] }));
213
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Figure — the locked mono figure type scale of the enterprise console.
3
+ *
4
+ * All numbers are the hero: mono, tabular, visually dominant. This file is the
5
+ * single source of truth for the canonical figure sizes so screens stop
6
+ * re-typing `font-mono … tabular-nums` strings and drifting on
7
+ * size/weight/tracking. Use `<Figure size>` for new markup, or import the
8
+ * `FIGURE_CLASS` constants when composing className strings inline.
9
+ *
10
+ * Scale:
11
+ * - hero : the dominant in-bar figure — text-4xl/5xl, semibold, tracking-tight
12
+ * - panel : compliance / exposure — text-3xl, semibold, tracking-tight
13
+ * - count : ledger count — text-2xl, semibold, tracking-tight
14
+ * - row : inline / row figure — text-sm
15
+ * - tick : ruler / micro figure — text-[10px], leading-none
16
+ */
17
+ import type { ElementType, ReactNode } from 'react';
18
+ export type FigureSize = 'hero' | 'panel' | 'count' | 'row' | 'tick';
19
+ /** Canonical class strings per figure size. The `tabular-nums` and `font-mono`
20
+ * invariants live here so they can never be forgotten at a call site. */
21
+ export declare const FIGURE_CLASS: Record<FigureSize, string>;
22
+ export type FigureProps = {
23
+ size: FigureSize;
24
+ children: ReactNode;
25
+ className?: string;
26
+ /** Render element. Defaults to `span` so figures nest inside `dd`/`p`/etc. */
27
+ as?: ElementType;
28
+ };
29
+ export declare function Figure({ size, children, className, as: Tag }: FigureProps): import("react").JSX.Element;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/figure/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAInD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAEpE;0EAC0E;AAC1E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMnD,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,EAAE,CAAC,EAAE,WAAW,CAAA;CACjB,CAAA;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,EAAE,EAAE,GAAY,EACjB,EAAE,WAAW,+BAEb"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FIGURE_CLASS = void 0;
4
+ exports.Figure = Figure;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const utils_1 = require("../../lib/utils");
7
+ /** Canonical class strings per figure size. The `tabular-nums` and `font-mono`
8
+ * invariants live here so they can never be forgotten at a call site. */
9
+ exports.FIGURE_CLASS = {
10
+ hero: 'font-mono text-4xl font-semibold tracking-tight tabular-nums lg:text-5xl',
11
+ panel: 'font-mono text-3xl font-semibold tracking-tight tabular-nums',
12
+ count: 'font-mono text-2xl font-semibold tracking-tight tabular-nums',
13
+ row: 'font-mono text-sm tabular-nums',
14
+ tick: 'font-mono text-[10px] leading-none tabular-nums'
15
+ };
16
+ function Figure({ size, children, className, as: Tag = 'span' }) {
17
+ return (0, jsx_runtime_1.jsx)(Tag, { className: (0, utils_1.cn)(exports.FIGURE_CLASS[size], className), children: children });
18
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Ledger-kit formatting helpers. Pure functions, no React. `MoneyText` owns
3
+ * monetary formatting; these cover percent, integer counts, and humanized
4
+ * durations (e.g. an average resolution time arriving as milliseconds).
5
+ */
6
+ /** No-value placeholder. A middle dot reads as "empty" without an em dash, and
7
+ * stays narrow enough not to disturb tabular alignment. */
8
+ export declare const NO_VALUE = "\u00B7";
9
+ /**
10
+ * Whether a digit count is one `Intl.NumberFormat` (and `Number#toFixed`, and
11
+ * `String#repeat`) will actually accept: a finite integer in 0..100. Anything
12
+ * else — a negative, a fraction, NaN, Infinity — makes those constructors throw
13
+ * a RangeError, which on a money surface means a blank screen instead of a
14
+ * number. Every caller turns an invalid count into the no-value path instead.
15
+ *
16
+ * Internal: shared by `format`, `money-text` and `money-math` so the three
17
+ * cannot drift on what "valid" means. Never exported from `src/domain/index.ts`.
18
+ */
19
+ export declare function isValidDigitCount(digits: number): boolean;
20
+ /**
21
+ * A locale tag `Intl` will accept, or `undefined` — which every `Intl`
22
+ * constructor reads as "the runtime locale", the documented default for every
23
+ * `locale` prop in this layer.
24
+ *
25
+ * A structurally invalid tag makes EVERY `Intl` constructor throw a RangeError:
26
+ * `''`, `'en_US'` (underscore for hyphen — the commonest mistake, and what a
27
+ * POSIX `LANG` value looks like), a truncated tag out of a stored user
28
+ * preference. Unguarded, that RangeError escapes during render, so one bad
29
+ * preference string takes down the whole money surface instead of printing a
30
+ * number with the wrong decimal mark. `Intl.getCanonicalLocales` rejects exactly
31
+ * the tags the formatters reject, so it is the predicate rather than a
32
+ * hand-rolled BCP 47 regex.
33
+ *
34
+ * The locale is the least important input to a figure — the DIGITS are the
35
+ * point — so an unusable tag degrades to the runtime locale and the number still
36
+ * renders.
37
+ *
38
+ * Internal: shared by `format`, `money-text` and `number-input` so they cannot
39
+ * drift. Never exported from `src/domain/index.ts`.
40
+ */
41
+ export declare function safeLocale(locale?: string): string | undefined;
42
+ /** Whether an input rate is a 0..1 ratio or an already-scaled 0..100 percent.
43
+ * Defaults to 'ratio' — no guessing from magnitude. */
44
+ export type PercentUnit = 'ratio' | 'percent';
45
+ export type FormatPercentOptions = {
46
+ /** Fraction digits. Defaults to 1. */
47
+ digits?: number;
48
+ /** How to interpret `value`. 'ratio' (default) ×100; 'percent' is already 0..100. */
49
+ unit?: PercentUnit;
50
+ /** BCP 47 locale for the decimal mark. Defaults to the runtime locale. */
51
+ locale?: string;
52
+ };
53
+ /**
54
+ * Format a rate as a percent string. `unit` is explicit, never inferred from
55
+ * magnitude: 'ratio' (default) treats `value` as 0..1 and scales ×100;
56
+ * 'percent' treats `value` as already 0..100.
57
+ *
58
+ * Uses Intl style:'percent' for correct rounding and a locale-aware decimal
59
+ * mark. Intl multiplies its input by 100, so we always feed it the RATIO —
60
+ * a 'percent' input is divided by 100 first.
61
+ */
62
+ export declare function formatPercent(value: number | null | undefined, options?: FormatPercentOptions): string;
63
+ /**
64
+ * Normalize a rate to the 0..100 range for chart geometry. `unit` is explicit:
65
+ * 'ratio' (default) scales a 0..1 input ×100; 'percent' is already 0..100.
66
+ */
67
+ export declare function toPercentValue(value: number | null | undefined, unit?: PercentUnit): number;
68
+ /** Thousands-grouped integer count. `locale` defaults to the runtime locale. */
69
+ export declare function formatCount(value: number | null | undefined, locale?: string): string;
70
+ /**
71
+ * Humanize a millisecond duration into the largest two sensible units.
72
+ * 0ms → "0s". Sub-minute → seconds. Otherwise the two most-significant
73
+ * CONTIGUOUS d/h/m units from the largest non-zero unit down — so "2d 0h 5m"
74
+ * renders as "2d 0h", not the misleading "2d 5m".
75
+ *
76
+ * Note: the d/h/m/s suffixes are English; localizing them is deferred.
77
+ */
78
+ export declare function humanizeDurationMs(ms: number | null | undefined): string;
79
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/domain/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;2DAC2D;AAC3D,eAAO,MAAM,QAAQ,WAAM,CAAA;AAE3B;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ9D;AAED;uDACuD;AACvD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,CAAA;AAE7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAaR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,IAAI,GAAE,WAAqB,GAC1B,MAAM,CAIR;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAuBxE"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ /**
3
+ * Ledger-kit formatting helpers. Pure functions, no React. `MoneyText` owns
4
+ * monetary formatting; these cover percent, integer counts, and humanized
5
+ * durations (e.g. an average resolution time arriving as milliseconds).
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.NO_VALUE = void 0;
9
+ exports.isValidDigitCount = isValidDigitCount;
10
+ exports.safeLocale = safeLocale;
11
+ exports.formatPercent = formatPercent;
12
+ exports.toPercentValue = toPercentValue;
13
+ exports.formatCount = formatCount;
14
+ exports.humanizeDurationMs = humanizeDurationMs;
15
+ /** No-value placeholder. A middle dot reads as "empty" without an em dash, and
16
+ * stays narrow enough not to disturb tabular alignment. */
17
+ exports.NO_VALUE = '·';
18
+ /**
19
+ * Whether a digit count is one `Intl.NumberFormat` (and `Number#toFixed`, and
20
+ * `String#repeat`) will actually accept: a finite integer in 0..100. Anything
21
+ * else — a negative, a fraction, NaN, Infinity — makes those constructors throw
22
+ * a RangeError, which on a money surface means a blank screen instead of a
23
+ * number. Every caller turns an invalid count into the no-value path instead.
24
+ *
25
+ * Internal: shared by `format`, `money-text` and `money-math` so the three
26
+ * cannot drift on what "valid" means. Never exported from `src/domain/index.ts`.
27
+ */
28
+ function isValidDigitCount(digits) {
29
+ return Number.isInteger(digits) && digits >= 0 && digits <= 100;
30
+ }
31
+ /**
32
+ * A locale tag `Intl` will accept, or `undefined` — which every `Intl`
33
+ * constructor reads as "the runtime locale", the documented default for every
34
+ * `locale` prop in this layer.
35
+ *
36
+ * A structurally invalid tag makes EVERY `Intl` constructor throw a RangeError:
37
+ * `''`, `'en_US'` (underscore for hyphen — the commonest mistake, and what a
38
+ * POSIX `LANG` value looks like), a truncated tag out of a stored user
39
+ * preference. Unguarded, that RangeError escapes during render, so one bad
40
+ * preference string takes down the whole money surface instead of printing a
41
+ * number with the wrong decimal mark. `Intl.getCanonicalLocales` rejects exactly
42
+ * the tags the formatters reject, so it is the predicate rather than a
43
+ * hand-rolled BCP 47 regex.
44
+ *
45
+ * The locale is the least important input to a figure — the DIGITS are the
46
+ * point — so an unusable tag degrades to the runtime locale and the number still
47
+ * renders.
48
+ *
49
+ * Internal: shared by `format`, `money-text` and `number-input` so they cannot
50
+ * drift. Never exported from `src/domain/index.ts`.
51
+ */
52
+ function safeLocale(locale) {
53
+ if (locale === undefined)
54
+ return undefined;
55
+ try {
56
+ Intl.getCanonicalLocales(locale);
57
+ return locale;
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ }
63
+ /**
64
+ * Format a rate as a percent string. `unit` is explicit, never inferred from
65
+ * magnitude: 'ratio' (default) treats `value` as 0..1 and scales ×100;
66
+ * 'percent' treats `value` as already 0..100.
67
+ *
68
+ * Uses Intl style:'percent' for correct rounding and a locale-aware decimal
69
+ * mark. Intl multiplies its input by 100, so we always feed it the RATIO —
70
+ * a 'percent' input is divided by 100 first.
71
+ */
72
+ function formatPercent(value, options = {}) {
73
+ if (value === null || value === undefined || !Number.isFinite(value))
74
+ return exports.NO_VALUE;
75
+ const { digits = 1, unit = 'ratio', locale } = options;
76
+ // A caller-supplied digit count reaches Intl directly; an out-of-range one
77
+ // would throw a RangeError and take the whole surface down with it.
78
+ if (!isValidDigitCount(digits))
79
+ return exports.NO_VALUE;
80
+ const ratio = unit === 'percent' ? value / 100 : value;
81
+ return new Intl.NumberFormat(safeLocale(locale), {
82
+ style: 'percent',
83
+ minimumFractionDigits: digits,
84
+ maximumFractionDigits: digits
85
+ }).format(ratio);
86
+ }
87
+ /**
88
+ * Normalize a rate to the 0..100 range for chart geometry. `unit` is explicit:
89
+ * 'ratio' (default) scales a 0..1 input ×100; 'percent' is already 0..100.
90
+ */
91
+ function toPercentValue(value, unit = 'ratio') {
92
+ if (value === null || value === undefined || !Number.isFinite(value))
93
+ return 0;
94
+ const pct = unit === 'percent' ? value : value * 100;
95
+ return Math.max(0, Math.min(100, pct));
96
+ }
97
+ /** Thousands-grouped integer count. `locale` defaults to the runtime locale. */
98
+ function formatCount(value, locale) {
99
+ if (value === null || value === undefined || !Number.isFinite(value))
100
+ return exports.NO_VALUE;
101
+ return new Intl.NumberFormat(safeLocale(locale), {
102
+ maximumFractionDigits: 0
103
+ }).format(value);
104
+ }
105
+ /**
106
+ * Humanize a millisecond duration into the largest two sensible units.
107
+ * 0ms → "0s". Sub-minute → seconds. Otherwise the two most-significant
108
+ * CONTIGUOUS d/h/m units from the largest non-zero unit down — so "2d 0h 5m"
109
+ * renders as "2d 0h", not the misleading "2d 5m".
110
+ *
111
+ * Note: the d/h/m/s suffixes are English; localizing them is deferred.
112
+ */
113
+ function humanizeDurationMs(ms) {
114
+ if (ms == null || !Number.isFinite(ms) || ms < 0)
115
+ return exports.NO_VALUE;
116
+ if (ms === 0)
117
+ return '0s';
118
+ const totalSeconds = Math.round(ms / 1000);
119
+ if (totalSeconds < 60)
120
+ return `${totalSeconds}s`;
121
+ const days = Math.floor(totalSeconds / 86400);
122
+ const hours = Math.floor((totalSeconds % 86400) / 3600);
123
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
124
+ // Two contiguous units starting at the largest non-zero unit, in order.
125
+ const units = [
126
+ [days, 'd'],
127
+ [hours, 'h'],
128
+ [minutes, 'm']
129
+ ];
130
+ const start = units.findIndex(([n]) => n > 0);
131
+ if (start === -1)
132
+ return `${minutes}m`;
133
+ return units
134
+ .slice(start, start + 2)
135
+ .map(([n, suffix]) => `${n}${suffix}`)
136
+ .join(' ');
137
+ }
@@ -0,0 +1,23 @@
1
+ export { NO_VALUE, formatCount, formatPercent, humanizeDurationMs, toPercentValue } from './format';
2
+ export type { FormatPercentOptions, PercentUnit } from './format';
3
+ export { moneyDiff } from './money-diff';
4
+ export type { MoneyDiffInput } from './money-diff';
5
+ export { MoneyText } from './money-text';
6
+ export type { MoneyTextProps } from './money-text';
7
+ export { FIGURE_CLASS, Figure } from './figure';
8
+ export type { FigureProps, FigureSize } from './figure';
9
+ export { SectionLabel } from './section-label';
10
+ export type { SectionLabelProps } from './section-label';
11
+ export { Blotter, BlotterRow } from './blotter';
12
+ export type { BlotterProps, BlotterRowProps } from './blotter';
13
+ export { LedgerPanel, LedgerSheet } from './ledger-sheet';
14
+ export type { LedgerPanelProps, LedgerSheetProps } from './ledger-sheet';
15
+ export { KeyId } from './key-id';
16
+ export type { KeyIdKind, KeyIdProps } from './key-id';
17
+ export { Dot, LivePulse, StatusRail } from './status-rail';
18
+ export type { StatusRailChip, StatusRailItem, StatusRailProps } from './status-rail';
19
+ export { ThresholdGauge, gaugeBand } from './threshold-gauge';
20
+ export type { GaugeBand, GaugeDirection, GaugeEdges, GaugeFormat, GaugeThresholds, ThresholdGaugeProps } from './threshold-gauge';
21
+ export { DelinquencyAging } from './delinquency-aging';
22
+ export type { AgingBand, AgingBucketsLabels, DelinquencyAgingProps, DelinquencyBucket } from './delinquency-aging';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,cAAc,EACf,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAExE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1D,YAAY,EACV,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,YAAY,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ // Owned by lane domain — see docs/plans/2026-08-26-sindarian-x-retirement/
3
+ //
4
+ // The finance domain grammar absorbed from @lerianstudio/sindarian-x@0.15.0.
5
+ // Exports are NAMED (never `export *`) on purpose: the port census freezes the
6
+ // public surface to exactly the symbols the four migrating apps import, and the
7
+ // money-math internals (`toMinor`, `Amount`, `sumMinor`, `formatMoneyParts`,
8
+ // `maskKeyId`, `AgingBuckets`, …) stay module-private so they never become an
9
+ // API this package has to keep.
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.DelinquencyAging = exports.gaugeBand = exports.ThresholdGauge = exports.StatusRail = exports.LivePulse = exports.Dot = exports.KeyId = exports.LedgerSheet = exports.LedgerPanel = exports.BlotterRow = exports.Blotter = exports.SectionLabel = exports.Figure = exports.FIGURE_CLASS = exports.MoneyText = exports.moneyDiff = exports.toPercentValue = exports.humanizeDurationMs = exports.formatPercent = exports.formatCount = exports.NO_VALUE = void 0;
12
+ var format_1 = require("./format");
13
+ Object.defineProperty(exports, "NO_VALUE", { enumerable: true, get: function () { return format_1.NO_VALUE; } });
14
+ Object.defineProperty(exports, "formatCount", { enumerable: true, get: function () { return format_1.formatCount; } });
15
+ Object.defineProperty(exports, "formatPercent", { enumerable: true, get: function () { return format_1.formatPercent; } });
16
+ Object.defineProperty(exports, "humanizeDurationMs", { enumerable: true, get: function () { return format_1.humanizeDurationMs; } });
17
+ Object.defineProperty(exports, "toPercentValue", { enumerable: true, get: function () { return format_1.toPercentValue; } });
18
+ var money_diff_1 = require("./money-diff");
19
+ Object.defineProperty(exports, "moneyDiff", { enumerable: true, get: function () { return money_diff_1.moneyDiff; } });
20
+ var money_text_1 = require("./money-text");
21
+ Object.defineProperty(exports, "MoneyText", { enumerable: true, get: function () { return money_text_1.MoneyText; } });
22
+ var figure_1 = require("./figure");
23
+ Object.defineProperty(exports, "FIGURE_CLASS", { enumerable: true, get: function () { return figure_1.FIGURE_CLASS; } });
24
+ Object.defineProperty(exports, "Figure", { enumerable: true, get: function () { return figure_1.Figure; } });
25
+ var section_label_1 = require("./section-label");
26
+ Object.defineProperty(exports, "SectionLabel", { enumerable: true, get: function () { return section_label_1.SectionLabel; } });
27
+ var blotter_1 = require("./blotter");
28
+ Object.defineProperty(exports, "Blotter", { enumerable: true, get: function () { return blotter_1.Blotter; } });
29
+ Object.defineProperty(exports, "BlotterRow", { enumerable: true, get: function () { return blotter_1.BlotterRow; } });
30
+ var ledger_sheet_1 = require("./ledger-sheet");
31
+ Object.defineProperty(exports, "LedgerPanel", { enumerable: true, get: function () { return ledger_sheet_1.LedgerPanel; } });
32
+ Object.defineProperty(exports, "LedgerSheet", { enumerable: true, get: function () { return ledger_sheet_1.LedgerSheet; } });
33
+ var key_id_1 = require("./key-id");
34
+ Object.defineProperty(exports, "KeyId", { enumerable: true, get: function () { return key_id_1.KeyId; } });
35
+ var status_rail_1 = require("./status-rail");
36
+ Object.defineProperty(exports, "Dot", { enumerable: true, get: function () { return status_rail_1.Dot; } });
37
+ Object.defineProperty(exports, "LivePulse", { enumerable: true, get: function () { return status_rail_1.LivePulse; } });
38
+ Object.defineProperty(exports, "StatusRail", { enumerable: true, get: function () { return status_rail_1.StatusRail; } });
39
+ var threshold_gauge_1 = require("./threshold-gauge");
40
+ Object.defineProperty(exports, "ThresholdGauge", { enumerable: true, get: function () { return threshold_gauge_1.ThresholdGauge; } });
41
+ Object.defineProperty(exports, "gaugeBand", { enumerable: true, get: function () { return threshold_gauge_1.gaugeBand; } });
42
+ var delinquency_aging_1 = require("./delinquency-aging");
43
+ Object.defineProperty(exports, "DelinquencyAging", { enumerable: true, get: function () { return delinquency_aging_1.DelinquencyAging; } });
@@ -0,0 +1,31 @@
1
+ export type KeyIdKind = 'pix-cpf' | 'pix-cnpj' | 'pix-email' | 'pix-phone' | 'pix-evp' | 'e2e' | 'idempotency' | 'generic';
2
+ export interface KeyIdProps {
3
+ value: string;
4
+ /** What the value is. Drives the mask shape and the default mask state. */
5
+ kind?: KeyIdKind;
6
+ /** Optional uppercase tag rendered before the value (e.g. 'Payer', 'E2E'). */
7
+ label?: string;
8
+ /** Override the per-kind mask default. PII kinds default true, ids default false. */
9
+ mask?: boolean;
10
+ /** Show a button that copies the RAW (unmasked) value to the clipboard. */
11
+ copyable?: boolean;
12
+ /** BCP 47 locale — reserved for future locale-aware id formatting. */
13
+ locale?: string;
14
+ className?: string;
15
+ }
16
+ /** Whether a kind masks by default (PII) — used when `mask` is not supplied.
17
+ * Internal: exported for its unit tests, never from `src/domain/index.ts`. */
18
+ export declare function masksByDefault(kind: KeyIdKind): boolean;
19
+ /**
20
+ * Mask a key for display. PII kinds get a structured mask that reveals a
21
+ * non-identifying middle and dots the rest; a value MALFORMED for its kind is
22
+ * redacted outright (see `redactPii`) rather than truncated, so a mask can never
23
+ * fall through to the raw secret. Id-shaped kinds are always middle-truncated
24
+ * (long, not secret). The copy path never uses this — it always sends the raw
25
+ * value.
26
+ *
27
+ * Internal: exported for its unit tests, never from `src/domain/index.ts`.
28
+ */
29
+ export declare function maskKeyId(value: string, kind: KeyIdKind): string;
30
+ export declare function KeyId({ value, kind, label, mask, copyable, className }: KeyIdProps): import("react").JSX.Element;
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/key-id/index.tsx"],"names":[],"mappings":"AA2BA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,SAAS,GACT,KAAK,GACL,aAAa,GACb,SAAS,CAAA;AAEb,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAeD;+EAC+E;AAC/E,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEvD;AAuED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAahE;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,IAAgB,EAChB,KAAK,EACL,IAAI,EACJ,QAAgB,EAChB,SAAS,EACV,EAAE,UAAU,+BAsBZ"}