@indielayer/ui 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/{src/exports/nuxt.js → exports/nuxt.mjs} +1 -1
- package/{lib → exports}/nuxt.plugin.js +1 -1
- package/lib/_virtual/_plugin-vue_export-helper.js +9 -0
- package/lib/common/icons.js +18 -0
- package/lib/common/utils.d.ts +4 -0
- package/lib/common/utils.js +25 -0
- package/lib/components/alert/Alert.theme.d.ts +10 -8
- package/lib/components/alert/Alert.theme.js +41 -0
- package/lib/components/alert/Alert.vue.d.ts +33 -7
- package/lib/components/alert/Alert.vue.js +9 -0
- package/lib/components/alert/Alert.vue2.js +62 -0
- package/lib/components/alert/Alert.vue3.js +8 -0
- package/lib/components/alert/index.d.ts +3 -0
- package/lib/components/avatar/Avatar.theme.d.ts +13 -7
- package/lib/components/avatar/Avatar.theme.js +25 -0
- package/lib/components/avatar/Avatar.vue.d.ts +32 -3
- package/lib/components/avatar/Avatar.vue.js +9 -0
- package/lib/components/avatar/Avatar.vue2.js +76 -0
- package/lib/components/avatar/Avatar.vue3.js +7 -0
- package/lib/components/avatar/index.d.ts +3 -0
- package/lib/components/badge/Badge.theme.d.ts +10 -8
- package/lib/components/badge/Badge.theme.js +12 -0
- package/lib/components/badge/Badge.vue.d.ts +54 -9
- package/lib/components/badge/Badge.vue.js +94 -0
- package/lib/components/badge/Badge.vue2.js +4 -0
- package/lib/components/badge/index.d.ts +3 -0
- package/lib/components/breadcrumbs/Breadcrumbs.theme.d.ts +10 -8
- package/lib/components/breadcrumbs/Breadcrumbs.theme.js +10 -0
- package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +20 -6
- package/lib/components/breadcrumbs/Breadcrumbs.vue.js +79 -0
- package/lib/components/breadcrumbs/Breadcrumbs.vue2.js +4 -0
- package/lib/components/breadcrumbs/index.d.ts +3 -0
- package/lib/components/button/Button.theme.d.ts +12 -9
- package/lib/components/button/Button.theme.js +138 -0
- package/lib/components/button/Button.vue.d.ts +49 -8
- package/lib/components/button/Button.vue.js +9 -0
- package/lib/components/button/Button.vue2.js +115 -0
- package/lib/components/button/Button.vue3.js +8 -0
- package/lib/components/button/ButtonGroup.theme.d.ts +12 -5
- package/lib/components/button/ButtonGroup.theme.js +8 -0
- package/lib/components/button/ButtonGroup.vue.d.ts +44 -6
- package/lib/components/button/ButtonGroup.vue.js +9 -0
- package/lib/components/button/ButtonGroup.vue2.js +54 -0
- package/lib/components/button/ButtonGroup.vue3.js +7 -0
- package/lib/components/button/index.d.ts +6 -0
- package/lib/components/card/Card.theme.d.ts +10 -7
- package/lib/components/card/Card.theme.js +8 -0
- package/lib/components/card/Card.vue.d.ts +17 -1
- package/lib/components/card/Card.vue.js +31 -0
- package/lib/components/card/Card.vue2.js +4 -0
- package/lib/components/card/index.d.ts +3 -0
- package/lib/components/checkbox/Checkbox.theme.d.ts +13 -10
- package/lib/components/checkbox/Checkbox.theme.js +52 -0
- package/lib/components/checkbox/Checkbox.vue.d.ts +46 -7
- package/lib/components/checkbox/Checkbox.vue.js +9 -0
- package/lib/components/checkbox/Checkbox.vue2.js +108 -0
- package/lib/components/checkbox/Checkbox.vue3.js +6 -0
- package/lib/components/checkbox/index.d.ts +3 -0
- package/lib/components/collapse/Collapse.theme.d.ts +10 -9
- package/lib/components/collapse/Collapse.theme.js +10 -0
- package/lib/components/collapse/Collapse.vue.d.ts +32 -2
- package/lib/components/collapse/Collapse.vue.js +132 -0
- package/lib/components/collapse/Collapse.vue2.js +4 -0
- package/lib/components/collapse/index.d.ts +3 -0
- package/lib/components/container/Container.theme.d.ts +10 -6
- package/lib/components/container/Container.theme.js +8 -0
- package/lib/components/container/Container.vue.d.ts +16 -1
- package/lib/components/container/Container.vue.js +30 -0
- package/lib/components/container/Container.vue2.js +4 -0
- package/lib/components/container/index.d.ts +3 -0
- package/lib/components/divider/Divider.theme.d.ts +10 -9
- package/lib/components/divider/Divider.theme.js +10 -0
- package/lib/components/divider/Divider.vue.d.ts +7 -1
- package/lib/components/divider/Divider.vue.js +53 -0
- package/lib/components/divider/Divider.vue2.js +4 -0
- package/lib/components/divider/index.d.ts +3 -0
- package/lib/components/drawer/Drawer.theme.d.ts +10 -7
- package/lib/components/drawer/Drawer.theme.js +9 -0
- package/lib/components/drawer/Drawer.vue.d.ts +50 -14
- package/lib/components/drawer/Drawer.vue.js +171 -0
- package/lib/components/drawer/Drawer.vue2.js +4 -0
- package/lib/components/drawer/index.d.ts +3 -0
- package/lib/components/form/Form.theme.d.ts +10 -6
- package/lib/components/form/Form.theme.js +8 -0
- package/lib/components/form/Form.vue.d.ts +34 -6
- package/lib/components/form/Form.vue.js +79 -0
- package/lib/components/form/Form.vue2.js +4 -0
- package/lib/components/form/index.d.ts +3 -0
- package/lib/components/helpers/InputError.d.ts +2 -2
- package/lib/components/helpers/InputError.js +18 -0
- package/lib/components/icon/Icon.theme.d.ts +10 -7
- package/lib/components/icon/Icon.theme.js +11 -0
- package/lib/components/icon/Icon.vue.d.ts +22 -4
- package/lib/components/icon/Icon.vue.js +74 -0
- package/lib/components/icon/Icon.vue2.js +4 -0
- package/lib/components/icon/index.d.ts +3 -0
- package/lib/components/image/Image.theme.d.ts +10 -6
- package/lib/components/image/Image.theme.js +8 -0
- package/lib/components/image/Image.vue.d.ts +6 -1
- package/lib/components/image/Image.vue.js +32 -0
- package/lib/components/image/Image.vue2.js +4 -0
- package/lib/components/image/index.d.ts +3 -0
- package/lib/components/index.d.ts +35 -45
- package/lib/components/index.js +92 -0
- package/lib/components/input/Input.theme.d.ts +12 -10
- package/lib/components/input/Input.theme.js +21 -0
- package/lib/components/input/Input.vue.d.ts +73 -22
- package/lib/components/input/Input.vue.js +140 -0
- package/lib/components/input/Input.vue2.js +4 -0
- package/lib/components/input/index.d.ts +3 -0
- package/lib/components/link/Link.theme.d.ts +10 -8
- package/lib/components/link/Link.theme.js +25 -0
- package/lib/components/link/Link.vue.d.ts +25 -2
- package/lib/components/link/Link.vue.js +9 -0
- package/lib/components/link/Link.vue2.js +48 -0
- package/lib/components/link/Link.vue3.js +8 -0
- package/lib/components/link/index.d.ts +3 -0
- package/lib/components/menu/Menu.theme.d.ts +10 -6
- package/lib/components/menu/Menu.theme.js +8 -0
- package/lib/components/menu/Menu.vue.d.ts +62 -9
- package/lib/components/menu/Menu.vue.js +133 -0
- package/lib/components/menu/Menu.vue2.js +4 -0
- package/lib/components/menu/MenuItem.theme.d.ts +13 -7
- package/lib/components/menu/MenuItem.theme.js +86 -0
- package/lib/components/menu/MenuItem.vue.d.ts +63 -14
- package/lib/components/menu/MenuItem.vue.js +9 -0
- package/lib/components/menu/MenuItem.vue2.js +143 -0
- package/lib/components/menu/MenuItem.vue3.js +7 -0
- package/lib/components/menu/index.d.ts +6 -0
- package/lib/components/modal/Modal.theme.d.ts +10 -13
- package/lib/components/modal/Modal.theme.js +17 -0
- package/lib/components/modal/Modal.vue.d.ts +24 -2
- package/lib/components/modal/Modal.vue.js +127 -0
- package/lib/components/modal/Modal.vue2.js +4 -0
- package/lib/components/modal/index.d.ts +3 -0
- package/lib/components/notifications/Notifications.theme.d.ts +10 -8
- package/lib/components/notifications/Notifications.theme.js +10 -0
- package/lib/components/notifications/Notifications.vue.d.ts +56 -16
- package/lib/components/notifications/Notifications.vue.js +234 -0
- package/lib/components/notifications/Notifications.vue2.js +4 -0
- package/lib/components/notifications/index.d.ts +3 -0
- package/lib/components/pagination/Pagination.theme.d.ts +10 -9
- package/lib/components/pagination/Pagination.theme.js +13 -0
- package/lib/components/pagination/Pagination.vue.d.ts +28 -5
- package/lib/components/pagination/Pagination.vue.js +131 -0
- package/lib/components/pagination/Pagination.vue2.js +4 -0
- package/lib/components/pagination/PaginationItem.theme.d.ts +10 -7
- package/lib/components/pagination/PaginationItem.theme.js +8 -0
- package/lib/components/pagination/PaginationItem.vue.d.ts +17 -2
- package/lib/components/pagination/PaginationItem.vue.js +48 -0
- package/lib/components/pagination/PaginationItem.vue2.js +4 -0
- package/lib/components/pagination/index.d.ts +6 -0
- package/lib/components/popover/Popover.theme.d.ts +10 -7
- package/lib/components/popover/Popover.theme.js +9 -0
- package/lib/components/popover/Popover.vue.d.ts +48 -10
- package/lib/components/popover/Popover.vue.js +9 -0
- package/lib/components/popover/Popover.vue2.js +106 -0
- package/lib/components/popover/Popover.vue3.js +15 -0
- package/lib/components/popover/PopoverContainer.theme.d.ts +10 -6
- package/lib/components/popover/PopoverContainer.theme.js +8 -0
- package/lib/components/popover/PopoverContainer.vue.d.ts +16 -1
- package/lib/components/popover/PopoverContainer.vue.js +30 -0
- package/lib/components/popover/PopoverContainer.vue2.js +4 -0
- package/lib/components/popover/index.d.ts +6 -0
- package/lib/components/progress/Progress.theme.d.ts +10 -10
- package/lib/components/progress/Progress.theme.js +18 -0
- package/lib/components/progress/Progress.vue.d.ts +21 -2
- package/lib/components/progress/Progress.vue.js +51 -0
- package/lib/components/progress/Progress.vue2.js +4 -0
- package/lib/components/progress/index.d.ts +3 -0
- package/lib/components/radio/Radio.theme.d.ts +13 -11
- package/lib/components/radio/Radio.theme.js +67 -0
- package/lib/components/radio/Radio.vue.d.ts +48 -9
- package/lib/components/radio/Radio.vue.js +9 -0
- package/lib/components/radio/Radio.vue2.js +117 -0
- package/lib/components/radio/Radio.vue3.js +10 -0
- package/lib/components/radio/index.d.ts +3 -0
- package/lib/components/scroll/Scroll.theme.d.ts +10 -6
- package/lib/components/scroll/Scroll.theme.js +8 -0
- package/lib/components/scroll/Scroll.vue.d.ts +20 -2
- package/lib/components/scroll/Scroll.vue.js +9 -0
- package/lib/components/scroll/Scroll.vue2.js +64 -0
- package/lib/components/scroll/Scroll.vue3.js +17 -0
- package/lib/components/scroll/index.d.ts +3 -0
- package/lib/components/select/Select.theme.d.ts +13 -12
- package/lib/components/select/Select.theme.js +23 -0
- package/lib/components/select/Select.vue.d.ts +44 -8
- package/lib/components/select/Select.vue.js +269 -0
- package/lib/components/select/Select.vue2.js +4 -0
- package/lib/components/select/index.d.ts +3 -0
- package/lib/components/skeleton/Skeleton.theme.d.ts +10 -6
- package/lib/components/skeleton/Skeleton.theme.js +8 -0
- package/lib/components/skeleton/Skeleton.vue.d.ts +9 -1
- package/lib/components/skeleton/Skeleton.vue.js +30 -0
- package/lib/components/skeleton/Skeleton.vue2.js +4 -0
- package/lib/components/skeleton/index.d.ts +3 -0
- package/lib/components/slider/Slider.theme.d.ts +10 -10
- package/lib/components/slider/Slider.theme.js +20 -0
- package/lib/components/slider/Slider.vue.d.ts +55 -7
- package/lib/components/slider/Slider.vue.js +148 -0
- package/lib/components/slider/Slider.vue2.js +4 -0
- package/lib/components/slider/index.d.ts +2 -0
- package/lib/components/spacer/Spacer.d.ts +1 -1
- package/lib/components/spacer/Spacer.js +12 -0
- package/lib/components/spacer/index.d.ts +1 -0
- package/lib/components/spinner/Spinner.vue.d.ts +14 -1
- package/lib/components/spinner/Spinner.vue.js +28 -0
- package/lib/components/spinner/Spinner.vue2.js +4 -0
- package/lib/components/spinner/index.d.ts +2 -0
- package/lib/components/tab/Tab.theme.d.ts +12 -9
- package/lib/components/tab/Tab.theme.js +13 -0
- package/lib/components/tab/Tab.vue.d.ts +44 -9
- package/lib/components/tab/Tab.vue.js +129 -0
- package/lib/components/tab/Tab.vue2.js +4 -0
- package/lib/components/tab/TabGroup.theme.d.ts +10 -10
- package/lib/components/tab/TabGroup.theme.js +27 -0
- package/lib/components/tab/TabGroup.vue.d.ts +61 -9
- package/lib/components/tab/TabGroup.vue.js +133 -0
- package/lib/components/tab/TabGroup.vue2.js +4 -0
- package/lib/components/tab/index.d.ts +4 -0
- package/lib/components/table/Table.theme.d.ts +10 -8
- package/lib/components/table/Table.theme.js +12 -0
- package/lib/components/table/Table.vue.d.ts +269 -51
- package/lib/components/table/Table.vue.js +147 -0
- package/lib/components/table/Table.vue2.js +4 -0
- package/lib/components/table/TableBody.d.ts +1 -1
- package/lib/components/table/TableBody.js +15 -0
- package/lib/components/table/TableCell.theme.d.ts +10 -7
- package/lib/components/table/TableCell.theme.js +11 -0
- package/lib/components/table/TableCell.vue.d.ts +35 -6
- package/lib/components/table/TableCell.vue.js +43 -0
- package/lib/components/table/TableCell.vue2.js +4 -0
- package/lib/components/table/TableHead.d.ts +1 -1
- package/lib/components/table/TableHead.js +19 -0
- package/lib/components/table/TableHeader.vue.d.ts +34 -9
- package/lib/components/table/TableHeader.vue.js +78 -0
- package/lib/components/table/TableHeader.vue2.js +4 -0
- package/lib/components/table/TableRow.vue.d.ts +8 -1
- package/lib/components/table/TableRow.vue.js +32 -0
- package/lib/components/table/TableRow.vue2.js +4 -0
- package/lib/components/table/index.d.ts +9 -0
- package/lib/components/tag/Tag.theme.d.ts +10 -9
- package/lib/components/tag/Tag.theme.js +23 -0
- package/lib/components/tag/Tag.vue.d.ts +31 -4
- package/lib/components/tag/Tag.vue.js +61 -0
- package/lib/components/tag/Tag.vue2.js +4 -0
- package/lib/components/tag/index.d.ts +2 -0
- package/lib/components/textarea/Textarea.theme.d.ts +13 -9
- package/lib/components/textarea/Textarea.theme.js +16 -0
- package/lib/components/textarea/Textarea.vue.d.ts +59 -17
- package/lib/components/textarea/Textarea.vue.js +110 -0
- package/lib/components/textarea/Textarea.vue2.js +4 -0
- package/lib/components/textarea/index.d.ts +2 -0
- package/lib/components/toggle/Toggle.theme.d.ts +10 -11
- package/lib/components/toggle/Toggle.theme.js +29 -0
- package/lib/components/toggle/Toggle.vue.d.ts +39 -7
- package/lib/components/toggle/Toggle.vue.js +110 -0
- package/lib/components/toggle/Toggle.vue2.js +4 -0
- package/lib/components/toggle/index.d.ts +2 -0
- package/lib/components/tooltip/Tooltip.vue.d.ts +12 -1
- package/lib/components/tooltip/Tooltip.vue.js +27 -0
- package/lib/components/tooltip/Tooltip.vue2.js +4 -0
- package/lib/components/tooltip/index.d.ts +2 -0
- package/lib/composables/colors-utils.js +19 -0
- package/lib/composables/colors.d.ts +6 -4
- package/lib/composables/colors.js +52 -0
- package/lib/composables/common.d.ts +1 -1
- package/lib/composables/common.js +17 -0
- package/lib/composables/css.d.ts +1 -1
- package/lib/composables/css.js +26 -0
- package/lib/composables/inputtable.d.ts +4 -4
- package/lib/composables/inputtable.js +78 -0
- package/lib/composables/interactive.js +17 -0
- package/lib/composables/keys.d.ts +6 -3
- package/lib/composables/keys.js +10 -0
- package/lib/composables/notifications.d.ts +1 -1
- package/lib/composables/notifications.js +9 -0
- package/lib/composables/theme.d.ts +13 -7
- package/lib/composables/theme.js +59 -0
- package/lib/create.d.ts +1 -1
- package/lib/create.js +19 -0
- package/lib/index.js +121 -0
- package/lib/index.umd.js +1 -0
- package/lib/install.js +10 -0
- package/lib/node_modules/.pnpm/@vueuse_core@10.2.0_vue@3.3.4/node_modules/@vueuse/core/index.js +379 -0
- package/lib/node_modules/.pnpm/@vueuse_shared@10.2.0_vue@3.3.4/node_modules/@vueuse/shared/index.js +90 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +4 -0
- package/package.json +54 -54
- package/src/common/utils.ts +25 -2
- package/src/components/alert/Alert.theme.ts +15 -6
- package/src/components/alert/Alert.vue +26 -13
- package/src/components/alert/index.ts +3 -0
- package/src/components/avatar/Avatar.theme.ts +16 -4
- package/src/components/avatar/Avatar.vue +20 -15
- package/src/components/avatar/index.ts +3 -0
- package/src/components/badge/Badge.theme.ts +13 -3
- package/src/components/badge/Badge.vue +30 -15
- package/src/components/badge/index.ts +3 -0
- package/src/components/breadcrumbs/Breadcrumbs.theme.ts +12 -2
- package/src/components/breadcrumbs/Breadcrumbs.vue +24 -21
- package/src/components/breadcrumbs/index.ts +3 -0
- package/src/components/button/Button.theme.ts +23 -19
- package/src/components/button/Button.vue +30 -19
- package/src/components/button/ButtonGroup.theme.ts +14 -1
- package/src/components/button/ButtonGroup.vue +33 -19
- package/src/components/button/index.ts +7 -0
- package/src/components/card/Card.theme.ts +13 -3
- package/src/components/card/Card.vue +12 -7
- package/src/components/card/index.ts +3 -0
- package/src/components/checkbox/Checkbox.theme.ts +19 -7
- package/src/components/checkbox/Checkbox.vue +21 -12
- package/src/components/checkbox/index.ts +3 -0
- package/src/components/collapse/Collapse.theme.ts +13 -3
- package/src/components/collapse/Collapse.vue +28 -24
- package/src/components/collapse/index.ts +3 -0
- package/src/components/container/Container.theme.ts +12 -2
- package/src/components/container/Container.vue +11 -6
- package/src/components/container/index.ts +3 -0
- package/src/components/divider/Divider.theme.ts +13 -3
- package/src/components/divider/Divider.vue +9 -4
- package/src/components/divider/index.ts +3 -0
- package/src/components/drawer/Drawer.theme.ts +12 -2
- package/src/components/drawer/Drawer.vue +50 -41
- package/src/components/drawer/index.ts +3 -0
- package/src/components/form/Form.theme.ts +12 -2
- package/src/components/form/Form.vue +40 -31
- package/src/components/form/index.ts +3 -0
- package/src/components/helpers/InputError.tsx +2 -2
- package/src/components/icon/Icon.theme.ts +13 -3
- package/src/components/icon/Icon.vue +24 -15
- package/src/components/icon/__tests__/Icon.spec.ts +5 -1
- package/src/components/icon/index.ts +3 -0
- package/src/components/image/Image.theme.ts +12 -2
- package/src/components/image/Image.vue +8 -4
- package/src/components/image/index.ts +3 -0
- package/src/components/index.ts +35 -45
- package/src/components/input/Input.theme.ts +17 -6
- package/src/components/input/Input.vue +33 -22
- package/src/components/input/index.ts +3 -0
- package/src/components/link/Link.theme.ts +13 -3
- package/src/components/link/Link.vue +20 -12
- package/src/components/link/index.ts +3 -0
- package/src/components/menu/Menu.theme.ts +12 -2
- package/src/components/menu/Menu.vue +59 -23
- package/src/components/menu/MenuItem.theme.ts +17 -5
- package/src/components/menu/MenuItem.vue +65 -52
- package/src/components/menu/index.ts +7 -0
- package/src/components/modal/Modal.theme.ts +13 -3
- package/src/components/modal/Modal.vue +23 -12
- package/src/components/modal/index.ts +3 -0
- package/src/components/notifications/Notifications.theme.ts +12 -2
- package/src/components/notifications/Notifications.vue +53 -49
- package/src/components/notifications/index.ts +9 -0
- package/src/components/pagination/Pagination.theme.ts +15 -5
- package/src/components/pagination/Pagination.vue +24 -18
- package/src/components/pagination/PaginationItem.theme.ts +13 -3
- package/src/components/pagination/PaginationItem.vue +14 -10
- package/src/components/pagination/index.ts +7 -0
- package/src/components/popover/Popover.theme.ts +12 -2
- package/src/components/popover/Popover.vue +56 -46
- package/src/components/popover/PopoverContainer.theme.ts +12 -2
- package/src/components/popover/PopoverContainer.vue +11 -6
- package/src/components/popover/index.ts +7 -0
- package/src/components/progress/Progress.theme.ts +14 -4
- package/src/components/progress/Progress.vue +16 -16
- package/src/components/progress/index.ts +3 -0
- package/src/components/radio/Radio.theme.ts +19 -7
- package/src/components/radio/Radio.vue +24 -14
- package/src/components/radio/index.ts +3 -0
- package/src/components/scroll/Scroll.theme.ts +12 -2
- package/src/components/scroll/Scroll.vue +37 -26
- package/src/components/scroll/index.ts +3 -0
- package/src/components/select/Select.theme.ts +20 -6
- package/src/components/select/Select.vue +28 -20
- package/src/components/select/index.ts +3 -0
- package/src/components/skeleton/Skeleton.theme.ts +12 -2
- package/src/components/skeleton/Skeleton.vue +11 -6
- package/src/components/skeleton/index.ts +3 -0
- package/src/components/slider/Slider.theme.ts +14 -4
- package/src/components/slider/Slider.vue +24 -16
- package/src/components/slider/index.ts +2 -0
- package/src/components/spacer/index.ts +1 -0
- package/src/components/spinner/Spinner.vue +18 -8
- package/src/components/spinner/index.ts +2 -0
- package/src/components/tab/Tab.theme.ts +15 -3
- package/src/components/tab/Tab.vue +85 -68
- package/src/components/tab/TabGroup.theme.ts +15 -5
- package/src/components/tab/TabGroup.vue +67 -22
- package/src/components/tab/index.ts +5 -0
- package/src/components/table/Table.theme.ts +14 -4
- package/src/components/table/Table.vue +41 -31
- package/src/components/table/TableCell.theme.ts +13 -3
- package/src/components/table/TableCell.vue +22 -16
- package/src/components/table/TableHeader.vue +20 -17
- package/src/components/table/TableRow.vue +1 -1
- package/src/components/table/index.ts +10 -0
- package/src/components/tag/Tag.theme.ts +14 -4
- package/src/components/tag/Tag.vue +22 -13
- package/src/components/tag/index.ts +2 -0
- package/src/components/textarea/Textarea.theme.ts +18 -30
- package/src/components/textarea/Textarea.vue +28 -19
- package/src/components/textarea/index.ts +2 -0
- package/src/components/toggle/Toggle.theme.ts +16 -6
- package/src/components/toggle/Toggle.vue +21 -12
- package/src/components/toggle/index.ts +2 -0
- package/src/components/tooltip/Tooltip.vue +5 -0
- package/src/components/tooltip/index.ts +2 -0
- package/src/composables/colors-utils.ts +4 -346
- package/src/composables/colors.ts +21 -17
- package/src/composables/common.ts +1 -1
- package/src/composables/css.ts +4 -4
- package/src/composables/inputtable.ts +8 -8
- package/src/composables/interactive.ts +2 -2
- package/src/composables/keys.ts +6 -3
- package/src/composables/theme.ts +30 -27
- package/src/create.ts +6 -7
- package/src/version.ts +1 -1
- package/volar.d.ts +0 -2
- package/lib/components/tooltip/Tooltip.theme.d.ts +0 -11
- package/lib/index.cjs.js +0 -1
- package/lib/index.es.js +0 -7184
- package/lib/nuxt.js +0 -33
- package/src/components/tooltip/Tooltip.theme.ts +0 -51
- package/src/exports/nuxt.plugin.js +0 -8
- package/src/exports/tailwind.preset.js +0 -55
- /package/{lib → exports}/tailwind.preset.js +0 -0
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
name: 'XForm',
|
|
4
|
-
inheritAttrs: false,
|
|
5
|
-
}
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<script setup lang="ts">
|
|
9
|
-
import { provide, onMounted, watch, nextTick, type PropType } from 'vue'
|
|
10
|
-
import { injectFormKey } from '../../composables/keys'
|
|
11
|
-
import { useTheme } from '../../composables/theme'
|
|
12
|
-
|
|
13
|
-
import theme from './Form.theme'
|
|
14
|
-
|
|
15
|
-
export type FormError = {
|
|
16
|
-
field: string
|
|
17
|
-
msg: string
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type Form = {
|
|
21
|
-
name: string,
|
|
22
|
-
focus: ()=> void,
|
|
23
|
-
validate: ()=> boolean,
|
|
24
|
-
setError: (val: string)=> void,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const props = defineProps({
|
|
2
|
+
const formProps = {
|
|
28
3
|
autoValidate: {
|
|
29
4
|
type: Boolean,
|
|
30
5
|
default: true,
|
|
@@ -38,22 +13,56 @@ const props = defineProps({
|
|
|
38
13
|
type: [Array, Object] as PropType<[FormError[], FormError]>,
|
|
39
14
|
default: () => ([]),
|
|
40
15
|
},
|
|
41
|
-
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type FormProps = ExtractPublicPropTypes<typeof formProps>
|
|
19
|
+
|
|
20
|
+
export type FormInjection = {
|
|
21
|
+
registerInput: (name: string, focus: () => void, validate: () => boolean, setError: (val: string) => void) => void;
|
|
22
|
+
unregisterInput: (name: string) => void;
|
|
23
|
+
isInsideForm: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type FormError = {
|
|
27
|
+
field: string;
|
|
28
|
+
msg: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type FormInput = {
|
|
32
|
+
name: string;
|
|
33
|
+
focus: () => void;
|
|
34
|
+
validate: (val?: any) => boolean;
|
|
35
|
+
setError: (val: string) => void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default {
|
|
39
|
+
name: 'XForm',
|
|
40
|
+
inheritAttrs: false,
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<script setup lang="ts">
|
|
45
|
+
import { provide, onMounted, watch, nextTick, type PropType, type ExtractPublicPropTypes } from 'vue'
|
|
46
|
+
import { injectFormKey } from '../../composables/keys'
|
|
47
|
+
import { useTheme } from '../../composables/theme'
|
|
48
|
+
|
|
49
|
+
import theme from './Form.theme'
|
|
50
|
+
|
|
51
|
+
const props = defineProps(formProps)
|
|
42
52
|
|
|
43
53
|
const emit = defineEmits(['submit'])
|
|
44
54
|
|
|
45
|
-
const inputs:
|
|
55
|
+
const inputs: FormInput[] = []
|
|
46
56
|
|
|
47
57
|
provide(injectFormKey, {
|
|
48
|
-
registerInput: (name: string, focus: ()=> void, validate: ()=> boolean, setError: (val: string)=> void) => {
|
|
58
|
+
registerInput: (name: string, focus: () => void, validate: (val: any) => boolean, setError: (val: string) => void) => {
|
|
49
59
|
const exists = inputs.find((i) => i.name === name)
|
|
50
60
|
|
|
51
61
|
if (exists) {
|
|
52
62
|
exists.focus = focus
|
|
53
63
|
exists.validate = validate
|
|
54
64
|
exists.setError = setError
|
|
55
|
-
}
|
|
56
|
-
else inputs.push({ name, focus, validate, setError })
|
|
65
|
+
} else inputs.push({ name, focus, validate, setError })
|
|
57
66
|
},
|
|
58
67
|
unregisterInput: (name: string) => {
|
|
59
68
|
const index = inputs.findIndex((i) => i.name === name)
|
|
@@ -8,7 +8,7 @@ export default defineComponent({
|
|
|
8
8
|
},
|
|
9
9
|
setup(props) {
|
|
10
10
|
return () => props.error
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
? <p class="text-sm text-red-500 dark:text-red-400 mt-1">{props.error}</p>
|
|
12
|
+
: props.helper ? <p class="text-sm text-gray-500 dark:text-gray-400 mt-1">{props.helper}</p> : ''
|
|
13
13
|
},
|
|
14
14
|
})
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
|
|
2
|
+
import type { IconProps } from './Icon.vue'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
type InternalClasses = 'wrapper'
|
|
5
|
+
|
|
6
|
+
interface InternalTheme extends ThemeComponent<IconProps, InternalClasses> {}
|
|
7
|
+
export interface IconTheme extends Omit<InternalTheme, 'classes'> {
|
|
8
|
+
classes?: Partial<ThemeClasses<IconProps, InternalClasses>>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const theme: InternalTheme = {
|
|
4
12
|
classes: {
|
|
5
|
-
wrapper: ({ props }
|
|
13
|
+
wrapper: ({ props }) => {
|
|
6
14
|
const classes = 'inline'
|
|
7
15
|
|
|
8
16
|
if (props.size === 'xs') return classes + ' h-3 w-3'
|
|
@@ -14,3 +22,5 @@ export default {
|
|
|
14
22
|
},
|
|
15
23
|
},
|
|
16
24
|
}
|
|
25
|
+
|
|
26
|
+
export default theme
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
</script>
|
|
4
|
-
|
|
5
|
-
<script setup lang="ts">
|
|
6
|
-
import { inject, ref, watchEffect, normalizeStyle, unref, computed } from 'vue'
|
|
7
|
-
import { useCommon } from '../../composables/common'
|
|
8
|
-
import { injectIconsKey } from '../../composables/keys'
|
|
9
|
-
import { useTheme } from '../../composables/theme'
|
|
10
|
-
|
|
11
|
-
import theme from './Icon.theme'
|
|
12
|
-
|
|
13
|
-
const props = defineProps({
|
|
2
|
+
const iconProps = {
|
|
14
3
|
...useCommon.props(),
|
|
15
4
|
icon: {
|
|
16
5
|
type: String,
|
|
@@ -21,7 +10,27 @@ const props = defineProps({
|
|
|
21
10
|
type: String,
|
|
22
11
|
default: '0 0 24 24',
|
|
23
12
|
},
|
|
24
|
-
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type IconProps = ExtractPublicPropTypes<typeof iconProps>
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
name: 'XIcon',
|
|
19
|
+
validators: {
|
|
20
|
+
...useCommon.validators(),
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<script setup lang="ts">
|
|
26
|
+
import { inject, ref, watchEffect, normalizeStyle, unref, computed, type ExtractPublicPropTypes } from 'vue'
|
|
27
|
+
import { useCommon } from '../../composables/common'
|
|
28
|
+
import { injectIconsKey } from '../../composables/keys'
|
|
29
|
+
import { useTheme } from '../../composables/theme'
|
|
30
|
+
|
|
31
|
+
import theme from './Icon.theme'
|
|
32
|
+
|
|
33
|
+
const props = defineProps(iconProps)
|
|
25
34
|
|
|
26
35
|
const icons: any = inject(injectIconsKey, () => ({}))
|
|
27
36
|
|
|
@@ -32,7 +41,7 @@ const computedViewBox = ref(props.viewBox)
|
|
|
32
41
|
const attrs = ref({})
|
|
33
42
|
|
|
34
43
|
watchEffect(() => {
|
|
35
|
-
const injectedIcon = icons && icons[props.icon]
|
|
44
|
+
const injectedIcon = icons && props.icon && icons[props.icon]
|
|
36
45
|
|
|
37
46
|
isWrapSVG.value = false
|
|
38
47
|
computedIcon.value = injectedIcon
|
|
@@ -56,7 +65,7 @@ watchEffect(() => {
|
|
|
56
65
|
computedViewBox.value = injectedIcon.viewBox || injectedIcon.viewbox || props.viewBox
|
|
57
66
|
}
|
|
58
67
|
} else {
|
|
59
|
-
computedIcon.value = props.icon
|
|
68
|
+
computedIcon.value = props.icon || ''
|
|
60
69
|
}
|
|
61
70
|
})
|
|
62
71
|
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
|
|
2
|
+
import type { ImageProps } from './Image.vue'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
type InternalClasses = 'wrapper'
|
|
5
|
+
|
|
6
|
+
interface InternalTheme extends ThemeComponent<ImageProps, InternalClasses> {}
|
|
7
|
+
export interface ImageTheme extends Omit<InternalTheme, 'classes'> {
|
|
8
|
+
classes?: Partial<ThemeClasses<ImageProps, InternalClasses>>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const theme: InternalTheme = {
|
|
4
12
|
classes: {
|
|
5
13
|
wrapper: '',
|
|
6
14
|
},
|
|
7
15
|
}
|
|
16
|
+
|
|
17
|
+
export default theme
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
const imageProps = {
|
|
3
|
+
src: String,
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export type ImageProps = ExtractPublicPropTypes<typeof imageProps>
|
|
7
|
+
|
|
2
8
|
export default { name: 'XImage' }
|
|
3
9
|
</script>
|
|
4
10
|
|
|
5
11
|
<script setup lang="ts">
|
|
6
|
-
import { watch, ref } from 'vue'
|
|
12
|
+
import { watch, ref, type ExtractPublicPropTypes } from 'vue'
|
|
7
13
|
import { useTheme } from '../../composables/theme'
|
|
8
14
|
|
|
9
15
|
import theme from './Image.theme'
|
|
10
16
|
|
|
11
17
|
const fallback = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='
|
|
12
18
|
|
|
13
|
-
const props = defineProps(
|
|
14
|
-
src: String,
|
|
15
|
-
})
|
|
19
|
+
const props = defineProps(imageProps)
|
|
16
20
|
|
|
17
21
|
const source = ref<string | undefined>(fallback)
|
|
18
22
|
|
package/src/components/index.ts
CHANGED
|
@@ -1,45 +1,35 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export { default as XTableCell } from './table/TableCell.vue'
|
|
37
|
-
export { default as XTableHead } from './table/TableHead'
|
|
38
|
-
export { default as XTableHeader } from './table/TableHeader.vue'
|
|
39
|
-
export { default as XTableRow } from './table/TableRow.vue'
|
|
40
|
-
export { default as XTab } from './tab/Tab.vue'
|
|
41
|
-
export { default as XTabGroup } from './tab/TabGroup.vue'
|
|
42
|
-
export { default as XTag } from './tag/Tag.vue'
|
|
43
|
-
export { default as XTextarea } from './textarea/Textarea.vue'
|
|
44
|
-
export { default as XToggle } from './toggle/Toggle.vue'
|
|
45
|
-
export { default as XTooltip } from './tooltip/Tooltip.vue'
|
|
1
|
+
export * from './alert'
|
|
2
|
+
export * from './avatar'
|
|
3
|
+
export * from './badge'
|
|
4
|
+
export * from './breadcrumbs'
|
|
5
|
+
export * from './button'
|
|
6
|
+
export * from './card'
|
|
7
|
+
export * from './checkbox'
|
|
8
|
+
export * from './collapse'
|
|
9
|
+
export * from './container'
|
|
10
|
+
export * from './divider'
|
|
11
|
+
export * from './drawer'
|
|
12
|
+
export * from './form'
|
|
13
|
+
export * from './icon'
|
|
14
|
+
export * from './image'
|
|
15
|
+
export * from './input'
|
|
16
|
+
export * from './link'
|
|
17
|
+
export * from './menu'
|
|
18
|
+
export * from './modal'
|
|
19
|
+
export * from './notifications'
|
|
20
|
+
export * from './pagination'
|
|
21
|
+
export * from './popover'
|
|
22
|
+
export * from './progress'
|
|
23
|
+
export * from './radio'
|
|
24
|
+
export * from './scroll'
|
|
25
|
+
export * from './select'
|
|
26
|
+
export * from './skeleton'
|
|
27
|
+
export * from './slider'
|
|
28
|
+
export * from './spacer'
|
|
29
|
+
export * from './spinner'
|
|
30
|
+
export * from './tab'
|
|
31
|
+
export * from './table'
|
|
32
|
+
export * from './tag'
|
|
33
|
+
export * from './textarea'
|
|
34
|
+
export * from './toggle'
|
|
35
|
+
export * from './tooltip'
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
|
|
2
|
+
import type { InputProps } from './Input.vue'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
type InternalClasses = 'wrapper' | 'label' | 'input' | 'icon'
|
|
5
|
+
type InternalExtraData = { errorInternal: any; }
|
|
6
|
+
|
|
7
|
+
interface InternalTheme extends ThemeComponent<InputProps, InternalClasses, InternalExtraData> {}
|
|
8
|
+
export interface InputTheme extends Omit<InternalTheme, 'classes'> {
|
|
9
|
+
classes?: Partial<ThemeClasses<InputProps, InternalClasses, InternalExtraData>>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const theme: InternalTheme = {
|
|
4
13
|
classes: {
|
|
5
14
|
wrapper: 'inline-block align-bottom text-left',
|
|
6
15
|
|
|
7
|
-
label: ({ props }
|
|
16
|
+
label: ({ props }) => {
|
|
8
17
|
const classes = 'font-medium text-gray-800 dark:text-gray-200 mb-1'
|
|
9
18
|
|
|
10
19
|
if (props.size === 'xs') return classes + ' text-xs'
|
|
@@ -12,10 +21,10 @@ export default {
|
|
|
12
21
|
else if (props.size === 'lg') return classes + ' text-lg'
|
|
13
22
|
else if (props.size === 'xl') return classes + ' text-xl'
|
|
14
23
|
|
|
15
|
-
return classes
|
|
24
|
+
return classes
|
|
16
25
|
},
|
|
17
26
|
|
|
18
|
-
input: ({ props, data }
|
|
27
|
+
input: ({ props, data }) => {
|
|
19
28
|
const classes = ['appearance-none block w-full placeholder-gray-400 dark:placeholder-gray-500 outline-transparent outline outline-2 outline-offset-[-1px] transition-all duration-150 ease-in-out border-gray-300 dark:border-gray-700 border shadow-sm rounded-md']
|
|
20
29
|
|
|
21
30
|
if (!data.errorInternal && !props.disabled) classes.push('hover:border-gray-400 dark:hover:border-gray-500')
|
|
@@ -36,9 +45,11 @@ export default {
|
|
|
36
45
|
icon: 'text-gray-600 dark:text-gray-300 absolute my-auto inset-y-0',
|
|
37
46
|
},
|
|
38
47
|
|
|
39
|
-
styles: ({ colors, props, css }
|
|
48
|
+
styles: ({ colors, props, css }) => {
|
|
40
49
|
const color = colors.getPalette(props.color)
|
|
41
50
|
|
|
42
51
|
return css.get('border', color[400])
|
|
43
52
|
},
|
|
44
53
|
}
|
|
54
|
+
|
|
55
|
+
export default theme
|
|
@@ -1,22 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
</script>
|
|
4
|
-
|
|
5
|
-
<script setup lang="ts">
|
|
6
|
-
import { computed, reactive, ref } from 'vue'
|
|
7
|
-
import { useTheme } from '../../composables/theme'
|
|
8
|
-
import { useColors } from '../../composables/colors'
|
|
9
|
-
import { useCommon } from '../../composables/common'
|
|
10
|
-
import { useInputtable } from '../../composables/inputtable'
|
|
11
|
-
import { useInteractive } from '../../composables/interactive'
|
|
12
|
-
import { eyeIcon, eyeVisibleIcon } from '../../common/icons'
|
|
13
|
-
|
|
14
|
-
import XIcon from '../icon/Icon.vue'
|
|
15
|
-
import XInputError from '../helpers/InputError'
|
|
16
|
-
|
|
17
|
-
import theme from './Input.theme'
|
|
18
|
-
|
|
19
|
-
const props = defineProps({
|
|
2
|
+
const inputProps = {
|
|
20
3
|
...useCommon.props(),
|
|
21
4
|
...useColors.props('primary'),
|
|
22
5
|
...useInteractive.props(),
|
|
@@ -28,7 +11,7 @@ const props = defineProps({
|
|
|
28
11
|
helper: String,
|
|
29
12
|
label: String,
|
|
30
13
|
dir: {
|
|
31
|
-
type: String
|
|
14
|
+
type: String as PropType<'ltr' | 'rtl'>,
|
|
32
15
|
default: 'ltr',
|
|
33
16
|
},
|
|
34
17
|
icon: String,
|
|
@@ -44,13 +27,41 @@ const props = defineProps({
|
|
|
44
27
|
default: 'text',
|
|
45
28
|
},
|
|
46
29
|
block: Boolean,
|
|
47
|
-
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type InputProps = ExtractPublicPropTypes<typeof inputProps>
|
|
33
|
+
|
|
34
|
+
export default {
|
|
35
|
+
name: 'XInput',
|
|
36
|
+
validators: {
|
|
37
|
+
...useCommon.validators(),
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<script setup lang="ts">
|
|
43
|
+
import { ref, type PropType, type ExtractPublicPropTypes, watch } from 'vue'
|
|
44
|
+
import { useTheme } from '../../composables/theme'
|
|
45
|
+
import { useColors } from '../../composables/colors'
|
|
46
|
+
import { useCommon } from '../../composables/common'
|
|
47
|
+
import { useInputtable } from '../../composables/inputtable'
|
|
48
|
+
import { useInteractive } from '../../composables/interactive'
|
|
49
|
+
import { eyeIcon, eyeVisibleIcon } from '../../common/icons'
|
|
50
|
+
|
|
51
|
+
import XIcon from '../icon/Icon.vue'
|
|
52
|
+
import XInputError from '../helpers/InputError'
|
|
53
|
+
|
|
54
|
+
import theme from './Input.theme'
|
|
55
|
+
|
|
56
|
+
const props = defineProps(inputProps)
|
|
48
57
|
|
|
49
58
|
const emit = defineEmits(useInputtable.emits())
|
|
50
59
|
|
|
51
60
|
const elRef = ref<HTMLInputElement | null>(null)
|
|
52
61
|
const currentType = ref(props.type)
|
|
53
62
|
|
|
63
|
+
watch(() => props.type, (newValue) => { currentType.value = newValue })
|
|
64
|
+
|
|
54
65
|
function onChange(e: Event) {
|
|
55
66
|
if (!e.target) return
|
|
56
67
|
|
|
@@ -60,11 +71,11 @@ function onChange(e: Event) {
|
|
|
60
71
|
const value = Number(target.value)
|
|
61
72
|
|
|
62
73
|
if (typeof props.min !== 'undefined') {
|
|
63
|
-
if (value < props.min) target.value = props.min.toString()
|
|
74
|
+
if (value < Number(props.min)) target.value = props.min.toString()
|
|
64
75
|
}
|
|
65
76
|
|
|
66
77
|
if (typeof props.max !== 'undefined') {
|
|
67
|
-
if (value > props.max) target.value = props.max.toString()
|
|
78
|
+
if (value > Number(props.max)) target.value = props.max.toString()
|
|
68
79
|
}
|
|
69
80
|
}
|
|
70
81
|
}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
|
|
2
|
+
import type { LinkProps } from './Link.vue'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
type InternalClasses = 'wrapper'
|
|
5
|
+
|
|
6
|
+
interface InternalTheme extends ThemeComponent<LinkProps, InternalClasses> {}
|
|
7
|
+
export interface LinkTheme extends Omit<InternalTheme, 'classes'> {
|
|
8
|
+
classes?: Partial<ThemeClasses<LinkProps, InternalClasses>>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const theme: InternalTheme = {
|
|
4
12
|
classes: {
|
|
5
13
|
wrapper: 'transition duration-300 ease-in-out cursor-pointer inline-flex',
|
|
6
14
|
},
|
|
7
15
|
|
|
8
|
-
styles: ({ colors, props, css }
|
|
16
|
+
styles: ({ colors, props, css }) => {
|
|
9
17
|
const color = colors.getPalette(props.color || 'gray')
|
|
10
18
|
|
|
11
19
|
return css.variables({
|
|
@@ -24,3 +32,5 @@ export default {
|
|
|
24
32
|
})
|
|
25
33
|
},
|
|
26
34
|
}
|
|
35
|
+
|
|
36
|
+
export default theme
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
const linkProps = {
|
|
3
|
+
...useColors.props(),
|
|
4
|
+
tag: {
|
|
5
|
+
type: String,
|
|
6
|
+
default: 'a',
|
|
7
|
+
},
|
|
8
|
+
to: [String, Object],
|
|
9
|
+
shadow: Boolean,
|
|
10
|
+
external: Boolean,
|
|
11
|
+
underline: Boolean,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type LinkProps = ExtractPublicPropTypes<typeof linkProps>
|
|
15
|
+
|
|
2
16
|
export default { name: 'XLink' }
|
|
3
17
|
</script>
|
|
4
18
|
|
|
5
19
|
<script setup lang="ts">
|
|
20
|
+
import type { ExtractPublicPropTypes } from 'vue'
|
|
6
21
|
import { useColors } from '../../composables/colors'
|
|
7
22
|
import { useTheme } from '../../composables/theme'
|
|
8
23
|
import { externalIcon } from '../../common/icons'
|
|
@@ -11,17 +26,7 @@ import XIcon from '../icon/Icon.vue'
|
|
|
11
26
|
|
|
12
27
|
import theme from './Link.theme'
|
|
13
28
|
|
|
14
|
-
const props = defineProps(
|
|
15
|
-
...useColors.props(),
|
|
16
|
-
tag: {
|
|
17
|
-
type: String,
|
|
18
|
-
default: 'a',
|
|
19
|
-
},
|
|
20
|
-
to: [String, Object],
|
|
21
|
-
shadow: Boolean,
|
|
22
|
-
external: Boolean,
|
|
23
|
-
underline: Boolean,
|
|
24
|
-
})
|
|
29
|
+
const props = defineProps(linkProps)
|
|
25
30
|
|
|
26
31
|
const { styles, classes, className } = useTheme('link', theme, props)
|
|
27
32
|
</script>
|
|
@@ -62,12 +67,14 @@ const { styles, classes, className } = useTheme('link', theme, props)
|
|
|
62
67
|
|
|
63
68
|
&--shadow {
|
|
64
69
|
box-shadow: inset 0 -0.315em 0 0 var(--x-link-shadow);
|
|
70
|
+
|
|
65
71
|
&:hover {
|
|
66
72
|
box-shadow: inset 0 -1.325em 0 0 var(--x-link-shadow);
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
|
|
70
|
-
:global(.dark) &,
|
|
76
|
+
:global(.dark) &,
|
|
77
|
+
&:global(.dark) {
|
|
71
78
|
color: var(--x-link-dark-text);
|
|
72
79
|
|
|
73
80
|
&:hover {
|
|
@@ -76,6 +83,7 @@ const { styles, classes, className } = useTheme('link', theme, props)
|
|
|
76
83
|
|
|
77
84
|
&--shadow {
|
|
78
85
|
box-shadow: inset 0 -0.315em 0 0 var(--x-link-dark-shadow);
|
|
86
|
+
|
|
79
87
|
&:hover {
|
|
80
88
|
box-shadow: inset 0 -1.325em 0 0 var(--x-link-dark-shadow);
|
|
81
89
|
}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
|
|
2
|
+
import type { MenuProps } from './Menu.vue'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
type InternalClasses = 'wrapper'
|
|
5
|
+
|
|
6
|
+
interface InternalTheme extends ThemeComponent<MenuProps, InternalClasses> {}
|
|
7
|
+
export interface MenuTheme extends Omit<InternalTheme, 'classes'> {
|
|
8
|
+
classes?: Partial<ThemeClasses<MenuProps, InternalClasses>>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const theme: InternalTheme = {
|
|
4
12
|
classes: {
|
|
5
13
|
wrapper: '',
|
|
6
14
|
},
|
|
7
15
|
}
|
|
16
|
+
|
|
17
|
+
export default theme
|