@stachelock/ui 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +26 -18
- 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":"NavigationItem.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"NavigationItem.vue_vue_type_script_setup_true_lang-C8aX-84Q.js","sources":["../src/components/layouts/NavigationItem.vue"],"sourcesContent":["<template>\n <li>\n <a :href=\"href\" :class=\"[\n 'sl-group sl-flex sl-gap-x-3 sl-rounded-md sl-p-2 sl-text-sm sl-leading-6 sl-font-semibold',\n isActive \n ? 'sl-bg-stachelock-400'\n : 'hover:sl-bg-white/10'\n ]\"\n :style=\"{\n color: isActive \n ? '#fef2f2' \n : '#fca5a5',\n backgroundColor: isActive \n ? '#f87171' \n : 'transparent'\n }\">\n <component \n :is=\"icon\" \n :class=\"[\n 'sl-h-6 sl-w-6 sl-shrink-0'\n ]\"\n :style=\"{\n color: isActive \n ? '#fef2f2' \n : '#fca5a5'\n }\" \n aria-hidden=\"true\" \n />\n <span v-if=\"!iconOnly\" class=\"sl-truncate\">{{ name }}</span>\n <span v-if=\"badge\" :class=\"[\n 'sl-ml-auto sl-inline-flex sl-items-center sl-rounded-md sl-px-2 sl-py-1 sl-text-xs sl-font-medium',\n badgeTheme === 'primary' ? 'sl-bg-stachelock-400 sl-text-white' : '',\n badgeTheme === 'secondary' ? 'sl-bg-gray-400 sl-text-white' : '',\n badgeTheme === 'success' ? 'sl-bg-green-400 sl-text-white' : '',\n badgeTheme === 'warning' ? 'sl-bg-yellow-400 sl-text-white' : '',\n badgeTheme === 'danger' ? 'sl-bg-red-400 sl-text-white' : ''\n ]\">\n {{ badge }}\n </span>\n </a>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Component } from 'vue';\n\ndefineProps<{\n name: string;\n href: string;\n icon: Component;\n isActive?: boolean;\n iconOnly?: boolean;\n badge?: string;\n badgeTheme?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\n}>();\n</script>\n\n<style scoped>\n</style>\n"],"names":["_createElementBlock","_createElementVNode","__props","_normalizeClass","_normalizeStyle","_openBlock","_createBlock","_resolveDynamicComponent","_hoisted_2","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;2BACEA,EAuCK,MAAA,MAAA;AAAA,MAtCHC,EAqCI,KAAA;AAAA,QArCA,MAAMC,EAAA;AAAA,QAAa,OAAKC,EAAA;AAAA;UAAiHD,EAAA;;QAM1I,OAAKE,EAAA;AAAA,iBAAmBF,EAAA;2BAAiFA,EAAA;;;SAQ1GG,KAAAC,EAWEC,EAVKL,EAAA,IAAI,GAAA;AAAA,UACR,OAAKC,EAAE;AAAA;WAEP;AAAA,UACA,OAAKC,EAAA;AAAA,mBAAqBF,EAAA;;UAK3B,eAAY;AAAA,QAAA;QAEDA,EAAA,6BAAbF,EAA4D,QAA5DQ,GAA4DC,EAAdP,EAAA,IAAI,GAAA,CAAA;AAAA,QACtCA,EAAA,cAAZF,EASO,QAAA;AAAA;UATa,OAAKG,EAAA;AAAA;YAAyHD,EAAA,eAAU,YAAA,uCAAA;AAAA,YAAoEA,EAAA,eAAU,cAAA,iCAAA;AAAA,YAAgEA,EAAA,eAAU,YAAA,kCAAA;AAAA,YAA+DA,EAAA,eAAU,YAAA,mCAAA;AAAA,YAAgEA,EAAA,eAAU,WAAA,gCAAA;AAAA,UAAA;aAQlcA,EAAA,KAAK,GAAA,CAAA;;;;;"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { defineComponent as U, computed as e, createBlock as v, openBlock as r, unref as y, withCtx as k, createElementVNode as o, normalizeStyle as w, normalizeClass as n, createVNode as C, createElementBlock as c, createCommentVNode as d, resolveDynamicComponent as Z, toDisplayString as h, Fragment as _, renderList as tt, withModifiers as $ } from "vue";
|
|
2
|
+
import { r as g, a as st } from "./InformationCircleIcon-B322GNIt.js";
|
|
3
|
+
import { r as z } from "./ExclamationCircleIcon-DjxYk45_.js";
|
|
4
|
+
import { r as et } from "./ExclamationTriangleIcon-BNKYmV_J.js";
|
|
5
|
+
import { r as lt } from "./XMarkIcon-DNvCkiOy.js";
|
|
6
|
+
import { S as it, h as at } from "./transition-_rPfnoET.js";
|
|
7
|
+
const nt = { class: "sl-flex sl-items-start" }, rt = {
|
|
8
|
+
key: 1,
|
|
9
|
+
class: "sl-mt-3 sl-flex sl-gap-2"
|
|
10
|
+
}, ot = ["onClick"], yt = /* @__PURE__ */ U({
|
|
11
|
+
__name: "NotificationToast",
|
|
12
|
+
props: {
|
|
13
|
+
notification: {}
|
|
14
|
+
},
|
|
15
|
+
emits: ["close", "action"],
|
|
16
|
+
setup(i, { emit: S }) {
|
|
17
|
+
const s = i, m = S, B = () => {
|
|
18
|
+
m("close", s.notification);
|
|
19
|
+
}, I = (t) => {
|
|
20
|
+
m("action", s.notification, t);
|
|
21
|
+
}, M = () => {
|
|
22
|
+
s.notification.isCardMode && s.notification.cardStackIndex !== 0 && m("action", s.notification, { label: "bringToFront", action: "callback" });
|
|
23
|
+
}, A = () => {
|
|
24
|
+
}, O = e(() => {
|
|
25
|
+
const t = {
|
|
26
|
+
primary: "sl-bg-primary-600 dark:sl-bg-primary-700 sl-text-white",
|
|
27
|
+
secondary: "sl-bg-gray-600 dark:sl-bg-gray-700 sl-text-white",
|
|
28
|
+
dark: "sl-bg-gray-800 dark:sl-bg-gray-900 sl-text-white",
|
|
29
|
+
light: "sl-bg-white dark:sl-bg-gray-800 sl-text-gray-800 dark:sl-text-gray-100 sl-border sl-border-gray-200 dark:sl-border-gray-700",
|
|
30
|
+
warning: "sl-bg-amber-500 dark:sl-bg-amber-600 sl-text-white",
|
|
31
|
+
danger: "sl-bg-red-500 dark:sl-bg-red-600 sl-text-white",
|
|
32
|
+
success: "sl-bg-emerald-500 dark:sl-bg-emerald-600 sl-text-white",
|
|
33
|
+
info: "sl-bg-blue-500 dark:sl-bg-blue-600 sl-text-white",
|
|
34
|
+
ghost: "sl-bg-white dark:sl-bg-gray-800 sl-text-gray-800 dark:sl-text-gray-100 sl-border sl-border-gray-200 dark:sl-border-gray-700"
|
|
35
|
+
};
|
|
36
|
+
return t[s.notification.theme] || t.primary;
|
|
37
|
+
}), T = e(() => {
|
|
38
|
+
const t = {
|
|
39
|
+
default: "sl-w-full sl-max-w-sm",
|
|
40
|
+
compact: "sl-w-full sl-max-w-xs",
|
|
41
|
+
expanded: "sl-w-full sl-max-w-md"
|
|
42
|
+
};
|
|
43
|
+
return t[s.notification.variant] || t.default;
|
|
44
|
+
}), N = e(() => s.notification.priority === "urgent" ? "sl-animate-pulse" : ""), F = e(() => {
|
|
45
|
+
const t = "sl-absolute sl-top-0 sl-left-0 sl-right-0 sl-h-1";
|
|
46
|
+
return s.notification.priority === "urgent" ? `${t} sl-bg-red-400 dark:sl-bg-red-500` : s.notification.priority === "high" ? `${t} sl-bg-amber-400 dark:sl-bg-amber-500` : "";
|
|
47
|
+
}), L = e(() => s.notification.isCardMode ? "sl-cursor-pointer hover:sl-scale-[1.02] sl-transition-transform" : ""), V = e(() => {
|
|
48
|
+
const t = {
|
|
49
|
+
maxWidth: `${s.notification.maxWidth || 384}px`,
|
|
50
|
+
position: "relative"
|
|
51
|
+
};
|
|
52
|
+
return s.notification.isCardMode && (t.transform = `translate(${s.notification.cardOffsetX || 0}px, ${s.notification.cardOffsetY || 0}px)`, t.zIndex = s.notification.zIndex || 1), t;
|
|
53
|
+
}), p = e(() => {
|
|
54
|
+
const t = s.notification.theme;
|
|
55
|
+
return ["light", "ghost"].includes(t) ? "sl-text-gray-800 dark:sl-text-gray-100" : "sl-text-white";
|
|
56
|
+
}), D = e(() => {
|
|
57
|
+
const t = s.notification.theme;
|
|
58
|
+
return ["light", "ghost"].includes(t) ? "sl-text-gray-500 dark:sl-text-gray-400" : "sl-text-white/90";
|
|
59
|
+
}), E = e(() => {
|
|
60
|
+
const t = {
|
|
61
|
+
primary: "focus:sl-ring-primary-400 dark:focus:sl-ring-primary-500",
|
|
62
|
+
secondary: "focus:sl-ring-gray-400 dark:focus:sl-ring-gray-500",
|
|
63
|
+
dark: "focus:sl-ring-gray-400 dark:focus:sl-ring-gray-500",
|
|
64
|
+
light: "focus:sl-ring-gray-300 dark:focus:sl-ring-gray-600",
|
|
65
|
+
warning: "focus:sl-ring-amber-300 dark:focus:sl-ring-amber-500",
|
|
66
|
+
danger: "focus:sl-ring-red-300 dark:focus:sl-ring-red-500",
|
|
67
|
+
success: "focus:sl-ring-emerald-300 dark:focus:sl-ring-emerald-500",
|
|
68
|
+
info: "focus:sl-ring-blue-300 dark:focus:sl-ring-blue-500",
|
|
69
|
+
ghost: "focus:sl-ring-gray-300 dark:focus:sl-ring-gray-600"
|
|
70
|
+
};
|
|
71
|
+
return t[s.notification.theme] || t.primary;
|
|
72
|
+
}), W = e(() => {
|
|
73
|
+
const t = s.notification.theme, l = "sl-ml-4 sl-inline-flex sl-rounded-md sl-opacity-70 hover:sl-opacity-100 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-2 sl-transition-opacity", a = ["light", "ghost"].includes(t) ? "sl-text-gray-400 dark:sl-text-gray-500 hover:sl-text-gray-500 dark:hover:sl-text-gray-400" : "sl-text-white/70 hover:sl-text-white";
|
|
74
|
+
return `${l} ${a}`;
|
|
75
|
+
}), x = e(() => {
|
|
76
|
+
if (s.notification.icon)
|
|
77
|
+
return s.notification.icon;
|
|
78
|
+
const t = s.notification.theme, l = {
|
|
79
|
+
primary: g,
|
|
80
|
+
secondary: g,
|
|
81
|
+
dark: z,
|
|
82
|
+
light: g,
|
|
83
|
+
warning: et,
|
|
84
|
+
danger: z,
|
|
85
|
+
success: st,
|
|
86
|
+
info: g,
|
|
87
|
+
ghost: g
|
|
88
|
+
};
|
|
89
|
+
return l[t] || l.primary;
|
|
90
|
+
}), R = e(() => {
|
|
91
|
+
const t = {
|
|
92
|
+
compact: "sl-h-5 sl-w-5",
|
|
93
|
+
default: "sl-h-6 sl-w-6",
|
|
94
|
+
expanded: "sl-h-7 sl-w-7"
|
|
95
|
+
};
|
|
96
|
+
return t[s.notification.variant] || t.default;
|
|
97
|
+
}), X = e(() => {
|
|
98
|
+
const t = {
|
|
99
|
+
compact: "sl-text-xs sl-font-medium",
|
|
100
|
+
default: "sl-text-sm sl-font-medium",
|
|
101
|
+
expanded: "sl-text-base sl-font-semibold"
|
|
102
|
+
};
|
|
103
|
+
return t[s.notification.variant] || t.default;
|
|
104
|
+
}), Y = e(() => {
|
|
105
|
+
const t = {
|
|
106
|
+
compact: "sl-mt-0.5 sl-text-xs",
|
|
107
|
+
default: "sl-mt-1 sl-text-sm",
|
|
108
|
+
expanded: "sl-mt-2 sl-text-sm"
|
|
109
|
+
};
|
|
110
|
+
return t[s.notification.variant] || t.default;
|
|
111
|
+
}), j = e(() => {
|
|
112
|
+
const t = {
|
|
113
|
+
compact: "sl-p-3",
|
|
114
|
+
default: "sl-p-4",
|
|
115
|
+
expanded: "sl-p-5"
|
|
116
|
+
};
|
|
117
|
+
return t[s.notification.variant] || t.default;
|
|
118
|
+
}), q = e(() => {
|
|
119
|
+
const t = {
|
|
120
|
+
compact: "sl-ml-2 sl-w-0 sl-flex-1",
|
|
121
|
+
default: "sl-ml-3 sl-w-0 sl-flex-1 sl-pt-0.5",
|
|
122
|
+
expanded: "sl-ml-4 sl-w-0 sl-flex-1 sl-pt-0.5"
|
|
123
|
+
};
|
|
124
|
+
return t[s.notification.variant] || t.default;
|
|
125
|
+
}), G = (t) => {
|
|
126
|
+
const l = "sl-rounded sl-px-2 sl-py-1 sl-text-xs sl-font-medium sl-transition-colors focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-1", a = s.notification.theme, f = ["light", "ghost"].includes(a), u = {
|
|
127
|
+
primary: {
|
|
128
|
+
light: "sl-bg-primary-100 sl-text-primary-700 hover:sl-bg-primary-200 dark:sl-bg-primary-800 dark:sl-text-primary-200 dark:hover:sl-bg-primary-700",
|
|
129
|
+
dark: "sl-bg-white/20 sl-text-white hover:sl-bg-white/30"
|
|
130
|
+
},
|
|
131
|
+
secondary: {
|
|
132
|
+
light: "sl-bg-gray-100 sl-text-gray-700 hover:sl-bg-gray-200 dark:sl-bg-gray-700 dark:sl-text-gray-200 dark:hover:sl-bg-gray-600",
|
|
133
|
+
dark: "sl-bg-white/20 sl-text-white hover:sl-bg-white/30"
|
|
134
|
+
},
|
|
135
|
+
danger: {
|
|
136
|
+
light: "sl-bg-red-100 sl-text-red-700 hover:sl-bg-red-200 dark:sl-bg-red-900 dark:sl-text-red-200 dark:hover:sl-bg-red-800",
|
|
137
|
+
dark: "sl-bg-white/20 sl-text-white hover:sl-bg-white/30"
|
|
138
|
+
}
|
|
139
|
+
}, Q = t.theme || "secondary", b = u[Q] || u.secondary;
|
|
140
|
+
return `${l} ${f ? b.light : b.dark}`;
|
|
141
|
+
}, H = e(() => {
|
|
142
|
+
const t = s.notification.position;
|
|
143
|
+
return {
|
|
144
|
+
tr: "sl-items-end",
|
|
145
|
+
tl: "sl-items-start",
|
|
146
|
+
bl: "sl-items-start",
|
|
147
|
+
br: "sl-items-end",
|
|
148
|
+
tc: "sl-items-center",
|
|
149
|
+
bc: "sl-items-center"
|
|
150
|
+
}[t] || "sl-items-end";
|
|
151
|
+
}), J = e(() => {
|
|
152
|
+
const t = s.notification.position;
|
|
153
|
+
return {
|
|
154
|
+
tr: "sl-items-start",
|
|
155
|
+
tl: "sl-items-start",
|
|
156
|
+
bl: "sl-items-end",
|
|
157
|
+
br: "sl-items-end",
|
|
158
|
+
tc: "sl-items-start",
|
|
159
|
+
bc: "sl-items-end"
|
|
160
|
+
}[t] || "sl-items-end";
|
|
161
|
+
}), K = e(() => {
|
|
162
|
+
const t = s.notification.position, l = {
|
|
163
|
+
tr: "sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:sl-translate-x-4",
|
|
164
|
+
tl: "sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:-sl-translate-x-4",
|
|
165
|
+
br: "sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:sl-translate-x-4",
|
|
166
|
+
bl: "sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:-sl-translate-x-4",
|
|
167
|
+
tc: "-sl-translate-y-4 sl-opacity-0",
|
|
168
|
+
bc: "sl-translate-y-4 sl-opacity-0"
|
|
169
|
+
};
|
|
170
|
+
return l[t] || l.br;
|
|
171
|
+
}), P = e(() => {
|
|
172
|
+
const t = s.notification.position, l = s.notification.yOffset || 0, a = {
|
|
173
|
+
zIndex: 9999 + (s.notification.zIndex || 0)
|
|
174
|
+
};
|
|
175
|
+
return ["tl", "tr", "tc"].includes(t) ? a.marginTop = `${l}px` : a.marginBottom = `${l}px`, a;
|
|
176
|
+
});
|
|
177
|
+
return (t, l) => (r(), v(y(it), {
|
|
178
|
+
appear: "",
|
|
179
|
+
show: i.notification.isOpen,
|
|
180
|
+
as: "template",
|
|
181
|
+
onAfterLeave: A
|
|
182
|
+
}, {
|
|
183
|
+
default: k(() => [
|
|
184
|
+
o("div", {
|
|
185
|
+
"aria-live": "assertive",
|
|
186
|
+
class: n([
|
|
187
|
+
"sl-pointer-events-none sl-fixed sl-inset-0 sl-flex sl-px-4 sl-py-6 sm:sl-p-6",
|
|
188
|
+
J.value
|
|
189
|
+
]),
|
|
190
|
+
style: w(P.value)
|
|
191
|
+
}, [
|
|
192
|
+
o("div", {
|
|
193
|
+
class: n(["sl-flex sl-w-full sl-flex-col sl-items-center sl-space-y-4", H.value])
|
|
194
|
+
}, [
|
|
195
|
+
C(y(at), {
|
|
196
|
+
as: "template",
|
|
197
|
+
enter: "sl-duration-300 sl-ease-out sl-transform",
|
|
198
|
+
"enter-from": K.value,
|
|
199
|
+
"enter-to": "sl-translate-y-0 sl-opacity-100 sm:sl-translate-x-0",
|
|
200
|
+
leave: "sl-duration-200 sl-ease-in",
|
|
201
|
+
"leave-from": "sl-opacity-100",
|
|
202
|
+
"leave-to": "sl-opacity-0"
|
|
203
|
+
}, {
|
|
204
|
+
default: k(() => [
|
|
205
|
+
i.notification.isOpen ? (r(), c("div", {
|
|
206
|
+
key: 0,
|
|
207
|
+
class: n([
|
|
208
|
+
O.value,
|
|
209
|
+
T.value,
|
|
210
|
+
N.value,
|
|
211
|
+
L.value,
|
|
212
|
+
"sl-pointer-events-auto sl-overflow-hidden sl-rounded-lg sl-shadow-lg sl-ring-1 sl-ring-black/5 dark:sl-ring-white/10 sl-transition-all sl-duration-200"
|
|
213
|
+
]),
|
|
214
|
+
style: w(V.value),
|
|
215
|
+
onClick: M
|
|
216
|
+
}, [
|
|
217
|
+
o("div", {
|
|
218
|
+
class: n(j.value)
|
|
219
|
+
}, [
|
|
220
|
+
o("div", nt, [
|
|
221
|
+
x.value ? (r(), v(Z(x.value), {
|
|
222
|
+
key: 0,
|
|
223
|
+
class: n([R.value, D.value, "sl-flex-shrink-0"]),
|
|
224
|
+
"aria-hidden": "true"
|
|
225
|
+
}, null, 8, ["class"])) : d("", !0),
|
|
226
|
+
o("div", {
|
|
227
|
+
class: n(q.value)
|
|
228
|
+
}, [
|
|
229
|
+
o("p", {
|
|
230
|
+
class: n([X.value, p.value])
|
|
231
|
+
}, h(i.notification.title), 3),
|
|
232
|
+
i.notification.message ? (r(), c("p", {
|
|
233
|
+
key: 0,
|
|
234
|
+
class: n([Y.value, p.value, "sl-opacity-90"])
|
|
235
|
+
}, h(i.notification.message), 3)) : d("", !0),
|
|
236
|
+
i.notification.actions && i.notification.actions.length > 0 ? (r(), c("div", rt, [
|
|
237
|
+
(r(!0), c(_, null, tt(i.notification.actions, (a, f) => (r(), c("button", {
|
|
238
|
+
key: f,
|
|
239
|
+
type: "button",
|
|
240
|
+
class: n(G(a)),
|
|
241
|
+
onClick: $((u) => I(a), ["stop"])
|
|
242
|
+
}, h(a.label), 11, ot))), 128))
|
|
243
|
+
])) : d("", !0)
|
|
244
|
+
], 2),
|
|
245
|
+
i.notification.dismissible !== !1 ? (r(), c("button", {
|
|
246
|
+
key: 1,
|
|
247
|
+
type: "button",
|
|
248
|
+
onClick: $(B, ["stop"]),
|
|
249
|
+
class: n([W.value, E.value])
|
|
250
|
+
}, [
|
|
251
|
+
l[0] || (l[0] = o("span", { class: "sl-sr-only" }, "Close", -1)),
|
|
252
|
+
C(y(lt), {
|
|
253
|
+
class: "sl-h-5 sl-w-5",
|
|
254
|
+
"aria-hidden": "true"
|
|
255
|
+
})
|
|
256
|
+
], 2)) : d("", !0)
|
|
257
|
+
])
|
|
258
|
+
], 2),
|
|
259
|
+
i.notification.priority === "urgent" || i.notification.priority === "high" ? (r(), c("div", {
|
|
260
|
+
key: 0,
|
|
261
|
+
class: n(F.value)
|
|
262
|
+
}, null, 2)) : d("", !0)
|
|
263
|
+
], 6)) : d("", !0)
|
|
264
|
+
]),
|
|
265
|
+
_: 1
|
|
266
|
+
}, 8, ["enter-from"])
|
|
267
|
+
], 2)
|
|
268
|
+
], 6)
|
|
269
|
+
]),
|
|
270
|
+
_: 1
|
|
271
|
+
}, 8, ["show"]));
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
export {
|
|
275
|
+
yt as _
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationToast.vue_vue_type_script_setup_true_lang-DZxcEZkP.js","sources":["../src/components/notifications/NotificationToast.vue"],"sourcesContent":["<!--\n @component NotificationToast\n @description Individual notification toast with animations, theming, and dark mode support\n \n Displays a single notification with icon, title, message, actions, and close button.\n Supports multiple themes, variants, positions, and card stacking with smooth transitions.\n \n ## Features\n - Multiple themes with dark mode support\n - Three variants: default, compact, expanded\n - Action buttons with dismiss, link, and callback support\n - Card stacking mode for multiple notifications\n - Priority-based styling (low, normal, high, urgent)\n - Smooth enter/leave transitions\n \n @props\n - notification (NotificationState): The notification data object\n \n @emits\n - close: Emitted when the close button is clicked\n - action: Emitted when an action button is clicked\n \n @example\n <NotificationToast \n :notification=\"notification\" \n @close=\"handleClose\"\n @action=\"handleAction\"\n />\n-->\n<template>\n <TransitionRoot \n appear \n :show=\"notification.isOpen\" \n as=\"template\" \n @after-leave=\"onAfterLeave\"\n >\n <div \n aria-live=\"assertive\" \n :class=\"[\n 'sl-pointer-events-none sl-fixed sl-inset-0 sl-flex sl-px-4 sl-py-6 sm:sl-p-6',\n verticalAlignClass\n ]\"\n :style=\"containerStyle\"\n >\n <div \n class=\"sl-flex sl-w-full sl-flex-col sl-items-center sl-space-y-4\" \n :class=\"horizontalAlignClass\"\n >\n <TransitionChild \n as=\"template\" \n enter=\"sl-duration-300 sl-ease-out sl-transform\"\n :enter-from=\"enterFromClass\"\n enter-to=\"sl-translate-y-0 sl-opacity-100 sm:sl-translate-x-0\" \n leave=\"sl-duration-200 sl-ease-in\"\n leave-from=\"sl-opacity-100\" \n leave-to=\"sl-opacity-0\"\n >\n <div \n v-if=\"notification.isOpen\" \n :class=\"[\n themeClass,\n variantClass,\n priorityClass,\n cardModeClass,\n 'sl-pointer-events-auto sl-overflow-hidden sl-rounded-lg sl-shadow-lg sl-ring-1 sl-ring-black/5 dark:sl-ring-white/10 sl-transition-all sl-duration-200'\n ]\"\n :style=\"cardStyle\"\n @click=\"handleCardClick\"\n >\n <div :class=\"paddingClass\">\n <div class=\"sl-flex sl-items-start\">\n <!-- Icon -->\n <component \n v-if=\"iconComponent\"\n :is=\"iconComponent\" \n :class=\"[iconSizeClass, iconColorClass, 'sl-flex-shrink-0']\"\n aria-hidden=\"true\" \n />\n \n <!-- Content -->\n <div :class=\"contentMarginClass\">\n <!-- Title -->\n <p :class=\"[titleClass, textColorClass]\">\n {{ notification.title }}\n </p>\n \n <!-- Message -->\n <p \n v-if=\"notification.message\" \n :class=\"[messageClass, textColorClass, 'sl-opacity-90']\"\n >\n {{ notification.message }}\n </p>\n \n <!-- Actions -->\n <div \n v-if=\"notification.actions && notification.actions.length > 0\"\n class=\"sl-mt-3 sl-flex sl-gap-2\"\n >\n <button\n v-for=\"(action, idx) in notification.actions\"\n :key=\"idx\"\n type=\"button\"\n :class=\"getActionButtonClass(action)\"\n @click.stop=\"handleAction(action)\"\n >\n {{ action.label }}\n </button>\n </div>\n </div>\n \n <!-- Close Button -->\n <button \n v-if=\"notification.dismissible !== false\"\n type=\"button\" \n @click.stop=\"handleClose\"\n :class=\"[closeButtonClass, focusRingClass]\"\n >\n <span class=\"sl-sr-only\">Close</span>\n <XMarkIcon class=\"sl-h-5 sl-w-5\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n \n <!-- Priority indicator for urgent/high -->\n <div \n v-if=\"notification.priority === 'urgent' || notification.priority === 'high'\"\n :class=\"priorityIndicatorClass\"\n />\n </div>\n </TransitionChild>\n </div>\n </div>\n </TransitionRoot>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * NotificationToast - Individual notification display\n * \n * Renders a single notification with theming, icons, actions, and animations.\n * Used internally by NotificationContainer but can be used standalone.\n */\nimport { computed, type Component } from 'vue';\nimport { \n CheckCircleIcon, \n ExclamationTriangleIcon, \n ExclamationCircleIcon, \n InformationCircleIcon \n} from '@heroicons/vue/24/outline';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport { TransitionRoot, TransitionChild } from '@headlessui/vue';\nimport type { NotificationState, NotificationAction } from '../../composables/useNotifications';\n\nconst props = defineProps<{ \n notification: NotificationState \n}>();\n\nconst emit = defineEmits<{\n close: [notification: NotificationState];\n action: [notification: NotificationState, action: NotificationAction];\n}>();\n\nconst handleClose = () => {\n emit('close', props.notification);\n};\n\nconst handleAction = (action: NotificationAction) => {\n emit('action', props.notification, action);\n};\n\nconst handleCardClick = () => {\n // Clicking on a card in card mode brings it to front\n if (props.notification.isCardMode && props.notification.cardStackIndex !== 0) {\n emit('action', props.notification, { label: 'bringToFront', action: 'callback' });\n }\n};\n\nconst onAfterLeave = () => {\n // Animation cleanup callback\n};\n\n// Theme classes with dark mode support\nconst themeClass = computed(() => {\n const themes: Record<string, string> = {\n primary: 'sl-bg-primary-600 dark:sl-bg-primary-700 sl-text-white',\n secondary: 'sl-bg-gray-600 dark:sl-bg-gray-700 sl-text-white',\n dark: 'sl-bg-gray-800 dark:sl-bg-gray-900 sl-text-white',\n light: 'sl-bg-white dark:sl-bg-gray-800 sl-text-gray-800 dark:sl-text-gray-100 sl-border sl-border-gray-200 dark:sl-border-gray-700',\n warning: 'sl-bg-amber-500 dark:sl-bg-amber-600 sl-text-white',\n danger: 'sl-bg-red-500 dark:sl-bg-red-600 sl-text-white',\n success: 'sl-bg-emerald-500 dark:sl-bg-emerald-600 sl-text-white',\n info: 'sl-bg-blue-500 dark:sl-bg-blue-600 sl-text-white',\n ghost: 'sl-bg-white dark:sl-bg-gray-800 sl-text-gray-800 dark:sl-text-gray-100 sl-border sl-border-gray-200 dark:sl-border-gray-700',\n };\n return themes[props.notification.theme] || themes.primary;\n});\n\n// Variant classes\nconst variantClass = computed(() => {\n const variants: Record<string, string> = {\n default: 'sl-w-full sl-max-w-sm',\n compact: 'sl-w-full sl-max-w-xs',\n expanded: 'sl-w-full sl-max-w-md',\n };\n return variants[props.notification.variant] || variants.default;\n});\n\n// Priority classes\nconst priorityClass = computed(() => {\n if (props.notification.priority === 'urgent') {\n return 'sl-animate-pulse';\n }\n return '';\n});\n\n// Priority indicator\nconst priorityIndicatorClass = computed(() => {\n const base = 'sl-absolute sl-top-0 sl-left-0 sl-right-0 sl-h-1';\n if (props.notification.priority === 'urgent') {\n return `${base} sl-bg-red-400 dark:sl-bg-red-500`;\n }\n if (props.notification.priority === 'high') {\n return `${base} sl-bg-amber-400 dark:sl-bg-amber-500`;\n }\n return '';\n});\n\n// Card mode classes\nconst cardModeClass = computed(() => {\n if (props.notification.isCardMode) {\n return 'sl-cursor-pointer hover:sl-scale-[1.02] sl-transition-transform';\n }\n return '';\n});\n\n// Card style for stacking\nconst cardStyle = computed(() => {\n const styles: Record<string, string | number> = {\n maxWidth: `${props.notification.maxWidth || 384}px`,\n position: 'relative',\n };\n \n if (props.notification.isCardMode) {\n styles.transform = `translate(${props.notification.cardOffsetX || 0}px, ${props.notification.cardOffsetY || 0}px)`;\n styles.zIndex = props.notification.zIndex || 1;\n }\n \n return styles;\n});\n\n// Text color based on theme\nconst textColorClass = computed(() => {\n const theme = props.notification.theme;\n return ['light', 'ghost'].includes(theme) ? 'sl-text-gray-800 dark:sl-text-gray-100' : 'sl-text-white';\n});\n\n// Icon color\nconst iconColorClass = computed(() => {\n const theme = props.notification.theme;\n return ['light', 'ghost'].includes(theme) ? 'sl-text-gray-500 dark:sl-text-gray-400' : 'sl-text-white/90';\n});\n\n// Focus ring class\nconst focusRingClass = computed(() => {\n const rings: Record<string, string> = {\n primary: 'focus:sl-ring-primary-400 dark:focus:sl-ring-primary-500',\n secondary: 'focus:sl-ring-gray-400 dark:focus:sl-ring-gray-500',\n dark: 'focus:sl-ring-gray-400 dark:focus:sl-ring-gray-500',\n light: 'focus:sl-ring-gray-300 dark:focus:sl-ring-gray-600',\n warning: 'focus:sl-ring-amber-300 dark:focus:sl-ring-amber-500',\n danger: 'focus:sl-ring-red-300 dark:focus:sl-ring-red-500',\n success: 'focus:sl-ring-emerald-300 dark:focus:sl-ring-emerald-500',\n info: 'focus:sl-ring-blue-300 dark:focus:sl-ring-blue-500',\n ghost: 'focus:sl-ring-gray-300 dark:focus:sl-ring-gray-600',\n };\n return rings[props.notification.theme] || rings.primary;\n});\n\n// Close button class\nconst closeButtonClass = computed(() => {\n const theme = props.notification.theme;\n const baseClass = 'sl-ml-4 sl-inline-flex sl-rounded-md sl-opacity-70 hover:sl-opacity-100 focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-2 sl-transition-opacity';\n const colorClass = ['light', 'ghost'].includes(theme) \n ? 'sl-text-gray-400 dark:sl-text-gray-500 hover:sl-text-gray-500 dark:hover:sl-text-gray-400' \n : 'sl-text-white/70 hover:sl-text-white';\n return `${baseClass} ${colorClass}`;\n});\n\n// Icon component based on theme or custom\nconst iconComponent = computed((): Component | undefined => {\n // Allow custom icon override\n if (props.notification.icon) {\n return props.notification.icon;\n }\n \n const theme = props.notification.theme;\n const icons: Record<string, Component> = {\n primary: InformationCircleIcon,\n secondary: InformationCircleIcon,\n dark: ExclamationCircleIcon,\n light: InformationCircleIcon,\n warning: ExclamationTriangleIcon,\n danger: ExclamationCircleIcon,\n success: CheckCircleIcon,\n info: InformationCircleIcon,\n ghost: InformationCircleIcon,\n };\n return icons[theme] || icons.primary;\n});\n\n// Variant-specific sizing\nconst iconSizeClass = computed(() => {\n const sizes: Record<string, string> = {\n compact: 'sl-h-5 sl-w-5',\n default: 'sl-h-6 sl-w-6',\n expanded: 'sl-h-7 sl-w-7',\n };\n return sizes[props.notification.variant] || sizes.default;\n});\n\nconst titleClass = computed(() => {\n const sizes: Record<string, string> = {\n compact: 'sl-text-xs sl-font-medium',\n default: 'sl-text-sm sl-font-medium',\n expanded: 'sl-text-base sl-font-semibold',\n };\n return sizes[props.notification.variant] || sizes.default;\n});\n\nconst messageClass = computed(() => {\n const sizes: Record<string, string> = {\n compact: 'sl-mt-0.5 sl-text-xs',\n default: 'sl-mt-1 sl-text-sm',\n expanded: 'sl-mt-2 sl-text-sm',\n };\n return sizes[props.notification.variant] || sizes.default;\n});\n\nconst paddingClass = computed(() => {\n const sizes: Record<string, string> = {\n compact: 'sl-p-3',\n default: 'sl-p-4',\n expanded: 'sl-p-5',\n };\n return sizes[props.notification.variant] || sizes.default;\n});\n\nconst contentMarginClass = computed(() => {\n const sizes: Record<string, string> = {\n compact: 'sl-ml-2 sl-w-0 sl-flex-1',\n default: 'sl-ml-3 sl-w-0 sl-flex-1 sl-pt-0.5',\n expanded: 'sl-ml-4 sl-w-0 sl-flex-1 sl-pt-0.5',\n };\n return sizes[props.notification.variant] || sizes.default;\n});\n\n// Action button styling\nconst getActionButtonClass = (action: NotificationAction): string => {\n const base = 'sl-rounded sl-px-2 sl-py-1 sl-text-xs sl-font-medium sl-transition-colors focus:sl-outline-none focus:sl-ring-2 focus:sl-ring-offset-1';\n const theme = props.notification.theme;\n const isLightTheme = ['light', 'ghost'].includes(theme);\n \n const themes: Record<string, { light: string; dark: string }> = {\n primary: {\n light: 'sl-bg-primary-100 sl-text-primary-700 hover:sl-bg-primary-200 dark:sl-bg-primary-800 dark:sl-text-primary-200 dark:hover:sl-bg-primary-700',\n dark: 'sl-bg-white/20 sl-text-white hover:sl-bg-white/30'\n },\n secondary: {\n light: 'sl-bg-gray-100 sl-text-gray-700 hover:sl-bg-gray-200 dark:sl-bg-gray-700 dark:sl-text-gray-200 dark:hover:sl-bg-gray-600',\n dark: 'sl-bg-white/20 sl-text-white hover:sl-bg-white/30'\n },\n danger: {\n light: 'sl-bg-red-100 sl-text-red-700 hover:sl-bg-red-200 dark:sl-bg-red-900 dark:sl-text-red-200 dark:hover:sl-bg-red-800',\n dark: 'sl-bg-white/20 sl-text-white hover:sl-bg-white/30'\n }\n };\n \n const actionTheme = action.theme || 'secondary';\n const themeStyle = themes[actionTheme] || themes.secondary;\n \n return `${base} ${isLightTheme ? themeStyle.light : themeStyle.dark}`;\n};\n\n// Horizontal alignment based on position\nconst horizontalAlignClass = computed(() => {\n const position = props.notification.position;\n const alignments: Record<string, string> = {\n tr: 'sl-items-end',\n tl: 'sl-items-start',\n bl: 'sl-items-start',\n br: 'sl-items-end',\n tc: 'sl-items-center',\n bc: 'sl-items-center',\n };\n return alignments[position] || 'sl-items-end';\n});\n\n// Vertical alignment based on position\nconst verticalAlignClass = computed(() => {\n const position = props.notification.position;\n const alignments: Record<string, string> = {\n tr: 'sl-items-start',\n tl: 'sl-items-start',\n bl: 'sl-items-end',\n br: 'sl-items-end',\n tc: 'sl-items-start',\n bc: 'sl-items-end',\n };\n return alignments[position] || 'sl-items-end';\n});\n\n// Entry animation direction based on position\nconst enterFromClass = computed(() => {\n const position = props.notification.position;\n const classes: Record<string, string> = {\n tr: 'sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:sl-translate-x-4',\n tl: 'sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:-sl-translate-x-4',\n br: 'sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:sl-translate-x-4',\n bl: 'sl-translate-y-4 sl-opacity-0 sm:sl-translate-y-0 sm:-sl-translate-x-4',\n tc: '-sl-translate-y-4 sl-opacity-0',\n bc: 'sl-translate-y-4 sl-opacity-0',\n };\n return classes[position] || classes.br;\n});\n\n// Container style with offset\nconst containerStyle = computed(() => {\n const position = props.notification.position;\n const offset = props.notification.yOffset || 0;\n \n const styles: Record<string, string | number> = {\n zIndex: 9999 + (props.notification.zIndex || 0),\n };\n \n // Apply offset based on position (top or bottom)\n if (['tl', 'tr', 'tc'].includes(position)) {\n styles.marginTop = `${offset}px`;\n } else {\n styles.marginBottom = `${offset}px`;\n }\n \n return styles;\n});\n</script>\n"],"names":["props","__props","emit","__emit","handleClose","handleAction","action","handleCardClick","onAfterLeave","themeClass","computed","themes","variantClass","variants","priorityClass","priorityIndicatorClass","base","cardModeClass","cardStyle","styles","textColorClass","theme","iconColorClass","focusRingClass","rings","closeButtonClass","baseClass","colorClass","iconComponent","icons","InformationCircleIcon","ExclamationCircleIcon","ExclamationTriangleIcon","CheckCircleIcon","iconSizeClass","sizes","titleClass","messageClass","paddingClass","contentMarginClass","getActionButtonClass","isLightTheme","actionTheme","themeStyle","horizontalAlignClass","position","verticalAlignClass","enterFromClass","classes","containerStyle","offset","_createBlock","_unref","TransitionRoot","_createElementVNode","_normalizeClass","_createVNode","TransitionChild","_createElementBlock","_hoisted_1","_openBlock","_resolveDynamicComponent","_toDisplayString","_hoisted_2","_Fragment","idx","_withModifiers","$event","_hoisted_3","_cache","XMarkIcon"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as n, computed as s, createBlock as d, openBlock as h, mergeProps as
|
|
2
|
-
import
|
|
3
|
-
import { chartColors as
|
|
1
|
+
import { defineComponent as n, computed as s, createBlock as d, openBlock as h, mergeProps as c } from "vue";
|
|
2
|
+
import f from "./charts/BaseChart.js";
|
|
3
|
+
import { chartColors as u } from "./charts/chartTheme.js";
|
|
4
4
|
const w = /* @__PURE__ */ n({
|
|
5
5
|
__name: "PieChart",
|
|
6
6
|
props: {
|
|
@@ -8,14 +8,14 @@ const w = /* @__PURE__ */ n({
|
|
|
8
8
|
title: {},
|
|
9
9
|
donut: { type: Boolean, default: !1 },
|
|
10
10
|
height: { default: 300 },
|
|
11
|
-
colors: { default: () =>
|
|
11
|
+
colors: { default: () => u.primary },
|
|
12
12
|
loading: { type: Boolean, default: !1 },
|
|
13
13
|
showLabels: { type: Boolean, default: !1 },
|
|
14
14
|
showLegend: { type: Boolean, default: !0 }
|
|
15
15
|
},
|
|
16
16
|
emits: ["click"],
|
|
17
|
-
setup(
|
|
18
|
-
const e =
|
|
17
|
+
setup(t, { emit: a }) {
|
|
18
|
+
const e = t, l = a, i = s(() => ({
|
|
19
19
|
title: e.title ? { text: e.title } : void 0,
|
|
20
20
|
legend: e.showLegend ? {
|
|
21
21
|
show: !0,
|
|
@@ -53,17 +53,17 @@ const w = /* @__PURE__ */ n({
|
|
|
53
53
|
},
|
|
54
54
|
data: e.data
|
|
55
55
|
}]
|
|
56
|
-
})),
|
|
57
|
-
l("click",
|
|
56
|
+
})), r = (o) => {
|
|
57
|
+
l("click", o);
|
|
58
58
|
};
|
|
59
|
-
return (
|
|
60
|
-
option:
|
|
59
|
+
return (o, p) => (h(), d(f, c({
|
|
60
|
+
option: i.value,
|
|
61
61
|
height: t.height,
|
|
62
62
|
loading: t.loading
|
|
63
|
-
},
|
|
63
|
+
}, o.$attrs, { onClick: r }), null, 16, ["option", "height", "loading"]));
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
export {
|
|
67
67
|
w as _
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=PieChart.vue_vue_type_script_setup_true_lang-
|
|
69
|
+
//# sourceMappingURL=PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PieChart.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"PieChart.vue_vue_type_script_setup_true_lang-e3wsA9O4.js","sources":["../src/components/charts/PieChart.vue"],"sourcesContent":["<!--\n @component PieChart\n @description Pie/Donut chart component.\n \n @props\n - data (array, required): Array of {name, value} objects\n - title (string, optional): Chart title\n - donut (boolean, optional): Render as donut chart\n - height (number|string, optional): Chart height\n - colors (array, optional): Custom color palette\n - showLabels (boolean, optional): Show segment labels\n \n @example\n <PieChart\n :data=\"[\n { name: 'Category A', value: 40 },\n { name: 'Category B', value: 30 },\n { name: 'Category C', value: 30 }\n ]\"\n title=\"Distribution\"\n donut\n />\n-->\n<template>\n <BaseChart\n :option=\"chartOption\"\n :height=\"height\"\n :loading=\"loading\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport BaseChart from './BaseChart.vue';\nimport { chartColors } from './chartTheme';\nimport type { EChartsOption } from 'echarts';\n\ninterface PieDataItem {\n name: string;\n value: number;\n}\n\ninterface Props {\n data: PieDataItem[];\n title?: string;\n donut?: boolean;\n height?: number | string;\n colors?: string[];\n loading?: boolean;\n showLabels?: boolean;\n showLegend?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n donut: false,\n height: 300,\n colors: () => chartColors.primary,\n loading: false,\n showLabels: false,\n showLegend: true,\n});\n\nconst emit = defineEmits<{\n click: [params: unknown];\n}>();\n\nconst chartOption = computed<EChartsOption>(() => {\n return {\n title: props.title ? { text: props.title } : undefined,\n legend: props.showLegend ? { \n show: true,\n orient: 'horizontal',\n bottom: 0,\n } : { show: false },\n tooltip: {\n trigger: 'item',\n formatter: '{b}: {c} ({d}%)',\n },\n color: props.colors,\n series: [{\n type: 'pie',\n radius: props.donut ? ['40%', '70%'] : '70%',\n center: ['50%', '45%'],\n avoidLabelOverlap: true,\n itemStyle: {\n borderRadius: 4,\n borderColor: '#ffffff',\n borderWidth: 2,\n },\n label: {\n show: props.showLabels,\n position: props.donut ? 'center' : 'outside',\n },\n emphasis: {\n label: {\n show: true,\n fontSize: 14,\n fontWeight: 600,\n },\n },\n labelLine: {\n show: props.showLabels && !props.donut,\n },\n data: props.data,\n }],\n };\n});\n\nconst handleClick = (params: unknown): void => {\n emit('click', params);\n};\n</script>\n\n"],"names":["props","__props","emit","__emit","chartOption","computed","handleClick","params","_openBlock","_createBlock","BaseChart","_mergeProps","$attrs"],"mappings":";;;;;;;;;;;;;;;;;AAuDA,UAAMA,IAAQC,GASRC,IAAOC,GAIPC,IAAcC,EAAwB,OACnC;AAAA,MACL,OAAOL,EAAM,QAAQ,EAAE,MAAMA,EAAM,UAAU;AAAA,MAC7C,QAAQA,EAAM,aAAa;AAAA,QACzB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA,IACN,EAAE,MAAM,GAAA;AAAA,MACZ,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,MAEb,OAAOA,EAAM;AAAA,MACb,QAAQ,CAAC;AAAA,QACP,MAAM;AAAA,QACN,QAAQA,EAAM,QAAQ,CAAC,OAAO,KAAK,IAAI;AAAA,QACvC,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrB,mBAAmB;AAAA,QACnB,WAAW;AAAA,UACT,cAAc;AAAA,UACd,aAAa;AAAA,UACb,aAAa;AAAA,QAAA;AAAA,QAEf,OAAO;AAAA,UACL,MAAMA,EAAM;AAAA,UACZ,UAAUA,EAAM,QAAQ,WAAW;AAAA,QAAA;AAAA,QAErC,UAAU;AAAA,UACR,OAAO;AAAA,YACL,MAAM;AAAA,YACN,UAAU;AAAA,YACV,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QAEF,WAAW;AAAA,UACT,MAAMA,EAAM,cAAc,CAACA,EAAM;AAAA,QAAA;AAAA,QAEnC,MAAMA,EAAM;AAAA,MAAA,CACb;AAAA,IAAA,EAEJ,GAEKM,IAAc,CAACC,MAA0B;AAC7C,MAAAL,EAAK,SAASK,CAAM;AAAA,IACtB;sBAxFEC,EAAA,GAAAC,EAMEC,GANFC,EAME;AAAA,MALC,QAAQP,EAAA;AAAA,MACR,QAAQH,EAAA;AAAA,MACR,SAASA,EAAA;AAAA,IAAA,GACFW,EAAAA,QAAM,EACb,SAAON,EAAA,CAAW,GAAA,MAAA,IAAA,CAAA,UAAA,UAAA,SAAA,CAAA;AAAA;;"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { defineComponent as $, ref as m, computed as n, onMounted as j, onBeforeUnmount as B, createElementBlock as o, openBlock as a, createElementVNode as r, createVNode as U, createCommentVNode as u, normalizeStyle as v, normalizeClass as k, renderSlot as f, createBlock as I, toDisplayString as c, Transition as R, withCtx as S } from "vue";
|
|
2
|
+
import M from "./components/CloudinaryImage.js";
|
|
3
|
+
const P = { class: "sl-relative sl-flex sl-items-center sl-gap-3" }, T = ["aria-expanded"], V = ["src", "alt"], O = {
|
|
4
|
+
key: 2,
|
|
5
|
+
class: "sl-w-full sl-h-full sl-inline-flex sl-items-center sl-justify-center sl-bg-stachelock-200 dark:sl-bg-stachelock-700"
|
|
6
|
+
}, A = { class: "sl-p-4 sl-border-b sl-border-gray-200 dark:sl-border-slate-700" }, D = { class: "sl-text-sm sl-font-medium sl-text-gray-900 dark:sl-text-white" }, H = { class: "sl-text-xs sl-text-gray-500 dark:sl-text-slate-400" }, K = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "sl-py-1"
|
|
9
|
+
}, J = /* @__PURE__ */ $({
|
|
10
|
+
__name: "ProfileHeaderAvatar",
|
|
11
|
+
props: {
|
|
12
|
+
userName: {},
|
|
13
|
+
userEmail: { default: "" },
|
|
14
|
+
imagePublicId: {},
|
|
15
|
+
imageUrl: {},
|
|
16
|
+
showLogout: { type: Boolean, default: !0 },
|
|
17
|
+
logoutLabel: { default: "Log Out" },
|
|
18
|
+
size: { default: 40 },
|
|
19
|
+
ringColorClass: { default: "sl-ring-stachelock-400" },
|
|
20
|
+
menuTop: { default: "3rem" },
|
|
21
|
+
menuRight: { default: "0" }
|
|
22
|
+
},
|
|
23
|
+
emits: ["logout", "menu-toggle"],
|
|
24
|
+
setup(e, { expose: y, emit: b }) {
|
|
25
|
+
const s = e, d = b, l = m(!1), x = m(null), p = m(null), w = n(() => s.userName ? s.userName.split(" ").map((t) => t[0]).join("").toUpperCase().slice(0, 2) : "U"), C = n(() => `hover:sl-ring-2 hover:${s.ringColorClass}`), z = n(() => `sl-ring-2 ${s.ringColorClass}`), N = n(() => s.size < 32 ? "sl-text-xs" : s.size < 48 ? "sl-text-sm" : "sl-text-base"), E = n(() => ({
|
|
26
|
+
top: s.menuTop,
|
|
27
|
+
right: s.menuRight
|
|
28
|
+
})), g = () => {
|
|
29
|
+
l.value = !l.value, d("menu-toggle", l.value);
|
|
30
|
+
}, i = () => {
|
|
31
|
+
l.value && (l.value = !1, d("menu-toggle", !1));
|
|
32
|
+
}, L = () => {
|
|
33
|
+
i(), d("logout");
|
|
34
|
+
}, h = (t) => {
|
|
35
|
+
t.key === "Escape" && i();
|
|
36
|
+
};
|
|
37
|
+
return j(() => {
|
|
38
|
+
document.addEventListener("keydown", h);
|
|
39
|
+
}), B(() => {
|
|
40
|
+
document.removeEventListener("keydown", h);
|
|
41
|
+
}), y({
|
|
42
|
+
toggleMenu: g,
|
|
43
|
+
closeMenu: i,
|
|
44
|
+
isMenuOpen: l
|
|
45
|
+
}), (t, q) => (a(), o("div", P, [
|
|
46
|
+
r("button", {
|
|
47
|
+
ref_key: "avatarButton",
|
|
48
|
+
ref: x,
|
|
49
|
+
type: "button",
|
|
50
|
+
onClick: g,
|
|
51
|
+
class: k(["sl-relative sl-inline-flex sl-items-center sl-justify-center sl-rounded-full sl-overflow-hidden sl-transition-all sl-flex-shrink-0 focus:sl-outline-none", [
|
|
52
|
+
C.value,
|
|
53
|
+
{ [z.value]: l.value }
|
|
54
|
+
]]),
|
|
55
|
+
style: v({ width: `${e.size}px`, height: `${e.size}px` }),
|
|
56
|
+
"aria-expanded": l.value,
|
|
57
|
+
"aria-haspopup": "true"
|
|
58
|
+
}, [
|
|
59
|
+
f(t.$slots, "avatar", {}, () => [
|
|
60
|
+
e.imagePublicId ? (a(), I(M, {
|
|
61
|
+
key: 0,
|
|
62
|
+
"public-id": e.imagePublicId,
|
|
63
|
+
alt: e.userName,
|
|
64
|
+
width: e.size,
|
|
65
|
+
height: e.size,
|
|
66
|
+
"custom-classes": { image: { "sl-w-full sl-h-full sl-object-cover sl-object-center": !0 } },
|
|
67
|
+
skeleton: "user"
|
|
68
|
+
}, null, 8, ["public-id", "alt", "width", "height"])) : e.imageUrl ? (a(), o("img", {
|
|
69
|
+
key: 1,
|
|
70
|
+
src: e.imageUrl,
|
|
71
|
+
alt: e.userName,
|
|
72
|
+
class: "sl-w-full sl-h-full sl-object-cover sl-object-center"
|
|
73
|
+
}, null, 8, V)) : (a(), o("div", O, [
|
|
74
|
+
r("span", {
|
|
75
|
+
class: k(["sl-font-semibold sl-text-stachelock-700 dark:sl-text-stachelock-200", N.value])
|
|
76
|
+
}, c(w.value), 3)
|
|
77
|
+
]))
|
|
78
|
+
])
|
|
79
|
+
], 14, T),
|
|
80
|
+
U(R, {
|
|
81
|
+
"enter-active-class": "sl-transition sl-ease-out sl-duration-100",
|
|
82
|
+
"enter-from-class": "sl-transform sl-opacity-0 sl-scale-95",
|
|
83
|
+
"enter-to-class": "sl-transform sl-opacity-100 sl-scale-100",
|
|
84
|
+
"leave-active-class": "sl-transition sl-ease-in sl-duration-75",
|
|
85
|
+
"leave-from-class": "sl-transform sl-opacity-100 sl-scale-100",
|
|
86
|
+
"leave-to-class": "sl-transform sl-opacity-0 sl-scale-95"
|
|
87
|
+
}, {
|
|
88
|
+
default: S(() => [
|
|
89
|
+
l.value ? (a(), o("div", {
|
|
90
|
+
key: 0,
|
|
91
|
+
ref_key: "menuRef",
|
|
92
|
+
ref: p,
|
|
93
|
+
class: "sl-absolute sl-bg-white dark:sl-bg-slate-800 sl-rounded-lg sl-shadow-lg sl-border sl-border-gray-200 dark:sl-border-slate-700 sl-z-50 sl-min-w-max sl-overflow-hidden",
|
|
94
|
+
style: v(E.value),
|
|
95
|
+
role: "menu",
|
|
96
|
+
"aria-orientation": "vertical"
|
|
97
|
+
}, [
|
|
98
|
+
r("div", A, [
|
|
99
|
+
f(t.$slots, "menu-header", {}, () => [
|
|
100
|
+
r("p", D, c(e.userName), 1),
|
|
101
|
+
r("p", H, c(e.userEmail), 1)
|
|
102
|
+
])
|
|
103
|
+
]),
|
|
104
|
+
t.$slots["menu-items"] ? (a(), o("div", K, [
|
|
105
|
+
f(t.$slots, "menu-items")
|
|
106
|
+
])) : u("", !0),
|
|
107
|
+
e.showLogout ? (a(), o("button", {
|
|
108
|
+
key: 1,
|
|
109
|
+
type: "button",
|
|
110
|
+
onClick: L,
|
|
111
|
+
class: "sl-w-full sl-text-left sl-px-4 sl-py-2 sl-text-sm sl-text-red-600 dark:sl-text-red-400 hover:sl-bg-red-50 dark:hover:sl-bg-red-900/20 sl-transition-colors",
|
|
112
|
+
role: "menuitem"
|
|
113
|
+
}, c(e.logoutLabel), 1)) : u("", !0)
|
|
114
|
+
], 4)) : u("", !0)
|
|
115
|
+
]),
|
|
116
|
+
_: 3
|
|
117
|
+
}),
|
|
118
|
+
l.value ? (a(), o("div", {
|
|
119
|
+
key: 0,
|
|
120
|
+
class: "sl-fixed sl-inset-0 sl-z-40",
|
|
121
|
+
onClick: i,
|
|
122
|
+
"aria-hidden": "true"
|
|
123
|
+
})) : u("", !0)
|
|
124
|
+
]));
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
export {
|
|
128
|
+
J as _
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js","sources":["../src/components/layouts/ProfileHeaderAvatar.vue"],"sourcesContent":["<!--\n @component ProfileHeaderAvatar\n @description User avatar with dropdown menu for profile actions.\n \n A flexible user avatar component that displays a profile image (via Cloudinary)\n or initials fallback, with an expandable dropdown menu showing user info and actions.\n \n @props\n - userName (string): Display name of the user\n - userEmail (string): Email address of the user\n - imagePublicId (string, optional): Cloudinary public_id for profile image\n - imageUrl (string, optional): Direct URL for profile image (fallback if no publicId)\n - showLogout (boolean): Show logout button in dropdown (default: true)\n - logoutLabel (string): Label for logout button (default: 'Log Out')\n - size (number): Avatar size in pixels (default: 40)\n - ringColor (string): Tailwind ring color class for hover/active state\n - menuPosition (object): Position overrides for dropdown menu\n \n @emits\n - logout: Emitted when logout button is clicked\n - menu-toggle: Emitted when menu is opened/closed with boolean state\n \n @slots\n - menu-header: Custom header content in dropdown (replaces default name/email)\n - menu-items: Additional menu items between user info and logout\n - avatar: Custom avatar content (replaces default image/initials)\n \n @example\n <ProfileHeaderAvatar\n user-name=\"John Doe\"\n user-email=\"john@example.com\"\n image-public-id=\"users/john-doe-avatar\"\n @logout=\"handleLogout\"\n />\n-->\n<template>\n <div class=\"sl-relative sl-flex sl-items-center sl-gap-3\">\n <!-- User Avatar Button -->\n <button \n ref=\"avatarButton\"\n type=\"button\"\n @click=\"toggleMenu\"\n class=\"sl-relative sl-inline-flex sl-items-center sl-justify-center sl-rounded-full sl-overflow-hidden sl-transition-all sl-flex-shrink-0 focus:sl-outline-none\"\n :class=\"[\n ringClasses,\n { [activeRingClass]: isMenuOpen }\n ]\"\n :style=\"{ width: `${size}px`, height: `${size}px` }\"\n :aria-expanded=\"isMenuOpen\"\n aria-haspopup=\"true\"\n >\n <slot name=\"avatar\">\n <!-- Cloudinary image if public_id available -->\n <CloudinaryImage \n v-if=\"imagePublicId\" \n :public-id=\"imagePublicId\" \n :alt=\"userName\" \n :width=\"size\"\n :height=\"size\" \n :custom-classes=\"{ image: { 'sl-w-full sl-h-full sl-object-cover sl-object-center': true } }\" \n skeleton=\"user\" \n />\n <!-- Direct image URL fallback -->\n <img \n v-else-if=\"imageUrl\" \n :src=\"imageUrl\" \n :alt=\"userName\"\n class=\"sl-w-full sl-h-full sl-object-cover sl-object-center\"\n />\n <!-- Initials fallback -->\n <div \n v-else \n class=\"sl-w-full sl-h-full sl-inline-flex sl-items-center sl-justify-center sl-bg-stachelock-200 dark:sl-bg-stachelock-700\"\n >\n <span \n class=\"sl-font-semibold sl-text-stachelock-700 dark:sl-text-stachelock-200\"\n :class=\"initialsTextSize\"\n >\n {{ computedInitials }}\n </span>\n </div>\n </slot>\n </button>\n\n <!-- Dropdown Menu -->\n <Transition\n enter-active-class=\"sl-transition sl-ease-out sl-duration-100\"\n enter-from-class=\"sl-transform sl-opacity-0 sl-scale-95\"\n enter-to-class=\"sl-transform sl-opacity-100 sl-scale-100\"\n leave-active-class=\"sl-transition sl-ease-in sl-duration-75\"\n leave-from-class=\"sl-transform sl-opacity-100 sl-scale-100\"\n leave-to-class=\"sl-transform sl-opacity-0 sl-scale-95\"\n >\n <div \n v-if=\"isMenuOpen\"\n ref=\"menuRef\"\n class=\"sl-absolute sl-bg-white dark:sl-bg-slate-800 sl-rounded-lg sl-shadow-lg sl-border sl-border-gray-200 dark:sl-border-slate-700 sl-z-50 sl-min-w-max sl-overflow-hidden\"\n :style=\"menuStyles\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n >\n <!-- Header with user info -->\n <div class=\"sl-p-4 sl-border-b sl-border-gray-200 dark:sl-border-slate-700\">\n <slot name=\"menu-header\">\n <p class=\"sl-text-sm sl-font-medium sl-text-gray-900 dark:sl-text-white\">{{ userName }}</p>\n <p class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400\">{{ userEmail }}</p>\n </slot>\n </div>\n \n <!-- Custom menu items slot -->\n <div v-if=\"$slots['menu-items']\" class=\"sl-py-1\">\n <slot name=\"menu-items\" />\n </div>\n \n <!-- Logout button -->\n <button \n v-if=\"showLogout\"\n type=\"button\"\n @click=\"handleLogout\"\n class=\"sl-w-full sl-text-left sl-px-4 sl-py-2 sl-text-sm sl-text-red-600 dark:sl-text-red-400 hover:sl-bg-red-50 dark:hover:sl-bg-red-900/20 sl-transition-colors\"\n role=\"menuitem\"\n >\n {{ logoutLabel }}\n </button>\n </div>\n </Transition>\n\n <!-- Backdrop for closing menu -->\n <div \n v-if=\"isMenuOpen\" \n class=\"sl-fixed sl-inset-0 sl-z-40\" \n @click=\"closeMenu\" \n aria-hidden=\"true\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * ProfileHeaderAvatar - User avatar with dropdown menu\n * \n * @module components/layouts/ProfileHeaderAvatar\n */\nimport { ref, computed, onMounted, onBeforeUnmount, type CSSProperties } from 'vue';\nimport CloudinaryImage from '../CloudinaryImage.vue';\n\ninterface Props {\n /** Display name of the user */\n userName: string;\n /** Email address of the user */\n userEmail?: string;\n /** Cloudinary public_id for profile image */\n imagePublicId?: string;\n /** Direct URL for profile image (fallback if no publicId) */\n imageUrl?: string;\n /** Show logout button in dropdown */\n showLogout?: boolean;\n /** Label for logout button */\n logoutLabel?: string;\n /** Avatar size in pixels */\n size?: number;\n /** Custom ring color class for hover/active state */\n ringColorClass?: string;\n /** Menu position from top */\n menuTop?: string;\n /** Menu position from right */\n menuRight?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n userEmail: '',\n showLogout: true,\n logoutLabel: 'Log Out',\n size: 40,\n ringColorClass: 'sl-ring-stachelock-400',\n menuTop: '3rem',\n menuRight: '0',\n});\n\nconst emit = defineEmits<{\n /** Emitted when logout button is clicked */\n logout: [];\n /** Emitted when menu is opened/closed */\n 'menu-toggle': [isOpen: boolean];\n}>();\n\nconst isMenuOpen = ref(false);\nconst avatarButton = ref<HTMLButtonElement | null>(null);\nconst menuRef = ref<HTMLDivElement | null>(null);\n\n// Computed initials from user name\nconst computedInitials = computed(() => {\n if (!props.userName) return 'U';\n return props.userName\n .split(' ')\n .map((n: string) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n});\n\n// Ring classes for hover and active states\nconst ringClasses = computed(() => {\n return `hover:sl-ring-2 hover:${props.ringColorClass}`;\n});\n\nconst activeRingClass = computed(() => {\n return `sl-ring-2 ${props.ringColorClass}`;\n});\n\n// Text size based on avatar size\nconst initialsTextSize = computed(() => {\n if (props.size < 32) return 'sl-text-xs';\n if (props.size < 48) return 'sl-text-sm';\n return 'sl-text-base';\n});\n\n// Menu positioning styles\nconst menuStyles = computed((): CSSProperties => ({\n top: props.menuTop,\n right: props.menuRight,\n}));\n\n// Toggle menu open/close\nconst toggleMenu = () => {\n isMenuOpen.value = !isMenuOpen.value;\n emit('menu-toggle', isMenuOpen.value);\n};\n\n// Close menu\nconst closeMenu = () => {\n if (isMenuOpen.value) {\n isMenuOpen.value = false;\n emit('menu-toggle', false);\n }\n};\n\n// Handle logout click\nconst handleLogout = () => {\n closeMenu();\n emit('logout');\n};\n\n// Handle escape key to close menu\nconst handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeMenu();\n }\n};\n\nonMounted(() => {\n document.addEventListener('keydown', handleEscapeKey);\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', handleEscapeKey);\n});\n\n// Expose methods for parent components\ndefineExpose({\n toggleMenu,\n closeMenu,\n isMenuOpen,\n});\n</script>\n"],"names":["props","__props","emit","__emit","isMenuOpen","ref","avatarButton","menuRef","computedInitials","computed","n","ringClasses","activeRingClass","initialsTextSize","menuStyles","toggleMenu","closeMenu","handleLogout","handleEscapeKey","event","onMounted","onBeforeUnmount","__expose","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","size","_renderSlot","_ctx","imagePublicId","_createBlock","CloudinaryImage","userName","imageUrl","_hoisted_4","_normalizeClass","_createVNode","_Transition","_hoisted_5","_hoisted_6","_toDisplayString","_hoisted_7","userEmail","$slots","_hoisted_8","showLogout","logoutLabel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-DkABeWJt.js","sources":["../src/components/layouts/ProfileHeaderAvatar.vue"],"sourcesContent":["<!--\n @component ProfileHeaderAvatar\n @description User avatar with dropdown menu for profile actions.\n \n A flexible user avatar component that displays a profile image (via Cloudinary)\n or initials fallback, with an expandable dropdown menu showing user info and actions.\n \n @props\n - userName (string): Display name of the user\n - userEmail (string): Email address of the user\n - imagePublicId (string, optional): Cloudinary public_id for profile image\n - imageUrl (string, optional): Direct URL for profile image (fallback if no publicId)\n - showLogout (boolean): Show logout button in dropdown (default: true)\n - logoutLabel (string): Label for logout button (default: 'Log Out')\n - size (number): Avatar size in pixels (default: 40)\n - ringColor (string): Tailwind ring color class for hover/active state\n - menuPosition (object): Position overrides for dropdown menu\n \n @emits\n - logout: Emitted when logout button is clicked\n - menu-toggle: Emitted when menu is opened/closed with boolean state\n \n @slots\n - menu-header: Custom header content in dropdown (replaces default name/email)\n - menu-items: Additional menu items between user info and logout\n - avatar: Custom avatar content (replaces default image/initials)\n \n @example\n <ProfileHeaderAvatar\n user-name=\"John Doe\"\n user-email=\"john@example.com\"\n image-public-id=\"users/john-doe-avatar\"\n @logout=\"handleLogout\"\n />\n-->\n<template>\n <div class=\"sl-relative sl-flex sl-items-center sl-gap-3\">\n <!-- User Avatar Button -->\n <button \n ref=\"avatarButton\"\n type=\"button\"\n @click=\"toggleMenu\"\n class=\"sl-relative sl-inline-flex sl-items-center sl-justify-center sl-rounded-full sl-overflow-hidden sl-transition-all sl-flex-shrink-0 focus:sl-outline-none\"\n :class=\"[\n ringClasses,\n { [activeRingClass]: isMenuOpen }\n ]\"\n :style=\"{ width: `${size}px`, height: `${size}px` }\"\n :aria-expanded=\"isMenuOpen\"\n aria-haspopup=\"true\"\n >\n <slot name=\"avatar\">\n <!-- Cloudinary image if public_id available -->\n <CloudinaryImage \n v-if=\"imagePublicId\" \n :public-id=\"imagePublicId\" \n :alt=\"userName\" \n :width=\"size\"\n :height=\"size\" \n :custom-classes=\"{ image: { 'sl-w-full sl-h-full sl-object-cover sl-object-center': true } }\" \n skeleton=\"user\" \n />\n <!-- Direct image URL fallback -->\n <img \n v-else-if=\"imageUrl\" \n :src=\"imageUrl\" \n :alt=\"userName\"\n class=\"sl-w-full sl-h-full sl-object-cover sl-object-center\"\n />\n <!-- Initials fallback -->\n <div \n v-else \n class=\"sl-w-full sl-h-full sl-inline-flex sl-items-center sl-justify-center sl-bg-stachelock-200 dark:sl-bg-stachelock-700\"\n >\n <span \n class=\"sl-font-semibold sl-text-stachelock-700 dark:sl-text-stachelock-200\"\n :class=\"initialsTextSize\"\n >\n {{ computedInitials }}\n </span>\n </div>\n </slot>\n </button>\n\n <!-- Dropdown Menu -->\n <Transition\n enter-active-class=\"sl-transition sl-ease-out sl-duration-100\"\n enter-from-class=\"sl-transform sl-opacity-0 sl-scale-95\"\n enter-to-class=\"sl-transform sl-opacity-100 sl-scale-100\"\n leave-active-class=\"sl-transition sl-ease-in sl-duration-75\"\n leave-from-class=\"sl-transform sl-opacity-100 sl-scale-100\"\n leave-to-class=\"sl-transform sl-opacity-0 sl-scale-95\"\n >\n <div \n v-if=\"isMenuOpen\"\n ref=\"menuRef\"\n class=\"sl-absolute sl-bg-white dark:sl-bg-slate-800 sl-rounded-lg sl-shadow-lg sl-border sl-border-gray-200 dark:sl-border-slate-700 sl-z-50 sl-min-w-max sl-overflow-hidden\"\n :style=\"menuStyles\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n >\n <!-- Header with user info -->\n <div class=\"sl-p-4 sl-border-b sl-border-gray-200 dark:sl-border-slate-700\">\n <slot name=\"menu-header\">\n <p class=\"sl-text-sm sl-font-medium sl-text-gray-900 dark:sl-text-white\">{{ userName }}</p>\n <p class=\"sl-text-xs sl-text-gray-500 dark:sl-text-slate-400\">{{ userEmail }}</p>\n </slot>\n </div>\n \n <!-- Custom menu items slot -->\n <div v-if=\"$slots['menu-items']\" class=\"sl-py-1\">\n <slot name=\"menu-items\" />\n </div>\n \n <!-- Logout button -->\n <button \n v-if=\"showLogout\"\n type=\"button\"\n @click=\"handleLogout\"\n class=\"sl-w-full sl-text-left sl-px-4 sl-py-2 sl-text-sm sl-text-red-600 dark:sl-text-red-400 hover:sl-bg-red-50 dark:hover:sl-bg-red-900/20 sl-transition-colors\"\n role=\"menuitem\"\n >\n {{ logoutLabel }}\n </button>\n </div>\n </Transition>\n\n <!-- Backdrop for closing menu -->\n <div \n v-if=\"isMenuOpen\" \n class=\"sl-fixed sl-inset-0 sl-z-40\" \n @click=\"closeMenu\" \n aria-hidden=\"true\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * ProfileHeaderAvatar - User avatar with dropdown menu\n * \n * @module components/layouts/ProfileHeaderAvatar\n */\nimport { ref, computed, onMounted, onBeforeUnmount, type CSSProperties } from 'vue';\nimport CloudinaryImage from '../CloudinaryImage.vue';\n\ninterface Props {\n /** Display name of the user */\n userName: string;\n /** Email address of the user */\n userEmail?: string;\n /** Cloudinary public_id for profile image */\n imagePublicId?: string;\n /** Direct URL for profile image (fallback if no publicId) */\n imageUrl?: string;\n /** Show logout button in dropdown */\n showLogout?: boolean;\n /** Label for logout button */\n logoutLabel?: string;\n /** Avatar size in pixels */\n size?: number;\n /** Custom ring color class for hover/active state */\n ringColorClass?: string;\n /** Menu position from top */\n menuTop?: string;\n /** Menu position from right */\n menuRight?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n userEmail: '',\n showLogout: true,\n logoutLabel: 'Log Out',\n size: 40,\n ringColorClass: 'sl-ring-stachelock-400',\n menuTop: '3rem',\n menuRight: '0',\n});\n\nconst emit = defineEmits<{\n /** Emitted when logout button is clicked */\n logout: [];\n /** Emitted when menu is opened/closed */\n 'menu-toggle': [isOpen: boolean];\n}>();\n\nconst isMenuOpen = ref(false);\nconst avatarButton = ref<HTMLButtonElement | null>(null);\nconst menuRef = ref<HTMLDivElement | null>(null);\n\n// Computed initials from user name\nconst computedInitials = computed(() => {\n if (!props.userName) return 'U';\n return props.userName\n .split(' ')\n .map((n: string) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n});\n\n// Ring classes for hover and active states\nconst ringClasses = computed(() => {\n return `hover:sl-ring-2 hover:${props.ringColorClass}`;\n});\n\nconst activeRingClass = computed(() => {\n return `sl-ring-2 ${props.ringColorClass}`;\n});\n\n// Text size based on avatar size\nconst initialsTextSize = computed(() => {\n if (props.size < 32) return 'sl-text-xs';\n if (props.size < 48) return 'sl-text-sm';\n return 'sl-text-base';\n});\n\n// Menu positioning styles\nconst menuStyles = computed((): CSSProperties => ({\n top: props.menuTop,\n right: props.menuRight,\n}));\n\n// Toggle menu open/close\nconst toggleMenu = () => {\n isMenuOpen.value = !isMenuOpen.value;\n emit('menu-toggle', isMenuOpen.value);\n};\n\n// Close menu\nconst closeMenu = () => {\n if (isMenuOpen.value) {\n isMenuOpen.value = false;\n emit('menu-toggle', false);\n }\n};\n\n// Handle logout click\nconst handleLogout = () => {\n closeMenu();\n emit('logout');\n};\n\n// Handle escape key to close menu\nconst handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeMenu();\n }\n};\n\nonMounted(() => {\n document.addEventListener('keydown', handleEscapeKey);\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', handleEscapeKey);\n});\n\n// Expose methods for parent components\ndefineExpose({\n toggleMenu,\n closeMenu,\n isMenuOpen,\n});\n</script>\n"],"names":["props","__props","emit","__emit","isMenuOpen","ref","avatarButton","menuRef","computedInitials","computed","n","ringClasses","activeRingClass","initialsTextSize","menuStyles","toggleMenu","closeMenu","handleLogout","handleEscapeKey","event","onMounted","onBeforeUnmount","__expose","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","_renderSlot","_ctx","_createBlock","CloudinaryImage","_hoisted_4","_normalizeClass","_createVNode","_Transition","_hoisted_5","_hoisted_6","_toDisplayString","_hoisted_7","$slots","_hoisted_8"],"mappings":"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"}
|