@kiva/kv-components 10.5.1 → 10.6.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,5 +1,5 @@
1
1
  import v from "./KvLightbox2.js";
2
- import { resolveComponent as f, openBlock as n, createBlock as x, Transition as b, withCtx as u, withDirectives as h, createElementVNode as o, withModifiers as w, createElementBlock as r, createCommentVNode as s, normalizeClass as c, renderSlot as d, toDisplayString as k, createVNode as y, vShow as g } from "vue";
2
+ import { resolveComponent as f, openBlock as n, createBlock as x, Transition as b, withCtx as u, withDirectives as h, createElementVNode as o, withModifiers as s, createElementBlock as w, createCommentVNode as r, normalizeClass as d, renderSlot as c, toDisplayString as k, createVNode as y, vShow as g } from "vue";
3
3
  import C from "../_virtual/_plugin-vue_export-helper.js";
4
4
  const _ = ["aria-label", "aria-describedby", "role"], p = { class: "tw-flex tw-p-2.5 md:tw-px-4 md:tw-pt-4 md:tw-pb-3.5" }, B = { class: "tw-flex-grow" }, S = { class: "tw-flex-1" }, L = {
5
5
  id: "kvLightboxBody",
@@ -23,16 +23,16 @@ function V(i, e, t, l, j, z) {
23
23
  default: u(() => [
24
24
  h(o("div", {
25
25
  class: "tw-z-modal tw-fixed tw-inset-0 tw-bg-black tw-bg-opacity-[75%]",
26
- onClick: e[3] || (e[3] = w((...a) => l.onScreenClick && l.onScreenClick(...a), ["stop", "prevent"]))
26
+ onClick: e[3] || (e[3] = s((...a) => l.onScreenClick && l.onScreenClick(...a), ["stop", "prevent"]))
27
27
  }, [
28
28
  o("div", null, [
29
- t.blurBackground ? (n(), r("div", {
29
+ t.blurBackground ? (n(), w("div", {
30
30
  key: 0,
31
31
  class: "tw-fixed tw-inset-0 tw-w-full tw-h-full tw-backdrop-blur-sm",
32
- onClick: e[0] || (e[0] = w((...a) => l.onScreenClick && l.onScreenClick(...a), ["stop", "prevent"]))
33
- })) : s("", !0),
32
+ onClick: e[0] || (e[0] = s((...a) => l.onScreenClick && l.onScreenClick(...a), ["stop", "prevent"]))
33
+ })) : r("", !0),
34
34
  o("div", {
35
- class: c(["tw-flex tw-absolute tw-inset-0", {
35
+ class: d(["tw-flex tw-absolute tw-inset-0", {
36
36
  "md:tw-px-2": t.variant === "lightbox",
37
37
  "tw-px-2": t.variant === "alert"
38
38
  }])
@@ -41,7 +41,7 @@ function V(i, e, t, l, j, z) {
41
41
  ref: "kvLightbox",
42
42
  tabindex: "-1",
43
43
  "data-test": "kv-lightbox",
44
- class: c(["tw-bg-primary tw-flex tw-flex-col tw-mx-auto md:tw-my-auto", {
44
+ class: d(["tw-bg-primary tw-flex tw-flex-col tw-mx-auto md:tw-my-auto", {
45
45
  "tw-w-full md:tw-w-auto": t.variant === "lightbox",
46
46
  "tw-mt-auto md:tw-my-auto": t.variant === "lightbox",
47
47
  "tw-min-h-half-screen md:tw-min-h-0": t.variant === "lightbox",
@@ -53,33 +53,33 @@ function V(i, e, t, l, j, z) {
53
53
  "aria-label": t.title ? t.title : null,
54
54
  "aria-describedby": t.variant === "alert" ? "kvLightboxBody" : null,
55
55
  role: l.role,
56
- onClick: e[2] || (e[2] = w(() => {
56
+ onClick: e[2] || (e[2] = s(() => {
57
57
  }, ["stop"]))
58
58
  }, [
59
59
  o("div", p, [
60
60
  o("div", B, [
61
- d(i.$slots, "header", {}, () => [
61
+ c(i.$slots, "header", {}, () => [
62
62
  o("h2", S, k(t.title), 1)
63
63
  ])
64
64
  ]),
65
- t.preventClose ? s("", !0) : (n(), r("button", {
65
+ t.preventClose ? r("", !0) : (n(), w("button", {
66
66
  key: 0,
67
- class: "tw-grid tw-content-center tw-justify-center tw-ml-auto tw-w-6 tw-h-6 tw--m-2 hover:tw-text-action-highlight",
68
- onClick: e[1] || (e[1] = w((a) => l.hide("close-x"), ["stop"]))
67
+ class: d(["tw-grid tw-content-center tw-justify-center tw-ml-auto tw-w-6 tw-h-6 tw--m-2 hover:tw-text-action-highlight", l.closeButtonClasses]),
68
+ onClick: e[1] || (e[1] = s((a) => l.hide("close-x"), ["stop"]))
69
69
  }, [
70
70
  y(m, {
71
71
  class: "tw-w-3 tw-h-3",
72
72
  icon: l.mdiClose
73
73
  }, null, 8, ["icon"]),
74
74
  e[4] || (e[4] = o("span", { class: "tw-sr-only" }, "Close", -1))
75
- ]))
75
+ ], 2))
76
76
  ]),
77
77
  o("div", L, [
78
- d(i.$slots, "default")
78
+ c(i.$slots, "default")
79
79
  ], 512),
80
- i.$slots.controls ? (n(), r("div", N, [
81
- d(i.$slots, "controls")
82
- ], 512)) : s("", !0)
80
+ i.$slots.controls ? (n(), w("div", N, [
81
+ c(i.$slots, "controls")
82
+ ], 512)) : r("", !0)
83
83
  ], 10, _)
84
84
  ], 2)
85
85
  ])
@@ -20,6 +20,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
20
20
  type: BooleanConstructor;
21
21
  default: boolean;
22
22
  };
23
+ preventBackgroundClose: {
24
+ type: BooleanConstructor;
25
+ default: boolean;
26
+ };
27
+ closeButtonShowDelay: {
28
+ type: NumberConstructor;
29
+ default: number;
30
+ };
23
31
  }>, {
24
32
  mdiClose: string;
25
33
  role: import('vue').ComputedRef<"alertdialog" | "dialog">;
@@ -30,6 +38,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
30
38
  hide: (closedBy?: string) => void;
31
39
  show: () => void;
32
40
  controlsRef: import('vue').Ref<any, any>;
41
+ closeButtonClasses: import('vue').ComputedRef<(string | {
42
+ 'tw-invisible tw-opacity-0': boolean;
43
+ })[]>;
33
44
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "lightbox-closed"[], "lightbox-closed", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
34
45
  blurBackground: {
35
46
  type: BooleanConstructor;
@@ -52,6 +63,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
52
63
  type: BooleanConstructor;
53
64
  default: boolean;
54
65
  };
66
+ preventBackgroundClose: {
67
+ type: BooleanConstructor;
68
+ default: boolean;
69
+ };
70
+ closeButtonShowDelay: {
71
+ type: NumberConstructor;
72
+ default: number;
73
+ };
55
74
  }>> & Readonly<{
56
75
  "onLightbox-closed"?: (...args: any[]) => any;
57
76
  }>, {
@@ -59,6 +78,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
59
78
  visible: boolean;
60
79
  preventClose: boolean;
61
80
  blurBackground: boolean;
81
+ preventBackgroundClose: boolean;
82
+ closeButtonShowDelay: number;
62
83
  }, {}, {
63
84
  KvMaterialIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
64
85
  icon: {
@@ -1,13 +1,13 @@
1
- import { toRefs as h, ref as u, nextTick as k, computed as x, watch as S, onMounted as C, onBeforeUnmount as B } from "vue";
2
- import { mdiClose as E } from "@mdi/js";
3
- import { useFocusTrap as L } from "@vueuse/integrations/useFocusTrap";
4
- import { hideOthers as w } from "../vendor/aria-hidden/dist/es2015/index.js";
5
- import { lockScroll as P, unlockScroll as q } from "../utils/scrollLock.js";
6
- import { lockPrintSingleEl as I, unlockPrintSingleEl as K } from "../utils/printing.js";
7
- import M from "./KvMaterialIcon.js";
8
- const A = {
1
+ import { toRefs as L, ref as o, nextTick as b, computed as p, watch as T, onMounted as P, onBeforeUnmount as q } from "vue";
2
+ import { mdiClose as I } from "@mdi/js";
3
+ import { useFocusTrap as K } from "@vueuse/integrations/useFocusTrap";
4
+ import { hideOthers as M } from "../vendor/aria-hidden/dist/es2015/index.js";
5
+ import { lockScroll as O, unlockScroll as R } from "../utils/scrollLock.js";
6
+ import { lockPrintSingleEl as U, unlockPrintSingleEl as _ } from "../utils/printing.js";
7
+ import N from "./KvMaterialIcon.js";
8
+ const Q = {
9
9
  components: {
10
- KvMaterialIcon: M
10
+ KvMaterialIcon: N
11
11
  },
12
12
  props: {
13
13
  /**
@@ -31,8 +31,8 @@ const A = {
31
31
  variant: {
32
32
  type: String,
33
33
  default: "lightbox",
34
- validator(v) {
35
- return ["lightbox", "alert"].includes(v);
34
+ validator(f) {
35
+ return ["lightbox", "alert"].includes(f);
36
36
  }
37
37
  },
38
38
  /**
@@ -50,23 +50,41 @@ const A = {
50
50
  preventClose: {
51
51
  type: Boolean,
52
52
  default: !1
53
+ },
54
+ /**
55
+ * Clicking the screen behind the dialog does not close it. The close X button and
56
+ * pressing ESC still close it.
57
+ * */
58
+ preventBackgroundClose: {
59
+ type: Boolean,
60
+ default: !1
61
+ },
62
+ /**
63
+ * Milliseconds to keep the close X button hidden each time the dialog opens, after
64
+ * which it fades in. Pressing ESC still closes the dialog during the delay.
65
+ * */
66
+ closeButtonShowDelay: {
67
+ type: Number,
68
+ default: 0
53
69
  }
54
70
  },
55
71
  emits: [
56
72
  "lightbox-closed"
57
73
  ],
58
- setup(v, { emit: g }) {
74
+ setup(f, { emit: C }) {
59
75
  const {
60
- visible: o,
61
- variant: d,
62
- preventClose: p
63
- } = h(v), n = u(null), t = u(null), m = u(null), a = u(null), i = u(null);
64
- k(() => {
76
+ visible: n,
77
+ variant: m,
78
+ preventClose: y,
79
+ preventBackgroundClose: w,
80
+ closeButtonShowDelay: k
81
+ } = L(f), u = o(null), t = o(null), g = o(null), r = o(null), i = o(null);
82
+ b(() => {
65
83
  const {
66
84
  activate: e,
67
85
  deactivate: l
68
- } = L([
69
- n.value,
86
+ } = K([
87
+ u.value,
70
88
  // This lightbox
71
89
  '[role="alert"]'
72
90
  // Any open toasts/alerts on the page
@@ -74,44 +92,56 @@ const A = {
74
92
  allowOutsideClick: !0
75
93
  // allow clicking outside the lightbox to close it
76
94
  });
77
- a.value = e, i.value = l;
95
+ r.value = e, i.value = l;
78
96
  });
79
- let c = null, s = null;
80
- const b = x(() => d.value === "alert" ? "alertdialog" : "dialog"), r = (e = "") => {
97
+ let s = null, c = null, h = null;
98
+ const v = o(!1), B = p(() => k.value > 0), S = p(() => B.value ? [
99
+ "tw-transition-opacity tw-duration-500 motion-reduce:tw-transition-none",
100
+ { "tw-invisible tw-opacity-0": !v.value }
101
+ ] : null), x = () => {
102
+ if (!B.value) {
103
+ v.value = !0;
104
+ return;
105
+ }
106
+ v.value = !1, h = setTimeout(() => {
107
+ v.value = !0;
108
+ }, k.value);
109
+ }, E = p(() => m.value === "alert" ? "alertdialog" : "dialog"), a = (e = "") => {
81
110
  var l;
82
- n.value && t.value && ((l = i.value) == null || l.call(i), t.value.scrollTop = 0, K(t.value)), q(), c && (c(), c = null), document.removeEventListener("keyup", s), o.value && g("lightbox-closed", { type: e });
111
+ clearTimeout(h), u.value && t.value && ((l = i.value) == null || l.call(i), t.value.scrollTop = 0, _(t.value)), R(), s && (s(), s = null), document.removeEventListener("keyup", c), n.value && C("lightbox-closed", { type: e });
83
112
  };
84
- s = (e) => {
85
- e && e.key === "Escape" && !p.value && r();
113
+ c = (e) => {
114
+ e && e.key === "Escape" && !y.value && a();
86
115
  };
87
- const y = () => {
88
- p.value || r("background-click");
89
- }, f = () => {
90
- o.value && (document.addEventListener("keyup", s), k(() => {
116
+ const D = () => {
117
+ y.value || w.value || a("background-click");
118
+ }, d = () => {
119
+ n.value && (x(), document.addEventListener("keyup", c), b(() => {
91
120
  var e;
92
- if (n.value && t.value && ((e = a.value) == null || e.call(a), c = w(n.value), I(t.value)), P(), d.value === "alert") {
93
- const l = m.value.querySelector("button");
121
+ if (u.value && t.value && ((e = r.value) == null || e.call(r), s = M(u.value), U(t.value)), O(), m.value === "alert") {
122
+ const l = g.value.querySelector("button");
94
123
  l && l.focus();
95
124
  }
96
125
  }));
97
126
  };
98
- return S(o, () => {
99
- o.value ? f() : r();
100
- }), C(() => {
101
- o.value && f();
102
- }), B(() => r()), {
103
- mdiClose: E,
104
- role: b,
105
- kvLightbox: n,
127
+ return T(n, () => {
128
+ n.value ? d() : a();
129
+ }), P(() => {
130
+ n.value && d();
131
+ }), q(() => a()), {
132
+ mdiClose: I,
133
+ role: E,
134
+ kvLightbox: u,
106
135
  kvLightboxBody: t,
107
- onKeyUp: s,
108
- onScreenClick: y,
109
- hide: r,
110
- show: f,
111
- controlsRef: m
136
+ onKeyUp: c,
137
+ onScreenClick: D,
138
+ hide: a,
139
+ show: d,
140
+ controlsRef: g,
141
+ closeButtonClasses: S
112
142
  };
113
143
  }
114
144
  };
115
145
  export {
116
- A as default
146
+ Q as default
117
147
  };
@@ -252,6 +252,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
252
252
  type: BooleanConstructor;
253
253
  default: boolean;
254
254
  };
255
+ preventBackgroundClose: {
256
+ type: BooleanConstructor;
257
+ default: boolean;
258
+ };
259
+ closeButtonShowDelay: {
260
+ type: NumberConstructor;
261
+ default: number;
262
+ };
255
263
  }>, {
256
264
  mdiClose: string;
257
265
  role: import('vue').ComputedRef<"alertdialog" | "dialog">;
@@ -262,6 +270,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
262
270
  hide: (closedBy?: string) => void;
263
271
  show: () => void;
264
272
  controlsRef: import('vue').Ref<any, any>;
273
+ closeButtonClasses: import('vue').ComputedRef<(string | {
274
+ 'tw-invisible tw-opacity-0': boolean;
275
+ })[]>;
265
276
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "lightbox-closed"[], "lightbox-closed", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
266
277
  blurBackground: {
267
278
  type: BooleanConstructor;
@@ -284,6 +295,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
284
295
  type: BooleanConstructor;
285
296
  default: boolean;
286
297
  };
298
+ preventBackgroundClose: {
299
+ type: BooleanConstructor;
300
+ default: boolean;
301
+ };
302
+ closeButtonShowDelay: {
303
+ type: NumberConstructor;
304
+ default: number;
305
+ };
287
306
  }>> & Readonly<{
288
307
  "onLightbox-closed"?: (...args: any[]) => any;
289
308
  }>, {
@@ -291,6 +310,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
291
310
  visible: boolean;
292
311
  preventClose: boolean;
293
312
  blurBackground: boolean;
313
+ preventBackgroundClose: boolean;
314
+ closeButtonShowDelay: number;
294
315
  }, {}, {
295
316
  KvMaterialIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
296
317
  icon: {
@@ -153,6 +153,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
153
153
  type: BooleanConstructor;
154
154
  default: boolean;
155
155
  };
156
+ preventBackgroundClose: {
157
+ type: BooleanConstructor;
158
+ default: boolean;
159
+ };
160
+ closeButtonShowDelay: {
161
+ type: NumberConstructor;
162
+ default: number;
163
+ };
156
164
  }>, {
157
165
  mdiClose: string;
158
166
  role: import('vue').ComputedRef<"alertdialog" | "dialog">;
@@ -163,6 +171,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
163
171
  hide: (closedBy?: string) => void;
164
172
  show: () => void;
165
173
  controlsRef: import('vue').Ref<any, any>;
174
+ closeButtonClasses: import('vue').ComputedRef<(string | {
175
+ 'tw-invisible tw-opacity-0': boolean;
176
+ })[]>;
166
177
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "lightbox-closed"[], "lightbox-closed", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
167
178
  blurBackground: {
168
179
  type: BooleanConstructor;
@@ -185,6 +196,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
185
196
  type: BooleanConstructor;
186
197
  default: boolean;
187
198
  };
199
+ preventBackgroundClose: {
200
+ type: BooleanConstructor;
201
+ default: boolean;
202
+ };
203
+ closeButtonShowDelay: {
204
+ type: NumberConstructor;
205
+ default: number;
206
+ };
188
207
  }>> & Readonly<{
189
208
  "onLightbox-closed"?: (...args: any[]) => any;
190
209
  }>, {
@@ -192,6 +211,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
192
211
  visible: boolean;
193
212
  preventClose: boolean;
194
213
  blurBackground: boolean;
214
+ preventBackgroundClose: boolean;
215
+ closeButtonShowDelay: number;
195
216
  }, {}, {
196
217
  KvMaterialIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
197
218
  icon: {
@@ -196,6 +196,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
196
196
  type: BooleanConstructor;
197
197
  default: boolean;
198
198
  };
199
+ preventBackgroundClose: {
200
+ type: BooleanConstructor;
201
+ default: boolean;
202
+ };
203
+ closeButtonShowDelay: {
204
+ type: NumberConstructor;
205
+ default: number;
206
+ };
199
207
  }>, {
200
208
  mdiClose: string;
201
209
  role: import('vue').ComputedRef<"alertdialog" | "dialog">;
@@ -206,6 +214,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
206
214
  hide: (closedBy?: string) => void;
207
215
  show: () => void;
208
216
  controlsRef: import('vue').Ref<any, any>;
217
+ closeButtonClasses: import('vue').ComputedRef<(string | {
218
+ 'tw-invisible tw-opacity-0': boolean;
219
+ })[]>;
209
220
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "lightbox-closed"[], "lightbox-closed", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
210
221
  blurBackground: {
211
222
  type: BooleanConstructor;
@@ -228,6 +239,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
228
239
  type: BooleanConstructor;
229
240
  default: boolean;
230
241
  };
242
+ preventBackgroundClose: {
243
+ type: BooleanConstructor;
244
+ default: boolean;
245
+ };
246
+ closeButtonShowDelay: {
247
+ type: NumberConstructor;
248
+ default: number;
249
+ };
231
250
  }>> & Readonly<{
232
251
  "onLightbox-closed"?: (...args: any[]) => any;
233
252
  }>, {
@@ -235,6 +254,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
235
254
  visible: boolean;
236
255
  preventClose: boolean;
237
256
  blurBackground: boolean;
257
+ preventBackgroundClose: boolean;
258
+ closeButtonShowDelay: number;
238
259
  }, {}, {
239
260
  KvMaterialIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
240
261
  icon: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kiva/kv-components",
3
- "version": "10.5.1",
3
+ "version": "10.6.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -116,5 +116,5 @@
116
116
  "dependencies": {
117
117
  "fuse.js": "^7.1.0"
118
118
  },
119
- "gitHead": "074a5802f62864713f35c7d42c914324c5cd2cc1"
119
+ "gitHead": "0bef6074eb8552e9e6b54d962b9dbb7af66241f4"
120
120
  }