@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.
@@ -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
  ✓ 4 modules transformed.
8
9
  rendering chunks...
9
10
  computing gzip size...
10
- dist/index.es.mjs 7.83 kB │ gzip: 2.13 kB │ map: 11.41 kB
11
- dist/index.umd.js 6.23 kB │ gzip: 1.92 kB │ map: 10.97 kB
12
- ✓ built in 3.71s
11
+ dist/index.es.mjs 6.68 kB │ gzip: 1.89 kB │ map: 11.92 kB
12
+ dist/index.umd.js 5.89 kB │ gzip: 1.73 kB │ map: 11.57 kB
13
+ ✓ built in 4.43s
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
- alertSizesClasses,
13
+ CssAlertSizesClasses,
14
14
  AlertVariant,
15
15
  defaultAlertSize,
16
16
  defaultAlertTitle,
17
17
  defaultAlertVariant,
18
- alertClasses,
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 alertClasses[variant.value] ?? {}
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 alertSizesClasses[props.size] ?? {}
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 T, ref as m, useSlots as B, computed as i, onMounted as k, onUnmounted as D, h as v, openBlock as a, createElementBlock as d, normalizeClass as l, createElementVNode as c, renderSlot as u, normalizeProps as j, guardReactiveProps as S, createBlock as $, resolveDynamicComponent as V, mergeProps as N, createCommentVNode as t, createVNode as w, unref as C, createTextVNode as P, toDisplayString as _ } from "vue";
2
- import { IconWarningCircle as z, IconCheckmarkOutline as E, IconActionDeleteLarge as L, IconChevronDownSmall as M } from "@cypress-design/vue-icon";
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: "py-[4px] px-[8px] leading-[22px] text-[14px]",
6
- sm: "py-[8px] px-[12px] leading-[22px] text-[14px]",
7
- md: "py-[12px] px-[16px] leading-[24px] text-[16px]",
8
- lg: "p-[16px] leading-[24px] text-[16px]"
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: "text-gray-800 bg-gray-100",
12
- bodyClass: "bg-gray-50 text-gray-500",
13
- borderClass: "border-gray-100",
14
- detailsHeaderClass: "text-gray-600",
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: "text-indigo-700 bg-indigo-100",
24
- bodyClass: "bg-indigo-50 text-indigo-500",
25
- borderClass: "border-indigo-100",
26
- detailsHeaderClass: "text-indigo-600",
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: "text-orange-700 bg-orange-100",
36
- bodyClass: "bg-orange-50 text-orange-500",
37
- borderClass: "border-orange-100",
38
- detailsHeaderClass: "text-orange-600",
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: "text-red-700 bg-red-100",
48
- bodyClass: "bg-red-50 text-red-500",
49
- borderClass: "border-red-100",
50
- detailsHeaderClass: "text-red-600",
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: "text-jade-700 bg-jade-100",
60
- bodyClass: "bg-jade-50 text-jade-600",
61
- borderClass: "border-jade-100",
62
- detailsHeaderClass: "text-jade-600",
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: "border-gray-50 bg-white border text-gray-700",
56
+ wrapperClass: "cyds-alert-alertclasses-clear-wrapperclass",
72
57
  headerClass: "",
