@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,21 @@
1
+ /**
2
+ * SectionLabel — THE canonical uppercase tracked sans label of the console.
3
+ *
4
+ * Every panel heading, section title, and caption is uppercase, tracked
5
+ * (0.08em) muted-foreground — the recessive foil that lets the mono figures be
6
+ * loud. The class itself lives in `@/lib/typography` (`SECTION_LABEL_CLASS`,
7
+ * an alias of `LABEL_VOICE_CLASS`) and is NEVER re-stated here, so the voice
8
+ * cannot drift between this component and the `ui/` layer that shares it.
9
+ *
10
+ * Renders an `<h2>` by default (the ledger-sheet cell heading), but `as` lets
11
+ * it become a `<p>`/`<span>`/`<dt>` for captions and inline labels.
12
+ */
13
+ import type { ElementType, HTMLAttributes, ReactNode } from 'react';
14
+ export type SectionLabelProps = {
15
+ children: ReactNode;
16
+ className?: string;
17
+ /** Render element. Defaults to `h2` (the ledger-sheet cell heading). */
18
+ as?: ElementType;
19
+ } & Omit<HTMLAttributes<HTMLElement>, 'children' | 'className'>;
20
+ export declare function SectionLabel({ children, className, as: Tag, ...rest }: SectionLabelProps): import("react").JSX.Element;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/section-label/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,EAAE,CAAC,EAAE,WAAW,CAAA;CACjB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;AAE/D,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,EAAE,EAAE,GAAU,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,+BAUnB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SectionLabel = SectionLabel;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const typography_1 = require("../../lib/typography");
6
+ const utils_1 = require("../../lib/utils");
7
+ function SectionLabel({ children, className, as: Tag = 'h2', ...rest }) {
8
+ // The remaining element props reach the rendered tag, so a panel can point
9
+ // `aria-labelledby` at this heading via `id`, and tests can hang a `data-*`
10
+ // hook off it. Without the spread there was no way to reference the heading
11
+ // from its own container.
12
+ return ((0, jsx_runtime_1.jsx)(Tag, { className: (0, utils_1.cn)(typography_1.SECTION_LABEL_CLASS, className), ...rest, children: children }));
13
+ }
@@ -0,0 +1,40 @@
1
+ import type { ReactNode } from 'react';
2
+ export type StatusRailItem = {
3
+ /** Optional stable key for dynamic (reordered/filtered) rails; falls back to index. */
4
+ id?: string;
5
+ /** Optional uppercase label rendered inline before the value. */
6
+ label?: ReactNode;
7
+ value: ReactNode;
8
+ };
9
+ export type StatusRailChip = {
10
+ /** Optional stable key for dynamic (reordered/filtered) rails; falls back to index. */
11
+ id?: string;
12
+ label: ReactNode;
13
+ value: ReactNode;
14
+ /** Escalate the chip to destructive styling when a count is in alarm. */
15
+ alarm?: boolean;
16
+ };
17
+ export type StatusRailProps = {
18
+ /** Foreground identity token, rendered first (e.g. context name). */
19
+ lead?: ReactNode;
20
+ /** Dot-separated mono tape items. */
21
+ items?: StatusRailItem[];
22
+ /** Right-pinned count chips. */
23
+ chips?: StatusRailChip[];
24
+ className?: string;
25
+ };
26
+ export declare function StatusRail({ lead, items, chips, className }: StatusRailProps): import("react").JSX.Element;
27
+ /** Decorative dot separator — muted, so the tape reads as punctuated, not broken. */
28
+ export declare function Dot(): import("react").JSX.Element;
29
+ /**
30
+ * The live auto-refresh pulse: a success dot with a reduced-motion-gated ping
31
+ * ring. Place it inside a tape item value, e.g. `<><LivePulse /> Live</>`.
32
+ *
33
+ * The ring rides Tailwind's built-in `ping` keyframe under the `motion-safe:`
34
+ * variant (`@media (prefers-reduced-motion: no-preference)`), so a
35
+ * reduced-motion reader sees only the static dot — same gating as the
36
+ * hand-rolled `status-rail-pulse` keyframe it replaces, with no stylesheet of
37
+ * its own.
38
+ */
39
+ export declare function LivePulse(): import("react").JSX.Element;
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/status-rail/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,cAAc,GAAG;IAC3B,uFAAuF;IACvF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,iEAAiE;IACjE,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,uFAAuF;IACvF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,qEAAqE;IACrE,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,qCAAqC;IACrC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,gCAAgC;IAChC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAU,EACV,KAAU,EACV,SAAS,EACV,EAAE,eAAe,+BAwEjB;AAkBD,qFAAqF;AACrF,wBAAgB,GAAG,gCAMlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,gCAOxB"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusRail = StatusRail;
4
+ exports.Dot = Dot;
5
+ exports.LivePulse = LivePulse;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ /**
8
+ * StatusRail — Row 0 of every console screen. A thin, full-width recessed strip
9
+ * that reads "the terminal is live": a dot-separated mono tape on the recessed
10
+ * page surface (`bg-body-surface`), with optional right-pinned count chips.
11
+ *
12
+ * <StatusRail
13
+ * lead={contextName}
14
+ * items={[
15
+ * { value: '90d' },
16
+ * { label: 'Updated', value: '12:04 UTC' },
17
+ * { value: <><LivePulse /> Live</> }
18
+ * ]}
19
+ * chips={[
20
+ * { label: 'Open', value: '12' },
21
+ * { label: 'Pending overdue', value: '3', alarm: true }
22
+ * ]}
23
+ * />
24
+ *
25
+ * The first token (`lead`) is `text-foreground font-medium`. Tape items are
26
+ * dot-separated; an item with a `label` renders the uppercase label inline
27
+ * before its value. Chips pin right via `ml-auto`; `alarm` escalates a chip to
28
+ * destructive.
29
+ */
30
+ const lucide_react_1 = require("lucide-react");
31
+ const utils_1 = require("../../lib/utils");
32
+ function StatusRail({ lead, items = [], chips = [], className }) {
33
+ // ONE test, used by both the lead span and the first item's separator. Two
34
+ // separate tests (`lead !== undefined && lead !== null` vs `lead != null`)
35
+ // agreed on null/undefined and diverged on a ReactNode that RENDERS NOTHING,
36
+ // which produced an empty lead span while the first item still got its
37
+ // leading dot — the rail opened with a stray `·`. React renders BOTH booleans
38
+ // as nothing, so `true` is as empty as `false`; the typeof check covers the
39
+ // pair rather than naming one of them.
40
+ const hasLead = lead != null && lead !== '' && typeof lead !== 'boolean';
41
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)(
42
+ // Recessed instrument strip: the page surface inside a hairline border
43
+ // whose top edge runs one step darker — light-from-above recession
44
+ // without any inner shadow.
45
+ 'border-border border-t-foreground/10 bg-body-surface text-muted-foreground flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg border px-4 py-2 font-mono text-xs tabular-nums', className), children: [hasLead ? ((0, jsx_runtime_1.jsx)("span", { className: "text-foreground font-medium", children: lead })) : null, items.map((item, i) => ((0, jsx_runtime_1.jsx)(RailFragment, { hasLead: hasLead || i > 0, children: item.label != null ? ((0, jsx_runtime_1.jsxs)("span", { className: "flex items-center gap-1.5", children: [(0, jsx_runtime_1.jsx)("span", { className: "tracking-[0.08em] uppercase", children: item.label }), item.value] })) : ((0, jsx_runtime_1.jsx)("span", { className: "flex items-center gap-1.5", children: item.value })) }, item.id ?? i))), chips.length ? ((0, jsx_runtime_1.jsx)("span", { className: "ml-auto flex flex-wrap items-center gap-x-3 gap-y-1.5", children: chips.map((chip, i) => ((0, jsx_runtime_1.jsxs)("span", { className: "inline-flex items-center gap-1.5", children: [(0, jsx_runtime_1.jsx)("span", { className: "tracking-[0.08em] uppercase", children: chip.label }), (0, jsx_runtime_1.jsxs)("span", { className: (0, utils_1.cn)(
46
+ // Tiny mono token: raised a hair off the sunken tape by the
47
+ // card surface + whisper shadow.
48
+ 'inline-flex items-center gap-1 rounded-sm border px-1.5 py-0.5 shadow-sm', chip.alarm
49
+ ? 'border-destructive/40 bg-destructive/10 text-destructive'
50
+ : 'border-border bg-card text-foreground'), children: [chip.alarm ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(lucide_react_1.TriangleAlert, { "aria-hidden": true, className: "size-3" }), (0, jsx_runtime_1.jsx)("span", { className: "sr-only", children: "(alarme)" })] })) : null, chip.value] })] }, chip.id ?? i))) })) : null] }));
51
+ }
52
+ /** A tape item preceded by a separator dot when it is not the first token. */
53
+ function RailFragment({ children, hasLead }) {
54
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [hasLead ? (0, jsx_runtime_1.jsx)(Dot, {}) : null, children] }));
55
+ }
56
+ /** Decorative dot separator — muted, so the tape reads as punctuated, not broken. */
57
+ function Dot() {
58
+ return ((0, jsx_runtime_1.jsx)("span", { "aria-hidden": true, className: "text-muted-foreground/50", children: "\u00B7" }));
59
+ }
60
+ /**
61
+ * The live auto-refresh pulse: a success dot with a reduced-motion-gated ping
62
+ * ring. Place it inside a tape item value, e.g. `<><LivePulse /> Live</>`.
63
+ *
64
+ * The ring rides Tailwind's built-in `ping` keyframe under the `motion-safe:`
65
+ * variant (`@media (prefers-reduced-motion: no-preference)`), so a
66
+ * reduced-motion reader sees only the static dot — same gating as the
67
+ * hand-rolled `status-rail-pulse` keyframe it replaces, with no stylesheet of
68
+ * its own.
69
+ */
70
+ function LivePulse() {
71
+ return ((0, jsx_runtime_1.jsxs)("span", { className: "relative flex size-2", "aria-hidden": true, children: [(0, jsx_runtime_1.jsx)("span", { className: "bg-system-success/60 absolute inline-flex size-2 rounded-full motion-safe:animate-ping" }), (0, jsx_runtime_1.jsx)("span", { className: "bg-system-success relative inline-flex size-2 rounded-full" })] }));
72
+ }
@@ -0,0 +1,84 @@
1
+ export type GaugeBand = 'low' | 'warn' | 'breach';
2
+ /** higher-is-worse: value climbs into danger (warn < breach) — utilization.
3
+ * lower-is-worse: value falls into danger (breach < warn) — coverage ratio. */
4
+ export type GaugeDirection = 'higher-is-worse' | 'lower-is-worse';
5
+ /** How the numeric readout is formatted. 'ratio' is a 0..1 share shown as a
6
+ * percent; 'percent' is an already-scaled 0..100; 'count' a plain integer;
7
+ * 'money' an ISO-4217 amount via MoneyText. */
8
+ export type GaugeFormat = 'percent' | 'ratio' | 'count' | 'money';
9
+ /** Whether a value sitting exactly ON a threshold escalates.
10
+ * 'strict' (default) — it stays in the calmer band; escalation needs the value
11
+ * strictly past the edge. 'inclusive' — being ON the edge already escalates,
12
+ * for consumers whose enforcement is inclusive (a quota that blocks at
13
+ * `used >= limit`: a tenant exactly at the cap is already blocked). */
14
+ export type GaugeEdges = 'strict' | 'inclusive';
15
+ export interface GaugeThresholds {
16
+ /** The warn edge — crossing it escalates low → warn. */
17
+ warn: number;
18
+ /** The breach edge — crossing it escalates to breach. */
19
+ breach: number;
20
+ /** Whether a value exactly ON a threshold escalates. Defaults to 'strict'. */
21
+ edges?: GaugeEdges;
22
+ }
23
+ export interface ThresholdGaugeProps {
24
+ /** The observed value, in the same unit as `min`/`max`/`warn`/`breach`. It
25
+ * drives the band, the track fill and every ARIA attribute. */
26
+ value: number;
27
+ /** The figure to PRINT, when it differs from `value`. A consumer that must
28
+ * keep `aria-valuenow` inside [min, max] has to clamp `value` — pass the true
29
+ * (unclamped) figure here so the readout does not contradict the number the
30
+ * consumer renders beside the gauge. Band and ARIA still follow `value`.
31
+ * Omitted → the readout formats `value`. */
32
+ displayValue?: number;
33
+ /** Bottom of the track. Defaults to 0. */
34
+ min?: number;
35
+ /** Top of the track. */
36
+ max: number;
37
+ /** Warn edge (see `GaugeThresholds`). */
38
+ warn: number;
39
+ /** Breach edge (see `GaugeThresholds`). */
40
+ breach: number;
41
+ /** On-edge behaviour (see `GaugeEdges`). Defaults to 'strict'. */
42
+ edges?: GaugeEdges;
43
+ /** Which way is danger — mandatory, the numbers alone do not say. */
44
+ direction: GaugeDirection;
45
+ /** Numeric readout format. Defaults to 'percent'. */
46
+ format?: GaugeFormat;
47
+ /** ISO 4217 code for `format='money'`, e.g. "BRL". */
48
+ currency?: string;
49
+ /** BCP 47 locale for figure grouping/decimal marks. */
50
+ locale?: string;
51
+ /** Quiet caption above the gauge (e.g. "Utilização do limite"). */
52
+ label?: string;
53
+ /** Accessible name for the meter when no visible `label` is rendered, or when
54
+ * the meter needs a fuller name than the caption. A meter with no name is
55
+ * announced as a bare number, so this resolves `ariaLabel ?? label ?? the
56
+ * band word`, which is never empty. Additive — existing call sites that pass
57
+ * only `label` are unaffected. */
58
+ ariaLabel?: string;
59
+ /** Override the accessible band word, per band, in the consumer's own locale.
60
+ * Shallow-merged over the pt-BR defaults, so `{ breach: 'Limit exceeded' }`
61
+ * leaves low/warn untouched. The band word is the ONLY non-chromatic carrier
62
+ * of the band (the glyph and the tint are decorative), so a consumer serving
63
+ * en/es MUST be able to translate it — see WCAG 1.4.1 note above. */
64
+ bandLabels?: Partial<Record<GaugeBand, string>>;
65
+ className?: string;
66
+ }
67
+ /**
68
+ * Resolve which band a value occupies. Pure — the testable heart of the atom.
69
+ *
70
+ * STRICT edges by default: a value exactly ON a threshold stays in the CALMER
71
+ * band; escalation needs the value strictly past.
72
+ *
73
+ * - higher-is-worse: `value > breach` → breach; `value > warn` → warn; else low.
74
+ * - lower-is-worse: `value < breach` → breach; `value < warn` → warn; else low.
75
+ *
76
+ * `thresholds.edges = 'inclusive'` opts into `>=` / `<=` instead, for a consumer
77
+ * whose enforcement is inclusive. Omitted or 'strict' → the behaviour above.
78
+ *
79
+ * Non-finite input degrades to 'low' rather than throwing — a missing reading is
80
+ * not, by itself, an alarm.
81
+ */
82
+ export declare function gaugeBand(value: number, thresholds: GaugeThresholds, direction: GaugeDirection): GaugeBand;
83
+ export declare function ThresholdGauge({ value, displayValue, min, max, warn, breach, edges, direction, format, currency, locale, label, ariaLabel, bandLabels, className }: ThresholdGaugeProps): import("react").JSX.Element;
84
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/threshold-gauge/index.tsx"],"names":[],"mappings":"AAiDA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEjD;gFACgF;AAChF,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,CAAA;AAEjE;;gDAEgD;AAChD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjE;;;;wEAIwE;AACxE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC;oEACgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb;;;;iDAI6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,qEAAqE;IACrE,SAAS,EAAE,cAAc,CAAA;IACzB,qDAAqD;IACrD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;uCAImC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;0EAIsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAmCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,cAAc,GACxB,SAAS,CAUX;AA+CD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,YAAY,EACZ,GAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAkB,EAClB,QAAQ,EACR,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACV,EAAE,mBAAmB,+BA8ErB"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gaugeBand = gaugeBand;
4
+ exports.ThresholdGauge = ThresholdGauge;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * ThresholdGauge — where a value sits across ordered, NAMED bands.
8
+ *
9
+ * A metric is rarely interesting in isolation; what matters is which band it has
10
+ * crossed. A credit utilization of 95% is a breach; a liquidity coverage ratio
11
+ * of 95% may be perfectly calm. So a gauge that paints a smooth red→green
12
+ * gradient is lying by implication — it suggests a continuum where the business
13
+ * has hard thresholds. This atom STATES the thresholds: it resolves the current
14
+ * band (low / warn / breach), names it with a glyph + an sr-only word + a tint,
15
+ * and marks the band edges on the bar so the reader sees the line the value
16
+ * crossed, not a vibe.
17
+ *
18
+ * <ThresholdGauge value={0.92} max={1} warn={0.8} breach={0.9} format="percent"
19
+ * direction="higher-is-worse" label="Utilização do limite" /> // breach
20
+ * <ThresholdGauge value={1.18} max={2} warn={1} breach={0.9} format="ratio"
21
+ * direction="lower-is-worse" label="Índice de cobertura" /> // low (calm)
22
+ *
23
+ * DIRECTION is mandatory because the same numbers mean opposite things:
24
+ * - higher-is-worse: the value climbs INTO danger (warn < breach). Utilization,
25
+ * concentration, error rate.
26
+ * - lower-is-worse: the value FALLS into danger (breach < warn). Coverage,
27
+ * liquidity, capital adequacy.
28
+ *
29
+ * INVARIANT (strict edges by DEFAULT): a band escalation requires the value to
30
+ * be STRICTLY beyond the edge. A value sitting exactly ON a threshold belongs to
31
+ * the calmer band, not the louder one — `gaugeBand` encodes this so an on-edge
32
+ * utilization of exactly the breach line still reads as warn, never a surprise
33
+ * breach. A consumer whose own enforcement is INCLUSIVE (a quota blocking at
34
+ * `used >= limit`) opts out with `edges="inclusive"`, which escalates ON the
35
+ * edge in both directions.
36
+ *
37
+ * The current band is the load-bearing signal and it never rides on color alone
38
+ * (WCAG 1.4.1): a glyph leads, an sr-only word names it, the tint only
39
+ * reinforces. The numeric position reads via a mono `Figure`, never inferred
40
+ * from the bar geometry — and a consumer forced to clamp `value` to keep
41
+ * `aria-valuenow` in range can still print the true figure via `displayValue`.
42
+ *
43
+ * Pure display: server-safe, no directive.
44
+ */
45
+ const lucide_react_1 = require("lucide-react");
46
+ const typography_1 = require("../../lib/typography");
47
+ const utils_1 = require("../../lib/utils");
48
+ const figure_1 = require("../figure");
49
+ const format_1 = require("../format");
50
+ const money_text_1 = require("../money-text");
51
+ /** Band → glyph + tint + accessible word. The glyph and sr-only word are the
52
+ * load-bearing cue; the tint only reinforces, so the band survives grayscale
53
+ * and color-vision deficiency. The words are pt-BR defaults — a consumer in
54
+ * another locale overrides them via the `bandLabels` prop. */
55
+ const BAND = {
56
+ low: {
57
+ Icon: lucide_react_1.ShieldCheck,
58
+ tint: 'text-system-success',
59
+ word: 'Dentro do limite'
60
+ },
61
+ warn: {
62
+ Icon: lucide_react_1.TriangleAlert,
63
+ tint: 'text-system-alert',
64
+ word: 'Próximo do limite'
65
+ },
66
+ breach: {
67
+ Icon: lucide_react_1.OctagonX,
68
+ tint: 'text-destructive',
69
+ word: 'Limite ultrapassado'
70
+ }
71
+ };
72
+ /** Track fill tint per band — kept distinct from the glyph tint so the bar can
73
+ * use the softer wash while the glyph carries the full tint. */
74
+ const BAND_FILL = {
75
+ low: 'bg-system-success',
76
+ warn: 'bg-system-alert',
77
+ breach: 'bg-destructive'
78
+ };
79
+ /**
80
+ * Resolve which band a value occupies. Pure — the testable heart of the atom.
81
+ *
82
+ * STRICT edges by default: a value exactly ON a threshold stays in the CALMER
83
+ * band; escalation needs the value strictly past.
84
+ *
85
+ * - higher-is-worse: `value > breach` → breach; `value > warn` → warn; else low.
86
+ * - lower-is-worse: `value < breach` → breach; `value < warn` → warn; else low.
87
+ *
88
+ * `thresholds.edges = 'inclusive'` opts into `>=` / `<=` instead, for a consumer
89
+ * whose enforcement is inclusive. Omitted or 'strict' → the behaviour above.
90
+ *
91
+ * Non-finite input degrades to 'low' rather than throwing — a missing reading is
92
+ * not, by itself, an alarm.
93
+ */
94
+ function gaugeBand(value, thresholds, direction) {
95
+ if (!Number.isFinite(value))
96
+ return 'low';
97
+ const { warn, breach, edges = 'strict' } = thresholds;
98
+ const beyond = direction === 'higher-is-worse'
99
+ ? (edge) => (edges === 'inclusive' ? value >= edge : value > edge)
100
+ : (edge) => (edges === 'inclusive' ? value <= edge : value < edge);
101
+ if (beyond(breach))
102
+ return 'breach';
103
+ if (beyond(warn))
104
+ return 'warn';
105
+ return 'low';
106
+ }
107
+ /**
108
+ * An empty or whitespace-only string is not a name. `??` only skips null and
109
+ * undefined, so `ariaLabel=""` or `bandLabels={{ breach: '' }}` won the fallback
110
+ * chain and produced an EMPTY accessible name — worse than the missing one it
111
+ * was meant to fix, because `aria-label=""` also suppresses the element's other
112
+ * naming routes. Normalizing to undefined lets the chain fall through properly.
113
+ */
114
+ function nonEmpty(value) {
115
+ return value != null && value.trim() !== '' ? value : undefined;
116
+ }
117
+ /** Clamp a value into [min, max] then normalize to a 0..1 fraction of the
118
+ * track. A zero-width track (max <= min) collapses to 0 rather than dividing by
119
+ * zero. */
120
+ function trackFraction(value, min, max) {
121
+ if (!Number.isFinite(value) || max <= min)
122
+ return 0;
123
+ const clamped = Math.max(min, Math.min(max, value));
124
+ return (clamped - min) / (max - min);
125
+ }
126
+ /** Format the value for the mono readout per `format`. Money routes through
127
+ * MoneyText (never a hand-rolled string); the rest through the format helpers. */
128
+ function readout(value, format, currency, locale) {
129
+ if (!Number.isFinite(value))
130
+ return format_1.NO_VALUE;
131
+ if (format === 'money') {
132
+ return ((0, jsx_runtime_1.jsx)(money_text_1.MoneyText, { amount: value, currency: currency, signColor: false, locale: locale }));
133
+ }
134
+ if (format === 'percent')
135
+ return (0, format_1.formatPercent)(value, { unit: 'percent', locale });
136
+ if (format === 'ratio')
137
+ return (0, format_1.formatPercent)(value, { unit: 'ratio', locale });
138
+ return (0, format_1.formatCount)(value, locale);
139
+ }
140
+ function ThresholdGauge({ value, displayValue, min = 0, max, warn, breach, edges, direction, format = 'percent', currency, locale, label, ariaLabel, bandLabels, className }) {
141
+ const band = gaugeBand(value, { warn, breach, edges }, direction);
142
+ const { Icon, tint } = BAND[band];
143
+ // The sr-only word is the band's only non-chromatic cue, so it is also the
144
+ // string a trilingual consumer has to translate. pt-BR default, override wins.
145
+ // Every rung of the naming chain is normalized: an empty override must fall
146
+ // through to the next source rather than win with a blank string.
147
+ const word = nonEmpty(bandLabels?.[band]) ?? BAND[band].word;
148
+ const caption = nonEmpty(label);
149
+ // A `role="meter"` with no accessible name is announced as a naked number.
150
+ // The band word is always present and always meaningful, so the meter is named
151
+ // even when a consumer renders the gauge without a visible caption.
152
+ const meterName = nonEmpty(ariaLabel) ?? caption ?? word;
153
+ const valuePct = trackFraction(value, min, max) * 100;
154
+ const warnPct = trackFraction(warn, min, max) * 100;
155
+ const breachPct = trackFraction(breach, min, max) * 100;
156
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('flex flex-col gap-2', className), children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-baseline justify-between gap-3", children: [caption != null ? ((0, jsx_runtime_1.jsx)("span", { className: typography_1.LABEL_VOICE_CLASS, children: caption })) : ((0, jsx_runtime_1.jsx)("span", {})), (0, jsx_runtime_1.jsxs)("span", { 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: [word, ": "] }), (0, jsx_runtime_1.jsx)(figure_1.Figure, { size: "row", className: tint, children: readout(displayValue ?? value, format, currency, locale) })] })] }), (0, jsx_runtime_1.jsxs)("div", { role: "meter", "aria-valuenow": Number.isFinite(value) ? value : undefined, "aria-valuemin": min, "aria-valuemax": max, "aria-label": meterName, className: "border-border bg-muted relative h-2 w-full overflow-hidden rounded-full border", children: [(0, jsx_runtime_1.jsx)("div", { "aria-hidden": true, className: (0, utils_1.cn)('absolute inset-y-0 left-0 rounded-full', BAND_FILL[band]), style: { width: `${valuePct}%` } }), (0, jsx_runtime_1.jsx)("span", { "aria-hidden": true, className: "bg-system-alert absolute inset-y-0 w-px", style: { left: `${warnPct}%` } }), (0, jsx_runtime_1.jsx)("span", { "aria-hidden": true, className: "bg-destructive absolute inset-y-0 w-px", style: { left: `${breachPct}%` } })] })] }));
157
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * AlertBanner — the console's semantic message box. A rounded, hairline-bordered
3
+ * panel with a tinted background whose tone escalates by severity. The title
4
+ * carries the tone color (font-medium); the body stays foreground for
5
+ * readability; an optional `detail` slot renders mono diagnostic text (an error
6
+ * code, a failed id) below the body.
7
+ *
8
+ * <AlertBanner tone="destructive" title="Import failed">
9
+ * The file could not be parsed. No rows were ingested.
10
+ * </AlertBanner>
11
+ *
12
+ * Renders `role="alert"`. Tones map to sindarian-ui's `system-*` semantic token
13
+ * families, so they track the active light/dark palette automatically.
14
+ */
15
+ import type { ReactNode } from 'react';
16
+ export type AlertBannerTone = 'destructive' | 'warning' | 'info' | 'success' | 'neutral';
17
+ export type AlertBannerProps = {
18
+ tone?: AlertBannerTone;
19
+ /** Bold lead line, carries the tone color. */
20
+ title?: ReactNode;
21
+ /** Body copy (foreground, for readability). */
22
+ children?: ReactNode;
23
+ /** Optional mono diagnostic detail rendered below the body. */
24
+ detail?: ReactNode;
25
+ /** Optional leading icon (e.g. a lucide glyph), aligned to the title. */
26
+ icon?: ReactNode;
27
+ className?: string;
28
+ };
29
+ export declare function AlertBanner({ tone, title, children, detail, icon, className }: AlertBannerProps): import("react").JSX.Element;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/alert-banner/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,eAAe,GACzB,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAoB5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,yEAAyE;IACzE,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAgB,EAChB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACV,EAAE,gBAAgB,+BAmClB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlertBanner = AlertBanner;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const utils_1 = require("../../lib/utils");
6
+ /** Container tint + border per tone. The title color is applied separately so
7
+ * the body copy stays high-contrast foreground. */
8
+ const TONE_CONTAINER = {
9
+ destructive: 'border-system-error-border bg-system-error-surface',
10
+ warning: 'border-system-alert-border bg-system-alert-surface',
11
+ info: 'border-system-info-border bg-system-info-surface',
12
+ success: 'border-system-success-border bg-system-success-surface',
13
+ neutral: 'border-border bg-muted/50'
14
+ };
15
+ const TONE_TITLE = {
16
+ destructive: 'text-system-error-text',
17
+ warning: 'text-system-alert-text',
18
+ info: 'text-system-info-text',
19
+ success: 'text-system-success-text',
20
+ neutral: 'text-foreground'
21
+ };
22
+ function AlertBanner({ tone = 'neutral', title, children, detail, icon, className }) {
23
+ return ((0, jsx_runtime_1.jsxs)("div", { role: "alert", "data-tone": tone, className: (0, utils_1.cn)('flex gap-3 rounded-md border px-4 py-3', TONE_CONTAINER[tone], className), children: [icon != null ? ((0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)('mt-0.5 shrink-0', TONE_TITLE[tone]), "aria-hidden": true, children: icon })) : null, (0, jsx_runtime_1.jsxs)("div", { className: "min-w-0 flex-1 space-y-1", children: [title != null ? ((0, jsx_runtime_1.jsx)("p", { className: (0, utils_1.cn)('text-sm font-medium', TONE_TITLE[tone]), children: title })) : null, children != null ? ((0, jsx_runtime_1.jsx)("div", { className: "text-foreground text-xs leading-relaxed", children: children })) : null, detail != null ? ((0, jsx_runtime_1.jsx)("pre", { className: "text-muted-foreground overflow-x-auto font-mono text-xs break-words whitespace-pre-wrap", children: detail })) : null] })] }));
24
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * AppShell — the console frame: a sidebar rail, an optional sticky header row,
3
+ * and a centered, scrollable content column. This is the whole screen, not a
4
+ * fragment, so it deliberately OWNS the SidebarProvider — the consumer drops a
5
+ * sindarian-ui sidebar (`SidebarRoot` + its parts) into `sidebar` and a
6
+ * `SidebarExpandButton` into `header`, and the collapse behavior comes free,
7
+ * no extra wrapper required.
8
+ *
9
+ * Landmark contract (the a11y-correct frame):
10
+ * SidebarProvider
11
+ * div (the shell ROW — carries `className`)
12
+ * a.sr-only (skip link, if labelled) // FIRST focusable in the document,
13
+ * // targets <main> — bypasses the nav
14
+ * {sidebar}
15
+ * div[data-slot=sidebar-inset] // the inset COLUMN — a plain div
16
+ * header (banner, if given) // SIBLING of <main>, not nested
17
+ * main#<id> tabIndex=-1 // the ONE main: skip-linkable + ref-able
18
+ * div (centered content container) → {children}
19
+ *
20
+ * The skip link is the FIRST child inside the shell row — before the sidebar —
21
+ * so a keyboard user's very first Tab lands on it and Enter jumps past the
22
+ * entire nav to the content <main>. That is the whole point of WCAG 2.4.1
23
+ * "Bypass Blocks": a skip link placed AFTER the nav would be reached only after
24
+ * tabbing through every nav item, defeating its purpose. The inset column is a
25
+ * <div>, not a <main>, so AppShell can own the single inner <main> for the
26
+ * content. The page header passed via `header` becomes a top-level banner
27
+ * SIBLING of <main> (one banner); a PageHeader rendered inside `children` lands
28
+ * inside <main> and is content, not a top-level landmark.
29
+ *
30
+ * Client by construction: it calls React.useId() to wire the skip link to the
31
+ * content <main>, and forwards a ref to that <main> so a consumer can focus it
32
+ * on route change — both are client concerns, hence the "use client" directive.
33
+ */
34
+ import * as React from 'react';
35
+ export type AppShellProps = {
36
+ sidebar?: React.ReactNode;
37
+ /**
38
+ * App-bar CONTENT, rendered INSIDE the shell's <header> banner landmark. Pass
39
+ * banner content only — the sidebar trigger, a screen title, header actions.
40
+ *
41
+ * Do NOT pass an element that renders its OWN <header>/landmark (e.g.
42
+ * <PageHeader>, which is itself a <header>). Nesting a <header> in this banner
43
+ * produces a SECOND banner — a <header> is not sectioning content, so the
44
+ * inner one stays body-scoped — which violates WCAG's at-most-one-banner rule.
45
+ * Page-level title blocks (<PageHeader>) belong in `children`, where they land
46
+ * inside <main> and are correctly page content, not a top-level landmark.
47
+ */
48
+ header?: React.ReactNode;
49
+ children: React.ReactNode;
50
+ className?: string;
51
+ contentClassName?: string;
52
+ /**
53
+ * When set, renders a "skip to content" link as the FIRST focusable element;
54
+ * activating it jumps focus to the content <main>. Omit it and no skip link
55
+ * renders. The link/target wiring (the <main> id) is internal — generated with
56
+ * React.useId() so it is stable and unique without a required id prop.
57
+ */
58
+ skipToContentLabel?: string;
59
+ };
60
+ export declare const AppShell: React.ForwardRefExoticComponent<AppShellProps & React.RefAttributes<HTMLElement>>;
61
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/app-shell/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,QAAQ,mFAgEpB,CAAA"}
@@ -0,0 +1,87 @@
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.AppShell = void 0;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ /**
40
+ * AppShell — the console frame: a sidebar rail, an optional sticky header row,
41
+ * and a centered, scrollable content column. This is the whole screen, not a
42
+ * fragment, so it deliberately OWNS the SidebarProvider — the consumer drops a
43
+ * sindarian-ui sidebar (`SidebarRoot` + its parts) into `sidebar` and a
44
+ * `SidebarExpandButton` into `header`, and the collapse behavior comes free,
45
+ * no extra wrapper required.
46
+ *
47
+ * Landmark contract (the a11y-correct frame):
48
+ * SidebarProvider
49
+ * div (the shell ROW — carries `className`)
50
+ * a.sr-only (skip link, if labelled) // FIRST focusable in the document,
51
+ * // targets <main> — bypasses the nav
52
+ * {sidebar}
53
+ * div[data-slot=sidebar-inset] // the inset COLUMN — a plain div
54
+ * header (banner, if given) // SIBLING of <main>, not nested
55
+ * main#<id> tabIndex=-1 // the ONE main: skip-linkable + ref-able
56
+ * div (centered content container) → {children}
57
+ *
58
+ * The skip link is the FIRST child inside the shell row — before the sidebar —
59
+ * so a keyboard user's very first Tab lands on it and Enter jumps past the
60
+ * entire nav to the content <main>. That is the whole point of WCAG 2.4.1
61
+ * "Bypass Blocks": a skip link placed AFTER the nav would be reached only after
62
+ * tabbing through every nav item, defeating its purpose. The inset column is a
63
+ * <div>, not a <main>, so AppShell can own the single inner <main> for the
64
+ * content. The page header passed via `header` becomes a top-level banner
65
+ * SIBLING of <main> (one banner); a PageHeader rendered inside `children` lands
66
+ * inside <main> and is content, not a top-level landmark.
67
+ *
68
+ * Client by construction: it calls React.useId() to wire the skip link to the
69
+ * content <main>, and forwards a ref to that <main> so a consumer can focus it
70
+ * on route change — both are client concerns, hence the "use client" directive.
71
+ */
72
+ const React = __importStar(require("react"));
73
+ const sidebar_1 = require("../../components/ui/sidebar");
74
+ const utils_1 = require("../../lib/utils");
75
+ exports.AppShell = React.forwardRef(function AppShell({ sidebar, header, children, className, contentClassName, skipToContentLabel }, ref) {
76
+ // The content <main> id — wires the skip link to its target and gives the
77
+ // <main> a stable, focusable anchor. Internal: no consumer-facing id prop.
78
+ const mainId = React.useId();
79
+ // sindarian-ui's SidebarProvider is context-only (it renders no DOM and
80
+ // takes no className), so the shell owns the flex row itself and `className`
81
+ // lands on it — the same element the legacy provider's className reached.
82
+ return ((0, jsx_runtime_1.jsx)(sidebar_1.SidebarProvider, { children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('flex h-svh w-full overflow-hidden', className), children: [skipToContentLabel ? ((0, jsx_runtime_1.jsx)("a", { href: `#${mainId}`, className: "focus:bg-background focus:text-foreground sr-only focus:not-sr-only focus:absolute focus:z-50 focus:m-2 focus:rounded focus:px-3 focus:py-2 focus:shadow", children: skipToContentLabel })) : null, sidebar, (0, jsx_runtime_1.jsxs)("div", { "data-slot": "sidebar-inset", className: "bg-background relative flex w-full min-w-0 flex-1 flex-col", children: [header ? ((0, jsx_runtime_1.jsx)("header", { className: "border-border bg-background sticky top-0 z-10 flex items-center gap-3 border-b px-6 py-3", children: header })) : null, (0, jsx_runtime_1.jsx)("main", { id: mainId, ref: ref, tabIndex: -1,
83
+ // min-h-0 lets this flex child shrink below its content height —
84
+ // without it `flex-1` keeps min-height:auto and nothing scrolls.
85
+ className: "min-h-0 flex-1 overflow-y-auto outline-none", children: (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('mx-auto w-full max-w-7xl px-6 py-8 lg:px-8', contentClassName), children: children }) })] })] }) }));
86
+ });
87
+ exports.AppShell.displayName = 'AppShell';