@stachelock/ui 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-P5ypRyGV.js} +111 -111
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-P5ypRyGV.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-1YGa9Fnd.js +1351 -0
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-1YGa9Fnd.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-B_XAq5Sr.js → EmptyState.vue_vue_type_script_setup_true_lang-Dxy-cLPT.js} +29 -29
- package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js.map → EmptyState.vue_vue_type_script_setup_true_lang-Dxy-cLPT.js.map} +1 -1
- 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/NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js +277 -0
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.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 +32 -33
- 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 +505 -511
- 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 +30 -16
- 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 +1 -1
- package/dist/src/components/CloudinaryImage.d.ts +7 -8
- package/dist/src/components/CloudinaryImage.d.ts.map +1 -1
- package/dist/src/components/LottieAnimation.d.ts +6 -37
- package/dist/src/components/LottieAnimation.d.ts.map +1 -1
- package/dist/src/components/ThemeDebugModal.d.ts +6 -16
- package/dist/src/components/ThemeDebugModal.d.ts.map +1 -1
- package/dist/src/components/UiAvatar.d.ts +26 -36
- package/dist/src/components/UiAvatar.d.ts.map +1 -1
- package/dist/src/components/UiBadge.d.ts +6 -33
- package/dist/src/components/UiBadge.d.ts.map +1 -1
- package/dist/src/components/UiBanner.d.ts +34 -107
- package/dist/src/components/UiBanner.d.ts.map +1 -1
- package/dist/src/components/UiBreadcrumb.d.ts +10 -11
- package/dist/src/components/UiBreadcrumb.d.ts.map +1 -1
- package/dist/src/components/UiButton.d.ts +13 -66
- package/dist/src/components/UiButton.d.ts.map +1 -1
- package/dist/src/components/UiButtonGroup.d.ts +7 -37
- package/dist/src/components/UiButtonGroup.d.ts.map +1 -1
- package/dist/src/components/UiCheckbox.d.ts +8 -33
- package/dist/src/components/UiCheckbox.d.ts.map +1 -1
- package/dist/src/components/UiLoading.d.ts +2 -28
- package/dist/src/components/UiLoading.d.ts.map +1 -1
- package/dist/src/components/UiLoadingDots.d.ts +1 -1
- package/dist/src/components/UiLoadingDots.d.ts.map +1 -1
- package/dist/src/components/UiMenu.d.ts +4 -32
- package/dist/src/components/UiMenu.d.ts.map +1 -1
- package/dist/src/components/UiModal.d.ts +3 -2
- package/dist/src/components/UiModal.d.ts.map +1 -1
- package/dist/src/components/UiNavLink.d.ts +6 -40
- package/dist/src/components/UiNavLink.d.ts.map +1 -1
- package/dist/src/components/UiProgressBar.d.ts +3 -32
- package/dist/src/components/UiProgressBar.d.ts.map +1 -1
- package/dist/src/components/UiRadialProgressBar.d.ts +3 -34
- package/dist/src/components/UiRadialProgressBar.d.ts.map +1 -1
- package/dist/src/components/UiTable.d.ts +25 -67
- package/dist/src/components/UiTable.d.ts.map +1 -1
- package/dist/src/components/UiTransition.d.ts +3 -26
- package/dist/src/components/UiTransition.d.ts.map +1 -1
- package/dist/src/components/calendars/CalendarDashboard.d.ts +5 -17
- package/dist/src/components/calendars/CalendarDashboard.d.ts.map +1 -1
- package/dist/src/components/calendars/CalendarHeader.d.ts +8 -7
- package/dist/src/components/calendars/CalendarHeader.d.ts.map +1 -1
- package/dist/src/components/calendars/DayCalendar.d.ts +11 -17
- package/dist/src/components/calendars/DayCalendar.d.ts.map +1 -1
- package/dist/src/components/calendars/EventCard.d.ts +1 -2
- package/dist/src/components/calendars/EventCard.d.ts.map +1 -1
- package/dist/src/components/calendars/EventsList.d.ts +6 -18
- package/dist/src/components/calendars/EventsList.d.ts.map +1 -1
- package/dist/src/components/calendars/MonthCalendar.d.ts +6 -30
- package/dist/src/components/calendars/MonthCalendar.d.ts.map +1 -1
- package/dist/src/components/calendars/WeekCalendar.d.ts +10 -16
- package/dist/src/components/calendars/WeekCalendar.d.ts.map +1 -1
- package/dist/src/components/calendars/YearCalendar.d.ts +5 -29
- package/dist/src/components/calendars/YearCalendar.d.ts.map +1 -1
- package/dist/src/components/charts/BarChart.d.ts +6 -39
- package/dist/src/components/charts/BarChart.d.ts.map +1 -1
- package/dist/src/components/charts/FunnelChart.d.ts +5 -34
- package/dist/src/components/charts/FunnelChart.d.ts.map +1 -1
- package/dist/src/components/charts/LineChart.d.ts +6 -37
- package/dist/src/components/charts/LineChart.d.ts.map +1 -1
- package/dist/src/components/charts/PieChart.d.ts +6 -37
- package/dist/src/components/charts/PieChart.d.ts.map +1 -1
- package/dist/src/components/charts/SparklineChart.d.ts +3 -32
- package/dist/src/components/charts/SparklineChart.d.ts.map +1 -1
- package/dist/src/components/charts/StatCard.d.ts +2 -24
- package/dist/src/components/charts/StatCard.d.ts.map +1 -1
- package/dist/src/components/charts/chartTheme.d.ts +0 -1
- package/dist/src/components/empty-state/ComingSoon.d.ts +2 -29
- package/dist/src/components/empty-state/ComingSoon.d.ts.map +1 -1
- package/dist/src/components/empty-state/EmptyState.d.ts +4 -26
- package/dist/src/components/empty-state/EmptyState.d.ts.map +1 -1
- package/dist/src/components/forms/DynamicForm.d.ts +21 -47
- package/dist/src/components/forms/DynamicForm.d.ts.map +1 -1
- package/dist/src/components/forms/DynamicFormField.d.ts +8 -18
- package/dist/src/components/forms/DynamicFormField.d.ts.map +1 -1
- package/dist/src/components/forms/FormFieldWrapper.d.ts +14 -58
- package/dist/src/components/forms/FormFieldWrapper.d.ts.map +1 -1
- package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts +3 -4
- package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts.map +1 -1
- package/dist/src/components/inputs/CheckboxInput.d.ts +10 -37
- package/dist/src/components/inputs/CheckboxInput.d.ts.map +1 -1
- package/dist/src/components/inputs/ComboboxInput.d.ts +13 -48
- package/dist/src/components/inputs/ComboboxInput.d.ts.map +1 -1
- package/dist/src/components/inputs/DatepickerInput.d.ts +1045 -42
- package/dist/src/components/inputs/DatepickerInput.d.ts.map +1 -1
- package/dist/src/components/inputs/EmailInput.d.ts +10 -54
- package/dist/src/components/inputs/EmailInput.d.ts.map +1 -1
- package/dist/src/components/inputs/EmptyInput.d.ts +2 -26
- package/dist/src/components/inputs/EmptyInput.d.ts.map +1 -1
- package/dist/src/components/inputs/FileDropzoneInput.d.ts +8 -7
- package/dist/src/components/inputs/FileDropzoneInput.d.ts.map +1 -1
- package/dist/src/components/inputs/HiddenInput.d.ts +2 -23
- package/dist/src/components/inputs/HiddenInput.d.ts.map +1 -1
- package/dist/src/components/inputs/InputsShowcase.d.ts +1 -1
- package/dist/src/components/inputs/InputsShowcase.d.ts.map +1 -1
- package/dist/src/components/inputs/PhoneInput.d.ts +79 -16
- package/dist/src/components/inputs/PhoneInput.d.ts.map +1 -1
- package/dist/src/components/inputs/RichTextInput.d.ts +22 -80
- package/dist/src/components/inputs/RichTextInput.d.ts.map +1 -1
- package/dist/src/components/inputs/SelectInput.d.ts +49 -42
- package/dist/src/components/inputs/SelectInput.d.ts.map +1 -1
- package/dist/src/components/inputs/SelectTextInput.d.ts +52 -12
- package/dist/src/components/inputs/SelectTextInput.d.ts.map +1 -1
- package/dist/src/components/inputs/SwitchInput.d.ts +115 -42
- package/dist/src/components/inputs/SwitchInput.d.ts.map +1 -1
- package/dist/src/components/inputs/SwitchInputGroup.d.ts +2 -3
- package/dist/src/components/inputs/SwitchInputGroup.d.ts.map +1 -1
- package/dist/src/components/inputs/TagifyInput.d.ts +30 -20
- package/dist/src/components/inputs/TagifyInput.d.ts.map +1 -1
- package/dist/src/components/inputs/TextAreaInput.d.ts +9 -35
- package/dist/src/components/inputs/TextAreaInput.d.ts.map +1 -1
- package/dist/src/components/inputs/TextInput.d.ts +13 -73
- package/dist/src/components/inputs/TextInput.d.ts.map +1 -1
- package/dist/src/components/layouts/CardLayout.d.ts +20 -66
- package/dist/src/components/layouts/CardLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/DashboardLayout.d.ts +8 -5
- package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/DefaultLayout.d.ts +1 -1
- package/dist/src/components/layouts/DefaultLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/HeaderLayout.d.ts +4 -4
- package/dist/src/components/layouts/HeaderLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/InfoCard.d.ts +2 -25
- package/dist/src/components/layouts/InfoCard.d.ts.map +1 -1
- package/dist/src/components/layouts/NavigationGroup.d.ts +5 -16
- package/dist/src/components/layouts/NavigationGroup.d.ts.map +1 -1
- package/dist/src/components/layouts/NavigationItem.d.ts +7 -24
- package/dist/src/components/layouts/NavigationItem.d.ts.map +1 -1
- package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts +10 -40
- package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts.map +1 -1
- package/dist/src/components/layouts/ProjectLogo.d.ts +2 -33
- package/dist/src/components/layouts/ProjectLogo.d.ts.map +1 -1
- package/dist/src/components/layouts/PropsTable.d.ts +2 -23
- package/dist/src/components/layouts/PropsTable.d.ts.map +1 -1
- package/dist/src/components/layouts/ShowcaseCard.d.ts +2 -29
- package/dist/src/components/layouts/ShowcaseCard.d.ts.map +1 -1
- package/dist/src/components/layouts/ShowcaseLayout.d.ts +5 -28
- package/dist/src/components/layouts/ShowcaseLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/SidebarLayout.d.ts +7 -4
- package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/StateDisplay.d.ts +2 -23
- package/dist/src/components/layouts/StateDisplay.d.ts.map +1 -1
- package/dist/src/components/loading/ContentSkeleton.d.ts +2 -31
- package/dist/src/components/loading/ContentSkeleton.d.ts.map +1 -1
- package/dist/src/components/loading/SmartLoadingIndicator.d.ts +6 -47
- package/dist/src/components/loading/SmartLoadingIndicator.d.ts.map +1 -1
- package/dist/src/components/maps/GoogleMap.d.ts +7 -8
- package/dist/src/components/maps/GoogleMap.d.ts.map +1 -1
- package/dist/src/components/maps/UiInfoWindow.d.ts +229 -14
- package/dist/src/components/maps/UiInfoWindow.d.ts.map +1 -1
- package/dist/src/components/maps/UiMap.d.ts +5091 -101
- package/dist/src/components/maps/UiMap.d.ts.map +1 -1
- package/dist/src/components/maps/UiMapAll.d.ts +1130 -20
- package/dist/src/components/maps/UiMapAll.d.ts.map +1 -1
- package/dist/src/components/maps/UiMapMarker.d.ts +16 -17
- package/dist/src/components/maps/UiMapMarker.d.ts.map +1 -1
- package/dist/src/components/modals/AlertModal.d.ts +9 -10
- package/dist/src/components/modals/AlertModal.d.ts.map +1 -1
- package/dist/src/components/modals/BaseModal.d.ts +6 -7
- package/dist/src/components/modals/BaseModal.d.ts.map +1 -1
- package/dist/src/components/modals/ImageCropperModal.d.ts +379 -75
- package/dist/src/components/modals/ImageCropperModal.d.ts.map +1 -1
- package/dist/src/components/notifications/NotificationContainer.d.ts.map +1 -1
- package/dist/src/components/notifications/NotificationToast.d.ts +9 -18
- package/dist/src/components/notifications/NotificationToast.d.ts.map +1 -1
- package/dist/src/components/stepper/StepperPanels.d.ts +4 -14
- package/dist/src/components/stepper/StepperPanels.d.ts.map +1 -1
- package/dist/src/components/tabs/InlineTabs.d.ts +4 -28
- package/dist/src/components/tabs/InlineTabs.d.ts.map +1 -1
- package/dist/src/components/tabs/TabGroup.d.ts +6 -32
- package/dist/src/components/tabs/TabGroup.d.ts.map +1 -1
- package/dist/src/components/tabs/TabGroupUnderline.d.ts +6 -32
- package/dist/src/components/tabs/TabGroupUnderline.d.ts.map +1 -1
- package/dist/src/components/tabs/TabsInPills.d.ts +4 -26
- package/dist/src/components/tabs/TabsInPills.d.ts.map +1 -1
- package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts +2 -37
- package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts.map +1 -1
- package/dist/src/components/wrappers/CardWrapper.d.ts +1 -1
- package/dist/src/components/wrappers/CardWrapper.d.ts.map +1 -1
- package/dist/src/components/wrappers/DisclosureWrapper.d.ts +2 -23
- package/dist/src/components/wrappers/DisclosureWrapper.d.ts.map +1 -1
- package/dist/src/components/wrappers/FormErrorWrapper.d.ts +2 -25
- package/dist/src/components/wrappers/FormErrorWrapper.d.ts.map +1 -1
- package/dist/src/composables/useCalendar.d.ts +4 -5
- package/dist/src/composables/useFormValidation.d.ts +0 -1
- package/dist/src/composables/useMap.d.ts +0 -1
- package/dist/src/composables/useNotifications.d.ts +1308 -30
- package/dist/src/composables/useNotifications.d.ts.map +1 -1
- package/dist/src/composables/useSimpleTabs.d.ts +0 -1
- package/dist/src/composables/useStringTransform.d.ts +0 -1
- package/dist/src/composables/useTabs.d.ts +0 -1
- package/dist/src/config/css-variables.d.ts +0 -1
- package/dist/src/config/design-tokens.d.ts +1 -1
- package/dist/src/config/design-tokens.d.ts.map +1 -1
- package/dist/src/dev.d.ts +0 -1
- package/dist/src/plugin/configure.d.ts +0 -1
- package/dist/src/types/calendars.d.ts +12 -11
- package/dist/src/types/calendars.d.ts.map +1 -1
- package/dist/src/types/core.d.ts +3 -4
- package/dist/src/types/core.d.ts.map +1 -1
- package/dist/src/types/form.d.ts +15 -13
- package/dist/src/types/form.d.ts.map +1 -1
- package/dist/src/types/forms.d.ts +2 -1
- package/dist/src/types/forms.d.ts.map +1 -1
- package/dist/src/types/inputs.d.ts +14 -9
- package/dist/src/types/inputs.d.ts.map +1 -1
- package/dist/src/types/layouts.d.ts +0 -1
- package/dist/src/types/navigation.d.ts +2 -1
- package/dist/src/types/navigation.d.ts.map +1 -1
- package/dist/src/types/tables.d.ts +8 -6
- package/dist/src/types/tables.d.ts.map +1 -1
- package/dist/src/types/ui.d.ts +1 -2
- package/dist/src/types/ui.d.ts.map +1 -1
- package/dist/src/utils/calendar.d.ts +1 -1
- package/dist/src/utils/calendar.d.ts.map +1 -1
- package/dist/src/utils/component-registry.d.ts +0 -1
- package/dist/src/utils/mapThemes.d.ts +0 -1
- package/dist/src/utils/phone.d.ts +0 -1
- package/dist/src/views/ButtonsShowcase.d.ts +3 -0
- package/dist/src/views/ButtonsShowcase.d.ts.map +1 -0
- package/dist/src/views/CalendarsShowcase.d.ts +3 -0
- package/dist/src/views/CalendarsShowcase.d.ts.map +1 -0
- package/dist/src/views/CardsShowcase.d.ts +3 -0
- package/dist/src/views/CardsShowcase.d.ts.map +1 -0
- package/dist/src/views/ChartsShowcase.d.ts +3 -0
- package/dist/src/views/ChartsShowcase.d.ts.map +1 -0
- package/dist/src/views/EmptyStatesShowcase.d.ts +3 -0
- package/dist/src/views/EmptyStatesShowcase.d.ts.map +1 -0
- package/dist/src/views/InputsShowcase.d.ts +3 -0
- package/dist/src/views/InputsShowcase.d.ts.map +1 -0
- package/dist/src/views/KitchenSink.d.ts +3 -0
- package/dist/src/views/KitchenSink.d.ts.map +1 -0
- package/dist/src/views/LayoutsShowcase.d.ts +3 -0
- package/dist/src/views/LayoutsShowcase.d.ts.map +1 -0
- package/dist/src/views/LoadingShowcase.d.ts +3 -0
- package/dist/src/views/LoadingShowcase.d.ts.map +1 -0
- package/dist/src/views/MapsShowcase.d.ts +3 -0
- package/dist/src/views/MapsShowcase.d.ts.map +1 -0
- package/dist/src/views/ModalsShowcase.d.ts +3 -0
- package/dist/src/views/ModalsShowcase.d.ts.map +1 -0
- package/dist/src/views/NotificationsShowcase.d.ts +3 -0
- package/dist/src/views/NotificationsShowcase.d.ts.map +1 -0
- package/dist/src/views/StepperShowcase.d.ts +3 -0
- package/dist/src/views/StepperShowcase.d.ts.map +1 -0
- package/dist/src/views/TabsShowcase.d.ts +3 -0
- package/dist/src/views/TabsShowcase.d.ts.map +1 -0
- package/dist/src/views/ValidationDemo.d.ts +3 -0
- package/dist/src/views/ValidationDemo.d.ts.map +1 -0
- package/dist/src/views/WrappersShowcase.d.ts +3 -0
- package/dist/src/views/WrappersShowcase.d.ts.map +1 -0
- package/dist/src/views/components/AvatarPage.d.ts +3 -0
- package/dist/src/views/components/AvatarPage.d.ts.map +1 -0
- package/dist/src/views/components/BadgePage.d.ts +3 -0
- package/dist/src/views/components/BadgePage.d.ts.map +1 -0
- package/dist/src/views/components/BannerPage.d.ts +3 -0
- package/dist/src/views/components/BannerPage.d.ts.map +1 -0
- package/dist/src/views/components/BreadcrumbPage.d.ts +3 -0
- package/dist/src/views/components/BreadcrumbPage.d.ts.map +1 -0
- package/dist/src/views/components/ButtonPage.d.ts +3 -0
- package/dist/src/views/components/ButtonPage.d.ts.map +1 -0
- package/dist/src/views/components/CloudinaryImagePage.d.ts +3 -0
- package/dist/src/views/components/CloudinaryImagePage.d.ts.map +1 -0
- package/dist/src/views/components/LoadingPage.d.ts +3 -0
- package/dist/src/views/components/LoadingPage.d.ts.map +1 -0
- package/dist/src/views/components/MenuPage.d.ts +3 -0
- package/dist/src/views/components/MenuPage.d.ts.map +1 -0
- package/dist/src/views/components/ModalPage.d.ts +3 -0
- package/dist/src/views/components/ModalPage.d.ts.map +1 -0
- package/dist/src/views/components/ProgressPage.d.ts +3 -0
- package/dist/src/views/components/ProgressPage.d.ts.map +1 -0
- package/dist/src/views/components/RichTextInputPage.d.ts +3 -0
- package/dist/src/views/components/RichTextInputPage.d.ts.map +1 -0
- package/dist/src/views/components/TablePage.d.ts +3 -0
- package/dist/src/views/components/TablePage.d.ts.map +1 -0
- package/dist/src/views/components/TextInputPage.d.ts +3 -0
- package/dist/src/views/components/TextInputPage.d.ts.map +1 -0
- package/dist/src/views/components/TransitionPage.d.ts +3 -0
- package/dist/src/views/components/TransitionPage.d.ts.map +1 -0
- package/dist/src/views/examples/CheckoutFormExample.d.ts +3 -0
- package/dist/src/views/examples/CheckoutFormExample.d.ts.map +1 -0
- package/dist/src/views/examples/ContactFormExample.d.ts +3 -0
- package/dist/src/views/examples/ContactFormExample.d.ts.map +1 -0
- package/dist/src/views/examples/RegistrationFormExample.d.ts +3 -0
- package/dist/src/views/examples/RegistrationFormExample.d.ts.map +1 -0
- package/dist/src/views/examples/SettingsFormExample.d.ts +3 -0
- package/dist/src/views/examples/SettingsFormExample.d.ts.map +1 -0
- package/dist/src/views/forms/ValidationPage.d.ts +3 -0
- package/dist/src/views/forms/ValidationPage.d.ts.map +1 -0
- package/dist/src/views/inputs/CheckboxPage.d.ts +3 -0
- package/dist/src/views/inputs/CheckboxPage.d.ts.map +1 -0
- package/dist/src/views/inputs/ComboboxPage.d.ts +3 -0
- package/dist/src/views/inputs/ComboboxPage.d.ts.map +1 -0
- package/dist/src/views/inputs/DatepickerPage.d.ts +3 -0
- package/dist/src/views/inputs/DatepickerPage.d.ts.map +1 -0
- package/dist/src/views/inputs/EmailPage.d.ts +3 -0
- package/dist/src/views/inputs/EmailPage.d.ts.map +1 -0
- package/dist/src/views/inputs/FileDropzonePage.d.ts +3 -0
- package/dist/src/views/inputs/FileDropzonePage.d.ts.map +1 -0
- package/dist/src/views/inputs/MiscInputsPage.d.ts +3 -0
- package/dist/src/views/inputs/MiscInputsPage.d.ts.map +1 -0
- package/dist/src/views/inputs/PhonePage.d.ts +3 -0
- package/dist/src/views/inputs/PhonePage.d.ts.map +1 -0
- package/dist/src/views/inputs/SelectPage.d.ts +3 -0
- package/dist/src/views/inputs/SelectPage.d.ts.map +1 -0
- package/dist/src/views/inputs/SelectTextPage.d.ts +3 -0
- package/dist/src/views/inputs/SelectTextPage.d.ts.map +1 -0
- package/dist/src/views/inputs/SwitchGroupPage.d.ts +3 -0
- package/dist/src/views/inputs/SwitchGroupPage.d.ts.map +1 -0
- package/dist/src/views/inputs/SwitchPage.d.ts +3 -0
- package/dist/src/views/inputs/SwitchPage.d.ts.map +1 -0
- package/dist/src/views/inputs/TextAreaPage.d.ts +3 -0
- package/dist/src/views/inputs/TextAreaPage.d.ts.map +1 -0
- package/dist/src/views/layouts/CardLayoutPage.d.ts +3 -0
- package/dist/src/views/layouts/CardLayoutPage.d.ts.map +1 -0
- package/dist/src/views/layouts/DashboardLayoutPage.d.ts +3 -0
- package/dist/src/views/layouts/DashboardLayoutPage.d.ts.map +1 -0
- package/dist/src/views/layouts/HeaderLayoutPage.d.ts +3 -0
- package/dist/src/views/layouts/HeaderLayoutPage.d.ts.map +1 -0
- package/dist/src/views/layouts/SidebarLayoutPage.d.ts +3 -0
- package/dist/src/views/layouts/SidebarLayoutPage.d.ts.map +1 -0
- 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 +24 -16
- 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/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/charts/BaseChart.d.ts +0 -81
- package/dist/src/components/charts/BaseChart.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":"SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js","sources":["../src/components/inputs/SelectTextInput.vue"],"sourcesContent":["<!--\n @component SelectTextInput\n @description Combined select dropdown and text input field.\n \n A composite input that combines a select dropdown with a text input,\n useful for inputs like \"Fall 2023\" where the user selects a term\n and enters a year. Uses Headless UI Listbox for accessible select.\n \n @props\n - name (string, required): Field name for form binding\n - label (string, optional): Main label text\n - value (CompositeValue | string, optional): Combined value object or string\n - select (object, optional): Select configuration { options, placeholder, label }\n - text (object, optional): Text input config { placeholder, inputMode, maxLength, label }\n - delimiter (string, optional): Character between select and text in display\n - showErrors (boolean, optional): Force show validation errors\n - hasError (boolean, optional): External error state\n - disabled (boolean, optional): Disabled state\n - colorfulValidation (boolean, optional): Color-coded validation states\n - showValidCheck (boolean, optional): Show success icon when valid\n \n @emits\n - update:value: Emitted when composite value changes\n - update:validity: Emitted when validation state changes\n \n @example\n <SelectTextInput\n name=\"graduation\"\n label=\"Expected Graduation\"\n :value=\"{ select: 'Fall', text: '2024' }\"\n :select=\"{ options: [{ label: 'Fall', value: 'Fall' }, { label: 'Spring', value: 'Spring' }] }\"\n :text=\"{ placeholder: 'Year', inputMode: 'numeric', maxLength: 4 }\"\n @update:value=\"handleUpdate\"\n />\n-->\n<template>\n <div class=\"sl-space-y-1\" data-testid=\"select-text-input\">\n <!-- Main label row -->\n <div \n v-if=\"label || secondaryLabel || tertiaryLabel || (disabled && disabledMessage)\" \n class=\"sl-grid sl-grid-cols-3 sl-items-center\"\n >\n <div class=\"sl-col-span-2 sl-flex sl-items-center\">\n <component \n v-if=\"labelIconLeft\" \n :is=\"labelIconLeft\" \n class=\"sl-mr-2 sl-h-4 sl-w-4 sl-text-yellow-300\" \n />\n <label v-if=\"label\" class=\"sl-text-sm sl-font-medium\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ label }}\n </label>\n </div>\n <div class=\"sl-justify-self-end sl-col-start-3 sl-text-right sl-space-y-0.5\">\n <p \n v-if=\"disabled && disabledMessage\" \n class=\"sl-text-xs\" :style=\"{ color: 'var(--sl-text-muted)' }\"\n >\n {{ disabledMessage }}\n </p>\n <span \n v-if=\"secondaryLabel\" \n class=\"sl-text-2xs sl-uppercase sl-truncate sl-font-semibold sl-block\" :style=\"{ color: 'var(--sl-text-secondary)' }\"\n >\n {{ secondaryLabel }}\n </span>\n <span \n v-if=\"tertiaryLabel\" \n class=\"sl-text-xs sl-uppercase sl-truncate sl-font-semibold sl-block\" :style=\"{ color: 'var(--sl-text-secondary)' }\"\n >\n {{ tertiaryLabel }}\n </span>\n </div>\n </div>\n\n <!-- Input container -->\n <div class=\"sl-relative sl-mt-1\">\n <!-- Error icon -->\n <div \n v-if=\"showError\" \n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-z-20 sl-pointer-events-none\"\n >\n <ExclamationCircleIcon class=\"sl-h-5 sl-w-5 sl-text-red-500\" aria-hidden=\"true\" />\n </div>\n <!-- Success icon -->\n <div \n v-else-if=\"showSuccess\" \n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-z-20 sl-pointer-events-none\"\n >\n <CheckCircleIcon class=\"sl-h-5 sl-w-5 sl-text-green-500\" aria-hidden=\"true\" />\n </div>\n\n <div \n class=\"sl-flex sl-rounded-md sl-shadow-sm sl-ring-1 sl-ring-inset focus-within:sl-ring-2 focus-within:sl-ring-inset\"\n :class=\"containerRingClass\"\n >\n <!-- Select dropdown using Headless UI Listbox -->\n <Listbox\n :model-value=\"selectedOption\"\n @update:model-value=\"onSelectChange\"\n :disabled=\"disabled\"\n >\n <div class=\"sl-relative\">\n <ListboxButton\n ref=\"listboxButtonRef\"\n :class=\"[\n 'sl-relative sl-cursor-default sl-rounded-l-md sl-border-0 sl-py-2 sl-pl-3 sl-pr-10 sl-text-left sl-text-sm',\n 'sl-bg-white dark:sl-bg-slate-900 sl-text-gray-900 dark:sl-text-slate-100',\n 'focus:sl-outline-none focus:sl-ring-0',\n disabled ? 'sl-cursor-not-allowed sl-bg-gray-50 dark:sl-bg-slate-800 sl-text-gray-500 dark:sl-text-slate-400' : ''\n ]\"\n data-testid=\"select-dropdown\"\n @click=\"onDropdownClick\"\n >\n <span \n class=\"sl-block sl-truncate sl-min-w-[80px]\"\n :class=\"selectedOption ? '' : 'sl-text-gray-500 dark:sl-text-slate-400'\"\n >\n {{ selectedOption?.label || select?.placeholder || 'Select…' }}\n </span>\n <span class=\"sl-pointer-events-none sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-2\">\n <ChevronUpDownIcon class=\"sl-h-5 sl-w-5 sl-text-gray-400 dark:sl-text-slate-300\" aria-hidden=\"true\" />\n </span>\n </ListboxButton>\n \n <Teleport to=\"body\">\n <transition\n leave-active-class=\"sl-transition sl-duration-100 sl-ease-in\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0\"\n >\n <ListboxOptions\n class=\"sl-fixed sl-z-[9999] sl-max-h-56 sl-overflow-auto sl-rounded-md sl-bg-white dark:sl-bg-slate-800 sl-py-1 sl-text-base sl-shadow-lg dark:sl-shadow-slate-900/50 sl-ring-1 sl-ring-black sl-ring-opacity-5 dark:sl-ring-slate-700 focus:sl-outline-none sm:sl-text-sm\"\n :style=\"dropdownStyle\"\n >\n <ListboxOption\n v-for=\"opt in selectOptions\"\n :key=\"opt.value\"\n :value=\"opt\"\n as=\"template\"\n v-slot=\"{ active, selected }\"\n >\n <li\n :class=\"[\n 'sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-3 sl-pr-9',\n active ? 'sl-bg-stachelock-600 sl-text-white' : 'sl-text-gray-900 dark:sl-text-slate-200'\n ]\"\n >\n <span :class=\"['sl-block sl-truncate', selected ? 'sl-font-medium' : 'sl-font-normal']\">\n {{ opt.label }}\n </span>\n <span\n v-if=\"selected\"\n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-4\"\n >\n <CheckIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </span>\n </li>\n </ListboxOption>\n </ListboxOptions>\n </transition>\n </Teleport>\n </div>\n </Listbox>\n\n <!-- Vertical divider -->\n <div class=\"sl-w-px sl-bg-gray-200 dark:sl-bg-slate-700 sl-self-stretch\" />\n\n <!-- Text input -->\n <div class=\"sl-flex-1 sl-relative\">\n <input\n :class=\"[\n 'sl-block sl-w-full sl-text-sm focus:sl-outline-none focus:sl-ring-0 sl-border-0 sl-py-2 sl-pl-3 sl-pr-10 sl-rounded-r-md',\n 'sl-placeholder:text-gray-400 dark:sl-placeholder:text-slate-500',\n disabled \n ? 'sl-bg-gray-50 dark:sl-bg-slate-800 sl-text-gray-500 dark:sl-text-slate-400 sl-cursor-not-allowed' \n : 'sl-bg-white dark:sl-bg-slate-900 sl-text-gray-900 dark:sl-text-slate-100'\n ]\"\n :aria-invalid=\"showError || undefined\"\n :name=\"`${name}__text`\"\n :placeholder=\"text?.placeholder || ''\"\n :inputmode=\"text?.inputMode ?? 'text'\"\n :maxlength=\"text?.maxLength || undefined\"\n :value=\"localValue.text || ''\"\n @input=\"onTextChange(($event.target as HTMLInputElement).value)\"\n :disabled=\"disabled\"\n data-testid=\"text-input\"\n />\n </div>\n </div>\n </div>\n\n <!-- Error message -->\n <Transition\n enter-active-class=\"sl-transition sl-ease-out sl-duration-300\"\n enter-from-class=\"sl-opacity-0 sl-transform sl-scale-95\"\n enter-to-class=\"sl-opacity-100 sl-transform sl-scale-100\"\n leave-active-class=\"sl-transition sl-ease-in sl-duration-200\"\n leave-from-class=\"sl-opacity-100 sl-transform sl-scale-100\"\n leave-to-class=\"sl-opacity-0 sl-transform sl-scale-95\"\n >\n <p \n v-if=\"showError\"\n class=\"sl-mt-2 sl-text-sm sl-text-red-600 dark:sl-text-red-400 sl-bg-red-50 dark:sl-bg-red-900/20 sl-ring-1 sl-ring-red-100 dark:sl-ring-red-800 sl-rounded-md sl-p-2\"\n >\n {{ friendlyErrorMessage }}\n </p>\n </Transition>\n\n <!-- Display value hint -->\n <p \n v-if=\"!showError && computedDisplay\" \n class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400\"\n >\n {{ computedDisplay }}\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, reactive, toRefs, watch, onMounted, ref, onBeforeUnmount, type PropType, type Component } from 'vue'\nimport { CheckCircleIcon, ExclamationCircleIcon } from '@heroicons/vue/20/solid'\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/vue/20/solid'\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from '@headlessui/vue'\n\n// Refs for floating dropdown positioning\nconst listboxButtonRef = ref<InstanceType<typeof ListboxButton> | null>(null)\nconst dropdownStyle = ref<{ top: string; left: string; width: string }>({\n top: '0px',\n left: '0px',\n width: '120px'\n})\nconst dropdownOpen = ref(false)\n\nfunction updateDropdownPosition() {\n // Get the actual DOM element from the Headless UI component\n const el = listboxButtonRef.value?.$el as HTMLElement | undefined\n if (!el) return\n const rect = el.getBoundingClientRect()\n dropdownStyle.value = {\n top: `${rect.bottom + 4}px`,\n left: `${rect.left}px`,\n width: `${Math.max(rect.width, 120)}px`\n }\n}\n\nfunction onDropdownClick() {\n dropdownOpen.value = !dropdownOpen.value\n if (dropdownOpen.value) {\n updateDropdownPosition()\n }\n}\n\n// Update position on scroll/resize when dropdown is open\nfunction handleScrollOrResize() {\n if (dropdownOpen.value) {\n updateDropdownPosition()\n }\n}\n\nonMounted(() => {\n window.addEventListener('scroll', handleScrollOrResize, true)\n window.addEventListener('resize', handleScrollOrResize)\n})\n\nonBeforeUnmount(() => {\n window.removeEventListener('scroll', handleScrollOrResize, true)\n window.removeEventListener('resize', handleScrollOrResize)\n})\n\ntype SelectOption = { label: string; value: string }\n\ntype CompositeValue = {\n select?: string\n text?: string\n display?: string\n}\n\ntype CompositePropValue = CompositeValue | string | number | Record<string, unknown> | null | undefined\n\nconst YEAR_PATTERN = /\\b(19|20)\\d{2}\\b$/\n\nfunction coerceString(input: unknown): string | undefined {\n if (typeof input === 'string') {\n const trimmed = input.trim()\n return trimmed.length ? trimmed : undefined\n }\n if (typeof input === 'number') {\n const str = String(input)\n return str.length ? str : undefined\n }\n return undefined\n}\n\nfunction isCompositeLike(value: unknown): value is CompositeValue {\n return (\n !!value &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n ('select' in (value as Record<string, unknown>) ||\n 'text' in (value as Record<string, unknown>) ||\n 'display' in (value as Record<string, unknown>))\n )\n}\n\nfunction hasMeaningfulComposite(value: CompositeValue): boolean {\n return !!(value.select || value.text || value.display)\n}\n\nfunction buildDisplay(select?: string, text?: string, fallback?: string): string | undefined {\n if (fallback) return fallback\n if (select && text) return `${select} ${text}`.trim()\n return select || text || undefined\n}\n\nfunction normalizeCompositeValue(rawValue: CompositePropValue): CompositeValue {\n const result: CompositeValue = {}\n\n if (rawValue === null || rawValue === undefined) return result\n\n if (typeof rawValue === 'string' || typeof rawValue === 'number') {\n const str = coerceString(rawValue)\n if (!str) return result\n\n const yearMatch = str.match(YEAR_PATTERN)\n if (yearMatch) {\n const year = yearMatch[0]\n const prefix = str.slice(0, str.length - year.length).trim()\n if (prefix) result.select = prefix\n result.text = year\n result.display = buildDisplay(result.select, result.text)\n } else {\n result.text = str\n result.display = str\n }\n return result\n }\n\n if (isCompositeLike(rawValue)) {\n const composite = rawValue as CompositeValue\n const select = coerceString(composite.select)\n const text = coerceString(composite.text)\n const display = coerceString(composite.display)\n\n if (select) result.select = select\n if (text) result.text = text\n result.display = buildDisplay(result.select, result.text, display)\n return result\n }\n\n if (typeof rawValue === 'object' && !Array.isArray(rawValue)) {\n const obj = rawValue as Record<string, unknown>\n const select =\n coerceString(obj.select) ?? coerceString(obj.term) ?? coerceString(obj.semester)\n const text =\n coerceString(obj.text) ?? coerceString(obj.year) ?? coerceString(obj.value)\n const display = coerceString(obj.display) ?? coerceString(obj.label)\n\n if (select) result.select = select\n if (text) result.text = text\n result.display = buildDisplay(result.select, result.text, display)\n return result\n }\n\n return result\n}\n\nconst props = defineProps({\n name: { type: String, required: true },\n label: { type: String, default: '' },\n tertiaryLabel: { type: String, default: '' },\n secondaryLabel: { type: String, default: '' },\n labelIconLeft: { type: [Object, Function] as PropType<Component>, default: undefined },\n value: {\n type: [Object, String, Number] as PropType<CompositePropValue>,\n default: undefined\n },\n select: {\n type: Object as PropType<{ label?: string; options: SelectOption[]; placeholder?: string }>,\n default: () => ({ options: [] })\n },\n text: {\n type: Object as PropType<{\n label?: string\n placeholder?: string\n inputMode?: 'text' | 'none' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'\n maxLength?: number\n }>,\n default: () => ({})\n },\n delimiter: { type: String, default: ' ' },\n formatter: { type: Function as PropType<(v: CompositeValue) => string | undefined> },\n showErrors: { type: Boolean, default: false },\n hasError: { type: Boolean, default: false },\n validateOnMount: { type: Boolean, default: false },\n textValidationRegex: { type: [RegExp, Object] as PropType<RegExp>, default: undefined },\n requiredText: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n disabledMessage: { type: String, default: '' },\n colorfulValidation: { type: Boolean, default: true },\n showValidCheck: { type: Boolean, default: true }\n})\n\nconst emit = defineEmits<{\n 'update:value': [value: CompositeValue]\n 'update:validity': [isValid: boolean]\n}>()\n\nconst initialNormalizedValue = normalizeCompositeValue(props.value)\n\nconst state = reactive({\n localValue: initialNormalizedValue\n})\n\nconst { localValue } = toRefs(state)\n\nconst shouldEmitNormalizedInitialValue = computed(\n () => hasMeaningfulComposite(initialNormalizedValue) && !isCompositeLike(props.value)\n)\n\nconst selectOptions = computed<SelectOption[]>(() => props.select?.options || [])\n\n// Find the selected option object based on localValue.select\nconst selectedOption = computed<SelectOption | null>(() => {\n if (!localValue.value.select) return null\n return selectOptions.value.find(opt => opt.value === localValue.value.select) || null\n})\n\nconst isTextInvalid = computed(() => {\n const t = localValue.value.text\n if (!props.textValidationRegex) {\n return false\n }\n if (!t || String(t).trim() === '') {\n return props.requiredText === true\n }\n return !props.textValidationRegex.test(String(t))\n})\n\nconst showError = computed(() => props.showErrors && (props.hasError || isTextInvalid.value))\nconst showSuccess = computed(\n () => props.showValidCheck && !showError.value && !!computedDisplay.value\n)\n\nconst containerRingClass = computed(() => {\n if (props.disabled) return 'sl-ring-gray-200 dark:sl-ring-slate-700'\n if (!props.colorfulValidation) return 'sl-ring-gray-300 dark:sl-ring-slate-600 focus-within:sl-ring-stachelock-600'\n if (showError.value) return 'sl-ring-red-300 dark:sl-ring-red-500 focus-within:sl-ring-stachelock-600'\n if (showSuccess.value) return 'sl-ring-green-300 dark:sl-ring-green-500 focus-within:sl-ring-stachelock-600'\n return 'sl-ring-gray-300 dark:sl-ring-slate-600 focus-within:sl-ring-stachelock-600'\n})\n\nconst computedDisplay = computed(() => {\n const raw = { select: localValue.value.select, text: localValue.value.text } as CompositeValue\n const custom = props.formatter ? props.formatter(raw) : undefined\n if (custom !== undefined) return custom\n const parts = [raw.select, raw.text].filter(Boolean)\n return parts.join(props.delimiter).trim()\n})\n\nconst friendlyErrorMessage = computed(() => {\n if (!showError.value) return ''\n const hasSelect = !!localValue.value.select\n const hasText = !!localValue.value.text && String(localValue.value.text).trim() !== ''\n const yearOk = !!localValue.value.text && /^\\d{4}$/.test(String(localValue.value.text))\n if (!hasSelect && !hasText) return 'Please select an option and enter a value.'\n if (!hasSelect) return 'Please select an option.'\n if (!hasText) return 'Please enter a value.'\n if (!yearOk && props.textValidationRegex) return 'Please enter a valid value.'\n return 'Please complete both fields.'\n})\n\nfunction emitValueAndValidity() {\n const display = computedDisplay.value || undefined\n const payload: CompositeValue = {\n select: localValue.value.select,\n text: localValue.value.text,\n display\n }\n emit('update:value', payload)\n const isValid = !!(payload.select && payload.text && String(payload.text).length > 0)\n emit('update:validity', isValid)\n}\n\nfunction onSelectChange(opt: SelectOption | null) {\n localValue.value.select = opt?.value || undefined\n dropdownOpen.value = false\n emitValueAndValidity()\n}\n\nfunction onTextChange(val: string) {\n localValue.value.text = val || undefined\n emitValueAndValidity()\n}\n\n// Sync down-prop changes\nwatch(\n () => props.value,\n (v) => {\n state.localValue = normalizeCompositeValue(v)\n },\n { deep: true }\n)\n\nonMounted(() => {\n if (shouldEmitNormalizedInitialValue.value) {\n emitValueAndValidity()\n }\n})\n\n// Validate on mount if requested\nif (props.validateOnMount) {\n emitValueAndValidity()\n}\n</script>\n\n"],"names":["listboxButtonRef","ref","dropdownStyle","dropdownOpen","updateDropdownPosition","el","rect","onDropdownClick","handleScrollOrResize","onMounted","onBeforeUnmount","YEAR_PATTERN","coerceString","input","trimmed","str","isCompositeLike","value","hasMeaningfulComposite","buildDisplay","select","text","fallback","normalizeCompositeValue","rawValue","result","yearMatch","year","prefix","composite","display","obj","props","__props","emit","__emit","initialNormalizedValue","state","reactive","localValue","toRefs","shouldEmitNormalizedInitialValue","computed","selectOptions","selectedOption","opt","isTextInvalid","t","showError","showSuccess","computedDisplay","containerRingClass","raw","custom","friendlyErrorMessage","hasSelect","hasText","yearOk","emitValueAndValidity","payload","isValid","onSelectChange","onTextChange","val","watch","v","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_createBlock","_resolveDynamicComponent","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_createVNode","_unref","ExclamationCircleIcon","_hoisted_11","CheckCircleIcon","_normalizeClass","Listbox","_hoisted_12","ListboxButton","_hoisted_13","ChevronUpDownIcon","_Teleport","_Transition","ListboxOptions","_Fragment","_renderList","ListboxOption","active","selected","_hoisted_14","CheckIcon","_hoisted_15","$event","_hoisted_17","_hoisted_18"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectTextInput.vue_vue_type_script_setup_true_lang-DYrXW14A.js","sources":["../src/components/inputs/SelectTextInput.vue"],"sourcesContent":["<!--\n @component SelectTextInput\n @description Combined select dropdown and text input field.\n \n A composite input that combines a select dropdown with a text input,\n useful for inputs like \"Fall 2023\" where the user selects a term\n and enters a year. Uses Headless UI Listbox for accessible select.\n \n @props\n - name (string, required): Field name for form binding\n - label (string, optional): Main label text\n - value (CompositeValue | string, optional): Combined value object or string\n - select (object, optional): Select configuration { options, placeholder, label }\n - text (object, optional): Text input config { placeholder, inputMode, maxLength, label }\n - delimiter (string, optional): Character between select and text in display\n - showErrors (boolean, optional): Force show validation errors\n - hasError (boolean, optional): External error state\n - disabled (boolean, optional): Disabled state\n - colorfulValidation (boolean, optional): Color-coded validation states\n - showValidCheck (boolean, optional): Show success icon when valid\n \n @emits\n - update:value: Emitted when composite value changes\n - update:validity: Emitted when validation state changes\n \n @example\n <SelectTextInput\n name=\"graduation\"\n label=\"Expected Graduation\"\n :value=\"{ select: 'Fall', text: '2024' }\"\n :select=\"{ options: [{ label: 'Fall', value: 'Fall' }, { label: 'Spring', value: 'Spring' }] }\"\n :text=\"{ placeholder: 'Year', inputMode: 'numeric', maxLength: 4 }\"\n @update:value=\"handleUpdate\"\n />\n-->\n<template>\n <div class=\"sl-space-y-1\" data-testid=\"select-text-input\">\n <!-- Main label row -->\n <div \n v-if=\"label || secondaryLabel || tertiaryLabel || (disabled && disabledMessage)\" \n class=\"sl-grid sl-grid-cols-3 sl-items-center\"\n >\n <div class=\"sl-col-span-2 sl-flex sl-items-center\">\n <component \n v-if=\"labelIconLeft\" \n :is=\"labelIconLeft\" \n class=\"sl-mr-2 sl-h-4 sl-w-4 sl-text-yellow-300\" \n />\n <label v-if=\"label\" class=\"sl-text-sm sl-font-medium\" :style=\"{ color: 'var(--sl-text-primary)' }\">\n {{ label }}\n </label>\n </div>\n <div class=\"sl-justify-self-end sl-col-start-3 sl-text-right sl-space-y-0.5\">\n <p \n v-if=\"disabled && disabledMessage\" \n class=\"sl-text-xs\" :style=\"{ color: 'var(--sl-text-muted)' }\"\n >\n {{ disabledMessage }}\n </p>\n <span \n v-if=\"secondaryLabel\" \n class=\"sl-text-2xs sl-uppercase sl-truncate sl-font-semibold sl-block\" :style=\"{ color: 'var(--sl-text-secondary)' }\"\n >\n {{ secondaryLabel }}\n </span>\n <span \n v-if=\"tertiaryLabel\" \n class=\"sl-text-xs sl-uppercase sl-truncate sl-font-semibold sl-block\" :style=\"{ color: 'var(--sl-text-secondary)' }\"\n >\n {{ tertiaryLabel }}\n </span>\n </div>\n </div>\n\n <!-- Input container -->\n <div class=\"sl-relative sl-mt-1\">\n <!-- Error icon -->\n <div \n v-if=\"showError\" \n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-z-20 sl-pointer-events-none\"\n >\n <ExclamationCircleIcon class=\"sl-h-5 sl-w-5 sl-text-red-500\" aria-hidden=\"true\" />\n </div>\n <!-- Success icon -->\n <div \n v-else-if=\"showSuccess\" \n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-z-20 sl-pointer-events-none\"\n >\n <CheckCircleIcon class=\"sl-h-5 sl-w-5 sl-text-green-500\" aria-hidden=\"true\" />\n </div>\n\n <div \n class=\"sl-flex sl-rounded-md sl-shadow-sm sl-ring-1 sl-ring-inset focus-within:sl-ring-2 focus-within:sl-ring-inset\"\n :class=\"containerRingClass\"\n >\n <!-- Select dropdown using Headless UI Listbox -->\n <Listbox\n :model-value=\"selectedOption\"\n @update:model-value=\"onSelectChange\"\n :disabled=\"disabled\"\n >\n <div class=\"sl-relative\">\n <ListboxButton\n ref=\"listboxButtonRef\"\n :class=\"[\n 'sl-relative sl-cursor-default sl-rounded-l-md sl-border-0 sl-py-2 sl-pl-3 sl-pr-10 sl-text-left sl-text-sm',\n 'sl-bg-white dark:sl-bg-slate-900 sl-text-gray-900 dark:sl-text-slate-100',\n 'focus:sl-outline-none focus:sl-ring-0',\n disabled ? 'sl-cursor-not-allowed sl-bg-gray-50 dark:sl-bg-slate-800 sl-text-gray-500 dark:sl-text-slate-400' : ''\n ]\"\n data-testid=\"select-dropdown\"\n @click=\"onDropdownClick\"\n >\n <span \n class=\"sl-block sl-truncate sl-min-w-[80px]\"\n :class=\"selectedOption ? '' : 'sl-text-gray-500 dark:sl-text-slate-400'\"\n >\n {{ selectedOption?.label || select?.placeholder || 'Select…' }}\n </span>\n <span class=\"sl-pointer-events-none sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-2\">\n <ChevronUpDownIcon class=\"sl-h-5 sl-w-5 sl-text-gray-400 dark:sl-text-slate-300\" aria-hidden=\"true\" />\n </span>\n </ListboxButton>\n \n <Teleport to=\"body\">\n <transition\n leave-active-class=\"sl-transition sl-duration-100 sl-ease-in\"\n leave-from-class=\"sl-opacity-100\"\n leave-to-class=\"sl-opacity-0\"\n >\n <ListboxOptions\n class=\"sl-fixed sl-z-[9999] sl-max-h-56 sl-overflow-auto sl-rounded-md sl-bg-white dark:sl-bg-slate-800 sl-py-1 sl-text-base sl-shadow-lg dark:sl-shadow-slate-900/50 sl-ring-1 sl-ring-black sl-ring-opacity-5 dark:sl-ring-slate-700 focus:sl-outline-none sm:sl-text-sm\"\n :style=\"dropdownStyle\"\n >\n <ListboxOption\n v-for=\"opt in selectOptions\"\n :key=\"opt.value\"\n :value=\"opt\"\n as=\"template\"\n v-slot=\"{ active, selected }\"\n >\n <li\n :class=\"[\n 'sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-3 sl-pr-9',\n active ? 'sl-bg-stachelock-600 sl-text-white' : 'sl-text-gray-900 dark:sl-text-slate-200'\n ]\"\n >\n <span :class=\"['sl-block sl-truncate', selected ? 'sl-font-medium' : 'sl-font-normal']\">\n {{ opt.label }}\n </span>\n <span\n v-if=\"selected\"\n class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-4\"\n >\n <CheckIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </span>\n </li>\n </ListboxOption>\n </ListboxOptions>\n </transition>\n </Teleport>\n </div>\n </Listbox>\n\n <!-- Vertical divider -->\n <div class=\"sl-w-px sl-bg-gray-200 dark:sl-bg-slate-700 sl-self-stretch\" />\n\n <!-- Text input -->\n <div class=\"sl-flex-1 sl-relative\">\n <input\n :class=\"[\n 'sl-block sl-w-full sl-text-sm focus:sl-outline-none focus:sl-ring-0 sl-border-0 sl-py-2 sl-pl-3 sl-pr-10 sl-rounded-r-md',\n 'sl-placeholder:text-gray-400 dark:sl-placeholder:text-slate-500',\n disabled \n ? 'sl-bg-gray-50 dark:sl-bg-slate-800 sl-text-gray-500 dark:sl-text-slate-400 sl-cursor-not-allowed' \n : 'sl-bg-white dark:sl-bg-slate-900 sl-text-gray-900 dark:sl-text-slate-100'\n ]\"\n :aria-invalid=\"showError || undefined\"\n :name=\"`${name}__text`\"\n :placeholder=\"text?.placeholder || ''\"\n :inputmode=\"text?.inputMode ?? 'text'\"\n :maxlength=\"text?.maxLength || undefined\"\n :value=\"localValue.text || ''\"\n @input=\"onTextChange(($event.target as HTMLInputElement).value)\"\n :disabled=\"disabled\"\n data-testid=\"text-input\"\n />\n </div>\n </div>\n </div>\n\n <!-- Error message -->\n <Transition\n enter-active-class=\"sl-transition sl-ease-out sl-duration-300\"\n enter-from-class=\"sl-opacity-0 sl-transform sl-scale-95\"\n enter-to-class=\"sl-opacity-100 sl-transform sl-scale-100\"\n leave-active-class=\"sl-transition sl-ease-in sl-duration-200\"\n leave-from-class=\"sl-opacity-100 sl-transform sl-scale-100\"\n leave-to-class=\"sl-opacity-0 sl-transform sl-scale-95\"\n >\n <p \n v-if=\"showError\"\n class=\"sl-mt-2 sl-text-sm sl-text-red-600 dark:sl-text-red-400 sl-bg-red-50 dark:sl-bg-red-900/20 sl-ring-1 sl-ring-red-100 dark:sl-ring-red-800 sl-rounded-md sl-p-2\"\n >\n {{ friendlyErrorMessage }}\n </p>\n </Transition>\n\n <!-- Display value hint -->\n <p \n v-if=\"!showError && computedDisplay\" \n class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400\"\n >\n {{ computedDisplay }}\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, reactive, toRefs, watch, onMounted, ref, onBeforeUnmount, type PropType, type Component } from 'vue'\nimport { CheckCircleIcon, ExclamationCircleIcon } from '@heroicons/vue/20/solid'\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/vue/20/solid'\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from '@headlessui/vue'\n\n// Refs for floating dropdown positioning\nconst listboxButtonRef = ref<InstanceType<typeof ListboxButton> | null>(null)\nconst dropdownStyle = ref<{ top: string; left: string; width: string }>({\n top: '0px',\n left: '0px',\n width: '120px'\n})\nconst dropdownOpen = ref(false)\n\nfunction updateDropdownPosition() {\n // Get the actual DOM element from the Headless UI component\n const el = listboxButtonRef.value?.$el as HTMLElement | undefined\n if (!el) return\n const rect = el.getBoundingClientRect()\n dropdownStyle.value = {\n top: `${rect.bottom + 4}px`,\n left: `${rect.left}px`,\n width: `${Math.max(rect.width, 120)}px`\n }\n}\n\nfunction onDropdownClick() {\n dropdownOpen.value = !dropdownOpen.value\n if (dropdownOpen.value) {\n updateDropdownPosition()\n }\n}\n\n// Update position on scroll/resize when dropdown is open\nfunction handleScrollOrResize() {\n if (dropdownOpen.value) {\n updateDropdownPosition()\n }\n}\n\nonMounted(() => {\n window.addEventListener('scroll', handleScrollOrResize, true)\n window.addEventListener('resize', handleScrollOrResize)\n})\n\nonBeforeUnmount(() => {\n window.removeEventListener('scroll', handleScrollOrResize, true)\n window.removeEventListener('resize', handleScrollOrResize)\n})\n\ntype SelectOption = { label: string; value: string }\n\ntype CompositeValue = {\n select?: string\n text?: string\n display?: string\n}\n\ntype CompositePropValue = CompositeValue | string | number | Record<string, unknown> | null | undefined\n\nconst YEAR_PATTERN = /\\b(19|20)\\d{2}\\b$/\n\nfunction coerceString(input: unknown): string | undefined {\n if (typeof input === 'string') {\n const trimmed = input.trim()\n return trimmed.length ? trimmed : undefined\n }\n if (typeof input === 'number') {\n const str = String(input)\n return str.length ? str : undefined\n }\n return undefined\n}\n\nfunction isCompositeLike(value: unknown): value is CompositeValue {\n return (\n !!value &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n ('select' in (value as Record<string, unknown>) ||\n 'text' in (value as Record<string, unknown>) ||\n 'display' in (value as Record<string, unknown>))\n )\n}\n\nfunction hasMeaningfulComposite(value: CompositeValue): boolean {\n return !!(value.select || value.text || value.display)\n}\n\nfunction buildDisplay(select?: string, text?: string, fallback?: string): string | undefined {\n if (fallback) return fallback\n if (select && text) return `${select} ${text}`.trim()\n return select || text || undefined\n}\n\nfunction normalizeCompositeValue(rawValue: CompositePropValue): CompositeValue {\n const result: CompositeValue = {}\n\n if (rawValue === null || rawValue === undefined) return result\n\n if (typeof rawValue === 'string' || typeof rawValue === 'number') {\n const str = coerceString(rawValue)\n if (!str) return result\n\n const yearMatch = str.match(YEAR_PATTERN)\n if (yearMatch) {\n const year = yearMatch[0]\n const prefix = str.slice(0, str.length - year.length).trim()\n if (prefix) result.select = prefix\n result.text = year\n result.display = buildDisplay(result.select, result.text)\n } else {\n result.text = str\n result.display = str\n }\n return result\n }\n\n if (isCompositeLike(rawValue)) {\n const composite = rawValue as CompositeValue\n const select = coerceString(composite.select)\n const text = coerceString(composite.text)\n const display = coerceString(composite.display)\n\n if (select) result.select = select\n if (text) result.text = text\n result.display = buildDisplay(result.select, result.text, display)\n return result\n }\n\n if (typeof rawValue === 'object' && !Array.isArray(rawValue)) {\n const obj = rawValue as Record<string, unknown>\n const select =\n coerceString(obj.select) ?? coerceString(obj.term) ?? coerceString(obj.semester)\n const text =\n coerceString(obj.text) ?? coerceString(obj.year) ?? coerceString(obj.value)\n const display = coerceString(obj.display) ?? coerceString(obj.label)\n\n if (select) result.select = select\n if (text) result.text = text\n result.display = buildDisplay(result.select, result.text, display)\n return result\n }\n\n return result\n}\n\nconst props = defineProps({\n name: { type: String, required: true },\n label: { type: String, default: '' },\n tertiaryLabel: { type: String, default: '' },\n secondaryLabel: { type: String, default: '' },\n labelIconLeft: { type: [Object, Function] as PropType<Component>, default: undefined },\n value: {\n type: [Object, String, Number] as PropType<CompositePropValue>,\n default: undefined\n },\n select: {\n type: Object as PropType<{ label?: string; options: SelectOption[]; placeholder?: string }>,\n default: () => ({ options: [] })\n },\n text: {\n type: Object as PropType<{\n label?: string\n placeholder?: string\n inputMode?: 'text' | 'none' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'\n maxLength?: number\n }>,\n default: () => ({})\n },\n delimiter: { type: String, default: ' ' },\n formatter: { type: Function as PropType<(v: CompositeValue) => string | undefined> },\n showErrors: { type: Boolean, default: false },\n hasError: { type: Boolean, default: false },\n validateOnMount: { type: Boolean, default: false },\n textValidationRegex: { type: [RegExp, Object] as PropType<RegExp>, default: undefined },\n requiredText: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n disabledMessage: { type: String, default: '' },\n colorfulValidation: { type: Boolean, default: true },\n showValidCheck: { type: Boolean, default: true }\n})\n\nconst emit = defineEmits<{\n 'update:value': [value: CompositeValue]\n 'update:validity': [isValid: boolean]\n}>()\n\nconst initialNormalizedValue = normalizeCompositeValue(props.value)\n\nconst state = reactive({\n localValue: initialNormalizedValue\n})\n\nconst { localValue } = toRefs(state)\n\nconst shouldEmitNormalizedInitialValue = computed(\n () => hasMeaningfulComposite(initialNormalizedValue) && !isCompositeLike(props.value)\n)\n\nconst selectOptions = computed<SelectOption[]>(() => props.select?.options || [])\n\n// Find the selected option object based on localValue.select\nconst selectedOption = computed<SelectOption | null>(() => {\n if (!localValue.value.select) return null\n return selectOptions.value.find(opt => opt.value === localValue.value.select) || null\n})\n\nconst isTextInvalid = computed(() => {\n const t = localValue.value.text\n if (!props.textValidationRegex) {\n return false\n }\n if (!t || String(t).trim() === '') {\n return props.requiredText === true\n }\n return !props.textValidationRegex.test(String(t))\n})\n\nconst showError = computed(() => props.showErrors && (props.hasError || isTextInvalid.value))\nconst showSuccess = computed(\n () => props.showValidCheck && !showError.value && !!computedDisplay.value\n)\n\nconst containerRingClass = computed(() => {\n if (props.disabled) return 'sl-ring-gray-200 dark:sl-ring-slate-700'\n if (!props.colorfulValidation) return 'sl-ring-gray-300 dark:sl-ring-slate-600 focus-within:sl-ring-stachelock-600'\n if (showError.value) return 'sl-ring-red-300 dark:sl-ring-red-500 focus-within:sl-ring-stachelock-600'\n if (showSuccess.value) return 'sl-ring-green-300 dark:sl-ring-green-500 focus-within:sl-ring-stachelock-600'\n return 'sl-ring-gray-300 dark:sl-ring-slate-600 focus-within:sl-ring-stachelock-600'\n})\n\nconst computedDisplay = computed(() => {\n const raw = { select: localValue.value.select, text: localValue.value.text } as CompositeValue\n const custom = props.formatter ? props.formatter(raw) : undefined\n if (custom !== undefined) return custom\n const parts = [raw.select, raw.text].filter(Boolean)\n return parts.join(props.delimiter).trim()\n})\n\nconst friendlyErrorMessage = computed(() => {\n if (!showError.value) return ''\n const hasSelect = !!localValue.value.select\n const hasText = !!localValue.value.text && String(localValue.value.text).trim() !== ''\n const yearOk = !!localValue.value.text && /^\\d{4}$/.test(String(localValue.value.text))\n if (!hasSelect && !hasText) return 'Please select an option and enter a value.'\n if (!hasSelect) return 'Please select an option.'\n if (!hasText) return 'Please enter a value.'\n if (!yearOk && props.textValidationRegex) return 'Please enter a valid value.'\n return 'Please complete both fields.'\n})\n\nfunction emitValueAndValidity() {\n const display = computedDisplay.value || undefined\n const payload: CompositeValue = {\n select: localValue.value.select,\n text: localValue.value.text,\n display\n }\n emit('update:value', payload)\n const isValid = !!(payload.select && payload.text && String(payload.text).length > 0)\n emit('update:validity', isValid)\n}\n\nfunction onSelectChange(opt: SelectOption | null) {\n localValue.value.select = opt?.value || undefined\n dropdownOpen.value = false\n emitValueAndValidity()\n}\n\nfunction onTextChange(val: string) {\n localValue.value.text = val || undefined\n emitValueAndValidity()\n}\n\n// Sync down-prop changes\nwatch(\n () => props.value,\n (v) => {\n state.localValue = normalizeCompositeValue(v)\n },\n { deep: true }\n)\n\nonMounted(() => {\n if (shouldEmitNormalizedInitialValue.value) {\n emitValueAndValidity()\n }\n})\n\n// Validate on mount if requested\nif (props.validateOnMount) {\n emitValueAndValidity()\n}\n</script>\n\n"],"names":["listboxButtonRef","ref","dropdownStyle","dropdownOpen","updateDropdownPosition","el","rect","onDropdownClick","handleScrollOrResize","onMounted","onBeforeUnmount","YEAR_PATTERN","coerceString","input","trimmed","str","isCompositeLike","value","hasMeaningfulComposite","buildDisplay","select","text","fallback","normalizeCompositeValue","rawValue","result","yearMatch","year","prefix","composite","display","obj","props","__props","emit","__emit","initialNormalizedValue","state","reactive","localValue","toRefs","shouldEmitNormalizedInitialValue","computed","selectOptions","selectedOption","opt","isTextInvalid","t","showError","showSuccess","computedDisplay","containerRingClass","raw","custom","friendlyErrorMessage","hasSelect","hasText","yearOk","emitValueAndValidity","payload","isValid","onSelectChange","onTextChange","val","watch","v","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_createBlock","_resolveDynamicComponent","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_createVNode","_unref","ExclamationCircleIcon","_hoisted_11","CheckCircleIcon","_normalizeClass","Listbox","_hoisted_12","ListboxButton","_hoisted_13","ChevronUpDownIcon","_Teleport","_Transition","ListboxOptions","_Fragment","_renderList","ListboxOption","active","selected","_hoisted_14","CheckIcon","_hoisted_15","$event","_hoisted_17","_hoisted_18"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { defineComponent as x, ref as g, createElementBlock as u, openBlock as v
|
|
|
2
2
|
import { r as b } from "./XMarkIcon-Cwy3T6p8.js";
|
|
3
3
|
import { r as y } from "./Bars3Icon-BdOqcGcY.js";
|
|
4
4
|
import { S as h, h as f } from "./transition-_rPfnoET.js";
|
|
5
|
-
import { Y as
|
|
6
|
-
const
|
|
5
|
+
import { Y as k, G as w } from "./dialog-BJ2Ld8l3.js";
|
|
6
|
+
const _ = { class: "sl-relative" }, $ = { class: "sl-fixed sl-inset-0 sl-flex" }, S = { class: "sl-absolute sl-left-full sl-top-0 sl-flex sl-w-16 sl-justify-center sl-pt-5" }, C = {
|
|
7
7
|
class: "sl-flex sl-grow sl-flex-col sl-gap-y-5 sl-px-6 sl-pb-2 sl-ring-1 sl-ring-white/10",
|
|
8
8
|
style: { "background-color": "#dc2626" }
|
|
9
9
|
}, z = { class: "sl-flex sl-h-16 sl-shrink-0 sl-items-center" }, W = { class: "sl-flex sl-flex-1 sl-flex-col" }, B = {
|
|
@@ -23,13 +23,13 @@ const w = { class: "sl-relative" }, $ = { class: "sl-fixed sl-inset-0 sl-flex" }
|
|
|
23
23
|
}, c = () => {
|
|
24
24
|
n.value = !0;
|
|
25
25
|
};
|
|
26
|
-
return (e, l) => (v(), u("div",
|
|
26
|
+
return (e, l) => (v(), u("div", _, [
|
|
27
27
|
o(a(h), {
|
|
28
28
|
as: "template",
|
|
29
29
|
show: n.value
|
|
30
30
|
}, {
|
|
31
31
|
default: i(() => [
|
|
32
|
-
o(a(
|
|
32
|
+
o(a(k), {
|
|
33
33
|
as: "div",
|
|
34
34
|
class: "sl-relative sl-z-50 lg:sl-hidden",
|
|
35
35
|
onClose: p
|
|
@@ -44,11 +44,10 @@ const w = { class: "sl-relative" }, $ = { class: "sl-fixed sl-inset-0 sl-flex" }
|
|
|
44
44
|
"leave-from": "sl-opacity-100",
|
|
45
45
|
"leave-to": "sl-opacity-0"
|
|
46
46
|
}, {
|
|
47
|
-
default: i(() => l[2] || (l[2] = [
|
|
47
|
+
default: i(() => [...l[2] || (l[2] = [
|
|
48
48
|
s("div", { class: "sl-fixed sl-inset-0 sl-bg-gray-900/80" }, null, -1)
|
|
49
|
-
])),
|
|
50
|
-
_: 1
|
|
51
|
-
__: [2]
|
|
49
|
+
])]),
|
|
50
|
+
_: 1
|
|
52
51
|
}),
|
|
53
52
|
s("div", $, [
|
|
54
53
|
o(a(f), {
|
|
@@ -61,7 +60,7 @@ const w = { class: "sl-relative" }, $ = { class: "sl-fixed sl-inset-0 sl-flex" }
|
|
|
61
60
|
"leave-to": "-sl-translate-x-full"
|
|
62
61
|
}, {
|
|
63
62
|
default: i(() => [
|
|
64
|
-
o(a(
|
|
63
|
+
o(a(w), { class: "sl-relative sl-mr-16 sl-flex sl-w-full sl-max-w-xs sl-flex-1" }, {
|
|
65
64
|
default: i(() => [
|
|
66
65
|
o(a(f), {
|
|
67
66
|
as: "template",
|
|
@@ -182,4 +181,4 @@ const w = { class: "sl-relative" }, $ = { class: "sl-fixed sl-inset-0 sl-flex" }
|
|
|
182
181
|
export {
|
|
183
182
|
J as _
|
|
184
183
|
};
|
|
185
|
-
//# sourceMappingURL=SidebarLayout.vue_vue_type_script_setup_true_lang-
|
|
184
|
+
//# sourceMappingURL=SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarLayout.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"SidebarLayout.vue_vue_type_script_setup_true_lang-BJ5jadgZ.js","sources":["../src/components/layouts/SidebarLayout.vue"],"sourcesContent":["<template>\n <div class=\"sl-relative\">\n <!-- Mobile sidebar overlay -->\n <TransitionRoot as=\"template\" :show=\"sidebarOpen\">\n <Dialog as=\"div\" class=\"sl-relative sl-z-50 lg:sl-hidden\" @close=\"closeSidebar\">\n <TransitionChild as=\"template\" enter=\"sl-transition-opacity sl-ease-linear sl-duration-300\"\n enter-from=\"sl-opacity-0\" enter-to=\"sl-opacity-100\"\n leave=\"sl-transition-opacity sl-ease-linear sl-duration-300\" leave-from=\"sl-opacity-100\"\n leave-to=\"sl-opacity-0\">\n <div class=\"sl-fixed sl-inset-0 sl-bg-gray-900/80\" />\n </TransitionChild>\n\n <div class=\"sl-fixed sl-inset-0 sl-flex\">\n <TransitionChild as=\"template\" enter=\"sl-transition sl-ease-in-out sl-duration-300 sl-transform\"\n enter-from=\"-sl-translate-x-full\" enter-to=\"sl-translate-x-0\"\n leave=\"sl-transition sl-ease-in-out sl-duration-300 sl-transform\" leave-from=\"sl-translate-x-0\"\n leave-to=\"-sl-translate-x-full\">\n <DialogPanel class=\"sl-relative sl-mr-16 sl-flex sl-w-full sl-max-w-xs sl-flex-1\">\n <TransitionChild as=\"template\" enter=\"sl-ease-in-out sl-duration-300\" enter-from=\"sl-opacity-0\"\n enter-to=\"sl-opacity-100\" leave=\"sl-ease-in-out sl-duration-300\" leave-from=\"sl-opacity-100\"\n leave-to=\"sl-opacity-0\">\n <div class=\"sl-absolute sl-left-full sl-top-0 sl-flex sl-w-16 sl-justify-center sl-pt-5\">\n <button type=\"button\" class=\"-sl-m-2.5 sl-p-2.5\" @click=\"closeSidebar()\">\n <span class=\"sl-sr-only\">Close sidebar</span>\n <XMarkIcon class=\"sl-h-6 sl-w-6 sl-text-stachelock-050\" aria-hidden=\"true\" />\n </button>\n </div>\n </TransitionChild>\n\n <div\n class=\"sl-flex sl-grow sl-flex-col sl-gap-y-5 sl-px-6 sl-pb-2 sl-ring-1 sl-ring-white/10\"\n style=\"background-color: #dc2626;\">\n <div class=\"sl-flex sl-h-16 sl-shrink-0 sl-items-center\">\n <slot name=\"logo\">\n <div class=\"sl-font-semibold sl-text-lg\" style=\"color: #fef2f2;\">Logo</div>\n </slot>\n </div>\n <nav class=\"sl-flex sl-flex-1 sl-flex-col\">\n <ul role=\"list\" class=\"-sl-mx-2 sl-flex-1 sl-space-y-1\">\n <slot name=\"navigation\">\n <!-- Default navigation slot -->\n </slot>\n </ul>\n </nav>\n <div class=\"sl-mt-auto\">\n <slot name=\"sidebar-footer\">\n <!-- Sidebar footer content -->\n </slot>\n </div>\n </div>\n </DialogPanel>\n </TransitionChild>\n </div>\n </Dialog>\n </TransitionRoot>\n\n <!-- Desktop sidebar -->\n <div\n class=\"sl-hidden lg:sl-fixed lg:sl-inset-y-0 lg:sl-left-0 lg:sl-z-50 lg:sl-block lg:sl-pb-4 sl-pt-4\"\n style=\"background-color: #dc2626;\"\n :class=\"isWideSidebar ? 'lg:sl-w-72' : 'lg:sl-w-20'\">\n <div class=\"sl-flex sl-h-16 sl-shrink-0 sl-items-center sl-px-6\">\n <slot name=\"logo\">\n <div class=\"sl-font-semibold sl-text-lg\" style=\"color: #fef2f2;\">Logo</div>\n </slot>\n </div>\n <nav class=\"sl-mt-8 sl-flex sl-flex-col sl-justify-between sl-h-full\">\n <ul role=\"list\"\n :class=\"isWideSidebar ? 'sl-flex sl-flex-col sl-items-start sl-mx-4 sl-space-y-1' : 'sl-flex sl-flex-col sl-items-center sl-space-y-1'\">\n <slot name=\"navigation\">\n <!-- Default navigation slot -->\n </slot>\n </ul>\n <div class=\"sl-absolute sl-bottom-4 sl-left-0 sl-right-0 sl-px-6\">\n <slot name=\"sidebar-footer\">\n <!-- Sidebar footer content -->\n </slot>\n </div>\n </nav>\n </div>\n\n <!-- Main content area -->\n <div :class=\"['lg:sl-pl-20', isWideSidebar ? 'lg:sl-pl-72' : 'lg:sl-pl-20']\">\n <!-- Header -->\n <div\n class=\"sl-sticky sl-top-0 sl-z-40 sl-flex sl-h-16 sl-shrink-0 sl-items-center sl-gap-x-4 sl-border-b sl-border-gray-200 dark:sl-border-slate-700 sl-bg-white dark:sl-bg-slate-800 sl-px-4 sl-shadow-sm sm:sl-gap-x-6 sm:sl-px-6 lg:sl-px-8\">\n <button type=\"button\" class=\"-sl-m-2.5 sl-p-2.5 sl-text-gray-700 dark:sl-text-slate-300 lg:sl-hidden\" @click=\"openSidebar()\">\n <span class=\"sl-sr-only\">Open sidebar</span>\n <Bars3Icon class=\"sl-h-6 sl-w-6\" aria-hidden=\"true\" />\n </button>\n\n <!-- Separator -->\n <div class=\"sl-h-6 sl-w-px sl-bg-gray-900/10 dark:sl-bg-slate-700 lg:sl-hidden\" aria-hidden=\"true\" />\n\n <div class=\"sl-flex sl-flex-1 sl-gap-x-4 sm:sl-self-stretch lg:sl-gap-x-6\">\n <div class=\"sl-relative sl-flex sl-flex-1\">\n <slot name=\"header-content\">\n <!-- Header content -->\n </slot>\n </div>\n <div class=\"sl-flex sl-items-center sl-gap-x-4 lg:sl-gap-x-6\">\n <slot name=\"header-right\">\n <!-- Header right content (notifications, profile, etc.) -->\n </slot>\n </div>\n </div>\n </div>\n\n <!-- Main content -->\n <main class=\"sl-px-4 sm:sl-px-6 lg:sl-px-8 sl-py-6\">\n <slot name=\"main\">\n <!-- Main content slot -->\n </slot>\n </main>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Dialog, DialogPanel, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { Bars3Icon, XMarkIcon } from '@heroicons/vue/24/outline';\n\ndefineProps({\n isWideSidebar: {\n type: Boolean,\n default: false\n }\n});\n\nconst sidebarOpen = ref(false);\n\nconst closeSidebar = () => {\n sidebarOpen.value = false;\n};\n\nconst openSidebar = () => {\n sidebarOpen.value = true;\n};\n</script>\n\n<style scoped></style>\n"],"names":["sidebarOpen","ref","closeSidebar","openSidebar","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","TransitionRoot","Dialog","TransitionChild","_cache","_createElementVNode","_hoisted_2","DialogPanel","_hoisted_3","XMarkIcon","_hoisted_4","_hoisted_5","_renderSlot","_ctx","_hoisted_6","_hoisted_7","_hoisted_8","_normalizeClass","__props","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","Bars3Icon","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16"],"mappings":"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"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as d, computed as a, createElementBlock as m, openBlock as i, normalizeStyle as s, createBlock as c, createCommentVNode as h, unref as y } from "vue";
|
|
2
2
|
import f from "vue-echarts";
|
|
3
3
|
import { use as u } from "echarts/core";
|
|
4
4
|
import { CanvasRenderer as w } from "echarts/renderers";
|
|
5
|
-
import { LineChart as
|
|
6
|
-
import { GridComponent as
|
|
7
|
-
import { chartColors as
|
|
8
|
-
const M = /* @__PURE__ */
|
|
5
|
+
import { LineChart as x, BarChart as C } from "echarts/charts";
|
|
6
|
+
import { GridComponent as b } from "echarts/components";
|
|
7
|
+
import { chartColors as g, getAreaGradient as S } from "./charts/chartTheme.js";
|
|
8
|
+
const M = /* @__PURE__ */ d({
|
|
9
9
|
__name: "SparklineChart",
|
|
10
10
|
props: {
|
|
11
11
|
data: {},
|
|
12
12
|
type: { default: "line" },
|
|
13
13
|
height: { default: 40 },
|
|
14
14
|
width: { default: "100%" },
|
|
15
|
-
color: { default:
|
|
15
|
+
color: { default: g.primary[0] },
|
|
16
16
|
showEndpoint: { type: Boolean, default: !1 }
|
|
17
17
|
},
|
|
18
|
-
setup(
|
|
19
|
-
u([w, C, b
|
|
20
|
-
const t =
|
|
18
|
+
setup(o) {
|
|
19
|
+
u([w, x, C, b]);
|
|
20
|
+
const t = o, n = a(() => ({
|
|
21
21
|
height: `${t.height}px`,
|
|
22
22
|
width: typeof t.width == "number" ? `${t.width}px` : t.width
|
|
23
|
-
})), l =
|
|
24
|
-
const
|
|
23
|
+
})), l = a(() => {
|
|
24
|
+
const r = t.type === "area", e = t.type === "bar";
|
|
25
25
|
return {
|
|
26
26
|
grid: {
|
|
27
27
|
left: 0,
|
|
@@ -51,7 +51,7 @@ const M = /* @__PURE__ */ s({
|
|
|
51
51
|
width: 2,
|
|
52
52
|
color: t.color
|
|
53
53
|
},
|
|
54
|
-
areaStyle:
|
|
54
|
+
areaStyle: r ? {
|
|
55
55
|
color: S(t.color)
|
|
56
56
|
} : void 0,
|
|
57
57
|
itemStyle: {
|
|
@@ -61,18 +61,18 @@ const M = /* @__PURE__ */ s({
|
|
|
61
61
|
}]
|
|
62
62
|
};
|
|
63
63
|
});
|
|
64
|
-
return (
|
|
65
|
-
style:
|
|
64
|
+
return (r, e) => (i(), m("div", {
|
|
65
|
+
style: s(n.value)
|
|
66
66
|
}, [
|
|
67
|
-
o.data.length > 0 ? (
|
|
67
|
+
o.data.length > 0 ? (i(), c(y(f), {
|
|
68
68
|
key: 0,
|
|
69
69
|
option: l.value,
|
|
70
70
|
autoresize: !0
|
|
71
|
-
}, null, 8, ["option"])) :
|
|
71
|
+
}, null, 8, ["option"])) : h("", !0)
|
|
72
72
|
], 4));
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
export {
|
|
76
76
|
M as _
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=SparklineChart.vue_vue_type_script_setup_true_lang-
|
|
78
|
+
//# sourceMappingURL=SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparklineChart.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js","sources":["../src/components/charts/SparklineChart.vue"],"sourcesContent":["<!--\n @component SparklineChart\n @description Mini inline sparkline chart.\n \n A compact chart for displaying trends in small spaces,\n like table cells or stat cards.\n \n @props\n - data (array, required): Array of numeric values\n - type (string, optional): Chart type - 'line' | 'bar' | 'area'\n - height (number, optional): Chart height in pixels\n - width (number|string, optional): Chart width\n - color (string, optional): Primary chart color\n - showEndpoint (boolean, optional): Show endpoint marker\n \n @example\n <SparklineChart\n :data=\"[10, 25, 15, 30, 20, 35]\"\n type=\"area\"\n :height=\"40\"\n color=\"#10b981\"\n />\n-->\n<template>\n <div :style=\"containerStyle\">\n <VChart\n v-if=\"data.length > 0\"\n :option=\"chartOption\"\n :autoresize=\"true\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport VChart from 'vue-echarts';\nimport { use } from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { LineChart, BarChart } from 'echarts/charts';\nimport { GridComponent } from 'echarts/components';\nimport { chartColors, getAreaGradient } from './chartTheme';\nimport type { EChartsOption } from 'echarts';\n\nuse([CanvasRenderer, LineChart, BarChart, GridComponent]);\n\ninterface Props {\n data: number[];\n type?: 'line' | 'bar' | 'area';\n height?: number;\n width?: number | string;\n color?: string;\n showEndpoint?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n type: 'line',\n height: 40,\n width: '100%',\n color: chartColors.primary[0],\n showEndpoint: false,\n});\n\nconst containerStyle = computed(() => ({\n height: `${props.height}px`,\n width: typeof props.width === 'number' ? `${props.width}px` : props.width,\n}));\n\nconst chartOption = computed<EChartsOption>(() => {\n const isArea = props.type === 'area';\n const isBar = props.type === 'bar';\n\n return {\n grid: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n xAxis: {\n type: 'category',\n show: false,\n data: props.data.map((_, i) => i),\n },\n yAxis: {\n type: 'value',\n show: false,\n min: 'dataMin',\n max: 'dataMax',\n },\n series: [{\n type: isBar ? 'bar' : 'line',\n data: props.data,\n smooth: !isBar,\n symbol: props.showEndpoint ? 'circle' : 'none',\n symbolSize: props.showEndpoint ? 6 : 0,\n showSymbol: props.showEndpoint,\n lineStyle: isBar ? undefined : {\n width: 2,\n color: props.color,\n },\n areaStyle: isArea ? {\n color: getAreaGradient(props.color),\n } : undefined,\n itemStyle: {\n color: props.color,\n },\n barWidth: '60%',\n }],\n };\n});\n</script>\n\n"],"names":["use","CanvasRenderer","LineChart","BarChart","GridComponent","props","__props","containerStyle","computed","chartOption","isArea","isBar","_","i","getAreaGradient","_createElementBlock","_createBlock","_unref","VChart"],"mappings":";;;;;;;;;;;;;;;;;;AA2CA,IAAAA,EAAI,CAACC,GAAgBC,GAAWC,GAAUC,CAAa,CAAC;AAWxD,UAAMC,IAAQC,GAQRC,IAAiBC,EAAS,OAAO;AAAA,MACrC,QAAQ,GAAGH,EAAM,MAAM;AAAA,MACvB,OAAO,OAAOA,EAAM,SAAU,WAAW,GAAGA,EAAM,KAAK,OAAOA,EAAM;AAAA,IAAA,EACpE,GAEII,IAAcD,EAAwB,MAAM;AAChD,YAAME,IAASL,EAAM,SAAS,QACxBM,IAAQN,EAAM,SAAS;AAE7B,aAAO;AAAA,QACL,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,OAAO;AAAA,UACP,KAAK;AAAA,UACL,QAAQ;AAAA,QAAA;AAAA,QAEV,OAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAMA,EAAM,KAAK,IAAI,CAACO,GAAGC,MAAMA,CAAC;AAAA,QAAA;AAAA,QAElC,OAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,UACN,KAAK;AAAA,UACL,KAAK;AAAA,QAAA;AAAA,QAEP,QAAQ,CAAC;AAAA,UACP,MAAMF,IAAQ,QAAQ;AAAA,UACtB,MAAMN,EAAM;AAAA,UACZ,QAAQ,CAACM;AAAA,UACT,QAAQN,EAAM,eAAe,WAAW;AAAA,UACxC,YAAYA,EAAM,eAAe,IAAI;AAAA,UACrC,YAAYA,EAAM;AAAA,UAClB,WAAWM,IAAQ,SAAY;AAAA,YAC7B,OAAO;AAAA,YACP,OAAON,EAAM;AAAA,UAAA;AAAA,UAEf,WAAWK,IAAS;AAAA,YAClB,OAAOI,EAAgBT,EAAM,KAAK;AAAA,UAAA,IAChC;AAAA,UACJ,WAAW;AAAA,YACT,OAAOA,EAAM;AAAA,UAAA;AAAA,UAEf,UAAU;AAAA,QAAA,CACX;AAAA,MAAA;AAAA,IAEL,CAAC;2BArFCU,EAMM,OAAA;AAAA,MANA,SAAOR,EAAA,KAAc;AAAA,IAAA;MAEjBD,EAAA,KAAK,SAAM,UADnBU,EAIEC,EAAAC,CAAA,GAAA;AAAA;QAFC,QAAQT,EAAA;AAAA,QACR,YAAY;AAAA,MAAA;;;;"}
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
import { createElementBlock as l, openBlock as
|
|
2
|
-
import { _ } from "./SparklineChart.vue_vue_type_script_setup_true_lang-
|
|
3
|
-
import { chartColors as
|
|
4
|
-
function
|
|
5
|
-
return
|
|
1
|
+
import { createElementBlock as l, openBlock as t, createElementVNode as s, defineComponent as x, computed as n, createCommentVNode as r, createBlock as u, resolveDynamicComponent as h, toDisplayString as c, normalizeClass as f, createVNode as k } from "vue";
|
|
2
|
+
import { _ as w } from "./SparklineChart.vue_vue_type_script_setup_true_lang-BlNk5ZqM.js";
|
|
3
|
+
import { chartColors as d } from "./charts/chartTheme.js";
|
|
4
|
+
function y(e, a) {
|
|
5
|
+
return t(), l("svg", {
|
|
6
6
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7
7
|
viewBox: "0 0 20 20",
|
|
8
8
|
fill: "currentColor",
|
|
9
9
|
"aria-hidden": "true",
|
|
10
10
|
"data-slot": "icon"
|
|
11
11
|
}, [
|
|
12
|
-
|
|
12
|
+
s("path", {
|
|
13
13
|
"fill-rule": "evenodd",
|
|
14
14
|
d: "M10 3a.75.75 0 0 1 .75.75v10.638l3.96-4.158a.75.75 0 1 1 1.08 1.04l-5.25 5.5a.75.75 0 0 1-1.08 0l-5.25-5.5a.75.75 0 1 1 1.08-1.04l3.96 4.158V3.75A.75.75 0 0 1 10 3Z",
|
|
15
15
|
"clip-rule": "evenodd"
|
|
16
16
|
})
|
|
17
17
|
]);
|
|
18
18
|
}
|
|
19
|
-
function
|
|
20
|
-
return
|
|
19
|
+
function p(e, a) {
|
|
20
|
+
return t(), l("svg", {
|
|
21
21
|
xmlns: "http://www.w3.org/2000/svg",
|
|
22
22
|
viewBox: "0 0 20 20",
|
|
23
23
|
fill: "currentColor",
|
|
24
24
|
"aria-hidden": "true",
|
|
25
25
|
"data-slot": "icon"
|
|
26
26
|
}, [
|
|
27
|
-
|
|
27
|
+
s("path", {
|
|
28
28
|
"fill-rule": "evenodd",
|
|
29
29
|
d: "M10 17a.75.75 0 0 1-.75-.75V5.612L5.29 9.77a.75.75 0 0 1-1.08-1.04l5.25-5.5a.75.75 0 0 1 1.08 0l5.25 5.5a.75.75 0 1 1-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0 1 10 17Z",
|
|
30
30
|
"clip-rule": "evenodd"
|
|
31
31
|
})
|
|
32
32
|
]);
|
|
33
33
|
}
|
|
34
|
-
function b(
|
|
35
|
-
return
|
|
34
|
+
function b(e, a) {
|
|
35
|
+
return t(), l("svg", {
|
|
36
36
|
xmlns: "http://www.w3.org/2000/svg",
|
|
37
37
|
viewBox: "0 0 20 20",
|
|
38
38
|
fill: "currentColor",
|
|
39
39
|
"aria-hidden": "true",
|
|
40
40
|
"data-slot": "icon"
|
|
41
41
|
}, [
|
|
42
|
-
|
|
42
|
+
s("path", {
|
|
43
43
|
"fill-rule": "evenodd",
|
|
44
44
|
d: "M4 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H4.75A.75.75 0 0 1 4 10Z",
|
|
45
45
|
"clip-rule": "evenodd"
|
|
46
46
|
})
|
|
47
47
|
]);
|
|
48
48
|
}
|
|
49
|
-
const
|
|
49
|
+
const _ = { class: "sl-bg-white dark:sl-bg-slate-800 sl-rounded-xl sl-shadow-sm sl-ring-1 sl-ring-gray-900/5 dark:sl-ring-slate-700 sl-p-6" }, C = { class: "sl-flex sl-items-center sl-justify-between" }, B = { class: "sl-flex sl-items-center sl-gap-3" }, D = {
|
|
50
50
|
key: 0,
|
|
51
51
|
class: "sl-flex sl-items-center sl-justify-center sl-w-10 sl-h-10 sl-rounded-lg sl-bg-stachelock-50 dark:sl-bg-stachelock-900/30"
|
|
52
|
-
},
|
|
52
|
+
}, V = { class: "sl-text-sm sl-font-medium sl-text-gray-500 dark:sl-text-slate-400" }, L = { class: "sl-mt-4" }, M = {
|
|
53
53
|
key: 0,
|
|
54
54
|
class: "sl-text-3xl sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-tabular-nums"
|
|
55
|
-
},
|
|
55
|
+
}, N = {
|
|
56
56
|
key: 1,
|
|
57
57
|
class: "sl-h-9 sl-w-24 sl-bg-gray-200 dark:sl-bg-slate-700 sl-rounded sl-animate-pulse"
|
|
58
|
-
},
|
|
58
|
+
}, A = {
|
|
59
59
|
key: 0,
|
|
60
60
|
class: "sl-mt-4"
|
|
61
|
-
},
|
|
61
|
+
}, Z = {
|
|
62
62
|
key: 1,
|
|
63
63
|
class: "sl-mt-2 sl-text-xs sl-text-gray-500 dark:sl-text-slate-400"
|
|
64
|
-
}, H = /* @__PURE__ */
|
|
64
|
+
}, H = /* @__PURE__ */ x({
|
|
65
65
|
__name: "StatCard",
|
|
66
66
|
props: {
|
|
67
67
|
title: {},
|
|
@@ -72,40 +72,40 @@ const C = { class: "sl-bg-white dark:sl-bg-slate-800 sl-rounded-xl sl-shadow-sm
|
|
|
72
72
|
icon: {},
|
|
73
73
|
loading: { type: Boolean, default: !1 }
|
|
74
74
|
},
|
|
75
|
-
setup(
|
|
76
|
-
const a =
|
|
77
|
-
return (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
e.icon ? (
|
|
81
|
-
(
|
|
82
|
-
])) :
|
|
83
|
-
|
|
75
|
+
setup(e) {
|
|
76
|
+
const a = e, o = n(() => a.change !== void 0 && a.change > 0), i = n(() => a.change !== void 0 && a.change < 0), g = n(() => o.value ? "sl-text-green-600 dark:sl-text-green-400" : i.value ? "sl-text-red-600 dark:sl-text-red-400" : "sl-text-gray-500 dark:sl-text-slate-400"), v = n(() => o.value ? p : i.value ? y : b), m = n(() => o.value ? d.success : i.value ? d.danger : d.primary[0]);
|
|
77
|
+
return ($, j) => (t(), l("div", _, [
|
|
78
|
+
s("div", C, [
|
|
79
|
+
s("div", B, [
|
|
80
|
+
e.icon ? (t(), l("div", D, [
|
|
81
|
+
(t(), u(h(e.icon), { class: "sl-h-5 sl-w-5 sl-text-stachelock-600 dark:sl-text-stachelock-400" }))
|
|
82
|
+
])) : r("", !0),
|
|
83
|
+
s("p", V, c(e.title), 1)
|
|
84
84
|
]),
|
|
85
|
-
e.change !== void 0 ? (
|
|
85
|
+
e.change !== void 0 ? (t(), l("div", {
|
|
86
86
|
key: 0,
|
|
87
|
-
class:
|
|
87
|
+
class: f(["sl-flex sl-items-center sl-gap-1 sl-text-sm sl-font-medium", g.value])
|
|
88
88
|
}, [
|
|
89
|
-
(
|
|
90
|
-
|
|
91
|
-
], 2)) :
|
|
89
|
+
(t(), u(h(v.value), { class: "sl-h-4 sl-w-4" })),
|
|
90
|
+
s("span", null, c(Math.abs(e.change)) + "%", 1)
|
|
91
|
+
], 2)) : r("", !0)
|
|
92
92
|
]),
|
|
93
|
-
|
|
94
|
-
e.loading ? (
|
|
93
|
+
s("div", L, [
|
|
94
|
+
e.loading ? (t(), l("div", N)) : (t(), l("p", M, c(e.value), 1))
|
|
95
95
|
]),
|
|
96
|
-
e.sparklineData && e.sparklineData.length > 0 ? (
|
|
97
|
-
|
|
96
|
+
e.sparklineData && e.sparklineData.length > 0 ? (t(), l("div", A, [
|
|
97
|
+
k(w, {
|
|
98
98
|
data: e.sparklineData,
|
|
99
99
|
type: "area",
|
|
100
100
|
height: 40,
|
|
101
|
-
color:
|
|
101
|
+
color: m.value
|
|
102
102
|
}, null, 8, ["data", "color"])
|
|
103
|
-
])) :
|
|
104
|
-
e.changeLabel ? (
|
|
103
|
+
])) : r("", !0),
|
|
104
|
+
e.changeLabel ? (t(), l("p", Z, c(e.changeLabel), 1)) : r("", !0)
|
|
105
105
|
]));
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
108
|
export {
|
|
109
109
|
H as _
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=StatCard.vue_vue_type_script_setup_true_lang-
|
|
111
|
+
//# sourceMappingURL=StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatCard.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"StatCard.vue_vue_type_script_setup_true_lang-BfFupfmC.js","sources":["../node_modules/@heroicons/vue/20/solid/esm/ArrowDownIcon.js","../node_modules/@heroicons/vue/20/solid/esm/ArrowUpIcon.js","../node_modules/@heroicons/vue/20/solid/esm/MinusIcon.js","../src/components/charts/StatCard.vue"],"sourcesContent":["import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M10 3a.75.75 0 0 1 .75.75v10.638l3.96-4.158a.75.75 0 1 1 1.08 1.04l-5.25 5.5a.75.75 0 0 1-1.08 0l-5.25-5.5a.75.75 0 1 1 1.08-1.04l3.96 4.158V3.75A.75.75 0 0 1 10 3Z\",\n \"clip-rule\": \"evenodd\"\n })\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M10 17a.75.75 0 0 1-.75-.75V5.612L5.29 9.77a.75.75 0 0 1-1.08-1.04l5.25-5.5a.75.75 0 0 1 1.08 0l5.25 5.5a.75.75 0 1 1-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0 1 10 17Z\",\n \"clip-rule\": \"evenodd\"\n })\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M4 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H4.75A.75.75 0 0 1 4 10Z\",\n \"clip-rule\": \"evenodd\"\n })\n ]))\n}","<!--\n @component StatCard\n @description Stat display card with optional trend sparkline.\n \n A card component for displaying key metrics with optional\n trend indicator and sparkline chart.\n \n @props\n - title (string, required): Stat label\n - value (string|number, required): Main stat value\n - change (number, optional): Percentage change\n - changeLabel (string, optional): Change context (e.g., \"vs last month\")\n - sparklineData (array, optional): Data for sparkline\n - icon (Component, optional): Icon component\n - loading (boolean, optional): Loading state\n \n @example\n <StatCard\n title=\"Total Revenue\"\n value=\"$45,231\"\n :change=\"12.5\"\n change-label=\"vs last month\"\n :sparkline-data=\"[10, 15, 12, 20, 18, 25, 22]\"\n />\n-->\n<template>\n <div class=\"sl-bg-white dark:sl-bg-slate-800 sl-rounded-xl sl-shadow-sm sl-ring-1 sl-ring-gray-900/5 dark:sl-ring-slate-700 sl-p-6\">\n <!-- Header -->\n <div class=\"sl-flex sl-items-center sl-justify-between\">\n <div class=\"sl-flex sl-items-center sl-gap-3\">\n <div \n v-if=\"icon\" \n class=\"sl-flex sl-items-center sl-justify-center sl-w-10 sl-h-10 sl-rounded-lg sl-bg-stachelock-50 dark:sl-bg-stachelock-900/30\"\n >\n <component \n :is=\"icon\" \n class=\"sl-h-5 sl-w-5 sl-text-stachelock-600 dark:sl-text-stachelock-400\" \n />\n </div>\n <p class=\"sl-text-sm sl-font-medium sl-text-gray-500 dark:sl-text-slate-400\">\n {{ title }}\n </p>\n </div>\n \n <!-- Change indicator -->\n <div \n v-if=\"change !== undefined\" \n class=\"sl-flex sl-items-center sl-gap-1 sl-text-sm sl-font-medium\"\n :class=\"changeClasses\"\n >\n <component :is=\"changeIcon\" class=\"sl-h-4 sl-w-4\" />\n <span>{{ Math.abs(change) }}%</span>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"sl-mt-4\">\n <p \n v-if=\"!loading\" \n class=\"sl-text-3xl sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-tabular-nums\"\n >\n {{ value }}\n </p>\n <div v-else class=\"sl-h-9 sl-w-24 sl-bg-gray-200 dark:sl-bg-slate-700 sl-rounded sl-animate-pulse\" />\n </div>\n\n <!-- Sparkline -->\n <div v-if=\"sparklineData && sparklineData.length > 0\" class=\"sl-mt-4\">\n <SparklineChart\n :data=\"sparklineData\"\n type=\"area\"\n :height=\"40\"\n :color=\"sparklineColor\"\n />\n </div>\n\n <!-- Change label -->\n <p \n v-if=\"changeLabel\" \n class=\"sl-mt-2 sl-text-xs sl-text-gray-500 dark:sl-text-slate-400\"\n >\n {{ changeLabel }}\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue';\nimport { ArrowUpIcon, ArrowDownIcon, MinusIcon } from '@heroicons/vue/20/solid';\nimport SparklineChart from './SparklineChart.vue';\nimport { chartColors } from './chartTheme';\n\ninterface Props {\n title: string;\n value: string | number;\n change?: number;\n changeLabel?: string;\n sparklineData?: number[];\n icon?: Component;\n loading?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n loading: false,\n});\n\nconst isPositive = computed(() => props.change !== undefined && props.change > 0);\nconst isNegative = computed(() => props.change !== undefined && props.change < 0);\n\nconst changeClasses = computed(() => {\n if (isPositive.value) return 'sl-text-green-600 dark:sl-text-green-400';\n if (isNegative.value) return 'sl-text-red-600 dark:sl-text-red-400';\n return 'sl-text-gray-500 dark:sl-text-slate-400';\n});\n\nconst changeIcon = computed(() => {\n if (isPositive.value) return ArrowUpIcon;\n if (isNegative.value) return ArrowDownIcon;\n return MinusIcon;\n});\n\nconst sparklineColor = computed(() => {\n if (isPositive.value) return chartColors.success;\n if (isNegative.value) return chartColors.danger;\n return chartColors.primary[0];\n});\n</script>\n\n"],"names":["render","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","props","__props","isPositive","computed","isNegative","changeClasses","changeIcon","ArrowUpIcon","ArrowDownIcon","MinusIcon","sparklineColor","chartColors","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createBlock","_resolveDynamicComponent","_hoisted_5","_toDisplayString","_normalizeClass","_hoisted_6","_hoisted_8","_hoisted_7","_hoisted_9","_createVNode","SparklineChart","_hoisted_10"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|