@etus/ui 0.4.0-beta.6 → 0.4.0-beta.8

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 (225) hide show
  1. package/dist/{chunk-2Y7PQ6ZL.js → chunk-237TQKWH.js} +4 -4
  2. package/dist/{chunk-2Y7PQ6ZL.js.map → chunk-237TQKWH.js.map} +1 -1
  3. package/dist/{chunk-KR3IVNQH.js → chunk-2FJJOHHH.js} +16 -10
  4. package/dist/chunk-2FJJOHHH.js.map +1 -0
  5. package/dist/{chunk-W4NC5CU5.js → chunk-2Q4I4VDB.js} +4 -4
  6. package/dist/{chunk-W4NC5CU5.js.map → chunk-2Q4I4VDB.js.map} +1 -1
  7. package/dist/{chunk-2HM5Z2YP.js → chunk-2YWWZEPE.js} +3 -3
  8. package/dist/{chunk-2HM5Z2YP.js.map → chunk-2YWWZEPE.js.map} +1 -1
  9. package/dist/chunk-2Z722V5K.js +231 -0
  10. package/dist/chunk-2Z722V5K.js.map +1 -0
  11. package/dist/chunk-37IIHQP4.js +233 -0
  12. package/dist/chunk-37IIHQP4.js.map +1 -0
  13. package/dist/{chunk-UFRMZ3M6.js → chunk-3JCV72FO.js} +6 -2
  14. package/dist/chunk-3JCV72FO.js.map +1 -0
  15. package/dist/{chunk-HT5XM6XK.js → chunk-43BS3PPX.js} +3 -3
  16. package/dist/{chunk-HT5XM6XK.js.map → chunk-43BS3PPX.js.map} +1 -1
  17. package/dist/{chunk-2UGDLAYC.js → chunk-45D4O7RK.js} +10 -3
  18. package/dist/chunk-45D4O7RK.js.map +1 -0
  19. package/dist/{chunk-32IJQOUV.js → chunk-4EYYCHLD.js} +4 -4
  20. package/dist/{chunk-32IJQOUV.js.map → chunk-4EYYCHLD.js.map} +1 -1
  21. package/dist/{chunk-J62TFQHR.js → chunk-5I7AXWJU.js} +13 -13
  22. package/dist/chunk-5I7AXWJU.js.map +1 -0
  23. package/dist/{chunk-65YSTUD2.js → chunk-5SUD32RK.js} +44 -14
  24. package/dist/chunk-5SUD32RK.js.map +1 -0
  25. package/dist/{chunk-23BHD62H.js → chunk-5TZDEGZN.js} +4 -4
  26. package/dist/chunk-5TZDEGZN.js.map +1 -0
  27. package/dist/{chunk-VPNFYQBL.js → chunk-6DN2UAIR.js} +3 -3
  28. package/dist/chunk-6DN2UAIR.js.map +1 -0
  29. package/dist/{chunk-EGYWK2XX.js → chunk-7CTFBOD4.js} +3 -3
  30. package/dist/{chunk-EGYWK2XX.js.map → chunk-7CTFBOD4.js.map} +1 -1
  31. package/dist/{chunk-36XTKR3B.js → chunk-BMNCNBPA.js} +3 -3
  32. package/dist/{chunk-36XTKR3B.js.map → chunk-BMNCNBPA.js.map} +1 -1
  33. package/dist/{chunk-AWYOWR5N.js → chunk-C5HSYDJC.js} +3 -3
  34. package/dist/{chunk-AWYOWR5N.js.map → chunk-C5HSYDJC.js.map} +1 -1
  35. package/dist/{chunk-VFALJSXB.js → chunk-DCUFQJYP.js} +3 -3
  36. package/dist/chunk-DCUFQJYP.js.map +1 -0
  37. package/dist/{chunk-LATTRPLQ.js → chunk-E2TI5V67.js} +3 -3
  38. package/dist/{chunk-LATTRPLQ.js.map → chunk-E2TI5V67.js.map} +1 -1
  39. package/dist/{chunk-IRKDMISK.js → chunk-G2MAGZHQ.js} +4 -3
  40. package/dist/chunk-G2MAGZHQ.js.map +1 -0
  41. package/dist/{chunk-ONQCNOLU.js → chunk-HDOR3SN3.js} +3 -3
  42. package/dist/{chunk-ONQCNOLU.js.map → chunk-HDOR3SN3.js.map} +1 -1
  43. package/dist/{chunk-PLLJNHWU.js → chunk-HI3T55XK.js} +3 -33
  44. package/dist/chunk-HI3T55XK.js.map +1 -0
  45. package/dist/chunk-HJ4E6YPW.js +236 -0
  46. package/dist/chunk-HJ4E6YPW.js.map +1 -0
  47. package/dist/{chunk-LS3WD6IZ.js → chunk-I55QJ4CU.js} +4 -4
  48. package/dist/{chunk-LS3WD6IZ.js.map → chunk-I55QJ4CU.js.map} +1 -1
  49. package/dist/{chunk-HKXQLWGR.js → chunk-IOWHM7ZY.js} +13 -11
  50. package/dist/chunk-IOWHM7ZY.js.map +1 -0
  51. package/dist/{chunk-ILAV2AZ4.js → chunk-IZC5YFGO.js} +3 -3
  52. package/dist/{chunk-ILAV2AZ4.js.map → chunk-IZC5YFGO.js.map} +1 -1
  53. package/dist/{chunk-Y7UFBSAD.js → chunk-KHOCAVQO.js} +3 -3
  54. package/dist/{chunk-Y7UFBSAD.js.map → chunk-KHOCAVQO.js.map} +1 -1
  55. package/dist/{chunk-IBVCSZCH.js → chunk-KVJOKWP4.js} +5 -4
  56. package/dist/chunk-KVJOKWP4.js.map +1 -0
  57. package/dist/{chunk-KC6CHPT3.js → chunk-KZRTQF64.js} +3 -3
  58. package/dist/{chunk-KC6CHPT3.js.map → chunk-KZRTQF64.js.map} +1 -1
  59. package/dist/{chunk-QIETN4UU.js → chunk-LEAK22ZP.js} +3 -3
  60. package/dist/{chunk-QIETN4UU.js.map → chunk-LEAK22ZP.js.map} +1 -1
  61. package/dist/{chunk-OWOVCGUZ.js → chunk-M2C7HBR5.js} +3 -3
  62. package/dist/{chunk-OWOVCGUZ.js.map → chunk-M2C7HBR5.js.map} +1 -1
  63. package/dist/{chunk-33JGPMUW.js → chunk-M7TPROVH.js} +20 -7
  64. package/dist/chunk-M7TPROVH.js.map +1 -0
  65. package/dist/{chunk-AVR3LVOQ.js → chunk-MQMRVBUL.js} +4 -4
  66. package/dist/{chunk-AVR3LVOQ.js.map → chunk-MQMRVBUL.js.map} +1 -1
  67. package/dist/{chunk-KPNNSUXM.js → chunk-O7AUE5GP.js} +5 -3
  68. package/dist/chunk-O7AUE5GP.js.map +1 -0
  69. package/dist/{chunk-6HEURMY3.js → chunk-OCXGG7UP.js} +5 -5
  70. package/dist/{chunk-6HEURMY3.js.map → chunk-OCXGG7UP.js.map} +1 -1
  71. package/dist/{chunk-V7XHE25E.js → chunk-ON7WFRYH.js} +3 -3
  72. package/dist/{chunk-V7XHE25E.js.map → chunk-ON7WFRYH.js.map} +1 -1
  73. package/dist/{chunk-FSMHI7DW.js → chunk-OXDWUKGP.js} +3 -3
  74. package/dist/chunk-OXDWUKGP.js.map +1 -0
  75. package/dist/{chunk-SJSYKUCL.js → chunk-Q335YODG.js} +3 -3
  76. package/dist/{chunk-SJSYKUCL.js.map → chunk-Q335YODG.js.map} +1 -1
  77. package/dist/{chunk-DDM2I5C6.js → chunk-R5OIL4I4.js} +3 -3
  78. package/dist/{chunk-DDM2I5C6.js.map → chunk-R5OIL4I4.js.map} +1 -1
  79. package/dist/{chunk-FYJHWYPM.js → chunk-S524YVMO.js} +3 -3
  80. package/dist/{chunk-FYJHWYPM.js.map → chunk-S524YVMO.js.map} +1 -1
  81. package/dist/{chunk-OWIFNJXZ.js → chunk-S7TVRVRU.js} +3 -3
  82. package/dist/chunk-S7TVRVRU.js.map +1 -0
  83. package/dist/{chunk-TNROOKX3.js → chunk-UDY3IDCY.js} +10 -2
  84. package/dist/chunk-UDY3IDCY.js.map +1 -0
  85. package/dist/{chunk-3WOGOTOV.js → chunk-UPYT2XM5.js} +7 -7
  86. package/dist/chunk-UPYT2XM5.js.map +1 -0
  87. package/dist/{chunk-YWA63YN3.js → chunk-VAVE4ZJF.js} +2 -2
  88. package/dist/chunk-VAVE4ZJF.js.map +1 -0
  89. package/dist/chunk-WKWLKGNI.js +643 -0
  90. package/dist/chunk-WKWLKGNI.js.map +1 -0
  91. package/dist/{chunk-Z3FL7LEK.js → chunk-X253YD45.js} +71 -6
  92. package/dist/chunk-X253YD45.js.map +1 -0
  93. package/dist/{chunk-6XY7QYVR.js → chunk-X3AXEE3S.js} +3 -3
  94. package/dist/{chunk-6XY7QYVR.js.map → chunk-X3AXEE3S.js.map} +1 -1
  95. package/dist/{chunk-R4UOT76L.js → chunk-XAIUZJOJ.js} +8 -8
  96. package/dist/chunk-XAIUZJOJ.js.map +1 -0
  97. package/dist/{chunk-ZO2EKJZM.js → chunk-XCZMJA2D.js} +7 -7
  98. package/dist/{chunk-ZO2EKJZM.js.map → chunk-XCZMJA2D.js.map} +1 -1
  99. package/dist/{chunk-XRMKL43Y.js → chunk-XOLV7G4S.js} +3 -3
  100. package/dist/{chunk-XRMKL43Y.js.map → chunk-XOLV7G4S.js.map} +1 -1
  101. package/dist/chunk-XYYOV5GW.js +186 -0
  102. package/dist/chunk-XYYOV5GW.js.map +1 -0
  103. package/dist/{chunk-4MQNDQ4O.js → chunk-YACIRNVP.js} +12 -4
  104. package/dist/chunk-YACIRNVP.js.map +1 -0
  105. package/dist/{chunk-JKYB5QAP.js → chunk-YDZBLZVZ.js} +3 -3
  106. package/dist/{chunk-JKYB5QAP.js.map → chunk-YDZBLZVZ.js.map} +1 -1
  107. package/dist/{chunk-5XQIH6WM.js → chunk-YM5YBDRM.js} +4 -4
  108. package/dist/{chunk-5XQIH6WM.js.map → chunk-YM5YBDRM.js.map} +1 -1
  109. package/dist/{chunk-AUCDXPWH.js → chunk-YQX7XZES.js} +4 -4
  110. package/dist/{chunk-AUCDXPWH.js.map → chunk-YQX7XZES.js.map} +1 -1
  111. package/dist/{chunk-CP2PEDG2.js → chunk-Z4KW5VW6.js} +3 -3
  112. package/dist/chunk-Z4KW5VW6.js.map +1 -0
  113. package/dist/{chunk-Y3BOERVB.js → chunk-ZEFK3AXP.js} +3 -3
  114. package/dist/{chunk-Y3BOERVB.js.map → chunk-ZEFK3AXP.js.map} +1 -1
  115. package/dist/{chunk-L3Z5FAJE.js → chunk-ZEYLSDSG.js} +3 -3
  116. package/dist/{chunk-L3Z5FAJE.js.map → chunk-ZEYLSDSG.js.map} +1 -1
  117. package/dist/components/advanced/Calendar/index.js +3 -3
  118. package/dist/components/advanced/Command/index.js +1 -1
  119. package/dist/components/advanced/EventCalendar/index.js +3 -3
  120. package/dist/components/advanced/FileDropzone/index.js +1 -1
  121. package/dist/components/advanced/FilterBuilder/index.js +3 -3
  122. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  123. package/dist/components/advanced/ReportBuilder/index.js +2 -2
  124. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  125. package/dist/components/advanced/index.js +13 -13
  126. package/dist/components/data-display/AreaChart/index.js +1 -1
  127. package/dist/components/data-display/BarChart/index.js +1 -1
  128. package/dist/components/data-display/Carousel/index.js +3 -3
  129. package/dist/components/data-display/ChartCard/index.js +2 -2
  130. package/dist/components/data-display/DashboardFilterbar/index.js +5 -5
  131. package/dist/components/data-display/DataTable/FilterBuilder/index.js +3 -3
  132. package/dist/components/data-display/DataTable/index.js +6 -6
  133. package/dist/components/data-display/ImageGallery/index.js +6 -6
  134. package/dist/components/data-display/KPICard/index.js +3 -3
  135. package/dist/components/data-display/Lightbox/index.js +1 -1
  136. package/dist/components/data-display/LineChart/index.js +1 -1
  137. package/dist/components/data-display/List/index.js +2 -2
  138. package/dist/components/data-display/Table/index.js +1 -1
  139. package/dist/components/data-display/VirtualTable/index.js +2 -2
  140. package/dist/components/data-display/index.js +29 -29
  141. package/dist/components/feedback/Alert/index.js +1 -1
  142. package/dist/components/feedback/AlertDialog/index.js +3 -3
  143. package/dist/components/feedback/ConfirmModal/index.js +4 -4
  144. package/dist/components/feedback/Modal/index.js +1 -1
  145. package/dist/components/feedback/index.js +8 -8
  146. package/dist/components/forms/ColorPicker/index.js +1 -1
  147. package/dist/components/forms/DatePicker/index.js +4 -4
  148. package/dist/components/forms/DateRangePicker/index.js +4 -4
  149. package/dist/components/forms/IftaLabel/index.js +1 -1
  150. package/dist/components/forms/InputGroup/index.js +3 -3
  151. package/dist/components/forms/MultiSelect/index.js +2 -1
  152. package/dist/components/forms/RadioButton/index.js +1 -1
  153. package/dist/components/forms/Rating/index.js +1 -1
  154. package/dist/components/forms/Slider/index.js +1 -1
  155. package/dist/components/forms/TagsInput/index.js +2 -2
  156. package/dist/components/forms/ToggleGroup/index.js +1 -1
  157. package/dist/components/forms/index.js +19 -19
  158. package/dist/components/index.js +104 -104
  159. package/dist/components/layout/index.js +2 -2
  160. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  161. package/dist/components/navigation/Drawer/index.js +1 -1
  162. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  163. package/dist/components/navigation/Header/index.js +1 -1
  164. package/dist/components/navigation/MobileSidebar/index.js +3 -3
  165. package/dist/components/navigation/Pagination/index.js +3 -3
  166. package/dist/components/navigation/Sidebar/index.js +3 -3
  167. package/dist/components/navigation/UserProfileDropdown/index.js +1 -1
  168. package/dist/components/navigation/WorkspaceDropdown/index.js +1 -1
  169. package/dist/components/navigation/index.js +13 -13
  170. package/dist/components/primitives/AspectRatio/index.js +1 -1
  171. package/dist/components/primitives/Badge/index.js +1 -1
  172. package/dist/components/primitives/Button/index.js +2 -2
  173. package/dist/components/primitives/ConfirmButton/index.js +4 -4
  174. package/dist/components/primitives/ProgressBar/index.js +1 -1
  175. package/dist/components/primitives/SplitButton/index.js +2 -2
  176. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  177. package/dist/components/primitives/Tag/index.js +1 -1
  178. package/dist/components/primitives/Toggle/index.js +1 -1
  179. package/dist/components/primitives/index.js +16 -16
  180. package/dist/components/workflow/ApprovalFlow/index.js +3 -3
  181. package/dist/components/workflow/CommentSystem/index.js +3 -3
  182. package/dist/components/workflow/Dashboard/index.js +3 -3
  183. package/dist/components/workflow/DashboardBuilder/index.js +3 -3
  184. package/dist/components/workflow/KanbanBoard/index.js +3 -3
  185. package/dist/components/workflow/ReportGenerator/index.js +3 -3
  186. package/dist/components/workflow/TaskStatus/index.js +2 -2
  187. package/dist/components/workflow/Wizard/index.js +3 -3
  188. package/dist/components/workflow/index.js +12 -12
  189. package/dist/index.d.ts +156 -50
  190. package/dist/index.js +104 -104
  191. package/dist/styles.css +23 -0
  192. package/package.json +2 -2
  193. package/dist/chunk-23BHD62H.js.map +0 -1
  194. package/dist/chunk-2UGDLAYC.js.map +0 -1
  195. package/dist/chunk-33JGPMUW.js.map +0 -1
  196. package/dist/chunk-3WOGOTOV.js.map +0 -1
  197. package/dist/chunk-4MQNDQ4O.js.map +0 -1
  198. package/dist/chunk-65YSTUD2.js.map +0 -1
  199. package/dist/chunk-CP2PEDG2.js.map +0 -1
  200. package/dist/chunk-FSMHI7DW.js.map +0 -1
  201. package/dist/chunk-GAP3OZR7.js +0 -223
  202. package/dist/chunk-GAP3OZR7.js.map +0 -1
  203. package/dist/chunk-HKXQLWGR.js.map +0 -1
  204. package/dist/chunk-IBVCSZCH.js.map +0 -1
  205. package/dist/chunk-ICAQYWCX.js +0 -153
  206. package/dist/chunk-ICAQYWCX.js.map +0 -1
  207. package/dist/chunk-IRKDMISK.js.map +0 -1
  208. package/dist/chunk-J62TFQHR.js.map +0 -1
  209. package/dist/chunk-KPNNSUXM.js.map +0 -1
  210. package/dist/chunk-KR3IVNQH.js.map +0 -1
  211. package/dist/chunk-OWIFNJXZ.js.map +0 -1
  212. package/dist/chunk-PLLJNHWU.js.map +0 -1
  213. package/dist/chunk-R4UOT76L.js.map +0 -1
  214. package/dist/chunk-SHS6EGWS.js +0 -226
  215. package/dist/chunk-SHS6EGWS.js.map +0 -1
  216. package/dist/chunk-TNROOKX3.js.map +0 -1
  217. package/dist/chunk-UFRMZ3M6.js.map +0 -1
  218. package/dist/chunk-VFALJSXB.js.map +0 -1
  219. package/dist/chunk-VPNFYQBL.js.map +0 -1
  220. package/dist/chunk-XD5LE64P.js +0 -311
  221. package/dist/chunk-XD5LE64P.js.map +0 -1
  222. package/dist/chunk-XV6NXXXP.js +0 -206
  223. package/dist/chunk-XV6NXXXP.js.map +0 -1
  224. package/dist/chunk-YWA63YN3.js.map +0 -1
  225. package/dist/chunk-Z3FL7LEK.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, DropdownMenuGroup, DropdownMenuItem } from './chunk-FSMHI7DW.js';
