@etus/ui 0.4.0-beta.17 → 0.4.0-beta.18

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 (264) hide show
  1. package/dist/{chunk-U6EOAIPK.js → chunk-2X35C55E.js} +3 -3
  2. package/dist/chunk-2X35C55E.js.map +1 -0
  3. package/dist/{chunk-UYC7M3FM.js → chunk-34WNJNPL.js} +5 -5
  4. package/dist/{chunk-UYC7M3FM.js.map → chunk-34WNJNPL.js.map} +1 -1
  5. package/dist/{chunk-N4UTBJRY.js → chunk-3NHH7VPI.js} +3 -3
  6. package/dist/{chunk-N4UTBJRY.js.map → chunk-3NHH7VPI.js.map} +1 -1
  7. package/dist/{chunk-OEXQ2MOY.js → chunk-45YJLE4R.js} +3 -3
  8. package/dist/{chunk-OEXQ2MOY.js.map → chunk-45YJLE4R.js.map} +1 -1
  9. package/dist/{chunk-66TBTTZO.js → chunk-46SUPGQV.js} +14 -14
  10. package/dist/chunk-46SUPGQV.js.map +1 -0
  11. package/dist/{chunk-3W7FXRO5.js → chunk-56TC4CPT.js} +4 -4
  12. package/dist/{chunk-3W7FXRO5.js.map → chunk-56TC4CPT.js.map} +1 -1
  13. package/dist/{chunk-NCT5WXKG.js → chunk-5ACHKT35.js} +3 -3
  14. package/dist/{chunk-NCT5WXKG.js.map → chunk-5ACHKT35.js.map} +1 -1
  15. package/dist/{chunk-GGUWEAYD.js → chunk-5E44I7PB.js} +3 -3
  16. package/dist/{chunk-GGUWEAYD.js.map → chunk-5E44I7PB.js.map} +1 -1
  17. package/dist/{chunk-T6XRYT6Q.js → chunk-5K2SOCOX.js} +3 -3
  18. package/dist/{chunk-T6XRYT6Q.js.map → chunk-5K2SOCOX.js.map} +1 -1
  19. package/dist/{chunk-VT4IMHGE.js → chunk-5TABQJDW.js} +4 -4
  20. package/dist/chunk-5TABQJDW.js.map +1 -0
  21. package/dist/{chunk-4GVOOXYD.js → chunk-6ABGMOE2.js} +5 -5
  22. package/dist/chunk-6ABGMOE2.js.map +1 -0
  23. package/dist/{chunk-Q43KJP5A.js → chunk-6F5NWXZF.js} +7 -7
  24. package/dist/{chunk-Q43KJP5A.js.map → chunk-6F5NWXZF.js.map} +1 -1
  25. package/dist/{chunk-4RSHPKHB.js → chunk-6KMRMXR6.js} +3 -3
  26. package/dist/{chunk-4RSHPKHB.js.map → chunk-6KMRMXR6.js.map} +1 -1
  27. package/dist/{chunk-7J5OM4ZD.js → chunk-7CMOCWFX.js} +4 -4
  28. package/dist/{chunk-7J5OM4ZD.js.map → chunk-7CMOCWFX.js.map} +1 -1
  29. package/dist/{chunk-G7PBPX3K.js → chunk-7VGF6ZVE.js} +4 -4
  30. package/dist/{chunk-G7PBPX3K.js.map → chunk-7VGF6ZVE.js.map} +1 -1
  31. package/dist/{chunk-E2TI5V67.js → chunk-A4O3USMA.js} +3 -3
  32. package/dist/{chunk-E2TI5V67.js.map → chunk-A4O3USMA.js.map} +1 -1
  33. package/dist/{chunk-UPK5B2FL.js → chunk-AKRVZ2YW.js} +6 -6
  34. package/dist/chunk-AKRVZ2YW.js.map +1 -0
  35. package/dist/{chunk-VBJ26PZJ.js → chunk-AP3T3KMY.js} +3 -3
  36. package/dist/{chunk-VBJ26PZJ.js.map → chunk-AP3T3KMY.js.map} +1 -1
  37. package/dist/{chunk-X3AXEE3S.js → chunk-AR7K7Y4L.js} +3 -3
  38. package/dist/{chunk-X3AXEE3S.js.map → chunk-AR7K7Y4L.js.map} +1 -1
  39. package/dist/{chunk-WKWLKGNI.js → chunk-ARYBNQNS.js} +4 -4
  40. package/dist/chunk-ARYBNQNS.js.map +1 -0
  41. package/dist/{chunk-P27ERD6W.js → chunk-B2OCNHUW.js} +8 -8
  42. package/dist/{chunk-P27ERD6W.js.map → chunk-B2OCNHUW.js.map} +1 -1
  43. package/dist/{chunk-3NLWCX2F.js → chunk-DI3AISAZ.js} +3 -3
  44. package/dist/{chunk-3NLWCX2F.js.map → chunk-DI3AISAZ.js.map} +1 -1
  45. package/dist/{chunk-W3JVNX35.js → chunk-DSCLJ3GK.js} +4 -4
  46. package/dist/{chunk-W3JVNX35.js.map → chunk-DSCLJ3GK.js.map} +1 -1
  47. package/dist/{chunk-3KOLK3OB.js → chunk-EC5YEK3C.js} +3 -3
  48. package/dist/{chunk-3KOLK3OB.js.map → chunk-EC5YEK3C.js.map} +1 -1
  49. package/dist/{chunk-YUHPTV2A.js → chunk-EDSDAX56.js} +3 -3
  50. package/dist/{chunk-YUHPTV2A.js.map → chunk-EDSDAX56.js.map} +1 -1
  51. package/dist/{chunk-IRIIK3BU.js → chunk-F4EX3622.js} +10 -10
  52. package/dist/chunk-F4EX3622.js.map +1 -0
  53. package/dist/{chunk-XYYOV5GW.js → chunk-F5X2BBGU.js} +4 -4
  54. package/dist/{chunk-XYYOV5GW.js.map → chunk-F5X2BBGU.js.map} +1 -1
  55. package/dist/{chunk-BS5XDYOE.js → chunk-FLERVSKG.js} +5 -5
  56. package/dist/{chunk-BS5XDYOE.js.map → chunk-FLERVSKG.js.map} +1 -1
  57. package/dist/{chunk-TAZPML2P.js → chunk-G2CMEHW6.js} +3 -3
  58. package/dist/{chunk-TAZPML2P.js.map → chunk-G2CMEHW6.js.map} +1 -1
  59. package/dist/{chunk-TQBUBD3E.js → chunk-H7JHFBFD.js} +3 -3
  60. package/dist/{chunk-TQBUBD3E.js.map → chunk-H7JHFBFD.js.map} +1 -1
  61. package/dist/{chunk-Y4RKKQMB.js → chunk-HA5YVDHW.js} +3 -3
  62. package/dist/chunk-HA5YVDHW.js.map +1 -0
  63. package/dist/{chunk-ZKK7L7H7.js → chunk-HP7LEQJR.js} +3 -3
  64. package/dist/{chunk-ZKK7L7H7.js.map → chunk-HP7LEQJR.js.map} +1 -1
  65. package/dist/{chunk-W7S7GPU5.js → chunk-HV2ZZXFN.js} +4 -4
  66. package/dist/{chunk-W7S7GPU5.js.map → chunk-HV2ZZXFN.js.map} +1 -1
  67. package/dist/{chunk-K45MMHLA.js → chunk-HVFACGNK.js} +4 -4
  68. package/dist/{chunk-K45MMHLA.js.map → chunk-HVFACGNK.js.map} +1 -1
  69. package/dist/{chunk-R3HUGCGR.js → chunk-HZ47LQFJ.js} +4 -4
  70. package/dist/{chunk-R3HUGCGR.js.map → chunk-HZ47LQFJ.js.map} +1 -1
  71. package/dist/{chunk-4KOJTZVU.js → chunk-IA24GUNV.js} +25 -25
  72. package/dist/chunk-IA24GUNV.js.map +1 -0
  73. package/dist/{chunk-D6TH3EGA.js → chunk-IQKKPOI7.js} +4 -4
  74. package/dist/{chunk-D6TH3EGA.js.map → chunk-IQKKPOI7.js.map} +1 -1
  75. package/dist/{chunk-WXBC3D2N.js → chunk-IRFAIJLV.js} +4 -4
  76. package/dist/{chunk-WXBC3D2N.js.map → chunk-IRFAIJLV.js.map} +1 -1
  77. package/dist/{chunk-SXPBKGLT.js → chunk-J62NPPDO.js} +3 -3
  78. package/dist/{chunk-SXPBKGLT.js.map → chunk-J62NPPDO.js.map} +1 -1
  79. package/dist/{chunk-TNDW52VZ.js → chunk-JDG5A44W.js} +20 -13
  80. package/dist/chunk-JDG5A44W.js.map +1 -0
  81. package/dist/{chunk-Z4KW5VW6.js → chunk-JRVUEOKT.js} +5 -5
  82. package/dist/{chunk-Z4KW5VW6.js.map → chunk-JRVUEOKT.js.map} +1 -1
  83. package/dist/{chunk-NXQ25PKF.js → chunk-K43MPWTO.js} +7 -7
  84. package/dist/chunk-K43MPWTO.js.map +1 -0
  85. package/dist/{chunk-2ROFZG3A.js → chunk-KA7747GR.js} +3 -3
  86. package/dist/{chunk-2ROFZG3A.js.map → chunk-KA7747GR.js.map} +1 -1
  87. package/dist/{chunk-OBRJXVWO.js → chunk-KYURFRCH.js} +4 -4
  88. package/dist/{chunk-OBRJXVWO.js.map → chunk-KYURFRCH.js.map} +1 -1
  89. package/dist/{chunk-EYSTEGV5.js → chunk-LR56MGWT.js} +7 -7
  90. package/dist/{chunk-EYSTEGV5.js.map → chunk-LR56MGWT.js.map} +1 -1
  91. package/dist/{chunk-6ZAMTPGN.js → chunk-M6VBDPNQ.js} +3 -3
  92. package/dist/{chunk-6ZAMTPGN.js.map → chunk-M6VBDPNQ.js.map} +1 -1
  93. package/dist/{chunk-JPA2VQRW.js → chunk-MAM5PTRV.js} +3 -3
  94. package/dist/{chunk-JPA2VQRW.js.map → chunk-MAM5PTRV.js.map} +1 -1
  95. package/dist/{chunk-3L5G7VI2.js → chunk-MAM6VUKD.js} +3 -3
  96. package/dist/chunk-MAM6VUKD.js.map +1 -0
  97. package/dist/{chunk-LLI3JFJL.js → chunk-MLSIZ6JU.js} +4 -4
  98. package/dist/{chunk-LLI3JFJL.js.map → chunk-MLSIZ6JU.js.map} +1 -1
  99. package/dist/{chunk-U2R47SPY.js → chunk-NULX3RRN.js} +4 -4
  100. package/dist/{chunk-U2R47SPY.js.map → chunk-NULX3RRN.js.map} +1 -1
  101. package/dist/{chunk-GL56KIFL.js → chunk-OG3M4CMJ.js} +3 -3
  102. package/dist/{chunk-GL56KIFL.js.map → chunk-OG3M4CMJ.js.map} +1 -1
  103. package/dist/{chunk-7EGN7IGY.js → chunk-OR3NPCY2.js} +3 -3
  104. package/dist/{chunk-7EGN7IGY.js.map → chunk-OR3NPCY2.js.map} +1 -1
  105. package/dist/{chunk-5I7AXWJU.js → chunk-PGRMKSVA.js} +4 -4
  106. package/dist/{chunk-5I7AXWJU.js.map → chunk-PGRMKSVA.js.map} +1 -1
  107. package/dist/{chunk-VZZ3HP7G.js → chunk-PM344VOQ.js} +3 -3
  108. package/dist/{chunk-VZZ3HP7G.js.map → chunk-PM344VOQ.js.map} +1 -1
  109. package/dist/{chunk-46ESMCEQ.js → chunk-QBLU7J34.js} +5 -5
  110. package/dist/chunk-QBLU7J34.js.map +1 -0
  111. package/dist/{chunk-U74PNG4S.js → chunk-SMVH56FQ.js} +3 -3
  112. package/dist/{chunk-U74PNG4S.js.map → chunk-SMVH56FQ.js.map} +1 -1
  113. package/dist/{chunk-DYDXGWH2.js → chunk-T3LWBCVR.js} +4 -4
  114. package/dist/chunk-T3LWBCVR.js.map +1 -0
  115. package/dist/{chunk-ZP4HYVDG.js → chunk-TA4HCLP3.js} +3 -3
  116. package/dist/{chunk-ZP4HYVDG.js.map → chunk-TA4HCLP3.js.map} +1 -1
  117. package/dist/{chunk-7HT32DZG.js → chunk-TGLALXPU.js} +3 -3
  118. package/dist/{chunk-7HT32DZG.js.map → chunk-TGLALXPU.js.map} +1 -1
  119. package/dist/{chunk-5GE3BQA7.js → chunk-USPITOG4.js} +5 -5
  120. package/dist/chunk-USPITOG4.js.map +1 -0
  121. package/dist/{chunk-XLTSCY22.js → chunk-UYPYAOET.js} +4 -4
  122. package/dist/chunk-UYPYAOET.js.map +1 -0
  123. package/dist/{chunk-P7D6S6GX.js → chunk-V7O4X3AE.js} +38 -4
  124. package/dist/chunk-V7O4X3AE.js.map +1 -0
  125. package/dist/{chunk-2YSZPUQZ.js → chunk-VTDSGJ4R.js} +3 -3
  126. package/dist/{chunk-2YSZPUQZ.js.map → chunk-VTDSGJ4R.js.map} +1 -1
  127. package/dist/{chunk-4Y72SPNL.js → chunk-VUHJTTPV.js} +4 -4
  128. package/dist/chunk-VUHJTTPV.js.map +1 -0
  129. package/dist/{chunk-VLDAHAG6.js → chunk-VV6QE3M2.js} +4 -4
  130. package/dist/{chunk-VLDAHAG6.js.map → chunk-VV6QE3M2.js.map} +1 -1
  131. package/dist/{chunk-H5N3VPBG.js → chunk-WBERMEN7.js} +3 -3
  132. package/dist/{chunk-H5N3VPBG.js.map → chunk-WBERMEN7.js.map} +1 -1
  133. package/dist/{chunk-OXDWUKGP.js → chunk-WCMRVCIM.js} +4 -4
  134. package/dist/chunk-WCMRVCIM.js.map +1 -0
  135. package/dist/{chunk-IFHF4UES.js → chunk-WQI2USN7.js} +11 -11
  136. package/dist/chunk-WQI2USN7.js.map +1 -0
  137. package/dist/{chunk-CKD4UBV6.js → chunk-WVFQKBDB.js} +3 -3
  138. package/dist/{chunk-CKD4UBV6.js.map → chunk-WVFQKBDB.js.map} +1 -1
  139. package/dist/{chunk-3NSIUZGP.js → chunk-WZ2J4ALB.js} +3 -3
  140. package/dist/{chunk-3NSIUZGP.js.map → chunk-WZ2J4ALB.js.map} +1 -1
  141. package/dist/{chunk-7TF5PVEU.js → chunk-X5XP5QVO.js} +5 -5
  142. package/dist/chunk-X5XP5QVO.js.map +1 -0
  143. package/dist/{chunk-7Y2UQMX6.js → chunk-XKO6G5H2.js} +36 -36
  144. package/dist/chunk-XKO6G5H2.js.map +1 -0
  145. package/dist/{chunk-SUU3HNOX.js → chunk-XORDGKZI.js} +4 -4
  146. package/dist/{chunk-SUU3HNOX.js.map → chunk-XORDGKZI.js.map} +1 -1
  147. package/dist/{chunk-VAVE4ZJF.js → chunk-YGLD22TU.js} +3 -3
  148. package/dist/chunk-YGLD22TU.js.map +1 -0
  149. package/dist/{chunk-XOGMDABS.js → chunk-ZHUW6UYD.js} +8 -8
  150. package/dist/chunk-ZHUW6UYD.js.map +1 -0
  151. package/dist/{chunk-PWCMCMDN.js → chunk-ZMUUEXVD.js} +3 -3
  152. package/dist/{chunk-PWCMCMDN.js.map → chunk-ZMUUEXVD.js.map} +1 -1
  153. package/dist/components/advanced/Calendar/index.js +5 -5
  154. package/dist/components/advanced/EventCalendar/index.js +5 -5
  155. package/dist/components/advanced/FilterBuilder/index.js +7 -7
  156. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  157. package/dist/components/advanced/ReportBuilder/index.js +4 -4
  158. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  159. package/dist/components/advanced/index.js +16 -16
  160. package/dist/components/data-display/Callout/index.js +1 -1
  161. package/dist/components/data-display/Carousel/index.js +5 -5
  162. package/dist/components/data-display/ChartCard/index.js +2 -2
  163. package/dist/components/data-display/DataTable/FilterBuilder/index.js +7 -7
  164. package/dist/components/data-display/DataTable/index.js +10 -10
  165. package/dist/components/data-display/ImageGallery/index.js +6 -6
  166. package/dist/components/data-display/Item/index.js +2 -2
  167. package/dist/components/data-display/KPICard/index.js +3 -3
  168. package/dist/components/data-display/List/index.js +2 -2
  169. package/dist/components/data-display/SingleStat/index.js +1 -1
  170. package/dist/components/data-display/index.js +31 -31
  171. package/dist/components/feedback/AlertDialog/index.js +5 -5
  172. package/dist/components/feedback/ConfirmModal/index.js +6 -6
  173. package/dist/components/feedback/Modal/index.js +1 -1
  174. package/dist/components/feedback/UpdatesWidget/index.js +1 -1
  175. package/dist/components/feedback/index.js +10 -10
  176. package/dist/components/forms/ColorPicker/index.js +1 -1
  177. package/dist/components/forms/Combobox/index.js +1 -1
  178. package/dist/components/forms/DatePicker/index.js +6 -6
  179. package/dist/components/forms/DateRangePicker/index.js +6 -6
  180. package/dist/components/forms/EmailInput/index.js +3 -3
  181. package/dist/components/forms/Field/index.js +3 -3
  182. package/dist/components/forms/Form/index.js +2 -2
  183. package/dist/components/forms/InputGroup/index.js +8 -8
  184. package/dist/components/forms/InputOTPField/index.js +4 -4
  185. package/dist/components/forms/NativeSelect/index.js +1 -1
  186. package/dist/components/forms/NumberInput/index.js +2 -2
  187. package/dist/components/forms/PasswordInput/index.js +3 -3
  188. package/dist/components/forms/PaymentInput/index.js +1 -1
  189. package/dist/components/forms/PhoneInput/index.js +1 -1
  190. package/dist/components/forms/RadioButton/index.js +1 -1
  191. package/dist/components/forms/SearchInput/index.js +3 -3
  192. package/dist/components/forms/Slider/index.js +1 -1
  193. package/dist/components/forms/TagsInput/index.js +2 -2
  194. package/dist/components/forms/TextInput/index.js +2 -2
  195. package/dist/components/forms/Textarea/index.js +1 -1
  196. package/dist/components/forms/TextareaField/index.js +5 -5
  197. package/dist/components/forms/URLInput/index.js +3 -3
  198. package/dist/components/forms/index.js +33 -33
  199. package/dist/components/index.js +132 -132
  200. package/dist/components/layout/Card/index.js +1 -1
  201. package/dist/components/layout/Section/index.js +1 -1
  202. package/dist/components/layout/index.js +6 -6
  203. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  204. package/dist/components/navigation/ContextMenu/index.js +1 -1
  205. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  206. package/dist/components/navigation/FileTree/index.js +1 -1
  207. package/dist/components/navigation/Menu/index.js +1 -1
  208. package/dist/components/navigation/Menubar/index.js +1 -1
  209. package/dist/components/navigation/Navbar/index.js +1 -1
  210. package/dist/components/navigation/Pagination/index.js +5 -5
  211. package/dist/components/navigation/Sidebar/index.js +7 -7
  212. package/dist/components/navigation/Toolbar/index.js +1 -1
  213. package/dist/components/navigation/index.js +20 -20
  214. package/dist/components/primitives/Badge/index.js +1 -1
  215. package/dist/components/primitives/Button/index.js +4 -4
  216. package/dist/components/primitives/ButtonGroup/index.js +2 -2
  217. package/dist/components/primitives/ConfirmButton/index.js +6 -6
  218. package/dist/components/primitives/Divider/index.js +1 -1
  219. package/dist/components/primitives/FolderStack/index.js +1 -1
  220. package/dist/components/primitives/Image/index.js +1 -1
  221. package/dist/components/primitives/Label/index.js +1 -1
  222. package/dist/components/primitives/SplitButton/index.js +2 -2
  223. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  224. package/dist/components/primitives/Tag/index.js +1 -1
  225. package/dist/components/primitives/Thumbnail/index.js +2 -2
  226. package/dist/components/primitives/index.js +19 -19
  227. package/dist/components/workflow/ApprovalFlow/index.js +5 -5
  228. package/dist/components/workflow/CommentSystem/index.js +6 -6
  229. package/dist/components/workflow/Dashboard/index.js +5 -5
  230. package/dist/components/workflow/DashboardBuilder/index.js +8 -8
  231. package/dist/components/workflow/KanbanBoard/index.js +5 -5
  232. package/dist/components/workflow/ReportGenerator/index.js +6 -6
  233. package/dist/components/workflow/Stepper/index.js +1 -1
  234. package/dist/components/workflow/TaskStatus/index.js +2 -2
  235. package/dist/components/workflow/Wizard/index.js +6 -6
  236. package/dist/components/workflow/index.js +19 -19
  237. package/dist/index.d.ts +8 -1
  238. package/dist/index.js +132 -132
  239. package/dist/styles.css +27 -703
  240. package/package.json +2 -2
  241. package/dist/chunk-3L5G7VI2.js.map +0 -1
  242. package/dist/chunk-46ESMCEQ.js.map +0 -1
  243. package/dist/chunk-4GVOOXYD.js.map +0 -1
  244. package/dist/chunk-4KOJTZVU.js.map +0 -1
  245. package/dist/chunk-4Y72SPNL.js.map +0 -1
  246. package/dist/chunk-5GE3BQA7.js.map +0 -1
  247. package/dist/chunk-66TBTTZO.js.map +0 -1
  248. package/dist/chunk-7TF5PVEU.js.map +0 -1
  249. package/dist/chunk-7Y2UQMX6.js.map +0 -1
  250. package/dist/chunk-DYDXGWH2.js.map +0 -1
  251. package/dist/chunk-IFHF4UES.js.map +0 -1
  252. package/dist/chunk-IRIIK3BU.js.map +0 -1
  253. package/dist/chunk-NXQ25PKF.js.map +0 -1
  254. package/dist/chunk-OXDWUKGP.js.map +0 -1
  255. package/dist/chunk-P7D6S6GX.js.map +0 -1
  256. package/dist/chunk-TNDW52VZ.js.map +0 -1
  257. package/dist/chunk-U6EOAIPK.js.map +0 -1
  258. package/dist/chunk-UPK5B2FL.js.map +0 -1
  259. package/dist/chunk-VAVE4ZJF.js.map +0 -1
  260. package/dist/chunk-VT4IMHGE.js.map +0 -1
  261. package/dist/chunk-WKWLKGNI.js.map +0 -1
  262. package/dist/chunk-XLTSCY22.js.map +0 -1
  263. package/dist/chunk-XOGMDABS.js.map +0 -1
  264. package/dist/chunk-Y4RKKQMB.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Label } from './chunk-2ROFZG3A.js';
