@dolanske/vui 0.3.4 → 0.5.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 +673 -673
- package/README.md +41 -40
- package/dist/components/Dropdown/DropdownItem.vue.d.ts +1 -0
- package/dist/components/Flex/Flex.vue.d.ts +3 -1
- package/dist/components/Grid/Grid.vue.d.ts +3 -1
- package/dist/components/Tabs/Tabs.vue.d.ts +4 -0
- package/dist/style.css +1 -1
- package/dist/vui.js +1547 -1534
- package/package.json +68 -68
- package/src/App.vue +176 -175
- package/src/components/Accordion/Accordion.vue +91 -91
- package/src/components/Accordion/AccordionGroup.vue +43 -43
- package/src/components/Accordion/accordion.scss +81 -80
- package/src/components/Alert/Alert.vue +53 -53
- package/src/components/Alert/alert.scss +80 -80
- package/src/components/Avatar/Avatar.vue +50 -50
- package/src/components/Avatar/avatar.scss +52 -52
- package/src/components/Badge/Badge.vue +21 -21
- package/src/components/Badge/badge.scss +89 -89
- package/src/components/Breadcrumbs/BreadcrumbItem.vue +26 -26
- package/src/components/Breadcrumbs/Breadcrumbs.vue +33 -33
- package/src/components/Breadcrumbs/breadcrumbs.scss +30 -30
- package/src/components/Button/Button.vue +90 -90
- package/src/components/Button/button.scss +178 -176
- package/src/components/ButtonGroup/ButtonGroup.vue +25 -25
- package/src/components/ButtonGroup/button-group.scss +51 -51
- package/src/components/Calendar/Calendar.vue +63 -60
- package/src/components/Calendar/calendar.scss +60 -56
- package/src/components/Card/Card.vue +48 -48
- package/src/components/Card/card.scss +53 -53
- package/src/components/Checkbox/Checkbox.vue +51 -52
- package/src/components/Checkbox/checkbox.scss +75 -66
- package/src/components/CopyClipboard/CopyClipboard.vue +82 -82
- package/src/components/CopyClipboard/copy-clipboard.scss +17 -17
- package/src/components/Divider/Divider.vue +44 -44
- package/src/components/Divider/divider.scss +35 -35
- package/src/components/Drawer/Drawer.vue +97 -97
- package/src/components/Drawer/drawer.scss +36 -36
- package/src/components/Dropdown/Dropdown.vue +111 -111
- package/src/components/Dropdown/DropdownItem.vue +33 -29
- package/src/components/Dropdown/DropdownTitle.vue +8 -8
- package/src/components/Dropdown/dropdown-item.scss +77 -0
- package/src/components/Dropdown/dropdown.scss +39 -117
- package/src/components/Flex/Flex.vue +113 -106
- package/src/components/Grid/Grid.vue +60 -54
- package/src/components/Input/Counter.vue +70 -70
- package/src/components/Input/Dropzone.vue +65 -65
- package/src/components/Input/File.vue +15 -15
- package/src/components/Input/Input.vue +121 -121
- package/src/components/Input/Password.vue +47 -47
- package/src/components/Input/Textarea.vue +76 -76
- package/src/components/Input/input.scss +208 -208
- package/src/components/Kbd/Kbd.vue +48 -48
- package/src/components/Kbd/KbdGroup.vue +31 -31
- package/src/components/Kbd/kbd.scss +18 -18
- package/src/components/Modal/Confirm.vue +56 -56
- package/src/components/Modal/Modal.vue +91 -91
- package/src/components/Modal/modal.scss +49 -49
- package/src/components/OTP/OTP.vue +133 -133
- package/src/components/OTP/OTPItem.vue +37 -37
- package/src/components/OTP/otp.scss +83 -83
- package/src/components/Pagination/Pagination.vue +74 -74
- package/src/components/Pagination/pagination.ts +78 -78
- package/src/components/Popout/Popout.vue +42 -42
- package/src/components/Popout/popout.scss +8 -8
- package/src/components/Progress/Progress.vue +90 -90
- package/src/components/Progress/progress.scss +41 -41
- package/src/components/Radio/Radio.vue +36 -36
- package/src/components/Radio/RadioGroup.vue +40 -40
- package/src/components/Radio/radio.scss +68 -59
- package/src/components/Select/Select.vue +180 -180
- package/src/components/Select/select.scss +44 -44
- package/src/components/Sheet/Sheet.vue +92 -92
- package/src/components/Sheet/sheet.scss +60 -60
- package/src/components/Sidebar/Sidebar.vue +102 -0
- package/src/components/Sidebar/sidebar.scss +123 -0
- package/src/components/Skeleton/Skeleton.vue +43 -43
- package/src/components/Skeleton/skeleton.scss +14 -14
- package/src/components/Spinner/Spinner.vue +42 -42
- package/src/components/Spinner/spinner.scss +46 -46
- package/src/components/Switch/Switch.vue +30 -30
- package/src/components/Switch/switch.scss +60 -52
- package/src/components/Table/Cell.vue +23 -23
- package/src/components/Table/Header.vue +59 -59
- package/src/components/Table/Row.vue +9 -9
- package/src/components/Table/SelectAll.vue +23 -23
- package/src/components/Table/SelectRow.vue +29 -29
- package/src/components/Table/Table.vue +66 -66
- package/src/components/Table/table.scss +134 -134
- package/src/components/Table/table.ts +244 -244
- package/src/components/Tabs/Tab.vue +27 -27
- package/src/components/Tabs/Tabs.vue +89 -82
- package/src/components/Tabs/tabs.scss +80 -79
- package/src/components/Toast/Toasts.vue +47 -47
- package/src/components/Toast/toast.scss +41 -41
- package/src/components/Toast/toast.ts +68 -68
- package/src/components/Tooltip/Tooltip.vue +86 -86
- package/src/components/Tooltip/tooltip.scss +4 -4
- package/src/index.scss +1 -1
- package/src/index.ts +119 -119
- package/src/internal/Backdrop/Backdrop.vue +22 -22
- package/src/internal/Backdrop/backdrop.scss +28 -28
- package/src/main.ts +5 -5
- package/src/shared/helpers.ts +74 -74
- package/src/shared/types.ts +29 -29
- package/src/style/animation.scss +21 -21
- package/src/style/core.scss +150 -148
- package/src/style/layout.scss +168 -136
- package/src/style/media-query.scss +29 -29
- package/src/style/reset.scss +135 -135
- package/src/style/{fonts.scss → text.scss} +74 -53
- package/src/style/tooltip.scss +128 -128
- package/src/style/typography.scss +338 -338
- package/src/style/utils.scss +36 -36
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
<script setup lang='ts'>
|
|
2
|
-
import type { Placement } from '../../shared/types'
|
|
3
|
-
import { ref, useId, useTemplateRef, watch } from 'vue'
|
|
4
|
-
import Popout from '../Popout/Popout.vue'
|
|
5
|
-
import './tooltip.scss'
|
|
6
|
-
|
|
7
|
-
interface Props {
|
|
8
|
-
/**
|
|
9
|
-
* Tooltip placement related to the anchor
|
|
10
|
-
*/
|
|
11
|
-
placement?: Placement
|
|
12
|
-
/**
|
|
13
|
-
* Amount of time user should hover the anchor until the tooltip shows up
|
|
14
|
-
*/
|
|
15
|
-
delay?: number
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const {
|
|
19
|
-
placement = 'bottom',
|
|
20
|
-
delay = 0,
|
|
21
|
-
} = defineProps<Props>()
|
|
22
|
-
|
|
23
|
-
const popoutAnchorRef = useTemplateRef('popoutAnchor')
|
|
24
|
-
// Track if user is hovering the anchor
|
|
25
|
-
const hoverAnchor = ref(false)
|
|
26
|
-
|
|
27
|
-
// Display tooltip
|
|
28
|
-
const showTooltip = ref(false)
|
|
29
|
-
|
|
30
|
-
let timeoutId: NodeJS.Timeout
|
|
31
|
-
watch(hoverAnchor, (isHovering) => {
|
|
32
|
-
if (isHovering) {
|
|
33
|
-
if (!delay || delay <= 0) {
|
|
34
|
-
showTooltip.value = true
|
|
35
|
-
return
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
clearTimeout(timeoutId)
|
|
39
|
-
|
|
40
|
-
timeoutId = setTimeout(() => {
|
|
41
|
-
// Need to reference the ref itself as this will execute without the
|
|
42
|
-
// outside scope (as far as I know tbh)
|
|
43
|
-
if (hoverAnchor.value) {
|
|
44
|
-
showTooltip.value = true
|
|
45
|
-
}
|
|
46
|
-
}, delay)
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
clearTimeout(timeoutId)
|
|
50
|
-
showTooltip.value = false
|
|
51
|
-
}
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
const id = useId()
|
|
55
|
-
</script>
|
|
56
|
-
|
|
57
|
-
<template>
|
|
58
|
-
<div
|
|
59
|
-
ref="popoutAnchor"
|
|
60
|
-
:style="{
|
|
61
|
-
width: 'fit-content',
|
|
62
|
-
}"
|
|
63
|
-
:aria-describedby="id"
|
|
64
|
-
@mouseenter="hoverAnchor = true"
|
|
65
|
-
@mouseleave="hoverAnchor = false"
|
|
66
|
-
>
|
|
67
|
-
<slot />
|
|
68
|
-
</div>
|
|
69
|
-
<Transition appear name="tooltip">
|
|
70
|
-
<Popout v-if="showTooltip" :id :anchor="popoutAnchorRef" class="vui-tooltip" :placement name="tooltip">
|
|
71
|
-
<slot name="tooltip" />
|
|
72
|
-
</Popout>
|
|
73
|
-
</Transition>
|
|
74
|
-
</template>
|
|
75
|
-
|
|
76
|
-
<style scoped>
|
|
77
|
-
.tooltip-enter-active,
|
|
78
|
-
.tooltip-leave-active {
|
|
79
|
-
transition: 0.1s opacity ease-in-out;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.tooltip-enter-from,
|
|
83
|
-
.tooltip-leave-to {
|
|
84
|
-
opacity: 0;
|
|
85
|
-
}
|
|
86
|
-
</style>
|
|
1
|
+
<script setup lang='ts'>
|
|
2
|
+
import type { Placement } from '../../shared/types'
|
|
3
|
+
import { ref, useId, useTemplateRef, watch } from 'vue'
|
|
4
|
+
import Popout from '../Popout/Popout.vue'
|
|
5
|
+
import './tooltip.scss'
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
/**
|
|
9
|
+
* Tooltip placement related to the anchor
|
|
10
|
+
*/
|
|
11
|
+
placement?: Placement
|
|
12
|
+
/**
|
|
13
|
+
* Amount of time user should hover the anchor until the tooltip shows up
|
|
14
|
+
*/
|
|
15
|
+
delay?: number
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const {
|
|
19
|
+
placement = 'bottom',
|
|
20
|
+
delay = 0,
|
|
21
|
+
} = defineProps<Props>()
|
|
22
|
+
|
|
23
|
+
const popoutAnchorRef = useTemplateRef('popoutAnchor')
|
|
24
|
+
// Track if user is hovering the anchor
|
|
25
|
+
const hoverAnchor = ref(false)
|
|
26
|
+
|
|
27
|
+
// Display tooltip
|
|
28
|
+
const showTooltip = ref(false)
|
|
29
|
+
|
|
30
|
+
let timeoutId: NodeJS.Timeout
|
|
31
|
+
watch(hoverAnchor, (isHovering) => {
|
|
32
|
+
if (isHovering) {
|
|
33
|
+
if (!delay || delay <= 0) {
|
|
34
|
+
showTooltip.value = true
|
|
35
|
+
return
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
clearTimeout(timeoutId)
|
|
39
|
+
|
|
40
|
+
timeoutId = setTimeout(() => {
|
|
41
|
+
// Need to reference the ref itself as this will execute without the
|
|
42
|
+
// outside scope (as far as I know tbh)
|
|
43
|
+
if (hoverAnchor.value) {
|
|
44
|
+
showTooltip.value = true
|
|
45
|
+
}
|
|
46
|
+
}, delay)
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
clearTimeout(timeoutId)
|
|
50
|
+
showTooltip.value = false
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
const id = useId()
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
<template>
|
|
58
|
+
<div
|
|
59
|
+
ref="popoutAnchor"
|
|
60
|
+
:style="{
|
|
61
|
+
width: 'fit-content',
|
|
62
|
+
}"
|
|
63
|
+
:aria-describedby="id"
|
|
64
|
+
@mouseenter="hoverAnchor = true"
|
|
65
|
+
@mouseleave="hoverAnchor = false"
|
|
66
|
+
>
|
|
67
|
+
<slot />
|
|
68
|
+
</div>
|
|
69
|
+
<Transition appear name="tooltip">
|
|
70
|
+
<Popout v-if="showTooltip" :id :anchor="popoutAnchorRef" class="vui-tooltip" :placement name="tooltip">
|
|
71
|
+
<slot name="tooltip" />
|
|
72
|
+
</Popout>
|
|
73
|
+
</Transition>
|
|
74
|
+
</template>
|
|
75
|
+
|
|
76
|
+
<style scoped>
|
|
77
|
+
.tooltip-enter-active,
|
|
78
|
+
.tooltip-leave-active {
|
|
79
|
+
transition: 0.1s opacity ease-in-out;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.tooltip-enter-from,
|
|
83
|
+
.tooltip-leave-to {
|
|
84
|
+
opacity: 0;
|
|
85
|
+
}
|
|
86
|
+
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.vui-tooltip {
|
|
2
|
-
padding: var(--space-s);
|
|
3
|
-
max-width: 512px;
|
|
4
|
-
}
|
|
1
|
+
.vui-tooltip {
|
|
2
|
+
padding: var(--space-s);
|
|
3
|
+
max-width: 512px;
|
|
4
|
+
}
|
package/src/index.scss
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import url(./style/core.scss);
|
|
1
|
+
@import url(./style/core.scss);
|
package/src/index.ts
CHANGED
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
import Accordion from './components/Accordion/Accordion.vue'
|
|
2
|
-
import AccordionGroup from './components/Accordion/AccordionGroup.vue'
|
|
3
|
-
import Alert from './components/Alert/Alert.vue'
|
|
4
|
-
import Avatar from './components/Avatar/Avatar.vue'
|
|
5
|
-
import Badge from './components/Badge/Badge.vue'
|
|
6
|
-
import BreadcrumbItem from './components/Breadcrumbs/BreadcrumbItem.vue'
|
|
7
|
-
import Breadcrumbs from './components/Breadcrumbs/Breadcrumbs.vue'
|
|
8
|
-
import Button from './components/Button/Button.vue'
|
|
9
|
-
import ButtonGroup from './components/ButtonGroup/ButtonGroup.vue'
|
|
10
|
-
import Calendar from './components/Calendar/Calendar.vue'
|
|
11
|
-
import Card from './components/Card/Card.vue'
|
|
12
|
-
import Checkbox from './components/Checkbox/Checkbox.vue'
|
|
13
|
-
import CopyClipboard from './components/CopyClipboard/CopyClipboard.vue'
|
|
14
|
-
import Divider from './components/Divider/Divider.vue'
|
|
15
|
-
import Drawer from './components/Drawer/Drawer.vue'
|
|
16
|
-
import Dropdown from './components/Dropdown/Dropdown.vue'
|
|
17
|
-
import DropdownItem from './components/Dropdown/DropdownItem.vue'
|
|
18
|
-
import DropdownTitle from './components/Dropdown/DropdownTitle.vue'
|
|
19
|
-
import Flex from './components/Flex/Flex.vue'
|
|
20
|
-
import Grid from './components/Grid/Grid.vue'
|
|
21
|
-
import Counter from './components/Input/Counter.vue'
|
|
22
|
-
import Dropzone from './components/Input/Dropzone.vue'
|
|
23
|
-
import File from './components/Input/File.vue'
|
|
24
|
-
import Input from './components/Input/Input.vue'
|
|
25
|
-
import Password from './components/Input/Password.vue'
|
|
26
|
-
import Textarea from './components/Input/Textarea.vue'
|
|
27
|
-
import Kbd from './components/Kbd/Kbd.vue'
|
|
28
|
-
import KbdGroup from './components/Kbd/KbdGroup.vue'
|
|
29
|
-
import Confirm from './components/Modal/Confirm.vue'
|
|
30
|
-
import Modal from './components/Modal/Modal.vue'
|
|
31
|
-
import OTP from './components/OTP/OTP.vue'
|
|
32
|
-
import OTPItem from './components/OTP/OTPItem.vue'
|
|
33
|
-
import { paginate } from './components/Pagination/pagination'
|
|
34
|
-
import Pagination from './components/Pagination/Pagination.vue'
|
|
35
|
-
import Popout from './components/Popout/Popout.vue'
|
|
36
|
-
import Progress from './components/Progress/Progress.vue'
|
|
37
|
-
import Radio from './components/Radio/Radio.vue'
|
|
38
|
-
import RadioGroup from './components/Radio/RadioGroup.vue'
|
|
39
|
-
import Select from './components/Select/Select.vue'
|
|
40
|
-
import Sheet from './components/Sheet/Sheet.vue'
|
|
41
|
-
import Skeleton from './components/Skeleton/Skeleton.vue'
|
|
42
|
-
import Spinner from './components/Spinner/Spinner.vue'
|
|
43
|
-
import Switch from './components/Switch/Switch.vue'
|
|
44
|
-
import Cell from './components/Table/Cell.vue'
|
|
45
|
-
import Header from './components/Table/Header.vue'
|
|
46
|
-
import Row from './components/Table/Row.vue'
|
|
47
|
-
import SelectAll from './components/Table/SelectAll.vue'
|
|
48
|
-
import SelectRow from './components/Table/SelectRow.vue'
|
|
49
|
-
import { defineTable } from './components/Table/table'
|
|
50
|
-
import Table from './components/Table/Table.vue'
|
|
51
|
-
import Tab from './components/Tabs/Tab.vue'
|
|
52
|
-
import Tabs from './components/Tabs/Tabs.vue'
|
|
53
|
-
import { pushToast, removeToast } from './components/Toast/toast'
|
|
54
|
-
import Toasts from './components/Toast/Toasts.vue'
|
|
55
|
-
import Tooltip from './components/Tooltip/Tooltip.vue'
|
|
56
|
-
import Backdrop from './internal/Backdrop/Backdrop.vue'
|
|
57
|
-
import { searchString } from './shared/helpers'
|
|
58
|
-
import './index.scss'
|
|
59
|
-
|
|
60
|
-
export {
|
|
61
|
-
Accordion,
|
|
62
|
-
AccordionGroup,
|
|
63
|
-
Alert,
|
|
64
|
-
Avatar,
|
|
65
|
-
Backdrop,
|
|
66
|
-
Badge,
|
|
67
|
-
BreadcrumbItem,
|
|
68
|
-
Breadcrumbs,
|
|
69
|
-
Button,
|
|
70
|
-
ButtonGroup,
|
|
71
|
-
Calendar,
|
|
72
|
-
Card,
|
|
73
|
-
Cell,
|
|
74
|
-
Checkbox,
|
|
75
|
-
Confirm,
|
|
76
|
-
CopyClipboard,
|
|
77
|
-
Counter,
|
|
78
|
-
defineTable,
|
|
79
|
-
Divider,
|
|
80
|
-
Drawer,
|
|
81
|
-
Dropdown,
|
|
82
|
-
DropdownItem,
|
|
83
|
-
DropdownTitle,
|
|
84
|
-
Dropzone,
|
|
85
|
-
File,
|
|
86
|
-
Flex,
|
|
87
|
-
Grid,
|
|
88
|
-
Header,
|
|
89
|
-
Input,
|
|
90
|
-
Kbd,
|
|
91
|
-
KbdGroup,
|
|
92
|
-
Modal,
|
|
93
|
-
OTP,
|
|
94
|
-
OTPItem,
|
|
95
|
-
paginate,
|
|
96
|
-
Pagination,
|
|
97
|
-
Password,
|
|
98
|
-
Popout,
|
|
99
|
-
Progress,
|
|
100
|
-
pushToast,
|
|
101
|
-
Radio,
|
|
102
|
-
RadioGroup,
|
|
103
|
-
removeToast,
|
|
104
|
-
Row,
|
|
105
|
-
searchString,
|
|
106
|
-
Select,
|
|
107
|
-
SelectAll,
|
|
108
|
-
SelectRow,
|
|
109
|
-
Sheet,
|
|
110
|
-
Skeleton,
|
|
111
|
-
Spinner,
|
|
112
|
-
Switch,
|
|
113
|
-
Tab,
|
|
114
|
-
Table,
|
|
115
|
-
Tabs,
|
|
116
|
-
Textarea,
|
|
117
|
-
Toasts,
|
|
118
|
-
Tooltip,
|
|
119
|
-
}
|
|
1
|
+
import Accordion from './components/Accordion/Accordion.vue'
|
|
2
|
+
import AccordionGroup from './components/Accordion/AccordionGroup.vue'
|
|
3
|
+
import Alert from './components/Alert/Alert.vue'
|
|
4
|
+
import Avatar from './components/Avatar/Avatar.vue'
|
|
5
|
+
import Badge from './components/Badge/Badge.vue'
|
|
6
|
+
import BreadcrumbItem from './components/Breadcrumbs/BreadcrumbItem.vue'
|
|
7
|
+
import Breadcrumbs from './components/Breadcrumbs/Breadcrumbs.vue'
|
|
8
|
+
import Button from './components/Button/Button.vue'
|
|
9
|
+
import ButtonGroup from './components/ButtonGroup/ButtonGroup.vue'
|
|
10
|
+
import Calendar from './components/Calendar/Calendar.vue'
|
|
11
|
+
import Card from './components/Card/Card.vue'
|
|
12
|
+
import Checkbox from './components/Checkbox/Checkbox.vue'
|
|
13
|
+
import CopyClipboard from './components/CopyClipboard/CopyClipboard.vue'
|
|
14
|
+
import Divider from './components/Divider/Divider.vue'
|
|
15
|
+
import Drawer from './components/Drawer/Drawer.vue'
|
|
16
|
+
import Dropdown from './components/Dropdown/Dropdown.vue'
|
|
17
|
+
import DropdownItem from './components/Dropdown/DropdownItem.vue'
|
|
18
|
+
import DropdownTitle from './components/Dropdown/DropdownTitle.vue'
|
|
19
|
+
import Flex from './components/Flex/Flex.vue'
|
|
20
|
+
import Grid from './components/Grid/Grid.vue'
|
|
21
|
+
import Counter from './components/Input/Counter.vue'
|
|
22
|
+
import Dropzone from './components/Input/Dropzone.vue'
|
|
23
|
+
import File from './components/Input/File.vue'
|
|
24
|
+
import Input from './components/Input/Input.vue'
|
|
25
|
+
import Password from './components/Input/Password.vue'
|
|
26
|
+
import Textarea from './components/Input/Textarea.vue'
|
|
27
|
+
import Kbd from './components/Kbd/Kbd.vue'
|
|
28
|
+
import KbdGroup from './components/Kbd/KbdGroup.vue'
|
|
29
|
+
import Confirm from './components/Modal/Confirm.vue'
|
|
30
|
+
import Modal from './components/Modal/Modal.vue'
|
|
31
|
+
import OTP from './components/OTP/OTP.vue'
|
|
32
|
+
import OTPItem from './components/OTP/OTPItem.vue'
|
|
33
|
+
import { paginate } from './components/Pagination/pagination'
|
|
34
|
+
import Pagination from './components/Pagination/Pagination.vue'
|
|
35
|
+
import Popout from './components/Popout/Popout.vue'
|
|
36
|
+
import Progress from './components/Progress/Progress.vue'
|
|
37
|
+
import Radio from './components/Radio/Radio.vue'
|
|
38
|
+
import RadioGroup from './components/Radio/RadioGroup.vue'
|
|
39
|
+
import Select from './components/Select/Select.vue'
|
|
40
|
+
import Sheet from './components/Sheet/Sheet.vue'
|
|
41
|
+
import Skeleton from './components/Skeleton/Skeleton.vue'
|
|
42
|
+
import Spinner from './components/Spinner/Spinner.vue'
|
|
43
|
+
import Switch from './components/Switch/Switch.vue'
|
|
44
|
+
import Cell from './components/Table/Cell.vue'
|
|
45
|
+
import Header from './components/Table/Header.vue'
|
|
46
|
+
import Row from './components/Table/Row.vue'
|
|
47
|
+
import SelectAll from './components/Table/SelectAll.vue'
|
|
48
|
+
import SelectRow from './components/Table/SelectRow.vue'
|
|
49
|
+
import { defineTable } from './components/Table/table'
|
|
50
|
+
import Table from './components/Table/Table.vue'
|
|
51
|
+
import Tab from './components/Tabs/Tab.vue'
|
|
52
|
+
import Tabs from './components/Tabs/Tabs.vue'
|
|
53
|
+
import { pushToast, removeToast } from './components/Toast/toast'
|
|
54
|
+
import Toasts from './components/Toast/Toasts.vue'
|
|
55
|
+
import Tooltip from './components/Tooltip/Tooltip.vue'
|
|
56
|
+
import Backdrop from './internal/Backdrop/Backdrop.vue'
|
|
57
|
+
import { searchString } from './shared/helpers'
|
|
58
|
+
import './index.scss'
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
Accordion,
|
|
62
|
+
AccordionGroup,
|
|
63
|
+
Alert,
|
|
64
|
+
Avatar,
|
|
65
|
+
Backdrop,
|
|
66
|
+
Badge,
|
|
67
|
+
BreadcrumbItem,
|
|
68
|
+
Breadcrumbs,
|
|
69
|
+
Button,
|
|
70
|
+
ButtonGroup,
|
|
71
|
+
Calendar,
|
|
72
|
+
Card,
|
|
73
|
+
Cell,
|
|
74
|
+
Checkbox,
|
|
75
|
+
Confirm,
|
|
76
|
+
CopyClipboard,
|
|
77
|
+
Counter,
|
|
78
|
+
defineTable,
|
|
79
|
+
Divider,
|
|
80
|
+
Drawer,
|
|
81
|
+
Dropdown,
|
|
82
|
+
DropdownItem,
|
|
83
|
+
DropdownTitle,
|
|
84
|
+
Dropzone,
|
|
85
|
+
File,
|
|
86
|
+
Flex,
|
|
87
|
+
Grid,
|
|
88
|
+
Header,
|
|
89
|
+
Input,
|
|
90
|
+
Kbd,
|
|
91
|
+
KbdGroup,
|
|
92
|
+
Modal,
|
|
93
|
+
OTP,
|
|
94
|
+
OTPItem,
|
|
95
|
+
paginate,
|
|
96
|
+
Pagination,
|
|
97
|
+
Password,
|
|
98
|
+
Popout,
|
|
99
|
+
Progress,
|
|
100
|
+
pushToast,
|
|
101
|
+
Radio,
|
|
102
|
+
RadioGroup,
|
|
103
|
+
removeToast,
|
|
104
|
+
Row,
|
|
105
|
+
searchString,
|
|
106
|
+
Select,
|
|
107
|
+
SelectAll,
|
|
108
|
+
SelectRow,
|
|
109
|
+
Sheet,
|
|
110
|
+
Skeleton,
|
|
111
|
+
Spinner,
|
|
112
|
+
Switch,
|
|
113
|
+
Tab,
|
|
114
|
+
Table,
|
|
115
|
+
Tabs,
|
|
116
|
+
Textarea,
|
|
117
|
+
Toasts,
|
|
118
|
+
Tooltip,
|
|
119
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { onMounted } from 'vue'
|
|
3
|
-
import './backdrop.scss'
|
|
4
|
-
|
|
5
|
-
const emits = defineEmits<{
|
|
6
|
-
(e: 'close'): void
|
|
7
|
-
}>()
|
|
8
|
-
|
|
9
|
-
onMounted(() => {
|
|
10
|
-
window.addEventListener('keydown', (e) => {
|
|
11
|
-
if (e.key === 'Escape') {
|
|
12
|
-
emits('close')
|
|
13
|
-
}
|
|
14
|
-
})
|
|
15
|
-
})
|
|
16
|
-
</script>
|
|
17
|
-
|
|
18
|
-
<template>
|
|
19
|
-
<div class="vui-backdrop" @click.self="emits('close')">
|
|
20
|
-
<slot />
|
|
21
|
-
</div>
|
|
22
|
-
</template>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { onMounted } from 'vue'
|
|
3
|
+
import './backdrop.scss'
|
|
4
|
+
|
|
5
|
+
const emits = defineEmits<{
|
|
6
|
+
(e: 'close'): void
|
|
7
|
+
}>()
|
|
8
|
+
|
|
9
|
+
onMounted(() => {
|
|
10
|
+
window.addEventListener('keydown', (e) => {
|
|
11
|
+
if (e.key === 'Escape') {
|
|
12
|
+
emits('close')
|
|
13
|
+
}
|
|
14
|
+
})
|
|
15
|
+
})
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div class="vui-backdrop" @click.self="emits('close')">
|
|
20
|
+
<slot />
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--backdrop-offset: 64px;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.vui-backdrop {
|
|
6
|
-
z-index: 1000;
|
|
7
|
-
position: fixed;
|
|
8
|
-
display: block;
|
|
9
|
-
width: 100dvw;
|
|
10
|
-
height: 100dvh;
|
|
11
|
-
top: 0;
|
|
12
|
-
left: 0;
|
|
13
|
-
padding: var(--backdrop-offset);
|
|
14
|
-
overflow-y: auto;
|
|
15
|
-
|
|
16
|
-
&:after {
|
|
17
|
-
content: '';
|
|
18
|
-
position: fixed;
|
|
19
|
-
z-index: -1;
|
|
20
|
-
inset: 0;
|
|
21
|
-
background-color: var(--color-bg-lowered);
|
|
22
|
-
opacity: 0.9;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
html:has(.vui-backdrop) {
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
}
|
|
1
|
+
:root {
|
|
2
|
+
--backdrop-offset: 64px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.vui-backdrop {
|
|
6
|
+
z-index: 1000;
|
|
7
|
+
position: fixed;
|
|
8
|
+
display: block;
|
|
9
|
+
width: 100dvw;
|
|
10
|
+
height: 100dvh;
|
|
11
|
+
top: 0;
|
|
12
|
+
left: 0;
|
|
13
|
+
padding: var(--backdrop-offset);
|
|
14
|
+
overflow-y: auto;
|
|
15
|
+
|
|
16
|
+
&:after {
|
|
17
|
+
content: '';
|
|
18
|
+
position: fixed;
|
|
19
|
+
z-index: -1;
|
|
20
|
+
inset: 0;
|
|
21
|
+
background-color: var(--color-bg-lowered);
|
|
22
|
+
opacity: 0.9;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
html:has(.vui-backdrop) {
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
}
|
package/src/main.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createApp } from 'vue'
|
|
2
|
-
import App from './App.vue'
|
|
3
|
-
import './style/core.scss'
|
|
4
|
-
|
|
5
|
-
createApp(App).mount('#app')
|
|
1
|
+
import { createApp } from 'vue'
|
|
2
|
+
import App from './App.vue'
|
|
3
|
+
import './style/core.scss'
|
|
4
|
+
|
|
5
|
+
createApp(App).mount('#app')
|