@stachelock/ui 0.5.5 → 0.6.2
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.
- package/README.md +118 -5
- package/dist/AddDeleteButtonGroup.vue_vue_type_script_setup_true_lang-6taLcPq0.js +77 -0
- package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js → AlertModal.vue_vue_type_script_setup_true_lang-DzhVQdx4.js} +45 -65
- package/dist/BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js +0 -1
- package/dist/BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js +0 -1
- package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js → BaseModal.vue_vue_type_script_setup_true_lang--iGzFCnC.js} +42 -44
- package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-CkSUiLOH.js → CalendarHeader.vue_vue_type_script_setup_true_lang-hGa2MLyo.js} +114 -141
- package/dist/CardWrapper.vue_vue_type_script_setup_true_lang-D59QBAi9.js +0 -1
- package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js +0 -1
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-BigvbBAU.js +331 -0
- package/dist/ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js +0 -1
- package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js → DashboardLayout.vue_vue_type_script_setup_true_lang-BAx4gKqh.js} +44 -47
- package/dist/{DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js → DatepickerInput.vue_vue_type_style_index_0_lang-DbI3619T.js} +23 -24
- package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js → DayCalendar.vue_vue_type_script_setup_true_lang-D-4jcUvI.js} +1 -2
- package/dist/DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js +0 -1
- package/dist/DisclosureWrapper.vue_vue_type_script_setup_true_lang-CgHPOC-w.js +35 -0
- package/dist/{DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js → DynamicForm.vue_vue_type_script_setup_true_lang-BR8Pq7Kw.js} +52 -53
- package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js → DynamicFormField.vue_vue_type_script_setup_true_lang-BCVmqg_n.js} +7 -8
- package/dist/EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js +0 -1
- package/dist/EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js +0 -1
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-7mcKkOWP.js +0 -1
- package/dist/EventCard.vue_vue_type_script_setup_true_lang-B3TP-mWX.js +74 -0
- package/dist/EventsList.vue_vue_type_script_setup_true_lang-BTIoGr_e.js +87 -0
- package/dist/FileDropzoneInput.vue_vue_type_script_setup_true_lang-BJR-_ngq.js +176 -0
- package/dist/{FormErrorWrapper.vue_vue_type_script_setup_true_lang-BQOlG_ab.js → FormErrorWrapper.vue_vue_type_script_setup_true_lang-D7ZAgfPs.js} +12 -13
- package/dist/FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js +0 -1
- package/dist/HeaderLayout.vue_vue_type_script_setup_true_lang-BY2G6hCc.js +0 -1
- package/dist/HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js +0 -1
- package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js → InlineTabs.vue_vue_type_script_setup_true_lang-B5w4yzcZ.js} +1 -2
- package/dist/LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js +0 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js → LottieAnimation.vue_vue_type_script_setup_true_lang-C0R4ADBb.js} +1 -2
- package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js → MonthCalendar.vue_vue_type_style_index_0_lang-lnKkvJ9u.js} +1 -2
- package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js +0 -1
- package/dist/NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js +0 -1
- package/dist/{NotificationContainer.vue_vue_type_style_index_0_lang-DSfNw4Ge.js → NotificationContainer.vue_vue_type_style_index_0_lang-CvJRwezr.js} +1 -2
- package/dist/{NotificationToast.vue_vue_type_script_setup_true_lang-CU__ORw8.js → NotificationToast.vue_vue_type_script_setup_true_lang-BBWpW4km.js} +61 -64
- package/dist/PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js +0 -1
- package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-CKCoHD1o.js +0 -1
- package/dist/ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js +0 -1
- package/dist/{SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js → SelectInput.vue_vue_type_script_setup_true_lang-D4GNv0MY.js} +56 -58
- package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js → SelectTextInput.vue_vue_type_script_setup_true_lang-BVaViHPl.js} +66 -69
- package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js → SidebarLayout.vue_vue_type_script_setup_true_lang-CZ21EVcZ.js} +36 -39
- package/dist/SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js +0 -1
- package/dist/StatCard.vue_vue_type_script_setup_true_lang-B5SuaSXL.js +66 -0
- package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js → StepperPanels.vue_vue_type_script_setup_true_lang-DPLQ9mQn.js} +34 -49
- package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-D5Es9AjF.js +200 -0
- package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js → SwitchInputGroup.vue_vue_type_script_setup_true_lang-DigNYqVZ.js} +1 -2
- package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js → TabGroup.vue_vue_type_script_setup_true_lang-BsbiEA4E.js} +19 -20
- package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js → TabGroupUnderline.vue_vue_type_script_setup_true_lang-CPcp1-Za.js} +21 -22
- package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js → TabsInPills.vue_vue_type_script_setup_true_lang-U5CdRL7s.js} +1 -2
- package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js → TagifyInput.vue_vue_type_script_setup_true_lang-BF2mK8JC.js} +14 -15
- package/dist/TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js +0 -1
- package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js +0 -1
- package/dist/UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js +0 -1
- package/dist/UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js +0 -1
- package/dist/UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js +0 -1
- package/dist/UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js +0 -1
- package/dist/{UiMapAll.vue_vue_type_script_setup_true_lang-CMAyvJMk.js → UiMapAll.vue_vue_type_script_setup_true_lang-11yT7mTH.js} +93 -111
- package/dist/UiMenu.vue_vue_type_script_setup_true_lang-gnoIJm6x.js +127 -0
- package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js → UiModal.vue_vue_type_script_setup_true_lang-BZC7aN7K.js} +41 -43
- package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js → UiNavLink.vue_vue_type_script_setup_true_lang-C5Gicm8o.js} +4 -5
- package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js +0 -1
- package/dist/UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js +0 -1
- package/dist/UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js +0 -1
- package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js +0 -1
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -1
- package/dist/calendar-DLry-Vik.js +147 -0
- package/dist/calendars/CalendarDashboard.js +3 -4
- package/dist/calendars/CalendarHeader.js +1 -2
- package/dist/calendars/DayCalendar.js +1 -2
- package/dist/calendars/EventCard.js +1 -2
- package/dist/calendars/EventsList.js +1 -2
- package/dist/calendars/MonthCalendar.js +1 -2
- package/dist/calendars/WeekCalendar.js +1 -2
- package/dist/calendars/YearCalendar.js +0 -1
- package/dist/charts/BarChart.js +0 -1
- package/dist/charts/BaseChart.js +42 -59
- package/dist/charts/FunnelChart.js +0 -1
- package/dist/charts/LineChart.js +0 -1
- package/dist/charts/PieChart.js +0 -1
- package/dist/charts/SparklineChart.js +0 -1
- package/dist/charts/StatCard.js +1 -2
- package/dist/charts/chartTheme.js +0 -1
- package/dist/charts/index.js +1 -2
- package/dist/components/Avatar.js +0 -1
- package/dist/components/Badge.js +0 -1
- package/dist/components/Banner.js +178 -351
- package/dist/components/Breadcrumb.js +41 -42
- package/dist/components/Button.js +0 -1
- package/dist/components/ButtonGroup.js +0 -1
- package/dist/components/Checkbox.js +0 -1
- package/dist/components/CloudinaryImage.js +51 -81
- package/dist/components/Loading.js +0 -1
- package/dist/components/LoadingDots.js +0 -1
- package/dist/components/LottieAnimation.js +1 -2
- package/dist/components/Menu.js +1 -2
- package/dist/components/Modal.js +1 -2
- package/dist/components/NavLink.js +1 -2
- package/dist/components/ProgressBar.js +0 -1
- package/dist/components/RadialProgressBar.js +0 -1
- package/dist/components/Table.js +0 -1
- package/dist/components/Transition.js +0 -1
- package/dist/composables/index.js +33 -31
- package/dist/composables/useCalendar.js +1 -2
- package/dist/composables/useFormValidation.js +0 -1
- package/dist/composables/useMap.js +3 -3
- package/dist/composables/useModal.js +0 -1
- package/dist/composables/useNotifications.js +0 -1
- package/dist/composables/useTabs.js +87 -193
- package/dist/composables/useTheme.js +0 -1
- package/dist/empty-state/ComingSoon.js +0 -1
- package/dist/empty-state/EmptyState.js +0 -1
- package/dist/empty-state/index.js +0 -1
- package/dist/forms/DynamicForm.js +1 -2
- package/dist/forms/DynamicFormField.js +1 -2
- package/dist/forms/FormFieldWrapper.js +7 -8
- package/dist/id-DafBB_QF.js +0 -1
- package/dist/index.js +2652 -790
- package/dist/inputs/AddDeleteButtonGroup.js +1 -2
- package/dist/inputs/CheckboxInput.js +0 -1
- package/dist/inputs/ComboboxInput.js +1 -2
- package/dist/inputs/DatepickerInput.js +1 -2
- package/dist/inputs/EmailInput.js +0 -1
- package/dist/inputs/EmptyInput.js +0 -1
- package/dist/inputs/FileDropzoneInput.js +1 -2
- package/dist/inputs/HiddenInput.js +0 -1
- package/dist/inputs/PhoneInput.js +371 -3539
- package/dist/inputs/RichTextInput.js +235 -17298
- package/dist/inputs/SelectInput.js +1 -2
- package/dist/inputs/SelectTextInput.js +1 -2
- package/dist/inputs/SwitchInput.js +1 -2
- package/dist/inputs/SwitchInputGroup.js +1 -2
- package/dist/inputs/TagifyInput.js +1 -2
- package/dist/inputs/TextAreaInput.js +0 -1
- package/dist/inputs/TextInput.js +7 -8
- package/dist/layouts/DashboardLayout.js +1 -2
- package/dist/layouts/DefaultLayout.js +0 -1
- package/dist/layouts/HeaderLayout.js +0 -1
- package/dist/layouts/NavigationGroup.js +0 -1
- package/dist/layouts/NavigationItem.js +0 -1
- package/dist/layouts/ProfileHeaderAvatar.js +0 -1
- package/dist/layouts/ProjectLogo.js +0 -1
- package/dist/layouts/SidebarLayout.js +1 -2
- package/dist/loading/ContentSkeleton.js +0 -1
- package/dist/loading/SmartLoadingIndicator.js +0 -1
- package/dist/loading/index.js +0 -1
- package/dist/mapThemes-DFE9fZm3.js +0 -1
- package/dist/maps/GoogleMap.js +13 -14
- package/dist/maps/UiInfoWindow.js +41 -43
- package/dist/maps/UiMap.js +28 -31
- package/dist/maps/UiMapAll.js +1 -2
- package/dist/maps/UiMapMarker.js +1 -2
- package/dist/maps/index.js +1 -2
- package/dist/modals/AlertModal.js +1 -2
- package/dist/modals/BaseModal.js +1 -2
- package/dist/modals/ImageCropperModal.js +130 -1666
- package/dist/notifications/NotificationContainer.js +1 -2
- package/dist/notifications/NotificationToast.js +1 -2
- package/dist/notifications/index.js +2 -3
- package/dist/src/components/UiBanner.d.ts +1 -1
- package/dist/src/components/UiLoadingDots.d.ts +1 -1
- package/dist/src/components/UiMenu.d.ts +1 -1
- package/dist/src/components/UiModal.d.ts +1 -1
- package/dist/src/components/collection-editor/CollectionItemList.d.ts +42 -0
- package/dist/src/components/collection-editor/OrganizationsEditor.d.ts +29 -0
- package/dist/src/components/collection-editor/RelatedNamesEditor.d.ts +26 -0
- package/dist/src/components/collection-editor/SocialLinksEditor.d.ts +26 -0
- package/dist/src/components/collection-editor/index.d.ts +5 -0
- package/dist/src/components/forms/FormFieldWrapper.d.ts +1 -1
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/components/inputs/AddressInput.d.ts +40 -0
- package/dist/src/components/inputs/ComboboxInput.d.ts +2 -2
- package/dist/src/components/inputs/DatepickerInput.d.ts +19 -19
- package/dist/src/components/inputs/EmailInput.d.ts +2 -2
- package/dist/src/components/inputs/PhoneInput.d.ts +2 -2
- package/dist/src/components/inputs/RichTextInput.d.ts +2 -2
- package/dist/src/components/inputs/SelectInput.d.ts +2 -2
- package/dist/src/components/inputs/SelectTextInput.d.ts +4 -4
- package/dist/src/components/inputs/TagifyInput.d.ts +2 -2
- package/dist/src/components/inputs/TextInput.d.ts +3 -3
- package/dist/src/components/inputs/index.d.ts +1 -0
- package/dist/src/components/layouts/CardLayout.d.ts +1 -1
- package/dist/src/components/maps/UiInfoWindow.d.ts +2 -2
- package/dist/src/components/maps/UiMap.d.ts +2 -2
- package/dist/src/components/maps/UiMapAll.d.ts +10 -10
- package/dist/src/components/maps/UiMapMarker.d.ts +2 -2
- package/dist/src/components/modals/BaseModal.d.ts +1 -1
- package/dist/src/components/profiles/BentoProfileLayout.d.ts +9 -0
- package/dist/src/components/profiles/ProfileCard.d.ts +30 -0
- package/dist/src/components/profiles/ProfileContactCard.d.ts +12 -0
- package/dist/src/components/profiles/ProfileHeaderCard.d.ts +20 -0
- package/dist/src/components/profiles/ProfileLocationCard.d.ts +17 -0
- package/dist/src/components/profiles/ProfileOrganizationsCard.d.ts +11 -0
- package/dist/src/components/profiles/ProfilePersonalCard.d.ts +10 -0
- package/dist/src/components/profiles/ProfileProfessionalCard.d.ts +11 -0
- package/dist/src/components/profiles/ProfileRelatedNamesCard.d.ts +11 -0
- package/dist/src/components/profiles/index.d.ts +9 -0
- package/dist/src/composables/index.d.ts +1 -0
- package/dist/src/composables/useCollectionEditor.d.ts +64 -0
- package/dist/src/composables/useNotifications.d.ts +4 -4
- package/dist/src/plugin/configure.d.ts +3 -1
- package/dist/src/services/geocoding.service.d.ts +68 -0
- package/dist/src/services/index.d.ts +1 -0
- package/dist/src/types/address.d.ts +164 -0
- package/dist/src/types/collection-editor.d.ts +134 -0
- package/dist/src/types/index.d.ts +3 -0
- package/dist/src/types/profiles.d.ts +149 -0
- package/dist/src/views/inputs/index.d.ts +1 -0
- package/dist/stepper/StepperPanels.js +1 -2
- package/dist/stepper/index.js +1 -2
- package/dist/style.css +1 -1
- package/dist/tabs/InlineTabs.js +1 -2
- package/dist/tabs/TabGroup.js +1 -2
- package/dist/tabs/TabGroupUnderline.js +1 -2
- package/dist/tabs/TabsInPills.js +1 -2
- package/dist/tabs/index.js +4 -5
- package/dist/ui.css +1 -1
- package/dist/useCollectionEditor-BYyoAT0U.js +121 -0
- package/dist/useEventSegments-B-r_8zCW.js +0 -1
- package/dist/useMap-BGg0H582.js +297 -0
- package/dist/useSimpleTabs-CSgkChEU.js +0 -1
- package/dist/useStringTransform-CSr7nZWg.js +0 -1
- package/dist/wrappers/BackgroundGradientWrapper.js +0 -1
- package/dist/wrappers/CardWrapper.js +0 -1
- package/dist/wrappers/DisclosureWrapper.js +1 -2
- package/dist/wrappers/FormErrorWrapper.js +1 -2
- package/dist/wrappers/index.js +2 -3
- package/package.json +9 -1
- package/dist/AddDeleteButtonGroup.vue_vue_type_script_setup_true_lang-CFS3lVF-.js +0 -128
- package/dist/AddDeleteButtonGroup.vue_vue_type_script_setup_true_lang-CFS3lVF-.js.map +0 -1
- package/dist/AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js.map +0 -1
- package/dist/BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js.map +0 -1
- package/dist/BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js.map +0 -1
- package/dist/Bars3Icon-BdOqcGcY.js +0 -22
- package/dist/Bars3Icon-BdOqcGcY.js.map +0 -1
- package/dist/BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js.map +0 -1
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-CkSUiLOH.js.map +0 -1
- package/dist/CardWrapper.vue_vue_type_script_setup_true_lang-D59QBAi9.js.map +0 -1
- package/dist/CheckIcon-BGlsmVwT.js +0 -20
- package/dist/CheckIcon-BGlsmVwT.js.map +0 -1
- package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js.map +0 -1
- package/dist/ChevronRightIcon-DkUqw988.js +0 -20
- package/dist/ChevronRightIcon-DkUqw988.js.map +0 -1
- package/dist/ChevronUpDownIcon-Bq_fsgrb.js +0 -20
- package/dist/ChevronUpDownIcon-Bq_fsgrb.js.map +0 -1
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-kEj-NYqm.js +0 -1362
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-kEj-NYqm.js.map +0 -1
- package/dist/ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js.map +0 -1
- package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js.map +0 -1
- package/dist/DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js.map +0 -1
- package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js.map +0 -1
- package/dist/DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js.map +0 -1
- package/dist/DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js +0 -138
- package/dist/DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js.map +0 -1
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js.map +0 -1
- package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js.map +0 -1
- package/dist/EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js.map +0 -1
- package/dist/EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js.map +0 -1
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-7mcKkOWP.js.map +0 -1
- package/dist/EventCard.vue_vue_type_script_setup_true_lang-j1mtKShZ.js +0 -136
- package/dist/EventCard.vue_vue_type_script_setup_true_lang-j1mtKShZ.js.map +0 -1
- package/dist/EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js +0 -102
- package/dist/EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js.map +0 -1
- package/dist/ExclamationCircleIcon-DjxYk45_.js +0 -22
- package/dist/ExclamationCircleIcon-DjxYk45_.js.map +0 -1
- package/dist/ExclamationCircleIcon-DmL8Wwjo.js +0 -36
- package/dist/ExclamationCircleIcon-DmL8Wwjo.js.map +0 -1
- package/dist/ExclamationTriangleIcon-BNKYmV_J.js +0 -22
- package/dist/ExclamationTriangleIcon-BNKYmV_J.js.map +0 -1
- package/dist/FileDropzoneInput.vue_vue_type_script_setup_true_lang-CclXceTb.js +0 -211
- package/dist/FileDropzoneInput.vue_vue_type_script_setup_true_lang-CclXceTb.js.map +0 -1
- package/dist/FormErrorWrapper.vue_vue_type_script_setup_true_lang-BQOlG_ab.js.map +0 -1
- package/dist/FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js.map +0 -1
- package/dist/HeaderLayout.vue_vue_type_script_setup_true_lang-BY2G6hCc.js.map +0 -1
- package/dist/HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js.map +0 -1
- package/dist/InformationCircleIcon-B322GNIt.js +0 -40
- package/dist/InformationCircleIcon-B322GNIt.js.map +0 -1
- package/dist/InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js.map +0 -1
- package/dist/LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js.map +0 -1
- package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js.map +0 -1
- package/dist/MapPinIcon-CSTDUZnD.js +0 -27
- package/dist/MapPinIcon-CSTDUZnD.js.map +0 -1
- package/dist/MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js.map +0 -1
- package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js.map +0 -1
- package/dist/NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js.map +0 -1
- package/dist/NotificationContainer.vue_vue_type_style_index_0_lang-DSfNw4Ge.js.map +0 -1
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-CU__ORw8.js.map +0 -1
- package/dist/PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js.map +0 -1
- package/dist/PlusIcon-aDFVlB90.js +0 -40
- package/dist/PlusIcon-aDFVlB90.js.map +0 -1
- package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-CKCoHD1o.js.map +0 -1
- package/dist/ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js.map +0 -1
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js.map +0 -1
- package/dist/SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js.map +0 -1
- package/dist/SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js.map +0 -1
- package/dist/SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js.map +0 -1
- package/dist/StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js +0 -111
- package/dist/StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js.map +0 -1
- package/dist/StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js.map +0 -1
- package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js +0 -280
- package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js.map +0 -1
- package/dist/SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js.map +0 -1
- package/dist/TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js.map +0 -1
- package/dist/TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js.map +0 -1
- package/dist/TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js.map +0 -1
- package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js.map +0 -1
- package/dist/TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js.map +0 -1
- package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js.map +0 -1
- package/dist/UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js.map +0 -1
- package/dist/UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js.map +0 -1
- package/dist/UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js.map +0 -1
- package/dist/UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js.map +0 -1
- package/dist/UiMapAll.vue_vue_type_script_setup_true_lang-CMAyvJMk.js.map +0 -1
- package/dist/UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js +0 -330
- package/dist/UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js.map +0 -1
- package/dist/UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js.map +0 -1
- package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js.map +0 -1
- package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js.map +0 -1
- package/dist/UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js.map +0 -1
- package/dist/UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js.map +0 -1
- package/dist/XMarkIcon-Cwy3T6p8.js +0 -22
- package/dist/XMarkIcon-Cwy3T6p8.js.map +0 -1
- package/dist/XMarkIcon-DNvCkiOy.js +0 -16
- package/dist/XMarkIcon-DNvCkiOy.js.map +0 -1
- package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js.map +0 -1
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js.map +0 -1
- package/dist/active-element-history-BTBNVIJN.js +0 -17
- package/dist/active-element-history-BTBNVIJN.js.map +0 -1
- package/dist/calculate-active-index-Dim3sT-5.js +0 -55
- package/dist/calculate-active-index-Dim3sT-5.js.map +0 -1
- package/dist/calendar-BlSSD4nO.js +0 -575
- package/dist/calendar-BlSSD4nO.js.map +0 -1
- package/dist/calendars/CalendarDashboard.js.map +0 -1
- package/dist/calendars/CalendarHeader.js.map +0 -1
- package/dist/calendars/DayCalendar.js.map +0 -1
- package/dist/calendars/EventCard.js.map +0 -1
- package/dist/calendars/EventsList.js.map +0 -1
- package/dist/calendars/MonthCalendar.js.map +0 -1
- package/dist/calendars/WeekCalendar.js.map +0 -1
- package/dist/calendars/YearCalendar.js.map +0 -1
- package/dist/charts/BarChart.js.map +0 -1
- package/dist/charts/BaseChart.js.map +0 -1
- package/dist/charts/FunnelChart.js.map +0 -1
- package/dist/charts/LineChart.js.map +0 -1
- package/dist/charts/PieChart.js.map +0 -1
- package/dist/charts/SparklineChart.js.map +0 -1
- package/dist/charts/StatCard.js.map +0 -1
- package/dist/charts/chartTheme.js.map +0 -1
- package/dist/charts/index.js.map +0 -1
- package/dist/components/Avatar.js.map +0 -1
- package/dist/components/Badge.js.map +0 -1
- package/dist/components/Banner.js.map +0 -1
- package/dist/components/Breadcrumb.js.map +0 -1
- package/dist/components/Button.js.map +0 -1
- package/dist/components/ButtonGroup.js.map +0 -1
- package/dist/components/Checkbox.js.map +0 -1
- package/dist/components/CloudinaryImage.js.map +0 -1
- package/dist/components/Loading.js.map +0 -1
- package/dist/components/LoadingDots.js.map +0 -1
- package/dist/components/LottieAnimation.js.map +0 -1
- package/dist/components/Menu.js.map +0 -1
- package/dist/components/Modal.js.map +0 -1
- package/dist/components/NavLink.js.map +0 -1
- package/dist/components/ProgressBar.js.map +0 -1
- package/dist/components/RadialProgressBar.js.map +0 -1
- package/dist/components/Table.js.map +0 -1
- package/dist/components/Transition.js.map +0 -1
- package/dist/composables/index.js.map +0 -1
- package/dist/composables/useCalendar.js.map +0 -1
- package/dist/composables/useFormValidation.js.map +0 -1
- package/dist/composables/useMap.js.map +0 -1
- package/dist/composables/useModal.js.map +0 -1
- package/dist/composables/useNotifications.js.map +0 -1
- package/dist/composables/useTabs.js.map +0 -1
- package/dist/composables/useTheme.js.map +0 -1
- package/dist/description-C7cRw0tq.js +0 -30
- package/dist/description-C7cRw0tq.js.map +0 -1
- package/dist/dialog-BJ2Ld8l3.js +0 -499
- package/dist/dialog-BJ2Ld8l3.js.map +0 -1
- package/dist/empty-state/ComingSoon.js.map +0 -1
- package/dist/empty-state/EmptyState.js.map +0 -1
- package/dist/empty-state/index.js.map +0 -1
- package/dist/env-BZfPsfnF.js +0 -29
- package/dist/env-BZfPsfnF.js.map +0 -1
- package/dist/form-f8yP4kN-.js +0 -35
- package/dist/form-f8yP4kN-.js.map +0 -1
- package/dist/forms/DynamicForm.js.map +0 -1
- package/dist/forms/DynamicFormField.js.map +0 -1
- package/dist/forms/FormFieldWrapper.js.map +0 -1
- package/dist/hidden-BSRluD1y.js +0 -15
- package/dist/hidden-BSRluD1y.js.map +0 -1
- package/dist/id-DafBB_QF.js.map +0 -1
- package/dist/index-Dca39bYA.js +0 -2167
- package/dist/index-Dca39bYA.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/inputs/AddDeleteButtonGroup.js.map +0 -1
- package/dist/inputs/CheckboxInput.js.map +0 -1
- package/dist/inputs/ComboboxInput.js.map +0 -1
- package/dist/inputs/DatepickerInput.js.map +0 -1
- package/dist/inputs/EmailInput.js.map +0 -1
- package/dist/inputs/EmptyInput.js.map +0 -1
- package/dist/inputs/FileDropzoneInput.js.map +0 -1
- package/dist/inputs/HiddenInput.js.map +0 -1
- package/dist/inputs/PhoneInput.js.map +0 -1
- package/dist/inputs/RichTextInput.js.map +0 -1
- package/dist/inputs/SelectInput.js.map +0 -1
- package/dist/inputs/SelectTextInput.js.map +0 -1
- package/dist/inputs/SwitchInput.js.map +0 -1
- package/dist/inputs/SwitchInputGroup.js.map +0 -1
- package/dist/inputs/TagifyInput.js.map +0 -1
- package/dist/inputs/TextAreaInput.js.map +0 -1
- package/dist/inputs/TextInput.js.map +0 -1
- package/dist/keyboard-Dd_2-cFu.js +0 -5
- package/dist/keyboard-Dd_2-cFu.js.map +0 -1
- package/dist/layouts/DashboardLayout.js.map +0 -1
- package/dist/layouts/DefaultLayout.js.map +0 -1
- package/dist/layouts/HeaderLayout.js.map +0 -1
- package/dist/layouts/NavigationGroup.js.map +0 -1
- package/dist/layouts/NavigationItem.js.map +0 -1
- package/dist/layouts/ProfileHeaderAvatar.js.map +0 -1
- package/dist/layouts/ProjectLogo.js.map +0 -1
- package/dist/layouts/SidebarLayout.js.map +0 -1
- package/dist/listbox-YaWWZiiG.js +0 -257
- package/dist/listbox-YaWWZiiG.js.map +0 -1
- package/dist/loading/ContentSkeleton.js.map +0 -1
- package/dist/loading/SmartLoadingIndicator.js.map +0 -1
- package/dist/loading/index.js.map +0 -1
- package/dist/mapThemes-DFE9fZm3.js.map +0 -1
- package/dist/maps/GoogleMap.js.map +0 -1
- package/dist/maps/UiInfoWindow.js.map +0 -1
- package/dist/maps/UiMap.js.map +0 -1
- package/dist/maps/UiMapAll.js.map +0 -1
- package/dist/maps/UiMapMarker.js.map +0 -1
- package/dist/maps/index.js.map +0 -1
- package/dist/micro-task-D-oTY33s.js +0 -9
- package/dist/micro-task-D-oTY33s.js.map +0 -1
- package/dist/modals/AlertModal.js.map +0 -1
- package/dist/modals/BaseModal.js.map +0 -1
- package/dist/modals/ImageCropperModal.js.map +0 -1
- package/dist/notifications/NotificationContainer.js.map +0 -1
- package/dist/notifications/NotificationToast.js.map +0 -1
- package/dist/notifications/index.js.map +0 -1
- package/dist/open-closed-JTEvYTg2.js +0 -19
- package/dist/open-closed-JTEvYTg2.js.map +0 -1
- package/dist/render-QUUPyNjX.js +0 -101
- package/dist/render-QUUPyNjX.js.map +0 -1
- package/dist/stepper/StepperPanels.js.map +0 -1
- package/dist/stepper/index.js.map +0 -1
- package/dist/tabs/InlineTabs.js.map +0 -1
- package/dist/tabs/TabGroup.js.map +0 -1
- package/dist/tabs/TabGroupUnderline.js.map +0 -1
- package/dist/tabs/TabsInPills.js.map +0 -1
- package/dist/tabs/index.js.map +0 -1
- package/dist/tabs-J5phClGv.js +0 -202
- package/dist/tabs-J5phClGv.js.map +0 -1
- package/dist/transition-_rPfnoET.js +0 -191
- package/dist/transition-_rPfnoET.js.map +0 -1
- package/dist/use-outside-click-14T0Zn98.js +0 -151
- package/dist/use-outside-click-14T0Zn98.js.map +0 -1
- package/dist/use-resolve-button-type-h6n-lm9q.js +0 -20
- package/dist/use-resolve-button-type-h6n-lm9q.js.map +0 -1
- package/dist/use-text-value-DKnkjK00.js +0 -44
- package/dist/use-text-value-DKnkjK00.js.map +0 -1
- package/dist/use-tree-walker-Bo9gIb_K.js +0 -16
- package/dist/use-tree-walker-Bo9gIb_K.js.map +0 -1
- package/dist/useEventSegments-B-r_8zCW.js.map +0 -1
- package/dist/useMap-BaZEIoWM.js +0 -525
- package/dist/useMap-BaZEIoWM.js.map +0 -1
- package/dist/useSimpleTabs-CSgkChEU.js.map +0 -1
- package/dist/useStringTransform-CSr7nZWg.js.map +0 -1
- package/dist/vue-datepicker-CEn0-fJj.js +0 -4871
- package/dist/vue-datepicker-CEn0-fJj.js.map +0 -1
- package/dist/vue-router-B3K2xmg_.js +0 -120
- package/dist/vue-router-B3K2xmg_.js.map +0 -1
- package/dist/vue3-lottie.es-DT4qZE-F.js +0 -7981
- package/dist/vue3-lottie.es-DT4qZE-F.js.map +0 -1
- package/dist/wrappers/BackgroundGradientWrapper.js.map +0 -1
- package/dist/wrappers/CardWrapper.js.map +0 -1
- package/dist/wrappers/DisclosureWrapper.js.map +0 -1
- package/dist/wrappers/FormErrorWrapper.js.map +0 -1
- package/dist/wrappers/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxInput.vue_vue_type_script_setup_true_lang-kEj-NYqm.js","sources":["../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../node_modules/@tanstack/virtual-core/dist/esm/index.js","../node_modules/@tanstack/vue-virtual/dist/esm/index.js","../node_modules/@headlessui/vue/dist/hooks/use-disposables.js","../node_modules/@headlessui/vue/dist/hooks/use-frame-debounce.js","../node_modules/@headlessui/vue/dist/mouse.js","../node_modules/@headlessui/vue/dist/components/combobox/combobox.js","../src/components/inputs/ComboboxInput.vue"],"sourcesContent":["function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a, _b, _c;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.currentScrollToIndex = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n this._measureElement(entry.target, entry);\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled, lanes }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMeasuredCacheIndexes = [];\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.currentScrollToIndex = index;\n let attempts = 0;\n const maxAttempts = 10;\n const tryScroll = (currentAlign) => {\n if (!this.targetWindow) return;\n const offsetInfo = this.getOffsetForIndex(index, currentAlign);\n if (!offsetInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n const [offset, align] = offsetInfo;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.targetWindow.requestAnimationFrame(() => {\n const verify = () => {\n if (this.currentScrollToIndex !== index) return;\n const currentOffset = this.getScrollOffset();\n const afterInfo = this.getOffsetForIndex(index, align);\n if (!afterInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n if (!approxEqual(afterInfo[0], currentOffset)) {\n scheduleRetry(align);\n }\n };\n if (this.isDynamicMode()) {\n this.targetWindow.requestAnimationFrame(verify);\n } else {\n verify();\n }\n });\n };\n const scheduleRetry = (align) => {\n if (!this.targetWindow) return;\n if (this.currentScrollToIndex !== index) return;\n attempts++;\n if (attempts < maxAttempts) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"Schedule retry\", attempts, maxAttempts);\n }\n this.targetWindow.requestAnimationFrame(() => tryScroll(align));\n } else {\n console.warn(\n `Failed to scroll to index ${index} after ${maxAttempts} attempts.`\n );\n }\n };\n tryScroll(initialAlign);\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(\n 0,\n lastIndex,\n getOffset,\n scrollOffset\n );\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import { elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect, Virtualizer } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nimport { computed, unref, shallowRef, watch, triggerRef, onScopeDispose } from \"vue\";\nfunction useVirtualizerBase(options) {\n const virtualizer = new Virtualizer(unref(options));\n const state = shallowRef(virtualizer);\n const cleanup = virtualizer._didMount();\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate();\n }\n },\n {\n immediate: true\n }\n );\n watch(\n () => unref(options),\n (options2) => {\n virtualizer.setOptions({\n ...options2,\n onChange: (instance, sync) => {\n var _a;\n triggerRef(state);\n (_a = options2.onChange) == null ? void 0 : _a.call(options2, instance, sync);\n }\n });\n virtualizer._willUpdate();\n triggerRef(state);\n },\n {\n immediate: true\n }\n );\n onScopeDispose(cleanup);\n return state;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase(\n computed(() => ({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options)\n }))\n );\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase(\n computed(() => ({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...unref(options)\n }))\n );\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","import{onUnmounted as s}from\"vue\";import{disposables as e}from'../utils/disposables.js';function i(){let o=e();return s(()=>o.dispose()),o}export{i as useDisposables};\n","import{useDisposables as r}from'./use-disposables.js';function t(){let e=r();return o=>{e.dispose(),e.nextFrame(o)}}export{t as useFrameDebounce};\n","var g=(f=>(f[f.Left=0]=\"Left\",f[f.Right=2]=\"Right\",f))(g||{});export{g as MouseButton};\n","import{useVirtualizer as re}from\"@tanstack/vue-virtual\";import{cloneVNode as de,computed as m,defineComponent as H,Fragment as se,h as z,inject as ee,nextTick as N,onMounted as X,onUnmounted as fe,provide as te,reactive as ve,ref as k,toRaw as L,watch as J,watchEffect as Y}from\"vue\";import{useControllable as pe}from'../../hooks/use-controllable.js';import{useFrameDebounce as be}from'../../hooks/use-frame-debounce.js';import{useId as W}from'../../hooks/use-id.js';import{useOutsideClick as ce}from'../../hooks/use-outside-click.js';import{useResolveButtonType as me}from'../../hooks/use-resolve-button-type.js';import{useTrackedPointer as xe}from'../../hooks/use-tracked-pointer.js';import{useTreeWalker as ge}from'../../hooks/use-tree-walker.js';import{Features as Se,Hidden as Oe}from'../../internal/hidden.js';import{State as G,useOpenClosed as Ce,useOpenClosedProvider as Re}from'../../internal/open-closed.js';import{Keys as F}from'../../keyboard.js';import{MouseButton as ye}from'../../mouse.js';import{history as oe}from'../../utils/active-element-history.js';import{calculateActiveIndex as le,Focus as P}from'../../utils/calculate-active-index.js';import{disposables as ae}from'../../utils/disposables.js';import{dom as x}from'../../utils/dom.js';import{sortByDomNode as Te}from'../../utils/focus-management.js';import{objectToFormEntries as Ie}from'../../utils/form.js';import{match as _}from'../../utils/match.js';import{getOwnerDocument as he}from'../../utils/owner.js';import{isMobile as we}from'../../utils/platform.js';import{compact as Pe,Features as Q,omit as Z,render as U}from'../../utils/render.js';function De(a,h){return a===h}var Ee=(r=>(r[r.Open=0]=\"Open\",r[r.Closed=1]=\"Closed\",r))(Ee||{}),Ve=(r=>(r[r.Single=0]=\"Single\",r[r.Multi=1]=\"Multi\",r))(Ve||{}),ke=(y=>(y[y.Pointer=0]=\"Pointer\",y[y.Focus=1]=\"Focus\",y[y.Other=2]=\"Other\",y))(ke||{});let ne=Symbol(\"ComboboxContext\");function K(a){let h=ee(ne,null);if(h===null){let r=new Error(`<${a} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,K),r}return h}let ie=Symbol(\"VirtualContext\"),Ae=H({name:\"VirtualProvider\",setup(a,{slots:h}){let r=K(\"VirtualProvider\"),y=m(()=>{let c=x(r.optionsRef);if(!c)return{start:0,end:0};let f=window.getComputedStyle(c);return{start:parseFloat(f.paddingBlockStart||f.paddingTop),end:parseFloat(f.paddingBlockEnd||f.paddingBottom)}}),o=re(m(()=>({scrollPaddingStart:y.value.start,scrollPaddingEnd:y.value.end,count:r.virtual.value.options.length,estimateSize(){return 40},getScrollElement(){return x(r.optionsRef)},overscan:12}))),u=m(()=>{var c;return(c=r.virtual.value)==null?void 0:c.options}),e=k(0);return J([u],()=>{e.value+=1}),te(ie,r.virtual.value?o:null),()=>[z(\"div\",{style:{position:\"relative\",width:\"100%\",height:`${o.value.getTotalSize()}px`},ref:c=>{if(c){if(typeof process!=\"undefined\"&&process.env.JEST_WORKER_ID!==void 0||r.activationTrigger.value===0)return;r.activeOptionIndex.value!==null&&r.virtual.value.options.length>r.activeOptionIndex.value&&o.value.scrollToIndex(r.activeOptionIndex.value)}}},o.value.getVirtualItems().map(c=>de(h.default({option:r.virtual.value.options[c.index],open:r.comboboxState.value===0})[0],{key:`${e.value}-${c.index}`,\"data-index\":c.index,\"aria-setsize\":r.virtual.value.options.length,\"aria-posinset\":c.index+1,style:{position:\"absolute\",top:0,left:0,transform:`translateY(${c.start}px)`,overflowAnchor:\"none\"}})))]}}),lt=H({name:\"Combobox\",emits:{\"update:modelValue\":a=>!0},props:{as:{type:[Object,String],default:\"template\"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],nullable:!0,default:null},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},nullable:{type:Boolean,default:!1},multiple:{type:[Boolean],default:!1},immediate:{type:[Boolean],default:!1},virtual:{type:Object,default:null}},inheritAttrs:!1,setup(a,{slots:h,attrs:r,emit:y}){let o=k(1),u=k(null),e=k(null),c=k(null),f=k(null),S=k({static:!1,hold:!1}),v=k([]),d=k(null),D=k(2),E=k(!1);function w(t=n=>n){let n=d.value!==null?v.value[d.value]:null,s=t(v.value.slice()),b=s.length>0&&s[0].dataRef.order.value!==null?s.sort((C,A)=>C.dataRef.order.value-A.dataRef.order.value):Te(s,C=>x(C.dataRef.domRef)),O=n?b.indexOf(n):null;return O===-1&&(O=null),{options:b,activeOptionIndex:O}}let M=m(()=>a.multiple?1:0),$=m(()=>a.nullable),[B,p]=pe(m(()=>a.modelValue),t=>y(\"update:modelValue\",t),m(()=>a.defaultValue)),R=m(()=>B.value===void 0?_(M.value,{[1]:[],[0]:void 0}):B.value),V=null,i=null;function I(t){return _(M.value,{[0](){return p==null?void 0:p(t)},[1]:()=>{let n=L(l.value.value).slice(),s=L(t),b=n.findIndex(O=>l.compare(s,L(O)));return b===-1?n.push(s):n.splice(b,1),p==null?void 0:p(n)}})}let T=m(()=>{});J([T],([t],[n])=>{if(l.virtual.value&&t&&n&&d.value!==null){let s=t.indexOf(n[d.value]);s!==-1?d.value=s:d.value=null}});let l={comboboxState:o,value:R,mode:M,compare(t,n){if(typeof a.by==\"string\"){let s=a.by;return(t==null?void 0:t[s])===(n==null?void 0:n[s])}return a.by===null?De(t,n):a.by(t,n)},calculateIndex(t){return l.virtual.value?a.by===null?l.virtual.value.options.indexOf(t):l.virtual.value.options.findIndex(n=>l.compare(n,t)):v.value.findIndex(n=>l.compare(n.dataRef.value,t))},defaultValue:m(()=>a.defaultValue),nullable:$,immediate:m(()=>!1),virtual:m(()=>null),inputRef:e,labelRef:u,buttonRef:c,optionsRef:f,disabled:m(()=>a.disabled),options:v,change(t){p(t)},activeOptionIndex:m(()=>{if(E.value&&d.value===null&&(l.virtual.value?l.virtual.value.options.length>0:v.value.length>0)){if(l.virtual.value){let n=l.virtual.value.options.findIndex(s=>{var b;return!((b=l.virtual.value)!=null&&b.disabled(s))});if(n!==-1)return n}let t=v.value.findIndex(n=>!n.dataRef.disabled);if(t!==-1)return t}return d.value}),activationTrigger:D,optionsPropsRef:S,closeCombobox(){E.value=!1,!a.disabled&&o.value!==1&&(o.value=1,d.value=null)},openCombobox(){if(E.value=!0,!a.disabled&&o.value!==0){if(l.value.value){let t=l.calculateIndex(l.value.value);t!==-1&&(d.value=t)}o.value=0}},setActivationTrigger(t){D.value=t},goToOption(t,n,s){E.value=!1,V!==null&&cancelAnimationFrame(V),V=requestAnimationFrame(()=>{if(a.disabled||f.value&&!S.value.static&&o.value===1)return;if(l.virtual.value){d.value=t===P.Specific?n:le({focus:t},{resolveItems:()=>l.virtual.value.options,resolveActiveIndex:()=>{var C,A;return(A=(C=l.activeOptionIndex.value)!=null?C:l.virtual.value.options.findIndex(j=>{var q;return!((q=l.virtual.value)!=null&&q.disabled(j))}))!=null?A:null},resolveDisabled:C=>l.virtual.value.disabled(C),resolveId(){throw new Error(\"Function not implemented.\")}}),D.value=s!=null?s:2;return}let b=w();if(b.activeOptionIndex===null){let C=b.options.findIndex(A=>!A.dataRef.disabled);C!==-1&&(b.activeOptionIndex=C)}let O=t===P.Specific?n:le({focus:t},{resolveItems:()=>b.options,resolveActiveIndex:()=>b.activeOptionIndex,resolveId:C=>C.id,resolveDisabled:C=>C.dataRef.disabled});d.value=O,D.value=s!=null?s:2,v.value=b.options})},selectOption(t){let n=v.value.find(b=>b.id===t);if(!n)return;let{dataRef:s}=n;I(s.value)},selectActiveOption(){if(l.activeOptionIndex.value!==null){if(l.virtual.value)I(l.virtual.value.options[l.activeOptionIndex.value]);else{let{dataRef:t}=v.value[l.activeOptionIndex.value];I(t.value)}l.goToOption(P.Specific,l.activeOptionIndex.value)}},registerOption(t,n){let s=ve({id:t,dataRef:n});if(l.virtual.value){v.value.push(s);return}i&&cancelAnimationFrame(i);let b=w(O=>(O.push(s),O));d.value===null&&l.isSelected(n.value.value)&&(b.activeOptionIndex=b.options.indexOf(s)),v.value=b.options,d.value=b.activeOptionIndex,D.value=2,b.options.some(O=>!x(O.dataRef.domRef))&&(i=requestAnimationFrame(()=>{let O=w();v.value=O.options,d.value=O.activeOptionIndex}))},unregisterOption(t,n){if(V!==null&&cancelAnimationFrame(V),n&&(E.value=!0),l.virtual.value){v.value=v.value.filter(b=>b.id!==t);return}let s=w(b=>{let O=b.findIndex(C=>C.id===t);return O!==-1&&b.splice(O,1),b});v.value=s.options,d.value=s.activeOptionIndex,D.value=2},isSelected(t){return _(M.value,{[0]:()=>l.compare(L(l.value.value),L(t)),[1]:()=>L(l.value.value).some(n=>l.compare(L(n),L(t)))})},isActive(t){return d.value===l.calculateIndex(t)}};ce([e,c,f],()=>l.closeCombobox(),m(()=>o.value===0)),te(ne,l),Re(m(()=>_(o.value,{[0]:G.Open,[1]:G.Closed})));let g=m(()=>{var t;return(t=x(e))==null?void 0:t.closest(\"form\")});return X(()=>{J([g],()=>{if(!g.value||a.defaultValue===void 0)return;function t(){l.change(a.defaultValue)}return g.value.addEventListener(\"reset\",t),()=>{var n;(n=g.value)==null||n.removeEventListener(\"reset\",t)}},{immediate:!0})}),()=>{var C,A,j;let{name:t,disabled:n,form:s,...b}=a,O={open:o.value===0,disabled:n,activeIndex:l.activeOptionIndex.value,activeOption:l.activeOptionIndex.value===null?null:l.virtual.value?l.virtual.value.options[(C=l.activeOptionIndex.value)!=null?C:0]:(j=(A=l.options.value[l.activeOptionIndex.value])==null?void 0:A.dataRef.value)!=null?j:null,value:R.value};return z(se,[...t!=null&&R.value!=null?Ie({[t]:R.value}).map(([q,ue])=>z(Oe,Pe({features:Se.Hidden,key:q,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:s,disabled:n,name:q,value:ue}))):[],U({theirProps:{...r,...Z(b,[\"by\",\"defaultValue\",\"immediate\",\"modelValue\",\"multiple\",\"nullable\",\"onUpdate:modelValue\",\"virtual\"])},ourProps:{},slot:O,slots:h,attrs:r,name:\"Combobox\"})])}}}),at=H({name:\"ComboboxLabel\",props:{as:{type:[Object,String],default:\"label\"},id:{type:String,default:null}},setup(a,{attrs:h,slots:r}){var e;let y=(e=a.id)!=null?e:`headlessui-combobox-label-${W()}`,o=K(\"ComboboxLabel\");function u(){var c;(c=x(o.inputRef))==null||c.focus({preventScroll:!0})}return()=>{let c={open:o.comboboxState.value===0,disabled:o.disabled.value},{...f}=a,S={id:y,ref:o.labelRef,onClick:u};return U({ourProps:S,theirProps:f,slot:c,attrs:h,slots:r,name:\"ComboboxLabel\"})}}}),nt=H({name:\"ComboboxButton\",props:{as:{type:[Object,String],default:\"button\"},id:{type:String,default:null}},setup(a,{attrs:h,slots:r,expose:y}){var S;let o=(S=a.id)!=null?S:`headlessui-combobox-button-${W()}`,u=K(\"ComboboxButton\");y({el:u.buttonRef,$el:u.buttonRef});function e(v){u.disabled.value||(u.comboboxState.value===0?u.closeCombobox():(v.preventDefault(),u.openCombobox()),N(()=>{var d;return(d=x(u.inputRef))==null?void 0:d.focus({preventScroll:!0})}))}function c(v){switch(v.key){case F.ArrowDown:v.preventDefault(),v.stopPropagation(),u.comboboxState.value===1&&u.openCombobox(),N(()=>{var d;return(d=u.inputRef.value)==null?void 0:d.focus({preventScroll:!0})});return;case F.ArrowUp:v.preventDefault(),v.stopPropagation(),u.comboboxState.value===1&&(u.openCombobox(),N(()=>{u.value.value||u.goToOption(P.Last)})),N(()=>{var d;return(d=u.inputRef.value)==null?void 0:d.focus({preventScroll:!0})});return;case F.Escape:if(u.comboboxState.value!==0)return;v.preventDefault(),u.optionsRef.value&&!u.optionsPropsRef.value.static&&v.stopPropagation(),u.closeCombobox(),N(()=>{var d;return(d=u.inputRef.value)==null?void 0:d.focus({preventScroll:!0})});return}}let f=me(m(()=>({as:a.as,type:h.type})),u.buttonRef);return()=>{var E,w;let v={open:u.comboboxState.value===0,disabled:u.disabled.value,value:u.value.value},{...d}=a,D={ref:u.buttonRef,id:o,type:f.value,tabindex:\"-1\",\"aria-haspopup\":\"listbox\",\"aria-controls\":(E=x(u.optionsRef))==null?void 0:E.id,\"aria-expanded\":u.comboboxState.value===0,\"aria-labelledby\":u.labelRef.value?[(w=x(u.labelRef))==null?void 0:w.id,o].join(\" \"):void 0,disabled:u.disabled.value===!0?!0:void 0,onKeydown:c,onClick:e};return U({ourProps:D,theirProps:d,slot:v,attrs:h,slots:r,name:\"ComboboxButton\"})}}}),it=H({name:\"ComboboxInput\",props:{as:{type:[Object,String],default:\"input\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},displayValue:{type:Function},defaultValue:{type:String,default:void 0},id:{type:String,default:null}},emits:{change:a=>!0},setup(a,{emit:h,attrs:r,slots:y,expose:o}){var V;let u=(V=a.id)!=null?V:`headlessui-combobox-input-${W()}`,e=K(\"ComboboxInput\"),c=m(()=>he(x(e.inputRef))),f={value:!1};o({el:e.inputRef,$el:e.inputRef});function S(){e.change(null);let i=x(e.optionsRef);i&&(i.scrollTop=0),e.goToOption(P.Nothing)}let v=m(()=>{var I;let i=e.value.value;return x(e.inputRef)?typeof a.displayValue!=\"undefined\"&&i!==void 0?(I=a.displayValue(i))!=null?I:\"\":typeof i==\"string\"?i:\"\":\"\"});X(()=>{J([v,e.comboboxState,c],([i,I],[T,l])=>{if(f.value)return;let g=x(e.inputRef);g&&((l===0&&I===1||i!==T)&&(g.value=i),requestAnimationFrame(()=>{var s;if(f.value||!g||((s=c.value)==null?void 0:s.activeElement)!==g)return;let{selectionStart:t,selectionEnd:n}=g;Math.abs((n!=null?n:0)-(t!=null?t:0))===0&&t===0&&g.setSelectionRange(g.value.length,g.value.length)}))},{immediate:!0}),J([e.comboboxState],([i],[I])=>{if(i===0&&I===1){if(f.value)return;let T=x(e.inputRef);if(!T)return;let l=T.value,{selectionStart:g,selectionEnd:t,selectionDirection:n}=T;T.value=\"\",T.value=l,n!==null?T.setSelectionRange(g,t,n):T.setSelectionRange(g,t)}})});let d=k(!1);function D(){d.value=!0}function E(){ae().nextFrame(()=>{d.value=!1})}let w=be();function M(i){switch(f.value=!0,w(()=>{f.value=!1}),i.key){case F.Enter:if(f.value=!1,e.comboboxState.value!==0||d.value)return;if(i.preventDefault(),i.stopPropagation(),e.activeOptionIndex.value===null){e.closeCombobox();return}e.selectActiveOption(),e.mode.value===0&&e.closeCombobox();break;case F.ArrowDown:return f.value=!1,i.preventDefault(),i.stopPropagation(),_(e.comboboxState.value,{[0]:()=>e.goToOption(P.Next),[1]:()=>e.openCombobox()});case F.ArrowUp:return f.value=!1,i.preventDefault(),i.stopPropagation(),_(e.comboboxState.value,{[0]:()=>e.goToOption(P.Previous),[1]:()=>{e.openCombobox(),N(()=>{e.value.value||e.goToOption(P.Last)})}});case F.Home:if(i.shiftKey)break;return f.value=!1,i.preventDefault(),i.stopPropagation(),e.goToOption(P.First);case F.PageUp:return f.value=!1,i.preventDefault(),i.stopPropagation(),e.goToOption(P.First);case F.End:if(i.shiftKey)break;return f.value=!1,i.preventDefault(),i.stopPropagation(),e.goToOption(P.Last);case F.PageDown:return f.value=!1,i.preventDefault(),i.stopPropagation(),e.goToOption(P.Last);case F.Escape:if(f.value=!1,e.comboboxState.value!==0)return;i.preventDefault(),e.optionsRef.value&&!e.optionsPropsRef.value.static&&i.stopPropagation(),e.nullable.value&&e.mode.value===0&&e.value.value===null&&S(),e.closeCombobox();break;case F.Tab:if(f.value=!1,e.comboboxState.value!==0)return;e.mode.value===0&&e.activationTrigger.value!==1&&e.selectActiveOption(),e.closeCombobox();break}}function $(i){h(\"change\",i),e.nullable.value&&e.mode.value===0&&i.target.value===\"\"&&S(),e.openCombobox()}function B(i){var T,l,g;let I=(T=i.relatedTarget)!=null?T:oe.find(t=>t!==i.currentTarget);if(f.value=!1,!((l=x(e.optionsRef))!=null&&l.contains(I))&&!((g=x(e.buttonRef))!=null&&g.contains(I))&&e.comboboxState.value===0)return i.preventDefault(),e.mode.value===0&&(e.nullable.value&&e.value.value===null?S():e.activationTrigger.value!==1&&e.selectActiveOption()),e.closeCombobox()}function p(i){var T,l,g;let I=(T=i.relatedTarget)!=null?T:oe.find(t=>t!==i.currentTarget);(l=x(e.buttonRef))!=null&&l.contains(I)||(g=x(e.optionsRef))!=null&&g.contains(I)||e.disabled.value||e.immediate.value&&e.comboboxState.value!==0&&(e.openCombobox(),ae().nextFrame(()=>{e.setActivationTrigger(1)}))}let R=m(()=>{var i,I,T,l;return(l=(T=(I=a.defaultValue)!=null?I:e.defaultValue.value!==void 0?(i=a.displayValue)==null?void 0:i.call(a,e.defaultValue.value):null)!=null?T:e.defaultValue.value)!=null?l:\"\"});return()=>{var t,n,s,b,O,C,A;let i={open:e.comboboxState.value===0},{displayValue:I,onChange:T,...l}=a,g={\"aria-controls\":(t=e.optionsRef.value)==null?void 0:t.id,\"aria-expanded\":e.comboboxState.value===0,\"aria-activedescendant\":e.activeOptionIndex.value===null?void 0:e.virtual.value?(n=e.options.value.find(j=>!e.virtual.value.disabled(j.dataRef.value)&&e.compare(j.dataRef.value,e.virtual.value.options[e.activeOptionIndex.value])))==null?void 0:n.id:(s=e.options.value[e.activeOptionIndex.value])==null?void 0:s.id,\"aria-labelledby\":(C=(b=x(e.labelRef))==null?void 0:b.id)!=null?C:(O=x(e.buttonRef))==null?void 0:O.id,\"aria-autocomplete\":\"list\",id:u,onCompositionstart:D,onCompositionend:E,onKeydown:M,onInput:$,onFocus:p,onBlur:B,role:\"combobox\",type:(A=r.type)!=null?A:\"text\",tabIndex:0,ref:e.inputRef,defaultValue:R.value,disabled:e.disabled.value===!0?!0:void 0};return U({ourProps:g,theirProps:l,slot:i,attrs:r,slots:y,features:Q.RenderStrategy|Q.Static,name:\"ComboboxInput\"})}}}),ut=H({name:\"ComboboxOptions\",props:{as:{type:[Object,String],default:\"ul\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},hold:{type:[Boolean],default:!1}},setup(a,{attrs:h,slots:r,expose:y}){let o=K(\"ComboboxOptions\"),u=`headlessui-combobox-options-${W()}`;y({el:o.optionsRef,$el:o.optionsRef}),Y(()=>{o.optionsPropsRef.value.static=a.static}),Y(()=>{o.optionsPropsRef.value.hold=a.hold});let e=Ce(),c=m(()=>e!==null?(e.value&G.Open)===G.Open:o.comboboxState.value===0);ge({container:m(()=>x(o.optionsRef)),enabled:m(()=>o.comboboxState.value===0),accept(S){return S.getAttribute(\"role\")===\"option\"?NodeFilter.FILTER_REJECT:S.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(S){S.setAttribute(\"role\",\"none\")}});function f(S){S.preventDefault()}return()=>{var D,E,w;let S={open:o.comboboxState.value===0},v={\"aria-labelledby\":(w=(D=x(o.labelRef))==null?void 0:D.id)!=null?w:(E=x(o.buttonRef))==null?void 0:E.id,id:u,ref:o.optionsRef,role:\"listbox\",\"aria-multiselectable\":o.mode.value===1?!0:void 0,onMousedown:f},d=Z(a,[\"hold\"]);return U({ourProps:v,theirProps:d,slot:S,attrs:h,slots:o.virtual.value&&o.comboboxState.value===0?{...r,default:()=>[z(Ae,{},r.default)]}:r,features:Q.RenderStrategy|Q.Static,visible:c.value,name:\"ComboboxOptions\"})}}}),rt=H({name:\"ComboboxOption\",props:{as:{type:[Object,String],default:\"li\"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},order:{type:[Number],default:null}},setup(a,{slots:h,attrs:r,expose:y}){let o=K(\"ComboboxOption\"),u=`headlessui-combobox-option-${W()}`,e=k(null),c=m(()=>a.disabled);y({el:e,$el:e});let f=m(()=>{var p;return o.virtual.value?o.activeOptionIndex.value===o.calculateIndex(a.value):o.activeOptionIndex.value===null?!1:((p=o.options.value[o.activeOptionIndex.value])==null?void 0:p.id)===u}),S=m(()=>o.isSelected(a.value)),v=ee(ie,null),d=m(()=>({disabled:a.disabled,value:a.value,domRef:e,order:m(()=>a.order)}));X(()=>o.registerOption(u,d)),fe(()=>o.unregisterOption(u,f.value)),Y(()=>{let p=x(e);p&&(v==null||v.value.measureElement(p))}),Y(()=>{o.comboboxState.value===0&&f.value&&(o.virtual.value||o.activationTrigger.value!==0&&N(()=>{var p,R;return(R=(p=x(e))==null?void 0:p.scrollIntoView)==null?void 0:R.call(p,{block:\"nearest\"})}))});function D(p){p.preventDefault(),p.button===ye.Left&&(c.value||(o.selectOption(u),we()||requestAnimationFrame(()=>{var R;return(R=x(o.inputRef))==null?void 0:R.focus({preventScroll:!0})}),o.mode.value===0&&o.closeCombobox()))}function E(){var R;if(a.disabled||(R=o.virtual.value)!=null&&R.disabled(a.value))return o.goToOption(P.Nothing);let p=o.calculateIndex(a.value);o.goToOption(P.Specific,p)}let w=xe();function M(p){w.update(p)}function $(p){var V;if(!w.wasMoved(p)||a.disabled||(V=o.virtual.value)!=null&&V.disabled(a.value)||f.value)return;let R=o.calculateIndex(a.value);o.goToOption(P.Specific,R,0)}function B(p){var R;w.wasMoved(p)&&(a.disabled||(R=o.virtual.value)!=null&&R.disabled(a.value)||f.value&&(o.optionsPropsRef.value.hold||o.goToOption(P.Nothing)))}return()=>{let{disabled:p}=a,R={active:f.value,selected:S.value,disabled:p},V={id:u,ref:e,role:\"option\",tabIndex:p===!0?void 0:-1,\"aria-disabled\":p===!0?!0:void 0,\"aria-selected\":S.value,disabled:void 0,onMousedown:D,onFocus:E,onPointerenter:M,onMouseenter:M,onPointermove:$,onMousemove:$,onPointerleave:B,onMouseleave:B},i=Z(a,[\"order\",\"value\"]);return U({ourProps:V,theirProps:i,slot:R,attrs:r,slots:h,name:\"ComboboxOption\"})}}});export{lt as Combobox,nt as ComboboxButton,it as ComboboxInput,at as ComboboxLabel,rt as ComboboxOption,ut as ComboboxOptions};\n","<!--\n @component ComboboxInput\n @description Searchable dropdown with Headless UI.\n \n A styled combobox/autocomplete component with search filtering,\n single and multiple selection, and keyboard navigation.\n \n @props\n - name (string, required): Field name for form binding\n - items (ComboboxItem[], required): Options array\n - label (string, optional): Display label\n - placeholder (string, optional): Placeholder text\n - disabled (boolean, optional): Disabled state\n - multiple (boolean, optional): Enable multiple selection\n - showAll (boolean, optional): Show \"Select All\" option\n - rules (Schema, optional): Validation rules\n - modelValue (any, optional): Selected value(s) via v-model\n - itemKey (string, optional): Property for item key\n - itemText (string, optional): Property for item text\n \n @emits\n - update:modelValue: Emitted when selection changes\n - update:validity: Emitted when validation state changes\n \n @example\n <ComboboxInput\n name=\"city\"\n label=\"City\"\n :items=\"cities\"\n v-model=\"form.city\"\n placeholder=\"Search cities...\"\n />\n \n @example Multiple selection\n <ComboboxInput\n name=\"tags\"\n label=\"Tags\"\n :items=\"tags\"\n v-model=\"form.tags\"\n multiple\n show-all\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"label\"\n :disabled=\"disabled\"\n :optional=\"!rules\"\n :tertiary-label=\"tertiaryLabel\"\n :box-shadow=\"boxShadow\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n >\n <Combobox\n v-model=\"selectedValue\"\n :disabled=\"disabled\"\n :multiple=\"multiple\"\n @update:model-value=\"handleChange\"\n >\n <div :class=\"wrapperClasses\">\n <ComboboxInput\n :id=\"id\"\n :class=\"inputClasses\"\n :display-value=\"displayComboboxValue\"\n :placeholder=\"placeholder || 'Type to search...'\"\n v-model=\"query\"\n @input=\"onQueryInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n />\n \n <ComboboxButton class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-2\">\n <ChevronUpDownIcon\n class=\"sl-h-5 sl-w-5 sl-text-gray-400 dark:sl-text-slate-300\"\n aria-hidden=\"true\"\n />\n </ComboboxButton>\n\n <TransitionRoot\n leave=\"sl-transition sl-ease-in sl-duration-100\"\n leave-from=\"sl-opacity-100\"\n leave-to=\"sl-opacity-0\"\n @after-leave=\"query = ''\"\n >\n <ComboboxOptions\n v-if=\"filteredItems.length > 0 || query !== '' || (multiple && showAll)\"\n class=\"sl-absolute sl-z-[9999] sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white dark:sl-bg-slate-800 sl-py-1 sl-text-base sl-shadow-lg dark:sl-shadow-slate-900/50 sl-ring-1 sl-ring-black sl-ring-opacity-5 dark:sl-ring-slate-700 focus:sl-outline-none sm:sl-text-sm\"\n @scroll=\"onScroll\"\n >\n <!-- Select All option (plain li, not ComboboxOption to allow click) -->\n <li\n v-if=\"multiple && showAll\"\n role=\"button\"\n tabindex=\"0\"\n @mousedown.prevent\n @click.prevent.stop=\"toggleSelectAll\"\n :class=\"[\n 'sl-relative sl-cursor-pointer sl-select-none sl-py-2 sl-pl-10 sl-pr-4 sl-text-gray-900 dark:sl-text-slate-200',\n 'hover:sl-bg-stachelock-600 hover:sl-text-white'\n ]\"\n data-testid=\"select-all-option\"\n >\n <span class=\"sl-block sl-truncate sl-font-medium\">\n {{ isAllSelected ? 'Unselect All' : 'Select All' }}\n </span>\n <span\n v-if=\"isAllSelected\"\n class=\"sl-absolute sl-inset-y-0 sl-left-0 sl-flex sl-items-center sl-pl-3 sl-text-stachelock-600 dark:sl-text-stachelock-400\"\n >\n <CheckIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </span>\n </li>\n <!-- Loading state -->\n <div \n v-if=\"loading\"\n class=\"sl-relative sl-cursor-default sl-select-none sl-py-2 sl-px-4 sl-text-gray-700 dark:sl-text-slate-200\"\n >\n <div class=\"sl-flex sl-items-center sl-gap-2\">\n <Loading size=\"sm\" />\n <span>Loading...</span>\n </div>\n </div>\n \n <!-- No results -->\n <div\n v-else-if=\"query !== '' && filteredItems.length === 0\"\n class=\"sl-relative sl-cursor-default sl-select-none sl-py-2 sl-px-4 sl-text-gray-700 dark:sl-text-slate-200\"\n >\n Nothing found.\n </div>\n \n <!-- Options -->\n <ComboboxOption\n v-for=\"item in visibleItems\"\n :key=\"getItemKey(item)\"\n :value=\"item\"\n as=\"template\"\n :disabled=\"item.disabled\"\n v-slot=\"{ active, selected }\"\n >\n <li\n :class=\"[\n 'sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-10 sl-pr-4',\n active ? 'sl-bg-stachelock-600 sl-text-white' : 'sl-text-gray-900 dark:sl-text-slate-200',\n item.disabled ? 'sl-opacity-50 sl-cursor-not-allowed' : ''\n ]\"\n >\n <span\n :class=\"[\n 'sl-block sl-truncate',\n selected ? 'sl-font-medium' : 'sl-font-normal'\n ]\"\n >\n {{ getItemText(item) }}\n </span>\n <span\n v-if=\"selected\"\n class=\"sl-absolute sl-inset-y-0 sl-left-0 sl-flex sl-items-center sl-pl-3\"\n :class=\"active ? 'sl-text-white' : 'sl-text-stachelock-600 dark:sl-text-stachelock-400'\"\n >\n <CheckIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </span>\n </li>\n </ComboboxOption>\n <!-- Manual entry option -->\n <ComboboxOption\n v-if=\"!multiple && queryValue\"\n :value=\"queryValue\"\n as=\"template\"\n v-slot=\"{ active }\"\n >\n <li\n @click.prevent.stop=\"handleManualEntry\"\n :class=\"[\n 'sl-relative sl-cursor-pointer sl-select-none sl-py-2 sl-pl-10 sl-pr-4',\n active ? 'sl-bg-stachelock-600 sl-text-white' : 'sl-text-gray-900 dark:sl-text-slate-200'\n ]\"\n >\n <span class=\"sl-block sl-truncate\">\n Enter \"{{ query }}\" manually\n </span>\n </li>\n </ComboboxOption>\n </ComboboxOptions>\n </TransitionRoot>\n </div>\n </Combobox>\n \n <template #success-message>\n <span v-if=\"successMessage\">{{ successMessage }}</span>\n </template>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport {\n Combobox,\n ComboboxInput,\n ComboboxButton,\n ComboboxOption,\n ComboboxOptions,\n TransitionRoot,\n} from '@headlessui/vue'\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/vue/20/solid'\nimport { useField } from 'vee-validate'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport Loading from '../UiLoading.vue'\nimport type { ValidationRule } from '../../types/form'\nimport type { ComboboxItem, SelectItemValue } from '../../types/inputs'\nimport { generateId } from '../../utils/id'\n\ninterface Props {\n name: string\n items: ComboboxItem[]\n label?: string\n placeholder?: string\n disabled?: boolean\n rules?: ValidationRule\n validateOnMount?: boolean\n successMessage?: string\n tertiaryLabel?: string\n itemKey?: string\n itemText?: string\n customQuery?: (query: string, items: ComboboxItem[]) => ComboboxItem[]\n loading?: boolean\n multiple?: boolean\n showAll?: boolean\n modelValue?: SelectItemValue | ComboboxItem | ComboboxItem[]\n boxShadow?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n itemKey: 'id',\n itemText: 'name',\n loading: false,\n multiple: false,\n showAll: false,\n boxShadow: false\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: SelectItemValue | ComboboxItem | ComboboxItem[]]\n 'update:query': [query: string]\n blur: [event: FocusEvent]\n focus: [event: FocusEvent]\n}>()\n\nconst id = generateId(props.name)\nconst query = ref('')\n\n// Use vee-validate for form validation\nconst { value, errorMessage, handleChange: handleValidation, meta, setTouched } = useField(\n () => props.name,\n props.rules,\n {\n validateOnMount: props.validateOnMount,\n initialValue: props.modelValue\n }\n)\n\nconst selectedValue = ref<SelectItemValue | ComboboxItem | ComboboxItem[]>(\n props.multiple\n ? (Array.isArray(props.modelValue) ? props.modelValue : [])\n : (props.modelValue ?? null)\n)\n\n// Watch for external changes\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (props.multiple) {\n const coerced = Array.isArray(newValue) ? newValue : []\n if (coerced !== selectedValue.value) {\n selectedValue.value = coerced\n value.value = coerced\n }\n } else {\n if (newValue !== selectedValue.value) {\n selectedValue.value = newValue\n value.value = newValue\n }\n }\n },\n { immediate: true }\n)\n\nwatch(\n selectedValue,\n (newValue) => {\n emit('update:modelValue', newValue)\n }\n)\n\nconst inputClasses = computed(() => {\n const baseClasses = [\n 'sl-w-full',\n 'sl-border-none',\n 'sl-py-2',\n 'sl-pl-3',\n 'sl-pr-10',\n 'sl-text-sm',\n 'sl-leading-5',\n 'sl-text-gray-900',\n 'dark:sl-text-slate-100',\n 'placeholder:sl-text-gray-400',\n 'dark:placeholder:sl-text-slate-500',\n 'focus:sl-outline-none',\n 'focus:sl-ring-0',\n 'sl-bg-transparent'\n ]\n\n return baseClasses.join(' ')\n})\n\nconst wrapperClasses = computed(() => {\n const baseClasses = [\n 'sl-relative',\n 'sl-w-full',\n 'sl-cursor-default',\n 'sl-rounded-lg',\n 'sl-bg-white',\n 'dark:sl-bg-slate-900',\n 'sl-text-left',\n 'sl-border',\n 'focus-within:sl-ring-2',\n 'focus-within:sl-ring-stachelock-500',\n 'focus-within:sl-border-stachelock-500',\n 'sl-transition-all',\n 'sl-duration-200'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-bg-gray-50',\n 'dark:sl-bg-slate-800',\n 'sl-cursor-not-allowed',\n 'sl-border-gray-200',\n 'dark:sl-border-slate-700'\n )\n } else if (errorMessage.value) {\n baseClasses.push(\n 'sl-border-red-300',\n 'dark:sl-border-red-500',\n 'focus-within:sl-ring-red-500',\n 'focus-within:sl-border-red-500'\n )\n } else if (meta.valid && meta.touched) {\n baseClasses.push(\n 'sl-border-green-300',\n 'dark:sl-border-green-500',\n 'focus-within:sl-ring-green-500',\n 'focus-within:sl-border-green-500'\n )\n } else {\n baseClasses.push(\n 'sl-border-gray-300',\n 'dark:sl-border-slate-600',\n 'hover:sl-border-gray-400',\n 'dark:hover:sl-border-slate-500'\n )\n }\n\n return baseClasses.join(' ')\n})\n\nconst getItemKey = (item: ComboboxItem): string | number => {\n const key = item[props.itemKey];\n if (key === null || key === undefined) return '';\n return typeof key === 'string' || typeof key === 'number' ? key : String(key);\n}\n\nconst getItemText = (item: ComboboxItem): string => {\n if (!item) return ''\n const text = item[props.itemText];\n if (text !== undefined && text !== null) {\n return String(text);\n }\n return String(item);\n}\n\n// Filtering and infinite scroll state\nconst filteredItems = ref<ComboboxItem[]>([])\nconst visibleItems = ref<ComboboxItem[]>([])\nconst itemsPerPage = 50\nconst currentPage = ref(1)\n\nconst loadMoreItems = () => {\n const end = currentPage.value * itemsPerPage\n visibleItems.value = filteredItems.value.slice(0, end)\n currentPage.value += 1\n}\n\nconst resetPagination = () => {\n currentPage.value = 1\n visibleItems.value = []\n loadMoreItems()\n}\n\nconst recomputeFilteredItems = () => {\n if (query.value && query.value !== '') {\n if (props.customQuery) {\n filteredItems.value = props.customQuery(query.value, props.items)\n } else {\n const lower = query.value.toLowerCase()\n filteredItems.value = props.items.filter((item) => {\n const text = getItemText(item)\n return text.toLowerCase().includes(lower)\n })\n }\n } else {\n filteredItems.value = props.items\n }\n resetPagination()\n}\n\nconst allItems = computed(() => {\n return props.items.filter(item => !item.disabled)\n})\n\nconst onQueryInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n query.value = target.value\n emit('update:query', query.value)\n recomputeFilteredItems()\n}\n\nconst handleChange = (newValue: SelectItemValue | ComboboxItem | ComboboxItem[]) => {\n if (props.multiple) {\n const coerced = Array.isArray(newValue) ? newValue : [];\n selectedValue.value = coerced;\n value.value = coerced;\n setTouched(true);\n handleValidation(coerced);\n } else {\n selectedValue.value = newValue;\n value.value = newValue;\n setTouched(true);\n handleValidation(newValue);\n }\n}\n\nconst isAllSelected = computed(() => {\n if (!props.multiple || !Array.isArray(selectedValue.value)) return false\n const selectable = allItems.value\n if (selectable.length === 0) return false\n // Compare by item key instead of reference for reliable equality check\n const selectedArray = Array.isArray(selectedValue.value) ? selectedValue.value : [];\n const selectedKeys = new Set(selectedArray.map(item => getItemKey(item)))\n return selectable.every(item => selectedKeys.has(getItemKey(item)))\n})\n\nconst toggleSelectAll = () => {\n if (!props.multiple) return\n if (isAllSelected.value) {\n selectedValue.value = []\n } else {\n selectedValue.value = [...allItems.value]\n }\n setTouched(true)\n handleValidation(selectedValue.value)\n emit('update:modelValue', selectedValue.value)\n}\n\nconst displayComboboxValue = (val: unknown): string => {\n if (!props.multiple) {\n return getItemText(val as ComboboxItem)\n }\n if (!Array.isArray(val) || val.length === 0) return ''\n if (val.length === 1) return getItemText(val[0] as ComboboxItem)\n return `${val.length} selected`\n}\n\n// Manual entry support (single-select only)\nconst queryValue = computed(() => {\n if (props.multiple) return null\n return query.value === '' ? null : { [props.itemKey]: null, [props.itemText]: query.value }\n})\n\nconst handleManualEntry = () => {\n if (props.multiple) return\n if (!queryValue.value) return\n // If customQuery provided and expects external handling, emit raw query\n if (props.customQuery) {\n emit('update:modelValue', query.value)\n handleValidation(query.value)\n } else {\n selectedValue.value = queryValue.value\n handleValidation(selectedValue.value)\n }\n}\n\nconst onScroll = (event: Event) => {\n const element = event.target as HTMLElement\n if (element.scrollTop + element.clientHeight >= element.scrollHeight) {\n loadMoreItems()\n }\n}\n\nconst onFocus = (event: FocusEvent) => {\n emit('focus', event)\n}\n\nconst onBlur = (event: FocusEvent) => {\n if (!props.multiple && queryValue.value) {\n selectedValue.value = queryValue.value\n handleValidation(selectedValue.value)\n emit('update:modelValue', selectedValue.value)\n }\n emit('blur', event)\n}\n\n// Initialize and keep filtered items in sync\nwatch(() => props.items, () => {\n recomputeFilteredItems()\n}, { immediate: true, deep: true })\n</script>\n\n\n"],"names":["memo","getDeps","fn","opts","deps","result","isInitial","memoizedFunction","_a","_b","_c","depTime","newDeps","dep","index","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","notUndefined","value","msg","approxEqual","a","b","debounce","targetWindow","ms","timeoutId","args","getRect","element","offsetWidth","offsetHeight","defaultKeyExtractor","defaultRangeExtractor","range","start","end","arr","i","observeElementRect","instance","cb","handler","rect","width","height","observer","entries","run","entry","box","addEventListenerOptions","supportsScrollend","observeElementOffset","offset","fallback","createHandler","isScrolling","horizontal","isRtl","endHandler","registerScrollendEvent","measureElement","elementScroll","adjustments","behavior","toOffset","Virtualizer","_ro","get","target","opts2","key","sync","d","scrollElement","cached","measurements","furthestMeasurementsFound","furthestMeasurements","m","measurement","previousFurthestMeasurement","count","paddingStart","scrollMargin","getItemKey","enabled","lanes","itemSizeCache","item","min","laneLastIndex","cachedLane","lane","prevIndex","prevInLane","furthestMeasurement","measuredSize","size","outerSize","scrollOffset","calculateRange","startIndex","endIndex","rangeExtractor","overscan","node","attributeName","indexStr","prevNode","itemSize","delta","indexes","virtualItems","k","len","findNearestBinarySearch","doc","align","maxOffset","initialAlign","attempts","maxAttempts","tryScroll","currentAlign","offsetInfo","verify","currentOffset","afterInfo","scheduleRetry","endByLane","val","low","high","getCurrentValue","middle","currentValue","lastIndex","getOffset","endPerLane","pos","startPerLane","useVirtualizerBase","options","virtualizer","unref","state","shallowRef","cleanup","watch","el","options2","triggerRef","onScopeDispose","useVirtualizer","computed","o","e","s","t","r","g","f","De","h","Ee","Ve","ke","y","ne","K","ee","ie","Ae","H","c","x","re","u","J","te","z","de","lt","S","v","D","E","w","n","C","A","Te","O","M","$","B","p","pe","R","_","V","I","L","l","T","P","le","j","q","ve","ce","Re","G","X","se","Ie","ue","Oe","Pe","Se","U","Z","W","nt","N","F","me","it","he","ae","be","oe","Q","ut","Y","Ce","ge","rt","fe","ye","we","xe","itemsPerPage","props","__props","emit","__emit","id","generateId","query","ref","errorMessage","handleValidation","meta","setTouched","useField","selectedValue","newValue","coerced","inputClasses","wrapperClasses","baseClasses","getItemText","text","filteredItems","visibleItems","currentPage","loadMoreItems","resetPagination","recomputeFilteredItems","lower","allItems","onQueryInput","event","handleChange","isAllSelected","selectable","selectedArray","selectedKeys","toggleSelectAll","displayComboboxValue","queryValue","handleManualEntry","onScroll","onFocus","onBlur","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","Combobox","$event","_createElementVNode","ComboboxInput","ComboboxButton","ChevronUpDownIcon","TransitionRoot","_createBlock","ComboboxOptions","_normalizeClass","_hoisted_2","_toDisplayString","_hoisted_3","CheckIcon","_hoisted_4","_hoisted_5","Loading","_cache","_hoisted_6","_Fragment","_renderList","ComboboxOption","active","selected","_withCtx","_hoisted_7"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js","sources":["../src/components/empty-state/ComingSoon.vue"],"sourcesContent":["<!--\n @component ComingSoon\n @description Coming soon placeholder with gradient background.\n \n A visually appealing placeholder for features that are coming soon.\n Uses gradient background and optional logo.\n \n @props\n - title (string, optional): Title text (default: \"Coming soon\")\n - subtitle (string, optional): Optional subtitle\n - showLogo (boolean, optional): Whether to show logo slot\n - gradientStart (string, optional): Gradient start color\n - gradientEnd (string, optional): Gradient end color\n \n @slots\n - logo: Custom logo content\n - default: Additional content below the title\n \n @example\n <ComingSoon\n title=\"New Feature\"\n subtitle=\"We're working on something amazing\"\n >\n <template #logo>\n <img src=\"/logo.svg\" alt=\"Logo\" class=\"sl-h-16\" />\n </template>\n </ComingSoon>\n-->\n<template>\n <div class=\"xl:sl-h-screen sl-w-full sl-flex sl-relative\">\n <BackgroundGradientWrapper \n :gradient-start=\"gradientStart\" \n :gradient-end=\"gradientEnd\"\n gradient-type=\"radial\" \n classes=\"sl-rounded-lg sl-flex sl-items-center sl-justify-center sl-opacity-90\"\n >\n <div class=\"sl-space-y-8 sl-py-16 xl:sl-py-0 sl-text-center\">\n <!-- Title -->\n <p class=\"sl-text-2xl sl-font-semibold sl-text-white sm:sl-text-4xl sl-italic\">\n {{ title }}\n </p>\n \n <!-- Subtitle -->\n <p v-if=\"subtitle\" class=\"sl-text-lg sl-text-white/80\">\n {{ subtitle }}\n </p>\n\n <!-- Logo slot -->\n <div v-if=\"showLogo || $slots.logo\" class=\"sl-flex sl-items-center sl-justify-center\">\n <slot name=\"logo\">\n <!-- Default logo placeholder -->\n <div class=\"sl-w-32 sl-h-32 sl-rounded-full sl-bg-white/20 sl-flex sl-items-center sl-justify-center\">\n <svg class=\"sl-w-16 sl-h-16 sl-text-white\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 10V3L4 14h7v7l9-11h-7z\" />\n </svg>\n </div>\n </slot>\n </div>\n\n <!-- Default slot for additional content -->\n <slot />\n </div>\n </BackgroundGradientWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport BackgroundGradientWrapper from '../wrappers/BackgroundGradientWrapper.vue';\n\ninterface Props {\n title?: string;\n subtitle?: string;\n showLogo?: boolean;\n gradientStart?: string;\n gradientEnd?: string;\n}\n\nwithDefaults(defineProps<Props>(), {\n title: 'Coming soon',\n showLogo: true,\n gradientStart: 'rgba(59, 130, 246, 0.8)',\n gradientEnd: 'rgba(35, 78, 138, 0.8)',\n});\n</script>\n\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_createVNode","BackgroundGradientWrapper","__props","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","_hoisted_4","$slots","_hoisted_5","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;sBA6BEA,EAAA,GAAAC,EAkCM,OAlCNC,GAkCM;AAAA,MAjCJC,EAgC4BC,GAAA;AAAA,QA/BzB,kBAAgBC,EAAA;AAAA,QAChB,gBAAcA,EAAA;AAAA,QACf,iBAAc;AAAA,QACd,SAAQ;AAAA,MAAA;mBAER,MAyBM;AAAA,UAzBNC,EAyBM,OAzBNC,GAyBM;AAAA,YAvBJD,EAEI,KAFJE,GAEIC,EADCJ,EAAA,KAAK,GAAA,CAAA;AAAA,YAIDA,EAAA,iBAATJ,EAEI,KAFJS,GAEID,EADCJ,EAAA,QAAQ,GAAA,CAAA;YAIFA,EAAA,YAAYM,EAAAA,OAAO,QAA9BX,KAAAC,EASM,OATNW,GASM;AAAA,cARJC,EAOOC,sBAPP,MAOO;AAAA,gCALLR,EAIM,OAAA,EAJD,OAAM,8FAA0F;AAAA,kBACnGA,EAEM,OAAA;AAAA,oBAFD,OAAM;AAAA,oBAAgC,MAAK;AAAA,oBAAO,SAAQ;AAAA,oBAAY,QAAO;AAAA,kBAAA;oBAChFA,EAAuG,QAAA;AAAA,sBAAjG,kBAAe;AAAA,sBAAQ,mBAAgB;AAAA,sBAAQ,gBAAa;AAAA,sBAAI,GAAE;AAAA,oBAAA;;;;;YAOhFO,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js","sources":["../src/components/layouts/DashboardLayout.vue"],"sourcesContent":["<template>\n <div class=\"sl-min-h-screen sl-bg-gray-50 dark:sl-bg-slate-900\">\n <!-- Mobile sidebar overlay -->\n <TransitionRoot as=\"template\" :show=\"sidebarOpen\">\n <Dialog as=\"div\" class=\"sl-relative sl-z-50 lg:sl-hidden\" @close=\"closeSidebar\">\n <TransitionChild as=\"template\" enter=\"sl-transition-opacity sl-ease-linear sl-duration-300\" enter-from=\"sl-opacity-0\"\n enter-to=\"sl-opacity-100\" leave=\"sl-transition-opacity sl-ease-linear sl-duration-300\" leave-from=\"sl-opacity-100\"\n leave-to=\"sl-opacity-0\">\n <div class=\"sl-fixed sl-inset-0 sl-bg-gray-900/80\" />\n </TransitionChild>\n\n <div class=\"sl-fixed sl-inset-0 sl-flex\">\n <TransitionChild as=\"template\" enter=\"sl-transition sl-ease-in-out sl-duration-300 sl-transform\"\n enter-from=\"-sl-translate-x-full\" enter-to=\"sl-translate-x-0\"\n leave=\"sl-transition sl-ease-in-out sl-duration-300 sl-transform\" leave-from=\"sl-translate-x-0\"\n leave-to=\"-sl-translate-x-full\">\n <DialogPanel class=\"sl-relative sl-mr-16 sl-flex sl-w-full sl-max-w-xs sl-flex-1\">\n <TransitionChild as=\"template\" enter=\"sl-ease-in-out sl-duration-300\" enter-from=\"sl-opacity-0\"\n enter-to=\"sl-opacity-100\" leave=\"sl-ease-in-out sl-duration-300\" leave-from=\"sl-opacity-100\" leave-to=\"sl-opacity-0\">\n <div class=\"sl-absolute sl-left-full sl-top-0 sl-flex sl-w-16 sl-justify-center sl-pt-5\">\n <button type=\"button\" class=\"-sl-m-2.5 sl-p-2.5\" @click=\"closeSidebar()\">\n <span class=\"sl-sr-only\">Close sidebar</span>\n <XMarkIcon class=\"sl-h-6 sl-w-6\" style=\"color: var(--sl-color-stachelock-050, #edeff9);\" aria-hidden=\"true\" />\n </button>\n </div>\n </TransitionChild>\n\n <div class=\"sl-flex sl-grow sl-flex-col sl-gap-y-5 sl-px-6 sl-pb-2 sl-ring-1 sl-ring-white/10\"\n style=\"background-color: var(--sl-color-stachelock-600, #3e4b9a);\">\n <div class=\"sl-flex sl-h-16 sl-shrink-0 sl-items-center\">\n <slot name=\"logo\">\n <div class=\"sl-font-semibold sl-text-lg\" style=\"color: var(--sl-color-stachelock-050, #edeff9);\">Logo</div>\n </slot>\n </div>\n <nav class=\"sl-flex sl-flex-1 sl-flex-col\">\n <ul role=\"list\" class=\"-sl-mx-2 sl-flex-1 sl-space-y-1\">\n <slot name=\"navigation\">\n <!-- Default navigation slot -->\n </slot>\n </ul>\n </nav>\n <div class=\"sl-mt-auto\">\n <slot name=\"sidebar-footer\">\n <!-- Sidebar footer content -->\n </slot>\n </div>\n </div>\n </DialogPanel>\n </TransitionChild>\n </div>\n </Dialog>\n </TransitionRoot>\n\n <!-- Desktop sidebar -->\n <div\n class=\"sl-hidden lg:sl-fixed lg:sl-inset-y-0 lg:sl-left-0 lg:sl-z-50 lg:sl-block lg:sl-pb-4 sl-pt-4\"\n style=\"background-color: var(--sl-color-stachelock-600, #3e4b9a);\"\n :class=\"isWide ? 'lg:sl-w-64' : 'lg:sl-w-16'\">\n <div class=\"sl-flex sl-h-16 sl-shrink-0 sl-items-center sl-px-6\">\n <slot name=\"logo\">\n <div v-if=\"isWide\" class=\"sl-font-semibold sl-text-lg\" style=\"color: var(--sl-color-stachelock-050, #edeff9);\">Logo</div>\n <div v-else class=\"sl-flex sl-items-center sl-justify-center sl-w-full\">\n <div class=\"sl-w-8 sl-h-8 sl-bg-white sl-rounded-lg sl-flex sl-items-center sl-justify-center\">\n <span class=\"sl-font-bold sl-text-sm\" style=\"color: var(--sl-color-stachelock-600, #3e4b9a);\">P</span>\n </div>\n </div>\n </slot>\n </div>\n <nav class=\"sl-mt-8 sl-flex sl-flex-col sl-justify-between sl-h-full\">\n <ul role=\"list\"\n :class=\"isWide ? 'sl-flex sl-flex-col sl-items-start sl-mx-4 sl-space-y-1' : 'sl-flex sl-flex-col sl-items-center sl-space-y-1'\">\n <slot name=\"navigation\" :icon-only=\"!isWide\">\n <!-- Default navigation slot -->\n </slot>\n </ul>\n <div class=\"sl-absolute sl-bottom-4 sl-left-0 sl-right-0 sl-px-6\">\n <slot name=\"sidebar-footer\" :icon-only=\"!isWide\">\n <!-- Sidebar footer content -->\n </slot>\n </div>\n </nav>\n </div>\n\n <!-- Main content area -->\n <div :class=\"['lg:sl-pl-16', isWide ? 'lg:sl-pl-64' : 'lg:sl-pl-16']\">\n <!-- Header -->\n <div\n class=\"sl-sticky sl-top-0 sl-z-40 sl-flex sl-h-16 sl-shrink-0 sl-items-center sl-gap-x-4 sl-border-b sl-border-gray-200 dark:sl-border-slate-700 sl-bg-white dark:sl-bg-slate-800 sl-px-4 sl-shadow-sm sm:sl-gap-x-6 sm:sl-px-6 lg:sl-px-8\">\n <button type=\"button\" class=\"-sl-m-2.5 sl-p-2.5 sl-text-gray-700 dark:sl-text-slate-300 lg:sl-hidden\" @click=\"openSidebar()\">\n <span class=\"sl-sr-only\">Open sidebar</span>\n <Bars3Icon class=\"sl-h-6 sl-w-6\" aria-hidden=\"true\" />\n </button>\n\n <!-- Separator -->\n <div class=\"sl-h-6 sl-w-px sl-bg-gray-900/10 dark:sl-bg-slate-700 lg:sl-hidden\" aria-hidden=\"true\" />\n\n <div class=\"sl-flex sl-flex-1 sl-gap-x-4 sm:sl-self-stretch lg:sl-gap-x-6\">\n <div class=\"sl-relative sl-flex sl-flex-1\">\n <slot name=\"header-content\">\n <!-- Header content -->\n </slot>\n </div>\n <div class=\"sl-flex sl-items-center sl-gap-x-4 lg:sl-gap-x-6\">\n <!-- Sidebar toggle button -->\n <button \n type=\"button\" \n class=\"sl-hidden lg:sl-flex sl-items-center sl-justify-center sl-w-8 sl-h-8 sl-rounded-md sl-text-gray-400 dark:sl-text-slate-500 hover:sl-text-gray-500 dark:hover:sl-text-slate-400 hover:sl-bg-gray-100 dark:hover:sl-bg-slate-700\"\n @click=\"toggleSidebar\"\n :title=\"isWide ? 'Collapse sidebar' : 'Expand sidebar'\"\n >\n <svg class=\"sl-w-5 sl-h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path v-if=\"isWide\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11 19l-7-7 7-7m8 14l-7-7 7-7\" />\n <path v-else stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 5l7 7-7 7M5 5l7 7-7 7\" />\n </svg>\n </button>\n \n <slot name=\"header-right\">\n <!-- Header right content (notifications, profile, etc.) -->\n </slot>\n </div>\n </div>\n </div>\n\n <!-- Page header -->\n <div v-if=\"$slots['page-header']\" class=\"sl-border-b sl-border-gray-200 dark:sl-border-slate-700 sl-bg-white dark:sl-bg-slate-800 sl-px-4 sl-py-6 sm:sl-px-6 lg:sl-px-8\">\n <slot name=\"page-header\">\n <!-- Page header content -->\n </slot>\n </div>\n\n <!-- Main content -->\n <main class=\"sl-px-4 sm:sl-px-6 lg:sl-px-8 sl-py-6\">\n <slot name=\"main\">\n <!-- Main content slot -->\n </slot>\n </main>\n\n <!-- Footer -->\n <footer v-if=\"$slots.footer\" class=\"sl-border-t sl-border-gray-200 dark:sl-border-slate-700 sl-bg-white dark:sl-bg-slate-800 sl-px-4 sl-py-6 sm:sl-px-6 lg:sl-px-8\">\n <slot name=\"footer\">\n <!-- Footer content -->\n </slot>\n </footer>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Dialog, DialogPanel, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { Bars3Icon, XMarkIcon } from '@heroicons/vue/24/outline';\n\nconst props = defineProps({\n isNarrowSidebar: {\n type: Boolean,\n default: false\n }\n});\n\nconst emit = defineEmits(['sidebar-toggle']);\n\nconst sidebarOpen = ref(false);\nconst isWide = ref(!props.isNarrowSidebar);\n\nconst closeSidebar = () => {\n sidebarOpen.value = false;\n};\n\nconst openSidebar = () => {\n sidebarOpen.value = true;\n};\n\nconst toggleSidebar = () => {\n isWide.value = !isWide.value;\n emit('sidebar-toggle', isWide.value);\n};\n</script>\n\n<style scoped>\n</style>\n"],"names":["props","__props","emit","__emit","sidebarOpen","ref","isWide","closeSidebar","openSidebar","toggleSidebar","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","TransitionRoot","Dialog","TransitionChild","_cache","_createElementVNode","_hoisted_2","DialogPanel","_hoisted_3","XMarkIcon","_hoisted_4","_hoisted_5","_renderSlot","_ctx","_hoisted_6","_hoisted_7","_hoisted_8","_normalizeClass","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","Bars3Icon","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_19","_hoisted_20","_hoisted_21","$slots","_hoisted_22","_hoisted_23","_hoisted_24"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwLA,UAAMA,IAAQC,GACRC,IAAOC,GAEPC,IAAYC,EAAwB,IAAI,GACxCC,IAAeD,EAAwB,IAAI,GAC3CE,IAAkBF,EAAwB,IAAI,GAC9CG,IAAuBH,EAAwB,IAAI,GACnDI,IAAYJ,EAAwB,IAAI,GAGxCK,IAAcL,EAAI,oBAAI,MAAM;AAClC,QAAIM,IAA4D;AAEhE,UAAMC,IAAQ;AAAA,MACZ;AAAA,MAAO;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAO;AAAA,MACpE;AAAA,MAAO;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAO;AAAA,IAAA,GAIhEC,IAAa,CAACC,MAA8B;AAChD,YAAMC,wBAAY,KAAA,GACZC,IAAW,GAAGD,EAAM,YAAA,CAAa,IAAI,OAAOA,EAAM,SAAA,IAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,OAAOA,EAAM,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AACpI,aAAOD,EAAI,SAASE;AAAA,IACtB,GAEMC,IAAc,CAACH,MAAqBL,EAAU,UAAUK,GAGxDI,IAA2BC,EAAS,MACjCC,EAAa,MAAM,KAAK,CAAAN,MAAOD,EAAWC,CAAG,CAAC,CACtD,GAGKO,IAAqBF,EAAS,MAAM;AACxC,YAAMP,IAAQF,EAAY,MAAM,SAAA,GAC1BY,IAAUZ,EAAY,MAAM,WAAA;AAElC,aAAO,GADcE,IAAQ,MAAM,EACb,IAAI,OAAOU,CAAO,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IAC5D,CAAC,GAGKC,IAA4BJ,EAAS,MAAM;AAC/C,YAAMK,IAAMd,EAAY,OAClBe,IAAeD,EAAI,SAAA,IAAa,KAAKA,EAAI,WAAA,GAEzCE,IAAW,IACXC,IAAe,KACfC,IAAY,IAEZC,IAAeJ,IAAe;AAEpC,aAAO;AAAA,QACL,KAAK,QAAQC,CAAQ,QAAQG,CAAY,MAAMD,CAAS,MAAMD,CAAY;AAAA,MAAA;AAAA,IAE9E,CAAC,GAEKG,IAAe,CAAChB,MAAqB;AACzC,MAAAL,EAAU,QAAQK,GAClBZ,EAAK,aAAaY,CAAG;AAAA,IACvB,GAEMiB,IAAoB,CAACC,MAA6B9B,EAAK,gBAAgB8B,CAAO,GAE9EZ,IAAeD,EAAS,MAAMV,EAAU,QAAQ,CAACA,EAAU,KAAK,IAAIT,EAAM,IAAI,GAG9EiC,IAAqBd,EAAS,MAAM;AACxC,YAAML,IAAMM,EAAa,MAAM,CAAC;AAChC,aAAKN,GAAK,SACHA,EAAI,OAAO,OAAO,CAAAoB,MAASC,EAAcD,CAAK,CAAC,IAD7B,CAAA;AAAA,IAE3B,CAAC,GAEKE,IAAoBjB,EAAS,MAAM;AACvC,YAAML,IAAMM,EAAa,MAAM,CAAC;AAChC,aAAKN,GAAK,SACHA,EAAI,OAAO,OAAO,OAAS,CAACqB,EAAcD,CAAK,CAAC,IAD9B,CAAA;AAAA,IAE3B,CAAC,GAGKG,IAAelB,EAAS,MAAM;AAClC,YAAML,IAAMM,EAAa,MAAM,CAAC;AAChC,aAAKN,IACEwB,EAAwBxB,EAAI,MAAMsB,EAAkB,OAAO,CAAC,IADlD,EAAE,QAAQ,CAAA,GAAI,UAAU,EAAA;AAAA,IAE3C,CAAC,GAGKG,IAAgB,CAACL,MAAuB;AAC5C,YAAMM,IAAQ,MAAMN,EAAM;AAE1B,aAAO;AAAA,QACL,MAAM,GAFKA,EAAM,SAASM,CAEb;AAAA,QACb,OAAO,GAAGA,CAAK;AAAA,MAAA;AAAA,IAEnB,GAGMC,IAAsB,MAAM;AAChC,YAAMC,IAAmBtC,EAAU,OAC7BuC,IAAsBrC,EAAa;AAEzC,UAAI,CAACoC,EAAkB;AAEvB,YAAMlB,wBAAU,KAAA,GACVoB,IAAgBpB,EAAI,SAAA,IAAa,KAAKA,EAAI,WAAA,GAG1CqB,KADmBH,EAAiB,gBAAgBC,GAAqB,gBAAgB,MACpDC,IAAiB,MACtDE,IAAsBJ,EAAiB,eAAe;AAE5D,MAAAA,EAAiB,SAAS;AAAA,QACxB,KAAK,KAAK,IAAI,GAAGG,IAAiBC,CAAmB;AAAA,QACrD,UAAU;AAAA,MAAA,CACX;AAAA,IACH,GAGMC,IAAmB,MAAM;AAC7B,MAAApC,IAAqB,YAAY,MAAM;AACrC,QAAAD,EAAY,4BAAY,KAAA;AAAA,MAC1B,GAAG,GAAK;AAER,YAAMc,wBAAU,KAAA,GACVwB,KAAqB,KAAKxB,EAAI,gBAAgB,MAAOA,EAAI,gBAAA;AAC/D,iBAAW,MAAM;AACf,QAAAd,EAAY,4BAAY,KAAA,GACpBC,KACF,cAAcA,CAAkB,GAElCA,IAAqB,YAAY,MAAM;AACrC,UAAAD,EAAY,4BAAY,KAAA;AAAA,QAC1B,GAAG,GAAK;AAAA,MACV,GAAGsC,CAAiB;AAAA,IACtB;AAEA,WAAAC,EAAU,YAAY;AACpB,MAAAF,EAAA,GAEA,MAAMG,EAAA,GACN,WAAW,MAAM;AACf,QAAAT,EAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC,GAEDU,EAAY,MAAM;AAChB,MAAIxC,MACF,cAAcA,CAAkB,GAChCA,IAAqB;AAAA,IAEzB,CAAC,cAvTCyC,EAAA,GAAAC,EA2JM,OA3JNC,IA2JM;AAAA,MA1JJC,EA8IM,OAAA;AAAA,iBA9IG;AAAA,QAAJ,KAAInD;AAAA,QAAY,OAAM;AAAA,MAAA;QAEzBmD,EAwBM,OAAA;AAAA,mBAvBA;AAAA,UAAJ,KAAIjD;AAAA,UACJ,OAAM;AAAA,QAAA;UAENiD,EAmBM,OAnBNC,IAmBM;AAAA,oBAlBJH,EAiBSI,GAAA,MAAAC,EAhBOzD,EAAA,MAAI,CAAXa,YADTuC,EAiBS,UAAA;AAAA,cAfN,KAAKvC,EAAI;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cACL,SAAK,CAAA6C,MAAE7B,EAAahB,CAAG;AAAA,YAAA;kBAErBA,EAAI,QAAQ,IAAG,KAClB,CAAA;AAAA,cAAAyC,EAQO,QAAA;AAAA,gBAPL,UAAM,4HAA0H;AAAA,kBACtGtC,EAAYH,CAAG,IAAA,wEAAA;AAAA,kBAAgGD,EAAWC,CAAG,KAAA,CAAMG,EAAYH,CAAG,IAAA,sHAAA;AAAA,gBAAA;iBAKzK8C,EAAA9C,EAAI,GAAG,GAAA,CAAA;AAAA,YAAA;;;QAOPmB,EAAA,MAAmB,SAAM,KAApCmB,KAAAC,EAmBM,OAnBNQ,IAmBM;AAAA,UAlBJN,EAiBM,OAjBNO,IAiBM;AAAA,YAhBJC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAR,EAAmH,QAAA,EAA7G,OAAM,yFAAA,GAAyF,WAAO,EAAA;AAAA,YAC5GA,EAcM,OAdNS,IAcM;AAAA,sBAbJX,EAYSI,GAAA,MAAAC,EAXSzB,EAAA,OAAkB,CAA3BC,YADTmB,EAYS,UAAA;AAAA,gBAVN,KAAG,YAAcnB,EAAM;AAAA,gBACxB,OAAM;AAAA,gBACL,OAAK+B,EAAA;AAAA,kBAAsC,iBAAA/B,EAAM,iBAAa;AAAA,kBAAuC,OAAAA,EAAM,gBAAa,SAAA;AAAA,gBAAA;gBAIxH,OAAOA,EAAM;AAAA,gBACb,SAAK,CAAAyB,MAAE5B,EAAkBG,EAAM,EAAE;AAAA,cAAA,GAE/B0B,EAAA1B,EAAM,IAAI,GAAA,IAAAgC,EAAA;;;;QAMrBX,EA2FM,OA3FNY,IA2FM;AAAA,0BAzFJZ,EAAuH,OAAA,EAAlH,OAAM,0GAAA,GAAyG,MAAA,EAAA;AAAA,UAEpHA,EAsFM,OAtFNa,IAsFM;AAAA,YApFJb,EAaM,OAbNc,IAaM;AAAA,cATJd,EAAyD,OAAA;AAAA,yBAAhD;AAAA,gBAAJ,KAAIhD;AAAA,gBAAkB,OAAM;AAAA,cAAA;oBACjC8C,EAOWI,GAAA,MAAAC,EAPc9C,GAAK,CAAb0D,wBAAqBA,KAAI;AAAA,gBACxCf,EAIM,OAJNgB,IAIM;AAAA,kBAHJhB,EAEM,OAFNiB,IAEMZ,EADDU,CAAI,GAAA,CAAA;AAAA,gBAAA;gCAGXf,EAAO,OAAA,MAAA,MAAA,EAAA;AAAA,cAAA;;YAMHrC,EAAA,cADRmC,EAkBM,OAAA;AAAA;uBAhBA;AAAA,cAAJ,KAAI7C;AAAA,cACJ,OAAM;AAAA,cACL,SAAOe,EAAA,KAAyB;AAAA,YAAA;cAEjCgC,EAWM,OAXNkB,IAWM;AAAA,gBATJlB,EAIM,OAJNmB,IAIM;AAAA,kBAHJnB,EAEO,QAFPoB,IAEOf,EADFvC,EAAA,KAAkB,GAAA,CAAA;AAAA,gBAAA;gCAIzBkC,EAAqF,OAAA,EAAhF,OAAM,wEAAA,GAAuE,MAAA,EAAA;AAAA,gCAElFA,EAA6D,OAAA,EAAxD,OAAM,mDAA+C,MAAA,EAAA;AAAA,cAAA;;YAK9DA,EA8CK,MA9CLqB,IA8CK;AAAA,eAzCHxB,EAAA,EAAA,GAAAC,EAiCSI,GAAA,MAAAC,EAhCUrB,EAAA,MAAa,SAAvBwC,YADTxB,EAiCS,MAAA;AAAA,gBA/BN,KAAKwB,EAAO;AAAA,gBACb,OAAM;AAAA,gBACL,OAAKZ,EAAA;AAAA,kBAAuB,GAAA1B,EAAcsC,CAAM;AAAA,0CAA4CA,EAAO,aAAa,SAAA,SAAkBA,EAAO,aAAa,WAAA,KAAU,OAAA,GAAA;AAAA,kCAAqEC,EAAAC,EAAA,EAAkBF,EAAO,aAAa,YAAA,GAAeA,EAAO,WAAW,YAAA,CAAW,CAAA;AAAA,gBAAA;;gBAMxTtB,EAsBa,UAAA;AAAA,kBArBV,SAAK,CAAAI,MAAE5B,EAAkB8C,EAAO,EAAE;AAAA,kBACnC,OAAM;AAAA,kBACL,OAAKZ,EAAA;AAAA,oBAAwC,iBAAAY,EAAO,gBAAa,GAAMA,EAAO,aAAa,OAAA;AAAA,oBAAgD,YAAAA,EAAO,gBAAa,aAAgBA,EAAO,aAAa,KAAA;AAAA,kBAAA;;kBAKpMtB,EAEI,KAAA;AAAA,oBAFD,OAAM;AAAA,oBAA+B,OAAKU,EAAA,EAAA,OAAWY,EAAO,iBAAa,WAAA;AAAA,kBAAA,GACvEjB,EAAAiB,EAAO,IAAI,GAAA,CAAA;AAAA,kBAEhBtB,EAII,KAJJyB,IAII;AAAA,oBAHFzB,EAA0E,QAAA;AAAA,sBAAnE,UAAUsB,EAAO;AAAA,oBAAA,KAAaC,EAAAG,CAAA,EAAWJ,EAAO,QAAQ,CAAA,GAAA,GAAAK,EAAA;AAAA,oBACnDL,EAAO,SAAS,iBAA5BxB,EAAyF,QAAA8B,IAAnD,QAAGvB,EAAGkB,EAAAG,CAAA,EAAWJ,EAAO,QAAQ,QAAQ,CAAA,GAAA,CAAA;oBAClEA,EAAO,WAAW,iBAA9BzB,EAAA,GAAAC,EAAyF,QAAA+B,IAAAxB,EAAxCiB,EAAO,UAAU,aAAa,GAAA,CAAA;;kBAEvEA,EAAO,+BAAjBxB,EAEI,KAFJgC,IAAkG,iCAElG;AAAA,kBACUR,EAAO,6BAAjBxB,EAEQ,KAFRiC,IAAgG,2BAE5F;AAAA;;cAKEjD,EAAA,MAAa,WAAQ,KAA/Be,KAAAC,EAIK,MAJLkC,IAIK;AAAA,gBAHHhC,EAEO,QAFPiC,IAA0K,SACpKnD,EAAA,MAAa,QAAQ,IAAG,UAC9B,CAAA;AAAA,cAAA;;;;;MAQVkB,EAQI,OARJkC,IAQI;AAAA,QAPFC,EAMOC,yBANP,MAMO;AAAA,0BAJLpC,EAGM,OAAA,EAHD,OAAM,uEAAmE;AAAA,YAC5EA,EAA2C,KAAA,EAAxC,OAAM,iBAAA,GAAiB,eAAa;AAAA,YACvCA,EAA2E,KAAA,EAAxE,OAAM,qBAAA,GAAqB,2CAAyC;AAAA,UAAA;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js","sources":["../src/components/layouts/DefaultLayout.vue"],"sourcesContent":["<template>\n <div class=\"sl-relative\">\n <!-- Header with title -->\n <div v-if=\"title\" class=\"sl-py-16 lg:sl-ml-12 sl-mx-2\">\n <div class=\"sl-mx-auto sl-max-w-7xl\">\n <div class=\"sl-mx-auto sl-max-w-2xl lg:sl-mx-0\">\n <h1 :class=\"titleClass\">{{ title }}</h1>\n <p v-if=\"subtitle\" :class=\"subtitleClass\" class=\"sl-mt-6\">{{ subtitle }}</p>\n <div class=\"sl-h-2\">\n <template v-if=\"$slots.bottomCaption\">\n <div class=\"sl-mt-1\">\n <slot name=\"bottomCaption\"></slot>\n </div>\n </template>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Header without title - for right slot only -->\n <header v-else-if=\"!title && $slots.right\" class=\"sl-mx-auto sl-z-50 sl-flex sl-h-16 lg:sl-h-16 sl-border-gray-900/10\">\n <div class=\"sl-flex sl-h-16 lg:sl-h-16 sl-w-full sl-px-4 sm:sl-px-6 lg:sl-px-8 sl-justify-between\">\n <div class=\"sl-hidden lg:sl-flex lg:sl-justify-start lg:sl-items-center\">\n <!-- Empty space to match positioning -->\n </div>\n <div class=\"sl-flex sl-justify-end sl-items-center sl-ml-auto\">\n <slot name=\"right\"></slot>\n </div>\n </div>\n </header>\n\n <!-- Main content slot -->\n <template v-if=\"$slots.main\">\n <div class=\"lg:sl-mx-12 sl-mx-2 sl-pb-16\">\n <slot name=\"main\"></slot>\n </div>\n </template>\n\n <!-- Container slot -->\n <template v-if=\"$slots.container\">\n <div :class=\"!title ? 'sl-my-4 sm:sl-py-12' : 'sl-pb-12'\">\n <slot name=\"container\"></slot>\n </div>\n </template>\n\n <!-- Home slot -->\n <template v-if=\"$slots.home\">\n <slot name=\"home\"></slot>\n </template>\n\n <!-- Default slot -->\n <template v-if=\"$slots.default\">\n <div class=\"lg:sl-mx-12 sl-mx-2 sl-pb-16\">\n <slot></slot>\n </div>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineProps({\n title: {\n type: String,\n required: false,\n default: ''\n },\n titleClass: {\n type: String,\n default: 'sl-text-4xl sl-font-bold sl-tracking-tight sl-text-gray-800'\n },\n subtitle: {\n type: String,\n required: false,\n default: ''\n },\n subtitleClass: {\n type: String,\n default: 'sl-text-lg sl-leading-8 sl-text-gray-600'\n }\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","__props","_hoisted_2","_createElementVNode","_hoisted_3","_hoisted_4","_normalizeClass","_hoisted_5","$slots","_hoisted_6","_renderSlot","_ctx","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBACEA,EAAA,GAAAC,EAuDM,OAvDNC,GAuDM;AAAA,MArDOC,EAAA,SAAXH,EAAA,GAAAC,EAcM,OAdNG,GAcM;AAAA,QAbJC,EAYM,OAZNC,GAYM;AAAA,UAXJD,EAUM,OAVNE,GAUM;AAAA,YATJF,EAAwC,MAAA;AAAA,cAAnC,SAAOF,EAAA,UAAU;AAAA,YAAA,KAAKA,EAAA,KAAK,GAAA,CAAA;AAAA,YACvBA,EAAA,iBAATF,EAA4E,KAAA;AAAA;cAAxD,OAAKO,EAAA,CAAEL,EAAA,eAAqB,SAAS,CAAA;AAAA,YAAA,KAAIA,EAAA,QAAQ,GAAA,CAAA;YACrEE,EAMM,OANNI,GAMM;AAAA,cALYC,EAAAA,OAAO,iBACrBV,KAAAC,EAEM,OAFNU,GAEM;AAAA,gBADJC,EAAkCC,EAAA,QAAA,eAAA;AAAA,cAAA;;;;aAS1BV,EAAA,SAASO,EAAAA,OAAO,SAApCV,EAAA,GAAAC,EASS,UATTa,GASS;AAAA,QARPT,EAOM,OAPNU,GAOM;AAAA,0BANJV,EAEM,OAAA,EAFD,OAAM,8DAAA,GAA6D,MAAA,EAAA;AAAA,UAGxEA,EAEM,OAFNW,GAEM;AAAA,YADJJ,EAA0BC,EAAA,QAAA,OAAA;AAAA,UAAA;;;MAMhBH,EAAAA,OAAO,QACrBV,KAAAC,EAEM,OAFNgB,GAEM;AAAA,QADJL,EAAyBC,EAAA,QAAA,MAAA;AAAA,MAAA;MAKbH,EAAAA,OAAO,kBACrBT,EAEM,OAAA;AAAA;QAFA,SAAQE,EAAA,QAAK,aAAA,qBAAA;AAAA,MAAA;QACjBS,EAA8BC,EAAA,QAAA,WAAA;AAAA,MAAA;MAKlBH,EAAAA,OAAO,OACrBE,EAAyBC,EAAA,QAAA,QAAA,EAAA,KAAA,EAAA,CAAA;MAIXH,EAAAA,OAAO,WACrBV,KAAAC,EAEM,OAFNiB,GAEM;AAAA,QADJN,EAAaC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}
|