1
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, DropdownMenuGroup, DropdownMenuItem } from './chunk-OXDWUKGP.js';
2
2
  import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
3
- import { Badge } from './chunk-TNROOKX3.js';
3
+ import { Badge } from './chunk-UDY3IDCY.js';
4
4
  import { cn } from './chunk-HRNDJU7D.js';
5
5
  import { ChevronsUpDown, Check } from 'lucide-react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -92,5 +92,5 @@ function AccountSwitch({
92
92
  }
93
93
 
94
94
  export { AccountSwitch };
95
- //# sourceMappingURL=chunk-2Y7PQ6ZL.js.map
96
- //# sourceMappingURL=chunk-2Y7PQ6ZL.js.map
95
+ //# sourceMappingURL=chunk-237TQKWH.js.map
96
+ //# sourceMappingURL=chunk-237TQKWH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/navigation/AccountSwitch/AccountSwitch.tsx"],"names":[],"mappings":";;;;;;;AAmBA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,GAAe,MAAA;AAAA,EACf,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,cAAA,GAAiB,SAAS,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,SAAS,CAAA,IAAK,QAAA,CAAS,CAAC,CAAA;AAEtE,EAAA,MAAM,YAAA,GAAe,CAAC,OAAA,KAAkC;AACtD,IAAA,IAAI,OAAA,CAAQ,EAAA,KAAO,cAAA,EAAgB,EAAA,EAAI;AACrC,MAAA,QAAA,GAAW,OAAO,CAAA;AAAA,IACpB;AAAA,EACF,CAAA;AAEA,EAAA,4BACG,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,SAAO,IAAA,EAC1B,QAAA,kBAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,4MAAA;AAAA,UACA,YAAA,KAAiB,SACb,0BAAA,GACA,iCAAA;AAAA,UACJ;AAAA,SACF;AAAA,QACA,WAAA,EAAU,wBAAA;AAAA,QACV,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,cAAA,oBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,MAAA,EAAA,EAAO,MAAK,IAAA,EACV,QAAA,EAAA;AAAA,cAAA,cAAA,CAAe,SAAA,wBACb,WAAA,EAAA,EAAY,GAAA,EAAK,eAAe,IAAA,EAAM,GAAA,EAAK,eAAe,SAAA,EAAW,CAAA;AAAA,8BAExE,GAAA,CAAC,kBACE,QAAA,EAAA,cAAA,CAAe,cAAA,IAAkB,eAAe,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAChE;AAAA,aAAA,EACF,CAAA;AAAA,4BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2EAAA,EACb,yBAAe,IAAA,EAClB;AAAA,WAAA,EACF,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,cAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAY,MAAA;AAAA,cACZ,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA,KACF,EACF,CAAA;AAAA,oBACA,IAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,OAAA;AAAA,QACN,SAAA,EAAU,iDAAA;AAAA,QACV,WAAA,EAAU,wBAAA;AAAA,QAET,QAAA,EAAA;AAAA,UAAA,MAAA,oBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,gCACpC,qBAAA,EAAA,EAAsB;AAAA,WAAA,EACzB,CAAA;AAAA,0BAEF,GAAA,CAAC,iBAAA,EAAA,EAAkB,SAAA,EAAU,oEAAA,EAAqE,QAAA,EAAA,QAAA,EAElG,CAAA;AAAA,0BACA,GAAA,CAAC,iBAAA,EAAA,EACE,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,qBACb,IAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAU,yBAAA;AAAA,cACV,SAAS,MAAM;AACb,gBAAA,YAAA,CAAa,OAAO,CAAA;AAAA,cACtB,CAAA;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAA,IAAA,CAAC,MAAA,EAAA,EAAO,MAAK,IAAA,EACV,QAAA,EAAA;AAAA,kBAAA,OAAA,CAAQ,SAAA,wBACN,WAAA,EAAA,EAAY,GAAA,EAAK,QAAQ,IAAA,EAAM,GAAA,EAAK,QAAQ,SAAA,EAAW,CAAA;AAAA,kCAE1D,GAAA,CAAC,kBACE,QAAA,EAAA,OAAA,CAAQ,cAAA,IAAkB,QAAQ,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAClD;AAAA,iBAAA,EACF,CAAA;AAAA,gCACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,kBAAQ,IAAA,EAAK,CAAA;AAAA,gBAC/C,OAAA,CAAQ,IAAA,oBACP,GAAA,CAAC,KAAA,EAAA,EAAM,OAAO,OAAA,CAAQ,IAAA,KAAS,KAAA,GAAQ,SAAA,GAAY,SAAS,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,YAAA,EACxE,kBAAQ,IAAA,EACX,CAAA;AAAA,gBAED,QAAQ,SAAA,oBAAa,GAAA,CAAC,SAAM,aAAA,EAAY,MAAA,EAAO,WAAU,uBAAA,EAAwB;AAAA;AAAA,aAAA;AAAA,YApB7E,OAAA,CAAQ;AAAA,WAsBhB,CAAA,EACH,CAAA;AAAA,UACC,0BACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,qBAAA,EAAA,EAAsB,CAAA;AAAA,YACtB;AAAA,WAAA,EACH;AAAA;AAAA;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ","file":"chunk-2Y7PQ6ZL.js","sourcesContent":["\"use client\"\n\nimport type { AccountSwitchAccount, AccountSwitchProps } from \"./AccountSwitch.types\"\n\nimport { Check, ChevronsUpDown } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\"\nimport { Badge } from \"../../primitives/Badge\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../DropdownMenu\"\n\nfunction AccountSwitch({\n className,\n accounts,\n triggerShape = \"pill\",\n header,\n footer,\n onSelect,\n ...props\n}: AccountSwitchProps) {\n const currentAccount = accounts.find((a) => a.isCurrent) ?? accounts[0]\n\n const handleSelect = (account: AccountSwitchAccount) => {\n if (account.id !== currentAccount?.id) {\n onSelect?.(account)\n }\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-2 h-[var(--input-size-md-h)] border bg-card text-card-foreground transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none\",\n triggerShape === \"pill\"\n ? \"rounded-full pl-1.5 pr-3\"\n : \"rounded-[var(--radius-md)] px-3\",\n className\n )}\n data-slot=\"account-switch-trigger\"\n type=\"button\"\n {...props}\n >\n {currentAccount && (\n <>\n <Avatar size=\"xs\">\n {currentAccount.avatarSrc && (\n <AvatarImage alt={currentAccount.name} src={currentAccount.avatarSrc} />\n )}\n <AvatarFallback>\n {currentAccount.avatarFallback ?? currentAccount.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n <span className=\"text-sm font-medium truncate max-w-[var(--account-switch-name-max-width)]\">\n {currentAccount.name}\n </span>\n </>\n )}\n <ChevronsUpDown\n aria-hidden=\"true\"\n className=\"size-3.5 text-muted-foreground shrink-0 ml-auto\"\n />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n className=\"min-w-[var(--account-switch-content-min-width)]\"\n data-slot=\"account-switch-content\"\n >\n {header && (\n <>\n <div className=\"px-2 py-1.5\">{header}</div>\n <DropdownMenuSeparator />\n </>\n )}\n <DropdownMenuLabel className=\"text-xs font-medium text-muted-foreground uppercase tracking-wider\">\n Contas\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n {accounts.map((account) => (\n <DropdownMenuItem\n key={account.id}\n className=\"flex items-center gap-2\"\n onClick={() => {\n handleSelect(account)\n }}\n >\n <Avatar size=\"xs\">\n {account.avatarSrc && (\n <AvatarImage alt={account.name} src={account.avatarSrc} />\n )}\n <AvatarFallback>\n {account.avatarFallback ?? account.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n <span className=\"flex-1 truncate\">{account.name}</span>\n {account.plan && (\n <Badge color={account.plan === \"PRO\" ? \"primary\" : \"muted\"} size=\"sm\" type=\"pill-color\">\n {account.plan}\n </Badge>\n )}\n {account.isCurrent && <Check aria-hidden=\"true\" className=\"size-3.5 text-primary\" />}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n {footer && (\n <>\n <DropdownMenuSeparator />\n {footer}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport { AccountSwitch }\n"]}
1
+ {"version":3,"sources":["../src/components/navigation/AccountSwitch/AccountSwitch.tsx"],"names":[],"mappings":"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","file":"chunk-237TQKWH.js","sourcesContent":["\"use client\"\n\nimport type { AccountSwitchAccount, AccountSwitchProps } from \"./AccountSwitch.types\"\n\nimport { Check, ChevronsUpDown } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\"\nimport { Badge } from \"../../primitives/Badge\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../DropdownMenu\"\n\nfunction AccountSwitch({\n className,\n accounts,\n triggerShape = \"pill\",\n header,\n footer,\n onSelect,\n ...props\n}: AccountSwitchProps) {\n const currentAccount = accounts.find((a) => a.isCurrent) ?? accounts[0]\n\n const handleSelect = (account: AccountSwitchAccount) => {\n if (account.id !== currentAccount?.id) {\n onSelect?.(account)\n }\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-2 h-[var(--input-size-md-h)] border bg-card text-card-foreground transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none\",\n triggerShape === \"pill\"\n ? \"rounded-full pl-1.5 pr-3\"\n : \"rounded-[var(--radius-md)] px-3\",\n className\n )}\n data-slot=\"account-switch-trigger\"\n type=\"button\"\n {...props}\n >\n {currentAccount && (\n <>\n <Avatar size=\"xs\">\n {currentAccount.avatarSrc && (\n <AvatarImage alt={currentAccount.name} src={currentAccount.avatarSrc} />\n )}\n <AvatarFallback>\n {currentAccount.avatarFallback ?? currentAccount.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n <span className=\"text-sm font-medium truncate max-w-[var(--account-switch-name-max-width)]\">\n {currentAccount.name}\n </span>\n </>\n )}\n <ChevronsUpDown\n aria-hidden=\"true\"\n className=\"size-3.5 text-muted-foreground shrink-0 ml-auto\"\n />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n className=\"min-w-[var(--account-switch-content-min-width)]\"\n data-slot=\"account-switch-content\"\n >\n {header && (\n <>\n <div className=\"px-2 py-1.5\">{header}</div>\n <DropdownMenuSeparator />\n </>\n )}\n <DropdownMenuLabel className=\"text-xs font-medium text-muted-foreground uppercase tracking-wider\">\n Contas\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n {accounts.map((account) => (\n <DropdownMenuItem\n key={account.id}\n className=\"flex items-center gap-2\"\n onClick={() => {\n handleSelect(account)\n }}\n >\n <Avatar size=\"xs\">\n {account.avatarSrc && (\n <AvatarImage alt={account.name} src={account.avatarSrc} />\n )}\n <AvatarFallback>\n {account.avatarFallback ?? account.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n <span className=\"flex-1 truncate\">{account.name}</span>\n {account.plan && (\n <Badge color={account.plan === \"PRO\" ? \"primary\" : \"muted\"} size=\"sm\" type=\"pill-color\">\n {account.plan}\n </Badge>\n )}\n {account.isCurrent && <Check aria-hidden=\"true\" className=\"size-3.5 text-primary\" />}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n {footer && (\n <>\n <DropdownMenuSeparator />\n {footer}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport { AccountSwitch }\n"]}
@@ -5,12 +5,18 @@ import * as React from 'react';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
 
