@stachelock/ui 0.3.0 → 0.4.0

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 (670) hide show
  1. package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js → AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js} +2 -2
  2. package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js.map → AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js.map} +1 -1
  3. package/dist/{BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js → BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js} +6 -6
  4. package/dist/{BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js.map → BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js.map} +1 -1
  5. package/dist/{BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js → BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js} +19 -19
  6. package/dist/{BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js.map → BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js.map} +1 -1
  7. package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js → BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js} +5 -6
  8. package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js.map → BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js.map} +1 -1
  9. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js → CalendarHeader.vue_vue_type_script_setup_true_lang-P5ypRyGV.js} +111 -111
  10. package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-P5ypRyGV.js.map +1 -0
  11. package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js +187 -0
  12. package/dist/{CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js.map → CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js.map} +1 -1
  13. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-1YGa9Fnd.js +1351 -0
  14. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-1YGa9Fnd.js.map +1 -0
  15. package/dist/{ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js → ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js} +19 -19
  16. package/dist/{ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js.map → ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js.map} +1 -1
  17. package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js → DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js} +7 -8
  18. package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js.map → DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js.map} +1 -1
  19. package/dist/DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js.map +1 -1
  20. package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js → DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js} +47 -47
  21. package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js.map → DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js.map} +1 -1
  22. package/dist/{DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js → DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js} +38 -38
  23. package/dist/{DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js.map → DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js.map} +1 -1
  24. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js +253 -0
  25. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js.map +1 -0
  26. package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js → DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js} +16 -16
  27. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js.map +1 -0
  28. package/dist/EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js +122 -0
  29. package/dist/{EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js.map → EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js.map} +1 -1
  30. package/dist/{EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js → EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js} +9 -9
  31. package/dist/{EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js.map → EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js.map} +1 -1
  32. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js → EmptyState.vue_vue_type_script_setup_true_lang-Dxy-cLPT.js} +29 -29
  33. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js.map → EmptyState.vue_vue_type_script_setup_true_lang-Dxy-cLPT.js.map} +1 -1
  34. package/dist/{EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js → EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js} +30 -31
  35. package/dist/{EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js.map → EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js.map} +1 -1
  36. package/dist/{FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js → FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js} +12 -12
  37. package/dist/{FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js.map → FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js.map} +1 -1
  38. package/dist/{HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js → HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js} +10 -10
  39. package/dist/{HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js.map → HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js.map} +1 -1
  40. package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js → InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js} +29 -29
  41. package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js.map → InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js.map} +1 -1
  42. package/dist/{LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js → LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js} +17 -17
  43. package/dist/{LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js.map → LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js.map} +1 -1
  44. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js +36 -0
  45. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js.map → LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js.map} +1 -1
  46. package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js → MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js} +2 -2
  47. package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js.map → MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js.map} +1 -1
  48. package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js +30 -0
  49. package/dist/{NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js.map → NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js.map} +1 -1
  50. package/dist/{NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js → NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js} +18 -18
  51. package/dist/{NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js.map → NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js.map} +1 -1
  52. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js +277 -0
  53. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js.map +1 -0
  54. package/dist/{PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js → PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js} +12 -12
  55. package/dist/{PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js.map → PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js.map} +1 -1
  56. package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js +130 -0
  57. package/dist/{ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js.map → ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js.map} +1 -1
  58. package/dist/{ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js → ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js} +24 -24
  59. package/dist/{ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js.map → ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js.map} +1 -1
  60. package/dist/{SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js → SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js} +111 -111
  61. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js.map +1 -0
  62. package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js → SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js} +2 -2
  63. package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js.map → SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js.map} +1 -1
  64. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js → SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js} +9 -10
  65. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js.map → SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js.map} +1 -1
  66. package/dist/{SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js → SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js} +17 -17
  67. package/dist/{SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js.map → SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js.map} +1 -1
  68. package/dist/{StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js → StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js} +40 -40
  69. package/dist/{StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js.map → StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js.map} +1 -1
  70. package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js → StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js} +38 -38
  71. package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js.map → StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js.map} +1 -1
  72. package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js → SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js} +110 -108
  73. package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js.map → SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js.map} +1 -1
  74. package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js → SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js} +2 -2
  75. package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js.map → SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js.map} +1 -1
  76. package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js → TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js} +3 -3
  77. package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js.map → TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js.map} +1 -1
  78. package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js → TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js} +32 -32
  79. package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js.map → TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js.map} +1 -1
  80. package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js → TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js} +21 -21
  81. package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js.map → TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js.map} +1 -1
  82. package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js → TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js} +2 -2
  83. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js.map +1 -0
  84. package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js → TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js} +47 -47
  85. package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js.map → TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js.map} +1 -1
  86. package/dist/{UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js → UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js} +36 -36
  87. package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js.map +1 -0
  88. package/dist/{UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js → UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js} +19 -19
  89. package/dist/{UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js.map → UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js.map} +1 -1
  90. package/dist/{UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js → UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js} +28 -28
  91. package/dist/{UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js.map → UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js.map} +1 -1
  92. package/dist/{UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js → UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js} +37 -37
  93. package/dist/{UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js.map → UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js.map} +1 -1
  94. package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js → UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js} +42 -42
  95. package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js.map → UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js.map} +1 -1
  96. package/dist/{UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js → UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js} +74 -74
  97. package/dist/{UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js.map → UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js.map} +1 -1
  98. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js → UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js} +9 -10
  99. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js.map → UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js.map} +1 -1
  100. package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js → UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js} +2 -2
  101. package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js.map → UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js.map} +1 -1
  102. package/dist/{UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js → UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js} +24 -24
  103. package/dist/{UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js.map → UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js.map} +1 -1
  104. package/dist/{UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js → UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js} +80 -83
  105. package/dist/UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js.map +1 -0
  106. package/dist/{UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js → UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js} +15 -15
  107. package/dist/{UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js.map → UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js.map} +1 -1
  108. package/dist/{YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js → YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js} +15 -15
  109. package/dist/{YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js.map → YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js.map} +1 -1
  110. package/dist/{calendar-DyIP7WGv.js → calendar-BlSSD4nO.js} +2 -2
  111. package/dist/calendar-BlSSD4nO.js.map +1 -0
  112. package/dist/calendars/CalendarDashboard.d.ts +1 -3
  113. package/dist/calendars/CalendarDashboard.js +32 -33
  114. package/dist/calendars/CalendarDashboard.js.map +1 -1
  115. package/dist/calendars/CalendarHeader.d.ts +1 -3
  116. package/dist/calendars/CalendarHeader.js +1 -1
  117. package/dist/calendars/DayCalendar.d.ts +1 -3
  118. package/dist/calendars/DayCalendar.js +1 -1
  119. package/dist/calendars/EventCard.d.ts +1 -3
  120. package/dist/calendars/EventsList.d.ts +1 -3
  121. package/dist/calendars/EventsList.js +1 -1
  122. package/dist/calendars/MonthCalendar.d.ts +1 -3
  123. package/dist/calendars/MonthCalendar.js +1 -1
  124. package/dist/calendars/WeekCalendar.d.ts +1 -3
  125. package/dist/calendars/WeekCalendar.js +118 -118
  126. package/dist/calendars/WeekCalendar.js.map +1 -1
  127. package/dist/calendars/YearCalendar.d.ts +1 -3
  128. package/dist/calendars/YearCalendar.js +1 -1
  129. package/dist/charts/BarChart.d.ts +1 -3
  130. package/dist/charts/BarChart.js +1 -1
  131. package/dist/charts/BaseChart.d.ts +1 -3
  132. package/dist/charts/BaseChart.js +54 -54
  133. package/dist/charts/BaseChart.js.map +1 -1
  134. package/dist/charts/FunnelChart.d.ts +1 -3
  135. package/dist/charts/FunnelChart.js +1 -1
  136. package/dist/charts/LineChart.d.ts +1 -3
  137. package/dist/charts/LineChart.js +1 -1
  138. package/dist/charts/PieChart.d.ts +1 -3
  139. package/dist/charts/PieChart.js +1 -1
  140. package/dist/charts/SparklineChart.d.ts +1 -3
  141. package/dist/charts/SparklineChart.js +1 -1
  142. package/dist/charts/StatCard.d.ts +1 -3
  143. package/dist/charts/StatCard.js +1 -1
  144. package/dist/charts/chartTheme.d.ts +3 -0
  145. package/dist/charts/index.d.ts +1 -0
  146. package/dist/charts/index.js +6 -6
  147. package/dist/components/Avatar.d.ts +1 -3
  148. package/dist/components/Avatar.js +1 -1
  149. package/dist/components/Badge.d.ts +1 -3
  150. package/dist/components/Badge.js +1 -1
  151. package/dist/components/Banner.d.ts +1 -3
  152. package/dist/components/Banner.js +69 -69
  153. package/dist/components/Banner.js.map +1 -1
  154. package/dist/components/Breadcrumb.d.ts +1 -3
  155. package/dist/components/Breadcrumb.js +5 -5
  156. package/dist/components/Breadcrumb.js.map +1 -1
  157. package/dist/components/Button.d.ts +1 -3
  158. package/dist/components/Button.js +29 -29
  159. package/dist/components/Button.js.map +1 -1
  160. package/dist/components/ButtonGroup.d.ts +1 -3
  161. package/dist/components/ButtonGroup.js +1 -1
  162. package/dist/components/Checkbox.d.ts +1 -3
  163. package/dist/components/Checkbox.js +1 -1
  164. package/dist/components/CloudinaryImage.d.ts +1 -3
  165. package/dist/components/Loading.d.ts +1 -3
  166. package/dist/components/Loading.js +1 -1
  167. package/dist/components/LoadingDots.d.ts +1 -3
  168. package/dist/components/LottieAnimation.d.ts +1 -3
  169. package/dist/components/LottieAnimation.js +1 -1
  170. package/dist/components/Menu.d.ts +1 -3
  171. package/dist/components/Menu.js +1 -1
  172. package/dist/components/Modal.d.ts +1 -3
  173. package/dist/components/Modal.js +1 -1
  174. package/dist/components/NavLink.d.ts +1 -3
  175. package/dist/components/NavLink.js +1 -1
  176. package/dist/components/ProgressBar.d.ts +1 -3
  177. package/dist/components/ProgressBar.js +1 -1
  178. package/dist/components/RadialProgressBar.d.ts +1 -3
  179. package/dist/components/RadialProgressBar.js +1 -1
  180. package/dist/components/Table.d.ts +1 -3
  181. package/dist/components/Table.js +1 -1
  182. package/dist/components/Transition.d.ts +1 -3
  183. package/dist/components/Transition.js +1 -1
  184. package/dist/composables/index.d.ts +1 -0
  185. package/dist/composables/useCalendar.d.ts +3 -0
  186. package/dist/composables/useCalendar.js +1 -1
  187. package/dist/composables/useFormValidation.d.ts +3 -0
  188. package/dist/composables/useMap.d.ts +3 -0
  189. package/dist/composables/useModal.d.ts +3 -0
  190. package/dist/composables/useNotifications.d.ts +3 -0
  191. package/dist/composables/useNotifications.js +221 -58
  192. package/dist/composables/useNotifications.js.map +1 -1
  193. package/dist/composables/useTabs.d.ts +1 -0
  194. package/dist/composables/useTheme.d.ts +3 -0
  195. package/dist/{dialog-B2WA4G25.js → dialog-BJ2Ld8l3.js} +2 -2
  196. package/dist/{dialog-B2WA4G25.js.map → dialog-BJ2Ld8l3.js.map} +1 -1
  197. package/dist/empty-state/ComingSoon.d.ts +1 -3
  198. package/dist/empty-state/ComingSoon.js +1 -1
  199. package/dist/empty-state/EmptyState.d.ts +1 -3
  200. package/dist/empty-state/EmptyState.js +1 -1
  201. package/dist/empty-state/index.d.ts +1 -0
  202. package/dist/empty-state/index.js +2 -2
  203. package/dist/forms/DynamicForm.d.ts +1 -3
  204. package/dist/forms/DynamicForm.js +1 -1
  205. package/dist/forms/DynamicFormField.d.ts +1 -3
  206. package/dist/forms/DynamicFormField.js +1 -1
  207. package/dist/forms/FormFieldWrapper.d.ts +1 -3
  208. package/dist/forms/FormFieldWrapper.js +56 -56
  209. package/dist/forms/FormFieldWrapper.js.map +1 -1
  210. package/dist/index.d.ts +3 -0
  211. package/dist/index.js +505 -511
  212. package/dist/index.js.map +1 -1
  213. package/dist/inputs/AddDeleteButtonGroup.d.ts +1 -3
  214. package/dist/inputs/CheckboxInput.d.ts +1 -3
  215. package/dist/inputs/CheckboxInput.js +1 -1
  216. package/dist/inputs/ComboboxInput.d.ts +1 -3
  217. package/dist/inputs/ComboboxInput.js +1 -1
  218. package/dist/inputs/DatepickerInput.d.ts +1 -3
  219. package/dist/inputs/EmailInput.d.ts +1 -3
  220. package/dist/inputs/EmailInput.js +1 -1
  221. package/dist/inputs/EmptyInput.d.ts +1 -3
  222. package/dist/inputs/EmptyInput.js +1 -1
  223. package/dist/inputs/FileDropzoneInput.d.ts +1 -3
  224. package/dist/inputs/HiddenInput.d.ts +1 -3
  225. package/dist/inputs/HiddenInput.js +1 -1
  226. package/dist/inputs/PhoneInput.d.ts +1 -3
  227. package/dist/inputs/PhoneInput.js +33 -23
  228. package/dist/inputs/PhoneInput.js.map +1 -1
  229. package/dist/inputs/RichTextInput.d.ts +1 -3
  230. package/dist/inputs/RichTextInput.js +693 -693
  231. package/dist/inputs/RichTextInput.js.map +1 -1
  232. package/dist/inputs/SelectInput.d.ts +1 -3
  233. package/dist/inputs/SelectInput.js +1 -1
  234. package/dist/inputs/SelectTextInput.d.ts +1 -3
  235. package/dist/inputs/SelectTextInput.js +1 -1
  236. package/dist/inputs/SwitchInput.d.ts +1 -3
  237. package/dist/inputs/SwitchInput.js +1 -1
  238. package/dist/inputs/SwitchInputGroup.d.ts +1 -3
  239. package/dist/inputs/SwitchInputGroup.js +1 -1
  240. package/dist/inputs/TagifyInput.d.ts +1 -3
  241. package/dist/inputs/TagifyInput.js +1 -1
  242. package/dist/inputs/TextAreaInput.d.ts +1 -3
  243. package/dist/inputs/TextAreaInput.js +1 -1
  244. package/dist/inputs/TextInput.d.ts +1 -3
  245. package/dist/inputs/TextInput.js +43 -43
  246. package/dist/inputs/TextInput.js.map +1 -1
  247. package/dist/layouts/DashboardLayout.d.ts +1 -3
  248. package/dist/layouts/DashboardLayout.js +1 -1
  249. package/dist/layouts/DefaultLayout.d.ts +1 -3
  250. package/dist/layouts/HeaderLayout.d.ts +1 -3
  251. package/dist/layouts/NavigationGroup.d.ts +1 -3
  252. package/dist/layouts/NavigationGroup.js +1 -1
  253. package/dist/layouts/NavigationItem.d.ts +1 -3
  254. package/dist/layouts/NavigationItem.js +1 -1
  255. package/dist/layouts/ProfileHeaderAvatar.d.ts +1 -3
  256. package/dist/layouts/ProfileHeaderAvatar.js +1 -1
  257. package/dist/layouts/ProjectLogo.d.ts +1 -3
  258. package/dist/layouts/ProjectLogo.js +1 -1
  259. package/dist/layouts/SidebarLayout.d.ts +1 -3
  260. package/dist/layouts/SidebarLayout.js +1 -1
  261. package/dist/{listbox-p2_4hUSD.js → listbox-YaWWZiiG.js} +2 -2
  262. package/dist/{listbox-p2_4hUSD.js.map → listbox-YaWWZiiG.js.map} +1 -1
  263. package/dist/loading/ContentSkeleton.d.ts +1 -3
  264. package/dist/loading/ContentSkeleton.js +32 -32
  265. package/dist/loading/ContentSkeleton.js.map +1 -1
  266. package/dist/loading/SmartLoadingIndicator.d.ts +1 -3
  267. package/dist/loading/SmartLoadingIndicator.js +92 -92
  268. package/dist/loading/SmartLoadingIndicator.js.map +1 -1
  269. package/dist/loading/index.d.ts +1 -0
  270. package/dist/maps/GoogleMap.d.ts +1 -3
  271. package/dist/maps/GoogleMap.js +2 -2
  272. package/dist/maps/GoogleMap.js.map +1 -1
  273. package/dist/maps/UiInfoWindow.d.ts +1 -3
  274. package/dist/maps/UiMap.d.ts +1 -3
  275. package/dist/maps/UiMap.js +18 -15
  276. package/dist/maps/UiMap.js.map +1 -1
  277. package/dist/maps/UiMapAll.d.ts +1 -3
  278. package/dist/maps/UiMapMarker.d.ts +1 -3
  279. package/dist/maps/index.d.ts +1 -0
  280. package/dist/modals/AlertModal.d.ts +1 -3
  281. package/dist/modals/AlertModal.js +1 -1
  282. package/dist/modals/BaseModal.d.ts +1 -3
  283. package/dist/modals/BaseModal.js +1 -1
  284. package/dist/modals/ImageCropperModal.d.ts +1 -3
  285. package/dist/modals/ImageCropperModal.js +182 -185
  286. package/dist/modals/ImageCropperModal.js.map +1 -1
  287. package/dist/notifications/NotificationContainer.d.ts +1 -3
  288. package/dist/notifications/NotificationContainer.js +30 -16
  289. package/dist/notifications/NotificationContainer.js.map +1 -1
  290. package/dist/notifications/NotificationToast.d.ts +1 -3
  291. package/dist/notifications/NotificationToast.js +1 -1
  292. package/dist/notifications/index.d.ts +1 -0
  293. package/dist/notifications/index.js +1 -1
  294. package/dist/src/components/CloudinaryImage.d.ts +7 -8
  295. package/dist/src/components/CloudinaryImage.d.ts.map +1 -1
  296. package/dist/src/components/LottieAnimation.d.ts +6 -37
  297. package/dist/src/components/LottieAnimation.d.ts.map +1 -1
  298. package/dist/src/components/ThemeDebugModal.d.ts +6 -16
  299. package/dist/src/components/ThemeDebugModal.d.ts.map +1 -1
  300. package/dist/src/components/UiAvatar.d.ts +26 -36
  301. package/dist/src/components/UiAvatar.d.ts.map +1 -1
  302. package/dist/src/components/UiBadge.d.ts +6 -33
  303. package/dist/src/components/UiBadge.d.ts.map +1 -1
  304. package/dist/src/components/UiBanner.d.ts +34 -107
  305. package/dist/src/components/UiBanner.d.ts.map +1 -1
  306. package/dist/src/components/UiBreadcrumb.d.ts +10 -11
  307. package/dist/src/components/UiBreadcrumb.d.ts.map +1 -1
  308. package/dist/src/components/UiButton.d.ts +13 -66
  309. package/dist/src/components/UiButton.d.ts.map +1 -1
  310. package/dist/src/components/UiButtonGroup.d.ts +7 -37
  311. package/dist/src/components/UiButtonGroup.d.ts.map +1 -1
  312. package/dist/src/components/UiCheckbox.d.ts +8 -33
  313. package/dist/src/components/UiCheckbox.d.ts.map +1 -1
  314. package/dist/src/components/UiLoading.d.ts +2 -28
  315. package/dist/src/components/UiLoading.d.ts.map +1 -1
  316. package/dist/src/components/UiLoadingDots.d.ts +1 -1
  317. package/dist/src/components/UiLoadingDots.d.ts.map +1 -1
  318. package/dist/src/components/UiMenu.d.ts +4 -32
  319. package/dist/src/components/UiMenu.d.ts.map +1 -1
  320. package/dist/src/components/UiModal.d.ts +3 -2
  321. package/dist/src/components/UiModal.d.ts.map +1 -1
  322. package/dist/src/components/UiNavLink.d.ts +6 -40
  323. package/dist/src/components/UiNavLink.d.ts.map +1 -1
  324. package/dist/src/components/UiProgressBar.d.ts +3 -32
  325. package/dist/src/components/UiProgressBar.d.ts.map +1 -1
  326. package/dist/src/components/UiRadialProgressBar.d.ts +3 -34
  327. package/dist/src/components/UiRadialProgressBar.d.ts.map +1 -1
  328. package/dist/src/components/UiTable.d.ts +25 -67
  329. package/dist/src/components/UiTable.d.ts.map +1 -1
  330. package/dist/src/components/UiTransition.d.ts +3 -26
  331. package/dist/src/components/UiTransition.d.ts.map +1 -1
  332. package/dist/src/components/calendars/CalendarDashboard.d.ts +5 -17
  333. package/dist/src/components/calendars/CalendarDashboard.d.ts.map +1 -1
  334. package/dist/src/components/calendars/CalendarHeader.d.ts +8 -7
  335. package/dist/src/components/calendars/CalendarHeader.d.ts.map +1 -1
  336. package/dist/src/components/calendars/DayCalendar.d.ts +11 -17
  337. package/dist/src/components/calendars/DayCalendar.d.ts.map +1 -1
  338. package/dist/src/components/calendars/EventCard.d.ts +1 -2
  339. package/dist/src/components/calendars/EventCard.d.ts.map +1 -1
  340. package/dist/src/components/calendars/EventsList.d.ts +6 -18
  341. package/dist/src/components/calendars/EventsList.d.ts.map +1 -1
  342. package/dist/src/components/calendars/MonthCalendar.d.ts +6 -30
  343. package/dist/src/components/calendars/MonthCalendar.d.ts.map +1 -1
  344. package/dist/src/components/calendars/WeekCalendar.d.ts +10 -16
  345. package/dist/src/components/calendars/WeekCalendar.d.ts.map +1 -1
  346. package/dist/src/components/calendars/YearCalendar.d.ts +5 -29
  347. package/dist/src/components/calendars/YearCalendar.d.ts.map +1 -1
  348. package/dist/src/components/charts/BarChart.d.ts +6 -39
  349. package/dist/src/components/charts/BarChart.d.ts.map +1 -1
  350. package/dist/src/components/charts/FunnelChart.d.ts +5 -34
  351. package/dist/src/components/charts/FunnelChart.d.ts.map +1 -1
  352. package/dist/src/components/charts/LineChart.d.ts +6 -37
  353. package/dist/src/components/charts/LineChart.d.ts.map +1 -1
  354. package/dist/src/components/charts/PieChart.d.ts +6 -37
  355. package/dist/src/components/charts/PieChart.d.ts.map +1 -1
  356. package/dist/src/components/charts/SparklineChart.d.ts +3 -32
  357. package/dist/src/components/charts/SparklineChart.d.ts.map +1 -1
  358. package/dist/src/components/charts/StatCard.d.ts +2 -24
  359. package/dist/src/components/charts/StatCard.d.ts.map +1 -1
  360. package/dist/src/components/charts/chartTheme.d.ts +0 -1
  361. package/dist/src/components/empty-state/ComingSoon.d.ts +2 -29
  362. package/dist/src/components/empty-state/ComingSoon.d.ts.map +1 -1
  363. package/dist/src/components/empty-state/EmptyState.d.ts +4 -26
  364. package/dist/src/components/empty-state/EmptyState.d.ts.map +1 -1
  365. package/dist/src/components/forms/DynamicForm.d.ts +21 -47
  366. package/dist/src/components/forms/DynamicForm.d.ts.map +1 -1
  367. package/dist/src/components/forms/DynamicFormField.d.ts +8 -18
  368. package/dist/src/components/forms/DynamicFormField.d.ts.map +1 -1
  369. package/dist/src/components/forms/FormFieldWrapper.d.ts +14 -58
  370. package/dist/src/components/forms/FormFieldWrapper.d.ts.map +1 -1
  371. package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts +3 -4
  372. package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts.map +1 -1
  373. package/dist/src/components/inputs/CheckboxInput.d.ts +10 -37
  374. package/dist/src/components/inputs/CheckboxInput.d.ts.map +1 -1
  375. package/dist/src/components/inputs/ComboboxInput.d.ts +13 -48
  376. package/dist/src/components/inputs/ComboboxInput.d.ts.map +1 -1
  377. package/dist/src/components/inputs/DatepickerInput.d.ts +1045 -42
  378. package/dist/src/components/inputs/DatepickerInput.d.ts.map +1 -1
  379. package/dist/src/components/inputs/EmailInput.d.ts +10 -54
  380. package/dist/src/components/inputs/EmailInput.d.ts.map +1 -1
  381. package/dist/src/components/inputs/EmptyInput.d.ts +2 -26
  382. package/dist/src/components/inputs/EmptyInput.d.ts.map +1 -1
  383. package/dist/src/components/inputs/FileDropzoneInput.d.ts +8 -7
  384. package/dist/src/components/inputs/FileDropzoneInput.d.ts.map +1 -1
  385. package/dist/src/components/inputs/HiddenInput.d.ts +2 -23
  386. package/dist/src/components/inputs/HiddenInput.d.ts.map +1 -1
  387. package/dist/src/components/inputs/InputsShowcase.d.ts +1 -1
  388. package/dist/src/components/inputs/InputsShowcase.d.ts.map +1 -1
  389. package/dist/src/components/inputs/PhoneInput.d.ts +79 -16
  390. package/dist/src/components/inputs/PhoneInput.d.ts.map +1 -1
  391. package/dist/src/components/inputs/RichTextInput.d.ts +22 -80
  392. package/dist/src/components/inputs/RichTextInput.d.ts.map +1 -1
  393. package/dist/src/components/inputs/SelectInput.d.ts +49 -42
  394. package/dist/src/components/inputs/SelectInput.d.ts.map +1 -1
  395. package/dist/src/components/inputs/SelectTextInput.d.ts +52 -12
  396. package/dist/src/components/inputs/SelectTextInput.d.ts.map +1 -1
  397. package/dist/src/components/inputs/SwitchInput.d.ts +115 -42
  398. package/dist/src/components/inputs/SwitchInput.d.ts.map +1 -1
  399. package/dist/src/components/inputs/SwitchInputGroup.d.ts +2 -3
  400. package/dist/src/components/inputs/SwitchInputGroup.d.ts.map +1 -1
  401. package/dist/src/components/inputs/TagifyInput.d.ts +30 -20
  402. package/dist/src/components/inputs/TagifyInput.d.ts.map +1 -1
  403. package/dist/src/components/inputs/TextAreaInput.d.ts +9 -35
  404. package/dist/src/components/inputs/TextAreaInput.d.ts.map +1 -1
  405. package/dist/src/components/inputs/TextInput.d.ts +13 -73
  406. package/dist/src/components/inputs/TextInput.d.ts.map +1 -1
  407. package/dist/src/components/layouts/CardLayout.d.ts +20 -66
  408. package/dist/src/components/layouts/CardLayout.d.ts.map +1 -1
  409. package/dist/src/components/layouts/DashboardLayout.d.ts +8 -5
  410. package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
  411. package/dist/src/components/layouts/DefaultLayout.d.ts +1 -1
  412. package/dist/src/components/layouts/DefaultLayout.d.ts.map +1 -1
  413. package/dist/src/components/layouts/HeaderLayout.d.ts +4 -4
  414. package/dist/src/components/layouts/HeaderLayout.d.ts.map +1 -1
  415. package/dist/src/components/layouts/InfoCard.d.ts +2 -25
  416. package/dist/src/components/layouts/InfoCard.d.ts.map +1 -1
  417. package/dist/src/components/layouts/NavigationGroup.d.ts +5 -16
  418. package/dist/src/components/layouts/NavigationGroup.d.ts.map +1 -1
  419. package/dist/src/components/layouts/NavigationItem.d.ts +7 -24
  420. package/dist/src/components/layouts/NavigationItem.d.ts.map +1 -1
  421. package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts +10 -40
  422. package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts.map +1 -1
  423. package/dist/src/components/layouts/ProjectLogo.d.ts +2 -33
  424. package/dist/src/components/layouts/ProjectLogo.d.ts.map +1 -1
  425. package/dist/src/components/layouts/PropsTable.d.ts +2 -23
  426. package/dist/src/components/layouts/PropsTable.d.ts.map +1 -1
  427. package/dist/src/components/layouts/ShowcaseCard.d.ts +2 -29
  428. package/dist/src/components/layouts/ShowcaseCard.d.ts.map +1 -1
  429. package/dist/src/components/layouts/ShowcaseLayout.d.ts +5 -28
  430. package/dist/src/components/layouts/ShowcaseLayout.d.ts.map +1 -1
  431. package/dist/src/components/layouts/SidebarLayout.d.ts +7 -4
  432. package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
  433. package/dist/src/components/layouts/StateDisplay.d.ts +2 -23
  434. package/dist/src/components/layouts/StateDisplay.d.ts.map +1 -1
  435. package/dist/src/components/loading/ContentSkeleton.d.ts +2 -31
  436. package/dist/src/components/loading/ContentSkeleton.d.ts.map +1 -1
  437. package/dist/src/components/loading/SmartLoadingIndicator.d.ts +6 -47
  438. package/dist/src/components/loading/SmartLoadingIndicator.d.ts.map +1 -1
  439. package/dist/src/components/maps/GoogleMap.d.ts +7 -8
  440. package/dist/src/components/maps/GoogleMap.d.ts.map +1 -1
  441. package/dist/src/components/maps/UiInfoWindow.d.ts +229 -14
  442. package/dist/src/components/maps/UiInfoWindow.d.ts.map +1 -1
  443. package/dist/src/components/maps/UiMap.d.ts +5091 -101
  444. package/dist/src/components/maps/UiMap.d.ts.map +1 -1
  445. package/dist/src/components/maps/UiMapAll.d.ts +1130 -20
  446. package/dist/src/components/maps/UiMapAll.d.ts.map +1 -1
  447. package/dist/src/components/maps/UiMapMarker.d.ts +16 -17
  448. package/dist/src/components/maps/UiMapMarker.d.ts.map +1 -1
  449. package/dist/src/components/modals/AlertModal.d.ts +9 -10
  450. package/dist/src/components/modals/AlertModal.d.ts.map +1 -1
  451. package/dist/src/components/modals/BaseModal.d.ts +6 -7
  452. package/dist/src/components/modals/BaseModal.d.ts.map +1 -1
  453. package/dist/src/components/modals/ImageCropperModal.d.ts +379 -75
  454. package/dist/src/components/modals/ImageCropperModal.d.ts.map +1 -1
  455. package/dist/src/components/notifications/NotificationContainer.d.ts.map +1 -1
  456. package/dist/src/components/notifications/NotificationToast.d.ts +9 -18
  457. package/dist/src/components/notifications/NotificationToast.d.ts.map +1 -1
  458. package/dist/src/components/stepper/StepperPanels.d.ts +4 -14
  459. package/dist/src/components/stepper/StepperPanels.d.ts.map +1 -1
  460. package/dist/src/components/tabs/InlineTabs.d.ts +4 -28
  461. package/dist/src/components/tabs/InlineTabs.d.ts.map +1 -1
  462. package/dist/src/components/tabs/TabGroup.d.ts +6 -32
  463. package/dist/src/components/tabs/TabGroup.d.ts.map +1 -1
  464. package/dist/src/components/tabs/TabGroupUnderline.d.ts +6 -32
  465. package/dist/src/components/tabs/TabGroupUnderline.d.ts.map +1 -1
  466. package/dist/src/components/tabs/TabsInPills.d.ts +4 -26
  467. package/dist/src/components/tabs/TabsInPills.d.ts.map +1 -1
  468. package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts +2 -37
  469. package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts.map +1 -1
  470. package/dist/src/components/wrappers/CardWrapper.d.ts +1 -1
  471. package/dist/src/components/wrappers/CardWrapper.d.ts.map +1 -1
  472. package/dist/src/components/wrappers/DisclosureWrapper.d.ts +2 -23
  473. package/dist/src/components/wrappers/DisclosureWrapper.d.ts.map +1 -1
  474. package/dist/src/components/wrappers/FormErrorWrapper.d.ts +2 -25
  475. package/dist/src/components/wrappers/FormErrorWrapper.d.ts.map +1 -1
  476. package/dist/src/composables/useCalendar.d.ts +4 -5
  477. package/dist/src/composables/useFormValidation.d.ts +0 -1
  478. package/dist/src/composables/useMap.d.ts +0 -1
  479. package/dist/src/composables/useNotifications.d.ts +1308 -30
  480. package/dist/src/composables/useNotifications.d.ts.map +1 -1
  481. package/dist/src/composables/useSimpleTabs.d.ts +0 -1
  482. package/dist/src/composables/useStringTransform.d.ts +0 -1
  483. package/dist/src/composables/useTabs.d.ts +0 -1
  484. package/dist/src/config/css-variables.d.ts +0 -1
  485. package/dist/src/config/design-tokens.d.ts +1 -1
  486. package/dist/src/config/design-tokens.d.ts.map +1 -1
  487. package/dist/src/dev.d.ts +0 -1
  488. package/dist/src/plugin/configure.d.ts +0 -1
  489. package/dist/src/types/calendars.d.ts +12 -11
  490. package/dist/src/types/calendars.d.ts.map +1 -1
  491. package/dist/src/types/core.d.ts +3 -4
  492. package/dist/src/types/core.d.ts.map +1 -1
  493. package/dist/src/types/form.d.ts +15 -13
  494. package/dist/src/types/form.d.ts.map +1 -1
  495. package/dist/src/types/forms.d.ts +2 -1
  496. package/dist/src/types/forms.d.ts.map +1 -1
  497. package/dist/src/types/inputs.d.ts +14 -9
  498. package/dist/src/types/inputs.d.ts.map +1 -1
  499. package/dist/src/types/layouts.d.ts +0 -1
  500. package/dist/src/types/navigation.d.ts +2 -1
  501. package/dist/src/types/navigation.d.ts.map +1 -1
  502. package/dist/src/types/tables.d.ts +8 -6
  503. package/dist/src/types/tables.d.ts.map +1 -1
  504. package/dist/src/types/ui.d.ts +1 -2
  505. package/dist/src/types/ui.d.ts.map +1 -1
  506. package/dist/src/utils/calendar.d.ts +1 -1
  507. package/dist/src/utils/calendar.d.ts.map +1 -1
  508. package/dist/src/utils/component-registry.d.ts +0 -1
  509. package/dist/src/utils/mapThemes.d.ts +0 -1
  510. package/dist/src/utils/phone.d.ts +0 -1
  511. package/dist/src/views/ButtonsShowcase.d.ts +3 -0
  512. package/dist/src/views/ButtonsShowcase.d.ts.map +1 -0
  513. package/dist/src/views/CalendarsShowcase.d.ts +3 -0
  514. package/dist/src/views/CalendarsShowcase.d.ts.map +1 -0
  515. package/dist/src/views/CardsShowcase.d.ts +3 -0
  516. package/dist/src/views/CardsShowcase.d.ts.map +1 -0
  517. package/dist/src/views/ChartsShowcase.d.ts +3 -0
  518. package/dist/src/views/ChartsShowcase.d.ts.map +1 -0
  519. package/dist/src/views/EmptyStatesShowcase.d.ts +3 -0
  520. package/dist/src/views/EmptyStatesShowcase.d.ts.map +1 -0
  521. package/dist/src/views/InputsShowcase.d.ts +3 -0
  522. package/dist/src/views/InputsShowcase.d.ts.map +1 -0
  523. package/dist/src/views/KitchenSink.d.ts +3 -0
  524. package/dist/src/views/KitchenSink.d.ts.map +1 -0
  525. package/dist/src/views/LayoutsShowcase.d.ts +3 -0
  526. package/dist/src/views/LayoutsShowcase.d.ts.map +1 -0
  527. package/dist/src/views/LoadingShowcase.d.ts +3 -0
  528. package/dist/src/views/LoadingShowcase.d.ts.map +1 -0
  529. package/dist/src/views/MapsShowcase.d.ts +3 -0
  530. package/dist/src/views/MapsShowcase.d.ts.map +1 -0
  531. package/dist/src/views/ModalsShowcase.d.ts +3 -0
  532. package/dist/src/views/ModalsShowcase.d.ts.map +1 -0
  533. package/dist/src/views/NotificationsShowcase.d.ts +3 -0
  534. package/dist/src/views/NotificationsShowcase.d.ts.map +1 -0
  535. package/dist/src/views/StepperShowcase.d.ts +3 -0
  536. package/dist/src/views/StepperShowcase.d.ts.map +1 -0
  537. package/dist/src/views/TabsShowcase.d.ts +3 -0
  538. package/dist/src/views/TabsShowcase.d.ts.map +1 -0
  539. package/dist/src/views/ValidationDemo.d.ts +3 -0
  540. package/dist/src/views/ValidationDemo.d.ts.map +1 -0
  541. package/dist/src/views/WrappersShowcase.d.ts +3 -0
  542. package/dist/src/views/WrappersShowcase.d.ts.map +1 -0
  543. package/dist/src/views/components/AvatarPage.d.ts +3 -0
  544. package/dist/src/views/components/AvatarPage.d.ts.map +1 -0
  545. package/dist/src/views/components/BadgePage.d.ts +3 -0
  546. package/dist/src/views/components/BadgePage.d.ts.map +1 -0
  547. package/dist/src/views/components/BannerPage.d.ts +3 -0
  548. package/dist/src/views/components/BannerPage.d.ts.map +1 -0
  549. package/dist/src/views/components/BreadcrumbPage.d.ts +3 -0
  550. package/dist/src/views/components/BreadcrumbPage.d.ts.map +1 -0
  551. package/dist/src/views/components/ButtonPage.d.ts +3 -0
  552. package/dist/src/views/components/ButtonPage.d.ts.map +1 -0
  553. package/dist/src/views/components/CloudinaryImagePage.d.ts +3 -0
  554. package/dist/src/views/components/CloudinaryImagePage.d.ts.map +1 -0
  555. package/dist/src/views/components/LoadingPage.d.ts +3 -0
  556. package/dist/src/views/components/LoadingPage.d.ts.map +1 -0
  557. package/dist/src/views/components/MenuPage.d.ts +3 -0
  558. package/dist/src/views/components/MenuPage.d.ts.map +1 -0
  559. package/dist/src/views/components/ModalPage.d.ts +3 -0
  560. package/dist/src/views/components/ModalPage.d.ts.map +1 -0
  561. package/dist/src/views/components/ProgressPage.d.ts +3 -0
  562. package/dist/src/views/components/ProgressPage.d.ts.map +1 -0
  563. package/dist/src/views/components/RichTextInputPage.d.ts +3 -0
  564. package/dist/src/views/components/RichTextInputPage.d.ts.map +1 -0
  565. package/dist/src/views/components/TablePage.d.ts +3 -0
  566. package/dist/src/views/components/TablePage.d.ts.map +1 -0
  567. package/dist/src/views/components/TextInputPage.d.ts +3 -0
  568. package/dist/src/views/components/TextInputPage.d.ts.map +1 -0
  569. package/dist/src/views/components/TransitionPage.d.ts +3 -0
  570. package/dist/src/views/components/TransitionPage.d.ts.map +1 -0
  571. package/dist/src/views/examples/CheckoutFormExample.d.ts +3 -0
  572. package/dist/src/views/examples/CheckoutFormExample.d.ts.map +1 -0
  573. package/dist/src/views/examples/ContactFormExample.d.ts +3 -0
  574. package/dist/src/views/examples/ContactFormExample.d.ts.map +1 -0
  575. package/dist/src/views/examples/RegistrationFormExample.d.ts +3 -0
  576. package/dist/src/views/examples/RegistrationFormExample.d.ts.map +1 -0
  577. package/dist/src/views/examples/SettingsFormExample.d.ts +3 -0
  578. package/dist/src/views/examples/SettingsFormExample.d.ts.map +1 -0
  579. package/dist/src/views/forms/ValidationPage.d.ts +3 -0
  580. package/dist/src/views/forms/ValidationPage.d.ts.map +1 -0
  581. package/dist/src/views/inputs/CheckboxPage.d.ts +3 -0
  582. package/dist/src/views/inputs/CheckboxPage.d.ts.map +1 -0
  583. package/dist/src/views/inputs/ComboboxPage.d.ts +3 -0
  584. package/dist/src/views/inputs/ComboboxPage.d.ts.map +1 -0
  585. package/dist/src/views/inputs/DatepickerPage.d.ts +3 -0
  586. package/dist/src/views/inputs/DatepickerPage.d.ts.map +1 -0
  587. package/dist/src/views/inputs/EmailPage.d.ts +3 -0
  588. package/dist/src/views/inputs/EmailPage.d.ts.map +1 -0
  589. package/dist/src/views/inputs/FileDropzonePage.d.ts +3 -0
  590. package/dist/src/views/inputs/FileDropzonePage.d.ts.map +1 -0
  591. package/dist/src/views/inputs/MiscInputsPage.d.ts +3 -0
  592. package/dist/src/views/inputs/MiscInputsPage.d.ts.map +1 -0
  593. package/dist/src/views/inputs/PhonePage.d.ts +3 -0
  594. package/dist/src/views/inputs/PhonePage.d.ts.map +1 -0
  595. package/dist/src/views/inputs/SelectPage.d.ts +3 -0
  596. package/dist/src/views/inputs/SelectPage.d.ts.map +1 -0
  597. package/dist/src/views/inputs/SelectTextPage.d.ts +3 -0
  598. package/dist/src/views/inputs/SelectTextPage.d.ts.map +1 -0
  599. package/dist/src/views/inputs/SwitchGroupPage.d.ts +3 -0
  600. package/dist/src/views/inputs/SwitchGroupPage.d.ts.map +1 -0
  601. package/dist/src/views/inputs/SwitchPage.d.ts +3 -0
  602. package/dist/src/views/inputs/SwitchPage.d.ts.map +1 -0
  603. package/dist/src/views/inputs/TextAreaPage.d.ts +3 -0
  604. package/dist/src/views/inputs/TextAreaPage.d.ts.map +1 -0
  605. package/dist/src/views/layouts/CardLayoutPage.d.ts +3 -0
  606. package/dist/src/views/layouts/CardLayoutPage.d.ts.map +1 -0
  607. package/dist/src/views/layouts/DashboardLayoutPage.d.ts +3 -0
  608. package/dist/src/views/layouts/DashboardLayoutPage.d.ts.map +1 -0
  609. package/dist/src/views/layouts/HeaderLayoutPage.d.ts +3 -0
  610. package/dist/src/views/layouts/HeaderLayoutPage.d.ts.map +1 -0
  611. package/dist/src/views/layouts/SidebarLayoutPage.d.ts +3 -0
  612. package/dist/src/views/layouts/SidebarLayoutPage.d.ts.map +1 -0
  613. package/dist/stepper/StepperPanels.d.ts +1 -3
  614. package/dist/stepper/StepperPanels.js +1 -1
  615. package/dist/stepper/index.d.ts +1 -0
  616. package/dist/stepper/index.js +1 -1
  617. package/dist/style.css +1 -1
  618. package/dist/tabs/InlineTabs.d.ts +1 -3
  619. package/dist/tabs/InlineTabs.js +1 -1
  620. package/dist/tabs/TabGroup.d.ts +1 -3
  621. package/dist/tabs/TabGroup.js +1 -1
  622. package/dist/tabs/TabGroupUnderline.d.ts +1 -3
  623. package/dist/tabs/TabGroupUnderline.js +1 -1
  624. package/dist/tabs/TabsInPills.d.ts +1 -3
  625. package/dist/tabs/TabsInPills.js +1 -1
  626. package/dist/tabs/index.d.ts +1 -0
  627. package/dist/tabs/index.js +4 -4
  628. package/dist/{tabs-Da32Mbhf.js → tabs-J5phClGv.js} +2 -2
  629. package/dist/{tabs-Da32Mbhf.js.map → tabs-J5phClGv.js.map} +1 -1
  630. package/dist/ui.css +1 -0
  631. package/dist/{use-outside-click-DNDV36Sc.js → use-outside-click-14T0Zn98.js} +3 -3
  632. package/dist/{use-outside-click-DNDV36Sc.js.map → use-outside-click-14T0Zn98.js.map} +1 -1
  633. package/dist/{use-tree-walker-BHCORE7u.js → use-tree-walker-Bo9gIb_K.js} +2 -2
  634. package/dist/{use-tree-walker-BHCORE7u.js.map → use-tree-walker-Bo9gIb_K.js.map} +1 -1
  635. package/dist/vue-router-B3K2xmg_.js +120 -0
  636. package/dist/vue-router-B3K2xmg_.js.map +1 -0
  637. package/dist/vue3-lottie.es-DT4qZE-F.js +7981 -0
  638. package/dist/{vue3-lottie.es-C_MDkNwR.js.map → vue3-lottie.es-DT4qZE-F.js.map} +1 -1
  639. package/dist/wrappers/BackgroundGradientWrapper.d.ts +1 -3
  640. package/dist/wrappers/BackgroundGradientWrapper.js +1 -1
  641. package/dist/wrappers/CardWrapper.d.ts +1 -3
  642. package/dist/wrappers/DisclosureWrapper.d.ts +1 -3
  643. package/dist/wrappers/DisclosureWrapper.js +1 -1
  644. package/dist/wrappers/FormErrorWrapper.d.ts +1 -3
  645. package/dist/wrappers/index.d.ts +1 -0
  646. package/dist/wrappers/index.js +2 -2
  647. package/package.json +26 -18
  648. package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js.map +0 -1
  649. package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js +0 -187
  650. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js +0 -1315
  651. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js.map +0 -1
  652. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js +0 -253
  653. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js.map +0 -1
  654. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js.map +0 -1
  655. package/dist/EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js +0 -122
  656. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js +0 -36
  657. package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js +0 -30
  658. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js +0 -162
  659. package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js.map +0 -1
  660. package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js +0 -130
  661. package/dist/SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js.map +0 -1
  662. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js.map +0 -1
  663. package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js.map +0 -1
  664. package/dist/UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js.map +0 -1
  665. package/dist/calendar-DyIP7WGv.js.map +0 -1
  666. package/dist/src/components/charts/BaseChart.d.ts +0 -81
  667. package/dist/src/components/charts/BaseChart.d.ts.map +0 -1
  668. package/dist/vue-router-BPbyZ7xA.js +0 -145
  669. package/dist/vue-router-BPbyZ7xA.js.map +0 -1
  670. package/dist/vue3-lottie.es-C_MDkNwR.js +0 -7976
