cisse-vue-ui 0.7.3 → 0.7.5
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/BadgeType.vue_vue_type_script_setup_true_lang-zs0NXN4g.cjs +145 -0
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-zs0NXN4g.cjs.map +1 -0
- package/dist/Button.vue_vue_type_script_setup_true_lang-CXRj7LEP.cjs +98 -0
- package/dist/Button.vue_vue_type_script_setup_true_lang-CXRj7LEP.cjs.map +1 -0
- package/dist/{TagsInput-DtoJKN3L.js → CheckboxGroup.vue_vue_type_script_setup_true_lang-BOGul8zU.js} +400 -225
- package/dist/CheckboxGroup.vue_vue_type_script_setup_true_lang-BOGul8zU.js.map +1 -0
- package/dist/CheckboxGroup.vue_vue_type_script_setup_true_lang-BcoXb8Xg.cjs +3869 -0
- package/dist/CheckboxGroup.vue_vue_type_script_setup_true_lang-BcoXb8Xg.cjs.map +1 -0
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bine-xfp.cjs +928 -0
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bine-xfp.cjs.map +1 -0
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-BNOHbbm5.cjs +228 -0
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-BNOHbbm5.cjs.map +1 -0
- package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-HwjuvIJX.cjs +2242 -0
- package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-HwjuvIJX.cjs.map +1 -0
- package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs +149 -0
- package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs.map +1 -0
- package/dist/PageHero.vue_vue_type_script_setup_true_lang-CZ-TibKk.cjs +764 -0
- package/dist/PageHero.vue_vue_type_script_setup_true_lang-CZ-TibKk.cjs.map +1 -0
- package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs +10 -0
- package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs.map +1 -0
- package/dist/components/core/Accordion.stories.d.ts +11 -0
- package/dist/components/core/Accordion.test.d.ts +1 -0
- package/dist/components/core/Accordion.vue.d.ts +27 -0
- package/dist/components/core/AccordionItem.stories.d.ts +10 -0
- package/dist/components/core/AccordionItem.vue.d.ts +29 -0
- package/dist/components/core/AutocompleteComponent.stories.d.ts +14 -0
- package/dist/components/core/AutocompleteComponent.test.d.ts +1 -0
- package/dist/components/core/AutocompleteComponent.vue.d.ts +25 -0
- package/dist/components/core/Avatar.stories.d.ts +12 -0
- package/dist/components/core/Avatar.test.d.ts +1 -0
- package/dist/components/core/Avatar.vue.d.ts +20 -0
- package/dist/components/core/Breadcrumb.stories.d.ts +11 -0
- package/dist/components/core/Breadcrumb.test.d.ts +1 -0
- package/dist/components/core/Breadcrumb.vue.d.ts +26 -0
- package/dist/components/core/Button.stories.d.ts +18 -0
- package/dist/components/core/Button.test.d.ts +1 -0
- package/dist/components/core/Button.vue.d.ts +49 -0
- package/dist/components/core/CardComponent.stories.d.ts +13 -0
- package/dist/components/core/CardComponent.test.d.ts +1 -0
- package/dist/components/core/CardComponent.vue.d.ts +40 -0
- package/dist/components/core/CollapsibleCard.stories.d.ts +10 -0
- package/dist/components/core/CollapsibleCard.test.d.ts +1 -0
- package/dist/components/core/CollapsibleCard.vue.d.ts +38 -0
- package/dist/components/core/DarkModeToggle.stories.d.ts +15 -0
- package/dist/components/core/DarkModeToggle.test.d.ts +1 -0
- package/dist/components/core/DarkModeToggle.vue.d.ts +21 -0
- package/dist/components/core/Drawer.stories.d.ts +12 -0
- package/dist/components/core/Drawer.test.d.ts +1 -0
- package/dist/components/core/Drawer.vue.d.ts +50 -0
- package/dist/components/core/Dropdown.stories.d.ts +11 -0
- package/dist/components/core/Dropdown.test.d.ts +1 -0
- package/dist/components/core/Dropdown.vue.d.ts +56 -0
- package/dist/components/core/FilterTabs.stories.d.ts +14 -0
- package/dist/components/core/FilterTabs.test.d.ts +1 -0
- package/dist/components/core/FilterTabs.vue.d.ts +29 -0
- package/dist/components/core/MenuItem.stories.d.ts +13 -0
- package/dist/components/core/MenuItem.test.d.ts +1 -0
- package/dist/components/core/MenuItem.vue.d.ts +16 -0
- package/dist/components/core/MobileList.stories.d.ts +13 -0
- package/dist/components/core/MobileList.test.d.ts +1 -0
- package/dist/components/core/MobileList.vue.d.ts +86 -0
- package/dist/components/core/Popover.stories.d.ts +10 -0
- package/dist/components/core/Popover.test.d.ts +1 -0
- package/dist/components/core/Popover.vue.d.ts +44 -0
- package/dist/components/core/ResponsiveList.stories.d.ts +15 -0
- package/dist/components/core/ResponsiveList.test.d.ts +1 -0
- package/dist/components/core/ResponsiveList.vue.d.ts +128 -0
- package/dist/components/core/StatsCard.stories.d.ts +15 -0
- package/dist/components/core/StatsCard.test.d.ts +1 -0
- package/dist/components/core/StatsCard.vue.d.ts +44 -0
- package/dist/components/core/StatsGrid.stories.d.ts +12 -0
- package/dist/components/core/StatsGrid.test.d.ts +1 -0
- package/dist/components/core/StatsGrid.vue.d.ts +16 -0
- package/dist/components/core/StatusBadge.stories.d.ts +13 -0
- package/dist/components/core/StatusBadge.test.d.ts +1 -0
- package/dist/components/core/StatusBadge.vue.d.ts +21 -0
- package/dist/components/core/Stepper.stories.d.ts +12 -0
- package/dist/components/core/Stepper.test.d.ts +1 -0
- package/dist/components/core/Stepper.vue.d.ts +22 -0
- package/dist/components/core/TabPanel.stories.d.ts +8 -0
- package/dist/components/core/TabPanel.test.d.ts +1 -0
- package/dist/components/core/TabPanel.vue.d.ts +21 -0
- package/dist/components/core/TableAction.stories.d.ts +14 -0
- package/dist/components/core/TableAction.test.d.ts +1 -0
- package/dist/components/core/TableAction.vue.d.ts +8 -0
- package/dist/components/core/TableComponent.stories.d.ts +16 -0
- package/dist/components/core/TableComponent.test.d.ts +1 -0
- package/dist/components/core/TableComponent.vue.d.ts +67 -0
- package/dist/components/core/Tabs.stories.d.ts +10 -0
- package/dist/components/core/Tabs.test.d.ts +1 -0
- package/dist/components/core/Tabs.vue.d.ts +39 -0
- package/dist/components/core/Timeline.stories.d.ts +11 -0
- package/dist/components/core/Timeline.test.d.ts +1 -0
- package/dist/components/core/Timeline.vue.d.ts +34 -0
- package/dist/components/core/Tooltip.stories.d.ts +10 -0
- package/dist/components/core/Tooltip.test.d.ts +1 -0
- package/dist/components/core/Tooltip.vue.d.ts +34 -0
- package/dist/components/core/index.cjs +33 -0
- package/dist/components/core/index.cjs.map +1 -0
- package/dist/components/core/index.test.d.ts +1 -0
- package/dist/components/feedback/Alert.stories.d.ts +13 -0
- package/dist/components/feedback/Alert.test.d.ts +1 -0
- package/dist/components/feedback/Alert.vue.d.ts +34 -0
- package/dist/components/feedback/CardSkeleton.stories.d.ts +11 -0
- package/dist/components/feedback/CardSkeleton.test.d.ts +1 -0
- package/dist/components/feedback/CardSkeleton.vue.d.ts +14 -0
- package/dist/components/feedback/ConfirmDialog.stories.d.ts +12 -0
- package/dist/components/feedback/ConfirmDialog.test.d.ts +1 -0
- package/dist/components/feedback/ConfirmDialog.vue.d.ts +53 -0
- package/dist/components/feedback/EmptyState.stories.d.ts +13 -0
- package/dist/components/feedback/EmptyState.test.d.ts +1 -0
- package/dist/components/feedback/EmptyState.vue.d.ts +29 -0
- package/dist/components/feedback/ListSkeleton.stories.d.ts +12 -0
- package/dist/components/feedback/ListSkeleton.test.d.ts +1 -0
- package/dist/components/feedback/ListSkeleton.vue.d.ts +17 -0
- package/dist/components/feedback/LoadingSpinner.stories.d.ts +11 -0
- package/dist/components/feedback/LoadingSpinner.test.d.ts +1 -0
- package/dist/components/feedback/LoadingSpinner.vue.d.ts +12 -0
- package/dist/components/feedback/Modal.stories.d.ts +11 -0
- package/dist/components/feedback/Modal.test.d.ts +1 -0
- package/dist/components/feedback/Modal.vue.d.ts +47 -0
- package/dist/components/feedback/NotificationComponent.stories.d.ts +14 -0
- package/dist/components/feedback/NotificationComponent.test.d.ts +1 -0
- package/dist/components/feedback/NotificationComponent.vue.d.ts +12 -0
- package/dist/components/feedback/NotificationList.stories.d.ts +11 -0
- package/dist/components/feedback/NotificationList.test.d.ts +1 -0
- package/dist/components/feedback/NotificationList.vue.d.ts +18 -0
- package/dist/components/feedback/PaginationControls.stories.d.ts +12 -0
- package/dist/components/feedback/PaginationControls.test.d.ts +1 -0
- package/dist/components/feedback/PaginationControls.vue.d.ts +21 -0
- package/dist/components/feedback/Progress.stories.d.ts +14 -0
- package/dist/components/feedback/Progress.test.d.ts +1 -0
- package/dist/components/feedback/Progress.vue.d.ts +30 -0
- package/dist/components/feedback/Skeleton.stories.d.ts +15 -0
- package/dist/components/feedback/Skeleton.test.d.ts +1 -0
- package/dist/components/feedback/Skeleton.vue.d.ts +19 -0
- package/dist/components/feedback/TableSkeleton.stories.d.ts +12 -0
- package/dist/components/feedback/TableSkeleton.test.d.ts +1 -0
- package/dist/components/feedback/TableSkeleton.vue.d.ts +14 -0
- package/dist/components/feedback/Toast.stories.d.ts +12 -0
- package/dist/components/feedback/Toast.test.d.ts +1 -0
- package/dist/components/feedback/Toast.vue.d.ts +23 -0
- package/dist/components/feedback/ToastContainer.stories.d.ts +15 -0
- package/dist/components/feedback/ToastContainer.test.d.ts +1 -0
- package/dist/components/feedback/ToastContainer.vue.d.ts +24 -0
- package/dist/components/feedback/index.cjs +20 -0
- package/dist/components/feedback/index.cjs.map +1 -0
- package/dist/components/feedback/index.test.d.ts +1 -0
- package/dist/components/form/Checkbox.stories.d.ts +13 -0
- package/dist/components/form/Checkbox.test.d.ts +1 -0
- package/dist/components/form/Checkbox.vue.d.ts +22 -0
- package/dist/components/form/CheckboxGroup.test.d.ts +1 -0
- package/dist/components/form/CheckboxGroup.vue.d.ts +26 -0
- package/dist/components/form/ColorPicker.stories.d.ts +12 -0
- package/dist/components/form/ColorPicker.test.d.ts +1 -0
- package/dist/components/form/ColorPicker.vue.d.ts +26 -0
- package/dist/components/form/Combobox.stories.d.ts +15 -0
- package/dist/components/form/Combobox.test.d.ts +1 -0
- package/dist/components/form/Combobox.vue.d.ts +46 -0
- package/dist/components/form/DatePicker.stories.d.ts +15 -0
- package/dist/components/form/DatePicker.test.d.ts +1 -0
- package/dist/components/form/DatePicker.vue.d.ts +36 -0
- package/dist/components/form/EmailInput.stories.d.ts +13 -0
- package/dist/components/form/EmailInput.test.d.ts +1 -0
- package/dist/components/form/EmailInput.vue.d.ts +32 -0
- package/dist/components/form/FileUpload.stories.d.ts +12 -0
- package/dist/components/form/FileUpload.test.d.ts +1 -0
- package/dist/components/form/FileUpload.vue.d.ts +40 -0
- package/dist/components/form/FormActions.stories.d.ts +18 -0
- package/dist/components/form/FormActions.test.d.ts +1 -0
- package/dist/components/form/FormActions.vue.d.ts +56 -0
- package/dist/components/form/FormGroup.stories.d.ts +10 -0
- package/dist/components/form/FormGroup.test.d.ts +1 -0
- package/dist/components/form/FormGroup.vue.d.ts +30 -0
- package/dist/components/form/FormHelp.stories.d.ts +11 -0
- package/dist/components/form/FormHelp.test.d.ts +1 -0
- package/dist/components/form/FormHelp.vue.d.ts +23 -0
- package/dist/components/form/FormInput.stories.d.ts +12 -0
- package/dist/components/form/FormInput.test.d.ts +1 -0
- package/dist/components/form/FormInput.vue.d.ts +13 -0
- package/dist/components/form/FormLabel.stories.d.ts +12 -0
- package/dist/components/form/FormLabel.test.d.ts +1 -0
- package/dist/components/form/FormLabel.vue.d.ts +21 -0
- package/dist/components/form/FormSection.stories.d.ts +13 -0
- package/dist/components/form/FormSection.test.d.ts +1 -0
- package/dist/components/form/FormSection.vue.d.ts +49 -0
- package/dist/components/form/FormSelect.stories.d.ts +13 -0
- package/dist/components/form/FormSelect.test.d.ts +1 -0
- package/dist/components/form/FormSelect.vue.d.ts +55 -0
- package/dist/components/form/IconPicker.vue.d.ts +33 -0
- package/dist/components/form/InputWrapper.stories.d.ts +16 -0
- package/dist/components/form/InputWrapper.test.d.ts +1 -0
- package/dist/components/form/InputWrapper.vue.d.ts +40 -0
- package/dist/components/form/MoneyInput.stories.d.ts +16 -0
- package/dist/components/form/MoneyInput.test.d.ts +1 -0
- package/dist/components/form/MoneyInput.vue.d.ts +40 -0
- package/dist/components/form/NumberInput.stories.d.ts +14 -0
- package/dist/components/form/NumberInput.test.d.ts +1 -0
- package/dist/components/form/NumberInput.vue.d.ts +39 -0
- package/dist/components/form/OTPInput.stories.d.ts +13 -0
- package/dist/components/form/OTPInput.test.d.ts +1 -0
- package/dist/components/form/OTPInput.vue.d.ts +33 -0
- package/dist/components/form/PasswordInput.stories.d.ts +15 -0
- package/dist/components/form/PasswordInput.test.d.ts +1 -0
- package/dist/components/form/PasswordInput.vue.d.ts +36 -0
- package/dist/components/form/PercentInput.stories.d.ts +12 -0
- package/dist/components/form/PercentInput.test.d.ts +1 -0
- package/dist/components/form/PercentInput.vue.d.ts +38 -0
- package/dist/components/form/PhoneInput.stories.d.ts +13 -0
- package/dist/components/form/PhoneInput.test.d.ts +1 -0
- package/dist/components/form/PhoneInput.vue.d.ts +91 -0
- package/dist/components/form/QuantityInput.stories.d.ts +12 -0
- package/dist/components/form/QuantityInput.test.d.ts +1 -0
- package/dist/components/form/QuantityInput.vue.d.ts +32 -0
- package/dist/components/form/RangeSlider.stories.d.ts +13 -0
- package/dist/components/form/RangeSlider.test.d.ts +1 -0
- package/dist/components/form/RangeSlider.vue.d.ts +35 -0
- package/dist/components/form/Rating.stories.d.ts +16 -0
- package/dist/components/form/Rating.test.d.ts +1 -0
- package/dist/components/form/Rating.vue.d.ts +43 -0
- package/dist/components/form/SearchInput.stories.d.ts +13 -0
- package/dist/components/form/SearchInput.test.d.ts +1 -0
- package/dist/components/form/SearchInput.vue.d.ts +26 -0
- package/dist/components/form/Slider.stories.d.ts +13 -0
- package/dist/components/form/Slider.test.d.ts +1 -0
- package/dist/components/form/Slider.vue.d.ts +29 -0
- package/dist/components/form/Switch.stories.d.ts +11 -0
- package/dist/components/form/Switch.test.d.ts +1 -0
- package/dist/components/form/Switch.vue.d.ts +23 -0
- package/dist/components/form/TagsInput.stories.d.ts +13 -0
- package/dist/components/form/TagsInput.test.d.ts +1 -0
- package/dist/components/form/TagsInput.vue.d.ts +37 -0
- package/dist/components/form/TextArea.test.d.ts +1 -0
- package/dist/components/form/TextArea.vue.d.ts +40 -0
- package/dist/components/form/URLInput.stories.d.ts +11 -0
- package/dist/components/form/URLInput.test.d.ts +1 -0
- package/dist/components/form/URLInput.vue.d.ts +32 -0
- package/dist/components/form/index.cjs +36 -0
- package/dist/components/form/index.cjs.map +1 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.js +3 -1
- package/dist/components/form/index.test.d.ts +1 -0
- package/dist/components/index.cjs +93 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.js +3 -1
- package/dist/components/index.test.d.ts +1 -0
- package/dist/components/layout/AuthLayout.stories.d.ts +10 -0
- package/dist/components/layout/AuthLayout.test.d.ts +1 -0
- package/dist/components/layout/AuthLayout.vue.d.ts +88 -0
- package/dist/components/layout/BaseLayout.stories.d.ts +11 -0
- package/dist/components/layout/BaseLayout.test.d.ts +1 -0
- package/dist/components/layout/BaseLayout.vue.d.ts +77 -0
- package/dist/components/layout/PageHero.stories.d.ts +11 -0
- package/dist/components/layout/PageHero.test.d.ts +1 -0
- package/dist/components/layout/PageHero.vue.d.ts +55 -0
- package/dist/components/layout/PageLayout.stories.d.ts +10 -0
- package/dist/components/layout/PageLayout.test.d.ts +1 -0
- package/dist/components/layout/PageLayout.vue.d.ts +37 -0
- package/dist/components/layout/index.cjs +8 -0
- package/dist/components/layout/index.cjs.map +1 -0
- package/dist/components/layout/index.test.d.ts +1 -0
- package/dist/components/type/BadgeType.stories.d.ts +13 -0
- package/dist/components/type/BadgeType.test.d.ts +1 -0
- package/dist/components/type/BooleanType.stories.d.ts +12 -0
- package/dist/components/type/BooleanType.test.d.ts +1 -0
- package/dist/components/type/DateType.stories.d.ts +12 -0
- package/dist/components/type/DateType.test.d.ts +1 -0
- package/dist/components/type/NumberType.stories.d.ts +11 -0
- package/dist/components/type/NumberType.test.d.ts +1 -0
- package/dist/components/type/TextType.stories.d.ts +10 -0
- package/dist/components/type/TextType.test.d.ts +1 -0
- package/dist/components/type/index.cjs +9 -0
- package/dist/components/type/index.cjs.map +1 -0
- package/dist/components/type/index.test.d.ts +1 -0
- package/dist/composables/index.cjs +19 -0
- package/dist/composables/index.cjs.map +1 -0
- package/dist/composables/index.d.ts +8 -0
- package/dist/composables/index.test.d.ts +1 -0
- package/dist/composables/useDarkMode.d.ts +14 -0
- package/dist/composables/useDarkMode.test.d.ts +1 -0
- package/dist/composables/useDropdown.d.ts +51 -0
- package/dist/composables/useDropdown.test.d.ts +1 -0
- package/dist/composables/useExportCSV.d.ts +10 -0
- package/dist/composables/useExportCSV.test.d.ts +1 -0
- package/dist/composables/useFocusTrap.d.ts +41 -0
- package/dist/composables/useFocusTrap.test.d.ts +1 -0
- package/dist/composables/useId.d.ts +42 -0
- package/dist/composables/useId.test.d.ts +1 -0
- package/dist/composables/useModal.d.ts +60 -0
- package/dist/composables/useModal.test.d.ts +1 -0
- package/dist/composables/useNotifications.d.ts +27 -0
- package/dist/composables/useNotifications.test.d.ts +1 -0
- package/dist/composables/useToast.d.ts +30 -0
- package/dist/composables/useToast.test.d.ts +1 -0
- package/dist/index-D1x3TH9k.cjs +401 -0
- package/dist/index-D1x3TH9k.cjs.map +1 -0
- package/dist/index-DXO2TliH.cjs +96 -0
- package/dist/index-DXO2TliH.cjs.map +1 -0
- package/dist/index-DpEkzIVv.js +97 -0
- package/dist/index-DpEkzIVv.js.map +1 -0
- package/dist/index.cjs +125 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +4 -2
- package/dist/index.test.d.ts +1 -0
- package/dist/plugin.d.ts +24 -0
- package/dist/style.css +2 -0
- package/dist/types/components.d.ts +28 -0
- package/dist/types/form.d.ts +37 -0
- package/dist/types/index.cjs +2 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.test.d.ts +1 -0
- package/dist/types/notification.d.ts +12 -0
- package/dist/types/property.d.ts +34 -0
- package/dist/useDarkMode-DLZcJEUQ.cjs +52 -0
- package/dist/useDarkMode-DLZcJEUQ.cjs.map +1 -0
- package/dist/useDropdown-DHFnd259.cjs +130 -0
- package/dist/useDropdown-DHFnd259.cjs.map +1 -0
- package/dist/useFocusTrap-kcxO8AeU.cjs +119 -0
- package/dist/useFocusTrap-kcxO8AeU.cjs.map +1 -0
- package/dist/useId-nxrBaIC9.cjs +25 -0
- package/dist/useId-nxrBaIC9.cjs.map +1 -0
- package/dist/useToast-Bk60GArg.cjs +176 -0
- package/dist/useToast-Bk60GArg.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/TagsInput-DtoJKN3L.js.map +0 -1
- package/dist/index-F9yanU6_.js +0 -95
- package/dist/index-F9yanU6_.js.map +0 -1
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const vue = require("vue");
|
|
3
|
+
var IDX = 256, HEX = [], SIZE = 256, BUFFER;
|
|
4
|
+
while (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);
|
|
5
|
+
function uid(len) {
|
|
6
|
+
var i = 0, tmp = 11;
|
|
7
|
+
if (!BUFFER || IDX + tmp > SIZE * 2) {
|
|
8
|
+
for (BUFFER = "", IDX = 0; i < SIZE; i++) {
|
|
9
|
+
BUFFER += HEX[Math.random() * 256 | 0];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return BUFFER.substring(IDX, IDX++ + tmp);
|
|
13
|
+
}
|
|
14
|
+
const notifications = vue.ref([]);
|
|
15
|
+
function useNotifications() {
|
|
16
|
+
const notify = (type, message, options = {}) => {
|
|
17
|
+
const id = uid();
|
|
18
|
+
const notification = {
|
|
19
|
+
id,
|
|
20
|
+
type,
|
|
21
|
+
message,
|
|
22
|
+
title: options.title ?? null,
|
|
23
|
+
duration: options.duration ?? 5e3
|
|
24
|
+
};
|
|
25
|
+
notifications.value.push(notification);
|
|
26
|
+
if (notification.duration && notification.duration > 0) {
|
|
27
|
+
setTimeout(() => remove(id), notification.duration);
|
|
28
|
+
}
|
|
29
|
+
return id;
|
|
30
|
+
};
|
|
31
|
+
const success = (message, options) => notify("success", message, options);
|
|
32
|
+
const warning = (message, options) => notify("warning", message, options);
|
|
33
|
+
const error = (message, options) => notify("error", message, options);
|
|
34
|
+
const info = (message, options) => notify("info", message, options);
|
|
35
|
+
const remove = (id) => {
|
|
36
|
+
notifications.value = notifications.value.filter((n) => n.id !== id);
|
|
37
|
+
};
|
|
38
|
+
const clear = () => {
|
|
39
|
+
notifications.value = [];
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
notifications: vue.readonly(notifications),
|
|
43
|
+
notify,
|
|
44
|
+
success,
|
|
45
|
+
warning,
|
|
46
|
+
error,
|
|
47
|
+
info,
|
|
48
|
+
remove,
|
|
49
|
+
clear
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function useExportCSV() {
|
|
53
|
+
const escapeCSV = (value) => {
|
|
54
|
+
if (value === null || value === void 0) return "";
|
|
55
|
+
const str = String(value);
|
|
56
|
+
if (str.includes(",") || str.includes('"') || str.includes("\n")) {
|
|
57
|
+
return `"${str.replace(/"/g, '""')}"`;
|
|
58
|
+
}
|
|
59
|
+
return str;
|
|
60
|
+
};
|
|
61
|
+
const exportToCSV = (data, columns, filename = "export.csv") => {
|
|
62
|
+
if (!data || data.length === 0) {
|
|
63
|
+
console.warn("No data to export");
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const headers = columns.map((col) => escapeCSV(col.label)).join(",");
|
|
67
|
+
const rows = data.map(
|
|
68
|
+
(item) => columns.map((col) => escapeCSV(item[col.key])).join(",")
|
|
69
|
+
);
|
|
70
|
+
const csv = [headers, ...rows].join("\n");
|
|
71
|
+
const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
|
|
72
|
+
const url = URL.createObjectURL(blob);
|
|
73
|
+
const link = document.createElement("a");
|
|
74
|
+
link.setAttribute("href", url);
|
|
75
|
+
link.setAttribute("download", filename);
|
|
76
|
+
link.style.visibility = "hidden";
|
|
77
|
+
document.body.appendChild(link);
|
|
78
|
+
link.click();
|
|
79
|
+
document.body.removeChild(link);
|
|
80
|
+
URL.revokeObjectURL(url);
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
exportToCSV,
|
|
84
|
+
escapeCSV
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function useModal(options) {
|
|
88
|
+
const {
|
|
89
|
+
initialOpen = false,
|
|
90
|
+
initialData = null,
|
|
91
|
+
onOpen,
|
|
92
|
+
onClose
|
|
93
|
+
} = options ?? {};
|
|
94
|
+
const isOpen = vue.ref(initialOpen);
|
|
95
|
+
const data = vue.ref(initialData);
|
|
96
|
+
const open = (newData) => {
|
|
97
|
+
data.value = newData ?? null;
|
|
98
|
+
isOpen.value = true;
|
|
99
|
+
onOpen == null ? void 0 : onOpen(data.value);
|
|
100
|
+
};
|
|
101
|
+
const close = () => {
|
|
102
|
+
isOpen.value = false;
|
|
103
|
+
data.value = null;
|
|
104
|
+
onClose == null ? void 0 : onClose();
|
|
105
|
+
};
|
|
106
|
+
const toggle = () => {
|
|
107
|
+
if (isOpen.value) {
|
|
108
|
+
close();
|
|
109
|
+
} else {
|
|
110
|
+
open();
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
return {
|
|
114
|
+
isOpen,
|
|
115
|
+
data,
|
|
116
|
+
open,
|
|
117
|
+
close,
|
|
118
|
+
toggle
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function useModals(modals) {
|
|
122
|
+
return modals;
|
|
123
|
+
}
|
|
124
|
+
const toasts = vue.ref([]);
|
|
125
|
+
let toastId = 0;
|
|
126
|
+
function useToast() {
|
|
127
|
+
const add = (options) => {
|
|
128
|
+
const id = `toast-${++toastId}`;
|
|
129
|
+
const toast = {
|
|
130
|
+
id,
|
|
131
|
+
message: options.message,
|
|
132
|
+
type: options.type || "info",
|
|
133
|
+
title: options.title,
|
|
134
|
+
duration: options.duration ?? 5e3
|
|
135
|
+
};
|
|
136
|
+
toasts.value.push(toast);
|
|
137
|
+
return id;
|
|
138
|
+
};
|
|
139
|
+
const remove = (id) => {
|
|
140
|
+
const index = toasts.value.findIndex((t) => t.id === id);
|
|
141
|
+
if (index > -1) {
|
|
142
|
+
toasts.value.splice(index, 1);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
const clear = () => {
|
|
146
|
+
toasts.value = [];
|
|
147
|
+
};
|
|
148
|
+
const success = (message, title) => {
|
|
149
|
+
return add({ message, title, type: "success" });
|
|
150
|
+
};
|
|
151
|
+
const error = (message, title) => {
|
|
152
|
+
return add({ message, title, type: "error" });
|
|
153
|
+
};
|
|
154
|
+
const warning = (message, title) => {
|
|
155
|
+
return add({ message, title, type: "warning" });
|
|
156
|
+
};
|
|
157
|
+
const info = (message, title) => {
|
|
158
|
+
return add({ message, title, type: "info" });
|
|
159
|
+
};
|
|
160
|
+
return {
|
|
161
|
+
toasts,
|
|
162
|
+
add,
|
|
163
|
+
remove,
|
|
164
|
+
clear,
|
|
165
|
+
success,
|
|
166
|
+
error,
|
|
167
|
+
warning,
|
|
168
|
+
info
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
exports.useExportCSV = useExportCSV;
|
|
172
|
+
exports.useModal = useModal;
|
|
173
|
+
exports.useModals = useModals;
|
|
174
|
+
exports.useNotifications = useNotifications;
|
|
175
|
+
exports.useToast = useToast;
|
|
176
|
+
//# sourceMappingURL=useToast-Bk60GArg.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToast-Bk60GArg.cjs","sources":["../node_modules/uid/dist/index.mjs","../src/composables/useNotifications.ts","../src/composables/useExportCSV.ts","../src/composables/useModal.ts","../src/composables/useToast.ts"],"sourcesContent":["var IDX=256, HEX=[], SIZE=256, BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function uid(len) {\n\tvar i=0, tmp=(len || 11);\n\tif (!BUFFER || ((IDX + tmp) > SIZE*2)) {\n\t\tfor (BUFFER='',IDX=0; i < SIZE; i++) {\n\t\t\tBUFFER += HEX[Math.random() * 256 | 0];\n\t\t}\n\t}\n\n\treturn BUFFER.substring(IDX, IDX++ + tmp);\n}\n","import { ref, readonly } from 'vue'\nimport { uid } from 'uid'\nimport type { Notification, NotificationType, NotificationOptions } from '@/types'\n\n// Global state (singleton pattern) - shared across all useNotifications() calls\nconst notifications = ref<Notification[]>([])\n\n/**\n * Composable for managing notifications/toasts\n * Uses singleton pattern - all components share the same notifications state\n */\nexport function useNotifications() {\n\n const notify = (\n type: NotificationType,\n message: string,\n options: NotificationOptions = {},\n ): string => {\n const id = uid()\n const notification: Notification = {\n id,\n type,\n message,\n title: options.title ?? null,\n duration: options.duration ?? 5000,\n }\n\n notifications.value.push(notification)\n\n if (notification.duration && notification.duration > 0) {\n setTimeout(() => remove(id), notification.duration)\n }\n\n return id\n }\n\n const success = (message: string, options?: NotificationOptions) =>\n notify('success', message, options)\n\n const warning = (message: string, options?: NotificationOptions) =>\n notify('warning', message, options)\n\n const error = (message: string, options?: NotificationOptions) =>\n notify('error', message, options)\n\n const info = (message: string, options?: NotificationOptions) =>\n notify('info', message, options)\n\n const remove = (id: string) => {\n notifications.value = notifications.value.filter((n) => n.id !== id)\n }\n\n const clear = () => {\n notifications.value = []\n }\n\n return {\n notifications: readonly(notifications),\n notify,\n success,\n warning,\n error,\n info,\n remove,\n clear,\n }\n}\n","/**\n * Composable for exporting data to CSV format\n */\nexport function useExportCSV() {\n const escapeCSV = (value: unknown): string => {\n if (value === null || value === undefined) return ''\n const str = String(value)\n if (str.includes(',') || str.includes('\"') || str.includes('\\n')) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`\n }\n return str\n }\n\n const exportToCSV = <T extends Record<string, unknown>>(\n data: T[],\n columns: { key: keyof T; label: string }[],\n filename: string = 'export.csv',\n ) => {\n if (!data || data.length === 0) {\n console.warn('No data to export')\n return\n }\n\n // Create header row\n const headers = columns.map((col) => escapeCSV(col.label)).join(',')\n\n // Create data rows\n const rows = data.map((item) =>\n columns.map((col) => escapeCSV(item[col.key])).join(','),\n )\n\n // Combine header and rows\n const csv = [headers, ...rows].join('\\n')\n\n // Create and trigger download\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.setAttribute('href', url)\n link.setAttribute('download', filename)\n link.style.visibility = 'hidden'\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n URL.revokeObjectURL(url)\n }\n\n return {\n exportToCSV,\n escapeCSV,\n }\n}\n","import { ref, type Ref } from 'vue'\n\nexport interface UseModalReturn<T = unknown> {\n /** Whether the modal is currently open */\n isOpen: Ref<boolean>\n /** Data associated with the modal (e.g., item being edited) */\n data: Ref<T | null>\n /** Open the modal, optionally with data */\n open: (newData?: T) => void\n /** Close the modal and clear data */\n close: () => void\n /** Toggle the modal state */\n toggle: () => void\n}\n\n/**\n * Composable for managing modal state\n *\n * @example\n * ```ts\n * // Simple modal\n * const createModal = useModal()\n * createModal.open()\n * createModal.close()\n *\n * // Modal with data (e.g., for editing)\n * const editModal = useModal<User>()\n * editModal.open(selectedUser)\n * // Access editModal.data.value in modal\n *\n * // With onClose callback\n * const deleteModal = useModal<Item>({ onClose: () => refetch() })\n * ```\n */\nexport function useModal<T = unknown>(options?: {\n /** Initial open state */\n initialOpen?: boolean\n /** Initial data */\n initialData?: T | null\n /** Callback when modal opens */\n onOpen?: (data: T | null) => void\n /** Callback when modal closes */\n onClose?: () => void\n}): UseModalReturn<T> {\n const {\n initialOpen = false,\n initialData = null,\n onOpen,\n onClose,\n } = options ?? {}\n\n const isOpen = ref(initialOpen)\n const data = ref<T | null>(initialData) as Ref<T | null>\n\n const open = (newData?: T) => {\n data.value = newData ?? null\n isOpen.value = true\n onOpen?.(data.value)\n }\n\n const close = () => {\n isOpen.value = false\n data.value = null\n onClose?.()\n }\n\n const toggle = () => {\n if (isOpen.value) {\n close()\n } else {\n open()\n }\n }\n\n return {\n isOpen,\n data,\n open,\n close,\n toggle,\n }\n}\n\n/**\n * Create multiple related modals at once\n * Useful when a page has several modals (create, edit, delete, etc.)\n *\n * @example\n * ```ts\n * const modals = useModals({\n * create: useModal(),\n * edit: useModal<User>(),\n * delete: useModal<User>(),\n * })\n *\n * modals.create.open()\n * modals.edit.open(user)\n * modals.delete.close()\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useModals<T extends Record<string, UseModalReturn<any>>>(\n modals: T\n): T {\n return modals\n}\n","import { ref } from 'vue'\nimport type { ToastType } from '@/components/feedback/Toast.vue'\nimport type { ToastItem } from '@/components/feedback/ToastContainer.vue'\n\nexport interface ToastOptions {\n message: string\n type?: ToastType\n title?: string\n duration?: number\n}\n\nconst toasts = ref<ToastItem[]>([])\n\nlet toastId = 0\n\nexport function useToast() {\n const add = (options: ToastOptions): string => {\n const id = `toast-${++toastId}`\n const toast: ToastItem = {\n id,\n message: options.message,\n type: options.type || 'info',\n title: options.title,\n duration: options.duration ?? 5000,\n }\n toasts.value.push(toast)\n return id\n }\n\n const remove = (id: string) => {\n const index = toasts.value.findIndex((t) => t.id === id)\n if (index > -1) {\n toasts.value.splice(index, 1)\n }\n }\n\n const clear = () => {\n toasts.value = []\n }\n\n const success = (message: string, title?: string) => {\n return add({ message, title, type: 'success' })\n }\n\n const error = (message: string, title?: string) => {\n return add({ message, title, type: 'error' })\n }\n\n const warning = (message: string, title?: string) => {\n return add({ message, title, type: 'warning' })\n }\n\n const info = (message: string, title?: string) => {\n return add({ message, title, type: 'info' })\n }\n\n return {\n toasts,\n add,\n remove,\n clear,\n success,\n error,\n warning,\n info,\n }\n}\n"],"names":["ref","readonly"],"mappings":"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","x_google_ignoreList":[0]}
|