73
- bodyClass: "border-gray-50 border-t",
74
- borderClass: "border-gray-50",
75
- detailsHeaderClass: "text-gray-700",
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__ */ T({
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(A, { emit: H }) {
97
- const x = m(!1), y = B(), I = H, o = A, b = i(() => o.variant ?? o.type), p = m(null), g = m(null), e = i(() => q[b.value] ?? {});
98
- let s;
99
- k(() => {
100
- o.duration && (s = setTimeout(f, o.duration));
101
- }), k(() => {
102
- p.value && g.value && new O(p.value, g.value);
103
- }), D(() => {
104
- s && clearTimeout(s);
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 f() {
107
- x.value = !0, I("dismiss"), s && (clearTimeout(s), s = void 0);
88
+ function g() {
89
+ p.value = !0, R("dismiss"), a && (clearTimeout(a), a = void 0);
108
90
  }
109
- const n = i(() => ({
91
+ const c = n(() => ({
110
92
  strokeColor: e.value.iconColor,
111
93
  class: "my-[4px] mr-[8px]"
112
- })), h = i(() => {
113
- switch (b.value) {
94
+ })), k = n(() => {
95
+ switch (h.value) {
114
96
  case "info":
115
97
  return null;
116
98
  case "success":
117
- return () => v(E, n.value);
99
+ return () => f(E, c.value);
118
100
  case "warning":
119
- return () => v(z, n.value);
101
+ return () => f(A, c.value);
120
102
  case "error":
121
- return () => v(z, n.value);
103
+ return () => f(A, c.value);
122
104
  default:
123
105
  return null;
124
106
  }
125
- }), R = i(() => U[o.size] ?? {});
126
- return (r, K) => x.value ? t("", !0) : (a(), d("div", {
107
+ }), T = n(() => U[s.size] ?? {});
108
+ return (l, K) => p.value ? t("", !0) : (r(), d("div", {
127
109
  key: 0,
128
- class: l(["overflow-hidden text-left", [e.value.wrapperClass, { rounded: !o.notRounded }]])
110
+ class: o(["overflow-hidden text-left", [e.value.wrapperClass, { rounded: !s.notRounded }]])
129
111
  }, [
130
- c("div", {
131
- class: l(["flex", [e.value.headerClass, R.value]])
112
+ i("div", {
113
+ class: o(["flex", [e.value.headerClass, T.value]])
132
114
  }, [
133
- u(r.$slots, "icon", j(S(n.value)), () => [
134
- !o.noIcon && h.value ? (a(), $(V(h.value), j(N({ key: 0 }, n.value)), null, 16)) : t("", !0)
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
- c("div", J, [
137
- u(r.$slots, "default")
118
+ i("div", J, [
119
+ u(l.$slots, "default")
138
120
  ]),
139
- r.dismissible ? (a(), d("button", {
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: f
125
+ onClick: g
144
126
  }, [
145
- w(C(L), {
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(y).body ? (a(), d("div", {
132
+ C(b).body ? (r(), d("div", {
151
133
  key: 0,
152
- class: l(["p-[16px]", e.value.bodyClass])
134
+ class: o(["p-[16px]", e.value.bodyClass])
153
135
  }, [
154
- u(r.$slots, "body")
136
+ u(l.$slots, "body")
155
137
  ], 2)) : t("", !0),
156
- C(y).details ? (a(), d("details", {
138
+ C(b).details ? (r(), d("details", {
157
139
  key: 1,
158
140
  ref_key: "detailsRef",
159
- ref: p,
160
- class: l(["p-[16px] border-t border-t-1", [e.value.bodyClass, e.value.borderClass]])
141
+ ref: y,
142
+ class: o(["p-[16px] border-t border-t-1", [e.value.bodyClass, e.value.borderClass]])
161
143
  }, [
162
- c("summary", {
163
- class: l(["flex font-medium cursor-pointer details-none", e.value.detailsHeaderClass])
144
+ i("summary", {
145
+ class: o(["flex font-medium cursor-pointer details-none", e.value.detailsHeaderClass])
164
146
  }, [
165
- w(C(M), {
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
- P(" " + _(o.detailsTitle), 1)
151
+ j(" " + _(s.detailsTitle), 1)
170
152
  ], 2),
171
- c("div", {
153
+ i("div", {
172
154
  ref_key: "contentRef",
173
- ref: g
155
+ ref: m
174
156
  }, [
175
- c("div", null, [
176
- u(r.$slots, "details")
157
+ i("div", null, [
158
+ u(l.$slots, "details")
177
159
  ])
178
160
  ], 512)
179
161
  ], 2)) : t("", !0),
180
- r.$slots.footer ? (a(), d("div", {
162
+ l.$slots.footer ? (r(), d("div", {
181
163
  key: 2,
182
- class: l(e.value.bodyClass)
164
+ class: o(e.value.bodyClass)
183
165
  }, [
184
- u(r.$slots, "footer")
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 py-[4px] px-[8px] leading-[22px] text-[14px] py-[8px] px-[12px] py-[12px] px-[16px] leading-[24px] text-[16px] text-gray-800 bg-gray-100 bg-gray-50 text-gray-500 border-gray-100 text-gray-600 text-indigo-700 bg-indigo-100 bg-indigo-50 text-indigo-500 border-indigo-100 text-indigo-600 text-orange-700 bg-orange-100 bg-orange-50 text-orange-500 border-orange-100 text-orange-600 text-red-700 bg-red-100 bg-red-50 text-red-500 border-red-100 text-red-600 text-jade-700 bg-jade-100 bg-jade-50 text-jade-600 border-jade-100 border-gray-50 bg-white border text-gray-700 icon-dark-gray-600 icon-dark-gray-500 icon-dark-gray-300 icon-dark-indigo-500 icon-dark-indigo-300 icon-dark-orange-500 icon-dark-orange-400 icon-dark-orange-300 icon-dark-red-500 icon-dark-red-400 icon-dark-red-300 icon-dark-jade-600 icon-dark-jade-500 icon-dark-jade-300"> */
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"> */
@@ -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,r){typeof exports=="object"&&typeof module<"u"?module.exports=r(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"],r):(e=typeof globalThis<"u"?globalThis:e||self,e.Alert=r(e.Vue,e.CyIcon,e.CyDetailsAnimation))})(this,function(e,r,g){"use strict";const f={xs:"py-[4px] px-[8px] leading-[22px] text-[14px]",sm:"py-[8px] px-[12px] leading-[22px] text-[14px]",md:"py-[12px] px-[16px] leading-[24px] text-[16px]",lg:"p-[16px] leading-[24px] text-[16px]"},y="lg",x={neutral:{headerClass:"text-gray-800 bg-gray-100",bodyClass:"bg-gray-50 text-gray-500",borderClass:"border-gray-100",detailsHeaderClass:"text-gray-600",iconCloseColor:"gray-600",iconColor:"gray-500",iconChevronColor:"gray-300"},info:{headerClass:"text-indigo-700 bg-indigo-100",bodyClass:"bg-indigo-50 text-indigo-500",borderClass:"border-indigo-100",detailsHeaderClass:"text-indigo-600",iconCloseColor:"indigo-500",iconColor:"indigo-500",iconChevronColor:"indigo-300"},warning:{headerClass:"text-orange-700 bg-orange-100",bodyClass:"bg-orange-50 text-orange-500",borderClass:"border-orange-100",detailsHeaderClass:"text-orange-600",iconCloseColor:"orange-500",iconColor:"orange-400",iconChevronColor:"orange-300"},error:{headerClass:"text-red-700 bg-red-100",bodyClass:"bg-red-50 text-red-500",borderClass:"border-red-100",detailsHeaderClass:"text-red-600",iconCloseColor:"red-500",iconColor:"red-400",iconChevronColor:"red-300"},success:{headerClass:"text-jade-700 bg-jade-100",bodyClass:"bg-jade-50 text-jade-600",borderClass:"border-jade-100",detailsHeaderClass:"text-jade-600",iconCloseColor:"jade-600",iconColor:"jade-500",iconChevronColor:"jade-300"},clear:{wrapperClass:"border-gray-50 bg-white border text-gray-700",headerClass:"",bodyClass:"border-gray-50 border-t",borderClass:"border-gray-50",detailsHeaderClass:"text-gray-700",iconCloseColor:"gray-600",iconColor:"gray-500",iconChevronColor:"gray-300"}},u="info",b="Additional details",h={class:"flex-1 font-medium"};return e.defineComponent({__name:"Alert",props:{variant:{default:void 0},type:{default:u},detailsTitle:{default:b},dismissible:{type:Boolean},noIcon:{type:Boolean},notRounded:{type:Boolean},duration:{},size:{default:y}},emits:["dismiss"],setup(k,{emit:V}){const d=e.ref(!1),c=e.useSlots(),B=V,t=k,C=e.computed(()=>t.variant??t.type),n=e.ref(null),i=e.ref(null),o=e.computed(()=>x[C.value]??{});let a;e.onMounted(()=>{t.duration&&(a=setTimeout(m,t.duration))}),e.onMounted(()=>{n.value&&i.value&&new g.DetailsAnimation(n.value,i.value)}),e.onUnmounted(()=>{a&&clearTimeout(a)});function m(){d.value=!0,B("dismiss"),a&&(clearTimeout(a),a=void 0)}const l=e.computed(()=>({strokeColor:o.value.iconColor,class:"my-[4px] mr-[8px]"})),p=e.computed(()=>{switch(C.value){case"info":return null;case"success":return()=>e.h(r.IconCheckmarkOutline,l.value);case"warning":return()=>e.h(r.IconWarningCircle,l.value);case"error":return()=>e.h(r.IconWarningCircle,l.value);default:return null}}),N=e.computed(()=>f[t.size]??{});return(s,j)=>d.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["overflow-hidden text-left",[o.value.wrapperClass,{rounded:!t.notRounded}]])},[e.createElementVNode("div",{class:e.normalizeClass(["flex",[o.value.headerClass,N.value]])},[e.renderSlot(s.$slots,"icon",e.normalizeProps(e.guardReactiveProps(l.value)),()=>[!t.noIcon&&p.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),e.normalizeProps(e.mergeProps({key:0},l.value)),null,16)):e.createCommentVNode("",!0)]),e.createElementVNode("div",h,[e.renderSlot(s.$slots,"default")]),s.dismissible?(e.openBlock(),e.createElementBlock("button",{key:0,class:"m-[4px] ml-[8px] h-[16px]","aria-label":"Dismiss",onClick:m},[e.createVNode(e.unref(r.IconActionDeleteLarge),{"stroke-color":o.value.iconCloseColor},null,8,["stroke-color"])])):e.createCommentVNode("",!0)],2),e.unref(c).body?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-[16px]",o.value.bodyClass])},[e.renderSlot(s.$slots,"body")],2)):e.createCommentVNode("",!0),e.unref(c).details?(e.openBlock(),e.createElementBlock("details",{key:1,ref_key:"detailsRef",ref:n,class:e.normalizeClass(["p-[16px] border-t border-t-1",[o.value.bodyClass,o.value.borderClass]])},[e.createElementVNode("summary",{class:e.normalizeClass(["flex font-medium cursor-pointer details-none",o.value.detailsHeaderClass])},[e.createVNode(e.unref(r.IconChevronDownSmall),{strokeColor:o.value.iconChevronColor,class:"icon my-[4px] mr-[8px] transition transform -rotate-90 open:rotate-0"},null,8,["strokeColor"]),e.createTextVNode(" "+e.toDisplayString(t.detailsTitle),1)],2),e.createElementVNode("div",{ref_key:"contentRef",ref:i},[e.createElementVNode("div",null,[e.renderSlot(s.$slots,"details")])],512)],2)):e.createCommentVNode("",!0),s.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(o.value.bodyClass)},[e.renderSlot(s.$slots,"footer")],2)):e.createCommentVNode("",!0)],2))}})});
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 py-[4px] px-[8px] leading-[22px] text-[14px] py-[8px] px-[12px] py-[12px] px-[16px] leading-[24px] text-[16px] text-gray-800 bg-gray-100 bg-gray-50 text-gray-500 border-gray-100 text-gray-600 text-indigo-700 bg-indigo-100 bg-indigo-50 text-indigo-500 border-indigo-100 text-indigo-600 text-orange-700 bg-orange-100 bg-orange-50 text-orange-500 border-orange-100 text-orange-600 text-red-700 bg-red-100 bg-red-50 text-red-500 border-red-100 text-red-600 text-jade-700 bg-jade-100 bg-jade-50 text-jade-600 border-jade-100 border-gray-50 bg-white border text-gray-700 icon-dark-gray-600 icon-dark-gray-500 icon-dark-gray-300 icon-dark-indigo-500 icon-dark-indigo-300 icon-dark-orange-500 icon-dark-orange-400 icon-dark-orange-300 icon-dark-red-500 icon-dark-red-400 icon-dark-red-300 icon-dark-jade-600 icon-dark-jade-500 icon-dark-jade-300"> */
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"> */
@@ -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": "1.0.0",
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": "^1.0.0"
28
+ "@cypress-design/vue-icon": "^2.0.0-next.0"
30
29
  },
31
30
  "devDependencies": {
32
- "@cypress-design/rollup-plugin-tailwind-keep": "*"
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
@@ -1,5 +1,5 @@
1
1
  import * as path from 'path'
2
- import generateViteConfig from '../../root.vite.config'
2
+ import generateViteConfig from '../../vue.vite.config'
3
3
 
4
4
  export default generateViteConfig({
5
5
  entry: path.resolve(__dirname, './index.ts'),