@stachelock/ui 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js → AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js} +2 -2
- package/dist/{AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js.map → AlertModal.vue_vue_type_script_setup_true_lang-C6q8Mpl4.js.map} +1 -1
- package/dist/{BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js → BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js} +6 -6
- package/dist/{BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js.map → BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-C8msTrTn.js.map} +1 -1
- package/dist/{BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js → BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js} +19 -19
- package/dist/{BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js.map → BarChart.vue_vue_type_script_setup_true_lang-xCb0DCbf.js.map} +1 -1
- package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js → BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js} +5 -6
- package/dist/{BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js.map → BaseModal.vue_vue_type_script_setup_true_lang-B67Pt3tW.js.map} +1 -1
- package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js → CalendarHeader.vue_vue_type_script_setup_true_lang-CkSUiLOH.js} +109 -108
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-CkSUiLOH.js.map +1 -0
- package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js +187 -0
- package/dist/{CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js.map → CheckboxInput.vue_vue_type_script_setup_true_lang-BikR9rgi.js.map} +1 -1
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-kEj-NYqm.js +1362 -0
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-kEj-NYqm.js.map +1 -0
- package/dist/{ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js → ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js} +19 -19
- package/dist/{ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js.map → ComingSoon.vue_vue_type_script_setup_true_lang-CJ8FXE42.js.map} +1 -1
- package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js → DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js} +7 -8
- package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js.map → DashboardLayout.vue_vue_type_script_setup_true_lang-B0M6-9os.js.map} +1 -1
- package/dist/DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js.map +1 -1
- package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js → DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js} +47 -47
- package/dist/{DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js.map → DayCalendar.vue_vue_type_script_setup_true_lang-8al4Fotu.js.map} +1 -1
- package/dist/{DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js → DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js} +38 -38
- package/dist/{DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js.map → DisclosureWrapper.vue_vue_type_script_setup_true_lang-C7y2bNhW.js.map} +1 -1
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js +253 -0
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-CxSaO5Cl.js.map +1 -0
- package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js → DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js} +16 -16
- package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-CSLSRFM7.js.map +1 -0
- package/dist/EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js +122 -0
- package/dist/{EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js.map → EmailInput.vue_vue_type_script_setup_true_lang-BicPMIop.js.map} +1 -1
- package/dist/{EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js → EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js} +9 -9
- package/dist/{EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js.map → EmptyInput.vue_vue_type_script_setup_true_lang-FWDCFF2c.js.map} +1 -1
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-7mcKkOWP.js +74 -0
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-7mcKkOWP.js.map +1 -0
- package/dist/{EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js → EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js} +30 -31
- package/dist/{EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js.map → EventsList.vue_vue_type_script_setup_true_lang-MhuVi5u8.js.map} +1 -1
- package/dist/{FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js → FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js} +12 -12
- package/dist/{FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js.map → FunnelChart.vue_vue_type_script_setup_true_lang-B4pH6xCV.js.map} +1 -1
- package/dist/{HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js → HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js} +10 -10
- package/dist/{HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js.map → HiddenInput.vue_vue_type_script_setup_true_lang-PtGZ4eLW.js.map} +1 -1
- package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js → InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js} +29 -29
- package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js.map → InlineTabs.vue_vue_type_script_setup_true_lang-CD0lnkUm.js.map} +1 -1
- package/dist/{LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js → LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js} +17 -17
- package/dist/{LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js.map → LineChart.vue_vue_type_script_setup_true_lang-DJo0edLJ.js.map} +1 -1
- package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js +36 -0
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js.map → LottieAnimation.vue_vue_type_script_setup_true_lang-swmHdR0_.js.map} +1 -1
- package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js → MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js} +2 -2
- package/dist/{MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js.map → MonthCalendar.vue_vue_type_style_index_0_lang-Cyzq7A9j.js.map} +1 -1
- package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js +30 -0
- package/dist/{NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js.map → NavigationGroup.vue_vue_type_script_setup_true_lang-BWq5fpEm.js.map} +1 -1
- package/dist/{NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js → NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js} +18 -18
- package/dist/{NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js.map → NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js.map} +1 -1
- package/dist/NotificationContainer.vue_vue_type_style_index_0_lang-DSfNw4Ge.js +110 -0
- package/dist/NotificationContainer.vue_vue_type_style_index_0_lang-DSfNw4Ge.js.map +1 -0
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-CU__ORw8.js +238 -0
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-CU__ORw8.js.map +1 -0
- package/dist/{PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js → PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js} +12 -12
- package/dist/{PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js.map → PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js.map} +1 -1
- package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js +130 -0
- package/dist/{ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js.map → ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js.map} +1 -1
- package/dist/{ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js → ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js} +24 -24
- package/dist/{ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js.map → ProjectLogo.vue_vue_type_script_setup_true_lang-DYjp-RNh.js.map} +1 -1
- package/dist/{SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js → SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js} +111 -111
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js.map +1 -0
- package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js → SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js} +2 -2
- package/dist/{SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js.map → SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js.map} +1 -1
- package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js → SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js} +9 -10
- package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js.map → SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js.map} +1 -1
- package/dist/{SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js → SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js} +17 -17
- package/dist/{SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js.map → SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js.map} +1 -1
- package/dist/{StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js → StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js} +40 -40
- package/dist/{StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js.map → StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js.map} +1 -1
- package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js → StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js} +38 -38
- package/dist/{StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js.map → StepperPanels.vue_vue_type_script_setup_true_lang-D6Fv7iz3.js.map} +1 -1
- package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js → SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js} +110 -108
- package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js.map → SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js.map} +1 -1
- package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js → SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js} +2 -2
- package/dist/{SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js.map → SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js.map} +1 -1
- package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js → TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js} +3 -3
- package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js.map → TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js.map} +1 -1
- package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js → TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js} +32 -32
- package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js.map → TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js.map} +1 -1
- package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js → TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js} +21 -21
- package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js.map → TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js.map} +1 -1
- package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js → TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js} +2 -2
- package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-Da6-pRJ2.js.map +1 -0
- package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js → TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js} +47 -47
- package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js.map → TextAreaInput.vue_vue_type_script_setup_true_lang-Cf0MJobG.js.map} +1 -1
- package/dist/{UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js → UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js} +36 -36
- package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-WVY6JbUL.js.map +1 -0
- package/dist/{UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js → UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js} +19 -19
- package/dist/{UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js.map → UiBadge.vue_vue_type_script_setup_true_lang-DOtbLb9x.js.map} +1 -1
- package/dist/{UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js → UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js} +28 -28
- package/dist/{UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js.map → UiButtonGroup.vue_vue_type_script_setup_true_lang-CVwXB-cb.js.map} +1 -1
- package/dist/{UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js → UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js} +37 -37
- package/dist/{UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js.map → UiCheckbox.vue_vue_type_script_setup_true_lang-BxyM_F-V.js.map} +1 -1
- package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js → UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js} +42 -42
- package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js.map → UiLoading.vue_vue_type_script_setup_true_lang-rNvtzKbq.js.map} +1 -1
- package/dist/{UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js → UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js} +74 -74
- package/dist/{UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js.map → UiMenu.vue_vue_type_script_setup_true_lang-bQdfCzk6.js.map} +1 -1
- package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js → UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js} +9 -10
- package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js.map → UiModal.vue_vue_type_script_setup_true_lang-CpwFUDVU.js.map} +1 -1
- package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js → UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js} +2 -2
- package/dist/{UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js.map → UiNavLink.vue_vue_type_script_setup_true_lang-DnWMn40M.js.map} +1 -1
- package/dist/{UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js → UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js} +24 -24
- package/dist/{UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js.map → UiProgressBar.vue_vue_type_script_setup_true_lang-BCh4orZW.js.map} +1 -1
- package/dist/{UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js → UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js} +80 -83
- package/dist/UiTable.vue_vue_type_script_setup_true_lang-xGAiJ9rS.js.map +1 -0
- package/dist/{UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js → UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js} +15 -15
- package/dist/{UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js.map → UiTransition.vue_vue_type_script_setup_true_lang-C4jb9I-3.js.map} +1 -1
- package/dist/{YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js → YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js} +15 -15
- package/dist/{YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js.map → YearCalendar.vue_vue_type_script_setup_true_lang-CfKSpLLN.js.map} +1 -1
- package/dist/{calendar-DyIP7WGv.js → calendar-BlSSD4nO.js} +2 -2
- package/dist/calendar-BlSSD4nO.js.map +1 -0
- package/dist/calendars/CalendarDashboard.d.ts +1 -3
- package/dist/calendars/CalendarDashboard.js +34 -36
- package/dist/calendars/CalendarDashboard.js.map +1 -1
- package/dist/calendars/CalendarHeader.d.ts +1 -3
- package/dist/calendars/CalendarHeader.js +1 -1
- package/dist/calendars/DayCalendar.d.ts +1 -3
- package/dist/calendars/DayCalendar.js +1 -1
- package/dist/calendars/EventCard.d.ts +1 -3
- package/dist/calendars/EventsList.d.ts +1 -3
- package/dist/calendars/EventsList.js +1 -1
- package/dist/calendars/MonthCalendar.d.ts +1 -3
- package/dist/calendars/MonthCalendar.js +1 -1
- package/dist/calendars/WeekCalendar.d.ts +1 -3
- package/dist/calendars/WeekCalendar.js +118 -118
- package/dist/calendars/WeekCalendar.js.map +1 -1
- package/dist/calendars/YearCalendar.d.ts +1 -3
- package/dist/calendars/YearCalendar.js +1 -1
- package/dist/charts/BarChart.d.ts +1 -3
- package/dist/charts/BarChart.js +1 -1
- package/dist/charts/BaseChart.d.ts +1 -3
- package/dist/charts/BaseChart.js +54 -54
- package/dist/charts/BaseChart.js.map +1 -1
- package/dist/charts/FunnelChart.d.ts +1 -3
- package/dist/charts/FunnelChart.js +1 -1
- package/dist/charts/LineChart.d.ts +1 -3
- package/dist/charts/LineChart.js +1 -1
- package/dist/charts/PieChart.d.ts +1 -3
- package/dist/charts/PieChart.js +1 -1
- package/dist/charts/SparklineChart.d.ts +1 -3
- package/dist/charts/SparklineChart.js +1 -1
- package/dist/charts/StatCard.d.ts +1 -3
- package/dist/charts/StatCard.js +1 -1
- package/dist/charts/chartTheme.d.ts +3 -0
- package/dist/charts/index.d.ts +1 -0
- package/dist/charts/index.js +6 -6
- package/dist/components/Avatar.d.ts +1 -3
- package/dist/components/Avatar.js +1 -1
- package/dist/components/Badge.d.ts +1 -3
- package/dist/components/Badge.js +1 -1
- package/dist/components/Banner.d.ts +1 -3
- package/dist/components/Banner.js +69 -69
- package/dist/components/Banner.js.map +1 -1
- package/dist/components/Breadcrumb.d.ts +1 -3
- package/dist/components/Breadcrumb.js +5 -5
- package/dist/components/Breadcrumb.js.map +1 -1
- package/dist/components/Button.d.ts +1 -3
- package/dist/components/Button.js +29 -29
- package/dist/components/Button.js.map +1 -1
- package/dist/components/ButtonGroup.d.ts +1 -3
- package/dist/components/ButtonGroup.js +1 -1
- package/dist/components/Checkbox.d.ts +1 -3
- package/dist/components/Checkbox.js +1 -1
- package/dist/components/CloudinaryImage.d.ts +1 -3
- package/dist/components/Loading.d.ts +1 -3
- package/dist/components/Loading.js +1 -1
- package/dist/components/LoadingDots.d.ts +1 -3
- package/dist/components/LottieAnimation.d.ts +1 -3
- package/dist/components/LottieAnimation.js +1 -1
- package/dist/components/Menu.d.ts +1 -3
- package/dist/components/Menu.js +1 -1
- package/dist/components/Modal.d.ts +1 -3
- package/dist/components/Modal.js +1 -1
- package/dist/components/NavLink.d.ts +1 -3
- package/dist/components/NavLink.js +1 -1
- package/dist/components/ProgressBar.d.ts +1 -3
- package/dist/components/ProgressBar.js +1 -1
- package/dist/components/RadialProgressBar.d.ts +1 -3
- package/dist/components/RadialProgressBar.js +1 -1
- package/dist/components/Table.d.ts +1 -3
- package/dist/components/Table.js +1 -1
- package/dist/components/Transition.d.ts +1 -3
- package/dist/components/Transition.js +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/useCalendar.d.ts +3 -0
- package/dist/composables/useCalendar.js +1 -1
- package/dist/composables/useFormValidation.d.ts +3 -0
- package/dist/composables/useMap.d.ts +3 -0
- package/dist/composables/useModal.d.ts +3 -0
- package/dist/composables/useNotifications.d.ts +3 -0
- package/dist/composables/useNotifications.js +221 -58
- package/dist/composables/useNotifications.js.map +1 -1
- package/dist/composables/useTabs.d.ts +1 -0
- package/dist/composables/useTheme.d.ts +3 -0
- package/dist/{dialog-B2WA4G25.js → dialog-BJ2Ld8l3.js} +2 -2
- package/dist/{dialog-B2WA4G25.js.map → dialog-BJ2Ld8l3.js.map} +1 -1
- package/dist/empty-state/ComingSoon.d.ts +1 -3
- package/dist/empty-state/ComingSoon.js +1 -1
- package/dist/empty-state/EmptyState.d.ts +1 -3
- package/dist/empty-state/EmptyState.js +1 -1
- package/dist/empty-state/index.d.ts +1 -0
- package/dist/empty-state/index.js +2 -2
- package/dist/forms/DynamicForm.d.ts +1 -3
- package/dist/forms/DynamicForm.js +1 -1
- package/dist/forms/DynamicFormField.d.ts +1 -3
- package/dist/forms/DynamicFormField.js +1 -1
- package/dist/forms/FormFieldWrapper.d.ts +1 -3
- package/dist/forms/FormFieldWrapper.js +56 -56
- package/dist/forms/FormFieldWrapper.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +559 -565
- package/dist/index.js.map +1 -1
- package/dist/inputs/AddDeleteButtonGroup.d.ts +1 -3
- package/dist/inputs/CheckboxInput.d.ts +1 -3
- package/dist/inputs/CheckboxInput.js +1 -1
- package/dist/inputs/ComboboxInput.d.ts +1 -3
- package/dist/inputs/ComboboxInput.js +1 -1
- package/dist/inputs/DatepickerInput.d.ts +1 -3
- package/dist/inputs/EmailInput.d.ts +1 -3
- package/dist/inputs/EmailInput.js +1 -1
- package/dist/inputs/EmptyInput.d.ts +1 -3
- package/dist/inputs/EmptyInput.js +1 -1
- package/dist/inputs/FileDropzoneInput.d.ts +1 -3
- package/dist/inputs/HiddenInput.d.ts +1 -3
- package/dist/inputs/HiddenInput.js +1 -1
- package/dist/inputs/PhoneInput.d.ts +1 -3
- package/dist/inputs/PhoneInput.js +33 -23
- package/dist/inputs/PhoneInput.js.map +1 -1
- package/dist/inputs/RichTextInput.d.ts +1 -3
- package/dist/inputs/RichTextInput.js +693 -693
- package/dist/inputs/RichTextInput.js.map +1 -1
- package/dist/inputs/SelectInput.d.ts +1 -3
- package/dist/inputs/SelectInput.js +1 -1
- package/dist/inputs/SelectTextInput.d.ts +1 -3
- package/dist/inputs/SelectTextInput.js +1 -1
- package/dist/inputs/SwitchInput.d.ts +1 -3
- package/dist/inputs/SwitchInput.js +1 -1
- package/dist/inputs/SwitchInputGroup.d.ts +1 -3
- package/dist/inputs/SwitchInputGroup.js +1 -1
- package/dist/inputs/TagifyInput.d.ts +1 -3
- package/dist/inputs/TagifyInput.js +1 -1
- package/dist/inputs/TextAreaInput.d.ts +1 -3
- package/dist/inputs/TextAreaInput.js +1 -1
- package/dist/inputs/TextInput.d.ts +1 -3
- package/dist/inputs/TextInput.js +43 -43
- package/dist/inputs/TextInput.js.map +1 -1
- package/dist/layouts/DashboardLayout.d.ts +1 -3
- package/dist/layouts/DashboardLayout.js +1 -1
- package/dist/layouts/DefaultLayout.d.ts +1 -3
- package/dist/layouts/HeaderLayout.d.ts +1 -3
- package/dist/layouts/NavigationGroup.d.ts +1 -3
- package/dist/layouts/NavigationGroup.js +1 -1
- package/dist/layouts/NavigationItem.d.ts +1 -3
- package/dist/layouts/NavigationItem.js +1 -1
- package/dist/layouts/ProfileHeaderAvatar.d.ts +1 -3
- package/dist/layouts/ProfileHeaderAvatar.js +1 -1
- package/dist/layouts/ProjectLogo.d.ts +1 -3
- package/dist/layouts/ProjectLogo.js +1 -1
- package/dist/layouts/SidebarLayout.d.ts +1 -3
- package/dist/layouts/SidebarLayout.js +1 -1
- package/dist/{listbox-p2_4hUSD.js → listbox-YaWWZiiG.js} +2 -2
- package/dist/{listbox-p2_4hUSD.js.map → listbox-YaWWZiiG.js.map} +1 -1
- package/dist/loading/ContentSkeleton.d.ts +1 -3
- package/dist/loading/ContentSkeleton.js +32 -32
- package/dist/loading/ContentSkeleton.js.map +1 -1
- package/dist/loading/SmartLoadingIndicator.d.ts +1 -3
- package/dist/loading/SmartLoadingIndicator.js +92 -92
- package/dist/loading/SmartLoadingIndicator.js.map +1 -1
- package/dist/loading/index.d.ts +1 -0
- package/dist/maps/GoogleMap.d.ts +1 -3
- package/dist/maps/GoogleMap.js +2 -2
- package/dist/maps/GoogleMap.js.map +1 -1
- package/dist/maps/UiInfoWindow.d.ts +1 -3
- package/dist/maps/UiMap.d.ts +1 -3
- package/dist/maps/UiMap.js +18 -15
- package/dist/maps/UiMap.js.map +1 -1
- package/dist/maps/UiMapAll.d.ts +1 -3
- package/dist/maps/UiMapMarker.d.ts +1 -3
- package/dist/maps/index.d.ts +1 -0
- package/dist/modals/AlertModal.d.ts +1 -3
- package/dist/modals/AlertModal.js +1 -1
- package/dist/modals/BaseModal.d.ts +1 -3
- package/dist/modals/BaseModal.js +1 -1
- package/dist/modals/ImageCropperModal.d.ts +1 -3
- package/dist/modals/ImageCropperModal.js +182 -185
- package/dist/modals/ImageCropperModal.js.map +1 -1
- package/dist/notifications/NotificationContainer.d.ts +1 -3
- package/dist/notifications/NotificationContainer.js +2 -22
- package/dist/notifications/NotificationContainer.js.map +1 -1
- package/dist/notifications/NotificationToast.d.ts +1 -3
- package/dist/notifications/NotificationToast.js +1 -1
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.js +4 -4
- package/dist/src/components/CloudinaryImage.d.ts +7 -9
- package/dist/src/components/LottieAnimation.d.ts +6 -38
- package/dist/src/components/ThemeDebugModal.d.ts +6 -17
- package/dist/src/components/UiAvatar.d.ts +26 -37
- package/dist/src/components/UiBadge.d.ts +6 -34
- package/dist/src/components/UiBanner.d.ts +34 -108
- package/dist/src/components/UiBreadcrumb.d.ts +10 -12
- package/dist/src/components/UiButton.d.ts +13 -67
- package/dist/src/components/UiButtonGroup.d.ts +7 -38
- package/dist/src/components/UiCheckbox.d.ts +8 -34
- package/dist/src/components/UiLoading.d.ts +2 -29
- package/dist/src/components/UiLoadingDots.d.ts +1 -2
- package/dist/src/components/UiMenu.d.ts +4 -33
- package/dist/src/components/UiModal.d.ts +3 -3
- package/dist/src/components/UiNavLink.d.ts +6 -41
- package/dist/src/components/UiProgressBar.d.ts +3 -33
- package/dist/src/components/UiRadialProgressBar.d.ts +3 -35
- package/dist/src/components/UiTable.d.ts +25 -68
- package/dist/src/components/UiTransition.d.ts +3 -27
- package/dist/src/components/calendars/CalendarDashboard.d.ts +5 -18
- package/dist/src/components/calendars/CalendarHeader.d.ts +8 -8
- package/dist/src/components/calendars/DayCalendar.d.ts +11 -18
- package/dist/src/components/calendars/EventCard.d.ts +1 -3
- package/dist/src/components/calendars/EventsList.d.ts +6 -19
- package/dist/src/components/calendars/MonthCalendar.d.ts +6 -31
- package/dist/src/components/calendars/WeekCalendar.d.ts +10 -17
- package/dist/src/components/calendars/YearCalendar.d.ts +5 -30
- package/dist/src/components/calendars/index.d.ts +0 -1
- package/dist/src/components/charts/BarChart.d.ts +6 -40
- package/dist/src/components/charts/FunnelChart.d.ts +5 -35
- package/dist/src/components/charts/LineChart.d.ts +6 -38
- package/dist/src/components/charts/PieChart.d.ts +6 -38
- package/dist/src/components/charts/SparklineChart.d.ts +3 -33
- package/dist/src/components/charts/StatCard.d.ts +2 -25
- package/dist/src/components/charts/chartTheme.d.ts +0 -2
- package/dist/src/components/charts/index.d.ts +0 -1
- package/dist/src/components/empty-state/ComingSoon.d.ts +2 -30
- package/dist/src/components/empty-state/EmptyState.d.ts +4 -27
- package/dist/src/components/empty-state/index.d.ts +0 -1
- package/dist/src/components/forms/DynamicForm.d.ts +21 -48
- package/dist/src/components/forms/DynamicFormField.d.ts +8 -19
- package/dist/src/components/forms/FormFieldWrapper.d.ts +14 -59
- package/dist/src/components/forms/index.d.ts +0 -1
- package/dist/src/components/index.d.ts +0 -1
- package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts +3 -5
- package/dist/src/components/inputs/CheckboxInput.d.ts +10 -38
- package/dist/src/components/inputs/ComboboxInput.d.ts +13 -49
- package/dist/src/components/inputs/DatepickerInput.d.ts +1045 -43
- package/dist/src/components/inputs/EmailInput.d.ts +10 -55
- package/dist/src/components/inputs/EmptyInput.d.ts +2 -27
- package/dist/src/components/inputs/FileDropzoneInput.d.ts +8 -8
- package/dist/src/components/inputs/HiddenInput.d.ts +2 -24
- package/dist/src/components/inputs/InputsShowcase.d.ts +1 -2
- package/dist/src/components/inputs/PhoneInput.d.ts +79 -17
- package/dist/src/components/inputs/RichTextInput.d.ts +22 -81
- package/dist/src/components/inputs/SelectInput.d.ts +49 -43
- package/dist/src/components/inputs/SelectTextInput.d.ts +52 -13
- package/dist/src/components/inputs/SwitchInput.d.ts +115 -43
- package/dist/src/components/inputs/SwitchInputGroup.d.ts +2 -4
- package/dist/src/components/inputs/TagifyInput.d.ts +30 -21
- package/dist/src/components/inputs/TextAreaInput.d.ts +9 -36
- package/dist/src/components/inputs/TextInput.d.ts +13 -74
- package/dist/src/components/inputs/index.d.ts +0 -1
- package/dist/src/components/layouts/CardLayout.d.ts +20 -67
- package/dist/src/components/layouts/DashboardLayout.d.ts +8 -6
- package/dist/src/components/layouts/DefaultLayout.d.ts +1 -2
- package/dist/src/components/layouts/HeaderLayout.d.ts +4 -5
- package/dist/src/components/layouts/InfoCard.d.ts +2 -26
- package/dist/src/components/layouts/NavigationGroup.d.ts +5 -17
- package/dist/src/components/layouts/NavigationItem.d.ts +7 -25
- package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts +10 -41
- package/dist/src/components/layouts/ProjectLogo.d.ts +2 -34
- package/dist/src/components/layouts/PropsTable.d.ts +2 -24
- package/dist/src/components/layouts/ShowcaseCard.d.ts +2 -30
- package/dist/src/components/layouts/ShowcaseLayout.d.ts +5 -29
- package/dist/src/components/layouts/SidebarLayout.d.ts +7 -5
- package/dist/src/components/layouts/StateDisplay.d.ts +2 -24
- package/dist/src/components/layouts/index.d.ts +0 -1
- package/dist/src/components/loading/ContentSkeleton.d.ts +2 -32
- package/dist/src/components/loading/SmartLoadingIndicator.d.ts +6 -48
- package/dist/src/components/loading/index.d.ts +0 -1
- package/dist/src/components/maps/GoogleMap.d.ts +7 -9
- package/dist/src/components/maps/UiInfoWindow.d.ts +229 -15
- package/dist/src/components/maps/UiMap.d.ts +5091 -102
- package/dist/src/components/maps/UiMapAll.d.ts +1130 -21
- package/dist/src/components/maps/UiMapMarker.d.ts +16 -18
- package/dist/src/components/maps/index.d.ts +0 -1
- package/dist/src/components/modals/AlertModal.d.ts +9 -11
- package/dist/src/components/modals/BaseModal.d.ts +6 -8
- package/dist/src/components/modals/ImageCropperModal.d.ts +379 -76
- package/dist/src/components/modals/index.d.ts +0 -1
- package/dist/src/components/notifications/NotificationContainer.d.ts +0 -1
- package/dist/src/components/notifications/NotificationToast.d.ts +9 -19
- package/dist/src/components/notifications/index.d.ts +0 -1
- package/dist/src/components/stepper/StepperPanels.d.ts +4 -15
- package/dist/src/components/stepper/index.d.ts +0 -1
- package/dist/src/components/tabs/InlineTabs.d.ts +4 -29
- package/dist/src/components/tabs/TabGroup.d.ts +6 -33
- package/dist/src/components/tabs/TabGroupUnderline.d.ts +6 -33
- package/dist/src/components/tabs/TabsInPills.d.ts +4 -27
- package/dist/src/components/tabs/index.d.ts +0 -1
- package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts +2 -38
- package/dist/src/components/wrappers/CardWrapper.d.ts +1 -2
- package/dist/src/components/wrappers/DisclosureWrapper.d.ts +2 -24
- package/dist/src/components/wrappers/FormErrorWrapper.d.ts +2 -26
- package/dist/src/components/wrappers/index.d.ts +0 -1
- package/dist/src/composables/index.d.ts +0 -1
- package/dist/src/composables/useCalendar.d.ts +4 -6
- package/dist/src/composables/useEventSegments.d.ts +0 -1
- package/dist/src/composables/useFormValidation.d.ts +0 -2
- package/dist/src/composables/useMap.d.ts +0 -2
- package/dist/src/composables/useModal.d.ts +0 -1
- package/dist/src/composables/useNotifications.d.ts +1308 -31
- package/dist/src/composables/useSimpleTabs.d.ts +0 -2
- package/dist/src/composables/useStringTransform.d.ts +0 -2
- package/dist/src/composables/useTabs.d.ts +0 -2
- package/dist/src/composables/useTheme.d.ts +0 -1
- package/dist/src/config/css-variables.d.ts +0 -2
- package/dist/src/config/design-tokens.d.ts +1 -2
- package/dist/src/config/index.d.ts +0 -1
- package/dist/src/dev.d.ts +0 -2
- package/dist/src/index.d.ts +0 -1
- package/dist/src/plugin/configure.d.ts +0 -2
- package/dist/src/plugin/index.d.ts +0 -1
- package/dist/src/types/avatars.d.ts +0 -1
- package/dist/src/types/badges.d.ts +0 -1
- package/dist/src/types/calendars.d.ts +12 -12
- package/dist/src/types/core.d.ts +3 -5
- package/dist/src/types/form.d.ts +15 -14
- package/dist/src/types/forms.d.ts +2 -2
- package/dist/src/types/index.d.ts +0 -1
- package/dist/src/types/inputs.d.ts +14 -10
- package/dist/src/types/layouts.d.ts +0 -2
- package/dist/src/types/loading.d.ts +0 -1
- package/dist/src/types/maps.d.ts +0 -1
- package/dist/src/types/navigation.d.ts +2 -2
- package/dist/src/types/tables.d.ts +8 -7
- package/dist/src/types/tabs.d.ts +0 -1
- package/dist/src/types/transitions.d.ts +0 -1
- package/dist/src/types/ui.d.ts +1 -3
- package/dist/src/utils/calendar.d.ts +1 -2
- package/dist/src/utils/component-registry.d.ts +0 -2
- package/dist/src/utils/countryCodes.d.ts +0 -1
- package/dist/src/utils/id.d.ts +0 -1
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/mapThemes.d.ts +0 -2
- package/dist/src/utils/phone.d.ts +0 -2
- package/dist/src/utils/transitions.d.ts +0 -1
- package/dist/src/views/ButtonsShowcase.d.ts +2 -0
- package/dist/src/views/CalendarsShowcase.d.ts +2 -0
- package/dist/src/views/CardsShowcase.d.ts +2 -0
- package/dist/src/views/ChartsShowcase.d.ts +2 -0
- package/dist/src/views/EmptyStatesShowcase.d.ts +2 -0
- package/dist/src/views/InputsShowcase.d.ts +2 -0
- package/dist/src/views/KitchenSink.d.ts +2 -0
- package/dist/src/views/LayoutsShowcase.d.ts +2 -0
- package/dist/src/views/LoadingShowcase.d.ts +2 -0
- package/dist/src/views/MapsShowcase.d.ts +2 -0
- package/dist/src/views/ModalsShowcase.d.ts +2 -0
- package/dist/src/views/NotificationsShowcase.d.ts +2 -0
- package/dist/src/views/StepperShowcase.d.ts +2 -0
- package/dist/src/views/TabsShowcase.d.ts +2 -0
- package/dist/src/views/ValidationDemo.d.ts +2 -0
- package/dist/src/views/WrappersShowcase.d.ts +2 -0
- package/dist/src/views/components/AvatarPage.d.ts +2 -0
- package/dist/src/views/components/BadgePage.d.ts +2 -0
- package/dist/src/views/components/BannerPage.d.ts +2 -0
- package/dist/src/views/components/BreadcrumbPage.d.ts +2 -0
- package/dist/src/views/components/ButtonPage.d.ts +2 -0
- package/dist/src/views/components/CloudinaryImagePage.d.ts +2 -0
- package/dist/src/views/components/LoadingPage.d.ts +2 -0
- package/dist/src/views/components/MenuPage.d.ts +2 -0
- package/dist/src/views/components/ModalPage.d.ts +2 -0
- package/dist/src/views/components/ProgressPage.d.ts +2 -0
- package/dist/src/views/components/RichTextInputPage.d.ts +2 -0
- package/dist/src/views/components/TablePage.d.ts +2 -0
- package/dist/src/views/components/TextInputPage.d.ts +2 -0
- package/dist/src/views/components/TransitionPage.d.ts +2 -0
- package/dist/src/views/components/index.d.ts +0 -1
- package/dist/src/views/examples/CheckoutFormExample.d.ts +2 -0
- package/dist/src/views/examples/ContactFormExample.d.ts +2 -0
- package/dist/src/views/examples/RegistrationFormExample.d.ts +2 -0
- package/dist/src/views/examples/SettingsFormExample.d.ts +2 -0
- package/dist/src/views/examples/index.d.ts +0 -1
- package/dist/src/views/forms/ValidationPage.d.ts +2 -0
- package/dist/src/views/forms/index.d.ts +0 -1
- package/dist/src/views/index.d.ts +0 -1
- package/dist/src/views/inputs/CheckboxPage.d.ts +2 -0
- package/dist/src/views/inputs/ComboboxPage.d.ts +2 -0
- package/dist/src/views/inputs/DatepickerPage.d.ts +2 -0
- package/dist/src/views/inputs/EmailPage.d.ts +2 -0
- package/dist/src/views/inputs/FileDropzonePage.d.ts +2 -0
- package/dist/src/views/inputs/MiscInputsPage.d.ts +2 -0
- package/dist/src/views/inputs/PhonePage.d.ts +2 -0
- package/dist/src/views/inputs/SelectPage.d.ts +2 -0
- package/dist/src/views/inputs/SelectTextPage.d.ts +2 -0
- package/dist/src/views/inputs/SwitchGroupPage.d.ts +2 -0
- package/dist/src/views/inputs/SwitchPage.d.ts +2 -0
- package/dist/src/views/inputs/TextAreaPage.d.ts +2 -0
- package/dist/src/views/inputs/index.d.ts +0 -1
- package/dist/src/views/layouts/CardLayoutPage.d.ts +2 -0
- package/dist/src/views/layouts/DashboardLayoutPage.d.ts +2 -0
- package/dist/src/views/layouts/HeaderLayoutPage.d.ts +2 -0
- package/dist/src/views/layouts/SidebarLayoutPage.d.ts +2 -0
- package/dist/src/views/layouts/index.d.ts +0 -1
- package/dist/stepper/StepperPanels.d.ts +1 -3
- package/dist/stepper/StepperPanels.js +1 -1
- package/dist/stepper/index.d.ts +1 -0
- package/dist/stepper/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/tabs/InlineTabs.d.ts +1 -3
- package/dist/tabs/InlineTabs.js +1 -1
- package/dist/tabs/TabGroup.d.ts +1 -3
- package/dist/tabs/TabGroup.js +1 -1
- package/dist/tabs/TabGroupUnderline.d.ts +1 -3
- package/dist/tabs/TabGroupUnderline.js +1 -1
- package/dist/tabs/TabsInPills.d.ts +1 -3
- package/dist/tabs/TabsInPills.js +1 -1
- package/dist/tabs/index.d.ts +1 -0
- package/dist/tabs/index.js +4 -4
- package/dist/{tabs-Da32Mbhf.js → tabs-J5phClGv.js} +2 -2
- package/dist/{tabs-Da32Mbhf.js.map → tabs-J5phClGv.js.map} +1 -1
- package/dist/ui.css +1 -0
- package/dist/{use-outside-click-DNDV36Sc.js → use-outside-click-14T0Zn98.js} +3 -3
- package/dist/{use-outside-click-DNDV36Sc.js.map → use-outside-click-14T0Zn98.js.map} +1 -1
- package/dist/{use-tree-walker-BHCORE7u.js → use-tree-walker-Bo9gIb_K.js} +2 -2
- package/dist/{use-tree-walker-BHCORE7u.js.map → use-tree-walker-Bo9gIb_K.js.map} +1 -1
- package/dist/vue-router-B3K2xmg_.js +120 -0
- package/dist/vue-router-B3K2xmg_.js.map +1 -0
- package/dist/vue3-lottie.es-DT4qZE-F.js +7981 -0
- package/dist/{vue3-lottie.es-C_MDkNwR.js.map → vue3-lottie.es-DT4qZE-F.js.map} +1 -1
- package/dist/wrappers/BackgroundGradientWrapper.d.ts +1 -3
- package/dist/wrappers/BackgroundGradientWrapper.js +1 -1
- package/dist/wrappers/CardWrapper.d.ts +1 -3
- package/dist/wrappers/DisclosureWrapper.d.ts +1 -3
- package/dist/wrappers/DisclosureWrapper.js +1 -1
- package/dist/wrappers/FormErrorWrapper.d.ts +1 -3
- package/dist/wrappers/index.d.ts +1 -0
- package/dist/wrappers/index.js +2 -2
- package/package.json +13 -1
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js.map +0 -1
- package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js +0 -187
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js +0 -1315
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js.map +0 -1
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js +0 -253
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js.map +0 -1
- package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js.map +0 -1
- package/dist/EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js +0 -122
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js +0 -74
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js.map +0 -1
- package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js +0 -36
- package/dist/NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js +0 -30
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js +0 -162
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js.map +0 -1
- package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js +0 -130
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js.map +0 -1
- package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js.map +0 -1
- package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js.map +0 -1
- package/dist/UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js.map +0 -1
- package/dist/calendar-DyIP7WGv.js.map +0 -1
- package/dist/src/components/CloudinaryImage.d.ts.map +0 -1
- package/dist/src/components/LottieAnimation.d.ts.map +0 -1
- package/dist/src/components/ThemeDebugModal.d.ts.map +0 -1
- package/dist/src/components/UiAvatar.d.ts.map +0 -1
- package/dist/src/components/UiBadge.d.ts.map +0 -1
- package/dist/src/components/UiBanner.d.ts.map +0 -1
- package/dist/src/components/UiBreadcrumb.d.ts.map +0 -1
- package/dist/src/components/UiButton.d.ts.map +0 -1
- package/dist/src/components/UiButtonGroup.d.ts.map +0 -1
- package/dist/src/components/UiCheckbox.d.ts.map +0 -1
- package/dist/src/components/UiLoading.d.ts.map +0 -1
- package/dist/src/components/UiLoadingDots.d.ts.map +0 -1
- package/dist/src/components/UiMenu.d.ts.map +0 -1
- package/dist/src/components/UiModal.d.ts.map +0 -1
- package/dist/src/components/UiNavLink.d.ts.map +0 -1
- package/dist/src/components/UiProgressBar.d.ts.map +0 -1
- package/dist/src/components/UiRadialProgressBar.d.ts.map +0 -1
- package/dist/src/components/UiTable.d.ts.map +0 -1
- package/dist/src/components/UiTransition.d.ts.map +0 -1
- package/dist/src/components/calendars/CalendarDashboard.d.ts.map +0 -1
- package/dist/src/components/calendars/CalendarHeader.d.ts.map +0 -1
- package/dist/src/components/calendars/DayCalendar.d.ts.map +0 -1
- package/dist/src/components/calendars/EventCard.d.ts.map +0 -1
- package/dist/src/components/calendars/EventsList.d.ts.map +0 -1
- package/dist/src/components/calendars/MonthCalendar.d.ts.map +0 -1
- package/dist/src/components/calendars/WeekCalendar.d.ts.map +0 -1
- package/dist/src/components/calendars/YearCalendar.d.ts.map +0 -1
- package/dist/src/components/calendars/index.d.ts.map +0 -1
- package/dist/src/components/charts/BarChart.d.ts.map +0 -1
- package/dist/src/components/charts/BaseChart.d.ts +0 -81
- package/dist/src/components/charts/BaseChart.d.ts.map +0 -1
- package/dist/src/components/charts/FunnelChart.d.ts.map +0 -1
- package/dist/src/components/charts/LineChart.d.ts.map +0 -1
- package/dist/src/components/charts/PieChart.d.ts.map +0 -1
- package/dist/src/components/charts/SparklineChart.d.ts.map +0 -1
- package/dist/src/components/charts/StatCard.d.ts.map +0 -1
- package/dist/src/components/charts/chartTheme.d.ts.map +0 -1
- package/dist/src/components/charts/index.d.ts.map +0 -1
- package/dist/src/components/empty-state/ComingSoon.d.ts.map +0 -1
- package/dist/src/components/empty-state/EmptyState.d.ts.map +0 -1
- package/dist/src/components/empty-state/index.d.ts.map +0 -1
- package/dist/src/components/forms/DynamicForm.d.ts.map +0 -1
- package/dist/src/components/forms/DynamicFormField.d.ts.map +0 -1
- package/dist/src/components/forms/FormFieldWrapper.d.ts.map +0 -1
- package/dist/src/components/forms/index.d.ts.map +0 -1
- package/dist/src/components/index.d.ts.map +0 -1
- package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts.map +0 -1
- package/dist/src/components/inputs/CheckboxInput.d.ts.map +0 -1
- package/dist/src/components/inputs/ComboboxInput.d.ts.map +0 -1
- package/dist/src/components/inputs/DatepickerInput.d.ts.map +0 -1
- package/dist/src/components/inputs/EmailInput.d.ts.map +0 -1
- package/dist/src/components/inputs/EmptyInput.d.ts.map +0 -1
- package/dist/src/components/inputs/FileDropzoneInput.d.ts.map +0 -1
- package/dist/src/components/inputs/HiddenInput.d.ts.map +0 -1
- package/dist/src/components/inputs/InputsShowcase.d.ts.map +0 -1
- package/dist/src/components/inputs/PhoneInput.d.ts.map +0 -1
- package/dist/src/components/inputs/RichTextInput.d.ts.map +0 -1
- package/dist/src/components/inputs/SelectInput.d.ts.map +0 -1
- package/dist/src/components/inputs/SelectTextInput.d.ts.map +0 -1
- package/dist/src/components/inputs/SwitchInput.d.ts.map +0 -1
- package/dist/src/components/inputs/SwitchInputGroup.d.ts.map +0 -1
- package/dist/src/components/inputs/TagifyInput.d.ts.map +0 -1
- package/dist/src/components/inputs/TextAreaInput.d.ts.map +0 -1
- package/dist/src/components/inputs/TextInput.d.ts.map +0 -1
- package/dist/src/components/inputs/index.d.ts.map +0 -1
- package/dist/src/components/layouts/CardLayout.d.ts.map +0 -1
- package/dist/src/components/layouts/DashboardLayout.d.ts.map +0 -1
- package/dist/src/components/layouts/DefaultLayout.d.ts.map +0 -1
- package/dist/src/components/layouts/HeaderLayout.d.ts.map +0 -1
- package/dist/src/components/layouts/InfoCard.d.ts.map +0 -1
- package/dist/src/components/layouts/NavigationGroup.d.ts.map +0 -1
- package/dist/src/components/layouts/NavigationItem.d.ts.map +0 -1
- package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts.map +0 -1
- package/dist/src/components/layouts/ProjectLogo.d.ts.map +0 -1
- package/dist/src/components/layouts/PropsTable.d.ts.map +0 -1
- package/dist/src/components/layouts/ShowcaseCard.d.ts.map +0 -1
- package/dist/src/components/layouts/ShowcaseLayout.d.ts.map +0 -1
- package/dist/src/components/layouts/SidebarLayout.d.ts.map +0 -1
- package/dist/src/components/layouts/StateDisplay.d.ts.map +0 -1
- package/dist/src/components/layouts/index.d.ts.map +0 -1
- package/dist/src/components/loading/ContentSkeleton.d.ts.map +0 -1
- package/dist/src/components/loading/SmartLoadingIndicator.d.ts.map +0 -1
- package/dist/src/components/loading/index.d.ts.map +0 -1
- package/dist/src/components/maps/GoogleMap.d.ts.map +0 -1
- package/dist/src/components/maps/UiInfoWindow.d.ts.map +0 -1
- package/dist/src/components/maps/UiMap.d.ts.map +0 -1
- package/dist/src/components/maps/UiMapAll.d.ts.map +0 -1
- package/dist/src/components/maps/UiMapMarker.d.ts.map +0 -1
- package/dist/src/components/maps/index.d.ts.map +0 -1
- package/dist/src/components/modals/AlertModal.d.ts.map +0 -1
- package/dist/src/components/modals/BaseModal.d.ts.map +0 -1
- package/dist/src/components/modals/ImageCropperModal.d.ts.map +0 -1
- package/dist/src/components/modals/index.d.ts.map +0 -1
- package/dist/src/components/notifications/NotificationContainer.d.ts.map +0 -1
- package/dist/src/components/notifications/NotificationToast.d.ts.map +0 -1
- package/dist/src/components/notifications/index.d.ts.map +0 -1
- package/dist/src/components/stepper/StepperPanels.d.ts.map +0 -1
- package/dist/src/components/stepper/index.d.ts.map +0 -1
- package/dist/src/components/tabs/InlineTabs.d.ts.map +0 -1
- package/dist/src/components/tabs/TabGroup.d.ts.map +0 -1
- package/dist/src/components/tabs/TabGroupUnderline.d.ts.map +0 -1
- package/dist/src/components/tabs/TabsInPills.d.ts.map +0 -1
- package/dist/src/components/tabs/index.d.ts.map +0 -1
- package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts.map +0 -1
- package/dist/src/components/wrappers/CardWrapper.d.ts.map +0 -1
- package/dist/src/components/wrappers/DisclosureWrapper.d.ts.map +0 -1
- package/dist/src/components/wrappers/FormErrorWrapper.d.ts.map +0 -1
- package/dist/src/components/wrappers/index.d.ts.map +0 -1
- package/dist/src/composables/index.d.ts.map +0 -1
- package/dist/src/composables/useCalendar.d.ts.map +0 -1
- package/dist/src/composables/useEventSegments.d.ts.map +0 -1
- package/dist/src/composables/useFormValidation.d.ts.map +0 -1
- package/dist/src/composables/useMap.d.ts.map +0 -1
- package/dist/src/composables/useModal.d.ts.map +0 -1
- package/dist/src/composables/useNotifications.d.ts.map +0 -1
- package/dist/src/composables/useSimpleTabs.d.ts.map +0 -1
- package/dist/src/composables/useStringTransform.d.ts.map +0 -1
- package/dist/src/composables/useTabs.d.ts.map +0 -1
- package/dist/src/composables/useTheme.d.ts.map +0 -1
- package/dist/src/config/css-variables.d.ts.map +0 -1
- package/dist/src/config/design-tokens.d.ts.map +0 -1
- package/dist/src/config/index.d.ts.map +0 -1
- package/dist/src/dev.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/plugin/configure.d.ts.map +0 -1
- package/dist/src/plugin/index.d.ts.map +0 -1
- package/dist/src/types/avatars.d.ts.map +0 -1
- package/dist/src/types/badges.d.ts.map +0 -1
- package/dist/src/types/calendars.d.ts.map +0 -1
- package/dist/src/types/core.d.ts.map +0 -1
- package/dist/src/types/form.d.ts.map +0 -1
- package/dist/src/types/forms.d.ts.map +0 -1
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/inputs.d.ts.map +0 -1
- package/dist/src/types/layouts.d.ts.map +0 -1
- package/dist/src/types/loading.d.ts.map +0 -1
- package/dist/src/types/maps.d.ts.map +0 -1
- package/dist/src/types/navigation.d.ts.map +0 -1
- package/dist/src/types/tables.d.ts.map +0 -1
- package/dist/src/types/tabs.d.ts.map +0 -1
- package/dist/src/types/transitions.d.ts.map +0 -1
- package/dist/src/types/ui.d.ts.map +0 -1
- package/dist/src/utils/calendar.d.ts.map +0 -1
- package/dist/src/utils/component-registry.d.ts.map +0 -1
- package/dist/src/utils/countryCodes.d.ts.map +0 -1
- package/dist/src/utils/id.d.ts.map +0 -1
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/mapThemes.d.ts.map +0 -1
- package/dist/src/utils/phone.d.ts.map +0 -1
- package/dist/src/utils/transitions.d.ts.map +0 -1
- package/dist/src/views/components/index.d.ts.map +0 -1
- package/dist/src/views/examples/index.d.ts.map +0 -1
- package/dist/src/views/forms/index.d.ts.map +0 -1
- package/dist/src/views/index.d.ts.map +0 -1
- package/dist/src/views/inputs/index.d.ts.map +0 -1
- package/dist/src/views/layouts/index.d.ts.map +0 -1
- package/dist/vue-router-BPbyZ7xA.js +0 -145
- package/dist/vue-router-BPbyZ7xA.js.map +0 -1
- package/dist/vue3-lottie.es-C_MDkNwR.js +0 -7976
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js","sources":["../node_modules/@headlessui/vue/dist/components/label/label.js","../node_modules/@headlessui/vue/dist/components/switch/switch.js","../src/components/inputs/SwitchInput.vue"],"sourcesContent":["import{computed as v,defineComponent as x,inject as L,onMounted as k,onUnmounted as C,provide as j,ref as y,unref as h}from\"vue\";import{useId as w}from'../../hooks/use-id.js';import{render as R}from'../../utils/render.js';let a=Symbol(\"LabelContext\");function d(){let t=L(a,null);if(t===null){let n=new Error(\"You used a <Label /> component, but it is not inside a parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(n,d),n}return t}function E({slot:t={},name:n=\"Label\",props:i={}}={}){let e=y([]);function o(r){return e.value.push(r),()=>{let l=e.value.indexOf(r);l!==-1&&e.value.splice(l,1)}}return j(a,{register:o,slot:t,name:n,props:i}),v(()=>e.value.length>0?e.value.join(\" \"):void 0)}let K=x({name:\"Label\",props:{as:{type:[Object,String],default:\"label\"},passive:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(t,{slots:n,attrs:i}){var r;let e=(r=t.id)!=null?r:`headlessui-label-${w()}`,o=d();return k(()=>C(o.register(e))),()=>{let{name:l=\"Label\",slot:p={},props:c={}}=o,{passive:f,...s}=t,u={...Object.entries(c).reduce((b,[g,m])=>Object.assign(b,{[g]:h(m)}),{}),id:e};return f&&(delete u.onClick,delete u.htmlFor,delete s.onClick),R({ourProps:u,theirProps:s,slot:p,attrs:i,slots:n,name:l})}}});export{K as Label,E as useLabels};\n","import{computed as u,defineComponent as v,Fragment as H,h as S,inject as M,onMounted as I,provide as P,ref as w,watch as j}from\"vue\";import{useControllable as G}from'../../hooks/use-controllable.js';import{useId as V}from'../../hooks/use-id.js';import{useResolveButtonType as F}from'../../hooks/use-resolve-button-type.js';import{Features as O,Hidden as A}from'../../internal/hidden.js';import{Keys as g}from'../../keyboard.js';import{dom as N}from'../../utils/dom.js';import{attemptSubmit as $}from'../../utils/form.js';import{compact as U,omit as _,render as k}from'../../utils/render.js';import{Description as q,useDescriptions as z}from'../description/description.js';import{Label as J,useLabels as Q}from'../label/label.js';let C=Symbol(\"GroupContext\"),oe=v({name:\"SwitchGroup\",props:{as:{type:[Object,String],default:\"template\"}},setup(l,{slots:c,attrs:i}){let r=w(null),f=Q({name:\"SwitchLabel\",props:{htmlFor:u(()=>{var t;return(t=r.value)==null?void 0:t.id}),onClick(t){r.value&&(t.currentTarget.tagName===\"LABEL\"&&t.preventDefault(),r.value.click(),r.value.focus({preventScroll:!0}))}}}),p=z({name:\"SwitchDescription\"});return P(C,{switchRef:r,labelledby:f,describedby:p}),()=>k({theirProps:l,ourProps:{},slot:{},slots:c,attrs:i,name:\"SwitchGroup\"})}}),ue=v({name:\"Switch\",emits:{\"update:modelValue\":l=>!0},props:{as:{type:[Object,String],default:\"button\"},modelValue:{type:Boolean,default:void 0},defaultChecked:{type:Boolean,optional:!0},form:{type:String,optional:!0},name:{type:String,optional:!0},value:{type:String,optional:!0},id:{type:String,default:null},disabled:{type:Boolean,default:!1},tabIndex:{type:Number,default:0}},inheritAttrs:!1,setup(l,{emit:c,attrs:i,slots:r,expose:f}){var h;let p=(h=l.id)!=null?h:`headlessui-switch-${V()}`,n=M(C,null),[t,s]=G(u(()=>l.modelValue),e=>c(\"update:modelValue\",e),u(()=>l.defaultChecked));function m(){s(!t.value)}let E=w(null),o=n===null?E:n.switchRef,L=F(u(()=>({as:l.as,type:i.type})),o);f({el:o,$el:o});function D(e){e.preventDefault(),m()}function R(e){e.key===g.Space?(e.preventDefault(),m()):e.key===g.Enter&&$(e.currentTarget)}function x(e){e.preventDefault()}let d=u(()=>{var e,a;return(a=(e=N(o))==null?void 0:e.closest)==null?void 0:a.call(e,\"form\")});return I(()=>{j([d],()=>{if(!d.value||l.defaultChecked===void 0)return;function e(){s(l.defaultChecked)}return d.value.addEventListener(\"reset\",e),()=>{var a;(a=d.value)==null||a.removeEventListener(\"reset\",e)}},{immediate:!0})}),()=>{let{name:e,value:a,form:K,tabIndex:y,...b}=l,T={checked:t.value},B={id:p,ref:o,role:\"switch\",type:L.value,tabIndex:y===-1?0:y,\"aria-checked\":t.value,\"aria-labelledby\":n==null?void 0:n.labelledby.value,\"aria-describedby\":n==null?void 0:n.describedby.value,onClick:D,onKeyup:R,onKeypress:x};return S(H,[e!=null&&t.value!=null?S(A,U({features:O.Hidden,as:\"input\",type:\"checkbox\",hidden:!0,readOnly:!0,checked:t.value,form:K,disabled:b.disabled,name:e,value:a})):null,k({ourProps:B,theirProps:{...i,..._(b,[\"modelValue\",\"defaultChecked\"])},slot:T,attrs:i,slots:r,name:\"Switch\"})])}}}),de=J,ce=q;export{ue as Switch,ce as SwitchDescription,oe as SwitchGroup,de as SwitchLabel};\n","<!--\n @component SwitchInput\n @description Toggle switch input with Headless UI.\n \n A styled toggle switch component with label, description, and ON/OFF text.\n Uses Headless UI's Switch for accessibility.\n \n @props\n - name (string, required): Field name for form binding\n - label (string, optional): Switch label text\n - description (string, optional): Additional description text\n - disabled (boolean, optional): Disabled state\n - rules (Schema, optional): Validation rules\n - modelValue (boolean, optional): Toggle state via v-model\n - layout (string, optional): 'stacked' or 'inline' layout\n - textTrue (string, optional): Text shown when ON\n - textFalse (string, optional): Text shown when OFF\n \n @emits\n - update:modelValue: Emitted when toggle state changes\n - update:validity: Emitted when validation state changes\n \n @example\n <SwitchInput\n name=\"notifications\"\n label=\"Enable notifications\"\n v-model=\"form.notifications\"\n text-true=\"ON\"\n text-false=\"OFF\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"layout === 'stacked' && !hideMainLabel ? 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 :show-errors=\"showErrors\"\n :show-valid-check=\"false\"\n >\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <div v-if=\"layout === 'inline'\" class=\"sl-flex-1\">\n <label\n v-if=\"label && !hideMainLabel\"\n :for=\"id\"\n class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-900 dark:sl-text-white sl-cursor-pointer\"\n >\n {{ label }}\n </label>\n <div v-if=\"description\" class=\"sl-mt-1 sl-text-sm sl-text-gray-600 dark:sl-text-slate-300\" :class=\"{ 'sl-cursor-pointer': !disabled }\" @click=\"!disabled && toggle()\">\n <div v-if=\"isDescriptionHtml\" v-html=\"description\" />\n <span v-else>{{ description }}</span>\n </div>\n </div>\n <Switch\n :id=\"id\"\n ref=\"switchRef\"\n v-model=\"switchValue\"\n :disabled=\"disabled\"\n :class=\"[\n switchClasses,\n { 'sl-shadow-md': boxShadow }\n ]\"\n @update:model-value=\"handleToggle\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <span class=\"sl-sr-only\">{{ label }}</span>\n <span\n :class=\"[\n switchValue ? 'sl-translate-x-5' : 'sl-translate-x-0',\n 'sl-pointer-events-none sl-inline-block sl-h-5 sl-w-5 sl-transform sl-rounded-full sl-bg-white sl-shadow sl-ring-0 sl-transition sl-duration-200 sl-ease-in-out sl-relative'\n ]\"\n >\n </span>\n </Switch>\n <span v-if=\"textTrue || textFalse\" class=\"sl-ml-3 sl-text-sm\">\n <span v-if=\"switchValue && textTrue\" class=\"sl-font-medium sl-text-gray-800 dark:sl-text-white\">{{ textTrue }}</span>\n <span v-else-if=\"!switchValue && textFalse\" class=\"sl-text-gray-500 dark:sl-text-slate-300\">{{ textFalse }}</span>\n </span>\n <div v-if=\"description && layout === 'stacked'\" class=\"sl-flex-1\">\n <p v-if=\"!isDescriptionHtml\" class=\"sl-mt-1 sl-text-sm sl-text-gray-600 dark:sl-text-slate-300\">{{ description }}</p>\n <p v-else class=\"sl-mt-1 sl-text-sm sl-text-gray-600 dark:sl-text-slate-300\" v-html=\"description\" />\n </div>\n </div>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { Switch } from '@headlessui/vue'\nimport { useField } from 'vee-validate'\nimport { generateId } from '../../utils/id'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport type { ValidationRule } from '../../types/form'\n\ninterface Props {\n name: string\n modelValue?: boolean\n label?: string\n description?: string\n disabled?: boolean\n immediate?: boolean\n boxShadow?: boolean\n defaultValue?: boolean\n hideMainLabel?: boolean\n textTrue?: string\n textFalse?: string\n rules?: ValidationRule\n validateOnMount?: boolean\n successMessage?: string\n tertiaryLabel?: string\n isDescriptionHtml?: boolean\n showErrors?: boolean\n layout?: 'stacked' | 'inline'\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n immediate: false,\n boxShadow: false,\n defaultValue: false,\n hideMainLabel: false,\n isDescriptionHtml: false,\n showErrors: false,\n layout: 'stacked'\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n blur: [event: FocusEvent]\n focus: [event: FocusEvent]\n}>()\n\nconst switchRef = ref<any>()\nconst id = generateId(`sl-${props.name}`)\n\nconst { value, errorMessage, handleChange, handleBlur, meta } = useField(\n () => props.name,\n props.rules,\n {\n type: 'checkbox',\n validateOnMount: props.validateOnMount,\n initialValue: props.modelValue ?? props.defaultValue,\n syncVModel: true\n }\n)\n\nconst switchValue = ref<boolean>(props.modelValue ?? props.defaultValue)\n\n// Watch for external changes\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue !== undefined && newValue !== switchValue.value) {\n const boolVal = !!newValue\n switchValue.value = boolVal\n value.value = boolVal\n }\n },\n { immediate: true }\n)\n\nconst switchClasses = computed(() => {\n const baseClasses = [\n 'sl-relative',\n 'sl-inline-flex',\n 'sl-items-center',\n 'sl-h-6',\n 'sl-w-11',\n 'sl-flex-shrink-0',\n 'sl-cursor-pointer',\n 'sl-rounded-full',\n 'sl-border-2',\n 'sl-border-transparent',\n 'sl-transition-colors',\n 'sl-duration-200',\n 'sl-ease-in-out',\n 'focus:sl-outline-none',\n 'focus:sl-ring-2',\n 'focus:sl-ring-stachelock-600',\n 'focus:sl-ring-offset-2',\n 'dark:focus:sl-ring-offset-slate-900'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-cursor-not-allowed',\n 'sl-opacity-50'\n )\n }\n\n if (switchValue.value) {\n baseClasses.push('sl-bg-stachelock-600')\n } else {\n baseClasses.push('sl-bg-gray-200', 'dark:sl-bg-slate-600')\n }\n\n return baseClasses.join(' ')\n})\n\nconst handleToggle = (value: boolean) => {\n if (props.disabled) return\n \n switchValue.value = value\n if (props.immediate) {\n handleChange(value)\n }\n emit('update:modelValue', value)\n}\n\nconst onBlur = (event: FocusEvent) => {\n if (!props.immediate) {\n handleChange(switchValue.value)\n }\n handleBlur(event)\n emit('blur', event)\n}\n\nconst onFocus = (event: FocusEvent) => {\n emit('focus', event)\n}\n\n// Expose toggle method for external control\nconst toggle = () => {\n if (!props.disabled) {\n handleToggle(!switchValue.value)\n }\n}\n\ndefineExpose({\n toggle,\n value: switchValue,\n focus: () => {\n const el = (switchRef.value as any)?.$el ?? switchRef.value\n ;(el as HTMLButtonElement | null)?.focus?.()\n },\n blur: () => {\n const el = (switchRef.value as any)?.$el ?? switchRef.value\n ;(el as HTMLButtonElement | null)?.blur?.()\n },\n switchRef\n})\n</script>\n\n\n"],"names":["a","d","L","E","i","e","y","o","r","l","j","v","x","w","k","C","p","c","f","s","u","b","g","m","h","R","Q","t","z","P","ue","V","n","M","G","F","D","$","N","I","K","T","B","S","H","A","U","O","_","props","__props","emit","__emit","switchRef","ref","id","generateId","value","errorMessage","handleChange","handleBlur","meta","useField","switchValue","watch","newValue","boolVal","switchClasses","computed","baseClasses","handleToggle","onBlur","event","onFocus","toggle","__expose","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","name","layout","hideMainLabel","label","disabled","rules","tertiaryLabel","boxShadow","successMessage","showErrors","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","description","_normalizeClass","_cache","$event","isDescriptionHtml","Switch","_hoisted_7","_toDisplayString","textTrue","textFalse","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js","sources":["../node_modules/@headlessui/vue/dist/components/label/label.js","../node_modules/@headlessui/vue/dist/components/switch/switch.js","../src/components/inputs/SwitchInput.vue"],"sourcesContent":["import{computed as v,defineComponent as x,inject as L,onMounted as k,onUnmounted as C,provide as j,ref as y,unref as h}from\"vue\";import{useId as w}from'../../hooks/use-id.js';import{render as R}from'../../utils/render.js';let a=Symbol(\"LabelContext\");function d(){let t=L(a,null);if(t===null){let n=new Error(\"You used a <Label /> component, but it is not inside a parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(n,d),n}return t}function E({slot:t={},name:n=\"Label\",props:i={}}={}){let e=y([]);function o(r){return e.value.push(r),()=>{let l=e.value.indexOf(r);l!==-1&&e.value.splice(l,1)}}return j(a,{register:o,slot:t,name:n,props:i}),v(()=>e.value.length>0?e.value.join(\" \"):void 0)}let K=x({name:\"Label\",props:{as:{type:[Object,String],default:\"label\"},passive:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(t,{slots:n,attrs:i}){var r;let e=(r=t.id)!=null?r:`headlessui-label-${w()}`,o=d();return k(()=>C(o.register(e))),()=>{let{name:l=\"Label\",slot:p={},props:c={}}=o,{passive:f,...s}=t,u={...Object.entries(c).reduce((b,[g,m])=>Object.assign(b,{[g]:h(m)}),{}),id:e};return f&&(delete u.onClick,delete u.htmlFor,delete s.onClick),R({ourProps:u,theirProps:s,slot:p,attrs:i,slots:n,name:l})}}});export{K as Label,E as useLabels};\n","import{computed as u,defineComponent as v,Fragment as H,h as S,inject as M,onMounted as I,provide as P,ref as w,watch as j}from\"vue\";import{useControllable as G}from'../../hooks/use-controllable.js';import{useId as V}from'../../hooks/use-id.js';import{useResolveButtonType as F}from'../../hooks/use-resolve-button-type.js';import{Features as O,Hidden as A}from'../../internal/hidden.js';import{Keys as g}from'../../keyboard.js';import{dom as N}from'../../utils/dom.js';import{attemptSubmit as $}from'../../utils/form.js';import{compact as U,omit as _,render as k}from'../../utils/render.js';import{Description as q,useDescriptions as z}from'../description/description.js';import{Label as J,useLabels as Q}from'../label/label.js';let C=Symbol(\"GroupContext\"),oe=v({name:\"SwitchGroup\",props:{as:{type:[Object,String],default:\"template\"}},setup(l,{slots:c,attrs:i}){let r=w(null),f=Q({name:\"SwitchLabel\",props:{htmlFor:u(()=>{var t;return(t=r.value)==null?void 0:t.id}),onClick(t){r.value&&(t.currentTarget.tagName===\"LABEL\"&&t.preventDefault(),r.value.click(),r.value.focus({preventScroll:!0}))}}}),p=z({name:\"SwitchDescription\"});return P(C,{switchRef:r,labelledby:f,describedby:p}),()=>k({theirProps:l,ourProps:{},slot:{},slots:c,attrs:i,name:\"SwitchGroup\"})}}),ue=v({name:\"Switch\",emits:{\"update:modelValue\":l=>!0},props:{as:{type:[Object,String],default:\"button\"},modelValue:{type:Boolean,default:void 0},defaultChecked:{type:Boolean,optional:!0},form:{type:String,optional:!0},name:{type:String,optional:!0},value:{type:String,optional:!0},id:{type:String,default:null},disabled:{type:Boolean,default:!1},tabIndex:{type:Number,default:0}},inheritAttrs:!1,setup(l,{emit:c,attrs:i,slots:r,expose:f}){var h;let p=(h=l.id)!=null?h:`headlessui-switch-${V()}`,n=M(C,null),[t,s]=G(u(()=>l.modelValue),e=>c(\"update:modelValue\",e),u(()=>l.defaultChecked));function m(){s(!t.value)}let E=w(null),o=n===null?E:n.switchRef,L=F(u(()=>({as:l.as,type:i.type})),o);f({el:o,$el:o});function D(e){e.preventDefault(),m()}function R(e){e.key===g.Space?(e.preventDefault(),m()):e.key===g.Enter&&$(e.currentTarget)}function x(e){e.preventDefault()}let d=u(()=>{var e,a;return(a=(e=N(o))==null?void 0:e.closest)==null?void 0:a.call(e,\"form\")});return I(()=>{j([d],()=>{if(!d.value||l.defaultChecked===void 0)return;function e(){s(l.defaultChecked)}return d.value.addEventListener(\"reset\",e),()=>{var a;(a=d.value)==null||a.removeEventListener(\"reset\",e)}},{immediate:!0})}),()=>{let{name:e,value:a,form:K,tabIndex:y,...b}=l,T={checked:t.value},B={id:p,ref:o,role:\"switch\",type:L.value,tabIndex:y===-1?0:y,\"aria-checked\":t.value,\"aria-labelledby\":n==null?void 0:n.labelledby.value,\"aria-describedby\":n==null?void 0:n.describedby.value,onClick:D,onKeyup:R,onKeypress:x};return S(H,[e!=null&&t.value!=null?S(A,U({features:O.Hidden,as:\"input\",type:\"checkbox\",hidden:!0,readOnly:!0,checked:t.value,form:K,disabled:b.disabled,name:e,value:a})):null,k({ourProps:B,theirProps:{...i,..._(b,[\"modelValue\",\"defaultChecked\"])},slot:T,attrs:i,slots:r,name:\"Switch\"})])}}}),de=J,ce=q;export{ue as Switch,ce as SwitchDescription,oe as SwitchGroup,de as SwitchLabel};\n","<!--\n @component SwitchInput\n @description Toggle switch input with Headless UI.\n \n A styled toggle switch component with label, description, and ON/OFF text.\n Uses Headless UI's Switch for accessibility.\n \n @props\n - name (string, required): Field name for form binding\n - label (string, optional): Switch label text\n - description (string, optional): Additional description text\n - disabled (boolean, optional): Disabled state\n - rules (Schema, optional): Validation rules\n - modelValue (boolean, optional): Toggle state via v-model\n - layout (string, optional): 'stacked' or 'inline' layout\n - textTrue (string, optional): Text shown when ON\n - textFalse (string, optional): Text shown when OFF\n \n @emits\n - update:modelValue: Emitted when toggle state changes\n - update:validity: Emitted when validation state changes\n \n @example\n <SwitchInput\n name=\"notifications\"\n label=\"Enable notifications\"\n v-model=\"form.notifications\"\n text-true=\"ON\"\n text-false=\"OFF\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"layout === 'stacked' && !hideMainLabel ? 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 :show-errors=\"showErrors\"\n :show-valid-check=\"false\"\n >\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <div v-if=\"layout === 'inline'\" class=\"sl-flex-1\">\n <label\n v-if=\"label && !hideMainLabel\"\n :for=\"id\"\n class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-900 dark:sl-text-white sl-cursor-pointer\"\n >\n {{ label }}\n </label>\n <div v-if=\"description\" class=\"sl-mt-1 sl-text-sm sl-text-gray-600 dark:sl-text-slate-300\" :class=\"{ 'sl-cursor-pointer': !disabled }\" @click=\"!disabled && toggle()\">\n <div v-if=\"isDescriptionHtml\" v-html=\"description\" />\n <span v-else>{{ description }}</span>\n </div>\n </div>\n <Switch\n :id=\"id\"\n ref=\"switchRef\"\n v-model=\"switchValue\"\n :disabled=\"disabled\"\n :class=\"[\n switchClasses,\n { 'sl-shadow-md': boxShadow }\n ]\"\n @update:model-value=\"handleToggle\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <span class=\"sl-sr-only\">{{ label }}</span>\n <span\n :class=\"[\n switchValue ? 'sl-translate-x-5' : 'sl-translate-x-0',\n 'sl-pointer-events-none sl-inline-block sl-h-5 sl-w-5 sl-transform sl-rounded-full sl-bg-white sl-shadow sl-ring-0 sl-transition sl-duration-200 sl-ease-in-out sl-relative'\n ]\"\n >\n </span>\n </Switch>\n <span v-if=\"textTrue || textFalse\" class=\"sl-ml-3 sl-text-sm\">\n <span v-if=\"switchValue && textTrue\" class=\"sl-font-medium sl-text-gray-800 dark:sl-text-white\">{{ textTrue }}</span>\n <span v-else-if=\"!switchValue && textFalse\" class=\"sl-text-gray-500 dark:sl-text-slate-300\">{{ textFalse }}</span>\n </span>\n <div v-if=\"description && layout === 'stacked'\" class=\"sl-flex-1\">\n <p v-if=\"!isDescriptionHtml\" class=\"sl-mt-1 sl-text-sm sl-text-gray-600 dark:sl-text-slate-300\">{{ description }}</p>\n <p v-else class=\"sl-mt-1 sl-text-sm sl-text-gray-600 dark:sl-text-slate-300\" v-html=\"description\" />\n </div>\n </div>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { Switch } from '@headlessui/vue'\nimport { useField } from 'vee-validate'\nimport { generateId } from '../../utils/id'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport type { ValidationRule } from '../../types/form'\n\ninterface Props {\n name: string\n modelValue?: boolean\n label?: string\n description?: string\n disabled?: boolean\n immediate?: boolean\n boxShadow?: boolean\n defaultValue?: boolean\n hideMainLabel?: boolean\n textTrue?: string\n textFalse?: string\n rules?: ValidationRule\n validateOnMount?: boolean\n successMessage?: string\n tertiaryLabel?: string\n isDescriptionHtml?: boolean\n showErrors?: boolean\n layout?: 'stacked' | 'inline'\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n immediate: false,\n boxShadow: false,\n defaultValue: false,\n hideMainLabel: false,\n isDescriptionHtml: false,\n showErrors: false,\n layout: 'stacked'\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n blur: [event: FocusEvent]\n focus: [event: FocusEvent]\n}>()\n\nconst switchRef = ref<any>()\nconst id = generateId(`sl-${props.name}`)\n\nconst { value, errorMessage, handleChange, handleBlur, meta } = useField(\n () => props.name,\n props.rules,\n {\n type: 'checkbox',\n validateOnMount: props.validateOnMount,\n initialValue: props.modelValue ?? props.defaultValue,\n syncVModel: true\n }\n)\n\nconst switchValue = ref<boolean>(props.modelValue ?? props.defaultValue)\n\n// Watch for external changes\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue !== undefined && newValue !== switchValue.value) {\n const boolVal = !!newValue\n switchValue.value = boolVal\n value.value = boolVal\n }\n },\n { immediate: true }\n)\n\nconst switchClasses = computed(() => {\n const baseClasses = [\n 'sl-relative',\n 'sl-inline-flex',\n 'sl-items-center',\n 'sl-h-6',\n 'sl-w-11',\n 'sl-flex-shrink-0',\n 'sl-cursor-pointer',\n 'sl-rounded-full',\n 'sl-border-2',\n 'sl-border-transparent',\n 'sl-transition-colors',\n 'sl-duration-200',\n 'sl-ease-in-out',\n 'focus:sl-outline-none',\n 'focus:sl-ring-2',\n 'focus:sl-ring-stachelock-600',\n 'focus:sl-ring-offset-2',\n 'dark:focus:sl-ring-offset-slate-900'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-cursor-not-allowed',\n 'sl-opacity-50'\n )\n }\n\n if (switchValue.value) {\n baseClasses.push('sl-bg-stachelock-600')\n } else {\n baseClasses.push('sl-bg-gray-200', 'dark:sl-bg-slate-600')\n }\n\n return baseClasses.join(' ')\n})\n\nconst handleToggle = (value: boolean) => {\n if (props.disabled) return\n \n switchValue.value = value\n if (props.immediate) {\n handleChange(value)\n }\n emit('update:modelValue', value)\n}\n\nconst onBlur = (event: FocusEvent) => {\n if (!props.immediate) {\n handleChange(switchValue.value)\n }\n handleBlur(event)\n emit('blur', event)\n}\n\nconst onFocus = (event: FocusEvent) => {\n emit('focus', event)\n}\n\n// Expose toggle method for external control\nconst toggle = () => {\n if (!props.disabled) {\n handleToggle(!switchValue.value)\n }\n}\n\ndefineExpose({\n toggle,\n value: switchValue,\n focus: () => {\n const refValue = switchRef.value\n const el = (refValue && typeof refValue === 'object' && '$el' in refValue) \n ? (refValue as { $el?: HTMLElement }).$el \n : refValue\n ;(el as HTMLButtonElement | null)?.focus?.()\n },\n blur: () => {\n const refValue = switchRef.value\n const el = (refValue && typeof refValue === 'object' && '$el' in refValue) \n ? (refValue as { $el?: HTMLElement }).$el \n : refValue\n ;(el as HTMLButtonElement | null)?.blur?.()\n },\n switchRef\n})\n</script>\n\n\n"],"names":["a","d","t","L","n","E","i","e","y","o","r","l","j","v","x","w","k","C","p","c","f","s","u","b","g","m","h","R","Q","z","P","ue","V","M","G","F","D","$","N","I","K","T","B","S","H","A","U","O","_","props","__props","emit","__emit","switchRef","ref","id","generateId","value","errorMessage","handleChange","handleBlur","meta","useField","switchValue","watch","newValue","boolVal","switchClasses","computed","baseClasses","handleToggle","onBlur","event","onFocus","toggle","__expose","refValue","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_normalizeClass","_cache","$event","Switch","_hoisted_7","_toDisplayString","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as D, ref as U, watch as y, createElementBlock as a, openBlock as t, createElementVNode as C, createCommentVNode as r, toDisplayString as c, normalizeClass as v, Fragment as g, renderList as b, createVNode as p } from "vue";
|
|
2
|
-
import { _ as f } from "./SwitchInput.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { _ as f } from "./SwitchInput.vue_vue_type_script_setup_true_lang-C88FcxuK.js";
|
|
3
3
|
const L = {
|
|
4
4
|
key: 0,
|
|
5
5
|
class: "sl-bg-white dark:sl-bg-slate-800 sl-shadow sm:sl-rounded-lg sl-w-full",
|
|
@@ -180,4 +180,4 @@ const L = {
|
|
|
180
180
|
export {
|
|
181
181
|
G as _
|
|
182
182
|
};
|
|
183
|
-
//# sourceMappingURL=SwitchInputGroup.vue_vue_type_script_setup_true_lang-
|
|
183
|
+
//# sourceMappingURL=SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js","sources":["../src/components/inputs/SwitchInputGroup.vue"],"sourcesContent":["<!--\n @component SwitchInputGroup\n @description Groups multiple switch inputs in a configurable grid layout.\n \n Renders multiple SwitchInput components in a grid or vertical layout with\n optional group label and description. Useful for settings panels with\n multiple related toggle options.\n \n @props\n - switches (SwitchConfig[], required): Array of switch configurations\n - currentValues (Record<string, boolean>, optional): Current values for all switches\n - groupLabel (string, optional): Header title for the group\n - groupDescription (string, optional): Description under the title\n - boxShadow (boolean, optional): Apply card-like shadow wrapper\n - gridColsClass (string, optional): Tailwind grid column classes\n - vertical (boolean, optional): Stack switches vertically instead of grid\n \n @emits\n - update:value: Emitted when any switch value changes { name: string, value: boolean }\n \n @example\n <SwitchInputGroup\n :switches=\"[\n { name: 'dark-mode', label: 'Dark Mode' },\n { name: 'notifications', label: 'Notifications', defaultValue: true }\n ]\"\n :current-values=\"settings\"\n group-label=\"Preferences\"\n @update:value=\"handleSwitch\"\n />\n-->\n<template>\n <div \n v-if=\"boxShadow\" \n class=\"sl-bg-white dark:sl-bg-slate-800 sl-shadow sm:sl-rounded-lg sl-w-full\"\n data-testid=\"switch-input-group\"\n >\n <div class=\"sl-px-4 sl-py-5 sm:sl-p-6\">\n <div v-if=\"groupLabel || groupDescription\" class=\"sl-mb-4\">\n <h3 \n v-if=\"groupLabel\" \n class=\"sl-text-lg sl-font-medium sl-leading-6 sl-text-gray-900 dark:sl-text-white\"\n >\n {{ groupLabel }}\n </h3>\n <p \n v-if=\"groupDescription\" \n class=\"sl-mt-1 sl-text-sm sl-text-gray-500 dark:sl-text-gray-300\"\n >\n {{ groupDescription }}\n </p>\n </div>\n <div v-if=\"!vertical\" :class=\"['sl-grid sl-gap-x-6 sl-gap-y-4', gridColsClass]\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n <div v-else class=\"sl-flex sl-flex-col sl-gap-4\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n\n <div v-else data-testid=\"switch-input-group\">\n <div \n v-if=\"groupLabel || groupDescription\" \n :class=\"['sl-mb-4', !vertical ? 'sl-col-span-full' : '']\"\n >\n <h3 \n v-if=\"groupLabel\" \n class=\"sl-text-lg sl-font-medium sl-leading-6 sl-text-gray-900 dark:sl-text-white\"\n >\n {{ groupLabel }}\n </h3>\n <p \n v-if=\"groupDescription\" \n class=\"sl-mt-1 sl-text-sm sl-text-gray-500 dark:sl-text-gray-300\"\n >\n {{ groupDescription }}\n </p>\n </div>\n <div v-if=\"!vertical\" :class=\"['sl-grid sl-gap-x-6 sl-gap-y-4', gridColsClass]\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n <div v-else class=\"sl-flex sl-flex-col sl-gap-4\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, type PropType } from 'vue'\nimport SwitchInput from './SwitchInput.vue'\n\n/**\n * Configuration for a single switch in the group\n */\nexport interface SwitchConfig {\n name: string\n label: string\n description?: string\n textTrue?: string\n textFalse?: string\n defaultValue?: boolean\n disabled?: boolean\n rules?: unknown\n}\n\nconst props = defineProps({\n switches: {\n type: Array as PropType<SwitchConfig[]>,\n required: true\n },\n currentValues: {\n type: Object as PropType<Record<string, boolean>>,\n default: () => ({})\n },\n groupLabel: {\n type: String,\n default: ''\n },\n groupDescription: {\n type: String,\n default: ''\n },\n boxShadow: {\n type: Boolean,\n default: true\n },\n gridColsClass: {\n type: String,\n default: 'sl-grid-cols-1 sm:sl-grid-cols-2'\n },\n vertical: {\n type: Boolean,\n default: false\n }\n})\n\nconst emit = defineEmits<{\n 'update:value': [payload: { name: string; value: boolean }]\n}>()\n\nconst internalDisplayValues = ref<Record<string, boolean>>({})\n\nconst initializeOrUpdateInternalDisplayValues = () => {\n const newDisplayValues: Record<string, boolean> = {}\n props.switches.forEach((switchItem) => {\n newDisplayValues[switchItem.name] =\n props.currentValues[switchItem.name] !== undefined\n ? props.currentValues[switchItem.name]\n : switchItem.defaultValue !== undefined\n ? switchItem.defaultValue\n : false\n })\n internalDisplayValues.value = newDisplayValues\n}\n\n// Watch for changes in currentValues to update internalDisplayValues\nwatch(\n () => props.currentValues,\n () => {\n initializeOrUpdateInternalDisplayValues()\n },\n { deep: true }\n)\n\n// Watch for changes in switches prop\nwatch(\n () => props.switches,\n () => {\n initializeOrUpdateInternalDisplayValues()\n },\n { deep: true }\n)\n\n// Initialize on mount\ninitializeOrUpdateInternalDisplayValues()\n\nconst handleSwitchUpdate = (switchName: string, newValue: boolean) => {\n // Update internal display state immediately for responsiveness\n internalDisplayValues.value = {\n ...internalDisplayValues.value,\n [switchName]: newValue\n }\n // Emit the flat update event\n emit('update:value', { name: switchName, value: newValue })\n}\n</script>\n\n"],"names":["props","__props","emit","__emit","internalDisplayValues","ref","initializeOrUpdateInternalDisplayValues","newDisplayValues","switchItem","watch","handleSwitchUpdate","switchName","newValue","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_Fragment","_renderList","index","_createVNode","SwitchInput","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0JA,UAAMA,IAAQC,GA+BRC,IAAOC,GAIPC,IAAwBC,EAA6B,EAAE,GAEvDC,IAA0C,MAAM;AACpD,YAAMC,IAA4C,CAAA;AAClD,MAAAP,EAAM,SAAS,QAAQ,CAACQ,MAAe;AACrC,QAAAD,EAAiBC,EAAW,IAAI,IAC9BR,EAAM,cAAcQ,EAAW,IAAI,MAAM,SACrCR,EAAM,cAAcQ,EAAW,IAAI,IACnCA,EAAW,iBAAiB,SAC1BA,EAAW,eACX;AAAA,MACV,CAAC,GACDJ,EAAsB,QAAQG;AAAA,IAChC;AAGA,IAAAE;AAAA,MACE,MAAMT,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAM,EAAA;AAAA,MACF;AAAA,MACA,EAAE,MAAM,GAAA;AAAA,IAAK,GAIfG;AAAA,MACE,MAAMT,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAM,EAAA;AAAA,MACF;AAAA,MACA,EAAE,MAAM,GAAA;AAAA,IAAK,GAIfA,EAAA;AAEA,UAAMI,IAAqB,CAACC,GAAoBC,MAAsB;AAEpE,MAAAR,EAAsB,QAAQ;AAAA,QAC5B,GAAGA,EAAsB;AAAA,QACzB,CAACO,CAAU,GAAGC;AAAA,MAAA,GAGhBV,EAAK,gBAAgB,EAAE,MAAMS,GAAY,OAAOC,GAAU;AAAA,IAC5D;qBAxMUX,EAAA,aADRY,EAAA,GAAAC,EAmDM,OAnDNC,GAmDM;AAAA,MA9CJC,EA6CM,OA7CNC,GA6CM;AAAA,QA5COhB,EAAA,cAAcA,EAAA,oBAAzBY,KAAAC,EAaM,OAbNI,GAaM;AAAA,UAXIjB,EAAA,mBADRa,EAKK,MALLK,GAKKC,EADAnB,EAAA,UAAU,GAAA,CAAA;UAGPA,EAAA,yBADRa,EAKI,KALJO,GAKID,EADCnB,EAAA,gBAAgB,GAAA,CAAA;;QAGXA,EAAA,YAeZY,KAAAC,EAcM,OAdNQ,GAcM;AAAA,WAbJT,EAAA,EAAA,GAAAC,EAYMS,GAAA,MAAAC,EAZ6BvB,EAAA,UAAQ,CAA9BO,GAAYiB,YAAzBX,EAYM,OAAA;AAAA,YAZwC,KAAKN,EAAW,QAAQiB;AAAA,UAAA;YACpEC,EAUEC,GAAA;AAAA,cATC,MAAMnB,EAAW;AAAA,cACjB,OAAOA,EAAW;AAAA,cAClB,aAAaA,EAAW;AAAA,cACxB,aAAWA,EAAW;AAAA,cACtB,cAAYA,EAAW;AAAA,cACvB,UAAUA,EAAW;AAAA,cACrB,eAAaJ,EAAA,MAAsBI,EAAW,IAAI;AAAA,cAClD,uBAAkB,CAAGI,MAAsBF,EAAmBF,EAAW,MAAMI,CAAQ;AAAA,cACvF,cAAY;AAAA,YAAA;;oBA1BnBE,EAcM,OAAA;AAAA;UAdiB,2CAAyCb,EAAA,aAAa,CAAA;AAAA,QAAA;WAC3EY,EAAA,EAAA,GAAAC,EAYMS,GAAA,MAAAC,EAZ6BvB,EAAA,UAAQ,CAA9BO,GAAYiB,YAAzBX,EAYM,OAAA;AAAA,YAZwC,KAAKN,EAAW,QAAQiB;AAAA,UAAA;YACpEC,EAUEC,GAAA;AAAA,cATC,MAAMnB,EAAW;AAAA,cACjB,OAAOA,EAAW;AAAA,cAClB,aAAaA,EAAW;AAAA,cACxB,aAAWA,EAAW;AAAA,cACtB,cAAYA,EAAW;AAAA,cACvB,UAAUA,EAAW;AAAA,cACrB,eAAaJ,EAAA,MAAsBI,EAAW,IAAI;AAAA,cAClD,uBAAkB,CAAGI,MAAsBF,EAAmBF,EAAW,MAAMI,CAAQ;AAAA,cACvF,cAAY;AAAA,YAAA;;;;WAsBvBC,EAAA,GAAAC,EAgDM,OAhDNc,GAgDM;AAAA,MA9CI3B,EAAA,cAAcA,EAAA,yBADtBa,EAgBM,OAAA;AAAA;QAdH,qBAAoBb,EAAA,WAAQ,KAAA,kBAAA,CAAA;AAAA,MAAA;QAGrBA,EAAA,mBADRa,EAKK,MALLe,GAKKT,EADAnB,EAAA,UAAU,GAAA,CAAA;QAGPA,EAAA,yBADRa,EAKI,KALJgB,GAKIV,EADCnB,EAAA,gBAAgB,GAAA,CAAA;;MAGXA,EAAA,YAeZY,KAAAC,EAcM,OAdNiB,GAcM;AAAA,SAbJlB,EAAA,EAAA,GAAAC,EAYMS,GAAA,MAAAC,EAZ6BvB,EAAA,UAAQ,CAA9BO,GAAYiB,YAAzBX,EAYM,OAAA;AAAA,UAZwC,KAAKN,EAAW,QAAQiB;AAAA,QAAA;UACpEC,EAUEC,GAAA;AAAA,YATC,MAAMnB,EAAW;AAAA,YACjB,OAAOA,EAAW;AAAA,YAClB,aAAaA,EAAW;AAAA,YACxB,aAAWA,EAAW;AAAA,YACtB,cAAYA,EAAW;AAAA,YACvB,UAAUA,EAAW;AAAA,YACrB,eAAaJ,EAAA,MAAsBI,EAAW,IAAI;AAAA,YAClD,uBAAkB,CAAGI,MAAsBF,EAAmBF,EAAW,MAAMI,CAAQ;AAAA,YACvF,cAAY;AAAA,UAAA;;kBA1BnBE,EAcM,OAAA;AAAA;QAdiB,2CAAyCb,EAAA,aAAa,CAAA;AAAA,MAAA;SAC3EY,EAAA,EAAA,GAAAC,EAYMS,GAAA,MAAAC,EAZ6BvB,EAAA,UAAQ,CAA9BO,GAAYiB,YAAzBX,EAYM,OAAA;AAAA,UAZwC,KAAKN,EAAW,QAAQiB;AAAA,QAAA;UACpEC,EAUEC,GAAA;AAAA,YATC,MAAMnB,EAAW;AAAA,YACjB,OAAOA,EAAW;AAAA,YAClB,aAAaA,EAAW;AAAA,YACxB,aAAWA,EAAW;AAAA,YACtB,cAAYA,EAAW;AAAA,YACvB,UAAUA,EAAW;AAAA,YACrB,eAAaJ,EAAA,MAAsBI,EAAW,IAAI;AAAA,YAClD,uBAAkB,CAAGI,MAAsBF,EAAmBF,EAAW,MAAMI,CAAQ;AAAA,YACvF,cAAY;AAAA,UAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"SwitchInputGroup.vue_vue_type_script_setup_true_lang-CK9JWl4F.js","sources":["../src/components/inputs/SwitchInputGroup.vue"],"sourcesContent":["<!--\n @component SwitchInputGroup\n @description Groups multiple switch inputs in a configurable grid layout.\n \n Renders multiple SwitchInput components in a grid or vertical layout with\n optional group label and description. Useful for settings panels with\n multiple related toggle options.\n \n @props\n - switches (SwitchConfig[], required): Array of switch configurations\n - currentValues (Record<string, boolean>, optional): Current values for all switches\n - groupLabel (string, optional): Header title for the group\n - groupDescription (string, optional): Description under the title\n - boxShadow (boolean, optional): Apply card-like shadow wrapper\n - gridColsClass (string, optional): Tailwind grid column classes\n - vertical (boolean, optional): Stack switches vertically instead of grid\n \n @emits\n - update:value: Emitted when any switch value changes { name: string, value: boolean }\n \n @example\n <SwitchInputGroup\n :switches=\"[\n { name: 'dark-mode', label: 'Dark Mode' },\n { name: 'notifications', label: 'Notifications', defaultValue: true }\n ]\"\n :current-values=\"settings\"\n group-label=\"Preferences\"\n @update:value=\"handleSwitch\"\n />\n-->\n<template>\n <div \n v-if=\"boxShadow\" \n class=\"sl-bg-white dark:sl-bg-slate-800 sl-shadow sm:sl-rounded-lg sl-w-full\"\n data-testid=\"switch-input-group\"\n >\n <div class=\"sl-px-4 sl-py-5 sm:sl-p-6\">\n <div v-if=\"groupLabel || groupDescription\" class=\"sl-mb-4\">\n <h3 \n v-if=\"groupLabel\" \n class=\"sl-text-lg sl-font-medium sl-leading-6 sl-text-gray-900 dark:sl-text-white\"\n >\n {{ groupLabel }}\n </h3>\n <p \n v-if=\"groupDescription\" \n class=\"sl-mt-1 sl-text-sm sl-text-gray-500 dark:sl-text-gray-300\"\n >\n {{ groupDescription }}\n </p>\n </div>\n <div v-if=\"!vertical\" :class=\"['sl-grid sl-gap-x-6 sl-gap-y-4', gridColsClass]\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n <div v-else class=\"sl-flex sl-flex-col sl-gap-4\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n\n <div v-else data-testid=\"switch-input-group\">\n <div \n v-if=\"groupLabel || groupDescription\" \n :class=\"['sl-mb-4', !vertical ? 'sl-col-span-full' : '']\"\n >\n <h3 \n v-if=\"groupLabel\" \n class=\"sl-text-lg sl-font-medium sl-leading-6 sl-text-gray-900 dark:sl-text-white\"\n >\n {{ groupLabel }}\n </h3>\n <p \n v-if=\"groupDescription\" \n class=\"sl-mt-1 sl-text-sm sl-text-gray-500 dark:sl-text-gray-300\"\n >\n {{ groupDescription }}\n </p>\n </div>\n <div v-if=\"!vertical\" :class=\"['sl-grid sl-gap-x-6 sl-gap-y-4', gridColsClass]\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n <div v-else class=\"sl-flex sl-flex-col sl-gap-4\">\n <div v-for=\"(switchItem, index) in switches\" :key=\"switchItem.name || index\">\n <SwitchInput\n :name=\"switchItem.name\"\n :label=\"switchItem.label\"\n :description=\"switchItem.description\"\n :text-true=\"switchItem.textTrue\"\n :text-false=\"switchItem.textFalse\"\n :disabled=\"switchItem.disabled\"\n :model-value=\"internalDisplayValues[switchItem.name]\"\n @update:model-value=\"(newValue: boolean) => handleSwitchUpdate(switchItem.name, newValue)\"\n :box-shadow=\"false\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, type PropType } from 'vue'\nimport SwitchInput from './SwitchInput.vue'\n\n/**\n * Configuration for a single switch in the group\n */\nexport interface SwitchConfig {\n name: string\n label: string\n description?: string\n textTrue?: string\n textFalse?: string\n defaultValue?: boolean\n disabled?: boolean\n rules?: unknown\n}\n\nconst props = defineProps({\n switches: {\n type: Array as PropType<SwitchConfig[]>,\n required: true\n },\n currentValues: {\n type: Object as PropType<Record<string, boolean>>,\n default: () => ({})\n },\n groupLabel: {\n type: String,\n default: ''\n },\n groupDescription: {\n type: String,\n default: ''\n },\n boxShadow: {\n type: Boolean,\n default: true\n },\n gridColsClass: {\n type: String,\n default: 'sl-grid-cols-1 sm:sl-grid-cols-2'\n },\n vertical: {\n type: Boolean,\n default: false\n }\n})\n\nconst emit = defineEmits<{\n 'update:value': [payload: { name: string; value: boolean }]\n}>()\n\nconst internalDisplayValues = ref<Record<string, boolean>>({})\n\nconst initializeOrUpdateInternalDisplayValues = () => {\n const newDisplayValues: Record<string, boolean> = {}\n props.switches.forEach((switchItem) => {\n newDisplayValues[switchItem.name] =\n props.currentValues[switchItem.name] !== undefined\n ? props.currentValues[switchItem.name]\n : switchItem.defaultValue !== undefined\n ? switchItem.defaultValue\n : false\n })\n internalDisplayValues.value = newDisplayValues\n}\n\n// Watch for changes in currentValues to update internalDisplayValues\nwatch(\n () => props.currentValues,\n () => {\n initializeOrUpdateInternalDisplayValues()\n },\n { deep: true }\n)\n\n// Watch for changes in switches prop\nwatch(\n () => props.switches,\n () => {\n initializeOrUpdateInternalDisplayValues()\n },\n { deep: true }\n)\n\n// Initialize on mount\ninitializeOrUpdateInternalDisplayValues()\n\nconst handleSwitchUpdate = (switchName: string, newValue: boolean) => {\n // Update internal display state immediately for responsiveness\n internalDisplayValues.value = {\n ...internalDisplayValues.value,\n [switchName]: newValue\n }\n // Emit the flat update event\n emit('update:value', { name: switchName, value: newValue })\n}\n</script>\n\n"],"names":["props","__props","emit","__emit","internalDisplayValues","ref","initializeOrUpdateInternalDisplayValues","newDisplayValues","switchItem","watch","handleSwitchUpdate","switchName","newValue","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_Fragment","_renderList","index","_createVNode","SwitchInput","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as L, computed as v, createElementBlock as a, openBlock as o, createCommentVNode as d, createVNode as u, unref as s, withCtx as c, createElementVNode as m, Fragment as j, renderList as z, createBlock as p, normalizeClass as _, createTextVNode as A, toDisplayString as k, renderSlot as y, KeepAlive as F, resolveDynamicComponent as K, mergeProps as U, toHandlers as q } from "vue";
|
|
2
2
|
import { useTabs as J } from "./composables/useTabs.js";
|
|
3
|
-
import { _ as Q } from "./SelectInput.vue_vue_type_script_setup_true_lang
|
|
4
|
-
import { m as R, p as W, x as X } from "./tabs-
|
|
3
|
+
import { _ as Q } from "./SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js";
|
|
4
|
+
import { m as R, p as W, x as X } from "./tabs-J5phClGv.js";
|
|
5
5
|
const Y = { class: "sl-w-full" }, Z = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "sl-block sm:sl-hidden sl-mb-4"
|
|
@@ -122,4 +122,4 @@ const Y = { class: "sl-w-full" }, Z = {
|
|
|
122
122
|
export {
|
|
123
123
|
ae as _
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=TabGroup.vue_vue_type_script_setup_true_lang-
|
|
125
|
+
//# sourceMappingURL=TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabGroup.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"TabGroup.vue_vue_type_script_setup_true_lang-DVVeOgWH.js","sources":["../src/components/tabs/TabGroup.vue"],"sourcesContent":["<!--\n @component TabGroup\n @description Pill-style tab navigation with mobile dropdown support.\n \n A comprehensive tab component that renders as pill-style tabs on desktop\n and automatically switches to a dropdown select on mobile. Uses HeadlessUI\n TabGroup for accessibility.\n \n @props\n - tabGroup (string, required): Name of the tab group for filtering\n - tabs (TabsItemType[], required): Array of tab configurations\n - tab (number, optional): Currently active tab index\n - tabCountTheme (TabCountTheme, optional): Theme for count badges\n - dropdownOnMobile (boolean, optional): Show dropdown on mobile (default: true)\n - fixedHeight (string, optional): Fixed height CSS class for content area\n \n @emits\n - tab-change: Emitted when active tab changes, payload is the new index\n \n @example\n <TabGroup\n tab-group=\"settings\"\n :tabs=\"settingsTabs\"\n :tab=\"activeTab\"\n @tab-change=\"handleTabChange\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <!-- Mobile dropdown using SelectInput -->\n <div v-if=\"showDropdownOnMobile\" class=\"sl-block sm:sl-hidden sl-mb-4\">\n <SelectInput\n :name=\"`${props.tabGroup}-mobile-tab-select`\"\n :items=\"selectInputItems\"\n :model-value=\"selectedTabItem\"\n item-key=\"id\"\n item-text=\"name\"\n placeholder=\"Select tab\"\n @update:model-value=\"handleSelectInputChange\"\n />\n </div>\n\n <!-- Desktop tabs -->\n <HeadlessTabGroup :selected-index=\"selectedTab\" @change=\"handleTabGroupTabChange\">\n <HeadlessTabList class=\"sl-hidden sm:sl-flex sl-space-x-1 sl-rounded-xl sl-bg-stachelock-900/20 dark:sl-bg-slate-800 sl-p-1\">\n <HeadlessTab\n v-for=\"tabItem in filteredTabs\"\n :key=\"tabItem.id\"\n as=\"template\"\n v-slot=\"{ selected }\"\n :disabled=\"tabItem.disabled\"\n >\n <button\n :class=\"[\n 'sl-w-full sl-rounded-lg sl-py-2.5 sl-px-4 sl-text-sm sl-font-medium sl-leading-5 sl-transition-all sl-duration-200',\n 'focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-2 focus:sl-ring-stachelock-500',\n selected\n ? 'sl-bg-white dark:sl-bg-slate-700 sl-text-stachelock-700 dark:sl-text-white sl-shadow'\n : 'sl-text-gray-600 dark:sl-text-slate-300 hover:sl-bg-white/[0.12] hover:sl-text-gray-800 dark:hover:sl-text-white',\n tabItem.disabled ? 'sl-opacity-50 sl-cursor-not-allowed' : 'sl-cursor-pointer'\n ]\"\n @mouseenter=\"mouseEnter(tabItem.id)\"\n @mouseleave=\"mouseLeave(tabItem.id)\"\n >\n <span class=\"sl-flex sl-items-center sl-justify-center sl-gap-2\">\n {{ tabItem.name }}\n <span\n v-if=\"tabItem.count !== undefined && tabItem.count !== null\"\n :class=\"[\n 'sl-ml-2 sl-rounded-full sl-py-0.5 sl-px-2.5 sl-text-xs sl-font-medium sl-tabular-nums',\n selected || hoverStates[tabItem.id]\n ? `sl-ring-1 ${themeClasses.ringColor} ${themeClasses.bgColor} sl-text-gray-800`\n : 'sl-bg-gray-200 dark:sl-bg-slate-600 sl-text-gray-700 dark:sl-text-slate-200'\n ]\"\n >\n {{ tabItem.count }}\n </span>\n </span>\n </button>\n </HeadlessTab>\n </HeadlessTabList>\n\n <!-- Tab content area -->\n <div class=\"sl-mt-4\">\n <slot name=\"component-heading\" />\n \n <KeepAlive>\n <component\n v-if=\"selectedComponent\"\n :is=\"selectedComponent\"\n :key=\"selectedTabId\"\n v-bind=\"selectedProps || {}\"\n v-on=\"selectedEvents || {}\"\n />\n </KeepAlive>\n \n <slot v-if=\"!selectedComponent\" />\n </div>\n </HeadlessTabGroup>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { \n TabGroup as HeadlessTabGroup, \n TabList as HeadlessTabList, \n Tab as HeadlessTab \n} from '@headlessui/vue';\nimport { useTabs, type TabCountTheme, type UseTabsProps } from '../../composables/useTabs';\nimport type { TabsItemType } from '../../types/layouts';\nimport SelectInput from '../inputs/SelectInput.vue';\n\ninterface Props {\n tabGroup: string;\n tabs: TabsItemType[];\n tab?: number | null;\n tabCountTheme?: TabCountTheme;\n dropdownOnMobile?: boolean;\n fixedHeight?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n tab: 0,\n tabCountTheme: 'primary',\n dropdownOnMobile: true,\n});\n\nconst emit = defineEmits<{\n 'tab-change': [index: number];\n}>();\n\nconst tabsProps: UseTabsProps = {\n tabGroup: props.tabGroup,\n tab: props.tab,\n tabs: props.tabs,\n tabCountTheme: props.tabCountTheme,\n dropdownOnMobile: props.dropdownOnMobile,\n fixedHeight: props.fixedHeight,\n};\n\nconst {\n selectedTabId,\n selectedTab,\n filteredTabs,\n hoverStates,\n themeClasses,\n dropdownOnMobile: showDropdownOnMobile,\n selectedComponent,\n selectedProps,\n selectedEvents,\n mouseEnter,\n mouseLeave,\n handleTabGroupTabChange: handleTabGroupChange,\n} = useTabs(tabsProps, (event, ...args) => {\n if (event === 'tab-change') {\n emit('tab-change', args[0] as number);\n }\n});\n\n// SelectInput compatible items - include count in name for mobile dropdown\nconst selectInputItems = computed(() => \n filteredTabs.value.map(tab => ({\n id: tab.id,\n name: tab.count !== undefined && tab.count !== null\n ? `${tab.name} (${tab.count})`\n : tab.name,\n disabled: tab.disabled\n }))\n);\n\n// Currently selected tab item for SelectInput\nconst selectedTabItem = computed(() => \n selectInputItems.value.find(item => item.id === selectedTabId.value) || null\n);\n\nconst handleTabGroupTabChange = (index: number) => {\n handleTabGroupChange(index);\n};\n\n// Handler for SelectInput changes\nconst handleSelectInputChange = (item: { id: number; name: string; disabled?: boolean } | null) => {\n if (!item) return;\n const index = filteredTabs.value.findIndex(t => t.id === item.id);\n if (index >= 0) {\n handleTabGroupTabChange(index);\n }\n};\n</script>\n"],"names":["props","__props","emit","__emit","tabsProps","selectedTabId","selectedTab","filteredTabs","hoverStates","themeClasses","showDropdownOnMobile","selectedComponent","selectedProps","selectedEvents","mouseEnter","mouseLeave","handleTabGroupChange","useTabs","event","args","selectInputItems","computed","tab","selectedTabItem","item","handleTabGroupTabChange","index","handleSelectInputChange","t","_openBlock","_createElementBlock","_hoisted_1","_unref","_hoisted_2","_createVNode","SelectInput","HeadlessTabGroup","HeadlessTabList","_Fragment","_renderList","tabItem","_createBlock","HeadlessTab","_withCtx","selected","_createElementVNode","_normalizeClass","$event","_hoisted_4","_toDisplayString","_hoisted_5","_renderSlot","_ctx","_KeepAlive","_resolveDynamicComponent","_mergeProps","_toHandlers"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as P, computed as
|
|
1
|
+
import { defineComponent as P, computed as x, createElementBlock as n, openBlock as t, createCommentVNode as r, createVNode as v, toDisplayString as b, unref as l, withCtx as F, createElementVNode as c, Fragment as L, renderList as U, normalizeClass as f, createTextVNode as z, renderSlot as g, createBlock as y, KeepAlive as A, resolveDynamicComponent as K, mergeProps as j, toHandlers as q } from "vue";
|
|
2
2
|
import { useTabs as J } from "./composables/useTabs.js";
|
|
3
|
-
import { _ as Q } from "./SelectInput.vue_vue_type_script_setup_true_lang
|
|
4
|
-
import { m as R } from "./tabs-
|
|
3
|
+
import { _ as Q } from "./SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js";
|
|
4
|
+
import { m as R } from "./tabs-J5phClGv.js";
|
|
5
5
|
const W = { class: "sl-w-full" }, X = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "sl-text-lg sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-mb-4"
|
|
@@ -23,8 +23,8 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
23
23
|
fixedHeight: {}
|
|
24
24
|
},
|
|
25
25
|
emits: ["tab-change"],
|
|
26
|
-
setup(
|
|
27
|
-
const o =
|
|
26
|
+
setup(i, { emit: _ }) {
|
|
27
|
+
const o = i, T = _, C = {
|
|
28
28
|
tabGroup: o.tabGroup,
|
|
29
29
|
tab: o.tab,
|
|
30
30
|
tabs: o.tabs,
|
|
@@ -34,10 +34,10 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
34
34
|
}, {
|
|
35
35
|
selectedTabId: a,
|
|
36
36
|
selectedTab: w,
|
|
37
|
-
filteredTabs:
|
|
37
|
+
filteredTabs: u,
|
|
38
38
|
hoverStates: M,
|
|
39
39
|
dropdownOnMobile: $,
|
|
40
|
-
selectedComponent:
|
|
40
|
+
selectedComponent: m,
|
|
41
41
|
selectedProps: G,
|
|
42
42
|
selectedEvents: S,
|
|
43
43
|
mouseEnter: O,
|
|
@@ -46,29 +46,29 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
46
46
|
syncSelectedTabForDesktop: D
|
|
47
47
|
} = J(C, (e, ...d) => {
|
|
48
48
|
e === "tab-change" && T("tab-change", d[0]);
|
|
49
|
-
}),
|
|
50
|
-
() =>
|
|
49
|
+
}), h = x(
|
|
50
|
+
() => u.value.map((e) => ({
|
|
51
51
|
id: e.id,
|
|
52
52
|
name: e.count !== void 0 && e.count !== null ? `${e.name} (${e.count})` : e.name,
|
|
53
53
|
disabled: e.disabled
|
|
54
54
|
}))
|
|
55
|
-
), E =
|
|
56
|
-
() =>
|
|
57
|
-
),
|
|
55
|
+
), E = x(
|
|
56
|
+
() => h.value.find((e) => e.id === a.value) || null
|
|
57
|
+
), p = (e) => {
|
|
58
58
|
B(e);
|
|
59
59
|
}, H = (e) => {
|
|
60
60
|
e.disabled || D(e);
|
|
61
61
|
}, N = (e) => {
|
|
62
62
|
if (!e) return;
|
|
63
|
-
const d =
|
|
64
|
-
d >= 0 &&
|
|
63
|
+
const d = u.value.findIndex((s) => s.id === e.id);
|
|
64
|
+
d >= 0 && p(d);
|
|
65
65
|
};
|
|
66
66
|
return (e, d) => (t(), n("div", W, [
|
|
67
|
-
|
|
67
|
+
i.title ? (t(), n("h2", X, b(i.title), 1)) : r("", !0),
|
|
68
68
|
l($) ? (t(), n("div", Y, [
|
|
69
69
|
v(Q, {
|
|
70
|
-
name: `${
|
|
71
|
-
items:
|
|
70
|
+
name: `${i.tabGroup}-mobile-tab-select`,
|
|
71
|
+
items: h.value,
|
|
72
72
|
"model-value": E.value,
|
|
73
73
|
"item-key": "id",
|
|
74
74
|
"item-text": "name",
|
|
@@ -78,17 +78,17 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
78
78
|
])) : r("", !0),
|
|
79
79
|
v(l(R), {
|
|
80
80
|
"selected-index": l(w),
|
|
81
|
-
onChange:
|
|
81
|
+
onChange: p
|
|
82
82
|
}, {
|
|
83
83
|
default: F(() => [
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
(t(!0), n(L, null, U(l(
|
|
84
|
+
c("div", Z, [
|
|
85
|
+
c("div", I, [
|
|
86
|
+
c("nav", ee, [
|
|
87
|
+
(t(!0), n(L, null, U(l(u), (s) => (t(), n("button", {
|
|
88
88
|
key: s.id,
|
|
89
|
-
onClick: (
|
|
90
|
-
onMouseenter: (
|
|
91
|
-
onMouseleave: (
|
|
89
|
+
onClick: (k) => H(s),
|
|
90
|
+
onMouseenter: (k) => l(O)(s.id),
|
|
91
|
+
onMouseleave: (k) => l(V)(s.id),
|
|
92
92
|
disabled: s.disabled,
|
|
93
93
|
class: f([
|
|
94
94
|
"sl-flex sl-whitespace-nowrap sl-border-b-2 sl-py-4 sl-px-1 sl-text-sm sl-font-medium sl-transition-colors sl-duration-200",
|
|
@@ -97,7 +97,7 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
97
97
|
]),
|
|
98
98
|
"aria-current": s.id === l(a) ? "page" : void 0
|
|
99
99
|
}, [
|
|
100
|
-
z(
|
|
100
|
+
z(b(s.name) + " ", 1),
|
|
101
101
|
s.count !== void 0 && s.count !== null ? (t(), n("span", {
|
|
102
102
|
key: 0,
|
|
103
103
|
class: f([
|
|
@@ -105,17 +105,17 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
105
105
|
s.id === l(a) ? "sl-bg-stachelock-100 dark:sl-bg-stachelock-900/30 sl-text-stachelock-600 dark:sl-text-stachelock-400" : "sl-bg-gray-100 dark:sl-bg-slate-700 sl-text-gray-800 dark:sl-text-slate-200",
|
|
106
106
|
l(M)[s.id] ? "sl-ring-1 sl-ring-stachelock-600" : ""
|
|
107
107
|
])
|
|
108
|
-
},
|
|
108
|
+
}, b(s.count), 3)) : r("", !0)
|
|
109
109
|
], 42, se))), 128))
|
|
110
110
|
])
|
|
111
111
|
])
|
|
112
112
|
]),
|
|
113
|
-
|
|
113
|
+
c("div", le, [
|
|
114
114
|
g(e.$slots, "component-heading"),
|
|
115
|
-
(t(),
|
|
116
|
-
l(
|
|
115
|
+
(t(), y(A, null, [
|
|
116
|
+
l(m) ? (t(), y(K(l(m)), j({ key: l(a) }, l(G) || {}, q(l(S) || {})), null, 16)) : r("", !0)
|
|
117
117
|
], 1024)),
|
|
118
|
-
l(
|
|
118
|
+
l(m) ? r("", !0) : g(e.$slots, "default", { key: 0 })
|
|
119
119
|
])
|
|
120
120
|
]),
|
|
121
121
|
_: 3
|
|
@@ -126,4 +126,4 @@ const W = { class: "sl-w-full" }, X = {
|
|
|
126
126
|
export {
|
|
127
127
|
de as _
|
|
128
128
|
};
|
|
129
|
-
//# sourceMappingURL=TabGroupUnderline.vue_vue_type_script_setup_true_lang-
|
|
129
|
+
//# sourceMappingURL=TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js","sources":["../src/components/tabs/TabGroupUnderline.vue"],"sourcesContent":["<!--\n @component TabGroupUnderline\n @description Underline-style tab navigation with mobile dropdown support.\n \n A tab component with underline indicator styling. Renders as underline tabs\n on desktop and switches to SelectInput dropdown on mobile.\n \n @props\n - tabGroup (string, required): Name of the tab group for filtering\n - tabs (TabsItemType[], required): Array of tab configurations\n - tab (number, optional): Currently active tab index\n - title (string, optional): Optional heading title\n - tabCountTheme (TabCountTheme, optional): Theme for count badges\n - dropdownOnMobile (boolean, optional): Show dropdown on mobile (default: true)\n - fixedHeight (string, optional): Fixed height CSS class for content area\n \n @emits\n - tab-change: Emitted when active tab changes, payload is the new index\n \n @example\n <TabGroupUnderline\n tab-group=\"users\"\n title=\"User Management\"\n :tabs=\"userTabs\"\n :tab=\"activeTab\"\n @tab-change=\"handleTabChange\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <!-- Optional title -->\n <h2 v-if=\"title\" class=\"sl-text-lg sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-mb-4\">\n {{ title }}\n </h2>\n\n <!-- Mobile dropdown using SelectInput -->\n <div v-if=\"showDropdownOnMobile\" class=\"sl-block sm:sl-hidden sl-mb-4\">\n <SelectInput\n :name=\"`${tabGroup}-mobile-tab-select`\"\n :items=\"selectInputItems\"\n :model-value=\"selectedTabItem\"\n item-key=\"id\"\n item-text=\"name\"\n placeholder=\"Select tab\"\n @update:model-value=\"handleSelectInputChange\"\n />\n </div>\n\n <!-- Desktop tabs -->\n <HeadlessTabGroup :selected-index=\"selectedTab\" @change=\"handleTabGroupTabChange\">\n <div class=\"sl-hidden sm:sl-block\">\n <div class=\"sl-border-b sl-border-gray-200 dark:sl-border-slate-700\">\n <nav class=\"sl--mb-px sl-flex sl-space-x-8\" aria-label=\"Tabs\">\n <button\n v-for=\"tabItem in filteredTabs\"\n :key=\"tabItem.id\"\n @click=\"selectTab(tabItem)\"\n @mouseenter=\"mouseEnter(tabItem.id)\"\n @mouseleave=\"mouseLeave(tabItem.id)\"\n :disabled=\"tabItem.disabled\"\n :class=\"[\n 'sl-flex sl-whitespace-nowrap sl-border-b-2 sl-py-4 sl-px-1 sl-text-sm sl-font-medium sl-transition-colors sl-duration-200',\n tabItem.id === selectedTabId\n ? 'sl-border-stachelock-500 sl-text-stachelock-600 dark:sl-text-stachelock-400'\n : 'sl-border-transparent sl-text-gray-500 dark:sl-text-slate-400 hover:sl-border-gray-200 dark:hover:sl-border-slate-600 hover:sl-text-gray-700 dark:hover:sl-text-slate-300',\n tabItem.disabled ? 'sl-opacity-50 sl-cursor-not-allowed' : 'sl-cursor-pointer'\n ]\"\n :aria-current=\"tabItem.id === selectedTabId ? 'page' : undefined\"\n >\n {{ tabItem.name }}\n <span\n v-if=\"tabItem.count !== undefined && tabItem.count !== null\"\n :class=\"[\n 'sl-ml-3 sl-hidden sl-rounded-full sl-py-0.5 sl-px-2.5 sl-text-xs sl-font-medium md:sl-inline-block sl-tabular-nums',\n tabItem.id === selectedTabId\n ? 'sl-bg-stachelock-100 dark:sl-bg-stachelock-900/30 sl-text-stachelock-600 dark:sl-text-stachelock-400'\n : 'sl-bg-gray-100 dark:sl-bg-slate-700 sl-text-gray-800 dark:sl-text-slate-200',\n hoverStates[tabItem.id] ? 'sl-ring-1 sl-ring-stachelock-600' : ''\n ]\"\n >\n {{ tabItem.count }}\n </span>\n </button>\n </nav>\n </div>\n </div>\n\n <!-- Tab content area -->\n <div class=\"sl-mt-4\">\n <slot name=\"component-heading\" />\n \n <KeepAlive>\n <component\n v-if=\"selectedComponent\"\n :is=\"selectedComponent\"\n :key=\"selectedTabId\"\n v-bind=\"selectedProps || {}\"\n v-on=\"selectedEvents || {}\"\n />\n </KeepAlive>\n \n <slot v-if=\"!selectedComponent\" />\n </div>\n </HeadlessTabGroup>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { TabGroup as HeadlessTabGroup } from '@headlessui/vue';\nimport { useTabs, type TabCountTheme, type UseTabsProps } from '../../composables/useTabs';\nimport type { TabsItemType } from '../../types/layouts';\nimport SelectInput from '../inputs/SelectInput.vue';\n\ninterface Props {\n tabGroup: string;\n tabs: TabsItemType[];\n tab?: number | null;\n title?: string;\n tabCountTheme?: TabCountTheme;\n dropdownOnMobile?: boolean;\n fixedHeight?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n tab: 0,\n tabCountTheme: 'primary',\n dropdownOnMobile: true,\n});\n\nconst emit = defineEmits<{\n 'tab-change': [index: number];\n}>();\n\nconst tabsProps: UseTabsProps = {\n tabGroup: props.tabGroup,\n tab: props.tab,\n tabs: props.tabs,\n tabCountTheme: props.tabCountTheme,\n dropdownOnMobile: props.dropdownOnMobile,\n fixedHeight: props.fixedHeight,\n};\n\nconst {\n selectedTabId,\n selectedTab,\n filteredTabs,\n hoverStates,\n dropdownOnMobile: showDropdownOnMobile,\n selectedComponent,\n selectedProps,\n selectedEvents,\n mouseEnter,\n mouseLeave,\n handleTabGroupTabChange: handleTabGroupChange,\n syncSelectedTabForDesktop,\n} = useTabs(tabsProps, (event, ...args) => {\n if (event === 'tab-change') {\n emit('tab-change', args[0] as number);\n }\n});\n\n// SelectInput compatible items - include count in name for mobile dropdown\nconst selectInputItems = computed(() => \n filteredTabs.value.map(tab => ({\n id: tab.id,\n name: tab.count !== undefined && tab.count !== null\n ? `${tab.name} (${tab.count})`\n : tab.name,\n disabled: tab.disabled\n }))\n);\n\n// Currently selected tab item for SelectInput\nconst selectedTabItem = computed(() => \n selectInputItems.value.find(item => item.id === selectedTabId.value) || null\n);\n\nconst handleTabGroupTabChange = (index: number) => {\n handleTabGroupChange(index);\n};\n\nconst selectTab = (tabItem: TabsItemType) => {\n if (!tabItem.disabled) {\n syncSelectedTabForDesktop(tabItem);\n }\n};\n\n// Handler for SelectInput changes\nconst handleSelectInputChange = (item: { id: number; name: string; disabled?: boolean } | null) => {\n if (!item) return;\n const index = filteredTabs.value.findIndex(t => t.id === item.id);\n if (index >= 0) {\n handleTabGroupTabChange(index);\n }\n};\n</script>\n\n"],"names":["props","__props","emit","__emit","tabsProps","selectedTabId","selectedTab","filteredTabs","hoverStates","showDropdownOnMobile","selectedComponent","selectedProps","selectedEvents","mouseEnter","mouseLeave","handleTabGroupChange","syncSelectedTabForDesktop","useTabs","event","args","selectInputItems","computed","tab","selectedTabItem","item","handleTabGroupTabChange","index","selectTab","tabItem","handleSelectInputChange","t","_openBlock","_createElementBlock","_hoisted_1","title","_hoisted_2","_toDisplayString","_unref","_hoisted_3","_createVNode","SelectInput","tabGroup","HeadlessTabGroup","_createElementVNode","_hoisted_4","_hoisted_5","_hoisted_6","_Fragment","_renderList","$event","_normalizeClass","_hoisted_8","_renderSlot","_ctx","_createBlock","_KeepAlive","_resolveDynamicComponent","_mergeProps","_toHandlers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabGroupUnderline.vue_vue_type_script_setup_true_lang-_3XtOn3w.js","sources":["../src/components/tabs/TabGroupUnderline.vue"],"sourcesContent":["<!--\n @component TabGroupUnderline\n @description Underline-style tab navigation with mobile dropdown support.\n \n A tab component with underline indicator styling. Renders as underline tabs\n on desktop and switches to SelectInput dropdown on mobile.\n \n @props\n - tabGroup (string, required): Name of the tab group for filtering\n - tabs (TabsItemType[], required): Array of tab configurations\n - tab (number, optional): Currently active tab index\n - title (string, optional): Optional heading title\n - tabCountTheme (TabCountTheme, optional): Theme for count badges\n - dropdownOnMobile (boolean, optional): Show dropdown on mobile (default: true)\n - fixedHeight (string, optional): Fixed height CSS class for content area\n \n @emits\n - tab-change: Emitted when active tab changes, payload is the new index\n \n @example\n <TabGroupUnderline\n tab-group=\"users\"\n title=\"User Management\"\n :tabs=\"userTabs\"\n :tab=\"activeTab\"\n @tab-change=\"handleTabChange\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <!-- Optional title -->\n <h2 v-if=\"title\" class=\"sl-text-lg sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-mb-4\">\n {{ title }}\n </h2>\n\n <!-- Mobile dropdown using SelectInput -->\n <div v-if=\"showDropdownOnMobile\" class=\"sl-block sm:sl-hidden sl-mb-4\">\n <SelectInput\n :name=\"`${tabGroup}-mobile-tab-select`\"\n :items=\"selectInputItems\"\n :model-value=\"selectedTabItem\"\n item-key=\"id\"\n item-text=\"name\"\n placeholder=\"Select tab\"\n @update:model-value=\"handleSelectInputChange\"\n />\n </div>\n\n <!-- Desktop tabs -->\n <HeadlessTabGroup :selected-index=\"selectedTab\" @change=\"handleTabGroupTabChange\">\n <div class=\"sl-hidden sm:sl-block\">\n <div class=\"sl-border-b sl-border-gray-200 dark:sl-border-slate-700\">\n <nav class=\"sl--mb-px sl-flex sl-space-x-8\" aria-label=\"Tabs\">\n <button\n v-for=\"tabItem in filteredTabs\"\n :key=\"tabItem.id\"\n @click=\"selectTab(tabItem)\"\n @mouseenter=\"mouseEnter(tabItem.id)\"\n @mouseleave=\"mouseLeave(tabItem.id)\"\n :disabled=\"tabItem.disabled\"\n :class=\"[\n 'sl-flex sl-whitespace-nowrap sl-border-b-2 sl-py-4 sl-px-1 sl-text-sm sl-font-medium sl-transition-colors sl-duration-200',\n tabItem.id === selectedTabId\n ? 'sl-border-stachelock-500 sl-text-stachelock-600 dark:sl-text-stachelock-400'\n : 'sl-border-transparent sl-text-gray-500 dark:sl-text-slate-400 hover:sl-border-gray-200 dark:hover:sl-border-slate-600 hover:sl-text-gray-700 dark:hover:sl-text-slate-300',\n tabItem.disabled ? 'sl-opacity-50 sl-cursor-not-allowed' : 'sl-cursor-pointer'\n ]\"\n :aria-current=\"tabItem.id === selectedTabId ? 'page' : undefined\"\n >\n {{ tabItem.name }}\n <span\n v-if=\"tabItem.count !== undefined && tabItem.count !== null\"\n :class=\"[\n 'sl-ml-3 sl-hidden sl-rounded-full sl-py-0.5 sl-px-2.5 sl-text-xs sl-font-medium md:sl-inline-block sl-tabular-nums',\n tabItem.id === selectedTabId\n ? 'sl-bg-stachelock-100 dark:sl-bg-stachelock-900/30 sl-text-stachelock-600 dark:sl-text-stachelock-400'\n : 'sl-bg-gray-100 dark:sl-bg-slate-700 sl-text-gray-800 dark:sl-text-slate-200',\n hoverStates[tabItem.id] ? 'sl-ring-1 sl-ring-stachelock-600' : ''\n ]\"\n >\n {{ tabItem.count }}\n </span>\n </button>\n </nav>\n </div>\n </div>\n\n <!-- Tab content area -->\n <div class=\"sl-mt-4\">\n <slot name=\"component-heading\" />\n \n <KeepAlive>\n <component\n v-if=\"selectedComponent\"\n :is=\"selectedComponent\"\n :key=\"selectedTabId\"\n v-bind=\"selectedProps || {}\"\n v-on=\"selectedEvents || {}\"\n />\n </KeepAlive>\n \n <slot v-if=\"!selectedComponent\" />\n </div>\n </HeadlessTabGroup>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { TabGroup as HeadlessTabGroup } from '@headlessui/vue';\nimport { useTabs, type TabCountTheme, type UseTabsProps } from '../../composables/useTabs';\nimport type { TabsItemType } from '../../types/layouts';\nimport SelectInput from '../inputs/SelectInput.vue';\n\ninterface Props {\n tabGroup: string;\n tabs: TabsItemType[];\n tab?: number | null;\n title?: string;\n tabCountTheme?: TabCountTheme;\n dropdownOnMobile?: boolean;\n fixedHeight?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n tab: 0,\n tabCountTheme: 'primary',\n dropdownOnMobile: true,\n});\n\nconst emit = defineEmits<{\n 'tab-change': [index: number];\n}>();\n\nconst tabsProps: UseTabsProps = {\n tabGroup: props.tabGroup,\n tab: props.tab,\n tabs: props.tabs,\n tabCountTheme: props.tabCountTheme,\n dropdownOnMobile: props.dropdownOnMobile,\n fixedHeight: props.fixedHeight,\n};\n\nconst {\n selectedTabId,\n selectedTab,\n filteredTabs,\n hoverStates,\n dropdownOnMobile: showDropdownOnMobile,\n selectedComponent,\n selectedProps,\n selectedEvents,\n mouseEnter,\n mouseLeave,\n handleTabGroupTabChange: handleTabGroupChange,\n syncSelectedTabForDesktop,\n} = useTabs(tabsProps, (event, ...args) => {\n if (event === 'tab-change') {\n emit('tab-change', args[0] as number);\n }\n});\n\n// SelectInput compatible items - include count in name for mobile dropdown\nconst selectInputItems = computed(() => \n filteredTabs.value.map(tab => ({\n id: tab.id,\n name: tab.count !== undefined && tab.count !== null\n ? `${tab.name} (${tab.count})`\n : tab.name,\n disabled: tab.disabled\n }))\n);\n\n// Currently selected tab item for SelectInput\nconst selectedTabItem = computed(() => \n selectInputItems.value.find(item => item.id === selectedTabId.value) || null\n);\n\nconst handleTabGroupTabChange = (index: number) => {\n handleTabGroupChange(index);\n};\n\nconst selectTab = (tabItem: TabsItemType) => {\n if (!tabItem.disabled) {\n syncSelectedTabForDesktop(tabItem);\n }\n};\n\n// Handler for SelectInput changes\nconst handleSelectInputChange = (item: { id: number; name: string; disabled?: boolean } | null) => {\n if (!item) return;\n const index = filteredTabs.value.findIndex(t => t.id === item.id);\n if (index >= 0) {\n handleTabGroupTabChange(index);\n }\n};\n</script>\n\n"],"names":["props","__props","emit","__emit","tabsProps","selectedTabId","selectedTab","filteredTabs","hoverStates","showDropdownOnMobile","selectedComponent","selectedProps","selectedEvents","mouseEnter","mouseLeave","handleTabGroupChange","syncSelectedTabForDesktop","useTabs","event","args","selectInputItems","computed","tab","selectedTabItem","item","handleTabGroupTabChange","index","selectTab","tabItem","handleSelectInputChange","t","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","_unref","_hoisted_3","_createVNode","SelectInput","HeadlessTabGroup","_createElementVNode","_hoisted_4","_hoisted_5","_hoisted_6","_Fragment","_renderList","$event","_normalizeClass","_hoisted_8","_renderSlot","_ctx","_createBlock","_KeepAlive","_resolveDynamicComponent","_mergeProps","_toHandlers"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as I, createElementBlock as l, openBlock as t, createElementVNode as o, renderSlot as
|
|
2
|
-
import { _ as S } from "./SelectInput.vue_vue_type_script_setup_true_lang
|
|
1
|
+
import { defineComponent as I, createElementBlock as l, openBlock as t, createElementVNode as o, renderSlot as m, createVNode as V, unref as s, Fragment as r, renderList as i, normalizeClass as u, withModifiers as w, createTextVNode as N, createCommentVNode as h, toDisplayString as p } from "vue";
|
|
2
|
+
import { _ as S } from "./SelectInput.vue_vue_type_script_setup_true_lang-DHiZ-7K2.js";
|
|
3
3
|
import { u as $ } from "./useSimpleTabs-CSgkChEU.js";
|
|
4
4
|
const B = { class: "sl-w-full" }, E = { class: "sm:sl-hidden" }, U = { class: "sl-hidden sm:sl-block sl-overflow-x-auto" }, z = {
|
|
5
5
|
class: "sl-flex sl-flex-nowrap sl-space-x-4",
|
|
@@ -15,10 +15,10 @@ const B = { class: "sl-w-full" }, E = { class: "sm:sl-hidden" }, U = { class: "s
|
|
|
15
15
|
badgeTheme: { default: "primary" }
|
|
16
16
|
},
|
|
17
17
|
emits: ["tab-changed"],
|
|
18
|
-
setup(
|
|
19
|
-
const
|
|
20
|
-
localTabs:
|
|
21
|
-
selectInputItems:
|
|
18
|
+
setup(n, { emit: k }) {
|
|
19
|
+
const c = n, x = k, {
|
|
20
|
+
localTabs: d,
|
|
21
|
+
selectInputItems: g,
|
|
22
22
|
selectedTabItem: f,
|
|
23
23
|
setActiveTab: b,
|
|
24
24
|
handleSelectInputChange: _,
|
|
@@ -26,17 +26,17 @@ const B = { class: "sl-w-full" }, E = { class: "sm:sl-hidden" }, U = { class: "s
|
|
|
26
26
|
slots: y,
|
|
27
27
|
selectId: T
|
|
28
28
|
} = $({
|
|
29
|
-
getTabs: () =>
|
|
30
|
-
onTabChange: (a) =>
|
|
29
|
+
getTabs: () => c.tabs,
|
|
30
|
+
onTabChange: (a) => x("tab-changed", a),
|
|
31
31
|
includeCountInName: !0,
|
|
32
|
-
badgeTheme:
|
|
32
|
+
badgeTheme: c.badgeTheme
|
|
33
33
|
});
|
|
34
34
|
return (a, F) => (t(), l("div", B, [
|
|
35
35
|
o("div", E, [
|
|
36
36
|
V(S, {
|
|
37
37
|
name: s(T),
|
|
38
|
-
label:
|
|
39
|
-
items: s(
|
|
38
|
+
label: n.label,
|
|
39
|
+
items: s(g),
|
|
40
40
|
"model-value": s(f),
|
|
41
41
|
"item-key": "index",
|
|
42
42
|
"item-text": "name",
|
|
@@ -46,35 +46,35 @@ const B = { class: "sl-w-full" }, E = { class: "sm:sl-hidden" }, U = { class: "s
|
|
|
46
46
|
]),
|
|
47
47
|
o("div", U, [
|
|
48
48
|
o("nav", z, [
|
|
49
|
-
(t(!0), l(r, null,
|
|
49
|
+
(t(!0), l(r, null, i(s(d), (e, C) => (t(), l("a", {
|
|
50
50
|
key: e.name,
|
|
51
51
|
href: e.href || "#",
|
|
52
52
|
onClick: w((L) => s(b)(C), ["prevent"]),
|
|
53
|
-
class:
|
|
53
|
+
class: u([
|
|
54
54
|
e.current ? "sl-bg-stachelock-50 dark:sl-bg-stachelock-900/30 sl-text-stachelock-700 dark:sl-text-stachelock-400" : "sl-text-gray-500 dark:sl-text-slate-400 hover:sl-text-gray-700 dark:hover:sl-text-slate-300",
|
|
55
55
|
"sl-rounded-md sl-px-3 sl-py-2 sl-text-sm sl-font-medium sl-cursor-pointer sl-transition-colors sl-duration-200 sl-flex sl-items-center sl-gap-2",
|
|
56
56
|
e.disabled ? "sl-opacity-50 sl-cursor-not-allowed" : ""
|
|
57
57
|
]),
|
|
58
58
|
"aria-current": e.current ? "page" : void 0
|
|
59
59
|
}, [
|
|
60
|
-
N(
|
|
60
|
+
N(p(e.name) + " ", 1),
|
|
61
61
|
s(v)(e) ? (t(), l("span", {
|
|
62
62
|
key: 0,
|
|
63
|
-
class:
|
|
63
|
+
class: u([
|
|
64
64
|
"sl-rounded-full sl-py-0.5 sl-px-2 sl-text-xs sl-font-medium sl-tabular-nums",
|
|
65
65
|
e.current ? "sl-bg-stachelock-100 dark:sl-bg-stachelock-800 sl-text-stachelock-600 dark:sl-text-stachelock-300" : "sl-bg-gray-100 dark:sl-bg-slate-700 sl-text-gray-600 dark:sl-text-slate-300"
|
|
66
66
|
])
|
|
67
|
-
},
|
|
67
|
+
}, p(e.count), 3)) : h("", !0)
|
|
68
68
|
], 10, A))), 128))
|
|
69
69
|
])
|
|
70
70
|
]),
|
|
71
|
-
|
|
72
|
-
(t(!0), l(r, null,
|
|
71
|
+
m(a.$slots, "default"),
|
|
72
|
+
(t(!0), l(r, null, i(s(d), (e) => (t(), l(r, {
|
|
73
73
|
key: e.name
|
|
74
74
|
}, [
|
|
75
75
|
e.current && s(y)[e.name] ? (t(), l("div", D, [
|
|
76
|
-
|
|
77
|
-
])) :
|
|
76
|
+
m(a.$slots, e.name)
|
|
77
|
+
])) : h("", !0)
|
|
78
78
|
], 64))), 128))
|
|
79
79
|
]));
|
|
80
80
|
}
|
|
@@ -82,4 +82,4 @@ const B = { class: "sl-w-full" }, E = { class: "sm:sl-hidden" }, U = { class: "s
|
|
|
82
82
|
export {
|
|
83
83
|
q as _
|
|
84
84
|
};
|
|
85
|
-
//# sourceMappingURL=TabsInPills.vue_vue_type_script_setup_true_lang-
|
|
85
|
+
//# sourceMappingURL=TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsInPills.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"TabsInPills.vue_vue_type_script_setup_true_lang-DY1NkXCQ.js","sources":["../src/components/tabs/TabsInPills.vue"],"sourcesContent":["<!--\n @component TabsInPills\n @description Pill-style tabs for section headings with mobile dropdown.\n \n A tab component styled as pills, suitable for section headings.\n Includes mobile SelectInput dropdown fallback.\n \n @props\n - tabs (SimpleTabItem[], required): Array of tab configurations\n - label (string, optional): Label for the mobile select\n - badgeTheme (TabBadgeTheme, optional): Theme for count badges (default: 'primary')\n \n @emits\n - tab-changed: Emitted when active tab changes, payload is the new index\n \n @example\n <TabsInPills\n label=\"View\"\n :tabs=\"[\n { name: 'All', current: true },\n { name: 'Active', current: false, count: 5 },\n { name: 'Archived', current: false, count: 12 }\n ]\"\n @tab-changed=\"handleTabChange\"\n >\n <template #All>All items</template>\n <template #Active>Active items</template>\n <template #Archived>Archived items</template>\n </TabsInPills>\n-->\n<template>\n <div class=\"sl-w-full\">\n <!-- Mobile dropdown using SelectInput -->\n <div class=\"sm:sl-hidden\">\n <SelectInput\n :name=\"selectId\"\n :label=\"label\"\n :items=\"selectInputItems\"\n :model-value=\"selectedTabItem\"\n item-key=\"index\"\n item-text=\"name\"\n placeholder=\"Select tab\"\n @update:model-value=\"handleSelectInputChange\"\n />\n </div>\n\n <!-- Desktop pills -->\n <div class=\"sl-hidden sm:sl-block sl-overflow-x-auto\">\n <nav class=\"sl-flex sl-flex-nowrap sl-space-x-4\" aria-label=\"Tabs\">\n <a\n v-for=\"(tab, index) in localTabs\"\n :key=\"tab.name\"\n :href=\"tab.href || '#'\"\n @click.prevent=\"setActiveTab(index)\"\n :class=\"[\n tab.current \n ? 'sl-bg-stachelock-50 dark:sl-bg-stachelock-900/30 sl-text-stachelock-700 dark:sl-text-stachelock-400' \n : 'sl-text-gray-500 dark:sl-text-slate-400 hover:sl-text-gray-700 dark:hover:sl-text-slate-300',\n 'sl-rounded-md sl-px-3 sl-py-2 sl-text-sm sl-font-medium sl-cursor-pointer sl-transition-colors sl-duration-200 sl-flex sl-items-center sl-gap-2',\n tab.disabled ? 'sl-opacity-50 sl-cursor-not-allowed' : ''\n ]\"\n :aria-current=\"tab.current ? 'page' : undefined\"\n >\n {{ tab.name }}\n <span\n v-if=\"hasCount(tab)\"\n :class=\"[\n 'sl-rounded-full sl-py-0.5 sl-px-2 sl-text-xs sl-font-medium sl-tabular-nums',\n tab.current\n ? 'sl-bg-stachelock-100 dark:sl-bg-stachelock-800 sl-text-stachelock-600 dark:sl-text-stachelock-300'\n : 'sl-bg-gray-100 dark:sl-bg-slate-700 sl-text-gray-600 dark:sl-text-slate-300'\n ]\"\n >\n {{ tab.count }}\n </span>\n </a>\n </nav>\n </div>\n\n <!-- Default slot for general content -->\n <slot name=\"default\" />\n \n <!-- Named slots for each tab -->\n <template v-for=\"tab in localTabs\" :key=\"tab.name\">\n <div v-if=\"tab.current && slots[tab.name]\" class=\"sl-mt-4\">\n <slot :name=\"tab.name\" />\n </div>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SelectInput from '../inputs/SelectInput.vue';\nimport { useSimpleTabs } from '../../composables/useSimpleTabs';\nimport type { SimpleTabItem, TabBadgeTheme } from '../../types/tabs';\n\ninterface Props {\n tabs: SimpleTabItem[];\n label?: string;\n badgeTheme?: TabBadgeTheme;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n badgeTheme: 'primary'\n});\n\nconst emit = defineEmits<{\n 'tab-changed': [tabIndex: number];\n}>();\n\n// Use the shared composable for all tab logic\nconst {\n localTabs,\n selectInputItems,\n selectedTabItem,\n setActiveTab,\n handleSelectInputChange,\n hasCount,\n slots,\n selectId\n} = useSimpleTabs({\n getTabs: () => props.tabs,\n onTabChange: (index) => emit('tab-changed', index),\n includeCountInName: true,\n badgeTheme: props.badgeTheme\n});\n</script>\n"],"names":["props","__props","emit","__emit","localTabs","selectInputItems","selectedTabItem","setActiveTab","handleSelectInputChange","hasCount","slots","selectId","useSimpleTabs","index","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","SelectInput","_unref","_hoisted_3","_hoisted_4","_Fragment","_renderList","tab","_withModifiers","$event","_normalizeClass","_toDisplayString","_renderSlot","_ctx","_hoisted_6"],"mappings":";;;;;;;;;;;;;;;;;;AAsGA,UAAMA,IAAQC,GAIRC,IAAOC,GAKP;AAAA,MACJ,WAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,cAAAC;AAAA,MACA,yBAAAC;AAAA,MACA,UAAAC;AAAA,MACA,OAAAC;AAAA,MACA,UAAAC;AAAA,IAAA,IACEC,EAAc;AAAA,MAChB,SAAS,MAAMZ,EAAM;AAAA,MACrB,aAAa,CAACa,MAAUX,EAAK,eAAeW,CAAK;AAAA,MACjD,oBAAoB;AAAA,MACpB,YAAYb,EAAM;AAAA,IAAA,CACnB;sBA9FCc,EAAA,GAAAC,EAyDM,OAzDNC,GAyDM;AAAA,MAvDJC,EAWM,OAXNC,GAWM;AAAA,QAVJC,EASEC,GAAA;AAAA,UARC,MAAMC,EAAAV,CAAA;AAAA,UACN,OAAOV,EAAA;AAAA,UACP,OAAOoB,EAAAhB,CAAA;AAAA,UACP,eAAagB,EAAAf,CAAA;AAAA,UACd,YAAS;AAAA,UACT,aAAU;AAAA,UACV,aAAY;AAAA,UACX,uBAAoBe,EAAAb,CAAA;AAAA,QAAA;;MAKzBS,EA8BM,OA9BNK,GA8BM;AAAA,QA7BJL,EA4BM,OA5BNM,GA4BM;AAAA,WA3BJT,EAAA,EAAA,GAAAC,EA0BIS,GAAA,MAAAC,EAzBqBJ,EAAAjB,CAAA,GAAS,CAAxBsB,GAAKb,YADfE,EA0BI,KAAA;AAAA,YAxBD,KAAKW,EAAI;AAAA,YACT,MAAMA,EAAI,QAAI;AAAA,YACd,SAAKC,EAAA,CAAAC,MAAUP,EAAAd,CAAA,EAAaM,CAAK,GAAA,CAAA,SAAA,CAAA;AAAA,YACjC,OAAKgB,EAAA;AAAA,cAAgBH,EAAI;;cAA0ZA,EAAI,WAAQ,wCAAA;AAAA,YAAA;YAO/b,gBAAcA,EAAI,mBAAmB;AAAA,UAAA;gBAEnCA,EAAI,IAAI,IAAG,KACd,CAAA;AAAA,YACQL,EAAAZ,CAAA,EAASiB,CAAG,UADpBX,EAUO,QAAA;AAAA;cARJ,OAAKc,EAAA;AAAA;gBAA+GH,EAAI;;eAOtHI,EAAAJ,EAAI,KAAK,GAAA,CAAA;;;;MAOpBK,EAAuBC,EAAA,QAAA,SAAA;AAAA,cAGvBjB,EAIWS,GAAA,MAAAC,EAJaJ,EAAAjB,CAAA,GAAS,CAAhBsB;QAAwB,KAAAA,EAAI;AAAA,MAAA;QAChCA,EAAI,WAAWL,KAAMK,EAAI,IAAI,KAAxCZ,EAAA,GAAAC,EAEM,OAFNkB,GAEM;AAAA,UADJF,EAAyBC,EAAA,QAAZN,EAAI,IAAI;AAAA,QAAA;;;;;"}
|