1
+ import { Label } from './chunk-KA7747GR.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import * as React from 'react';
@@ -155,5 +155,5 @@ function FormMessage({
155
155
  }
156
156
 
157
157
  export { Form, FormControl, FormDescription, FormField, FormFieldContext, FormItem, FormItemContext, FormLabel, FormMessage, formDescriptionVariants, formItemVariants, formLabelVariants, formMessageVariants, useFormField };
158
- //# sourceMappingURL=chunk-NCT5WXKG.js.map
159
- //# sourceMappingURL=chunk-NCT5WXKG.js.map
158
+ //# sourceMappingURL=chunk-5ACHKT35.js.map
159
+ //# sourceMappingURL=chunk-5ACHKT35.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/Form/Form.variants.ts","../src/components/forms/Form/Form.tsx"],"names":[],"mappings":"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","file":"chunk-NCT5WXKG.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * FormItem variant styles using CVA\n *\n * Controls spacing and layout for form field containers.\n */\nexport const formItemVariants = cva(\"grid gap-2\", {\n variants: {\n spacing: {\n default: \"gap-2\",\n tight: \"gap-1\",\n loose: \"gap-3\",\n },\n },\n defaultVariants: {\n spacing: \"default\",\n },\n})\n\n/**\n * FormLabel variant styles using CVA\n *\n * Handles label styling with error state support.\n */\nexport const formLabelVariants = cva(\n \"text-[length:var(--form-label-size)] font-[var(--form-label-weight)] text-[color:var(--form-label-fg)] leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n error: {\n true: \"text-[color:var(--form-error-fg)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n error: false,\n },\n }\n)\n\n/**\n * FormDescription variant styles using CVA\n *\n * Provides consistent styling for field helper text.\n */\nexport const formDescriptionVariants = cva(\"text-muted-foreground text-sm\", {\n variants: {\n size: {\n default: \"text-sm\",\n small: \"text-xs\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/**\n * FormMessage variant styles using CVA\n *\n * Styles validation messages with different states (error, success).\n */\nexport const formMessageVariants = cva(\"text-sm font-medium\", {\n variants: {\n state: {\n error: \"text-destructive\",\n success: \"text-success\",\n info: \"text-muted-foreground\",\n },\n },\n defaultVariants: {\n state: \"error\",\n },\n})\n\n// Export variant prop types\nexport type FormItemVariantProps = VariantProps<typeof formItemVariants>\nexport type FormLabelVariantProps = VariantProps<typeof formLabelVariants>\nexport type FormDescriptionVariantProps = VariantProps<\n typeof formDescriptionVariants\n>\nexport type FormMessageVariantProps = VariantProps<typeof formMessageVariants>\n","\"use client\"\n\nimport type {\n FormControlProps,\n FormDescriptionProps,\n FormFieldContextValue,\n FormItemContextValue,\n FormItemProps,\n FormLabelProps,\n FormMessageProps,\n} from \"./Form.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport * as React from \"react\"\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from \"react-hook-form\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Label } from \"../../primitives/Label\"\nimport {\n formDescriptionVariants,\n formItemVariants,\n formLabelVariants,\n formMessageVariants,\n} from \"./Form.variants\"\n\nconst Form = FormProvider\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nfunction FormField<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({ ...props }: ControllerProps<TFieldValues, TName>) {\n return (\n <FormFieldContext value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.use(FormFieldContext)\n const itemContext = React.use(FormItemContext)\n const { getFieldState } = useFormContext()\n const formState = useFormState({ name: fieldContext.name })\n const fieldState = getFieldState(fieldContext.name, formState)\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nfunction FormItem({ className, spacing, ...props }: FormItemProps) {\n const id = React.useId()\n\n return (\n <FormItemContext value={{ id }}>\n <div\n className={cn(formItemVariants({ spacing }), className)}\n data-slot=\"form-item\"\n {...props}\n />\n </FormItemContext>\n )\n}\n\nfunction FormLabel({ className, ...props }: FormLabelProps) {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n className={cn(formLabelVariants({ error: !!error }), className)}\n data-error={!!error}\n data-slot=\"form-label\"\n htmlFor={formItemId}\n {...props}\n />\n )\n}\n\nfunction FormControl({ ...props }: FormControlProps) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n aria-describedby={\n !error\n ? formDescriptionId\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n data-slot=\"form-control\"\n id={formItemId}\n {...props}\n />\n )\n}\n\nfunction FormDescription({ className, size, ...props }: FormDescriptionProps) {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n className={cn(formDescriptionVariants({ size }), className)}\n data-slot=\"form-description\"\n id={formDescriptionId}\n {...props}\n />\n )\n}\n\nfunction FormMessage({\n className,\n state,\n children,\n ...props\n}: FormMessageProps) {\n const { error, formMessageId } = useFormField()\n const body = error ? (error.message ?? \"\") : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n className={cn(formMessageVariants({ state }), className)}\n data-slot=\"form-message\"\n id={formMessageId}\n role=\"alert\"\n {...props}\n >\n {body}\n </p>\n )\n}\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormFieldContext,\n FormItem,\n FormItemContext,\n FormLabel,\n FormMessage,\n useFormField,\n}\n"]}
1
+ {"version":3,"sources":["../src/components/forms/Form/Form.variants.ts","../src/components/forms/Form/Form.tsx"],"names":[],"mappings":"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","file":"chunk-5ACHKT35.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * FormItem variant styles using CVA\n *\n * Controls spacing and layout for form field containers.\n */\nexport const formItemVariants = cva(\"grid gap-2\", {\n variants: {\n spacing: {\n default: \"gap-2\",\n tight: \"gap-1\",\n loose: \"gap-3\",\n },\n },\n defaultVariants: {\n spacing: \"default\",\n },\n})\n\n/**\n * FormLabel variant styles using CVA\n *\n * Handles label styling with error state support.\n */\nexport const formLabelVariants = cva(\n \"text-[length:var(--form-label-size)] font-[var(--form-label-weight)] text-[color:var(--form-label-fg)] leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n error: {\n true: \"text-[color:var(--form-error-fg)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n error: false,\n },\n }\n)\n\n/**\n * FormDescription variant styles using CVA\n *\n * Provides consistent styling for field helper text.\n */\nexport const formDescriptionVariants = cva(\"text-muted-foreground text-sm\", {\n variants: {\n size: {\n default: \"text-sm\",\n small: \"text-xs\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/**\n * FormMessage variant styles using CVA\n *\n * Styles validation messages with different states (error, success).\n */\nexport const formMessageVariants = cva(\"text-sm font-medium\", {\n variants: {\n state: {\n error: \"text-destructive\",\n success: \"text-success\",\n info: \"text-muted-foreground\",\n },\n },\n defaultVariants: {\n state: \"error\",\n },\n})\n\n// Export variant prop types\nexport type FormItemVariantProps = VariantProps<typeof formItemVariants>\nexport type FormLabelVariantProps = VariantProps<typeof formLabelVariants>\nexport type FormDescriptionVariantProps = VariantProps<\n typeof formDescriptionVariants\n>\nexport type FormMessageVariantProps = VariantProps<typeof formMessageVariants>\n","\"use client\"\n\nimport type {\n FormControlProps,\n FormDescriptionProps,\n FormFieldContextValue,\n FormItemContextValue,\n FormItemProps,\n FormLabelProps,\n FormMessageProps,\n} from \"./Form.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport * as React from \"react\"\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from \"react-hook-form\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Label } from \"../../primitives/Label\"\nimport {\n formDescriptionVariants,\n formItemVariants,\n formLabelVariants,\n formMessageVariants,\n} from \"./Form.variants\"\n\nconst Form = FormProvider\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nfunction FormField<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({ ...props }: ControllerProps<TFieldValues, TName>) {\n return (\n <FormFieldContext value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.use(FormFieldContext)\n const itemContext = React.use(FormItemContext)\n const { getFieldState } = useFormContext()\n const formState = useFormState({ name: fieldContext.name })\n const fieldState = getFieldState(fieldContext.name, formState)\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nfunction FormItem({ className, spacing, ...props }: FormItemProps) {\n const id = React.useId()\n\n return (\n <FormItemContext value={{ id }}>\n <div\n className={cn(formItemVariants({ spacing }), className)}\n data-slot=\"form-item\"\n {...props}\n />\n </FormItemContext>\n )\n}\n\nfunction FormLabel({ className, ...props }: FormLabelProps) {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n className={cn(formLabelVariants({ error: !!error }), className)}\n data-error={!!error}\n data-slot=\"form-label\"\n htmlFor={formItemId}\n {...props}\n />\n )\n}\n\nfunction FormControl({ ...props }: FormControlProps) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n aria-describedby={\n !error\n ? formDescriptionId\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n data-slot=\"form-control\"\n id={formItemId}\n {...props}\n />\n )\n}\n\nfunction FormDescription({ className, size, ...props }: FormDescriptionProps) {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n className={cn(formDescriptionVariants({ size }), className)}\n data-slot=\"form-description\"\n id={formDescriptionId}\n {...props}\n />\n )\n}\n\nfunction FormMessage({\n className,\n state,\n children,\n ...props\n}: FormMessageProps) {\n const { error, formMessageId } = useFormField()\n const body = error ? (error.message ?? \"\") : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n className={cn(formMessageVariants({ state }), className)}\n data-slot=\"form-message\"\n id={formMessageId}\n role=\"alert\"\n {...props}\n >\n {body}\n </p>\n )\n}\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormFieldContext,\n FormItem,\n FormItemContext,\n FormLabel,\n FormMessage,\n useFormField,\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { buttonVariants } from './chunk-7TF5PVEU.js';
1
+ import { buttonVariants } from './chunk-X5XP5QVO.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';
4
4
  import { cva } from 'class-variance-authority';
@@ -128,5 +128,5 @@ function PaginationEllipsis({
128
128
  }
129
129
 
130
130
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, paginationContentVariants, paginationEllipsisVariants, paginationNextVariants, paginationPreviousVariants, paginationVariants };
131
- //# sourceMappingURL=chunk-GGUWEAYD.js.map
132
- //# sourceMappingURL=chunk-GGUWEAYD.js.map
131
+ //# sourceMappingURL=chunk-5E44I7PB.js.map
132
+ //# sourceMappingURL=chunk-5E44I7PB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/navigation/Pagination/Pagination.variants.ts","../src/components/navigation/Pagination/Pagination.tsx"],"names":[],"mappings":"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","file":"chunk-GGUWEAYD.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Pagination root variant styles\n */\nexport const paginationVariants = cva([\n \"mx-auto flex w-full justify-center\",\n])\n\n/**\n * PaginationContent variant styles\n */\nexport const paginationContentVariants = cva([\n \"flex flex-row items-center gap-[var(--pagination-content-gap)]\",\n])\n\n/**\n * PaginationPrevious variant styles\n */\nexport const paginationPreviousVariants = cva([\n \"gap-[var(--pagination-button-gap)] px-[var(--pagination-button-padding-x)] sm:pl-[var(--pagination-button-padding-x)]\",\n])\n\n/**\n * PaginationNext variant styles\n */\nexport const paginationNextVariants = cva([\n \"gap-[var(--pagination-button-gap)] px-[var(--pagination-button-padding-x)] sm:pr-[var(--pagination-button-padding-x)]\",\n])\n\n/**\n * PaginationEllipsis variant styles\n */\nexport const paginationEllipsisVariants = cva([\n \"flex size-[var(--pagination-ellipsis-size)] items-center justify-center\",\n])\n","import type {\n PaginationContentProps,\n PaginationEllipsisProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationNextProps,\n PaginationPreviousProps,\n PaginationProps,\n} from \"./Pagination.types\"\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { buttonVariants } from \"../../primitives/Button\"\nimport {\n paginationContentVariants,\n paginationEllipsisVariants,\n paginationNextVariants,\n paginationPreviousVariants,\n paginationVariants,\n} from \"./Pagination.variants\"\n\n/**\n * Pagination - A navigation component for paginated content.\n *\n * Provides accessible navigation with previous/next buttons and page links.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem>\n * <PaginationPrevious href=\"#\" />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\">1</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\" isActive>2</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationNext href=\"#\" />\n * </PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nfunction Pagination({ className, ...props }: PaginationProps) {\n return (\n <nav\n aria-label=\"pagination\"\n className={cn(paginationVariants(), className)}\n data-slot=\"pagination\"\n role=\"navigation\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationContent - Container for pagination items.\n */\nfunction PaginationContent({\n className,\n ...props\n}: PaginationContentProps) {\n return (\n <ul\n className={cn(paginationContentVariants(), className)}\n data-slot=\"pagination-content\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationItem - Wrapper for individual pagination elements.\n */\nfunction PaginationItem({ ...props }: PaginationItemProps) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\n/**\n * PaginationLink - A link to a specific page.\n *\n * Use isActive to indicate the current page.\n */\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n aria-current={isActive ? \"page\" : undefined}\n data-active={isActive}\n data-slot=\"pagination-link\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationPrevious - Link to the previous page.\n *\n * Includes a chevron icon and \"Previous\" text on larger screens.\n */\nfunction PaginationPrevious({\n className,\n ...props\n}: PaginationPreviousProps) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn(paginationPreviousVariants(), className)}\n data-slot=\"pagination-previous\"\n size=\"default\"\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n )\n}\n\n/**\n * PaginationNext - Link to the next page.\n *\n * Includes a chevron icon and \"Next\" text on larger screens.\n */\nfunction PaginationNext({\n className,\n ...props\n}: PaginationNextProps) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn(paginationNextVariants(), className)}\n data-slot=\"pagination-next\"\n size=\"default\"\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n )\n}\n\n/**\n * PaginationEllipsis - Indicates more pages between visible page links.\n */\nfunction PaginationEllipsis({\n className,\n ...props\n}: PaginationEllipsisProps) {\n return (\n <span\n aria-hidden\n className={cn(paginationEllipsisVariants(), className)}\n data-slot=\"pagination-ellipsis\"\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n"]}
1
+ {"version":3,"sources":["../src/components/navigation/Pagination/Pagination.variants.ts","../src/components/navigation/Pagination/Pagination.tsx"],"names":[],"mappings":"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","file":"chunk-5E44I7PB.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Pagination root variant styles\n */\nexport const paginationVariants = cva([\n \"mx-auto flex w-full justify-center\",\n])\n\n/**\n * PaginationContent variant styles\n */\nexport const paginationContentVariants = cva([\n \"flex flex-row items-center gap-[var(--pagination-content-gap)]\",\n])\n\n/**\n * PaginationPrevious variant styles\n */\nexport const paginationPreviousVariants = cva([\n \"gap-[var(--pagination-button-gap)] px-[var(--pagination-button-padding-x)] sm:pl-[var(--pagination-button-padding-x)]\",\n])\n\n/**\n * PaginationNext variant styles\n */\nexport const paginationNextVariants = cva([\n \"gap-[var(--pagination-button-gap)] px-[var(--pagination-button-padding-x)] sm:pr-[var(--pagination-button-padding-x)]\",\n])\n\n/**\n * PaginationEllipsis variant styles\n */\nexport const paginationEllipsisVariants = cva([\n \"flex size-[var(--pagination-ellipsis-size)] items-center justify-center\",\n])\n","import type {\n PaginationContentProps,\n PaginationEllipsisProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationNextProps,\n PaginationPreviousProps,\n PaginationProps,\n} from \"./Pagination.types\"\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { buttonVariants } from \"../../primitives/Button\"\nimport {\n paginationContentVariants,\n paginationEllipsisVariants,\n paginationNextVariants,\n paginationPreviousVariants,\n paginationVariants,\n} from \"./Pagination.variants\"\n\n/**\n * Pagination - A navigation component for paginated content.\n *\n * Provides accessible navigation with previous/next buttons and page links.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem>\n * <PaginationPrevious href=\"#\" />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\">1</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\" isActive>2</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationNext href=\"#\" />\n * </PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nfunction Pagination({ className, ...props }: PaginationProps) {\n return (\n <nav\n aria-label=\"pagination\"\n className={cn(paginationVariants(), className)}\n data-slot=\"pagination\"\n role=\"navigation\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationContent - Container for pagination items.\n */\nfunction PaginationContent({\n className,\n ...props\n}: PaginationContentProps) {\n return (\n <ul\n className={cn(paginationContentVariants(), className)}\n data-slot=\"pagination-content\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationItem - Wrapper for individual pagination elements.\n */\nfunction PaginationItem({ ...props }: PaginationItemProps) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\n/**\n * PaginationLink - A link to a specific page.\n *\n * Use isActive to indicate the current page.\n */\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n aria-current={isActive ? \"page\" : undefined}\n data-active={isActive}\n data-slot=\"pagination-link\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationPrevious - Link to the previous page.\n *\n * Includes a chevron icon and \"Previous\" text on larger screens.\n */\nfunction PaginationPrevious({\n className,\n ...props\n}: PaginationPreviousProps) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn(paginationPreviousVariants(), className)}\n data-slot=\"pagination-previous\"\n size=\"default\"\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n )\n}\n\n/**\n * PaginationNext - Link to the next page.\n *\n * Includes a chevron icon and \"Next\" text on larger screens.\n */\nfunction PaginationNext({\n className,\n ...props\n}: PaginationNextProps) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn(paginationNextVariants(), className)}\n data-slot=\"pagination-next\"\n size=\"default\"\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n )\n}\n\n/**\n * PaginationEllipsis - Indicates more pages between visible page links.\n */\nfunction PaginationEllipsis({\n className,\n ...props\n}: PaginationEllipsisProps) {\n return (\n <span\n aria-hidden\n className={cn(paginationEllipsisVariants(), className)}\n data-slot=\"pagination-ellipsis\"\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Button } from './chunk-7TF5PVEU.js';
1
+ import { Button } from './chunk-X5XP5QVO.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { ChevronLeft, ChevronRight, Clock, MapPin } from 'lucide-react';
4
4
  import * as React from 'react';
@@ -1058,5 +1058,5 @@ function EventCalendar({
1058
1058
  }
1059
1059
 
1060
1060
  export { EventCalendar, EventCalendarAgenda, EventCalendarDay, EventCalendarEvent, EventCalendarHeader, EventCalendarMonth, EventCalendarWeek, eventCalendarAgendaItemVariants, eventCalendarCellVariants, eventCalendarDayNumberVariants, eventCalendarEventVariants, eventCalendarHeaderVariants, eventCalendarTimeSlotVariants, eventCalendarVariants, eventCalendarViewButtonVariants, getEventVariant };
1061
- //# sourceMappingURL=chunk-T6XRYT6Q.js.map
1062
- //# sourceMappingURL=chunk-T6XRYT6Q.js.map
1061
+ //# sourceMappingURL=chunk-5K2SOCOX.js.map
1062
+ //# sourceMappingURL=chunk-5K2SOCOX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/advanced/EventCalendar/EventCalendar.variants.ts","../src/components/advanced/EventCalendar/EventCalendar.tsx"],"names":["Fragment"],"mappings":"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","file":"chunk-T6XRYT6Q.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * EventCalendar container variants\n */\nexport const eventCalendarVariants = cva(\n \"flex flex-col bg-background rounded-lg border border-border overflow-hidden\",\n {\n variants: {\n size: {\n sm: \"min-h-96\",\n md: \"min-h-[var(--event-calendar-root-min-height-md)]\",\n lg: \"min-h-[var(--event-calendar-root-min-height-lg)]\",\n full: \"h-full min-h-[var(--event-calendar-root-min-height-full)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Calendar header variants\n */\nexport const eventCalendarHeaderVariants = cva(\n \"flex items-center justify-between p-3 border-b border-border bg-muted/30\",\n {\n variants: {\n compact: {\n true: \"p-2\",\n false: \"p-3\",\n },\n },\n defaultVariants: {\n compact: false,\n },\n }\n)\n\n/**\n * Calendar grid cell variants\n */\nexport const eventCalendarCellVariants = cva(\n \"relative min-h-20 border-r border-b border-border p-1 transition-colors\",\n {\n variants: {\n isToday: {\n true: \"bg-primary/5\",\n false: \"\",\n },\n isWeekend: {\n true: \"bg-muted/30\",\n false: \"\",\n },\n isOutsideMonth: {\n true: \"bg-muted/50 text-muted-foreground\",\n false: \"\",\n },\n isSelected: {\n true: \"ring-2 ring-primary ring-inset\",\n false: \"\",\n },\n isSelectable: {\n true: \"cursor-pointer hover:bg-accent/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n isToday: false,\n isWeekend: false,\n isOutsideMonth: false,\n isSelected: false,\n isSelectable: true,\n },\n }\n)\n\n/**\n * Calendar event chip variants\n * Uses semantic chart colors for event categorization\n */\nexport const eventCalendarEventVariants = cva(\n \"group relative rounded px-1.5 py-0.5 text-xs font-medium truncate cursor-pointer transition-all\",\n {\n variants: {\n variant: {\n default: \"bg-primary/10 text-primary hover:bg-primary/20\",\n blue: \"bg-[color:var(--chart-3)]/10 text-[color:var(--chart-3)] hover:bg-[color:var(--chart-3)]/20\",\n green: \"bg-[color:var(--chart-2)]/10 text-[color:var(--chart-2)] hover:bg-[color:var(--chart-2)]/20\",\n red: \"bg-destructive/10 text-destructive hover:bg-destructive/20\",\n yellow: \"bg-[color:var(--chart-4)]/10 text-[color:var(--chart-4)] hover:bg-[color:var(--chart-4)]/20\",\n purple: \"bg-[color:var(--chart-1)]/10 text-[color:var(--chart-1)] hover:bg-[color:var(--chart-1)]/20\",\n orange: \"bg-[color:var(--chart-5)]/10 text-[color:var(--chart-5)] hover:bg-[color:var(--chart-5)]/20\",\n pink: \"bg-[color:var(--chart-1)]/10 text-[color:var(--chart-1)] hover:bg-[color:var(--chart-1)]/20\",\n cyan: \"bg-[color:var(--chart-2)]/10 text-[color:var(--chart-2)] hover:bg-[color:var(--chart-2)]/20\",\n },\n isAllDay: {\n true: \"font-semibold\",\n false: \"\",\n },\n isDragging: {\n true: \"opacity-50 ring-2 ring-primary\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n isAllDay: false,\n isDragging: false,\n },\n }\n)\n\n/**\n * Time slot variants for week/day views\n */\nexport const eventCalendarTimeSlotVariants = cva(\n \"relative border-b border-border transition-colors\",\n {\n variants: {\n isHour: {\n true: \"border-border\",\n false: \"border-border/50\",\n },\n isCurrentTime: {\n true: \"before:absolute before:left-0 before:right-0 before:h-0.5 before:bg-destructive before:z-10\",\n false: \"\",\n },\n isSelectable: {\n true: \"cursor-pointer hover:bg-accent/30\",\n false: \"\",\n },\n },\n defaultVariants: {\n isHour: false,\n isCurrentTime: false,\n isSelectable: true,\n },\n }\n)\n\n/**\n * View toggle button variants\n */\nexport const eventCalendarViewButtonVariants = cva(\n \"px-3 py-1.5 text-sm font-medium rounded-md transition-colors\",\n {\n variants: {\n isActive: {\n true: \"bg-primary text-primary-foreground\",\n false: \"text-muted-foreground hover:text-foreground hover:bg-muted\",\n },\n },\n defaultVariants: {\n isActive: false,\n },\n }\n)\n\n/**\n * Day number variants\n */\nexport const eventCalendarDayNumberVariants = cva(\n \"inline-flex items-center justify-center w-7 h-7 text-sm rounded-full transition-colors\",\n {\n variants: {\n isToday: {\n true: \"bg-primary text-primary-foreground font-semibold\",\n false: \"text-foreground\",\n },\n isOutsideMonth: {\n true: \"text-muted-foreground\",\n false: \"\",\n },\n },\n defaultVariants: {\n isToday: false,\n isOutsideMonth: false,\n },\n }\n)\n\n/**\n * Agenda item variants\n */\nexport const eventCalendarAgendaItemVariants = cva(\n \"flex items-start gap-3 p-3 rounded-lg transition-colors\",\n {\n variants: {\n isClickable: {\n true: \"cursor-pointer hover:bg-muted/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n isClickable: true,\n },\n }\n)\n\n/**\n * Map color string to variant\n */\nexport function getEventVariant(\n color?: string\n): \"blue\" | \"cyan\" | \"default\" | \"green\" | \"orange\" | \"pink\" | \"purple\" | \"red\" | \"yellow\" {\n if (!color) return \"default\"\n\n const colorMap: Record<string, \"blue\" | \"cyan\" | \"green\" | \"orange\" | \"pink\" | \"purple\" | \"red\" | \"yellow\"> = {\n blue: \"blue\",\n green: \"green\",\n red: \"red\",\n yellow: \"yellow\",\n purple: \"purple\",\n orange: \"orange\",\n pink: \"pink\",\n cyan: \"cyan\",\n }\n\n return colorMap[color.toLowerCase()] ?? \"default\"\n}\n","import type {\n CalendarEvent,\n EventCalendarAgendaProps,\n EventCalendarDayProps,\n EventCalendarEventProps,\n EventCalendarHeaderProps,\n EventCalendarMonthProps,\n EventCalendarProps,\n EventCalendarView,\n EventCalendarWeekProps,\n TimeSlot,\n} from \"./EventCalendar.types\"\n\nimport { ChevronLeft, ChevronRight, Clock, MapPin } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport {\n eventCalendarAgendaItemVariants,\n eventCalendarCellVariants,\n eventCalendarDayNumberVariants,\n eventCalendarEventVariants,\n eventCalendarHeaderVariants,\n eventCalendarTimeSlotVariants,\n eventCalendarVariants,\n eventCalendarViewButtonVariants,\n getEventVariant,\n} from \"./EventCalendar.variants\"\n\n// ============================================================================\n// Date Utilities\n// ============================================================================\n\nfunction startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction startOfWeek(date: Date, weekStartsOn: 0 | 1 = 0): Date {\n const d = new Date(date)\n const day = d.getDay()\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n d.setDate(d.getDate() - diff)\n d.setHours(0, 0, 0, 0)\n return d\n}\n\nfunction endOfWeek(date: Date, weekStartsOn: 0 | 1 = 0): Date {\n const d = startOfWeek(date, weekStartsOn)\n d.setDate(d.getDate() + 6)\n d.setHours(23, 59, 59, 999)\n return d\n}\n\nfunction addDays(date: Date, days: number): Date {\n const d = new Date(date)\n d.setDate(d.getDate() + days)\n return d\n}\n\nfunction addMonths(date: Date, months: number): Date {\n const d = new Date(date)\n d.setMonth(d.getMonth() + months)\n return d\n}\n\nfunction addWeeks(date: Date, weeks: number): Date {\n return addDays(date, weeks * 7)\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nfunction isSameMonth(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth()\n )\n}\n\nfunction isToday(date: Date): boolean {\n return isSameDay(date, new Date())\n}\n\nfunction isWeekend(date: Date): boolean {\n const day = date.getDay()\n return day === 0 || day === 6\n}\n\nfunction formatDate(\n date: Date,\n options: Intl.DateTimeFormatOptions,\n locale = \"en-US\"\n): string {\n return date.toLocaleDateString(locale, options)\n}\n\nfunction formatTime(date: Date, locale = \"en-US\"): string {\n return date.toLocaleTimeString(locale, { hour: \"numeric\", minute: \"2-digit\" })\n}\n\nfunction parseTime(timeStr: string): { hours: number; minutes: number } {\n const [hours, minutes] = timeStr.split(\":\").map(Number)\n return { hours: hours ?? 0, minutes: minutes ?? 0 }\n}\n\nfunction getEventsForDay(events: CalendarEvent[], date: Date): CalendarEvent[] {\n return events.filter((event) => {\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n const dayStart = new Date(date)\n dayStart.setHours(0, 0, 0, 0)\n const dayEnd = new Date(date)\n dayEnd.setHours(23, 59, 59, 999)\n\n return eventStart <= dayEnd && eventEnd >= dayStart\n })\n}\n\nfunction getEventsForDateRange(\n events: CalendarEvent[],\n start: Date,\n end: Date\n): CalendarEvent[] {\n return events.filter((event) => {\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n return eventStart <= end && eventEnd >= start\n })\n}\n\n// ============================================================================\n// EventCalendarEvent Component\n// ============================================================================\n\nfunction EventCalendarEvent({\n event,\n isDragging = false,\n onClick,\n renderEvent,\n}: EventCalendarEventProps) {\n if (renderEvent) {\n return <>{renderEvent(event)}</>\n }\n\n const variant = getEventVariant(event.color)\n\n return (\n <button\n className={cn(\n eventCalendarEventVariants({\n variant,\n isAllDay: event.allDay,\n isDragging,\n })\n )}\n aria-label={`Event: ${event.title}`}\n data-slot=\"event\"\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n onClick?.(event)\n }}\n >\n {!event.allDay && (\n <span className=\"mr-1 text-xs opacity-70\">\n {formatTime(new Date(event.start))}\n </span>\n )}\n <span>{event.title}</span>\n </button>\n )\n}\n\n// ============================================================================\n// EventCalendarHeader Component\n// ============================================================================\n\nfunction EventCalendarHeader({\n date,\n view,\n onPrevious,\n onNext,\n onToday,\n onViewChange,\n locale = \"en-US\",\n}: EventCalendarHeaderProps) {\n const getHeaderTitle = (): string => {\n switch (view) {\n case \"month\":\n return formatDate(date, { month: \"long\", year: \"numeric\" }, locale)\n case \"week\": {\n const weekStart = startOfWeek(date, 0)\n const weekEnd = endOfWeek(date, 0)\n if (weekStart.getMonth() === weekEnd.getMonth()) {\n return `${formatDate(weekStart, { month: \"long\", day: \"numeric\" }, locale)} - ${String(weekEnd.getDate())}, ${String(weekEnd.getFullYear())}`\n }\n return `${formatDate(weekStart, { month: \"short\", day: \"numeric\" }, locale)} - ${formatDate(weekEnd, { month: \"short\", day: \"numeric\", year: \"numeric\" }, locale)}`\n }\n case \"day\":\n return formatDate(\n date,\n { weekday: \"long\", month: \"long\", day: \"numeric\", year: \"numeric\" },\n locale\n )\n case \"agenda\":\n return formatDate(date, { month: \"long\", year: \"numeric\" }, locale)\n default:\n return \"\"\n }\n }\n\n const views: EventCalendarView[] = [\"month\", \"week\", \"day\", \"agenda\"]\n\n return (\n <div\n className={cn(eventCalendarHeaderVariants())}\n data-slot=\"calendar-header\"\n >\n <div className=\"flex items-center gap-2\">\n <Button\n aria-label=\"Previous\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onPrevious}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n <Button\n aria-label=\"Next\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onNext}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n <Button size=\"sm\" variant=\"outline\" onClick={onToday}>\n Today\n </Button>\n <h2 className=\"ml-2 text-lg font-semibold\">{getHeaderTitle()}</h2>\n </div>\n\n <div className=\"flex items-center gap-1 rounded-lg bg-muted p-1\">\n {views.map((v) => (\n <button\n key={v}\n aria-pressed={view === v}\n className={cn(eventCalendarViewButtonVariants({ isActive: view === v }))}\n type=\"button\"\n onClick={() => { onViewChange(v); }}\n >\n {v.charAt(0).toUpperCase() + v.slice(1)}\n </button>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarMonth Component\n// ============================================================================\n\nfunction EventCalendarMonth({\n date,\n events,\n weekStartsOn,\n selectable,\n onDayClick,\n onEventClick,\n onSlotSelect,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarMonthProps) {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const calendarStart = startOfWeek(monthStart, weekStartsOn)\n const calendarEnd = endOfWeek(monthEnd, weekStartsOn)\n\n // Generate week days header\n const weekDays: string[] = []\n let dayPointer = calendarStart\n for (let i = 0; i < 7; i++) {\n weekDays.push(formatDate(dayPointer, { weekday: \"short\" }, locale))\n dayPointer = addDays(dayPointer, 1)\n }\n\n // Generate calendar grid\n const weeks: Date[][] = []\n let currentDay = calendarStart\n while (currentDay <= calendarEnd) {\n const week: Date[] = []\n for (let i = 0; i < 7; i++) {\n week.push(new Date(currentDay))\n currentDay = addDays(currentDay, 1)\n }\n weeks.push(week)\n }\n\n const handleDayClick = (day: Date) => {\n onDayClick?.(day)\n if (selectable && onSlotSelect) {\n const start = new Date(day)\n start.setHours(0, 0, 0, 0)\n const end = new Date(day)\n end.setHours(23, 59, 59, 999)\n onSlotSelect({ start, end, allDay: true })\n }\n }\n\n return (\n <div className=\"flex flex-1 flex-col\" data-slot=\"calendar-month\" role=\"grid\">\n {/* Week day headers */}\n <div\n className=\"grid grid-cols-7 border-b border-border bg-muted/50\"\n role=\"row\"\n >\n {weekDays.map((day) => (\n <div\n key={day}\n className=\"py-2 text-center text-xs font-medium text-muted-foreground\"\n role=\"columnheader\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"flex flex-1 flex-col\">\n {weeks.map((week) => (\n <div\n key={week[0]?.toISOString()}\n className=\"grid flex-1 grid-cols-7\"\n role=\"row\"\n >\n {week.map((day) => {\n const dayEvents = getEventsForDay(events, day)\n const isCurrentMonth = isSameMonth(day, date)\n const isTodayDate = isToday(day)\n const isWeekendDay = isWeekend(day)\n\n return (\n <div\n key={day.toISOString()}\n aria-label={formatDate(day, {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n })}\n className={cn(\n eventCalendarCellVariants({\n isToday: isTodayDate,\n isWeekend: isWeekendDay && !isTodayDate,\n isOutsideMonth: !isCurrentMonth,\n isSelectable: selectable,\n }),\n day.getDay() === (weekStartsOn === 0 ? 6 : 0) && \"border-r-0\"\n )}\n aria-current={isTodayDate ? \"date\" : undefined}\n role=\"gridcell\"\n tabIndex={selectable ? 0 : undefined}\n onClick={() => { handleDayClick(day); }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleDayClick(day)\n }\n }}\n >\n <div className=\"mb-1 flex justify-end\">\n <span\n className={cn(\n eventCalendarDayNumberVariants({\n isToday: isTodayDate,\n isOutsideMonth: !isCurrentMonth,\n })\n )}\n >\n {day.getDate()}\n </span>\n </div>\n <div className=\"flex flex-col gap-0.5\">\n {dayEvents.slice(0, 3).map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n {dayEvents.length > 3 && (\n <span className=\"px-1 text-xs text-muted-foreground\">\n +{dayEvents.length - 3} more\n </span>\n )}\n </div>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarWeek Component\n// ============================================================================\n\nfunction EventCalendarWeek({\n date,\n events,\n weekStartsOn,\n selectable,\n minTime,\n maxTime,\n onEventClick,\n onSlotSelect,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarWeekProps) {\n const weekStart = startOfWeek(date, weekStartsOn)\n const { hours: startHour } = parseTime(minTime)\n const { hours: endHour } = parseTime(maxTime)\n const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i)\n\n const weekDays: Date[] = Array.from({ length: 7 }, (_, i) =>\n addDays(weekStart, i)\n )\n\n const handleSlotClick = (day: Date, hour: number) => {\n if (!selectable || !onSlotSelect) return\n const start = new Date(day)\n start.setHours(hour, 0, 0, 0)\n const end = new Date(day)\n end.setHours(hour + 1, 0, 0, 0)\n onSlotSelect({ start, end })\n }\n\n const getEventsForHour = (day: Date, hour: number): CalendarEvent[] => {\n const hourStart = new Date(day)\n hourStart.setHours(hour, 0, 0, 0)\n const hourEnd = new Date(day)\n hourEnd.setHours(hour + 1, 0, 0, 0)\n\n return events.filter((event) => {\n if (event.allDay) return false\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n return (\n isSameDay(eventStart, day) &&\n eventStart.getHours() <= hour &&\n eventEnd.getHours() > hour\n )\n })\n }\n\n const getAllDayEvents = (day: Date): CalendarEvent[] => {\n return events.filter((event) => {\n if (!event.allDay) return false\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n const dayStart = new Date(day)\n dayStart.setHours(0, 0, 0, 0)\n const dayEnd = new Date(day)\n dayEnd.setHours(23, 59, 59, 999)\n return eventStart <= dayEnd && eventEnd >= dayStart\n })\n }\n\n return (\n <div className=\"flex flex-1 flex-col overflow-hidden\" data-slot=\"calendar-week\">\n {/* Header with day names and dates */}\n <div className=\"grid grid-cols-[60px_repeat(7,1fr)] border-b border-border bg-muted/50\">\n <div className=\"border-r border-border\" />\n {weekDays.map((day, dayIndex) => (\n <div\n key={day.toISOString()}\n className={cn(\n \"flex flex-col items-center py-2 text-center\",\n dayIndex < 6 && \"border-r border-border\"\n )}\n >\n <span className=\"text-xs text-muted-foreground\">\n {formatDate(day, { weekday: \"short\" }, locale)}\n </span>\n <span\n className={cn(\n eventCalendarDayNumberVariants({ isToday: isToday(day) })\n )}\n >\n {day.getDate()}\n </span>\n </div>\n ))}\n </div>\n\n {/* All day events row */}\n <div className=\"grid grid-cols-[60px_repeat(7,1fr)] border-b border-border\">\n <div className=\"flex items-center justify-center border-r border-border text-xs text-muted-foreground\">\n All day\n </div>\n {weekDays.map((day, dayIndex) => {\n const allDayEvts = getAllDayEvents(day)\n return (\n <div\n key={day.toISOString()}\n className={cn(\n \"min-h-8 p-0.5\",\n dayIndex < 6 && \"border-r border-border\"\n )}\n >\n {allDayEvts.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n )\n })}\n </div>\n\n {/* Time grid */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"grid grid-cols-[60px_repeat(7,1fr)]\">\n {hours.map((hour) => (\n <React.Fragment key={hour}>\n <div className=\"flex h-12 items-start justify-end border-r border-b border-border pr-2 text-xs text-muted-foreground\">\n {formatTime(new Date(2000, 0, 1, hour, 0))}\n </div>\n {weekDays.map((day, dayIndex) => {\n const hourEvents = getEventsForHour(day, hour)\n const now = new Date()\n const isCurrentHour =\n isToday(day) &&\n now.getHours() === hour\n\n return (\n <div\n key={day.toISOString()}\n className={cn(\n eventCalendarTimeSlotVariants({\n isHour: true,\n isCurrentTime: isCurrentHour,\n isSelectable: selectable,\n }),\n \"h-12\",\n dayIndex < 6 && \"border-r\"\n )}\n aria-label={`${formatDate(day, { weekday: \"long\" })} at ${String(hour)}:00`}\n role=\"gridcell\"\n tabIndex={selectable ? 0 : undefined}\n onClick={() => { handleSlotClick(day, hour); }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleSlotClick(day, hour)\n }\n }}\n >\n {hourEvents.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n )\n })}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarDay Component\n// ============================================================================\n\nfunction EventCalendarDay({\n date,\n events,\n selectable,\n minTime,\n maxTime,\n onEventClick,\n onSlotSelect,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarDayProps) {\n const { hours: startHour } = parseTime(minTime)\n const { hours: endHour } = parseTime(maxTime)\n const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i)\n\n const handleSlotClick = (hour: number) => {\n if (!selectable || !onSlotSelect) return\n const start = new Date(date)\n start.setHours(hour, 0, 0, 0)\n const end = new Date(date)\n end.setHours(hour + 1, 0, 0, 0)\n onSlotSelect({ start, end })\n }\n\n const getEventsForHour = (hour: number): CalendarEvent[] => {\n return events.filter((event) => {\n if (event.allDay) return false\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n return (\n isSameDay(eventStart, date) &&\n eventStart.getHours() <= hour &&\n eventEnd.getHours() > hour\n )\n })\n }\n\n const allDayEvents = events.filter((e) => e.allDay && isSameDay(new Date(e.start), date))\n\n return (\n <div className=\"flex flex-1 flex-col overflow-hidden\" data-slot=\"calendar-day\">\n {/* Day header */}\n <div className=\"border-b border-border bg-muted/50 p-3 text-center\">\n <span className=\"text-sm text-muted-foreground\">\n {formatDate(date, { weekday: \"long\" }, locale)}\n </span>\n <span\n className={cn(\n \"ml-2\",\n eventCalendarDayNumberVariants({ isToday: isToday(date) })\n )}\n >\n {date.getDate()}\n </span>\n </div>\n\n {/* All day events */}\n {allDayEvents.length > 0 && (\n <div className=\"border-b border-border p-2\">\n <div className=\"mb-1 text-xs text-muted-foreground\">All day</div>\n <div className=\"flex flex-wrap gap-1\">\n {allDayEvents.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Time grid */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"grid grid-cols-[60px_1fr]\">\n {hours.map((hour) => {\n const hourEvents = getEventsForHour(hour)\n const now = new Date()\n const isCurrentHour = isToday(date) && now.getHours() === hour\n\n return (\n <React.Fragment key={hour}>\n <div className=\"flex h-16 items-start justify-end border-r border-b border-border pr-2 text-xs text-muted-foreground\">\n {formatTime(new Date(2000, 0, 1, hour, 0))}\n </div>\n <div\n className={cn(\n eventCalendarTimeSlotVariants({\n isHour: true,\n isCurrentTime: isCurrentHour,\n isSelectable: selectable,\n }),\n \"h-16 p-1\"\n )}\n aria-label={`${String(hour)}:00`}\n role=\"gridcell\"\n tabIndex={selectable ? 0 : undefined}\n onClick={() => { handleSlotClick(hour); }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleSlotClick(hour)\n }\n }}\n >\n {hourEvents.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n </React.Fragment>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarAgenda Component\n// ============================================================================\n\nfunction EventCalendarAgenda({\n date,\n events,\n daysToShow = 30,\n onEventClick,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarAgendaProps) {\n const startDate = new Date(date)\n startDate.setHours(0, 0, 0, 0)\n const endDate = addDays(startDate, daysToShow)\n\n const filteredEvents = getEventsForDateRange(events, startDate, endDate).sort(\n (a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()\n )\n\n // Group events by date\n const eventsByDate = filteredEvents.reduce<Record<string, CalendarEvent[]>>(\n (acc, event) => {\n const dateKey = new Date(event.start).toDateString()\n acc[dateKey] ??= []\n acc[dateKey].push(event)\n return acc\n },\n {}\n )\n\n if (Object.keys(eventsByDate).length === 0) {\n return (\n <div\n className=\"flex flex-1 items-center justify-center text-muted-foreground\"\n data-slot=\"calendar-agenda\"\n >\n No upcoming events\n </div>\n )\n }\n\n return (\n <div className=\"flex-1 overflow-auto p-4\" data-slot=\"calendar-agenda\">\n {Object.entries(eventsByDate).map(([dateKey, dayEvents]) => {\n const eventDate = new Date(dateKey)\n const isTodayDate = isToday(eventDate)\n\n return (\n <div key={dateKey} className=\"mb-6\">\n <div className=\"mb-2 flex items-center gap-2\">\n <span\n className={cn(\n eventCalendarDayNumberVariants({ isToday: isTodayDate })\n )}\n >\n {eventDate.getDate()}\n </span>\n <div>\n <div className=\"text-sm font-medium\">\n {formatDate(eventDate, { weekday: \"long\" }, locale)}\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {formatDate(eventDate, { month: \"long\", year: \"numeric\" }, locale)}\n </div>\n </div>\n </div>\n\n <div className=\"space-y-2 border-l-2 border-border pl-4\">\n {dayEvents.map((event) => {\n if (renderEvent) {\n return (\n <div\n key={event.id}\n className={cn(\n eventCalendarAgendaItemVariants({\n isClickable: !!onEventClick,\n })\n )}\n role=\"button\"\n tabIndex={onEventClick ? 0 : undefined}\n onClick={() => onEventClick?.(event)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onEventClick?.(event)\n }\n }}\n >\n {renderEvent(event)}\n </div>\n )\n }\n\n const variant = getEventVariant(event.color)\n\n return (\n <div\n key={event.id}\n className={cn(\n eventCalendarAgendaItemVariants({\n isClickable: !!onEventClick,\n })\n )}\n role=\"button\"\n tabIndex={onEventClick ? 0 : undefined}\n onClick={() => onEventClick?.(event)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onEventClick?.(event)\n }\n }}\n >\n <div\n className={cn(\n \"mt-1 h-3 w-3 flex-shrink-0 rounded-full\",\n variant === \"blue\" && \"bg-blue-500\",\n variant === \"green\" && \"bg-green-500\",\n variant === \"red\" && \"bg-red-500\",\n variant === \"yellow\" && \"bg-yellow-500\",\n variant === \"purple\" && \"bg-purple-500\",\n variant === \"orange\" && \"bg-orange-500\",\n variant === \"pink\" && \"bg-pink-500\",\n variant === \"cyan\" && \"bg-cyan-500\",\n variant === \"default\" && \"bg-primary\"\n )}\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"font-medium\">{event.title}</div>\n <div className=\"flex items-center gap-3 text-sm text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" />\n {event.allDay\n ? \"All day\"\n : `${formatTime(new Date(event.start))} - ${formatTime(new Date(event.end))}`}\n </span>\n {event.location && (\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {event.location}\n </span>\n )}\n </div>\n {event.description && (\n <div className=\"mt-1 text-sm text-muted-foreground line-clamp-2\">\n {event.description}\n </div>\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendar Main Component\n// ============================================================================\n\nfunction EventCalendar({\n events = [],\n view: controlledView,\n date: controlledDate,\n onDateChange,\n onViewChange,\n onEventClick,\n onEventCreate,\n onEventUpdate: _onEventUpdate,\n onEventDelete: _onEventDelete,\n editable: _editable = true,\n selectable = true,\n weekStartsOn = 0,\n minTime = \"00:00\",\n maxTime = \"24:00\",\n locale = \"en-US\",\n renderEvent,\n loading = false,\n className,\n ...props\n}: EventCalendarProps) {\n // Internal state for uncontrolled mode\n const [internalDate, setInternalDate] = React.useState(() => new Date())\n const [internalView, setInternalView] = React.useState<EventCalendarView>(\"month\")\n\n // Use controlled values if provided\n const currentDate = controlledDate ?? internalDate\n const currentView = controlledView ?? internalView\n\n const handleDateChange = (newDate: Date) => {\n if (onDateChange) {\n onDateChange(newDate)\n } else {\n setInternalDate(newDate)\n }\n }\n\n const handleViewChange = (newView: EventCalendarView) => {\n if (onViewChange) {\n onViewChange(newView)\n } else {\n setInternalView(newView)\n }\n }\n\n const handlePrevious = () => {\n switch (currentView) {\n case \"month\":\n handleDateChange(addMonths(currentDate, -1))\n break\n case \"week\":\n handleDateChange(addWeeks(currentDate, -1))\n break\n case \"day\":\n handleDateChange(addDays(currentDate, -1))\n break\n case \"agenda\":\n handleDateChange(addMonths(currentDate, -1))\n break\n }\n }\n\n const handleNext = () => {\n switch (currentView) {\n case \"month\":\n handleDateChange(addMonths(currentDate, 1))\n break\n case \"week\":\n handleDateChange(addWeeks(currentDate, 1))\n break\n case \"day\":\n handleDateChange(addDays(currentDate, 1))\n break\n case \"agenda\":\n handleDateChange(addMonths(currentDate, 1))\n break\n }\n }\n\n const handleToday = () => {\n handleDateChange(new Date())\n }\n\n const handleSlotSelect = (slot: TimeSlot) => {\n onEventCreate?.(slot)\n }\n\n const handleDayClick = (day: Date) => {\n handleDateChange(day)\n if (currentView === \"month\") {\n handleViewChange(\"day\")\n }\n }\n\n return (\n <div\n className={cn(eventCalendarVariants(), className)}\n data-loading={loading || undefined}\n data-slot=\"event-calendar\"\n {...props}\n >\n <EventCalendarHeader\n date={currentDate}\n locale={locale}\n view={currentView}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onToday={handleToday}\n onViewChange={handleViewChange}\n />\n\n {loading ? (\n <div className=\"flex flex-1 items-center justify-center\">\n <div className=\"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent\" />\n </div>\n ) : (\n <>\n {currentView === \"month\" && (\n <EventCalendarMonth\n date={currentDate}\n events={events}\n locale={locale}\n renderEvent={renderEvent}\n selectable={selectable}\n weekStartsOn={weekStartsOn}\n onDayClick={handleDayClick}\n onEventClick={onEventClick}\n onSlotSelect={handleSlotSelect}\n />\n )}\n {currentView === \"week\" && (\n <EventCalendarWeek\n date={currentDate}\n events={events}\n locale={locale}\n maxTime={maxTime}\n minTime={minTime}\n renderEvent={renderEvent}\n selectable={selectable}\n weekStartsOn={weekStartsOn}\n onEventClick={onEventClick}\n onSlotSelect={handleSlotSelect}\n />\n )}\n {currentView === \"day\" && (\n <EventCalendarDay\n date={currentDate}\n events={events}\n locale={locale}\n maxTime={maxTime}\n minTime={minTime}\n renderEvent={renderEvent}\n selectable={selectable}\n onEventClick={onEventClick}\n onSlotSelect={handleSlotSelect}\n />\n )}\n {currentView === \"agenda\" && (\n <EventCalendarAgenda\n date={currentDate}\n events={events}\n locale={locale}\n renderEvent={renderEvent}\n onEventClick={onEventClick}\n />\n )}\n </>\n )}\n </div>\n )\n}\n\nexport {\n EventCalendar,\n EventCalendarAgenda,\n EventCalendarDay,\n EventCalendarEvent,\n EventCalendarHeader,\n EventCalendarMonth,\n EventCalendarWeek,\n}\n"]}
1
+ {"version":3,"sources":["../src/components/advanced/EventCalendar/EventCalendar.variants.ts","../src/components/advanced/EventCalendar/EventCalendar.tsx"],"names":["Fragment"],"mappings":"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","file":"chunk-5K2SOCOX.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * EventCalendar container variants\n */\nexport const eventCalendarVariants = cva(\n \"flex flex-col bg-background rounded-lg border border-border overflow-hidden\",\n {\n variants: {\n size: {\n sm: \"min-h-96\",\n md: \"min-h-[var(--event-calendar-root-min-height-md)]\",\n lg: \"min-h-[var(--event-calendar-root-min-height-lg)]\",\n full: \"h-full min-h-[var(--event-calendar-root-min-height-full)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Calendar header variants\n */\nexport const eventCalendarHeaderVariants = cva(\n \"flex items-center justify-between p-3 border-b border-border bg-muted/30\",\n {\n variants: {\n compact: {\n true: \"p-2\",\n false: \"p-3\",\n },\n },\n defaultVariants: {\n compact: false,\n },\n }\n)\n\n/**\n * Calendar grid cell variants\n */\nexport const eventCalendarCellVariants = cva(\n \"relative min-h-20 border-r border-b border-border p-1 transition-colors\",\n {\n variants: {\n isToday: {\n true: \"bg-primary/5\",\n false: \"\",\n },\n isWeekend: {\n true: \"bg-muted/30\",\n false: \"\",\n },\n isOutsideMonth: {\n true: \"bg-muted/50 text-muted-foreground\",\n false: \"\",\n },\n isSelected: {\n true: \"ring-2 ring-primary ring-inset\",\n false: \"\",\n },\n isSelectable: {\n true: \"cursor-pointer hover:bg-accent/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n isToday: false,\n isWeekend: false,\n isOutsideMonth: false,\n isSelected: false,\n isSelectable: true,\n },\n }\n)\n\n/**\n * Calendar event chip variants\n * Uses semantic chart colors for event categorization\n */\nexport const eventCalendarEventVariants = cva(\n \"group relative rounded px-1.5 py-0.5 text-xs font-medium truncate cursor-pointer transition-all\",\n {\n variants: {\n variant: {\n default: \"bg-primary/10 text-primary hover:bg-primary/20\",\n blue: \"bg-[color:var(--chart-3)]/10 text-[color:var(--chart-3)] hover:bg-[color:var(--chart-3)]/20\",\n green: \"bg-[color:var(--chart-2)]/10 text-[color:var(--chart-2)] hover:bg-[color:var(--chart-2)]/20\",\n red: \"bg-destructive/10 text-destructive hover:bg-destructive/20\",\n yellow: \"bg-[color:var(--chart-4)]/10 text-[color:var(--chart-4)] hover:bg-[color:var(--chart-4)]/20\",\n purple: \"bg-[color:var(--chart-1)]/10 text-[color:var(--chart-1)] hover:bg-[color:var(--chart-1)]/20\",\n orange: \"bg-[color:var(--chart-5)]/10 text-[color:var(--chart-5)] hover:bg-[color:var(--chart-5)]/20\",\n pink: \"bg-[color:var(--chart-1)]/10 text-[color:var(--chart-1)] hover:bg-[color:var(--chart-1)]/20\",\n cyan: \"bg-[color:var(--chart-2)]/10 text-[color:var(--chart-2)] hover:bg-[color:var(--chart-2)]/20\",\n },\n isAllDay: {\n true: \"font-semibold\",\n false: \"\",\n },\n isDragging: {\n true: \"opacity-50 ring-2 ring-primary\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n isAllDay: false,\n isDragging: false,\n },\n }\n)\n\n/**\n * Time slot variants for week/day views\n */\nexport const eventCalendarTimeSlotVariants = cva(\n \"relative border-b border-border transition-colors\",\n {\n variants: {\n isHour: {\n true: \"border-border\",\n false: \"border-border/50\",\n },\n isCurrentTime: {\n true: \"before:absolute before:left-0 before:right-0 before:h-0.5 before:bg-destructive before:z-10\",\n false: \"\",\n },\n isSelectable: {\n true: \"cursor-pointer hover:bg-accent/30\",\n false: \"\",\n },\n },\n defaultVariants: {\n isHour: false,\n isCurrentTime: false,\n isSelectable: true,\n },\n }\n)\n\n/**\n * View toggle button variants\n */\nexport const eventCalendarViewButtonVariants = cva(\n \"px-3 py-1.5 text-sm font-medium rounded-md transition-colors\",\n {\n variants: {\n isActive: {\n true: \"bg-primary text-primary-foreground\",\n false: \"text-muted-foreground hover:text-foreground hover:bg-muted\",\n },\n },\n defaultVariants: {\n isActive: false,\n },\n }\n)\n\n/**\n * Day number variants\n */\nexport const eventCalendarDayNumberVariants = cva(\n \"inline-flex items-center justify-center w-7 h-7 text-sm rounded-full transition-colors\",\n {\n variants: {\n isToday: {\n true: \"bg-primary text-primary-foreground font-semibold\",\n false: \"text-foreground\",\n },\n isOutsideMonth: {\n true: \"text-muted-foreground\",\n false: \"\",\n },\n },\n defaultVariants: {\n isToday: false,\n isOutsideMonth: false,\n },\n }\n)\n\n/**\n * Agenda item variants\n */\nexport const eventCalendarAgendaItemVariants = cva(\n \"flex items-start gap-3 p-3 rounded-lg transition-colors\",\n {\n variants: {\n isClickable: {\n true: \"cursor-pointer hover:bg-muted/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n isClickable: true,\n },\n }\n)\n\n/**\n * Map color string to variant\n */\nexport function getEventVariant(\n color?: string\n): \"blue\" | \"cyan\" | \"default\" | \"green\" | \"orange\" | \"pink\" | \"purple\" | \"red\" | \"yellow\" {\n if (!color) return \"default\"\n\n const colorMap: Record<string, \"blue\" | \"cyan\" | \"green\" | \"orange\" | \"pink\" | \"purple\" | \"red\" | \"yellow\"> = {\n blue: \"blue\",\n green: \"green\",\n red: \"red\",\n yellow: \"yellow\",\n purple: \"purple\",\n orange: \"orange\",\n pink: \"pink\",\n cyan: \"cyan\",\n }\n\n return colorMap[color.toLowerCase()] ?? \"default\"\n}\n","import type {\n CalendarEvent,\n EventCalendarAgendaProps,\n EventCalendarDayProps,\n EventCalendarEventProps,\n EventCalendarHeaderProps,\n EventCalendarMonthProps,\n EventCalendarProps,\n EventCalendarView,\n EventCalendarWeekProps,\n TimeSlot,\n} from \"./EventCalendar.types\"\n\nimport { ChevronLeft, ChevronRight, Clock, MapPin } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport {\n eventCalendarAgendaItemVariants,\n eventCalendarCellVariants,\n eventCalendarDayNumberVariants,\n eventCalendarEventVariants,\n eventCalendarHeaderVariants,\n eventCalendarTimeSlotVariants,\n eventCalendarVariants,\n eventCalendarViewButtonVariants,\n getEventVariant,\n} from \"./EventCalendar.variants\"\n\n// ============================================================================\n// Date Utilities\n// ============================================================================\n\nfunction startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction startOfWeek(date: Date, weekStartsOn: 0 | 1 = 0): Date {\n const d = new Date(date)\n const day = d.getDay()\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n d.setDate(d.getDate() - diff)\n d.setHours(0, 0, 0, 0)\n return d\n}\n\nfunction endOfWeek(date: Date, weekStartsOn: 0 | 1 = 0): Date {\n const d = startOfWeek(date, weekStartsOn)\n d.setDate(d.getDate() + 6)\n d.setHours(23, 59, 59, 999)\n return d\n}\n\nfunction addDays(date: Date, days: number): Date {\n const d = new Date(date)\n d.setDate(d.getDate() + days)\n return d\n}\n\nfunction addMonths(date: Date, months: number): Date {\n const d = new Date(date)\n d.setMonth(d.getMonth() + months)\n return d\n}\n\nfunction addWeeks(date: Date, weeks: number): Date {\n return addDays(date, weeks * 7)\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nfunction isSameMonth(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth()\n )\n}\n\nfunction isToday(date: Date): boolean {\n return isSameDay(date, new Date())\n}\n\nfunction isWeekend(date: Date): boolean {\n const day = date.getDay()\n return day === 0 || day === 6\n}\n\nfunction formatDate(\n date: Date,\n options: Intl.DateTimeFormatOptions,\n locale = \"en-US\"\n): string {\n return date.toLocaleDateString(locale, options)\n}\n\nfunction formatTime(date: Date, locale = \"en-US\"): string {\n return date.toLocaleTimeString(locale, { hour: \"numeric\", minute: \"2-digit\" })\n}\n\nfunction parseTime(timeStr: string): { hours: number; minutes: number } {\n const [hours, minutes] = timeStr.split(\":\").map(Number)\n return { hours: hours ?? 0, minutes: minutes ?? 0 }\n}\n\nfunction getEventsForDay(events: CalendarEvent[], date: Date): CalendarEvent[] {\n return events.filter((event) => {\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n const dayStart = new Date(date)\n dayStart.setHours(0, 0, 0, 0)\n const dayEnd = new Date(date)\n dayEnd.setHours(23, 59, 59, 999)\n\n return eventStart <= dayEnd && eventEnd >= dayStart\n })\n}\n\nfunction getEventsForDateRange(\n events: CalendarEvent[],\n start: Date,\n end: Date\n): CalendarEvent[] {\n return events.filter((event) => {\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n return eventStart <= end && eventEnd >= start\n })\n}\n\n// ============================================================================\n// EventCalendarEvent Component\n// ============================================================================\n\nfunction EventCalendarEvent({\n event,\n isDragging = false,\n onClick,\n renderEvent,\n}: EventCalendarEventProps) {\n if (renderEvent) {\n return <>{renderEvent(event)}</>\n }\n\n const variant = getEventVariant(event.color)\n\n return (\n <button\n className={cn(\n eventCalendarEventVariants({\n variant,\n isAllDay: event.allDay,\n isDragging,\n })\n )}\n aria-label={`Event: ${event.title}`}\n data-slot=\"event\"\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n onClick?.(event)\n }}\n >\n {!event.allDay && (\n <span className=\"mr-1 text-xs opacity-70\">\n {formatTime(new Date(event.start))}\n </span>\n )}\n <span>{event.title}</span>\n </button>\n )\n}\n\n// ============================================================================\n// EventCalendarHeader Component\n// ============================================================================\n\nfunction EventCalendarHeader({\n date,\n view,\n onPrevious,\n onNext,\n onToday,\n onViewChange,\n locale = \"en-US\",\n}: EventCalendarHeaderProps) {\n const getHeaderTitle = (): string => {\n switch (view) {\n case \"month\":\n return formatDate(date, { month: \"long\", year: \"numeric\" }, locale)\n case \"week\": {\n const weekStart = startOfWeek(date, 0)\n const weekEnd = endOfWeek(date, 0)\n if (weekStart.getMonth() === weekEnd.getMonth()) {\n return `${formatDate(weekStart, { month: \"long\", day: \"numeric\" }, locale)} - ${String(weekEnd.getDate())}, ${String(weekEnd.getFullYear())}`\n }\n return `${formatDate(weekStart, { month: \"short\", day: \"numeric\" }, locale)} - ${formatDate(weekEnd, { month: \"short\", day: \"numeric\", year: \"numeric\" }, locale)}`\n }\n case \"day\":\n return formatDate(\n date,\n { weekday: \"long\", month: \"long\", day: \"numeric\", year: \"numeric\" },\n locale\n )\n case \"agenda\":\n return formatDate(date, { month: \"long\", year: \"numeric\" }, locale)\n default:\n return \"\"\n }\n }\n\n const views: EventCalendarView[] = [\"month\", \"week\", \"day\", \"agenda\"]\n\n return (\n <div\n className={cn(eventCalendarHeaderVariants())}\n data-slot=\"calendar-header\"\n >\n <div className=\"flex items-center gap-2\">\n <Button\n aria-label=\"Previous\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onPrevious}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n <Button\n aria-label=\"Next\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onNext}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n <Button size=\"sm\" variant=\"outline\" onClick={onToday}>\n Today\n </Button>\n <h2 className=\"ml-2 text-lg font-semibold\">{getHeaderTitle()}</h2>\n </div>\n\n <div className=\"flex items-center gap-1 rounded-lg bg-muted p-1\">\n {views.map((v) => (\n <button\n key={v}\n aria-pressed={view === v}\n className={cn(eventCalendarViewButtonVariants({ isActive: view === v }))}\n type=\"button\"\n onClick={() => { onViewChange(v); }}\n >\n {v.charAt(0).toUpperCase() + v.slice(1)}\n </button>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarMonth Component\n// ============================================================================\n\nfunction EventCalendarMonth({\n date,\n events,\n weekStartsOn,\n selectable,\n onDayClick,\n onEventClick,\n onSlotSelect,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarMonthProps) {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const calendarStart = startOfWeek(monthStart, weekStartsOn)\n const calendarEnd = endOfWeek(monthEnd, weekStartsOn)\n\n // Generate week days header\n const weekDays: string[] = []\n let dayPointer = calendarStart\n for (let i = 0; i < 7; i++) {\n weekDays.push(formatDate(dayPointer, { weekday: \"short\" }, locale))\n dayPointer = addDays(dayPointer, 1)\n }\n\n // Generate calendar grid\n const weeks: Date[][] = []\n let currentDay = calendarStart\n while (currentDay <= calendarEnd) {\n const week: Date[] = []\n for (let i = 0; i < 7; i++) {\n week.push(new Date(currentDay))\n currentDay = addDays(currentDay, 1)\n }\n weeks.push(week)\n }\n\n const handleDayClick = (day: Date) => {\n onDayClick?.(day)\n if (selectable && onSlotSelect) {\n const start = new Date(day)\n start.setHours(0, 0, 0, 0)\n const end = new Date(day)\n end.setHours(23, 59, 59, 999)\n onSlotSelect({ start, end, allDay: true })\n }\n }\n\n return (\n <div className=\"flex flex-1 flex-col\" data-slot=\"calendar-month\" role=\"grid\">\n {/* Week day headers */}\n <div\n className=\"grid grid-cols-7 border-b border-border bg-muted/50\"\n role=\"row\"\n >\n {weekDays.map((day) => (\n <div\n key={day}\n className=\"py-2 text-center text-xs font-medium text-muted-foreground\"\n role=\"columnheader\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"flex flex-1 flex-col\">\n {weeks.map((week) => (\n <div\n key={week[0]?.toISOString()}\n className=\"grid flex-1 grid-cols-7\"\n role=\"row\"\n >\n {week.map((day) => {\n const dayEvents = getEventsForDay(events, day)\n const isCurrentMonth = isSameMonth(day, date)\n const isTodayDate = isToday(day)\n const isWeekendDay = isWeekend(day)\n\n return (\n <div\n key={day.toISOString()}\n aria-label={formatDate(day, {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n })}\n className={cn(\n eventCalendarCellVariants({\n isToday: isTodayDate,\n isWeekend: isWeekendDay && !isTodayDate,\n isOutsideMonth: !isCurrentMonth,\n isSelectable: selectable,\n }),\n day.getDay() === (weekStartsOn === 0 ? 6 : 0) && \"border-r-0\"\n )}\n aria-current={isTodayDate ? \"date\" : undefined}\n role=\"gridcell\"\n tabIndex={selectable ? 0 : undefined}\n onClick={() => { handleDayClick(day); }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleDayClick(day)\n }\n }}\n >\n <div className=\"mb-1 flex justify-end\">\n <span\n className={cn(\n eventCalendarDayNumberVariants({\n isToday: isTodayDate,\n isOutsideMonth: !isCurrentMonth,\n })\n )}\n >\n {day.getDate()}\n </span>\n </div>\n <div className=\"flex flex-col gap-0.5\">\n {dayEvents.slice(0, 3).map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n {dayEvents.length > 3 && (\n <span className=\"px-1 text-xs text-muted-foreground\">\n +{dayEvents.length - 3} more\n </span>\n )}\n </div>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarWeek Component\n// ============================================================================\n\nfunction EventCalendarWeek({\n date,\n events,\n weekStartsOn,\n selectable,\n minTime,\n maxTime,\n onEventClick,\n onSlotSelect,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarWeekProps) {\n const weekStart = startOfWeek(date, weekStartsOn)\n const { hours: startHour } = parseTime(minTime)\n const { hours: endHour } = parseTime(maxTime)\n const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i)\n\n const weekDays: Date[] = Array.from({ length: 7 }, (_, i) =>\n addDays(weekStart, i)\n )\n\n const handleSlotClick = (day: Date, hour: number) => {\n if (!selectable || !onSlotSelect) return\n const start = new Date(day)\n start.setHours(hour, 0, 0, 0)\n const end = new Date(day)\n end.setHours(hour + 1, 0, 0, 0)\n onSlotSelect({ start, end })\n }\n\n const getEventsForHour = (day: Date, hour: number): CalendarEvent[] => {\n const hourStart = new Date(day)\n hourStart.setHours(hour, 0, 0, 0)\n const hourEnd = new Date(day)\n hourEnd.setHours(hour + 1, 0, 0, 0)\n\n return events.filter((event) => {\n if (event.allDay) return false\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n return (\n isSameDay(eventStart, day) &&\n eventStart.getHours() <= hour &&\n eventEnd.getHours() > hour\n )\n })\n }\n\n const getAllDayEvents = (day: Date): CalendarEvent[] => {\n return events.filter((event) => {\n if (!event.allDay) return false\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n const dayStart = new Date(day)\n dayStart.setHours(0, 0, 0, 0)\n const dayEnd = new Date(day)\n dayEnd.setHours(23, 59, 59, 999)\n return eventStart <= dayEnd && eventEnd >= dayStart\n })\n }\n\n return (\n <div className=\"flex flex-1 flex-col overflow-hidden\" data-slot=\"calendar-week\">\n {/* Header with day names and dates */}\n <div className=\"grid grid-cols-[60px_repeat(7,1fr)] border-b border-border bg-muted/50\">\n <div className=\"border-r border-border\" />\n {weekDays.map((day, dayIndex) => (\n <div\n key={day.toISOString()}\n className={cn(\n \"flex flex-col items-center py-2 text-center\",\n dayIndex < 6 && \"border-r border-border\"\n )}\n >\n <span className=\"text-xs text-muted-foreground\">\n {formatDate(day, { weekday: \"short\" }, locale)}\n </span>\n <span\n className={cn(\n eventCalendarDayNumberVariants({ isToday: isToday(day) })\n )}\n >\n {day.getDate()}\n </span>\n </div>\n ))}\n </div>\n\n {/* All day events row */}\n <div className=\"grid grid-cols-[60px_repeat(7,1fr)] border-b border-border\">\n <div className=\"flex items-center justify-center border-r border-border text-xs text-muted-foreground\">\n All day\n </div>\n {weekDays.map((day, dayIndex) => {\n const allDayEvts = getAllDayEvents(day)\n return (\n <div\n key={day.toISOString()}\n className={cn(\n \"min-h-8 p-0.5\",\n dayIndex < 6 && \"border-r border-border\"\n )}\n >\n {allDayEvts.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n )\n })}\n </div>\n\n {/* Time grid */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"grid grid-cols-[60px_repeat(7,1fr)]\">\n {hours.map((hour) => (\n <React.Fragment key={hour}>\n <div className=\"flex h-12 items-start justify-end border-r border-b border-border pr-2 text-xs text-muted-foreground\">\n {formatTime(new Date(2000, 0, 1, hour, 0))}\n </div>\n {weekDays.map((day, dayIndex) => {\n const hourEvents = getEventsForHour(day, hour)\n const now = new Date()\n const isCurrentHour =\n isToday(day) &&\n now.getHours() === hour\n\n return (\n <div\n key={day.toISOString()}\n className={cn(\n eventCalendarTimeSlotVariants({\n isHour: true,\n isCurrentTime: isCurrentHour,\n isSelectable: selectable,\n }),\n \"h-12\",\n dayIndex < 6 && \"border-r\"\n )}\n aria-label={`${formatDate(day, { weekday: \"long\" })} at ${String(hour)}:00`}\n role=\"gridcell\"\n tabIndex={selectable ? 0 : undefined}\n onClick={() => { handleSlotClick(day, hour); }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleSlotClick(day, hour)\n }\n }}\n >\n {hourEvents.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n )\n })}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarDay Component\n// ============================================================================\n\nfunction EventCalendarDay({\n date,\n events,\n selectable,\n minTime,\n maxTime,\n onEventClick,\n onSlotSelect,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarDayProps) {\n const { hours: startHour } = parseTime(minTime)\n const { hours: endHour } = parseTime(maxTime)\n const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i)\n\n const handleSlotClick = (hour: number) => {\n if (!selectable || !onSlotSelect) return\n const start = new Date(date)\n start.setHours(hour, 0, 0, 0)\n const end = new Date(date)\n end.setHours(hour + 1, 0, 0, 0)\n onSlotSelect({ start, end })\n }\n\n const getEventsForHour = (hour: number): CalendarEvent[] => {\n return events.filter((event) => {\n if (event.allDay) return false\n const eventStart = new Date(event.start)\n const eventEnd = new Date(event.end)\n return (\n isSameDay(eventStart, date) &&\n eventStart.getHours() <= hour &&\n eventEnd.getHours() > hour\n )\n })\n }\n\n const allDayEvents = events.filter((e) => e.allDay && isSameDay(new Date(e.start), date))\n\n return (\n <div className=\"flex flex-1 flex-col overflow-hidden\" data-slot=\"calendar-day\">\n {/* Day header */}\n <div className=\"border-b border-border bg-muted/50 p-3 text-center\">\n <span className=\"text-sm text-muted-foreground\">\n {formatDate(date, { weekday: \"long\" }, locale)}\n </span>\n <span\n className={cn(\n \"ml-2\",\n eventCalendarDayNumberVariants({ isToday: isToday(date) })\n )}\n >\n {date.getDate()}\n </span>\n </div>\n\n {/* All day events */}\n {allDayEvents.length > 0 && (\n <div className=\"border-b border-border p-2\">\n <div className=\"mb-1 text-xs text-muted-foreground\">All day</div>\n <div className=\"flex flex-wrap gap-1\">\n {allDayEvents.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Time grid */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"grid grid-cols-[60px_1fr]\">\n {hours.map((hour) => {\n const hourEvents = getEventsForHour(hour)\n const now = new Date()\n const isCurrentHour = isToday(date) && now.getHours() === hour\n\n return (\n <React.Fragment key={hour}>\n <div className=\"flex h-16 items-start justify-end border-r border-b border-border pr-2 text-xs text-muted-foreground\">\n {formatTime(new Date(2000, 0, 1, hour, 0))}\n </div>\n <div\n className={cn(\n eventCalendarTimeSlotVariants({\n isHour: true,\n isCurrentTime: isCurrentHour,\n isSelectable: selectable,\n }),\n \"h-16 p-1\"\n )}\n aria-label={`${String(hour)}:00`}\n role=\"gridcell\"\n tabIndex={selectable ? 0 : undefined}\n onClick={() => { handleSlotClick(hour); }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleSlotClick(hour)\n }\n }}\n >\n {hourEvents.map((event) => (\n <EventCalendarEvent\n key={event.id}\n event={event}\n renderEvent={renderEvent}\n onClick={onEventClick}\n />\n ))}\n </div>\n </React.Fragment>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendarAgenda Component\n// ============================================================================\n\nfunction EventCalendarAgenda({\n date,\n events,\n daysToShow = 30,\n onEventClick,\n renderEvent,\n locale = \"en-US\",\n}: EventCalendarAgendaProps) {\n const startDate = new Date(date)\n startDate.setHours(0, 0, 0, 0)\n const endDate = addDays(startDate, daysToShow)\n\n const filteredEvents = getEventsForDateRange(events, startDate, endDate).sort(\n (a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()\n )\n\n // Group events by date\n const eventsByDate = filteredEvents.reduce<Record<string, CalendarEvent[]>>(\n (acc, event) => {\n const dateKey = new Date(event.start).toDateString()\n acc[dateKey] ??= []\n acc[dateKey].push(event)\n return acc\n },\n {}\n )\n\n if (Object.keys(eventsByDate).length === 0) {\n return (\n <div\n className=\"flex flex-1 items-center justify-center text-muted-foreground\"\n data-slot=\"calendar-agenda\"\n >\n No upcoming events\n </div>\n )\n }\n\n return (\n <div className=\"flex-1 overflow-auto p-4\" data-slot=\"calendar-agenda\">\n {Object.entries(eventsByDate).map(([dateKey, dayEvents]) => {\n const eventDate = new Date(dateKey)\n const isTodayDate = isToday(eventDate)\n\n return (\n <div key={dateKey} className=\"mb-6\">\n <div className=\"mb-2 flex items-center gap-2\">\n <span\n className={cn(\n eventCalendarDayNumberVariants({ isToday: isTodayDate })\n )}\n >\n {eventDate.getDate()}\n </span>\n <div>\n <div className=\"text-sm font-medium\">\n {formatDate(eventDate, { weekday: \"long\" }, locale)}\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {formatDate(eventDate, { month: \"long\", year: \"numeric\" }, locale)}\n </div>\n </div>\n </div>\n\n <div className=\"space-y-2 border-l-2 border-border pl-4\">\n {dayEvents.map((event) => {\n if (renderEvent) {\n return (\n <div\n key={event.id}\n className={cn(\n eventCalendarAgendaItemVariants({\n isClickable: !!onEventClick,\n })\n )}\n role=\"button\"\n tabIndex={onEventClick ? 0 : undefined}\n onClick={() => onEventClick?.(event)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onEventClick?.(event)\n }\n }}\n >\n {renderEvent(event)}\n </div>\n )\n }\n\n const variant = getEventVariant(event.color)\n\n return (\n <div\n key={event.id}\n className={cn(\n eventCalendarAgendaItemVariants({\n isClickable: !!onEventClick,\n })\n )}\n role=\"button\"\n tabIndex={onEventClick ? 0 : undefined}\n onClick={() => onEventClick?.(event)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onEventClick?.(event)\n }\n }}\n >\n <div\n className={cn(\n \"mt-1 h-3 w-3 flex-shrink-0 rounded-full\",\n variant === \"blue\" && \"bg-blue-500\",\n variant === \"green\" && \"bg-green-500\",\n variant === \"red\" && \"bg-red-500\",\n variant === \"yellow\" && \"bg-yellow-500\",\n variant === \"purple\" && \"bg-purple-500\",\n variant === \"orange\" && \"bg-orange-500\",\n variant === \"pink\" && \"bg-pink-500\",\n variant === \"cyan\" && \"bg-cyan-500\",\n variant === \"default\" && \"bg-primary\"\n )}\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"font-medium\">{event.title}</div>\n <div className=\"flex items-center gap-3 text-sm text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" />\n {event.allDay\n ? \"All day\"\n : `${formatTime(new Date(event.start))} - ${formatTime(new Date(event.end))}`}\n </span>\n {event.location && (\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {event.location}\n </span>\n )}\n </div>\n {event.description && (\n <div className=\"mt-1 text-sm text-muted-foreground line-clamp-2\">\n {event.description}\n </div>\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\n// ============================================================================\n// EventCalendar Main Component\n// ============================================================================\n\nfunction EventCalendar({\n events = [],\n view: controlledView,\n date: controlledDate,\n onDateChange,\n onViewChange,\n onEventClick,\n onEventCreate,\n onEventUpdate: _onEventUpdate,\n onEventDelete: _onEventDelete,\n editable: _editable = true,\n selectable = true,\n weekStartsOn = 0,\n minTime = \"00:00\",\n maxTime = \"24:00\",\n locale = \"en-US\",\n renderEvent,\n loading = false,\n className,\n ...props\n}: EventCalendarProps) {\n // Internal state for uncontrolled mode\n const [internalDate, setInternalDate] = React.useState(() => new Date())\n const [internalView, setInternalView] = React.useState<EventCalendarView>(\"month\")\n\n // Use controlled values if provided\n const currentDate = controlledDate ?? internalDate\n const currentView = controlledView ?? internalView\n\n const handleDateChange = (newDate: Date) => {\n if (onDateChange) {\n onDateChange(newDate)\n } else {\n setInternalDate(newDate)\n }\n }\n\n const handleViewChange = (newView: EventCalendarView) => {\n if (onViewChange) {\n onViewChange(newView)\n } else {\n setInternalView(newView)\n }\n }\n\n const handlePrevious = () => {\n switch (currentView) {\n case \"month\":\n handleDateChange(addMonths(currentDate, -1))\n break\n case \"week\":\n handleDateChange(addWeeks(currentDate, -1))\n break\n case \"day\":\n handleDateChange(addDays(currentDate, -1))\n break\n case \"agenda\":\n handleDateChange(addMonths(currentDate, -1))\n break\n }\n }\n\n const handleNext = () => {\n switch (currentView) {\n case \"month\":\n handleDateChange(addMonths(currentDate, 1))\n break\n case \"week\":\n handleDateChange(addWeeks(currentDate, 1))\n break\n case \"day\":\n handleDateChange(addDays(currentDate, 1))\n break\n case \"agenda\":\n handleDateChange(addMonths(currentDate, 1))\n break\n }\n }\n\n const handleToday = () => {\n handleDateChange(new Date())\n }\n\n const handleSlotSelect = (slot: TimeSlot) => {\n onEventCreate?.(slot)\n }\n\n const handleDayClick = (day: Date) => {\n handleDateChange(day)\n if (currentView === \"month\") {\n handleViewChange(\"day\")\n }\n }\n\n return (\n <div\n className={cn(eventCalendarVariants(), className)}\n data-loading={loading || undefined}\n data-slot=\"event-calendar\"\n {...props}\n >\n <EventCalendarHeader\n date={currentDate}\n locale={locale}\n view={currentView}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onToday={handleToday}\n onViewChange={handleViewChange}\n />\n\n {loading ? (\n <div className=\"flex flex-1 items-center justify-center\">\n <div className=\"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent\" />\n </div>\n ) : (\n <>\n {currentView === \"month\" && (\n <EventCalendarMonth\n date={currentDate}\n events={events}\n locale={locale}\n renderEvent={renderEvent}\n selectable={selectable}\n weekStartsOn={weekStartsOn}\n onDayClick={handleDayClick}\n onEventClick={onEventClick}\n onSlotSelect={handleSlotSelect}\n />\n )}\n {currentView === \"week\" && (\n <EventCalendarWeek\n date={currentDate}\n events={events}\n locale={locale}\n maxTime={maxTime}\n minTime={minTime}\n renderEvent={renderEvent}\n selectable={selectable}\n weekStartsOn={weekStartsOn}\n onEventClick={onEventClick}\n onSlotSelect={handleSlotSelect}\n />\n )}\n {currentView === \"day\" && (\n <EventCalendarDay\n date={currentDate}\n events={events}\n locale={locale}\n maxTime={maxTime}\n minTime={minTime}\n renderEvent={renderEvent}\n selectable={selectable}\n onEventClick={onEventClick}\n onSlotSelect={handleSlotSelect}\n />\n )}\n {currentView === \"agenda\" && (\n <EventCalendarAgenda\n date={currentDate}\n events={events}\n locale={locale}\n renderEvent={renderEvent}\n onEventClick={onEventClick}\n />\n )}\n </>\n )}\n </div>\n )\n}\n\nexport {\n EventCalendar,\n EventCalendarAgenda,\n EventCalendarDay,\n EventCalendarEvent,\n EventCalendarHeader,\n EventCalendarMonth,\n EventCalendarWeek,\n}\n"]}
@@ -198,7 +198,7 @@ function MenubarCheckboxItem({
198
198
  "data-slot": "menubar-checkbox-item",
199
199
  ...props,
200
200
  children: [
201
- /* @__PURE__ */ jsx("span", { className: cn(menubarIndicatorWrapperVariants()), children: /* @__PURE__ */ jsx(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
201
+ /* @__PURE__ */ jsx("span", { className: cn(menubarIndicatorWrapperVariants()), children: /* @__PURE__ */ jsx(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-[var(--menubar-checkbox-size)]" }) }) }),
202
202
  children
203
203
  ]
204
204
  }
@@ -216,7 +216,7 @@ function MenubarRadioItem({
216
216
  "data-slot": "menubar-radio-item",
217
217
  ...props,
218
218
  children: [
219
- /* @__PURE__ */ jsx("span", { className: cn(menubarIndicatorWrapperVariants()), children: /* @__PURE__ */ jsx(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
219
+ /* @__PURE__ */ jsx("span", { className: cn(menubarIndicatorWrapperVariants()), children: /* @__PURE__ */ jsx(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-[var(--menubar-radio-size)]" }) }) }),
220
220
  children
221
221
  ]
222
222
  }
@@ -288,5 +288,5 @@ function MenubarSubContent({ className, ...props }) {
288
288
  }
289
289
 
290
290
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, menubarCheckboxItemVariants, menubarContentVariants, menubarIndicatorWrapperVariants, menubarItemVariants, menubarLabelVariants, menubarRadioItemVariants, menubarSeparatorVariants, menubarShortcutVariants, menubarSubContentVariants, menubarSubTriggerVariants, menubarTriggerVariants, menubarVariants };
291
- //# sourceMappingURL=chunk-VT4IMHGE.js.map
292
- //# sourceMappingURL=chunk-VT4IMHGE.js.map
291
+ //# sourceMappingURL=chunk-5TABQJDW.js.map
292
+ //# sourceMappingURL=chunk-5TABQJDW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/Menubar/Menubar.variants.ts","../src/components/navigation/Menubar/Menubar.tsx"],"names":[],"mappings":"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","file":"chunk-5TABQJDW.js","sourcesContent":["// Menubar/Menubar.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/* eslint-disable sonarjs/no-duplicate-string -- Tailwind class combinations naturally repeat in variant definitions */\n\n/**\n * Common focus state styles\n */\nconst FOCUS_ACCENT_STYLES = \"focus:bg-accent focus:text-accent-foreground\"\n\n/**\n * Shared animation and transition styles for menu content\n */\nconst menuContentBase = [\n \"bg-popover text-popover-foreground\",\n \"z-[var(--menubar-content-z-index)] overflow-hidden rounded-[var(--menubar-content-radius)] border-[var(--menubar-content-border-width)] p-[var(--menubar-content-padding)]\",\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 \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n]\n\n/**\n * Shared base styles for interactive menu items\n */\nconst menuItemBase = [\n \"relative flex cursor-default items-center rounded-[var(--menubar-item-radius)] text-[length:var(--menubar-item-text-size)] outline-hidden select-none\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-[var(--menubar-item-icon-size)]\",\n]\n\n/**\n * Menubar root variant styles\n */\nexport const menubarVariants = cva([\n \"bg-background flex h-[var(--menubar-root-height)] items-center gap-[var(--menubar-root-gap)] rounded-[var(--menubar-root-radius)] border-[var(--menubar-root-border-width)] p-[var(--menubar-root-padding)] shadow-[var(--menubar-root-shadow)]\",\n])\n\n/**\n * MenubarTrigger variant styles\n */\nexport const menubarTriggerVariants = cva([\n FOCUS_ACCENT_STYLES,\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"flex items-center rounded-[var(--menubar-trigger-radius)] px-[var(--menubar-trigger-padding-x)] py-[var(--menubar-trigger-padding-y)] text-[length:var(--menubar-trigger-text-size)] font-medium outline-hidden select-none\",\n])\n\n/**\n * MenubarContent variant styles\n */\nexport const menubarContentVariants = cva([\n ...menuContentBase,\n \"min-w-[var(--menubar-content-min-width)] shadow-md\",\n \"origin-(--radix-menubar-content-transform-origin)\",\n])\n\n/**\n * MenubarSubContent variant styles\n */\nexport const menubarSubContentVariants = cva([\n ...menuContentBase,\n \"min-w-[var(--menubar-content-sub-min-width)] shadow-lg\",\n \"origin-(--radix-menubar-content-transform-origin)\",\n])\n\n/**\n * MenubarItem variant styles\n */\nexport const menubarItemVariants = cva(\n [\n ...menuItemBase,\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"px-[var(--menubar-item-padding-x)] py-[var(--menubar-item-padding-y)] gap-[var(--menubar-item-gap)]\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-[var(--menubar-item-inset-padding-left)]\",\n false: \"\",\n },\n variant: {\n default: \"focus:bg-accent focus:text-accent-foreground\",\n destructive: [\n \"text-destructive\",\n \"focus:bg-destructive/10 dark:focus:bg-destructive/20\",\n \"focus:text-destructive\",\n \"*:[svg]:!text-destructive\",\n ],\n },\n },\n defaultVariants: {\n inset: false,\n variant: \"default\",\n },\n }\n)\n\n/**\n * MenubarSubTrigger variant styles\n */\nexport const menubarSubTriggerVariants = cva(\n [\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"flex cursor-default items-center rounded-[var(--menubar-item-radius)] px-[var(--menubar-item-padding-x)] py-[var(--menubar-item-padding-y)] text-[length:var(--menubar-item-text-size)] outline-none select-none\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-[var(--menubar-item-inset-padding-left)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * MenubarCheckboxItem variant styles\n */\nexport const menubarCheckboxItemVariants = cva([\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"py-[var(--menubar-item-padding-y)] pr-[var(--menubar-item-padding-x)] pl-[var(--menubar-item-inset-padding-left)] gap-[var(--menubar-item-gap)] rounded-[var(--menubar-checkbox-radius)]\",\n])\n\n/**\n * MenubarRadioItem variant styles\n */\nexport const menubarRadioItemVariants = cva([\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"py-[var(--menubar-item-padding-y)] pr-[var(--menubar-item-padding-x)] pl-[var(--menubar-item-inset-padding-left)] gap-[var(--menubar-item-gap)] rounded-[var(--menubar-radio-radius)]\",\n])\n\n/**\n * MenubarLabel variant styles\n */\nexport const menubarLabelVariants = cva(\n [\"px-[var(--menubar-item-padding-x)] py-[var(--menubar-item-padding-y)] text-[length:var(--menubar-item-text-size)] font-medium\"],\n {\n variants: {\n inset: {\n true: \"pl-[var(--menubar-item-inset-padding-left)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * MenubarSeparator variant styles\n */\nexport const menubarSeparatorVariants = cva([\"bg-border -mx-[var(--menubar-separator-margin-x)] my-[var(--menubar-separator-margin-y)] h-[var(--menubar-separator-height)]\"])\n\n/**\n * MenubarShortcut variant styles\n */\nexport const menubarShortcutVariants = cva([\n \"text-muted-foreground ml-auto text-[length:var(--menubar-shortcut-text-size)] tracking-widest\",\n])\n\n/**\n * Item indicator wrapper styles\n */\nexport const menubarIndicatorWrapperVariants = cva([\n \"pointer-events-none absolute left-[var(--menubar-indicator-left)] flex size-[var(--menubar-indicator-size)] items-center justify-center\",\n])\n\nexport type MenubarItemVariantProps = VariantProps<typeof menubarItemVariants>\nexport type MenubarSubTriggerVariantProps = VariantProps<\n typeof menubarSubTriggerVariants\n>\nexport type MenubarLabelVariantProps = VariantProps<typeof menubarLabelVariants>\n","\"use client\"\n\nimport type {\n MenubarCheckboxItemProps,\n MenubarContentProps,\n MenubarGroupProps,\n MenubarItemProps,\n MenubarLabelProps,\n MenubarMenuProps,\n MenubarPortalProps,\n MenubarProps,\n MenubarRadioGroupProps,\n MenubarRadioItemProps,\n MenubarSeparatorProps,\n MenubarShortcutProps,\n MenubarSubContentProps,\n MenubarSubProps,\n MenubarSubTriggerProps,\n MenubarTriggerProps,\n} from \"./Menubar.types\"\n\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n menubarCheckboxItemVariants,\n menubarContentVariants,\n menubarIndicatorWrapperVariants,\n menubarItemVariants,\n menubarLabelVariants,\n menubarRadioItemVariants,\n menubarSeparatorVariants,\n menubarShortcutVariants,\n menubarSubContentVariants,\n menubarSubTriggerVariants,\n menubarTriggerVariants,\n menubarVariants,\n} from \"./Menubar.variants\"\n\n/**\n * Menubar - A horizontal menu bar for application navigation.\n *\n * Built on top of Radix UI Menubar primitive with additional styling.\n * Provides a desktop-style menu bar with dropdown menus.\n *\n * @example\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent>\n * <MenubarItem>New</MenubarItem>\n * <MenubarItem>Open</MenubarItem>\n * </MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n */\nfunction Menubar({ className, ...props }: MenubarProps) {\n return (\n <MenubarPrimitive.Root\n className={cn(menubarVariants(), className)}\n data-slot=\"menubar\"\n {...props}\n />\n )\n}\n\n/**\n * MenubarMenu - Container for a single menu within the menubar.\n */\nfunction MenubarMenu({ ...props }: MenubarMenuProps) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />\n}\n\n/**\n * MenubarGroup - Groups related menu items together.\n */\nfunction MenubarGroup({ ...props }: MenubarGroupProps) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />\n}\n\n/**\n * MenubarPortal - Renders menubar content in a portal.\n */\nfunction MenubarPortal({ ...props }: MenubarPortalProps) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />\n}\n\n/**\n * MenubarRadioGroup - Groups radio items together.\n */\nfunction MenubarRadioGroup({ ...props }: MenubarRadioGroupProps) {\n return (\n <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n )\n}\n\n/**\n * MenubarTrigger - Button that opens a menu in the menubar.\n */\nfunction MenubarTrigger({ className, ...props }: MenubarTriggerProps) {\n return (\n <MenubarPrimitive.Trigger\n className={cn(menubarTriggerVariants(), className)}\n data-slot=\"menubar-trigger\"\n {...props}\n />\n )\n}\n\n/**\n * MenubarContent - Main content container for a menu.\n */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: MenubarContentProps) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n align={align}\n alignOffset={alignOffset}\n className={cn(menubarContentVariants(), className)}\n data-slot=\"menubar-content\"\n sideOffset={sideOffset}\n {...props}\n />\n </MenubarPortal>\n )\n}\n\n/**\n * MenubarItem - An interactive menu item.\n *\n * Supports inset layout and destructive variant.\n */\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenubarItemProps) {\n return (\n <MenubarPrimitive.Item\n className={cn(menubarItemVariants({ inset, variant }), className)}\n data-inset={inset}\n data-slot=\"menubar-item\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\n/**\n * MenubarCheckboxItem - A menu item that can be checked/unchecked.\n */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenubarCheckboxItemProps) {\n return (\n <MenubarPrimitive.CheckboxItem\n checked={checked ?? false}\n className={cn(menubarCheckboxItemVariants(), className)}\n data-slot=\"menubar-checkbox-item\"\n {...props}\n >\n <span className={cn(menubarIndicatorWrapperVariants())}>\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-[var(--menubar-checkbox-size)]\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n )\n}\n\n/**\n * MenubarRadioItem - A radio menu item within a radio group.\n */\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: MenubarRadioItemProps) {\n return (\n <MenubarPrimitive.RadioItem\n className={cn(menubarRadioItemVariants(), className)}\n data-slot=\"menubar-radio-item\"\n {...props}\n >\n <span className={cn(menubarIndicatorWrapperVariants())}>\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-[var(--menubar-radio-size)]\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n )\n}\n\n/**\n * MenubarLabel - A non-interactive label for menu sections.\n */\nfunction MenubarLabel({ className, inset, ...props }: MenubarLabelProps) {\n return (\n <MenubarPrimitive.Label\n className={cn(menubarLabelVariants({ inset }), className)}\n data-inset={inset}\n data-slot=\"menubar-label\"\n {...props}\n />\n )\n}\n\n/**\n * MenubarSeparator - A visual separator between menu sections.\n */\nfunction MenubarSeparator({ className, ...props }: MenubarSeparatorProps) {\n return (\n <MenubarPrimitive.Separator\n className={cn(menubarSeparatorVariants(), className)}\n data-slot=\"menubar-separator\"\n {...props}\n />\n )\n}\n\n/**\n * MenubarShortcut - Displays keyboard shortcut hints.\n */\nfunction MenubarShortcut({ className, ...props }: MenubarShortcutProps) {\n return (\n <span\n className={cn(menubarShortcutVariants(), className)}\n data-slot=\"menubar-shortcut\"\n {...props}\n />\n )\n}\n\n/**\n * MenubarSub - Container for nested submenus.\n */\nfunction MenubarSub({ ...props }: MenubarSubProps) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\n}\n\n/**\n * MenubarSubTrigger - Trigger for opening a submenu.\n *\n * Includes a chevron icon indicator.\n */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenubarSubTriggerProps) {\n return (\n <MenubarPrimitive.SubTrigger\n className={cn(menubarSubTriggerVariants({ inset }), className)}\n data-inset={inset}\n data-slot=\"menubar-sub-trigger\"\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n )\n}\n\n/**\n * MenubarSubContent - Content container for submenus.\n */\nfunction MenubarSubContent({ className, ...props }: MenubarSubContentProps) {\n return (\n <MenubarPrimitive.SubContent\n className={cn(menubarSubContentVariants(), className)}\n data-slot=\"menubar-sub-content\"\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarGroup,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarPortal,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n}\n"]}