@stachelock/ui 0.2.13 → 0.3.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/AddDeleteButtonGroup.vue_vue_type_script_setup_true_lang-CFS3lVF-.js +128 -0
- package/dist/AddDeleteButtonGroup.vue_vue_type_script_setup_true_lang-CFS3lVF-.js.map +1 -0
- package/dist/AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js +194 -0
- package/dist/AlertModal.vue_vue_type_script_setup_true_lang-CxwewAVy.js.map +1 -0
- package/dist/BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js +34 -0
- package/dist/BackgroundGradientWrapper.vue_vue_type_script_setup_true_lang-B570pdYL.js.map +1 -0
- package/dist/BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js +67 -0
- package/dist/BarChart.vue_vue_type_script_setup_true_lang-Dnuzd7vZ.js.map +1 -0
- package/dist/Bars3Icon-BdOqcGcY.js +22 -0
- package/dist/Bars3Icon-BdOqcGcY.js.map +1 -0
- package/dist/BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js +235 -0
- package/dist/BaseModal.vue_vue_type_script_setup_true_lang-Cr_GAD6Q.js.map +1 -0
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js +328 -0
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-DRwe4rw8.js.map +1 -0
- package/dist/CardWrapper.vue_vue_type_script_setup_true_lang-D59QBAi9.js +13 -0
- package/dist/CardWrapper.vue_vue_type_script_setup_true_lang-D59QBAi9.js.map +1 -0
- package/dist/CheckIcon-BGlsmVwT.js +20 -0
- package/dist/CheckIcon-BGlsmVwT.js.map +1 -0
- package/dist/{CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js → CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js} +52 -51
- package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-B8wJVkPP.js.map +1 -0
- package/dist/ChevronRightIcon-DkUqw988.js +20 -0
- package/dist/ChevronRightIcon-DkUqw988.js.map +1 -0
- package/dist/ChevronUpDownIcon-Bq_fsgrb.js +20 -0
- package/dist/ChevronUpDownIcon-Bq_fsgrb.js.map +1 -0
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js +1315 -0
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-ClGP5YU0.js.map +1 -0
- package/dist/ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js +60 -0
- package/dist/ComingSoon.vue_vue_type_script_setup_true_lang-C5GU-yiK.js.map +1 -0
- package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-Cg83utkU.js → DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js} +23 -22
- package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-DV-XVWqh.js.map +1 -0
- package/dist/DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js +688 -0
- package/dist/DatepickerInput.vue_vue_type_style_index_0_lang-BdkGLw0H.js.map +1 -0
- package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js +238 -0
- package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-BV9vYYuX.js.map +1 -0
- package/dist/DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js +138 -0
- package/dist/DisclosureWrapper.vue_vue_type_script_setup_true_lang-B-Mr_vdx.js.map +1 -0
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js +253 -0
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js.map +1 -0
- package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js → DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js} +25 -41
- package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js.map +1 -0
- package/dist/EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js +122 -0
- package/dist/EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js.map +1 -0
- package/dist/EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js +32 -0
- package/dist/EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js.map +1 -0
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js +74 -0
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-B_XAq5Sr.js.map +1 -0
- package/dist/{EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js → EventCard.vue_vue_type_script_setup_true_lang-j1mtKShZ.js} +56 -77
- package/dist/EventCard.vue_vue_type_script_setup_true_lang-j1mtKShZ.js.map +1 -0
- package/dist/{EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js → EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js} +9 -9
- package/dist/{EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js.map → EventsList.vue_vue_type_script_setup_true_lang-D3q9wJ4E.js.map} +1 -1
- package/dist/ExclamationCircleIcon-DjxYk45_.js +22 -0
- package/dist/ExclamationCircleIcon-DjxYk45_.js.map +1 -0
- package/dist/ExclamationCircleIcon-DmL8Wwjo.js +36 -0
- package/dist/ExclamationCircleIcon-DmL8Wwjo.js.map +1 -0
- package/dist/ExclamationTriangleIcon-BNKYmV_J.js +22 -0
- package/dist/ExclamationTriangleIcon-BNKYmV_J.js.map +1 -0
- package/dist/FileDropzoneInput.vue_vue_type_script_setup_true_lang-CclXceTb.js +211 -0
- package/dist/FileDropzoneInput.vue_vue_type_script_setup_true_lang-CclXceTb.js.map +1 -0
- package/dist/FormErrorWrapper.vue_vue_type_script_setup_true_lang-BQOlG_ab.js +63 -0
- package/dist/FormErrorWrapper.vue_vue_type_script_setup_true_lang-BQOlG_ab.js.map +1 -0
- package/dist/FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js +67 -0
- package/dist/FunnelChart.vue_vue_type_script_setup_true_lang-B8QYlJ-s.js.map +1 -0
- package/dist/HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js +22 -0
- package/dist/HiddenInput.vue_vue_type_script_setup_true_lang-DYdvWmVE.js.map +1 -0
- package/dist/InformationCircleIcon-B322GNIt.js +40 -0
- package/dist/InformationCircleIcon-B322GNIt.js.map +1 -0
- package/dist/InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js +93 -0
- package/dist/InlineTabs.vue_vue_type_script_setup_true_lang-DhkX5sWS.js.map +1 -0
- package/dist/LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js +66 -0
- package/dist/LineChart.vue_vue_type_script_setup_true_lang-DszQ-a5L.js.map +1 -0
- package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js +36 -0
- package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-CwOOShcM.js.map +1 -0
- package/dist/MapPinIcon-CSTDUZnD.js +27 -0
- package/dist/MapPinIcon-CSTDUZnD.js.map +1 -0
- package/dist/MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js +193 -0
- package/dist/MonthCalendar.vue_vue_type_style_index_0_lang-CnX3Ih0W.js.map +1 -0
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js +162 -0
- package/dist/NotificationToast.vue_vue_type_script_setup_true_lang-Cm5RsC7C.js.map +1 -0
- package/dist/PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js +69 -0
- package/dist/PieChart.vue_vue_type_script_setup_true_lang-DJRcsty7.js.map +1 -0
- package/dist/{XMarkIcon-C4wILUsz.js → PlusIcon-aDFVlB90.js} +5 -5
- package/dist/PlusIcon-aDFVlB90.js.map +1 -0
- package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js +130 -0
- package/dist/ProfileHeaderAvatar.vue_vue_type_script_setup_true_lang-Cri9BiBy.js.map +1 -0
- package/dist/ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js +108 -0
- package/dist/ProjectLogo.vue_vue_type_script_setup_true_lang-CtroDq7L.js.map +1 -0
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js +303 -0
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang--yUL7bcx.js.map +1 -0
- package/dist/SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js +339 -0
- package/dist/SelectTextInput.vue_vue_type_script_setup_true_lang-B2Gw_se2.js.map +1 -0
- package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-CzLbBcNS.js → SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js} +25 -24
- package/dist/SidebarLayout.vue_vue_type_script_setup_true_lang-BD2PF5xp.js.map +1 -0
- package/dist/SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js +78 -0
- package/dist/SparklineChart.vue_vue_type_script_setup_true_lang-DDTcpEjy.js.map +1 -0
- package/dist/StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js +111 -0
- package/dist/StatCard.vue_vue_type_script_setup_true_lang-DTOT0-WB.js.map +1 -0
- package/dist/StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js +119 -0
- package/dist/StepperPanels.vue_vue_type_script_setup_true_lang-BtHrfqFI.js.map +1 -0
- package/dist/{SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js → SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js} +63 -58
- package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-D6M1qwP1.js.map +1 -0
- package/dist/SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js +183 -0
- package/dist/SwitchInputGroup.vue_vue_type_script_setup_true_lang-BNKKEAMq.js.map +1 -0
- package/dist/TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js +125 -0
- package/dist/TabGroup.vue_vue_type_script_setup_true_lang-DrhDwLL3.js.map +1 -0
- package/dist/TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js +129 -0
- package/dist/TabGroupUnderline.vue_vue_type_script_setup_true_lang-Di33js6c.js.map +1 -0
- package/dist/TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js +85 -0
- package/dist/TabsInPills.vue_vue_type_script_setup_true_lang-CMxaK0Kw.js.map +1 -0
- package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js → TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js} +53 -63
- package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js.map +1 -0
- package/dist/{TextAreaInput.vue_vue_type_script_setup_true_lang-CbR651TU.js → TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js} +47 -35
- package/dist/TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js.map +1 -0
- package/dist/{UiAvatar.vue_vue_type_script_setup_true_lang-CDNjUA1L.js → UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js} +34 -34
- package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js.map +1 -0
- package/dist/UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js +88 -0
- package/dist/UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js.map +1 -0
- package/dist/UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js +108 -0
- package/dist/UiButtonGroup.vue_vue_type_script_setup_true_lang-BKyznfxi.js.map +1 -0
- package/dist/UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js +96 -0
- package/dist/UiCheckbox.vue_vue_type_script_setup_true_lang-B5fPB7PH.js.map +1 -0
- package/dist/{UiLoading.vue_vue_type_script_setup_true_lang-KbLKA4SA.js → UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js} +48 -43
- package/dist/UiLoading.vue_vue_type_script_setup_true_lang-DldleD-3.js.map +1 -0
- package/dist/UiMapAll.vue_vue_type_script_setup_true_lang-CMAyvJMk.js +489 -0
- package/dist/UiMapAll.vue_vue_type_script_setup_true_lang-CMAyvJMk.js.map +1 -0
- package/dist/UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js +330 -0
- package/dist/UiMenu.vue_vue_type_script_setup_true_lang-aJddpshR.js.map +1 -0
- package/dist/UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js +214 -0
- package/dist/UiModal.vue_vue_type_script_setup_true_lang-CFgLuifQ.js.map +1 -0
- package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js +83 -0
- package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-C23h6Do0.js.map +1 -0
- package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js +69 -0
- package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-BioTMORv.js.map +1 -0
- package/dist/{UiTable.vue_vue_type_script_setup_true_lang-hI1_xamh.js → UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js} +45 -44
- package/dist/UiTable.vue_vue_type_script_setup_true_lang-BuOCaPzi.js.map +1 -0
- package/dist/XMarkIcon-Cwy3T6p8.js +22 -0
- package/dist/XMarkIcon-Cwy3T6p8.js.map +1 -0
- package/dist/XMarkIcon-DNvCkiOy.js +16 -0
- package/dist/XMarkIcon-DNvCkiOy.js.map +1 -0
- package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js +89 -0
- package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-C01PTLg8.js.map +1 -0
- package/dist/active-element-history-BTBNVIJN.js +17 -0
- package/dist/active-element-history-BTBNVIJN.js.map +1 -0
- package/dist/calculate-active-index-Dim3sT-5.js +55 -0
- package/dist/calculate-active-index-Dim3sT-5.js.map +1 -0
- package/dist/calendar-DyIP7WGv.js +575 -0
- package/dist/calendar-DyIP7WGv.js.map +1 -0
- package/dist/calendars/CalendarDashboard.js +7 -7
- package/dist/calendars/CalendarHeader.js +1 -1
- package/dist/calendars/DayCalendar.js +1 -1
- package/dist/calendars/EventCard.js +1 -1
- package/dist/calendars/EventsList.js +1 -1
- package/dist/calendars/MonthCalendar.js +1 -1
- package/dist/calendars/WeekCalendar.js +376 -2
- package/dist/calendars/WeekCalendar.js.map +1 -1
- package/dist/calendars/YearCalendar.js +1 -1
- package/dist/charts/BarChart.d.ts +3 -0
- package/dist/charts/BarChart.js +5 -0
- package/dist/charts/BarChart.js.map +1 -0
- package/dist/charts/BaseChart.d.ts +3 -0
- package/dist/charts/BaseChart.js +135 -0
- package/dist/charts/BaseChart.js.map +1 -0
- package/dist/charts/FunnelChart.d.ts +3 -0
- package/dist/charts/FunnelChart.js +5 -0
- package/dist/charts/FunnelChart.js.map +1 -0
- package/dist/charts/LineChart.d.ts +3 -0
- package/dist/charts/LineChart.js +5 -0
- package/dist/charts/LineChart.js.map +1 -0
- package/dist/charts/PieChart.d.ts +3 -0
- package/dist/charts/PieChart.js +5 -0
- package/dist/charts/PieChart.js.map +1 -0
- package/dist/charts/SparklineChart.d.ts +3 -0
- package/dist/charts/SparklineChart.js +5 -0
- package/dist/charts/SparklineChart.js.map +1 -0
- package/dist/charts/StatCard.d.ts +3 -0
- package/dist/charts/StatCard.js +5 -0
- package/dist/charts/StatCard.js.map +1 -0
- package/dist/charts/chartTheme.d.ts +3 -0
- package/dist/charts/chartTheme.js +254 -0
- package/dist/charts/chartTheme.js.map +1 -0
- package/dist/charts/index.d.ts +1 -0
- package/dist/charts/index.js +33 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/components/Avatar.js +1 -1
- package/dist/components/Badge.js +2 -39
- package/dist/components/Badge.js.map +1 -1
- package/dist/components/Banner.d.ts +3 -0
- package/dist/components/Banner.js +476 -0
- package/dist/components/Banner.js.map +1 -0
- package/dist/components/Breadcrumb.js +269 -2
- package/dist/components/Breadcrumb.js.map +1 -1
- package/dist/components/Button.js +132 -105
- package/dist/components/Button.js.map +1 -1
- package/dist/components/ButtonGroup.d.ts +3 -0
- package/dist/components/ButtonGroup.js +5 -0
- package/dist/components/ButtonGroup.js.map +1 -0
- package/dist/components/Checkbox.d.ts +3 -0
- package/dist/components/Checkbox.js +5 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/CloudinaryImage.d.ts +3 -0
- package/dist/components/CloudinaryImage.js +175 -0
- package/dist/components/CloudinaryImage.js.map +1 -0
- package/dist/components/Loading.js +1 -1
- package/dist/components/LoadingDots.js +3 -3
- package/dist/components/LoadingDots.js.map +1 -1
- package/dist/components/LottieAnimation.d.ts +3 -0
- package/dist/components/LottieAnimation.js +5 -0
- package/dist/components/LottieAnimation.js.map +1 -0
- package/dist/components/Menu.d.ts +3 -0
- package/dist/components/Menu.js +5 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Modal.js +1 -1
- package/dist/components/NavLink.js +1 -1
- package/dist/components/ProgressBar.js +1 -1
- package/dist/components/RadialProgressBar.js +1 -1
- package/dist/components/Table.js +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.js +33 -0
- package/dist/composables/index.js.map +1 -0
- package/dist/composables/useCalendar.d.ts +3 -0
- package/dist/composables/useCalendar.js +32 -0
- package/dist/composables/useCalendar.js.map +1 -0
- package/dist/composables/useFormValidation.d.ts +3 -0
- package/dist/composables/useFormValidation.js +110 -0
- package/dist/composables/useFormValidation.js.map +1 -0
- package/dist/composables/useMap.d.ts +3 -0
- package/dist/composables/useMap.js +10 -0
- package/dist/composables/useMap.js.map +1 -0
- package/dist/composables/useModal.d.ts +3 -0
- package/dist/composables/useModal.js +75 -0
- package/dist/composables/useModal.js.map +1 -0
- package/dist/composables/useNotifications.d.ts +3 -0
- package/dist/composables/useNotifications.js +77 -0
- package/dist/composables/useNotifications.js.map +1 -0
- package/dist/composables/useTabs.d.ts +1 -0
- package/dist/composables/useTabs.js +259 -0
- package/dist/composables/useTabs.js.map +1 -0
- package/dist/composables/useTheme.d.ts +3 -0
- package/dist/composables/useTheme.js +119 -0
- package/dist/composables/useTheme.js.map +1 -0
- package/dist/{description-CBd3BJ9O.js → description-C7cRw0tq.js} +2 -2
- package/dist/{description-CBd3BJ9O.js.map → description-C7cRw0tq.js.map} +1 -1
- package/dist/{dialog-U1KNiPzc.js → dialog-B2WA4G25.js} +141 -135
- package/dist/dialog-B2WA4G25.js.map +1 -0
- package/dist/empty-state/ComingSoon.d.ts +3 -0
- package/dist/empty-state/ComingSoon.js +5 -0
- package/dist/empty-state/ComingSoon.js.map +1 -0
- package/dist/empty-state/EmptyState.d.ts +3 -0
- package/dist/empty-state/EmptyState.js +5 -0
- package/dist/empty-state/EmptyState.js.map +1 -0
- package/dist/empty-state/index.d.ts +1 -0
- package/dist/empty-state/index.js +7 -0
- package/dist/empty-state/index.js.map +1 -0
- package/dist/env-BZfPsfnF.js +29 -0
- package/dist/env-BZfPsfnF.js.map +1 -0
- package/dist/form-f8yP4kN-.js +35 -0
- package/dist/form-f8yP4kN-.js.map +1 -0
- package/dist/forms/DynamicForm.js +1 -1
- package/dist/forms/DynamicFormField.js +1 -1
- package/dist/forms/FormFieldWrapper.js +72 -92
- package/dist/forms/FormFieldWrapper.js.map +1 -1
- package/dist/hidden-BSRluD1y.js +15 -0
- package/dist/hidden-BSRluD1y.js.map +1 -0
- package/dist/index-Dca39bYA.js +2167 -0
- package/dist/index-Dca39bYA.js.map +1 -0
- package/dist/index.js +1257 -274
- package/dist/index.js.map +1 -1
- package/dist/inputs/AddDeleteButtonGroup.d.ts +3 -0
- package/dist/inputs/AddDeleteButtonGroup.js +5 -0
- package/dist/inputs/AddDeleteButtonGroup.js.map +1 -0
- package/dist/inputs/CheckboxInput.js +1 -1
- package/dist/inputs/ComboboxInput.js +1 -1
- package/dist/inputs/DatepickerInput.d.ts +3 -0
- package/dist/inputs/DatepickerInput.js +5 -0
- package/dist/inputs/DatepickerInput.js.map +1 -0
- package/dist/inputs/EmailInput.d.ts +3 -0
- package/dist/inputs/EmailInput.js +5 -0
- package/dist/inputs/EmailInput.js.map +1 -0
- package/dist/inputs/EmptyInput.d.ts +3 -0
- package/dist/inputs/EmptyInput.js +5 -0
- package/dist/inputs/EmptyInput.js.map +1 -0
- package/dist/inputs/FileDropzoneInput.d.ts +3 -0
- package/dist/inputs/FileDropzoneInput.js +5 -0
- package/dist/inputs/FileDropzoneInput.js.map +1 -0
- package/dist/inputs/HiddenInput.d.ts +3 -0
- package/dist/inputs/HiddenInput.js +5 -0
- package/dist/inputs/HiddenInput.js.map +1 -0
- package/dist/inputs/PhoneInput.d.ts +3 -0
- package/dist/inputs/PhoneInput.js +3783 -0
- package/dist/inputs/PhoneInput.js.map +1 -0
- package/dist/inputs/RichTextInput.d.ts +3 -0
- package/dist/inputs/RichTextInput.js +17492 -0
- package/dist/inputs/RichTextInput.js.map +1 -0
- package/dist/inputs/SelectInput.js +1 -1
- package/dist/inputs/SelectTextInput.d.ts +3 -0
- package/dist/inputs/SelectTextInput.js +5 -0
- package/dist/inputs/SelectTextInput.js.map +1 -0
- package/dist/inputs/SwitchInput.js +1 -1
- package/dist/inputs/SwitchInputGroup.d.ts +3 -0
- package/dist/inputs/SwitchInputGroup.js +5 -0
- package/dist/inputs/SwitchInputGroup.js.map +1 -0
- package/dist/inputs/TagifyInput.js +1 -1
- package/dist/inputs/TextAreaInput.js +1 -1
- package/dist/inputs/TextInput.d.ts +3 -0
- package/dist/{components → inputs}/TextInput.js +17 -17
- package/dist/inputs/TextInput.js.map +1 -0
- package/dist/keyboard-Dd_2-cFu.js +5 -0
- package/dist/keyboard-Dd_2-cFu.js.map +1 -0
- package/dist/layouts/DashboardLayout.js +1 -1
- package/dist/layouts/ProfileHeaderAvatar.d.ts +3 -0
- package/dist/layouts/ProfileHeaderAvatar.js +5 -0
- package/dist/layouts/ProfileHeaderAvatar.js.map +1 -0
- package/dist/layouts/ProjectLogo.d.ts +3 -0
- package/dist/layouts/ProjectLogo.js +5 -0
- package/dist/layouts/ProjectLogo.js.map +1 -0
- package/dist/layouts/SidebarLayout.js +1 -1
- package/dist/listbox-p2_4hUSD.js +257 -0
- package/dist/listbox-p2_4hUSD.js.map +1 -0
- package/dist/loading/ContentSkeleton.d.ts +3 -0
- package/dist/loading/ContentSkeleton.js +96 -0
- package/dist/loading/ContentSkeleton.js.map +1 -0
- package/dist/loading/SmartLoadingIndicator.d.ts +3 -0
- package/dist/loading/SmartLoadingIndicator.js +230 -0
- package/dist/loading/SmartLoadingIndicator.js.map +1 -0
- package/dist/loading/index.d.ts +1 -0
- package/dist/loading/index.js +7 -0
- package/dist/loading/index.js.map +1 -0
- package/dist/mapThemes-DFE9fZm3.js +675 -0
- package/dist/mapThemes-DFE9fZm3.js.map +1 -0
- package/dist/maps/GoogleMap.d.ts +3 -0
- package/dist/maps/GoogleMap.js +170 -0
- package/dist/maps/GoogleMap.js.map +1 -0
- package/dist/maps/UiInfoWindow.d.ts +3 -0
- package/dist/maps/UiInfoWindow.js +286 -0
- package/dist/maps/UiInfoWindow.js.map +1 -0
- package/dist/maps/UiMap.d.ts +3 -0
- package/dist/maps/UiMap.js +591 -0
- package/dist/maps/UiMap.js.map +1 -0
- package/dist/maps/UiMapAll.d.ts +3 -0
- package/dist/maps/UiMapAll.js +5 -0
- package/dist/maps/UiMapAll.js.map +1 -0
- package/dist/maps/UiMapMarker.d.ts +3 -0
- package/dist/maps/UiMapMarker.js +237 -0
- package/dist/maps/UiMapMarker.js.map +1 -0
- package/dist/maps/index.d.ts +1 -0
- package/dist/maps/index.js +13 -0
- package/dist/maps/index.js.map +1 -0
- package/dist/micro-task-D-oTY33s.js +9 -0
- package/dist/micro-task-D-oTY33s.js.map +1 -0
- package/dist/modals/AlertModal.d.ts +3 -0
- package/dist/modals/AlertModal.js +5 -0
- package/dist/modals/AlertModal.js.map +1 -0
- package/dist/modals/BaseModal.d.ts +3 -0
- package/dist/modals/BaseModal.js +5 -0
- package/dist/modals/BaseModal.js.map +1 -0
- package/dist/modals/ImageCropperModal.d.ts +3 -0
- package/dist/modals/ImageCropperModal.js +1804 -0
- package/dist/modals/ImageCropperModal.js.map +1 -0
- package/dist/notifications/NotificationContainer.d.ts +3 -0
- package/dist/notifications/NotificationContainer.js +25 -0
- package/dist/notifications/NotificationContainer.js.map +1 -0
- package/dist/notifications/NotificationToast.d.ts +3 -0
- package/dist/notifications/NotificationToast.js +5 -0
- package/dist/notifications/NotificationToast.js.map +1 -0
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.js +7 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/open-closed-JTEvYTg2.js +19 -0
- package/dist/open-closed-JTEvYTg2.js.map +1 -0
- package/dist/render-QUUPyNjX.js +101 -0
- package/dist/render-QUUPyNjX.js.map +1 -0
- package/dist/src/components/CloudinaryImage.d.ts +144 -0
- package/dist/src/components/CloudinaryImage.d.ts.map +1 -0
- package/dist/src/components/LottieAnimation.d.ts +65 -0
- package/dist/src/components/LottieAnimation.d.ts.map +1 -0
- package/dist/src/components/ThemeDebugModal.d.ts +20 -0
- package/dist/src/components/ThemeDebugModal.d.ts.map +1 -0
- package/dist/src/components/UiAvatar.d.ts.map +1 -1
- package/dist/src/components/UiBadge.d.ts +22 -12
- package/dist/src/components/UiBadge.d.ts.map +1 -1
- package/dist/src/components/UiBanner.d.ts +166 -0
- package/dist/src/components/UiBanner.d.ts.map +1 -0
- package/dist/src/components/UiBreadcrumb.d.ts +240 -1
- package/dist/src/components/UiBreadcrumb.d.ts.map +1 -1
- package/dist/src/components/UiButton.d.ts +5 -4
- package/dist/src/components/UiButton.d.ts.map +1 -1
- package/dist/src/components/UiButtonGroup.d.ts +78 -0
- package/dist/src/components/UiButtonGroup.d.ts.map +1 -0
- package/dist/src/components/UiCheckbox.d.ts +55 -0
- package/dist/src/components/UiCheckbox.d.ts.map +1 -0
- package/dist/src/components/UiLoading.d.ts +2 -2
- package/dist/src/components/UiLoading.d.ts.map +1 -1
- package/dist/src/components/UiMenu.d.ts +67 -0
- package/dist/src/components/UiMenu.d.ts.map +1 -0
- package/dist/src/components/UiModal.d.ts +1 -1
- package/dist/src/components/UiModal.d.ts.map +1 -1
- package/dist/src/components/UiNavLink.d.ts +1 -1
- package/dist/src/components/UiProgressBar.d.ts +43 -31
- package/dist/src/components/UiProgressBar.d.ts.map +1 -1
- package/dist/src/components/UiRadialProgressBar.d.ts +46 -39
- package/dist/src/components/UiRadialProgressBar.d.ts.map +1 -1
- package/dist/src/components/UiTable.d.ts.map +1 -1
- package/dist/src/components/UiTransition.d.ts +1 -1
- package/dist/src/components/calendars/CalendarHeader.d.ts +66 -19
- package/dist/src/components/calendars/CalendarHeader.d.ts.map +1 -1
- package/dist/src/components/calendars/DayCalendar.d.ts +11 -4
- package/dist/src/components/calendars/DayCalendar.d.ts.map +1 -1
- package/dist/src/components/calendars/MonthCalendar.d.ts +33 -22
- package/dist/src/components/calendars/MonthCalendar.d.ts.map +1 -1
- package/dist/src/components/calendars/WeekCalendar.d.ts.map +1 -1
- package/dist/src/components/calendars/YearCalendar.d.ts +41 -6
- package/dist/src/components/calendars/YearCalendar.d.ts.map +1 -1
- package/dist/src/components/charts/BarChart.d.ts +64 -0
- package/dist/src/components/charts/BarChart.d.ts.map +1 -0
- package/dist/src/components/charts/BaseChart.d.ts +81 -0
- package/dist/src/components/charts/BaseChart.d.ts.map +1 -0
- package/dist/src/components/charts/FunnelChart.d.ts +55 -0
- package/dist/src/components/charts/FunnelChart.d.ts.map +1 -0
- package/dist/src/components/charts/LineChart.d.ts +60 -0
- package/dist/src/components/charts/LineChart.d.ts.map +1 -0
- package/dist/src/components/charts/PieChart.d.ts +59 -0
- package/dist/src/components/charts/PieChart.d.ts.map +1 -0
- package/dist/src/components/charts/SparklineChart.d.ts +46 -0
- package/dist/src/components/charts/SparklineChart.d.ts.map +1 -0
- package/dist/src/components/charts/StatCard.d.ts +37 -0
- package/dist/src/components/charts/StatCard.d.ts.map +1 -0
- package/dist/src/components/charts/chartTheme.d.ts +166 -0
- package/dist/src/components/charts/chartTheme.d.ts.map +1 -0
- package/dist/src/components/charts/index.d.ts +9 -0
- package/dist/src/components/charts/index.d.ts.map +1 -0
- package/dist/src/components/empty-state/ComingSoon.d.ts +50 -0
- package/dist/src/components/empty-state/ComingSoon.d.ts.map +1 -0
- package/dist/src/components/empty-state/EmptyState.d.ts +49 -0
- package/dist/src/components/empty-state/EmptyState.d.ts.map +1 -0
- package/dist/src/components/empty-state/index.d.ts +3 -0
- package/dist/src/components/empty-state/index.d.ts.map +1 -0
- package/dist/src/components/forms/DynamicForm.d.ts +29 -2
- package/dist/src/components/forms/DynamicForm.d.ts.map +1 -1
- package/dist/src/components/forms/DynamicFormField.d.ts.map +1 -1
- package/dist/src/components/forms/FormFieldWrapper.d.ts +2 -2
- package/dist/src/components/forms/FormFieldWrapper.d.ts.map +1 -1
- package/dist/src/components/index.d.ts +16 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts +49 -0
- package/dist/src/components/inputs/AddDeleteButtonGroup.d.ts.map +1 -0
- package/dist/src/components/inputs/CheckboxInput.d.ts +1 -1
- package/dist/src/components/inputs/CheckboxInput.d.ts.map +1 -1
- package/dist/src/components/inputs/ComboboxInput.d.ts.map +1 -1
- package/dist/src/components/inputs/DatepickerInput.d.ts +852 -0
- package/dist/src/components/inputs/DatepickerInput.d.ts.map +1 -0
- package/dist/src/components/inputs/EmailInput.d.ts +99 -0
- package/dist/src/components/inputs/EmailInput.d.ts.map +1 -0
- package/dist/src/components/inputs/EmptyInput.d.ts +36 -0
- package/dist/src/components/inputs/EmptyInput.d.ts.map +1 -0
- package/dist/src/components/inputs/FileDropzoneInput.d.ts +91 -0
- package/dist/src/components/inputs/FileDropzoneInput.d.ts.map +1 -0
- package/dist/src/components/inputs/HiddenInput.d.ts +30 -0
- package/dist/src/components/inputs/HiddenInput.d.ts.map +1 -0
- package/dist/src/components/inputs/PhoneInput.d.ts +211 -0
- package/dist/src/components/inputs/PhoneInput.d.ts.map +1 -0
- package/dist/src/components/inputs/RichTextInput.d.ts +102 -0
- package/dist/src/components/inputs/RichTextInput.d.ts.map +1 -0
- package/dist/src/components/inputs/SelectInput.d.ts.map +1 -1
- package/dist/src/components/inputs/SelectTextInput.d.ts +222 -0
- package/dist/src/components/inputs/SelectTextInput.d.ts.map +1 -0
- package/dist/src/components/inputs/SwitchInput.d.ts +1 -1
- package/dist/src/components/inputs/SwitchInput.d.ts.map +1 -1
- package/dist/src/components/inputs/SwitchInputGroup.d.ts +93 -0
- package/dist/src/components/inputs/SwitchInputGroup.d.ts.map +1 -0
- package/dist/src/components/inputs/TagifyInput.d.ts +6 -6
- package/dist/src/components/inputs/TextAreaInput.d.ts.map +1 -1
- package/dist/src/components/{UiTextInput.d.ts → inputs/TextInput.d.ts} +7 -7
- package/dist/src/components/inputs/TextInput.d.ts.map +1 -0
- package/dist/src/components/inputs/index.d.ts +11 -0
- package/dist/src/components/inputs/index.d.ts.map +1 -1
- package/dist/src/components/layouts/CardLayout.d.ts +144 -0
- package/dist/src/components/layouts/CardLayout.d.ts.map +1 -0
- package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/InfoCard.d.ts +43 -0
- package/dist/src/components/layouts/InfoCard.d.ts.map +1 -0
- package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts +85 -0
- package/dist/src/components/layouts/ProfileHeaderAvatar.d.ts.map +1 -0
- package/dist/src/components/layouts/ProjectLogo.d.ts +67 -0
- package/dist/src/components/layouts/ProjectLogo.d.ts.map +1 -0
- package/dist/src/components/layouts/PropsTable.d.ts +38 -0
- package/dist/src/components/layouts/PropsTable.d.ts.map +1 -0
- package/dist/src/components/layouts/ShowcaseCard.d.ts +53 -0
- package/dist/src/components/layouts/ShowcaseCard.d.ts.map +1 -0
- package/dist/src/components/layouts/ShowcaseLayout.d.ts +58 -0
- package/dist/src/components/layouts/ShowcaseLayout.d.ts.map +1 -0
- package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
- package/dist/src/components/layouts/StateDisplay.d.ts +32 -0
- package/dist/src/components/layouts/StateDisplay.d.ts.map +1 -0
- package/dist/src/components/layouts/index.d.ts +8 -0
- package/dist/src/components/layouts/index.d.ts.map +1 -1
- package/dist/src/components/loading/ContentSkeleton.d.ts +53 -0
- package/dist/src/components/loading/ContentSkeleton.d.ts.map +1 -0
- package/dist/src/components/loading/SmartLoadingIndicator.d.ts +88 -0
- package/dist/src/components/loading/SmartLoadingIndicator.d.ts.map +1 -0
- package/dist/src/components/loading/index.d.ts +3 -0
- package/dist/src/components/loading/index.d.ts.map +1 -0
- package/dist/src/components/maps/GoogleMap.d.ts +224 -0
- package/dist/src/components/maps/GoogleMap.d.ts.map +1 -0
- package/dist/src/components/maps/UiInfoWindow.d.ts +223 -0
- package/dist/src/components/maps/UiInfoWindow.d.ts.map +1 -0
- package/dist/src/components/maps/UiMap.d.ts +609 -0
- package/dist/src/components/maps/UiMap.d.ts.map +1 -0
- package/dist/src/components/maps/UiMapAll.d.ts +676 -0
- package/dist/src/components/maps/UiMapAll.d.ts.map +1 -0
- package/dist/src/components/maps/UiMapMarker.d.ts +223 -0
- package/dist/src/components/maps/UiMapMarker.d.ts.map +1 -0
- package/dist/src/components/maps/index.d.ts +6 -0
- package/dist/src/components/maps/index.d.ts.map +1 -0
- package/dist/src/components/modals/AlertModal.d.ts +156 -0
- package/dist/src/components/modals/AlertModal.d.ts.map +1 -0
- package/dist/src/components/modals/BaseModal.d.ts +127 -0
- package/dist/src/components/modals/BaseModal.d.ts.map +1 -0
- package/dist/src/components/modals/ImageCropperModal.d.ts +99 -0
- package/dist/src/components/modals/ImageCropperModal.d.ts.map +1 -0
- package/dist/src/components/modals/index.d.ts +4 -0
- package/dist/src/components/modals/index.d.ts.map +1 -0
- package/dist/src/components/notifications/NotificationContainer.d.ts +3 -0
- package/dist/src/components/notifications/NotificationContainer.d.ts.map +1 -0
- package/dist/src/components/notifications/NotificationToast.d.ts +22 -0
- package/dist/src/components/notifications/NotificationToast.d.ts.map +1 -0
- package/dist/src/components/notifications/index.d.ts +3 -0
- package/dist/src/components/notifications/index.d.ts.map +1 -0
- package/dist/src/components/stepper/StepperPanels.d.ts +22 -0
- package/dist/src/components/stepper/StepperPanels.d.ts.map +1 -0
- package/dist/src/components/stepper/index.d.ts +2 -0
- package/dist/src/components/stepper/index.d.ts.map +1 -0
- package/dist/src/components/tabs/InlineTabs.d.ts +48 -0
- package/dist/src/components/tabs/InlineTabs.d.ts.map +1 -0
- package/dist/src/components/tabs/TabGroup.d.ts +55 -0
- package/dist/src/components/tabs/TabGroup.d.ts.map +1 -0
- package/dist/src/components/tabs/TabGroupUnderline.d.ts +56 -0
- package/dist/src/components/tabs/TabGroupUnderline.d.ts.map +1 -0
- package/dist/src/components/tabs/TabsInPills.d.ts +44 -0
- package/dist/src/components/tabs/TabsInPills.d.ts.map +1 -0
- package/dist/src/components/tabs/index.d.ts +5 -0
- package/dist/src/components/tabs/index.d.ts.map +1 -0
- package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts +64 -0
- package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts.map +1 -0
- package/dist/src/components/wrappers/CardWrapper.d.ts +10 -0
- package/dist/src/components/wrappers/CardWrapper.d.ts.map +1 -0
- package/dist/src/components/wrappers/DisclosureWrapper.d.ts +37 -0
- package/dist/src/components/wrappers/DisclosureWrapper.d.ts.map +1 -0
- package/dist/src/components/wrappers/FormErrorWrapper.d.ts +40 -0
- package/dist/src/components/{UiTextInput.d.ts.map → wrappers/FormErrorWrapper.d.ts.map} +1 -1
- package/dist/src/components/wrappers/index.d.ts +5 -0
- package/dist/src/components/wrappers/index.d.ts.map +1 -0
- package/dist/src/composables/index.d.ts +7 -0
- package/dist/src/composables/index.d.ts.map +1 -1
- package/dist/src/composables/useCalendar.d.ts +76 -20
- package/dist/src/composables/useCalendar.d.ts.map +1 -1
- package/dist/src/composables/useEventSegments.d.ts +74 -0
- package/dist/src/composables/useEventSegments.d.ts.map +1 -0
- package/dist/src/composables/useFormValidation.d.ts +47 -0
- package/dist/src/composables/useFormValidation.d.ts.map +1 -1
- package/dist/src/composables/useMap.d.ts +93 -0
- package/dist/src/composables/useMap.d.ts.map +1 -0
- package/dist/src/composables/useModal.d.ts +42 -2
- package/dist/src/composables/useModal.d.ts.map +1 -1
- package/dist/src/composables/useNotifications.d.ts +142 -0
- package/dist/src/composables/useNotifications.d.ts.map +1 -0
- package/dist/src/composables/useSimpleTabs.d.ts +45 -0
- package/dist/src/composables/useSimpleTabs.d.ts.map +1 -0
- package/dist/src/composables/useStringTransform.d.ts +107 -0
- package/dist/src/composables/useStringTransform.d.ts.map +1 -0
- package/dist/src/composables/useTabs.d.ts +48 -0
- package/dist/src/composables/useTabs.d.ts.map +1 -0
- package/dist/src/composables/useTheme.d.ts +37 -0
- package/dist/src/composables/useTheme.d.ts.map +1 -0
- package/dist/src/dev.d.ts +3 -0
- package/dist/src/dev.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/plugin/configure.d.ts +110 -0
- package/dist/src/plugin/configure.d.ts.map +1 -1
- package/dist/src/types/calendars.d.ts +74 -0
- package/dist/src/types/calendars.d.ts.map +1 -1
- package/dist/src/types/core.d.ts +679 -0
- package/dist/src/types/core.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +3 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/inputs.d.ts +147 -0
- package/dist/src/types/inputs.d.ts.map +1 -1
- package/dist/src/types/layouts.d.ts +25 -0
- package/dist/src/types/layouts.d.ts.map +1 -1
- package/dist/src/types/maps.d.ts +432 -0
- package/dist/src/types/maps.d.ts.map +1 -0
- package/dist/src/types/tabs.d.ts +75 -0
- package/dist/src/types/tabs.d.ts.map +1 -0
- package/dist/src/types/ui.d.ts +2 -3
- package/dist/src/types/ui.d.ts.map +1 -1
- package/dist/src/utils/calendar.d.ts +97 -5
- package/dist/src/utils/calendar.d.ts.map +1 -1
- package/dist/src/utils/countryCodes.d.ts +27 -0
- package/dist/src/utils/countryCodes.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +4 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/mapThemes.d.ts +90 -0
- package/dist/src/utils/mapThemes.d.ts.map +1 -0
- package/dist/src/utils/phone.d.ts +73 -0
- package/dist/src/utils/phone.d.ts.map +1 -0
- package/dist/src/utils/transitions.d.ts +55 -0
- package/dist/src/utils/transitions.d.ts.map +1 -0
- package/dist/src/views/components/index.d.ts +15 -0
- package/dist/src/views/components/index.d.ts.map +1 -0
- package/dist/src/views/examples/index.d.ts +5 -0
- package/dist/src/views/examples/index.d.ts.map +1 -0
- package/dist/src/views/forms/index.d.ts +3 -0
- package/dist/src/views/forms/index.d.ts.map +1 -0
- package/dist/src/views/index.d.ts +23 -0
- package/dist/src/views/index.d.ts.map +1 -0
- package/dist/src/views/inputs/index.d.ts +13 -0
- package/dist/src/views/inputs/index.d.ts.map +1 -0
- package/dist/src/views/layouts/index.d.ts +5 -0
- package/dist/src/views/layouts/index.d.ts.map +1 -0
- package/dist/stepper/StepperPanels.d.ts +3 -0
- package/dist/stepper/StepperPanels.js +5 -0
- package/dist/stepper/StepperPanels.js.map +1 -0
- package/dist/stepper/index.d.ts +1 -0
- package/dist/stepper/index.js +5 -0
- package/dist/stepper/index.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/tabs/InlineTabs.d.ts +3 -0
- package/dist/tabs/InlineTabs.js +5 -0
- package/dist/tabs/InlineTabs.js.map +1 -0
- package/dist/tabs/TabGroup.d.ts +3 -0
- package/dist/tabs/TabGroup.js +5 -0
- package/dist/tabs/TabGroup.js.map +1 -0
- package/dist/tabs/TabGroupUnderline.d.ts +3 -0
- package/dist/tabs/TabGroupUnderline.js +5 -0
- package/dist/tabs/TabGroupUnderline.js.map +1 -0
- package/dist/tabs/TabsInPills.d.ts +3 -0
- package/dist/tabs/TabsInPills.js +5 -0
- package/dist/tabs/TabsInPills.js.map +1 -0
- package/dist/tabs/index.d.ts +1 -0
- package/dist/tabs/index.js +11 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/tabs-Da32Mbhf.js +202 -0
- package/dist/tabs-Da32Mbhf.js.map +1 -0
- package/dist/transition-_rPfnoET.js +191 -0
- package/dist/transition-_rPfnoET.js.map +1 -0
- package/dist/use-outside-click-DNDV36Sc.js +151 -0
- package/dist/use-outside-click-DNDV36Sc.js.map +1 -0
- package/dist/use-resolve-button-type-h6n-lm9q.js +20 -0
- package/dist/use-resolve-button-type-h6n-lm9q.js.map +1 -0
- package/dist/use-text-value-DKnkjK00.js +44 -0
- package/dist/use-text-value-DKnkjK00.js.map +1 -0
- package/dist/use-tree-walker-BHCORE7u.js +16 -0
- package/dist/use-tree-walker-BHCORE7u.js.map +1 -0
- package/dist/useEventSegments-B-r_8zCW.js +97 -0
- package/dist/useEventSegments-B-r_8zCW.js.map +1 -0
- package/dist/useMap-BaZEIoWM.js +525 -0
- package/dist/useMap-BaZEIoWM.js.map +1 -0
- package/dist/useSimpleTabs-CSgkChEU.js +103 -0
- package/dist/useSimpleTabs-CSgkChEU.js.map +1 -0
- package/dist/useStringTransform-CSr7nZWg.js +140 -0
- package/dist/useStringTransform-CSr7nZWg.js.map +1 -0
- package/dist/vue-datepicker-CEn0-fJj.js +4871 -0
- package/dist/vue-datepicker-CEn0-fJj.js.map +1 -0
- package/dist/vue-router-BPbyZ7xA.js +145 -0
- package/dist/vue-router-BPbyZ7xA.js.map +1 -0
- package/dist/vue3-lottie.es-C_MDkNwR.js +7976 -0
- package/dist/vue3-lottie.es-C_MDkNwR.js.map +1 -0
- package/dist/wrappers/BackgroundGradientWrapper.d.ts +3 -0
- package/dist/wrappers/BackgroundGradientWrapper.js +5 -0
- package/dist/wrappers/BackgroundGradientWrapper.js.map +1 -0
- package/dist/wrappers/CardWrapper.d.ts +3 -0
- package/dist/wrappers/CardWrapper.js +5 -0
- package/dist/wrappers/CardWrapper.js.map +1 -0
- package/dist/wrappers/DisclosureWrapper.d.ts +3 -0
- package/dist/wrappers/DisclosureWrapper.js +5 -0
- package/dist/wrappers/DisclosureWrapper.js.map +1 -0
- package/dist/wrappers/FormErrorWrapper.d.ts +3 -0
- package/dist/wrappers/FormErrorWrapper.js +5 -0
- package/dist/wrappers/FormErrorWrapper.js.map +1 -0
- package/dist/wrappers/index.d.ts +1 -0
- package/dist/wrappers/index.js +11 -0
- package/dist/wrappers/index.js.map +1 -0
- package/package.json +36 -4
- package/scripts/build-css.cjs +1 -1
- package/scripts/generate-config.cjs +1 -0
- package/scripts/generateRecursiveIndex.cjs +4 -1
- package/tailwind.config.js +1 -1
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js +0 -70
- package/dist/CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js.map +0 -1
- package/dist/CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js.map +0 -1
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-LE2kDHpU.js +0 -1300
- package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-LE2kDHpU.js.map +0 -1
- package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-Cg83utkU.js.map +0 -1
- package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-xE5bCa3O.js +0 -123
- package/dist/DayCalendar.vue_vue_type_script_setup_true_lang-xE5bCa3O.js.map +0 -1
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js +0 -217
- package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js.map +0 -1
- package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js.map +0 -1
- package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js.map +0 -1
- package/dist/MonthCalendar.vue_vue_type_script_setup_true_lang-B9Bs0z8j.js +0 -66
- package/dist/MonthCalendar.vue_vue_type_script_setup_true_lang-B9Bs0z8j.js.map +0 -1
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js +0 -522
- package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js.map +0 -1
- package/dist/SidebarLayout.vue_vue_type_script_setup_true_lang-CzLbBcNS.js.map +0 -1
- package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js.map +0 -1
- package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js.map +0 -1
- package/dist/TextAreaInput.vue_vue_type_script_setup_true_lang-CbR651TU.js.map +0 -1
- package/dist/UiAvatar.vue_vue_type_script_setup_true_lang-CDNjUA1L.js.map +0 -1
- package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js +0 -82
- package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js.map +0 -1
- package/dist/UiLoading.vue_vue_type_script_setup_true_lang-KbLKA4SA.js.map +0 -1
- package/dist/UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js +0 -163
- package/dist/UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js.map +0 -1
- package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js +0 -222
- package/dist/UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js.map +0 -1
- package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-D4-B3A7K.js +0 -51
- package/dist/UiProgressBar.vue_vue_type_script_setup_true_lang-D4-B3A7K.js.map +0 -1
- package/dist/UiTable.vue_vue_type_script_setup_true_lang-hI1_xamh.js.map +0 -1
- package/dist/WeekCalendar.vue_vue_type_script_setup_true_lang-DAFQiRI9.js +0 -154
- package/dist/WeekCalendar.vue_vue_type_script_setup_true_lang-DAFQiRI9.js.map +0 -1
- package/dist/XMarkIcon-C4wILUsz.js.map +0 -1
- package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-BfJkvmpN.js +0 -29
- package/dist/YearCalendar.vue_vue_type_script_setup_true_lang-BfJkvmpN.js.map +0 -1
- package/dist/calculate-active-index-CksdUwZY.js +0 -87
- package/dist/calculate-active-index-CksdUwZY.js.map +0 -1
- package/dist/calendar-905Ofszh.js +0 -77
- package/dist/calendar-905Ofszh.js.map +0 -1
- package/dist/components/TextInput.d.ts +0 -3
- package/dist/components/TextInput.js.map +0 -1
- package/dist/dialog-U1KNiPzc.js.map +0 -1
- package/dist/form-DQKuKVqJ.js +0 -51
- package/dist/form-DQKuKVqJ.js.map +0 -1
- package/dist/keyboard-DJD8TwH4.js +0 -113
- package/dist/keyboard-DJD8TwH4.js.map +0 -1
- package/dist/open-closed-DgcU-HDT.js +0 -179
- package/dist/open-closed-DgcU-HDT.js.map +0 -1
- package/dist/transition-CuxxW9dY.js +0 -209
- package/dist/transition-CuxxW9dY.js.map +0 -1
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { defineComponent as V, ref as p, watch as z, onMounted as A, createBlock as w, openBlock as u, withCtx as g, createElementVNode as d, normalizeClass as F, createElementBlock as c, Fragment as T, renderList as S, withDirectives as k, toDisplayString as h, normalizeStyle as Q, withKeys as C, withModifiers as y, vModelText as B, createVNode as U, unref as R, createCommentVNode as K, renderSlot as L, nextTick as W } from "vue";
|
|
2
|
+
import { _ } from "./UiBadge.vue_vue_type_script_setup_true_lang-CV8WVEXL.js";
|
|
3
3
|
import j from "./forms/FormFieldWrapper.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
7
|
-
viewBox: "0 0 20 20",
|
|
8
|
-
fill: "currentColor",
|
|
9
|
-
"aria-hidden": "true",
|
|
10
|
-
"data-slot": "icon"
|
|
11
|
-
}, [
|
|
12
|
-
d("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
|
|
13
|
-
]);
|
|
14
|
-
}
|
|
15
|
-
const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "onKeydown", "onBlur"], X = ["onClick", "disabled"], Y = { class: "sl-flex-1 sl-min-w-0 sl-relative" }, _ = ["placeholder", "disabled", "onKeydown"], ee = { class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto" }, te = {
|
|
4
|
+
import { r as G } from "./XMarkIcon-DNvCkiOy.js";
|
|
5
|
+
const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "onKeydown", "onBlur"], X = ["onClick", "disabled"], Y = { class: "sl-flex-1 sl-min-w-0 sl-relative" }, Z = ["placeholder", "disabled", "onKeydown"], ee = { class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto" }, te = {
|
|
16
6
|
key: 0,
|
|
17
7
|
class: "sl-absolute sl-z-50 sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white sl-py-1 sl-text-base sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5 focus:sl-outline-none sm:sl-text-sm"
|
|
18
8
|
}, le = ["onClick"], se = { class: "sl-flex" }, ae = { class: "sl-truncate sl-font-semibold" }, ne = { class: "sl-block sl-truncate" }, oe = {
|
|
19
9
|
key: 0,
|
|
20
10
|
class: "sl-ml-2 sl-truncate sl-text-gray-500"
|
|
21
|
-
},
|
|
11
|
+
}, ce = /* @__PURE__ */ V({
|
|
22
12
|
__name: "TagifyInput",
|
|
23
13
|
props: {
|
|
24
14
|
items: {
|
|
@@ -91,8 +81,8 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
|
|
|
91
81
|
}
|
|
92
82
|
},
|
|
93
83
|
emits: ["update:value", "update:query", "invalid-tag"],
|
|
94
|
-
setup(s, { expose:
|
|
95
|
-
const t = s, m = D,
|
|
84
|
+
setup(s, { expose: N, emit: D }) {
|
|
85
|
+
const t = s, m = D, i = p(""), f = p([]), n = p(JSON.parse(JSON.stringify(t.value))), v = p(!1);
|
|
96
86
|
z(
|
|
97
87
|
() => t.value,
|
|
98
88
|
(e) => {
|
|
@@ -100,57 +90,57 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
|
|
|
100
90
|
},
|
|
101
91
|
{ deep: !0 }
|
|
102
92
|
);
|
|
103
|
-
const
|
|
104
|
-
if (
|
|
105
|
-
m("update:query",
|
|
106
|
-
const e =
|
|
107
|
-
|
|
93
|
+
const $ = (e) => e[t.itemSubtext] || e[t.itemText], q = (e) => e[t.itemSubtext] ? e[t.itemText] : void 0, E = (e) => e[t.tagDisplayKey] || e[t.itemText], I = () => {
|
|
94
|
+
if (i.value && i.value.length > 0) {
|
|
95
|
+
m("update:query", i.value);
|
|
96
|
+
const e = i.value.toLowerCase();
|
|
97
|
+
f.value = t.items.filter((a) => a[t.itemText]?.toLowerCase().includes(e) || a[t.itemSubtext]?.toLowerCase().includes(e)), v.value = !0;
|
|
108
98
|
} else
|
|
109
|
-
|
|
99
|
+
f.value = [], v.value = !1;
|
|
110
100
|
}, J = () => {
|
|
111
|
-
const e =
|
|
101
|
+
const e = i.value.trim();
|
|
112
102
|
if (e === "")
|
|
113
103
|
return;
|
|
114
104
|
let a = null;
|
|
115
|
-
const l = e.toLowerCase(),
|
|
105
|
+
const l = e.toLowerCase(), r = t.items.find(
|
|
116
106
|
(o) => o[t.itemText]?.toLowerCase() === l || o[t.itemSubtext]?.toLowerCase() === l
|
|
117
107
|
);
|
|
118
|
-
if (
|
|
119
|
-
a = { ...
|
|
108
|
+
if (r)
|
|
109
|
+
a = { ...r };
|
|
120
110
|
else if (t.pattern && t.pattern.test(e))
|
|
121
111
|
a = { id: null, [t.itemText]: e };
|
|
122
112
|
else
|
|
123
113
|
return;
|
|
124
114
|
n.value.some(
|
|
125
115
|
(o) => o[t.itemText] === a[t.itemText]
|
|
126
|
-
) || (n.value.push(a), m("update:value", n.value)),
|
|
127
|
-
},
|
|
116
|
+
) || (n.value.push(a), m("update:value", n.value)), i.value = "", f.value = [], v.value = !1;
|
|
117
|
+
}, O = (e) => {
|
|
128
118
|
const a = e[t.itemText].trim();
|
|
129
119
|
n.value.some(
|
|
130
120
|
(l) => l[t.itemText] === a
|
|
131
|
-
) || (n.value.push({ ...e }), m("update:value", n.value)),
|
|
132
|
-
},
|
|
121
|
+
) || (n.value.push({ ...e }), m("update:value", n.value)), i.value = "", f.value = [], v.value = !1;
|
|
122
|
+
}, b = (e) => {
|
|
133
123
|
n.value.splice(e, 1), m("update:value", n.value);
|
|
134
|
-
},
|
|
124
|
+
}, M = (e) => {
|
|
135
125
|
n.value[e].isEditing = !0, W(() => {
|
|
136
126
|
});
|
|
137
|
-
},
|
|
127
|
+
}, x = (e) => {
|
|
138
128
|
const a = n.value[e];
|
|
139
129
|
if (a) {
|
|
140
130
|
a.isEditing = !1;
|
|
141
131
|
const l = a[t.itemText].trim();
|
|
142
132
|
if (t.pattern && !t.pattern.test(l)) {
|
|
143
|
-
m("invalid-tag", l),
|
|
133
|
+
m("invalid-tag", l), b(e);
|
|
144
134
|
return;
|
|
145
135
|
}
|
|
146
136
|
a[t.itemText] = l, m("update:value", n.value);
|
|
147
137
|
}
|
|
148
138
|
};
|
|
149
139
|
return A(() => {
|
|
150
|
-
|
|
151
|
-
}),
|
|
140
|
+
f.value = [];
|
|
141
|
+
}), N({
|
|
152
142
|
selectedTags: n
|
|
153
|
-
}), (e, a) => (
|
|
143
|
+
}), (e, a) => (u(), w(j, {
|
|
154
144
|
id: s.name,
|
|
155
145
|
name: s.name,
|
|
156
146
|
label: s.label,
|
|
@@ -160,70 +150,70 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
|
|
|
160
150
|
optional: s.optional
|
|
161
151
|
}, {
|
|
162
152
|
"tertiary-label-overlay": g(() => [
|
|
163
|
-
|
|
153
|
+
L(e.$slots, "tertiary-overlay")
|
|
164
154
|
]),
|
|
165
155
|
default: g(() => [
|
|
166
156
|
d("div", {
|
|
167
|
-
class:
|
|
157
|
+
class: F(["sl-flex sl-flex-wrap sl-items-center sl-gap-4 sl-rounded-md sl-bg-white sl-px-3 sm:sl-text-sm sm:sl-leading-6", s.inline ? null : "sl-shadow-sm sl-border sl-border-gray-300 focus-within:sl-ring-2 focus-within:sl-ring-stachelock-600"])
|
|
168
158
|
}, [
|
|
169
|
-
(
|
|
170
|
-
key:
|
|
171
|
-
onClick: (o) =>
|
|
159
|
+
(u(!0), c(T, null, S(n.value, (l, r) => (u(), w(_, {
|
|
160
|
+
key: r,
|
|
161
|
+
onClick: (o) => M(r),
|
|
172
162
|
theme: "primary",
|
|
173
163
|
size: "sm"
|
|
174
164
|
}, {
|
|
175
165
|
default: g(() => [
|
|
176
|
-
l.isEditing ?
|
|
166
|
+
l.isEditing ? k((u(), c("input", {
|
|
177
167
|
key: 1,
|
|
178
168
|
ref_for: !0,
|
|
179
169
|
ref: "editInput",
|
|
180
170
|
"onUpdate:modelValue": (o) => l[t.itemText] = o,
|
|
181
171
|
placeholder: s.placeholder,
|
|
182
172
|
disabled: s.disabled,
|
|
183
|
-
onKeydown:
|
|
184
|
-
onBlur: (o) =>
|
|
173
|
+
onKeydown: C(y((o) => x(r), ["prevent"]), ["enter"]),
|
|
174
|
+
onBlur: (o) => x(r),
|
|
185
175
|
class: "sl-bg-transparent sl-border-none sl-outline-none sl-text-stachelock-600 sl-text-sm placeholder:sl-text-stachelock-400/80 focus:sl-ring-0 focus:sl-ring-stachelock-600 focus:sl-rounded-lg -sl-mx-3 -sl-my-2",
|
|
186
|
-
style:
|
|
176
|
+
style: Q({ width: l[t.itemText].length + 4 + "ch" })
|
|
187
177
|
}, null, 44, P)), [
|
|
188
178
|
[B, l[t.itemText]]
|
|
189
|
-
]) : (
|
|
179
|
+
]) : (u(), c("span", H, h(E(l)), 1)),
|
|
190
180
|
d("button", {
|
|
191
181
|
type: "button",
|
|
192
182
|
class: "sl-ml-2 sl-text-stachelock-600 hover:sl-text-stachelock-400 focus:sl-outline-none",
|
|
193
|
-
onClick: y((o) =>
|
|
183
|
+
onClick: y((o) => b(r), ["stop"]),
|
|
194
184
|
disabled: s.disabled
|
|
195
185
|
}, [
|
|
196
|
-
|
|
186
|
+
U(R(G), { class: "sl-h-4 sl-w-4" })
|
|
197
187
|
], 8, X)
|
|
198
188
|
]),
|
|
199
189
|
_: 2
|
|
200
190
|
}, 1032, ["onClick"]))), 128)),
|
|
201
191
|
d("div", Y, [
|
|
202
|
-
|
|
192
|
+
k(d("input", {
|
|
203
193
|
ref: "input",
|
|
204
|
-
"onUpdate:modelValue": a[0] || (a[0] = (l) =>
|
|
194
|
+
"onUpdate:modelValue": a[0] || (a[0] = (l) => i.value = l),
|
|
205
195
|
placeholder: s.placeholder,
|
|
206
|
-
onInput:
|
|
196
|
+
onInput: I,
|
|
207
197
|
disabled: s.disabled,
|
|
208
|
-
onKeydown:
|
|
198
|
+
onKeydown: C(y(J, ["prevent"]), ["enter"]),
|
|
209
199
|
class: "sl-w-full sl-border-none sl-outline-none sl-rounded-md focus:sl-ring-0 sl-text-sm sl-font-light -sl-mx-3 sl-pr-12"
|
|
210
|
-
}, null, 40,
|
|
211
|
-
[B,
|
|
200
|
+
}, null, 40, Z), [
|
|
201
|
+
[B, i.value]
|
|
212
202
|
]),
|
|
213
203
|
d("div", ee, [
|
|
214
|
-
|
|
204
|
+
L(e.$slots, "input-overlay")
|
|
215
205
|
]),
|
|
216
|
-
|
|
217
|
-
(
|
|
206
|
+
v.value && !s.disabled ? (u(), c("div", te, [
|
|
207
|
+
(u(!0), c(T, null, S(f.value, (l) => (u(), c("div", {
|
|
218
208
|
key: l[s.itemKey],
|
|
219
209
|
class: "sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 hover:sl-bg-stachelock-600 hover:sl-text-white",
|
|
220
|
-
onClick: y((
|
|
210
|
+
onClick: y((r) => O(l), ["prevent"])
|
|
221
211
|
}, [
|
|
222
212
|
d("div", se, [
|
|
223
213
|
d("span", ae, [
|
|
224
|
-
d("span", ne, h(
|
|
214
|
+
d("span", ne, h($(l)), 1)
|
|
225
215
|
]),
|
|
226
|
-
s.showSubext ? (
|
|
216
|
+
s.showSubext ? (u(), c("span", oe, h(q(l)), 1)) : K("", !0)
|
|
227
217
|
])
|
|
228
218
|
], 8, le))), 128))
|
|
229
219
|
])) : K("", !0)
|
|
@@ -235,6 +225,6 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
|
|
|
235
225
|
}
|
|
236
226
|
});
|
|
237
227
|
export {
|
|
238
|
-
|
|
228
|
+
ce as _
|
|
239
229
|
};
|
|
240
|
-
//# sourceMappingURL=TagifyInput.vue_vue_type_script_setup_true_lang-
|
|
230
|
+
//# sourceMappingURL=TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagifyInput.vue_vue_type_script_setup_true_lang-CAK6ZIiz.js","sources":["../src/components/inputs/TagifyInput.vue"],"sourcesContent":["<template>\n <FormFieldWrapper\n :id=\"name\"\n :name=\"name\"\n :label=\"label\"\n :tertiary-label=\"tertiaryLabel\"\n :error-message=\"errorMessage\"\n :disabled=\"disabled\"\n :optional=\"optional\"\n >\n <template #tertiary-label-overlay>\n <slot name=\"tertiary-overlay\"></slot>\n </template>\n \n <div class=\"sl-flex sl-flex-wrap sl-items-center sl-gap-4 sl-rounded-md sl-bg-white sl-px-3 sm:sl-text-sm sm:sl-leading-6\"\n :class=\"inline ? null : 'sl-shadow-sm sl-border sl-border-gray-300 focus-within:sl-ring-2 focus-within:sl-ring-stachelock-600'\">\n <!-- Display selected tags as badges -->\n <UiBadge v-for=\"(tag, index) in selectedTags\" :key=\"index\" @click=\"editTag(index)\" theme=\"primary\" size=\"sm\">\n <span v-if=\"!tag.isEditing\">{{ tagDisplay(tag) }}</span>\n <input v-else ref=\"editInput\" v-model=\"tag[props.itemText]\" :placeholder=\"placeholder\"\n :disabled=\"disabled\" @keydown.enter.prevent=\"stopEditingTag(index)\"\n @blur=\"stopEditingTag(index)\"\n class=\"sl-bg-transparent sl-border-none sl-outline-none sl-text-stachelock-600 sl-text-sm placeholder:sl-text-stachelock-400/80 focus:sl-ring-0 focus:sl-ring-stachelock-600 focus:sl-rounded-lg -sl-mx-3 -sl-my-2\"\n :style=\"{ width: tag[props.itemText].length + 4 + 'ch' }\" />\n <button type=\"button\" class=\"sl-ml-2 sl-text-stachelock-600 hover:sl-text-stachelock-400 focus:sl-outline-none\"\n @click.stop=\"removeTag(index)\" :disabled=\"disabled\">\n <XMarkIcon class=\"sl-h-4 sl-w-4\" />\n </button>\n </UiBadge>\n <!-- Input for adding new tags -->\n <div class=\"sl-flex-1 sl-min-w-0 sl-relative\">\n <input ref=\"input\" v-model=\"query\" :placeholder=\"placeholder\" @input=\"filterItems\"\n :disabled=\"disabled\" @keydown.enter.prevent=\"addTag\"\n class=\"sl-w-full sl-border-none sl-outline-none sl-rounded-md focus:sl-ring-0 sl-text-sm sl-font-light -sl-mx-3 sl-pr-12\" />\n <!-- Overlay slot aligned to the far right -->\n <div class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto\">\n <slot name=\"input-overlay\" />\n </div>\n <!-- Suggestions Dropdown -->\n <div v-if=\"showDropdown && !disabled\"\n class=\"sl-absolute sl-z-50 sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white sl-py-1 sl-text-base sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5 focus:sl-outline-none sm:sl-text-sm\">\n <div v-for=\"item in filteredItems\" :key=\"item[itemKey]\"\n class=\"sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 hover:sl-bg-stachelock-600 hover:sl-text-white\"\n @click.prevent=\"selectSuggestion(item)\">\n <div class=\"sl-flex\">\n <span class=\"sl-truncate sl-font-semibold\">\n <span class=\"sl-block sl-truncate\">{{ itemDisplay(item) }}</span>\n </span>\n <span v-if=\"showSubext\" class=\"sl-ml-2 sl-truncate sl-text-gray-500\">\n {{ itemSecondaryDisplay(item) }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </FormFieldWrapper>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch, onMounted, nextTick } from 'vue';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport UiBadge from '../UiBadge.vue';\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue';\n\ninterface Item {\n id: string | number | null;\n [key: string]: any; // Allows dynamic keys like 'value' or 'name'\n}\n\nconst props = defineProps({\n items: {\n type: Array as () => Item[],\n required: true,\n },\n value: {\n type: Array as () => Item[],\n default: () => [],\n },\n name: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: false,\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'value',\n },\n itemSubtext: {\n type: String,\n default: 'name',\n },\n showSubext: {\n type: Boolean,\n default: true\n },\n tagDisplayKey: {\n type: String,\n default: 'name',\n },\n tertiaryLabel: {\n type: String,\n required: false,\n },\n pattern: {\n type: RegExp,\n default: null,\n },\n inline: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: 'Add a tag...',\n },\n disabled: {\n type: Boolean,\n default: false\n },\n optional: {\n type: Boolean,\n default: false\n },\n errorMessage: {\n type: String,\n default: ''\n },\n hasInputRing: {\n type: Boolean,\n default: false\n }\n});\n\nconst emits = defineEmits(['update:value', 'update:query', 'invalid-tag']);\n\nconst query = ref<string>('');\nconst filteredItems = ref<Item[]>([]);\nconst selectedTags = ref<Item[]>(JSON.parse(JSON.stringify(props.value)));\nconst showDropdown = ref(false);\n\nwatch(\n () => props.value,\n (newVal) => {\n if (JSON.stringify(newVal) !== JSON.stringify(selectedTags.value)) {\n selectedTags.value = JSON.parse(JSON.stringify(newVal));\n }\n },\n { deep: true }\n);\n\nconst itemDisplay = (item: Item) => item[props.itemSubtext] || item[props.itemText];\nconst itemSecondaryDisplay = (item: Item) => item[props.itemSubtext] ? item[props.itemText] : undefined;\nconst tagDisplay = (tag: Item) => tag[props.tagDisplayKey] || tag[props.itemText];\n\nconst filterItems = () => {\n if (query.value && query.value.length > 0) {\n emits('update:query', query.value);\n\n // Simple filtering logic\n const lowerQuery = query.value.toLowerCase();\n filteredItems.value = props.items.filter((item) => {\n return (\n item[props.itemText]?.toLowerCase().includes(lowerQuery) ||\n item[props.itemSubtext]?.toLowerCase().includes(lowerQuery)\n );\n });\n showDropdown.value = true;\n } else {\n filteredItems.value = [];\n showDropdown.value = false;\n }\n};\n\nconst addTag = () => {\n const trimmedQuery = query.value.trim();\n if (trimmedQuery === '') {\n return;\n }\n\n let tagToAdd: Item | null = null;\n\n const lowerQuery = trimmedQuery.toLowerCase();\n\n // Check if the query matches any item in the items list\n const matchedItem = props.items.find(\n (item) =>\n item[props.itemText]?.toLowerCase() === lowerQuery ||\n item[props.itemSubtext]?.toLowerCase() === lowerQuery\n );\n\n if (matchedItem) {\n tagToAdd = { ...matchedItem };\n } else if (props.pattern && props.pattern.test(trimmedQuery)) {\n // Create a new item if it doesn't exist and matches the pattern\n tagToAdd = { id: null, [props.itemText]: trimmedQuery };\n } else {\n // Do not emit invalid-tag here; let the user continue typing\n return;\n }\n\n // Avoid duplicates\n if (\n !selectedTags.value.some(\n (tag) => tag[props.itemText] === tagToAdd![props.itemText]\n )\n ) {\n selectedTags.value.push(tagToAdd!);\n emits('update:value', selectedTags.value);\n }\n\n query.value = '';\n filteredItems.value = [];\n showDropdown.value = false;\n};\n\nconst selectSuggestion = (item: Item) => {\n const valueToTest = item[props.itemText].trim();\n\n // Avoid duplicates\n if (\n !selectedTags.value.some(\n (tag) => tag[props.itemText] === valueToTest\n )\n ) {\n selectedTags.value.push({ ...item });\n emits('update:value', selectedTags.value);\n }\n query.value = '';\n filteredItems.value = [];\n showDropdown.value = false;\n};\n\nconst removeTag = (index: number) => {\n selectedTags.value.splice(index, 1);\n emits('update:value', selectedTags.value);\n};\n\nconst editTag = (index: number) => {\n selectedTags.value[index].isEditing = true;\n nextTick(() => {\n // Focus logic can be added here if needed\n });\n};\n\nconst stopEditingTag = (index: number) => {\n const tag = selectedTags.value[index];\n if (tag) {\n tag.isEditing = false;\n const valueToTest = tag[props.itemText].trim();\n\n // Validate tag if pattern is provided\n if (props.pattern && !props.pattern.test(valueToTest)) {\n emits('invalid-tag', valueToTest);\n removeTag(index);\n return;\n }\n\n // Update the tag value after trimming\n tag[props.itemText] = valueToTest;\n emits('update:value', selectedTags.value);\n }\n};\n\nonMounted(() => {\n // Initialize filteredItems\n filteredItems.value = [];\n});\n\ndefineExpose({\n selectedTags,\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["props","__props","emits","__emit","query","ref","filteredItems","selectedTags","showDropdown","watch","newVal","itemDisplay","item","itemSecondaryDisplay","tagDisplay","tag","filterItems","lowerQuery","addTag","trimmedQuery","tagToAdd","matchedItem","selectSuggestion","valueToTest","removeTag","index","editTag","nextTick","stopEditingTag","onMounted","__expose","_createBlock","FormFieldWrapper","_renderSlot","_ctx","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","UiBadge","$event","_withKeys","_withModifiers","_hoisted_1","_toDisplayString","_createVNode","_unref","XMarkIcon","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineComponent as S, ref as z, watch as
|
|
1
|
+
import { defineComponent as S, ref as z, watch as b, computed as F, createElementBlock as n, openBlock as u, createVNode as O, unref as a, withCtx as g, createElementVNode as h, withDirectives as I, createCommentVNode as f, mergeProps as N, isRef as R, vModelText as j, toDisplayString as i } from "vue";
|
|
2
2
|
import { useField as A } from "vee-validate";
|
|
3
3
|
import D from "./forms/FormFieldWrapper.js";
|
|
4
4
|
import { g as E } from "./id-DafBB_QF.js";
|
|
5
5
|
const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name", "disabled", "placeholder", "spellcheck", "rows", "maxlength"], U = {
|
|
6
6
|
key: 0,
|
|
7
|
-
class: "sl-absolute sl-bottom-2 sl-right-2 sl-text-xs sl-text-slate-500 sl-pointer-events-none"
|
|
7
|
+
class: "sl-absolute sl-bottom-2 sl-right-2 sl-text-xs sl-text-slate-500 dark:sl-text-slate-200 sl-pointer-events-none"
|
|
8
8
|
}, W = { key: 0 }, Q = /* @__PURE__ */ S({
|
|
9
9
|
__name: "TextAreaInput",
|
|
10
10
|
props: {
|
|
@@ -26,8 +26,8 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
26
26
|
boxShadow: { type: Boolean, default: !1 }
|
|
27
27
|
},
|
|
28
28
|
emits: ["update:modelValue", "blur", "focus"],
|
|
29
|
-
setup(y, { expose: v, emit:
|
|
30
|
-
const s = y,
|
|
29
|
+
setup(y, { expose: v, emit: k }) {
|
|
30
|
+
const s = y, d = k, t = z(), c = E(s.name), { value: l, errorMessage: p, handleBlur: w, handleChange: m, meta: o } = A(
|
|
31
31
|
() => s.name,
|
|
32
32
|
s.rules,
|
|
33
33
|
{
|
|
@@ -36,18 +36,18 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
36
36
|
syncVModel: !0
|
|
37
37
|
}
|
|
38
38
|
);
|
|
39
|
-
|
|
39
|
+
b(
|
|
40
40
|
() => s.modelValue,
|
|
41
41
|
(e) => {
|
|
42
42
|
e !== l.value && (l.value = e || "");
|
|
43
43
|
}
|
|
44
|
-
),
|
|
44
|
+
), b(
|
|
45
45
|
l,
|
|
46
46
|
(e) => {
|
|
47
|
-
|
|
47
|
+
d("update:modelValue", e);
|
|
48
48
|
}
|
|
49
49
|
);
|
|
50
|
-
const
|
|
50
|
+
const x = F(() => {
|
|
51
51
|
const e = [
|
|
52
52
|
"sl-w-full",
|
|
53
53
|
"sl-px-3",
|
|
@@ -56,6 +56,11 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
56
56
|
"sl-border",
|
|
57
57
|
"sl-rounded-md",
|
|
58
58
|
"sl-bg-white",
|
|
59
|
+
"dark:sl-bg-slate-900",
|
|
60
|
+
"sl-text-gray-900",
|
|
61
|
+
"dark:sl-text-slate-100",
|
|
62
|
+
"placeholder:sl-text-gray-400",
|
|
63
|
+
"dark:placeholder:sl-text-slate-500",
|
|
59
64
|
"sl-transition-all",
|
|
60
65
|
"sl-duration-200",
|
|
61
66
|
"focus:sl-outline-none",
|
|
@@ -67,32 +72,39 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
67
72
|
];
|
|
68
73
|
return s.disabled ? e.push(
|
|
69
74
|
"sl-bg-gray-50",
|
|
75
|
+
"dark:sl-bg-slate-800",
|
|
70
76
|
"sl-text-gray-500",
|
|
77
|
+
"dark:sl-text-slate-300",
|
|
71
78
|
"sl-cursor-not-allowed",
|
|
72
|
-
"sl-border-gray-200"
|
|
73
|
-
|
|
79
|
+
"sl-border-gray-200",
|
|
80
|
+
"dark:sl-border-slate-700"
|
|
81
|
+
) : p.value ? e.push(
|
|
74
82
|
"sl-border-red-300",
|
|
83
|
+
"dark:sl-border-red-500",
|
|
75
84
|
"focus:sl-ring-red-500",
|
|
76
85
|
"focus:sl-border-red-500"
|
|
77
|
-
) :
|
|
86
|
+
) : o.valid && o.touched ? e.push(
|
|
78
87
|
"sl-border-green-300",
|
|
88
|
+
"dark:sl-border-green-500",
|
|
79
89
|
"focus:sl-ring-green-500",
|
|
80
90
|
"focus:sl-border-green-500"
|
|
81
91
|
) : e.push(
|
|
82
92
|
"sl-border-gray-300",
|
|
83
|
-
"
|
|
93
|
+
"dark:sl-border-slate-600",
|
|
94
|
+
"hover:sl-border-gray-400",
|
|
95
|
+
"dark:hover:sl-border-slate-500"
|
|
84
96
|
), e.join(" ");
|
|
85
|
-
}),
|
|
86
|
-
const
|
|
87
|
-
s.lazy ||
|
|
88
|
-
},
|
|
97
|
+
}), B = (e) => {
|
|
98
|
+
const r = e.target;
|
|
99
|
+
s.lazy || m(r.value);
|
|
100
|
+
}, M = (e) => {
|
|
89
101
|
if (s.lazy) {
|
|
90
|
-
const
|
|
91
|
-
|
|
102
|
+
const r = e.target;
|
|
103
|
+
m(r.value);
|
|
92
104
|
}
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
|
|
105
|
+
w(e), d("blur", e);
|
|
106
|
+
}, V = (e) => {
|
|
107
|
+
d("focus", e);
|
|
96
108
|
};
|
|
97
109
|
return v({
|
|
98
110
|
focus: () => {
|
|
@@ -102,7 +114,7 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
102
114
|
t.value?.blur();
|
|
103
115
|
},
|
|
104
116
|
textareaRef: t
|
|
105
|
-
}), (e,
|
|
117
|
+
}), (e, r) => (u(), n("div", L, [
|
|
106
118
|
O(D, {
|
|
107
119
|
id: a(c),
|
|
108
120
|
name: e.name,
|
|
@@ -111,26 +123,26 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
111
123
|
optional: !e.rules,
|
|
112
124
|
"tertiary-label": e.tertiaryLabel,
|
|
113
125
|
"box-shadow": e.boxShadow,
|
|
114
|
-
"error-message": a(
|
|
126
|
+
"error-message": a(p),
|
|
115
127
|
"success-message": e.successMessage,
|
|
116
|
-
"is-valid": a(
|
|
117
|
-
"is-touched": a(
|
|
128
|
+
"is-valid": a(o).valid,
|
|
129
|
+
"is-touched": a(o).touched
|
|
118
130
|
}, {
|
|
119
131
|
"success-message": g(() => [
|
|
120
|
-
e.successMessage ? (u(),
|
|
132
|
+
e.successMessage ? (u(), n("span", W, i(e.successMessage), 1)) : f("", !0)
|
|
121
133
|
]),
|
|
122
134
|
default: g(() => [
|
|
123
|
-
|
|
124
|
-
I(
|
|
135
|
+
h("div", T, [
|
|
136
|
+
I(h("textarea", N({
|
|
125
137
|
id: a(c),
|
|
126
138
|
ref_key: "textareaRef",
|
|
127
139
|
ref: t,
|
|
128
|
-
"onUpdate:modelValue":
|
|
140
|
+
"onUpdate:modelValue": r[0] || (r[0] = (C) => R(l) ? l.value = C : null),
|
|
129
141
|
name: e.name,
|
|
130
142
|
disabled: e.disabled,
|
|
131
143
|
placeholder: e.placeholder,
|
|
132
144
|
class: [
|
|
133
|
-
|
|
145
|
+
x.value,
|
|
134
146
|
e.inputClass
|
|
135
147
|
],
|
|
136
148
|
style: e.inputStyle,
|
|
@@ -138,13 +150,13 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
138
150
|
rows: e.rows,
|
|
139
151
|
maxlength: e.maxlength
|
|
140
152
|
}, e.$attrs, {
|
|
141
|
-
onBlur:
|
|
142
|
-
onFocus:
|
|
143
|
-
onInput:
|
|
153
|
+
onBlur: M,
|
|
154
|
+
onFocus: V,
|
|
155
|
+
onInput: B
|
|
144
156
|
}), null, 16, P), [
|
|
145
157
|
[j, a(l)]
|
|
146
158
|
]),
|
|
147
|
-
e.maxlength !== void 0 ? (u(),
|
|
159
|
+
e.maxlength !== void 0 ? (u(), n("div", U, i(a(l)?.length || 0) + "/" + i(e.maxlength), 1)) : f("", !0)
|
|
148
160
|
])
|
|
149
161
|
]),
|
|
150
162
|
_: 1
|
|
@@ -155,4 +167,4 @@ const L = { class: "sl-w-full" }, T = { class: "sl-relative" }, P = ["id", "name
|
|
|
155
167
|
export {
|
|
156
168
|
Q as _
|
|
157
169
|
};
|
|
158
|
-
//# sourceMappingURL=TextAreaInput.vue_vue_type_script_setup_true_lang-
|
|
170
|
+
//# sourceMappingURL=TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextAreaInput.vue_vue_type_script_setup_true_lang-BMpc-5ln.js","sources":["../src/components/inputs/TextAreaInput.vue"],"sourcesContent":["<!--\n @component TextAreaInput\n @description Multi-line text input with character count.\n \n A styled textarea component with validation, character limit display,\n and auto-resize capability.\n \n @props\n - name (string, required): Field name for form binding\n - label (string, optional): Display label\n - placeholder (string, optional): Placeholder text\n - disabled (boolean, optional): Disabled state\n - rules (Schema, optional): Validation rules\n - modelValue (string, optional): Text value via v-model\n - rows (number, optional): Number of visible rows\n - maxlength (number, optional): Maximum character limit\n - spellcheck (boolean, optional): Enable spellcheck\n \n @emits\n - update:modelValue: Emitted when text changes\n - update:validity: Emitted when validation state changes\n \n @example\n <TextAreaInput\n name=\"bio\"\n label=\"Biography\"\n v-model=\"form.bio\"\n :rows=\"4\"\n :maxlength=\"500\"\n placeholder=\"Tell us about yourself...\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"label\"\n :disabled=\"disabled\"\n :optional=\"!rules\"\n :tertiary-label=\"tertiaryLabel\"\n :box-shadow=\"boxShadow\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n >\n <div class=\"sl-relative\">\n <textarea\n :id=\"id\"\n ref=\"textareaRef\"\n v-model=\"value\"\n :name=\"name\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :class=\"[\n textareaClasses,\n inputClass\n ]\"\n :style=\"inputStyle\"\n :spellcheck=\"spellcheck\"\n :rows=\"rows\"\n :maxlength=\"maxlength\"\n v-bind=\"$attrs\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n />\n \n <!-- Character count -->\n <div \n v-if=\"maxlength !== undefined\" \n class=\"sl-absolute sl-bottom-2 sl-right-2 sl-text-xs sl-text-slate-500 dark:sl-text-slate-200 sl-pointer-events-none\"\n >\n {{ value?.length || 0 }}/{{ maxlength }}\n </div>\n </div>\n \n <template #success-message>\n <span v-if=\"successMessage\">{{ successMessage }}</span>\n </template>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, type StyleValue } from 'vue'\nimport { useField } from 'vee-validate'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport type { ValidationRule } from '../../types/form'\nimport { generateId } from '../../utils/id'\n\ninterface Props {\n name: string\n label?: string\n placeholder?: string\n disabled?: boolean\n rules?: ValidationRule\n validateOnMount?: boolean\n successMessage?: string\n tertiaryLabel?: string\n spellcheck?: boolean\n rows?: number\n maxlength?: number\n inputClass?: string\n inputStyle?: StyleValue\n lazy?: boolean\n modelValue?: string\n boxShadow?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n spellcheck: true,\n rows: 4,\n lazy: false,\n boxShadow: false\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n blur: [event: FocusEvent]\n focus: [event: FocusEvent]\n}>()\n\nconst textareaRef = ref<HTMLTextAreaElement>()\nconst id = generateId(props.name)\n\n// Use vee-validate for form validation\nconst { value, errorMessage, handleBlur, handleChange, meta } = useField(\n () => props.name,\n props.rules,\n {\n validateOnMount: props.validateOnMount,\n initialValue: props.modelValue,\n syncVModel: true\n }\n)\n\n// Sync with v-model\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue !== value.value) {\n value.value = newValue || ''\n }\n }\n)\n\nwatch(\n value,\n (newValue) => {\n emit('update:modelValue', newValue)\n }\n)\n\nconst textareaClasses = computed(() => {\n const baseClasses = [\n 'sl-w-full',\n 'sl-px-3',\n 'sl-py-2',\n 'sl-text-sm',\n 'sl-border',\n 'sl-rounded-md',\n 'sl-bg-white',\n 'dark:sl-bg-slate-900',\n 'sl-text-gray-900',\n 'dark:sl-text-slate-100',\n 'placeholder:sl-text-gray-400',\n 'dark:placeholder:sl-text-slate-500',\n 'sl-transition-all',\n 'sl-duration-200',\n 'focus:sl-outline-none',\n 'focus:sl-ring-2',\n 'focus:sl-ring-stachelock-500',\n 'focus:sl-border-stachelock-500',\n 'sl-resize-y',\n 'sl-min-h-[80px]'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-bg-gray-50',\n 'dark:sl-bg-slate-800',\n 'sl-text-gray-500',\n 'dark:sl-text-slate-300',\n 'sl-cursor-not-allowed',\n 'sl-border-gray-200',\n 'dark:sl-border-slate-700'\n )\n } else if (errorMessage.value) {\n baseClasses.push(\n 'sl-border-red-300',\n 'dark:sl-border-red-500',\n 'focus:sl-ring-red-500',\n 'focus:sl-border-red-500'\n )\n } else if (meta.valid && meta.touched) {\n baseClasses.push(\n 'sl-border-green-300',\n 'dark:sl-border-green-500',\n 'focus:sl-ring-green-500',\n 'focus:sl-border-green-500'\n )\n } else {\n baseClasses.push(\n 'sl-border-gray-300',\n 'dark:sl-border-slate-600',\n 'hover:sl-border-gray-400',\n 'dark:hover:sl-border-slate-500'\n )\n }\n\n return baseClasses.join(' ')\n})\n\nconst onInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n if (!props.lazy) {\n handleChange(target.value)\n }\n}\n\nconst onBlur = (event: FocusEvent) => {\n if (props.lazy) {\n const target = event.target as HTMLTextAreaElement\n handleChange(target.value)\n }\n handleBlur(event)\n emit('blur', event)\n}\n\nconst onFocus = (event: FocusEvent) => {\n emit('focus', event)\n}\n\nconst focus = () => {\n textareaRef.value?.focus()\n}\n\nconst blur = () => {\n textareaRef.value?.blur()\n}\n\ndefineExpose({\n focus,\n blur,\n textareaRef\n})\n</script>\n\n\n"],"names":["props","__props","emit","__emit","textareaRef","ref","id","generateId","value","errorMessage","handleBlur","handleChange","meta","useField","watch","newValue","textareaClasses","computed","baseClasses","onInput","event","target","onBlur","onFocus","__expose","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","name","label","disabled","rules","tertiaryLabel","boxShadow","successMessage","_createElementVNode","_hoisted_2","_withDirectives","_mergeProps","$event","placeholder","inputClass","inputStyle","spellcheck","rows","maxlength","$attrs","_hoisted_4","_toDisplayString"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as b, ref as _, computed as
|
|
1
|
+
import { defineComponent as b, ref as _, computed as s, createElementBlock as o, openBlock as u, normalizeClass as m, createCommentVNode as p, createElementVNode as z, toDisplayString as P } from "vue";
|
|
2
2
|
const C = {
|
|
3
3
|
key: 0,
|
|
4
4
|
class: "sl-h-full sl-w-full"
|
|
@@ -9,8 +9,8 @@ const C = {
|
|
|
9
9
|
name: {},
|
|
10
10
|
imageUrl: {},
|
|
11
11
|
size: { default: "md" },
|
|
12
|
-
color: { default: "sl-bg-
|
|
13
|
-
ring: { default: "sl-ring-white" },
|
|
12
|
+
color: { default: "sl-bg-primary-600 dark:sl-bg-primary-500" },
|
|
13
|
+
ring: { default: "sl-ring-white dark:sl-ring-slate-800" },
|
|
14
14
|
rounded: { default: "sl-rounded-full" },
|
|
15
15
|
fallbackInitials: { default: "?" },
|
|
16
16
|
fallbackIcon: {},
|
|
@@ -18,26 +18,26 @@ const C = {
|
|
|
18
18
|
namePath: { default: "name" }
|
|
19
19
|
},
|
|
20
20
|
setup(v) {
|
|
21
|
-
const e = v,
|
|
22
|
-
|
|
23
|
-
},
|
|
21
|
+
const e = v, i = _(!1), y = () => {
|
|
22
|
+
i.value = !0;
|
|
23
|
+
}, c = {
|
|
24
24
|
xs: "sl-h-6 sl-w-6",
|
|
25
25
|
sm: "sl-h-8 sl-w-8",
|
|
26
26
|
md: "sl-h-12 sl-w-12",
|
|
27
27
|
lg: "sl-h-16 sl-w-16",
|
|
28
28
|
xl: "sl-h-20 sl-w-20",
|
|
29
29
|
"2xl": "sl-h-24 sl-w-24"
|
|
30
|
-
},
|
|
30
|
+
}, k = s(() => typeof e.size == "number" ? `sl-h-${e.size} sl-w-${e.size}` : c[e.size] || c.md), n = (l, a) => {
|
|
31
31
|
if (!l) return;
|
|
32
|
-
const
|
|
33
|
-
let
|
|
34
|
-
for (const g of
|
|
35
|
-
if (
|
|
36
|
-
|
|
32
|
+
const t = Array.isArray(a) ? a : a.split(".");
|
|
33
|
+
let r = l;
|
|
34
|
+
for (const g of t)
|
|
35
|
+
if (r && typeof r == "object" && g in r)
|
|
36
|
+
r = r[g];
|
|
37
37
|
else
|
|
38
38
|
return;
|
|
39
|
-
return
|
|
40
|
-
},
|
|
39
|
+
return r;
|
|
40
|
+
}, f = s(() => {
|
|
41
41
|
if (e.imageUrl) return e.imageUrl;
|
|
42
42
|
if (e.data && e.imagePath) {
|
|
43
43
|
const l = n(e.data, e.imagePath);
|
|
@@ -51,13 +51,13 @@ const C = {
|
|
|
51
51
|
"photo.url",
|
|
52
52
|
"picture.url"
|
|
53
53
|
];
|
|
54
|
-
for (const
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
54
|
+
for (const a of l) {
|
|
55
|
+
const t = n(e.data, a);
|
|
56
|
+
if (t) return t;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
return null;
|
|
60
|
-
}), d =
|
|
60
|
+
}), d = s(() => {
|
|
61
61
|
if (e.name) return e.name;
|
|
62
62
|
if (e.data && e.namePath) {
|
|
63
63
|
const l = n(e.data, e.namePath);
|
|
@@ -71,38 +71,38 @@ const C = {
|
|
|
71
71
|
"username",
|
|
72
72
|
"title"
|
|
73
73
|
];
|
|
74
|
-
for (const
|
|
75
|
-
const
|
|
76
|
-
if (
|
|
74
|
+
for (const a of l) {
|
|
75
|
+
const t = n(e.data, a);
|
|
76
|
+
if (t) return t;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
return "";
|
|
80
|
-
}), h =
|
|
80
|
+
}), h = s(() => !!f.value), w = s(() => {
|
|
81
81
|
const l = d.value;
|
|
82
82
|
if (!l || l.trim() === "")
|
|
83
83
|
return e.fallbackInitials;
|
|
84
|
-
const
|
|
85
|
-
return
|
|
84
|
+
const a = l.split(" ").filter(Boolean);
|
|
85
|
+
return a.length === 0 ? e.fallbackInitials : a.length === 1 ? a[0][0].toUpperCase() : (a[0][0] + a[a.length - 1][0]).toUpperCase();
|
|
86
86
|
});
|
|
87
|
-
return (l,
|
|
88
|
-
class:
|
|
87
|
+
return (l, a) => (u(), o("div", {
|
|
88
|
+
class: m(["sl-relative sl-inline-block", [k.value, l.ring, l.rounded]])
|
|
89
89
|
}, [
|
|
90
|
-
h.value && !
|
|
90
|
+
h.value && !i.value ? (u(), o("div", C, [
|
|
91
91
|
z("img", {
|
|
92
|
-
src:
|
|
92
|
+
src: f.value,
|
|
93
93
|
alt: d.value,
|
|
94
|
-
class:
|
|
95
|
-
onError:
|
|
94
|
+
class: m(["sl-h-full sl-w-full sl-object-cover", l.rounded]),
|
|
95
|
+
onError: y
|
|
96
96
|
}, null, 42, U)
|
|
97
97
|
])) : p("", !0),
|
|
98
|
-
!h.value ||
|
|
98
|
+
!h.value || i.value ? (u(), o("div", {
|
|
99
99
|
key: 1,
|
|
100
|
-
class:
|
|
101
|
-
}, P(
|
|
100
|
+
class: m(["sl-h-full sl-w-full sl-flex sl-items-center sl-justify-center sl-font-semibold sl-text-white", [l.color, l.rounded]])
|
|
101
|
+
}, P(w.value), 3)) : p("", !0)
|
|
102
102
|
], 2));
|
|
103
103
|
}
|
|
104
104
|
});
|
|
105
105
|
export {
|
|
106
106
|
E as _
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=UiAvatar.vue_vue_type_script_setup_true_lang-
|
|
108
|
+
//# sourceMappingURL=UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UiAvatar.vue_vue_type_script_setup_true_lang-Ci7VLRZx.js","sources":["../src/components/UiAvatar.vue"],"sourcesContent":["<!--\n @component UiAvatar\n @description Avatar component displaying user image or initials fallback.\n \n Supports flexible data structures with configurable path resolution for\n images and names. Falls back to initials when no image is available.\n \n @props\n - data (object, optional): Flexible data object with image/name properties\n - name (string, optional): Direct name for initials\n - imageUrl (string, optional): Direct image URL\n - size (Size | number, optional): Avatar size - 'xs' through '2xl' or number\n - color (string, optional): Background color class for initials fallback\n - ring (string, optional): Ring/border class\n - rounded (string, optional): Border radius class\n - fallbackInitials (string, optional): Fallback when no name available\n - imagePath (string | string[], optional): Path to image in data object\n - namePath (string | string[], optional): Path to name in data object\n \n @example\n <UiAvatar name=\"John Doe\" size=\"lg\" />\n \n @example\n <UiAvatar :data=\"user\" image-path=\"profile.avatar.url\" name-path=\"profile.displayName\" />\n-->\n<template>\n <div class=\"sl-relative sl-inline-block\" :class=\"[sizeClass, ring, rounded]\">\n <div v-if=\"hasImage && !imageError\" class=\"sl-h-full sl-w-full\">\n <img\n :src=\"imageUrl\"\n :alt=\"displayName\"\n class=\"sl-h-full sl-w-full sl-object-cover\"\n :class=\"rounded\"\n @error=\"handleImageError\"\n />\n </div>\n <div v-if=\"!hasImage || imageError\" class=\"sl-h-full sl-w-full sl-flex sl-items-center sl-justify-center sl-font-semibold sl-text-white\"\n :class=\"[color, rounded]\">\n {{ initials }}\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * UiAvatar - User avatar component with image and initials fallback\n * \n * Displays a user avatar with automatic fallback to initials when no image\n * is available or when image fails to load. Supports flexible data structures\n * through configurable path resolution.\n * \n * ## Features\n * - Image display with error handling\n * - Automatic initials generation from name\n * - Flexible data object support with path resolution\n * - Multiple size options\n * - Customizable colors and styling\n * \n * @module components/UiAvatar\n * @see {@link AvatarType} for prop interface\n */\nimport { computed, ref } from 'vue';\n\ninterface AvatarProps {\n // Flexible data object - can be any object with optional name and image properties\n data?: Record<string, any>;\n \n // Direct properties for simple use cases\n name?: string;\n imageUrl?: string;\n \n // Size options\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | number;\n \n // Styling options\n color?: string;\n ring?: string;\n rounded?: string;\n \n // Image fallback options\n fallbackInitials?: string;\n fallbackIcon?: string;\n \n // Custom image path keys for different data structures\n imagePath?: string | string[]; // e.g., 'profile_image.url' or ['profile_image', 'url']\n namePath?: string | string[]; // e.g., 'display_name' or ['user', 'profile', 'name']\n}\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n size: 'md',\n color: 'sl-bg-primary-600 dark:sl-bg-primary-500',\n ring: 'sl-ring-white dark:sl-ring-slate-800',\n rounded: 'sl-rounded-full',\n fallbackInitials: '?',\n imagePath: 'image.url',\n namePath: 'name'\n});\n\nconst imageError = ref(false);\n\nconst handleImageError = () => {\n imageError.value = true;\n};\n\n// Size classes mapping\nconst sizeClasses: Record<string, string> = {\n xs: 'sl-h-6 sl-w-6',\n sm: 'sl-h-8 sl-w-8',\n md: 'sl-h-12 sl-w-12',\n lg: 'sl-h-16 sl-w-16',\n xl: 'sl-h-20 sl-w-20',\n '2xl': 'sl-h-24 sl-w-24',\n};\n\nconst sizeClass = computed(() => {\n if (typeof props.size === 'number') {\n return `sl-h-${props.size} sl-w-${props.size}`;\n }\n return sizeClasses[props.size] || sizeClasses.md;\n});\n\n// Helper function to get nested object values\nconst getNestedValue = (obj: any, path: string | string[]): any => {\n if (!obj) return undefined;\n \n const keys = Array.isArray(path) ? path : path.split('.');\n let current = obj;\n \n for (const key of keys) {\n if (current && typeof current === 'object' && key in current) {\n current = current[key];\n } else {\n return undefined;\n }\n }\n \n return current;\n};\n\n// Get image URL from various sources\nconst imageUrl = computed(() => {\n // Direct imageUrl prop takes precedence\n if (props.imageUrl) return props.imageUrl;\n \n // Try to get from data object using imagePath\n if (props.data && props.imagePath) {\n const url = getNestedValue(props.data, props.imagePath);\n if (url) return url;\n }\n \n // Fallback to common image paths if no specific path provided\n if (props.data) {\n const commonPaths = [\n 'profile_image.url',\n 'image.url',\n 'avatar.url',\n 'photo.url',\n 'picture.url'\n ];\n \n for (const path of commonPaths) {\n const url = getNestedValue(props.data, path);\n if (url) return url;\n }\n }\n \n return null;\n});\n\n// Get display name from various sources\nconst displayName = computed(() => {\n // Direct name prop takes precedence\n if (props.name) return props.name;\n \n // Try to get from data object using namePath\n if (props.data && props.namePath) {\n const name = getNestedValue(props.data, props.namePath);\n if (name) return name;\n }\n \n // Fallback to common name paths if no specific path provided\n if (props.data) {\n const commonPaths = [\n 'name',\n 'display_name',\n 'full_name',\n 'username',\n 'title'\n ];\n \n for (const path of commonPaths) {\n const name = getNestedValue(props.data, path);\n if (name) return name;\n }\n }\n \n return '';\n});\n\nconst hasImage = computed(() => {\n return !!imageUrl.value;\n});\n\nconst initials = computed(() => {\n const name = displayName.value;\n \n if (!name || name.trim() === '') {\n return props.fallbackInitials;\n }\n\n const names = name.split(' ').filter(Boolean);\n if (names.length === 0) {\n return props.fallbackInitials;\n }\n\n if (names.length === 1) {\n return names[0][0].toUpperCase();\n } else {\n return (names[0][0] + names[names.length - 1][0]).toUpperCase();\n }\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["props","__props","imageError","ref","handleImageError","sizeClasses","sizeClass","computed","getNestedValue","obj","path","keys","current","key","imageUrl","url","commonPaths","displayName","name","hasImage","initials","names","_createElementBlock","ring","rounded","_openBlock","_hoisted_1","_createElementVNode","_normalizeClass","color"],"mappings":"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"}
|