@mobileaction/action-kit 1.42.7-beta.2 → 1.42.7-beta.3
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/package.json +3 -2
- package/src/Configuration.mdx +36 -0
- package/src/Introduction.mdx +36 -0
- package/src/assets/fonts/EuclidCircularABold.ttf +0 -0
- package/src/assets/fonts/EuclidCircularABold.woff +0 -0
- package/src/assets/fonts/EuclidCircularABold.woff2 +0 -0
- package/src/assets/fonts/EuclidCircularABoldItalic.ttf +0 -0
- package/src/assets/fonts/EuclidCircularAItalic.ttf +0 -0
- package/src/assets/fonts/EuclidCircularAItalic.woff +0 -0
- package/src/assets/fonts/EuclidCircularAItalic.woff2 +0 -0
- package/src/assets/fonts/EuclidCircularALight.ttf +0 -0
- package/src/assets/fonts/EuclidCircularALightItalic.ttf +0 -0
- package/src/assets/fonts/EuclidCircularAMedium.ttf +0 -0
- package/src/assets/fonts/EuclidCircularAMedium.woff +0 -0
- package/src/assets/fonts/EuclidCircularAMedium.woff2 +0 -0
- package/src/assets/fonts/EuclidCircularAMediumItalic.ttf +0 -0
- package/src/assets/fonts/EuclidCircularARegular.ttf +0 -0
- package/src/assets/fonts/EuclidCircularARegular.woff +0 -0
- package/src/assets/fonts/EuclidCircularARegular.woff2 +0 -0
- package/src/assets/fonts/EuclidCircularASemiBold.ttf +0 -0
- package/src/assets/fonts/EuclidCircularASemiBold.woff +0 -0
- package/src/assets/fonts/EuclidCircularASemiBold.woff2 +0 -0
- package/src/assets/fonts/EuclidCircularASemiBoldItalic.ttf +0 -0
- package/src/assets/fonts.scss +84 -0
- package/src/assets/typography-classes.css +295 -0
- package/src/assets/typography.css +412 -0
- package/src/components/alert/alert.test.ts +36 -0
- package/src/components/alert/index.vue +72 -0
- package/src/components/alert/stories/blue.stories.ts +63 -0
- package/src/components/alert/stories/constants.ts +60 -0
- package/src/components/alert/stories/dark.stories.ts +71 -0
- package/src/components/alert/stories/green.stories.ts +41 -0
- package/src/components/alert/stories/orange.stories.ts +41 -0
- package/src/components/alert/stories/red.stories.ts +41 -0
- package/src/components/alert/styles.scss +125 -0
- package/src/components/alert/types.ts +15 -0
- package/src/components/animation/index.vue +93 -0
- package/src/components/animation/stories/animation.stories.ts +31 -0
- package/src/components/animation/stories/constants.ts +46 -0
- package/src/components/animation/types.ts +13 -0
- package/src/components/app-icon/assets/styles.scss +229 -0
- package/src/components/app-icon/index.vue +181 -0
- package/src/components/app-icon/stories/constants.ts +46 -0
- package/src/components/app-icon/stories/default.stories.ts +78 -0
- package/src/components/app-icon/types.ts +16 -0
- package/src/components/app-track-button/assets/styles.scss +76 -0
- package/src/components/app-track-button/index.vue +98 -0
- package/src/components/app-track-button/stories/constants.ts +47 -0
- package/src/components/app-track-button/stories/default.stories.ts +64 -0
- package/src/components/avatar/avatar.test.ts +47 -0
- package/src/components/avatar/index.vue +100 -0
- package/src/components/avatar/stories/constants.ts +45 -0
- package/src/components/avatar/stories/default.stories.ts +20 -0
- package/src/components/avatar/styles.scss +116 -0
- package/src/components/avatar/types.ts +24 -0
- package/src/components/badge/badge.test.ts +97 -0
- package/src/components/badge/index.vue +52 -0
- package/src/components/badge/stories/basic.stories.ts +54 -0
- package/src/components/badge/stories/blue.stories.ts +60 -0
- package/src/components/badge/stories/constants.ts +81 -0
- package/src/components/badge/stories/dark.stories.ts +54 -0
- package/src/components/badge/stories/green.stories.ts +59 -0
- package/src/components/badge/stories/orange.stories.ts +59 -0
- package/src/components/badge/stories/pink.stories.ts +59 -0
- package/src/components/badge/stories/purple.stories.ts +59 -0
- package/src/components/badge/stories/red.stories.ts +58 -0
- package/src/components/badge/stories/status-example.mdx +14 -0
- package/src/components/badge/stories/status.stories.ts +17 -0
- package/src/components/badge/stories/teal.stories.ts +58 -0
- package/src/components/badge/stories/yellow.stories.ts +59 -0
- package/src/components/badge/styles.scss +198 -0
- package/src/components/badge/types.ts +43 -0
- package/src/components/button/assets/link.scss +72 -0
- package/src/components/button/assets/mixins.scss +82 -0
- package/src/components/button/assets/regular.scss +188 -0
- package/src/components/button/assets/social.scss +98 -0
- package/src/components/button/assets/styles.scss +31 -0
- package/src/components/button/button.test.ts +126 -0
- package/src/components/button/index.vue +107 -0
- package/src/components/button/link-button/index.vue +92 -0
- package/src/components/button/link-button/stories/constants.ts +67 -0
- package/src/components/button/link-button/stories/link.stories.ts +74 -0
- package/src/components/button/link-button/types.ts +15 -0
- package/src/components/button/social-button/index.vue +88 -0
- package/src/components/button/social-button/stories/constants.ts +63 -0
- package/src/components/button/social-button/stories/social.stories.ts +109 -0
- package/src/components/button/social-button/types.ts +15 -0
- package/src/components/button/stories/constants.ts +89 -0
- package/src/components/button/stories/filled.stories.ts +113 -0
- package/src/components/button/stories/ghost.stories.ts +113 -0
- package/src/components/button/stories/lighter.stories.ts +113 -0
- package/src/components/button/stories/stroke.stories.ts +113 -0
- package/src/components/button/types.ts +52 -0
- package/src/components/button/utils.ts +28 -0
- package/src/components/card/assets/styles.scss +121 -0
- package/src/components/card/index.vue +240 -0
- package/src/components/card/stories/constants.ts +111 -0
- package/src/components/card/stories/default.stories.ts +130 -0
- package/src/components/card/stories/examples.mdx +37 -0
- package/src/components/card/stories/footer.stories.ts +122 -0
- package/src/components/card/stories/header.stories.ts +129 -0
- package/src/components/card/types.ts +21 -0
- package/src/components/cascader/assets/styles.scss +162 -0
- package/src/components/cascader/cascader.test.ts +163 -0
- package/src/components/cascader/components/option.vue +138 -0
- package/src/components/cascader/components/options.vue +97 -0
- package/src/components/cascader/composables/useCascaderOverflow.ts +35 -0
- package/src/components/cascader/composables/usePopoverAttributeWatcher.ts +50 -0
- package/src/components/cascader/index.vue +215 -0
- package/src/components/cascader/stories/constants.ts +82 -0
- package/src/components/cascader/stories/default.stories.ts +161 -0
- package/src/components/cascader/stories/options.json +80 -0
- package/src/components/cascader/types.ts +17 -0
- package/src/components/cascader/utils/index.test.ts +56 -0
- package/src/components/cascader/utils/index.ts +66 -0
- package/src/components/checkbox/group.vue +64 -0
- package/src/components/checkbox/index.vue +58 -0
- package/src/components/checkbox/stories/constants.ts +134 -0
- package/src/components/checkbox/stories/default.stories.ts +26 -0
- package/src/components/checkbox/stories/group.stories.ts +20 -0
- package/src/components/checkbox/stories/indeterminate.stories.ts +26 -0
- package/src/components/checkbox/styles.scss +221 -0
- package/src/components/checkbox/types.ts +6 -0
- package/src/components/collapse/assets/styles.scss +25 -0
- package/src/components/collapse/collapse.test.ts +86 -0
- package/src/components/collapse/components/CollapseContent.vue +11 -0
- package/src/components/collapse/components/CollapseHeader.vue +49 -0
- package/src/components/collapse/components/CollapseItem.vue +62 -0
- package/src/components/collapse/index.vue +119 -0
- package/src/components/collapse/stories/constants.ts +141 -0
- package/src/components/collapse/stories/default.stories.ts +42 -0
- package/src/components/collapse/types.ts +29 -0
- package/src/components/content-scroller/assets/styles.scss +111 -0
- package/src/components/content-scroller/index.vue +102 -0
- package/src/components/content-scroller/stories/constants.ts +47 -0
- package/src/components/content-scroller/stories/default.stories.ts +16 -0
- package/src/components/content-scroller/types.ts +13 -0
- package/src/components/country-radio/assets/styles.scss +30 -0
- package/src/components/country-radio/index.vue +66 -0
- package/src/components/country-radio/stories/constants.ts +51 -0
- package/src/components/country-radio/stories/default.stories.ts +26 -0
- package/src/components/country-radio/stories/examples.mdx +29 -0
- package/src/components/country-select/assets/styles.scss +48 -0
- package/src/components/country-select/components/multiCountrySelect.vue +135 -0
- package/src/components/country-select/components/singleCountrySelect.vue +96 -0
- package/src/components/country-select/index.vue +87 -0
- package/src/components/country-select/stories/constants.ts +46 -0
- package/src/components/country-select/stories/countries.json +342 -0
- package/src/components/country-select/stories/default.stories.ts +69 -0
- package/src/components/country-select/types.ts +5 -0
- package/src/components/date-picker/assets/animations.scss +107 -0
- package/src/components/date-picker/assets/styles.scss +872 -0
- package/src/components/date-picker/index.vue +340 -0
- package/src/components/date-picker/stories/constants.ts +95 -0
- package/src/components/date-picker/stories/default.stories.ts +108 -0
- package/src/components/date-picker/stories/range.stories.ts +137 -0
- package/src/components/date-picker/types.ts +19 -0
- package/src/components/date-picker-2/assets/calendar.scss +43 -0
- package/src/components/date-picker-2/assets/datepicker-menu.scss +242 -0
- package/src/components/date-picker-2/assets/input.scss +130 -0
- package/src/components/date-picker-2/assets/quarter-picker.scss +44 -0
- package/src/components/date-picker-2/assets/selection-overlay.scss +124 -0
- package/src/components/date-picker-2/assets/styles.scss +6 -0
- package/src/components/date-picker-2/assets/transitions.scss +61 -0
- package/src/components/date-picker-2/components/calendarSelect.vue +49 -0
- package/src/components/date-picker-2/composables/useDatePickerFormat.ts +80 -0
- package/src/components/date-picker-2/composables/utils.ts +49 -0
- package/src/components/date-picker-2/date-picker.test.ts +340 -0
- package/src/components/date-picker-2/index.vue +302 -0
- package/src/components/date-picker-2/stories/constants.ts +116 -0
- package/src/components/date-picker-2/stories/default.stories.ts +172 -0
- package/src/components/date-picker-2/stories/range.stories.ts +232 -0
- package/src/components/date-picker-2/types.ts +256 -0
- package/src/components/drawer/assets/styles.scss +163 -0
- package/src/components/drawer/drawer.test.ts +188 -0
- package/src/components/drawer/index.vue +312 -0
- package/src/components/drawer/stories/drawer.stories.ts +489 -0
- package/src/components/dropdown/assets/animations.scss +107 -0
- package/src/components/dropdown/assets/styles.scss +84 -0
- package/src/components/dropdown/index.vue +66 -0
- package/src/components/dropdown/stories/constants.ts +108 -0
- package/src/components/dropdown/stories/default.stories.ts +44 -0
- package/src/components/dropdown/types.ts +17 -0
- package/src/components/ellipsis/assets/styles.scss +7 -0
- package/src/components/ellipsis/index.vue +141 -0
- package/src/components/ellipsis/stories/constants.ts +34 -0
- package/src/components/ellipsis/stories/default.stories.ts +25 -0
- package/src/components/empty/assets/styles.scss +76 -0
- package/src/components/empty/index.vue +54 -0
- package/src/components/empty/stories/animation.stories.ts +35 -0
- package/src/components/empty/stories/constants.ts +40 -0
- package/src/components/empty/stories/default.stories.ts +19 -0
- package/src/components/empty/types.ts +24 -0
- package/src/components/form/assets/styles.scss +486 -0
- package/src/components/form/components/nonHSFormsIgnore.vue +15 -0
- package/src/components/form/index.vue +51 -0
- package/src/components/form/stories/constants.ts +20 -0
- package/src/components/form/stories/default.stories.ts +240 -0
- package/src/components/form/types.ts +7 -0
- package/src/components/form-item/index.vue +20 -0
- package/src/components/icon/components/flagIcon.vue +84 -0
- package/src/components/icon/components/maIcon.vue +47 -0
- package/src/components/icon/composables/useUniqueIds.ts +62 -0
- package/src/components/icon/flags.json +230 -0
- package/src/components/icon/icon.test.ts +89 -0
- package/src/components/icon/icons/403.svg +29 -0
- package/src/components/icon/icons/404.svg +28 -0
- package/src/components/icon/icons/500.svg +29 -0
- package/src/components/icon/icons/activity-bulk.svg +8 -0
- package/src/components/icon/icons/add-app.svg +81 -0
- package/src/components/icon/icons/add-bold.svg +3 -0
- package/src/components/icon/icons/add-bulk.svg +8 -0
- package/src/components/icon/icons/add-button.svg +5 -0
- package/src/components/icon/icons/add-circle-bold.svg +3 -0
- package/src/components/icon/icons/add-circle-bulk.svg +8 -0
- package/src/components/icon/icons/add-circle.svg +8 -0
- package/src/components/icon/icons/add-square-bold.svg +3 -0
- package/src/components/icon/icons/add-square.svg +5 -0
- package/src/components/icon/icons/add.svg +4 -0
- package/src/components/icon/icons/aim-outlined.svg +1 -0
- package/src/components/icon/icons/airplane-bulk.svg +4 -0
- package/src/components/icon/icons/align-left-bold.svg +11 -0
- package/src/components/icon/icons/align-left-bulk.svg +11 -0
- package/src/components/icon/icons/align-left.svg +10 -0
- package/src/components/icon/icons/android-storefront.svg +8 -0
- package/src/components/icon/icons/android.svg +6 -0
- package/src/components/icon/icons/angle-double-right.svg +5 -0
- package/src/components/icon/icons/app-store-colorful.svg +21 -0
- package/src/components/icon/icons/app-store.svg +3 -0
- package/src/components/icon/icons/app.svg +5 -0
- package/src/components/icon/icons/apple-bold.svg +5 -0
- package/src/components/icon/icons/apple-storefront.svg +5 -0
- package/src/components/icon/icons/apple-vision-pro.svg +16 -0
- package/src/components/icon/icons/apple.svg +3 -0
- package/src/components/icon/icons/arcade-bulk.svg +9 -0
- package/src/components/icon/icons/area-chart-outlined.svg +3 -0
- package/src/components/icon/icons/arrow-down-bold.svg +3 -0
- package/src/components/icon/icons/arrow-down-circle-bold.svg +3 -0
- package/src/components/icon/icons/arrow-down-circle.svg +4 -0
- package/src/components/icon/icons/arrow-down.svg +4 -0
- package/src/components/icon/icons/arrow-left-bold.svg +3 -0
- package/src/components/icon/icons/arrow-left-bulk.svg +7 -0
- package/src/components/icon/icons/arrow-left-circle-bold.svg +3 -0
- package/src/components/icon/icons/arrow-left-circle.svg +4 -0
- package/src/components/icon/icons/arrow-left-down-line.svg +3 -0
- package/src/components/icon/icons/arrow-left.svg +4 -0
- package/src/components/icon/icons/arrow-right-bold.svg +3 -0
- package/src/components/icon/icons/arrow-right-bulk.svg +7 -0
- package/src/components/icon/icons/arrow-right-circle-bold.svg +3 -0
- package/src/components/icon/icons/arrow-right-circle.svg +4 -0
- package/src/components/icon/icons/arrow-right-up-line.svg +3 -0
- package/src/components/icon/icons/arrow-right.svg +4 -0
- package/src/components/icon/icons/arrow-up-bold.svg +3 -0
- package/src/components/icon/icons/arrow-up-circle-bold.svg +3 -0
- package/src/components/icon/icons/arrow-up-circle.svg +4 -0
- package/src/components/icon/icons/arrow-up.svg +4 -0
- package/src/components/icon/icons/asterisk.svg +3 -0
- package/src/components/icon/icons/bag-bulk.svg +4 -0
- package/src/components/icon/icons/bahai.svg +3 -0
- package/src/components/icon/icons/book-bulk.svg +6 -0
- package/src/components/icon/icons/book-closed-bulk.svg +6 -0
- package/src/components/icon/icons/book-saved-bulk.svg +5 -0
- package/src/components/icon/icons/book-square-bulk.svg +5 -0
- package/src/components/icon/icons/bookmark-bold.svg +4 -0
- package/src/components/icon/icons/bookmark-bulk.svg +4 -0
- package/src/components/icon/icons/bookmark.svg +6 -0
- package/src/components/icon/icons/box-empty.svg +12 -0
- package/src/components/icon/icons/brain.svg +3 -0
- package/src/components/icon/icons/broom-bold.svg +4 -0
- package/src/components/icon/icons/broom.svg +8 -0
- package/src/components/icon/icons/brush-bulk.svg +5 -0
- package/src/components/icon/icons/bubble-bulk.svg +5 -0
- package/src/components/icon/icons/bucket-bulk.svg +6 -0
- package/src/components/icon/icons/bullhorn.svg +3 -0
- package/src/components/icon/icons/bus-bulk.svg +7 -0
- package/src/components/icon/icons/buy-crypto.svg +11 -0
- package/src/components/icon/icons/calendar-alt.svg +3 -0
- package/src/components/icon/icons/calendar-bold.svg +4 -0
- package/src/components/icon/icons/calendar-bulk.svg +10 -0
- package/src/components/icon/icons/calendar.svg +12 -0
- package/src/components/icon/icons/camera-bulk.svg +5 -0
- package/src/components/icon/icons/car-bulk.svg +6 -0
- package/src/components/icon/icons/card-bold.svg +4 -0
- package/src/components/icon/icons/card-bulk.svg +14 -0
- package/src/components/icon/icons/card.svg +6 -0
- package/src/components/icon/icons/caret-down-bold.svg +3 -0
- package/src/components/icon/icons/caret-down.svg +3 -0
- package/src/components/icon/icons/caret-left-bold.svg +3 -0
- package/src/components/icon/icons/caret-left.svg +3 -0
- package/src/components/icon/icons/caret-right-bold.svg +3 -0
- package/src/components/icon/icons/caret-right.svg +3 -0
- package/src/components/icon/icons/caret-up-bold.svg +3 -0
- package/src/components/icon/icons/caret-up.svg +3 -0
- package/src/components/icon/icons/casino-bulk.svg +4 -0
- package/src/components/icon/icons/category-bold.svg +14 -0
- package/src/components/icon/icons/category.svg +15 -0
- package/src/components/icon/icons/certificate.svg +3 -0
- package/src/components/icon/icons/chart-2-bulk.svg +11 -0
- package/src/components/icon/icons/chart-2.svg +5 -0
- package/src/components/icon/icons/chart-area.svg +3 -0
- package/src/components/icon/icons/chart-bar.svg +3 -0
- package/src/components/icon/icons/chart-bold.svg +6 -0
- package/src/components/icon/icons/chart-bulk.svg +12 -0
- package/src/components/icon/icons/chart.svg +6 -0
- package/src/components/icon/icons/check-line.svg +3 -0
- package/src/components/icon/icons/check.svg +3 -0
- package/src/components/icon/icons/checkered-flag.svg +3 -0
- package/src/components/icon/icons/chef-bulk.svg +4 -0
- package/src/components/icon/icons/chess-bulk.svg +8 -0
- package/src/components/icon/icons/chevron-down.svg +4 -0
- package/src/components/icon/icons/chevron-left.svg +4 -0
- package/src/components/icon/icons/chevron-right.svg +4 -0
- package/src/components/icon/icons/chevron-up.svg +4 -0
- package/src/components/icon/icons/chevrons-down.svg +4 -0
- package/src/components/icon/icons/chevrons-left.svg +4 -0
- package/src/components/icon/icons/chevrons-right.svg +4 -0
- package/src/components/icon/icons/chevrons-up.svg +4 -0
- package/src/components/icon/icons/circle-exclamation.svg +3 -0
- package/src/components/icon/icons/circle-notch.svg +3 -0
- package/src/components/icon/icons/circle.svg +3 -0
- package/src/components/icon/icons/clipboard-bold.svg +8 -0
- package/src/components/icon/icons/clipboard-bulk.svg +11 -0
- package/src/components/icon/icons/clipboard-close-bulk.svg +5 -0
- package/src/components/icon/icons/clipboard-close.svg +6 -0
- package/src/components/icon/icons/clipboard-tick-bulk.svg +5 -0
- package/src/components/icon/icons/clipboard-tick.svg +5 -0
- package/src/components/icon/icons/clipboard.svg +11 -0
- package/src/components/icon/icons/clock-bold.svg +3 -0
- package/src/components/icon/icons/clock-bulk.svg +4 -0
- package/src/components/icon/icons/clock.svg +4 -0
- package/src/components/icon/icons/clone.svg +3 -0
- package/src/components/icon/icons/close-circle-bold.svg +3 -0
- package/src/components/icon/icons/close-circle-bulk.svg +8 -0
- package/src/components/icon/icons/close-circle.svg +5 -0
- package/src/components/icon/icons/close-square-bold.svg +3 -0
- package/src/components/icon/icons/close-square.svg +5 -0
- package/src/components/icon/icons/close.svg +1 -0
- package/src/components/icon/icons/cloud-sunny-bulk.svg +4 -0
- package/src/components/icon/icons/cloud-upload.svg +3 -0
- package/src/components/icon/icons/coffee-bulk.svg +8 -0
- package/src/components/icon/icons/cogs.svg +3 -0
- package/src/components/icon/icons/color-filter.svg +11 -0
- package/src/components/icon/icons/columns-bold.svg +4 -0
- package/src/components/icon/icons/columns.svg +4 -0
- package/src/components/icon/icons/compass-bulk.svg +4 -0
- package/src/components/icon/icons/compress.svg +3 -0
- package/src/components/icon/icons/contains-linear.svg +7 -0
- package/src/components/icon/icons/control.svg +11 -0
- package/src/components/icon/icons/convert-shape-bold.svg +14 -0
- package/src/components/icon/icons/convert-shape-bulk.svg +14 -0
- package/src/components/icon/icons/convert-shape.svg +12 -0
- package/src/components/icon/icons/copy-bold.svg +4 -0
- package/src/components/icon/icons/copy-bulk.svg +8 -0
- package/src/components/icon/icons/copy.svg +4 -0
- package/src/components/icon/icons/crosshairs.svg +3 -0
- package/src/components/icon/icons/crown-bold.svg +3 -0
- package/src/components/icon/icons/crown.svg +4 -0
- package/src/components/icon/icons/cup-bold.svg +8 -0
- package/src/components/icon/icons/cup-bulk.svg +17 -0
- package/src/components/icon/icons/cup.svg +18 -0
- package/src/components/icon/icons/danger-bold.svg +3 -0
- package/src/components/icon/icons/danger-bulk.svg +5 -0
- package/src/components/icon/icons/danger.svg +5 -0
- package/src/components/icon/icons/dashboard.svg +3 -0
- package/src/components/icon/icons/data-bold.svg +17 -0
- package/src/components/icon/icons/data-bulk.svg +17 -0
- package/src/components/icon/icons/data.svg +18 -0
- package/src/components/icon/icons/devices.svg +11 -0
- package/src/components/icon/icons/diagram.svg +4 -0
- package/src/components/icon/icons/direct-inbox-bold.svg +10 -0
- package/src/components/icon/icons/direct-inbox-bulk.svg +11 -0
- package/src/components/icon/icons/direct-inbox.svg +12 -0
- package/src/components/icon/icons/direct-normal-bulk.svg +4 -0
- package/src/components/icon/icons/direct-normal.svg +4 -0
- package/src/components/icon/icons/dislike-bold.svg +4 -0
- package/src/components/icon/icons/dislike.svg +4 -0
- package/src/components/icon/icons/document-bold.svg +4 -0
- package/src/components/icon/icons/document-bulk.svg +14 -0
- package/src/components/icon/icons/document.svg +6 -0
- package/src/components/icon/icons/dollar-circle.svg +5 -0
- package/src/components/icon/icons/dot.svg +3 -0
- package/src/components/icon/icons/download-bold.svg +8 -0
- package/src/components/icon/icons/download-bulk.svg +11 -0
- package/src/components/icon/icons/download.svg +6 -0
- package/src/components/icon/icons/drag.svg +8 -0
- package/src/components/icon/icons/driving-bulk.svg +10 -0
- package/src/components/icon/icons/edit-2-bold.svg +11 -0
- package/src/components/icon/icons/edit-2-bulk.svg +5 -0
- package/src/components/icon/icons/edit-2.svg +5 -0
- package/src/components/icon/icons/edit-bold.svg +3 -0
- package/src/components/icon/icons/edit.svg +5 -0
- package/src/components/icon/icons/element-2-bulk.svg +6 -0
- package/src/components/icon/icons/element-3-bulk.svg +5 -0
- package/src/components/icon/icons/element-bulk.svg +6 -0
- package/src/components/icon/icons/element-plus-bold.svg +14 -0
- package/src/components/icon/icons/element-plus.svg +13 -0
- package/src/components/icon/icons/ellipsis-horizontal.svg +3 -0
- package/src/components/icon/icons/ellipsis-vertical.svg +3 -0
- package/src/components/icon/icons/empty-table.svg +31 -0
- package/src/components/icon/icons/equal.svg +4 -0
- package/src/components/icon/icons/expand-left-line.svg +5 -0
- package/src/components/icon/icons/expand-right-line.svg +5 -0
- package/src/components/icon/icons/expand.svg +6 -0
- package/src/components/icon/icons/export-2-bold.svg +8 -0
- package/src/components/icon/icons/export-2-bulk.svg +8 -0
- package/src/components/icon/icons/export-2.svg +9 -0
- package/src/components/icon/icons/export-bold.svg +3 -0
- package/src/components/icon/icons/export-bulk.svg +4 -0
- package/src/components/icon/icons/export.svg +5 -0
- package/src/components/icon/icons/eye-bold.svg +4 -0
- package/src/components/icon/icons/eye-bulk.svg +8 -0
- package/src/components/icon/icons/eye-slash-bold.svg +7 -0
- package/src/components/icon/icons/eye-slash.svg +8 -0
- package/src/components/icon/icons/eye.svg +4 -0
- package/src/components/icon/icons/facebook.svg +4 -0
- package/src/components/icon/icons/fatrows-bold.svg +8 -0
- package/src/components/icon/icons/fatrows-bulk.svg +8 -0
- package/src/components/icon/icons/fatrows.svg +8 -0
- package/src/components/icon/icons/favorite-chart-bold.svg +4 -0
- package/src/components/icon/icons/favorite-chart-bulk.svg +5 -0
- package/src/components/icon/icons/favorite-chart.svg +5 -0
- package/src/components/icon/icons/file-pdf.svg +3 -0
- package/src/components/icon/icons/filled-flag.svg +3 -0
- package/src/components/icon/icons/filter-bold.svg +4 -0
- package/src/components/icon/icons/filter-bulk.svg +8 -0
- package/src/components/icon/icons/filter.svg +4 -0
- package/src/components/icon/icons/flag.svg +4 -0
- package/src/components/icon/icons/flash-circle-bold.svg +5 -0
- package/src/components/icon/icons/flash-circle-bulk.svg +8 -0
- package/src/components/icon/icons/flash-circle.svg +10 -0
- package/src/components/icon/icons/flash.svg +5 -0
- package/src/components/icon/icons/folder-open-bold.svg +4 -0
- package/src/components/icon/icons/folder-open.svg +5 -0
- package/src/components/icon/icons/folder.svg +5 -0
- package/src/components/icon/icons/font.svg +3 -0
- package/src/components/icon/icons/gallery-bulk.svg +5 -0
- package/src/components/icon/icons/game-bulk.svg +9 -0
- package/src/components/icon/icons/glass-bold.svg +8 -0
- package/src/components/icon/icons/glass-bulk.svg +8 -0
- package/src/components/icon/icons/glass.svg +8 -0
- package/src/components/icon/icons/global.svg +7 -0
- package/src/components/icon/icons/google-colored.svg +12 -0
- package/src/components/icon/icons/google.svg +6 -0
- package/src/components/icon/icons/gps-linear.svg +8 -0
- package/src/components/icon/icons/graduation-cap-bold.svg +4 -0
- package/src/components/icon/icons/graduation-cap.svg +5 -0
- package/src/components/icon/icons/graph-bold.svg +4 -0
- package/src/components/icon/icons/graph.svg +4 -0
- package/src/components/icon/icons/grid-2.svg +6 -0
- package/src/components/icon/icons/grid-bold.svg +6 -0
- package/src/components/icon/icons/grid-bulk.svg +14 -0
- package/src/components/icon/icons/grid.svg +6 -0
- package/src/components/icon/icons/hamburger.svg +5 -0
- package/src/components/icon/icons/headset.svg +3 -0
- package/src/components/icon/icons/health-bulk.svg +5 -0
- package/src/components/icon/icons/history.svg +3 -0
- package/src/components/icon/icons/home-bold.svg +3 -0
- package/src/components/icon/icons/home-bulk.svg +8 -0
- package/src/components/icon/icons/home.svg +4 -0
- package/src/components/icon/icons/hospital-bulk.svg +6 -0
- package/src/components/icon/icons/house-bulk.svg +8 -0
- package/src/components/icon/icons/import-bold.svg +4 -0
- package/src/components/icon/icons/import.svg +11 -0
- package/src/components/icon/icons/in-range-bold.svg +5 -0
- package/src/components/icon/icons/in-range.svg +5 -0
- package/src/components/icon/icons/indent.svg +3 -0
- package/src/components/icon/icons/info-circle-2-bold.svg +5 -0
- package/src/components/icon/icons/info-circle-2-bulk.svg +11 -0
- package/src/components/icon/icons/info-circle-2.svg +9 -0
- package/src/components/icon/icons/info-circle-bold.svg +3 -0
- package/src/components/icon/icons/info-circle.svg +8 -0
- package/src/components/icon/icons/info.svg +3 -0
- package/src/components/icon/icons/ipad.svg +4 -0
- package/src/components/icon/icons/iphone.svg +3 -0
- package/src/components/icon/icons/judge-outline.svg +6 -0
- package/src/components/icon/icons/justify-right.svg +10 -0
- package/src/components/icon/icons/key.svg +5 -0
- package/src/components/icon/icons/lamp-charge-bulk.svg +5 -0
- package/src/components/icon/icons/lamp-charge.svg +5 -0
- package/src/components/icon/icons/layer-bold.svg +5 -0
- package/src/components/icon/icons/layer-bulk.svg +11 -0
- package/src/components/icon/icons/layer.svg +5 -0
- package/src/components/icon/icons/level-linear.svg +5 -0
- package/src/components/icon/icons/like-bold.svg +4 -0
- package/src/components/icon/icons/like.svg +4 -0
- package/src/components/icon/icons/link.svg +4 -0
- package/src/components/icon/icons/linkedin.svg +5 -0
- package/src/components/icon/icons/list.svg +3 -0
- package/src/components/icon/icons/loader.svg +10 -0
- package/src/components/icon/icons/loading.svg +3 -0
- package/src/components/icon/icons/location-bulk.svg +4 -0
- package/src/components/icon/icons/location.svg +8 -0
- package/src/components/icon/icons/lock-bold.svg +4 -0
- package/src/components/icon/icons/lock-bulk.svg +11 -0
- package/src/components/icon/icons/lock-slash-bulk.svg +7 -0
- package/src/components/icon/icons/lock-slash.svg +6 -0
- package/src/components/icon/icons/lock.svg +5 -0
- package/src/components/icon/icons/logout-bold.svg +4 -0
- package/src/components/icon/icons/logout.svg +5 -0
- package/src/components/icon/icons/lovely-bulk.svg +4 -0
- package/src/components/icon/icons/magic-pen-bold.svg +17 -0
- package/src/components/icon/icons/magic-pen.svg +13 -0
- package/src/components/icon/icons/map-bulk.svg +5 -0
- package/src/components/icon/icons/map-marker-bold.svg +3 -0
- package/src/components/icon/icons/map-marker.svg +4 -0
- package/src/components/icon/icons/maximize-linear.svg +6 -0
- package/src/components/icon/icons/med-kit.svg +3 -0
- package/src/components/icon/icons/medal-bold.svg +4 -0
- package/src/components/icon/icons/medal.svg +4 -0
- package/src/components/icon/icons/menu-bold.svg +3 -0
- package/src/components/icon/icons/menu.svg +5 -0
- package/src/components/icon/icons/message-bold.svg +5 -0
- package/src/components/icon/icons/message-bulk.svg +14 -0
- package/src/components/icon/icons/message-notif.svg +7 -0
- package/src/components/icon/icons/message-text.svg +5 -0
- package/src/components/icon/icons/message.svg +12 -0
- package/src/components/icon/icons/messages-2-bulk.svg +5 -0
- package/src/components/icon/icons/messages-bold.svg +8 -0
- package/src/components/icon/icons/messages-bulk.svg +8 -0
- package/src/components/icon/icons/messages.svg +8 -0
- package/src/components/icon/icons/microscope-bold.svg +14 -0
- package/src/components/icon/icons/microscope-bulk.svg +14 -0
- package/src/components/icon/icons/microscope.svg +14 -0
- package/src/components/icon/icons/milk-bulk.svg +5 -0
- package/src/components/icon/icons/minus-bold.svg +3 -0
- package/src/components/icon/icons/minus-square-bold.svg +3 -0
- package/src/components/icon/icons/minus-square.svg +4 -0
- package/src/components/icon/icons/minus.svg +3 -0
- package/src/components/icon/icons/mobile-action.svg +37 -0
- package/src/components/icon/icons/mobile-bold.svg +3 -0
- package/src/components/icon/icons/mobile-bulk.svg +11 -0
- package/src/components/icon/icons/mobile.svg +5 -0
- package/src/components/icon/icons/money-bill.svg +8 -0
- package/src/components/icon/icons/money-send.svg +11 -0
- package/src/components/icon/icons/moneys-bold.svg +8 -0
- package/src/components/icon/icons/moneys-bulk.svg +17 -0
- package/src/components/icon/icons/moneys.svg +18 -0
- package/src/components/icon/icons/more-bold.svg +3 -0
- package/src/components/icon/icons/more-bulk.svg +6 -0
- package/src/components/icon/icons/more-circle.svg +6 -0
- package/src/components/icon/icons/more-vertical.svg +3 -0
- package/src/components/icon/icons/more.svg +5 -0
- package/src/components/icon/icons/mouse-square-bold.svg +8 -0
- package/src/components/icon/icons/mouse-square-bulk.svg +8 -0
- package/src/components/icon/icons/mouse-square.svg +7 -0
- package/src/components/icon/icons/music-bulk.svg +5 -0
- package/src/components/icon/icons/musicnote-bulk.svg +4 -0
- package/src/components/icon/icons/not-contains-linear.svg +8 -0
- package/src/components/icon/icons/not-equal.svg +5 -0
- package/src/components/icon/icons/not-in-range.svg +6 -0
- package/src/components/icon/icons/notification-bold.svg +4 -0
- package/src/components/icon/icons/notification.svg +5 -0
- package/src/components/icon/icons/outdent.svg +3 -0
- package/src/components/icon/icons/outline-linear.svg +5 -0
- package/src/components/icon/icons/outline-lock-bulk.svg +5 -0
- package/src/components/icon/icons/outline-lock.svg +5 -0
- package/src/components/icon/icons/paper-plane.svg +3 -0
- package/src/components/icon/icons/parenting-bulk.svg +164 -0
- package/src/components/icon/icons/password-check.svg +7 -0
- package/src/components/icon/icons/pause-bold.svg +4 -0
- package/src/components/icon/icons/pause-circle-bold.svg +3 -0
- package/src/components/icon/icons/pause-circle-bulk.svg +5 -0
- package/src/components/icon/icons/pause-circle.svg +5 -0
- package/src/components/icon/icons/pause.svg +4 -0
- package/src/components/icon/icons/pay/affirm.svg +6 -0
- package/src/components/icon/icons/pay/alipay.svg +8 -0
- package/src/components/icon/icons/pay/amazon.svg +6 -0
- package/src/components/icon/icons/pay/amex-2.svg +7 -0
- package/src/components/icon/icons/pay/amex.svg +5 -0
- package/src/components/icon/icons/pay/applepay.svg +5 -0
- package/src/components/icon/icons/pay/bancontact.svg +7 -0
- package/src/components/icon/icons/pay/bitcoin.svg +5 -0
- package/src/components/icon/icons/pay/bitcoincash.svg +5 -0
- package/src/components/icon/icons/pay/bitpay.svg +5 -0
- package/src/components/icon/icons/pay/citadele.svg +5 -0
- package/src/components/icon/icons/pay/dinersclub.svg +5 -0
- package/src/components/icon/icons/pay/discover.svg +7 -0
- package/src/components/icon/icons/pay/elo.svg +8 -0
- package/src/components/icon/icons/pay/etherium.svg +11 -0
- package/src/components/icon/icons/pay/forbrugsforeningen.svg +5 -0
- package/src/components/icon/icons/pay/giropay.svg +7 -0
- package/src/components/icon/icons/pay/googlepay.svg +9 -0
- package/src/components/icon/icons/pay/ideal.svg +6 -0
- package/src/components/icon/icons/pay/interac.svg +7 -0
- package/src/components/icon/icons/pay/jcb.svg +21 -0
- package/src/components/icon/icons/pay/klarna.svg +5 -0
- package/src/components/icon/icons/pay/lightcoin.svg +5 -0
- package/src/components/icon/icons/pay/maestro-2.svg +5 -0
- package/src/components/icon/icons/pay/maestro.svg +7 -0
- package/src/components/icon/icons/pay/mastercard-2.svg +5 -0
- package/src/components/icon/icons/pay/mastercard.svg +7 -0
- package/src/components/icon/icons/pay/payoneer.svg +6 -0
- package/src/components/icon/icons/pay/paypal.svg +8 -0
- package/src/components/icon/icons/pay/paysafe.svg +7 -0
- package/src/components/icon/icons/pay/qiwi.svg +5 -0
- package/src/components/icon/icons/pay/quickbooks.svg +9 -0
- package/src/components/icon/icons/pay/sepa.svg +6 -0
- package/src/components/icon/icons/pay/shop-pay.svg +5 -0
- package/src/components/icon/icons/pay/skrill.svg +5 -0
- package/src/components/icon/icons/pay/sofort.svg +5 -0
- package/src/components/icon/icons/pay/stripe-2.svg +30 -0
- package/src/components/icon/icons/pay/stripe.svg +5 -0
- package/src/components/icon/icons/pay/unionpay.svg +8 -0
- package/src/components/icon/icons/pay/verifone.svg +6 -0
- package/src/components/icon/icons/pay/visa-2.svg +4 -0
- package/src/components/icon/icons/pay/visa.svg +5 -0
- package/src/components/icon/icons/pay/webmoney.svg +5 -0
- package/src/components/icon/icons/pay/wechat.svg +5 -0
- package/src/components/icon/icons/pay/yandex.svg +5 -0
- package/src/components/icon/icons/pen-square.svg +5 -0
- package/src/components/icon/icons/pencil.svg +3 -0
- package/src/components/icon/icons/people-bold.svg +8 -0
- package/src/components/icon/icons/people-bulk.svg +8 -0
- package/src/components/icon/icons/people.svg +8 -0
- package/src/components/icon/icons/percentage-square-bold.svg +3 -0
- package/src/components/icon/icons/percentage-square.svg +6 -0
- package/src/components/icon/icons/play-bold.svg +3 -0
- package/src/components/icon/icons/play-bulk.svg +4 -0
- package/src/components/icon/icons/play-circle-bold.svg +7 -0
- package/src/components/icon/icons/play-circle.svg +7 -0
- package/src/components/icon/icons/play-store-colorful.svg +14 -0
- package/src/components/icon/icons/play.svg +4 -0
- package/src/components/icon/icons/plug-bold.svg +5 -0
- package/src/components/icon/icons/plug.svg +11 -0
- package/src/components/icon/icons/poker-cards-bulk.svg +11 -0
- package/src/components/icon/icons/presentation-chart-bulk.svg +13 -0
- package/src/components/icon/icons/profile-2user-colored-bulk.svg +16 -0
- package/src/components/icon/icons/programming-arrows-bulk.svg +14 -0
- package/src/components/icon/icons/project-bold.svg +3 -0
- package/src/components/icon/icons/puzzle-bulk.svg +17 -0
- package/src/components/icon/icons/question-bold.svg +3 -0
- package/src/components/icon/icons/question.svg +5 -0
- package/src/components/icon/icons/radar-bold.svg +12 -0
- package/src/components/icon/icons/radar-bulk.svg +8 -0
- package/src/components/icon/icons/radar.svg +10 -0
- package/src/components/icon/icons/rank-bold.svg +14 -0
- package/src/components/icon/icons/rank-bulk.svg +11 -0
- package/src/components/icon/icons/rank.svg +14 -0
- package/src/components/icon/icons/ranking-bold.svg +14 -0
- package/src/components/icon/icons/ranking-bulk.svg +14 -0
- package/src/components/icon/icons/ranking.svg +11 -0
- package/src/components/icon/icons/record-circle.svg +3 -0
- package/src/components/icon/icons/redo-bold.svg +3 -0
- package/src/components/icon/icons/redo.svg +4 -0
- package/src/components/icon/icons/refresh-2.svg +3 -0
- package/src/components/icon/icons/refresh.svg +4 -0
- package/src/components/icon/icons/reply.svg +3 -0
- package/src/components/icon/icons/rocket-bulk.svg +11 -0
- package/src/components/icon/icons/rocket.svg +12 -0
- package/src/components/icon/icons/rotate-left.svg +5 -0
- package/src/components/icon/icons/rotate-right.svg +5 -0
- package/src/components/icon/icons/save-bold.svg +8 -0
- package/src/components/icon/icons/save.svg +11 -0
- package/src/components/icon/icons/scale-balanced.svg +3 -0
- package/src/components/icon/icons/search-2-line.svg +5 -0
- package/src/components/icon/icons/search-dollar.svg +3 -0
- package/src/components/icon/icons/search-normal-bold.svg +4 -0
- package/src/components/icon/icons/search-normal.svg +4 -0
- package/src/components/icon/icons/search-zoom-in-bold.svg +8 -0
- package/src/components/icon/icons/search-zoom-in-bulk.svg +11 -0
- package/src/components/icon/icons/search-zoom-in.svg +11 -0
- package/src/components/icon/icons/security-card-bold.svg +5 -0
- package/src/components/icon/icons/security-card.svg +7 -0
- package/src/components/icon/icons/selection.svg +48 -0
- package/src/components/icon/icons/send.svg +5 -0
- package/src/components/icon/icons/setting-2-linear.svg +8 -0
- package/src/components/icon/icons/setting-bulk.svg +8 -0
- package/src/components/icon/icons/settings-bold.svg +3 -0
- package/src/components/icon/icons/settings-bulk.svg +8 -0
- package/src/components/icon/icons/settings.svg +4 -0
- package/src/components/icon/icons/share-bold.svg +20 -0
- package/src/components/icon/icons/share-bulk.svg +20 -0
- package/src/components/icon/icons/share.svg +8 -0
- package/src/components/icon/icons/shopping-cart-bold.svg +6 -0
- package/src/components/icon/icons/shopping-cart.svg +6 -0
- package/src/components/icon/icons/sidebar-left-bold.svg +8 -0
- package/src/components/icon/icons/sidebar-left-bulk.svg +11 -0
- package/src/components/icon/icons/sidebar-left.svg +9 -0
- package/src/components/icon/icons/sidebar-right-bold.svg +8 -0
- package/src/components/icon/icons/sidebar-right-bulk.svg +11 -0
- package/src/components/icon/icons/sidebar-right.svg +9 -0
- package/src/components/icon/icons/slack.svg +8 -0
- package/src/components/icon/icons/slash-bold.svg +5 -0
- package/src/components/icon/icons/slash.svg +4 -0
- package/src/components/icon/icons/slider-horizontal-bold.svg +8 -0
- package/src/components/icon/icons/slider-horizontal.svg +8 -0
- package/src/components/icon/icons/smart-notification-bold.svg +8 -0
- package/src/components/icon/icons/smart-notification-bulk.svg +8 -0
- package/src/components/icon/icons/smart-notification.svg +8 -0
- package/src/components/icon/icons/sms-bold.svg +3 -0
- package/src/components/icon/icons/sms.svg +4 -0
- package/src/components/icon/icons/soccer-bulk.svg +9 -0
- package/src/components/icon/icons/social-facebook.svg +4 -0
- package/src/components/icon/icons/social-linkedin.svg +5 -0
- package/src/components/icon/icons/social-x.svg +4 -0
- package/src/components/icon/icons/sort-amount-down.svg +3 -0
- package/src/components/icon/icons/sort-bold.svg +5 -0
- package/src/components/icon/icons/sort-bulk.svg +14 -0
- package/src/components/icon/icons/sort.svg +5 -0
- package/src/components/icon/icons/speedometer.svg +5 -0
- package/src/components/icon/icons/spin-dots.svg +14 -0
- package/src/components/icon/icons/spin-round.svg +4 -0
- package/src/components/icon/icons/spin-three-circles.svg +11 -0
- package/src/components/icon/icons/spin-three-dots.svg +5 -0
- package/src/components/icon/icons/spinner.svg +3 -0
- package/src/components/icon/icons/square.svg +3 -0
- package/src/components/icon/icons/star-bold.svg +3 -0
- package/src/components/icon/icons/star-bulk.svg +14 -0
- package/src/components/icon/icons/star-half-colored.svg +4 -0
- package/src/components/icon/icons/star.svg +3 -0
- package/src/components/icon/icons/status-up.svg +17 -0
- package/src/components/icon/icons/steering-wheel-bulk.svg +4 -0
- package/src/components/icon/icons/stop-bold.svg +4 -0
- package/src/components/icon/icons/stop.svg +3 -0
- package/src/components/icon/icons/story.svg +14 -0
- package/src/components/icon/icons/stream.svg +7 -0
- package/src/components/icon/icons/swap-bold.svg +3 -0
- package/src/components/icon/icons/swap.svg +6 -0
- package/src/components/icon/icons/sword-bulk.svg +7 -0
- package/src/components/icon/icons/sync.svg +3 -0
- package/src/components/icon/icons/table-list.svg +3 -0
- package/src/components/icon/icons/tag-2-bold.svg +3 -0
- package/src/components/icon/icons/tag-2.svg +5 -0
- package/src/components/icon/icons/tag-bold.svg +3 -0
- package/src/components/icon/icons/tag-bulk.svg +8 -0
- package/src/components/icon/icons/tag-user.svg +5 -0
- package/src/components/icon/icons/tag.svg +4 -0
- package/src/components/icon/icons/teacher-bulk.svg +4 -0
- package/src/components/icon/icons/thumbtack.svg +3 -0
- package/src/components/icon/icons/tick-circle-bold.svg +5 -0
- package/src/components/icon/icons/tick-circle-bulk.svg +8 -0
- package/src/components/icon/icons/tick-circle.svg +4 -0
- package/src/components/icon/icons/tick-square-bold.svg +3 -0
- package/src/components/icon/icons/tick-square.svg +4 -0
- package/src/components/icon/icons/tick.svg +3 -0
- package/src/components/icon/icons/timer.svg +5 -0
- package/src/components/icon/icons/toggle-off-bold.svg +3 -0
- package/src/components/icon/icons/toggle-off.svg +4 -0
- package/src/components/icon/icons/toggle-on-bold.svg +3 -0
- package/src/components/icon/icons/toggle-on.svg +4 -0
- package/src/components/icon/icons/transgender.svg +3 -0
- package/src/components/icon/icons/translate-bold.svg +24 -0
- package/src/components/icon/icons/translate-bulk.svg +20 -0
- package/src/components/icon/icons/translate.svg +24 -0
- package/src/components/icon/icons/trash-bold.svg +4 -0
- package/src/components/icon/icons/trash-bulk.svg +14 -0
- package/src/components/icon/icons/trash.svg +7 -0
- package/src/components/icon/icons/trend-up-bold.svg +5 -0
- package/src/components/icon/icons/trend-up-bulk.svg +8 -0
- package/src/components/icon/icons/trend-up.svg +5 -0
- package/src/components/icon/icons/twitter.svg +3 -0
- package/src/components/icon/icons/undo-bold.svg +3 -0
- package/src/components/icon/icons/undo.svg +4 -0
- package/src/components/icon/icons/unlock-bold.svg +4 -0
- package/src/components/icon/icons/unlock.svg +5 -0
- package/src/components/icon/icons/upload-bulk.svg +11 -0
- package/src/components/icon/icons/upload.svg +6 -0
- package/src/components/icon/icons/user-avatar.svg +67 -0
- package/src/components/icon/icons/user-default.svg +3 -0
- package/src/components/icon/icons/user-outline.svg +4 -0
- package/src/components/icon/icons/user-settings.svg +3 -0
- package/src/components/icon/icons/user-square.svg +5 -0
- package/src/components/icon/icons/user.svg +5 -0
- package/src/components/icon/icons/video-bulk.svg +5 -0
- package/src/components/icon/icons/video-play-bulk.svg +5 -0
- package/src/components/icon/icons/video-remove.svg +7 -0
- package/src/components/icon/icons/video-square-bulk.svg +4 -0
- package/src/components/icon/icons/volume-low.svg +11 -0
- package/src/components/icon/icons/warning-2-bold.svg +3 -0
- package/src/components/icon/icons/warning-2-bulk.svg +5 -0
- package/src/components/icon/icons/warning-2.svg +5 -0
- package/src/components/icon/icons/warning.svg +3 -0
- package/src/components/icon/icons/watch-bulk.svg +6 -0
- package/src/components/icon/icons/wifi.svg +6 -0
- package/src/components/icon/icons/woman.svg +5 -0
- package/src/components/icon/icons/x.svg +5 -0
- package/src/components/icon/icons/zoom-in.svg +11 -0
- package/src/components/icon/icons/zoom-out.svg +9 -0
- package/src/components/icon/icons.json +524 -0
- package/src/components/icon/index.vue +48 -0
- package/src/components/icon/payment.json +47 -0
- package/src/components/icon/stories/icon.stories.ts +205 -0
- package/src/components/icon/styles.scss +18 -0
- package/src/components/icon/types.ts +17 -0
- package/src/components/icon-button/assets/styles.scss +143 -0
- package/src/components/icon-button/components/button.vue +87 -0
- package/src/components/icon-button/index.vue +95 -0
- package/src/components/icon-button/stories/constants.ts +47 -0
- package/src/components/icon-button/stories/primary.stories.ts +106 -0
- package/src/components/icon-button/stories/secondary.stories.ts +108 -0
- package/src/components/icon-button/types.ts +21 -0
- package/src/components/image/assets/styles.scss +153 -0
- package/src/components/image/group.vue +33 -0
- package/src/components/image/index.vue +51 -0
- package/src/components/image/stories/constants.ts +73 -0
- package/src/components/image/stories/default.stories.ts +27 -0
- package/src/components/image-2/assets/fallback.png +0 -0
- package/src/components/image-2/assets/styles.scss +57 -0
- package/src/components/image-2/group.vue +120 -0
- package/src/components/image-2/image2.test.ts +347 -0
- package/src/components/image-2/index.vue +103 -0
- package/src/components/image-2/preview.vue +244 -0
- package/src/components/image-2/stories/constants.ts +83 -0
- package/src/components/image-2/stories/default.stories.ts +91 -0
- package/src/components/input/index.vue +250 -0
- package/src/components/input/stories/amount.stories.ts +68 -0
- package/src/components/input/stories/constants.ts +81 -0
- package/src/components/input/stories/credit-card.stories.ts +76 -0
- package/src/components/input/stories/default.stories.ts +71 -0
- package/src/components/input/stories/email.stories.ts +76 -0
- package/src/components/input/stories/password.stories.ts +70 -0
- package/src/components/input/stories/textarea.stories.ts +70 -0
- package/src/components/input/stories/url.stories.ts +70 -0
- package/src/components/input/stories/user-info.stories.ts +76 -0
- package/src/components/input/styles.scss +282 -0
- package/src/components/input/types.ts +47 -0
- package/src/components/input-number/assets/styles.scss +622 -0
- package/src/components/input-number/index.vue +142 -0
- package/src/components/input-number/stories/constants.ts +145 -0
- package/src/components/input-number/stories/default.stories.ts +80 -0
- package/src/components/input-number/stories/formatter.mdx +13 -0
- package/src/components/input-number/stories/with-select.stories.ts +30 -0
- package/src/components/input-number/stories/withselect.mdx +23 -0
- package/src/components/input-number/types.ts +26 -0
- package/src/components/keyword-group-selection/assets/styles.scss +205 -0
- package/src/components/keyword-group-selection/components/kwGroupForm.vue +89 -0
- package/src/components/keyword-group-selection/components/kwGroupItem.vue +89 -0
- package/src/components/keyword-group-selection/composables/index.ts +19 -0
- package/src/components/keyword-group-selection/data/keywordGroups.json +136 -0
- package/src/components/keyword-group-selection/index.vue +326 -0
- package/src/components/keyword-group-selection/stories/constants.ts +178 -0
- package/src/components/keyword-group-selection/stories/default.stories.ts +97 -0
- package/src/components/keyword-group-selection/stories/example.mdx +110 -0
- package/src/components/keyword-group-selection/types.ts +43 -0
- package/src/components/menu/assets/styles.scss +3 -0
- package/src/components/menu/components/MenuItem.vue +45 -0
- package/src/components/menu/index.vue +28 -0
- package/src/components/menu/stories/constants.ts +67 -0
- package/src/components/menu/stories/default.stories1.ts +22 -0
- package/src/components/menu/stories/listData.stories1.mdx +33 -0
- package/src/components/modal/assets/effects.scss +602 -0
- package/src/components/modal/assets/styles.scss +131 -0
- package/src/components/modal/assets/with-tab.scss +8 -0
- package/src/components/modal/components/renderContent.vue +15 -0
- package/src/components/modal/index.ts +54 -0
- package/src/components/modal/index.vue +205 -0
- package/src/components/modal/stories/constants.ts +213 -0
- package/src/components/modal/stories/default.stories.ts +74 -0
- package/src/components/modal/stories/functions.stories.ts +82 -0
- package/src/components/modal/types.ts +43 -0
- package/src/components/notification/assets/styles.scss +251 -0
- package/src/components/notification/components/notification.vue +118 -0
- package/src/components/notification/components/notificationContainer.vue +72 -0
- package/src/components/notification/composables/useNotificationAnimation.ts +48 -0
- package/src/components/notification/index.ts +53 -0
- package/src/components/notification/notification.test.ts +120 -0
- package/src/components/notification/stories/commonStories.ts +126 -0
- package/src/components/notification/stories/constants.ts +67 -0
- package/src/components/notification/stories/docs.mdx +100 -0
- package/src/components/notification/stories/filled.stories.ts +23 -0
- package/src/components/notification/stories/light.stories.ts +23 -0
- package/src/components/notification/stories/stroke.stories.ts +23 -0
- package/src/components/notification/types.ts +56 -0
- package/src/components/numeric-input/assets/styles.scss +53 -0
- package/src/components/numeric-input/components/singleNumericInput.vue +46 -0
- package/src/components/numeric-input/index.vue +148 -0
- package/src/components/numeric-input/stories/constants.ts +40 -0
- package/src/components/numeric-input/stories/default.stories.ts +46 -0
- package/src/components/numeric-input/types.ts +7 -0
- package/src/components/pagination/assets/styles.scss +131 -0
- package/src/components/pagination/index.vue +379 -0
- package/src/components/pagination/pagination.test.ts +361 -0
- package/src/components/pagination/stories/constants.ts +50 -0
- package/src/components/pagination/stories/default.stories.ts +17 -0
- package/src/components/pagination/types.ts +31 -0
- package/src/components/popconfirm/assets/styles.scss +22 -0
- package/src/components/popconfirm/index.vue +129 -0
- package/src/components/popconfirm/stories/constants.ts +53 -0
- package/src/components/popconfirm/stories/default.stories.ts +19 -0
- package/src/components/popconfirm/types.ts +16 -0
- package/src/components/popover/assets/styles.scss +214 -0
- package/src/components/popover/index.vue +73 -0
- package/src/components/popover/stories/apps.json +47 -0
- package/src/components/popover/stories/constants.ts +120 -0
- package/src/components/popover/stories/default.stories.ts +33 -0
- package/src/components/popover/types.ts +30 -0
- package/src/components/popover-2/assets/styles.scss +171 -0
- package/src/components/popover-2/index.vue +103 -0
- package/src/components/popover-2/popover2.test.ts +96 -0
- package/src/components/popover-2/stories/constants.ts +142 -0
- package/src/components/popover-2/stories/default.stories.ts +32 -0
- package/src/components/popover-2/types.ts +26 -0
- package/src/components/progress/assets/styles.scss +241 -0
- package/src/components/progress/components/circle.vue +94 -0
- package/src/components/progress/components/halfCircle.vue +92 -0
- package/src/components/progress/components/line.vue +49 -0
- package/src/components/progress/components/stepLine.vue +48 -0
- package/src/components/progress/index.vue +90 -0
- package/src/components/progress/stories/circle.stories.ts +77 -0
- package/src/components/progress/stories/constants.ts +57 -0
- package/src/components/progress/stories/half-circle.stories.ts +67 -0
- package/src/components/progress/stories/line-step.stories.ts +73 -0
- package/src/components/progress/stories/line.stories.ts +90 -0
- package/src/components/progress/types.ts +42 -0
- package/src/components/radio/assets/checked-disabled.svg +11 -0
- package/src/components/radio/assets/checked.svg +11 -0
- package/src/components/radio/group.vue +26 -0
- package/src/components/radio/index.vue +67 -0
- package/src/components/radio/stories/constants.ts +54 -0
- package/src/components/radio/stories/default.stories.ts +38 -0
- package/src/components/radio/styles.scss +454 -0
- package/src/components/radio/types.ts +5 -0
- package/src/components/radio-card/assets/styles.scss +57 -0
- package/src/components/radio-card/index.vue +56 -0
- package/src/components/radio-card/stories/assets/iphone-half.svg +61 -0
- package/src/components/radio-card/stories/constants.ts +98 -0
- package/src/components/radio-card/stories/default.stories.ts +33 -0
- package/src/components/radio-card/stories/example.mdx +17 -0
- package/src/components/rate/assets/styles.scss +43 -0
- package/src/components/rate/components/star.vue +39 -0
- package/src/components/rate/index.vue +124 -0
- package/src/components/rate/stories/constants.ts +40 -0
- package/src/components/rate/stories/default.stories.ts +55 -0
- package/src/components/rate/types.ts +14 -0
- package/src/components/result/assets/styles.scss +53 -0
- package/src/components/result/index.vue +71 -0
- package/src/components/result/stories/constants.ts +70 -0
- package/src/components/result/stories/default.stories.ts +27 -0
- package/src/components/result/types.ts +11 -0
- package/src/components/select/assets/styles.scss +601 -0
- package/src/components/select/components/dropdownRender.vue +70 -0
- package/src/components/select/components/option.vue +19 -0
- package/src/components/select/components/optionCheckbox.vue +31 -0
- package/src/components/select/index.vue +506 -0
- package/src/components/select/stories/constants.ts +85 -0
- package/src/components/select/stories/countries.json +342 -0
- package/src/components/select/stories/countriesWithDescription.json +57 -0
- package/src/components/select/stories/countryGroups.json +47 -0
- package/src/components/select/stories/default.stories.ts +190 -0
- package/src/components/select/stories/group.stories.ts +55 -0
- package/src/components/select/stories/multi-select.stories.ts +158 -0
- package/src/components/select/stories/options.json +204 -0
- package/src/components/select/stories/single.stories.ts +42 -0
- package/src/components/select/types.ts +35 -0
- package/src/components/select-2/assets/borderless.scss +30 -0
- package/src/components/select-2/assets/compact.scss +5 -0
- package/src/components/select-2/assets/default.scss +139 -0
- package/src/components/select-2/assets/dropdown.scss +56 -0
- package/src/components/select-2/assets/inline.scss +49 -0
- package/src/components/select-2/assets/option-group.scss +6 -0
- package/src/components/select-2/assets/option.scss +50 -0
- package/src/components/select-2/assets/styles.scss +8 -0
- package/src/components/select-2/components/selectOption.vue +108 -0
- package/src/components/select-2/components/selectOptionGroup.vue +17 -0
- package/src/components/select-2/composables/use-keyboard-navigation.ts +81 -0
- package/src/components/select-2/composables/use-options-registry.ts +23 -0
- package/src/components/select-2/index.vue +449 -0
- package/src/components/select-2/select.test.ts +322 -0
- package/src/components/select-2/stories/borderless.stories.ts +38 -0
- package/src/components/select-2/stories/constants.ts +184 -0
- package/src/components/select-2/stories/data/countries.json +342 -0
- package/src/components/select-2/stories/data/users.json +204 -0
- package/src/components/select-2/stories/inline.stories.ts +38 -0
- package/src/components/select-2/stories/multiple.stories.ts +71 -0
- package/src/components/select-2/stories/select-option-group.stories.ts +70 -0
- package/src/components/select-2/stories/select-option.stories.ts +64 -0
- package/src/components/select-2/stories/single.stories.ts +169 -0
- package/src/components/select-2/types.ts +231 -0
- package/src/components/side-menu/add-new-app-button/assets/styles.scss +18 -0
- package/src/components/side-menu/add-new-app-button/index.vue +35 -0
- package/src/components/side-menu/add-new-app-button/stories/constants.ts +39 -0
- package/src/components/side-menu/add-new-app-button/stories/default.stories.ts +23 -0
- package/src/components/side-menu/app-button/assets/styles.scss +51 -0
- package/src/components/side-menu/app-button/index.vue +42 -0
- package/src/components/side-menu/app-button/stories/constants.ts +34 -0
- package/src/components/side-menu/app-button/stories/default.stories.ts +28 -0
- package/src/components/side-menu/button/assets/styles.scss +42 -0
- package/src/components/side-menu/button/index.vue +70 -0
- package/src/components/side-menu/button/stories/constants.ts +58 -0
- package/src/components/side-menu/button/stories/default.stories.ts +44 -0
- package/src/components/side-menu/icon-button/assets/styles.scss +49 -0
- package/src/components/side-menu/icon-button/index.vue +78 -0
- package/src/components/side-menu/icon-button/stories/constants.ts +48 -0
- package/src/components/side-menu/icon-button/stories/default.stories.ts +33 -0
- package/src/components/side-menu/menu-item/assets/styles.scss +66 -0
- package/src/components/side-menu/menu-item/index.vue +90 -0
- package/src/components/side-menu/menu-item/stories/constants.ts +59 -0
- package/src/components/side-menu/menu-item/stories/default.stories.ts +191 -0
- package/src/components/side-menu/menu-item/types.ts +12 -0
- package/src/components/side-menu/round-icon-button/assets/styles.scss +29 -0
- package/src/components/side-menu/round-icon-button/index.vue +27 -0
- package/src/components/side-menu/round-icon-button/stories/constants.ts +39 -0
- package/src/components/side-menu/round-icon-button/stories/default.stories.ts +18 -0
- package/src/components/side-menu-2/menu-button/assets/styles.scss +36 -0
- package/src/components/side-menu-2/menu-button/index.vue +77 -0
- package/src/components/side-menu-2/menu-button/stories/constants.ts +55 -0
- package/src/components/side-menu-2/menu-button/stories/default.stories.ts +49 -0
- package/src/components/side-menu-2/menu-button/types.ts +6 -0
- package/src/components/side-menu-2/menu-item/assets/styles.scss +43 -0
- package/src/components/side-menu-2/menu-item/index.vue +54 -0
- package/src/components/side-menu-2/menu-item/stories/constants.ts +39 -0
- package/src/components/side-menu-2/menu-item/stories/default.stories.ts +83 -0
- package/src/components/side-menu-2/side-menu-2.test.ts +64 -0
- package/src/components/slider/assets/styles.scss +222 -0
- package/src/components/slider/index.vue +100 -0
- package/src/components/slider/stories/constants.ts +104 -0
- package/src/components/slider/stories/default.stories.ts +22 -0
- package/src/components/slider/stories/example.mdx +69 -0
- package/src/components/slider/types.ts +12 -0
- package/src/components/spin/assets/styles.scss +127 -0
- package/src/components/spin/index.vue +55 -0
- package/src/components/spin/stories/constants.ts +70 -0
- package/src/components/spin/stories/container.stories.ts +30 -0
- package/src/components/spin/stories/default.stories.ts +26 -0
- package/src/components/spin/types.ts +17 -0
- package/src/components/step-items/assets/styles.scss +57 -0
- package/src/components/step-items/components/index.vue +81 -0
- package/src/components/step-items/index.vue +68 -0
- package/src/components/step-items/stories/constants.ts +77 -0
- package/src/components/step-items/stories/default.stories.ts +18 -0
- package/src/components/step-items/stories/examples.mdx +25 -0
- package/src/components/step-items/stories/step-item.stories.ts +19 -0
- package/src/components/steps/assets/styles.scss +79 -0
- package/src/components/steps/components/index.vue +78 -0
- package/src/components/steps/index.vue +72 -0
- package/src/components/steps/stories/constants.ts +132 -0
- package/src/components/steps/stories/default.stories.ts +56 -0
- package/src/components/steps/stories/examples.mdx +27 -0
- package/src/components/steps/stories/step.stories.ts +19 -0
- package/src/components/steps/types.ts +6 -0
- package/src/components/switch/assets/styles.scss +107 -0
- package/src/components/switch/index.vue +142 -0
- package/src/components/switch/stories/constants.ts +43 -0
- package/src/components/switch/stories/default.stories.ts +133 -0
- package/src/components/switch/switch.test.ts +90 -0
- package/src/components/switch/types.ts +12 -0
- package/src/components/table/assets/table.scss +167 -0
- package/src/components/table/preview.vue +140 -0
- package/src/components/table/row-detail.vue +19 -0
- package/src/components/table/stories/data/data.json +1089 -0
- package/src/components/table/stories/data/fields.ts +110 -0
- package/src/components/table/stories/default.stories.ts +25 -0
- package/src/components/table/stories/table.mdx +51 -0
- package/src/components/tabs/assets/styles.scss +435 -0
- package/src/components/tabs/components/tabPane.vue +11 -0
- package/src/components/tabs/index.vue +65 -0
- package/src/components/tabs/stories/card.stories.ts +85 -0
- package/src/components/tabs/stories/constants.ts +124 -0
- package/src/components/tabs/stories/default.mdx +72 -0
- package/src/components/tabs/stories/line.stories.ts +85 -0
- package/src/components/tabs/types.ts +20 -0
- package/src/components/tabs-2/assets/styles.scss +40 -0
- package/src/components/tabs-2/assets/tab-button.scss +89 -0
- package/src/components/tabs-2/components/tabButton.vue +70 -0
- package/src/components/tabs-2/components/tabPane.vue +33 -0
- package/src/components/tabs-2/index.vue +110 -0
- package/src/components/tabs-2/stories/default.stories.ts +147 -0
- package/src/components/tabs-2/stories/tab-button.stories.ts +71 -0
- package/src/components/tabs-2/stories/tab-pane.stories.ts +62 -0
- package/src/components/tabs-2/tabButton.test.ts +84 -0
- package/src/components/tabs-2/tabs.test.ts +178 -0
- package/src/components/tabs-2/types.ts +106 -0
- package/src/components/tag-input/assets/styles.scss +99 -0
- package/src/components/tag-input/index.vue +185 -0
- package/src/components/tag-input/stories/constants.ts +50 -0
- package/src/components/tag-input/stories/default.stories.ts +76 -0
- package/src/components/tag-input/types.ts +3 -0
- package/src/components/toggle/assets/styles.scss +122 -0
- package/src/components/toggle/index.vue +80 -0
- package/src/components/toggle/stories/constants.ts +73 -0
- package/src/components/toggle/stories/default.stories.ts +32 -0
- package/src/components/toggle/types.ts +7 -0
- package/src/components/tooltip/assets/styles.scss +207 -0
- package/src/components/tooltip/index.vue +101 -0
- package/src/components/tooltip/stories/constants.ts +67 -0
- package/src/components/tooltip/stories/default.stories.ts +143 -0
- package/src/components/tooltip/tooltip.test.ts +157 -0
- package/src/components/tooltip/types.ts +30 -0
- package/src/components/track-button/assets/style.scss +94 -0
- package/src/components/track-button/index.vue +77 -0
- package/src/components/track-button/stories/constants.ts +63 -0
- package/src/components/track-button/stories/default.stories.ts +123 -0
- package/src/components/track-button/track-button.test.ts +91 -0
- package/src/components/track-button/types.ts +8 -0
- package/src/components/tree/assets/styles.scss +35 -0
- package/src/components/tree/components/treeNode.vue +238 -0
- package/src/components/tree/index.vue +257 -0
- package/src/components/tree/stories/constants.ts +93 -0
- package/src/components/tree/stories/default.stories.ts +173 -0
- package/src/components/tree/stories/useTreeData.ts +41 -0
- package/src/components/tree/tree.test.ts +104 -0
- package/src/components/tree/types.ts +19 -0
- package/src/components/typography/assets/styles.scss +0 -0
- package/src/components/typography/index.vue +40 -0
- package/src/components/typography/stories/constants.ts +115 -0
- package/src/components/typography/stories/default.stories.ts +114 -0
- package/src/components/typography/types.ts +39 -0
- package/src/components/typography/typography.test.ts +56 -0
- package/src/components/upload/assets/styles.scss +120 -0
- package/src/components/upload/composables/file.ts +114 -0
- package/src/components/upload/index.vue +386 -0
- package/src/components/upload/singleFile.vue +62 -0
- package/src/components/upload/stories/box.stories.ts +76 -0
- package/src/components/upload/stories/button.stories.ts +20 -0
- package/src/components/upload/stories/constants.ts +159 -0
- package/src/components/upload/stories/small-box.stories.ts +21 -0
- package/src/components/upload/types.ts +31 -0
- package/src/components/watchlist-button/assets/styles.scss +116 -0
- package/src/components/watchlist-button/components/button.vue +105 -0
- package/src/components/watchlist-button/index.vue +88 -0
- package/src/components/watchlist-button/stories/constants.ts +54 -0
- package/src/components/watchlist-button/stories/dashed.stories.ts +30 -0
- package/src/components/watchlist-button/stories/default.stories.ts +55 -0
- package/src/components/watchlist-button/types.ts +13 -0
- package/src/composables/config.ts +6 -0
- package/src/composables/ssr.ts +10 -0
- package/src/index.ts +172 -0
- package/src/services/config.ts +32 -0
- package/src/shims-vue-virtual-scroller.d.ts +77 -0
- package/src/tailwind.scss +6 -0
- package/src/utils/breakpoints.test.ts +21 -0
- package/src/utils/breakpoints.ts +31 -0
- package/src/utils/slots.ts +21 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
$positions: (
|
|
2
|
+
"top": "top-5 left-1/2 items-center -translate-x-1/2",
|
|
3
|
+
"top-right": "top-5 right-5 items-end",
|
|
4
|
+
"top-left": "top-5 left-5 items-start",
|
|
5
|
+
"bottom": "bottom-5 left-1/2 items-center -translate-x-1/2",
|
|
6
|
+
"bottom-right": "bottom-5 right-5 items-end",
|
|
7
|
+
"bottom-left": "bottom-5 left-5 items-start"
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
$notification-types: (
|
|
11
|
+
"info": "primary-dark-blue",
|
|
12
|
+
"success": "green-500",
|
|
13
|
+
"error": "red-500",
|
|
14
|
+
"warning": "primary-orange",
|
|
15
|
+
"dark": "gray-700"
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
$notification-sizes: (
|
|
19
|
+
"small": "py-2 px-2.5 text-sm gap-2 rounded-lg",
|
|
20
|
+
"large": "py-3.5 text-sm gap-3 rounded-xl"
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
$light-notification-types: (
|
|
24
|
+
"dark": (
|
|
25
|
+
"bg-color": "gray-100",
|
|
26
|
+
"icon-color": "gray-900",
|
|
27
|
+
"title-color": "gray-900",
|
|
28
|
+
"description-color": "gray-500",
|
|
29
|
+
"close-color": "gray-500",
|
|
30
|
+
"button-color": "gray-900"
|
|
31
|
+
),
|
|
32
|
+
"info": (
|
|
33
|
+
"bg-color": "indigo-100",
|
|
34
|
+
"icon-color": "blue-800",
|
|
35
|
+
"title-color": "blue-800",
|
|
36
|
+
"description-color": "blue-800",
|
|
37
|
+
"close-color": "blue-800",
|
|
38
|
+
"button-color": "blue-800"
|
|
39
|
+
),
|
|
40
|
+
"success": (
|
|
41
|
+
"bg-color": "green-100",
|
|
42
|
+
"icon-color": "green-800",
|
|
43
|
+
"title-color": "green-800",
|
|
44
|
+
"description-color": "green-800",
|
|
45
|
+
"close-color": "green-800",
|
|
46
|
+
"button-color": "green-800"
|
|
47
|
+
),
|
|
48
|
+
"warning": (
|
|
49
|
+
"bg-color": "orange-100",
|
|
50
|
+
"icon-color": "yellow-800",
|
|
51
|
+
"title-color": "yellow-800",
|
|
52
|
+
"description-color": "yellow-800",
|
|
53
|
+
"close-color": "yellow-800",
|
|
54
|
+
"button-color": "yellow-800"
|
|
55
|
+
),
|
|
56
|
+
"error": (
|
|
57
|
+
"bg-color": "red-100",
|
|
58
|
+
"icon-color": "red-800",
|
|
59
|
+
"title-color": "red-800",
|
|
60
|
+
"description-color": "red-800",
|
|
61
|
+
"close-color": "red-800",
|
|
62
|
+
"button-color": "red-800"
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
@mixin notification-styles($type, $color) {
|
|
67
|
+
&.ma-notification--filled {
|
|
68
|
+
@apply bg-#{$color};
|
|
69
|
+
.ma-notification-icon,
|
|
70
|
+
.ma-notification-title,
|
|
71
|
+
.ma-notification-description,
|
|
72
|
+
.ma-notification-close {
|
|
73
|
+
@apply text-white;
|
|
74
|
+
}
|
|
75
|
+
.ma-notification-description {
|
|
76
|
+
@apply opacity-80;
|
|
77
|
+
}
|
|
78
|
+
.ma-notification-buttons .ma-button {
|
|
79
|
+
@apply text-white;
|
|
80
|
+
&:after,
|
|
81
|
+
&:before {
|
|
82
|
+
@apply bg-white;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
&.ma-notification--stroke {
|
|
87
|
+
@apply bg-white border border-gray-200;
|
|
88
|
+
box-shadow: 0px 16px 32px -12px rgba(88, 92, 95, 0.1);
|
|
89
|
+
.ma-notification-icon {
|
|
90
|
+
@apply text-#{$color};
|
|
91
|
+
}
|
|
92
|
+
.ma-notification-title,
|
|
93
|
+
.ma-notification-description,
|
|
94
|
+
.ma-notification-close,
|
|
95
|
+
.ma-notification-buttons .ma-button {
|
|
96
|
+
@apply text-gray-900;
|
|
97
|
+
}
|
|
98
|
+
.ma-notification-description,
|
|
99
|
+
.ma-notification-close {
|
|
100
|
+
@apply text-gray-500;
|
|
101
|
+
}
|
|
102
|
+
.ma-notification-buttons {
|
|
103
|
+
.ma-button {
|
|
104
|
+
&:after,
|
|
105
|
+
&:before {
|
|
106
|
+
@apply bg-gray-900;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@mixin light-notification($bg-color, $icon-color, $title-color, $description-color, $close-color, $button-color) {
|
|
114
|
+
@apply bg-#{$bg-color};
|
|
115
|
+
.ma-notification-icon {
|
|
116
|
+
@apply text-#{$icon-color};
|
|
117
|
+
}
|
|
118
|
+
.ma-notification-title,
|
|
119
|
+
.ma-notification-description,
|
|
120
|
+
.ma-notification-close {
|
|
121
|
+
@apply text-#{$title-color};
|
|
122
|
+
}
|
|
123
|
+
.ma-notification-description {
|
|
124
|
+
@apply opacity-100;
|
|
125
|
+
}
|
|
126
|
+
.ma-notification-buttons .ma-button {
|
|
127
|
+
@apply text-#{$button-color};
|
|
128
|
+
&:after,
|
|
129
|
+
&:before {
|
|
130
|
+
@apply bg-#{$button-color};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.ma-notification-wrapper {
|
|
136
|
+
@apply fixed w-full h-full pointer-events-none top-0 left-0 z-[1001] overflow-y-auto;
|
|
137
|
+
|
|
138
|
+
@each $position, $classes in $positions {
|
|
139
|
+
.ma-notification--#{$position} {
|
|
140
|
+
@apply absolute flex flex-col #{$classes};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.ma-notification {
|
|
145
|
+
@apply flex items-start justify-between pointer-events-auto p-3.5 transition-all duration-200 ease-linear mb-4;
|
|
146
|
+
|
|
147
|
+
&__content {
|
|
148
|
+
@apply flex flex-row items-start gap-2.5 max-w-full lg:max-w-md;
|
|
149
|
+
|
|
150
|
+
&__texts {
|
|
151
|
+
@apply flex flex-col gap-1 w-[298px];
|
|
152
|
+
.ma-notification-title,
|
|
153
|
+
.ma-notification-description {
|
|
154
|
+
@apply overflow-hidden max-h-64;
|
|
155
|
+
display: -webkit-box;
|
|
156
|
+
-webkit-box-orient: vertical;
|
|
157
|
+
-webkit-line-clamp: 12;
|
|
158
|
+
}
|
|
159
|
+
.ma-notification-title {
|
|
160
|
+
@apply font-medium;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
.ma-notification-buttons {
|
|
164
|
+
@apply flex gap-5 ml-4;
|
|
165
|
+
.ma-button {
|
|
166
|
+
@apply relative;
|
|
167
|
+
&:not(:first-child) {
|
|
168
|
+
&::before {
|
|
169
|
+
@apply content-[''] w-1 h-1 rounded-full absolute -left-3;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
&__actions {
|
|
177
|
+
.ma-notification-close {
|
|
178
|
+
@apply w-5 h-5 p-1 cursor-pointer transition-opacity duration-300;
|
|
179
|
+
&:hover {
|
|
180
|
+
@apply opacity-60;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@each $size, $size-classes in $notification-sizes {
|
|
186
|
+
&--#{$size} {
|
|
187
|
+
@apply #{$size-classes};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@each $type, $color in $notification-types {
|
|
192
|
+
&--#{$type} {
|
|
193
|
+
@include notification-styles($type, $color);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&--dark.ma-notification--stroke .ma-notification-icon {
|
|
198
|
+
@apply text-gray-500;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
&--light {
|
|
202
|
+
@each $type, $colors in $light-notification-types {
|
|
203
|
+
&.ma-notification--#{$type} {
|
|
204
|
+
@include light-notification(
|
|
205
|
+
map-get($colors, "bg-color"),
|
|
206
|
+
map-get($colors, "icon-color"),
|
|
207
|
+
map-get($colors, "title-color"),
|
|
208
|
+
map-get($colors, "description-color"),
|
|
209
|
+
map-get($colors, "close-color"),
|
|
210
|
+
map-get($colors, "button-color")
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
&--double-text {
|
|
217
|
+
.ma-notification__content {
|
|
218
|
+
@apply flex-col;
|
|
219
|
+
.ma-notification-buttons {
|
|
220
|
+
@apply ml-0;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
&.leaving {
|
|
226
|
+
transition:
|
|
227
|
+
transform 200ms ease-out,
|
|
228
|
+
opacity 200ms ease-out,
|
|
229
|
+
margin-bottom 200ms ease-out;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.ma-notification-enter-active,
|
|
234
|
+
.ma-notification-leave-active {
|
|
235
|
+
@apply transition-all duration-200 ease-linear;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.ma-notification-enter-from,
|
|
239
|
+
.ma-notification-leave-to {
|
|
240
|
+
@apply opacity-0 -translate-y-5;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.ma-notification-enter-to,
|
|
244
|
+
.ma-notification-leave-from {
|
|
245
|
+
@apply opacity-100 translate-y-0;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.ma-notification-leave-to {
|
|
249
|
+
@apply opacity-0 translate-y-5;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, onMounted, onUnmounted, isVNode } from 'vue';
|
|
3
|
+
import { NotificationOptions } from '../types';
|
|
4
|
+
import { useNotificationAnimation } from '../composables/useNotificationAnimation';
|
|
5
|
+
|
|
6
|
+
import { MaLinkButton, MaIcon } from '@/index';
|
|
7
|
+
|
|
8
|
+
export interface MaNotificationProps {
|
|
9
|
+
notification: NotificationOptions
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const { runNotificationLeaveAnimation } = useNotificationAnimation();
|
|
13
|
+
|
|
14
|
+
const props = defineProps<MaNotificationProps>();
|
|
15
|
+
|
|
16
|
+
const emit = defineEmits(['remove']);
|
|
17
|
+
|
|
18
|
+
const timeout = ref<ReturnType<typeof setTimeout> | null>(null);
|
|
19
|
+
const notificationEl = ref<HTMLElement>();
|
|
20
|
+
|
|
21
|
+
const notificationClasses = [
|
|
22
|
+
'ma-notification',
|
|
23
|
+
`ma-notification--${props.notification.type}`,
|
|
24
|
+
`ma-notification--${props.notification.variant}`,
|
|
25
|
+
`ma-notification--${props.notification.size}`,
|
|
26
|
+
{
|
|
27
|
+
'ma-notification--double-text': props.notification?.title && props.notification?.description,
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const startTimer = () => {
|
|
32
|
+
if (props.notification.duration) {
|
|
33
|
+
timeout.value = setTimeout(removeNotification, props.notification.duration);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const stopTimer = () => {
|
|
38
|
+
if (timeout.value) {
|
|
39
|
+
clearTimeout(timeout.value);
|
|
40
|
+
timeout.value = null;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const removeNotification = () => {
|
|
45
|
+
if (!notificationEl.value) return;
|
|
46
|
+
runNotificationLeaveAnimation(notificationEl, () => {
|
|
47
|
+
emit('remove', props.notification.id);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
onMounted(startTimer);
|
|
52
|
+
onUnmounted(stopTimer);
|
|
53
|
+
</script>
|
|
54
|
+
<template>
|
|
55
|
+
<div
|
|
56
|
+
ref="notificationEl"
|
|
57
|
+
:class="notificationClasses"
|
|
58
|
+
@mouseenter="stopTimer"
|
|
59
|
+
@mouseleave="startTimer"
|
|
60
|
+
>
|
|
61
|
+
<ma-icon
|
|
62
|
+
v-if="props.notification.icon"
|
|
63
|
+
class="ma-notification-icon"
|
|
64
|
+
:name="props.notification.icon"
|
|
65
|
+
size="sm"
|
|
66
|
+
/>
|
|
67
|
+
<div class="ma-notification__content">
|
|
68
|
+
<div class="ma-notification__content__texts">
|
|
69
|
+
<component
|
|
70
|
+
:is="props.notification.title"
|
|
71
|
+
v-if="isVNode(props.notification.title)"
|
|
72
|
+
class="ma-notification-title"
|
|
73
|
+
/>
|
|
74
|
+
<div
|
|
75
|
+
v-else-if="props.notification.title"
|
|
76
|
+
class="ma-notification-title"
|
|
77
|
+
:title="props.notification.title"
|
|
78
|
+
>
|
|
79
|
+
{{ props.notification.title }}
|
|
80
|
+
</div>
|
|
81
|
+
<component
|
|
82
|
+
:is="props.notification.description"
|
|
83
|
+
v-if="isVNode(props.notification.description)"
|
|
84
|
+
class="ma-notification-description"
|
|
85
|
+
/>
|
|
86
|
+
<div
|
|
87
|
+
v-else-if="props.notification.description"
|
|
88
|
+
class="ma-notification-description"
|
|
89
|
+
:title="props.notification.description"
|
|
90
|
+
>
|
|
91
|
+
{{ props.notification.description }}
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
<div
|
|
95
|
+
v-if="props.notification.buttons && props.notification.buttons.length"
|
|
96
|
+
class="ma-notification-buttons"
|
|
97
|
+
>
|
|
98
|
+
<ma-link-button
|
|
99
|
+
v-for="(button, buttonIndex) in props.notification.buttons"
|
|
100
|
+
:key="buttonIndex"
|
|
101
|
+
size="small"
|
|
102
|
+
@click="button.onClick(props.notification.id)"
|
|
103
|
+
>
|
|
104
|
+
{{ button.label }}
|
|
105
|
+
</ma-link-button>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
<div class="ma-notification__actions">
|
|
109
|
+
<ma-icon
|
|
110
|
+
v-if="props.notification.closable"
|
|
111
|
+
name="close"
|
|
112
|
+
class="ma-notification-close"
|
|
113
|
+
size="xs"
|
|
114
|
+
@click="removeNotification"
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</template>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, computed, ComputedRef } from 'vue';
|
|
3
|
+
import { NotificationOptions, NotificationPlacement } from '../types';
|
|
4
|
+
import kebabCase from 'lodash/kebabCase';
|
|
5
|
+
import MaNotification from './notification.vue';
|
|
6
|
+
|
|
7
|
+
const notifications = ref<NotificationOptions[]>([]);
|
|
8
|
+
|
|
9
|
+
const addNotification = (notification: NotificationOptions) => {
|
|
10
|
+
notifications.value.push(notification);
|
|
11
|
+
return notification.id;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const removeNotification = (deletedId: number | string) => {
|
|
15
|
+
notifications.value = notifications.value.filter(
|
|
16
|
+
({ id }) => id !== deletedId
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const removeAll = () => {
|
|
21
|
+
notifications.value = [];
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type Placements = Record<NotificationPlacement, NotificationOptions[]>;
|
|
25
|
+
|
|
26
|
+
const placementNotifications: ComputedRef<Placements> = computed(() => {
|
|
27
|
+
const initialPlacement: Placements = {
|
|
28
|
+
top: [],
|
|
29
|
+
topRight: [],
|
|
30
|
+
topLeft: [],
|
|
31
|
+
bottom: [],
|
|
32
|
+
bottomRight: [],
|
|
33
|
+
bottomLeft: [],
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return notifications.value.reduce((placements, notification) => {
|
|
37
|
+
const placement = notification.placement || 'topLeft';
|
|
38
|
+
placements[placement].push(notification);
|
|
39
|
+
return placements;
|
|
40
|
+
}, initialPlacement);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
defineExpose({
|
|
44
|
+
addNotification,
|
|
45
|
+
removeNotification,
|
|
46
|
+
removeAll,
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
49
|
+
<template>
|
|
50
|
+
<teleport to="body">
|
|
51
|
+
<div
|
|
52
|
+
v-if="notifications.length"
|
|
53
|
+
class="ma-notification-wrapper"
|
|
54
|
+
>
|
|
55
|
+
<div
|
|
56
|
+
v-for="(notificationList, placement) in placementNotifications"
|
|
57
|
+
:key="placement"
|
|
58
|
+
:class="`ma-notification--${kebabCase(placement)}`"
|
|
59
|
+
>
|
|
60
|
+
<transition-group name="ma-notification">
|
|
61
|
+
<ma-notification
|
|
62
|
+
v-for="notification in notificationList"
|
|
63
|
+
:key="notification.id"
|
|
64
|
+
:notification="notification"
|
|
65
|
+
@remove="removeNotification"
|
|
66
|
+
/>
|
|
67
|
+
</transition-group>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</teleport>
|
|
71
|
+
</template>
|
|
72
|
+
<style lang="scss" src="../assets/styles.scss"></style>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Ref } from "vue";
|
|
2
|
+
|
|
3
|
+
const animationDuration = 200; // Animation duration in ms
|
|
4
|
+
|
|
5
|
+
export const useNotificationAnimation = () => {
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Handles the notification removal animation.
|
|
9
|
+
* @param {Ref<HTMLElement>} notificationEl - The ref of the notification element to animate.
|
|
10
|
+
* @param {Function} callback - The callback function to call after the animation is complete.
|
|
11
|
+
*/
|
|
12
|
+
const runNotificationLeaveAnimation = (notificationEl: Ref<HTMLElement>, callback: () => void) => {
|
|
13
|
+
if (!notificationEl.value) return;
|
|
14
|
+
|
|
15
|
+
notificationEl.value.classList.add('leaving');
|
|
16
|
+
const element = notificationEl.value;
|
|
17
|
+
let start: number | null = null;
|
|
18
|
+
const initialHeight = element.offsetHeight;
|
|
19
|
+
|
|
20
|
+
const step = (timestamp: number) => {
|
|
21
|
+
if (!start) start = timestamp;
|
|
22
|
+
const progress = timestamp - start;
|
|
23
|
+
const easedProgress = Math.min(progress / animationDuration, 1);
|
|
24
|
+
const translateY = -initialHeight * easedProgress; // Move up
|
|
25
|
+
const opacity = 1 - easedProgress; // Opacity from 1 to 0
|
|
26
|
+
const marginBottom = -initialHeight * easedProgress; // Adjust margin-bottom
|
|
27
|
+
|
|
28
|
+
element.style.transform = `translateY(${translateY}px)`;
|
|
29
|
+
element.style.opacity = `${opacity}`;
|
|
30
|
+
element.style.marginBottom = `${marginBottom}px`;
|
|
31
|
+
|
|
32
|
+
if (progress < animationDuration) {
|
|
33
|
+
window.requestAnimationFrame(step);
|
|
34
|
+
} else {
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
callback();
|
|
37
|
+
}, animationDuration);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
window.requestAnimationFrame(step);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
runNotificationLeaveAnimation
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { createApp } from 'vue';
|
|
2
|
+
import { NotificationOptions, NotificationType } from './types';
|
|
3
|
+
import NotificationContainer from './components/notificationContainer.vue';
|
|
4
|
+
|
|
5
|
+
const container = document.createElement('div');
|
|
6
|
+
document.body.appendChild(container);
|
|
7
|
+
|
|
8
|
+
const notificationApp = createApp(NotificationContainer);
|
|
9
|
+
const notificationInstance = notificationApp.mount(container) as unknown as {
|
|
10
|
+
addNotification: (options: NotificationOptions) => void;
|
|
11
|
+
removeNotification: (id: number | string) => void;
|
|
12
|
+
removeAll: () => void;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const getDefaultTypeIcon = (type: NotificationType) => {
|
|
16
|
+
switch (type) {
|
|
17
|
+
case 'success':
|
|
18
|
+
return 'tick-circle-bold';
|
|
19
|
+
case 'warning':
|
|
20
|
+
return 'warning-2-bold'
|
|
21
|
+
case 'error':
|
|
22
|
+
return 'info-circle-bold'
|
|
23
|
+
case 'info':
|
|
24
|
+
return 'info-circle-2-bold'
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const mergeOptionsWithDefaults = (options: NotificationOptions): NotificationOptions => ({
|
|
30
|
+
id: Date.now(),
|
|
31
|
+
duration: 3000,
|
|
32
|
+
closable: true,
|
|
33
|
+
variant: 'stroke',
|
|
34
|
+
placement: 'topRight',
|
|
35
|
+
size: 'small',
|
|
36
|
+
icon: getDefaultTypeIcon(options.type),
|
|
37
|
+
...options,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const addNotification = (options: NotificationOptions) =>
|
|
41
|
+
notificationInstance.addNotification({
|
|
42
|
+
...mergeOptionsWithDefaults(options),
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const createNotificationFn = (type: NotificationType) => (options: NotificationOptions) => addNotification({ ...options, type });
|
|
46
|
+
|
|
47
|
+
export const dark = createNotificationFn('dark');
|
|
48
|
+
export const success = createNotificationFn('success');
|
|
49
|
+
export const error = createNotificationFn('error');
|
|
50
|
+
export const info = createNotificationFn('info');
|
|
51
|
+
export const warning = createNotificationFn('warning');
|
|
52
|
+
export const remove = (id: number | string) => notificationInstance.removeNotification(id);
|
|
53
|
+
export const removeAll = () => notificationInstance.removeAll();
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
+
import { NotificationOptions, NotificationPlacement, NotificationType } from './types';
|
|
3
|
+
import { MaNotification } from '@/index';
|
|
4
|
+
import { waitFor } from '@testing-library/vue';
|
|
5
|
+
import { nextTick } from 'vue';
|
|
6
|
+
import kebabCase from 'lodash/kebabCase';
|
|
7
|
+
|
|
8
|
+
describe('Notification API', () => {
|
|
9
|
+
|
|
10
|
+
const placements: NotificationPlacement[] = [
|
|
11
|
+
'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'top', 'bottom',
|
|
12
|
+
];
|
|
13
|
+
|
|
14
|
+
const getRandomPlacement = (): NotificationPlacement => {
|
|
15
|
+
return placements[Math.floor(Math.random() * placements.length)];
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Adds a notification, verifies its existence in the DOM, then removes it and verifies its removal.
|
|
20
|
+
* @param type The type of the notification to be added.
|
|
21
|
+
* @param options The options for the notification.
|
|
22
|
+
*/
|
|
23
|
+
const checkAddAndRemoveNotification = async (type: NotificationType, options: NotificationOptions) => {
|
|
24
|
+
// Ensure no notifications exist initially
|
|
25
|
+
let notificationElements = document.querySelectorAll('.ma-notification');
|
|
26
|
+
expect(notificationElements.length).toBe(0);
|
|
27
|
+
|
|
28
|
+
// Add a new notification
|
|
29
|
+
const notificationId = MaNotification[type](options) as unknown as string | number;
|
|
30
|
+
|
|
31
|
+
// Wait for the notification to be added to the DOM
|
|
32
|
+
await waitFor(() => {
|
|
33
|
+
const newNotificationElements = document.querySelectorAll('.ma-notification');
|
|
34
|
+
expect(newNotificationElements.length).toBe(1);
|
|
35
|
+
|
|
36
|
+
const notificationElement = newNotificationElements[0];
|
|
37
|
+
expect(notificationElement.classList).toContain(`ma-notification--${type}`);
|
|
38
|
+
expect(notificationElement.querySelector('.ma-notification-title')?.textContent).toBe(options.title);
|
|
39
|
+
expect(notificationElement.parentElement?.classList).toContain(`ma-notification--${kebabCase(options.placement)}`);
|
|
40
|
+
}, { timeout: 1000 });
|
|
41
|
+
|
|
42
|
+
// Remove the notification
|
|
43
|
+
MaNotification.remove(notificationId);
|
|
44
|
+
|
|
45
|
+
// Wait for the notification to be removed from the DOM
|
|
46
|
+
await waitFor(() => {
|
|
47
|
+
notificationElements = document.querySelectorAll('.ma-notification');
|
|
48
|
+
expect(notificationElements.length).toBe(0);
|
|
49
|
+
});
|
|
50
|
+
await nextTick();
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// Test cases for adding and removing different types of notifications
|
|
54
|
+
it('should add & remove dark notification', async () => {
|
|
55
|
+
await checkAddAndRemoveNotification('dark', { title: 'Dark notification', placement: getRandomPlacement() });
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('should add & remove success notification', async () => {
|
|
59
|
+
await checkAddAndRemoveNotification('success', { title: 'Success notification', placement: getRandomPlacement() });
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('should add & remove error notification', async () => {
|
|
63
|
+
await checkAddAndRemoveNotification('error', { title: 'Error notification', placement: getRandomPlacement() });
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should add & remove info notification', async () => {
|
|
67
|
+
await checkAddAndRemoveNotification('info', { title: 'Info notification', placement: getRandomPlacement() });
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('should add & remove warning notification', async () => {
|
|
71
|
+
await checkAddAndRemoveNotification('warning', { title: 'Warning notification', placement: getRandomPlacement() });
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Test case for automatic removal of notification after a duration
|
|
75
|
+
it('should remove the notification after the duration', async () => {
|
|
76
|
+
MaNotification.error({
|
|
77
|
+
title: 'should remove the notification after the duration',
|
|
78
|
+
duration: 500,
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Ensure Vue updates the DOM
|
|
82
|
+
await nextTick();
|
|
83
|
+
|
|
84
|
+
// Verify the notification is added to the DOM
|
|
85
|
+
let notificationElements = document.querySelectorAll('.ma-notification');
|
|
86
|
+
expect(notificationElements.length).toBe(1);
|
|
87
|
+
|
|
88
|
+
// Wait for the notification to be removed from the DOM
|
|
89
|
+
await waitFor(() => {
|
|
90
|
+
notificationElements = document.querySelectorAll('.ma-notification');
|
|
91
|
+
expect(notificationElements.length).toBe(0);
|
|
92
|
+
}, {
|
|
93
|
+
timeout: 1000, // include transition delay
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// Test case for notification buttons
|
|
98
|
+
it('should call the button callback when clicked', async () => {
|
|
99
|
+
const buttonCallback = vi.fn();
|
|
100
|
+
MaNotification.info({
|
|
101
|
+
title: 'Notification with button',
|
|
102
|
+
buttons: [
|
|
103
|
+
{ label: 'Click me', onClick: buttonCallback },
|
|
104
|
+
],
|
|
105
|
+
});
|
|
106
|
+
await nextTick();
|
|
107
|
+
|
|
108
|
+
const notificationElements = document.querySelectorAll('.ma-notification');
|
|
109
|
+
expect(notificationElements.length).toBe(1);
|
|
110
|
+
|
|
111
|
+
const button = document.querySelector('.ma-notification button');
|
|
112
|
+
if (button) {
|
|
113
|
+
button.dispatchEvent(new MouseEvent('click', { bubbles: true }));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Verify the callback was called
|
|
117
|
+
expect(buttonCallback).toHaveBeenCalled();
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
});
|