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

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 (659) 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.js +4 -4
  32. package/dist/components/ui/badge/index.d.ts.map +1 -1
  33. package/dist/components/ui/badge/index.js +2 -2
  34. package/dist/components/ui/button/index.d.ts.map +1 -1
  35. package/dist/components/ui/button/index.js +1 -1
  36. package/dist/components/ui/copy-field/index.d.ts +56 -0
  37. package/dist/components/ui/copy-field/index.d.ts.map +1 -0
  38. package/dist/components/ui/copy-field/index.js +155 -0
  39. package/dist/components/ui/dialog/styles.css +3 -3
  40. package/dist/components/ui/file-upload/index.d.ts +94 -0
  41. package/dist/components/ui/file-upload/index.d.ts.map +1 -0
  42. package/dist/components/ui/file-upload/index.js +237 -0
  43. package/dist/components/ui/hover-card/index.d.ts +7 -0
  44. package/dist/components/ui/hover-card/index.d.ts.map +1 -0
  45. package/dist/components/ui/hover-card/index.js +51 -0
  46. package/dist/components/ui/icon-button/styles.css +24 -24
  47. package/dist/components/ui/input/index.d.ts.map +1 -1
  48. package/dist/components/ui/input/index.js +6 -5
  49. package/dist/components/ui/input/styles.css +6 -2
  50. package/dist/components/ui/otp-input/index.d.ts.map +1 -1
  51. package/dist/components/ui/otp-input/index.js +1 -1
  52. package/dist/components/ui/qr-code/index.d.ts +26 -0
  53. package/dist/components/ui/qr-code/index.d.ts.map +1 -0
  54. package/dist/components/ui/qr-code/index.js +27 -0
  55. package/dist/components/ui/radio-group/index.d.ts +6 -0
  56. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  57. package/dist/components/ui/radio-group/index.js +48 -0
  58. package/dist/components/ui/scroll-area/index.d.ts +6 -0
  59. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  60. package/dist/components/ui/scroll-area/index.js +49 -0
  61. package/dist/components/ui/sidebar/index.d.ts +1 -0
  62. package/dist/components/ui/sidebar/index.d.ts.map +1 -1
  63. package/dist/components/ui/sidebar/index.js +1 -0
  64. package/dist/components/ui/sidebar/next-router.cjs +119 -0
  65. package/dist/components/ui/sidebar/next-router.d.cts +7 -0
  66. package/dist/components/ui/sidebar/sidebar-item-button.d.ts +2 -2
  67. package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -1
  68. package/dist/components/ui/sidebar/sidebar-item-button.js +3 -5
  69. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +3 -3
  70. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -1
  71. package/dist/components/ui/sidebar/sidebar-item-icon-button.js +5 -7
  72. package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -1
  73. package/dist/components/ui/sidebar/sidebar-item.js +3 -2
  74. package/dist/components/ui/sidebar/sidebar-router.d.ts +82 -0
  75. package/dist/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
  76. package/dist/components/ui/sidebar/sidebar-router.js +126 -0
  77. package/dist/components/ui/toast/index.d.ts +1 -1
  78. package/dist/components/ui/toast/index.d.ts.map +1 -1
  79. package/dist/components/ui/toggle-group/index.d.ts +18 -0
  80. package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
  81. package/dist/components/ui/toggle-group/index.js +87 -0
  82. package/dist/domain/blotter/index.d.ts +40 -0
  83. package/dist/domain/blotter/index.d.ts.map +1 -0
  84. package/dist/domain/blotter/index.js +16 -0
  85. package/dist/domain/delinquency-aging/aging-buckets.d.ts +57 -0
  86. package/dist/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
  87. package/dist/domain/delinquency-aging/aging-buckets.js +110 -0
  88. package/dist/domain/delinquency-aging/index.d.ts +71 -0
  89. package/dist/domain/delinquency-aging/index.d.ts.map +1 -0
  90. package/dist/domain/delinquency-aging/index.js +213 -0
  91. package/dist/domain/figure/index.d.ts +30 -0
  92. package/dist/domain/figure/index.d.ts.map +1 -0
  93. package/dist/domain/figure/index.js +18 -0
  94. package/dist/domain/format.d.ts +79 -0
  95. package/dist/domain/format.d.ts.map +1 -0
  96. package/dist/domain/format.js +137 -0
  97. package/dist/domain/index.d.ts +23 -0
  98. package/dist/domain/index.d.ts.map +1 -0
  99. package/dist/domain/index.js +43 -0
  100. package/dist/domain/key-id/index.d.ts +31 -0
  101. package/dist/domain/key-id/index.d.ts.map +1 -0
  102. package/dist/domain/key-id/index.js +174 -0
  103. package/dist/domain/ledger-sheet/index.d.ts +45 -0
  104. package/dist/domain/ledger-sheet/index.d.ts.map +1 -0
  105. package/dist/domain/ledger-sheet/index.js +28 -0
  106. package/dist/domain/money-diff.d.ts +28 -0
  107. package/dist/domain/money-diff.d.ts.map +1 -0
  108. package/dist/domain/money-diff.js +48 -0
  109. package/dist/domain/money-math.d.ts +32 -0
  110. package/dist/domain/money-math.d.ts.map +1 -0
  111. package/dist/domain/money-math.js +104 -0
  112. package/dist/domain/money-text/index.d.ts +37 -0
  113. package/dist/domain/money-text/index.d.ts.map +1 -0
  114. package/dist/domain/money-text/index.js +115 -0
  115. package/dist/domain/section-label/index.d.ts +21 -0
  116. package/dist/domain/section-label/index.d.ts.map +1 -0
  117. package/dist/domain/section-label/index.js +13 -0
  118. package/dist/domain/status-rail/index.d.ts +40 -0
  119. package/dist/domain/status-rail/index.d.ts.map +1 -0
  120. package/dist/domain/status-rail/index.js +72 -0
  121. package/dist/domain/threshold-gauge/index.d.ts +84 -0
  122. package/dist/domain/threshold-gauge/index.d.ts.map +1 -0
  123. package/dist/domain/threshold-gauge/index.js +157 -0
  124. package/dist/enterprise/alert-banner/index.d.ts +30 -0
  125. package/dist/enterprise/alert-banner/index.d.ts.map +1 -0
  126. package/dist/enterprise/alert-banner/index.js +24 -0
  127. package/dist/enterprise/app-shell/index.d.ts +61 -0
  128. package/dist/enterprise/app-shell/index.d.ts.map +1 -0
  129. package/dist/enterprise/app-shell/index.js +87 -0
  130. package/dist/enterprise/cursor-pager/index.d.ts +21 -0
  131. package/dist/enterprise/cursor-pager/index.d.ts.map +1 -0
  132. package/dist/enterprise/cursor-pager/index.js +26 -0
  133. package/dist/enterprise/data-table/index.d.ts +88 -0
  134. package/dist/enterprise/data-table/index.d.ts.map +1 -0
  135. package/dist/enterprise/data-table/index.js +245 -0
  136. package/dist/enterprise/date-range-picker/index.d.ts +37 -0
  137. package/dist/enterprise/date-range-picker/index.d.ts.map +1 -0
  138. package/dist/enterprise/date-range-picker/index.js +92 -0
  139. package/dist/enterprise/detail-panel/index.d.ts +54 -0
  140. package/dist/enterprise/detail-panel/index.d.ts.map +1 -0
  141. package/dist/enterprise/detail-panel/index.js +20 -0
  142. package/dist/enterprise/empty-state/index.d.ts +32 -0
  143. package/dist/enterprise/empty-state/index.d.ts.map +1 -0
  144. package/dist/enterprise/empty-state/index.js +13 -0
  145. package/dist/enterprise/index.d.ts +26 -0
  146. package/dist/enterprise/index.d.ts.map +1 -0
  147. package/dist/enterprise/index.js +39 -0
  148. package/dist/enterprise/number-input/index.d.ts +55 -0
  149. package/dist/enterprise/number-input/index.d.ts.map +1 -0
  150. package/dist/enterprise/number-input/index.js +252 -0
  151. package/dist/enterprise/search-input/index.d.ts +32 -0
  152. package/dist/enterprise/search-input/index.d.ts.map +1 -0
  153. package/dist/enterprise/search-input/index.js +121 -0
  154. package/dist/enterprise/stat-card/index.d.ts +43 -0
  155. package/dist/enterprise/stat-card/index.d.ts.map +1 -0
  156. package/dist/enterprise/stat-card/index.js +67 -0
  157. package/dist/enterprise/status-badge/index.d.ts +31 -0
  158. package/dist/enterprise/status-badge/index.d.ts.map +1 -0
  159. package/dist/enterprise/status-badge/index.js +120 -0
  160. package/dist/enterprise/use-is-mobile.d.ts +20 -0
  161. package/dist/enterprise/use-is-mobile.d.ts.map +1 -0
  162. package/dist/enterprise/use-is-mobile.js +68 -0
  163. package/dist/enterprise/virtualized-table/index.d.ts +26 -0
  164. package/dist/enterprise/virtualized-table/index.d.ts.map +1 -0
  165. package/dist/enterprise/virtualized-table/index.js +114 -0
  166. package/dist/esm/charts/chart.d.ts +64 -0
  167. package/dist/esm/charts/chart.d.ts.map +1 -0
  168. package/dist/esm/charts/chart.js +191 -0
  169. package/dist/esm/charts/index.d.ts +3 -0
  170. package/dist/esm/charts/index.d.ts.map +1 -0
  171. package/dist/esm/charts/index.js +3 -0
  172. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts +10 -0
  173. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts.map +1 -0
  174. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.js +12 -0
  175. package/dist/esm/components/breadcrumb/index.d.ts +11 -0
  176. package/dist/esm/components/breadcrumb/index.d.ts.map +1 -0
  177. package/dist/esm/components/breadcrumb/index.js +6 -0
  178. package/dist/esm/components/card/account-card/index.d.ts +32 -0
  179. package/dist/esm/components/card/account-card/index.d.ts.map +1 -0
  180. package/dist/esm/components/card/account-card/index.js +53 -0
  181. package/dist/esm/components/card/basic-card/index.d.ts +6 -0
  182. package/dist/esm/components/card/basic-card/index.d.ts.map +1 -0
  183. package/dist/esm/components/card/basic-card/index.js +14 -0
  184. package/dist/esm/components/card/dashboard-card/index.d.ts +5 -0
  185. package/dist/esm/components/card/dashboard-card/index.d.ts.map +1 -0
  186. package/dist/esm/components/card/dashboard-card/index.js +14 -0
  187. package/dist/esm/components/card/entity-card/index.d.ts +22 -0
  188. package/dist/esm/components/card/entity-card/index.d.ts.map +1 -0
  189. package/dist/esm/components/card/entity-card/index.js +48 -0
  190. package/dist/esm/components/card/index.d.ts +5 -0
  191. package/dist/esm/components/card/index.d.ts.map +1 -0
  192. package/dist/esm/components/card/index.js +4 -0
  193. package/dist/esm/components/dialog/confirmation-dialog/index.d.ts +16 -0
  194. package/dist/esm/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
  195. package/dist/esm/components/dialog/confirmation-dialog/index.js +25 -0
  196. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
  197. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
  198. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.js +49 -0
  199. package/dist/esm/components/dialog/index.d.ts +4 -0
  200. package/dist/esm/components/dialog/index.d.ts.map +1 -0
  201. package/dist/esm/components/dialog/index.js +3 -0
  202. package/dist/esm/components/dialog/large-dialog/index.d.ts +11 -0
  203. package/dist/esm/components/dialog/large-dialog/index.d.ts.map +1 -0
  204. package/dist/esm/components/dialog/large-dialog/index.js +16 -0
  205. package/dist/esm/components/entity-box/index.d.ts +17 -0
  206. package/dist/esm/components/entity-box/index.d.ts.map +1 -0
  207. package/dist/esm/components/entity-box/index.js +31 -0
  208. package/dist/esm/components/entity-data-table/index.d.ts +17 -0
  209. package/dist/esm/components/entity-data-table/index.d.ts.map +1 -0
  210. package/dist/esm/components/entity-data-table/index.js +17 -0
  211. package/dist/esm/components/form/combo-box-field/index.d.ts +14 -0
  212. package/dist/esm/components/form/combo-box-field/index.d.ts.map +1 -0
  213. package/dist/esm/components/form/combo-box-field/index.js +28 -0
  214. package/dist/esm/components/form/country-field/index.d.ts +5 -0
  215. package/dist/esm/components/form/country-field/index.d.ts.map +1 -0
  216. package/dist/esm/components/form/country-field/index.js +7 -0
  217. package/dist/esm/components/form/date-picker-field/index.d.ts +21 -0
  218. package/dist/esm/components/form/date-picker-field/index.d.ts.map +1 -0
  219. package/dist/esm/components/form/date-picker-field/index.js +38 -0
  220. package/dist/esm/components/form/date-range-field/index.d.ts +21 -0
  221. package/dist/esm/components/form/date-range-field/index.d.ts.map +1 -0
  222. package/dist/esm/components/form/date-range-field/index.js +17 -0
  223. package/dist/esm/components/form/date-time-picker-field/index.d.ts +23 -0
  224. package/dist/esm/components/form/date-time-picker-field/index.d.ts.map +1 -0
  225. package/dist/esm/components/form/date-time-picker-field/index.js +73 -0
  226. package/dist/esm/components/form/file-upload-field/index.d.ts +52 -0
  227. package/dist/esm/components/form/file-upload-field/index.d.ts.map +1 -0
  228. package/dist/esm/components/form/file-upload-field/index.js +60 -0
  229. package/dist/esm/components/form/index.d.ts +16 -0
  230. package/dist/esm/components/form/index.d.ts.map +1 -0
  231. package/dist/esm/components/form/index.js +15 -0
  232. package/dist/esm/components/form/input-field/index.d.ts +26 -0
  233. package/dist/esm/components/form/input-field/index.d.ts.map +1 -0
  234. package/dist/esm/components/form/input-field/index.js +10 -0
  235. package/dist/esm/components/form/otp-field/index.d.ts +18 -0
  236. package/dist/esm/components/form/otp-field/index.d.ts.map +1 -0
  237. package/dist/esm/components/form/otp-field/index.js +15 -0
  238. package/dist/esm/components/form/pagination-limit-field/index.d.ts +9 -0
  239. package/dist/esm/components/form/pagination-limit-field/index.d.ts.map +1 -0
  240. package/dist/esm/components/form/pagination-limit-field/index.js +6 -0
  241. package/dist/esm/components/form/password-field/index.d.ts +14 -0
  242. package/dist/esm/components/form/password-field/index.d.ts.map +1 -0
  243. package/dist/esm/components/form/password-field/index.js +10 -0
  244. package/dist/esm/components/form/radio-group-field/index.d.ts +32 -0
  245. package/dist/esm/components/form/radio-group-field/index.d.ts.map +1 -0
  246. package/dist/esm/components/form/radio-group-field/index.js +32 -0
  247. package/dist/esm/components/form/renderable-label.d.ts +35 -0
  248. package/dist/esm/components/form/renderable-label.d.ts.map +1 -0
  249. package/dist/esm/components/form/renderable-label.js +54 -0
  250. package/dist/esm/components/form/select-field/index.d.ts +20 -0
  251. package/dist/esm/components/form/select-field/index.d.ts.map +1 -0
  252. package/dist/esm/components/form/select-field/index.js +16 -0
  253. package/dist/esm/components/form/state-field/index.d.ts +10 -0
  254. package/dist/esm/components/form/state-field/index.d.ts.map +1 -0
  255. package/dist/esm/components/form/state-field/index.js +35 -0
  256. package/dist/esm/components/form/switch-field/index.d.ts +15 -0
  257. package/dist/esm/components/form/switch-field/index.d.ts.map +1 -0
  258. package/dist/esm/components/form/switch-field/index.js +7 -0
  259. package/dist/esm/components/form/textarea-field/index.d.ts +31 -0
  260. package/dist/esm/components/form/textarea-field/index.d.ts.map +1 -0
  261. package/dist/esm/components/form/textarea-field/index.js +19 -0
  262. package/dist/esm/components/page/index.d.ts +4 -0
  263. package/dist/esm/components/page/index.d.ts.map +1 -0
  264. package/dist/esm/components/page/index.js +11 -0
  265. package/dist/esm/components/page-header/index.d.ts +33 -0
  266. package/dist/esm/components/page-header/index.d.ts.map +1 -0
  267. package/dist/esm/components/page-header/index.js +40 -0
  268. package/dist/esm/components/pagination/index.d.ts +8 -0
  269. package/dist/esm/components/pagination/index.d.ts.map +1 -0
  270. package/dist/esm/components/pagination/index.js +6 -0
  271. package/dist/esm/components/table/id-table-cell.d.ts +7 -0
  272. package/dist/esm/components/table/id-table-cell.d.ts.map +1 -0
  273. package/dist/esm/components/table/id-table-cell.js +12 -0
  274. package/dist/esm/components/table/index.d.ts +3 -0
  275. package/dist/esm/components/table/index.d.ts.map +1 -0
  276. package/dist/esm/components/table/index.js +2 -0
  277. package/dist/esm/components/table/locked-table-actions.d.ts +7 -0
  278. package/dist/esm/components/table/locked-table-actions.d.ts.map +1 -0
  279. package/dist/esm/components/table/locked-table-actions.js +7 -0
  280. package/dist/esm/components/table/name-table-cell.d.ts +6 -0
  281. package/dist/esm/components/table/name-table-cell.d.ts.map +1 -0
  282. package/dist/esm/components/table/name-table-cell.js +6 -0
  283. package/dist/esm/components/ui/accordion/index.d.ts +14 -0
  284. package/dist/esm/components/ui/accordion/index.d.ts.map +1 -0
  285. package/dist/esm/components/ui/accordion/index.js +24 -0
  286. package/dist/esm/components/ui/alert/index.d.ts +15 -0
  287. package/dist/esm/components/ui/alert/index.d.ts.map +1 -0
  288. package/dist/esm/components/ui/alert/index.js +38 -0
  289. package/dist/esm/components/ui/alert-dialog/index.d.ts +15 -0
  290. package/dist/esm/components/ui/alert-dialog/index.d.ts.map +1 -0
  291. package/dist/esm/components/ui/alert-dialog/index.js +39 -0
  292. package/dist/esm/components/ui/autocomplete/index.d.ts +54 -0
  293. package/dist/esm/components/ui/autocomplete/index.d.ts.map +1 -0
  294. package/dist/esm/components/ui/autocomplete/index.js +276 -0
  295. package/dist/esm/components/ui/autosize-textarea/index.d.ts +15 -0
  296. package/dist/esm/components/ui/autosize-textarea/index.d.ts.map +1 -0
  297. package/dist/esm/components/ui/autosize-textarea/index.js +51 -0
  298. package/dist/esm/components/ui/avatar/index.d.ts +7 -0
  299. package/dist/esm/components/ui/avatar/index.d.ts.map +1 -0
  300. package/dist/esm/components/ui/avatar/index.js +14 -0
  301. package/dist/esm/components/ui/badge/index.d.ts +11 -0
  302. package/dist/esm/components/ui/badge/index.d.ts.map +1 -0
  303. package/dist/esm/components/ui/badge/index.js +29 -0
  304. package/dist/esm/components/ui/breadcrumb/index.d.ts +12 -0
  305. package/dist/esm/components/ui/breadcrumb/index.d.ts.map +1 -0
  306. package/dist/esm/components/ui/breadcrumb/index.js +27 -0
  307. package/dist/esm/components/ui/button/index.d.ts +22 -0
  308. package/dist/esm/components/ui/button/index.d.ts.map +1 -0
  309. package/dist/esm/components/ui/button/index.js +59 -0
  310. package/dist/esm/components/ui/calendar/index.d.ts +9 -0
  311. package/dist/esm/components/ui/calendar/index.d.ts.map +1 -0
  312. package/dist/esm/components/ui/calendar/index.js +79 -0
  313. package/dist/esm/components/ui/card/index.d.ts +10 -0
  314. package/dist/esm/components/ui/card/index.d.ts.map +1 -0
  315. package/dist/esm/components/ui/card/index.js +24 -0
  316. package/dist/esm/components/ui/checkbox/index.d.ts +5 -0
  317. package/dist/esm/components/ui/checkbox/index.d.ts.map +1 -0
  318. package/dist/esm/components/ui/checkbox/index.js +9 -0
  319. package/dist/esm/components/ui/collapsible/index.d.ts +6 -0
  320. package/dist/esm/components/ui/collapsible/index.d.ts.map +1 -0
  321. package/dist/esm/components/ui/collapsible/index.js +13 -0
  322. package/dist/esm/components/ui/command/index.d.ts +14 -0
  323. package/dist/esm/components/ui/command/index.d.ts.map +1 -0
  324. package/dist/esm/components/ui/command/index.js +51 -0
  325. package/dist/esm/components/ui/copy-field/index.d.ts +56 -0
  326. package/dist/esm/components/ui/copy-field/index.d.ts.map +1 -0
  327. package/dist/esm/components/ui/copy-field/index.js +119 -0
  328. package/dist/esm/components/ui/dialog/index.d.ts +16 -0
  329. package/dist/esm/components/ui/dialog/index.d.ts.map +1 -0
  330. package/dist/esm/components/ui/dialog/index.js +36 -0
  331. package/dist/esm/components/ui/dropdown-menu/index.d.ts +27 -0
  332. package/dist/esm/components/ui/dropdown-menu/index.d.ts.map +1 -0
  333. package/dist/esm/components/ui/dropdown-menu/index.js +57 -0
  334. package/dist/esm/components/ui/field/index.d.ts +25 -0
  335. package/dist/esm/components/ui/field/index.d.ts.map +1 -0
  336. package/dist/esm/components/ui/field/index.js +68 -0
  337. package/dist/esm/components/ui/file-upload/index.d.ts +94 -0
  338. package/dist/esm/components/ui/file-upload/index.d.ts.map +1 -0
  339. package/dist/esm/components/ui/file-upload/index.js +200 -0
  340. package/dist/esm/components/ui/form.d.ts +39 -0
  341. package/dist/esm/components/ui/form.d.ts.map +1 -0
  342. package/dist/esm/components/ui/form.js +67 -0
  343. package/dist/esm/components/ui/hover-card/index.d.ts +7 -0
  344. package/dist/esm/components/ui/hover-card/index.d.ts.map +1 -0
  345. package/dist/esm/components/ui/hover-card/index.js +14 -0
  346. package/dist/esm/components/ui/icon-button/index.d.ts +13 -0
  347. package/dist/esm/components/ui/icon-button/index.d.ts.map +1 -0
  348. package/dist/esm/components/ui/icon-button/index.js +31 -0
  349. package/dist/esm/components/ui/input/adornment.d.ts +9 -0
  350. package/dist/esm/components/ui/input/adornment.d.ts.map +1 -0
  351. package/dist/esm/components/ui/input/adornment.js +17 -0
  352. package/dist/esm/components/ui/input/index.d.ts +18 -0
  353. package/dist/esm/components/ui/input/index.d.ts.map +1 -0
  354. package/dist/esm/components/ui/input/index.js +60 -0
  355. package/dist/esm/components/ui/label/index.d.ts +7 -0
  356. package/dist/esm/components/ui/label/index.d.ts.map +1 -0
  357. package/dist/esm/components/ui/label/index.js +10 -0
  358. package/dist/esm/components/ui/loading-button/index.d.ts +8 -0
  359. package/dist/esm/components/ui/loading-button/index.d.ts.map +1 -0
  360. package/dist/esm/components/ui/loading-button/index.js +7 -0
  361. package/dist/esm/components/ui/multiple-select/index.d.ts +91 -0
  362. package/dist/esm/components/ui/multiple-select/index.d.ts.map +1 -0
  363. package/dist/esm/components/ui/multiple-select/index.js +196 -0
  364. package/dist/esm/components/ui/otp-input/index.d.ts +13 -0
  365. package/dist/esm/components/ui/otp-input/index.d.ts.map +1 -0
  366. package/dist/esm/components/ui/otp-input/index.js +21 -0
  367. package/dist/esm/components/ui/paper/index.d.ts +4 -0
  368. package/dist/esm/components/ui/paper/index.d.ts.map +1 -0
  369. package/dist/esm/components/ui/paper/index.js +5 -0
  370. package/dist/esm/components/ui/paper-collapsible/index.d.ts +9 -0
  371. package/dist/esm/components/ui/paper-collapsible/index.d.ts.map +1 -0
  372. package/dist/esm/components/ui/paper-collapsible/index.js +19 -0
  373. package/dist/esm/components/ui/popover/index.d.ts +8 -0
  374. package/dist/esm/components/ui/popover/index.d.ts.map +1 -0
  375. package/dist/esm/components/ui/popover/index.js +17 -0
  376. package/dist/esm/components/ui/progress/index.d.ts +8 -0
  377. package/dist/esm/components/ui/progress/index.d.ts.map +1 -0
  378. package/dist/esm/components/ui/progress/index.js +8 -0
  379. package/dist/esm/components/ui/qr-code/index.d.ts +26 -0
  380. package/dist/esm/components/ui/qr-code/index.d.ts.map +1 -0
  381. package/dist/esm/components/ui/qr-code/index.js +24 -0
  382. package/dist/esm/components/ui/radio-group/index.d.ts +6 -0
  383. package/dist/esm/components/ui/radio-group/index.d.ts.map +1 -0
  384. package/dist/esm/components/ui/radio-group/index.js +12 -0
  385. package/dist/esm/components/ui/scroll-area/index.d.ts +6 -0
  386. package/dist/esm/components/ui/scroll-area/index.d.ts.map +1 -0
  387. package/dist/esm/components/ui/scroll-area/index.js +13 -0
  388. package/dist/esm/components/ui/select/index.d.ts +18 -0
  389. package/dist/esm/components/ui/select/index.d.ts.map +1 -0
  390. package/dist/esm/components/ui/select/index.js +47 -0
  391. package/dist/esm/components/ui/separator/index.d.ts +5 -0
  392. package/dist/esm/components/ui/separator/index.d.ts.map +1 -0
  393. package/dist/esm/components/ui/separator/index.js +8 -0
  394. package/dist/esm/components/ui/sheet/index.d.ts +19 -0
  395. package/dist/esm/components/ui/sheet/index.d.ts.map +1 -0
  396. package/dist/esm/components/ui/sheet/index.js +59 -0
  397. package/dist/esm/components/ui/sidebar/index.d.ts +11 -0
  398. package/dist/esm/components/ui/sidebar/index.d.ts.map +1 -0
  399. package/dist/esm/components/ui/sidebar/index.js +10 -0
  400. package/dist/esm/components/ui/sidebar/next-router.cjs +119 -0
  401. package/dist/esm/components/ui/sidebar/next-router.d.cts +7 -0
  402. package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
  403. package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
  404. package/dist/esm/components/ui/sidebar/sidebar-back-button.js +5 -0
  405. package/dist/esm/components/ui/sidebar/sidebar-components.d.ts +23 -0
  406. package/dist/esm/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
  407. package/dist/esm/components/ui/sidebar/sidebar-components.js +15 -0
  408. package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts +7 -0
  409. package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
  410. package/dist/esm/components/ui/sidebar/sidebar-expand-button.js +12 -0
  411. package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
  412. package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
  413. package/dist/esm/components/ui/sidebar/sidebar-item-button.js +18 -0
  414. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
  415. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
  416. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.js +44 -0
  417. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
  418. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
  419. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.js +14 -0
  420. package/dist/esm/components/ui/sidebar/sidebar-item.d.ts +13 -0
  421. package/dist/esm/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
  422. package/dist/esm/components/ui/sidebar/sidebar-item.js +16 -0
  423. package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts +12 -0
  424. package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
  425. package/dist/esm/components/ui/sidebar/sidebar-provider.js +51 -0
  426. package/dist/esm/components/ui/sidebar/sidebar-root.d.ts +3 -0
  427. package/dist/esm/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
  428. package/dist/esm/components/ui/sidebar/sidebar-root.js +20 -0
  429. package/dist/esm/components/ui/sidebar/sidebar-router.d.ts +82 -0
  430. package/dist/esm/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
  431. package/dist/esm/components/ui/sidebar/sidebar-router.js +89 -0
  432. package/dist/esm/components/ui/skeleton/index.d.ts +3 -0
  433. package/dist/esm/components/ui/skeleton/index.d.ts.map +1 -0
  434. package/dist/esm/components/ui/skeleton/index.js +6 -0
  435. package/dist/esm/components/ui/stepper/index.d.ts +18 -0
  436. package/dist/esm/components/ui/stepper/index.d.ts.map +1 -0
  437. package/dist/esm/components/ui/stepper/index.js +20 -0
  438. package/dist/esm/components/ui/switch/index.d.ts +5 -0
  439. package/dist/esm/components/ui/switch/index.d.ts.map +1 -0
  440. package/dist/esm/components/ui/switch/index.js +8 -0
  441. package/dist/esm/components/ui/table/index.d.ts +21 -0
  442. package/dist/esm/components/ui/table/index.d.ts.map +1 -0
  443. package/dist/esm/components/ui/table/index.js +44 -0
  444. package/dist/esm/components/ui/tabs/index.d.ts +8 -0
  445. package/dist/esm/components/ui/tabs/index.d.ts.map +1 -0
  446. package/dist/esm/components/ui/tabs/index.js +17 -0
  447. package/dist/esm/components/ui/textarea/index.d.ts +4 -0
  448. package/dist/esm/components/ui/textarea/index.d.ts.map +1 -0
  449. package/dist/esm/components/ui/textarea/index.js +6 -0
  450. package/dist/esm/components/ui/time-picker/index.d.ts +18 -0
  451. package/dist/esm/components/ui/time-picker/index.d.ts.map +1 -0
  452. package/dist/esm/components/ui/time-picker/index.js +49 -0
  453. package/dist/esm/components/ui/toast/index.d.ts +18 -0
  454. package/dist/esm/components/ui/toast/index.d.ts.map +1 -0
  455. package/dist/esm/components/ui/toast/index.js +2 -0
  456. package/dist/esm/components/ui/toast/toaster.d.ts +6 -0
  457. package/dist/esm/components/ui/toast/toaster.d.ts.map +1 -0
  458. package/dist/esm/components/ui/toast/toaster.js +8 -0
  459. package/dist/esm/components/ui/toggle-group/index.d.ts +18 -0
  460. package/dist/esm/components/ui/toggle-group/index.d.ts.map +1 -0
  461. package/dist/esm/components/ui/toggle-group/index.js +51 -0
  462. package/dist/esm/components/ui/tooltip/index.d.ts +11 -0
  463. package/dist/esm/components/ui/tooltip/index.d.ts.map +1 -0
  464. package/dist/esm/components/ui/tooltip/index.js +28 -0
  465. package/dist/esm/domain/blotter/index.d.ts +40 -0
  466. package/dist/esm/domain/blotter/index.d.ts.map +1 -0
  467. package/dist/esm/domain/blotter/index.js +12 -0
  468. package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts +57 -0
  469. package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
  470. package/dist/esm/domain/delinquency-aging/aging-buckets.js +105 -0
  471. package/dist/esm/domain/delinquency-aging/index.d.ts +71 -0
  472. package/dist/esm/domain/delinquency-aging/index.d.ts.map +1 -0
  473. package/dist/esm/domain/delinquency-aging/index.js +209 -0
  474. package/dist/esm/domain/figure/index.d.ts +30 -0
  475. package/dist/esm/domain/figure/index.d.ts.map +1 -0
  476. package/dist/esm/domain/figure/index.js +14 -0
  477. package/dist/esm/domain/format.d.ts +79 -0
  478. package/dist/esm/domain/format.d.ts.map +1 -0
  479. package/dist/esm/domain/format.js +128 -0
  480. package/dist/esm/domain/index.d.ts +23 -0
  481. package/dist/esm/domain/index.d.ts.map +1 -0
  482. package/dist/esm/domain/index.js +19 -0
  483. package/dist/esm/domain/key-id/index.d.ts +31 -0
  484. package/dist/esm/domain/key-id/index.d.ts.map +1 -0
  485. package/dist/esm/domain/key-id/index.js +169 -0
  486. package/dist/esm/domain/ledger-sheet/index.d.ts +45 -0
  487. package/dist/esm/domain/ledger-sheet/index.d.ts.map +1 -0
  488. package/dist/esm/domain/ledger-sheet/index.js +24 -0
  489. package/dist/esm/domain/money-diff.d.ts +28 -0
  490. package/dist/esm/domain/money-diff.d.ts.map +1 -0
  491. package/dist/esm/domain/money-diff.js +45 -0
  492. package/dist/esm/domain/money-math.d.ts +32 -0
  493. package/dist/esm/domain/money-math.d.ts.map +1 -0
  494. package/dist/esm/domain/money-math.js +98 -0
  495. package/dist/esm/domain/money-text/index.d.ts +37 -0
  496. package/dist/esm/domain/money-text/index.d.ts.map +1 -0
  497. package/dist/esm/domain/money-text/index.js +110 -0
  498. package/dist/esm/domain/section-label/index.d.ts +21 -0
  499. package/dist/esm/domain/section-label/index.d.ts.map +1 -0
  500. package/dist/esm/domain/section-label/index.js +10 -0
  501. package/dist/esm/domain/status-rail/index.d.ts +40 -0
  502. package/dist/esm/domain/status-rail/index.d.ts.map +1 -0
  503. package/dist/esm/domain/status-rail/index.js +67 -0
  504. package/dist/esm/domain/threshold-gauge/index.d.ts +84 -0
  505. package/dist/esm/domain/threshold-gauge/index.d.ts.map +1 -0
  506. package/dist/esm/domain/threshold-gauge/index.js +153 -0
  507. package/dist/esm/enterprise/alert-banner/index.d.ts +30 -0
  508. package/dist/esm/enterprise/alert-banner/index.d.ts.map +1 -0
  509. package/dist/esm/enterprise/alert-banner/index.js +21 -0
  510. package/dist/esm/enterprise/app-shell/index.d.ts +61 -0
  511. package/dist/esm/enterprise/app-shell/index.d.ts.map +1 -0
  512. package/dist/esm/enterprise/app-shell/index.js +51 -0
  513. package/dist/esm/enterprise/cursor-pager/index.d.ts +21 -0
  514. package/dist/esm/enterprise/cursor-pager/index.d.ts.map +1 -0
  515. package/dist/esm/enterprise/cursor-pager/index.js +23 -0
  516. package/dist/esm/enterprise/data-table/index.d.ts +88 -0
  517. package/dist/esm/enterprise/data-table/index.d.ts.map +1 -0
  518. package/dist/esm/enterprise/data-table/index.js +242 -0
  519. package/dist/esm/enterprise/date-range-picker/index.d.ts +37 -0
  520. package/dist/esm/enterprise/date-range-picker/index.d.ts.map +1 -0
  521. package/dist/esm/enterprise/date-range-picker/index.js +89 -0
  522. package/dist/esm/enterprise/detail-panel/index.d.ts +54 -0
  523. package/dist/esm/enterprise/detail-panel/index.d.ts.map +1 -0
  524. package/dist/esm/enterprise/detail-panel/index.js +17 -0
  525. package/dist/esm/enterprise/empty-state/index.d.ts +32 -0
  526. package/dist/esm/enterprise/empty-state/index.d.ts.map +1 -0
  527. package/dist/esm/enterprise/empty-state/index.js +10 -0
  528. package/dist/esm/enterprise/index.d.ts +26 -0
  529. package/dist/esm/enterprise/index.d.ts.map +1 -0
  530. package/dist/esm/enterprise/index.js +22 -0
  531. package/dist/esm/enterprise/number-input/index.d.ts +55 -0
  532. package/dist/esm/enterprise/number-input/index.d.ts.map +1 -0
  533. package/dist/esm/enterprise/number-input/index.js +214 -0
  534. package/dist/esm/enterprise/search-input/index.d.ts +32 -0
  535. package/dist/esm/enterprise/search-input/index.d.ts.map +1 -0
  536. package/dist/esm/enterprise/search-input/index.js +85 -0
  537. package/dist/esm/enterprise/stat-card/index.d.ts +43 -0
  538. package/dist/esm/enterprise/stat-card/index.d.ts.map +1 -0
  539. package/dist/esm/enterprise/stat-card/index.js +64 -0
  540. package/dist/esm/enterprise/status-badge/index.d.ts +31 -0
  541. package/dist/esm/enterprise/status-badge/index.d.ts.map +1 -0
  542. package/dist/esm/enterprise/status-badge/index.js +116 -0
  543. package/dist/esm/enterprise/use-is-mobile.d.ts +20 -0
  544. package/dist/esm/enterprise/use-is-mobile.d.ts.map +1 -0
  545. package/dist/esm/enterprise/use-is-mobile.js +31 -0
  546. package/dist/esm/enterprise/virtualized-table/index.d.ts +26 -0
  547. package/dist/esm/enterprise/virtualized-table/index.d.ts.map +1 -0
  548. package/dist/esm/enterprise/virtualized-table/index.js +111 -0
  549. package/dist/esm/hooks/use-click-away.d.ts +9 -0
  550. package/dist/esm/hooks/use-click-away.d.ts.map +1 -0
  551. package/dist/esm/hooks/use-click-away.js +22 -0
  552. package/dist/esm/hooks/use-pagination.d.ts +13 -0
  553. package/dist/esm/hooks/use-pagination.d.ts.map +1 -0
  554. package/dist/esm/hooks/use-pagination.js +38 -0
  555. package/dist/esm/hooks/use-stepper.d.ts +11 -0
  556. package/dist/esm/hooks/use-stepper.d.ts.map +1 -0
  557. package/dist/esm/hooks/use-stepper.js +22 -0
  558. package/dist/esm/hooks/use-time.d.ts +6 -0
  559. package/dist/esm/hooks/use-time.d.ts.map +1 -0
  560. package/dist/esm/hooks/use-time.js +13 -0
  561. package/dist/esm/hooks/use-toast.d.ts +31 -0
  562. package/dist/esm/hooks/use-toast.d.ts.map +1 -0
  563. package/dist/esm/hooks/use-toast.js +63 -0
  564. package/dist/esm/index.d.ts +69 -0
  565. package/dist/esm/index.d.ts.map +1 -0
  566. package/dist/esm/index.js +74 -0
  567. package/dist/esm/lib/storage/get-storage-object.d.ts +2 -0
  568. package/dist/esm/lib/storage/get-storage-object.d.ts.map +1 -0
  569. package/dist/esm/lib/storage/get-storage-object.js +17 -0
  570. package/dist/esm/lib/storage/get-storage.d.ts +2 -0
  571. package/dist/esm/lib/storage/get-storage.d.ts.map +1 -0
  572. package/dist/esm/lib/storage/get-storage.js +14 -0
  573. package/dist/esm/lib/storage/index.d.ts +3 -0
  574. package/dist/esm/lib/storage/index.d.ts.map +1 -0
  575. package/dist/esm/lib/storage/index.js +2 -0
  576. package/dist/esm/lib/typography.d.ts +17 -0
  577. package/dist/esm/lib/typography.d.ts.map +1 -0
  578. package/dist/esm/lib/typography.js +16 -0
  579. package/dist/esm/lib/utils.d.ts +3 -0
  580. package/dist/esm/lib/utils.d.ts.map +1 -0
  581. package/dist/esm/lib/utils.js +5 -0
  582. package/dist/esm/package.json +1 -0
  583. package/dist/esm/public/countries.json +21210 -0
  584. package/dist/esm/theme/get-theme-script.d.ts +3 -0
  585. package/dist/esm/theme/get-theme-script.d.ts.map +1 -0
  586. package/dist/esm/theme/get-theme-script.js +41 -0
  587. package/dist/esm/theme/index.d.ts +6 -0
  588. package/dist/esm/theme/index.d.ts.map +1 -0
  589. package/dist/esm/theme/index.js +4 -0
  590. package/dist/esm/theme/mode-toggle.d.ts +25 -0
  591. package/dist/esm/theme/mode-toggle.d.ts.map +1 -0
  592. package/dist/esm/theme/mode-toggle.js +45 -0
  593. package/dist/esm/theme/theme-provider.d.ts +38 -0
  594. package/dist/esm/theme/theme-provider.d.ts.map +1 -0
  595. package/dist/esm/theme/theme-provider.js +112 -0
  596. package/dist/esm/toast/helpers.d.ts +16 -0
  597. package/dist/esm/toast/helpers.d.ts.map +1 -0
  598. package/dist/esm/toast/helpers.js +29 -0
  599. package/dist/esm/toast/index.d.ts +3 -0
  600. package/dist/esm/toast/index.d.ts.map +1 -0
  601. package/dist/esm/toast/index.js +4 -0
  602. package/dist/esm/types/metadata-type.d.ts +2 -0
  603. package/dist/esm/types/metadata-type.d.ts.map +1 -0
  604. package/dist/esm/types/metadata-type.js +1 -0
  605. package/dist/esm/utils/countries.cjs +17 -0
  606. package/dist/esm/utils/countries.d.cts +14 -0
  607. package/dist/esm/utils/country-utils.d.ts +17 -0
  608. package/dist/esm/utils/country-utils.d.ts.map +1 -0
  609. package/dist/esm/utils/country-utils.js +18 -0
  610. package/dist/esm/utils/currency-codes.d.ts +5 -0
  611. package/dist/esm/utils/currency-codes.d.ts.map +1 -0
  612. package/dist/esm/utils/currency-codes.js +181 -0
  613. package/dist/globals.css +74 -0
  614. package/dist/hooks/use-toast.d.ts +1 -1
  615. package/dist/hooks/use-toast.d.ts.map +1 -1
  616. package/dist/hooks/use-toast.js +4 -0
  617. package/dist/index.d.ts +16 -0
  618. package/dist/index.d.ts.map +1 -1
  619. package/dist/index.js +21 -1
  620. package/dist/lib/storage/get-storage-object.d.ts.map +1 -1
  621. package/dist/lib/storage/get-storage-object.js +6 -2
  622. package/dist/lib/typography.d.ts +17 -0
  623. package/dist/lib/typography.d.ts.map +1 -0
  624. package/dist/lib/typography.js +19 -0
  625. package/dist/public/countries.json +21200 -21200
  626. package/dist/theme/get-theme-script.d.ts +3 -0
  627. package/dist/theme/get-theme-script.d.ts.map +1 -0
  628. package/dist/theme/get-theme-script.js +44 -0
  629. package/dist/theme/index.d.ts +6 -0
  630. package/dist/theme/index.d.ts.map +1 -0
  631. package/dist/theme/index.js +11 -0
  632. package/dist/theme/mode-toggle.d.ts +25 -0
  633. package/dist/theme/mode-toggle.d.ts.map +1 -0
  634. package/dist/theme/mode-toggle.js +48 -0
  635. package/dist/theme/theme-provider.d.ts +38 -0
  636. package/dist/theme/theme-provider.d.ts.map +1 -0
  637. package/dist/theme/theme-provider.js +149 -0
  638. package/dist/toast/helpers.d.ts +16 -0
  639. package/dist/toast/helpers.d.ts.map +1 -0
  640. package/dist/toast/helpers.js +34 -0
  641. package/dist/toast/index.d.ts +3 -0
  642. package/dist/toast/index.d.ts.map +1 -0
  643. package/dist/toast/index.js +10 -0
  644. package/dist/utils/countries.cjs +17 -0
  645. package/dist/utils/countries.d.cts +14 -0
  646. package/dist/utils/country-utils.js +2 -2
  647. package/package.json +55 -18
  648. package/dist/components/ui/label/label.stories.d.ts +0 -5
  649. package/dist/components/ui/label/label.stories.d.ts.map +0 -1
  650. package/dist/components/ui/label/label.stories.js +0 -24
  651. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +0 -2
  652. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +0 -1
  653. package/dist/components/ui/sidebar/sidebar-provider.test.js +0 -170
  654. package/dist/hooks/use-click-away.test.d.ts +0 -2
  655. package/dist/hooks/use-click-away.test.d.ts.map +0 -1
  656. package/dist/hooks/use-click-away.test.js +0 -39
  657. package/dist/hooks/use-stepper.test.d.ts +0 -2
  658. package/dist/hooks/use-stepper.test.d.ts.map +0 -1
  659. package/dist/hooks/use-stepper.test.js +0 -45
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
4
+ import { X } from 'lucide-react';
5
+ import { cn } from '../../../lib/utils.js';
6
+ function Dialog({ ...props }) {
7
+ return _jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
8
+ }
9
+ function DialogTrigger({ ...props }) {
10
+ return _jsx(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
11
+ }
12
+ function DialogPortal({ ...props }) {
13
+ return _jsx(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
14
+ }
15
+ function DialogClose({ ...props }) {
16
+ return _jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
17
+ }
18
+ function DialogOverlay({ className, ...props }) {
19
+ return (_jsx(DialogPrimitive.Overlay, { "data-slot": "dialog-overlay", className: cn('dialog-overlay', className), ...props }));
20
+ }
21
+ function DialogContent({ className, children, showCloseButton = true, ...props }) {
22
+ return (_jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { "data-slot": "dialog-content", className: cn('dialog-content', !showCloseButton && '*:data-radix-dialog-close:hidden', className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { "data-slot": "dialog-close", className: "dialog-close", children: [_jsx(X, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] }));
23
+ }
24
+ function DialogHeader({ className, ...props }) {
25
+ return (_jsx("div", { "data-slot": "dialog-header", className: cn('dialog-header', className), ...props }));
26
+ }
27
+ function DialogFooter({ className, ...props }) {
28
+ return (_jsx("div", { "data-slot": "dialog-footer", className: cn('dialog-footer', className), ...props }));
29
+ }
30
+ function DialogTitle({ className, ...props }) {
31
+ return (_jsx(DialogPrimitive.Title, { "data-slot": "dialog-title", className: cn('dialog-title', className), ...props }));
32
+ }
33
+ function DialogDescription({ className, ...props }) {
34
+ return (_jsx(DialogPrimitive.Description, { "data-slot": "dialog-description", className: cn('dialog-description', className), ...props }));
35
+ }
36
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription };
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): React.JSX.Element;
4
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): React.JSX.Element;
5
+ declare function DropdownMenuTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): React.JSX.Element;
6
+ declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): React.JSX.Element;
7
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): React.JSX.Element;
8
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
9
+ inset?: boolean;
10
+ variant?: 'default' | 'destructive';
11
+ }): React.JSX.Element;
12
+ declare function DropdownMenuItemIcon({ className, children, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
13
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): React.JSX.Element;
14
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): React.JSX.Element;
15
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): React.JSX.Element;
16
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
17
+ inset?: boolean;
18
+ }): React.JSX.Element;
19
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): React.JSX.Element;
20
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
21
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): React.JSX.Element;
22
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
23
+ inset?: boolean;
24
+ }): React.JSX.Element;
25
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): React.JSX.Element;
26
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuItemIcon, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup };
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/dropdown-menu/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AAKtE,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,qBAEzD;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,qBAI3D;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,qBAW5D;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,qBAc5D;AAED,iBAAS,iBAAiB,CAAC,EACzB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,qBAI1D;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAK,EACL,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAG;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;CACpC,qBAaA;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAc9B;AAED,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,YAAY,CAAC,qBAmBjE;AAED,iBAAS,sBAAsB,CAAC,EAC9B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,qBAO/D;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,qBAkB9D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,qBAYA;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,qBAQ9D;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAW9B;AAED,iBAAS,eAAe,CAAC,EACvB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,GAAG,CAAC,qBAExD;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,GAAG;IACjE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,qBAeA;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,qBAW/D;AAED,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACvB,CAAA"}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
+ import { Check, ChevronRight, Circle } from 'lucide-react';
6
+ import { cn } from '../../../lib/utils.js';
7
+ function DropdownMenu({ ...props }) {
8
+ return _jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
9
+ }
10
+ function DropdownMenuPortal({ ...props }) {
11
+ return (_jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props }));
12
+ }
13
+ function DropdownMenuTrigger({ className, ...props }) {
14
+ return (_jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", className: cn('flex items-center justify-center outline-hidden', className), ...props }));
15
+ }
16
+ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
17
+ return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { "data-slot": "dropdown-menu-content", sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-lg border shadow-md', className), ...props }) }));
18
+ }
19
+ function DropdownMenuGroup({ ...props }) {
20
+ return (_jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props }));
21
+ }
22
+ function DropdownMenuItem({ className, inset, variant = 'default', ...props }) {
23
+ return (_jsx(DropdownMenuPrimitive.Item, { "data-slot": "dropdown-menu-item", "data-inset": inset, "data-variant": variant, className: cn('focus:bg-shadcn-100 focus:text-accent-foreground text-muted-foreground relative flex cursor-pointer items-center gap-3 px-3 py-2 text-sm font-medium outline-hidden transition-colors select-none data-disabled:pointer-events-none data-disabled:opacity-50', className), ...props }));
24
+ }
25
+ function DropdownMenuItemIcon({ className, children, ...props }) {
26
+ return (_jsx("span", { "data-slot": "dropdown-menu-item-icon", className: cn('text-shadcn-400', className), ...props, children: React.Children.map(React.Children.toArray(children), (child) => React.isValidElement(child)
27
+ ? React.cloneElement(child, { size: 16 })
28
+ : child) }));
29
+ }
30
+ function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
31
+ return (_jsxs(DropdownMenuPrimitive.CheckboxItem, { "data-slot": "dropdown-menu-checkbox-item", className: cn('focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden transition-colors select-none data-disabled:pointer-events-none data-disabled:opacity-50', className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(Check, { className: "size-4" }) }) }), children] }));
32
+ }
33
+ function DropdownMenuRadioGroup({ ...props }) {
34
+ return (_jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props }));
35
+ }
36
+ function DropdownMenuRadioItem({ className, children, ...props }) {
37
+ return (_jsxs(DropdownMenuPrimitive.RadioItem, { "data-slot": "dropdown-menu-radio-item", className: cn('focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden transition-colors select-none data-disabled:pointer-events-none data-disabled:opacity-50', className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(Circle, { className: "size-2 fill-current" }) }) }), children] }));
38
+ }
39
+ function DropdownMenuLabel({ className, inset, ...props }) {
40
+ return (_jsx(DropdownMenuPrimitive.Label, { "data-slot": "dropdown-menu-label", "data-inset": inset, className: cn('hover:bg-shadcn-100 text-muted-foreground flex items-center gap-3 px-3 py-2 text-sm font-bold transition-colors', className), ...props }));
41
+ }
42
+ function DropdownMenuSeparator({ className, ...props }) {
43
+ return (_jsx(DropdownMenuPrimitive.Separator, { "data-slot": "dropdown-menu-separator", className: cn('bg-muted -mx-1 my-1 h-px', className), ...props }));
44
+ }
45
+ function DropdownMenuShortcut({ className, ...props }) {
46
+ return (_jsx("span", { "data-slot": "dropdown-menu-shortcut", className: cn('text-muted-foreground ml-auto text-xs tracking-widest', className), ...props }));
47
+ }
48
+ function DropdownMenuSub({ ...props }) {
49
+ return _jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
50
+ }
51
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
52
+ return (_jsxs(DropdownMenuPrimitive.SubTrigger, { "data-slot": "dropdown-menu-sub-trigger", "data-inset": inset, className: cn('focus:bg-shadcn-100 data-[state=open]:bg-accent text-muted-foreground flex cursor-default items-center gap-3 px-3 py-2 text-sm font-medium outline-hidden select-none', className), ...props, children: [children, _jsx(ChevronRight, { className: "ml-auto h-4 w-4" })] }));
53
+ }
54
+ function DropdownMenuSubContent({ className, ...props }) {
55
+ return (_jsx(DropdownMenuPrimitive.SubContent, { "data-slot": "dropdown-menu-sub-content", className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-md border p-1 shadow-lg', className), ...props }));
56
+ }
57
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuItemIcon, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup };
@@ -0,0 +1,25 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import { Label } from '../../../components/ui/label/index.js';
3
+ declare function FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>): import("react").JSX.Element;
4
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<'legend'> & {
5
+ variant?: 'legend' | 'label';
6
+ }): import("react").JSX.Element;
7
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
8
+ declare const fieldVariants: (props?: ({
9
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>): import("react").JSX.Element;
12
+ declare function FieldContent({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
13
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): import("react").JSX.Element;
14
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
15
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
16
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<'div'> & {
17
+ children?: React.ReactNode;
18
+ }): import("react").JSX.Element;
19
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<'div'> & {
20
+ errors?: Array<{
21
+ message?: string;
22
+ } | undefined>;
23
+ }): import("react").JSX.Element | null;
24
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle };
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/field/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAG7C,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,+BAW1E;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,+BAYnE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,QAAA,MAAM,aAAa;;8EAgBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAUlE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWzE;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,+BAYpC;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,+BAa3E;AAED,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,+BAsBA;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;CACjD,sCA0CA;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,EACX,CAAA"}
@@ -0,0 +1,68 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useMemo } from 'react';
4
+ import { cva } from 'class-variance-authority';
5
+ import { cn } from '../../../lib/utils.js';
6
+ import { Label } from '../../../components/ui/label/index.js';
7
+ import { Separator } from '../../../components/ui/separator/index.js';
8
+ function FieldSet({ className, ...props }) {
9
+ return (_jsx("fieldset", { "data-slot": "field-set", className: cn('flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', className), ...props }));
10
+ }
11
+ function FieldLegend({ className, variant = 'legend', ...props }) {
12
+ return (_jsx("legend", { "data-slot": "field-legend", "data-variant": variant, className: cn('mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base', className), ...props }));
13
+ }
14
+ function FieldGroup({ className, ...props }) {
15
+ return (_jsx("div", { "data-slot": "field-group", className: cn('group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4', className), ...props }));
16
+ }
17
+ const fieldVariants = cva('data-[invalid=true]:text-destructive gap-2 group/field flex w-full', {
18
+ variants: {
19
+ orientation: {
20
+ vertical: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto',
21
+ horizontal: 'flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',
22
+ responsive: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px'
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ orientation: 'vertical'
27
+ }
28
+ });
29
+ function Field({ className, orientation = 'vertical', ...props }) {
30
+ return (_jsx("div", { role: "group", "data-slot": "field", "data-orientation": orientation, className: cn(fieldVariants({ orientation }), className), ...props }));
31
+ }
32
+ function FieldContent({ className, ...props }) {
33
+ return (_jsx("div", { "data-slot": "field-content", className: cn('group/field-content flex flex-1 flex-col gap-0.5 leading-snug', className), ...props }));
34
+ }
35
+ function FieldLabel({ className, ...props }) {
36
+ return (_jsx(Label, { "data-slot": "field-label", className: cn('has-data-checked:bg-primary/5 has-data-checked:border-primary dark:has-data-checked:bg-primary/10 group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-2.5', 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col', className), ...props }));
37
+ }
38
+ function FieldTitle({ className, ...props }) {
39
+ return (_jsx("div", { "data-slot": "field-label", className: cn('flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50', className), ...props }));
40
+ }
41
+ function FieldDescription({ className, ...props }) {
42
+ return (_jsx("p", { "data-slot": "field-description", className: cn('text-muted-foreground text-left text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance [[data-variant=legend]+&]:-mt-1.5', 'last:mt-0 nth-last-2:-mt-1', '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4', className), ...props }));
43
+ }
44
+ function FieldSeparator({ children, className, ...props }) {
45
+ return (_jsxs("div", { "data-slot": "field-separator", "data-content": !!children, className: cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className), ...props, children: [_jsx(Separator, { className: "absolute inset-0 top-1/2" }), children && (_jsx("span", { className: "text-muted-foreground bg-background relative mx-auto block w-fit px-2", "data-slot": "field-separator-content", children: children }))] }));
46
+ }
47
+ function FieldError({ className, children, errors, ...props }) {
48
+ const content = useMemo(() => {
49
+ if (children) {
50
+ return children;
51
+ }
52
+ if (!errors?.length) {
53
+ return null;
54
+ }
55
+ const uniqueErrors = [
56
+ ...new Map(errors.map((error) => [error?.message, error])).values()
57
+ ];
58
+ if (uniqueErrors?.length === 1) {
59
+ return uniqueErrors[0]?.message;
60
+ }
61
+ return (_jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map((error, index) => error?.message && _jsx("li", { children: error.message }, index)) }));
62
+ }, [children, errors]);
63
+ if (!content) {
64
+ return null;
65
+ }
66
+ return (_jsx("div", { role: "alert", "data-slot": "field-error", className: cn('text-destructive text-sm font-normal', className), ...props, children: content }));
67
+ }
68
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle };
@@ -0,0 +1,94 @@
1
+ /**
2
+ * FileUpload — a controlled "pick a file, read it to text, hand back the text"
3
+ * primitive. The defining job: select one file (by click, keyboard, or
4
+ * drag-and-drop), validate it against an accept filter + a byte ceiling, read
5
+ * it as UTF-8 via FileReader.readAsText, and emit `{ file, text }`. Binary/DER
6
+ * (.pfx/.p12) is explicitly OUT of scope — readAsText only.
7
+ *
8
+ * The real `<input type="file">` IS the accessible control: it is `sr-only`
9
+ * (visually hidden) but focusable and labelable — never `aria-hidden`, never
10
+ * `tabIndex={-1}`. The FormControl-injected ARIA (`id`, `aria-invalid`,
11
+ * `aria-required`, `aria-describedby`) flows onto the input via `...rest`, so
12
+ * react-hook-form's `field.ref` (forwarded here) focuses the real control on
13
+ * error and FormLabel's `htmlFor` names it. The styled zone is a plain `<div>`
14
+ * with a click handler, NOT a wrapping `<label>`: a label would contribute its
15
+ * text to the input's accessible name and double-name it alongside a field's
16
+ * own label. Keyboard users Tab to the focusable input and Enter/Space opens
17
+ * the picker natively, so no key proxy is needed. Drag-and-drop is an
18
+ * enhancement layered on the zone.
19
+ *
20
+ * Errors are DUAL by design and both announced: size/type/read failures are
21
+ * the primitive's own concern, surfaced inline via `role="alert"` so it works
22
+ * standalone outside a form; a form wrapper (FileUploadField) adds the
23
+ * react-hook-form validation surface separately. A rejected pick never writes
24
+ * a value, so it cannot masquerade as valid. `accept` is validated against
25
+ * BOTH extension and MIME because the native `accept` attribute is only a
26
+ * browser hint and is bypassable via drag-drop.
27
+ */
28
+ import * as React from 'react';
29
+ export type FileUploadResult = {
30
+ file: File;
31
+ text: string;
32
+ };
33
+ export type FileUploadError = {
34
+ kind: 'too-large';
35
+ file: File;
36
+ maxSizeBytes: number;
37
+ } | {
38
+ kind: 'wrong-type';
39
+ file: File;
40
+ accept: string;
41
+ } | {
42
+ kind: 'read-failed';
43
+ file: File;
44
+ };
45
+ export type FileUploadProps = {
46
+ /** Comma-separated accept filter, e.g. ".pem,.key" or "text/plain". Mirrors the native input accept. */
47
+ accept?: string;
48
+ /** Inclusive byte ceiling. A file over this is rejected and announced, never selected. */
49
+ maxSizeBytes?: number;
50
+ /** Controlled selection. `null` = empty. The host owns state. */
51
+ value?: FileUploadResult | null;
52
+ /** Fires on accept (with {file,text}) or clear (null). Reads UTF-8 via FileReader.readAsText. */
53
+ onSelect: (result: FileUploadResult | null) => void;
54
+ /** Fires when a pick is rejected (size/type/read). Optional — the component also shows its own inline error. */
55
+ onError?: (error: FileUploadError) => void;
56
+ disabled?: boolean;
57
+ id?: string;
58
+ className?: string;
59
+ 'aria-invalid'?: boolean;
60
+ 'aria-required'?: boolean;
61
+ 'aria-describedby'?: string;
62
+ 'aria-label'?: string;
63
+ } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'accept' | 'value' | 'disabled' | 'onChange' | 'onSelect' | 'className' | 'multiple'>;
64
+ /**
65
+ * Validate a chosen file against an accept filter and a byte ceiling. Exported
66
+ * so hosts can pre-validate before handing a file over. `accept` is matched
67
+ * against BOTH the filename extension and the MIME type — a `.pem`/`text/plain`
68
+ * style filter passes if EITHER matches a token. When `accept` is omitted, any
69
+ * type passes. Returns the first error, or null when the file is acceptable.
70
+ */
71
+ export declare function validateFile(file: File, opts: {
72
+ accept?: string;
73
+ maxSizeBytes?: number;
74
+ }): FileUploadError | null;
75
+ export declare const FileUpload: React.ForwardRefExoticComponent<{
76
+ /** Comma-separated accept filter, e.g. ".pem,.key" or "text/plain". Mirrors the native input accept. */
77
+ accept?: string;
78
+ /** Inclusive byte ceiling. A file over this is rejected and announced, never selected. */
79
+ maxSizeBytes?: number;
80
+ /** Controlled selection. `null` = empty. The host owns state. */
81
+ value?: FileUploadResult | null;
82
+ /** Fires on accept (with {file,text}) or clear (null). Reads UTF-8 via FileReader.readAsText. */
83
+ onSelect: (result: FileUploadResult | null) => void;
84
+ /** Fires when a pick is rejected (size/type/read). Optional — the component also shows its own inline error. */
85
+ onError?: (error: FileUploadError) => void;
86
+ disabled?: boolean;
87
+ id?: string;
88
+ className?: string;
89
+ 'aria-invalid'?: boolean;
90
+ 'aria-required'?: boolean;
91
+ 'aria-describedby'?: string;
92
+ 'aria-label'?: string;
93
+ } & Omit<React.InputHTMLAttributes<HTMLInputElement>, "className" | "disabled" | "type" | "value" | "onChange" | "onSelect" | "accept" | "multiple"> & React.RefAttributes<HTMLInputElement>>;
94
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/file-upload/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAA;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,iGAAiG;IACjG,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAA;IACnD,gHAAgH;IAChH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,IAAI,CACN,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAEzC,MAAM,GACN,QAAQ,GACR,OAAO,GACP,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GAEX,UAAU,CACb,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,eAAe,GAAG,IAAI,CASxB;AA8CD,eAAO,MAAM,UAAU;IAhGrB,wGAAwG;aAC/F,MAAM;IACf,0FAA0F;mBAC3E,MAAM;IACrB,iEAAiE;YACzD,gBAAgB,GAAG,IAAI;IAC/B,iGAAiG;cACvF,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI;IACnD,gHAAgH;cACtG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI;eAC/B,OAAO;SACb,MAAM;gBACC,MAAM;qBACD,OAAO;sBACN,OAAO;yBACJ,MAAM;mBACZ,MAAM;6LA6RtB,CAAA"}
@@ -0,0 +1,200 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * FileUpload — a controlled "pick a file, read it to text, hand back the text"
5
+ * primitive. The defining job: select one file (by click, keyboard, or
6
+ * drag-and-drop), validate it against an accept filter + a byte ceiling, read
7
+ * it as UTF-8 via FileReader.readAsText, and emit `{ file, text }`. Binary/DER
8
+ * (.pfx/.p12) is explicitly OUT of scope — readAsText only.
9
+ *
10
+ * The real `<input type="file">` IS the accessible control: it is `sr-only`
11
+ * (visually hidden) but focusable and labelable — never `aria-hidden`, never
12
+ * `tabIndex={-1}`. The FormControl-injected ARIA (`id`, `aria-invalid`,
13
+ * `aria-required`, `aria-describedby`) flows onto the input via `...rest`, so
14
+ * react-hook-form's `field.ref` (forwarded here) focuses the real control on
15
+ * error and FormLabel's `htmlFor` names it. The styled zone is a plain `<div>`
16
+ * with a click handler, NOT a wrapping `<label>`: a label would contribute its
17
+ * text to the input's accessible name and double-name it alongside a field's
18
+ * own label. Keyboard users Tab to the focusable input and Enter/Space opens
19
+ * the picker natively, so no key proxy is needed. Drag-and-drop is an
20
+ * enhancement layered on the zone.
21
+ *
22
+ * Errors are DUAL by design and both announced: size/type/read failures are
23
+ * the primitive's own concern, surfaced inline via `role="alert"` so it works
24
+ * standalone outside a form; a form wrapper (FileUploadField) adds the
25
+ * react-hook-form validation surface separately. A rejected pick never writes
26
+ * a value, so it cannot masquerade as valid. `accept` is validated against
27
+ * BOTH extension and MIME because the native `accept` attribute is only a
28
+ * browser hint and is bypassable via drag-drop.
29
+ */
30
+ import * as React from 'react';
31
+ import { Upload, X } from 'lucide-react';
32
+ import { IconButton } from '../../../components/ui/icon-button/index.js';
33
+ import { cn } from '../../../lib/utils.js';
34
+ /**
35
+ * Validate a chosen file against an accept filter and a byte ceiling. Exported
36
+ * so hosts can pre-validate before handing a file over. `accept` is matched
37
+ * against BOTH the filename extension and the MIME type — a `.pem`/`text/plain`
38
+ * style filter passes if EITHER matches a token. When `accept` is omitted, any
39
+ * type passes. Returns the first error, or null when the file is acceptable.
40
+ */
41
+ export function validateFile(file, opts) {
42
+ const { accept, maxSizeBytes } = opts;
43
+ if (typeof maxSizeBytes === 'number' && file.size > maxSizeBytes) {
44
+ return { kind: 'too-large', file, maxSizeBytes };
45
+ }
46
+ if (accept && accept.trim() !== '' && !matchesAccept(file, accept)) {
47
+ return { kind: 'wrong-type', file, accept };
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * Does the file satisfy a comma-separated accept list? Each token is either a
53
+ * dot-extension (`.pem`, case-insensitive against the filename), an exact MIME
54
+ * (`text/plain`), or a MIME wildcard (`text/*`). True if ANY token matches.
55
+ */
56
+ function matchesAccept(file, accept) {
57
+ const name = file.name.toLowerCase();
58
+ const mime = file.type.toLowerCase();
59
+ return accept
60
+ .split(',')
61
+ .map((t) => t.trim().toLowerCase())
62
+ .filter((t) => t !== '')
63
+ .some((token) => {
64
+ if (token.startsWith('.'))
65
+ return name.endsWith(token);
66
+ if (token.endsWith('/*'))
67
+ return mime.startsWith(token.slice(0, -1));
68
+ return mime === token;
69
+ });
70
+ }
71
+ /** Humanize a byte count for the selected-file chip. Binary units, 1 decimal. */
72
+ function humanizeSize(bytes) {
73
+ if (bytes < 1024)
74
+ return `${bytes} B`;
75
+ const units = ['KB', 'MB', 'GB'];
76
+ let size = bytes / 1024;
77
+ let unit = 0;
78
+ while (size >= 1024 && unit < units.length - 1) {
79
+ size /= 1024;
80
+ unit += 1;
81
+ }
82
+ return `${size.toFixed(1)} ${units[unit]}`;
83
+ }
84
+ /** A human-readable announcement for each rejection kind. */
85
+ function errorMessage(error) {
86
+ switch (error.kind) {
87
+ case 'too-large':
88
+ return `File is too large (max ${humanizeSize(error.maxSizeBytes)}).`;
89
+ case 'wrong-type':
90
+ return `File type not allowed (expected ${error.accept}).`;
91
+ case 'read-failed':
92
+ return 'Could not read the file.';
93
+ }
94
+ }
95
+ export const FileUpload = React.forwardRef(function FileUpload({ accept, maxSizeBytes, value, onSelect, onError, disabled = false, id, className, 'aria-invalid': ariaInvalid, 'aria-required': ariaRequired, 'aria-describedby': ariaDescribedby, 'aria-label': ariaLabel, ...rest }, ref) {
96
+ const internalRef = React.useRef(null);
97
+ React.useImperativeHandle(ref, () => internalRef.current);
98
+ const reactId = React.useId();
99
+ const inputId = id ?? reactId;
100
+ const errorId = `${inputId}-file-upload-error`;
101
+ const [dragActive, setDragActive] = React.useState(false);
102
+ const [error, setError] = React.useState(null);
103
+ // The destructive styling is driven by the consumer's aria-invalid OR the
104
+ // component's own validation/read error — a self-detected bad pick must read
105
+ // as invalid even outside a form.
106
+ const invalid = ariaInvalid || error !== null;
107
+ // Radix Slot OVERWRITES aria-describedby (it does not merge), so merge the
108
+ // primitive's own role=alert error id with the FormControl-injected one so
109
+ // both associations coexist on the input. A plain join, never `cn` —
110
+ // tailwind-merge treats these as class names and would drop an id that
111
+ // happens to look like a conflicting utility.
112
+ const describedBy = [ariaDescribedby, error ? errorId : undefined]
113
+ .filter(Boolean)
114
+ .join(' ') || undefined;
115
+ // Last-resolved-wins: a slow read for pick A must not overwrite a newer
116
+ // pick B. Track the active reader and abort any in-flight read first.
117
+ const readerRef = React.useRef(null);
118
+ const handleFile = (file) => {
119
+ if (!file)
120
+ return;
121
+ readerRef.current?.abort();
122
+ const validationError = validateFile(file, { accept, maxSizeBytes });
123
+ if (validationError) {
124
+ setError(validationError);
125
+ onError?.(validationError);
126
+ return;
127
+ }
128
+ const reader = new FileReader();
129
+ readerRef.current = reader;
130
+ reader.onload = () => {
131
+ if (readerRef.current !== reader)
132
+ return;
133
+ readerRef.current = null;
134
+ setError(null);
135
+ onSelect({ file, text: String(reader.result ?? '') });
136
+ };
137
+ reader.onerror = () => {
138
+ if (readerRef.current !== reader)
139
+ return;
140
+ readerRef.current = null;
141
+ const readError = { kind: 'read-failed', file };
142
+ setError(readError);
143
+ onError?.(readError);
144
+ };
145
+ reader.readAsText(file);
146
+ };
147
+ const onInputChange = (event) => {
148
+ const file = event.target.files?.[0];
149
+ // Release the FileList the moment it has been read. The browser fires
150
+ // `change` only when the selection DIFFERS from what the input already
151
+ // holds, so keeping it meant re-picking the same file after a host reset
152
+ // (or retrying a rejected one) was silently a no-op — the picker opened,
153
+ // the user chose the file, and nothing happened.
154
+ event.target.value = '';
155
+ handleFile(file);
156
+ };
157
+ const onDragOver = (event) => {
158
+ if (disabled)
159
+ return;
160
+ event.preventDefault();
161
+ setDragActive(true);
162
+ };
163
+ const onDragLeave = (event) => {
164
+ event.preventDefault();
165
+ setDragActive(false);
166
+ };
167
+ const onDrop = (event) => {
168
+ if (disabled)
169
+ return;
170
+ event.preventDefault();
171
+ setDragActive(false);
172
+ handleFile(event.dataTransfer.files?.[0]);
173
+ };
174
+ // Mouse convenience only: clicking the styled zone opens the picker. A
175
+ // click that ORIGINATED on the input already opens it natively and bubbles
176
+ // up to here — re-firing .click() would open the picker twice, so ignore it.
177
+ const openPicker = (event) => {
178
+ if (disabled || event.target === internalRef.current)
179
+ return;
180
+ internalRef.current?.click();
181
+ };
182
+ const clear = () => {
183
+ readerRef.current?.abort();
184
+ readerRef.current = null;
185
+ setError(null);
186
+ onSelect(null);
187
+ // Reset the native input so re-picking the same filename fires onChange.
188
+ if (internalRef.current)
189
+ internalRef.current.value = '';
190
+ };
191
+ return (_jsxs("div", { className: cn('space-y-2', className), children: [_jsxs("div", { onClick: openPicker, onDragOver: onDragOver, onDragLeave: onDragLeave, onDrop: onDrop, className: cn('border-input bg-card focus-within:ring-ring focus-within:ring-offset-background aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-within:ring-destructive flex w-full items-center gap-3 rounded-md border px-3 py-4 text-sm shadow-xs transition-colors focus-within:ring-2 focus-within:ring-offset-1 focus-within:outline-none', dragActive &&
192
+ 'border-ring ring-ring ring-offset-background ring-2 ring-offset-1', disabled
193
+ ? 'border-muted bg-muted/30 cursor-not-allowed shadow-none'
194
+ : 'cursor-pointer'), "aria-invalid": invalid || undefined, children: [_jsx("input", { ref: internalRef, id: inputId, type: "file", accept: accept, disabled: disabled, className: "sr-only", "aria-invalid": invalid || undefined, "aria-required": ariaRequired || undefined, "aria-describedby": describedBy, "aria-label": ariaLabel, onChange: onInputChange, ...rest }), _jsx(Upload, { className: "text-muted-foreground size-4 shrink-0", "aria-hidden": "true" }), value ? (_jsxs(_Fragment, { children: [_jsxs("span", { className: "min-w-0 flex-1 truncate", children: [_jsx("span", { className: "text-foreground font-medium", children: value.file.name }), ' ', _jsx("span", { className: "text-muted-foreground tabular-nums", children: humanizeSize(value.file.size) })] }), _jsx(IconButton, { type: "button", variant: "plain", size: "small", disabled: disabled, "aria-label": "Remove file", onClick: (event) => {
195
+ // Don't bubble to the zone's openPicker and re-open the dialog.
196
+ event.stopPropagation();
197
+ clear();
198
+ }, children: _jsx(X, { className: "size-4", "aria-hidden": "true" }) })] })) : (_jsxs("span", { className: "text-muted-foreground", children: [_jsx("span", { className: "text-foreground font-medium", children: "Choose a file" }), ' ', "or drag and drop"] }))] }), error ? (_jsx("p", { id: errorId, role: "alert", className: "text-destructive text-xs font-medium", children: errorMessage(error) })) : null] }));
199
+ });
200
+ FileUpload.displayName = 'FileUpload';
@@ -0,0 +1,39 @@
1
+ import * as React from 'react';
2
+ import * as LabelPrimitive from '@radix-ui/react-label';
3
+ import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
4
+ import { TooltipProviderProps } from '@radix-ui/react-tooltip';
5
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
6
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => React.JSX.Element;
7
+ declare const useFormField: () => {
8
+ invalid: boolean;
9
+ isDirty: boolean;
10
+ isTouched: boolean;
11
+ isValidating: boolean;
12
+ error?: import("react-hook-form").FieldError;
13
+ id: string;
14
+ name: string;
15
+ formItemId: string;
16
+ formDescriptionId: string;
17
+ formMessageId: string;
18
+ required: boolean | undefined;
19
+ };
20
+ export type FormItemProps = React.HTMLAttributes<HTMLDivElement> & {
21
+ required?: boolean;
22
+ };
23
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
24
+ required?: boolean;
25
+ } & React.RefAttributes<HTMLDivElement>>;
26
+ export type FormLabelProps = React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & {
27
+ extra?: React.ReactNode;
28
+ };
29
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & {
30
+ extra?: React.ReactNode;
31
+ } & React.RefAttributes<HTMLLabelElement>>;
32
+ export declare const FormTooltip: ({ children, ...others }: TooltipProviderProps) => React.JSX.Element;
33
+ declare const FormControl: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement> & {
34
+ children?: React.ReactNode;
35
+ } & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
36
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
37
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
38
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
39
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAEL,eAAe,EACf,SAAS,EACT,WAAW,EAGZ,MAAM,iBAAiB,CAAA;AAKxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAS9D,QAAA,MAAM,IAAI,4MAAe,CAAA;AAazB,QAAA,MAAM,SAAS,GACb,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,cAEC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,sBAMtC,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;;;;;;CAsBjB,CAAA;AAWD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,QAAA,MAAM,QAAQ;eAHD,OAAO;wCAanB,CAAA;AAGD,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CACzD,OAAO,cAAc,CAAC,IAAI,CAC3B,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACxB,CAAA;AAED,QAAA,MAAM,SAAS;YAHL,KAAK,CAAC,SAAS;0CA2BvB,CAAA;AAGF,eAAO,MAAM,WAAW,GAAI,yBAAyB,oBAAoB,sBASxE,CAAA;AAED,QAAA,MAAM,WAAW;;gFAmBf,CAAA;AAGF,QAAA,MAAM,eAAe,yHAcnB,CAAA;AAGF,QAAA,MAAM,WAAW,yHAqBf,CAAA;AAGF,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,EACV,CAAA"}