@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,386 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
ComputedRef,
|
|
4
|
+
Ref,
|
|
5
|
+
WritableComputedRef,
|
|
6
|
+
computed,
|
|
7
|
+
onMounted,
|
|
8
|
+
onUnmounted,
|
|
9
|
+
ref,
|
|
10
|
+
} from 'vue';
|
|
11
|
+
import {
|
|
12
|
+
MaUploadType,
|
|
13
|
+
MaUploadSize,
|
|
14
|
+
MaUploadSizes,
|
|
15
|
+
MAUploadFile,
|
|
16
|
+
MaUploadFileStatus,
|
|
17
|
+
} from './types';
|
|
18
|
+
import { ButtonSizes, ButtonSize } from '../button/types';
|
|
19
|
+
import {
|
|
20
|
+
useUploadFile,
|
|
21
|
+
generateFileID,
|
|
22
|
+
validateFile,
|
|
23
|
+
} from './composables/file';
|
|
24
|
+
import MaButton from '../button/index.vue';
|
|
25
|
+
import MaIcon from '../icon/index.vue';
|
|
26
|
+
import MaSpin from '../spin/index.vue';
|
|
27
|
+
import SingleFile from './singleFile.vue';
|
|
28
|
+
|
|
29
|
+
export interface MaUploadProps {
|
|
30
|
+
fileList: MAUploadFile[];
|
|
31
|
+
type?: MaUploadType;
|
|
32
|
+
size?: MaUploadSize;
|
|
33
|
+
accept?: string;
|
|
34
|
+
action?: string;
|
|
35
|
+
beforeUpload?: (file: File) => Promise<File>;
|
|
36
|
+
data?: Object;
|
|
37
|
+
disabled?: boolean;
|
|
38
|
+
headers?: Record<string, string>;
|
|
39
|
+
maxCount?: number;
|
|
40
|
+
maxFileSize?: number; // in bytes
|
|
41
|
+
multiple?: boolean;
|
|
42
|
+
name?: string;
|
|
43
|
+
ordered?: boolean;
|
|
44
|
+
showFileList?: boolean;
|
|
45
|
+
title?: string;
|
|
46
|
+
description?: string;
|
|
47
|
+
wait?: boolean;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const props = withDefaults(defineProps<MaUploadProps>(), {
|
|
51
|
+
type: 'box',
|
|
52
|
+
headers: () => ({}),
|
|
53
|
+
multiple: false,
|
|
54
|
+
name: 'file',
|
|
55
|
+
ordered: false,
|
|
56
|
+
showFileList: true,
|
|
57
|
+
size: 'md',
|
|
58
|
+
wait: false,
|
|
59
|
+
disabled: false,
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
const emit = defineEmits(['update:fileList', 'change', 'remove', 'error']);
|
|
63
|
+
|
|
64
|
+
const uploadArea: Ref<HTMLDivElement | null> = ref(null);
|
|
65
|
+
const fileInput: Ref<HTMLInputElement | null> = ref(null);
|
|
66
|
+
const areaHighlight: Ref<boolean> = ref(false);
|
|
67
|
+
|
|
68
|
+
const dragEvents = ['dragenter', 'dragover', 'dragleave', 'drop'];
|
|
69
|
+
const dragEnterEvents = ['dragenter', 'dragover'];
|
|
70
|
+
const dragLeaveEvents = ['dragleave', 'drop'];
|
|
71
|
+
|
|
72
|
+
const files: WritableComputedRef<MAUploadFile[]> = computed({
|
|
73
|
+
get() {
|
|
74
|
+
return props.fileList;
|
|
75
|
+
},
|
|
76
|
+
set(data) {
|
|
77
|
+
emit('update:fileList', data);
|
|
78
|
+
emit('change', data);
|
|
79
|
+
if (props?.action) {
|
|
80
|
+
data.forEach(async (maFile, fileIndex) => {
|
|
81
|
+
if (
|
|
82
|
+
[MaUploadFileStatus.done, MaUploadFileStatus.error].includes(
|
|
83
|
+
maFile.status
|
|
84
|
+
)
|
|
85
|
+
) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const { upload } = useUploadFile(
|
|
89
|
+
props?.action || '', // || added for tsc warning
|
|
90
|
+
props.headers,
|
|
91
|
+
props.data,
|
|
92
|
+
props.name
|
|
93
|
+
);
|
|
94
|
+
if (props?.beforeUpload) {
|
|
95
|
+
maFile.file = await props.beforeUpload(maFile.file);
|
|
96
|
+
}
|
|
97
|
+
upload(maFile, (status, progress, response) => {
|
|
98
|
+
if (files.value[fileIndex]) {
|
|
99
|
+
if (status === MaUploadFileStatus.error) {
|
|
100
|
+
emit('error', { file: maFile.file, message: response });
|
|
101
|
+
removeFile(
|
|
102
|
+
files.value.findIndex((file) => file.id === maFile.id)
|
|
103
|
+
);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
files.value[fileIndex].progress = progress;
|
|
107
|
+
files.value[fileIndex].status = status;
|
|
108
|
+
files.value[fileIndex].response = response || null;
|
|
109
|
+
emit('change', files.value[fileIndex]);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
const fileNames = computed(() =>
|
|
118
|
+
files.value.map((maFile) => maFile.file.name).join(', ')
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
const uploadAreaStatus: ComputedRef<boolean> = computed(() =>
|
|
122
|
+
props.type === 'box' ? (!props.multiple ? !files.value.length : true) : true
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
const fileListStatus: ComputedRef<boolean> = computed(() =>
|
|
126
|
+
props.ordered && waitStatus.value
|
|
127
|
+
? false
|
|
128
|
+
: files.value.length
|
|
129
|
+
? props.showFileList
|
|
130
|
+
: false
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
const areaClassNames = computed(() => [
|
|
134
|
+
`ma-upload ma-upload--${props.type} ma-upload--${props.type}--${props.size}`,
|
|
135
|
+
{
|
|
136
|
+
'ma-upload--active': areaHighlight.value,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
'ma-upload--disabled': disabledStatus.value,
|
|
140
|
+
},
|
|
141
|
+
]);
|
|
142
|
+
|
|
143
|
+
const fileListClassNames = computed(() => [
|
|
144
|
+
`ma-file-list`,
|
|
145
|
+
{
|
|
146
|
+
'only-file-list': !uploadAreaStatus.value,
|
|
147
|
+
},
|
|
148
|
+
]);
|
|
149
|
+
|
|
150
|
+
const buttonSize: ComputedRef<ButtonSize> = computed(() => {
|
|
151
|
+
const sizeIndex = props?.size ? MaUploadSizes.indexOf(props.size) : 0;
|
|
152
|
+
return ButtonSizes[sizeIndex];
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
const waitStatus = computed(
|
|
156
|
+
() =>
|
|
157
|
+
props.wait ||
|
|
158
|
+
files.value.some((file) => file.status === MaUploadFileStatus.uploading)
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
const disabledStatus = computed(() => props?.disabled || waitStatus.value);
|
|
162
|
+
|
|
163
|
+
const checkMaxFileSize = (files: File[]): undefined | File => {
|
|
164
|
+
return Array.from(files).find(
|
|
165
|
+
(file) => props?.maxFileSize && file.size > props.maxFileSize
|
|
166
|
+
);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const handleChange = (event: Event) => {
|
|
170
|
+
const target = event.target as HTMLInputElement;
|
|
171
|
+
if (target.files) {
|
|
172
|
+
setFiles(Array.from(target.files));
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
const browseFiles = () => {
|
|
177
|
+
fileInput.value?.click();
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
const preventDragEvent = (e: Event) => {
|
|
181
|
+
e.preventDefault();
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
const highlightArea = () => {
|
|
185
|
+
areaHighlight.value = true;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const unHighlightArea = () => {
|
|
189
|
+
areaHighlight.value = false;
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
const onDrop = (e: DragEvent) => {
|
|
193
|
+
if (disabledStatus.value) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (e.dataTransfer?.files) {
|
|
197
|
+
setFiles(
|
|
198
|
+
Array.from(e.dataTransfer.files).filter((file) => {
|
|
199
|
+
if (props?.accept && !validateFile(file, props.accept)) {
|
|
200
|
+
emit('error', { file: file, message: 'file type does not match!' });
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
return true;
|
|
204
|
+
})
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
const setFiles = (data: File[]) => {
|
|
210
|
+
const errorFile = checkMaxFileSize(data);
|
|
211
|
+
if (errorFile) {
|
|
212
|
+
emit('error', { file: errorFile, message: 'File too large' });
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const mappedFiles: MAUploadFile[] = Array.from(data)
|
|
216
|
+
.filter((_, index) =>
|
|
217
|
+
props?.maxCount ? index + 1 <= props.maxCount : true
|
|
218
|
+
)
|
|
219
|
+
.map((file) => ({
|
|
220
|
+
file,
|
|
221
|
+
id: generateFileID(),
|
|
222
|
+
status: props?.action
|
|
223
|
+
? MaUploadFileStatus.uploading
|
|
224
|
+
: MaUploadFileStatus.done,
|
|
225
|
+
progress: props?.action ? 0 : 100,
|
|
226
|
+
response: null,
|
|
227
|
+
}));
|
|
228
|
+
if (props.multiple) {
|
|
229
|
+
files.value = [...files.value, ...mappedFiles];
|
|
230
|
+
} else if (mappedFiles.length) {
|
|
231
|
+
files.value = [mappedFiles[0]];
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
const removeFile = (fileIndex: number) => {
|
|
236
|
+
emit('remove', files.value[fileIndex]);
|
|
237
|
+
files.value = files.value.filter((_, i) => i !== fileIndex);
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
const cancelFile = (fileIndex: number) => {
|
|
241
|
+
const file: MAUploadFile = files.value[fileIndex];
|
|
242
|
+
if (typeof file?.cancelRequest === 'function') {
|
|
243
|
+
file.cancelRequest();
|
|
244
|
+
}
|
|
245
|
+
removeFile(fileIndex);
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
const cancelAllUploads = (event: Event) => {
|
|
249
|
+
event.stopPropagation();
|
|
250
|
+
files.value.forEach((_, fileIndex) => cancelFile(fileIndex));
|
|
251
|
+
files.value = [];
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
onMounted(() => {
|
|
255
|
+
dragEvents.forEach((eventName) => {
|
|
256
|
+
uploadArea.value?.addEventListener(eventName, preventDragEvent);
|
|
257
|
+
});
|
|
258
|
+
dragEnterEvents.forEach((eventName) => {
|
|
259
|
+
uploadArea.value?.addEventListener(eventName, highlightArea);
|
|
260
|
+
});
|
|
261
|
+
dragLeaveEvents.forEach((eventName) => {
|
|
262
|
+
uploadArea.value?.addEventListener(eventName, unHighlightArea);
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
onUnmounted(() => {
|
|
267
|
+
dragEvents.forEach((eventName) => {
|
|
268
|
+
uploadArea.value?.removeEventListener(eventName, preventDragEvent);
|
|
269
|
+
});
|
|
270
|
+
dragEnterEvents.forEach((eventName) => {
|
|
271
|
+
uploadArea.value?.removeEventListener(eventName, highlightArea);
|
|
272
|
+
});
|
|
273
|
+
dragLeaveEvents.forEach((eventName) => {
|
|
274
|
+
uploadArea.value?.removeEventListener(eventName, unHighlightArea);
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
</script>
|
|
278
|
+
<template>
|
|
279
|
+
<div
|
|
280
|
+
class="ma-upload-wrapper"
|
|
281
|
+
v-bind="$attrs"
|
|
282
|
+
>
|
|
283
|
+
<div
|
|
284
|
+
v-show="uploadAreaStatus"
|
|
285
|
+
ref="uploadArea"
|
|
286
|
+
:class="areaClassNames"
|
|
287
|
+
@drop.prevent="onDrop($event as unknown as DragEvent)"
|
|
288
|
+
>
|
|
289
|
+
<input
|
|
290
|
+
:key="files.length"
|
|
291
|
+
ref="fileInput"
|
|
292
|
+
type="file"
|
|
293
|
+
:accept="accept"
|
|
294
|
+
:multiple="props.multiple"
|
|
295
|
+
:disabled="disabledStatus"
|
|
296
|
+
@change="handleChange"
|
|
297
|
+
>
|
|
298
|
+
<ma-button
|
|
299
|
+
v-if="props.type === 'button'"
|
|
300
|
+
:variant="fileList.length ? 'filled' : 'stroke'"
|
|
301
|
+
left-icon="export-2"
|
|
302
|
+
:size="buttonSize"
|
|
303
|
+
:disabled="disabledStatus"
|
|
304
|
+
:loading="waitStatus"
|
|
305
|
+
@click="browseFiles"
|
|
306
|
+
>
|
|
307
|
+
{{ fileList.length ? fileNames : props?.title }}
|
|
308
|
+
</ma-button>
|
|
309
|
+
<div
|
|
310
|
+
v-else-if="props.type === 'small-box'"
|
|
311
|
+
class="ma-upload__small_box"
|
|
312
|
+
@click="browseFiles"
|
|
313
|
+
>
|
|
314
|
+
<ma-spin
|
|
315
|
+
v-if="waitStatus"
|
|
316
|
+
type="three-circles"
|
|
317
|
+
color="blue"
|
|
318
|
+
/>
|
|
319
|
+
<ma-icon
|
|
320
|
+
v-else
|
|
321
|
+
name="export-2-bulk"
|
|
322
|
+
/>
|
|
323
|
+
<span class="text">
|
|
324
|
+
<template v-if="waitStatus"> Uploading... </template>
|
|
325
|
+
<template v-else>
|
|
326
|
+
{{ props?.title }}
|
|
327
|
+
<slot name="small-box-title" />
|
|
328
|
+
</template>
|
|
329
|
+
</span>
|
|
330
|
+
</div>
|
|
331
|
+
<div
|
|
332
|
+
v-else
|
|
333
|
+
class="ma-upload__box"
|
|
334
|
+
@click="browseFiles"
|
|
335
|
+
>
|
|
336
|
+
<template v-if="props.ordered && waitStatus">
|
|
337
|
+
<ma-spin
|
|
338
|
+
type="three-circles"
|
|
339
|
+
color="blue"
|
|
340
|
+
/>
|
|
341
|
+
<span>Uploading file...</span>
|
|
342
|
+
<ma-button
|
|
343
|
+
class="box-cancel"
|
|
344
|
+
variant="stroke"
|
|
345
|
+
@click="cancelAllUploads"
|
|
346
|
+
>
|
|
347
|
+
Cancel
|
|
348
|
+
</ma-button>
|
|
349
|
+
</template>
|
|
350
|
+
<template v-else>
|
|
351
|
+
<div class="upload-icon">
|
|
352
|
+
<ma-icon name="upload-bulk" />
|
|
353
|
+
</div>
|
|
354
|
+
<span
|
|
355
|
+
v-if="props?.title"
|
|
356
|
+
class="upload-title"
|
|
357
|
+
>
|
|
358
|
+
{{ props?.title }}
|
|
359
|
+
<slot name="box-title" />
|
|
360
|
+
</span>
|
|
361
|
+
<span
|
|
362
|
+
v-if="props?.description"
|
|
363
|
+
class="upload-description"
|
|
364
|
+
>
|
|
365
|
+
{{ props?.description }}
|
|
366
|
+
<slot name="box-description" />
|
|
367
|
+
</span>
|
|
368
|
+
</template>
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
<div
|
|
372
|
+
v-if="fileListStatus"
|
|
373
|
+
:class="fileListClassNames"
|
|
374
|
+
>
|
|
375
|
+
<single-file
|
|
376
|
+
v-for="(file, fileIndex) in files"
|
|
377
|
+
:key="fileIndex"
|
|
378
|
+
:file="file"
|
|
379
|
+
:disabled="props.disabled"
|
|
380
|
+
@remove="removeFile(fileIndex)"
|
|
381
|
+
@cancel="cancelFile(fileIndex)"
|
|
382
|
+
/>
|
|
383
|
+
</div>
|
|
384
|
+
</div>
|
|
385
|
+
</template>
|
|
386
|
+
<style lang="scss" src="./assets/styles.scss"></style>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from 'vue';
|
|
3
|
+
import MaIcon from '../icon/index.vue';
|
|
4
|
+
import MaButton from '../button/index.vue';
|
|
5
|
+
import { MAUploadFile, MaUploadFileStatus } from './types';
|
|
6
|
+
|
|
7
|
+
export interface SingleFileProps {
|
|
8
|
+
file: MAUploadFile;
|
|
9
|
+
action?: string;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
}
|
|
12
|
+
const props = withDefaults(defineProps<SingleFileProps>(), {});
|
|
13
|
+
|
|
14
|
+
const emits = defineEmits(['remove', 'cancel']);
|
|
15
|
+
|
|
16
|
+
const fileSizeMB = computed(
|
|
17
|
+
() => `${(props.file.file.size / (1024 * 1024)).toFixed(1)} MB`
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const fileSizeDisplayStatus = computed(() => typeof props.file.file.size === 'number');
|
|
21
|
+
|
|
22
|
+
const remove = () => emits('remove');
|
|
23
|
+
const cancel = () => emits('cancel');
|
|
24
|
+
</script>
|
|
25
|
+
<template>
|
|
26
|
+
<div class="single-file">
|
|
27
|
+
<div class="icon-wrapper">
|
|
28
|
+
<ma-icon name="document-bulk" />
|
|
29
|
+
</div>
|
|
30
|
+
<div class="single-file__detail">
|
|
31
|
+
<span class="file-name">{{ file.file.name }}</span>
|
|
32
|
+
<span
|
|
33
|
+
v-if="fileSizeDisplayStatus"
|
|
34
|
+
class="file-size"
|
|
35
|
+
>{{ fileSizeMB }}</span>
|
|
36
|
+
<span class="file-progress">
|
|
37
|
+
<span
|
|
38
|
+
class="progress-item"
|
|
39
|
+
:style="{ width: `${file.progress}%` }"
|
|
40
|
+
/>
|
|
41
|
+
</span>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="single-file__actions">
|
|
44
|
+
<ma-button
|
|
45
|
+
v-if="file.status === MaUploadFileStatus.uploading"
|
|
46
|
+
:disabled="disabled"
|
|
47
|
+
variant="ghost"
|
|
48
|
+
icon="close-circle-bulk"
|
|
49
|
+
@click="cancel()"
|
|
50
|
+
/>
|
|
51
|
+
<ma-button
|
|
52
|
+
v-else
|
|
53
|
+
:disabled="disabled"
|
|
54
|
+
size="small"
|
|
55
|
+
variant="ghost"
|
|
56
|
+
icon="trash-bulk"
|
|
57
|
+
@click="remove()"
|
|
58
|
+
/>
|
|
59
|
+
<span>%{{ parseInt(file.progress.toString()) }}</span>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import {
|
|
3
|
+
baseConfig,
|
|
4
|
+
Template,
|
|
5
|
+
BeforeUploadTemplate,
|
|
6
|
+
ExistingFilesTemplate,
|
|
7
|
+
} from './constants';
|
|
8
|
+
|
|
9
|
+
import type MaUpload from '../index.vue';
|
|
10
|
+
|
|
11
|
+
const meta: Meta<typeof MaUpload> = {
|
|
12
|
+
title: 'Core/MaUpload/Box',
|
|
13
|
+
...baseConfig,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default meta;
|
|
17
|
+
|
|
18
|
+
type Story = StoryObj<typeof MaUpload>;
|
|
19
|
+
|
|
20
|
+
export const Default: Story = Template.bind({});
|
|
21
|
+
Default.args = {
|
|
22
|
+
type: 'box',
|
|
23
|
+
title: 'Click or drag file to this area to upload',
|
|
24
|
+
description: 'SVG, PNG, PDF, CSV and max 10 MB',
|
|
25
|
+
multiple: true,
|
|
26
|
+
action: 'https://api.escuelajs.co/api/v1/files/upload',
|
|
27
|
+
showFileList: true,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const WithoutAction: Story = Template.bind({});
|
|
31
|
+
WithoutAction.args = {
|
|
32
|
+
type: 'box',
|
|
33
|
+
title: 'Click or drag file to this area to upload',
|
|
34
|
+
description: 'SVG, PNG, PDF, CSV and max 10 MB',
|
|
35
|
+
multiple: true,
|
|
36
|
+
showFileList: true,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const BeforeUpload: Story = BeforeUploadTemplate.bind({});
|
|
40
|
+
BeforeUpload.args = {
|
|
41
|
+
type: 'box',
|
|
42
|
+
title: 'Click or drag file to this area to upload',
|
|
43
|
+
description: 'SVG, PNG, PDF, CSV and max 10 MB',
|
|
44
|
+
multiple: true,
|
|
45
|
+
showFileList: true,
|
|
46
|
+
action: 'https://api.escuelajs.co/api/v1/files/upload',
|
|
47
|
+
accept: 'image/*',
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const Ordered: Story = Template.bind({});
|
|
51
|
+
Ordered.args = {
|
|
52
|
+
type: 'box',
|
|
53
|
+
title: 'Click or drag file to this area to upload',
|
|
54
|
+
description: 'SVG, PNG, PDF, CSV and max 10 MB',
|
|
55
|
+
ordered: true,
|
|
56
|
+
multiple: true,
|
|
57
|
+
action: 'https://api.escuelajs.co/api/v1/files/upload',
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export const Single: Story = Template.bind({});
|
|
61
|
+
Single.args = {
|
|
62
|
+
type: 'box',
|
|
63
|
+
title: 'Click or drag file to this area to upload',
|
|
64
|
+
description: 'SVG, PNG, PDF, CSV and max 10 MB',
|
|
65
|
+
multiple: false,
|
|
66
|
+
action: 'https://api.escuelajs.co/api/v1/files/upload',
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export const ExistingFiles: Story = ExistingFilesTemplate.bind({});
|
|
70
|
+
ExistingFiles.args = {
|
|
71
|
+
type: 'box',
|
|
72
|
+
title: 'Click or drag file to this area to upload',
|
|
73
|
+
description: 'SVG, PNG, PDF, CSV and max 10 MB',
|
|
74
|
+
multiple: true,
|
|
75
|
+
action: 'https://api.escuelajs.co/api/v1/files/upload',
|
|
76
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { baseConfig, Template } from './constants';
|
|
3
|
+
|
|
4
|
+
import type MaUpload from '../index.vue';
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof MaUpload> = {
|
|
7
|
+
title: 'Core/MaUpload/Button',
|
|
8
|
+
...baseConfig,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default meta;
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof MaUpload>;
|
|
14
|
+
|
|
15
|
+
export const Default: Story = Template.bind({});
|
|
16
|
+
Default.args = {
|
|
17
|
+
type: 'button',
|
|
18
|
+
title: 'Click to upload',
|
|
19
|
+
action: 'https://api.escuelajs.co/api/v1/files/upload',
|
|
20
|
+
};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import type { Meta, StoryFn } from '@storybook/vue3';
|
|
2
|
+
import { MaUploadSizes, MaUploadTypes } from "../types";
|
|
3
|
+
|
|
4
|
+
import MaUpload from '../index.vue';
|
|
5
|
+
import { ref } from 'vue';
|
|
6
|
+
|
|
7
|
+
export const baseConfig: Meta<typeof MaUpload> = {
|
|
8
|
+
component: MaUpload,
|
|
9
|
+
parameters: {
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: `<p>Figma Designs <a href="https://www.figma.com/file/LsEcZ7CR3mf1vzBpCRgN7m/Design-Foundation_VD?type=design&node-id=634-79137&mode=dev" target="_blank">here!</a></p><p>
|
|
13
|
+
Upload file by selecting or dragging.</p><p>
|
|
14
|
+
You can use this component both in your file uploading operations and in a manual file upload process like a normal file input.
|
|
15
|
+
</p><p>
|
|
16
|
+
</p><pre style="color: #667085; font-size: 12px;">
|
|
17
|
+
MaFileList: [
|
|
18
|
+
{
|
|
19
|
+
id: 'id', // a unique identifier, auto assigned from lib
|
|
20
|
+
file: File
|
|
21
|
+
status: 'done', // options:uploading, done, error
|
|
22
|
+
progress: 100 // uploading progress
|
|
23
|
+
response: {} // type: any, response from the endpoint
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
</pre>`,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
argTypes: {
|
|
31
|
+
fileList: {
|
|
32
|
+
description: 'v-model:fileList <br> List of files that have been uploaded. '
|
|
33
|
+
},
|
|
34
|
+
type: {
|
|
35
|
+
control: { type: 'select' },
|
|
36
|
+
options: MaUploadTypes,
|
|
37
|
+
},
|
|
38
|
+
size: {
|
|
39
|
+
control: { type: 'select' },
|
|
40
|
+
options: MaUploadSizes,
|
|
41
|
+
},
|
|
42
|
+
data: {
|
|
43
|
+
description: 'Uploading params or function which can return uploading params.'
|
|
44
|
+
},
|
|
45
|
+
accept: {
|
|
46
|
+
description: 'File types that can be accepted. See <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept" target="_blank">input accept attribute</a>'
|
|
47
|
+
},
|
|
48
|
+
beforeUpload: {
|
|
49
|
+
description: 'Hook function which will be executed before uploading. Uploading will be stopped with false or a rejected Promise returned.'
|
|
50
|
+
},
|
|
51
|
+
maxCount: {
|
|
52
|
+
description: 'Limit the number of uploaded files.'
|
|
53
|
+
},
|
|
54
|
+
headers: {
|
|
55
|
+
description: 'Set request headers'
|
|
56
|
+
},
|
|
57
|
+
action: {
|
|
58
|
+
description: 'Uploading URL. Not required!'
|
|
59
|
+
},
|
|
60
|
+
showFileList: {
|
|
61
|
+
description: 'allows file list display below.'
|
|
62
|
+
},
|
|
63
|
+
maxFileSize: {
|
|
64
|
+
description: 'in byte per file.'
|
|
65
|
+
},
|
|
66
|
+
name: {
|
|
67
|
+
description: 'The name of uploading file'
|
|
68
|
+
},
|
|
69
|
+
ordered: {
|
|
70
|
+
description: 'Ordered variant in box type.'
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const Template: StoryFn = (args: any) => ({
|
|
76
|
+
components: { MaUpload },
|
|
77
|
+
setup() {
|
|
78
|
+
const files = ref([]);
|
|
79
|
+
return { args, files };
|
|
80
|
+
},
|
|
81
|
+
template: `<ma-upload v-model:fileList="files" v-bind="args" />`,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
export const BeforeUploadTemplate: StoryFn = (args: any) => ({
|
|
85
|
+
components: { MaUpload },
|
|
86
|
+
setup() {
|
|
87
|
+
const files = ref([]);
|
|
88
|
+
const beforeUpload = (file: File): Promise<File> => {
|
|
89
|
+
return new Promise(resolve => {
|
|
90
|
+
const reader = new FileReader();
|
|
91
|
+
reader.readAsDataURL(file);
|
|
92
|
+
reader.onload = () => {
|
|
93
|
+
const img: HTMLImageElement = document.createElement('img');
|
|
94
|
+
img.src = reader.result as string;
|
|
95
|
+
img.onload = () => {
|
|
96
|
+
const canvas = document.createElement('canvas');
|
|
97
|
+
canvas.width = img.naturalWidth;
|
|
98
|
+
canvas.height = img.naturalHeight;
|
|
99
|
+
const ctx = canvas.getContext('2d');
|
|
100
|
+
ctx.drawImage(img, 0, 0);
|
|
101
|
+
ctx.fillStyle = 'red';
|
|
102
|
+
ctx.textBaseline = 'middle';
|
|
103
|
+
ctx.font = '33px Arial';
|
|
104
|
+
ctx.fillText('Action-Kit', 20, 20);
|
|
105
|
+
canvas.toBlob(blob => {
|
|
106
|
+
const fileName = file.name;
|
|
107
|
+
const convertedFile = new File([blob], fileName, { type: blob.type });
|
|
108
|
+
resolve(convertedFile);
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return { args, files, beforeUpload };
|
|
115
|
+
},
|
|
116
|
+
template: `<ma-upload :beforeUpload="beforeUpload" v-model:fileList="files" v-bind="args" />
|
|
117
|
+
<hr class="my-12">
|
|
118
|
+
<p>In this example, watermark is applied to images before upload, you can see the response after uploading an image.</p>
|
|
119
|
+
<pre>{{ files }}</pre>
|
|
120
|
+
`,
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
export const ExistingFilesTemplate: StoryFn = (args: any) => ({
|
|
124
|
+
components: { MaUpload },
|
|
125
|
+
setup() {
|
|
126
|
+
const files = ref([
|
|
127
|
+
{
|
|
128
|
+
"file": {
|
|
129
|
+
name: 'Existing File 1.jpg',
|
|
130
|
+
size: 1000000
|
|
131
|
+
},
|
|
132
|
+
"id": "-1",
|
|
133
|
+
"status": "done",
|
|
134
|
+
"progress": 100,
|
|
135
|
+
"response": {
|
|
136
|
+
"originalname": "spin.gif",
|
|
137
|
+
"filename": "c90c.gif",
|
|
138
|
+
"location": "https://api.escuelajs.co/api/v1/files/c90c.gif"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"file": {
|
|
143
|
+
name: 'Existing File 2.pdf',
|
|
144
|
+
size: 500000
|
|
145
|
+
},
|
|
146
|
+
"id": "-2",
|
|
147
|
+
"status": "done",
|
|
148
|
+
"progress": 100,
|
|
149
|
+
"response": {
|
|
150
|
+
"originalname": "spin.gif",
|
|
151
|
+
"filename": "c90c.gif",
|
|
152
|
+
"location": "https://api.escuelajs.co/api/v1/files/c90c.gif"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
]);
|
|
156
|
+
return { args, files };
|
|
157
|
+
},
|
|
158
|
+
template: `<ma-upload v-model:fileList="files" v-bind="args" />`,
|
|
159
|
+
});
|