@@ -1 +1 @@
1
- {"version":3,"file":"DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js","sources":["../src/components/inputs/DatepickerInput.vue"],"sourcesContent":["<template>\n <FormFieldWrapper\n :id=\"fieldId\"\n :name=\"name\"\n :label=\"label\"\n :optional=\"!required\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n :show-errors=\"showErrors\"\n :show-valid-check=\"showValidCheckComputed\"\n :tertiary-label=\"tertiaryLabel\"\n :disabled=\"disabled\"\n :disabled-message=\"disabledMessage\"\n data-testid=\"datepicker-wrapper\"\n >\n <div class=\"sl-relative sl-rounded-md sl-shadow-sm\" data-testid=\"datepicker-container\">\n <!-- @ts-expect-error: VueDatePicker ModelValue type is complex, using broader DatepickerModelValue -->\n <VueDatePicker\n ref=\"datepicker\"\n v-model=\"(dateValue as any)\"\n v-bind=\"dynamicPickerProps\"\n :flow=\"inputFlow\"\n :hide-navigation=\"hideNavigation\"\n :action-row=\"actionRowConfig\"\n :auto-apply=\"autoApply\"\n :enable-time-picker=\"enableTimePicker\"\n :time-picker=\"timePicker\"\n :teleport=\"teleport\"\n :teleport-center=\"teleportCenter\"\n :uid=\"fieldId\"\n :utc=\"utc\"\n :clearable=\"false\"\n :dark=\"dark\"\n :locale=\"locale\"\n :format=\"displayFormat\"\n :preview-format=\"previewFormat\"\n :placeholder=\"placeholder\"\n :model-type=\"modelType\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :text-input=\"textInput\"\n :inline=\"inline\"\n :multi-calendars=\"multiCalendars\"\n :month-change-on-scroll=\"monthChangeOnScroll\"\n :highlight-week-days=\"highlightWeekDays\"\n :highlight-disabled-days=\"highlightDisabledDays\"\n :disable-month-year-select=\"disableMonthYearSelect\"\n :show-now-button=\"showNowButton\"\n :six-weeks=\"sixWeeks\"\n :start-date=\"startDate\"\n :start-time=\"startTime\"\n :no-today=\"noToday\"\n :no-disabled-range=\"noDisabledRange\"\n :partial-flow=\"partialFlow\"\n :week-start=\"weekStart\"\n :transitions=\"transitions\"\n :auto-position=\"autoPosition\"\n :multi-dates=\"multiDates\"\n :multi-dates-limit=\"multiDatesLimit\"\n :ignore-time-validation=\"ignoreTimeValidation\"\n :prevent-min-max-navigation=\"preventMinMaxNavigation\"\n @update:model-value=\"handleInput\"\n @open=\"handleOpen\"\n @closed=\"handleClosed\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @internal-model-change=\"handleInternalChange\"\n @cleared=\"handleCleared\"\n @text-submit=\"handleTextSubmit\"\n >\n <template #dp-input=\"{ value, onInput, onEnter, onTab, onClear, onBlur, onKeypress, onPaste }\">\n <div class=\"sl-relative sl-flex sl-items-center\" data-testid=\"datepicker-input-wrapper\">\n <component\n v-if=\"icon\"\n :is=\"icon\"\n class=\"sl-text-gray-600 dark:sl-text-gray-300 sl-absolute sl-left-3 sl-h-4 sl-w-4 sl-pointer-events-none sl-z-10\"\n aria-hidden=\"true\"\n data-testid=\"datepicker-icon\"\n />\n <input\n type=\"text\"\n :id=\"fieldId\"\n :name=\"name\"\n :value=\"value\"\n :placeholder=\"placeholder\"\n :readonly=\"!textInput\"\n :disabled=\"disabled\"\n :aria-label=\"label || placeholder\"\n :aria-describedby=\"errorMessage ? `${fieldId}-error` : undefined\"\n :aria-invalid=\"!!errorMessage\"\n :class=\"inputClasses\"\n autocomplete=\"off\"\n data-testid=\"datepicker-input\"\n @input=\"onInput\"\n @keydown.enter=\"onEnter\"\n @keydown.tab=\"onTab\"\n @blur=\"onBlur\"\n @keypress=\"onKeypress\"\n @paste=\"onPaste\"\n />\n <button\n v-if=\"shouldShowClearButton\"\n type=\"button\"\n class=\"sl-absolute sl-right-3 sl-p-1 sl-rounded-full sl-text-gray-400 hover:sl-text-gray-600 dark:hover:sl-text-gray-300 hover:sl-bg-gray-100 dark:hover:sl-bg-slate-700 sl-transition-colors sl-z-10\"\n :aria-label=\"clearAriaLabel\"\n data-testid=\"datepicker-clear\"\n @click=\"onClear\"\n >\n <XMarkIcon class=\"sl-h-4 sl-w-4\" />\n </button>\n </div>\n </template>\n\n <template v-if=\"$slots['action-buttons'] || !autoApply\" #action-row>\n <div class=\"sl-overflow-hidden sl-rounded-lg sl-bg-white dark:sl-bg-slate-800 sl-shadow dp__action_row_wrapper\">\n <div class=\"sl-bg-gray-50 dark:sl-bg-slate-700/50 sl-px-4 sl-py-3\">\n <slot name=\"action-buttons\" :select-date=\"selectDate\" :close-menu=\"closeMenu\">\n <div class=\"sl-flex sl-gap-2\">\n <button\n type=\"button\"\n class=\"sl-flex-1 sl-rounded-md sl-bg-primary-600 sl-px-3 sl-py-2 sl-text-sm sl-font-semibold sl-text-white sl-shadow-sm hover:sl-bg-primary-500 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-primary-600 focus:sl-ring-offset-2 dark:focus:sl-ring-offset-slate-800 sl-transition-colors\"\n data-testid=\"datepicker-select\"\n @click=\"selectDate\"\n >\n {{ selectText }}\n </button>\n <button\n type=\"button\"\n class=\"sl-flex-1 sl-rounded-md sl-bg-white dark:sl-bg-slate-700 sl-px-3 sl-py-2 sl-text-sm sl-font-semibold sl-text-gray-900 dark:sl-text-gray-200 sl-shadow-sm sl-ring-1 sl-ring-inset sl-ring-gray-300 dark:sl-ring-slate-600 hover:sl-bg-gray-50 dark:hover:sl-bg-slate-600 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-gray-500 focus:sl-ring-offset-2 dark:focus:sl-ring-offset-slate-800 sl-transition-colors\"\n data-testid=\"datepicker-cancel\"\n @click=\"closeMenu\"\n >\n {{ cancelText }}\n </button>\n </div>\n </slot>\n </div>\n </div>\n </template>\n\n <!-- Allow custom calendar cell styling -->\n <template v-if=\"$slots['calendar-cell']\" #day=\"{ day, date }\">\n <slot name=\"calendar-cell\" :day=\"day\" :date=\"date\" />\n </template>\n\n <!-- Allow custom month/year header -->\n <template v-if=\"$slots['month-year']\" #month-year=\"{ month, year, months, years, updateMonthYear, handleMonthYearChange }\">\n <slot \n name=\"month-year\" \n :month=\"month\" \n :year=\"year\" \n :months=\"months\" \n :years=\"years\"\n :update-month-year=\"updateMonthYear\"\n :handle-month-year-change=\"handleMonthYearChange\"\n />\n </template>\n\n <!-- Allow custom time picker -->\n <template v-if=\"$slots['time-picker']\" #time-picker=\"slotProps\">\n <slot name=\"time-picker\" v-bind=\"slotProps\" />\n </template>\n\n <!-- Allow custom left sidebar OR preset date ranges -->\n <template v-if=\"$slots['left-sidebar'] || presetDates.length > 0\" #left-sidebar>\n <slot v-if=\"$slots['left-sidebar']\" name=\"left-sidebar\" />\n <div v-else-if=\"presetDates.length > 0\" class=\"sl-p-3 sl-border-r sl-border-gray-200 dark:sl-border-slate-700\" data-testid=\"datepicker-presets\">\n <div class=\"sl-text-xs sl-font-semibold sl-text-gray-500 dark:sl-text-slate-300 sl-uppercase sl-tracking-wide sl-mb-2\">\n {{ presetsLabel }}\n </div>\n <div class=\"sl-flex sl-flex-col sl-gap-1\">\n <button\n v-for=\"preset in presetDates\"\n :key=\"preset.label\"\n type=\"button\"\n class=\"sl-text-left sl-px-2 sl-py-1.5 sl-text-sm sl-rounded-md sl-transition-colors hover:sl-bg-gray-100 dark:hover:sl-bg-slate-700 sl-text-gray-700 dark:sl-text-slate-200\"\n :data-testid=\"`datepicker-preset-${preset.label.toLowerCase().replace(/\\s+/g, '-')}`\"\n @click=\"applyPreset(preset)\"\n >\n {{ preset.label }}\n </button>\n </div>\n </div>\n </template>\n\n <!-- Allow custom right sidebar -->\n <template v-if=\"$slots['right-sidebar']\" #right-sidebar>\n <slot name=\"right-sidebar\" />\n </template>\n </VueDatePicker>\n </div>\n </FormFieldWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef, ref, computed, watch, inject, defineAsyncComponent, type PropType, type Ref, type FunctionalComponent, type HTMLAttributes, type VNodeProps, type Component } from 'vue';\nimport { useField } from 'vee-validate';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport FormFieldWrapper from '@/components/forms/FormFieldWrapper.vue';\nimport { generateId } from '@/utils/id';\nimport type { AnySchema } from 'yup';\nimport type { DatepickerOptions } from '@/plugin/configure';\n\n// Dynamic import for VueDatePicker to reduce bundle size\nconst VueDatePicker = defineAsyncComponent(() => import('@vuepic/vue-datepicker'));\n\n// ============================================================================\n// TYPE DEFINITIONS\n// ============================================================================\n\n/** Valid flow steps for multi-step date selection */\nexport type FlowStep = 'month' | 'year' | 'calendar' | 'time' | 'minutes' | 'hours' | 'seconds';\nexport type FlowType = FlowStep[];\nexport type HideNavigationType = FlowStep[];\n\n/** Model value types supported by the datepicker */\nexport type DatepickerModelValue = \n | Date \n | Date[] \n | string \n | string[] \n | { month: number; year: number } \n | { hours: number; minutes: number; seconds?: number }\n | [Date | null, Date | null] // Range type\n | null;\n\n/** Marker configuration for highlighting specific dates */\nexport interface DatepickerMarker {\n date: Date | string;\n type?: 'dot' | 'line';\n tooltip?: string;\n color?: string;\n}\n\n/** Highlight configuration */\nexport interface DatepickerHighlight {\n dates?: Date[];\n months?: { month: number; year: number }[];\n years?: number[];\n quarters?: { quarter: number; year: number }[];\n weekdays?: number[];\n options?: {\n highlightDisabled?: boolean;\n };\n}\n\n/** Preset date configuration */\nexport interface DatepickerPreset {\n label: string;\n value: Date | Date[] | [Date, Date];\n slot?: string;\n}\n\n/** Time model */\nexport interface TimeModel {\n hours: number;\n minutes: number;\n seconds?: number;\n}\n\n/** Month/Year model */\nexport interface MonthYearModel {\n month: number;\n year: number;\n}\n\n/** Internal DatePicker instance interface */\ninterface DatePickerInstance {\n selectDate: () => void;\n closeMenu: () => void;\n openMenu: () => void;\n clearValue: () => void;\n setMonthYear: (value: { month?: number; year?: number }) => void;\n}\n\n// ============================================================================\n// PROPS\n// ============================================================================\n\nconst props = defineProps({\n // Field identification\n name: {\n type: String,\n required: true,\n },\n value: {\n type: [Date, Array, String, Number, Object] as PropType<DatepickerModelValue>,\n default: null,\n },\n \n // Labels & display\n label: {\n type: String,\n default: '',\n },\n placeholder: {\n type: String,\n default: 'Select date...',\n },\n tertiaryLabel: {\n type: String,\n default: '',\n },\n hint: {\n type: String,\n default: '',\n },\n \n // Validation\n rules: {\n type: [Function, Object] as PropType<AnySchema>,\n default: undefined,\n },\n required: {\n type: Boolean,\n default: false,\n },\n validateOnMount: {\n type: Boolean,\n default: true,\n },\n showErrors: {\n type: Boolean,\n default: false,\n },\n showValidCheck: {\n type: Boolean,\n default: true,\n },\n successMessage: {\n type: String,\n default: '',\n },\n \n // Picker modes\n monthPicker: {\n type: Boolean,\n default: false,\n },\n yearPicker: {\n type: Boolean,\n default: false,\n },\n weekPicker: {\n type: Boolean,\n default: false,\n },\n quarterPicker: {\n type: Boolean,\n default: false,\n },\n timePicker: {\n type: Boolean,\n default: false,\n },\n enableTimePicker: {\n type: Boolean,\n default: false,\n },\n range: {\n type: Boolean,\n default: false,\n },\n multiDates: {\n type: Boolean,\n default: false,\n },\n multiDatesLimit: {\n type: Number,\n default: undefined,\n },\n \n // Time options\n is24: {\n type: Boolean,\n default: false,\n },\n minutesIncrement: {\n type: Number,\n default: 1,\n },\n secondsIncrement: {\n type: Number,\n default: 1,\n },\n hoursIncrement: {\n type: Number,\n default: 1,\n },\n \n // Date constraints\n minDate: {\n type: [Date, String] as PropType<Date | string | undefined>,\n default: undefined,\n },\n maxDate: {\n type: [Date, String] as PropType<Date | string | undefined>,\n default: undefined,\n },\n disabledDates: {\n type: [Array, Function] as PropType<Date[] | ((date: Date) => boolean)>,\n default: undefined,\n },\n allowedDates: {\n type: Array as PropType<Date[]>,\n default: undefined,\n },\n disabledWeekDays: {\n type: Array as PropType<number[]>,\n default: undefined,\n },\n \n // Navigation & Flow\n inputFlow: {\n type: Array as PropType<FlowType>,\n default: undefined,\n },\n hideNavigation: {\n type: Array as PropType<HideNavigationType>,\n default: undefined,\n },\n partialFlow: {\n type: Boolean,\n default: false,\n },\n \n // UI Customization\n icon: {\n type: [Function, Object] as PropType<FunctionalComponent<HTMLAttributes & VNodeProps, Record<string, never>, any> | Component>,\n default: undefined,\n },\n autoApply: {\n type: Boolean,\n default: true,\n },\n clearable: {\n type: Boolean,\n default: true,\n },\n teleport: {\n type: [Boolean, String] as PropType<boolean | string>,\n default: true,\n },\n teleportCenter: {\n type: Boolean,\n default: false,\n },\n inline: {\n type: Boolean,\n default: false,\n },\n multiCalendars: {\n type: [Boolean, Number, Object] as PropType<boolean | number | { solo?: boolean; static?: boolean }>,\n default: undefined,\n },\n monthChangeOnScroll: {\n type: [Boolean, String] as PropType<boolean | 'inverse'>,\n default: true,\n },\n \n // State\n disabled: {\n type: Boolean,\n default: false,\n },\n disabledMessage: {\n type: String,\n default: '',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n textInput: {\n type: [Boolean, Object] as PropType<boolean | { enterSubmit?: boolean; tabSubmit?: boolean; openMenu?: boolean; format?: string }>,\n default: false,\n },\n \n // Format & Locale\n displayFormat: {\n type: [String, Function] as PropType<string | ((date: Date | Date[]) => string)>,\n default: undefined,\n },\n previewFormat: {\n type: [String, Function] as PropType<string | ((date: Date | Date[]) => string)>,\n default: undefined,\n },\n modelType: {\n type: String as PropType<'timestamp' | 'format' | undefined>,\n default: undefined,\n },\n locale: {\n type: String,\n default: 'en-US',\n },\n weekStart: {\n type: [Number, String] as PropType<0 | 1 | 2 | 3 | 4 | 5 | 6 | '0' | '1' | '2' | '3' | '4' | '5' | '6'>,\n default: undefined,\n },\n weekNumbers: {\n type: [Boolean, String] as PropType<boolean | 'iso' | 'local'>,\n default: false,\n },\n \n // UTC handling\n utc: {\n type: [Boolean, String] as PropType<boolean | 'preserve'>,\n default: 'preserve',\n },\n \n // Visual markers & highlighting\n markers: {\n type: Array as PropType<DatepickerMarker[]>,\n default: () => [],\n },\n highlight: {\n type: [Object, Array, Function] as PropType<DatepickerHighlight | Date[] | ((date: Date) => boolean)>,\n default: undefined,\n },\n highlightWeekDays: {\n type: Array as PropType<number[]>,\n default: undefined,\n },\n highlightDisabledDays: {\n type: Boolean,\n default: false,\n },\n \n // Additional options\n disableMonthYearSelect: {\n type: Boolean,\n default: false,\n },\n showNowButton: {\n type: Boolean,\n default: false,\n },\n sixWeeks: {\n type: [Boolean, String] as PropType<boolean | 'center' | 'fair' | 'append' | 'prepend'>,\n default: false,\n },\n startDate: {\n type: [Date, String] as PropType<Date | string>,\n default: undefined,\n },\n startTime: {\n type: Object as PropType<TimeModel | TimeModel[]>,\n default: undefined,\n },\n noToday: {\n type: Boolean,\n default: false,\n },\n noDisabledRange: {\n type: Boolean,\n default: false,\n },\n ignoreTimeValidation: {\n type: Boolean,\n default: false,\n },\n preventMinMaxNavigation: {\n type: Boolean,\n default: false,\n },\n \n // Transitions & positioning\n transitions: {\n type: [Boolean, Object] as PropType<boolean | { open?: string; close?: string; next?: string; previous?: string }>,\n default: true,\n },\n autoPosition: {\n type: Boolean,\n default: true,\n },\n altPosition: {\n type: [Boolean, Function] as PropType<boolean | ((el: HTMLElement | undefined) => { top: number | string; left: number | string; transform?: string })>,\n default: undefined,\n },\n \n // Theming\n dark: {\n type: Boolean,\n default: false,\n },\n \n // Preset dates\n presetDates: {\n type: Array as PropType<DatepickerPreset[]>,\n default: () => [],\n },\n presetsLabel: {\n type: String,\n default: 'Quick Select',\n },\n \n // Action row text\n selectText: {\n type: String,\n default: 'Select',\n },\n cancelText: {\n type: String,\n default: 'Cancel',\n },\n clearAriaLabel: {\n type: String,\n default: 'Clear date',\n },\n});\n\n// ============================================================================\n// EMITS\n// ============================================================================\n\nconst emit = defineEmits<{\n (e: 'update:value', value: string | null | (string | null)[]): void;\n (e: 'update:modelValue', value: DatepickerModelValue): void;\n (e: 'open'): void;\n (e: 'closed'): void;\n (e: 'focus'): void;\n (e: 'blur'): void;\n (e: 'cleared'): void;\n (e: 'text-submit', value: string): void;\n (e: 'internal-model-change', value: DatepickerModelValue, isValid: boolean): void;\n}>();\n\n// ============================================================================\n// CONFIGURATION & STATE\n// ============================================================================\n\n// Get plugin configuration\nconst datepickerConfig = inject<DatepickerOptions>('datepicker', {});\n\n// Generate unique ID for this field\nconst fieldId = computed(() => generateId(props.name));\n\nconst name = toRef(props, 'name');\n\n// VeeValidate field setup\nconst {\n errorMessage,\n handleChange,\n meta,\n setTouched,\n validate,\n} = useField(name, props.rules, {\n initialValue: props.value,\n validateOnMount: props.validateOnMount,\n});\n\n// Internal state\n// Use broader type to accommodate VueDatePicker's complex ModelValue type\nconst dateValue = ref<DatepickerModelValue>(null) as Ref<DatepickerModelValue | null | undefined>;\nconst datepicker = ref<DatePickerInstance | null>(null);\nconst isOpen = ref(false);\n\n// Action row config\nconst actionRowConfig = computed(() => ({\n showNow: props.showNowButton,\n showPreview: !props.autoApply,\n showSelect: !props.autoApply,\n showCancel: !props.autoApply,\n}));\n\n// Determine if we should show the valid check icon\n// When clearable and there's a value, we show clear button instead of valid check\n// This prevents UI overlap and provides better UX (action > status)\nconst hasValue = computed(() => {\n if (dateValue.value === null || dateValue.value === undefined) return false;\n if (typeof dateValue.value === 'string' && dateValue.value === '') return false;\n if (Array.isArray(dateValue.value) && dateValue.value.length === 0) return false;\n return true;\n});\n\nconst shouldShowClearButton = computed(() => {\n return props.clearable && hasValue.value && !props.disabled;\n});\n\n// Only show valid check when:\n// 1. showValidCheck prop is true AND\n// 2. We're NOT showing the clear button (clear button takes that space)\nconst showValidCheckComputed = computed(() => {\n return props.showValidCheck && !shouldShowClearButton.value;\n});\n\n// ============================================================================\n// COMPUTED STYLES\n// ============================================================================\n\nconst inputClasses = computed(() => {\n const base = [\n 'sl-block sl-w-full sl-rounded-md sl-border-0 sl-py-1.5',\n 'sl-text-gray-800 dark:sl-text-gray-100 sl-shadow-sm sl-ring-1 sl-ring-inset',\n 'placeholder:sl-text-gray-400 dark:placeholder:sl-text-gray-500 focus:sl-ring-2 focus:sl-ring-inset',\n 'sm:sl-text-sm sm:sl-leading-6',\n 'sl-bg-white dark:sl-bg-slate-900',\n ];\n \n // Add icon padding\n if (props.icon) {\n base.push('sl-pl-10');\n } else {\n base.push('sl-pl-3');\n }\n \n // Add clearable padding\n if (props.clearable) {\n base.push('sl-pr-10');\n } else {\n base.push('sl-pr-3');\n }\n \n // Add state classes\n if (props.disabled) {\n base.push('sl-bg-gray-50 dark:sl-bg-slate-800 sl-text-gray-500 dark:sl-text-gray-300 sl-cursor-not-allowed sl-ring-gray-200 dark:sl-ring-slate-700');\n } else if (errorMessage.value && (meta.touched || props.showErrors)) {\n base.push('sl-ring-red-500 focus:sl-ring-red-500 sl-bg-red-50 dark:sl-bg-red-900/20');\n } else if (meta.valid && meta.touched) {\n base.push('sl-ring-gray-300 dark:sl-ring-slate-600 focus:sl-ring-primary-600');\n } else {\n base.push('sl-ring-gray-300 dark:sl-ring-slate-600 focus:sl-ring-primary-600');\n }\n \n return base.join(' ');\n});\n\n// ============================================================================\n// DYNAMIC PICKER PROPS\n// ============================================================================\n\nconst dynamicPickerProps = computed(() => {\n const pickerProps: Record<string, unknown> = {\n monthPicker: false,\n yearPicker: false,\n weekPicker: false,\n quarterPicker: false,\n timePicker: false,\n enableTimePicker: false,\n is24: datepickerConfig.is24 ?? props.is24,\n range: false,\n disabled: props.disabled,\n };\n\n // Set picker mode (mutually exclusive)\n if (props.monthPicker) {\n pickerProps.monthPicker = true;\n } else if (props.yearPicker) {\n pickerProps.yearPicker = true;\n } else if (props.weekPicker) {\n pickerProps.weekPicker = true;\n } else if (props.quarterPicker) {\n pickerProps.quarterPicker = true;\n } else if (props.range) {\n pickerProps.range = true;\n } else if (props.timePicker) {\n pickerProps.timePicker = true;\n pickerProps.is24 = datepickerConfig.is24 ?? props.is24;\n }\n\n // Handle allowed dates\n if (props.allowedDates && props.allowedDates.length > 0) {\n pickerProps.allowedDates = props.allowedDates;\n }\n\n // Handle disabled dates\n if (props.disabledDates) {\n pickerProps.disabledDates = props.disabledDates;\n }\n\n // Handle disabled week days\n if (props.disabledWeekDays && props.disabledWeekDays.length > 0) {\n pickerProps.disabledWeekDays = props.disabledWeekDays;\n }\n\n // Handle min date\n if (props.minDate) {\n const raw = typeof props.minDate === 'string' ? new Date(props.minDate) : props.minDate;\n if (raw instanceof Date && !isNaN(raw.getTime())) {\n const startOfDay = new Date(raw);\n startOfDay.setHours(0, 0, 0, 0);\n pickerProps.minDate = startOfDay;\n }\n }\n\n // Handle max date\n if (props.maxDate) {\n const raw = typeof props.maxDate === 'string' ? new Date(props.maxDate) : props.maxDate;\n if (raw instanceof Date && !isNaN(raw.getTime())) {\n const endOfDay = new Date(raw);\n endOfDay.setHours(23, 59, 59, 999);\n pickerProps.maxDate = endOfDay;\n }\n }\n\n // Time increments\n if (props.enableTimePicker || props.timePicker) {\n pickerProps.minutesIncrement = props.minutesIncrement;\n pickerProps.secondsIncrement = props.secondsIncrement;\n pickerProps.hoursIncrement = props.hoursIncrement;\n }\n\n // Add props that have strict type checking issues with VueDatePicker\n // These are added here to bypass template-level type checking\n if (props.markers && props.markers.length > 0) {\n pickerProps.markers = props.markers;\n }\n if (props.highlight !== undefined) {\n pickerProps.highlight = props.highlight;\n }\n if (props.weekNumbers) {\n pickerProps.weekNumbers = props.weekNumbers;\n }\n if (props.altPosition !== undefined && typeof props.altPosition === 'function') {\n pickerProps.altPosition = props.altPosition;\n }\n\n return pickerProps;\n});\n\n// ============================================================================\n// DATE CONVERSION & STANDARDIZATION\n// ============================================================================\n\n/**\n * Standardize date value to ISO string format for consistent storage/validation\n */\nconst standardizeDate = (value: DatepickerModelValue): string | null | (string | null)[] => {\n if (value === null || value === undefined) {\n return null;\n }\n \n if (Array.isArray(value)) {\n return value.map(d => {\n if (d === null) return null;\n if (d instanceof Date) return d.toISOString();\n return d as string | null;\n });\n }\n \n if (value instanceof Date) {\n return value.toISOString();\n }\n \n if (typeof value === 'string') {\n const date = new Date(value);\n return !isNaN(date.getTime()) ? date.toISOString() : null;\n }\n \n if (typeof value === 'object' && value !== null) {\n // Month/Year object\n if ('month' in value && 'year' in value && \n typeof value.year === 'number' && \n typeof value.month === 'number') {\n const date = new Date(value.year, value.month, 1);\n return date.toISOString();\n }\n \n // Time object\n if ('hours' in value && 'minutes' in value && \n typeof value.hours === 'number' && \n typeof value.minutes === 'number') {\n return JSON.stringify(value);\n }\n }\n \n return null;\n};\n\n/**\n * Convert value to datepicker format\n */\nconst convertDate = (value: DatepickerModelValue): { convertedDate: DatepickerModelValue } => {\n if (value === null || value === undefined) {\n return { convertedDate: null };\n }\n \n if (Array.isArray(value)) {\n return {\n convertedDate: value.map(v => (v ? new Date(v as string | Date) : null)) as Date[],\n };\n }\n \n if (typeof value === 'string') {\n const effectiveDate = new Date(value);\n if (isNaN(effectiveDate.getTime())) {\n return { convertedDate: null };\n }\n return {\n convertedDate: dynamicPickerProps.value.monthPicker\n ? { month: effectiveDate.getMonth(), year: effectiveDate.getFullYear() }\n : effectiveDate\n };\n }\n \n if (value instanceof Date) {\n return {\n convertedDate: dynamicPickerProps.value.monthPicker\n ? { month: value.getMonth(), year: value.getFullYear() }\n : value\n };\n }\n \n if (typeof value === 'object' && value !== null) {\n // Month/Year object\n if ('month' in value && 'year' in value && \n typeof value.year === 'number' && \n typeof value.month === 'number') {\n return {\n convertedDate: { month: value.month, year: value.year }\n };\n }\n \n // Time object\n if ('hours' in value && 'minutes' in value && \n typeof value.hours === 'number' && \n typeof value.minutes === 'number') {\n return { convertedDate: value };\n }\n }\n \n return { convertedDate: null };\n};\n\n// ============================================================================\n// EVENT HANDLERS\n// ============================================================================\n\nconst handleInput = async (modelData: DatepickerModelValue) => {\n const standardizedDate = standardizeDate(modelData);\n handleChange(standardizedDate);\n emit('update:value', standardizedDate);\n emit('update:modelValue', modelData);\n // Validate after value change\n await validate();\n};\n\nconst handleOpen = () => {\n isOpen.value = true;\n emit('open');\n};\n\nconst handleClosed = async () => {\n isOpen.value = false;\n // Mark as touched when picker closes (user interacted)\n setTouched(true);\n await validate();\n emit('closed');\n};\n\nconst handleFocus = () => {\n emit('focus');\n};\n\nconst handleBlur = async () => {\n // Mark as touched on blur\n setTouched(true);\n await validate();\n emit('blur');\n};\n\nconst handleCleared = async () => {\n // When cleared, also validate\n handleChange(null);\n await validate();\n emit('cleared');\n};\n\nconst handleTextSubmit = (value: string) => {\n emit('text-submit', value);\n};\n\nconst handleInternalChange = (value: DatepickerModelValue, isValid: boolean) => {\n emit('internal-model-change', value, isValid);\n};\n\n// ============================================================================\n// PROGRAMMATIC API\n// ============================================================================\n\nconst selectDate = () => {\n datepicker.value?.selectDate();\n};\n\nconst closeMenu = () => {\n datepicker.value?.closeMenu();\n};\n\nconst openMenu = () => {\n datepicker.value?.openMenu();\n};\n\nconst clearValue = async () => {\n datepicker.value?.clearValue();\n await handleInput(null);\n};\n\nconst setMonthYear = (value: { month?: number; year?: number }) => {\n datepicker.value?.setMonthYear(value);\n};\n\nconst applyPreset = (preset: DatepickerPreset) => {\n const { value } = preset;\n dateValue.value = value as DatepickerModelValue;\n handleInput(value as DatepickerModelValue);\n closeMenu();\n};\n\n// ============================================================================\n// WATCHERS\n// ============================================================================\n\n// Watch for value prop changes\nwatch(() => props.value, (newVal) => {\n const { convertedDate } = convertDate(newVal);\n dateValue.value = convertedDate;\n}, { deep: true, immediate: true });\n\n// ============================================================================\n// EXPOSED API\n// ============================================================================\n\ndefineExpose({\n openMenu,\n closeMenu,\n selectDate,\n clearValue,\n setMonthYear,\n /** Current open state */\n isOpen,\n /** Validation state */\n meta,\n /** Error message if any */\n errorMessage,\n});\n</script>\n\n<style>\n@import '@vuepic/vue-datepicker/dist/main.css';\n\n/* Theme customization using CSS variables */\n.dp__theme_light {\n --dp-background-color: #fff;\n --dp-text-color: #1f2937;\n --dp-hover-color: #f3f4f6;\n --dp-hover-text-color: #1f2937;\n --dp-hover-icon-color: #6b7280;\n --dp-primary-color: var(--sl-color-primary-600, #3e4b9a);\n --dp-primary-disabled-color: var(--sl-color-primary-300, #949ed9);\n --dp-primary-text-color: #fff;\n --dp-secondary-color: #d1d5db;\n --dp-border-color: #e5e7eb;\n --dp-menu-border-color: #e5e7eb;\n --dp-border-color-hover: #9ca3af;\n --dp-disabled-color: #f3f4f6;\n --dp-disabled-color-text: #9ca3af;\n --dp-scroll-bar-background: #f3f4f6;\n --dp-scroll-bar-color: #9ca3af;\n --dp-success-color: #22c55e;\n --dp-success-color-disabled: #86efac;\n --dp-icon-color: #6b7280;\n --dp-danger-color: #ef4444;\n --dp-marker-color: var(--sl-color-primary-600, #3e4b9a);\n --dp-tooltip-color: #fafafa;\n --dp-highlight-color: rgba(62, 75, 154, 0.1);\n --dp-range-between-dates-background-color: #f3f4f6;\n --dp-range-between-dates-text-color: #1f2937;\n --dp-range-between-border-color: #f3f4f6;\n}\n\n.dp__theme_dark {\n --dp-background-color: #1f2937;\n --dp-text-color: #f9fafb;\n --dp-hover-color: #374151;\n --dp-hover-text-color: #f9fafb;\n --dp-hover-icon-color: #9ca3af;\n --dp-primary-color: var(--sl-color-primary-500, #4d5ec0);\n --dp-primary-disabled-color: var(--sl-color-primary-700, #2e3873);\n --dp-primary-text-color: #fff;\n --dp-secondary-color: #4b5563;\n --dp-border-color: #374151;\n --dp-menu-border-color: #374151;\n --dp-border-color-hover: #6b7280;\n --dp-disabled-color: #374151;\n --dp-disabled-color-text: #6b7280;\n --dp-scroll-bar-background: #374151;\n --dp-scroll-bar-color: #6b7280;\n --dp-success-color: #22c55e;\n --dp-success-color-disabled: #166534;\n --dp-icon-color: #9ca3af;\n --dp-danger-color: #ef4444;\n --dp-marker-color: var(--sl-color-primary-500, #4d5ec0);\n --dp-tooltip-color: #4b5563;\n --dp-highlight-color: rgba(77, 94, 192, 0.2);\n --dp-range-between-dates-background-color: #374151;\n --dp-range-between-dates-text-color: #f9fafb;\n --dp-range-between-border-color: #374151;\n}\n\n/* Base datepicker variables */\n:root {\n --dp-font-family: inherit;\n --dp-border-radius: 0.375rem;\n --dp-cell-border-radius: 0.375rem;\n --dp-common-transition: all 0.1s ease-in;\n --dp-button-height: 2.25rem;\n --dp-month-year-row-height: 2.25rem;\n --dp-month-year-row-button-size: 2.25rem;\n --dp-button-icon-height: 1.25rem;\n --dp-cell-size: 2.25rem;\n --dp-cell-padding: 0.25rem;\n --dp-common-padding: 0.625rem;\n --dp-input-icon-padding: 2.25rem;\n --dp-input-padding: 0.375rem 1.875rem 0.375rem 0.75rem;\n --dp-menu-min-width: 16rem;\n --dp-action-buttons-padding: 0;\n --dp-row-margin: 0;\n --dp-calendar-header-cell-padding: 0.5rem;\n --dp-two-calendars-spacing: 0.625rem;\n --dp-overlay-col-padding: 0.25rem;\n --dp-time-inc-dec-button-size: 2rem;\n --dp-menu-padding: 0.375rem 0.5rem;\n --dp-font-size: 0.875rem;\n --dp-preview-font-size: 0.75rem;\n --dp-time-font-size: 0.75rem;\n --dp-animation-duration: 0.1s;\n --dp-menu-appear-transition-timing: cubic-bezier(0.4, 0, 1, 1);\n --dp-transition-timing: ease-out;\n}\n\n/* Action row wrapper styles */\n.dp__action_row_wrapper {\n display: block;\n width: 100%;\n}\n\n/* Calendar cell hover states */\n.dp__calendar_item:hover {\n border-radius: var(--dp-cell-border-radius);\n}\n\n/* Range selection styles */\n.dp__range_start,\n.dp__range_end {\n border-radius: var(--dp-cell-border-radius);\n}\n\n/* Menu shadow */\n.dp__menu {\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n/* Disabled date styling */\n.dp__cell_disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Today marker */\n.dp__today {\n border: 1px solid var(--dp-primary-color);\n}\n\n/* Selected date */\n.dp__active_date {\n background-color: var(--dp-primary-color);\n color: var(--dp-primary-text-color);\n}\n</style>\n"],"names":["VueDatePicker","defineAsyncComponent","props","__props","emit","__emit","datepickerConfig","inject","fieldId","computed","generateId","name","toRef","errorMessage","handleChange","meta","setTouched","validate","useField","dateValue","ref","datepicker","isOpen","actionRowConfig","hasValue","shouldShowClearButton","showValidCheckComputed","inputClasses","base","dynamicPickerProps","pickerProps","raw","startOfDay","endOfDay","standardizeDate","value","d","date","convertDate","v","effectiveDate","handleInput","modelData","standardizedDate","handleOpen","handleClosed","handleFocus","handleBlur","handleCleared","handleTextSubmit","handleInternalChange","isValid","selectDate","closeMenu","openMenu","clearValue","setMonthYear","applyPreset","preset","watch","newVal","convertedDate","__expose","_createBlock","FormFieldWrapper","_unref","_createElementVNode","_hoisted_1","_createVNode","_mergeProps","$event","onInput","onEnter","onTab","onClear","onBlur","onKeypress","onPaste","_hoisted_2","_openBlock","_resolveDynamicComponent","_createElementBlock","XMarkIcon","$slots","_hoisted_5","_hoisted_6","_renderSlot","_ctx","_hoisted_7","day","month","year","months","years","updateMonthYear","handleMonthYearChange","_withCtx","slotProps","_hoisted_8","_hoisted_9","_toDisplayString","_hoisted_10","_Fragment","_renderList","_hoisted_11"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MA,UAAMA,IAAgBC,GAAqB,MAAM,OAAO,8BAAwB,CAAC,GA2E3EC,IAAQC,GAgVRC,IAAOC,GAiBPC,IAAmBC,GAA0B,cAAc,EAAE,GAG7DC,IAAUC,EAAS,MAAMC,GAAWR,EAAM,IAAI,CAAC,GAE/CS,IAAOC,GAAMV,GAAO,MAAM,GAG1B;AAAA,MACJ,cAAAW;AAAA,MACA,cAAAC;AAAA,MACA,MAAAC;AAAA,MACA,YAAAC;AAAA,MACA,UAAAC;AAAA,IAAA,IACEC,GAASP,GAAMT,EAAM,OAAO;AAAA,MAC9B,cAAcA,EAAM;AAAA,MACpB,iBAAiBA,EAAM;AAAA,IAAA,CACxB,GAIKiB,IAAYC,EAA0B,IAAI,GAC1CC,IAAaD,EAA+B,IAAI,GAChDE,IAASF,EAAI,EAAK,GAGlBG,IAAkBd,EAAS,OAAO;AAAA,MACtC,SAASP,EAAM;AAAA,MACf,aAAa,CAACA,EAAM;AAAA,MACpB,YAAY,CAACA,EAAM;AAAA,MACnB,YAAY,CAACA,EAAM;AAAA,IAAA,EACnB,GAKIsB,IAAWf,EAAS,MACpB,EAAAU,EAAU,UAAU,QAAQA,EAAU,UAAU,UAChD,OAAOA,EAAU,SAAU,YAAYA,EAAU,UAAU,MAC3D,MAAM,QAAQA,EAAU,KAAK,KAAKA,EAAU,MAAM,WAAW,EAElE,GAEKM,IAAwBhB,EAAS,MAC9BP,EAAM,aAAasB,EAAS,SAAS,CAACtB,EAAM,QACpD,GAKKwB,IAAyBjB,EAAS,MAC/BP,EAAM,kBAAkB,CAACuB,EAAsB,KACvD,GAMKE,IAAelB,EAAS,MAAM;AAClC,YAAMmB,IAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAIF,aAAI1B,EAAM,OACR0B,EAAK,KAAK,UAAU,IAEpBA,EAAK,KAAK,SAAS,GAIjB1B,EAAM,YACR0B,EAAK,KAAK,UAAU,IAEpBA,EAAK,KAAK,SAAS,GAIjB1B,EAAM,WACR0B,EAAK,KAAK,yIAAyI,IAC1If,EAAa,UAAUE,EAAK,WAAWb,EAAM,cACtD0B,EAAK,KAAK,0EAA0E,KAC3Eb,EAAK,SAASA,EAAK,SAC5Ba,EAAK,KAAK,mEAAmE,IAKxEA,EAAK,KAAK,GAAG;AAAA,IACtB,CAAC,GAMKC,IAAqBpB,EAAS,MAAM;AACxC,YAAMqB,IAAuC;AAAA,QAC3C,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,MAAMxB,EAAiB,QAAQJ,EAAM;AAAA,QACrC,OAAO;AAAA,QACP,UAAUA,EAAM;AAAA,MAAA;AAmClB,UA/BIA,EAAM,cACR4B,EAAY,cAAc,KACjB5B,EAAM,aACf4B,EAAY,aAAa,KAChB5B,EAAM,aACf4B,EAAY,aAAa,KAChB5B,EAAM,gBACf4B,EAAY,gBAAgB,KACnB5B,EAAM,QACf4B,EAAY,QAAQ,KACX5B,EAAM,eACf4B,EAAY,aAAa,IACzBA,EAAY,OAAOxB,EAAiB,QAAQJ,EAAM,OAIhDA,EAAM,gBAAgBA,EAAM,aAAa,SAAS,MACpD4B,EAAY,eAAe5B,EAAM,eAI/BA,EAAM,kBACR4B,EAAY,gBAAgB5B,EAAM,gBAIhCA,EAAM,oBAAoBA,EAAM,iBAAiB,SAAS,MAC5D4B,EAAY,mBAAmB5B,EAAM,mBAInCA,EAAM,SAAS;AACjB,cAAM6B,IAAM,OAAO7B,EAAM,WAAY,WAAW,IAAI,KAAKA,EAAM,OAAO,IAAIA,EAAM;AAChF,YAAI6B,aAAe,QAAQ,CAAC,MAAMA,EAAI,QAAA,CAAS,GAAG;AAChD,gBAAMC,IAAa,IAAI,KAAKD,CAAG;AAC/B,UAAAC,EAAW,SAAS,GAAG,GAAG,GAAG,CAAC,GAC9BF,EAAY,UAAUE;AAAA,QACxB;AAAA,MACF;AAGA,UAAI9B,EAAM,SAAS;AACjB,cAAM6B,IAAM,OAAO7B,EAAM,WAAY,WAAW,IAAI,KAAKA,EAAM,OAAO,IAAIA,EAAM;AAChF,YAAI6B,aAAe,QAAQ,CAAC,MAAMA,EAAI,QAAA,CAAS,GAAG;AAChD,gBAAME,IAAW,IAAI,KAAKF,CAAG;AAC7B,UAAAE,EAAS,SAAS,IAAI,IAAI,IAAI,GAAG,GACjCH,EAAY,UAAUG;AAAA,QACxB;AAAA,MACF;AAGA,cAAI/B,EAAM,oBAAoBA,EAAM,gBAClC4B,EAAY,mBAAmB5B,EAAM,kBACrC4B,EAAY,mBAAmB5B,EAAM,kBACrC4B,EAAY,iBAAiB5B,EAAM,iBAKjCA,EAAM,WAAWA,EAAM,QAAQ,SAAS,MAC1C4B,EAAY,UAAU5B,EAAM,UAE1BA,EAAM,cAAc,WACtB4B,EAAY,YAAY5B,EAAM,YAE5BA,EAAM,gBACR4B,EAAY,cAAc5B,EAAM,cAE9BA,EAAM,gBAAgB,UAAa,OAAOA,EAAM,eAAgB,eAClE4B,EAAY,cAAc5B,EAAM,cAG3B4B;AAAA,IACT,CAAC,GASKI,IAAkB,CAACC,MAAmE;AAC1F,UAAIA,KAAU;AACZ,eAAO;AAGT,UAAI,MAAM,QAAQA,CAAK;AACrB,eAAOA,EAAM,IAAI,CAAAC,MACXA,MAAM,OAAa,OACnBA,aAAa,OAAaA,EAAE,YAAA,IACzBA,CACR;AAGH,UAAID,aAAiB;AACnB,eAAOA,EAAM,YAAA;AAGf,UAAI,OAAOA,KAAU,UAAU;AAC7B,cAAME,IAAO,IAAI,KAAKF,CAAK;AAC3B,eAAQ,MAAME,EAAK,QAAA,CAAS,IAAyB,OAArBA,EAAK;MACvC;AAEA,UAAI,OAAOF,KAAU,YAAYA,MAAU,MAAM;AAE/C,YAAI,WAAWA,KAAS,UAAUA,KAC9B,OAAOA,EAAM,QAAS,YACtB,OAAOA,EAAM,SAAU;AAEzB,iBADa,IAAI,KAAKA,EAAM,MAAMA,EAAM,OAAO,CAAC,EACpC,YAAA;AAId,YAAI,WAAWA,KAAS,aAAaA,KACjC,OAAOA,EAAM,SAAU,YACvB,OAAOA,EAAM,WAAY;AAC3B,iBAAO,KAAK,UAAUA,CAAK;AAAA,MAE/B;AAEA,aAAO;AAAA,IACT,GAKMG,IAAc,CAACH,MAAyE;AAC5F,UAAIA,KAAU;AACZ,eAAO,EAAE,eAAe,KAAA;AAG1B,UAAI,MAAM,QAAQA,CAAK;AACrB,eAAO;AAAA,UACL,eAAeA,EAAM,IAAI,CAAAI,MAAMA,IAAI,IAAI,KAAKA,CAAkB,IAAI,IAAK;AAAA,QAAA;AAI3E,UAAI,OAAOJ,KAAU,UAAU;AAC7B,cAAMK,IAAgB,IAAI,KAAKL,CAAK;AACpC,eAAI,MAAMK,EAAc,QAAA,CAAS,IACxB,EAAE,eAAe,KAAA,IAEnB;AAAA,UACL,eAAeX,EAAmB,MAAM,cACpC,EAAE,OAAOW,EAAc,SAAA,GAAY,MAAMA,EAAc,YAAA,MACvDA;AAAA,QAAA;AAAA,MAER;AAEA,UAAIL,aAAiB;AACnB,eAAO;AAAA,UACL,eAAeN,EAAmB,MAAM,cACpC,EAAE,OAAOM,EAAM,SAAA,GAAY,MAAMA,EAAM,YAAA,MACvCA;AAAA,QAAA;AAIR,UAAI,OAAOA,KAAU,YAAYA,MAAU,MAAM;AAE/C,YAAI,WAAWA,KAAS,UAAUA,KAC9B,OAAOA,EAAM,QAAS,YACtB,OAAOA,EAAM,SAAU;AACzB,iBAAO;AAAA,YACL,eAAe,EAAE,OAAOA,EAAM,OAAO,MAAMA,EAAM,KAAA;AAAA,UAAK;AAK1D,YAAI,WAAWA,KAAS,aAAaA,KACjC,OAAOA,EAAM,SAAU,YACvB,OAAOA,EAAM,WAAY;AAC3B,iBAAO,EAAE,eAAeA,EAAA;AAAA,MAE5B;AAEA,aAAO,EAAE,eAAe,KAAA;AAAA,IAC1B,GAMMM,IAAc,OAAOC,MAAoC;AAC7D,YAAMC,IAAmBT,EAAgBQ,CAAS;AAClD,MAAA5B,EAAa6B,CAAgB,GAC7BvC,EAAK,gBAAgBuC,CAAgB,GACrCvC,EAAK,qBAAqBsC,CAAS,GAEnC,MAAMzB,EAAA;AAAA,IACR,GAEM2B,IAAa,MAAM;AACvB,MAAAtB,EAAO,QAAQ,IACflB,EAAK,MAAM;AAAA,IACb,GAEMyC,IAAe,YAAY;AAC/B,MAAAvB,EAAO,QAAQ,IAEfN,EAAW,EAAI,GACf,MAAMC,EAAA,GACNb,EAAK,QAAQ;AAAA,IACf,GAEM0C,IAAc,MAAM;AACxB,MAAA1C,EAAK,OAAO;AAAA,IACd,GAEM2C,IAAa,YAAY;AAE7B,MAAA/B,EAAW,EAAI,GACf,MAAMC,EAAA,GACNb,EAAK,MAAM;AAAA,IACb,GAEM4C,IAAgB,YAAY;AAEhC,MAAAlC,EAAa,IAAI,GACjB,MAAMG,EAAA,GACNb,EAAK,SAAS;AAAA,IAChB,GAEM6C,KAAmB,CAACd,MAAkB;AAC1C,MAAA/B,EAAK,eAAe+B,CAAK;AAAA,IAC3B,GAEMe,KAAuB,CAACf,GAA6BgB,MAAqB;AAC9E,MAAA/C,EAAK,yBAAyB+B,GAAOgB,CAAO;AAAA,IAC9C,GAMMC,IAAa,MAAM;AACvB,MAAA/B,EAAW,OAAO,WAAA;AAAA,IACpB,GAEMgC,IAAY,MAAM;AACtB,MAAAhC,EAAW,OAAO,UAAA;AAAA,IACpB,GAEMiC,KAAW,MAAM;AACrB,MAAAjC,EAAW,OAAO,SAAA;AAAA,IACpB,GAEMkC,KAAa,YAAY;AAC7B,MAAAlC,EAAW,OAAO,WAAA,GAClB,MAAMoB,EAAY,IAAI;AAAA,IACxB,GAEMe,KAAe,CAACrB,MAA6C;AACjE,MAAAd,EAAW,OAAO,aAAac,CAAK;AAAA,IACtC,GAEMsB,KAAc,CAACC,MAA6B;AAChD,YAAM,EAAE,OAAAvB,MAAUuB;AAClB,MAAAvC,EAAU,QAAQgB,GAClBM,EAAYN,CAA6B,GACzCkB,EAAA;AAAA,IACF;AAOA,WAAAM,GAAM,MAAMzD,EAAM,OAAO,CAAC0D,MAAW;AACnC,YAAM,EAAE,eAAAC,EAAA,IAAkBvB,EAAYsB,CAAM;AAC5C,MAAAzC,EAAU,QAAQ0C;AAAA,IACpB,GAAG,EAAE,MAAM,IAAM,WAAW,IAAM,GAMlCC,EAAa;AAAA,MACX,UAAAR;AAAA,MACA,WAAAD;AAAA,MACA,YAAAD;AAAA,MACA,YAAAG;AAAA,MACA,cAAAC;AAAA;AAAA,MAEA,QAAAlC;AAAA;AAAA,MAEA,MAAAP;AAAA;AAAA,MAEA,cAAAF;AAAA,IAAA,CACD,mBA3gCCkD,EAgMmBC,IAAA;AAAA,MA/LhB,IAAIxD,EAAA;AAAA,MACJ,MAAMG,EAAA;AAAA,MACN,OAAOR,EAAA;AAAA,MACP,WAAWA,EAAA;AAAA,MACX,iBAAe8D,EAAApD,CAAA;AAAA,MACf,mBAAiBV,EAAA;AAAA,MACjB,YAAU8D,EAAAlD,CAAA,EAAK;AAAA,MACf,cAAYkD,EAAAlD,CAAA,EAAK;AAAA,MACjB,eAAaZ,EAAA;AAAA,MACb,oBAAkBuB,EAAA;AAAA,MAClB,kBAAgBvB,EAAA;AAAA,MAChB,UAAUA,EAAA;AAAA,MACV,oBAAkBA,EAAA;AAAA,MACnB,eAAY;AAAA,IAAA;iBAEZ,MA+KM;AAAA,QA/KN+D,EA+KM,OA/KNC,IA+KM;AAAA,UA7KJC,EA4KgBH,MA5KhBI,GA4KgB;AAAA,qBA3KV;AAAA,YAAJ,KAAIhD;AAAA,wBACMF,EAAA;AAAA,0DAAAA,EAAA,QAASmD;AAAA,UAAA,GACXzC,EAAA,OAAkB;AAAA,YACzB,MAAM1B,EAAA;AAAA,YACN,mBAAiBA,EAAA;AAAA,YACjB,cAAYoB,EAAA;AAAA,YACZ,cAAYpB,EAAA;AAAA,YACZ,sBAAoBA,EAAA;AAAA,YACpB,eAAaA,EAAA;AAAA,YACb,UAAUA,EAAA;AAAA,YACV,mBAAiBA,EAAA;AAAA,YACjB,KAAKK,EAAA;AAAA,YACL,KAAKL,EAAA;AAAA,YACL,WAAW;AAAA,YACX,MAAMA,EAAA;AAAA,YACN,QAAQA,EAAA;AAAA,YACR,QAAQA,EAAA;AAAA,YACR,kBAAgBA,EAAA;AAAA,YAChB,aAAaA,EAAA;AAAA,YACb,cAAYA,EAAA;AAAA,YACZ,UAAUA,EAAA;AAAA,YACV,UAAUA,EAAA;AAAA,YACV,cAAYA,EAAA;AAAA,YACZ,QAAQA,EAAA;AAAA,YACR,mBAAiBA,EAAA;AAAA,YACjB,0BAAwBA,EAAA;AAAA,YACxB,uBAAqBA,EAAA;AAAA,YACrB,2BAAyBA,EAAA;AAAA,YACzB,6BAA2BA,EAAA;AAAA,YAC3B,mBAAiBA,EAAA;AAAA,YACjB,aAAWA,EAAA;AAAA,YACX,cAAYA,EAAA;AAAA,YACZ,cAAYA,EAAA;AAAA,YACZ,YAAUA,EAAA;AAAA,YACV,qBAAmBA,EAAA;AAAA,YACnB,gBAAcA,EAAA;AAAA,YACd,cAAYA,EAAA;AAAA,YACZ,aAAaA,EAAA;AAAA,YACb,iBAAeA,EAAA;AAAA,YACf,eAAaA,EAAA;AAAA,YACb,qBAAmBA,EAAA;AAAA,YACnB,0BAAwBA,EAAA;AAAA,YACxB,8BAA4BA,EAAA;AAAA,YAC5B,uBAAoBsC;AAAA,YACpB,QAAMG;AAAA,YACN,UAAQC;AAAA,YACR,SAAOC;AAAA,YACP,QAAMC;AAAA,YACN,uBAAuBG;AAAA,YACvB,WAASF;AAAA,YACT,cAAaC;AAAA,UAAA;YAEH,cACT,CAuCM,EAxCe,OAAAd,GAAO,SAAAoC,GAAS,SAAAC,GAAS,OAAAC,GAAO,SAAAC,GAAS,QAAAC,GAAQ,YAAAC,IAAY,SAAAC,GAAA,MAAO;AAAA,cACzFX,EAuCM,OAvCNY,IAuCM;AAAA,gBArCI3E,EAAA,QADR4E,EAAA,GAAAhB,EAMEiB,GAJK7E,EAAA,IAAI,GAAA;AAAA;kBACT,OAAM;AAAA,kBACN,eAAY;AAAA,kBACZ,eAAY;AAAA,gBAAA;gBAEd+D,EAoBE,SAAA;AAAA,kBAnBA,MAAK;AAAA,kBACJ,IAAI1D,EAAA;AAAA,kBACJ,MAAMG,EAAA;AAAA,kBACN,OAAAwB;AAAA,kBACA,aAAahC,EAAA;AAAA,kBACb,WAAWA,EAAA;AAAA,kBACX,UAAUA,EAAA;AAAA,kBACV,cAAYA,EAAA,SAASA,EAAA;AAAA,kBACrB,oBAAkB8D,EAAApD,CAAA,IAAY,GAAML,EAAA,KAAO,WAAW;AAAA,kBACtD,kBAAgByD,EAAApD,CAAA;AAAA,kBAChB,UAAOc,EAAA,KAAY;AAAA,kBACpB,cAAa;AAAA,kBACb,eAAY;AAAA,kBACX,SAAA4C;AAAA,kBACA,WAAO;AAAA,sBAAQC,GAAO,CAAA,OAAA,CAAA;AAAA,sBACTC,GAAK,CAAA,KAAA,CAAA;AAAA,kBAAA;AAAA,kBAClB,QAAAE;AAAA,kBACA,YAAAC;AAAA,kBACA,SAAAC;AAAA,gBAAA;gBAGKpD,EAAA,cADRwD,EASS,UAAA;AAAA;kBAPP,MAAK;AAAA,kBACL,OAAM;AAAA,kBACL,cAAY9E,EAAA;AAAA,kBACb,eAAY;AAAA,kBACX,SAAOuE;AAAA,gBAAA;kBAERN,EAAmCH,EAAAiB,EAAA,GAAA,EAAxB,OAAM,iBAAe;AAAA,gBAAA;;;;;YAKtBC,EAAAA,6BAA6BhF,EAAA;oBAAY;AAAA,oBACvD,MAuBM;AAAA,gBAvBN+D,EAuBM,OAvBNkB,IAuBM;AAAA,kBAtBJlB,EAqBM,OArBNmB,IAqBM;AAAA,oBApBJC,EAmBOC,EAAA,QAAA,kBAAA;AAAA,sBAnBsB,YAAAnC;AAAA,sBAA0B,WAAAC;AAAA,oBAAA,GAAvD,MAmBO;AAAA,sBAlBLa,EAiBM,OAjBNsB,IAiBM;AAAA,wBAhBJtB,EAOS,UAAA;AAAA,0BANP,MAAK;AAAA,0BACL,OAAM;AAAA,0BACN,eAAY;AAAA,0BACX,SAAOd;AAAA,wBAAA,KAELjD,EAAA,UAAU,GAAA,CAAA;AAAA,wBAEf+D,EAOS,UAAA;AAAA,0BANP,MAAK;AAAA,0BACL,OAAM;AAAA,0BACN,eAAY;AAAA,0BACX,SAAOb;AAAA,wBAAA,KAELlD,EAAA,UAAU,GAAA,CAAA;AAAA,sBAAA;;;;;;;YASTgF,EAAAA,OAAM,eAAA;oBAAoB;AAAA,oBACxC,CAAqD,EADN,KAAAM,GAAK,MAAApD,QAAI;AAAA,gBACxDiD,EAAqDC,EAAA,QAAA,iBAAA;AAAA,kBAAzB,KAAAE;AAAA,kBAAW,MAAApD;AAAA,gBAAA;;;;YAIzB8C,EAAAA,OAAM,YAAA;oBAAiB;AAAA,oBACrC,CAQE,EATiD,OAAAO,GAAO,MAAAC,GAAM,QAAAC,GAAQ,OAAAC,GAAO,iBAAAC,GAAiB,uBAAAC,QAAqB;AAAA,gBACrHT,EAQEC,EAAA,QAAA,cAAA;AAAA,kBANC,OAAAG;AAAA,kBACA,MAAAC;AAAA,kBACA,QAAAC;AAAA,kBACA,OAAAC;AAAA,kBACA,iBAAAC;AAAA,kBACA,uBAAAC;AAAA,gBAAA;;;;YAKWZ,EAAAA,OAAM,aAAA;oBAAkB;AAAA,cACtC,IAAAa,EAAA,CADmDC,MAAS;AAAA,gBAC5DX,EAA8CC,+BAAbU,CAAS,CAAA,CAAA;AAAA,cAAA;;;YAI5Bd,EAAAA,OAAM,cAAA,KAAoBhF,EAAA,YAAY,SAAM;oBAAO;AAAA,oBACjE,MAA0D;AAAA,gBAA9CgF,EAAAA,OAAM,cAAA,IAAlBG,EAA0DC,EAAA,QAAA,gBAAA,EAAA,KAAA,GAAA,IAC1CpF,EAAA,YAAY,SAAM,KAAlC4E,KAAAE,EAgBM,OAhBNiB,IAgBM;AAAA,kBAfJhC,EAEM,OAFNiC,IAEMC,EADDjG,EAAA,YAAY,GAAA,CAAA;AAAA,kBAEjB+D,EAWM,OAXNmC,IAWM;AAAA,4BAVJpB,EASSqB,IAAA,MAAAC,GARUpG,EAAA,aAAW,CAArBuD,YADTuB,EASS,UAAA;AAAA,sBAPN,KAAKvB,EAAO;AAAA,sBACb,MAAK;AAAA,sBACL,OAAM;AAAA,sBACL,oCAAkCA,EAAO,MAAM,cAAc,QAAO,QAAA,GAAA,CAAA;AAAA,sBACpE,SAAK,CAAAY,MAAEb,GAAYC,CAAM;AAAA,oBAAA,GAEvB0C,EAAA1C,EAAO,KAAK,GAAA,GAAA8C,EAAA;;;;;;YAOPrB,EAAAA,OAAM,eAAA;oBAAoB;AAAA,oBACxC,MAA6B;AAAA,gBAA7BG,EAA6BC,EAAA,QAAA,eAAA;AAAA,cAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js","sources":["../src/components/inputs/DatepickerInput.vue"],"sourcesContent":["<template>\n <FormFieldWrapper\n :id=\"fieldId\"\n :name=\"name\"\n :label=\"label\"\n :optional=\"!required\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n :show-errors=\"showErrors\"\n :show-valid-check=\"showValidCheckComputed\"\n :tertiary-label=\"tertiaryLabel\"\n :disabled=\"disabled\"\n :disabled-message=\"disabledMessage\"\n data-testid=\"datepicker-wrapper\"\n >\n <div class=\"sl-relative sl-rounded-md sl-shadow-sm\" data-testid=\"datepicker-container\">\n <!-- @ts-expect-error: VueDatePicker ModelValue type is complex, using broader DatepickerModelValue -->\n <VueDatePicker\n ref=\"datepicker\"\n v-model=\"(dateValue as any)\"\n v-bind=\"dynamicPickerProps\"\n :flow=\"inputFlow\"\n :hide-navigation=\"hideNavigation\"\n :action-row=\"actionRowConfig\"\n :auto-apply=\"autoApply\"\n :enable-time-picker=\"enableTimePicker\"\n :time-picker=\"timePicker\"\n :teleport=\"teleport\"\n :teleport-center=\"teleportCenter\"\n :uid=\"fieldId\"\n :utc=\"utc\"\n :clearable=\"false\"\n :dark=\"dark\"\n :locale=\"locale\"\n :format=\"displayFormat\"\n :preview-format=\"previewFormat\"\n :placeholder=\"placeholder\"\n :model-type=\"modelType\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :text-input=\"textInput\"\n :inline=\"inline\"\n :multi-calendars=\"multiCalendars\"\n :month-change-on-scroll=\"monthChangeOnScroll\"\n :highlight-week-days=\"highlightWeekDays\"\n :highlight-disabled-days=\"highlightDisabledDays\"\n :disable-month-year-select=\"disableMonthYearSelect\"\n :show-now-button=\"showNowButton\"\n :six-weeks=\"sixWeeks\"\n :start-date=\"startDate\"\n :start-time=\"startTime\"\n :no-today=\"noToday\"\n :no-disabled-range=\"noDisabledRange\"\n :partial-flow=\"partialFlow\"\n :week-start=\"weekStart\"\n :transitions=\"transitions\"\n :auto-position=\"autoPosition\"\n :multi-dates=\"multiDates\"\n :multi-dates-limit=\"multiDatesLimit\"\n :ignore-time-validation=\"ignoreTimeValidation\"\n :prevent-min-max-navigation=\"preventMinMaxNavigation\"\n @update:model-value=\"handleInput\"\n @open=\"handleOpen\"\n @closed=\"handleClosed\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @internal-model-change=\"handleInternalChange\"\n @cleared=\"handleCleared\"\n @text-submit=\"handleTextSubmit\"\n >\n <template #dp-input=\"{ value, onInput, onEnter, onTab, onClear, onBlur, onKeypress, onPaste }\">\n <div class=\"sl-relative sl-flex sl-items-center\" data-testid=\"datepicker-input-wrapper\">\n <component\n v-if=\"icon\"\n :is=\"icon\"\n class=\"sl-text-gray-600 dark:sl-text-gray-300 sl-absolute sl-left-3 sl-h-4 sl-w-4 sl-pointer-events-none sl-z-10\"\n aria-hidden=\"true\"\n data-testid=\"datepicker-icon\"\n />\n <input\n type=\"text\"\n :id=\"fieldId\"\n :name=\"name\"\n :value=\"value\"\n :placeholder=\"placeholder\"\n :readonly=\"!textInput\"\n :disabled=\"disabled\"\n :aria-label=\"label || placeholder\"\n :aria-describedby=\"errorMessage ? `${fieldId}-error` : undefined\"\n :aria-invalid=\"!!errorMessage\"\n :class=\"inputClasses\"\n autocomplete=\"off\"\n data-testid=\"datepicker-input\"\n @input=\"onInput\"\n @keydown.enter=\"onEnter\"\n @keydown.tab=\"onTab\"\n @blur=\"onBlur\"\n @keypress=\"onKeypress\"\n @paste=\"onPaste\"\n />\n <button\n v-if=\"shouldShowClearButton\"\n type=\"button\"\n class=\"sl-absolute sl-right-3 sl-p-1 sl-rounded-full sl-text-gray-400 hover:sl-text-gray-600 dark:hover:sl-text-gray-300 hover:sl-bg-gray-100 dark:hover:sl-bg-slate-700 sl-transition-colors sl-z-10\"\n :aria-label=\"clearAriaLabel\"\n data-testid=\"datepicker-clear\"\n @click=\"onClear\"\n >\n <XMarkIcon class=\"sl-h-4 sl-w-4\" />\n </button>\n </div>\n </template>\n\n <template v-if=\"$slots['action-buttons'] || !autoApply\" #action-row>\n <div class=\"sl-overflow-hidden sl-rounded-lg sl-bg-white dark:sl-bg-slate-800 sl-shadow dp__action_row_wrapper\">\n <div class=\"sl-bg-gray-50 dark:sl-bg-slate-700/50 sl-px-4 sl-py-3\">\n <slot name=\"action-buttons\" :select-date=\"selectDate\" :close-menu=\"closeMenu\">\n <div class=\"sl-flex sl-gap-2\">\n <button\n type=\"button\"\n class=\"sl-flex-1 sl-rounded-md sl-bg-primary-600 sl-px-3 sl-py-2 sl-text-sm sl-font-semibold sl-text-white sl-shadow-sm hover:sl-bg-primary-500 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-primary-600 focus:sl-ring-offset-2 dark:focus:sl-ring-offset-slate-800 sl-transition-colors\"\n data-testid=\"datepicker-select\"\n @click=\"selectDate\"\n >\n {{ selectText }}\n </button>\n <button\n type=\"button\"\n class=\"sl-flex-1 sl-rounded-md sl-bg-white dark:sl-bg-slate-700 sl-px-3 sl-py-2 sl-text-sm sl-font-semibold sl-text-gray-900 dark:sl-text-gray-200 sl-shadow-sm sl-ring-1 sl-ring-inset sl-ring-gray-300 dark:sl-ring-slate-600 hover:sl-bg-gray-50 dark:hover:sl-bg-slate-600 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-gray-500 focus:sl-ring-offset-2 dark:focus:sl-ring-offset-slate-800 sl-transition-colors\"\n data-testid=\"datepicker-cancel\"\n @click=\"closeMenu\"\n >\n {{ cancelText }}\n </button>\n </div>\n </slot>\n </div>\n </div>\n </template>\n\n <!-- Allow custom calendar cell styling -->\n <template v-if=\"$slots['calendar-cell']\" #day=\"{ day, date }\">\n <slot name=\"calendar-cell\" :day=\"day\" :date=\"date\" />\n </template>\n\n <!-- Allow custom month/year header -->\n <template v-if=\"$slots['month-year']\" #month-year=\"{ month, year, months, years, updateMonthYear, handleMonthYearChange }\">\n <slot \n name=\"month-year\" \n :month=\"month\" \n :year=\"year\" \n :months=\"months\" \n :years=\"years\"\n :update-month-year=\"updateMonthYear\"\n :handle-month-year-change=\"handleMonthYearChange\"\n />\n </template>\n\n <!-- Allow custom time picker -->\n <template v-if=\"$slots['time-picker']\" #time-picker=\"slotProps\">\n <slot name=\"time-picker\" v-bind=\"slotProps\" />\n </template>\n\n <!-- Allow custom left sidebar OR preset date ranges -->\n <template v-if=\"$slots['left-sidebar'] || presetDates.length > 0\" #left-sidebar>\n <slot v-if=\"$slots['left-sidebar']\" name=\"left-sidebar\" />\n <div v-else-if=\"presetDates.length > 0\" class=\"sl-p-3 sl-border-r sl-border-gray-200 dark:sl-border-slate-700\" data-testid=\"datepicker-presets\">\n <div class=\"sl-text-xs sl-font-semibold sl-text-gray-500 dark:sl-text-slate-300 sl-uppercase sl-tracking-wide sl-mb-2\">\n {{ presetsLabel }}\n </div>\n <div class=\"sl-flex sl-flex-col sl-gap-1\">\n <button\n v-for=\"preset in presetDates\"\n :key=\"preset.label\"\n type=\"button\"\n class=\"sl-text-left sl-px-2 sl-py-1.5 sl-text-sm sl-rounded-md sl-transition-colors hover:sl-bg-gray-100 dark:hover:sl-bg-slate-700 sl-text-gray-700 dark:sl-text-slate-200\"\n :data-testid=\"`datepicker-preset-${preset.label.toLowerCase().replace(/\\s+/g, '-')}`\"\n @click=\"applyPreset(preset)\"\n >\n {{ preset.label }}\n </button>\n </div>\n </div>\n </template>\n\n <!-- Allow custom right sidebar -->\n <template v-if=\"$slots['right-sidebar']\" #right-sidebar>\n <slot name=\"right-sidebar\" />\n </template>\n </VueDatePicker>\n </div>\n </FormFieldWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef, ref, computed, watch, inject, defineAsyncComponent, type PropType, type Ref, type FunctionalComponent, type HTMLAttributes, type VNodeProps, type Component } from 'vue';\nimport { useField } from 'vee-validate';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport FormFieldWrapper from '@/components/forms/FormFieldWrapper.vue';\nimport { generateId } from '@/utils/id';\nimport type { AnySchema } from 'yup';\nimport type { DatepickerOptions } from '@/plugin/configure';\n\n// Dynamic import for VueDatePicker to reduce bundle size\nconst VueDatePicker = defineAsyncComponent(() => import('@vuepic/vue-datepicker'));\n\n// ============================================================================\n// TYPE DEFINITIONS\n// ============================================================================\n\n/** Valid flow steps for multi-step date selection */\nexport type FlowStep = 'month' | 'year' | 'calendar' | 'time' | 'minutes' | 'hours' | 'seconds';\nexport type FlowType = FlowStep[];\nexport type HideNavigationType = FlowStep[];\n\n/** Model value types supported by the datepicker */\nexport type DatepickerModelValue = \n | Date \n | Date[] \n | string \n | string[] \n | { month: number; year: number } \n | { hours: number; minutes: number; seconds?: number }\n | [Date | null, Date | null] // Range type\n | null;\n\n/** Marker configuration for highlighting specific dates */\nexport interface DatepickerMarker {\n date: Date | string;\n type?: 'dot' | 'line';\n tooltip?: string;\n color?: string;\n}\n\n/** Highlight configuration */\nexport interface DatepickerHighlight {\n dates?: Date[];\n months?: { month: number; year: number }[];\n years?: number[];\n quarters?: { quarter: number; year: number }[];\n weekdays?: number[];\n options?: {\n highlightDisabled?: boolean;\n };\n}\n\n/** Preset date configuration */\nexport interface DatepickerPreset {\n label: string;\n value: Date | Date[] | [Date, Date];\n slot?: string;\n}\n\n/** Time model */\nexport interface TimeModel {\n hours: number;\n minutes: number;\n seconds?: number;\n}\n\n/** Month/Year model */\nexport interface MonthYearModel {\n month: number;\n year: number;\n}\n\n/** Internal DatePicker instance interface */\ninterface DatePickerInstance {\n selectDate: () => void;\n closeMenu: () => void;\n openMenu: () => void;\n clearValue: () => void;\n setMonthYear: (value: { month?: number; year?: number }) => void;\n}\n\n// ============================================================================\n// PROPS\n// ============================================================================\n\nconst props = defineProps({\n // Field identification\n name: {\n type: String,\n required: true,\n },\n value: {\n type: [Date, Array, String, Number, Object] as PropType<DatepickerModelValue>,\n default: null,\n },\n \n // Labels & display\n label: {\n type: String,\n default: '',\n },\n placeholder: {\n type: String,\n default: 'Select date...',\n },\n tertiaryLabel: {\n type: String,\n default: '',\n },\n hint: {\n type: String,\n default: '',\n },\n \n // Validation\n rules: {\n type: [Function, Object] as PropType<AnySchema>,\n default: undefined,\n },\n required: {\n type: Boolean,\n default: false,\n },\n validateOnMount: {\n type: Boolean,\n default: true,\n },\n showErrors: {\n type: Boolean,\n default: false,\n },\n showValidCheck: {\n type: Boolean,\n default: true,\n },\n successMessage: {\n type: String,\n default: '',\n },\n \n // Picker modes\n monthPicker: {\n type: Boolean,\n default: false,\n },\n yearPicker: {\n type: Boolean,\n default: false,\n },\n weekPicker: {\n type: Boolean,\n default: false,\n },\n quarterPicker: {\n type: Boolean,\n default: false,\n },\n timePicker: {\n type: Boolean,\n default: false,\n },\n enableTimePicker: {\n type: Boolean,\n default: false,\n },\n range: {\n type: Boolean,\n default: false,\n },\n multiDates: {\n type: Boolean,\n default: false,\n },\n multiDatesLimit: {\n type: Number,\n default: undefined,\n },\n \n // Time options\n is24: {\n type: Boolean,\n default: false,\n },\n minutesIncrement: {\n type: Number,\n default: 1,\n },\n secondsIncrement: {\n type: Number,\n default: 1,\n },\n hoursIncrement: {\n type: Number,\n default: 1,\n },\n \n // Date constraints\n minDate: {\n type: [Date, String] as PropType<Date | string | undefined>,\n default: undefined,\n },\n maxDate: {\n type: [Date, String] as PropType<Date | string | undefined>,\n default: undefined,\n },\n disabledDates: {\n type: [Array, Function] as PropType<Date[] | ((date: Date) => boolean)>,\n default: undefined,\n },\n allowedDates: {\n type: Array as PropType<Date[]>,\n default: undefined,\n },\n disabledWeekDays: {\n type: Array as PropType<number[]>,\n default: undefined,\n },\n \n // Navigation & Flow\n inputFlow: {\n type: Array as PropType<FlowType>,\n default: undefined,\n },\n hideNavigation: {\n type: Array as PropType<HideNavigationType>,\n default: undefined,\n },\n partialFlow: {\n type: Boolean,\n default: false,\n },\n \n // UI Customization\n icon: {\n type: [Function, Object] as PropType<FunctionalComponent<HTMLAttributes & VNodeProps, Record<string, never>, Record<string, unknown>> | Component>,\n default: undefined,\n },\n autoApply: {\n type: Boolean,\n default: true,\n },\n clearable: {\n type: Boolean,\n default: true,\n },\n teleport: {\n type: [Boolean, String] as PropType<boolean | string>,\n default: true,\n },\n teleportCenter: {\n type: Boolean,\n default: false,\n },\n inline: {\n type: Boolean,\n default: false,\n },\n multiCalendars: {\n type: [Boolean, Number, Object] as PropType<boolean | number | { solo?: boolean; static?: boolean }>,\n default: undefined,\n },\n monthChangeOnScroll: {\n type: [Boolean, String] as PropType<boolean | 'inverse'>,\n default: true,\n },\n \n // State\n disabled: {\n type: Boolean,\n default: false,\n },\n disabledMessage: {\n type: String,\n default: '',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n textInput: {\n type: [Boolean, Object] as PropType<boolean | { enterSubmit?: boolean; tabSubmit?: boolean; openMenu?: boolean; format?: string }>,\n default: false,\n },\n \n // Format & Locale\n displayFormat: {\n type: [String, Function] as PropType<string | ((date: Date | Date[]) => string)>,\n default: undefined,\n },\n previewFormat: {\n type: [String, Function] as PropType<string | ((date: Date | Date[]) => string)>,\n default: undefined,\n },\n modelType: {\n type: String as PropType<'timestamp' | 'format' | undefined>,\n default: undefined,\n },\n locale: {\n type: String,\n default: 'en-US',\n },\n weekStart: {\n type: [Number, String] as PropType<0 | 1 | 2 | 3 | 4 | 5 | 6 | '0' | '1' | '2' | '3' | '4' | '5' | '6'>,\n default: undefined,\n },\n weekNumbers: {\n type: [Boolean, String] as PropType<boolean | 'iso' | 'local'>,\n default: false,\n },\n \n // UTC handling\n utc: {\n type: [Boolean, String] as PropType<boolean | 'preserve'>,\n default: 'preserve',\n },\n \n // Visual markers & highlighting\n markers: {\n type: Array as PropType<DatepickerMarker[]>,\n default: () => [],\n },\n highlight: {\n type: [Object, Array, Function] as PropType<DatepickerHighlight | Date[] | ((date: Date) => boolean)>,\n default: undefined,\n },\n highlightWeekDays: {\n type: Array as PropType<number[]>,\n default: undefined,\n },\n highlightDisabledDays: {\n type: Boolean,\n default: false,\n },\n \n // Additional options\n disableMonthYearSelect: {\n type: Boolean,\n default: false,\n },\n showNowButton: {\n type: Boolean,\n default: false,\n },\n sixWeeks: {\n type: [Boolean, String] as PropType<boolean | 'center' | 'fair' | 'append' | 'prepend'>,\n default: false,\n },\n startDate: {\n type: [Date, String] as PropType<Date | string>,\n default: undefined,\n },\n startTime: {\n type: Object as PropType<TimeModel | TimeModel[]>,\n default: undefined,\n },\n noToday: {\n type: Boolean,\n default: false,\n },\n noDisabledRange: {\n type: Boolean,\n default: false,\n },\n ignoreTimeValidation: {\n type: Boolean,\n default: false,\n },\n preventMinMaxNavigation: {\n type: Boolean,\n default: false,\n },\n \n // Transitions & positioning\n transitions: {\n type: [Boolean, Object] as PropType<boolean | { open?: string; close?: string; next?: string; previous?: string }>,\n default: true,\n },\n autoPosition: {\n type: Boolean,\n default: true,\n },\n altPosition: {\n type: [Boolean, Function] as PropType<boolean | ((el: HTMLElement | undefined) => { top: number | string; left: number | string; transform?: string })>,\n default: undefined,\n },\n \n // Theming\n dark: {\n type: Boolean,\n default: false,\n },\n \n // Preset dates\n presetDates: {\n type: Array as PropType<DatepickerPreset[]>,\n default: () => [],\n },\n presetsLabel: {\n type: String,\n default: 'Quick Select',\n },\n \n // Action row text\n selectText: {\n type: String,\n default: 'Select',\n },\n cancelText: {\n type: String,\n default: 'Cancel',\n },\n clearAriaLabel: {\n type: String,\n default: 'Clear date',\n },\n});\n\n// ============================================================================\n// EMITS\n// ============================================================================\n\nconst emit = defineEmits<{\n (e: 'update:value', value: string | null | (string | null)[]): void;\n (e: 'update:modelValue', value: DatepickerModelValue): void;\n (e: 'open'): void;\n (e: 'closed'): void;\n (e: 'focus'): void;\n (e: 'blur'): void;\n (e: 'cleared'): void;\n (e: 'text-submit', value: string): void;\n (e: 'internal-model-change', value: DatepickerModelValue, isValid: boolean): void;\n}>();\n\n// ============================================================================\n// CONFIGURATION & STATE\n// ============================================================================\n\n// Get plugin configuration\nconst datepickerConfig = inject<DatepickerOptions>('datepicker', {});\n\n// Generate unique ID for this field\nconst fieldId = computed(() => generateId(props.name));\n\nconst name = toRef(props, 'name');\n\n// VeeValidate field setup\nconst {\n errorMessage,\n handleChange,\n meta,\n setTouched,\n validate,\n} = useField(name, props.rules, {\n initialValue: props.value,\n validateOnMount: props.validateOnMount,\n});\n\n// Internal state\n// Use broader type to accommodate VueDatePicker's complex ModelValue type\nconst dateValue = ref<DatepickerModelValue>(null) as Ref<DatepickerModelValue | null | undefined>;\nconst datepicker = ref<DatePickerInstance | null>(null);\nconst isOpen = ref(false);\n\n// Action row config\nconst actionRowConfig = computed(() => ({\n showNow: props.showNowButton,\n showPreview: !props.autoApply,\n showSelect: !props.autoApply,\n showCancel: !props.autoApply,\n}));\n\n// Determine if we should show the valid check icon\n// When clearable and there's a value, we show clear button instead of valid check\n// This prevents UI overlap and provides better UX (action > status)\nconst hasValue = computed(() => {\n if (dateValue.value === null || dateValue.value === undefined) return false;\n if (typeof dateValue.value === 'string' && dateValue.value === '') return false;\n if (Array.isArray(dateValue.value) && dateValue.value.length === 0) return false;\n return true;\n});\n\nconst shouldShowClearButton = computed(() => {\n return props.clearable && hasValue.value && !props.disabled;\n});\n\n// Only show valid check when:\n// 1. showValidCheck prop is true AND\n// 2. We're NOT showing the clear button (clear button takes that space)\nconst showValidCheckComputed = computed(() => {\n return props.showValidCheck && !shouldShowClearButton.value;\n});\n\n// ============================================================================\n// COMPUTED STYLES\n// ============================================================================\n\nconst inputClasses = computed(() => {\n const base = [\n 'sl-block sl-w-full sl-rounded-md sl-border-0 sl-py-1.5',\n 'sl-text-gray-800 dark:sl-text-gray-100 sl-shadow-sm sl-ring-1 sl-ring-inset',\n 'placeholder:sl-text-gray-400 dark:placeholder:sl-text-gray-500 focus:sl-ring-2 focus:sl-ring-inset',\n 'sm:sl-text-sm sm:sl-leading-6',\n 'sl-bg-white dark:sl-bg-slate-900',\n ];\n \n // Add icon padding\n if (props.icon) {\n base.push('sl-pl-10');\n } else {\n base.push('sl-pl-3');\n }\n \n // Add clearable padding\n if (props.clearable) {\n base.push('sl-pr-10');\n } else {\n base.push('sl-pr-3');\n }\n \n // Add state classes\n if (props.disabled) {\n base.push('sl-bg-gray-50 dark:sl-bg-slate-800 sl-text-gray-500 dark:sl-text-gray-300 sl-cursor-not-allowed sl-ring-gray-200 dark:sl-ring-slate-700');\n } else if (errorMessage.value && (meta.touched || props.showErrors)) {\n base.push('sl-ring-red-500 focus:sl-ring-red-500 sl-bg-red-50 dark:sl-bg-red-900/20');\n } else if (meta.valid && meta.touched) {\n base.push('sl-ring-gray-300 dark:sl-ring-slate-600 focus:sl-ring-primary-600');\n } else {\n base.push('sl-ring-gray-300 dark:sl-ring-slate-600 focus:sl-ring-primary-600');\n }\n \n return base.join(' ');\n});\n\n// ============================================================================\n// DYNAMIC PICKER PROPS\n// ============================================================================\n\nconst dynamicPickerProps = computed(() => {\n const pickerProps: Record<string, unknown> = {\n monthPicker: false,\n yearPicker: false,\n weekPicker: false,\n quarterPicker: false,\n timePicker: false,\n enableTimePicker: false,\n is24: datepickerConfig.is24 ?? props.is24,\n range: false,\n disabled: props.disabled,\n };\n\n // Set picker mode (mutually exclusive)\n if (props.monthPicker) {\n pickerProps.monthPicker = true;\n } else if (props.yearPicker) {\n pickerProps.yearPicker = true;\n } else if (props.weekPicker) {\n pickerProps.weekPicker = true;\n } else if (props.quarterPicker) {\n pickerProps.quarterPicker = true;\n } else if (props.range) {\n pickerProps.range = true;\n } else if (props.timePicker) {\n pickerProps.timePicker = true;\n pickerProps.is24 = datepickerConfig.is24 ?? props.is24;\n }\n\n // Handle allowed dates\n if (props.allowedDates && props.allowedDates.length > 0) {\n pickerProps.allowedDates = props.allowedDates;\n }\n\n // Handle disabled dates\n if (props.disabledDates) {\n pickerProps.disabledDates = props.disabledDates;\n }\n\n // Handle disabled week days\n if (props.disabledWeekDays && props.disabledWeekDays.length > 0) {\n pickerProps.disabledWeekDays = props.disabledWeekDays;\n }\n\n // Handle min date\n if (props.minDate) {\n const raw = typeof props.minDate === 'string' ? new Date(props.minDate) : props.minDate;\n if (raw instanceof Date && !isNaN(raw.getTime())) {\n const startOfDay = new Date(raw);\n startOfDay.setHours(0, 0, 0, 0);\n pickerProps.minDate = startOfDay;\n }\n }\n\n // Handle max date\n if (props.maxDate) {\n const raw = typeof props.maxDate === 'string' ? new Date(props.maxDate) : props.maxDate;\n if (raw instanceof Date && !isNaN(raw.getTime())) {\n const endOfDay = new Date(raw);\n endOfDay.setHours(23, 59, 59, 999);\n pickerProps.maxDate = endOfDay;\n }\n }\n\n // Time increments\n if (props.enableTimePicker || props.timePicker) {\n pickerProps.minutesIncrement = props.minutesIncrement;\n pickerProps.secondsIncrement = props.secondsIncrement;\n pickerProps.hoursIncrement = props.hoursIncrement;\n }\n\n // Add props that have strict type checking issues with VueDatePicker\n // These are added here to bypass template-level type checking\n if (props.markers && props.markers.length > 0) {\n pickerProps.markers = props.markers;\n }\n if (props.highlight !== undefined) {\n pickerProps.highlight = props.highlight;\n }\n if (props.weekNumbers) {\n pickerProps.weekNumbers = props.weekNumbers;\n }\n if (props.altPosition !== undefined && typeof props.altPosition === 'function') {\n pickerProps.altPosition = props.altPosition;\n }\n\n return pickerProps;\n});\n\n// ============================================================================\n// DATE CONVERSION & STANDARDIZATION\n// ============================================================================\n\n/**\n * Standardize date value to ISO string format for consistent storage/validation\n */\nconst standardizeDate = (value: DatepickerModelValue): string | null | (string | null)[] => {\n if (value === null || value === undefined) {\n return null;\n }\n \n if (Array.isArray(value)) {\n return value.map(d => {\n if (d === null) return null;\n if (d instanceof Date) return d.toISOString();\n return d as string | null;\n });\n }\n \n if (value instanceof Date) {\n return value.toISOString();\n }\n \n if (typeof value === 'string') {\n const date = new Date(value);\n return !isNaN(date.getTime()) ? date.toISOString() : null;\n }\n \n if (typeof value === 'object' && value !== null) {\n // Month/Year object\n if ('month' in value && 'year' in value && \n typeof value.year === 'number' && \n typeof value.month === 'number') {\n const date = new Date(value.year, value.month, 1);\n return date.toISOString();\n }\n \n // Time object\n if ('hours' in value && 'minutes' in value && \n typeof value.hours === 'number' && \n typeof value.minutes === 'number') {\n return JSON.stringify(value);\n }\n }\n \n return null;\n};\n\n/**\n * Convert value to datepicker format\n */\nconst convertDate = (value: DatepickerModelValue): { convertedDate: DatepickerModelValue } => {\n if (value === null || value === undefined) {\n return { convertedDate: null };\n }\n \n if (Array.isArray(value)) {\n return {\n convertedDate: value.map(v => (v ? new Date(v as string | Date) : null)) as Date[],\n };\n }\n \n if (typeof value === 'string') {\n const effectiveDate = new Date(value);\n if (isNaN(effectiveDate.getTime())) {\n return { convertedDate: null };\n }\n return {\n convertedDate: dynamicPickerProps.value.monthPicker\n ? { month: effectiveDate.getMonth(), year: effectiveDate.getFullYear() }\n : effectiveDate\n };\n }\n \n if (value instanceof Date) {\n return {\n convertedDate: dynamicPickerProps.value.monthPicker\n ? { month: value.getMonth(), year: value.getFullYear() }\n : value\n };\n }\n \n if (typeof value === 'object' && value !== null) {\n // Month/Year object\n if ('month' in value && 'year' in value && \n typeof value.year === 'number' && \n typeof value.month === 'number') {\n return {\n convertedDate: { month: value.month, year: value.year }\n };\n }\n \n // Time object\n if ('hours' in value && 'minutes' in value && \n typeof value.hours === 'number' && \n typeof value.minutes === 'number') {\n return { convertedDate: value };\n }\n }\n \n return { convertedDate: null };\n};\n\n// ============================================================================\n// EVENT HANDLERS\n// ============================================================================\n\nconst handleInput = async (modelData: DatepickerModelValue) => {\n const standardizedDate = standardizeDate(modelData);\n handleChange(standardizedDate);\n emit('update:value', standardizedDate);\n emit('update:modelValue', modelData);\n // Validate after value change\n await validate();\n};\n\nconst handleOpen = () => {\n isOpen.value = true;\n emit('open');\n};\n\nconst handleClosed = async () => {\n isOpen.value = false;\n // Mark as touched when picker closes (user interacted)\n setTouched(true);\n await validate();\n emit('closed');\n};\n\nconst handleFocus = () => {\n emit('focus');\n};\n\nconst handleBlur = async () => {\n // Mark as touched on blur\n setTouched(true);\n await validate();\n emit('blur');\n};\n\nconst handleCleared = async () => {\n // When cleared, also validate\n handleChange(null);\n await validate();\n emit('cleared');\n};\n\nconst handleTextSubmit = (value: string) => {\n emit('text-submit', value);\n};\n\nconst handleInternalChange = (value: DatepickerModelValue, isValid: boolean) => {\n emit('internal-model-change', value, isValid);\n};\n\n// ============================================================================\n// PROGRAMMATIC API\n// ============================================================================\n\nconst selectDate = () => {\n datepicker.value?.selectDate();\n};\n\nconst closeMenu = () => {\n datepicker.value?.closeMenu();\n};\n\nconst openMenu = () => {\n datepicker.value?.openMenu();\n};\n\nconst clearValue = async () => {\n datepicker.value?.clearValue();\n await handleInput(null);\n};\n\nconst setMonthYear = (value: { month?: number; year?: number }) => {\n datepicker.value?.setMonthYear(value);\n};\n\nconst applyPreset = (preset: DatepickerPreset) => {\n const { value } = preset;\n dateValue.value = value as DatepickerModelValue;\n handleInput(value as DatepickerModelValue);\n closeMenu();\n};\n\n// ============================================================================\n// WATCHERS\n// ============================================================================\n\n// Watch for value prop changes\nwatch(() => props.value, (newVal) => {\n const { convertedDate } = convertDate(newVal);\n dateValue.value = convertedDate;\n}, { deep: true, immediate: true });\n\n// ============================================================================\n// EXPOSED API\n// ============================================================================\n\ndefineExpose({\n openMenu,\n closeMenu,\n selectDate,\n clearValue,\n setMonthYear,\n /** Current open state */\n isOpen,\n /** Validation state */\n meta,\n /** Error message if any */\n errorMessage,\n});\n</script>\n\n<style>\n@import '@vuepic/vue-datepicker/dist/main.css';\n\n/* Theme customization using CSS variables */\n.dp__theme_light {\n --dp-background-color: #fff;\n --dp-text-color: #1f2937;\n --dp-hover-color: #f3f4f6;\n --dp-hover-text-color: #1f2937;\n --dp-hover-icon-color: #6b7280;\n --dp-primary-color: var(--sl-color-primary-600, #3e4b9a);\n --dp-primary-disabled-color: var(--sl-color-primary-300, #949ed9);\n --dp-primary-text-color: #fff;\n --dp-secondary-color: #d1d5db;\n --dp-border-color: #e5e7eb;\n --dp-menu-border-color: #e5e7eb;\n --dp-border-color-hover: #9ca3af;\n --dp-disabled-color: #f3f4f6;\n --dp-disabled-color-text: #9ca3af;\n --dp-scroll-bar-background: #f3f4f6;\n --dp-scroll-bar-color: #9ca3af;\n --dp-success-color: #22c55e;\n --dp-success-color-disabled: #86efac;\n --dp-icon-color: #6b7280;\n --dp-danger-color: #ef4444;\n --dp-marker-color: var(--sl-color-primary-600, #3e4b9a);\n --dp-tooltip-color: #fafafa;\n --dp-highlight-color: rgba(62, 75, 154, 0.1);\n --dp-range-between-dates-background-color: #f3f4f6;\n --dp-range-between-dates-text-color: #1f2937;\n --dp-range-between-border-color: #f3f4f6;\n}\n\n.dp__theme_dark {\n --dp-background-color: #1f2937;\n --dp-text-color: #f9fafb;\n --dp-hover-color: #374151;\n --dp-hover-text-color: #f9fafb;\n --dp-hover-icon-color: #9ca3af;\n --dp-primary-color: var(--sl-color-primary-500, #4d5ec0);\n --dp-primary-disabled-color: var(--sl-color-primary-700, #2e3873);\n --dp-primary-text-color: #fff;\n --dp-secondary-color: #4b5563;\n --dp-border-color: #374151;\n --dp-menu-border-color: #374151;\n --dp-border-color-hover: #6b7280;\n --dp-disabled-color: #374151;\n --dp-disabled-color-text: #6b7280;\n --dp-scroll-bar-background: #374151;\n --dp-scroll-bar-color: #6b7280;\n --dp-success-color: #22c55e;\n --dp-success-color-disabled: #166534;\n --dp-icon-color: #9ca3af;\n --dp-danger-color: #ef4444;\n --dp-marker-color: var(--sl-color-primary-500, #4d5ec0);\n --dp-tooltip-color: #4b5563;\n --dp-highlight-color: rgba(77, 94, 192, 0.2);\n --dp-range-between-dates-background-color: #374151;\n --dp-range-between-dates-text-color: #f9fafb;\n --dp-range-between-border-color: #374151;\n}\n\n/* Base datepicker variables */\n:root {\n --dp-font-family: inherit;\n --dp-border-radius: 0.375rem;\n --dp-cell-border-radius: 0.375rem;\n --dp-common-transition: all 0.1s ease-in;\n --dp-button-height: 2.25rem;\n --dp-month-year-row-height: 2.25rem;\n --dp-month-year-row-button-size: 2.25rem;\n --dp-button-icon-height: 1.25rem;\n --dp-cell-size: 2.25rem;\n --dp-cell-padding: 0.25rem;\n --dp-common-padding: 0.625rem;\n --dp-input-icon-padding: 2.25rem;\n --dp-input-padding: 0.375rem 1.875rem 0.375rem 0.75rem;\n --dp-menu-min-width: 16rem;\n --dp-action-buttons-padding: 0;\n --dp-row-margin: 0;\n --dp-calendar-header-cell-padding: 0.5rem;\n --dp-two-calendars-spacing: 0.625rem;\n --dp-overlay-col-padding: 0.25rem;\n --dp-time-inc-dec-button-size: 2rem;\n --dp-menu-padding: 0.375rem 0.5rem;\n --dp-font-size: 0.875rem;\n --dp-preview-font-size: 0.75rem;\n --dp-time-font-size: 0.75rem;\n --dp-animation-duration: 0.1s;\n --dp-menu-appear-transition-timing: cubic-bezier(0.4, 0, 1, 1);\n --dp-transition-timing: ease-out;\n}\n\n/* Action row wrapper styles */\n.dp__action_row_wrapper {\n display: block;\n width: 100%;\n}\n\n/* Calendar cell hover states */\n.dp__calendar_item:hover {\n border-radius: var(--dp-cell-border-radius);\n}\n\n/* Range selection styles */\n.dp__range_start,\n.dp__range_end {\n border-radius: var(--dp-cell-border-radius);\n}\n\n/* Menu shadow */\n.dp__menu {\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n/* Disabled date styling */\n.dp__cell_disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Today marker */\n.dp__today {\n border: 1px solid var(--dp-primary-color);\n}\n\n/* Selected date */\n.dp__active_date {\n background-color: var(--dp-primary-color);\n color: var(--dp-primary-text-color);\n}\n</style>\n"],"names":["VueDatePicker","defineAsyncComponent","props","__props","emit","__emit","datepickerConfig","inject","fieldId","computed","generateId","name","toRef","errorMessage","handleChange","meta","setTouched","validate","useField","dateValue","ref","datepicker","isOpen","actionRowConfig","hasValue","shouldShowClearButton","showValidCheckComputed","inputClasses","base","dynamicPickerProps","pickerProps","raw","startOfDay","endOfDay","standardizeDate","value","d","date","convertDate","v","effectiveDate","handleInput","modelData","standardizedDate","handleOpen","handleClosed","handleFocus","handleBlur","handleCleared","handleTextSubmit","handleInternalChange","isValid","selectDate","closeMenu","openMenu","clearValue","setMonthYear","applyPreset","preset","watch","newVal","convertedDate","__expose","_createBlock","FormFieldWrapper","_unref","_createElementVNode","_hoisted_1","_createVNode","_mergeProps","$event","onInput","onEnter","onTab","onClear","onBlur","onKeypress","onPaste","_hoisted_2","_openBlock","_resolveDynamicComponent","_createElementBlock","XMarkIcon","$slots","_hoisted_5","_hoisted_6","_renderSlot","_ctx","_hoisted_7","day","month","year","months","years","updateMonthYear","handleMonthYearChange","_withCtx","slotProps","_hoisted_8","_hoisted_9","_toDisplayString","_hoisted_10","_Fragment","_renderList","_hoisted_11"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { defineComponent as G, ref as m, computed as i, onMounted as Y, nextTick as q, onUnmounted as J, createElementBlock as o, openBlock as r, createElementVNode as l, createCommentVNode as d, Fragment as f, renderList as y, createTextVNode as K, toDisplayString as n, normalizeClass as Q, normalizeStyle as x, unref as k, renderSlot as W } from "vue";
2
- import { i as S, c as X, d as ss, f as $ } from "./calendar-DyIP7WGv.js";
1
+ import { defineComponent as G, ref as m, computed as i, onMounted as Y, nextTick as q, onUnmounted as J, createElementBlock as o, openBlock as n, createElementVNode as l, createCommentVNode as d, Fragment as f, renderList as y, createTextVNode as K, toDisplayString as r, normalizeClass as Q, normalizeStyle as x, unref as p, renderSlot as W } from "vue";
2
+ import { i as $, c as X, d as ss, f as A } from "./calendar-BlSSD4nO.js";
3
3
  const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-white dark:sl-bg-slate-900" }, es = { class: "sl-grid sl-grid-cols-7 sl-text-sm sl-leading-6 sl-text-gray-500 dark:sl-text-slate-400 xl:sl-hidden" }, ls = ["onClick"], os = {
4
4
  key: 0,
5
5
  class: "sl-border-b sl-border-gray-200 dark:sl-border-slate-700 sl-bg-gray-50 dark:sl-bg-slate-800 sl-px-4 sl-py-2"
6
- }, rs = { class: "sl-flex sl-items-center sl-gap-2" }, ns = { class: "sl-flex sl-flex-wrap sl-gap-1" }, as = ["title", "onClick"], is = { class: "sl-flex sl-flex-auto" }, ds = { class: "sl-grid sl-flex-auto sl-grid-cols-1 sl-grid-rows-1 sl-relative" }, cs = {
6
+ }, ns = { class: "sl-flex sl-items-center sl-gap-2" }, rs = { class: "sl-flex sl-flex-wrap sl-gap-1" }, as = ["title", "onClick"], is = { class: "sl-flex sl-flex-auto" }, ds = { class: "sl-grid sl-flex-auto sl-grid-cols-1 sl-grid-rows-1 sl-relative" }, cs = {
7
7
  class: "sl-col-start-1 sl-col-end-2 sl-row-start-1 sl-grid sl-divide-y sl-divide-gray-100 dark:sl-divide-slate-800",
8
8
  style: { "grid-template-rows": "repeat(48, minmax(3.5rem, 1fr))" }
9
9
  }, us = { class: "sl-relative" }, ms = { class: "sl-sticky sl-left-0 sl-z-20 sl--ml-14 sl--mt-2.5 sl-w-14 sl-pr-2 sl-text-right sl-text-xs sl-leading-5 sl-text-gray-400 dark:sl-text-slate-500" }, fs = { class: "sl-relative sl-flex sl-items-center" }, xs = { class: "sl-absolute sl--left-14 sl--top-2.5 sl-flex sl-items-center sl-justify-end sl-w-14 sl-pr-1" }, gs = { class: "sl-bg-red-500 sl-text-white sl-text-[10px] sl-font-medium sl-px-1.5 sl-py-0.5 sl-rounded-full sl-shadow-sm" }, vs = {
10
10
  class: "sl-col-end-2 sl-row-start-1 sl-grid sl-grid-cols-1 sl-relative",
11
11
  style: { "grid-template-rows": "1.75rem repeat(288, minmax(0, 1fr)) auto" }
12
- }, ys = ["onClick"], hs = { class: "sl-text-gray-600 dark:sl-text-slate-300 group-hover:sl-text-gray-800 dark:group-hover:sl-text-slate-100" }, ps = ["datetime"], ks = { key: 0 }, bs = { key: 1 }, _s = {
12
+ }, ys = ["onClick"], hs = { class: "sl-text-gray-600 dark:sl-text-slate-300 group-hover:sl-text-gray-800 dark:group-hover:sl-text-slate-100" }, ks = ["datetime"], ps = { key: 0 }, bs = { key: 1 }, _s = {
13
13
  key: 0,
14
14
  class: "sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-italic"
15
15
  }, ws = {
@@ -24,8 +24,8 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
24
24
  days: {}
25
25
  },
26
26
  emits: ["selectDay", "select:event"],
27
- setup(A, { emit: E }) {
28
- const H = A, b = E, _ = m(null), w = m(null), I = m(null), N = m(null), g = m(null), c = m(/* @__PURE__ */ new Date());
27
+ setup(b, { emit: E }) {
28
+ const H = b, _ = E, w = m(null), M = m(null), I = m(null), N = m(null), g = m(null), c = m(/* @__PURE__ */ new Date());
29
29
  let a = null;
30
30
  const z = [
31
31
  "12AM",
@@ -52,25 +52,25 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
52
52
  "9PM",
53
53
  "10PM",
54
54
  "11PM"
55
- ], M = (t) => {
55
+ ], D = (t) => {
56
56
  const e = /* @__PURE__ */ new Date(), s = `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
57
57
  return t.date === s;
58
- }, D = (t) => g.value === t, F = i(() => v.value.some((t) => M(t))), O = i(() => {
58
+ }, T = (t) => g.value === t, F = i(() => v.value.some((t) => D(t))), O = i(() => {
59
59
  const t = c.value.getHours(), e = c.value.getMinutes();
60
60
  return `${t % 12 || 12}:${String(e).padStart(2, "0")}`;
61
61
  }), U = i(() => {
62
- const t = c.value, e = t.getHours() * 60 + t.getMinutes(), s = 28, u = 3.5, P = 48, p = e / 1440;
62
+ const t = c.value, e = t.getHours() * 60 + t.getMinutes(), s = 28, u = 3.5, S = 48, k = e / 1440;
63
63
  return {
64
- top: `calc(${s}px + ${p} * ${P} * ${u}rem)`
64
+ top: `calc(${s}px + ${k} * ${S} * ${u}rem)`
65
65
  };
66
66
  }), V = (t) => {
67
- g.value = t, b("selectDay", t);
68
- }, T = (t) => b("select:event", t), v = i(() => g.value ? [g.value] : H.days), C = i(() => {
67
+ g.value = t, _("selectDay", t);
68
+ }, C = (t) => _("select:event", t), v = i(() => g.value ? [g.value] : H.days), P = i(() => {
69
69
  const t = v.value[0];
70
- return t?.events ? t.events.filter((e) => S(e)) : [];
70
+ return t?.events ? t.events.filter((e) => $(e)) : [];
71
71
  }), j = i(() => {
72
72
  const t = v.value[0];
73
- return t?.events ? t.events.filter((e) => !S(e)) : [];
73
+ return t?.events ? t.events.filter((e) => !$(e)) : [];
74
74
  }), h = i(() => {
75
75
  const t = v.value[0];
76
76
  return t ? X(t.date, j.value, 4) : { placed: [], overflow: 0 };
@@ -81,11 +81,11 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
81
81
  width: `${e}%`
82
82
  };
83
83
  }, L = () => {
84
- const t = _.value, e = w.value;
84
+ const t = w.value, e = M.value;
85
85
  if (!t) return;
86
- const s = /* @__PURE__ */ new Date(), u = s.getHours() * 60 + s.getMinutes(), p = (t.scrollHeight - (e?.offsetHeight || 0)) * u / 1440, Z = t.clientHeight / 3;
86
+ const s = /* @__PURE__ */ new Date(), u = s.getHours() * 60 + s.getMinutes(), k = (t.scrollHeight - (e?.offsetHeight || 0)) * u / 1440, Z = t.clientHeight / 3;
87
87
  t.scrollTo({
88
- top: Math.max(0, p - Z),
88
+ top: Math.max(0, k - Z),
89
89
  behavior: "smooth"
90
90
  });
91
91
  }, R = () => {
@@ -105,39 +105,39 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
105
105
  }, 100);
106
106
  }), J(() => {
107
107
  a && (clearInterval(a), a = null);
108
- }), (t, e) => (r(), o("div", ts, [
108
+ }), (t, e) => (n(), o("div", ts, [
109
109
  l("div", {
110
110
  ref_key: "container",
111
- ref: _,
111
+ ref: w,
112
112
  class: "sl-flex sl-flex-auto sl-flex-col sl-overflow-auto"
113
113
  }, [
114
114
  l("div", {
115
115
  ref_key: "containerNav",
116
- ref: w,
116
+ ref: M,
117
117
  class: "sl-sticky sl-top-0 sl-z-10 sl-bg-white dark:sl-bg-slate-900 sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-shadow sl-ring-1 sl-ring-black dark:sl-ring-slate-700 sl-ring-opacity-5 md:sl-hidden"
118
118
  }, [
119
119
  l("div", es, [
120
- (r(!0), o(f, null, y(t.days, (s) => (r(), o("button", {
120
+ (n(!0), o(f, null, y(b.days, (s) => (n(), o("button", {
121
121
  key: s.date,
122
122
  type: "button",
123
123
  class: "sl-flex sl-flex-col sl-items-center sl-pb-3 sl-pt-2",
124
124
  onClick: (u) => V(s)
125
125
  }, [
126
- K(n(s.shortDay) + " ", 1),
126
+ K(r(s.shortDay) + " ", 1),
127
127
  l("span", {
128
128
  class: Q(["sl-mt-1 sl-flex sl-h-8 sl-w-8 sl-items-center sl-justify-center sl-font-semibold sl-text-gray-800 dark:sl-text-slate-200", [
129
- D(s) ? "sl-rounded-full sl-bg-stachelock-600 sl-font-semibold sl-text-white" : "",
130
- M(s) && !D(s) ? "sl-rounded-full sl-bg-stachelock-100 dark:sl-bg-stachelock-900 sl-text-stachelock-700 dark:sl-text-stachelock-300" : ""
129
+ T(s) ? "sl-rounded-full sl-bg-stachelock-600 sl-font-semibold sl-text-white" : "",
130
+ D(s) && !T(s) ? "sl-rounded-full sl-bg-stachelock-100 dark:sl-bg-stachelock-900 sl-text-stachelock-700 dark:sl-text-stachelock-300" : ""
131
131
  ]])
132
- }, n(s.day), 3)
132
+ }, r(s.day), 3)
133
133
  ], 8, ls))), 128))
134
134
  ])
135
135
  ], 512),
136
- C.value.length > 0 ? (r(), o("div", os, [
137
- l("div", rs, [
136
+ P.value.length > 0 ? (n(), o("div", os, [
137
+ l("div", ns, [
138
138
  e[0] || (e[0] = l("span", { class: "sl-text-xs sl-font-medium sl-text-gray-500 dark:sl-text-slate-400 sl-w-12 sl-flex-none" }, "All day", -1)),
139
- l("div", ns, [
140
- (r(!0), o(f, null, y(C.value, (s) => (r(), o("button", {
139
+ l("div", rs, [
140
+ (n(!0), o(f, null, y(P.value, (s) => (n(), o("button", {
141
141
  key: "allday-" + s.id,
142
142
  class: "sl-px-2 sl-py-1 sl-rounded sl-text-xs sl-font-medium sl-truncate sl-max-w-[200px] hover:sl-opacity-80",
143
143
  style: x({
@@ -145,8 +145,8 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
145
145
  color: s.ratePlanColor ? "#fff" : "#1e40af"
146
146
  }),
147
147
  title: s.name,
148
- onClick: (u) => T(s.id)
149
- }, n(s.name), 13, as))), 128))
148
+ onClick: (u) => C(s.id)
149
+ }, r(s.name), 13, as))), 128))
150
150
  ])
151
151
  ])
152
152
  ])) : d("", !0),
@@ -159,14 +159,14 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
159
159
  ref: I,
160
160
  class: "sl-row-end-1 sl-h-7"
161
161
  }, null, 512),
162
- (r(), o(f, null, y(z, (s) => (r(), o(f, { key: s }, [
162
+ (n(), o(f, null, y(z, (s) => (n(), o(f, { key: s }, [
163
163
  l("div", us, [
164
- l("div", ms, n(s), 1)
164
+ l("div", ms, r(s), 1)
165
165
  ]),
166
166
  e[1] || (e[1] = l("div", null, null, -1))
167
167
  ], 64))), 64))
168
168
  ]),
169
- F.value ? (r(), o("div", {
169
+ F.value ? (n(), o("div", {
170
170
  key: 0,
171
171
  ref_key: "currentTimeIndicator",
172
172
  ref: N,
@@ -175,24 +175,24 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
175
175
  }, [
176
176
  l("div", fs, [
177
177
  l("div", xs, [
178
- l("span", gs, n(O.value), 1)
178
+ l("span", gs, r(O.value), 1)
179
179
  ]),
180
180
  e[2] || (e[2] = l("div", { class: "sl-w-2.5 sl-h-2.5 sl-bg-red-500 sl-rounded-full sl--ml-1 sl-shadow-sm" }, null, -1)),
181
181
  e[3] || (e[3] = l("div", { class: "sl-flex-1 sl-h-0.5 sl-bg-red-500 sl-shadow-sm" }, null, -1))
182
182
  ])
183
183
  ], 4)) : d("", !0),
184
184
  l("ol", vs, [
185
- (r(!0), o(f, null, y(h.value.placed, (s) => (r(), o("li", {
185
+ (n(!0), o(f, null, y(h.value.placed, (s) => (n(), o("li", {
186
186
  key: s.id,
187
187
  class: "sl-absolute sl-mt-px",
188
188
  style: x({
189
189
  ...B(s),
190
190
  top: `calc(1.75rem + ${(s.clampedStart.getHours() * 60 + s.clampedStart.getMinutes()) / 1440 * 100}% * (288 / 100))`,
191
- height: `calc(${k(ss)(s.clampedStart.toISOString(), s.clampedEnd.toISOString())} * (100% - 1.75rem) / 288)`
191
+ height: `calc(${p(ss)(s.clampedStart.toISOString(), s.clampedEnd.toISOString())} * (100% - 1.75rem) / 288)`
192
192
  })
193
193
  }, [
194
194
  l("button", {
195
- onClick: (u) => T(s.id),
195
+ onClick: (u) => C(s.id),
196
196
  class: "sl-justify-start sl-group sl-absolute sl-inset-1 sl-flex sl-flex-col sl-overflow-y-auto sl-rounded-lg sl-p-2 sl-text-xs sl-leading-5 hover:sl-opacity-90",
197
197
  style: x({
198
198
  backgroundColor: s.ratePlanColor ? `${s.ratePlanColor}20` : "#dbeafe",
@@ -202,20 +202,20 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
202
202
  l("p", {
203
203
  class: "sl-order-1 sl-font-semibold",
204
204
  style: x({ color: s.ratePlanColor || "#1d4ed8" })
205
- }, n(s.name), 5),
205
+ }, r(s.name), 5),
206
206
  l("p", hs, [
207
207
  l("time", {
208
208
  datetime: s.datetime
209
- }, n(k($)(s.datetime)), 9, ps),
210
- s.endTime?.dateTime ? (r(), o("span", ks, " – " + n(k($)(s.endTime.dateTime)), 1)) : d("", !0),
211
- s.startTime?.shortTimeZone ? (r(), o("span", bs, n(s.startTime.shortTimeZone), 1)) : d("", !0)
209
+ }, r(p(A)(s.datetime)), 9, ks),
210
+ s.endTime?.dateTime ? (n(), o("span", ps, " – " + r(p(A)(s.endTime.dateTime)), 1)) : d("", !0),
211
+ s.startTime?.shortTimeZone ? (n(), o("span", bs, r(s.startTime.shortTimeZone), 1)) : d("", !0)
212
212
  ]),
213
- s.isStartDay ? d("", !0) : (r(), o("p", _s, " (continues from previous day) ")),
214
- s.isEndDay ? d("", !0) : (r(), o("p", ws, " (continues to next day) "))
213
+ s.isStartDay ? d("", !0) : (n(), o("p", _s, " (continues from previous day) ")),
214
+ s.isEndDay ? d("", !0) : (n(), o("p", ws, " (continues to next day) "))
215
215
  ], 12, ys)
216
216
  ], 4))), 128)),
217
- h.value.overflow > 0 ? (r(), o("li", Ms, [
218
- l("span", Ds, " +" + n(h.value.overflow) + " more ", 1)
217
+ h.value.overflow > 0 ? (n(), o("li", Ms, [
218
+ l("span", Ds, " +" + r(h.value.overflow) + " more ", 1)
219
219
  ])) : d("", !0)
220
220
  ])
221
221
  ])
@@ -235,4 +235,4 @@ const ts = { class: "sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-wh
235
235
  export {
236
236
  Ss as _
237
237
  };
238
- //# sourceMappingURL=DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js.map
238
+ //# sourceMappingURL=DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js","sources":["../src/components/calendars/DayCalendar.vue"],"sourcesContent":["<!--\n @component DayCalendar\n @description Single day view calendar with hourly time grid.\n \n Features:\n - Full day view with hourly time slots\n - Current time indicator (red line) for today\n - Overlapping event handling\n - Auto-scroll to current time on mount\n - Mobile day selector chips\n - Mini month calendar sidebar (desktop)\n - Event click handling\n \n @example\n <DayCalendar\n :days=\"[selectedDay]\"\n @selectDay=\"handleDaySelect\"\n @select:event=\"handleEventSelect\"\n />\n-->\n<template>\n <div class=\"sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-white dark:sl-bg-slate-900\">\n <div ref=\"container\" class=\"sl-flex sl-flex-auto sl-flex-col sl-overflow-auto\">\n <!-- Mobile sticky nav with days -->\n <div \n ref=\"containerNav\" \n class=\"sl-sticky sl-top-0 sl-z-10 sl-bg-white dark:sl-bg-slate-900 sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-shadow sl-ring-1 sl-ring-black dark:sl-ring-slate-700 sl-ring-opacity-5 md:sl-hidden\"\n >\n <div class=\"sl-grid sl-grid-cols-7 sl-text-sm sl-leading-6 sl-text-gray-500 dark:sl-text-slate-400 xl:sl-hidden\">\n <button \n v-for=\"day in days\" \n :key=\"day.date\" \n type=\"button\" \n class=\"sl-flex sl-flex-col sl-items-center sl-pb-3 sl-pt-2\" \n @click=\"setActiveDay(day)\"\n >\n {{ day.shortDay }}\n <span \n class=\"sl-mt-1 sl-flex sl-h-8 sl-w-8 sl-items-center sl-justify-center sl-font-semibold sl-text-gray-800 dark:sl-text-slate-200\" \n :class=\"[\n isActiveDay(day) ? 'sl-rounded-full sl-bg-stachelock-600 sl-font-semibold sl-text-white' : '',\n isDayToday(day) && !isActiveDay(day) ? 'sl-rounded-full sl-bg-stachelock-100 dark:sl-bg-stachelock-900 sl-text-stachelock-700 dark:sl-text-stachelock-300' : ''\n ]\"\n >\n {{ day.day }}\n </span>\n </button>\n </div>\n </div>\n \n <!-- All-Day Events Section -->\n <div v-if=\"allDayEventsForDay.length > 0\" class=\"sl-border-b sl-border-gray-200 dark:sl-border-slate-700 sl-bg-gray-50 dark:sl-bg-slate-800 sl-px-4 sl-py-2\">\n <div class=\"sl-flex sl-items-center sl-gap-2\">\n <span class=\"sl-text-xs sl-font-medium sl-text-gray-500 dark:sl-text-slate-400 sl-w-12 sl-flex-none\">All day</span>\n <div class=\"sl-flex sl-flex-wrap sl-gap-1\">\n <button \n v-for=\"event in allDayEventsForDay\" \n :key=\"'allday-' + event.id\"\n class=\"sl-px-2 sl-py-1 sl-rounded sl-text-xs sl-font-medium sl-truncate sl-max-w-[200px] hover:sl-opacity-80\"\n :style=\"{ \n backgroundColor: event.ratePlanColor || '#dbeafe', \n color: event.ratePlanColor ? '#fff' : '#1e40af' \n }\"\n :title=\"event.name\"\n @click=\"handleSelectEvent(event.id)\"\n >\n {{ event.name }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"sl-flex sl-flex-auto\">\n <!-- Time gutter -->\n <div class=\"sl-w-14 sl-flex-none sl-bg-white dark:sl-bg-slate-900 sl-ring-1 sl-ring-gray-100 dark:sl-ring-slate-700\" />\n \n <div class=\"sl-grid sl-flex-auto sl-grid-cols-1 sl-grid-rows-1 sl-relative\">\n <!-- Hour grid -->\n <div \n class=\"sl-col-start-1 sl-col-end-2 sl-row-start-1 sl-grid sl-divide-y sl-divide-gray-100 dark:sl-divide-slate-800\" \n style=\"grid-template-rows: repeat(48, minmax(3.5rem, 1fr))\"\n >\n <div ref=\"containerOffset\" class=\"sl-row-end-1 sl-h-7\" />\n <template v-for=\"hour in hours\" :key=\"hour\">\n <div class=\"sl-relative\">\n <div class=\"sl-sticky sl-left-0 sl-z-20 sl--ml-14 sl--mt-2.5 sl-w-14 sl-pr-2 sl-text-right sl-text-xs sl-leading-5 sl-text-gray-400 dark:sl-text-slate-500\">\n {{ hour }}\n </div>\n </div>\n <div />\n </template>\n </div>\n\n <!-- Current Time Indicator -->\n <div \n v-if=\"showCurrentTimeIndicator\" \n ref=\"currentTimeIndicator\"\n class=\"sl-absolute sl-left-0 sl-right-0 sl-pointer-events-none sl-z-40\"\n :style=\"currentTimeIndicatorStyle\"\n >\n <div class=\"sl-relative sl-flex sl-items-center\">\n <!-- Time bubble -->\n <div class=\"sl-absolute sl--left-14 sl--top-2.5 sl-flex sl-items-center sl-justify-end sl-w-14 sl-pr-1\">\n <span class=\"sl-bg-red-500 sl-text-white sl-text-[10px] sl-font-medium sl-px-1.5 sl-py-0.5 sl-rounded-full sl-shadow-sm\">\n {{ currentTimeDisplay }}\n </span>\n </div>\n <!-- Red dot -->\n <div class=\"sl-w-2.5 sl-h-2.5 sl-bg-red-500 sl-rounded-full sl--ml-1 sl-shadow-sm\" />\n <!-- Red line -->\n <div class=\"sl-flex-1 sl-h-0.5 sl-bg-red-500 sl-shadow-sm\" />\n </div>\n </div>\n\n <!-- Events -->\n <ol \n class=\"sl-col-end-2 sl-row-start-1 sl-grid sl-grid-cols-1 sl-relative\" \n style=\"grid-template-rows: 1.75rem repeat(288, minmax(0, 1fr)) auto\"\n >\n <!-- Timed events with overlap handling -->\n <li \n v-for=\"placed in placedEvents.placed\" \n :key=\"placed.id\" \n class=\"sl-absolute sl-mt-px\" \n :style=\"{\n ...getEventStyle(placed),\n top: `calc(1.75rem + ${((placed.clampedStart.getHours() * 60 + placed.clampedStart.getMinutes()) / 1440) * 100}% * (288 / 100))`,\n height: `calc(${calculateGridSpan(placed.clampedStart.toISOString(), placed.clampedEnd.toISOString())} * (100% - 1.75rem) / 288)`\n }\"\n >\n <button \n @click=\"handleSelectEvent(placed.id)\" \n class=\"sl-justify-start sl-group sl-absolute sl-inset-1 sl-flex sl-flex-col sl-overflow-y-auto sl-rounded-lg sl-p-2 sl-text-xs sl-leading-5 hover:sl-opacity-90\"\n :style=\"{ \n backgroundColor: placed.ratePlanColor ? `${placed.ratePlanColor}20` : '#dbeafe',\n borderLeft: placed.ratePlanColor ? `3px solid ${placed.ratePlanColor}` : '3px solid #3b82f6'\n }\"\n >\n <p class=\"sl-order-1 sl-font-semibold\" :style=\"{ color: placed.ratePlanColor || '#1d4ed8' }\">\n {{ placed.name }}\n </p>\n <p class=\"sl-text-gray-600 dark:sl-text-slate-300 group-hover:sl-text-gray-800 dark:group-hover:sl-text-slate-100\">\n <time :datetime=\"placed.datetime\">{{ formatTime(placed.datetime) }}</time>\n <span v-if=\"placed.endTime?.dateTime\"> – {{ formatTime(placed.endTime.dateTime) }}</span>\n <span v-if=\"placed.startTime?.shortTimeZone\"> {{ placed.startTime.shortTimeZone }}</span>\n </p>\n <p v-if=\"!placed.isStartDay\" class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-italic\">\n (continues from previous day)\n </p>\n <p v-if=\"!placed.isEndDay\" class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-italic\">\n (continues to next day)\n </p>\n </button>\n </li>\n \n <!-- Overflow indicator -->\n <li v-if=\"placedEvents.overflow > 0\" class=\"sl-absolute sl-top-2 sl-right-2\">\n <span class=\"sl-text-xs sl-font-medium sl-text-stachelock-700 dark:sl-text-stachelock-300 sl-bg-stachelock-100 dark:sl-bg-stachelock-900 sl-px-2 sl-py-1 sl-rounded-full\">\n +{{ placedEvents.overflow }} more\n </span>\n </li>\n </ol>\n </div>\n </div>\n </div>\n \n <!-- Side panel placeholder (for mini calendar) -->\n <div class=\"md:sl-block sl-hidden sl-w-1/2 sl-max-w-md sl-flex-none sl-border-l sl-border-gray-100 dark:sl-border-slate-700 sl-px-8 sl-py-10\">\n <slot name=\"sidebar\">\n <!-- Default: mini month calendar would go here -->\n <div class=\"sl-text-center sl-text-gray-500 dark:sl-text-slate-400 sl-text-sm\">\n <p class=\"sl-font-medium\">Mini Calendar</p>\n <p class=\"sl-mt-1 sl-text-xs\">Pass a month calendar in the sidebar slot</p>\n </div>\n </slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, onMounted, onUnmounted, nextTick } from 'vue';\nimport type { CalendarDay, PlacedEvent } from '@/utils/calendar';\nimport { calculateGridSpan, formatTime, isAllDayEvent, calculateEventPlacement } from '@/utils/calendar';\n\nconst props = defineProps<{ days: Array<CalendarDay> }>();\nconst emit = defineEmits(['selectDay', 'select:event']);\n\nconst container = ref<HTMLElement | null>(null);\nconst containerNav = ref<HTMLElement | null>(null);\nconst containerOffset = ref<HTMLElement | null>(null);\nconst currentTimeIndicator = ref<HTMLElement | null>(null);\nconst activeDay = ref<CalendarDay | null>(null);\n\n// Current time tracking\nconst currentTime = ref(new Date());\nlet timeUpdateInterval: ReturnType<typeof setInterval> | null = null;\n\nconst hours = [\n '12AM','1AM','2AM','3AM','4AM','5AM','6AM','7AM','8AM','9AM','10AM','11AM',\n '12PM','1PM','2PM','3PM','4PM','5PM','6PM','7PM','8PM','9PM','10PM','11PM'\n];\n\n// Check if a day is today\nconst isDayToday = (day: CalendarDay): boolean => {\n const today = new Date();\n const todayStr = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`;\n return day.date === todayStr;\n};\n\nconst isActiveDay = (day: CalendarDay) => activeDay.value === day;\n\n// Show current time indicator only if viewing today\nconst showCurrentTimeIndicator = computed(() => {\n return filteredDays.value.some(day => isDayToday(day));\n});\n\n// Current time display\nconst currentTimeDisplay = computed(() => {\n const hours = currentTime.value.getHours();\n const minutes = currentTime.value.getMinutes();\n const displayHours = hours % 12 || 12;\n return `${displayHours}:${String(minutes).padStart(2, '0')}`;\n});\n\n// Calculate position of current time indicator\nconst currentTimeIndicatorStyle = computed(() => {\n const now = currentTime.value;\n const totalMinutes = now.getHours() * 60 + now.getMinutes();\n \n const offsetPx = 28;\n const rowHeightRem = 3.5;\n const totalRows = 48;\n \n const percentOfDay = totalMinutes / 1440;\n \n return {\n top: `calc(${offsetPx}px + ${percentOfDay} * ${totalRows} * ${rowHeightRem}rem)`\n };\n});\n\nconst setActiveDay = (day: CalendarDay) => { \n activeDay.value = day; \n emit('selectDay', day); \n};\n\nconst handleSelectEvent = (eventId: string | number) => emit('select:event', eventId);\n\nconst filteredDays = computed(() => activeDay.value ? [activeDay.value] : props.days);\n\n// Separate all-day events from timed events\nconst allDayEventsForDay = computed(() => {\n const day = filteredDays.value[0];\n if (!day?.events) return [];\n return day.events.filter(event => isAllDayEvent(event));\n});\n\nconst timedEventsForDay = computed(() => {\n const day = filteredDays.value[0];\n if (!day?.events) return [];\n return day.events.filter(event => !isAllDayEvent(event));\n});\n\n// Calculate placed events with overlap handling\nconst placedEvents = computed(() => {\n const day = filteredDays.value[0];\n if (!day) return { placed: [], overflow: 0 };\n return calculateEventPlacement(day.date, timedEventsForDay.value, 4);\n});\n\n// Get width and position for an event\nconst getEventStyle = (event: PlacedEvent) => {\n const width = 100 / event.totalColumns;\n const left = event.column * width;\n return {\n left: `${left}%`,\n width: `${width}%`,\n };\n};\n\n// Scroll to current time\nconst scrollToCurrentTime = () => {\n const containerElement = container.value;\n const containerNavElement = containerNav.value;\n \n if (!containerElement) return;\n \n const now = new Date();\n const currentMinute = now.getHours() * 60 + now.getMinutes();\n \n const scrollableHeight = containerElement.scrollHeight - (containerNavElement?.offsetHeight || 0);\n const targetPosition = (scrollableHeight * currentMinute) / 1440;\n const offsetForVisibility = containerElement.clientHeight / 3;\n \n containerElement.scrollTo({\n top: Math.max(0, targetPosition - offsetForVisibility),\n behavior: 'smooth'\n });\n};\n\n// Start time updates\nconst startTimeUpdates = () => {\n timeUpdateInterval = setInterval(() => {\n currentTime.value = new Date();\n }, 60000);\n \n const now = new Date();\n const msUntilNextMinute = (60 - now.getSeconds()) * 1000 - now.getMilliseconds();\n setTimeout(() => {\n currentTime.value = new Date();\n if (timeUpdateInterval) {\n clearInterval(timeUpdateInterval);\n }\n timeUpdateInterval = setInterval(() => {\n currentTime.value = new Date();\n }, 60000);\n }, msUntilNextMinute);\n};\n\nonMounted(async () => {\n startTimeUpdates();\n \n await nextTick();\n setTimeout(() => {\n scrollToCurrentTime();\n }, 100);\n});\n\nonUnmounted(() => {\n if (timeUpdateInterval) {\n clearInterval(timeUpdateInterval);\n timeUpdateInterval = null;\n }\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["props","__props","emit","__emit","container","ref","containerNav","containerOffset","currentTimeIndicator","activeDay","currentTime","timeUpdateInterval","hours","isDayToday","day","today","todayStr","isActiveDay","showCurrentTimeIndicator","computed","filteredDays","currentTimeDisplay","minutes","currentTimeIndicatorStyle","now","totalMinutes","offsetPx","rowHeightRem","totalRows","percentOfDay","setActiveDay","handleSelectEvent","eventId","allDayEventsForDay","event","isAllDayEvent","timedEventsForDay","placedEvents","calculateEventPlacement","getEventStyle","width","scrollToCurrentTime","containerElement","containerNavElement","currentMinute","targetPosition","offsetForVisibility","startTimeUpdates","msUntilNextMinute","onMounted","nextTick","onUnmounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_Fragment","_renderList","days","$event","_toDisplayString","_hoisted_4","_hoisted_5","_cache","_hoisted_6","_normalizeStyle","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","hour","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","placed","_unref","calculateGridSpan","_hoisted_18","formatTime","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_renderSlot","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js","sources":["../src/components/calendars/DayCalendar.vue"],"sourcesContent":["<!--\n @component DayCalendar\n @description Single day view calendar with hourly time grid.\n \n Features:\n - Full day view with hourly time slots\n - Current time indicator (red line) for today\n - Overlapping event handling\n - Auto-scroll to current time on mount\n - Mobile day selector chips\n - Mini month calendar sidebar (desktop)\n - Event click handling\n \n @example\n <DayCalendar\n :days=\"[selectedDay]\"\n @selectDay=\"handleDaySelect\"\n @select:event=\"handleEventSelect\"\n />\n-->\n<template>\n <div class=\"sl-isolate sl-flex sl-flex-auto sl-overflow-hidden sl-bg-white dark:sl-bg-slate-900\">\n <div ref=\"container\" class=\"sl-flex sl-flex-auto sl-flex-col sl-overflow-auto\">\n <!-- Mobile sticky nav with days -->\n <div \n ref=\"containerNav\" \n class=\"sl-sticky sl-top-0 sl-z-10 sl-bg-white dark:sl-bg-slate-900 sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-shadow sl-ring-1 sl-ring-black dark:sl-ring-slate-700 sl-ring-opacity-5 md:sl-hidden\"\n >\n <div class=\"sl-grid sl-grid-cols-7 sl-text-sm sl-leading-6 sl-text-gray-500 dark:sl-text-slate-400 xl:sl-hidden\">\n <button \n v-for=\"day in days\" \n :key=\"day.date\" \n type=\"button\" \n class=\"sl-flex sl-flex-col sl-items-center sl-pb-3 sl-pt-2\" \n @click=\"setActiveDay(day)\"\n >\n {{ day.shortDay }}\n <span \n class=\"sl-mt-1 sl-flex sl-h-8 sl-w-8 sl-items-center sl-justify-center sl-font-semibold sl-text-gray-800 dark:sl-text-slate-200\" \n :class=\"[\n isActiveDay(day) ? 'sl-rounded-full sl-bg-stachelock-600 sl-font-semibold sl-text-white' : '',\n isDayToday(day) && !isActiveDay(day) ? 'sl-rounded-full sl-bg-stachelock-100 dark:sl-bg-stachelock-900 sl-text-stachelock-700 dark:sl-text-stachelock-300' : ''\n ]\"\n >\n {{ day.day }}\n </span>\n </button>\n </div>\n </div>\n \n <!-- All-Day Events Section -->\n <div v-if=\"allDayEventsForDay.length > 0\" class=\"sl-border-b sl-border-gray-200 dark:sl-border-slate-700 sl-bg-gray-50 dark:sl-bg-slate-800 sl-px-4 sl-py-2\">\n <div class=\"sl-flex sl-items-center sl-gap-2\">\n <span class=\"sl-text-xs sl-font-medium sl-text-gray-500 dark:sl-text-slate-400 sl-w-12 sl-flex-none\">All day</span>\n <div class=\"sl-flex sl-flex-wrap sl-gap-1\">\n <button \n v-for=\"event in allDayEventsForDay\" \n :key=\"'allday-' + event.id\"\n class=\"sl-px-2 sl-py-1 sl-rounded sl-text-xs sl-font-medium sl-truncate sl-max-w-[200px] hover:sl-opacity-80\"\n :style=\"{ \n backgroundColor: event.ratePlanColor || '#dbeafe', \n color: event.ratePlanColor ? '#fff' : '#1e40af' \n }\"\n :title=\"event.name\"\n @click=\"handleSelectEvent(event.id)\"\n >\n {{ event.name }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"sl-flex sl-flex-auto\">\n <!-- Time gutter -->\n <div class=\"sl-w-14 sl-flex-none sl-bg-white dark:sl-bg-slate-900 sl-ring-1 sl-ring-gray-100 dark:sl-ring-slate-700\" />\n \n <div class=\"sl-grid sl-flex-auto sl-grid-cols-1 sl-grid-rows-1 sl-relative\">\n <!-- Hour grid -->\n <div \n class=\"sl-col-start-1 sl-col-end-2 sl-row-start-1 sl-grid sl-divide-y sl-divide-gray-100 dark:sl-divide-slate-800\" \n style=\"grid-template-rows: repeat(48, minmax(3.5rem, 1fr))\"\n >\n <div ref=\"containerOffset\" class=\"sl-row-end-1 sl-h-7\" />\n <template v-for=\"hour in hours\" :key=\"hour\">\n <div class=\"sl-relative\">\n <div class=\"sl-sticky sl-left-0 sl-z-20 sl--ml-14 sl--mt-2.5 sl-w-14 sl-pr-2 sl-text-right sl-text-xs sl-leading-5 sl-text-gray-400 dark:sl-text-slate-500\">\n {{ hour }}\n </div>\n </div>\n <div />\n </template>\n </div>\n\n <!-- Current Time Indicator -->\n <div \n v-if=\"showCurrentTimeIndicator\" \n ref=\"currentTimeIndicator\"\n class=\"sl-absolute sl-left-0 sl-right-0 sl-pointer-events-none sl-z-40\"\n :style=\"currentTimeIndicatorStyle\"\n >\n <div class=\"sl-relative sl-flex sl-items-center\">\n <!-- Time bubble -->\n <div class=\"sl-absolute sl--left-14 sl--top-2.5 sl-flex sl-items-center sl-justify-end sl-w-14 sl-pr-1\">\n <span class=\"sl-bg-red-500 sl-text-white sl-text-[10px] sl-font-medium sl-px-1.5 sl-py-0.5 sl-rounded-full sl-shadow-sm\">\n {{ currentTimeDisplay }}\n </span>\n </div>\n <!-- Red dot -->\n <div class=\"sl-w-2.5 sl-h-2.5 sl-bg-red-500 sl-rounded-full sl--ml-1 sl-shadow-sm\" />\n <!-- Red line -->\n <div class=\"sl-flex-1 sl-h-0.5 sl-bg-red-500 sl-shadow-sm\" />\n </div>\n </div>\n\n <!-- Events -->\n <ol \n class=\"sl-col-end-2 sl-row-start-1 sl-grid sl-grid-cols-1 sl-relative\" \n style=\"grid-template-rows: 1.75rem repeat(288, minmax(0, 1fr)) auto\"\n >\n <!-- Timed events with overlap handling -->\n <li \n v-for=\"placed in placedEvents.placed\" \n :key=\"placed.id\" \n class=\"sl-absolute sl-mt-px\" \n :style=\"{\n ...getEventStyle(placed),\n top: `calc(1.75rem + ${((placed.clampedStart.getHours() * 60 + placed.clampedStart.getMinutes()) / 1440) * 100}% * (288 / 100))`,\n height: `calc(${calculateGridSpan(placed.clampedStart.toISOString(), placed.clampedEnd.toISOString())} * (100% - 1.75rem) / 288)`\n }\"\n >\n <button \n @click=\"handleSelectEvent(placed.id)\" \n class=\"sl-justify-start sl-group sl-absolute sl-inset-1 sl-flex sl-flex-col sl-overflow-y-auto sl-rounded-lg sl-p-2 sl-text-xs sl-leading-5 hover:sl-opacity-90\"\n :style=\"{ \n backgroundColor: placed.ratePlanColor ? `${placed.ratePlanColor}20` : '#dbeafe',\n borderLeft: placed.ratePlanColor ? `3px solid ${placed.ratePlanColor}` : '3px solid #3b82f6'\n }\"\n >\n <p class=\"sl-order-1 sl-font-semibold\" :style=\"{ color: placed.ratePlanColor || '#1d4ed8' }\">\n {{ placed.name }}\n </p>\n <p class=\"sl-text-gray-600 dark:sl-text-slate-300 group-hover:sl-text-gray-800 dark:group-hover:sl-text-slate-100\">\n <time :datetime=\"placed.datetime\">{{ formatTime(placed.datetime) }}</time>\n <span v-if=\"placed.endTime?.dateTime\"> – {{ formatTime(placed.endTime.dateTime) }}</span>\n <span v-if=\"placed.startTime?.shortTimeZone\"> {{ placed.startTime.shortTimeZone }}</span>\n </p>\n <p v-if=\"!placed.isStartDay\" class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-italic\">\n (continues from previous day)\n </p>\n <p v-if=\"!placed.isEndDay\" class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400 sl-italic\">\n (continues to next day)\n </p>\n </button>\n </li>\n \n <!-- Overflow indicator -->\n <li v-if=\"placedEvents.overflow > 0\" class=\"sl-absolute sl-top-2 sl-right-2\">\n <span class=\"sl-text-xs sl-font-medium sl-text-stachelock-700 dark:sl-text-stachelock-300 sl-bg-stachelock-100 dark:sl-bg-stachelock-900 sl-px-2 sl-py-1 sl-rounded-full\">\n +{{ placedEvents.overflow }} more\n </span>\n </li>\n </ol>\n </div>\n </div>\n </div>\n \n <!-- Side panel placeholder (for mini calendar) -->\n <div class=\"md:sl-block sl-hidden sl-w-1/2 sl-max-w-md sl-flex-none sl-border-l sl-border-gray-100 dark:sl-border-slate-700 sl-px-8 sl-py-10\">\n <slot name=\"sidebar\">\n <!-- Default: mini month calendar would go here -->\n <div class=\"sl-text-center sl-text-gray-500 dark:sl-text-slate-400 sl-text-sm\">\n <p class=\"sl-font-medium\">Mini Calendar</p>\n <p class=\"sl-mt-1 sl-text-xs\">Pass a month calendar in the sidebar slot</p>\n </div>\n </slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, onMounted, onUnmounted, nextTick } from 'vue';\nimport type { CalendarDay, PlacedEvent } from '@/utils/calendar';\nimport { calculateGridSpan, formatTime, isAllDayEvent, calculateEventPlacement } from '@/utils/calendar';\n\nconst props = defineProps<{ days: Array<CalendarDay> }>();\nconst emit = defineEmits(['selectDay', 'select:event']);\n\nconst container = ref<HTMLElement | null>(null);\nconst containerNav = ref<HTMLElement | null>(null);\nconst containerOffset = ref<HTMLElement | null>(null);\nconst currentTimeIndicator = ref<HTMLElement | null>(null);\nconst activeDay = ref<CalendarDay | null>(null);\n\n// Current time tracking\nconst currentTime = ref(new Date());\nlet timeUpdateInterval: ReturnType<typeof setInterval> | null = null;\n\nconst hours = [\n '12AM','1AM','2AM','3AM','4AM','5AM','6AM','7AM','8AM','9AM','10AM','11AM',\n '12PM','1PM','2PM','3PM','4PM','5PM','6PM','7PM','8PM','9PM','10PM','11PM'\n];\n\n// Check if a day is today\nconst isDayToday = (day: CalendarDay): boolean => {\n const today = new Date();\n const todayStr = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`;\n return day.date === todayStr;\n};\n\nconst isActiveDay = (day: CalendarDay) => activeDay.value === day;\n\n// Show current time indicator only if viewing today\nconst showCurrentTimeIndicator = computed(() => {\n return filteredDays.value.some(day => isDayToday(day));\n});\n\n// Current time display\nconst currentTimeDisplay = computed(() => {\n const hours = currentTime.value.getHours();\n const minutes = currentTime.value.getMinutes();\n const displayHours = hours % 12 || 12;\n return `${displayHours}:${String(minutes).padStart(2, '0')}`;\n});\n\n// Calculate position of current time indicator\nconst currentTimeIndicatorStyle = computed(() => {\n const now = currentTime.value;\n const totalMinutes = now.getHours() * 60 + now.getMinutes();\n \n const offsetPx = 28;\n const rowHeightRem = 3.5;\n const totalRows = 48;\n \n const percentOfDay = totalMinutes / 1440;\n \n return {\n top: `calc(${offsetPx}px + ${percentOfDay} * ${totalRows} * ${rowHeightRem}rem)`\n };\n});\n\nconst setActiveDay = (day: CalendarDay) => { \n activeDay.value = day; \n emit('selectDay', day); \n};\n\nconst handleSelectEvent = (eventId: string | number) => emit('select:event', eventId);\n\nconst filteredDays = computed(() => activeDay.value ? [activeDay.value] : props.days);\n\n// Separate all-day events from timed events\nconst allDayEventsForDay = computed(() => {\n const day = filteredDays.value[0];\n if (!day?.events) return [];\n return day.events.filter(event => isAllDayEvent(event));\n});\n\nconst timedEventsForDay = computed(() => {\n const day = filteredDays.value[0];\n if (!day?.events) return [];\n return day.events.filter(event => !isAllDayEvent(event));\n});\n\n// Calculate placed events with overlap handling\nconst placedEvents = computed(() => {\n const day = filteredDays.value[0];\n if (!day) return { placed: [], overflow: 0 };\n return calculateEventPlacement(day.date, timedEventsForDay.value, 4);\n});\n\n// Get width and position for an event\nconst getEventStyle = (event: PlacedEvent) => {\n const width = 100 / event.totalColumns;\n const left = event.column * width;\n return {\n left: `${left}%`,\n width: `${width}%`,\n };\n};\n\n// Scroll to current time\nconst scrollToCurrentTime = () => {\n const containerElement = container.value;\n const containerNavElement = containerNav.value;\n \n if (!containerElement) return;\n \n const now = new Date();\n const currentMinute = now.getHours() * 60 + now.getMinutes();\n \n const scrollableHeight = containerElement.scrollHeight - (containerNavElement?.offsetHeight || 0);\n const targetPosition = (scrollableHeight * currentMinute) / 1440;\n const offsetForVisibility = containerElement.clientHeight / 3;\n \n containerElement.scrollTo({\n top: Math.max(0, targetPosition - offsetForVisibility),\n behavior: 'smooth'\n });\n};\n\n// Start time updates\nconst startTimeUpdates = () => {\n timeUpdateInterval = setInterval(() => {\n currentTime.value = new Date();\n }, 60000);\n \n const now = new Date();\n const msUntilNextMinute = (60 - now.getSeconds()) * 1000 - now.getMilliseconds();\n setTimeout(() => {\n currentTime.value = new Date();\n if (timeUpdateInterval) {\n clearInterval(timeUpdateInterval);\n }\n timeUpdateInterval = setInterval(() => {\n currentTime.value = new Date();\n }, 60000);\n }, msUntilNextMinute);\n};\n\nonMounted(async () => {\n startTimeUpdates();\n \n await nextTick();\n setTimeout(() => {\n scrollToCurrentTime();\n }, 100);\n});\n\nonUnmounted(() => {\n if (timeUpdateInterval) {\n clearInterval(timeUpdateInterval);\n timeUpdateInterval = null;\n }\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["props","__props","emit","__emit","container","ref","containerNav","containerOffset","currentTimeIndicator","activeDay","currentTime","timeUpdateInterval","hours","isDayToday","day","today","todayStr","isActiveDay","showCurrentTimeIndicator","computed","filteredDays","currentTimeDisplay","minutes","currentTimeIndicatorStyle","now","totalMinutes","offsetPx","rowHeightRem","totalRows","percentOfDay","setActiveDay","handleSelectEvent","eventId","allDayEventsForDay","event","isAllDayEvent","timedEventsForDay","placedEvents","calculateEventPlacement","getEventStyle","width","scrollToCurrentTime","containerElement","containerNavElement","currentMinute","targetPosition","offsetForVisibility","startTimeUpdates","msUntilNextMinute","onMounted","nextTick","onUnmounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_Fragment","_renderList","$event","_toDisplayString","_hoisted_4","_hoisted_5","_cache","_hoisted_6","_normalizeStyle","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","hour","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","placed","_unref","calculateGridSpan","_hoisted_18","formatTime","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_renderSlot","_ctx"],"mappings":"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"}