@cypress-design/vue-alert 1.0.0 → 2.0.0-next.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/.turbo/turbo-build.log +5 -3
- package/Alert.vue +4 -4
- package/CHANGELOG.md +11 -0
- package/dist/index.es.mjs +78 -96
- package/dist/index.es.mjs.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/package.json +4 -4
- package/vite.config.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
yarn run v1.22.22
|
|
1
2
|
$ yarn build:module && yarn build:types
|
|
2
3
|
$ yarn vite build
|
|
3
4
|
$ /home/runner/work/cypress-design/cypress-design/node_modules/.bin/vite build
|
|
@@ -7,8 +8,9 @@ transforming...
|
|
|
7
8
|
[32m✓[39m 4 modules transformed.
|
|
8
9
|
rendering chunks...
|
|
9
10
|
computing gzip size...
|
|
10
|
-
[2mdist/[22m[36mindex.es.mjs [39m[1m[
|
|
11
|
-
[2mdist/[22m[36mindex.umd.js [39m[1m[
|
|
12
|
-
[32m✓ built in
|
|
11
|
+
[2mdist/[22m[36mindex.es.mjs [39m[1m[2m6.68 kB[22m[1m[22m[2m │ gzip: 1.89 kB[22m[2m │ map: 11.92 kB[22m
|
|
12
|
+
[2mdist/[22m[36mindex.umd.js [39m[1m[2m5.89 kB[22m[1m[22m[2m │ gzip: 1.73 kB[22m[2m │ map: 11.57 kB[22m
|
|
13
|
+
[32m✓ built in 4.43s[39m
|
|
13
14
|
$ yarn vue-tsc --project ./tsconfig.build.json
|
|
14
15
|
$ /home/runner/work/cypress-design/cypress-design/node_modules/.bin/vue-tsc --project ./tsconfig.build.json
|
|
16
|
+
Done in 20.35s.
|
package/Alert.vue
CHANGED
|
@@ -10,12 +10,12 @@ import {
|
|
|
10
10
|
import { DetailsAnimation } from '@cypress-design/details-animation'
|
|
11
11
|
import {
|
|
12
12
|
AlertSize,
|
|
13
|
-
|
|
13
|
+
CssAlertSizesClasses,
|
|
14
14
|
AlertVariant,
|
|
15
15
|
defaultAlertSize,
|
|
16
16
|
defaultAlertTitle,
|
|
17
17
|
defaultAlertVariant,
|
|
18
|
-
|
|
18
|
+
CssAlertClasses,
|
|
19
19
|
} from '@cypress-design/constants-alert'
|
|
20
20
|
|
|
21
21
|
const dismissed = ref(false)
|
|
@@ -81,7 +81,7 @@ const detailsRef = ref(null)
|
|
|
81
81
|
const contentRef = ref(null)
|
|
82
82
|
|
|
83
83
|
const variantClasses = computed(() => {
|
|
84
|
-
return
|
|
84
|
+
return CssAlertClasses[variant.value] ?? {}
|
|
85
85
|
})
|
|
86
86
|
|
|
87
87
|
let timeout: number | undefined
|
|
@@ -136,7 +136,7 @@ const icon: ComputedRef<FunctionalComponent | null> = computed(() => {
|
|
|
136
136
|
})
|
|
137
137
|
|
|
138
138
|
const sizeClasses = computed(() => {
|
|
139
|
-
return
|
|
139
|
+
return CssAlertSizesClasses[props.size] ?? {}
|
|
140
140
|
})
|
|
141
141
|
</script>
|
|
142
142
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @cypress-design/vue-alert
|
|
2
2
|
|
|
3
|
+
## 2.0.0-next.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#468](https://github.com/cypress-io/cypress-design/pull/468) [`3236662`](https://github.com/cypress-io/cypress-design/commit/3236662fdecd5abbceadce750098a75301d48f88) Thanks [@elevatebart](https://github.com/elevatebart)! - refactor: use tailwind components to manage specificity of styles
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`3236662`](https://github.com/cypress-io/cypress-design/commit/3236662fdecd5abbceadce750098a75301d48f88)]:
|
|
12
|
+
- @cypress-design/vue-icon@2.0.0-next.0
|
|
13
|
+
|
|
3
14
|
## 1.0.0
|
|
4
15
|
|
|
5
16
|
### Major Changes
|
package/dist/index.es.mjs
CHANGED
|
@@ -1,86 +1,68 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { IconWarningCircle as
|
|
1
|
+
import { defineComponent as B, ref as v, useSlots as D, computed as n, onMounted as w, onUnmounted as S, h as f, openBlock as r, createElementBlock as d, normalizeClass as o, createElementVNode as i, renderSlot as u, normalizeProps as x, guardReactiveProps as $, createBlock as V, resolveDynamicComponent as N, mergeProps as P, createCommentVNode as t, createVNode as z, unref as C, createTextVNode as j, toDisplayString as _ } from "vue";
|
|
2
|
+
import { IconWarningCircle as A, IconCheckmarkOutline as E, IconActionDeleteLarge as L, IconChevronDownSmall as M } from "@cypress-design/vue-icon";
|
|
3
3
|
import { DetailsAnimation as O } from "@cypress-design/details-animation";
|
|
4
4
|
const U = {
|
|
5
|
-
xs: "
|
|
6
|
-
sm: "
|
|
7
|
-
md: "
|
|
8
|
-
lg: "
|
|
5
|
+
xs: "cyds-alert-alertsizesclasses-xs",
|
|
6
|
+
sm: "cyds-alert-alertsizesclasses-sm",
|
|
7
|
+
md: "cyds-alert-alertsizesclasses-md",
|
|
8
|
+
lg: "cyds-alert-alertsizesclasses-lg"
|
|
9
9
|
}, W = "lg", q = {
|
|
10
10
|
neutral: {
|
|
11
|
-
headerClass: "
|
|
12
|
-
bodyClass: "
|
|
13
|
-
borderClass: "
|
|
14
|
-
detailsHeaderClass: "
|
|
15
|
-
/* <tw-keep strokeColor="gray-600"/> */
|
|
11
|
+
headerClass: "cyds-alert-alertclasses-neutral-headerclass",
|
|
12
|
+
bodyClass: "cyds-alert-alertclasses-neutral-bodyclass",
|
|
13
|
+
borderClass: "cyds-alert-alertclasses-neutral-borderclass",
|
|
14
|
+
detailsHeaderClass: "cyds-alert-alertclasses-neutral-detailsheaderclass",
|
|
16
15
|
iconCloseColor: "gray-600",
|
|
17
|
-
/* <tw-keep strokeColor="gray-500"/> */
|
|
18
16
|
iconColor: "gray-500",
|
|
19
|
-
/* <tw-keep strokeColor="gray-300"/> */
|
|
20
17
|
iconChevronColor: "gray-300"
|
|
21
18
|
},
|
|
22
19
|
info: {
|
|
23
|
-
headerClass: "
|
|
24
|
-
bodyClass: "
|
|
25
|
-
borderClass: "
|
|
26
|
-
detailsHeaderClass: "
|
|
27
|
-
/* <tw-keep strokeColor="indigo-500"/> */
|
|
20
|
+
headerClass: "cyds-alert-alertclasses-info-headerclass",
|
|
21
|
+
bodyClass: "cyds-alert-alertclasses-info-bodyclass",
|
|
22
|
+
borderClass: "cyds-alert-alertclasses-info-borderclass",
|
|
23
|
+
detailsHeaderClass: "cyds-alert-alertclasses-info-detailsheaderclass",
|
|
28
24
|
iconCloseColor: "indigo-500",
|
|
29
|
-
/* <tw-keep strokeColor="indigo-500"/> */
|
|
30
25
|
iconColor: "indigo-500",
|
|
31
|
-
/* <tw-keep strokeColor="indigo-300"/> */
|
|
32
26
|
iconChevronColor: "indigo-300"
|
|
33
27
|
},
|
|
34
28
|
warning: {
|
|
35
|
-
headerClass: "
|
|
36
|
-
bodyClass: "
|
|
37
|
-
borderClass: "
|
|
38
|
-
detailsHeaderClass: "
|
|
39
|
-
/* <tw-keep strokeColor="orange-500"/> */
|
|
29
|
+
headerClass: "cyds-alert-alertclasses-warning-headerclass",
|
|
30
|
+
bodyClass: "cyds-alert-alertclasses-warning-bodyclass",
|
|
31
|
+
borderClass: "cyds-alert-alertclasses-warning-borderclass",
|
|
32
|
+
detailsHeaderClass: "cyds-alert-alertclasses-warning-detailsheaderclass",
|
|
40
33
|
iconCloseColor: "orange-500",
|
|
41
|
-
/* <tw-keep strokeColor="orange-400"/> */
|
|
42
34
|
iconColor: "orange-400",
|
|
43
|
-
/* <tw-keep strokeColor="orange-300"/> */
|
|
44
35
|
iconChevronColor: "orange-300"
|
|
45
36
|
},
|
|
46
37
|
error: {
|
|
47
|
-
headerClass: "
|
|
48
|
-
bodyClass: "
|
|
49
|
-
borderClass: "
|
|
50
|
-
detailsHeaderClass: "
|
|
51
|
-
/* <tw-keep strokeColor="red-500"/> */
|
|
38
|
+
headerClass: "cyds-alert-alertclasses-error-headerclass",
|
|
39
|
+
bodyClass: "cyds-alert-alertclasses-error-bodyclass",
|
|
40
|
+
borderClass: "cyds-alert-alertclasses-error-borderclass",
|
|
41
|
+
detailsHeaderClass: "cyds-alert-alertclasses-error-detailsheaderclass",
|
|
52
42
|
iconCloseColor: "red-500",
|
|
53
|
-
/* <tw-keep strokeColor="red-400"/> */
|
|
54
43
|
iconColor: "red-400",
|
|
55
|
-
/* <tw-keep strokeColor="red-300"/> */
|
|
56
44
|
iconChevronColor: "red-300"
|
|
57
45
|
},
|
|
58
46
|
success: {
|
|
59
|
-
headerClass: "
|
|
60
|
-
bodyClass: "
|
|
61
|
-
borderClass: "
|
|
62
|
-
detailsHeaderClass: "
|
|
63
|
-
/* <tw-keep strokeColor="jade-600"/> */
|
|
47
|
+
headerClass: "cyds-alert-alertclasses-success-headerclass",
|
|
48
|
+
bodyClass: "cyds-alert-alertclasses-success-bodyclass",
|
|
49
|
+
borderClass: "cyds-alert-alertclasses-success-borderclass",
|
|
50
|
+
detailsHeaderClass: "cyds-alert-alertclasses-success-detailsheaderclass",
|
|
64
51
|
iconCloseColor: "jade-600",
|
|
65
|
-
/* <tw-keep strokeColor="jade-500"/> */
|
|
66
52
|
iconColor: "jade-500",
|
|
67
|
-
/* <tw-keep strokeColor="jade-300"/> */
|
|
68
53
|
iconChevronColor: "jade-300"
|
|
69
54
|
},
|
|
70
55
|
clear: {
|
|
71
|
-
wrapperClass: "
|
|
56
|
+
wrapperClass: "cyds-alert-alertclasses-clear-wrapperclass",
|
|
72
57
|
headerClass: "",
|
|
73
|
-
bodyClass: "
|
|
74
|
-
borderClass: "
|
|
75
|
-
detailsHeaderClass: "
|
|
76
|
-
/* <tw-keep strokeColor="gray-600"/> */
|
|
58
|
+
bodyClass: "cyds-alert-alertclasses-clear-bodyclass",
|
|
59
|
+
borderClass: "cyds-alert-alertclasses-clear-borderclass",
|
|
60
|
+
detailsHeaderClass: "cyds-alert-alertclasses-clear-detailsheaderclass",
|
|
77
61
|
iconCloseColor: "gray-600",
|
|
78
|
-
/* <tw-keep strokeColor="gray-500"/> */
|
|
79
62
|
iconColor: "gray-500",
|
|
80
|
-
/* <tw-keep strokeColor="gray-300"/> */
|
|
81
63
|
iconChevronColor: "gray-300"
|
|
82
64
|
}
|
|
83
|
-
}, F = "info", G = "Additional details", J = { class: "flex-1 font-medium" }, Z = /* @__PURE__ */
|
|
65
|
+
}, F = "info", G = "Additional details", J = { class: "flex-1 font-medium" }, Z = /* @__PURE__ */ B({
|
|
84
66
|
__name: "Alert",
|
|
85
67
|
props: {
|
|
86
68
|
variant: { default: void 0 },
|
|
@@ -93,95 +75,95 @@ const U = {
|
|
|
93
75
|
size: { default: W }
|
|
94
76
|
},
|
|
95
77
|
emits: ["dismiss"],
|
|
96
|
-
setup(
|
|
97
|
-
const
|
|
98
|
-
let
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}),
|
|
102
|
-
|
|
103
|
-
}),
|
|
104
|
-
|
|
78
|
+
setup(H, { emit: I }) {
|
|
79
|
+
const p = v(!1), b = D(), R = I, s = H, h = n(() => s.variant ?? s.type), y = v(null), m = v(null), e = n(() => q[h.value] ?? {});
|
|
80
|
+
let a;
|
|
81
|
+
w(() => {
|
|
82
|
+
s.duration && (a = setTimeout(g, s.duration));
|
|
83
|
+
}), w(() => {
|
|
84
|
+
y.value && m.value && new O(y.value, m.value);
|
|
85
|
+
}), S(() => {
|
|
86
|
+
a && clearTimeout(a);
|
|
105
87
|
});
|
|
106
|
-
function
|
|
107
|
-
|
|
88
|
+
function g() {
|
|
89
|
+
p.value = !0, R("dismiss"), a && (clearTimeout(a), a = void 0);
|
|
108
90
|
}
|
|
109
|
-
const
|
|
91
|
+
const c = n(() => ({
|
|
110
92
|
strokeColor: e.value.iconColor,
|
|
111
93
|
class: "my-[4px] mr-[8px]"
|
|
112
|
-
})),
|
|
113
|
-
switch (
|
|
94
|
+
})), k = n(() => {
|
|
95
|
+
switch (h.value) {
|
|
114
96
|
case "info":
|
|
115
97
|
return null;
|
|
116
98
|
case "success":
|
|
117
|
-
return () =>
|
|
99
|
+
return () => f(E, c.value);
|
|
118
100
|
case "warning":
|
|
119
|
-
return () =>
|
|
101
|
+
return () => f(A, c.value);
|
|
120
102
|
case "error":
|
|
121
|
-
return () =>
|
|
103
|
+
return () => f(A, c.value);
|
|
122
104
|
default:
|
|
123
105
|
return null;
|
|
124
106
|
}
|
|
125
|
-
}),
|
|
126
|
-
return (
|
|
107
|
+
}), T = n(() => U[s.size] ?? {});
|
|
108
|
+
return (l, K) => p.value ? t("", !0) : (r(), d("div", {
|
|
127
109
|
key: 0,
|
|
128
|
-
class:
|
|
110
|
+
class: o(["overflow-hidden text-left", [e.value.wrapperClass, { rounded: !s.notRounded }]])
|
|
129
111
|
}, [
|
|
130
|
-
|
|
131
|
-
class:
|
|
112
|
+
i("div", {
|
|
113
|
+
class: o(["flex", [e.value.headerClass, T.value]])
|
|
132
114
|
}, [
|
|
133
|
-
u(
|
|
134
|
-
!
|
|
115
|
+
u(l.$slots, "icon", x($(c.value)), () => [
|
|
116
|
+
!s.noIcon && k.value ? (r(), V(N(k.value), x(P({ key: 0 }, c.value)), null, 16)) : t("", !0)
|
|
135
117
|
]),
|
|
136
|
-
|
|
137
|
-
u(
|
|
118
|
+
i("div", J, [
|
|
119
|
+
u(l.$slots, "default")
|
|
138
120
|
]),
|
|
139
|
-
|
|
121
|
+
l.dismissible ? (r(), d("button", {
|
|
140
122
|
key: 0,
|
|
141
123
|
class: "m-[4px] ml-[8px] h-[16px]",
|
|
142
124
|
"aria-label": "Dismiss",
|
|
143
|
-
onClick:
|
|
125
|
+
onClick: g
|
|
144
126
|
}, [
|
|
145
|
-
|
|
127
|
+
z(C(L), {
|
|
146
128
|
"stroke-color": e.value.iconCloseColor
|
|
147
129
|
}, null, 8, ["stroke-color"])
|
|
148
130
|
])) : t("", !0)
|
|
149
131
|
], 2),
|
|
150
|
-
C(
|
|
132
|
+
C(b).body ? (r(), d("div", {
|
|
151
133
|
key: 0,
|
|
152
|
-
class:
|
|
134
|
+
class: o(["p-[16px]", e.value.bodyClass])
|
|
153
135
|
}, [
|
|
154
|
-
u(
|
|
136
|
+
u(l.$slots, "body")
|
|
155
137
|
], 2)) : t("", !0),
|
|
156
|
-
C(
|
|
138
|
+
C(b).details ? (r(), d("details", {
|
|
157
139
|
key: 1,
|
|
158
140
|
ref_key: "detailsRef",
|
|
159
|
-
ref:
|
|
160
|
-
class:
|
|
141
|
+
ref: y,
|
|
142
|
+
class: o(["p-[16px] border-t border-t-1", [e.value.bodyClass, e.value.borderClass]])
|
|
161
143
|
}, [
|
|
162
|
-
|
|
163
|
-
class:
|
|
144
|
+
i("summary", {
|
|
145
|
+
class: o(["flex font-medium cursor-pointer details-none", e.value.detailsHeaderClass])
|
|
164
146
|
}, [
|
|
165
|
-
|
|
147
|
+
z(C(M), {
|
|
166
148
|
strokeColor: e.value.iconChevronColor,
|
|
167
149
|
class: "icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0"
|
|
168
150
|
}, null, 8, ["strokeColor"]),
|
|
169
|
-
|
|
151
|
+
j(" " + _(s.detailsTitle), 1)
|
|
170
152
|
], 2),
|
|
171
|
-
|
|
153
|
+
i("div", {
|
|
172
154
|
ref_key: "contentRef",
|
|
173
|
-
ref:
|
|
155
|
+
ref: m
|
|
174
156
|
}, [
|
|
175
|
-
|
|
176
|
-
u(
|
|
157
|
+
i("div", null, [
|
|
158
|
+
u(l.$slots, "details")
|
|
177
159
|
])
|
|
178
160
|
], 512)
|
|
179
161
|
], 2)) : t("", !0),
|
|
180
|
-
|
|
162
|
+
l.$slots.footer ? (r(), d("div", {
|
|
181
163
|
key: 2,
|
|
182
|
-
class:
|
|
164
|
+
class: o(e.value.bodyClass)
|
|
183
165
|
}, [
|
|
184
|
-
u(
|
|
166
|
+
u(l.$slots, "footer")
|
|
185
167
|
], 2)) : t("", !0)
|
|
186
168
|
], 2));
|
|
187
169
|
}
|
|
@@ -191,4 +173,4 @@ export {
|
|
|
191
173
|
};
|
|
192
174
|
//# sourceMappingURL=index.es.mjs.map
|
|
193
175
|
|
|
194
|
-
/* <wind-keep class="my-[4px] mr-[8px] overflow-hidden text-left rounded flex flex-1 font-medium m-[4px] ml-[8px] h-[16px] p-[16px] border-t cursor-pointer details-none transition transform -rotate-90 open:rotate-0
|
|
176
|
+
/* <wind-keep class="my-[4px] mr-[8px] overflow-hidden text-left rounded flex flex-1 font-medium m-[4px] ml-[8px] h-[16px] p-[16px] border-t cursor-pointer details-none transition transform -rotate-90 open:rotate-0"> */
|
package/dist/index.es.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.mjs","sources":["../../constants/dist/index.js","../Alert.vue"],"sourcesContent":["export const alertSizesClasses = {\n xs: 'py-[4px] px-[8px] leading-[22px] text-[14px]',\n sm: 'py-[8px] px-[12px] leading-[22px] text-[14px]',\n md: 'py-[12px] px-[16px] leading-[24px] text-[16px]',\n lg: 'p-[16px] leading-[24px] text-[16px]',\n};\nexport const defaultAlertSize = 'lg';\nexport const alertClasses = {\n neutral: {\n headerClass: 'text-gray-800 bg-gray-100',\n bodyClass: 'bg-gray-50 text-gray-500',\n borderClass: 'border-gray-100',\n detailsHeaderClass: 'text-gray-600',\n /* <tw-keep strokeColor=\"gray-600\"/> */\n iconCloseColor: 'gray-600',\n /* <tw-keep strokeColor=\"gray-500\"/> */\n iconColor: 'gray-500',\n /* <tw-keep strokeColor=\"gray-300\"/> */\n iconChevronColor: 'gray-300',\n },\n info: {\n headerClass: 'text-indigo-700 bg-indigo-100',\n bodyClass: 'bg-indigo-50 text-indigo-500',\n borderClass: 'border-indigo-100',\n detailsHeaderClass: 'text-indigo-600',\n /* <tw-keep strokeColor=\"indigo-500\"/> */\n iconCloseColor: 'indigo-500',\n /* <tw-keep strokeColor=\"indigo-500\"/> */\n iconColor: 'indigo-500',\n /* <tw-keep strokeColor=\"indigo-300\"/> */\n iconChevronColor: 'indigo-300',\n },\n warning: {\n headerClass: 'text-orange-700 bg-orange-100',\n bodyClass: 'bg-orange-50 text-orange-500',\n borderClass: 'border-orange-100',\n detailsHeaderClass: 'text-orange-600',\n /* <tw-keep strokeColor=\"orange-500\"/> */\n iconCloseColor: 'orange-500',\n /* <tw-keep strokeColor=\"orange-400\"/> */\n iconColor: 'orange-400',\n /* <tw-keep strokeColor=\"orange-300\"/> */\n iconChevronColor: 'orange-300',\n },\n error: {\n headerClass: 'text-red-700 bg-red-100',\n bodyClass: 'bg-red-50 text-red-500',\n borderClass: 'border-red-100',\n detailsHeaderClass: 'text-red-600',\n /* <tw-keep strokeColor=\"red-500\"/> */\n iconCloseColor: 'red-500',\n /* <tw-keep strokeColor=\"red-400\"/> */\n iconColor: 'red-400',\n /* <tw-keep strokeColor=\"red-300\"/> */\n iconChevronColor: 'red-300',\n },\n success: {\n headerClass: 'text-jade-700 bg-jade-100',\n bodyClass: 'bg-jade-50 text-jade-600',\n borderClass: 'border-jade-100',\n detailsHeaderClass: 'text-jade-600',\n /* <tw-keep strokeColor=\"jade-600\"/> */\n iconCloseColor: 'jade-600',\n /* <tw-keep strokeColor=\"jade-500\"/> */\n iconColor: 'jade-500',\n /* <tw-keep strokeColor=\"jade-300\"/> */\n iconChevronColor: 'jade-300',\n },\n clear: {\n wrapperClass: 'border-gray-50 bg-white border text-gray-700',\n headerClass: '',\n bodyClass: 'border-gray-50 border-t',\n borderClass: 'border-gray-50',\n detailsHeaderClass: 'text-gray-700',\n /* <tw-keep strokeColor=\"gray-600\"/> */\n iconCloseColor: 'gray-600',\n /* <tw-keep strokeColor=\"gray-500\"/> */\n iconColor: 'gray-500',\n /* <tw-keep strokeColor=\"gray-300\"/> */\n iconChevronColor: 'gray-300',\n },\n};\nexport const defaultAlertVariant = 'info';\nexport const defaultAlertTitle = 'Additional details';\n","<script lang=\"ts\" setup>\nimport type { FunctionalComponent, ComputedRef } from 'vue'\nimport { computed, useSlots, h, ref, onMounted, onUnmounted } from 'vue'\nimport {\n IconChevronDownSmall,\n IconActionDeleteLarge,\n IconWarningCircle,\n IconCheckmarkOutline,\n} from '@cypress-design/vue-icon'\nimport { DetailsAnimation } from '@cypress-design/details-animation'\nimport {\n AlertSize,\n alertSizesClasses,\n AlertVariant,\n defaultAlertSize,\n defaultAlertTitle,\n defaultAlertVariant,\n alertClasses,\n} from '@cypress-design/constants-alert'\n\nconst dismissed = ref(false)\n\nconst slots = useSlots()\n\nconst emit = defineEmits<{\n /**\n * Clicking on the dismiss button or dismissed after a timeout\n */\n (event: 'dismiss'): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Color scheme\n */\n variant?: AlertVariant\n /**\n * Color scheme\n * @deprecated use `variant` instead\n */\n type?: AlertVariant\n /**\n * If details are provided,text used in the toggle button\n */\n detailsTitle?: string\n /**\n * Show the dismiss button\n */\n dismissible?: boolean\n /**\n * When an icon is displayed by default, use this to remove it\n */\n noIcon?: boolean\n /**\n * If you need square corners\n */\n notRounded?: boolean\n /**\n * Dismiss the alert after a delay (in ms)\n */\n duration?: number\n /**\n * Size of the alert\n */\n size?: typeof defaultAlertSize | AlertSize\n }>(),\n {\n variant: undefined,\n type: defaultAlertVariant,\n detailsTitle: defaultAlertTitle,\n size: defaultAlertSize,\n },\n)\n\nconst variant = computed(() => {\n return props.variant ?? props.type\n})\n\nconst detailsRef = ref(null)\nconst contentRef = ref(null)\n\nconst variantClasses = computed(() => {\n return alertClasses[variant.value] ?? {}\n})\n\nlet timeout: number | undefined\n\nonMounted(() => {\n if (props.duration) {\n timeout = setTimeout(dismiss, props.duration)\n }\n})\n\nonMounted(() => {\n if (detailsRef.value && contentRef.value) {\n new DetailsAnimation(detailsRef.value, contentRef.value)\n }\n})\n\nonUnmounted(() => {\n if (timeout) {\n clearTimeout(timeout)\n }\n})\n\nfunction dismiss() {\n dismissed.value = true\n emit('dismiss')\n if (timeout) {\n clearTimeout(timeout)\n timeout = undefined\n }\n}\n\nconst computedIconProps = computed(() => {\n return {\n strokeColor: variantClasses.value.iconColor,\n class: 'my-[4px] mr-[8px]',\n }\n})\n\nconst icon: ComputedRef<FunctionalComponent | null> = computed(() => {\n switch (variant.value) {\n case 'info':\n return null\n case 'success':\n return () => h(IconCheckmarkOutline, computedIconProps.value)\n case 'warning':\n return () => h(IconWarningCircle, computedIconProps.value)\n case 'error':\n return () => h(IconWarningCircle, computedIconProps.value)\n default:\n return null\n }\n})\n\nconst sizeClasses = computed(() => {\n return alertSizesClasses[props.size] ?? {}\n})\n</script>\n\n<template>\n <div\n v-if=\"!dismissed\"\n class=\"overflow-hidden text-left\"\n :class=\"[variantClasses.wrapperClass, { rounded: !props.notRounded }]\"\n >\n <div class=\"flex\" :class=\"[variantClasses.headerClass, sizeClasses]\">\n <!--\n @slot replace the default left icon here\n @binding strokeColor - a windicolor that to be passed to `strokeColor`\n @binding class - the class this icon should have (for utility css purposes)\n\t\t\t-->\n <slot name=\"icon\" v-bind=\"computedIconProps\">\n <component\n :is=\"icon\"\n v-if=\"!props.noIcon && icon\"\n v-bind=\"computedIconProps\"\n />\n </slot>\n <div class=\"flex-1 font-medium\">\n <!-- @slot title of the alert -->\n <slot />\n </div>\n <button\n v-if=\"dismissible\"\n class=\"m-[4px] ml-[8px] h-[16px]\"\n aria-label=\"Dismiss\"\n @click=\"dismiss\"\n >\n <IconActionDeleteLarge :stroke-color=\"variantClasses.iconCloseColor\" />\n </button>\n </div>\n <div v-if=\"slots.body\" class=\"p-[16px]\" :class=\"variantClasses.bodyClass\">\n <!-- @slot body/details of the alert -->\n <slot name=\"body\" />\n </div>\n <details\n v-if=\"slots.details\"\n ref=\"detailsRef\"\n class=\"p-[16px] border-t border-t-1\"\n :class=\"[variantClasses.bodyClass, variantClasses.borderClass]\"\n >\n <summary\n class=\"flex font-medium cursor-pointer details-none\"\n :class=\"variantClasses.detailsHeaderClass\"\n >\n <IconChevronDownSmall\n :strokeColor=\"variantClasses.iconChevronColor\"\n class=\"icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0\"\n />\n {{ props.detailsTitle }}\n </summary>\n <div ref=\"contentRef\">\n <div>\n <!--@slot Togglable additional details-->\n <slot name=\"details\" />\n </div>\n </div>\n </details>\n <template v-if=\"$slots.footer\">\n <div :class=\"variantClasses.bodyClass\">\n <!--@slot A box to add buttons or additional content -->\n <slot name=\"footer\" />\n </div>\n </template>\n </div>\n</template>\n"],"names":["alertSizesClasses","defaultAlertSize","alertClasses","defaultAlertVariant","defaultAlertTitle","dismissed","ref","slots","useSlots","emit","__emit","props","__props","variant","computed","detailsRef","contentRef","variantClasses","timeout","onMounted","dismiss","DetailsAnimation","onUnmounted","computedIconProps","icon","h","IconCheckmarkOutline","IconWarningCircle","sizeClasses"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.mjs","sources":["../../constants/dist/index.es.mjs","../Alert.vue"],"sourcesContent":["/* <tw-keep strokeColor=\"gray-600\"/> */\n/* <tw-keep strokeColor=\"gray-500\"/> */\n/* <tw-keep strokeColor=\"gray-300\"/> */\n/* <tw-keep strokeColor=\"indigo-500\"/> */\n/* <tw-keep strokeColor=\"indigo-500\"/> */\n/* <tw-keep strokeColor=\"indigo-300\"/> */\n/* <tw-keep strokeColor=\"orange-500\"/> */\n/* <tw-keep strokeColor=\"orange-400\"/> */\n/* <tw-keep strokeColor=\"orange-300\"/> */\n/* <tw-keep strokeColor=\"red-500\"/> */\n/* <tw-keep strokeColor=\"red-400\"/> */\n/* <tw-keep strokeColor=\"red-300\"/> */\n/* <tw-keep strokeColor=\"jade-600\"/> */\n/* <tw-keep strokeColor=\"jade-500\"/> */\n/* <tw-keep strokeColor=\"jade-300\"/> */\n/* <tw-keep strokeColor=\"gray-600\"/> */\n/* <tw-keep strokeColor=\"gray-500\"/> */\n/* <tw-keep strokeColor=\"gray-300\"/> */\n\nconst CssAlertSizesClasses = {\n xs: \"cyds-alert-alertsizesclasses-xs\",\n sm: \"cyds-alert-alertsizesclasses-sm\",\n md: \"cyds-alert-alertsizesclasses-md\",\n lg: \"cyds-alert-alertsizesclasses-lg\"\n};\n\nconst defaultAlertSize = \"lg\";\n\nconst CssAlertClasses = {\n neutral: {\n headerClass: \"cyds-alert-alertclasses-neutral-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-neutral-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-neutral-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-neutral-detailsheaderclass\",\n iconCloseColor: \"gray-600\",\n iconColor: \"gray-500\",\n iconChevronColor: \"gray-300\"\n },\n\n info: {\n headerClass: \"cyds-alert-alertclasses-info-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-info-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-info-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-info-detailsheaderclass\",\n iconCloseColor: \"indigo-500\",\n iconColor: \"indigo-500\",\n iconChevronColor: \"indigo-300\"\n },\n\n warning: {\n headerClass: \"cyds-alert-alertclasses-warning-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-warning-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-warning-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-warning-detailsheaderclass\",\n iconCloseColor: \"orange-500\",\n iconColor: \"orange-400\",\n iconChevronColor: \"orange-300\"\n },\n\n error: {\n headerClass: \"cyds-alert-alertclasses-error-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-error-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-error-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-error-detailsheaderclass\",\n iconCloseColor: \"red-500\",\n iconColor: \"red-400\",\n iconChevronColor: \"red-300\"\n },\n\n success: {\n headerClass: \"cyds-alert-alertclasses-success-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-success-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-success-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-success-detailsheaderclass\",\n iconCloseColor: \"jade-600\",\n iconColor: \"jade-500\",\n iconChevronColor: \"jade-300\"\n },\n\n clear: {\n wrapperClass: \"cyds-alert-alertclasses-clear-wrapperclass\",\n headerClass: \"\",\n bodyClass: \"cyds-alert-alertclasses-clear-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-clear-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-clear-detailsheaderclass\",\n iconCloseColor: \"gray-600\",\n iconColor: \"gray-500\",\n iconChevronColor: \"gray-300\"\n }\n};\n\nconst defaultAlertVariant = \"info\";\nconst defaultAlertTitle = \"Additional details\";\n\nexport { CssAlertClasses, CssAlertSizesClasses, defaultAlertSize, defaultAlertTitle, defaultAlertVariant };\n//# sourceMappingURL=index.es.mjs.map\n","<script lang=\"ts\" setup>\nimport type { FunctionalComponent, ComputedRef } from 'vue'\nimport { computed, useSlots, h, ref, onMounted, onUnmounted } from 'vue'\nimport {\n IconChevronDownSmall,\n IconActionDeleteLarge,\n IconWarningCircle,\n IconCheckmarkOutline,\n} from '@cypress-design/vue-icon'\nimport { DetailsAnimation } from '@cypress-design/details-animation'\nimport {\n AlertSize,\n CssAlertSizesClasses,\n AlertVariant,\n defaultAlertSize,\n defaultAlertTitle,\n defaultAlertVariant,\n CssAlertClasses,\n} from '@cypress-design/constants-alert'\n\nconst dismissed = ref(false)\n\nconst slots = useSlots()\n\nconst emit = defineEmits<{\n /**\n * Clicking on the dismiss button or dismissed after a timeout\n */\n (event: 'dismiss'): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Color scheme\n */\n variant?: AlertVariant\n /**\n * Color scheme\n * @deprecated use `variant` instead\n */\n type?: AlertVariant\n /**\n * If details are provided,text used in the toggle button\n */\n detailsTitle?: string\n /**\n * Show the dismiss button\n */\n dismissible?: boolean\n /**\n * When an icon is displayed by default, use this to remove it\n */\n noIcon?: boolean\n /**\n * If you need square corners\n */\n notRounded?: boolean\n /**\n * Dismiss the alert after a delay (in ms)\n */\n duration?: number\n /**\n * Size of the alert\n */\n size?: typeof defaultAlertSize | AlertSize\n }>(),\n {\n variant: undefined,\n type: defaultAlertVariant,\n detailsTitle: defaultAlertTitle,\n size: defaultAlertSize,\n },\n)\n\nconst variant = computed(() => {\n return props.variant ?? props.type\n})\n\nconst detailsRef = ref(null)\nconst contentRef = ref(null)\n\nconst variantClasses = computed(() => {\n return CssAlertClasses[variant.value] ?? {}\n})\n\nlet timeout: number | undefined\n\nonMounted(() => {\n if (props.duration) {\n timeout = setTimeout(dismiss, props.duration)\n }\n})\n\nonMounted(() => {\n if (detailsRef.value && contentRef.value) {\n new DetailsAnimation(detailsRef.value, contentRef.value)\n }\n})\n\nonUnmounted(() => {\n if (timeout) {\n clearTimeout(timeout)\n }\n})\n\nfunction dismiss() {\n dismissed.value = true\n emit('dismiss')\n if (timeout) {\n clearTimeout(timeout)\n timeout = undefined\n }\n}\n\nconst computedIconProps = computed(() => {\n return {\n strokeColor: variantClasses.value.iconColor,\n class: 'my-[4px] mr-[8px]',\n }\n})\n\nconst icon: ComputedRef<FunctionalComponent | null> = computed(() => {\n switch (variant.value) {\n case 'info':\n return null\n case 'success':\n return () => h(IconCheckmarkOutline, computedIconProps.value)\n case 'warning':\n return () => h(IconWarningCircle, computedIconProps.value)\n case 'error':\n return () => h(IconWarningCircle, computedIconProps.value)\n default:\n return null\n }\n})\n\nconst sizeClasses = computed(() => {\n return CssAlertSizesClasses[props.size] ?? {}\n})\n</script>\n\n<template>\n <div\n v-if=\"!dismissed\"\n class=\"overflow-hidden text-left\"\n :class=\"[variantClasses.wrapperClass, { rounded: !props.notRounded }]\"\n >\n <div class=\"flex\" :class=\"[variantClasses.headerClass, sizeClasses]\">\n <!--\n @slot replace the default left icon here\n @binding strokeColor - a windicolor that to be passed to `strokeColor`\n @binding class - the class this icon should have (for utility css purposes)\n\t\t\t-->\n <slot name=\"icon\" v-bind=\"computedIconProps\">\n <component\n :is=\"icon\"\n v-if=\"!props.noIcon && icon\"\n v-bind=\"computedIconProps\"\n />\n </slot>\n <div class=\"flex-1 font-medium\">\n <!-- @slot title of the alert -->\n <slot />\n </div>\n <button\n v-if=\"dismissible\"\n class=\"m-[4px] ml-[8px] h-[16px]\"\n aria-label=\"Dismiss\"\n @click=\"dismiss\"\n >\n <IconActionDeleteLarge :stroke-color=\"variantClasses.iconCloseColor\" />\n </button>\n </div>\n <div v-if=\"slots.body\" class=\"p-[16px]\" :class=\"variantClasses.bodyClass\">\n <!-- @slot body/details of the alert -->\n <slot name=\"body\" />\n </div>\n <details\n v-if=\"slots.details\"\n ref=\"detailsRef\"\n class=\"p-[16px] border-t border-t-1\"\n :class=\"[variantClasses.bodyClass, variantClasses.borderClass]\"\n >\n <summary\n class=\"flex font-medium cursor-pointer details-none\"\n :class=\"variantClasses.detailsHeaderClass\"\n >\n <IconChevronDownSmall\n :strokeColor=\"variantClasses.iconChevronColor\"\n class=\"icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0\"\n />\n {{ props.detailsTitle }}\n </summary>\n <div ref=\"contentRef\">\n <div>\n <!--@slot Togglable additional details-->\n <slot name=\"details\" />\n </div>\n </div>\n </details>\n <template v-if=\"$slots.footer\">\n <div :class=\"variantClasses.bodyClass\">\n <!--@slot A box to add buttons or additional content -->\n <slot name=\"footer\" />\n </div>\n </template>\n </div>\n</template>\n"],"names":["CssAlertSizesClasses","defaultAlertSize","CssAlertClasses","defaultAlertVariant","defaultAlertTitle","dismissed","ref","slots","useSlots","emit","__emit","props","__props","variant","computed","detailsRef","contentRef","variantClasses","timeout","onMounted","dismiss","DetailsAnimation","onUnmounted","computedIconProps","icon","h","IconCheckmarkOutline","IconWarningCircle","sizeClasses"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(e,
|
|
1
|
+
(function(e,l){typeof exports=="object"&&typeof module<"u"?module.exports=l(require("vue"),require("@cypress-design/vue-icon"),require("@cypress-design/details-animation")):typeof define=="function"&&define.amd?define(["vue","@cypress-design/vue-icon","@cypress-design/details-animation"],l):(e=typeof globalThis<"u"?globalThis:e||self,e.Alert=l(e.Vue,e.CyIcon,e.CyDetailsAnimation))})(this,function(e,l,f){"use strict";const p={xs:"cyds-alert-alertsizesclasses-xs",sm:"cyds-alert-alertsizesclasses-sm",md:"cyds-alert-alertsizesclasses-md",lg:"cyds-alert-alertsizesclasses-lg"},u="lg",h={neutral:{headerClass:"cyds-alert-alertclasses-neutral-headerclass",bodyClass:"cyds-alert-alertclasses-neutral-bodyclass",borderClass:"cyds-alert-alertclasses-neutral-borderclass",detailsHeaderClass:"cyds-alert-alertclasses-neutral-detailsheaderclass",iconCloseColor:"gray-600",iconColor:"gray-500",iconChevronColor:"gray-300"},info:{headerClass:"cyds-alert-alertclasses-info-headerclass",bodyClass:"cyds-alert-alertclasses-info-bodyclass",borderClass:"cyds-alert-alertclasses-info-borderclass",detailsHeaderClass:"cyds-alert-alertclasses-info-detailsheaderclass",iconCloseColor:"indigo-500",iconColor:"indigo-500",iconChevronColor:"indigo-300"},warning:{headerClass:"cyds-alert-alertclasses-warning-headerclass",bodyClass:"cyds-alert-alertclasses-warning-bodyclass",borderClass:"cyds-alert-alertclasses-warning-borderclass",detailsHeaderClass:"cyds-alert-alertclasses-warning-detailsheaderclass",iconCloseColor:"orange-500",iconColor:"orange-400",iconChevronColor:"orange-300"},error:{headerClass:"cyds-alert-alertclasses-error-headerclass",bodyClass:"cyds-alert-alertclasses-error-bodyclass",borderClass:"cyds-alert-alertclasses-error-borderclass",detailsHeaderClass:"cyds-alert-alertclasses-error-detailsheaderclass",iconCloseColor:"red-500",iconColor:"red-400",iconChevronColor:"red-300"},success:{headerClass:"cyds-alert-alertclasses-success-headerclass",bodyClass:"cyds-alert-alertclasses-success-bodyclass",borderClass:"cyds-alert-alertclasses-success-borderclass",detailsHeaderClass:"cyds-alert-alertclasses-success-detailsheaderclass",iconCloseColor:"jade-600",iconColor:"jade-500",iconChevronColor:"jade-300"},clear:{wrapperClass:"cyds-alert-alertclasses-clear-wrapperclass",headerClass:"",bodyClass:"cyds-alert-alertclasses-clear-bodyclass",borderClass:"cyds-alert-alertclasses-clear-borderclass",detailsHeaderClass:"cyds-alert-alertclasses-clear-detailsheaderclass",iconCloseColor:"gray-600",iconColor:"gray-500",iconChevronColor:"gray-300"}},b="info",g="Additional details",k={class:"flex-1 font-medium"};return e.defineComponent({__name:"Alert",props:{variant:{default:void 0},type:{default:b},detailsTitle:{default:g},dismissible:{type:Boolean},noIcon:{type:Boolean},notRounded:{type:Boolean},duration:{},size:{default:u}},emits:["dismiss"],setup(z,{emit:V}){const d=e.ref(!1),i=e.useSlots(),B=V,a=z,C=e.computed(()=>a.variant??a.type),n=e.ref(null),c=e.ref(null),s=e.computed(()=>h[C.value]??{});let o;e.onMounted(()=>{a.duration&&(o=setTimeout(m,a.duration))}),e.onMounted(()=>{n.value&&c.value&&new f.DetailsAnimation(n.value,c.value)}),e.onUnmounted(()=>{o&&clearTimeout(o)});function m(){d.value=!0,B("dismiss"),o&&(clearTimeout(o),o=void 0)}const t=e.computed(()=>({strokeColor:s.value.iconColor,class:"my-[4px] mr-[8px]"})),y=e.computed(()=>{switch(C.value){case"info":return null;case"success":return()=>e.h(l.IconCheckmarkOutline,t.value);case"warning":return()=>e.h(l.IconWarningCircle,t.value);case"error":return()=>e.h(l.IconWarningCircle,t.value);default:return null}}),N=e.computed(()=>p[a.size]??{});return(r,x)=>d.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["overflow-hidden text-left",[s.value.wrapperClass,{rounded:!a.notRounded}]])},[e.createElementVNode("div",{class:e.normalizeClass(["flex",[s.value.headerClass,N.value]])},[e.renderSlot(r.$slots,"icon",e.normalizeProps(e.guardReactiveProps(t.value)),()=>[!a.noIcon&&y.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value),e.normalizeProps(e.mergeProps({key:0},t.value)),null,16)):e.createCommentVNode("",!0)]),e.createElementVNode("div",k,[e.renderSlot(r.$slots,"default")]),r.dismissible?(e.openBlock(),e.createElementBlock("button",{key:0,class:"m-[4px] ml-[8px] h-[16px]","aria-label":"Dismiss",onClick:m},[e.createVNode(e.unref(l.IconActionDeleteLarge),{"stroke-color":s.value.iconCloseColor},null,8,["stroke-color"])])):e.createCommentVNode("",!0)],2),e.unref(i).body?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-[16px]",s.value.bodyClass])},[e.renderSlot(r.$slots,"body")],2)):e.createCommentVNode("",!0),e.unref(i).details?(e.openBlock(),e.createElementBlock("details",{key:1,ref_key:"detailsRef",ref:n,class:e.normalizeClass(["p-[16px] border-t border-t-1",[s.value.bodyClass,s.value.borderClass]])},[e.createElementVNode("summary",{class:e.normalizeClass(["flex font-medium cursor-pointer details-none",s.value.detailsHeaderClass])},[e.createVNode(e.unref(l.IconChevronDownSmall),{strokeColor:s.value.iconChevronColor,class:"icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0"},null,8,["strokeColor"]),e.createTextVNode(" "+e.toDisplayString(a.detailsTitle),1)],2),e.createElementVNode("div",{ref_key:"contentRef",ref:c},[e.createElementVNode("div",null,[e.renderSlot(r.$slots,"details")])],512)],2)):e.createCommentVNode("",!0),r.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(s.value.bodyClass)},[e.renderSlot(r.$slots,"footer")],2)):e.createCommentVNode("",!0)],2))}})});
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|
|
3
3
|
|
|
4
|
-
/* <wind-keep class="my-[4px] mr-[8px] overflow-hidden text-left rounded flex flex-1 font-medium m-[4px] ml-[8px] h-[16px] p-[16px] border-t cursor-pointer details-none transition transform -rotate-90 open:rotate-0
|
|
4
|
+
/* <wind-keep class="my-[4px] mr-[8px] overflow-hidden text-left rounded flex flex-1 font-medium m-[4px] ml-[8px] h-[16px] p-[16px] border-t cursor-pointer details-none transition transform -rotate-90 open:rotate-0"> */
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../../constants/dist/index.js","../Alert.vue"],"sourcesContent":["export const alertSizesClasses = {\n xs: 'py-[4px] px-[8px] leading-[22px] text-[14px]',\n sm: 'py-[8px] px-[12px] leading-[22px] text-[14px]',\n md: 'py-[12px] px-[16px] leading-[24px] text-[16px]',\n lg: 'p-[16px] leading-[24px] text-[16px]',\n};\nexport const defaultAlertSize = 'lg';\nexport const alertClasses = {\n neutral: {\n headerClass: 'text-gray-800 bg-gray-100',\n bodyClass: 'bg-gray-50 text-gray-500',\n borderClass: 'border-gray-100',\n detailsHeaderClass: 'text-gray-600',\n /* <tw-keep strokeColor=\"gray-600\"/> */\n iconCloseColor: 'gray-600',\n /* <tw-keep strokeColor=\"gray-500\"/> */\n iconColor: 'gray-500',\n /* <tw-keep strokeColor=\"gray-300\"/> */\n iconChevronColor: 'gray-300',\n },\n info: {\n headerClass: 'text-indigo-700 bg-indigo-100',\n bodyClass: 'bg-indigo-50 text-indigo-500',\n borderClass: 'border-indigo-100',\n detailsHeaderClass: 'text-indigo-600',\n /* <tw-keep strokeColor=\"indigo-500\"/> */\n iconCloseColor: 'indigo-500',\n /* <tw-keep strokeColor=\"indigo-500\"/> */\n iconColor: 'indigo-500',\n /* <tw-keep strokeColor=\"indigo-300\"/> */\n iconChevronColor: 'indigo-300',\n },\n warning: {\n headerClass: 'text-orange-700 bg-orange-100',\n bodyClass: 'bg-orange-50 text-orange-500',\n borderClass: 'border-orange-100',\n detailsHeaderClass: 'text-orange-600',\n /* <tw-keep strokeColor=\"orange-500\"/> */\n iconCloseColor: 'orange-500',\n /* <tw-keep strokeColor=\"orange-400\"/> */\n iconColor: 'orange-400',\n /* <tw-keep strokeColor=\"orange-300\"/> */\n iconChevronColor: 'orange-300',\n },\n error: {\n headerClass: 'text-red-700 bg-red-100',\n bodyClass: 'bg-red-50 text-red-500',\n borderClass: 'border-red-100',\n detailsHeaderClass: 'text-red-600',\n /* <tw-keep strokeColor=\"red-500\"/> */\n iconCloseColor: 'red-500',\n /* <tw-keep strokeColor=\"red-400\"/> */\n iconColor: 'red-400',\n /* <tw-keep strokeColor=\"red-300\"/> */\n iconChevronColor: 'red-300',\n },\n success: {\n headerClass: 'text-jade-700 bg-jade-100',\n bodyClass: 'bg-jade-50 text-jade-600',\n borderClass: 'border-jade-100',\n detailsHeaderClass: 'text-jade-600',\n /* <tw-keep strokeColor=\"jade-600\"/> */\n iconCloseColor: 'jade-600',\n /* <tw-keep strokeColor=\"jade-500\"/> */\n iconColor: 'jade-500',\n /* <tw-keep strokeColor=\"jade-300\"/> */\n iconChevronColor: 'jade-300',\n },\n clear: {\n wrapperClass: 'border-gray-50 bg-white border text-gray-700',\n headerClass: '',\n bodyClass: 'border-gray-50 border-t',\n borderClass: 'border-gray-50',\n detailsHeaderClass: 'text-gray-700',\n /* <tw-keep strokeColor=\"gray-600\"/> */\n iconCloseColor: 'gray-600',\n /* <tw-keep strokeColor=\"gray-500\"/> */\n iconColor: 'gray-500',\n /* <tw-keep strokeColor=\"gray-300\"/> */\n iconChevronColor: 'gray-300',\n },\n};\nexport const defaultAlertVariant = 'info';\nexport const defaultAlertTitle = 'Additional details';\n","<script lang=\"ts\" setup>\nimport type { FunctionalComponent, ComputedRef } from 'vue'\nimport { computed, useSlots, h, ref, onMounted, onUnmounted } from 'vue'\nimport {\n IconChevronDownSmall,\n IconActionDeleteLarge,\n IconWarningCircle,\n IconCheckmarkOutline,\n} from '@cypress-design/vue-icon'\nimport { DetailsAnimation } from '@cypress-design/details-animation'\nimport {\n AlertSize,\n alertSizesClasses,\n AlertVariant,\n defaultAlertSize,\n defaultAlertTitle,\n defaultAlertVariant,\n alertClasses,\n} from '@cypress-design/constants-alert'\n\nconst dismissed = ref(false)\n\nconst slots = useSlots()\n\nconst emit = defineEmits<{\n /**\n * Clicking on the dismiss button or dismissed after a timeout\n */\n (event: 'dismiss'): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Color scheme\n */\n variant?: AlertVariant\n /**\n * Color scheme\n * @deprecated use `variant` instead\n */\n type?: AlertVariant\n /**\n * If details are provided,text used in the toggle button\n */\n detailsTitle?: string\n /**\n * Show the dismiss button\n */\n dismissible?: boolean\n /**\n * When an icon is displayed by default, use this to remove it\n */\n noIcon?: boolean\n /**\n * If you need square corners\n */\n notRounded?: boolean\n /**\n * Dismiss the alert after a delay (in ms)\n */\n duration?: number\n /**\n * Size of the alert\n */\n size?: typeof defaultAlertSize | AlertSize\n }>(),\n {\n variant: undefined,\n type: defaultAlertVariant,\n detailsTitle: defaultAlertTitle,\n size: defaultAlertSize,\n },\n)\n\nconst variant = computed(() => {\n return props.variant ?? props.type\n})\n\nconst detailsRef = ref(null)\nconst contentRef = ref(null)\n\nconst variantClasses = computed(() => {\n return alertClasses[variant.value] ?? {}\n})\n\nlet timeout: number | undefined\n\nonMounted(() => {\n if (props.duration) {\n timeout = setTimeout(dismiss, props.duration)\n }\n})\n\nonMounted(() => {\n if (detailsRef.value && contentRef.value) {\n new DetailsAnimation(detailsRef.value, contentRef.value)\n }\n})\n\nonUnmounted(() => {\n if (timeout) {\n clearTimeout(timeout)\n }\n})\n\nfunction dismiss() {\n dismissed.value = true\n emit('dismiss')\n if (timeout) {\n clearTimeout(timeout)\n timeout = undefined\n }\n}\n\nconst computedIconProps = computed(() => {\n return {\n strokeColor: variantClasses.value.iconColor,\n class: 'my-[4px] mr-[8px]',\n }\n})\n\nconst icon: ComputedRef<FunctionalComponent | null> = computed(() => {\n switch (variant.value) {\n case 'info':\n return null\n case 'success':\n return () => h(IconCheckmarkOutline, computedIconProps.value)\n case 'warning':\n return () => h(IconWarningCircle, computedIconProps.value)\n case 'error':\n return () => h(IconWarningCircle, computedIconProps.value)\n default:\n return null\n }\n})\n\nconst sizeClasses = computed(() => {\n return alertSizesClasses[props.size] ?? {}\n})\n</script>\n\n<template>\n <div\n v-if=\"!dismissed\"\n class=\"overflow-hidden text-left\"\n :class=\"[variantClasses.wrapperClass, { rounded: !props.notRounded }]\"\n >\n <div class=\"flex\" :class=\"[variantClasses.headerClass, sizeClasses]\">\n <!--\n @slot replace the default left icon here\n @binding strokeColor - a windicolor that to be passed to `strokeColor`\n @binding class - the class this icon should have (for utility css purposes)\n\t\t\t-->\n <slot name=\"icon\" v-bind=\"computedIconProps\">\n <component\n :is=\"icon\"\n v-if=\"!props.noIcon && icon\"\n v-bind=\"computedIconProps\"\n />\n </slot>\n <div class=\"flex-1 font-medium\">\n <!-- @slot title of the alert -->\n <slot />\n </div>\n <button\n v-if=\"dismissible\"\n class=\"m-[4px] ml-[8px] h-[16px]\"\n aria-label=\"Dismiss\"\n @click=\"dismiss\"\n >\n <IconActionDeleteLarge :stroke-color=\"variantClasses.iconCloseColor\" />\n </button>\n </div>\n <div v-if=\"slots.body\" class=\"p-[16px]\" :class=\"variantClasses.bodyClass\">\n <!-- @slot body/details of the alert -->\n <slot name=\"body\" />\n </div>\n <details\n v-if=\"slots.details\"\n ref=\"detailsRef\"\n class=\"p-[16px] border-t border-t-1\"\n :class=\"[variantClasses.bodyClass, variantClasses.borderClass]\"\n >\n <summary\n class=\"flex font-medium cursor-pointer details-none\"\n :class=\"variantClasses.detailsHeaderClass\"\n >\n <IconChevronDownSmall\n :strokeColor=\"variantClasses.iconChevronColor\"\n class=\"icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0\"\n />\n {{ props.detailsTitle }}\n </summary>\n <div ref=\"contentRef\">\n <div>\n <!--@slot Togglable additional details-->\n <slot name=\"details\" />\n </div>\n </div>\n </details>\n <template v-if=\"$slots.footer\">\n <div :class=\"variantClasses.bodyClass\">\n <!--@slot A box to add buttons or additional content -->\n <slot name=\"footer\" />\n </div>\n </template>\n </div>\n</template>\n"],"names":["alertSizesClasses","defaultAlertSize","alertClasses","defaultAlertVariant","defaultAlertTitle","dismissed","ref","slots","useSlots","emit","__emit","props","__props","variant","computed","detailsRef","contentRef","variantClasses","timeout","onMounted","dismiss","DetailsAnimation","onUnmounted","computedIconProps","icon","h","IconCheckmarkOutline","IconWarningCircle","sizeClasses"],"mappings":"oaAAO,MAAMA,EAAoB,CAC7B,GAAI,+CACJ,GAAI,gDACJ,GAAI,iDACJ,GAAI,qCACR,EACaC,EAAmB,KACnBC,EAAe,CACxB,QAAS,CACL,YAAa,4BACb,UAAW,2BACX,YAAa,kBACb,mBAAoB,gBAEpB,eAAgB,WAEhB,UAAW,WAEX,iBAAkB,UACrB,EACD,KAAM,CACF,YAAa,gCACb,UAAW,+BACX,YAAa,oBACb,mBAAoB,kBAEpB,eAAgB,aAEhB,UAAW,aAEX,iBAAkB,YACrB,EACD,QAAS,CACL,YAAa,gCACb,UAAW,+BACX,YAAa,oBACb,mBAAoB,kBAEpB,eAAgB,aAEhB,UAAW,aAEX,iBAAkB,YACrB,EACD,MAAO,CACH,YAAa,0BACb,UAAW,yBACX,YAAa,iBACb,mBAAoB,eAEpB,eAAgB,UAEhB,UAAW,UAEX,iBAAkB,SACrB,EACD,QAAS,CACL,YAAa,4BACb,UAAW,2BACX,YAAa,kBACb,mBAAoB,gBAEpB,eAAgB,WAEhB,UAAW,WAEX,iBAAkB,UACrB,EACD,MAAO,CACH,aAAc,+CACd,YAAa,GACb,UAAW,0BACX,YAAa,iBACb,mBAAoB,gBAEpB,eAAgB,WAEhB,UAAW,WAEX,iBAAkB,UACrB,CACL,EACaC,EAAsB,OACtBC,EAAoB,oTC/D3B,MAAAC,EAAYC,MAAI,EAAK,EAErBC,EAAQC,EAAAA,WAERC,EAAOC,EAOPC,EAAQC,EA4CRC,EAAUC,EAAAA,SAAS,IAChBH,EAAM,SAAWA,EAAM,IAC/B,EAEKI,EAAaT,MAAI,IAAI,EACrBU,EAAaV,MAAI,IAAI,EAErBW,EAAiBH,EAAAA,SAAS,IACvBZ,EAAaW,EAAQ,KAAK,GAAK,CAAA,CACvC,EAEG,IAAAK,EAEJC,EAAAA,UAAU,IAAM,CACVR,EAAM,WACEO,EAAA,WAAWE,EAAST,EAAM,QAAQ,EAC9C,CACD,EAEDQ,EAAAA,UAAU,IAAM,CACVJ,EAAW,OAASC,EAAW,OACjC,IAAIK,EAAiB,iBAAAN,EAAW,MAAOC,EAAW,KAAK,CACzD,CACD,EAEDM,EAAAA,YAAY,IAAM,CACZJ,GACF,aAAaA,CAAO,CACtB,CACD,EAED,SAASE,GAAU,CACjBf,EAAU,MAAQ,GAClBI,EAAK,SAAS,EACVS,IACF,aAAaA,CAAO,EACVA,EAAA,OAEd,CAEM,MAAAK,EAAoBT,EAAAA,SAAS,KAC1B,CACL,YAAaG,EAAe,MAAM,UAClC,MAAO,mBAAA,EAEV,EAEKO,EAAgDV,EAAAA,SAAS,IAAM,CACnE,OAAQD,EAAQ,MAAO,CACrB,IAAK,OACI,OAAA,KACT,IAAK,UACH,MAAO,IAAMY,EAAAA,EAAEC,EAAAA,qBAAsBH,EAAkB,KAAK,EAC9D,IAAK,UACH,MAAO,IAAME,EAAAA,EAAEE,EAAAA,kBAAmBJ,EAAkB,KAAK,EAC3D,IAAK,QACH,MAAO,IAAME,EAAAA,EAAEE,EAAAA,kBAAmBJ,EAAkB,KAAK,EAC3D,QACS,OAAA,IACX,CAAA,CACD,EAEKK,EAAcd,EAAAA,SAAS,IACpBd,EAAkBW,EAAM,IAAI,GAAK,CAAA,CACzC"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../../constants/dist/index.es.mjs","../Alert.vue"],"sourcesContent":["/* <tw-keep strokeColor=\"gray-600\"/> */\n/* <tw-keep strokeColor=\"gray-500\"/> */\n/* <tw-keep strokeColor=\"gray-300\"/> */\n/* <tw-keep strokeColor=\"indigo-500\"/> */\n/* <tw-keep strokeColor=\"indigo-500\"/> */\n/* <tw-keep strokeColor=\"indigo-300\"/> */\n/* <tw-keep strokeColor=\"orange-500\"/> */\n/* <tw-keep strokeColor=\"orange-400\"/> */\n/* <tw-keep strokeColor=\"orange-300\"/> */\n/* <tw-keep strokeColor=\"red-500\"/> */\n/* <tw-keep strokeColor=\"red-400\"/> */\n/* <tw-keep strokeColor=\"red-300\"/> */\n/* <tw-keep strokeColor=\"jade-600\"/> */\n/* <tw-keep strokeColor=\"jade-500\"/> */\n/* <tw-keep strokeColor=\"jade-300\"/> */\n/* <tw-keep strokeColor=\"gray-600\"/> */\n/* <tw-keep strokeColor=\"gray-500\"/> */\n/* <tw-keep strokeColor=\"gray-300\"/> */\n\nconst CssAlertSizesClasses = {\n xs: \"cyds-alert-alertsizesclasses-xs\",\n sm: \"cyds-alert-alertsizesclasses-sm\",\n md: \"cyds-alert-alertsizesclasses-md\",\n lg: \"cyds-alert-alertsizesclasses-lg\"\n};\n\nconst defaultAlertSize = \"lg\";\n\nconst CssAlertClasses = {\n neutral: {\n headerClass: \"cyds-alert-alertclasses-neutral-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-neutral-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-neutral-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-neutral-detailsheaderclass\",\n iconCloseColor: \"gray-600\",\n iconColor: \"gray-500\",\n iconChevronColor: \"gray-300\"\n },\n\n info: {\n headerClass: \"cyds-alert-alertclasses-info-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-info-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-info-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-info-detailsheaderclass\",\n iconCloseColor: \"indigo-500\",\n iconColor: \"indigo-500\",\n iconChevronColor: \"indigo-300\"\n },\n\n warning: {\n headerClass: \"cyds-alert-alertclasses-warning-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-warning-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-warning-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-warning-detailsheaderclass\",\n iconCloseColor: \"orange-500\",\n iconColor: \"orange-400\",\n iconChevronColor: \"orange-300\"\n },\n\n error: {\n headerClass: \"cyds-alert-alertclasses-error-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-error-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-error-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-error-detailsheaderclass\",\n iconCloseColor: \"red-500\",\n iconColor: \"red-400\",\n iconChevronColor: \"red-300\"\n },\n\n success: {\n headerClass: \"cyds-alert-alertclasses-success-headerclass\",\n bodyClass: \"cyds-alert-alertclasses-success-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-success-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-success-detailsheaderclass\",\n iconCloseColor: \"jade-600\",\n iconColor: \"jade-500\",\n iconChevronColor: \"jade-300\"\n },\n\n clear: {\n wrapperClass: \"cyds-alert-alertclasses-clear-wrapperclass\",\n headerClass: \"\",\n bodyClass: \"cyds-alert-alertclasses-clear-bodyclass\",\n borderClass: \"cyds-alert-alertclasses-clear-borderclass\",\n detailsHeaderClass: \"cyds-alert-alertclasses-clear-detailsheaderclass\",\n iconCloseColor: \"gray-600\",\n iconColor: \"gray-500\",\n iconChevronColor: \"gray-300\"\n }\n};\n\nconst defaultAlertVariant = \"info\";\nconst defaultAlertTitle = \"Additional details\";\n\nexport { CssAlertClasses, CssAlertSizesClasses, defaultAlertSize, defaultAlertTitle, defaultAlertVariant };\n//# sourceMappingURL=index.es.mjs.map\n","<script lang=\"ts\" setup>\nimport type { FunctionalComponent, ComputedRef } from 'vue'\nimport { computed, useSlots, h, ref, onMounted, onUnmounted } from 'vue'\nimport {\n IconChevronDownSmall,\n IconActionDeleteLarge,\n IconWarningCircle,\n IconCheckmarkOutline,\n} from '@cypress-design/vue-icon'\nimport { DetailsAnimation } from '@cypress-design/details-animation'\nimport {\n AlertSize,\n CssAlertSizesClasses,\n AlertVariant,\n defaultAlertSize,\n defaultAlertTitle,\n defaultAlertVariant,\n CssAlertClasses,\n} from '@cypress-design/constants-alert'\n\nconst dismissed = ref(false)\n\nconst slots = useSlots()\n\nconst emit = defineEmits<{\n /**\n * Clicking on the dismiss button or dismissed after a timeout\n */\n (event: 'dismiss'): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Color scheme\n */\n variant?: AlertVariant\n /**\n * Color scheme\n * @deprecated use `variant` instead\n */\n type?: AlertVariant\n /**\n * If details are provided,text used in the toggle button\n */\n detailsTitle?: string\n /**\n * Show the dismiss button\n */\n dismissible?: boolean\n /**\n * When an icon is displayed by default, use this to remove it\n */\n noIcon?: boolean\n /**\n * If you need square corners\n */\n notRounded?: boolean\n /**\n * Dismiss the alert after a delay (in ms)\n */\n duration?: number\n /**\n * Size of the alert\n */\n size?: typeof defaultAlertSize | AlertSize\n }>(),\n {\n variant: undefined,\n type: defaultAlertVariant,\n detailsTitle: defaultAlertTitle,\n size: defaultAlertSize,\n },\n)\n\nconst variant = computed(() => {\n return props.variant ?? props.type\n})\n\nconst detailsRef = ref(null)\nconst contentRef = ref(null)\n\nconst variantClasses = computed(() => {\n return CssAlertClasses[variant.value] ?? {}\n})\n\nlet timeout: number | undefined\n\nonMounted(() => {\n if (props.duration) {\n timeout = setTimeout(dismiss, props.duration)\n }\n})\n\nonMounted(() => {\n if (detailsRef.value && contentRef.value) {\n new DetailsAnimation(detailsRef.value, contentRef.value)\n }\n})\n\nonUnmounted(() => {\n if (timeout) {\n clearTimeout(timeout)\n }\n})\n\nfunction dismiss() {\n dismissed.value = true\n emit('dismiss')\n if (timeout) {\n clearTimeout(timeout)\n timeout = undefined\n }\n}\n\nconst computedIconProps = computed(() => {\n return {\n strokeColor: variantClasses.value.iconColor,\n class: 'my-[4px] mr-[8px]',\n }\n})\n\nconst icon: ComputedRef<FunctionalComponent | null> = computed(() => {\n switch (variant.value) {\n case 'info':\n return null\n case 'success':\n return () => h(IconCheckmarkOutline, computedIconProps.value)\n case 'warning':\n return () => h(IconWarningCircle, computedIconProps.value)\n case 'error':\n return () => h(IconWarningCircle, computedIconProps.value)\n default:\n return null\n }\n})\n\nconst sizeClasses = computed(() => {\n return CssAlertSizesClasses[props.size] ?? {}\n})\n</script>\n\n<template>\n <div\n v-if=\"!dismissed\"\n class=\"overflow-hidden text-left\"\n :class=\"[variantClasses.wrapperClass, { rounded: !props.notRounded }]\"\n >\n <div class=\"flex\" :class=\"[variantClasses.headerClass, sizeClasses]\">\n <!--\n @slot replace the default left icon here\n @binding strokeColor - a windicolor that to be passed to `strokeColor`\n @binding class - the class this icon should have (for utility css purposes)\n\t\t\t-->\n <slot name=\"icon\" v-bind=\"computedIconProps\">\n <component\n :is=\"icon\"\n v-if=\"!props.noIcon && icon\"\n v-bind=\"computedIconProps\"\n />\n </slot>\n <div class=\"flex-1 font-medium\">\n <!-- @slot title of the alert -->\n <slot />\n </div>\n <button\n v-if=\"dismissible\"\n class=\"m-[4px] ml-[8px] h-[16px]\"\n aria-label=\"Dismiss\"\n @click=\"dismiss\"\n >\n <IconActionDeleteLarge :stroke-color=\"variantClasses.iconCloseColor\" />\n </button>\n </div>\n <div v-if=\"slots.body\" class=\"p-[16px]\" :class=\"variantClasses.bodyClass\">\n <!-- @slot body/details of the alert -->\n <slot name=\"body\" />\n </div>\n <details\n v-if=\"slots.details\"\n ref=\"detailsRef\"\n class=\"p-[16px] border-t border-t-1\"\n :class=\"[variantClasses.bodyClass, variantClasses.borderClass]\"\n >\n <summary\n class=\"flex font-medium cursor-pointer details-none\"\n :class=\"variantClasses.detailsHeaderClass\"\n >\n <IconChevronDownSmall\n :strokeColor=\"variantClasses.iconChevronColor\"\n class=\"icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0\"\n />\n {{ props.detailsTitle }}\n </summary>\n <div ref=\"contentRef\">\n <div>\n <!--@slot Togglable additional details-->\n <slot name=\"details\" />\n </div>\n </div>\n </details>\n <template v-if=\"$slots.footer\">\n <div :class=\"variantClasses.bodyClass\">\n <!--@slot A box to add buttons or additional content -->\n <slot name=\"footer\" />\n </div>\n </template>\n </div>\n</template>\n"],"names":["CssAlertSizesClasses","defaultAlertSize","CssAlertClasses","defaultAlertVariant","defaultAlertTitle","dismissed","ref","slots","useSlots","emit","__emit","props","__props","variant","computed","detailsRef","contentRef","variantClasses","timeout","onMounted","dismiss","DetailsAnimation","onUnmounted","computedIconProps","icon","h","IconCheckmarkOutline","IconWarningCircle","sizeClasses"],"mappings":"oaAmBA,MAAMA,EAAuB,CACzB,GAAI,kCACJ,GAAI,kCACJ,GAAI,kCACJ,GAAI,iCACR,EAEMC,EAAmB,KAEnBC,EAAkB,CACpB,QAAS,CACL,YAAa,8CACb,UAAW,4CACX,YAAa,8CACb,mBAAoB,qDACpB,eAAgB,WAChB,UAAW,WACX,iBAAkB,UACrB,EAED,KAAM,CACF,YAAa,2CACb,UAAW,yCACX,YAAa,2CACb,mBAAoB,kDACpB,eAAgB,aAChB,UAAW,aACX,iBAAkB,YACrB,EAED,QAAS,CACL,YAAa,8CACb,UAAW,4CACX,YAAa,8CACb,mBAAoB,qDACpB,eAAgB,aAChB,UAAW,aACX,iBAAkB,YACrB,EAED,MAAO,CACH,YAAa,4CACb,UAAW,0CACX,YAAa,4CACb,mBAAoB,mDACpB,eAAgB,UAChB,UAAW,UACX,iBAAkB,SACrB,EAED,QAAS,CACL,YAAa,8CACb,UAAW,4CACX,YAAa,8CACb,mBAAoB,qDACpB,eAAgB,WAChB,UAAW,WACX,iBAAkB,UACrB,EAED,MAAO,CACH,aAAc,6CACd,YAAa,GACb,UAAW,0CACX,YAAa,4CACb,mBAAoB,mDACpB,eAAgB,WAChB,UAAW,WACX,iBAAkB,UACrB,CACL,EAEMC,EAAsB,OACtBC,EAAoB,oTCxEpB,MAAAC,EAAYC,MAAI,EAAK,EAErBC,EAAQC,EAAAA,WAERC,EAAOC,EAOPC,EAAQC,EA4CRC,EAAUC,EAAAA,SAAS,IAChBH,EAAM,SAAWA,EAAM,IAC/B,EAEKI,EAAaT,MAAI,IAAI,EACrBU,EAAaV,MAAI,IAAI,EAErBW,EAAiBH,EAAAA,SAAS,IACvBZ,EAAgBW,EAAQ,KAAK,GAAK,CAAA,CAC1C,EAEG,IAAAK,EAEJC,EAAAA,UAAU,IAAM,CACVR,EAAM,WACEO,EAAA,WAAWE,EAAST,EAAM,QAAQ,EAC9C,CACD,EAEDQ,EAAAA,UAAU,IAAM,CACVJ,EAAW,OAASC,EAAW,OACjC,IAAIK,EAAiB,iBAAAN,EAAW,MAAOC,EAAW,KAAK,CACzD,CACD,EAEDM,EAAAA,YAAY,IAAM,CACZJ,GACF,aAAaA,CAAO,CACtB,CACD,EAED,SAASE,GAAU,CACjBf,EAAU,MAAQ,GAClBI,EAAK,SAAS,EACVS,IACF,aAAaA,CAAO,EACVA,EAAA,OAEd,CAEM,MAAAK,EAAoBT,EAAAA,SAAS,KAC1B,CACL,YAAaG,EAAe,MAAM,UAClC,MAAO,mBAAA,EAEV,EAEKO,EAAgDV,EAAAA,SAAS,IAAM,CACnE,OAAQD,EAAQ,MAAO,CACrB,IAAK,OACI,OAAA,KACT,IAAK,UACH,MAAO,IAAMY,EAAAA,EAAEC,EAAAA,qBAAsBH,EAAkB,KAAK,EAC9D,IAAK,UACH,MAAO,IAAME,EAAAA,EAAEE,EAAAA,kBAAmBJ,EAAkB,KAAK,EAC3D,IAAK,QACH,MAAO,IAAME,EAAAA,EAAEE,EAAAA,kBAAmBJ,EAAkB,KAAK,EAC3D,QACS,OAAA,IACX,CAAA,CACD,EAEKK,EAAcd,EAAAA,SAAS,IACpBd,EAAqBW,EAAM,IAAI,GAAK,CAAA,CAC5C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cypress-design/vue-alert",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-next.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"*"
|
|
6
6
|
],
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"build:types": "yarn vue-tsc --project ./tsconfig.build.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@cypress-design/constants-alert": "^1.0.0",
|
|
28
27
|
"@cypress-design/details-animation": "^1.0.0",
|
|
29
|
-
"@cypress-design/vue-icon": "^
|
|
28
|
+
"@cypress-design/vue-icon": "^2.0.0-next.0"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
32
|
-
"@cypress-design/
|
|
31
|
+
"@cypress-design/constants-alert": "2.0.0-next.0",
|
|
32
|
+
"@cypress-design/rollup-plugin-tailwind-keep": "1.0.1-next.0"
|
|
33
33
|
},
|
|
34
34
|
"license": "MIT"
|
|
35
35
|
}
|
package/vite.config.ts
CHANGED