7
7
  var controlButtonBase = cn(
8
- "flex items-center justify-center rounded-full",
8
+ "flex items-center justify-center rounded-[var(--lightbox-button-radius)]",
9
9
  "bg-white/10 text-white transition-colors hover:bg-white/20",
10
10
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50"
11
11
  );
12
- var controlButtonSmall = cn(controlButtonBase, "size-10");
13
- var controlButtonLarge = cn(controlButtonBase, "size-12");
12
+ var controlButtonSmall = cn(
13
+ controlButtonBase,
14
+ "size-[var(--lightbox-button-size-sm)]"
15
+ );
16
+ var controlButtonLarge = cn(
17
+ controlButtonBase,
18
+ "size-[var(--lightbox-button-size-lg)]"
19
+ );
14
20
  var controlButtonDisabled = "disabled:cursor-not-allowed disabled:opacity-30";
15
21
  function Lightbox({
16
22
  className,
@@ -173,7 +179,7 @@ function Lightbox({
173
179
  /* @__PURE__ */ jsxs(
174
180
  "div",
175
181
  {
176
- className: "absolute top-0 left-0 right-0 z-10 flex items-center justify-between p-4",
182
+ className: "absolute top-0 left-0 right-0 z-10 flex items-center justify-between p-[var(--lightbox-header-padding)]",
177
183
  "data-slot": "lightbox-header",
178
184
  children: [
179
185
  showCounter && hasMultipleImages ? /* @__PURE__ */ jsxs(
@@ -299,7 +305,7 @@ function Lightbox({
299
305
  "div",
300
306
  {
301
307
  className: cn(
302
- "absolute bottom-0 left-0 right-0 z-10 flex flex-col items-center gap-3 p-4",
308
+ "absolute bottom-0 left-0 right-0 z-10 flex flex-col items-center gap-[var(--lightbox-footer-gap)] p-[var(--lightbox-footer-padding)]",
303
309
  showThumbnails ? "pb-4" : "pb-6"
304
310
  ),
305
311
  "data-slot": "lightbox-footer",
@@ -354,16 +360,16 @@ function Lightbox({
354
360
  "div",
355
361
  {
356
362
  "aria-label": "Image thumbnails",
357
- className: "flex max-w-full gap-2 overflow-x-auto px-4 py-2",
363
+ className: "flex max-w-full gap-[var(--lightbox-thumbnail-gap)] overflow-x-auto px-4 py-2",
358
364
  "data-slot": "lightbox-thumbnails",
359
365
  role: "tablist",
360
366
  children: images.map((image, index) => /* @__PURE__ */ jsx(
361
367
  "button",
362
368
  {
363
369
  className: cn(
364
- "relative size-16 shrink-0 overflow-hidden rounded-md transition-all",
370
+ "relative size-[var(--lightbox-thumbnail-size)] shrink-0 overflow-hidden rounded-md transition-all",
365
371
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50",
366
- index === currentIndex ? "ring-2 ring-white ring-offset-2 ring-offset-black/90" : "opacity-60 hover:opacity-100"
372
+ index === currentIndex ? "ring-2 ring-white ring-offset-2 ring-offset-black/90" : "opacity-[var(--lightbox-thumbnail-opacity-inactive)] hover:opacity-100"
367
373
  ),
368
374
  "aria-label": `View ${image.alt}`,
369
375
  "aria-selected": index === currentIndex,
@@ -398,5 +404,5 @@ function Lightbox({
398
404
  }
399
405
 
400
406
  export { Lightbox };
401
- //# sourceMappingURL=chunk-KR3IVNQH.js.map
402
- //# sourceMappingURL=chunk-KR3IVNQH.js.map
407
+ //# sourceMappingURL=chunk-2FJJOHHH.js.map
408
+ //# sourceMappingURL=chunk-2FJJOHHH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/Lightbox/Lightbox.tsx"],"names":[],"mappings":"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","file":"chunk-2FJJOHHH.js","sourcesContent":["\"use client\"\n\nimport type { LightboxImage, LightboxProps } from \"./Lightbox.types\"\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport {\n ChevronLeft,\n ChevronRight,\n Download,\n X,\n ZoomIn,\n ZoomOut,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n// Shared button styles\nconst controlButtonBase = cn(\n \"flex items-center justify-center rounded-[var(--lightbox-button-radius)]\",\n \"bg-white/10 text-white transition-colors hover:bg-white/20\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50\"\n)\n\nconst controlButtonSmall = cn(\n controlButtonBase,\n \"size-[var(--lightbox-button-size-sm)]\"\n)\nconst controlButtonLarge = cn(\n controlButtonBase,\n \"size-[var(--lightbox-button-size-lg)]\"\n)\nconst controlButtonDisabled = \"disabled:cursor-not-allowed disabled:opacity-30\"\n\n/**\n * Lightbox - A full-screen media viewer with navigation, zoom, and captions\n *\n * @example\n * ```tsx\n * const [open, setOpen] = useState(false)\n * const images = [\n * { id: '1', src: '/img1.jpg', alt: 'Image 1', caption: 'First image' },\n * { id: '2', src: '/img2.jpg', alt: 'Image 2', caption: 'Second image' },\n * ]\n *\n * <Lightbox\n * images={images}\n * open={open}\n * onOpenChange={setOpen}\n * showCaption\n * enableZoom\n * />\n * ```\n */\nfunction Lightbox({\n className,\n enableDownload = false,\n enableZoom = true,\n images,\n initialIndex = 0,\n loop = true,\n onClose,\n onIndexChange,\n onOpenChange,\n open,\n showCaption = true,\n showCounter = true,\n showThumbnails = false,\n}: LightboxProps) {\n // Use a key to reset state when dialog opens at a specific index\n const [stateKey, setStateKey] = React.useState(0)\n const [currentIndex, setCurrentIndex] = React.useState(initialIndex)\n const [zoom, setZoom] = React.useState(1)\n const [imageLoading, setImageLoading] = React.useState(true)\n const [imageError, setImageError] = React.useState(false)\n\n // Track previous open state to detect when dialog opens\n const prevOpenRef = React.useRef(open)\n\n // Reset state when dialog opens (not on every render)\n /* eslint-disable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Intentional state reset on open */\n React.useEffect(() => {\n if (open && !prevOpenRef.current) {\n // Dialog just opened - reset to initialIndex\n setCurrentIndex(initialIndex)\n setZoom(1)\n setImageLoading(true)\n setImageError(false)\n setStateKey((k) => k + 1)\n }\n prevOpenRef.current = open\n }, [open, initialIndex])\n /* eslint-enable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n // Reset loading state when the image changes\n /* eslint-disable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, react-you-might-not-need-an-effect/no-chain-state-updates, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Image loading state sync */\n React.useEffect(() => {\n setImageLoading(true)\n setImageError(false)\n }, [currentIndex])\n /* eslint-enable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, react-you-might-not-need-an-effect/no-chain-state-updates, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n const currentImage: LightboxImage | undefined = images[currentIndex]\n const hasMultipleImages = images.length > 1\n\n const canGoNext = loop || currentIndex < images.length - 1\n const canGoPrev = loop || currentIndex > 0\n\n const goNext = React.useCallback(() => {\n if (!canGoNext) return\n setZoom(1)\n const nextIndex =\n currentIndex < images.length - 1\n ? currentIndex + 1\n : loop\n ? 0\n : currentIndex\n setCurrentIndex(nextIndex)\n onIndexChange?.(nextIndex)\n }, [currentIndex, images.length, loop, canGoNext, onIndexChange])\n\n const goPrev = React.useCallback(() => {\n if (!canGoPrev) return\n setZoom(1)\n const prevIndex =\n currentIndex > 0\n ? currentIndex - 1\n : loop\n ? images.length - 1\n : currentIndex\n setCurrentIndex(prevIndex)\n onIndexChange?.(prevIndex)\n }, [currentIndex, images.length, loop, canGoPrev, onIndexChange])\n\n const goToIndex = React.useCallback(\n (index: number) => {\n if (index >= 0 && index < images.length) {\n setZoom(1)\n setCurrentIndex(index)\n onIndexChange?.(index)\n }\n },\n [images.length, onIndexChange]\n )\n\n const handleClose = React.useCallback(() => {\n onOpenChange?.(false)\n onClose?.()\n }, [onOpenChange, onClose])\n\n const handleZoomIn = React.useCallback(() => {\n setZoom((prev) => Math.min(3, prev + 0.25))\n }, [])\n\n const handleZoomOut = React.useCallback(() => {\n setZoom((prev) => Math.max(0.5, prev - 0.25))\n }, [])\n\n const handleDownload = React.useCallback(() => {\n if (!currentImage) return\n\n const link = document.createElement(\"a\")\n link.href = currentImage.src\n link.download = currentImage.alt || `image-${currentImage.id}`\n link.target = \"_blank\"\n link.rel = \"noopener noreferrer\"\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }, [currentImage])\n\n const handleImageLoad = React.useCallback(() => {\n setImageLoading(false)\n setImageError(false)\n }, [])\n\n const handleImageError = React.useCallback(() => {\n setImageLoading(false)\n setImageError(true)\n }, [])\n\n // Keyboard navigation\n React.useEffect(() => {\n if (!open) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case \"ArrowLeft\":\n event.preventDefault()\n goPrev()\n break\n case \"ArrowRight\":\n event.preventDefault()\n goNext()\n break\n case \"Escape\":\n event.preventDefault()\n handleClose()\n break\n case \"+\":\n case \"=\":\n if (enableZoom) {\n event.preventDefault()\n handleZoomIn()\n }\n break\n case \"-\":\n if (enableZoom) {\n event.preventDefault()\n handleZoomOut()\n }\n break\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown)\n }\n }, [open, goNext, goPrev, handleClose, enableZoom, handleZoomIn, handleZoomOut])\n\n if (!currentImage) return null\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/90\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\"\n )}\n data-slot=\"lightbox-overlay\"\n />\n <DialogPrimitive.Content\n key={stateKey}\n className={cn(\n \"fixed inset-0 z-50 flex flex-col\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"duration-200\",\n className\n )}\n aria-describedby={currentImage.caption ? \"lightbox-caption\" : undefined}\n aria-label={`Lightbox: ${currentImage.alt}`}\n data-slot=\"lightbox\"\n >\n {/* Hide dialog title for screen readers but provide accessible label */}\n <DialogPrimitive.Title className=\"sr-only\">\n Image Viewer\n </DialogPrimitive.Title>\n <DialogPrimitive.Description className=\"sr-only\">\n {`Viewing image ${String(currentIndex + 1)} of ${String(images.length)}`}\n </DialogPrimitive.Description>\n\n {/* Top controls bar */}\n <div\n className=\"absolute top-0 left-0 right-0 z-10 flex items-center justify-between p-[var(--lightbox-header-padding)]\"\n data-slot=\"lightbox-header\"\n >\n {/* Counter */}\n {showCounter && hasMultipleImages ? (\n <div\n aria-live=\"polite\"\n className=\"text-sm text-white/70\"\n data-slot=\"lightbox-counter\"\n >\n {currentIndex + 1} / {images.length}\n </div>\n ) : (\n <div />\n )}\n\n {/* Action buttons */}\n <div className=\"flex items-center gap-2\">\n {enableDownload && (\n <button\n aria-label=\"Download image\"\n className={controlButtonSmall}\n data-slot=\"lightbox-download\"\n type=\"button\"\n onClick={handleDownload}\n >\n <Download className=\"size-5\" />\n </button>\n )}\n <DialogPrimitive.Close asChild>\n <button\n aria-label=\"Close lightbox\"\n className={controlButtonSmall}\n data-slot=\"lightbox-close\"\n type=\"button\"\n >\n <X className=\"size-6\" />\n </button>\n </DialogPrimitive.Close>\n </div>\n </div>\n\n {/* Navigation arrows */}\n {hasMultipleImages && (\n <>\n <button\n className={cn(\n \"absolute left-4 top-1/2 z-10 -translate-y-1/2\",\n controlButtonLarge,\n controlButtonDisabled\n )}\n aria-label=\"Previous image\"\n data-slot=\"lightbox-prev\"\n disabled={!canGoPrev}\n type=\"button\"\n onClick={goPrev}\n >\n <ChevronLeft className=\"size-8\" />\n </button>\n <button\n className={cn(\n \"absolute right-4 top-1/2 z-10 -translate-y-1/2\",\n controlButtonLarge,\n controlButtonDisabled\n )}\n aria-label=\"Next image\"\n data-slot=\"lightbox-next\"\n disabled={!canGoNext}\n type=\"button\"\n onClick={goNext}\n >\n <ChevronRight className=\"size-8\" />\n </button>\n </>\n )}\n\n {/* Main image area */}\n <div\n className={cn(\n \"flex flex-1 items-center justify-center\",\n showThumbnails ? \"pb-24\" : \"pb-20\",\n \"pt-16 px-16\"\n )}\n data-slot=\"lightbox-image-container\"\n >\n {imageLoading && (\n <div\n className=\"absolute inset-0 flex items-center justify-center\"\n data-loading=\"true\"\n >\n <div className=\"size-12 animate-spin rounded-full border-4 border-white/20 border-t-white\" />\n </div>\n )}\n {imageError ? (\n <div\n className=\"flex flex-col items-center justify-center gap-4 text-white/70\"\n data-error=\"true\"\n >\n <X className=\"size-16 text-white/40\" />\n <span>Failed to load image</span>\n </div>\n ) : (\n <img\n className={cn(\n \"max-h-full max-w-full object-contain transition-all duration-200\",\n imageLoading ? \"opacity-0\" : \"opacity-100\"\n )}\n alt={currentImage.alt}\n data-slot=\"lightbox-image\"\n src={currentImage.src}\n style={{ transform: `scale(${String(zoom)})` }}\n onError={handleImageError}\n onLoad={handleImageLoad}\n />\n )}\n </div>\n\n {/* Bottom controls bar */}\n <div\n className={cn(\n \"absolute bottom-0 left-0 right-0 z-10 flex flex-col items-center gap-[var(--lightbox-footer-gap)] p-[var(--lightbox-footer-padding)]\",\n showThumbnails ? \"pb-4\" : \"pb-6\"\n )}\n data-slot=\"lightbox-footer\"\n >\n {/* Zoom controls */}\n {enableZoom && (\n <div\n className=\"flex items-center gap-2\"\n data-slot=\"lightbox-zoom-controls\"\n >\n <button\n aria-label=\"Zoom out\"\n className={cn(controlButtonSmall, controlButtonDisabled)}\n data-slot=\"lightbox-zoom-out\"\n disabled={zoom <= 0.5}\n type=\"button\"\n onClick={handleZoomOut}\n >\n <ZoomOut className=\"size-5\" />\n </button>\n <span className=\"min-w-[4ch] text-center text-sm text-white/70\">\n {Math.round(zoom * 100)}%\n </span>\n <button\n aria-label=\"Zoom in\"\n className={cn(controlButtonSmall, controlButtonDisabled)}\n data-slot=\"lightbox-zoom-in\"\n disabled={zoom >= 3}\n type=\"button\"\n onClick={handleZoomIn}\n >\n <ZoomIn className=\"size-5\" />\n </button>\n </div>\n )}\n\n {/* Caption */}\n {showCaption && currentImage.caption && (\n <p\n className=\"text-center text-sm text-white/90\"\n data-slot=\"lightbox-caption\"\n id=\"lightbox-caption\"\n >\n {currentImage.caption}\n </p>\n )}\n\n {/* Thumbnails strip */}\n {showThumbnails && hasMultipleImages && (\n <div\n aria-label=\"Image thumbnails\"\n className=\"flex max-w-full gap-[var(--lightbox-thumbnail-gap)] overflow-x-auto px-4 py-2\"\n data-slot=\"lightbox-thumbnails\"\n role=\"tablist\"\n >\n {images.map((image, index) => (\n <button\n key={image.id}\n className={cn(\n \"relative size-[var(--lightbox-thumbnail-size)] shrink-0 overflow-hidden rounded-md transition-all\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50\",\n index === currentIndex\n ? \"ring-2 ring-white ring-offset-2 ring-offset-black/90\"\n : \"opacity-[var(--lightbox-thumbnail-opacity-inactive)] hover:opacity-100\"\n )}\n aria-label={`View ${image.alt}`}\n aria-selected={index === currentIndex}\n data-slot=\"lightbox-thumbnail\"\n role=\"tab\"\n type=\"button\"\n onClick={() => {\n goToIndex(index)\n }}\n >\n <img\n alt={image.alt}\n className=\"size-full object-cover\"\n loading=\"lazy\"\n src={image.thumbnail ?? image.src}\n />\n </button>\n ))}\n </div>\n )}\n </div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nexport { Lightbox }\nexport type { LightboxImage, LightboxProps }\n"]}
@@ -126,8 +126,8 @@ function FileDropzone({
126
126
  )
127
127
  }
128
128
  ),
129
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: isDragActive ? isDragReject ? "File type not accepted" : "Drop files here..." : "Drag files here or click to upload" }),
130
- /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground mt-1", children: [
129
+ /* @__PURE__ */ jsx("p", { className: "text-[length:var(--text-font-size-lg)] leading-[var(--text-line-height-lg)] font-normal", children: isDragActive ? isDragReject ? "File type not accepted" : "Drop files here..." : "Drag files here or click to upload" }),
130
+ /* @__PURE__ */ jsxs("p", { className: "text-[length:var(--text-font-size-base)] leading-[var(--text-line-height-base)] text-muted-foreground mt-1", children: [
131
131
  maxSize !== void 0 && `Max size: ${formatBytes(maxSize)}`,
132
132
  maxSize !== void 0 && maxFiles !== void 0 && " \u2022 ",
133
133
  maxFiles !== void 0 && `Max ${String(maxFiles)} file${maxFiles > 1 ? "s" : ""}`
@@ -171,5 +171,5 @@ function formatBytes(bytes) {
171
171
  FileDropzone.displayName = "FileDropzone";
172
172
 
173
173
  export { FileDropzone, fileDropzoneVariants };
174
- //# sourceMappingURL=chunk-W4NC5CU5.js.map
175
- //# sourceMappingURL=chunk-W4NC5CU5.js.map
174
+ //# sourceMappingURL=chunk-2Q4I4VDB.js.map
175
+ //# sourceMappingURL=chunk-2Q4I4VDB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/advanced/FileDropzone/FileDropzone.variants.ts","../src/components/advanced/FileDropzone/FileDropzone.tsx"],"names":["acceptedFiles","fileRejections"],"mappings":"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","file":"chunk-W4NC5CU5.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const fileDropzoneVariants = cva(\n [\n \"flex flex-col items-center justify-center\",\n \"border-2 border-dashed rounded-lg\",\n \"transition-colors duration-200\",\n \"cursor-pointer\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n variant: {\n default: \"gap-2 p-8 bg-muted/50 border-muted-foreground/25\",\n compact: \"gap-1 p-4 bg-muted/50 border-muted-foreground/25\",\n image: \"gap-2 p-8 bg-muted/50 border-muted-foreground/25 aspect-video\",\n },\n isDragActive: {\n true: \"border-primary bg-primary/5\",\n false: \"\",\n },\n isDragReject: {\n true: \"border-destructive bg-destructive/5\",\n false: \"\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed pointer-events-none\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n isDragActive: false,\n isDragReject: false,\n disabled: false,\n className: \"hover:border-primary hover:bg-primary/5\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n isDragActive: false,\n isDragReject: false,\n disabled: false,\n },\n }\n)\n","\"use client\"\n\nimport type { FileDropzoneProps } from \"./FileDropzone.types\"\nimport type { DropEvent, FileRejection } from \"react-dropzone\"\n\nimport { UploadCloudIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useDropzone } from \"react-dropzone\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { fileDropzoneVariants } from \"./FileDropzone.variants\"\n\n/**\n * FileDropzone - Drag and drop file upload component\n *\n * A flexible dropzone component built on react-dropzone that provides\n * visual feedback during drag operations and supports file validation.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <FileDropzone onDrop={(files) => console.log(files)}>\n * <p>Drag files here or click to upload</p>\n * </FileDropzone>\n *\n * // With validation\n * <FileDropzone\n * accept={{ \"image/*\": [\".png\", \".jpg\"] }}\n * maxSize={5 * 1024 * 1024}\n * maxFiles={5}\n * onDrop={(files) => handleFiles(files)}\n * onReject={(rejections) => handleErrors(rejections)}\n * >\n * <p>Drop images here (max 5MB each)</p>\n * </FileDropzone>\n *\n * // With render props for custom state handling\n * <FileDropzone onDrop={handleDrop}>\n * {({ isDragActive, isDragReject }) => (\n * <div className={isDragActive ? \"bg-blue-50\" : \"\"}>\n * {isDragReject ? \"Invalid file type\" : \"Drop files here\"}\n * </div>\n * )}\n * </FileDropzone>\n * ```\n */\nfunction FileDropzone({\n accept,\n children,\n className,\n disabled = false,\n maxFiles,\n maxSize,\n minSize,\n multiple = true,\n noClick = false,\n noDrag = false,\n noKeyboard = false,\n onDrop,\n onReject,\n variant = \"default\",\n ...props\n}: FileDropzoneProps) {\n const handleDrop = React.useCallback(\n (\n acceptedFiles: File[],\n fileRejections: FileRejection[],\n event: DropEvent\n ) => {\n onDrop?.(acceptedFiles, fileRejections, event)\n\n if (fileRejections.length > 0) {\n onReject?.(fileRejections)\n }\n },\n [onDrop, onReject]\n )\n\n const {\n acceptedFiles,\n fileRejections,\n getInputProps,\n getRootProps,\n isDragAccept,\n isDragActive,\n isDragReject,\n isFileDialogActive,\n isFocused,\n open,\n } = useDropzone({\n accept,\n disabled,\n maxFiles,\n maxSize,\n minSize,\n multiple,\n noClick,\n noDrag,\n noKeyboard,\n onDrop: handleDrop,\n ...props,\n })\n\n const dropzoneState = {\n acceptedFiles,\n fileRejections,\n isDragAccept,\n isDragActive,\n isDragReject,\n isFileDialogActive,\n isFocused,\n open,\n }\n\n const renderContent = () => {\n if (typeof children === \"function\") {\n return children(dropzoneState)\n }\n\n if (children) {\n return children\n }\n\n // Default content\n return (\n <>\n <UploadCloudIcon\n className={cn(\n \"size-10 mb-2\",\n isDragActive ? \"text-primary\" : \"text-muted-foreground\"\n )}\n />\n <p className=\"text-sm font-medium\">\n {isDragActive\n ? isDragReject\n ? \"File type not accepted\"\n : \"Drop files here...\"\n : \"Drag files here or click to upload\"}\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n {maxSize !== undefined && `Max size: ${formatBytes(maxSize)}`}\n {maxSize !== undefined && maxFiles !== undefined && \" • \"}\n {maxFiles !== undefined && `Max ${String(maxFiles)} file${maxFiles > 1 ? \"s\" : \"\"}`}\n </p>\n </>\n )\n }\n\n return (\n <div\n {...getRootProps({\n className: cn(\n fileDropzoneVariants({\n variant,\n isDragActive,\n isDragReject,\n disabled,\n }),\n className\n ),\n \"data-slot\": \"file-dropzone\",\n \"data-drag-active\": isDragActive,\n \"data-drag-accept\": isDragAccept,\n \"data-drag-reject\": isDragReject,\n \"data-disabled\": disabled,\n \"aria-disabled\": disabled,\n })}\n >\n <input {...getInputProps()} data-slot=\"file-dropzone-input\" />\n {renderContent()}\n </div>\n )\n}\n\n/**\n * Format bytes to human readable string\n */\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 B\"\n const k = 1024\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\"]\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n return `${String(Number.parseFloat((bytes / Math.pow(k, i)).toFixed(1)))} ${sizes[i] ?? \"\"}`\n}\n\nFileDropzone.displayName = \"FileDropzone\"\n\nexport { FileDropzone }\n"]}
1
+ {"version":3,"sources":["../src/components/advanced/FileDropzone/FileDropzone.variants.ts","../src/components/advanced/FileDropzone/FileDropzone.tsx"],"names":["acceptedFiles","fileRejections"],"mappings":"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","file":"chunk-2Q4I4VDB.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const fileDropzoneVariants = cva(\n [\n \"flex flex-col items-center justify-center\",\n \"border-2 border-dashed rounded-lg\",\n \"transition-colors duration-200\",\n \"cursor-pointer\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n variant: {\n default: \"gap-2 p-8 bg-muted/50 border-muted-foreground/25\",\n compact: \"gap-1 p-4 bg-muted/50 border-muted-foreground/25\",\n image: \"gap-2 p-8 bg-muted/50 border-muted-foreground/25 aspect-video\",\n },\n isDragActive: {\n true: \"border-primary bg-primary/5\",\n false: \"\",\n },\n isDragReject: {\n true: \"border-destructive bg-destructive/5\",\n false: \"\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed pointer-events-none\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n isDragActive: false,\n isDragReject: false,\n disabled: false,\n className: \"hover:border-primary hover:bg-primary/5\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n isDragActive: false,\n isDragReject: false,\n disabled: false,\n },\n }\n)\n","\"use client\"\n\nimport type { FileDropzoneProps } from \"./FileDropzone.types\"\nimport type { DropEvent, FileRejection } from \"react-dropzone\"\n\nimport { UploadCloudIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useDropzone } from \"react-dropzone\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { fileDropzoneVariants } from \"./FileDropzone.variants\"\n\n/**\n * FileDropzone - Drag and drop file upload component\n *\n * A flexible dropzone component built on react-dropzone that provides\n * visual feedback during drag operations and supports file validation.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <FileDropzone onDrop={(files) => console.log(files)}>\n * <p>Drag files here or click to upload</p>\n * </FileDropzone>\n *\n * // With validation\n * <FileDropzone\n * accept={{ \"image/*\": [\".png\", \".jpg\"] }}\n * maxSize={5 * 1024 * 1024}\n * maxFiles={5}\n * onDrop={(files) => handleFiles(files)}\n * onReject={(rejections) => handleErrors(rejections)}\n * >\n * <p>Drop images here (max 5MB each)</p>\n * </FileDropzone>\n *\n * // With render props for custom state handling\n * <FileDropzone onDrop={handleDrop}>\n * {({ isDragActive, isDragReject }) => (\n * <div className={isDragActive ? \"bg-blue-50\" : \"\"}>\n * {isDragReject ? \"Invalid file type\" : \"Drop files here\"}\n * </div>\n * )}\n * </FileDropzone>\n * ```\n */\nfunction FileDropzone({\n accept,\n children,\n className,\n disabled = false,\n maxFiles,\n maxSize,\n minSize,\n multiple = true,\n noClick = false,\n noDrag = false,\n noKeyboard = false,\n onDrop,\n onReject,\n variant = \"default\",\n ...props\n}: FileDropzoneProps) {\n const handleDrop = React.useCallback(\n (\n acceptedFiles: File[],\n fileRejections: FileRejection[],\n event: DropEvent\n ) => {\n onDrop?.(acceptedFiles, fileRejections, event)\n\n if (fileRejections.length > 0) {\n onReject?.(fileRejections)\n }\n },\n [onDrop, onReject]\n )\n\n const {\n acceptedFiles,\n fileRejections,\n getInputProps,\n getRootProps,\n isDragAccept,\n isDragActive,\n isDragReject,\n isFileDialogActive,\n isFocused,\n open,\n } = useDropzone({\n accept,\n disabled,\n maxFiles,\n maxSize,\n minSize,\n multiple,\n noClick,\n noDrag,\n noKeyboard,\n onDrop: handleDrop,\n ...props,\n })\n\n const dropzoneState = {\n acceptedFiles,\n fileRejections,\n isDragAccept,\n isDragActive,\n isDragReject,\n isFileDialogActive,\n isFocused,\n open,\n }\n\n const renderContent = () => {\n if (typeof children === \"function\") {\n return children(dropzoneState)\n }\n\n if (children) {\n return children\n }\n\n // Default content\n return (\n <>\n <UploadCloudIcon\n className={cn(\n \"size-10 mb-2\",\n isDragActive ? \"text-primary\" : \"text-muted-foreground\"\n )}\n />\n <p className=\"text-[length:var(--text-font-size-lg)] leading-[var(--text-line-height-lg)] font-normal\">\n {isDragActive\n ? isDragReject\n ? \"File type not accepted\"\n : \"Drop files here...\"\n : \"Drag files here or click to upload\"}\n </p>\n <p className=\"text-[length:var(--text-font-size-base)] leading-[var(--text-line-height-base)] text-muted-foreground mt-1\">\n {maxSize !== undefined && `Max size: ${formatBytes(maxSize)}`}\n {maxSize !== undefined && maxFiles !== undefined && \" • \"}\n {maxFiles !== undefined && `Max ${String(maxFiles)} file${maxFiles > 1 ? \"s\" : \"\"}`}\n </p>\n </>\n )\n }\n\n return (\n <div\n {...getRootProps({\n className: cn(\n fileDropzoneVariants({\n variant,\n isDragActive,\n isDragReject,\n disabled,\n }),\n className\n ),\n \"data-slot\": \"file-dropzone\",\n \"data-drag-active\": isDragActive,\n \"data-drag-accept\": isDragAccept,\n \"data-drag-reject\": isDragReject,\n \"data-disabled\": disabled,\n \"aria-disabled\": disabled,\n })}\n >\n <input {...getInputProps()} data-slot=\"file-dropzone-input\" />\n {renderContent()}\n </div>\n )\n}\n\n/**\n * Format bytes to human readable string\n */\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 B\"\n const k = 1024\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\"]\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n return `${String(Number.parseFloat((bytes / Math.pow(k, i)).toFixed(1)))} ${sizes[i] ?? \"\"}`\n}\n\nFileDropzone.displayName = \"FileDropzone\"\n\nexport { FileDropzone }\n"]}
@@ -1,7 +1,7 @@
1
1
  import { NumberInput } from './chunk-U74PNG4S.js';
2
+ import { Dialog, DialogContent, DialogTitle } from './chunk-ZUFM33AV.js';
2
3
  import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-WBE6VQOO.js';
3
4
  import { Checkbox } from './chunk-XETKCF73.js';
4
- import { Dialog, DialogContent, DialogTitle } from './chunk-ZUFM33AV.js';
5
5
  import { Popover, PopoverAnchor, PopoverContent } from './chunk-AFCSDND5.js';
6
6
  import { cn } from './chunk-HRNDJU7D.js';
7
7
  import { Table, Filter, X, Shapes, Search } from 'lucide-react';
@@ -830,5 +830,5 @@ function ReportBuilder({
830
830
  }
831
831
 
832
832
  export { ReportBuilder };
833
- //# sourceMappingURL=chunk-2HM5Z2YP.js.map
834
- //# sourceMappingURL=chunk-2HM5Z2YP.js.map
833
+ //# sourceMappingURL=chunk-2YWWZEPE.js.map
834
+ //# sourceMappingURL=chunk-2YWWZEPE.js.map