@stachelock/ui 0.2.14 → 0.3.1
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 +38 -6
- 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
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { defineComponent as X, ref as Y, reactive as Z, watch as w, computed as b, createElementBlock as o, openBlock as r, withModifiers as ee, normalizeClass as f, unref as y, createCommentVNode as l, toDisplayString as i, Fragment as S, renderList as _, createElementVNode as c, createBlock as j, createVNode as N, withCtx as T, createTextVNode as x } from "vue";
|
|
2
|
+
import { useForm as te } from "vee-validate";
|
|
3
|
+
import O from "./components/Button.js";
|
|
4
|
+
import { _ as se } from "./DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js";
|
|
5
|
+
import { r as ae } from "./ExclamationCircleIcon-DjxYk45_.js";
|
|
6
|
+
const re = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "sl-mb-6"
|
|
9
|
+
}, oe = {
|
|
10
|
+
key: 0,
|
|
11
|
+
class: "sl-text-lg sl-font-semibold sl-text-gray-900 sl-mb-2"
|
|
12
|
+
}, le = {
|
|
13
|
+
key: 1,
|
|
14
|
+
class: "sl-text-sm sl-text-gray-600"
|
|
15
|
+
}, ne = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "sl-mb-4"
|
|
18
|
+
}, ie = {
|
|
19
|
+
key: 0,
|
|
20
|
+
class: "sl-text-md sl-font-medium sl-text-gray-900 sl-mb-1"
|
|
21
|
+
}, ce = {
|
|
22
|
+
key: 1,
|
|
23
|
+
class: "sl-text-sm sl-text-gray-600"
|
|
24
|
+
}, de = {
|
|
25
|
+
key: 2,
|
|
26
|
+
class: "sl-mt-4"
|
|
27
|
+
}, ue = { class: "sl-bg-red-50 sl-border sl-border-red-200 sl-rounded-md sl-p-4" }, me = { class: "sl-flex" }, he = { class: "sl-ml-3" }, fe = { class: "sl-mt-2 sl-text-sm sl-text-red-700" }, je = /* @__PURE__ */ X({
|
|
28
|
+
__name: "DynamicForm",
|
|
29
|
+
props: {
|
|
30
|
+
schema: {},
|
|
31
|
+
modelValue: {},
|
|
32
|
+
loading: { type: Boolean },
|
|
33
|
+
showActions: { type: Boolean, default: !0 },
|
|
34
|
+
showCancelButton: { type: Boolean, default: !1 },
|
|
35
|
+
submitButtonText: {},
|
|
36
|
+
cancelButtonText: {},
|
|
37
|
+
submitButtonVariant: { default: "primary" },
|
|
38
|
+
actionsAlignment: { default: "right" },
|
|
39
|
+
formError: {}
|
|
40
|
+
},
|
|
41
|
+
emits: ["update:modelValue", "submit", "cancel", "field-change"],
|
|
42
|
+
setup(D, { expose: A, emit: M }) {
|
|
43
|
+
const n = D, m = M, F = Y(), a = Z({}), { handleSubmit: R, setErrors: h, errors: p, meta: d, validate: v, resetForm: U, setFieldTouched: V } = te({
|
|
44
|
+
keepValuesOnUnmount: !0
|
|
45
|
+
}), W = (e) => {
|
|
46
|
+
switch (e) {
|
|
47
|
+
case "checkbox":
|
|
48
|
+
case "switch":
|
|
49
|
+
return !1;
|
|
50
|
+
case "select":
|
|
51
|
+
return null;
|
|
52
|
+
case "number":
|
|
53
|
+
return 0;
|
|
54
|
+
default:
|
|
55
|
+
return "";
|
|
56
|
+
}
|
|
57
|
+
}, k = () => {
|
|
58
|
+
const e = { ...n.modelValue };
|
|
59
|
+
n.schema.sections.forEach((t) => {
|
|
60
|
+
t.fields.forEach((s) => {
|
|
61
|
+
s.name in e || (e[s.name] = s.defaultValue ?? W(s.type));
|
|
62
|
+
});
|
|
63
|
+
}), Object.assign(a, e);
|
|
64
|
+
};
|
|
65
|
+
w(
|
|
66
|
+
() => n.modelValue,
|
|
67
|
+
(e) => {
|
|
68
|
+
e && Object.assign(a, e);
|
|
69
|
+
},
|
|
70
|
+
{ deep: !0 }
|
|
71
|
+
), w(
|
|
72
|
+
a,
|
|
73
|
+
(e) => {
|
|
74
|
+
m("update:modelValue", { ...e });
|
|
75
|
+
},
|
|
76
|
+
{ deep: !0 }
|
|
77
|
+
), k();
|
|
78
|
+
const $ = b(() => n.schema.sections.filter(
|
|
79
|
+
(e) => e.condition ? e.condition(a) : !0
|
|
80
|
+
)), z = b(() => {
|
|
81
|
+
const e = ["sl-space-y-6"];
|
|
82
|
+
return n.schema.className && e.push(n.schema.className), e.join(" ");
|
|
83
|
+
}), P = (e) => {
|
|
84
|
+
const t = [
|
|
85
|
+
"sl-grid",
|
|
86
|
+
"sl-gap-4"
|
|
87
|
+
], s = e.columns || 1;
|
|
88
|
+
return t.push("sl-grid-cols-1"), s > 1 && t.push(`md:sl-grid-cols-${Math.min(s, 3)}`), e.className && t.push(e.className), t.join(" ");
|
|
89
|
+
}, H = (e) => {
|
|
90
|
+
const t = [];
|
|
91
|
+
return e.colSpan && e.colSpan > 1 && t.push(`sl-col-span-${Math.min(e.colSpan, 3)}`), e.className && t.push(e.className), t.join(" ");
|
|
92
|
+
}, L = (e) => e.condition ? e.condition(a, e) : !0, q = b(() => d.value.valid), g = R((e) => {
|
|
93
|
+
m("submit", e, { setErrors: h });
|
|
94
|
+
}), G = () => {
|
|
95
|
+
m("cancel");
|
|
96
|
+
}, I = (e, t) => {
|
|
97
|
+
m("field-change", e, t, a), e.onFieldChange && e.onFieldChange(t, e, a);
|
|
98
|
+
}, J = async () => {
|
|
99
|
+
await g();
|
|
100
|
+
}, C = () => {
|
|
101
|
+
U(), Object.keys(a).forEach((e) => {
|
|
102
|
+
delete a[e];
|
|
103
|
+
}), k();
|
|
104
|
+
}, E = () => {
|
|
105
|
+
const e = {};
|
|
106
|
+
for (const [t, s] of Object.entries(p.value))
|
|
107
|
+
s !== void 0 && (e[t] = s);
|
|
108
|
+
return {
|
|
109
|
+
valid: d.value.valid,
|
|
110
|
+
errors: e,
|
|
111
|
+
values: { ...a }
|
|
112
|
+
};
|
|
113
|
+
}, B = async () => (await v(), E());
|
|
114
|
+
return A({
|
|
115
|
+
// DynamicFormRef interface methods
|
|
116
|
+
submitForm: J,
|
|
117
|
+
resetForm: C,
|
|
118
|
+
validateForm: B,
|
|
119
|
+
validateWithChildren: async () => (await v(), E()),
|
|
120
|
+
handlePseudoSubmit: async () => {
|
|
121
|
+
await v();
|
|
122
|
+
},
|
|
123
|
+
getFormMeta: () => ({
|
|
124
|
+
valid: d.value.valid,
|
|
125
|
+
dirty: d.value.dirty,
|
|
126
|
+
touched: d.value.touched,
|
|
127
|
+
pending: d.value.pending
|
|
128
|
+
}),
|
|
129
|
+
setTouched: (e) => {
|
|
130
|
+
n.schema.sections.forEach((t) => {
|
|
131
|
+
t.fields.forEach((s) => {
|
|
132
|
+
V(s.name, e);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
},
|
|
136
|
+
highlightFieldWithError: (e, t) => {
|
|
137
|
+
t && h({ [e]: t }), V(e, !0);
|
|
138
|
+
},
|
|
139
|
+
clearFieldErrors: (e) => {
|
|
140
|
+
if (e)
|
|
141
|
+
h({ [e]: "" });
|
|
142
|
+
else {
|
|
143
|
+
const t = {};
|
|
144
|
+
Object.keys(p.value).forEach((s) => {
|
|
145
|
+
t[s] = "";
|
|
146
|
+
}), h(t);
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
getCurrentErrors: () => {
|
|
150
|
+
const e = {};
|
|
151
|
+
for (const [t, s] of Object.entries(p.value))
|
|
152
|
+
s !== void 0 && (e[t] = s);
|
|
153
|
+
return e;
|
|
154
|
+
},
|
|
155
|
+
// Legacy/additional methods
|
|
156
|
+
validate: B,
|
|
157
|
+
reset: C,
|
|
158
|
+
setFieldValue: (e, t) => {
|
|
159
|
+
a[e] = t;
|
|
160
|
+
},
|
|
161
|
+
getFieldValue: (e) => a[e],
|
|
162
|
+
formData: a,
|
|
163
|
+
formRef: F
|
|
164
|
+
}), (e, t) => (r(), o("form", {
|
|
165
|
+
ref_key: "formRef",
|
|
166
|
+
ref: F,
|
|
167
|
+
class: f(z.value),
|
|
168
|
+
onSubmit: t[0] || (t[0] = ee(
|
|
169
|
+
//@ts-ignore
|
|
170
|
+
(...s) => y(g) && y(g)(...s),
|
|
171
|
+
["prevent"]
|
|
172
|
+
))
|
|
173
|
+
}, [
|
|
174
|
+
e.schema.title || e.schema.description ? (r(), o("div", re, [
|
|
175
|
+
e.schema.title ? (r(), o("h2", oe, i(e.schema.title), 1)) : l("", !0),
|
|
176
|
+
e.schema.description ? (r(), o("p", le, i(e.schema.description), 1)) : l("", !0)
|
|
177
|
+
])) : l("", !0),
|
|
178
|
+
(r(!0), o(S, null, _($.value, (s, K) => (r(), o("div", {
|
|
179
|
+
key: s.id || K
|
|
180
|
+
}, [
|
|
181
|
+
s.title || s.description ? (r(), o("div", ne, [
|
|
182
|
+
s.title ? (r(), o("h3", ie, i(s.title), 1)) : l("", !0),
|
|
183
|
+
s.description ? (r(), o("p", ce, i(s.description), 1)) : l("", !0)
|
|
184
|
+
])) : l("", !0),
|
|
185
|
+
c("div", {
|
|
186
|
+
class: f(P(s))
|
|
187
|
+
}, [
|
|
188
|
+
(r(!0), o(S, null, _(s.fields, (u) => (r(), o("div", {
|
|
189
|
+
key: u.name,
|
|
190
|
+
class: f(H(u))
|
|
191
|
+
}, [
|
|
192
|
+
L(u) ? (r(), j(se, {
|
|
193
|
+
key: 0,
|
|
194
|
+
field: u,
|
|
195
|
+
modelValue: a[u.name],
|
|
196
|
+
"onUpdate:modelValue": (Q) => a[u.name] = Q,
|
|
197
|
+
"form-data": a,
|
|
198
|
+
onFieldChange: I
|
|
199
|
+
}, null, 8, ["field", "modelValue", "onUpdate:modelValue", "form-data"])) : l("", !0)
|
|
200
|
+
], 2))), 128))
|
|
201
|
+
], 2)
|
|
202
|
+
]))), 128)),
|
|
203
|
+
e.showActions ? (r(), o("div", {
|
|
204
|
+
key: 1,
|
|
205
|
+
class: f([
|
|
206
|
+
"sl-flex sl-gap-3",
|
|
207
|
+
e.actionsAlignment === "center" ? "sl-justify-center" : e.actionsAlignment === "right" ? "sl-justify-end" : "sl-justify-start"
|
|
208
|
+
])
|
|
209
|
+
}, [
|
|
210
|
+
e.showCancelButton ? (r(), j(O, {
|
|
211
|
+
key: 0,
|
|
212
|
+
variant: "outline",
|
|
213
|
+
disabled: e.loading,
|
|
214
|
+
type: "button",
|
|
215
|
+
onClick: G
|
|
216
|
+
}, {
|
|
217
|
+
default: T(() => [
|
|
218
|
+
x(i(e.cancelButtonText || "Cancel"), 1)
|
|
219
|
+
]),
|
|
220
|
+
_: 1
|
|
221
|
+
}, 8, ["disabled"])) : l("", !0),
|
|
222
|
+
N(O, {
|
|
223
|
+
variant: e.submitButtonVariant,
|
|
224
|
+
loading: e.loading,
|
|
225
|
+
disabled: !q.value || e.loading,
|
|
226
|
+
type: "submit"
|
|
227
|
+
}, {
|
|
228
|
+
default: T(() => [
|
|
229
|
+
x(i(e.submitButtonText || "Submit"), 1)
|
|
230
|
+
]),
|
|
231
|
+
_: 1
|
|
232
|
+
}, 8, ["variant", "loading", "disabled"])
|
|
233
|
+
], 2)) : l("", !0),
|
|
234
|
+
e.formError ? (r(), o("div", de, [
|
|
235
|
+
c("div", ue, [
|
|
236
|
+
c("div", me, [
|
|
237
|
+
N(y(ae), { class: "sl-h-5 sl-w-5 sl-text-red-400" }),
|
|
238
|
+
c("div", he, [
|
|
239
|
+
t[1] || (t[1] = c("h3", { class: "sl-text-sm sl-font-medium sl-text-red-800" }, " Form Error ", -1)),
|
|
240
|
+
c("div", fe, [
|
|
241
|
+
c("p", null, i(e.formError), 1)
|
|
242
|
+
])
|
|
243
|
+
])
|
|
244
|
+
])
|
|
245
|
+
])
|
|
246
|
+
])) : l("", !0)
|
|
247
|
+
], 34));
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
export {
|
|
251
|
+
je as _
|
|
252
|
+
};
|
|
253
|
+
//# sourceMappingURL=DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicForm.vue_vue_type_script_setup_true_lang-DRDP86Yc.js","sources":["../src/components/forms/DynamicForm.vue"],"sourcesContent":["<!--\n @component DynamicForm\n @description Schema-driven form component with validation.\n \n Renders forms from a schema definition with sections, fields, conditional\n visibility, and integrated validation via vee-validate.\n \n @props\n - schema (DynamicFormSchema, required): Form schema with sections and fields\n - modelValue (object, optional): Form data via v-model\n - loading (boolean, optional): Loading state for submit button\n - showActions (boolean, optional): Show submit/cancel buttons\n - showCancelButton (boolean, optional): Show cancel button\n - submitButtonText (string, optional): Submit button text\n - cancelButtonText (string, optional): Cancel button text\n - actionsAlignment (string, optional): Button alignment - left/center/right\n - formError (string, optional): Form-level error message\n \n @emits\n - update:modelValue: Emitted when form data changes\n - submit: Emitted on form submit with data and error setter\n - cancel: Emitted when cancel is clicked\n - field-change: Emitted when any field value changes\n \n @exposes\n - validate(): Promise<boolean> - Validate form and return validity\n - reset(): void - Reset form to initial values\n - setFieldValue(name, value): void - Set a field value\n - getFieldValue(name): any - Get a field value\n - formData: Record<string, any> - Current form data\n \n @example\n <DynamicForm\n :schema=\"formSchema\"\n v-model=\"formData\"\n @submit=\"handleSubmit\"\n @cancel=\"handleCancel\"\n />\n-->\n<template>\n <form\n ref=\"formRef\"\n :class=\"formClasses\"\n @submit.prevent=\"handleSubmit\"\n >\n <!-- Form title and description -->\n <div v-if=\"schema.title || schema.description\" class=\"sl-mb-6\">\n <h2 v-if=\"schema.title\" class=\"sl-text-lg sl-font-semibold sl-text-gray-900 sl-mb-2\">\n {{ schema.title }}\n </h2>\n <p v-if=\"schema.description\" class=\"sl-text-sm sl-text-gray-600\">\n {{ schema.description }}\n </p>\n </div>\n\n <!-- Form sections -->\n <div v-for=\"(section, sectionIndex) in formSections\" :key=\"section.id || sectionIndex\">\n <!-- Section header -->\n <div v-if=\"section.title || section.description\" class=\"sl-mb-4\">\n <h3 v-if=\"section.title\" class=\"sl-text-md sl-font-medium sl-text-gray-900 sl-mb-1\">\n {{ section.title }}\n </h3>\n <p v-if=\"section.description\" class=\"sl-text-sm sl-text-gray-600\">\n {{ section.description }}\n </p>\n </div>\n\n <!-- Section fields -->\n <div :class=\"sectionClasses(section)\">\n <div\n v-for=\"field in section.fields\"\n :key=\"field.name\"\n :class=\"fieldClasses(field)\"\n >\n <!-- Conditional rendering -->\n <SlDynamicFormField\n v-if=\"shouldShowField(field)\"\n :field=\"field\"\n v-model=\"formData[field.name]\"\n :form-data=\"formData\"\n @field-change=\"handleFieldChange\"\n />\n </div>\n </div>\n </div>\n\n <!-- Form actions -->\n <div\n v-if=\"showActions\"\n :class=\"[\n 'sl-flex sl-gap-3',\n actionsAlignment === 'center' ? 'sl-justify-center' :\n actionsAlignment === 'right' ? 'sl-justify-end' :\n 'sl-justify-start'\n ]\"\n >\n <SlButton\n v-if=\"showCancelButton\"\n variant=\"outline\"\n :disabled=\"loading\"\n type=\"button\"\n @click=\"handleCancel\"\n >\n {{ cancelButtonText || 'Cancel' }}\n </SlButton>\n \n <SlButton\n :variant=\"submitButtonVariant\"\n :loading=\"loading\"\n :disabled=\"!isFormValid || loading\"\n type=\"submit\"\n >\n {{ submitButtonText || 'Submit' }}\n </SlButton>\n </div>\n \n <!-- Form-level errors -->\n <div v-if=\"formError\" class=\"sl-mt-4\">\n <div class=\"sl-bg-red-50 sl-border sl-border-red-200 sl-rounded-md sl-p-4\">\n <div class=\"sl-flex\">\n <ExclamationCircleIcon class=\"sl-h-5 sl-w-5 sl-text-red-400\" />\n <div class=\"sl-ml-3\">\n <h3 class=\"sl-text-sm sl-font-medium sl-text-red-800\">\n Form Error\n </h3>\n <div class=\"sl-mt-2 sl-text-sm sl-text-red-700\">\n <p>{{ formError }}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * DynamicForm - Schema-driven form component\n * \n * Renders forms dynamically from a schema definition. Supports sections,\n * conditional fields, validation, and form-level error handling.\n * \n * ## Features\n * - Schema-driven form generation\n * - Multi-section support with columns\n * - Conditional field visibility\n * - vee-validate integration\n * - Field change callbacks\n * - Form-level error display\n * \n * ## Schema Structure\n * ```typescript\n * {\n * title?: string,\n * description?: string,\n * sections: [\n * {\n * title?: string,\n * columns?: 1 | 2 | 3,\n * fields: [\n * { name: 'email', type: 'text', label: 'Email', rules: schema }\n * ]\n * }\n * ]\n * }\n * ```\n * \n * @module components/forms/DynamicForm\n * @see {@link DynamicFormSchema} for schema interface\n * @see {@link DynamicFormField} for field configuration\n */\nimport { computed, reactive, ref, watch } from 'vue'\nimport { useForm } from 'vee-validate'\nimport { ExclamationCircleIcon } from '@heroicons/vue/24/outline'\nimport SlButton from '../UiButton.vue'\nimport SlDynamicFormField from './DynamicFormField.vue'\nimport type { \n DynamicFormSchema, \n DynamicFormSection,\n DynamicFormField,\n ButtonVariant \n} from '../../types/form'\n\ninterface Props {\n schema: DynamicFormSchema\n modelValue?: Record<string, any>\n loading?: boolean\n showActions?: boolean\n showCancelButton?: boolean\n submitButtonText?: string\n cancelButtonText?: string\n submitButtonVariant?: ButtonVariant\n actionsAlignment?: 'left' | 'center' | 'right'\n formError?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n showActions: true,\n showCancelButton: false,\n submitButtonVariant: 'primary',\n actionsAlignment: 'right'\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: Record<string, any>): void\n (e: 'submit', data: Record<string, any>, ctx: { setErrors: (errors: Record<string, string>) => void }): void\n (e: 'cancel'): void\n (e: 'field-change', field: DynamicFormField, value: any, formData: Record<string, any>): void\n}>()\n\nconst formRef = ref<HTMLFormElement>()\nconst formData = reactive<Record<string, any>>({})\n\n// Initialize form with vee-validate\nconst { handleSubmit: veeHandleSubmit, setErrors, errors, meta, validate: veeValidate, resetForm: veeResetForm, setFieldTouched } = useForm({\n keepValuesOnUnmount: true\n})\n\n// Get default value based on field type\nconst getDefaultValue = (type: string) => {\n switch (type) {\n case 'checkbox':\n case 'switch':\n return false\n case 'select':\n return null\n case 'number':\n return 0\n default:\n return ''\n }\n}\n\n// Initialize form data\nconst initializeFormData = () => {\n const initialData = { ...props.modelValue } || {}\n \n // Set default values from schema\n props.schema.sections.forEach(section => {\n section.fields.forEach(field => {\n if (!(field.name in initialData)) {\n initialData[field.name] = field.defaultValue ?? getDefaultValue(field.type)\n }\n })\n })\n \n Object.assign(formData, initialData)\n}\n\n// Watch for external changes to modelValue\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue) {\n Object.assign(formData, newValue)\n }\n },\n { deep: true }\n)\n\n// Watch form data changes and emit updates\nwatch(\n formData,\n (newData) => {\n emit('update:modelValue', { ...newData })\n },\n { deep: true }\n)\n\n// Initialize form data on mount\ninitializeFormData()\n\nconst formSections = computed(() => {\n return props.schema.sections.filter(section => \n section.condition ? section.condition(formData) : true\n )\n})\n\nconst formClasses = computed(() => {\n const baseClasses = ['sl-space-y-6']\n \n if (props.schema.className) {\n baseClasses.push(props.schema.className)\n }\n \n return baseClasses.join(' ')\n})\n\nconst sectionClasses = (section: DynamicFormSection) => {\n const baseClasses = [\n 'sl-grid',\n 'sl-gap-4'\n ]\n \n // Grid columns based on section layout\n const columns = section.columns || 1\n baseClasses.push(`sl-grid-cols-1`)\n \n if (columns > 1) {\n baseClasses.push(`md:sl-grid-cols-${Math.min(columns, 3)}`)\n }\n \n if (section.className) {\n baseClasses.push(section.className)\n }\n \n return baseClasses.join(' ')\n}\n\nconst fieldClasses = (field: DynamicFormField) => {\n const baseClasses: string[] = []\n \n // Field span\n if (field.colSpan && field.colSpan > 1) {\n baseClasses.push(`sl-col-span-${Math.min(field.colSpan, 3)}`)\n }\n \n if (field.className) {\n baseClasses.push(field.className)\n }\n \n return baseClasses.join(' ')\n}\n\nconst shouldShowField = (field: DynamicFormField): boolean => {\n if (field.condition) {\n return field.condition(formData, field)\n }\n return true\n}\n\nconst isFormValid = computed(() => {\n return meta.value.valid\n})\n\nconst handleSubmit = veeHandleSubmit((values) => {\n emit('submit', values, { setErrors })\n})\n\nconst handleCancel = () => {\n emit('cancel')\n}\n\nconst handleFieldChange = (field: DynamicFormField, value: any) => {\n emit('field-change', field, value, formData)\n \n // Handle field dependencies\n if (field.onFieldChange) {\n field.onFieldChange(value, field, formData)\n }\n}\n\n// Expose form methods matching DynamicFormRef interface\n\n/** Submit the form */\nconst submitForm = async (): Promise<void> => {\n await handleSubmit()\n}\n\n/** Reset form to initial values */\nconst resetForm = (): void => {\n veeResetForm()\n Object.keys(formData).forEach(key => {\n delete formData[key]\n })\n initializeFormData()\n}\n\n/** Build FormValidationResult from current state */\nconst buildValidationResult = (): { valid: boolean; errors: Record<string, string>; values: Record<string, any> } => {\n // Filter out undefined values from errors\n const filteredErrors: Record<string, string> = {}\n for (const [key, value] of Object.entries(errors.value)) {\n if (value !== undefined) {\n filteredErrors[key] = value\n }\n }\n return {\n valid: meta.value.valid,\n errors: filteredErrors,\n values: { ...formData }\n }\n}\n\n/** Validate form and return result */\nconst validateForm = async (): Promise<{ valid: boolean; errors: Record<string, string>; values: Record<string, any> }> => {\n await veeValidate()\n return buildValidationResult()\n}\n\n/** Validate including nested forms */\nconst validateWithChildren = async (): Promise<{ valid: boolean; errors: Record<string, string>; values: Record<string, any> }> => {\n // For now, same as validateForm since we don't have nested form support yet\n await veeValidate()\n return buildValidationResult()\n}\n\n/** Trigger pseudo-submit (validate without actual submit) */\nconst handlePseudoSubmit = async (): Promise<void> => {\n await veeValidate()\n}\n\n/** Get current form metadata */\nconst getFormMeta = () => {\n return {\n valid: meta.value.valid,\n dirty: meta.value.dirty,\n touched: meta.value.touched,\n pending: meta.value.pending\n }\n}\n\n/** Set touched state for all fields */\nconst setTouched = (value: boolean): void => {\n props.schema.sections.forEach(section => {\n section.fields.forEach(field => {\n setFieldTouched(field.name, value)\n })\n })\n}\n\n/** Highlight a field with an error */\nconst highlightFieldWithError = (fieldName: string, message?: string): void => {\n if (message) {\n setErrors({ [fieldName]: message })\n }\n setFieldTouched(fieldName, true)\n}\n\n/** Clear field errors */\nconst clearFieldErrors = (fieldName?: string): void => {\n if (fieldName) {\n setErrors({ [fieldName]: '' })\n } else {\n const clearedErrors: Record<string, string> = {}\n Object.keys(errors.value).forEach(key => {\n clearedErrors[key] = ''\n })\n setErrors(clearedErrors)\n }\n}\n\n/** Get current validation errors */\nconst getCurrentErrors = (): Record<string, string> => {\n // Filter out undefined values from errors\n const filteredErrors: Record<string, string> = {}\n for (const [key, value] of Object.entries(errors.value)) {\n if (value !== undefined) {\n filteredErrors[key] = value\n }\n }\n return filteredErrors\n}\n\n// Legacy methods for backwards compatibility\nconst setFieldValue = (fieldName: string, value: any) => {\n formData[fieldName] = value\n}\n\nconst getFieldValue = (fieldName: string) => {\n return formData[fieldName]\n}\n\ndefineExpose({\n // DynamicFormRef interface methods\n submitForm,\n resetForm,\n validateForm,\n validateWithChildren,\n handlePseudoSubmit,\n getFormMeta,\n setTouched,\n highlightFieldWithError,\n clearFieldErrors,\n getCurrentErrors,\n // Legacy/additional methods\n validate: validateForm,\n reset: resetForm,\n setFieldValue,\n getFieldValue,\n formData,\n formRef\n})\n</script>\n"],"names":["props","__props","emit","__emit","formRef","ref","formData","reactive","veeHandleSubmit","setErrors","errors","meta","veeValidate","veeResetForm","setFieldTouched","useForm","getDefaultValue","type","initializeFormData","initialData","section","field","watch","newValue","newData","formSections","computed","formClasses","baseClasses","sectionClasses","columns","fieldClasses","shouldShowField","isFormValid","handleSubmit","values","handleCancel","handleFieldChange","value","submitForm","resetForm","key","buildValidationResult","filteredErrors","validateForm","__expose","fieldName","message","clearedErrors","_createElementBlock","_cache","_withModifiers","_unref","args","schema","_openBlock","_hoisted_1","_hoisted_2","_toDisplayString","_hoisted_3","_Fragment","_renderList","sectionIndex","_hoisted_4","_hoisted_5","_hoisted_6","_createElementVNode","_normalizeClass","_createBlock","SlDynamicFormField","$event","showActions","actionsAlignment","showCancelButton","SlButton","loading","cancelButtonText","_createVNode","submitButtonVariant","submitButtonText","formError","_hoisted_7","_hoisted_8","_hoisted_9","ExclamationCircleIcon","_hoisted_10","_hoisted_11"],"mappings":"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"}
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import t from "./
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
6
|
-
fill: "none",
|
|
7
|
-
viewBox: "0 0 24 24",
|
|
8
|
-
"stroke-width": "1.5",
|
|
9
|
-
stroke: "currentColor",
|
|
10
|
-
"aria-hidden": "true",
|
|
11
|
-
"data-slot": "icon"
|
|
12
|
-
}, [
|
|
13
|
-
o("path", {
|
|
14
|
-
"stroke-linecap": "round",
|
|
15
|
-
"stroke-linejoin": "round",
|
|
16
|
-
d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"
|
|
17
|
-
})
|
|
18
|
-
]);
|
|
19
|
-
}
|
|
20
|
-
const P = {
|
|
1
|
+
import { defineComponent as b, computed as s, defineAsyncComponent as y, createBlock as v, createElementBlock as g, openBlock as r, resolveDynamicComponent as w, mergeProps as k, toHandlers as _, createElementVNode as o, createVNode as V, unref as L, toDisplayString as P } from "vue";
|
|
2
|
+
import t from "./inputs/TextInput.js";
|
|
3
|
+
import { r as C } from "./ExclamationTriangleIcon-BNKYmV_J.js";
|
|
4
|
+
const D = {
|
|
21
5
|
key: 1,
|
|
22
6
|
class: "sl-p-4 sl-bg-yellow-50 sl-border sl-border-yellow-200 sl-rounded-md"
|
|
23
|
-
},
|
|
7
|
+
}, F = { class: "sl-flex" }, M = { class: "sl-ml-3" }, T = { class: "sl-mt-2 sl-text-sm sl-text-yellow-700" }, S = /* @__PURE__ */ b({
|
|
24
8
|
__name: "DynamicFormField",
|
|
25
9
|
props: {
|
|
26
10
|
field: {},
|
|
@@ -28,8 +12,8 @@ const P = {
|
|
|
28
12
|
formData: {}
|
|
29
13
|
},
|
|
30
14
|
emits: ["update:modelValue", "field-change"],
|
|
31
|
-
setup(
|
|
32
|
-
const e =
|
|
15
|
+
setup(c, { emit: m }) {
|
|
16
|
+
const e = c, a = m, u = {
|
|
33
17
|
text: () => Promise.resolve(t),
|
|
34
18
|
email: () => Promise.resolve(t),
|
|
35
19
|
password: () => Promise.resolve(t),
|
|
@@ -41,19 +25,19 @@ const P = {
|
|
|
41
25
|
combobox: () => import("./inputs/ComboboxInput.js"),
|
|
42
26
|
checkbox: () => import("./inputs/CheckboxInput.js"),
|
|
43
27
|
switch: () => import("./inputs/SwitchInput.js")
|
|
44
|
-
},
|
|
45
|
-
const l =
|
|
28
|
+
}, d = s(() => {
|
|
29
|
+
const l = u[e.field.type];
|
|
46
30
|
return l ? y({
|
|
47
31
|
loader: l,
|
|
48
32
|
errorComponent: () => null,
|
|
49
33
|
delay: 0
|
|
50
34
|
}) : null;
|
|
51
35
|
}), n = s({
|
|
52
|
-
get: () => e.modelValue ?? e.field.defaultValue ??
|
|
36
|
+
get: () => e.modelValue ?? e.field.defaultValue ?? h(),
|
|
53
37
|
set: (l) => {
|
|
54
|
-
|
|
38
|
+
a("update:modelValue", l), a("field-change", e.field, l);
|
|
55
39
|
}
|
|
56
|
-
}),
|
|
40
|
+
}), f = s(() => {
|
|
57
41
|
const l = {
|
|
58
42
|
name: e.field.name,
|
|
59
43
|
label: e.field.label,
|
|
@@ -127,12 +111,12 @@ const P = {
|
|
|
127
111
|
default:
|
|
128
112
|
return l;
|
|
129
113
|
}
|
|
130
|
-
}),
|
|
114
|
+
}), p = s(() => {
|
|
131
115
|
const l = {};
|
|
132
116
|
return e.field.onBlur && (l.blur = e.field.onBlur), e.field.onFocus && (l.focus = e.field.onFocus), e.field.onChange && (l["update:modelValue"] = (i) => {
|
|
133
117
|
n.value = i, e.field.onChange?.(i, e.field, e.formData ?? {});
|
|
134
118
|
}), l;
|
|
135
|
-
}),
|
|
119
|
+
}), h = () => {
|
|
136
120
|
switch (e.field.type) {
|
|
137
121
|
case "checkbox":
|
|
138
122
|
case "switch":
|
|
@@ -144,19 +128,19 @@ const P = {
|
|
|
144
128
|
default:
|
|
145
129
|
return "";
|
|
146
130
|
}
|
|
147
|
-
},
|
|
131
|
+
}, x = (l) => {
|
|
148
132
|
n.value = l;
|
|
149
133
|
};
|
|
150
|
-
return (l, i) =>
|
|
134
|
+
return (l, i) => d.value ? (r(), v(w(d.value), k({ key: 0 }, f.value, _(p.value), {
|
|
151
135
|
"model-value": n.value,
|
|
152
|
-
"onUpdate:modelValue":
|
|
153
|
-
}), null, 16, ["model-value"])) : (
|
|
154
|
-
o("div",
|
|
155
|
-
L(
|
|
156
|
-
o("div",
|
|
136
|
+
"onUpdate:modelValue": x
|
|
137
|
+
}), null, 16, ["model-value"])) : (r(), g("div", D, [
|
|
138
|
+
o("div", F, [
|
|
139
|
+
V(L(C), { class: "sl-h-5 sl-w-5 sl-text-yellow-400" }),
|
|
140
|
+
o("div", M, [
|
|
157
141
|
i[0] || (i[0] = o("h3", { class: "sl-text-sm sl-font-medium sl-text-yellow-800" }, " Unknown field type ", -1)),
|
|
158
|
-
o("div",
|
|
159
|
-
o("p", null, 'Field type "' +
|
|
142
|
+
o("div", T, [
|
|
143
|
+
o("p", null, 'Field type "' + P(l.field.type) + '" is not supported.', 1)
|
|
160
144
|
])
|
|
161
145
|
])
|
|
162
146
|
])
|
|
@@ -164,6 +148,6 @@ const P = {
|
|
|
164
148
|
}
|
|
165
149
|
});
|
|
166
150
|
export {
|
|
167
|
-
|
|
151
|
+
S as _
|
|
168
152
|
};
|
|
169
|
-
//# sourceMappingURL=DynamicFormField.vue_vue_type_script_setup_true_lang-
|
|
153
|
+
//# sourceMappingURL=DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicFormField.vue_vue_type_script_setup_true_lang-Ct8b80dM.js","sources":["../src/components/forms/DynamicFormField.vue"],"sourcesContent":["<!--\n @component DynamicFormField\n @description Renders a single field based on field configuration.\n \n Used by DynamicForm to render individual fields. Maps field type to\n appropriate input component and passes configuration props.\n \n @props\n - field (DynamicFormField, required): Field configuration object\n - modelValue (any, optional): Field value via v-model\n - formData (object, optional): Complete form data for conditional logic\n \n @emits\n - update:modelValue: Emitted when field value changes\n - field-change: Emitted with field and value on change\n \n @example\n <DynamicFormField\n :field=\"{ name: 'email', type: 'email', label: 'Email' }\"\n v-model=\"formData.email\"\n />\n-->\n<template>\n <component\n :is=\"fieldComponent\"\n v-if=\"fieldComponent\"\n v-bind=\"componentProps\"\n v-on=\"componentEvents\"\n :model-value=\"fieldValue\"\n @update:model-value=\"handleFieldChange\"\n />\n \n <!-- Fallback for unknown field types -->\n <div \n v-else\n class=\"sl-p-4 sl-bg-yellow-50 sl-border sl-border-yellow-200 sl-rounded-md\"\n >\n <div class=\"sl-flex\">\n <ExclamationTriangleIcon class=\"sl-h-5 sl-w-5 sl-text-yellow-400\" />\n <div class=\"sl-ml-3\">\n <h3 class=\"sl-text-sm sl-font-medium sl-text-yellow-800\">\n Unknown field type\n </h3>\n <div class=\"sl-mt-2 sl-text-sm sl-text-yellow-700\">\n <p>Field type \"{{ field.type }}\" is not supported.</p>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * DynamicFormField - Field renderer for DynamicForm\n * \n * Dynamically loads and renders the appropriate input component based on\n * the field type configuration. Handles prop mapping and event forwarding.\n * \n * ## Supported Field Types\n * - text, email, password, number, tel, url → UiTextInput\n * - textarea → TextAreaInput\n * - select → SelectInput\n * - combobox → ComboboxInput\n * - checkbox → CheckboxInput\n * - switch → SwitchInput\n * \n * @module components/forms/DynamicFormField\n * @see {@link DynamicFormField} for field configuration\n */\nimport { computed, defineAsyncComponent } from 'vue'\nimport UiTextInput from '../inputs/TextInput.vue'\nimport { ExclamationTriangleIcon } from '@heroicons/vue/24/outline'\nimport type { DynamicFormField } from '../../types/form'\n\ninterface Props {\n field: DynamicFormField\n modelValue?: any\n formData?: Record<string, any>\n}\n\nconst props = defineProps<Props>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: any]\n 'field-change': [field: DynamicFormField, value: any]\n}>()\n\n// Component mapping for dynamic loading\nconst componentMap: Record<string, () => Promise<any>> = {\n text: () => Promise.resolve(UiTextInput),\n email: () => Promise.resolve(UiTextInput), \n password: () => Promise.resolve(UiTextInput),\n number: () => Promise.resolve(UiTextInput),\n tel: () => Promise.resolve(UiTextInput),\n url: () => Promise.resolve(UiTextInput),\n textarea: () => import('../inputs/TextAreaInput.vue'),\n select: () => import('../inputs/SelectInput.vue'),\n combobox: () => import('../inputs/ComboboxInput.vue'),\n checkbox: () => import('../inputs/CheckboxInput.vue'),\n switch: () => import('../inputs/SwitchInput.vue'),\n}\n\nconst fieldComponent = computed(() => {\n const componentLoader = componentMap[props.field.type]\n if (componentLoader) {\n return defineAsyncComponent({\n loader: componentLoader,\n errorComponent: () => null,\n delay: 0\n })\n }\n return null\n})\n\nconst fieldValue = computed({\n get: () => props.modelValue ?? props.field.defaultValue ?? getDefaultValue(),\n set: (value) => {\n emit('update:modelValue', value)\n emit('field-change', props.field, value)\n }\n})\n\nconst componentProps = computed(() => {\n const baseProps: Record<string, any> = {\n name: props.field.name,\n label: props.field.label,\n placeholder: props.field.placeholder,\n disabled: props.field.disabled,\n rules: props.field.validation,\n validateOnMount: props.field.validateOnMount,\n tertiaryLabel: props.field.tertiaryLabel,\n successMessage: props.field.successMessage\n }\n\n // Type-specific props\n switch (props.field.type) {\n case 'text':\n case 'email':\n case 'password':\n case 'number':\n case 'tel':\n case 'url':\n return {\n ...baseProps,\n type: props.field.inputType || props.field.type,\n maxlength: props.field.maxLength,\n minlength: props.field.minLength,\n min: props.field.min,\n max: props.field.max,\n step: props.field.step,\n spellcheck: props.field.spellcheck,\n autocomplete: props.field.autocomplete\n }\n \n case 'textarea':\n return {\n ...baseProps,\n rows: props.field.rows,\n maxlength: props.field.maxLength,\n spellcheck: props.field.spellcheck\n }\n \n case 'select':\n return {\n ...baseProps,\n items: props.field.options || [],\n multiple: props.field.multiple,\n itemKey: props.field.optionKey || 'value',\n itemText: props.field.optionLabel || 'label',\n showAll: props.field.showSelectAll\n }\n \n case 'combobox':\n return {\n ...baseProps,\n items: props.field.options || [],\n itemKey: props.field.optionKey || 'value',\n itemText: props.field.optionLabel || 'label',\n customQuery: props.field.customQuery,\n loading: props.field.loading\n }\n \n case 'checkbox':\n return {\n ...baseProps,\n description: props.field.description,\n immediate: props.field.immediate ?? true,\n isDescriptionHtml: props.field.isDescriptionHtml\n }\n \n case 'switch':\n return {\n ...baseProps,\n description: props.field.description,\n immediate: props.field.immediate ?? true,\n boxShadow: props.field.boxShadow,\n hideMainLabel: props.field.hideMainLabel,\n textTrue: props.field.textTrue,\n textFalse: props.field.textFalse\n }\n \n default:\n return baseProps\n }\n})\n\nconst componentEvents = computed(() => {\n const baseEvents: Record<string, Function> = {}\n \n // Add event handlers based on field configuration\n if (props.field.onBlur) {\n baseEvents.blur = props.field.onBlur\n }\n \n if (props.field.onFocus) {\n baseEvents.focus = props.field.onFocus\n }\n \n if (props.field.onChange) {\n baseEvents['update:modelValue'] = (value: any) => {\n fieldValue.value = value\n props.field.onChange?.(value, props.field, props.formData ?? {})\n }\n }\n \n return baseEvents\n})\n\nconst getDefaultValue = () => {\n switch (props.field.type) {\n case 'checkbox':\n case 'switch':\n return false\n case 'select':\n return props.field.multiple ? [] : null\n case 'number':\n return props.field.min || 0\n default:\n return ''\n }\n}\n\nconst handleFieldChange = (value: any) => {\n fieldValue.value = value\n}\n</script>\n"],"names":["props","__props","emit","__emit","componentMap","UiTextInput","fieldComponent","computed","componentLoader","defineAsyncComponent","fieldValue","getDefaultValue","value","componentProps","baseProps","componentEvents","baseEvents","handleFieldChange","_createBlock","_resolveDynamicComponent","_mergeProps","_toHandlers","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","_unref","ExclamationTriangleIcon","_hoisted_3","_cache","_hoisted_4","_toDisplayString","field"],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { defineComponent as I, ref as M, toRef as m, watch as r, nextTick as V, createElementBlock as F, openBlock as K, createVNode as q, unref as a, withCtx as c, renderSlot as L, createElementVNode as N, withKeys as O, normalizeClass as T, withModifiers as $ } from "vue";
|
|
2
|
+
import { useField as z } from "vee-validate";
|
|
3
|
+
import { string as H } from "yup";
|
|
4
|
+
import R from "./forms/FormFieldWrapper.js";
|
|
5
|
+
import { g as S } from "./id-DafBB_QF.js";
|
|
6
|
+
const U = { class: "sl-w-full" }, W = ["name", "id", "value", "placeholder", "autocomplete", "disabled", "onKeydown"], P = /* @__PURE__ */ I({
|
|
7
|
+
__name: "EmailInput",
|
|
8
|
+
props: {
|
|
9
|
+
name: {},
|
|
10
|
+
value: { default: "" },
|
|
11
|
+
label: { default: "Email" },
|
|
12
|
+
placeholder: { default: "you@example.com" },
|
|
13
|
+
disabled: { type: Boolean, default: !1 },
|
|
14
|
+
disabledMessage: { default: "" },
|
|
15
|
+
rules: { default: () => H().email("Invalid email address").required("Email is required") },
|
|
16
|
+
successMessage: { default: "" },
|
|
17
|
+
tertiaryLabel: { default: "" },
|
|
18
|
+
colorfulValidation: { type: Boolean, default: !0 },
|
|
19
|
+
showValidCheck: { type: Boolean, default: !0 },
|
|
20
|
+
showErrors: { type: Boolean, default: !1 },
|
|
21
|
+
autoComplete: { default: "email" }
|
|
22
|
+
},
|
|
23
|
+
emits: ["update:value", "update:validity", "focus", "blur", "submit"],
|
|
24
|
+
setup(p, { expose: f, emit: h }) {
|
|
25
|
+
const t = p, l = h, i = S(`sl-${t.name}`), u = M(!1), {
|
|
26
|
+
value: s,
|
|
27
|
+
errorMessage: v,
|
|
28
|
+
handleBlur: g,
|
|
29
|
+
handleChange: b,
|
|
30
|
+
meta: d,
|
|
31
|
+
validate: n,
|
|
32
|
+
setTouched: y
|
|
33
|
+
} = z(m(t, "name"), m(t, "rules"), {
|
|
34
|
+
initialValue: t.value,
|
|
35
|
+
validateOnValueUpdate: !0,
|
|
36
|
+
validateOnMount: !1
|
|
37
|
+
});
|
|
38
|
+
r(
|
|
39
|
+
() => t.value,
|
|
40
|
+
(e) => {
|
|
41
|
+
e !== void 0 && e !== s.value && (s.value = e);
|
|
42
|
+
},
|
|
43
|
+
{ immediate: !0 }
|
|
44
|
+
), r(
|
|
45
|
+
() => d.valid,
|
|
46
|
+
(e) => V(() => l("update:validity", e)),
|
|
47
|
+
{ immediate: !0 }
|
|
48
|
+
), r(s, (e, o) => {
|
|
49
|
+
e !== o && l("update:value", e || "");
|
|
50
|
+
});
|
|
51
|
+
function w(e) {
|
|
52
|
+
const o = e.target.value;
|
|
53
|
+
b(o), l("update:value", o);
|
|
54
|
+
}
|
|
55
|
+
async function k(e) {
|
|
56
|
+
u.value || (u.value = !0, y(!0)), await n(), g(e), l("blur", e);
|
|
57
|
+
}
|
|
58
|
+
function B(e) {
|
|
59
|
+
l("focus", e);
|
|
60
|
+
}
|
|
61
|
+
function E() {
|
|
62
|
+
d.valid && s.value && l("submit");
|
|
63
|
+
}
|
|
64
|
+
return f({
|
|
65
|
+
focus: () => {
|
|
66
|
+
document.getElementById(i)?.focus();
|
|
67
|
+
},
|
|
68
|
+
blur: () => {
|
|
69
|
+
document.getElementById(i)?.blur();
|
|
70
|
+
},
|
|
71
|
+
validate: n
|
|
72
|
+
}), (e, o) => (K(), F("div", U, [
|
|
73
|
+
q(R, {
|
|
74
|
+
id: a(i),
|
|
75
|
+
name: e.name,
|
|
76
|
+
label: e.label,
|
|
77
|
+
"tertiary-label": e.tertiaryLabel,
|
|
78
|
+
"error-message": a(v),
|
|
79
|
+
"success-message": e.successMessage,
|
|
80
|
+
"is-valid": a(d).valid,
|
|
81
|
+
"is-touched": a(d).touched,
|
|
82
|
+
"show-errors": e.showErrors,
|
|
83
|
+
"show-valid-check": e.showValidCheck,
|
|
84
|
+
"colorful-validation": e.colorfulValidation,
|
|
85
|
+
disabled: e.disabled,
|
|
86
|
+
"disabled-message": e.disabledMessage
|
|
87
|
+
}, {
|
|
88
|
+
default: c(({ inputClasses: C }) => [
|
|
89
|
+
N("input", {
|
|
90
|
+
name: e.name,
|
|
91
|
+
id: a(i),
|
|
92
|
+
type: "email",
|
|
93
|
+
value: a(s),
|
|
94
|
+
placeholder: e.placeholder,
|
|
95
|
+
autocomplete: e.autoComplete,
|
|
96
|
+
disabled: e.disabled,
|
|
97
|
+
class: T(["sl-block sl-w-full sl-bg-transparent sl-text-gray-900 dark:sl-text-gray-100 placeholder:sl-text-gray-400 dark:placeholder:sl-text-gray-500 focus:sl-ring-0 focus:sl-outline-none sm:sl-text-sm sm:sl-leading-6", [
|
|
98
|
+
C,
|
|
99
|
+
"sl-py-1.5 sl-pl-2",
|
|
100
|
+
{ "sl-text-gray-400": e.disabled },
|
|
101
|
+
{ "sl-pr-10": e.showValidCheck }
|
|
102
|
+
]]),
|
|
103
|
+
onInput: w,
|
|
104
|
+
onFocus: B,
|
|
105
|
+
onBlur: k,
|
|
106
|
+
onKeydown: O($(E, ["prevent"]), ["enter"]),
|
|
107
|
+
enterkeyhint: "go",
|
|
108
|
+
"data-testid": "email-input"
|
|
109
|
+
}, null, 42, W)
|
|
110
|
+
]),
|
|
111
|
+
"input-right": c(() => [
|
|
112
|
+
L(e.$slots, "input-right")
|
|
113
|
+
]),
|
|
114
|
+
_: 3
|
|
115
|
+
}, 8, ["id", "name", "label", "tertiary-label", "error-message", "success-message", "is-valid", "is-touched", "show-errors", "show-valid-check", "colorful-validation", "disabled", "disabled-message"])
|
|
116
|
+
]));
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
export {
|
|
120
|
+
P as _
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailInput.vue_vue_type_script_setup_true_lang-Dhfgs2Jn.js","sources":["../src/components/inputs/EmailInput.vue"],"sourcesContent":["<!--\n @component EmailInput\n @description Specialized email input with validation and optional verification.\n \n A text input specifically designed for email addresses with built-in\n email validation. Extends the base text input with email-specific\n features like type=\"email\" and email validation rules.\n \n @props\n - name (string, required): Field name for form binding\n - value (string, optional): Email value (use v-model:value)\n - label (string, optional): Display label\n - placeholder (string, optional): Placeholder text\n - disabled (boolean, optional): Disabled state\n - rules (Schema, optional): Custom validation rules\n - colorfulValidation (boolean, optional): Color-coded validation states\n - showValidCheck (boolean, optional): Show check icon when valid\n - showErrors (boolean, optional): Force show errors\n - autoComplete (string, optional): Autocomplete attribute value\n \n @emits\n - update:value: Emitted when value changes\n - update:validity: Emitted when validation state changes\n - focus: Emitted on focus\n - blur: Emitted on blur\n - submit: Emitted when Enter is pressed with valid email\n \n @example\n <EmailInput\n name=\"email\"\n label=\"Email Address\"\n v-model:value=\"form.email\"\n placeholder=\"you@example.com\"\n />\n-->\n<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"label\"\n :tertiary-label=\"tertiaryLabel\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n :show-errors=\"showErrors\"\n :show-valid-check=\"showValidCheck\"\n :colorful-validation=\"colorfulValidation\"\n :disabled=\"disabled\"\n :disabled-message=\"disabledMessage\"\n >\n <template #default=\"{ inputClasses }\">\n <input\n :name=\"name\"\n :id=\"id\"\n type=\"email\"\n :value=\"inputValue\"\n :placeholder=\"placeholder\"\n :autocomplete=\"autoComplete\"\n :disabled=\"disabled\"\n class=\"sl-block sl-w-full sl-bg-transparent sl-text-gray-900 dark:sl-text-gray-100 placeholder:sl-text-gray-400 dark:placeholder:sl-text-gray-500 focus:sl-ring-0 focus:sl-outline-none sm:sl-text-sm sm:sl-leading-6\"\n :class=\"[\n inputClasses,\n 'sl-py-1.5 sl-pl-2',\n { 'sl-text-gray-400': disabled },\n { 'sl-pr-10': showValidCheck },\n ]\"\n @input=\"handleInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown.enter.prevent=\"handleEnterKey\"\n enterkeyhint=\"go\"\n data-testid=\"email-input\"\n />\n </template>\n\n <template #input-right>\n <slot name=\"input-right\" />\n </template>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, toRef, watch, nextTick } from 'vue'\nimport { useField } from 'vee-validate'\nimport { string as yupString, type AnySchema } from 'yup'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport { generateId } from '../../utils/id'\n\ninterface Props {\n name: string\n value?: string\n label?: string\n placeholder?: string\n disabled?: boolean\n disabledMessage?: string\n rules?: AnySchema\n successMessage?: string\n tertiaryLabel?: string\n colorfulValidation?: boolean\n showValidCheck?: boolean\n showErrors?: boolean\n autoComplete?: string\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n value: '',\n label: 'Email',\n placeholder: 'you@example.com',\n disabled: false,\n disabledMessage: '',\n rules: () => yupString().email('Invalid email address').required('Email is required'),\n successMessage: '',\n tertiaryLabel: '',\n colorfulValidation: true,\n showValidCheck: true,\n showErrors: false,\n autoComplete: 'email'\n})\n\nconst emit = defineEmits<{\n 'update:value': [value: string]\n 'update:validity': [isValid: boolean]\n focus: [event: FocusEvent]\n blur: [event: FocusEvent]\n submit: []\n}>()\n\nconst id = generateId(`sl-${props.name}`)\nconst touched = ref(false)\n\nconst {\n value: inputValue,\n errorMessage,\n handleBlur: veeHandleBlur,\n handleChange,\n meta,\n validate,\n setTouched\n} = useField(toRef(props, 'name'), toRef(props, 'rules'), {\n initialValue: props.value,\n validateOnValueUpdate: true,\n validateOnMount: false\n})\n\n// Sync external value changes\nwatch(\n () => props.value,\n (newValue) => {\n if (newValue !== undefined && newValue !== inputValue.value) {\n inputValue.value = newValue\n }\n },\n { immediate: true }\n)\n\n// Emit validity changes\nwatch(\n () => meta.valid,\n (v) => nextTick(() => emit('update:validity', v)),\n { immediate: true }\n)\n\n// Emit value changes\nwatch(inputValue, (newValue, oldValue) => {\n if (newValue !== oldValue) {\n emit('update:value', newValue || '')\n }\n})\n\nfunction handleInput(e: Event) {\n const v = (e.target as HTMLInputElement).value\n handleChange(v)\n emit('update:value', v)\n}\n\nasync function handleBlur(e: FocusEvent) {\n if (!touched.value) {\n touched.value = true\n setTouched(true)\n }\n await validate()\n veeHandleBlur(e)\n emit('blur', e)\n}\n\nfunction handleFocus(e: FocusEvent) {\n emit('focus', e)\n}\n\nfunction handleEnterKey() {\n if (meta.valid && inputValue.value) {\n emit('submit')\n }\n}\n\ndefineExpose({\n focus: () => {\n const el = document.getElementById(id)\n el?.focus()\n },\n blur: () => {\n const el = document.getElementById(id)\n el?.blur()\n },\n validate\n})\n</script>\n\n"],"names":["props","__props","emit","__emit","id","generateId","touched","ref","inputValue","errorMessage","veeHandleBlur","handleChange","meta","validate","setTouched","useField","toRef","watch","newValue","v","nextTick","oldValue","handleInput","handleBlur","handleFocus","handleEnterKey","__expose","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","name","label","tertiaryLabel","successMessage","showErrors","showValidCheck","colorfulValidation","disabled","disabledMessage","_withCtx","inputClasses","_createElementVNode","placeholder","autoComplete","_renderSlot","_ctx"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defineComponent as o, createElementBlock as t, openBlock as s, createCommentVNode as l, createElementVNode as a, toDisplayString as r, createBlock as n, resolveDynamicComponent as d } from "vue";
|
|
2
|
+
const i = {
|
|
3
|
+
class: "sl-px-4 sl-py-5 sm:sl-p-6 sl-bg-gray-50 dark:sl-bg-slate-800 sl-rounded-lg sl-border sl-border-dashed sl-border-gray-300 dark:sl-border-slate-600",
|
|
4
|
+
"data-testid": "empty-input"
|
|
5
|
+
}, c = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "sl-text-base sl-font-semibold sl-leading-6 sl-text-gray-800 dark:sl-text-gray-200"
|
|
8
|
+
}, p = { class: "sl-mt-2 sl-max-w-xl sl-text-sm sl-text-gray-500 dark:sl-text-gray-300 sl-flex sl-items-center" }, m = { key: 1 }, u = /* @__PURE__ */ o({
|
|
9
|
+
__name: "EmptyInput",
|
|
10
|
+
props: {
|
|
11
|
+
title: { default: "" },
|
|
12
|
+
description: { default: "" },
|
|
13
|
+
icon: {}
|
|
14
|
+
},
|
|
15
|
+
setup(y) {
|
|
16
|
+
return (e, g) => (s(), t("div", i, [
|
|
17
|
+
e.title ? (s(), t("h3", c, r(e.title), 1)) : l("", !0),
|
|
18
|
+
a("div", p, [
|
|
19
|
+
e.icon ? (s(), n(d(e.icon), {
|
|
20
|
+
key: 0,
|
|
21
|
+
class: "sl-mr-2 sl-h-6 sl-w-6 sl-text-gray-400 dark:sl-text-gray-300 sl-flex-shrink-0",
|
|
22
|
+
"aria-hidden": "true"
|
|
23
|
+
})) : l("", !0),
|
|
24
|
+
e.description ? (s(), t("p", m, r(e.description), 1)) : l("", !0)
|
|
25
|
+
])
|
|
26
|
+
]));
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
export {
|
|
30
|
+
u as _
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyInput.vue_vue_type_script_setup_true_lang-BDxgc5Bs.js","sources":["../src/components/inputs/EmptyInput.vue"],"sourcesContent":["<!--\n @component EmptyInput\n @description Placeholder component for empty/unavailable form fields.\n \n Displays a styled placeholder with optional title, description, and icon\n for form fields that are not yet available or have been removed.\n Useful for showing contextual information in form layouts.\n \n @props\n - title (string, optional): Main title text\n - description (string, optional): Descriptive text\n - icon (Component, optional): Heroicon or custom icon component\n \n @example\n <EmptyInput \n title=\"Coming Soon\" \n description=\"This feature is not yet available.\"\n :icon=\"ClockIcon\"\n />\n-->\n<template>\n <div \n class=\"sl-px-4 sl-py-5 sm:sl-p-6 sl-bg-gray-50 dark:sl-bg-slate-800 sl-rounded-lg sl-border sl-border-dashed sl-border-gray-300 dark:sl-border-slate-600\"\n data-testid=\"empty-input\"\n >\n <h3 \n v-if=\"title\" \n class=\"sl-text-base sl-font-semibold sl-leading-6 sl-text-gray-800 dark:sl-text-gray-200\"\n >\n {{ title }}\n </h3>\n <div class=\"sl-mt-2 sl-max-w-xl sl-text-sm sl-text-gray-500 dark:sl-text-gray-300 sl-flex sl-items-center\">\n <component \n v-if=\"icon\" \n :is=\"icon\" \n class=\"sl-mr-2 sl-h-6 sl-w-6 sl-text-gray-400 dark:sl-text-gray-300 sl-flex-shrink-0\" \n aria-hidden=\"true\"\n />\n <p v-if=\"description\">{{ description }}</p>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { FunctionalComponent, HTMLAttributes, VNodeProps } from 'vue'\n\ninterface Props {\n title?: string\n description?: string\n icon?: FunctionalComponent<HTMLAttributes & VNodeProps>\n}\n\nwithDefaults(defineProps<Props>(), {\n title: '',\n description: ''\n})\n</script>\n\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","title","_hoisted_2","_toDisplayString","_createElementVNode","_hoisted_3","icon","_createBlock","_resolveDynamicComponent","description"],"mappings":";;;;;;;;;;;;;;;sBAqBEA,EAAA,GAAAC,EAmBM,OAnBNC,GAmBM;AAAA,MAdIC,EAAAA,cADRF,EAKK,MALLG,GAKKC,EADAF,EAAAA,KAAK,GAAA,CAAA;MAEVG,EAQM,OARNC,GAQM;AAAA,QANIC,EAAAA,QADRR,EAAA,GAAAS,EAKEC,EAHKF,EAAAA,IAAI,GAAA;AAAA;UACT,OAAM;AAAA,UACN,eAAY;AAAA,QAAA;QAELG,EAAAA,eAATX,EAAA,GAAAC,EAA2C,UAAlBU,EAAAA,WAAW,GAAA,CAAA;;;;;"}
|