@omnifyjp/ui 1.0.2 → 2.0.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 (456) hide show
  1. package/dist/{chunk-TJMK2KBE.js → chunk-2BRCVWXR.js} +3 -3
  2. package/dist/chunk-2BRCVWXR.js.map +1 -0
  3. package/dist/{chunk-RQNZDWY3.js → chunk-33QLY6GI.js} +2 -2
  4. package/dist/chunk-33QLY6GI.js.map +1 -0
  5. package/dist/{chunk-NPL2R5LD.js → chunk-3V6NS4EQ.js} +5 -5
  6. package/dist/chunk-3V6NS4EQ.js.map +1 -0
  7. package/dist/{chunk-G7HTZBUR.js → chunk-47TUWE63.js} +3 -3
  8. package/dist/chunk-47TUWE63.js.map +1 -0
  9. package/dist/{chunk-75WZR6HF.js → chunk-4AGNE75K.js} +4 -4
  10. package/dist/chunk-4AGNE75K.js.map +1 -0
  11. package/dist/chunk-4NBDYSSQ.js +90 -0
  12. package/dist/chunk-4NBDYSSQ.js.map +1 -0
  13. package/dist/{chunk-FRKG7JQY.js → chunk-5AGUCELC.js} +2 -2
  14. package/dist/chunk-5AGUCELC.js.map +1 -0
  15. package/dist/{chunk-A3BB5ZOC.js → chunk-5SAUUOCN.js} +2 -2
  16. package/dist/chunk-5SAUUOCN.js.map +1 -0
  17. package/dist/{chunk-2TUWDXAC.js → chunk-5WOCEAZG.js} +3 -3
  18. package/dist/chunk-5WOCEAZG.js.map +1 -0
  19. package/dist/{chunk-2C2HRGM7.js → chunk-6W5FYOXQ.js} +3 -3
  20. package/dist/chunk-6W5FYOXQ.js.map +1 -0
  21. package/dist/{chunk-ZHEKDP5X.js → chunk-6Z6NRIQ2.js} +3 -3
  22. package/dist/chunk-6Z6NRIQ2.js.map +1 -0
  23. package/dist/{chunk-BAQWGQJG.js → chunk-7KZ7CVRN.js} +3 -3
  24. package/dist/chunk-7KZ7CVRN.js.map +1 -0
  25. package/dist/{chunk-C34KSTWA.js → chunk-7NMNLY7F.js} +2 -2
  26. package/dist/chunk-7NMNLY7F.js.map +1 -0
  27. package/dist/{chunk-55E7D2HR.js → chunk-BOV3Q2JH.js} +2 -2
  28. package/dist/chunk-BOV3Q2JH.js.map +1 -0
  29. package/dist/{chunk-34ARZSNP.js → chunk-CECQY5LL.js} +2 -2
  30. package/dist/chunk-CECQY5LL.js.map +1 -0
  31. package/dist/{chunk-JRU2QX7T.js → chunk-CLYBVDEQ.js} +2 -2
  32. package/dist/chunk-CLYBVDEQ.js.map +1 -0
  33. package/dist/{chunk-TGYQ3AKH.js → chunk-CNS3OMZ7.js} +2 -2
  34. package/dist/chunk-CNS3OMZ7.js.map +1 -0
  35. package/dist/{chunk-C5NZAOA7.js → chunk-CSYH7P6N.js} +2 -2
  36. package/dist/chunk-CSYH7P6N.js.map +1 -0
  37. package/dist/{chunk-USIHM7FV.js → chunk-DEKVLLTL.js} +2 -2
  38. package/dist/chunk-DEKVLLTL.js.map +1 -0
  39. package/dist/{chunk-Z2QAABLM.js → chunk-DXKFFJIE.js} +2 -2
  40. package/dist/chunk-DXKFFJIE.js.map +1 -0
  41. package/dist/{chunk-IAWKX5W4.js → chunk-DXZZURPN.js} +2 -2
  42. package/dist/chunk-DXZZURPN.js.map +1 -0
  43. package/dist/{chunk-XOJJBNDX.js → chunk-EAY3QSID.js} +2 -2
  44. package/dist/chunk-EAY3QSID.js.map +1 -0
  45. package/dist/{chunk-7XH3MGBR.js → chunk-EBV2XEHD.js} +5 -5
  46. package/dist/chunk-EBV2XEHD.js.map +1 -0
  47. package/dist/{chunk-P3M5TZD2.js → chunk-EYJ7TJIX.js} +2 -2
  48. package/dist/chunk-EYJ7TJIX.js.map +1 -0
  49. package/dist/{chunk-67YUL2ZS.js → chunk-FTNPOZGK.js} +2 -2
  50. package/dist/chunk-FTNPOZGK.js.map +1 -0
  51. package/dist/{chunk-JXGRW2MR.js → chunk-GR7T5QHL.js} +2 -2
  52. package/dist/chunk-GR7T5QHL.js.map +1 -0
  53. package/dist/{chunk-WS6E7HBT.js → chunk-HDTHGIQR.js} +3 -3
  54. package/dist/chunk-HDTHGIQR.js.map +1 -0
  55. package/dist/{chunk-LMT327XH.js → chunk-HEQVBUJO.js} +2 -2
  56. package/dist/chunk-HEQVBUJO.js.map +1 -0
  57. package/dist/{chunk-VVYSAGB3.js → chunk-I6PJSYBI.js} +3 -3
  58. package/dist/chunk-I6PJSYBI.js.map +1 -0
  59. package/dist/{chunk-35DNN46W.js → chunk-ITTPI2Z3.js} +3 -3
  60. package/dist/chunk-ITTPI2Z3.js.map +1 -0
  61. package/dist/{chunk-JAJMM32I.js → chunk-IXEPDTUE.js} +3 -3
  62. package/dist/chunk-IXEPDTUE.js.map +1 -0
  63. package/dist/{chunk-PGWNOZDX.js → chunk-KCUSO3CK.js} +2 -2
  64. package/dist/chunk-KCUSO3CK.js.map +1 -0
  65. package/dist/{chunk-QB3UWRZH.js → chunk-KJAXKHJ2.js} +3 -3
  66. package/dist/chunk-KJAXKHJ2.js.map +1 -0
  67. package/dist/{chunk-7IRLBU2I.js → chunk-LA4L3QIK.js} +3 -3
  68. package/dist/chunk-LA4L3QIK.js.map +1 -0
  69. package/dist/{chunk-NNJTKHCE.js → chunk-LTGCKJX7.js} +2 -2
  70. package/dist/chunk-LTGCKJX7.js.map +1 -0
  71. package/dist/{chunk-JJSVA3TH.js → chunk-LUYTKHGS.js} +2 -2
  72. package/dist/chunk-LUYTKHGS.js.map +1 -0
  73. package/dist/{chunk-6GWVQB3Q.js → chunk-MVYSUWSD.js} +3 -3
  74. package/dist/chunk-MVYSUWSD.js.map +1 -0
  75. package/dist/{chunk-YBMEQZX7.js → chunk-N5BNNKBR.js} +2 -2
  76. package/dist/chunk-N5BNNKBR.js.map +1 -0
  77. package/dist/{chunk-35U6QG4P.js → chunk-N6OUJIQD.js} +2 -2
  78. package/dist/chunk-N6OUJIQD.js.map +1 -0
  79. package/dist/{chunk-R2CDE5DO.js → chunk-NWVMNWOH.js} +2 -2
  80. package/dist/chunk-NWVMNWOH.js.map +1 -0
  81. package/dist/{chunk-NU56GKGM.js → chunk-ORTPKXBI.js} +2 -2
  82. package/dist/chunk-ORTPKXBI.js.map +1 -0
  83. package/dist/{chunk-FLWMT4DB.js → chunk-PJZ7D36X.js} +2 -2
  84. package/dist/chunk-PJZ7D36X.js.map +1 -0
  85. package/dist/{chunk-CUZR4JWM.js → chunk-PYB6RRA5.js} +3 -3
  86. package/dist/chunk-PYB6RRA5.js.map +1 -0
  87. package/dist/{chunk-BRSM3SZP.js → chunk-QGU4BRMO.js} +2 -2
  88. package/dist/chunk-QGU4BRMO.js.map +1 -0
  89. package/dist/{chunk-S6PDRGR5.js → chunk-RZZH57ZL.js} +2 -2
  90. package/dist/chunk-RZZH57ZL.js.map +1 -0
  91. package/dist/{chunk-EWBCV7VA.js → chunk-S73PGQD5.js} +2 -2
  92. package/dist/chunk-S73PGQD5.js.map +1 -0
  93. package/dist/{chunk-N47H4MHX.js → chunk-SAHHVJMQ.js} +3 -3
  94. package/dist/chunk-SAHHVJMQ.js.map +1 -0
  95. package/dist/{chunk-INLM7UJC.js → chunk-T65EBJUJ.js} +2 -2
  96. package/dist/chunk-T65EBJUJ.js.map +1 -0
  97. package/dist/{chunk-ZPMXRW2A.js → chunk-TPBRGO4D.js} +3 -3
  98. package/dist/chunk-TPBRGO4D.js.map +1 -0
  99. package/dist/{chunk-MJLFJPUG.js → chunk-V3S2AZKJ.js} +5 -5
  100. package/dist/chunk-V3S2AZKJ.js.map +1 -0
  101. package/dist/{chunk-MZ2P566X.js → chunk-VATNOBZ2.js} +3 -3
  102. package/dist/chunk-VATNOBZ2.js.map +1 -0
  103. package/dist/{chunk-JLTBUACL.js → chunk-VOLR236J.js} +2 -2
  104. package/dist/chunk-VOLR236J.js.map +1 -0
  105. package/dist/chunk-VPTIRPZW.js +75 -0
  106. package/dist/chunk-VPTIRPZW.js.map +1 -0
  107. package/dist/{chunk-WL4ZO2H3.js → chunk-W477ZR6B.js} +2 -2
  108. package/dist/chunk-W477ZR6B.js.map +1 -0
  109. package/dist/{chunk-3EOHW4QN.js → chunk-WJX6NKKF.js} +3 -3
  110. package/dist/chunk-WJX6NKKF.js.map +1 -0
  111. package/dist/{chunk-LTTNCAAA.js → chunk-XNUFKQYL.js} +3 -3
  112. package/dist/chunk-XNUFKQYL.js.map +1 -0
  113. package/dist/chunk-YN26HHZ4.js +71 -0
  114. package/dist/chunk-YN26HHZ4.js.map +1 -0
  115. package/dist/{chunk-ZYEGBF7G.js → chunk-YU23NDE4.js} +3 -3
  116. package/dist/chunk-YU23NDE4.js.map +1 -0
  117. package/dist/chunk-YU55YBID.js +144 -0
  118. package/dist/chunk-YU55YBID.js.map +1 -0
  119. package/dist/{chunk-F2ZJLKDP.js → chunk-YVCLIOMM.js} +2 -2
  120. package/dist/chunk-YVCLIOMM.js.map +1 -0
  121. package/dist/{chunk-7RMTPT6O.js → chunk-YYJVVYFS.js} +2 -2
  122. package/dist/chunk-YYJVVYFS.js.map +1 -0
  123. package/dist/chunk-ZUBW2ERW.js +70 -0
  124. package/dist/chunk-ZUBW2ERW.js.map +1 -0
  125. package/dist/components/display/accordion.js +4 -0
  126. package/dist/components/display/aspect-ratio.js +3 -0
  127. package/dist/components/display/avatar.js +4 -0
  128. package/dist/components/{badge.d.ts → display/badge.d.ts} +1 -1
  129. package/dist/components/display/badge.js +4 -0
  130. package/dist/components/display/card.js +4 -0
  131. package/dist/components/{carousel.d.ts → display/carousel.d.ts} +2 -2
  132. package/dist/components/display/carousel.js +5 -0
  133. package/dist/components/{chart.js → display/chart.js} +1 -1
  134. package/dist/components/display/chart.js.map +1 -0
  135. package/dist/components/{collapsible.js → display/collapsible.js} +1 -1
  136. package/dist/components/display/resizable.js +4 -0
  137. package/dist/components/display/scroll-area.js +4 -0
  138. package/dist/components/display/separator.js +4 -0
  139. package/dist/components/display/table.js +4 -0
  140. package/dist/components/display/toggle-group.js +5 -0
  141. package/dist/components/display/toggle.js +4 -0
  142. package/dist/components/domain/calendar/calendar-category-badge.js +5 -0
  143. package/dist/components/{calendar-event-chip.js → domain/calendar/calendar-event-chip.js} +1 -1
  144. package/dist/components/domain/calendar/calendar-event-chip.js.map +1 -0
  145. package/dist/components/{calendar-event-sheet.d.ts → domain/calendar/calendar-event-sheet.d.ts} +4 -1
  146. package/dist/components/{calendar-event-sheet.js → domain/calendar/calendar-event-sheet.js} +12 -8
  147. package/dist/components/domain/calendar/calendar-event-sheet.js.map +1 -0
  148. package/dist/components/{calendar-mini.d.ts → domain/calendar/calendar-mini.d.ts} +4 -1
  149. package/dist/components/{calendar-mini.js → domain/calendar/calendar-mini.js} +9 -5
  150. package/dist/components/domain/calendar/calendar-mini.js.map +1 -0
  151. package/dist/components/{calendar-toolbar.d.ts → domain/calendar/calendar-toolbar.d.ts} +4 -1
  152. package/dist/components/{calendar-toolbar.js → domain/calendar/calendar-toolbar.js} +10 -6
  153. package/dist/components/domain/calendar/calendar-toolbar.js.map +1 -0
  154. package/dist/components/domain/calendar/calendar.js +5 -0
  155. package/dist/components/domain/rbac/permission-grid.js +5 -0
  156. package/dist/components/domain/rbac/scope-tree.js +5 -0
  157. package/dist/components/domain/rbac/scope-type-badge.js +5 -0
  158. package/dist/components/domain/workflow/stage-type-badge.js +5 -0
  159. package/dist/components/domain/workflow/workflow-category-badge.js +5 -0
  160. package/dist/components/domain/workflow/workflow-diagram.js +5 -0
  161. package/dist/components/domain/workflow/workflow-status-badge.js +5 -0
  162. package/dist/components/domain/workflow/workflow-stepper.js +4 -0
  163. package/dist/components/{alert.d.ts → feedback/alert.d.ts} +1 -1
  164. package/dist/components/feedback/alert.js +4 -0
  165. package/dist/components/feedback/progress.js +4 -0
  166. package/dist/components/feedback/skeleton.js +4 -0
  167. package/dist/components/{button.d.ts → inputs/button.d.ts} +2 -2
  168. package/dist/components/inputs/button.js +4 -0
  169. package/dist/components/inputs/checkbox.js +4 -0
  170. package/dist/components/inputs/color-picker.js +9 -0
  171. package/dist/components/inputs/combobox.js +8 -0
  172. package/dist/components/{date-picker.d.ts → inputs/date-picker.d.ts} +2 -2
  173. package/dist/components/{date-picker.js → inputs/date-picker.js} +15 -8
  174. package/dist/components/inputs/date-picker.js.map +1 -0
  175. package/dist/components/inputs/file-upload.js +5 -0
  176. package/dist/components/{form.js → inputs/form.js} +2 -2
  177. package/dist/components/inputs/form.js.map +1 -0
  178. package/dist/components/inputs/input-otp.js +4 -0
  179. package/dist/components/inputs/input.d.ts +75 -0
  180. package/dist/components/inputs/input.js +6 -0
  181. package/dist/components/inputs/label.js +4 -0
  182. package/dist/components/{password-input.d.ts → inputs/password-input.d.ts} +2 -0
  183. package/dist/components/inputs/password-input.js +7 -0
  184. package/dist/components/inputs/radio-group.js +4 -0
  185. package/dist/components/inputs/rating.js +4 -0
  186. package/dist/components/{select.js → inputs/select.js} +2 -2
  187. package/dist/components/inputs/slider.js +4 -0
  188. package/dist/components/inputs/slug-input.js +8 -0
  189. package/dist/components/inputs/switch.js +4 -0
  190. package/dist/components/inputs/tag-input.js +5 -0
  191. package/dist/components/inputs/textarea.d.ts +67 -0
  192. package/dist/components/inputs/textarea.js +6 -0
  193. package/dist/{chunk-6DIDQ4TB.js → components/inputs/time-picker.js} +9 -7
  194. package/dist/components/inputs/time-picker.js.map +1 -0
  195. package/dist/components/inputs/translatable-field.d.ts +51 -0
  196. package/dist/components/inputs/translatable-field.js +4 -0
  197. package/dist/components/inputs/translatable-field.js.map +1 -0
  198. package/dist/components/layout/page-container.d.ts +96 -0
  199. package/dist/components/layout/page-container.js +5 -0
  200. package/dist/components/layout/page-container.js.map +1 -0
  201. package/dist/components/{breadcrumb.js → navigation/breadcrumb.js} +2 -2
  202. package/dist/components/{command.d.ts → navigation/command.d.ts} +1 -1
  203. package/dist/components/{command.js → navigation/command.js} +3 -3
  204. package/dist/components/{context-menu.js → navigation/context-menu.js} +2 -2
  205. package/dist/components/{dropdown-menu.js → navigation/dropdown-menu.js} +2 -2
  206. package/dist/components/{menubar.js → navigation/menubar.js} +2 -2
  207. package/dist/components/{navigation-menu.js → navigation/navigation-menu.js} +2 -2
  208. package/dist/components/{pagination.d.ts → navigation/pagination.d.ts} +2 -2
  209. package/dist/components/{pagination.js → navigation/pagination.js} +3 -3
  210. package/dist/components/navigation/tabs.js +4 -0
  211. package/dist/components/{alert-dialog.js → overlay/alert-dialog.js} +3 -3
  212. package/dist/components/{dialog.js → overlay/dialog.js} +2 -2
  213. package/dist/components/{drawer.js → overlay/drawer.js} +2 -2
  214. package/dist/components/{hover-card.js → overlay/hover-card.js} +2 -2
  215. package/dist/components/overlay/popover.js +4 -0
  216. package/dist/components/overlay/sheet.js +4 -0
  217. package/dist/components/overlay/sonner.js +3 -0
  218. package/dist/components/overlay/tooltip.js +4 -0
  219. package/dist/index.d.ts +84 -83
  220. package/dist/index.js +62 -60
  221. package/dist/providers/ui-provider.d.ts +96 -0
  222. package/dist/providers/ui-provider.js +3 -0
  223. package/dist/providers/ui-provider.js.map +1 -0
  224. package/package.json +13 -8
  225. package/dist/chunk-2C2HRGM7.js.map +0 -1
  226. package/dist/chunk-2TUWDXAC.js.map +0 -1
  227. package/dist/chunk-34ARZSNP.js.map +0 -1
  228. package/dist/chunk-35DNN46W.js.map +0 -1
  229. package/dist/chunk-35U6QG4P.js.map +0 -1
  230. package/dist/chunk-3EOHW4QN.js.map +0 -1
  231. package/dist/chunk-3VU56V66.js +0 -41
  232. package/dist/chunk-3VU56V66.js.map +0 -1
  233. package/dist/chunk-55E7D2HR.js.map +0 -1
  234. package/dist/chunk-67YUL2ZS.js.map +0 -1
  235. package/dist/chunk-6DIDQ4TB.js.map +0 -1
  236. package/dist/chunk-6GWVQB3Q.js.map +0 -1
  237. package/dist/chunk-75WZR6HF.js.map +0 -1
  238. package/dist/chunk-7IRLBU2I.js.map +0 -1
  239. package/dist/chunk-7RMTPT6O.js.map +0 -1
  240. package/dist/chunk-7XH3MGBR.js.map +0 -1
  241. package/dist/chunk-A3BB5ZOC.js.map +0 -1
  242. package/dist/chunk-BAQWGQJG.js.map +0 -1
  243. package/dist/chunk-BRSM3SZP.js.map +0 -1
  244. package/dist/chunk-C34KSTWA.js.map +0 -1
  245. package/dist/chunk-C5NZAOA7.js.map +0 -1
  246. package/dist/chunk-CUZR4JWM.js.map +0 -1
  247. package/dist/chunk-EWBCV7VA.js.map +0 -1
  248. package/dist/chunk-F2ZJLKDP.js.map +0 -1
  249. package/dist/chunk-FLWMT4DB.js.map +0 -1
  250. package/dist/chunk-FRKG7JQY.js.map +0 -1
  251. package/dist/chunk-G7HTZBUR.js.map +0 -1
  252. package/dist/chunk-IAWKX5W4.js.map +0 -1
  253. package/dist/chunk-INLM7UJC.js.map +0 -1
  254. package/dist/chunk-JAJMM32I.js.map +0 -1
  255. package/dist/chunk-JJSVA3TH.js.map +0 -1
  256. package/dist/chunk-JLTBUACL.js.map +0 -1
  257. package/dist/chunk-JRU2QX7T.js.map +0 -1
  258. package/dist/chunk-JXGRW2MR.js.map +0 -1
  259. package/dist/chunk-LMT327XH.js.map +0 -1
  260. package/dist/chunk-LTTNCAAA.js.map +0 -1
  261. package/dist/chunk-MJLFJPUG.js.map +0 -1
  262. package/dist/chunk-MZ2P566X.js.map +0 -1
  263. package/dist/chunk-N47H4MHX.js.map +0 -1
  264. package/dist/chunk-NNJTKHCE.js.map +0 -1
  265. package/dist/chunk-NPL2R5LD.js.map +0 -1
  266. package/dist/chunk-NU56GKGM.js.map +0 -1
  267. package/dist/chunk-P3M5TZD2.js.map +0 -1
  268. package/dist/chunk-PGWNOZDX.js.map +0 -1
  269. package/dist/chunk-QB3UWRZH.js.map +0 -1
  270. package/dist/chunk-R2CDE5DO.js.map +0 -1
  271. package/dist/chunk-RQNZDWY3.js.map +0 -1
  272. package/dist/chunk-S6PDRGR5.js.map +0 -1
  273. package/dist/chunk-TGYQ3AKH.js.map +0 -1
  274. package/dist/chunk-TJMK2KBE.js.map +0 -1
  275. package/dist/chunk-USIHM7FV.js.map +0 -1
  276. package/dist/chunk-VVYSAGB3.js.map +0 -1
  277. package/dist/chunk-WD5KZE25.js +0 -25
  278. package/dist/chunk-WD5KZE25.js.map +0 -1
  279. package/dist/chunk-WL4ZO2H3.js.map +0 -1
  280. package/dist/chunk-WS6E7HBT.js.map +0 -1
  281. package/dist/chunk-XOJJBNDX.js.map +0 -1
  282. package/dist/chunk-YBMEQZX7.js.map +0 -1
  283. package/dist/chunk-Z2QAABLM.js.map +0 -1
  284. package/dist/chunk-ZHEKDP5X.js.map +0 -1
  285. package/dist/chunk-ZPMXRW2A.js.map +0 -1
  286. package/dist/chunk-ZYEGBF7G.js.map +0 -1
  287. package/dist/components/accordion.js +0 -4
  288. package/dist/components/alert.js +0 -4
  289. package/dist/components/aspect-ratio.js +0 -3
  290. package/dist/components/avatar.js +0 -4
  291. package/dist/components/badge.js +0 -4
  292. package/dist/components/button.js +0 -4
  293. package/dist/components/calendar-category-badge.js +0 -5
  294. package/dist/components/calendar-event-chip.js.map +0 -1
  295. package/dist/components/calendar-event-sheet.js.map +0 -1
  296. package/dist/components/calendar-mini.js.map +0 -1
  297. package/dist/components/calendar-toolbar.js.map +0 -1
  298. package/dist/components/calendar.js +0 -5
  299. package/dist/components/card.js +0 -4
  300. package/dist/components/carousel.js +0 -5
  301. package/dist/components/chart.js.map +0 -1
  302. package/dist/components/checkbox.js +0 -4
  303. package/dist/components/color-picker.js +0 -7
  304. package/dist/components/combobox.js +0 -8
  305. package/dist/components/date-picker.js.map +0 -1
  306. package/dist/components/file-upload.js +0 -5
  307. package/dist/components/form.js.map +0 -1
  308. package/dist/components/input-otp.js +0 -4
  309. package/dist/components/input.d.ts +0 -38
  310. package/dist/components/input.js +0 -4
  311. package/dist/components/label.js +0 -4
  312. package/dist/components/password-input.js +0 -5
  313. package/dist/components/permission-grid.js +0 -5
  314. package/dist/components/popover.js +0 -4
  315. package/dist/components/progress.js +0 -4
  316. package/dist/components/radio-group.js +0 -4
  317. package/dist/components/rating.js +0 -4
  318. package/dist/components/resizable.js +0 -4
  319. package/dist/components/scope-tree.js +0 -5
  320. package/dist/components/scope-type-badge.js +0 -5
  321. package/dist/components/scroll-area.js +0 -4
  322. package/dist/components/separator.js +0 -4
  323. package/dist/components/sheet.js +0 -4
  324. package/dist/components/skeleton.js +0 -4
  325. package/dist/components/slider.js +0 -4
  326. package/dist/components/slug-input.js +0 -6
  327. package/dist/components/sonner.js +0 -3
  328. package/dist/components/stage-type-badge.js +0 -5
  329. package/dist/components/switch.js +0 -4
  330. package/dist/components/table.js +0 -4
  331. package/dist/components/tabs.js +0 -4
  332. package/dist/components/tag-input.js +0 -5
  333. package/dist/components/textarea.d.ts +0 -21
  334. package/dist/components/textarea.js +0 -4
  335. package/dist/components/time-picker.js +0 -8
  336. package/dist/components/time-picker.js.map +0 -1
  337. package/dist/components/toggle-group.js +0 -5
  338. package/dist/components/toggle.js +0 -4
  339. package/dist/components/tooltip.js +0 -4
  340. package/dist/components/workflow-category-badge.js +0 -5
  341. package/dist/components/workflow-diagram.js +0 -5
  342. package/dist/components/workflow-status-badge.js +0 -5
  343. package/dist/components/workflow-stepper.js +0 -4
  344. /package/dist/components/{accordion.d.ts → display/accordion.d.ts} +0 -0
  345. /package/dist/components/{accordion.js.map → display/accordion.js.map} +0 -0
  346. /package/dist/components/{aspect-ratio.d.ts → display/aspect-ratio.d.ts} +0 -0
  347. /package/dist/components/{aspect-ratio.js.map → display/aspect-ratio.js.map} +0 -0
  348. /package/dist/components/{avatar.d.ts → display/avatar.d.ts} +0 -0
  349. /package/dist/components/{avatar.js.map → display/avatar.js.map} +0 -0
  350. /package/dist/components/{badge.js.map → display/badge.js.map} +0 -0
  351. /package/dist/components/{card.d.ts → display/card.d.ts} +0 -0
  352. /package/dist/components/{card.js.map → display/card.js.map} +0 -0
  353. /package/dist/components/{carousel.js.map → display/carousel.js.map} +0 -0
  354. /package/dist/components/{chart.d.ts → display/chart.d.ts} +0 -0
  355. /package/dist/components/{collapsible.d.ts → display/collapsible.d.ts} +0 -0
  356. /package/dist/components/{collapsible.js.map → display/collapsible.js.map} +0 -0
  357. /package/dist/components/{resizable.d.ts → display/resizable.d.ts} +0 -0
  358. /package/dist/components/{resizable.js.map → display/resizable.js.map} +0 -0
  359. /package/dist/components/{scroll-area.d.ts → display/scroll-area.d.ts} +0 -0
  360. /package/dist/components/{scroll-area.js.map → display/scroll-area.js.map} +0 -0
  361. /package/dist/components/{separator.d.ts → display/separator.d.ts} +0 -0
  362. /package/dist/components/{separator.js.map → display/separator.js.map} +0 -0
  363. /package/dist/components/{table.d.ts → display/table.d.ts} +0 -0
  364. /package/dist/components/{table.js.map → display/table.js.map} +0 -0
  365. /package/dist/components/{toggle-group.d.ts → display/toggle-group.d.ts} +0 -0
  366. /package/dist/components/{toggle-group.js.map → display/toggle-group.js.map} +0 -0
  367. /package/dist/components/{toggle.d.ts → display/toggle.d.ts} +0 -0
  368. /package/dist/components/{toggle.js.map → display/toggle.js.map} +0 -0
  369. /package/dist/components/{calendar-category-badge.d.ts → domain/calendar/calendar-category-badge.d.ts} +0 -0
  370. /package/dist/components/{calendar-category-badge.js.map → domain/calendar/calendar-category-badge.js.map} +0 -0
  371. /package/dist/components/{calendar-event-chip.d.ts → domain/calendar/calendar-event-chip.d.ts} +0 -0
  372. /package/dist/components/{calendar.d.ts → domain/calendar/calendar.d.ts} +0 -0
  373. /package/dist/components/{calendar.js.map → domain/calendar/calendar.js.map} +0 -0
  374. /package/dist/components/{permission-grid.d.ts → domain/rbac/permission-grid.d.ts} +0 -0
  375. /package/dist/components/{permission-grid.js.map → domain/rbac/permission-grid.js.map} +0 -0
  376. /package/dist/components/{scope-tree.d.ts → domain/rbac/scope-tree.d.ts} +0 -0
  377. /package/dist/components/{scope-tree.js.map → domain/rbac/scope-tree.js.map} +0 -0
  378. /package/dist/components/{scope-type-badge.d.ts → domain/rbac/scope-type-badge.d.ts} +0 -0
  379. /package/dist/components/{scope-type-badge.js.map → domain/rbac/scope-type-badge.js.map} +0 -0
  380. /package/dist/components/{stage-type-badge.d.ts → domain/workflow/stage-type-badge.d.ts} +0 -0
  381. /package/dist/components/{stage-type-badge.js.map → domain/workflow/stage-type-badge.js.map} +0 -0
  382. /package/dist/components/{workflow-category-badge.d.ts → domain/workflow/workflow-category-badge.d.ts} +0 -0
  383. /package/dist/components/{workflow-category-badge.js.map → domain/workflow/workflow-category-badge.js.map} +0 -0
  384. /package/dist/components/{workflow-diagram.d.ts → domain/workflow/workflow-diagram.d.ts} +0 -0
  385. /package/dist/components/{workflow-diagram.js.map → domain/workflow/workflow-diagram.js.map} +0 -0
  386. /package/dist/components/{workflow-status-badge.d.ts → domain/workflow/workflow-status-badge.d.ts} +0 -0
  387. /package/dist/components/{workflow-status-badge.js.map → domain/workflow/workflow-status-badge.js.map} +0 -0
  388. /package/dist/components/{workflow-stepper.d.ts → domain/workflow/workflow-stepper.d.ts} +0 -0
  389. /package/dist/components/{workflow-stepper.js.map → domain/workflow/workflow-stepper.js.map} +0 -0
  390. /package/dist/components/{alert.js.map → feedback/alert.js.map} +0 -0
  391. /package/dist/components/{progress.d.ts → feedback/progress.d.ts} +0 -0
  392. /package/dist/components/{progress.js.map → feedback/progress.js.map} +0 -0
  393. /package/dist/components/{skeleton.d.ts → feedback/skeleton.d.ts} +0 -0
  394. /package/dist/components/{skeleton.js.map → feedback/skeleton.js.map} +0 -0
  395. /package/dist/components/{button.js.map → inputs/button.js.map} +0 -0
  396. /package/dist/components/{checkbox.d.ts → inputs/checkbox.d.ts} +0 -0
  397. /package/dist/components/{checkbox.js.map → inputs/checkbox.js.map} +0 -0
  398. /package/dist/components/{color-picker.d.ts → inputs/color-picker.d.ts} +0 -0
  399. /package/dist/components/{color-picker.js.map → inputs/color-picker.js.map} +0 -0
  400. /package/dist/components/{combobox.d.ts → inputs/combobox.d.ts} +0 -0
  401. /package/dist/components/{combobox.js.map → inputs/combobox.js.map} +0 -0
  402. /package/dist/components/{file-upload.d.ts → inputs/file-upload.d.ts} +0 -0
  403. /package/dist/components/{file-upload.js.map → inputs/file-upload.js.map} +0 -0
  404. /package/dist/components/{form.d.ts → inputs/form.d.ts} +0 -0
  405. /package/dist/components/{input-otp.d.ts → inputs/input-otp.d.ts} +0 -0
  406. /package/dist/components/{input-otp.js.map → inputs/input-otp.js.map} +0 -0
  407. /package/dist/components/{input.js.map → inputs/input.js.map} +0 -0
  408. /package/dist/components/{label.d.ts → inputs/label.d.ts} +0 -0
  409. /package/dist/components/{label.js.map → inputs/label.js.map} +0 -0
  410. /package/dist/components/{password-input.js.map → inputs/password-input.js.map} +0 -0
  411. /package/dist/components/{radio-group.d.ts → inputs/radio-group.d.ts} +0 -0
  412. /package/dist/components/{radio-group.js.map → inputs/radio-group.js.map} +0 -0
  413. /package/dist/components/{rating.d.ts → inputs/rating.d.ts} +0 -0
  414. /package/dist/components/{rating.js.map → inputs/rating.js.map} +0 -0
  415. /package/dist/components/{select.d.ts → inputs/select.d.ts} +0 -0
  416. /package/dist/components/{select.js.map → inputs/select.js.map} +0 -0
  417. /package/dist/components/{slider.d.ts → inputs/slider.d.ts} +0 -0
  418. /package/dist/components/{slider.js.map → inputs/slider.js.map} +0 -0
  419. /package/dist/components/{slug-input.d.ts → inputs/slug-input.d.ts} +0 -0
  420. /package/dist/components/{slug-input.js.map → inputs/slug-input.js.map} +0 -0
  421. /package/dist/components/{switch.d.ts → inputs/switch.d.ts} +0 -0
  422. /package/dist/components/{switch.js.map → inputs/switch.js.map} +0 -0
  423. /package/dist/components/{tag-input.d.ts → inputs/tag-input.d.ts} +0 -0
  424. /package/dist/components/{tag-input.js.map → inputs/tag-input.js.map} +0 -0
  425. /package/dist/components/{textarea.js.map → inputs/textarea.js.map} +0 -0
  426. /package/dist/components/{time-picker.d.ts → inputs/time-picker.d.ts} +0 -0
  427. /package/dist/components/{breadcrumb.d.ts → navigation/breadcrumb.d.ts} +0 -0
  428. /package/dist/components/{breadcrumb.js.map → navigation/breadcrumb.js.map} +0 -0
  429. /package/dist/components/{command.js.map → navigation/command.js.map} +0 -0
  430. /package/dist/components/{context-menu.d.ts → navigation/context-menu.d.ts} +0 -0
  431. /package/dist/components/{context-menu.js.map → navigation/context-menu.js.map} +0 -0
  432. /package/dist/components/{dropdown-menu.d.ts → navigation/dropdown-menu.d.ts} +0 -0
  433. /package/dist/components/{dropdown-menu.js.map → navigation/dropdown-menu.js.map} +0 -0
  434. /package/dist/components/{menubar.d.ts → navigation/menubar.d.ts} +0 -0
  435. /package/dist/components/{menubar.js.map → navigation/menubar.js.map} +0 -0
  436. /package/dist/components/{navigation-menu.d.ts → navigation/navigation-menu.d.ts} +0 -0
  437. /package/dist/components/{navigation-menu.js.map → navigation/navigation-menu.js.map} +0 -0
  438. /package/dist/components/{pagination.js.map → navigation/pagination.js.map} +0 -0
  439. /package/dist/components/{tabs.d.ts → navigation/tabs.d.ts} +0 -0
  440. /package/dist/components/{tabs.js.map → navigation/tabs.js.map} +0 -0
  441. /package/dist/components/{alert-dialog.d.ts → overlay/alert-dialog.d.ts} +0 -0
  442. /package/dist/components/{alert-dialog.js.map → overlay/alert-dialog.js.map} +0 -0
  443. /package/dist/components/{dialog.d.ts → overlay/dialog.d.ts} +0 -0
  444. /package/dist/components/{dialog.js.map → overlay/dialog.js.map} +0 -0
  445. /package/dist/components/{drawer.d.ts → overlay/drawer.d.ts} +0 -0
  446. /package/dist/components/{drawer.js.map → overlay/drawer.js.map} +0 -0
  447. /package/dist/components/{hover-card.d.ts → overlay/hover-card.d.ts} +0 -0
  448. /package/dist/components/{hover-card.js.map → overlay/hover-card.js.map} +0 -0
  449. /package/dist/components/{popover.d.ts → overlay/popover.d.ts} +0 -0
  450. /package/dist/components/{popover.js.map → overlay/popover.js.map} +0 -0
  451. /package/dist/components/{sheet.d.ts → overlay/sheet.d.ts} +0 -0
  452. /package/dist/components/{sheet.js.map → overlay/sheet.js.map} +0 -0
  453. /package/dist/components/{sonner.d.ts → overlay/sonner.d.ts} +0 -0
  454. /package/dist/components/{sonner.js.map → overlay/sonner.js.map} +0 -0
  455. /package/dist/components/{tooltip.d.ts → overlay/tooltip.d.ts} +0 -0
  456. /package/dist/components/{tooltip.js.map → overlay/tooltip.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/textarea.tsx"],"names":["textareaRest","value","onChange"],"mappings":";;;;;;AAsDA,IAAM,aAAA,GACJ,4cAAA;AAyBF,IAAM,QAAA,GAAiB,KAAA,CAAA,UAAA;AAAA,EACrB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,SAAA,EAAW,YAAA,EAAc,GAAG,MAAK,GAAI,KAAA;AAE7C,IAAA,MAAM,kBAAkB,YAAA,EAAa;AAGrC,IAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,MAAA,MAAM,MAAA,GAAS,yBAAA,CAA0B,YAAA,EAAc,eAAe,CAAA;AAGtE,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,EAAE,KAAA,EAAO,EAAA,EAAI,UAAU,GAAA,EAAK,GAAGA,eAAa,GAAI,IAAA;AACtD,QAAA,uBACE,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,WAAA,EAAU,UAAA;AAAA,YACV,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,YACrC,GAAIA;AAAA;AAAA,SACP;AAAA,MAEJ;AAEA,MAAA,MAAM,EAAE,KAAA,EAAAC,MAAAA,GAAQ,EAAC,EAAG,UAAAC,SAAAA,EAAU,MAAA,EAAQ,GAAGF,aAAAA,EAAa,GAAI,IAAA;AAE1D,MAAA,uBACE,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,MAAA;AAAA,UACA,KAAA,EAAOC,MAAAA;AAAA,UACP,QAAA,EAAUC,cAAa,MAAM;AAAA,UAAC,CAAA,CAAA;AAAA,UAC9B,MAAA;AAAA,UAEC,QAAA,EAAA,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,UAAU,YAAA,EAAc,mBAAA,EAAqB,UAAS,qBAC5E,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,WAAA,EAAU,UAAA;AAAA,cACV,mBAAA,EAAiB,IAAA;AAAA,cACjB,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,cACtC,KAAA,EAAO,WAAA;AAAA,cACP,WAAA,EAAa,uBAAwBF,aAAAA,CAAmE,WAAA;AAAA,cACxG,UAAU,CAAC,CAAA,KAAM,YAAA,CAAa,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC3C,GAAIA,aAAAA;AAAA,cACL,cAAA,EAAc,QAAA,IAAaA,aAAAA,CAAmE,cAAc,CAAA,IAAK;AAAA;AAAA;AACnH;AAAA,OAEJ;AAAA,IAEJ;AAGA,IAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,GAAG,cAAa,GAAI,IAAA;AAC7C,IAAA,uBACE,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,UAAA;AAAA,QACV,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,QACtC,KAAA;AAAA,QACA,QAAA;AAAA,QACC,GAAI;AAAA;AAAA,KACP;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-ZUBW2ERW.js","sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { TranslatableField } from './translatable-field';\nimport { useUILocales, resolveTranslatableConfig } from '../../providers/ui-provider';\nimport type { TranslatableConfig, TranslatableValue } from '../../providers/ui-provider';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\ntype NativeTextareaProps = Omit<React.ComponentProps<'textarea'>, 'value' | 'onChange'>;\n\ninterface StandardTextareaProps extends NativeTextareaProps {\n /** Translatable mode disabled (default). */\n translatable?: never;\n value?: string;\n onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;\n}\n\ninterface TranslatableTextareaProps extends NativeTextareaProps {\n /**\n * Enable locale-switching tabs on this textarea.\n * - `true` — inherit UIProvider's locale config\n * - `object` — override locales/defaultLocale/fallbackLocale per field\n *\n * @example\n * ```tsx\n * // Uses UIProvider config\n * <Textarea translatable value={val} onChange={setVal} />\n *\n * // Custom per-field config\n * <Textarea\n * translatable={{ locales: { en: 'English', vi: 'Tiếng Việt' }, fallbackLocale: 'en' }}\n * value={val}\n * onChange={setVal}\n * />\n * ```\n */\n translatable: TranslatableConfig;\n value?: TranslatableValue;\n onChange?: (value: TranslatableValue) => void;\n /**\n * Per-locale validation errors. Truthy string = that locale is invalid.\n * The active locale's error is forwarded as `aria-invalid` on the textarea;\n * all locale tabs with errors show a red dot indicator.\n *\n * @example `{ en: 'Required', vi: 'Too long (120/100)' }`\n */\n errors?: Partial<Record<string, string>>;\n}\n\nexport type TextareaProps = StandardTextareaProps | TranslatableTextareaProps;\n\n// ─── Base class ───────────────────────────────────────────────────────────────\n\nconst textareaClass =\n \"resize-none border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-input-background px-3 py-2 text-base transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\";\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Multi-line text input with auto-sizing via `field-sizing-content`.\n * Supports translatable mode via the `translatable` prop.\n *\n * @example\n * ```tsx\n * // Standard\n * <Textarea placeholder=\"Enter a description...\" />\n * <Textarea value={content} onChange={(e) => setContent(e.target.value)} />\n *\n * // Translatable — uses UIProvider's locale config\n * <Textarea translatable value={val} onChange={setVal} />\n *\n * // Translatable — custom config\n * <Textarea\n * translatable={{ locales: { en: 'English', vi: 'Tiếng Việt' }, fallbackLocale: 'en' }}\n * value={val}\n * onChange={setVal}\n * />\n * ```\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (props, ref) => {\n const { className, translatable, ...rest } = props as TranslatableTextareaProps & { className?: string };\n\n const providerLocales = useUILocales();\n\n // ── Translatable mode ──────────────────────────────────────────────────\n if (translatable !== undefined) {\n const config = resolveTranslatableConfig(translatable, providerLocales);\n\n // Fallback: if no locale config available, render standard textarea\n if (!config) {\n const { value: _v, onChange: _oc, ...textareaRest } = rest as TranslatableTextareaProps;\n return (\n <textarea\n ref={ref}\n data-slot=\"textarea\"\n className={cn(textareaClass, className)}\n {...(textareaRest as NativeTextareaProps)}\n />\n );\n }\n\n const { value = {}, onChange, errors, ...textareaRest } = rest as TranslatableTextareaProps;\n\n return (\n <TranslatableField\n config={config}\n value={value as TranslatableValue}\n onChange={onChange ?? (() => {})}\n errors={errors}\n >\n {({ value: localeValue, onChange: localeChange, fallbackPlaceholder, hasError }) => (\n <textarea\n ref={ref}\n data-slot=\"textarea\"\n data-translatable\n className={cn(textareaClass, className)}\n value={localeValue}\n placeholder={fallbackPlaceholder ?? (textareaRest as React.TextareaHTMLAttributes<HTMLTextAreaElement>).placeholder}\n onChange={(e) => localeChange(e.target.value)}\n {...(textareaRest as React.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n aria-invalid={hasError || (textareaRest as React.TextareaHTMLAttributes<HTMLTextAreaElement>)['aria-invalid'] || undefined}\n />\n )}\n </TranslatableField>\n );\n }\n\n // ── Standard mode ──────────────────────────────────────────────────────\n const { value, onChange, ...textareaRest } = rest as StandardTextareaProps;\n return (\n <textarea\n ref={ref}\n data-slot=\"textarea\"\n className={cn(textareaClass, className)}\n value={value}\n onChange={onChange}\n {...(textareaRest as NativeTextareaProps)}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"]}
@@ -0,0 +1,4 @@
1
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../../chunk-CECQY5LL.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=accordion.js.map
4
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1,3 @@
1
+ export { AspectRatio } from '../../chunk-ITTPI2Z3.js';
2
+ //# sourceMappingURL=aspect-ratio.js.map
3
+ //# sourceMappingURL=aspect-ratio.js.map
@@ -0,0 +1,4 @@
1
+ export { Avatar, AvatarFallback, AvatarImage } from '../../chunk-FTNPOZGK.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=avatar.js.map
4
+ //# sourceMappingURL=avatar.js.map
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
- import { UIColor } from '../lib/types.js';
5
+ import { UIColor } from '../../lib/types.js';
6
6
 
7
7
  declare const badgeVariants: (props?: ({
8
8
  variant?: "destructive" | "default" | "secondary" | "outline" | "soft" | null | undefined;
@@ -0,0 +1,4 @@
1
+ export { Badge, badgeVariants } from '../../chunk-5SAUUOCN.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=badge.js.map
4
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1,4 @@
1
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../../chunk-DXKFFJIE.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=card.js.map
4
+ //# sourceMappingURL=card.js.map
@@ -1,10 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import useEmblaCarousel from 'embla-carousel-react';
4
- import { Button } from './button.js';
4
+ import { Button } from '../inputs/button.js';
5
5
  import 'class-variance-authority/types';
6
6
  import 'class-variance-authority';
7
- import '../lib/types.js';
7
+ import '../../lib/types.js';
8
8
 
9
9
  type CarouselApi = ReturnType<typeof useEmblaCarousel>[1];
10
10
  type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
@@ -0,0 +1,5 @@
1
+ export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from '../../chunk-5WOCEAZG.js';
2
+ import '../../chunk-BOV3Q2JH.js';
3
+ import '../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=carousel.js.map
5
+ //# sourceMappingURL=carousel.js.map
@@ -1,4 +1,4 @@
1
- import { cn } from '../chunk-DGPY4WP3.js';
1
+ import { cn } from '../../chunk-DGPY4WP3.js';
2
2
  import * as React from 'react';
3
3
  import * as RechartsPrimitive from 'recharts';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/display/chart.tsx"],"names":["config"],"mappings":";;;;;AAMA,IAAM,MAAA,GAAS,EAAE,KAAA,EAAO,EAAA,EAAI,MAAM,OAAA,EAAQ;AA+B1C,IAAM,YAAA,GAAqB,oBAAwC,IAAI,CAAA;AAQvE,SAAS,QAAA,GAAW;AAClB,EAAA,MAAM,OAAA,GAAgB,iBAAW,YAAY,CAAA;AAE7C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,mDAAmD,CAAA;AAAA,EACrE;AAEA,EAAA,OAAO,OAAA;AACT;AAkBA,SAAS,cAAA,CAAe;AAAA,EACtB,EAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAOG;AACD,EAAA,MAAM,WAAiB,KAAA,CAAA,KAAA,EAAM;AAC7B,EAAA,MAAM,UAAU,CAAA,MAAA,EAAS,EAAA,IAAM,SAAS,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,CAAA;AAEzD,EAAA,2BACG,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAE,QAAO,EACrC,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,YAAA,EAAY,OAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,6pBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAI,OAAA,EAAS,MAAA,EAAgB,CAAA;AAAA,wBACzC,GAAA,CAAmB,iBAAA,CAAA,mBAAA,EAAlB,EACE,QAAA,EACH;AAAA;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;AAGA,IAAM,UAAA,GAAa,CAAC,EAAE,EAAA,EAAI,QAAO,KAA2C;AAC1E,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,MAAA;AAAA,IACzC,CAAC,GAAGA,OAAM,CAAA,KAAMA,OAAAA,CAAO,SAASA,OAAAA,CAAO;AAAA,GACzC;AAEA,EAAA,IAAI,CAAC,YAAY,MAAA,EAAQ;AACvB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,uBAAA,EAAyB;AAAA,QACvB,MAAA,EAAQ,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAC1B,GAAA;AAAA,UACC,CAAC,CAAC,KAAA,EAAO,MAAM,CAAA,KAAM;AAAA,EAC/B,MAAM,gBAAgB,EAAE,CAAA;AAAA,EACxB,YACC,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,KAAM;AAC1B,YAAA,MAAM,KAAA,GACJ,UAAA,CAAW,KAAA,GAAQ,KAAsC,KACzD,UAAA,CAAW,KAAA;AACb,YAAA,OAAO,KAAA,GAAQ,CAAA,UAAA,EAAa,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,CAAA,GAAM,IAAA;AAAA,UACjD,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAC;AAAA;AAAA;AAAA,SAGH,CACC,KAAK,IAAI;AAAA;AACd;AAAA,GACF;AAEJ;AAGA,IAAM,YAAA,GAAiC,iBAAA,CAAA;AAYvC,SAAS,mBAAA,CAAoB;AAAA,EAC3B,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,SAAA,GAAY,KAAA;AAAA,EACZ,aAAA,GAAgB,KAAA;AAAA,EAChB,KAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EA0BK;AACH,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,QAAA,EAAS;AAE5B,EAAA,MAAM,YAAA,GAAqB,cAAQ,MAAM;AACvC,IAAA,IAAI,SAAA,IAAa,CAAC,OAAA,EAAS,MAAA,EAAQ;AACjC,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,CAAC,IAAI,CAAA,GAAI,OAAA;AACf,IAAA,MAAM,MAAM,CAAA,EAAG,QAAA,IAAY,MAAM,OAAA,IAAW,IAAA,EAAM,QAAQ,OAAO,CAAA,CAAA;AACjE,IAAA,MAAM,UAAA,GAAa,2BAAA,CAA4B,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAChE,IAAA,MAAM,KAAA,GACJ,CAAC,QAAA,IAAY,OAAO,KAAA,KAAU,QAAA,GAC1B,MAAA,CAAO,KAA4B,CAAA,EAAG,KAAA,IAAS,KAAA,GAC/C,UAAA,EAAY,KAAA;AAElB,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,cAAc,CAAA,EAC7C,QAAA,EAAA,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA,EAChC,CAAA;AAAA,IAEJ;AAEA,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,2BAAQ,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,aAAA,EAAe,cAAc,GAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,EACnE,CAAA,EAAG;AAAA,IACD,KAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,OAAA,EAAS,MAAA,EAAQ;AAC/B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,KAAW,CAAA,IAAK,SAAA,KAAc,KAAA;AAExD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wHAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,CAAC,YAAY,YAAA,GAAe,IAAA;AAAA,wBAC7B,GAAA,CAAC,SAAI,SAAA,EAAU,cAAA,EACZ,kBAAQ,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AAC5B,UAAA,MAAM,MAAM,CAAA,EAAG,OAAA,IAAW,KAAK,IAAA,IAAQ,IAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AAC9D,UAAA,MAAM,UAAA,GAAa,2BAAA,CAA4B,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAChE,UAAA,MAAM,cAAA,GAAiB,KAAA,IAAU,IAAA,CAAK,OAAA,EAAS,QAAmB,IAAA,CAAK,KAAA;AAEvE,UAAA,uBACE,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAW,EAAA;AAAA,gBACT,qGAAA;AAAA,gBACA,cAAc,KAAA,IAAS;AAAA,eACzB;AAAA,cAEC,uBAAa,IAAA,EAAM,KAAA,KAAU,MAAA,IAAa,IAAA,CAAK,OAC9C,SAAA,CAAU,IAAA,CAAK,KAAA,EAAO,IAAA,CAAK,MAAM,IAAA,EAAM,KAAA,EAAO,IAAA,CAAK,OAAO,oBAE1D,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,gBAAA,UAAA,EAAY,uBACX,GAAA,CAAC,UAAA,CAAW,MAAX,EAAgB,CAAA,GAEjB,CAAC,aAAA,oBACC,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,gEAAA;AAAA,sBACA;AAAA,wBACE,eAAe,SAAA,KAAc,KAAA;AAAA,wBAC7B,OAAO,SAAA,KAAc,MAAA;AAAA,wBACrB,mDACE,SAAA,KAAc,QAAA;AAAA,wBAChB,QAAA,EAAU,aAAa,SAAA,KAAc;AAAA;AACvC,qBACF;AAAA,oBACA,KAAA,EACE;AAAA,sBACE,YAAA,EAAc,cAAA;AAAA,sBACd,gBAAA,EAAkB;AAAA;AACpB;AAAA,iBAEJ;AAAA,gCAGJ,IAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,0CAAA;AAAA,sBACA,YAAY,WAAA,GAAc;AAAA,qBAC5B;AAAA,oBAEA,QAAA,EAAA;AAAA,sCAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACZ,QAAA,EAAA;AAAA,wBAAA,SAAA,GAAY,YAAA,GAAe,IAAA;AAAA,4CAC3B,MAAA,EAAA,EAAK,SAAA,EAAU,yBACb,QAAA,EAAA,UAAA,EAAY,KAAA,IAAS,KAAK,IAAA,EAC7B;AAAA,uBAAA,EACF,CAAA;AAAA,sBACC,IAAA,CAAK,yBACJ,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,oDAAA,EACb,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,cAAA,EAAe,EAC7B;AAAA;AAAA;AAAA;AAEJ,eAAA,EACF;AAAA,aAAA;AAAA,YApDG,IAAA,CAAK;AAAA,WAsDZ;AAAA,QAEJ,CAAC,CAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;AAGA,IAAM,WAAA,GAAgC,iBAAA,CAAA;AAStC,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,aAAA,GAAgB,QAAA;AAAA,EAChB;AACF,CAAA,EAYK;AACH,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,QAAA,EAAS;AAE5B,EAAA,IAAI,CAAC,SAAS,MAAA,EAAQ;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wCAAA;AAAA,QACA,aAAA,KAAkB,QAAQ,MAAA,GAAS,MAAA;AAAA,QACnC;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS;AACrB,QAAA,MAAM,GAAA,GAAM,CAAA,EAAG,OAAA,IAAW,IAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AACjD,QAAA,MAAM,UAAA,GAAa,2BAAA,CAA4B,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAEhE,QAAA,uBACE,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,EAAA;AAAA,cACT;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,UAAA,EAAY,QAAQ,CAAC,QAAA,uBACnB,UAAA,CAAW,IAAA,EAAX,EAAgB,CAAA,mBAEjB,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,gCAAA;AAAA,kBACV,KAAA,EAAO;AAAA,oBACL,iBAAiB,IAAA,CAAK;AAAA;AACxB;AAAA,eACF;AAAA,cAED,UAAA,EAAY;AAAA;AAAA,WAAA;AAAA,UAfR,IAAA,CAAK;AAAA,SAgBZ;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH;AAEJ;AAGA,SAAS,2BAAA,CACP,MAAA,EACA,OAAA,EACA,GAAA,EACA;AACA,EAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,IAAA,EAAM;AACnD,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAA,GACJ,SAAA,IAAa,OAAA,IACb,OAAO,OAAA,CAAQ,OAAA,KAAY,QAAA,IAC3B,OAAA,CAAQ,OAAA,KAAY,IAAA,GAChB,OAAA,CAAQ,OAAA,GACR,MAAA;AAEN,EAAA,IAAI,cAAA,GAAyB,GAAA;AAE7B,EAAA,IACE,OAAO,OAAA,IACP,OAAO,OAAA,CAAQ,GAA2B,MAAM,QAAA,EAChD;AACA,IAAA,cAAA,GAAiB,QAAQ,GAA2B,CAAA;AAAA,EACtD,CAAA,MAAA,IACE,kBACA,GAAA,IAAO,cAAA,IACP,OAAO,cAAA,CAAe,GAAkC,MAAM,QAAA,EAC9D;AACA,IAAA,cAAA,GAAiB,eACf,GACF,CAAA;AAAA,EACF;AAEA,EAAA,OAAO,kBAAkB,MAAA,GACrB,MAAA,CAAO,cAAc,CAAA,GACrB,OAAO,GAA0B,CAAA;AACvC","file":"chart.js","sourcesContent":["import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\n/**\n * Configuration object for chart data series. Each key maps to a data series\n * and defines its label, optional icon, and color (either a single color or\n * per-theme colors).\n *\n * @example\n * ```tsx\n * const config: ChartConfig = {\n * revenue: { label: \"Revenue\", color: \"var(--color-blue-500)\" },\n * expenses: { label: \"Expenses\", theme: { light: \"#ef4444\", dark: \"#f87171\" } },\n * };\n * ```\n */\nexport type ChartConfig = {\n [k in string]: {\n /** Display label for this data series. */\n label?: React.ReactNode;\n /** Optional icon component displayed in the legend. */\n icon?: React.ComponentType;\n } & (\n | { /** Single color used across all themes. */ color?: string; theme?: never }\n | { color?: never; /** Per-theme color mapping (light/dark). */ theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\n/**\n * Hook to access the chart configuration from the nearest ChartContainer.\n * Must be used within a {@link ChartContainer}.\n *\n * @throws If used outside of a ChartContainer.\n */\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\n/**\n * Wrapper that provides chart configuration context, injects theme-aware CSS\n * custom properties for data series colors, and renders a Recharts\n * `ResponsiveContainer`.\n *\n * @param config - Chart configuration mapping data keys to labels, icons, and colors.\n *\n * @example\n * ```tsx\n * <ChartContainer config={{ revenue: { label: \"Revenue\", color: \"#3b82f6\" } }}>\n * <BarChart data={data}>\n * <Bar dataKey=\"revenue\" fill=\"var(--color-revenue)\" />\n * </BarChart>\n * </ChartContainer>\n * ```\n */\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Chart configuration mapping data keys to labels, icons, and colors. */\n config: ChartConfig;\n /** Recharts chart element (e.g. BarChart, LineChart). */\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\n/** Injects a `<style>` tag with CSS custom properties for chart colors, scoped to the chart container. */\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/** Re-export of Recharts Tooltip for use with ChartTooltipContent. */\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\n/**\n * Styled tooltip content for use inside `<ChartTooltip content={<ChartTooltipContent />} />`.\n * Renders data series with color indicators, labels from ChartConfig, and formatted values.\n *\n * @param indicator - Shape of the color indicator: `\"dot\"`, `\"line\"`, or `\"dashed\"`.\n * @param hideLabel - Whether to hide the tooltip header label.\n * @param hideIndicator - Whether to hide the color indicator.\n * @param nameKey - Data key to resolve series name from the payload.\n * @param labelKey - Data key to resolve the tooltip header label from config.\n */\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<\"div\"> & {\n active?: boolean;\n payload?: Array<{\n name?: string;\n value?: string | number;\n dataKey?: string;\n color?: string;\n fill?: string;\n payload?: Record<string, unknown>;\n [key: string]: unknown;\n }>;\n label?: string;\n labelClassName?: string;\n labelFormatter?: (label: unknown, payload: Array<Record<string, unknown>>) => React.ReactNode;\n formatter?: (value: unknown, name: string, item: Record<string, unknown>, index: number, payload: unknown) => React.ReactNode;\n color?: string;\n /** Whether to hide the tooltip header label. */\n hideLabel?: boolean;\n /** Whether to hide the color indicator next to each series. */\n hideIndicator?: boolean;\n /** Shape of the color indicator. Defaults to `\"dot\"`. */\n indicator?: \"line\" | \"dot\" | \"dashed\";\n /** Data key used to resolve the series name from payload. */\n nameKey?: string;\n /** Data key used to resolve the header label from config. */\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || (item.payload?.fill as string) || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n/** Re-export of Recharts Legend for use with ChartLegendContent. */\nconst ChartLegend = RechartsPrimitive.Legend;\n\n/**\n * Styled legend content for use inside `<ChartLegend content={<ChartLegendContent />} />`.\n * Renders a horizontal list of series labels with color indicators or custom icons from ChartConfig.\n *\n * @param hideIcon - Whether to hide the color dot / custom icon.\n * @param nameKey - Data key to resolve the series name from payload.\n */\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> & {\n payload?: Array<{\n value?: string;\n dataKey?: string;\n color?: string;\n [key: string]: unknown;\n }>;\n verticalAlign?: \"top\" | \"bottom\" | \"middle\";\n /** Whether to hide the color indicator or custom icon. */\n hideIcon?: boolean;\n /** Data key used to resolve the series name from payload. */\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};"]}
@@ -1,3 +1,3 @@
1
- export { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../chunk-3EOHW4QN.js';
1
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../chunk-WJX6NKKF.js';
2
2
  //# sourceMappingURL=collapsible.js.map
3
3
  //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1,4 @@
1
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '../../chunk-5AGUCELC.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=resizable.js.map
4
+ //# sourceMappingURL=resizable.js.map
@@ -0,0 +1,4 @@
1
+ export { ScrollArea, ScrollBar } from '../../chunk-LUYTKHGS.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=scroll-area.js.map
4
+ //# sourceMappingURL=scroll-area.js.map
@@ -0,0 +1,4 @@
1
+ export { Separator } from '../../chunk-KCUSO3CK.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=separator.js.map
4
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1,4 @@
1
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '../../chunk-RZZH57ZL.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=table.js.map
4
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1,5 @@
1
+ export { ToggleGroup, ToggleGroupItem } from '../../chunk-TPBRGO4D.js';
2
+ import '../../chunk-ORTPKXBI.js';
3
+ import '../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=toggle-group.js.map
5
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1,4 @@
1
+ export { Toggle, toggleVariants } from '../../chunk-ORTPKXBI.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=toggle.js.map
4
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1,5 @@
1
+ export { CalendarCategoryBadge } from '../../../chunk-IXEPDTUE.js';
2
+ import '../../../chunk-5SAUUOCN.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=calendar-category-badge.js.map
5
+ //# sourceMappingURL=calendar-category-badge.js.map
@@ -1,4 +1,4 @@
1
- import { cn } from '../chunk-DGPY4WP3.js';
1
+ import { cn } from '../../../chunk-DGPY4WP3.js';
2
2
  import { format } from 'date-fns';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/domain/calendar/calendar-event-chip.tsx"],"names":[],"mappings":";;;;AAyCO,SAAS,kBAAkB,EAAE,KAAA,EAAO,OAAA,GAAU,KAAA,EAAO,SAAQ,EAA2B;AAC7F,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,MAAM,OAAA,GAAU,KAAK,CAAA;AAAA,MAC9B,SAAA,EAAW,EAAA;AAAA,QACT,wHAAA;AAAA,QACA,UAAU,eAAA,GAAkB;AAAA,OAC9B;AAAA,MACA,KAAA,EAAO;AAAA,QACL,eAAA,EAAiB,CAAA,EAAG,KAAA,CAAM,KAAK,CAAA,EAAA,CAAA;AAAA,QAC/B,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,UAAA,EAAY,CAAA,UAAA,EAAa,KAAA,CAAM,KAAK,CAAA;AAAA,OACtC;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,CAAC,KAAA,CAAM,MAAA,IAAU,CAAC,OAAA,oBACjB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,MAAA,CAAO,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA,EAAE,CAAA;AAAA,QAEjE,KAAA,CAAM;AAAA;AAAA;AAAA,GACT;AAEJ","file":"calendar-event-chip.js","sourcesContent":["import { format } from 'date-fns';\nimport { cn } from '../../../lib/utils';\n\n/** Event data shape required by CalendarEventChip. */\nexport interface CalendarEventChipEvent {\n /** Unique event identifier. */\n id: string;\n /** Display title of the event. */\n title: string;\n /** Event start date/time. */\n start: Date;\n /** Event end date/time. */\n end: Date;\n /** Whether this is an all-day event. When true, time is not displayed. */\n allDay?: boolean;\n /** CSS color string used for the chip background, text, and left border. */\n color: string;\n}\n\nexport interface CalendarEventChipProps {\n /** The event to display. */\n event: CalendarEventChipEvent;\n /** Use compact layout with tighter line-height. Defaults to `false`. */\n compact?: boolean;\n /** Callback when the chip is clicked. */\n onClick?: (event: CalendarEventChipEvent) => void;\n}\n\n/**\n * Small colored chip representing a calendar event. Shows the event title\n * with a colored left border and tinted background. Optionally displays\n * the start time for non-all-day events.\n *\n * @example\n * ```tsx\n * <CalendarEventChip\n * event={{ id: \"1\", title: \"Standup\", start: new Date(), end: new Date(), color: \"#3b82f6\" }}\n * onClick={(e) => openDetail(e.id)}\n * />\n * ```\n */\nexport function CalendarEventChip({ event, compact = false, onClick }: CalendarEventChipProps) {\n return (\n <button\n type=\"button\"\n onClick={() => onClick?.(event)}\n className={cn(\n 'w-full text-left rounded px-1.5 py-0.5 text-xs font-medium truncate transition-opacity hover:opacity-80 cursor-pointer',\n compact ? 'leading-tight' : 'leading-normal'\n )}\n style={{\n backgroundColor: `${event.color}20`,\n color: event.color,\n borderLeft: `2px solid ${event.color}`,\n }}\n >\n {!event.allDay && !compact && (\n <span className=\"opacity-75 mr-1\">{format(event.start, 'HH:mm')}</span>\n )}\n {event.title}\n </button>\n );\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Locale } from 'date-fns';
2
3
 
3
4
  /** Extended event data shape for the detail sheet, including description, location, and attendees. */
4
5
  interface CalendarEventSheetEvent {
@@ -47,6 +48,8 @@ interface CalendarEventSheetProps {
47
48
  categoryStyles?: Record<string, string>;
48
49
  /** Localizable UI labels with English defaults. */
49
50
  labels?: CalendarEventSheetLabels;
51
+ /** date-fns Locale object for formatting dates. Falls back to UIProvider's `dateFnsLocale`. */
52
+ locale?: Locale;
50
53
  }
51
54
  /**
52
55
  * Side sheet that displays full event details including title, category badge,
@@ -63,6 +66,6 @@ interface CalendarEventSheetProps {
63
66
  * />
64
67
  * ```
65
68
  */
66
- declare function CalendarEventSheet({ event, open, onOpenChange, onDelete, categoryLabel, categoryStyles, labels: labelsProp, }: CalendarEventSheetProps): react_jsx_runtime.JSX.Element | null;
69
+ declare function CalendarEventSheet({ event, open, onOpenChange, onDelete, categoryLabel, categoryStyles, labels: labelsProp, locale: localeProp, }: CalendarEventSheetProps): react_jsx_runtime.JSX.Element | null;
67
70
 
68
71
  export { CalendarEventSheet, type CalendarEventSheetEvent, type CalendarEventSheetLabels, type CalendarEventSheetProps };
@@ -1,9 +1,10 @@
1
- import { Sheet, SheetContent, SheetHeader, SheetTitle } from '../chunk-JLTBUACL.js';
2
- import { CalendarCategoryBadge } from '../chunk-JAJMM32I.js';
3
- import { Separator } from '../chunk-PGWNOZDX.js';
4
- import { Button } from '../chunk-55E7D2HR.js';
5
- import '../chunk-A3BB5ZOC.js';
6
- import '../chunk-DGPY4WP3.js';
1
+ import { Sheet, SheetContent, SheetHeader, SheetTitle } from '../../../chunk-VOLR236J.js';
2
+ import { useDateFnsLocale } from '../../../chunk-VPTIRPZW.js';
3
+ import { Separator } from '../../../chunk-KCUSO3CK.js';
4
+ import { CalendarCategoryBadge } from '../../../chunk-IXEPDTUE.js';
5
+ import '../../../chunk-5SAUUOCN.js';
6
+ import { Button } from '../../../chunk-BOV3Q2JH.js';
7
+ import '../../../chunk-DGPY4WP3.js';
7
8
  import { format } from 'date-fns';
8
9
  import { Clock, MapPin, Users, Trash2 } from 'lucide-react';
9
10
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -20,9 +21,12 @@ function CalendarEventSheet({
20
21
  onDelete,
21
22
  categoryLabel,
22
23
  categoryStyles,
23
- labels: labelsProp
24
+ labels: labelsProp,
25
+ locale: localeProp
24
26
  }) {
25
27
  const labels = { ...defaultLabels, ...labelsProp };
28
+ const contextLocale = useDateFnsLocale();
29
+ const locale = localeProp ?? contextLocale;
26
30
  if (!event) return null;
27
31
  const timeDisplay = event.allDay ? labels.allDay : `${format(event.start, "HH:mm")} - ${format(event.end, "HH:mm")}`;
28
32
  return /* @__PURE__ */ jsx(Sheet, { open, onOpenChange, children: /* @__PURE__ */ jsxs(SheetContent, { className: "sm:max-w-md", children: [
@@ -42,7 +46,7 @@ function CalendarEventSheet({
42
46
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 text-sm", children: [
43
47
  /* @__PURE__ */ jsx(Clock, { className: "w-4 h-4 text-muted-foreground flex-shrink-0" }),
44
48
  /* @__PURE__ */ jsxs("div", { children: [
45
- /* @__PURE__ */ jsx("p", { className: "font-medium", children: format(event.start, "EEEE, MMMM d, yyyy") }),
49
+ /* @__PURE__ */ jsx("p", { className: "font-medium", children: format(event.start, "EEEE, MMMM d, yyyy", locale ? { locale } : void 0) }),
46
50
  /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: timeDisplay })
47
51
  ] })
48
52
  ] }),
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/domain/calendar/calendar-event-sheet.tsx"],"names":[],"mappings":"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","file":"calendar-event-sheet.js","sourcesContent":["import { format } from 'date-fns';\nimport type { Locale } from 'date-fns';\nimport { Clock, MapPin, Users, Trash2 } from 'lucide-react';\nimport { useDateFnsLocale } from '../../../providers/ui-provider';\nimport { Sheet, SheetContent, SheetHeader, SheetTitle } from '../../overlay/sheet';\nimport { Button } from '../../inputs/button';\nimport { Separator } from '../../display/separator';\nimport { CalendarCategoryBadge } from './calendar-category-badge';\n\n/** Extended event data shape for the detail sheet, including description, location, and attendees. */\nexport interface CalendarEventSheetEvent {\n /** Unique event identifier. */\n id: string;\n /** Display title of the event. */\n title: string;\n /** Optional long description or notes for the event. */\n description?: string;\n /** Event start date/time. */\n start: Date;\n /** Event end date/time. */\n end: Date;\n /** Whether this is an all-day event. */\n allDay?: boolean;\n /** CSS color string for the event. */\n color: string;\n /** Category key (e.g. \"meeting\", \"deadline\") used by CalendarCategoryBadge. */\n category: string;\n /** Optional location string. */\n location?: string;\n /** Optional list of attendee email addresses. */\n attendees?: string[];\n}\n\n/** Localizable labels for the event detail sheet. All have English defaults. */\nexport interface CalendarEventSheetLabels {\n /** Text displayed for all-day events instead of a time range. */\n allDay?: string;\n /** Heading text for the attendees section. */\n attendees?: string;\n /** Label for the delete button. */\n delete?: string;\n}\n\nconst defaultLabels: Required<CalendarEventSheetLabels> = {\n allDay: 'All Day',\n attendees: 'Attendees',\n delete: 'Delete',\n};\n\nexport interface CalendarEventSheetProps {\n /** The event to display, or `null` to render nothing. */\n event: CalendarEventSheetEvent | null;\n /** Whether the sheet is open. */\n open: boolean;\n /** Callback to toggle the sheet open state. */\n onOpenChange: (open: boolean) => void;\n /** Optional callback when the delete button is clicked. Receives the event id. */\n onDelete?: (id: string) => void;\n /** Override display label for the category badge. */\n categoryLabel?: string;\n /** Custom className styles per category key for the CalendarCategoryBadge. */\n categoryStyles?: Record<string, string>;\n /** Localizable UI labels with English defaults. */\n labels?: CalendarEventSheetLabels;\n /** date-fns Locale object for formatting dates. Falls back to UIProvider's `dateFnsLocale`. */\n locale?: Locale;\n}\n\n/**\n * Side sheet that displays full event details including title, category badge,\n * description, date/time, location, attendees, and a delete action.\n * Built on top of the Sheet component.\n *\n * @example\n * ```tsx\n * <CalendarEventSheet\n * event={selectedEvent}\n * open={sheetOpen}\n * onOpenChange={setSheetOpen}\n * onDelete={(id) => removeEvent(id)}\n * />\n * ```\n */\nexport function CalendarEventSheet({\n event,\n open,\n onOpenChange,\n onDelete,\n categoryLabel,\n categoryStyles,\n labels: labelsProp,\n locale: localeProp,\n}: CalendarEventSheetProps) {\n const labels = { ...defaultLabels, ...labelsProp };\n const contextLocale = useDateFnsLocale() as Locale | undefined;\n const locale = localeProp ?? contextLocale;\n\n if (!event) return null;\n\n const timeDisplay = event.allDay\n ? labels.allDay\n : `${format(event.start, 'HH:mm')} - ${format(event.end, 'HH:mm')}`;\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"sm:max-w-md\">\n <SheetHeader>\n <SheetTitle>{event.title}</SheetTitle>\n </SheetHeader>\n <div className=\"mt-4 space-y-4\">\n <CalendarCategoryBadge\n category={event.category}\n label={categoryLabel}\n styles={categoryStyles}\n />\n\n {event.description && (\n <p className=\"text-sm text-muted-foreground\">{event.description}</p>\n )}\n\n <Separator />\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-3 text-sm\">\n <Clock className=\"w-4 h-4 text-muted-foreground flex-shrink-0\" />\n <div>\n <p className=\"font-medium\">{format(event.start, 'EEEE, MMMM d, yyyy', locale ? { locale } : undefined)}</p>\n <p className=\"text-muted-foreground\">{timeDisplay}</p>\n </div>\n </div>\n\n {event.location && (\n <div className=\"flex items-center gap-3 text-sm\">\n <MapPin className=\"w-4 h-4 text-muted-foreground flex-shrink-0\" />\n <span>{event.location}</span>\n </div>\n )}\n\n {event.attendees && event.attendees.length > 0 && (\n <div className=\"flex items-start gap-3 text-sm\">\n <Users className=\"w-4 h-4 text-muted-foreground flex-shrink-0 mt-0.5\" />\n <div>\n <p className=\"font-medium mb-1\">{labels.attendees}</p>\n <div className=\"space-y-1\">\n {event.attendees.map(email => (\n <p key={email} className=\"text-muted-foreground\">{email}</p>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n\n <Separator />\n\n <div className=\"flex justify-end\">\n <Button\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => {\n onDelete?.(event.id);\n onOpenChange(false);\n }}\n >\n <Trash2 className=\"w-4 h-4\" />\n {labels.delete}\n </Button>\n </div>\n </div>\n </SheetContent>\n </Sheet>\n );\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Locale } from 'date-fns';
2
3
 
3
4
  /** A category that can be toggled on/off in the mini calendar's filter section. */
4
5
  interface CalendarCategory {
@@ -43,6 +44,8 @@ interface CalendarMiniProps {
43
44
  onToggleCategory?: (key: string) => void;
44
45
  /** Localizable UI labels with English defaults. */
45
46
  labels?: CalendarMiniLabels;
47
+ /** date-fns Locale object for formatting the month/year header. Falls back to UIProvider's `dateFnsLocale`. */
48
+ locale?: Locale;
46
49
  }
47
50
  /**
48
51
  * Compact month calendar with optional category filters. Designed for sidebar
@@ -60,6 +63,6 @@ interface CalendarMiniProps {
60
63
  * />
61
64
  * ```
62
65
  */
63
- declare function CalendarMini({ currentDate, selectedDate, onSelectDate, categories, enabledCategories, onToggleCategory, labels: labelsProp, }: CalendarMiniProps): react_jsx_runtime.JSX.Element;
66
+ declare function CalendarMini({ currentDate, selectedDate, onSelectDate, categories, enabledCategories, onToggleCategory, labels: labelsProp, locale: localeProp, }: CalendarMiniProps): react_jsx_runtime.JSX.Element;
64
67
 
65
68
  export { type CalendarCategory, CalendarMini, type CalendarMiniLabels, type CalendarMiniProps };
@@ -1,6 +1,7 @@
1
- import { Checkbox } from '../chunk-WL4ZO2H3.js';
2
- import { Separator } from '../chunk-PGWNOZDX.js';
3
- import { cn } from '../chunk-DGPY4WP3.js';
1
+ import { useDateFnsLocale } from '../../../chunk-VPTIRPZW.js';
2
+ import { Checkbox } from '../../../chunk-W477ZR6B.js';
3
+ import { Separator } from '../../../chunk-KCUSO3CK.js';
4
+ import { cn } from '../../../chunk-DGPY4WP3.js';
4
5
  import { useMemo } from 'react';
5
6
  import { startOfMonth, endOfMonth, startOfWeek, endOfWeek, eachDayOfInterval, format, isSameMonth, isSameDay, isToday } from 'date-fns';
6
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -22,9 +23,12 @@ function CalendarMini({
22
23
  categories,
23
24
  enabledCategories,
24
25
  onToggleCategory,
25
- labels: labelsProp
26
+ labels: labelsProp,
27
+ locale: localeProp
26
28
  }) {
27
29
  const labels = { ...defaultLabels, ...labelsProp };
30
+ const contextLocale = useDateFnsLocale();
31
+ const locale = localeProp ?? contextLocale;
28
32
  const days = useMemo(() => {
29
33
  const monthStart = startOfMonth(currentDate);
30
34
  const monthEnd = endOfMonth(currentDate);
@@ -35,7 +39,7 @@ function CalendarMini({
35
39
  const weekDays = [labels.sun, labels.mon, labels.tue, labels.wed, labels.thu, labels.fri, labels.sat];
36
40
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
37
41
  /* @__PURE__ */ jsxs("div", { children: [
38
- /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold mb-2", children: format(currentDate, "MMMM yyyy") }),
42
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold mb-2", children: format(currentDate, "MMMM yyyy", locale ? { locale } : void 0) }),
39
43
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-7 gap-0", children: [
40
44
  weekDays.map((day) => /* @__PURE__ */ jsx("div", { className: "text-center text-[10px] font-medium text-muted-foreground py-1", children: day }, day)),
41
45
  days.map((day) => {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/domain/calendar/calendar-mini.tsx"],"names":[],"mappings":"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","file":"calendar-mini.js","sourcesContent":["import { useMemo } from 'react';\nimport {\n startOfMonth, endOfMonth, startOfWeek, endOfWeek,\n eachDayOfInterval, isSameMonth, isSameDay, isToday, format,\n} from 'date-fns';\nimport type { Locale } from 'date-fns';\nimport { cn } from '../../../lib/utils';\nimport { useDateFnsLocale } from '../../../providers/ui-provider';\nimport { Checkbox } from '../../inputs/checkbox';\nimport { Separator } from '../../display/separator';\n\n/** A category that can be toggled on/off in the mini calendar's filter section. */\nexport interface CalendarCategory {\n /** Unique key for this category. */\n key: string;\n /** CSS color string used for the category dot. */\n color: string;\n /** Display label for the category. */\n label: string;\n}\n\n/** Localizable labels for the mini calendar. All have English defaults. */\nexport interface CalendarMiniLabels {\n /** Label for Sunday column header. */\n sun?: string;\n /** Label for Monday column header. */\n mon?: string;\n /** Label for Tuesday column header. */\n tue?: string;\n /** Label for Wednesday column header. */\n wed?: string;\n /** Label for Thursday column header. */\n thu?: string;\n /** Label for Friday column header. */\n fri?: string;\n /** Label for Saturday column header. */\n sat?: string;\n /** Heading text for the categories filter section. */\n categories?: string;\n}\n\nconst defaultLabels: Required<CalendarMiniLabels> = {\n sun: 'Sun', mon: 'Mon', tue: 'Tue', wed: 'Wed', thu: 'Thu', fri: 'Fri', sat: 'Sat',\n categories: 'Categories',\n};\n\nexport interface CalendarMiniProps {\n /** The month to display (any date within the target month). */\n currentDate: Date;\n /** The currently selected date, highlighted with primary color. */\n selectedDate: Date;\n /** Callback when a day cell is clicked. */\n onSelectDate: (date: Date) => void;\n /** Optional list of event categories for the filter section. */\n categories?: CalendarCategory[];\n /** Keys of currently enabled categories. */\n enabledCategories?: string[];\n /** Callback when a category checkbox is toggled. */\n onToggleCategory?: (key: string) => void;\n /** Localizable UI labels with English defaults. */\n labels?: CalendarMiniLabels;\n /** date-fns Locale object for formatting the month/year header. Falls back to UIProvider's `dateFnsLocale`. */\n locale?: Locale;\n}\n\n/**\n * Compact month calendar with optional category filters. Designed for sidebar\n * placement in calendar views. Locale-agnostic via the `labels` prop.\n *\n * @example\n * ```tsx\n * <CalendarMini\n * currentDate={new Date()}\n * selectedDate={selectedDate}\n * onSelectDate={setSelectedDate}\n * categories={[{ key: \"meeting\", color: \"#3b82f6\", label: \"Meeting\" }]}\n * enabledCategories={[\"meeting\"]}\n * onToggleCategory={(key) => toggle(key)}\n * />\n * ```\n */\nexport function CalendarMini({\n currentDate,\n selectedDate,\n onSelectDate,\n categories,\n enabledCategories,\n onToggleCategory,\n labels: labelsProp,\n locale: localeProp,\n}: CalendarMiniProps) {\n const labels = { ...defaultLabels, ...labelsProp };\n const contextLocale = useDateFnsLocale() as Locale | undefined;\n const locale = localeProp ?? contextLocale;\n\n const days = useMemo(() => {\n const monthStart = startOfMonth(currentDate);\n const monthEnd = endOfMonth(currentDate);\n const calStart = startOfWeek(monthStart, { weekStartsOn: 0 });\n const calEnd = endOfWeek(monthEnd, { weekStartsOn: 0 });\n return eachDayOfInterval({ start: calStart, end: calEnd });\n }, [currentDate]);\n\n const weekDays = [labels.sun, labels.mon, labels.tue, labels.wed, labels.thu, labels.fri, labels.sat];\n\n return (\n <div className=\"space-y-4\">\n {/* Mini calendar */}\n <div>\n <p className=\"text-sm font-semibold mb-2\">{format(currentDate, 'MMMM yyyy', locale ? { locale } : undefined)}</p>\n <div className=\"grid grid-cols-7 gap-0\">\n {weekDays.map(day => (\n <div key={day} className=\"text-center text-[10px] font-medium text-muted-foreground py-1\">\n {day}\n </div>\n ))}\n {days.map(day => {\n const inMonth = isSameMonth(day, currentDate);\n const selected = isSameDay(day, selectedDate);\n const today = isToday(day);\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n onClick={() => onSelectDate(day)}\n className={cn(\n 'w-7 h-7 text-[11px] rounded-full flex items-center justify-center transition-colors',\n !inMonth && 'text-muted-foreground/40',\n inMonth && !selected && 'hover:bg-accent',\n selected && 'bg-primary text-primary-foreground',\n today && !selected && 'font-bold text-primary',\n )}\n >\n {format(day, 'd')}\n </button>\n );\n })}\n </div>\n </div>\n\n {categories && categories.length > 0 && (\n <>\n <Separator />\n {/* Category filters */}\n <div>\n <p className=\"text-sm font-semibold mb-2\">{labels.categories}</p>\n <div className=\"space-y-1.5\">\n {categories.map(cat => (\n <label\n key={cat.key}\n className=\"flex items-center gap-2 py-1 px-1 rounded hover:bg-accent transition-colors cursor-pointer\"\n >\n <Checkbox\n checked={enabledCategories?.includes(cat.key) ?? false}\n onCheckedChange={() => onToggleCategory?.(cat.key)}\n />\n <div className=\"w-2.5 h-2.5 rounded-full\" style={{ backgroundColor: cat.color }} />\n <span className=\"text-sm\">{cat.label}</span>\n </label>\n ))}\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Locale } from 'date-fns';
2
3
 
3
4
  /** Supported calendar view modes. */
4
5
  type CalendarView = 'month' | 'week' | 'day';
@@ -34,6 +35,8 @@ interface CalendarToolbarProps {
34
35
  labels?: CalendarToolbarLabels;
35
36
  /** date-fns format string for the title. Defaults to `"MMMM yyyy"` or `"EEEE, MMMM d, yyyy"` for day view. */
36
37
  titleFormat?: string;
38
+ /** date-fns Locale object for formatting the title. Falls back to UIProvider's `dateFnsLocale`. */
39
+ locale?: Locale;
37
40
  }
38
41
  /**
39
42
  * Toolbar for calendar views with navigation controls (prev/next/today),
@@ -53,6 +56,6 @@ interface CalendarToolbarProps {
53
56
  * />
54
57
  * ```
55
58
  */
56
- declare function CalendarToolbar({ currentDate, view, onViewChange, onPrev, onNext, onToday, onCreateEvent, labels: labelsProp, titleFormat: titleFormatProp, }: CalendarToolbarProps): react_jsx_runtime.JSX.Element;
59
+ declare function CalendarToolbar({ currentDate, view, onViewChange, onPrev, onNext, onToday, onCreateEvent, labels: labelsProp, titleFormat: titleFormatProp, locale: localeProp, }: CalendarToolbarProps): react_jsx_runtime.JSX.Element;
57
60
 
58
61
  export { CalendarToolbar, type CalendarToolbarLabels, type CalendarToolbarProps, type CalendarView };
@@ -1,7 +1,8 @@
1
- import { ToggleGroup, ToggleGroupItem } from '../chunk-ZPMXRW2A.js';
2
- import '../chunk-NU56GKGM.js';
3
- import { Button } from '../chunk-55E7D2HR.js';
4
- import '../chunk-DGPY4WP3.js';
1
+ import { useDateFnsLocale } from '../../../chunk-VPTIRPZW.js';
2
+ import { ToggleGroup, ToggleGroupItem } from '../../../chunk-TPBRGO4D.js';
3
+ import '../../../chunk-ORTPKXBI.js';
4
+ import { Button } from '../../../chunk-BOV3Q2JH.js';
5
+ import '../../../chunk-DGPY4WP3.js';
5
6
  import { format } from 'date-fns';
6
7
  import { ChevronLeft, ChevronRight, Plus } from 'lucide-react';
7
8
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -22,9 +23,12 @@ function CalendarToolbar({
22
23
  onToday,
23
24
  onCreateEvent,
24
25
  labels: labelsProp,
25
- titleFormat: titleFormatProp
26
+ titleFormat: titleFormatProp,
27
+ locale: localeProp
26
28
  }) {
27
29
  const labels = { ...defaultLabels, ...labelsProp };
30
+ const contextLocale = useDateFnsLocale();
31
+ const locale = localeProp ?? contextLocale;
28
32
  const titleFormat = titleFormatProp ?? (view === "day" ? "EEEE, MMMM d, yyyy" : "MMMM yyyy");
29
33
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4 flex-wrap", children: [
30
34
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
@@ -33,7 +37,7 @@ function CalendarToolbar({
33
37
  /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", className: "w-8 h-8", onClick: onPrev, children: /* @__PURE__ */ jsx(ChevronLeft, { className: "w-4 h-4" }) }),
34
38
  /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", className: "w-8 h-8", onClick: onNext, children: /* @__PURE__ */ jsx(ChevronRight, { className: "w-4 h-4" }) })
35
39
  ] }),
36
- /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold", children: format(currentDate, titleFormat) })
40
+ /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold", children: format(currentDate, titleFormat, locale ? { locale } : void 0) })
37
41
  ] }),
38
42
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
39
43
  /* @__PURE__ */ jsxs(ToggleGroup, { type: "single", value: view, onValueChange: (val) => val && onViewChange(val), children: [
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/domain/calendar/calendar-toolbar.tsx"],"names":[],"mappings":"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","file":"calendar-toolbar.js","sourcesContent":["import { format } from 'date-fns';\nimport type { Locale } from 'date-fns';\nimport { ChevronLeft, ChevronRight, Plus } from 'lucide-react';\nimport { useDateFnsLocale } from '../../../providers/ui-provider';\nimport { Button } from '../../inputs/button';\nimport { ToggleGroup, ToggleGroupItem } from '../../display/toggle-group';\n\n/** Supported calendar view modes. */\nexport type CalendarView = 'month' | 'week' | 'day';\n\n/** Localizable labels for the calendar toolbar. All have English defaults. */\nexport interface CalendarToolbarLabels {\n /** Label for the \"Today\" button. */\n today?: string;\n /** Label for the \"Month\" view toggle. */\n month?: string;\n /** Label for the \"Week\" view toggle. */\n week?: string;\n /** Label for the \"Day\" view toggle. */\n day?: string;\n /** Label for the \"Create Event\" button. */\n createEvent?: string;\n}\n\nconst defaultLabels: Required<CalendarToolbarLabels> = {\n today: 'Today',\n month: 'Month',\n week: 'Week',\n day: 'Day',\n createEvent: 'Create Event',\n};\n\nexport interface CalendarToolbarProps {\n /** The date currently being viewed. Used for the title display. */\n currentDate: Date;\n /** The active calendar view mode. */\n view: CalendarView;\n /** Callback when the user switches between month/week/day views. */\n onViewChange: (view: CalendarView) => void;\n /** Navigate to the previous period. */\n onPrev: () => void;\n /** Navigate to the next period. */\n onNext: () => void;\n /** Navigate to today. */\n onToday: () => void;\n /** Optional callback for the \"Create Event\" button. Button is hidden when omitted. */\n onCreateEvent?: () => void;\n /** Localizable UI labels with English defaults. */\n labels?: CalendarToolbarLabels;\n /** date-fns format string for the title. Defaults to `\"MMMM yyyy\"` or `\"EEEE, MMMM d, yyyy\"` for day view. */\n titleFormat?: string;\n /** date-fns Locale object for formatting the title. Falls back to UIProvider's `dateFnsLocale`. */\n locale?: Locale;\n}\n\n/**\n * Toolbar for calendar views with navigation controls (prev/next/today),\n * view mode toggle (month/week/day), and an optional \"Create Event\" button.\n * Locale-agnostic via the `labels` prop.\n *\n * @example\n * ```tsx\n * <CalendarToolbar\n * currentDate={currentDate}\n * view=\"month\"\n * onViewChange={setView}\n * onPrev={handlePrev}\n * onNext={handleNext}\n * onToday={handleToday}\n * onCreateEvent={() => setDialogOpen(true)}\n * />\n * ```\n */\nexport function CalendarToolbar({\n currentDate,\n view,\n onViewChange,\n onPrev,\n onNext,\n onToday,\n onCreateEvent,\n labels: labelsProp,\n titleFormat: titleFormatProp,\n locale: localeProp,\n}: CalendarToolbarProps) {\n const labels = { ...defaultLabels, ...labelsProp };\n const contextLocale = useDateFnsLocale() as Locale | undefined;\n const locale = localeProp ?? contextLocale;\n\n const titleFormat = titleFormatProp ?? (view === 'day'\n ? 'EEEE, MMMM d, yyyy'\n : 'MMMM yyyy');\n\n return (\n <div className=\"flex items-center justify-between gap-4 flex-wrap\">\n <div className=\"flex items-center gap-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={onToday}>\n {labels.today}\n </Button>\n <div className=\"flex items-center\">\n <Button variant=\"ghost\" size=\"icon\" className=\"w-8 h-8\" onClick={onPrev}>\n <ChevronLeft className=\"w-4 h-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"icon\" className=\"w-8 h-8\" onClick={onNext}>\n <ChevronRight className=\"w-4 h-4\" />\n </Button>\n </div>\n <h2 className=\"text-lg font-semibold\">{format(currentDate, titleFormat, locale ? { locale } : undefined)}</h2>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <ToggleGroup type=\"single\" value={view} onValueChange={val => val && onViewChange(val as CalendarView)}>\n <ToggleGroupItem value=\"month\" size=\"sm\">{labels.month}</ToggleGroupItem>\n <ToggleGroupItem value=\"week\" size=\"sm\">{labels.week}</ToggleGroupItem>\n <ToggleGroupItem value=\"day\" size=\"sm\">{labels.day}</ToggleGroupItem>\n </ToggleGroup>\n {onCreateEvent && (\n <Button size=\"sm\" onClick={onCreateEvent}>\n <Plus className=\"w-4 h-4\" />\n {labels.createEvent}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export { Calendar } from '../../../chunk-KJAXKHJ2.js';
2
+ import '../../../chunk-BOV3Q2JH.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=calendar.js.map
5
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1,5 @@
1
+ export { PermissionGrid, buildPermissionId } from '../../../chunk-2BRCVWXR.js';
2
+ import '../../../chunk-W477ZR6B.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=permission-grid.js.map
5
+ //# sourceMappingURL=permission-grid.js.map
@@ -0,0 +1,5 @@
1
+ export { ScopeTree } from '../../../chunk-7KZ7CVRN.js';
2
+ import '../../../chunk-5SAUUOCN.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=scope-tree.js.map
5
+ //# sourceMappingURL=scope-tree.js.map
@@ -0,0 +1,5 @@
1
+ export { ScopeTypeBadge } from '../../../chunk-SAHHVJMQ.js';
2
+ import '../../../chunk-5SAUUOCN.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=scope-type-badge.js.map
5
+ //# sourceMappingURL=scope-type-badge.js.map
@@ -0,0 +1,5 @@
1
+ export { StageTypeBadge } from '../../../chunk-6Z6NRIQ2.js';
2
+ import '../../../chunk-5SAUUOCN.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=stage-type-badge.js.map
5
+ //# sourceMappingURL=stage-type-badge.js.map
@@ -0,0 +1,5 @@
1
+ export { WorkflowCategoryBadge } from '../../../chunk-6W5FYOXQ.js';
2
+ import '../../../chunk-5SAUUOCN.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=workflow-category-badge.js.map
5
+ //# sourceMappingURL=workflow-category-badge.js.map
@@ -0,0 +1,5 @@
1
+ export { WorkflowDiagram } from '../../../chunk-VATNOBZ2.js';
2
+ import '../../../chunk-DXKFFJIE.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=workflow-diagram.js.map
5
+ //# sourceMappingURL=workflow-diagram.js.map
@@ -0,0 +1,5 @@
1
+ export { WorkflowStatusBadge } from '../../../chunk-YU23NDE4.js';
2
+ import '../../../chunk-5SAUUOCN.js';
3
+ import '../../../chunk-DGPY4WP3.js';
4
+ //# sourceMappingURL=workflow-status-badge.js.map
5
+ //# sourceMappingURL=workflow-status-badge.js.map
@@ -0,0 +1,4 @@
1
+ export { WorkflowStepper } from '../../../chunk-HEQVBUJO.js';
2
+ import '../../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=workflow-stepper.js.map
4
+ //# sourceMappingURL=workflow-stepper.js.map
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
- import { UIColor } from '../lib/types.js';
5
+ import { UIColor } from '../../lib/types.js';
6
6
 
7
7
  declare const alertVariants: (props?: ({
8
8
  variant?: "destructive" | "default" | "soft" | null | undefined;
@@ -0,0 +1,4 @@
1
+ export { Alert, AlertDescription, AlertTitle } from '../../chunk-CNS3OMZ7.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=alert.js.map
4
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1,4 @@
1
+ export { Progress } from '../../chunk-NWVMNWOH.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=progress.js.map
4
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1,4 @@
1
+ export { Skeleton } from '../../chunk-GR7T5QHL.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=skeleton.js.map
4
+ //# sourceMappingURL=skeleton.js.map
@@ -1,10 +1,10 @@
1
1
  import * as class_variance_authority_types from 'class-variance-authority/types';
2
2
  import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
- import { UIColor } from '../lib/types.js';
4
+ import { UIColor } from '../../lib/types.js';
5
5
 
6
6
  declare const buttonVariants: (props?: ({
7
- variant?: "link" | "destructive" | "default" | "secondary" | "outline" | "soft" | "ghost" | null | undefined;
7
+ variant?: "destructive" | "default" | "secondary" | "outline" | "soft" | "ghost" | "link" | null | undefined;
8
8
  color?: "primary" | "destructive" | "success" | "warning" | "info" | null | undefined;
9
9
  size?: "default" | "xs" | "sm" | "lg" | "xl" | "icon" | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -0,0 +1,4 @@
1
+ export { Button, buttonVariants } from '../../chunk-BOV3Q2JH.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=button.js.map
4
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1,4 @@
1
+ export { Checkbox } from '../../chunk-W477ZR6B.js';
2
+ import '../../chunk-DGPY4WP3.js';
3
+ //# sourceMappingURL=checkbox.js.map
4
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1,9 @@
1
+ export { ColorPicker } from '../../chunk-V3S2AZKJ.js';
2
+ import '../../chunk-4NBDYSSQ.js';
3
+ import '../../chunk-YU55YBID.js';
4
+ import '../../chunk-7NMNLY7F.js';
5
+ import '../../chunk-VPTIRPZW.js';
6
+ import '../../chunk-BOV3Q2JH.js';
7
+ import '../../chunk-DGPY4WP3.js';
8
+ //# sourceMappingURL=color-picker.js.map
9
+ //# sourceMappingURL=color-picker.js.map