@robuust-digital/vue-components 2.0.0-rc.0 → 2.0.0-rc.10
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/CHANGELOG.md +246 -0
- package/dist/_shared/{ButtonBase-CQjlJ85F.js → ButtonBase-DfkwHIhN.js} +10 -10
- package/dist/_shared/Modal-DdpJnce6.js +200 -0
- package/dist/_shared/{Tooltip-BKXJoJ1x.js → Tooltip-B93ZF7IF.js} +16 -16
- package/dist/combobox/combobox.css +76 -34
- package/dist/combobox/index.js +46 -46
- package/dist/core/accordion.css +21 -10
- package/dist/core/alert.css +26 -20
- package/dist/core/badge.css +10 -10
- package/dist/core/button.css +31 -19
- package/dist/core/checkbox.css +35 -10
- package/dist/core/empty-state.css +6 -6
- package/dist/core/index.js +351 -347
- package/dist/core/input.css +23 -13
- package/dist/core/pagination.css +68 -9
- package/dist/core/radio.css +35 -10
- package/dist/core/select.css +25 -16
- package/dist/core/styles.css +5 -35
- package/dist/core/table.css +66 -5
- package/dist/core/tabs.css +20 -9
- package/dist/core/textarea.css +17 -10
- package/dist/core/utilities.css +12 -0
- package/dist/dialogs/drawer.css +140 -4
- package/dist/dialogs/index.js +100 -93
- package/dist/dialogs/modal.css +124 -22
- package/dist/dialogs/styles.css +20 -0
- package/dist/dropdown/dropdown.css +79 -49
- package/dist/dropdown/index.js +38 -38
- package/dist/lightswitch/lightswitch.css +19 -8
- package/dist/rich-text-editor/index.js +42 -39
- package/dist/rich-text-editor/rich-text.css +28 -10
- package/dist/toast/index.js +35 -34
- package/dist/toast/toast.css +54 -28
- package/dist/tooltip/index.js +1 -1
- package/dist/tooltip/tooltip.css +18 -16
- package/package.json +22 -8
- package/dist/_shared/Modal-COVlUEud.js +0 -193
package/dist/toast/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { onMounted as
|
|
2
|
-
import { TransitionRoot as
|
|
3
|
-
import { r as
|
|
1
|
+
import { onMounted as y, watch as w, createBlock as n, openBlock as s, unref as r, withCtx as c, resolveDynamicComponent as m, normalizeClass as h, renderSlot as a, createElementVNode as u, createCommentVNode as f, toDisplayString as p, createElementBlock as C, createVNode as $ } from "vue";
|
|
2
|
+
import { TransitionRoot as b } from "@headlessui/vue";
|
|
3
|
+
import { r as g } from "../_shared/XMarkIcon-90mcPzBs.js";
|
|
4
4
|
const k = { class: "rvc-toast-title" }, V = {
|
|
5
5
|
__name: "Toast",
|
|
6
6
|
props: {
|
|
@@ -39,52 +39,53 @@ const k = { class: "rvc-toast-title" }, V = {
|
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
emits: ["toast:close"],
|
|
42
|
-
setup(t, { emit:
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
},
|
|
42
|
+
setup(t, { emit: d }) {
|
|
43
|
+
const o = t, v = d, l = () => {
|
|
44
|
+
o.timeout && o.show && setTimeout(() => {
|
|
45
|
+
v("toast:close");
|
|
46
|
+
}, o.timeout);
|
|
47
47
|
};
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
}),
|
|
51
|
-
|
|
52
|
-
}), (
|
|
48
|
+
return y(() => {
|
|
49
|
+
l();
|
|
50
|
+
}), w(() => o.show, (e) => {
|
|
51
|
+
e && l();
|
|
52
|
+
}), (e, i) => (s(), n(r(b), {
|
|
53
53
|
show: t.show,
|
|
54
54
|
as: "template",
|
|
55
|
-
enter: "transition-
|
|
56
|
-
"enter-from": "
|
|
57
|
-
"enter-to": "
|
|
58
|
-
leave: "transition-
|
|
59
|
-
"leave-from": "
|
|
60
|
-
"leave-to": "
|
|
55
|
+
enter: "rvc-toast-transition-enter",
|
|
56
|
+
"enter-from": "rvc-toast-transition-enter-from",
|
|
57
|
+
"enter-to": "rvc-toast-transition-enter-to",
|
|
58
|
+
leave: "rvc-toast-transition-leave",
|
|
59
|
+
"leave-from": "rvc-toast-transition-leave-from",
|
|
60
|
+
"leave-to": "rvc-toast-transition-leave-to"
|
|
61
61
|
}, {
|
|
62
62
|
default: c(() => [
|
|
63
|
-
(s(),
|
|
64
|
-
class:
|
|
63
|
+
(s(), n(m(t.as), {
|
|
64
|
+
class: h(["rvc-toast", `rvc-toast-${t.position}`, `rvc-toast-${t.type}`, { "rvc-toast-open": t.show }])
|
|
65
65
|
}, {
|
|
66
66
|
default: c(() => [
|
|
67
|
-
a(
|
|
68
|
-
t.icon ? (s(),
|
|
67
|
+
a(e.$slots, "icon", {}, () => [
|
|
68
|
+
t.icon ? (s(), n(m(t.icon), {
|
|
69
69
|
key: 0,
|
|
70
70
|
class: "rvc-toast-icon"
|
|
71
|
-
})) :
|
|
71
|
+
})) : f("", !0)
|
|
72
72
|
]),
|
|
73
|
-
|
|
74
|
-
a(
|
|
75
|
-
|
|
73
|
+
u("div", null, [
|
|
74
|
+
a(e.$slots, "title", {}, () => [
|
|
75
|
+
u("span", k, p(t.title), 1)
|
|
76
76
|
]),
|
|
77
|
-
a(
|
|
77
|
+
a(e.$slots, "default")
|
|
78
78
|
]),
|
|
79
|
-
a(
|
|
80
|
-
t.showClose ? (s(),
|
|
79
|
+
a(e.$slots, "close", {}, () => [
|
|
80
|
+
t.showClose ? (s(), C("button", {
|
|
81
81
|
key: 0,
|
|
82
82
|
type: "button",
|
|
83
|
-
class: "rvc-toast-close
|
|
84
|
-
|
|
83
|
+
class: "rvc-toast-close",
|
|
84
|
+
"aria-label": "Close",
|
|
85
|
+
onClick: i[0] || (i[0] = (B) => e.$emit("toast:close"))
|
|
85
86
|
}, [
|
|
86
|
-
|
|
87
|
-
])) :
|
|
87
|
+
$(r(g))
|
|
88
|
+
])) : f("", !0)
|
|
88
89
|
])
|
|
89
90
|
]),
|
|
90
91
|
_: 3
|
package/dist/toast/toast.css
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
--rvc-toast-anchor-decoration: underline;
|
|
14
14
|
--rvc-toast-icon-size: calc(var(--spacing) * 6);
|
|
15
15
|
--rvc-toast-title-font-weight: var(--font-weight-medium);
|
|
16
|
-
--rvc-toast-transition-property:
|
|
16
|
+
--rvc-toast-transition-property: color, background-color, border-color;
|
|
17
17
|
--rvc-toast-offset: calc(var(--spacing) * 6);
|
|
18
18
|
|
|
19
19
|
/* Default (Info) variant */
|
|
@@ -59,23 +59,26 @@
|
|
|
59
59
|
|
|
60
60
|
@layer components {
|
|
61
61
|
.rvc-toast {
|
|
62
|
-
gap: var(--rvc-toast-gap);
|
|
63
|
-
padding: var(--rvc-toast-padding-y) var(--rvc-toast-padding-x);
|
|
64
|
-
border-radius: var(--rvc-toast-border-radius);
|
|
65
|
-
font-size: var(--rvc-toast-font-size);
|
|
66
|
-
background-color: var(--rvc-toast-bg-color);
|
|
67
|
-
color: var(--rvc-toast-color);
|
|
68
|
-
width: var(--rvc-toast-width);
|
|
69
|
-
max-width: var(--rvc-toast-max-width);
|
|
70
|
-
border-width: var(--rvc-toast-border-width);
|
|
71
|
-
border-color: var(--rvc-toast-border-color);
|
|
72
|
-
filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.05));
|
|
73
62
|
display: flex;
|
|
74
63
|
position: fixed;
|
|
64
|
+
z-index: 999;
|
|
75
65
|
left: 50%;
|
|
76
|
-
|
|
66
|
+
width: var(--rvc-toast-width);
|
|
67
|
+
max-width: var(--rvc-toast-max-width);
|
|
68
|
+
padding: var(--rvc-toast-padding-y) var(--rvc-toast-padding-x);
|
|
77
69
|
overflow: hidden;
|
|
78
|
-
|
|
70
|
+
transform: translateX(-50%);
|
|
71
|
+
transition-property: opacity;
|
|
72
|
+
transition-duration: var(--rvc-toast-transition-duration);
|
|
73
|
+
transition-timing-function: var(--rvc-toast-transition-timing-function);
|
|
74
|
+
border-width: var(--rvc-toast-border-width);
|
|
75
|
+
border-radius: var(--rvc-toast-border-radius);
|
|
76
|
+
border-color: var(--rvc-toast-border-color);
|
|
77
|
+
background-color: var(--rvc-toast-bg-color);
|
|
78
|
+
color: var(--rvc-toast-color);
|
|
79
|
+
font-size: var(--rvc-toast-font-size);
|
|
80
|
+
gap: var(--rvc-toast-gap);
|
|
81
|
+
filter: drop-shadow(0 4px 8px rgb(0 0 0 / 5%));
|
|
79
82
|
|
|
80
83
|
&.rvc-toast-bottom {
|
|
81
84
|
bottom: var(--rvc-toast-offset);
|
|
@@ -86,11 +89,11 @@
|
|
|
86
89
|
}
|
|
87
90
|
|
|
88
91
|
a {
|
|
89
|
-
text-decoration: var(--rvc-toast-anchor-decoration);
|
|
90
92
|
transition-property: var(--rvc-toast-transition-property);
|
|
91
93
|
transition-duration: var(--rvc-toast-transition-duration);
|
|
92
94
|
transition-timing-function: var(--rvc-toast-transition-timing-function);
|
|
93
95
|
color: var(--rvc-toast-anchor-color);
|
|
96
|
+
text-decoration: var(--rvc-toast-anchor-decoration);
|
|
94
97
|
|
|
95
98
|
&:hover {
|
|
96
99
|
color: var(--rvc-toast-anchor-color);
|
|
@@ -98,9 +101,9 @@
|
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
ul, ol {
|
|
101
|
-
list-style-position: inside;
|
|
102
104
|
margin: 0;
|
|
103
105
|
padding-left: calc(var(--spacing) * 2);
|
|
106
|
+
list-style-position: inside;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
ul {
|
|
@@ -112,39 +115,44 @@
|
|
|
112
115
|
}
|
|
113
116
|
|
|
114
117
|
.rvc-toast-close {
|
|
115
|
-
background-color: var(--rvc-toast-close-bg-color);
|
|
116
|
-
color: var(--rvc-toast-icon-color);
|
|
117
|
-
border-bottom-left-radius: var(--rvc-toast-border-radius);
|
|
118
|
-
transition-property: var(--rvc-toast-transition-property);
|
|
119
|
-
transition-duration: var(--rvc-toast-transition-duration);
|
|
120
|
-
transition-timing-function: var(--rvc-toast-transition-timing-function);
|
|
121
118
|
display: inline-flex;
|
|
122
|
-
justify-content: center;
|
|
123
|
-
align-items: center;
|
|
124
119
|
position: absolute;
|
|
125
120
|
top: 0;
|
|
126
121
|
right: 0;
|
|
122
|
+
align-items: center;
|
|
123
|
+
justify-content: center;
|
|
127
124
|
padding: calc(var(--spacing) * 1.5);
|
|
125
|
+
transition-property: var(--rvc-toast-transition-property);
|
|
126
|
+
transition-duration: var(--rvc-toast-transition-duration);
|
|
127
|
+
transition-timing-function: var(--rvc-toast-transition-timing-function);
|
|
128
|
+
border-bottom-left-radius: var(--rvc-toast-border-radius);
|
|
129
|
+
background-color: var(--rvc-toast-close-bg-color);
|
|
130
|
+
color: var(--rvc-toast-icon-color);
|
|
128
131
|
|
|
129
132
|
&:hover {
|
|
130
133
|
background-color: var(--rvc-toast-close-bg-color-hover);
|
|
131
134
|
color: var(--rvc-toast-icon-color-hover);
|
|
132
135
|
}
|
|
136
|
+
|
|
137
|
+
svg {
|
|
138
|
+
width: calc(var(--spacing) * 5);
|
|
139
|
+
height: calc(var(--spacing) * 5);
|
|
140
|
+
}
|
|
133
141
|
}
|
|
134
142
|
|
|
135
143
|
.rvc-toast-icon {
|
|
144
|
+
display: block;
|
|
145
|
+
flex-shrink: 0;
|
|
136
146
|
width: var(--rvc-toast-icon-size);
|
|
137
147
|
height: var(--rvc-toast-icon-size);
|
|
138
148
|
color: var(--rvc-toast-icon-color);
|
|
139
|
-
display: block;
|
|
140
|
-
flex-shrink: 0;
|
|
141
149
|
}
|
|
142
150
|
|
|
143
151
|
.rvc-toast-title {
|
|
144
|
-
color: var(--rvc-toast-title-color);
|
|
145
|
-
font-weight: var(--rvc-toast-title-font-weight);
|
|
146
152
|
display: block;
|
|
147
153
|
margin-bottom: calc(var(--spacing) * 2);
|
|
154
|
+
color: var(--rvc-toast-title-color);
|
|
155
|
+
font-weight: var(--rvc-toast-title-font-weight);
|
|
148
156
|
|
|
149
157
|
&:last-child {
|
|
150
158
|
margin-bottom: 0;
|
|
@@ -184,4 +192,22 @@
|
|
|
184
192
|
--rvc-toast-anchor-color-hover: var(--rvc-toast-anchor-color-danger-hover);
|
|
185
193
|
}
|
|
186
194
|
}
|
|
195
|
+
|
|
196
|
+
/* Transitions */
|
|
197
|
+
.rvc-toast-transition-enter,
|
|
198
|
+
.rvc-toast-transition-leave {
|
|
199
|
+
transition-property: opacity;
|
|
200
|
+
transition-duration: 300ms;
|
|
201
|
+
transition-timing-function: var(--rvc-toast-transition-timing-function);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.rvc-toast-transition-enter-from,
|
|
205
|
+
.rvc-toast-transition-leave-to {
|
|
206
|
+
opacity: 0;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.rvc-toast-transition-enter-to,
|
|
210
|
+
.rvc-toast-transition-leave-from {
|
|
211
|
+
opacity: 1;
|
|
212
|
+
}
|
|
187
213
|
}
|
package/dist/tooltip/index.js
CHANGED
package/dist/tooltip/tooltip.css
CHANGED
|
@@ -20,39 +20,36 @@
|
|
|
20
20
|
|
|
21
21
|
@layer components {
|
|
22
22
|
.rvc-tooltip {
|
|
23
|
+
visibility: hidden;
|
|
24
|
+
position: absolute;
|
|
23
25
|
z-index: 10;
|
|
24
|
-
|
|
26
|
+
top: 0;
|
|
27
|
+
left: 0;
|
|
28
|
+
width: var(--rvc-tooltip-width);
|
|
29
|
+
padding: var(--rvc-tooltip-padding-y) var(--rvc-tooltip-padding-x) var(--rvc-tooltip-padding-y) var(--rvc-tooltip-padding-x);
|
|
25
30
|
transition-property: var(--rvc-tooltip-transition-property);
|
|
26
31
|
transition-duration: var(--rvc-tooltip-transition-duration);
|
|
27
32
|
transition-timing-function: var(--rvc-tooltip-transition-timing-function);
|
|
33
|
+
opacity: 0;
|
|
34
|
+
color: var(--rvc-tooltip-color);
|
|
28
35
|
text-align: var(--rvc-tooltip-text-align);
|
|
29
|
-
padding-top: var(--rvc-tooltip-padding-y);
|
|
30
|
-
padding-right: var(--rvc-tooltip-padding-x);
|
|
31
|
-
padding-bottom: var(--rvc-tooltip-padding-y);
|
|
32
|
-
padding-left: var(--rvc-tooltip-padding-x);
|
|
33
|
-
width: var(--rvc-tooltip-width);
|
|
34
|
-
position: absolute;
|
|
35
|
-
top: 0;
|
|
36
|
-
left: 0;
|
|
37
36
|
|
|
38
37
|
&::before {
|
|
39
38
|
content: '';
|
|
40
39
|
position: absolute;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
bottom: 0;
|
|
44
|
-
left: 0;
|
|
40
|
+
z-index: -1;
|
|
41
|
+
inset: 0;
|
|
45
42
|
border-radius: var(--rvc-tooltip-border-radius);
|
|
46
43
|
background-color: var(--rvc-tooltip-bg-color);
|
|
47
|
-
z-index: -1;
|
|
48
44
|
}
|
|
49
45
|
|
|
50
46
|
.rvc-tooltip-arrow {
|
|
51
|
-
|
|
47
|
+
position: absolute;
|
|
48
|
+
z-index: -1;
|
|
52
49
|
width: var(--rvc-tooltip-arrow-size);
|
|
53
50
|
height: var(--rvc-tooltip-arrow-size);
|
|
51
|
+
background-color: var(--rvc-tooltip-bg-color);
|
|
54
52
|
clip-path: polygon(0 0, 50% 50%, 100% 0);
|
|
55
|
-
z-index: -1;
|
|
56
53
|
}
|
|
57
54
|
|
|
58
55
|
&.rvc-tooltip-blur::before,
|
|
@@ -66,4 +63,9 @@
|
|
|
66
63
|
--rvc-tooltip-arrow-size: var(--rvc-tooltip-arrow-size-sm);
|
|
67
64
|
}
|
|
68
65
|
}
|
|
66
|
+
|
|
67
|
+
.rvc-tooltip-wrapper:hover .rvc-tooltip {
|
|
68
|
+
visibility: visible;
|
|
69
|
+
opacity: 1;
|
|
70
|
+
}
|
|
69
71
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robuust-digital/vue-components",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,11 +17,15 @@
|
|
|
17
17
|
},
|
|
18
18
|
"homepage": "https://github.com/robuust/vue-components/#readme",
|
|
19
19
|
"files": [
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
20
|
+
"dist",
|
|
21
|
+
"LICENSE",
|
|
22
|
+
"README.md",
|
|
23
|
+
"CHANGELOG.md"
|
|
23
24
|
],
|
|
25
|
+
"main": "./dist/core/index.js",
|
|
26
|
+
"module": "./dist/core/index.js",
|
|
24
27
|
"exports": {
|
|
28
|
+
".": "./dist/core/index.js",
|
|
25
29
|
"./core": "./dist/core/index.js",
|
|
26
30
|
"./core/css": "./dist/core/styles.css",
|
|
27
31
|
"./core/theme": "./dist/core/theme.css",
|
|
@@ -47,7 +51,8 @@
|
|
|
47
51
|
"docs:build": "vitepress build docs",
|
|
48
52
|
"docs:preview": "vitepress preview docs",
|
|
49
53
|
"test:unit": "vitest run",
|
|
50
|
-
"lint": "eslint ."
|
|
54
|
+
"lint": "eslint .",
|
|
55
|
+
"lint:style": "stylelint 'src/**/*.{vue,css}'"
|
|
51
56
|
},
|
|
52
57
|
"dependencies": {
|
|
53
58
|
"@floating-ui/vue": "^1.1.6",
|
|
@@ -56,7 +61,7 @@
|
|
|
56
61
|
"@tiptap/extension-link": "^2.11.5",
|
|
57
62
|
"@tiptap/starter-kit": "^2.11.5",
|
|
58
63
|
"@tiptap/vue-3": "^2.11.5",
|
|
59
|
-
"@vueuse/core": "^
|
|
64
|
+
"@vueuse/core": "^13.0.0",
|
|
60
65
|
"vue": "^3.5.13"
|
|
61
66
|
},
|
|
62
67
|
"devDependencies": {
|
|
@@ -71,14 +76,23 @@
|
|
|
71
76
|
"eslint-plugin-vue": "^9.32.0",
|
|
72
77
|
"jsdom": "^26.0.0",
|
|
73
78
|
"postcss": "^8.5.2",
|
|
79
|
+
"postcss-html": "^1.8.0",
|
|
80
|
+
"postcss-scss": "^4.0.9",
|
|
81
|
+
"stylelint": "^16.14.1",
|
|
82
|
+
"stylelint-config-property-sort-order-smacss": "^10.0.0",
|
|
83
|
+
"stylelint-config-standard": "^38.0.0",
|
|
74
84
|
"tailwindcss": "^4.0.6",
|
|
75
85
|
"vite": "^6.1.0",
|
|
76
86
|
"vite-plugin-eslint": "^1.8.1",
|
|
77
|
-
"vite-plugin-static-copy": "^
|
|
87
|
+
"vite-plugin-static-copy": "^3.0.0",
|
|
88
|
+
"vite-plugin-stylelint": "^6.0.0",
|
|
78
89
|
"vite-plugin-vue-devtools": "^7.7.2",
|
|
79
90
|
"vite-svg-loader": "^5.1.0",
|
|
80
91
|
"vitepress": "^2.0.0-alpha.2",
|
|
81
92
|
"vitest": "^3.0.5"
|
|
82
93
|
},
|
|
83
|
-
"
|
|
94
|
+
"resolutions": {
|
|
95
|
+
"@vueuse/core": "^13.0.0"
|
|
96
|
+
},
|
|
97
|
+
"packageManager": "yarn@4.9.1"
|
|
84
98
|
}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { ref as g, computed as f, createBlock as w, openBlock as C, unref as a, withCtx as r, createVNode as n, withModifiers as x, createElementVNode as o, normalizeClass as B, renderSlot as b, createElementBlock as E, createCommentVNode as D, createTextVNode as L, toDisplayString as h } from "vue";
|
|
2
|
-
import { TransitionRoot as F, Dialog as I, TransitionChild as $, DialogPanel as N, DialogTitle as R } from "@headlessui/vue";
|
|
3
|
-
import { _ as S } from "./ButtonBase-CQjlJ85F.js";
|
|
4
|
-
import { r as T } from "./XMarkIcon-90mcPzBs.js";
|
|
5
|
-
function V(t) {
|
|
6
|
-
const c = g(null), i = g(!1), y = f(() => t.as === "form"), v = f(() => `${t.id}-title`), d = f(() => `${t.id}-content`), u = f(() => {
|
|
7
|
-
var m;
|
|
8
|
-
return (m = c.value) == null ? void 0 : m.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
9
|
-
});
|
|
10
|
-
return {
|
|
11
|
-
contentRef: c,
|
|
12
|
-
ready: i,
|
|
13
|
-
isForm: y,
|
|
14
|
-
titleId: v,
|
|
15
|
-
descriptionId: d,
|
|
16
|
-
initialFocusElement: u
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const q = {
|
|
20
|
-
role: "presentation",
|
|
21
|
-
class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
22
|
-
}, z = { class: "flex min-h-full justify-center p-4 items-center sm:p-0" }, j = { class: "rvc-modal-header" }, M = { class: "flex items-center justify-between" }, A = {
|
|
23
|
-
key: 0,
|
|
24
|
-
class: "ml-3 flex h-7 items-center"
|
|
25
|
-
}, P = ["id"], G = { class: "rvc-modal-footer" }, Q = {
|
|
26
|
-
__name: "Modal",
|
|
27
|
-
props: {
|
|
28
|
-
as: {
|
|
29
|
-
type: String,
|
|
30
|
-
default: "div"
|
|
31
|
-
},
|
|
32
|
-
id: {
|
|
33
|
-
type: String,
|
|
34
|
-
required: !0
|
|
35
|
-
},
|
|
36
|
-
title: {
|
|
37
|
-
type: String,
|
|
38
|
-
required: !0
|
|
39
|
-
},
|
|
40
|
-
showClose: {
|
|
41
|
-
type: Boolean
|
|
42
|
-
},
|
|
43
|
-
spinning: {
|
|
44
|
-
type: Boolean
|
|
45
|
-
},
|
|
46
|
-
submitLabel: {
|
|
47
|
-
type: String,
|
|
48
|
-
default: "Confirm"
|
|
49
|
-
},
|
|
50
|
-
cancelLabel: {
|
|
51
|
-
type: String,
|
|
52
|
-
default: "Cancel"
|
|
53
|
-
},
|
|
54
|
-
panelClass: {
|
|
55
|
-
type: String,
|
|
56
|
-
default: "sm:max-w-lg"
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
emits: ["modal:open", "modal:close", "modal:save", "modal:closed"],
|
|
60
|
-
setup(t, { emit: c }) {
|
|
61
|
-
const i = c, y = t, {
|
|
62
|
-
contentRef: v,
|
|
63
|
-
ready: d,
|
|
64
|
-
isForm: u,
|
|
65
|
-
titleId: m,
|
|
66
|
-
descriptionId: p,
|
|
67
|
-
initialFocusElement: k
|
|
68
|
-
} = V(y);
|
|
69
|
-
return (s, e) => (C(), w(a(F), { as: "template" }, {
|
|
70
|
-
default: r(() => [
|
|
71
|
-
n(a(I), {
|
|
72
|
-
as: t.as,
|
|
73
|
-
class: "rvc-modal",
|
|
74
|
-
static: "",
|
|
75
|
-
"aria-modal": "true",
|
|
76
|
-
role: "dialog",
|
|
77
|
-
"initial-focus": a(k),
|
|
78
|
-
"aria-labelledby": a(m),
|
|
79
|
-
onClose: e[6] || (e[6] = (l) => s.$emit("modal:close")),
|
|
80
|
-
onSubmit: e[7] || (e[7] = x((l) => i("modal:save", l), ["prevent"]))
|
|
81
|
-
}, {
|
|
82
|
-
default: r(() => [
|
|
83
|
-
n(a($), {
|
|
84
|
-
as: "template",
|
|
85
|
-
enter: "ease-out duration-300",
|
|
86
|
-
"enter-from": "opacity-0",
|
|
87
|
-
"enter-to": "opacity-100",
|
|
88
|
-
leave: "ease-in duration-200",
|
|
89
|
-
"leave-from": "opacity-100",
|
|
90
|
-
"leave-to": "opacity-0",
|
|
91
|
-
onBeforeEnter: e[0] || (e[0] = (l) => i("modal:open"))
|
|
92
|
-
}, {
|
|
93
|
-
default: r(() => e[8] || (e[8] = [
|
|
94
|
-
o("div", {
|
|
95
|
-
"aria-hidden": "true",
|
|
96
|
-
class: "fixed inset-0 transition-opacity rvc-modal-backdrop"
|
|
97
|
-
}, null, -1)
|
|
98
|
-
])),
|
|
99
|
-
_: 1
|
|
100
|
-
}),
|
|
101
|
-
o("div", q, [
|
|
102
|
-
o("div", z, [
|
|
103
|
-
n(a($), {
|
|
104
|
-
as: "template",
|
|
105
|
-
enter: "ease-out duration-300",
|
|
106
|
-
"enter-from": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
|
|
107
|
-
"enter-to": "opacity-100 translate-y-0 sm:scale-100",
|
|
108
|
-
leave: "ease-in duration-200",
|
|
109
|
-
"leave-from": "opacity-100 translate-y-0 sm:scale-100",
|
|
110
|
-
"leave-to": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
|
|
111
|
-
onBeforeEnter: e[4] || (e[4] = (l) => d.value = !0),
|
|
112
|
-
onAfterLeave: e[5] || (e[5] = (l) => (d.value = !1, i("modal:closed")))
|
|
113
|
-
}, {
|
|
114
|
-
default: r(() => [
|
|
115
|
-
n(a(N), {
|
|
116
|
-
class: B(["rvc-modal-panel", t.panelClass]),
|
|
117
|
-
"aria-busy": t.spinning,
|
|
118
|
-
"aria-describedby": a(p)
|
|
119
|
-
}, {
|
|
120
|
-
default: r(() => [
|
|
121
|
-
o("header", j, [
|
|
122
|
-
b(s.$slots, "header", { title: t.title }, () => [
|
|
123
|
-
o("div", M, [
|
|
124
|
-
n(a(R), {
|
|
125
|
-
id: a(m),
|
|
126
|
-
class: "rvc-modal-title"
|
|
127
|
-
}, {
|
|
128
|
-
default: r(() => [
|
|
129
|
-
L(h(t.title), 1)
|
|
130
|
-
]),
|
|
131
|
-
_: 1
|
|
132
|
-
}, 8, ["id"]),
|
|
133
|
-
t.showClose ? (C(), E("div", A, [
|
|
134
|
-
o("button", {
|
|
135
|
-
type: "button",
|
|
136
|
-
class: "relative rvc-modal-close",
|
|
137
|
-
"aria-label": "Close panel",
|
|
138
|
-
onClick: e[1] || (e[1] = (l) => i("modal:close"))
|
|
139
|
-
}, [
|
|
140
|
-
n(a(T), {
|
|
141
|
-
class: "size-full",
|
|
142
|
-
"aria-hidden": "true"
|
|
143
|
-
})
|
|
144
|
-
])
|
|
145
|
-
])) : D("", !0)
|
|
146
|
-
])
|
|
147
|
-
])
|
|
148
|
-
]),
|
|
149
|
-
o("div", {
|
|
150
|
-
id: a(p),
|
|
151
|
-
ref_key: "contentRef",
|
|
152
|
-
ref: v,
|
|
153
|
-
class: "rvc-modal-content"
|
|
154
|
-
}, [
|
|
155
|
-
b(s.$slots, "default", { ready: a(d) })
|
|
156
|
-
], 8, P),
|
|
157
|
-
o("footer", G, [
|
|
158
|
-
b(s.$slots, "footer", { loading: t.spinning }, () => [
|
|
159
|
-
n(S, {
|
|
160
|
-
type: a(u) ? "submit" : "button",
|
|
161
|
-
label: t.submitLabel,
|
|
162
|
-
spinning: t.spinning,
|
|
163
|
-
disabled: t.spinning,
|
|
164
|
-
onClick: e[2] || (e[2] = (l) => !a(u) && s.$emit("modal:save"))
|
|
165
|
-
}, null, 8, ["type", "label", "spinning", "disabled"]),
|
|
166
|
-
n(S, {
|
|
167
|
-
type: "button",
|
|
168
|
-
color: "light",
|
|
169
|
-
label: t.cancelLabel,
|
|
170
|
-
onClick: e[3] || (e[3] = (l) => s.$emit("modal:close"))
|
|
171
|
-
}, null, 8, ["label"])
|
|
172
|
-
])
|
|
173
|
-
])
|
|
174
|
-
]),
|
|
175
|
-
_: 3
|
|
176
|
-
}, 8, ["class", "aria-busy", "aria-describedby"])
|
|
177
|
-
]),
|
|
178
|
-
_: 3
|
|
179
|
-
})
|
|
180
|
-
])
|
|
181
|
-
])
|
|
182
|
-
]),
|
|
183
|
-
_: 3
|
|
184
|
-
}, 8, ["as", "initial-focus", "aria-labelledby"])
|
|
185
|
-
]),
|
|
186
|
-
_: 3
|
|
187
|
-
}));
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
export {
|
|
191
|
-
Q as _,
|
|
192
|
-
V as u
|
|
193
|
-
};
|