@ulu/frontend-vue 0.6.29 → 0.6.30
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/dist/components/collapsible/UluModal.vue.d.ts.map +1 -1
- package/dist/components/collapsible/UluModal.vue.js +59 -58
- package/dist/mcp-data.json +188 -188
- package/dist/plugins/popovers/UluPopoverBase.vue.d.ts.map +1 -1
- package/dist/plugins/popovers/UluPopoverBase.vue.js +19 -19
- package/dist/plugins/tour/UluTourDisplay.vue.d.ts.map +1 -1
- package/dist/plugins/tour/UluTourDisplay.vue.js +35 -29
- package/lib/components/collapsible/UluModal.vue +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UluModal.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/collapsible/UluModal.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UluModal.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/collapsible/UluModal.vue"],"names":[],"mappings":"AAuEA;wBA47BqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAbjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4OAUG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { useSlots as
|
|
1
|
+
import { useSlots as G, ref as n, computed as c, watch as M, nextTick as w, onMounted as J, onBeforeUnmount as K, createBlock as F, openBlock as u, Teleport as Q, createElementVNode as d, mergeProps as Z, unref as H, withModifiers as x, createElementBlock as C, createCommentVNode as g, normalizeClass as f, renderSlot as m, toDisplayString as ee, createVNode as L, normalizeStyle as le } from "vue";
|
|
2
2
|
import R from "../elements/UluIcon.vue.js";
|
|
3
|
-
import { useModifiers as
|
|
4
|
-
import { preventScroll as
|
|
5
|
-
import { getSoleIframeLayout as
|
|
6
|
-
import { newId as
|
|
7
|
-
const
|
|
3
|
+
import { useModifiers as oe } from "../../composables/useModifiers.js";
|
|
4
|
+
import { preventScroll as te, wasClickOutside as se } from "@ulu/utils/browser/dom.js";
|
|
5
|
+
import { getSoleIframeLayout as ie, youtubePrepVideos as ae, youtubePauseVideos as ne, Resizer as re, observeDialogToggle as ce } from "@ulu/frontend";
|
|
6
|
+
import { newId as ue } from "../../utils/dom.js";
|
|
7
|
+
const de = ["aria-labelledby", "aria-describedby"], fe = ["id"], me = { class: "modal__title-text" }, he = {
|
|
8
8
|
__name: "UluModal",
|
|
9
9
|
props: {
|
|
10
10
|
/**
|
|
@@ -128,21 +128,21 @@ const ue = ["aria-labelledby", "aria-describedby"], de = ["id"], fe = { class: "
|
|
|
128
128
|
noPauseVideos: Boolean
|
|
129
129
|
},
|
|
130
130
|
emits: ["update:modelValue", "close", "open"],
|
|
131
|
-
setup(t, { emit:
|
|
132
|
-
const
|
|
131
|
+
setup(t, { emit: T }) {
|
|
132
|
+
const r = T, e = t, j = G(), D = n(null), E = ue("ulu-modal-title"), B = n(!1), o = n(null), $ = n(null), k = n(null), i = n({
|
|
133
133
|
isStaticSize: !1,
|
|
134
134
|
isFill: !1,
|
|
135
135
|
bodyStyle: {}
|
|
136
|
-
}),
|
|
136
|
+
}), O = c(() => e.title || j.title), v = c(() => {
|
|
137
137
|
const { allowResize: l, position: s } = e;
|
|
138
138
|
if (!l || !s) return !1;
|
|
139
139
|
const h = ["left", "right", "center"];
|
|
140
140
|
return h.includes(s) ? !0 : (console.warn(`Passed invalid position for resize (${s}), use ${h.join(", ")}`), !1);
|
|
141
|
-
}),
|
|
141
|
+
}), N = c(() => e.position === "center" ? "type:resizeBoth" : "type:resizeHorizontal"), A = c(() => ({
|
|
142
142
|
[e.position]: e.position,
|
|
143
143
|
resize: e.allowResize,
|
|
144
144
|
"no-resize": !e.allowResize,
|
|
145
|
-
"no-header":
|
|
145
|
+
"no-header": !O.value,
|
|
146
146
|
"body-fills": e.bodyFills,
|
|
147
147
|
"no-backdrop": e.noBackdrop,
|
|
148
148
|
"no-min-height": e.noMinHeight,
|
|
@@ -152,33 +152,33 @@ const ue = ["aria-labelledby", "aria-describedby"], de = ["id"], fe = { class: "
|
|
|
152
152
|
"fullscreen-mobile": e.fullscreenMobile,
|
|
153
153
|
"frame-ratio": i.value.isStaticSize,
|
|
154
154
|
"frame-fill": i.value.isFill
|
|
155
|
-
})), { resolvedModifiers: U } =
|
|
155
|
+
})), { resolvedModifiers: U } = oe({
|
|
156
156
|
props: e,
|
|
157
157
|
baseClass: "modal",
|
|
158
158
|
internal: A
|
|
159
|
-
}), X =
|
|
160
|
-
|
|
161
|
-
},
|
|
162
|
-
e.modelValue && (
|
|
163
|
-
},
|
|
159
|
+
}), X = c(() => e.labelledby ? e.labelledby : E), a = () => {
|
|
160
|
+
r("update:modelValue", !1), r("close");
|
|
161
|
+
}, _ = () => {
|
|
162
|
+
e.modelValue && (r("update:modelValue", !1), r("close"));
|
|
163
|
+
}, q = (l) => {
|
|
164
164
|
if (e.clickOutsideCloses && !B.value) {
|
|
165
165
|
const { target: s } = l;
|
|
166
|
-
s === o.value &&
|
|
166
|
+
s === o.value && se(o.value, l) && a();
|
|
167
167
|
}
|
|
168
168
|
};
|
|
169
169
|
let y = null, b = null, S = null, z = null, p = null;
|
|
170
|
-
const
|
|
171
|
-
!e.nonModal && e.preventScroll && (y =
|
|
172
|
-
l ? b =
|
|
170
|
+
const W = () => {
|
|
171
|
+
!e.nonModal && e.preventScroll && (y = ce(o.value, (l) => {
|
|
172
|
+
l ? b = te({ preventShift: e.preventScrollShift }) : P();
|
|
173
173
|
}));
|
|
174
|
-
},
|
|
174
|
+
}, Y = () => {
|
|
175
175
|
y && (y.destroy(), y = null);
|
|
176
176
|
}, P = () => {
|
|
177
177
|
b && (b(), b = null);
|
|
178
178
|
}, I = () => {
|
|
179
179
|
if (v.value) {
|
|
180
180
|
const l = e.position === "center" ? { fromX: "right", fromY: "bottom", multiplier: 2 } : { fromX: e.position === "right" ? "left" : "right" };
|
|
181
|
-
S = new
|
|
181
|
+
S = new re(o.value, $.value, l), z = () => {
|
|
182
182
|
B.value = !0;
|
|
183
183
|
}, p = () => {
|
|
184
184
|
setTimeout(() => {
|
|
@@ -194,12 +194,12 @@ const ue = ["aria-labelledby", "aria-describedby"], de = ["id"], fe = { class: "
|
|
|
194
194
|
if (o.value)
|
|
195
195
|
if (l) {
|
|
196
196
|
if (e.autoIframe && k.value) {
|
|
197
|
-
const s =
|
|
197
|
+
const s = ie(k.value);
|
|
198
198
|
s && (s.iframe.classList.add("modal__frame-content"), s.isStaticSize ? (i.value.isStaticSize = !0, i.value.isFill = !1, i.value.bodyStyle = { aspectRatio: s.aspectRatio }) : (i.value.isFill = !0, i.value.isStaticSize = !1, i.value.bodyStyle = s.fillHeight ? { minHeight: s.fillHeight } : {}));
|
|
199
199
|
}
|
|
200
|
-
e.noPauseVideos ||
|
|
200
|
+
e.noPauseVideos || ae(o.value), o.value[e.nonModal ? "show" : "showModal"](), r("open");
|
|
201
201
|
} else
|
|
202
|
-
e.noPauseVideos || (
|
|
202
|
+
e.noPauseVideos || (ne(o.value), o.value.querySelectorAll("video").forEach((h) => h.pause())), o.value.close(), i.value = { isStaticSize: !1, isFill: !1, bodyStyle: {} };
|
|
203
203
|
});
|
|
204
204
|
}, { immediate: !0 }), M(v, (l) => {
|
|
205
205
|
l ? w(() => {
|
|
@@ -209,88 +209,89 @@ const ue = ["aria-labelledby", "aria-describedby"], de = ["id"], fe = { class: "
|
|
|
209
209
|
l !== s && (V(), w(() => {
|
|
210
210
|
I();
|
|
211
211
|
}));
|
|
212
|
+
}), J(() => {
|
|
213
|
+
W(), I();
|
|
212
214
|
}), K(() => {
|
|
213
|
-
Y(),
|
|
214
|
-
}),
|
|
215
|
-
o.value && o.value.open && o.value.close(), G(), P(), V();
|
|
216
|
-
}), (l, s) => (d(), F(Z, {
|
|
215
|
+
o.value && o.value.open && o.value.close(), Y(), P(), V();
|
|
216
|
+
}), (l, s) => (u(), F(Q, {
|
|
217
217
|
to: t.teleport === !1 ? null : t.teleport,
|
|
218
218
|
disabled: t.teleport === !1
|
|
219
219
|
}, [
|
|
220
|
-
|
|
221
|
-
class:
|
|
220
|
+
d("dialog", Z({
|
|
221
|
+
class: ["modal", [H(U), t.classes.container]],
|
|
222
222
|
"aria-labelledby": X.value,
|
|
223
223
|
"aria-describedby": t.describedby,
|
|
224
224
|
ref_key: "container",
|
|
225
225
|
ref: o,
|
|
226
|
-
style:
|
|
226
|
+
style: { width: D.value }
|
|
227
|
+
}, l.$attrs, {
|
|
227
228
|
onCancel: x(a, ["prevent"]),
|
|
228
|
-
onClose:
|
|
229
|
-
onClick:
|
|
230
|
-
}, [
|
|
231
|
-
|
|
229
|
+
onClose: _,
|
|
230
|
+
onClick: q
|
|
231
|
+
}), [
|
|
232
|
+
O.value ? (u(), C("header", {
|
|
232
233
|
key: 0,
|
|
233
|
-
class:
|
|
234
|
+
class: f(["modal__header", t.classes.header])
|
|
234
235
|
}, [
|
|
235
|
-
|
|
236
|
-
class:
|
|
237
|
-
id:
|
|
236
|
+
d("h2", {
|
|
237
|
+
class: f(["modal__title", t.classes.title]),
|
|
238
|
+
id: H(E)
|
|
238
239
|
}, [
|
|
239
240
|
m(l.$slots, "title", { close: a }, () => [
|
|
240
|
-
t.titleIcon ? (
|
|
241
|
+
t.titleIcon ? (u(), F(R, {
|
|
241
242
|
key: 0,
|
|
242
243
|
class: "modal__title-icon",
|
|
243
244
|
icon: t.titleIcon
|
|
244
245
|
}, null, 8, ["icon"])) : g("", !0),
|
|
245
|
-
|
|
246
|
+
d("span", me, ee(t.title), 1)
|
|
246
247
|
])
|
|
247
|
-
], 10,
|
|
248
|
-
|
|
249
|
-
class:
|
|
248
|
+
], 10, fe),
|
|
249
|
+
d("button", {
|
|
250
|
+
class: f(["modal__close", t.classes.close]),
|
|
250
251
|
"aria-label": "Close modal",
|
|
251
252
|
onClick: a,
|
|
252
253
|
autofocus: ""
|
|
253
254
|
}, [
|
|
254
255
|
m(l.$slots, "closeIcon", {}, () => [
|
|
255
|
-
|
|
256
|
+
L(R, {
|
|
256
257
|
class: "modal__close-icon",
|
|
257
258
|
icon: t.closeIcon || "type:close"
|
|
258
259
|
}, null, 8, ["icon"])
|
|
259
260
|
])
|
|
260
261
|
], 2)
|
|
261
262
|
], 2)) : g("", !0),
|
|
262
|
-
|
|
263
|
-
class:
|
|
264
|
-
style:
|
|
263
|
+
d("div", {
|
|
264
|
+
class: f(["modal__body", t.classes.body]),
|
|
265
|
+
style: le(i.value.bodyStyle),
|
|
265
266
|
ref_key: "body",
|
|
266
267
|
ref: k
|
|
267
268
|
}, [
|
|
268
269
|
m(l.$slots, "default", { close: a })
|
|
269
270
|
], 6),
|
|
270
|
-
l.$slots.footer ? (
|
|
271
|
+
l.$slots.footer ? (u(), C("div", {
|
|
271
272
|
key: 1,
|
|
272
|
-
class:
|
|
273
|
+
class: f(["modal__footer", t.classes.footer])
|
|
273
274
|
}, [
|
|
274
275
|
m(l.$slots, "footer", { close: a })
|
|
275
276
|
], 2)) : g("", !0),
|
|
276
|
-
v.value ? (
|
|
277
|
+
v.value ? (u(), C("button", {
|
|
277
278
|
key: 2,
|
|
278
279
|
class: "modal__resizer",
|
|
279
280
|
ref_key: "resizer",
|
|
280
|
-
ref:
|
|
281
|
+
ref: $,
|
|
281
282
|
type: "button"
|
|
282
283
|
}, [
|
|
283
284
|
m(l.$slots, "resizerIcon", {}, () => [
|
|
284
|
-
|
|
285
|
+
L(R, {
|
|
285
286
|
class: "modal__resizer-icon",
|
|
286
|
-
icon: t.resizerIcon ||
|
|
287
|
+
icon: t.resizerIcon || N.value
|
|
287
288
|
}, null, 8, ["icon"])
|
|
288
289
|
])
|
|
289
290
|
], 512)) : g("", !0)
|
|
290
|
-
],
|
|
291
|
+
], 16, de)
|
|
291
292
|
], 8, ["to", "disabled"]));
|
|
292
293
|
}
|
|
293
294
|
};
|
|
294
295
|
export {
|
|
295
|
-
|
|
296
|
+
he as default
|
|
296
297
|
};
|
package/dist/mcp-data.json
CHANGED
|
@@ -64,22 +64,6 @@
|
|
|
64
64
|
"code": "<toast>Content</toast>"
|
|
65
65
|
}
|
|
66
66
|
],
|
|
67
|
-
"useTooltipFollow": [
|
|
68
|
-
{
|
|
69
|
-
"title": "Default",
|
|
70
|
-
"description": "Default variation",
|
|
71
|
-
"code": "<useTooltipFollow>Content</useTooltipFollow>"
|
|
72
|
-
}
|
|
73
|
-
],
|
|
74
|
-
"useTooltip": [],
|
|
75
|
-
"tooltip": [
|
|
76
|
-
{
|
|
77
|
-
"title": "Basic",
|
|
78
|
-
"description": "Basic variation",
|
|
79
|
-
"code": "<tooltip>This is a basic tooltip!</tooltip>"
|
|
80
|
-
}
|
|
81
|
-
],
|
|
82
|
-
"UluPopover": [],
|
|
83
67
|
"useModals": [],
|
|
84
68
|
"modals": [
|
|
85
69
|
{
|
|
@@ -113,6 +97,22 @@
|
|
|
113
97
|
"code": "<template>\n <button @click=\"showSettingsModal\">My Settings</button>\n</template>\n\n<script setup>\n import { useModals } from \"./useModals\";\n\n const modals = useModals();\n const showSettingsModal = () => {\n console.log(\"This is opening via uluModals composable\");\n modals.open(\"settings\");\n };\n</script>"
|
|
114
98
|
}
|
|
115
99
|
],
|
|
100
|
+
"useTooltipFollow": [
|
|
101
|
+
{
|
|
102
|
+
"title": "Default",
|
|
103
|
+
"description": "Default variation",
|
|
104
|
+
"code": "<useTooltipFollow>Content</useTooltipFollow>"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"useTooltip": [],
|
|
108
|
+
"tooltip": [
|
|
109
|
+
{
|
|
110
|
+
"title": "Basic",
|
|
111
|
+
"description": "Basic variation",
|
|
112
|
+
"code": "<tooltip>This is a basic tooltip!</tooltip>"
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"UluPopover": [],
|
|
116
116
|
"UluProgressCircle": [],
|
|
117
117
|
"UluProgressBar": [],
|
|
118
118
|
"UluAnimateNumber": [],
|
|
@@ -156,6 +156,10 @@
|
|
|
156
156
|
"code": "<UluAction href=\"{...}\" download>Content</UluAction>"
|
|
157
157
|
}
|
|
158
158
|
],
|
|
159
|
+
"UluWhenBreakpoint": [],
|
|
160
|
+
"UluTitleRail": [],
|
|
161
|
+
"UluDataGrid": [],
|
|
162
|
+
"UluAdaptiveLayout": [],
|
|
159
163
|
"UluSkipLink": [
|
|
160
164
|
{
|
|
161
165
|
"title": "Default",
|
|
@@ -228,10 +232,6 @@
|
|
|
228
232
|
"code": "<UluBreadcrumb items=\"{...}\">Content</UluBreadcrumb>"
|
|
229
233
|
}
|
|
230
234
|
],
|
|
231
|
-
"UluWhenBreakpoint": [],
|
|
232
|
-
"UluTitleRail": [],
|
|
233
|
-
"UluDataGrid": [],
|
|
234
|
-
"UluAdaptiveLayout": [],
|
|
235
235
|
"UluSelectableMenu": [],
|
|
236
236
|
"UluSearchForm": [],
|
|
237
237
|
"UluFormTextarea": [],
|
|
@@ -248,34 +248,6 @@
|
|
|
248
248
|
"UluFormActions": [],
|
|
249
249
|
"UluForm": [],
|
|
250
250
|
"UluFileDisplay": [],
|
|
251
|
-
"UluTabGroup": [
|
|
252
|
-
{
|
|
253
|
-
"title": "Default",
|
|
254
|
-
"description": "Default variation",
|
|
255
|
-
"code": "<UluTabGroup>Content</UluTabGroup>"
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
"title": "Vertical",
|
|
259
|
-
"description": "Vertical variation",
|
|
260
|
-
"code": "<UluTabGroup vertical>Content</UluTabGroup>"
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
"title": "DefaultIndex",
|
|
264
|
-
"description": "DefaultIndex variation",
|
|
265
|
-
"code": "<UluTabGroup :defaultIndex=\"2\">Content</UluTabGroup>"
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
"title": "FullWidth",
|
|
269
|
-
"description": "FullWidth variation",
|
|
270
|
-
"code": "<UluTabGroup modifiers=\"{...}\">Content</UluTabGroup>"
|
|
271
|
-
}
|
|
272
|
-
],
|
|
273
|
-
"UluOverflowPopover": [],
|
|
274
|
-
"UluModal": [],
|
|
275
|
-
"UluDropdown": [],
|
|
276
|
-
"UluCollapsible": [],
|
|
277
|
-
"UluAccordionGroup": [],
|
|
278
|
-
"UluAccordion": [],
|
|
279
251
|
"UluTag": [],
|
|
280
252
|
"UluTable": [
|
|
281
253
|
{
|
|
@@ -499,6 +471,34 @@
|
|
|
499
471
|
}
|
|
500
472
|
],
|
|
501
473
|
"UluAlert": [],
|
|
474
|
+
"UluTabGroup": [
|
|
475
|
+
{
|
|
476
|
+
"title": "Default",
|
|
477
|
+
"description": "Default variation",
|
|
478
|
+
"code": "<UluTabGroup>Content</UluTabGroup>"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"title": "Vertical",
|
|
482
|
+
"description": "Vertical variation",
|
|
483
|
+
"code": "<UluTabGroup vertical>Content</UluTabGroup>"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"title": "DefaultIndex",
|
|
487
|
+
"description": "DefaultIndex variation",
|
|
488
|
+
"code": "<UluTabGroup :defaultIndex=\"2\">Content</UluTabGroup>"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"title": "FullWidth",
|
|
492
|
+
"description": "FullWidth variation",
|
|
493
|
+
"code": "<UluTabGroup modifiers=\"{...}\">Content</UluTabGroup>"
|
|
494
|
+
}
|
|
495
|
+
],
|
|
496
|
+
"UluOverflowPopover": [],
|
|
497
|
+
"UluModal": [],
|
|
498
|
+
"UluDropdown": [],
|
|
499
|
+
"UluCollapsible": [],
|
|
500
|
+
"UluAccordionGroup": [],
|
|
501
|
+
"UluAccordion": [],
|
|
502
502
|
"UluTableSticky": [
|
|
503
503
|
{
|
|
504
504
|
"title": "Default",
|
|
@@ -517,6 +517,10 @@
|
|
|
517
517
|
"code": "<CardExample horizontal>Content</CardExample>"
|
|
518
518
|
}
|
|
519
519
|
],
|
|
520
|
+
"UluScrollAnchorsNavAnimated": [],
|
|
521
|
+
"UluScrollAnchorsNav": [],
|
|
522
|
+
"UluScrollAnchorsHeadlessSection": [],
|
|
523
|
+
"UluScrollAnchors": [],
|
|
520
524
|
"facets-router": [
|
|
521
525
|
{
|
|
522
526
|
"title": "Default",
|
|
@@ -593,10 +597,6 @@
|
|
|
593
597
|
"code": "<Facets facetFields=\"{...}\" countMode=\"intuitive\">Content</Facets>"
|
|
594
598
|
}
|
|
595
599
|
],
|
|
596
|
-
"UluScrollAnchorsNavAnimated": [],
|
|
597
|
-
"UluScrollAnchorsNav": [],
|
|
598
|
-
"UluScrollAnchorsHeadlessSection": [],
|
|
599
|
-
"UluScrollAnchors": [],
|
|
600
600
|
"FullFormDemo": [],
|
|
601
601
|
"FrontPage": [
|
|
602
602
|
{
|
|
@@ -657,28 +657,28 @@
|
|
|
657
657
|
"code": "<script setup>\n import { ref, computed, provide } from \"vue\";\n import { useBreakpointManager } from \"./useBreakpointManager.js\";\n\n const isMobile = ref(false);\n\n // Example using the onReady callback to set reactive value isMobile\n // - In this situation isMobile is being used as a primary change in \n // the applications layout \n const options = { \n onReady(manager) {\n manager.at(\"small\").max(() => isMobile.value = true);\n manager.at(\"large\").min(() => isMobile.value = false);\n }\n };\n\n // Composable returns the following\n const { \n /**\n * Reference to underlying BreakpointManager class\n */\n breakpointManager, \n /**\n * Active breakpoint name\n */\n breakpointActive, \n /**\n * Current resizeDirection (\"up\"|\"down\"|null)\n */\n breakpointDirection \n } = useBreakpointManager(options);\n\n\n // Allowing all components to access these values\n provide(\"uluBreakpointActive\", computed(() => breakpointActive));\n provide(\"uluBreakpointDirection\", computed(() => breakpointDirection));\n provide(\"uluBreakpointManager\", computed(() => breakpointManager));\n provide(\"uluIsMobile\", computed(() => isMobile));\n\n</script>"
|
|
658
658
|
}
|
|
659
659
|
],
|
|
660
|
-
"
|
|
660
|
+
"core": [
|
|
661
661
|
{
|
|
662
|
-
"title": "
|
|
662
|
+
"title": "core Example 1",
|
|
663
663
|
"description": "Code example extracted from markdown.",
|
|
664
|
-
"code": "<script setup>\
|
|
664
|
+
"code": "<script setup>\nimport { inject, onMounted } from 'vue';\n\nconst uluCore = inject('uluCore');\n\nonMounted(() => {\n const icons = uluCore.getSetting('iconsByType');\n console.log('Danger Icon:', icons.danger);\n\n // Example of updating a single icon dynamically\n uluCore.setIcon('success', 'my-awesome-success-icon');\n});\n</script>"
|
|
665
665
|
},
|
|
666
666
|
{
|
|
667
|
-
"title": "
|
|
667
|
+
"title": "core Example 2",
|
|
668
668
|
"description": "Code example extracted from markdown.",
|
|
669
|
-
"code": "<script>\nexport default {\n
|
|
669
|
+
"code": "<script>\nexport default {\n mounted() {\n const icons = this.$uluCore.getSetting('icons');\n console.log('Danger Icon:', icons.danger);\n }\n}\n</script>"
|
|
670
670
|
}
|
|
671
671
|
],
|
|
672
|
-
"
|
|
672
|
+
"breakpoints": [
|
|
673
673
|
{
|
|
674
|
-
"title": "
|
|
674
|
+
"title": "breakpoints Example 1",
|
|
675
675
|
"description": "Code example extracted from markdown.",
|
|
676
|
-
"code": "<script setup>\
|
|
676
|
+
"code": "<script setup>\n import { inject } from 'vue';\n\n const isMobile = inject('uluIsMobile');\n const currentBreakpoint = inject('uluBreakpointActive');\n</script>\n\n<template>\n <div>\n <p v-if=\"isMobile\">You are on a mobile device!</p>\n <p>Current Breakpoint: {{ currentBreakpoint }}</p>\n </div>\n</template>"
|
|
677
677
|
},
|
|
678
678
|
{
|
|
679
|
-
"title": "
|
|
679
|
+
"title": "breakpoints Example 2",
|
|
680
680
|
"description": "Code example extracted from markdown.",
|
|
681
|
-
"code": "<script>\nexport default {\n mounted() {\n
|
|
681
|
+
"code": "<script>\nexport default {\n inject: ['uluIsMobile', 'uluBreakpointActive'],\n mounted() {\n console.log('Is mobile?', this.uluIsMobile);\n }\n}\n</script>"
|
|
682
682
|
}
|
|
683
683
|
],
|
|
684
684
|
"forms": [],
|
|
@@ -12629,12 +12629,12 @@
|
|
|
12629
12629
|
"modals": {
|
|
12630
12630
|
"raw_markdown": "import { Canvas } from '@storybook/addon-docs/blocks';\nimport * as ModalStories from '../../components/collapsible/UluModal.stories.js';\n\n# Modals\n\nModals plugin allows configuring app-wide modals that are triggered by the global API. Register your modals when you install the plugin then interact with them using the global API.\n\n## Registering your app-wide modals\n\nCreate the modal component file like:\n\n```html\n<template>\n <UluModal>\n User setting modal…\n </UluModal>\n</template>\n```\n\n\nExample ./scr/modals.js\n\n```js\nimport { defineAsyncComponent } from \"vue\";\n\nexport default [\n {\n name: \"settings\",\n component: defineAsyncComponent(() => import('./components/modals/UserSettingsModal.vue')),\n }\n]\n```\n\n## Installing the plugin\n\nExample ./src/main.js\n\n```js\nimport UluModals from \"@ulu/frontend-vue/plugins/modals/index.js\";\nimport modals from \"./src/modals.js\";\n\n//...\n\napp.use(UluModals, { modals });\n\n```\n\n## Using Global API\n\n```js\n\n// Open a app-wide modal\nthis.$uluModals.open({ exampleProp: value });\n\n// Close app-wide modal \nthis.$uluModals.close();\n\n// Add modals after post-install\nthis.$uluModals.add({\n name: \"settings\",\n component: defineAsyncComponent(() => import('./components/modals/UserSettingsModal.vue')),\n});\n\n// Remove a modal from the registry\nthis.$uluModals.remove(\"settings\");\n\n// Get Modal from registry (not usually needed)\nconst settingsModal = this.$uluModals.get(\"settings\");\n// console.log(settingsModal.name) ==> \"settings\"\n```\n\n## Using Composition API (via composable)\n\nComposable is used get access to modals API (through inject)\n\n```html\n\n<template>\n <button @click=\"showSettingsModal\">My Settings</button>\n</template>\n\n<script setup>\n import { useModals } from \"./useModals\";\n\n const modals = useModals();\n const showSettingsModal = () => {\n console.log(\"This is opening via uluModals composable\");\n modals.open(\"settings\");\n };\n</script>\n\n```\n\n## Standalone Modal Component\n\nThe `UluModal` **component is independent of this plugin.** The plugin is simply a convenient way to manage global modals (for things like a settings dialog) that need to be opened from anywhere in your application.\n\nYou can use `UluModal` as the component that the plugin displays, or you can use it on its own for any case where you are managing the state locally within a component and don't need a global API.\n\nHere is a demonstration of the standalone `UluModal` component:\n\n<Canvas of={ModalStories.Default} />"
|
|
12631
12631
|
},
|
|
12632
|
-
"breakpoints": {
|
|
12633
|
-
"raw_markdown": "# Breakpoints Plugin\n\n## Purpose\n\nThe Breakpoints Plugin provides app-wide, reactive breakpoint information to your Vue components. It is a lightweight wrapper around the `useBreakpointManager` composable, ensuring that resize events and active breakpoint states are tracked centrally and distributed efficiently via Vue's `provide`/`inject` system.\n\nBy installing this plugin, any component in your application can instantly know the current breakpoint, whether the device is considered \"mobile,\" and the direction the window was just resized.\n\n## Installation\n\nRegister the `breakpointsPlugin` on your Vue app instance.\n\n```javascript\n// src/main.js\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { breakpointsPlugin } from '@ulu/frontend-vue';\n\nconst app = createApp(App);\n\n// Register the breakpoints plugin\napp.use(breakpointsPlugin, {\n // Optional: Change which breakpoint triggers the 'isMobile' flag (default is 'small')\n breakpointMobile: 'small',\n \n // Optional: Pass options directly to the underlying useBreakpointManager\n managerOptions: {\n // onReady(manager) { ... }\n }\n});\n\napp.mount('#app');\n```\n\n## Provided Injections\n\nThe plugin does not attach methods to the Vue instance. Instead, it provides reactive `computed` refs that you can inject into any component.\n\n- **`uluIsMobile`**: `ComputedRef<Boolean>` - True if the current active breakpoint is less than or equal to the configured `breakpointMobile` (defaults to `'small'`).\n- **`uluBreakpointActive`**: `ComputedRef<String>` - The name of the currently active breakpoint (e.g., `'small'`, `'medium'`, `'large'`).\n- **`uluBreakpointDirection`**: `ComputedRef<Number>` - Indicates the resize direction (`1` for growing larger, `-1` for shrinking smaller, `0` for initialization).\n- **`uluBreakpointManager`**: `ComputedRef<Object>` - The underlying vanilla JS BreakpointManager instance, allowing advanced programmatic subscriptions if needed.\n\n## Example Usage\n\n**Composition API (`<script setup>`)**\n```vue\n<script setup>\n import { inject } from 'vue';\n\n const isMobile = inject('uluIsMobile');\n const currentBreakpoint = inject('uluBreakpointActive');\n</script>\n\n<template>\n <div>\n <p v-if=\"isMobile\">You are on a mobile device!</p>\n <p>Current Breakpoint: {{ currentBreakpoint }}</p>\n </div>\n</template>\n```\n\n**Options API**\n```vue\n<script>\nexport default {\n inject: ['uluIsMobile', 'uluBreakpointActive'],\n mounted() {\n console.log('Is mobile?', this.uluIsMobile);\n }\n}\n</script>\n```\n\n## Why use the Plugin vs the Composable?\n\nWhile you can import and use `useBreakpointManager()` directly in individual components, registering the Breakpoints Plugin ensures that the vanilla JS `BreakpointManager` is only instantiated once. This centralizes the resize event listeners, significantly improving performance across large applications with many responsive components.\n"
|
|
12634
|
-
},
|
|
12635
12632
|
"core": {
|
|
12636
12633
|
"raw_markdown": "# Core Plugin\n\n## Purpose\n\nThe Core Plugin is the central, **required** plugin for the `@ulu/frontend-vue` library. Its primary purpose is to establish a single, reactive source of truth for configuration settings that are shared across multiple components. \n\nBy using Vue's `provide`/`inject` system, this plugin ensures that all components within your application access the same configuration, preventing inconsistencies that can arise from separate module imports.\n\n## Installation\n\nTo use this library, you must register the `corePlugin` on your Vue app instance. You can also pass an options object to override the default settings.\n\n```javascript\n// src/main.js\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { corePlugin } from '@ulu/frontend-vue';\n\nconst app = createApp(App);\n\n// Register the core plugin\napp.use(corePlugin, {\n // Optional: override general settings\n fontAwesomeStatic: true,\n\n // Optional: override specific icons safely\n iconsByType: {\n danger: 'my-custom-danger-icon',\n close: 'my-custom-close-icon'\n }\n});\n\napp.mount('#app');\n```\n\n## API Reference\n\nThe plugin provides its API to your application in two ways:\n\n- **Composition API:** `inject('uluCore')`\n- **Options API:** `this.$uluCore`\n\nThe API object contains the following methods:\n\n- `getSettings()`: Returns the full reactive settings object.\n- `getSetting(key)`: Retrieves a single setting by its key (e.g., `'fontAwesomeStatic'`).\n- `updateSetting(key, value)`: Updates a single setting.\n- `updateSettings(changes)`: Merges an object of changes into the settings.\n- `getDefaultSettings()`: Returns a non-reactive copy of the original default settings.\n- `getIcon(type)`: Retrieves a specific icon class string by its semantic type (e.g., `'danger'`, `'close'`).\n- `setIcon(type, definition)`: Safely sets or overrides a single icon definition.\n\n### Example Usage\n\n**Composition API (`<script setup>`)**\n```vue\n<script setup>\nimport { inject, onMounted } from 'vue';\n\nconst uluCore = inject('uluCore');\n\nonMounted(() => {\n const icons = uluCore.getSetting('iconsByType');\n console.log('Danger Icon:', icons.danger);\n\n // Example of updating a single icon dynamically\n uluCore.setIcon('success', 'my-awesome-success-icon');\n});\n</script>\n```\n\n**Options API**\n```vue\n<script>\nexport default {\n mounted() {\n const icons = this.$uluCore.getSetting('icons');\n console.log('Danger Icon:', icons.danger);\n }\n}\n</script>\n```\n\n"
|
|
12637
12634
|
},
|
|
12635
|
+
"breakpoints": {
|
|
12636
|
+
"raw_markdown": "# Breakpoints Plugin\n\n## Purpose\n\nThe Breakpoints Plugin provides app-wide, reactive breakpoint information to your Vue components. It is a lightweight wrapper around the `useBreakpointManager` composable, ensuring that resize events and active breakpoint states are tracked centrally and distributed efficiently via Vue's `provide`/`inject` system.\n\nBy installing this plugin, any component in your application can instantly know the current breakpoint, whether the device is considered \"mobile,\" and the direction the window was just resized.\n\n## Installation\n\nRegister the `breakpointsPlugin` on your Vue app instance.\n\n```javascript\n// src/main.js\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { breakpointsPlugin } from '@ulu/frontend-vue';\n\nconst app = createApp(App);\n\n// Register the breakpoints plugin\napp.use(breakpointsPlugin, {\n // Optional: Change which breakpoint triggers the 'isMobile' flag (default is 'small')\n breakpointMobile: 'small',\n \n // Optional: Pass options directly to the underlying useBreakpointManager\n managerOptions: {\n // onReady(manager) { ... }\n }\n});\n\napp.mount('#app');\n```\n\n## Provided Injections\n\nThe plugin does not attach methods to the Vue instance. Instead, it provides reactive `computed` refs that you can inject into any component.\n\n- **`uluIsMobile`**: `ComputedRef<Boolean>` - True if the current active breakpoint is less than or equal to the configured `breakpointMobile` (defaults to `'small'`).\n- **`uluBreakpointActive`**: `ComputedRef<String>` - The name of the currently active breakpoint (e.g., `'small'`, `'medium'`, `'large'`).\n- **`uluBreakpointDirection`**: `ComputedRef<Number>` - Indicates the resize direction (`1` for growing larger, `-1` for shrinking smaller, `0` for initialization).\n- **`uluBreakpointManager`**: `ComputedRef<Object>` - The underlying vanilla JS BreakpointManager instance, allowing advanced programmatic subscriptions if needed.\n\n## Example Usage\n\n**Composition API (`<script setup>`)**\n```vue\n<script setup>\n import { inject } from 'vue';\n\n const isMobile = inject('uluIsMobile');\n const currentBreakpoint = inject('uluBreakpointActive');\n</script>\n\n<template>\n <div>\n <p v-if=\"isMobile\">You are on a mobile device!</p>\n <p>Current Breakpoint: {{ currentBreakpoint }}</p>\n </div>\n</template>\n```\n\n**Options API**\n```vue\n<script>\nexport default {\n inject: ['uluIsMobile', 'uluBreakpointActive'],\n mounted() {\n console.log('Is mobile?', this.uluIsMobile);\n }\n}\n</script>\n```\n\n## Why use the Plugin vs the Composable?\n\nWhile you can import and use `useBreakpointManager()` directly in individual components, registering the Breakpoints Plugin ensures that the vanilla JS `BreakpointManager` is only instantiated once. This centralizes the resize event listeners, significantly improving performance across large applications with many responsive components.\n"
|
|
12637
|
+
},
|
|
12638
12638
|
"forms": {
|
|
12639
12639
|
"raw_markdown": "import { Meta, Canvas, Story } from '@storybook/addon-docs/blocks';\nimport * as FullFormDemoStories from './tests/FullFormDemo.stories.js';\n\n# Forms\n\nThis is a demonstration of a full form built with the `ulu-form` components.\n\n<Canvas of={FullFormDemoStories.Default} />\n"
|
|
12640
12640
|
},
|
|
@@ -13042,70 +13042,70 @@
|
|
|
13042
13042
|
"order": 100
|
|
13043
13043
|
},
|
|
13044
13044
|
{
|
|
13045
|
-
"id": "module:
|
|
13046
|
-
"longname": "module:
|
|
13047
|
-
"name": "
|
|
13045
|
+
"id": "module:useModals",
|
|
13046
|
+
"longname": "module:useModals",
|
|
13047
|
+
"name": "useModals",
|
|
13048
13048
|
"kind": "module",
|
|
13049
|
-
"description": "Core plugin for managing shared configuration for the library.",
|
|
13050
13049
|
"meta": {
|
|
13051
13050
|
"lineno": 1,
|
|
13052
|
-
"filename": "
|
|
13053
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/
|
|
13051
|
+
"filename": "useModals.js",
|
|
13052
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
13054
13053
|
},
|
|
13055
13054
|
"order": 122,
|
|
13056
13055
|
"level": 0
|
|
13057
13056
|
},
|
|
13058
13057
|
{
|
|
13059
|
-
"id": "module:
|
|
13060
|
-
"longname": "module:
|
|
13061
|
-
"name": "
|
|
13058
|
+
"id": "module:modalsPlugin",
|
|
13059
|
+
"longname": "module:modalsPlugin",
|
|
13060
|
+
"name": "modalsPlugin",
|
|
13062
13061
|
"kind": "module",
|
|
13062
|
+
"description": "Modals plugin (adds components, global registry, etc)\n- Updated version handles both independent and global registered/triggered modals",
|
|
13063
13063
|
"meta": {
|
|
13064
13064
|
"lineno": 1,
|
|
13065
13065
|
"filename": "index.js",
|
|
13066
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/
|
|
13066
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
13067
13067
|
},
|
|
13068
13068
|
"order": 124,
|
|
13069
13069
|
"level": 0
|
|
13070
13070
|
},
|
|
13071
13071
|
{
|
|
13072
|
-
"id": "module:
|
|
13073
|
-
"longname": "module:
|
|
13074
|
-
"name": "
|
|
13072
|
+
"id": "modals.module:api",
|
|
13073
|
+
"longname": "modals.module:api",
|
|
13074
|
+
"name": "api",
|
|
13075
13075
|
"kind": "module",
|
|
13076
13076
|
"meta": {
|
|
13077
13077
|
"lineno": 1,
|
|
13078
|
-
"filename": "
|
|
13078
|
+
"filename": "api.js",
|
|
13079
13079
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
13080
13080
|
},
|
|
13081
|
-
"order":
|
|
13081
|
+
"order": 127,
|
|
13082
13082
|
"level": 0
|
|
13083
13083
|
},
|
|
13084
13084
|
{
|
|
13085
|
-
"id": "module:
|
|
13086
|
-
"longname": "module:
|
|
13087
|
-
"name": "
|
|
13085
|
+
"id": "module:breakpointsPlugin",
|
|
13086
|
+
"longname": "module:breakpointsPlugin",
|
|
13087
|
+
"name": "breakpointsPlugin",
|
|
13088
13088
|
"kind": "module",
|
|
13089
|
-
"description": "Modals plugin (adds components, global registry, etc)\n- Updated version handles both independent and global registered/triggered modals",
|
|
13090
13089
|
"meta": {
|
|
13091
13090
|
"lineno": 1,
|
|
13092
13091
|
"filename": "index.js",
|
|
13093
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/
|
|
13092
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
13094
13093
|
},
|
|
13095
|
-
"order":
|
|
13094
|
+
"order": 136,
|
|
13096
13095
|
"level": 0
|
|
13097
13096
|
},
|
|
13098
13097
|
{
|
|
13099
|
-
"id": "
|
|
13100
|
-
"longname": "
|
|
13101
|
-
"name": "
|
|
13098
|
+
"id": "module:corePlugin",
|
|
13099
|
+
"longname": "module:corePlugin",
|
|
13100
|
+
"name": "corePlugin",
|
|
13102
13101
|
"kind": "module",
|
|
13102
|
+
"description": "Core plugin for managing shared configuration for the library.",
|
|
13103
13103
|
"meta": {
|
|
13104
13104
|
"lineno": 1,
|
|
13105
|
-
"filename": "
|
|
13106
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/
|
|
13105
|
+
"filename": "index.js",
|
|
13106
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/core"
|
|
13107
13107
|
},
|
|
13108
|
-
"order":
|
|
13108
|
+
"order": 141,
|
|
13109
13109
|
"level": 0
|
|
13110
13110
|
},
|
|
13111
13111
|
{
|
|
@@ -13226,42 +13226,58 @@
|
|
|
13226
13226
|
"level": 0
|
|
13227
13227
|
},
|
|
13228
13228
|
{
|
|
13229
|
-
"id": "module:
|
|
13230
|
-
"longname": "module:
|
|
13229
|
+
"id": "module:modalsPlugin--module.exports",
|
|
13230
|
+
"longname": "module:modalsPlugin",
|
|
13231
13231
|
"name": "module.exports",
|
|
13232
13232
|
"kind": "function",
|
|
13233
13233
|
"isExported": true,
|
|
13234
|
-
"description": "
|
|
13235
|
-
"memberof": "module:
|
|
13234
|
+
"description": "Modals Vue Plugin",
|
|
13235
|
+
"memberof": "module:modalsPlugin",
|
|
13236
13236
|
"params": [
|
|
13237
13237
|
{
|
|
13238
13238
|
"type": {
|
|
13239
13239
|
"names": [
|
|
13240
|
-
"
|
|
13240
|
+
"Object"
|
|
13241
13241
|
]
|
|
13242
13242
|
},
|
|
13243
|
-
"description": "
|
|
13244
|
-
"name": "
|
|
13243
|
+
"description": "Vue app instance passed to plugin",
|
|
13244
|
+
"name": "App"
|
|
13245
13245
|
},
|
|
13246
13246
|
{
|
|
13247
13247
|
"type": {
|
|
13248
13248
|
"names": [
|
|
13249
|
-
"
|
|
13249
|
+
"module:modalsPlugin~UluModalsPluginOptions"
|
|
13250
13250
|
]
|
|
13251
13251
|
},
|
|
13252
|
-
"
|
|
13253
|
-
"
|
|
13254
|
-
|
|
13255
|
-
|
|
13252
|
+
"description": "Options to change (see defaults)",
|
|
13253
|
+
"name": "userOptions"
|
|
13254
|
+
}
|
|
13255
|
+
],
|
|
13256
|
+
"meta": {
|
|
13257
|
+
"lineno": 28,
|
|
13258
|
+
"filename": "index.js",
|
|
13259
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
13260
|
+
},
|
|
13261
|
+
"order": 126,
|
|
13262
|
+
"level": 0
|
|
13263
|
+
},
|
|
13264
|
+
{
|
|
13265
|
+
"id": "module:breakpointsPlugin--module.exports",
|
|
13266
|
+
"longname": "module:breakpointsPlugin",
|
|
13267
|
+
"name": "module.exports",
|
|
13268
|
+
"kind": "function",
|
|
13269
|
+
"isExported": true,
|
|
13270
|
+
"description": "Installs the breakpoints plugin, providing app-wide reactive breakpoint information.\nIt uses `useBreakpointManager` internally and provides `uluIsMobile`,\n`uluBreakpointActive`, `uluBreakpointDirection`, and `uluBreakpointManager` to all components.",
|
|
13271
|
+
"memberof": "module:breakpointsPlugin",
|
|
13272
|
+
"params": [
|
|
13256
13273
|
{
|
|
13257
13274
|
"type": {
|
|
13258
13275
|
"names": [
|
|
13259
|
-
"
|
|
13276
|
+
"object"
|
|
13260
13277
|
]
|
|
13261
13278
|
},
|
|
13262
|
-
"
|
|
13263
|
-
"
|
|
13264
|
-
"name": "userSettings.fontAwesomeStatic"
|
|
13279
|
+
"description": "The Vue app instance.",
|
|
13280
|
+
"name": "app"
|
|
13265
13281
|
},
|
|
13266
13282
|
{
|
|
13267
13283
|
"type": {
|
|
@@ -13269,19 +13285,19 @@
|
|
|
13269
13285
|
"object"
|
|
13270
13286
|
]
|
|
13271
13287
|
},
|
|
13272
|
-
"
|
|
13273
|
-
"
|
|
13274
|
-
"name": "userSettings.iconComponent"
|
|
13288
|
+
"description": "User-defined options.",
|
|
13289
|
+
"name": "userOptions"
|
|
13275
13290
|
},
|
|
13276
13291
|
{
|
|
13277
13292
|
"type": {
|
|
13278
13293
|
"names": [
|
|
13279
|
-
"
|
|
13294
|
+
"string"
|
|
13280
13295
|
]
|
|
13281
13296
|
},
|
|
13282
13297
|
"optional": true,
|
|
13283
|
-
"
|
|
13284
|
-
"
|
|
13298
|
+
"defaultvalue": "\"small\"",
|
|
13299
|
+
"description": "The breakpoint name to use for `isMobile` detection.",
|
|
13300
|
+
"name": "userOptions.breakpointMobile"
|
|
13285
13301
|
},
|
|
13286
13302
|
{
|
|
13287
13303
|
"type": {
|
|
@@ -13290,26 +13306,26 @@
|
|
|
13290
13306
|
]
|
|
13291
13307
|
},
|
|
13292
13308
|
"optional": true,
|
|
13293
|
-
"description": "
|
|
13294
|
-
"name": "
|
|
13309
|
+
"description": "Options to pass to the underlying `useBreakpointManager`.",
|
|
13310
|
+
"name": "userOptions.managerOptions"
|
|
13295
13311
|
}
|
|
13296
13312
|
],
|
|
13297
13313
|
"meta": {
|
|
13298
|
-
"lineno":
|
|
13314
|
+
"lineno": 31,
|
|
13299
13315
|
"filename": "index.js",
|
|
13300
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/
|
|
13316
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
13301
13317
|
},
|
|
13302
|
-
"order":
|
|
13318
|
+
"order": 140,
|
|
13303
13319
|
"level": 0
|
|
13304
13320
|
},
|
|
13305
13321
|
{
|
|
13306
|
-
"id": "module:
|
|
13307
|
-
"longname": "module:
|
|
13322
|
+
"id": "module:corePlugin--module.exports",
|
|
13323
|
+
"longname": "module:corePlugin",
|
|
13308
13324
|
"name": "module.exports",
|
|
13309
13325
|
"kind": "function",
|
|
13310
13326
|
"isExported": true,
|
|
13311
|
-
"description": "Installs the
|
|
13312
|
-
"memberof": "module:
|
|
13327
|
+
"description": "Installs the core plugin, which provides a centralized, reactive configuration for the entire library.\nIt is essential for managing global settings, particularly for the icon system.",
|
|
13328
|
+
"memberof": "module:corePlugin",
|
|
13313
13329
|
"params": [
|
|
13314
13330
|
{
|
|
13315
13331
|
"type": {
|
|
@@ -13326,19 +13342,19 @@
|
|
|
13326
13342
|
"object"
|
|
13327
13343
|
]
|
|
13328
13344
|
},
|
|
13329
|
-
"
|
|
13330
|
-
"
|
|
13345
|
+
"optional": true,
|
|
13346
|
+
"description": "User-defined settings to override defaults.",
|
|
13347
|
+
"name": "userSettings"
|
|
13331
13348
|
},
|
|
13332
13349
|
{
|
|
13333
13350
|
"type": {
|
|
13334
13351
|
"names": [
|
|
13335
|
-
"
|
|
13352
|
+
"boolean"
|
|
13336
13353
|
]
|
|
13337
13354
|
},
|
|
13338
13355
|
"optional": true,
|
|
13339
|
-
"
|
|
13340
|
-
"
|
|
13341
|
-
"name": "userOptions.breakpointMobile"
|
|
13356
|
+
"description": "If true, uses static FontAwesome CSS classes instead of the Vue component.",
|
|
13357
|
+
"name": "userSettings.fontAwesomeStatic"
|
|
13342
13358
|
},
|
|
13343
13359
|
{
|
|
13344
13360
|
"type": {
|
|
@@ -13347,52 +13363,36 @@
|
|
|
13347
13363
|
]
|
|
13348
13364
|
},
|
|
13349
13365
|
"optional": true,
|
|
13350
|
-
"description": "
|
|
13351
|
-
"name": "
|
|
13352
|
-
}
|
|
13353
|
-
],
|
|
13354
|
-
"meta": {
|
|
13355
|
-
"lineno": 31,
|
|
13356
|
-
"filename": "index.js",
|
|
13357
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
13358
|
-
},
|
|
13359
|
-
"order": 128,
|
|
13360
|
-
"level": 0
|
|
13361
|
-
},
|
|
13362
|
-
{
|
|
13363
|
-
"id": "module:modalsPlugin--module.exports",
|
|
13364
|
-
"longname": "module:modalsPlugin",
|
|
13365
|
-
"name": "module.exports",
|
|
13366
|
-
"kind": "function",
|
|
13367
|
-
"isExported": true,
|
|
13368
|
-
"description": "Modals Vue Plugin",
|
|
13369
|
-
"memberof": "module:modalsPlugin",
|
|
13370
|
-
"params": [
|
|
13366
|
+
"description": "A custom component to use for rendering icons.",
|
|
13367
|
+
"name": "userSettings.iconComponent"
|
|
13368
|
+
},
|
|
13371
13369
|
{
|
|
13372
13370
|
"type": {
|
|
13373
13371
|
"names": [
|
|
13374
|
-
"
|
|
13372
|
+
"function"
|
|
13375
13373
|
]
|
|
13376
13374
|
},
|
|
13377
|
-
"
|
|
13378
|
-
"
|
|
13375
|
+
"optional": true,
|
|
13376
|
+
"description": "A function to resolve props for the custom icon component.",
|
|
13377
|
+
"name": "userSettings.iconPropResolver"
|
|
13379
13378
|
},
|
|
13380
13379
|
{
|
|
13381
13380
|
"type": {
|
|
13382
13381
|
"names": [
|
|
13383
|
-
"
|
|
13382
|
+
"object"
|
|
13384
13383
|
]
|
|
13385
13384
|
},
|
|
13386
|
-
"
|
|
13387
|
-
"
|
|
13385
|
+
"optional": true,
|
|
13386
|
+
"description": "An object to override default icon definitions by type (e.g., `{ danger: 'my-icon' }`).",
|
|
13387
|
+
"name": "userSettings.iconsByType"
|
|
13388
13388
|
}
|
|
13389
13389
|
],
|
|
13390
13390
|
"meta": {
|
|
13391
|
-
"lineno":
|
|
13391
|
+
"lineno": 49,
|
|
13392
13392
|
"filename": "index.js",
|
|
13393
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/
|
|
13393
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/core"
|
|
13394
13394
|
},
|
|
13395
|
-
"order":
|
|
13395
|
+
"order": 142,
|
|
13396
13396
|
"level": 0
|
|
13397
13397
|
},
|
|
13398
13398
|
{
|
|
@@ -14314,7 +14314,7 @@
|
|
|
14314
14314
|
"filename": "index.js",
|
|
14315
14315
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
14316
14316
|
},
|
|
14317
|
-
"order":
|
|
14317
|
+
"order": 138,
|
|
14318
14318
|
"level": 0
|
|
14319
14319
|
},
|
|
14320
14320
|
{
|
|
@@ -14330,7 +14330,7 @@
|
|
|
14330
14330
|
"filename": "index.js",
|
|
14331
14331
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
14332
14332
|
},
|
|
14333
|
-
"order":
|
|
14333
|
+
"order": 139,
|
|
14334
14334
|
"level": 0
|
|
14335
14335
|
},
|
|
14336
14336
|
{
|
|
@@ -14532,7 +14532,7 @@
|
|
|
14532
14532
|
"filename": "useModals.js",
|
|
14533
14533
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
14534
14534
|
},
|
|
14535
|
-
"order":
|
|
14535
|
+
"order": 123,
|
|
14536
14536
|
"level": 0
|
|
14537
14537
|
},
|
|
14538
14538
|
{
|
|
@@ -16295,7 +16295,7 @@
|
|
|
16295
16295
|
"filename": "api.js",
|
|
16296
16296
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16297
16297
|
},
|
|
16298
|
-
"order":
|
|
16298
|
+
"order": 129,
|
|
16299
16299
|
"level": 0
|
|
16300
16300
|
},
|
|
16301
16301
|
{
|
|
@@ -16311,7 +16311,7 @@
|
|
|
16311
16311
|
"filename": "api.js",
|
|
16312
16312
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16313
16313
|
},
|
|
16314
|
-
"order":
|
|
16314
|
+
"order": 130,
|
|
16315
16315
|
"level": 0
|
|
16316
16316
|
},
|
|
16317
16317
|
{
|
|
@@ -16348,23 +16348,6 @@
|
|
|
16348
16348
|
"order": 45,
|
|
16349
16349
|
"level": 0
|
|
16350
16350
|
},
|
|
16351
|
-
{
|
|
16352
|
-
"id": "module:breakpointsPlugin--module.exports~defaults",
|
|
16353
|
-
"longname": "module:breakpointsPlugin~defaults",
|
|
16354
|
-
"name": "defaults",
|
|
16355
|
-
"kind": "constant",
|
|
16356
|
-
"scope": "inner",
|
|
16357
|
-
"description": "Plugin Options",
|
|
16358
|
-
"memberof": "module:breakpointsPlugin--module.exports",
|
|
16359
|
-
"params": [],
|
|
16360
|
-
"meta": {
|
|
16361
|
-
"lineno": 10,
|
|
16362
|
-
"filename": "index.js",
|
|
16363
|
-
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
16364
|
-
},
|
|
16365
|
-
"order": 125,
|
|
16366
|
-
"level": 0
|
|
16367
|
-
},
|
|
16368
16351
|
{
|
|
16369
16352
|
"id": "modals.module:api~state",
|
|
16370
16353
|
"longname": "modals.module:api~state",
|
|
@@ -16379,7 +16362,7 @@
|
|
|
16379
16362
|
"filename": "api.js",
|
|
16380
16363
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16381
16364
|
},
|
|
16382
|
-
"order":
|
|
16365
|
+
"order": 128,
|
|
16383
16366
|
"level": 0
|
|
16384
16367
|
},
|
|
16385
16368
|
{
|
|
@@ -16396,7 +16379,24 @@
|
|
|
16396
16379
|
"filename": "api.js",
|
|
16397
16380
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16398
16381
|
},
|
|
16399
|
-
"order":
|
|
16382
|
+
"order": 131,
|
|
16383
|
+
"level": 0
|
|
16384
|
+
},
|
|
16385
|
+
{
|
|
16386
|
+
"id": "module:breakpointsPlugin--module.exports~defaults",
|
|
16387
|
+
"longname": "module:breakpointsPlugin~defaults",
|
|
16388
|
+
"name": "defaults",
|
|
16389
|
+
"kind": "constant",
|
|
16390
|
+
"scope": "inner",
|
|
16391
|
+
"description": "Plugin Options",
|
|
16392
|
+
"memberof": "module:breakpointsPlugin--module.exports",
|
|
16393
|
+
"params": [],
|
|
16394
|
+
"meta": {
|
|
16395
|
+
"lineno": 10,
|
|
16396
|
+
"filename": "index.js",
|
|
16397
|
+
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
|
|
16398
|
+
},
|
|
16399
|
+
"order": 137,
|
|
16400
16400
|
"level": 0
|
|
16401
16401
|
},
|
|
16402
16402
|
{
|
|
@@ -16614,7 +16614,7 @@
|
|
|
16614
16614
|
"filename": "api.js",
|
|
16615
16615
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16616
16616
|
},
|
|
16617
|
-
"order":
|
|
16617
|
+
"order": 132,
|
|
16618
16618
|
"level": 0
|
|
16619
16619
|
},
|
|
16620
16620
|
{
|
|
@@ -16640,7 +16640,7 @@
|
|
|
16640
16640
|
"filename": "api.js",
|
|
16641
16641
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16642
16642
|
},
|
|
16643
|
-
"order":
|
|
16643
|
+
"order": 133,
|
|
16644
16644
|
"level": 0
|
|
16645
16645
|
},
|
|
16646
16646
|
{
|
|
@@ -16656,7 +16656,7 @@
|
|
|
16656
16656
|
"filename": "api.js",
|
|
16657
16657
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16658
16658
|
},
|
|
16659
|
-
"order":
|
|
16659
|
+
"order": 134,
|
|
16660
16660
|
"level": 0
|
|
16661
16661
|
},
|
|
16662
16662
|
{
|
|
@@ -16682,7 +16682,7 @@
|
|
|
16682
16682
|
"filename": "api.js",
|
|
16683
16683
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
16684
16684
|
},
|
|
16685
|
-
"order":
|
|
16685
|
+
"order": 135,
|
|
16686
16686
|
"level": 0
|
|
16687
16687
|
},
|
|
16688
16688
|
{
|
|
@@ -17165,7 +17165,7 @@
|
|
|
17165
17165
|
"filename": "index.js",
|
|
17166
17166
|
"path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
|
|
17167
17167
|
},
|
|
17168
|
-
"order":
|
|
17168
|
+
"order": 125,
|
|
17169
17169
|
"level": 0
|
|
17170
17170
|
}
|
|
17171
17171
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UluPopoverBase.vue.d.ts","sourceRoot":"","sources":["../../../lib/plugins/popovers/UluPopoverBase.vue"],"names":[],"mappings":"AA+BA;
|
|
1
|
+
{"version":3,"file":"UluPopoverBase.vue.d.ts","sourceRoot":"","sources":["../../../lib/plugins/popovers/UluPopoverBase.vue"],"names":[],"mappings":"AA+BA;wBAkfqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAdjC;IAzHI;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;oBA0HJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref as x, computed as y, watch as L, nextTick as
|
|
1
|
+
import { ref as x, computed as y, watch as L, nextTick as O, onUnmounted as M, createElementBlock as u, openBlock as d, withKeys as T, unref as l, normalizeStyle as v, normalizeClass as j, createElementVNode as A, createCommentVNode as k, renderSlot as C } from "vue";
|
|
2
2
|
import { useUluFloating as H } from "../../composables/useUluFloating.js";
|
|
3
3
|
import { useModifiers as U } from "../../composables/useModifiers.js";
|
|
4
4
|
import { wasClickOutside as $ } from "@ulu/utils/browser/dom.js";
|
|
@@ -34,8 +34,8 @@ const z = ["data-placement"], K = { class: "popover__inner" }, N = {
|
|
|
34
34
|
*/
|
|
35
35
|
directFocus: {
|
|
36
36
|
type: Function,
|
|
37
|
-
default: ({ isOpen: s, trigger:
|
|
38
|
-
s && c ? c.focus({ preventScroll: !0 }) : !s &&
|
|
37
|
+
default: ({ isOpen: s, trigger: n, content: c }) => {
|
|
38
|
+
s && c ? c.focus({ preventScroll: !0 }) : !s && n && n instanceof HTMLElement && n.focus({ preventScroll: !0 });
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
/**
|
|
@@ -58,39 +58,39 @@ const z = ["data-placement"], K = { class: "popover__inner" }, N = {
|
|
|
58
58
|
modifiers: [String, Array, Object]
|
|
59
59
|
},
|
|
60
60
|
emits: ["close", "update:isOpen"],
|
|
61
|
-
setup(s, { expose:
|
|
62
|
-
const
|
|
61
|
+
setup(s, { expose: n, emit: c }) {
|
|
62
|
+
const p = c, e = s, o = x(null), { resolvedModifiers: _ } = U({ props: e, baseClass: "popover" }), f = y(() => e.config || {}), { floatingStyles: w, placement: E, arrowStyles: F, update: m, isFixedStrategy: S, contentArrow: h } = H(
|
|
63
63
|
y(() => e.trigger),
|
|
64
64
|
o,
|
|
65
65
|
f
|
|
66
66
|
), i = () => {
|
|
67
|
-
|
|
67
|
+
p("close"), p("update:isOpen", !1);
|
|
68
68
|
}, b = (t) => {
|
|
69
69
|
e.isOpen && e.escapeCloses && (t.preventDefault(), i());
|
|
70
70
|
};
|
|
71
|
-
let
|
|
71
|
+
let r = null;
|
|
72
72
|
const a = () => {
|
|
73
|
-
|
|
73
|
+
r && (document.removeEventListener("click", r), r = null);
|
|
74
74
|
}, B = () => {
|
|
75
|
-
a(), e.clickOutsideCloses && (
|
|
76
|
-
if (!(!e.isOpen || !o.value) && document.body.contains(t.target) && !o.value.contains(t.target) && $(o.value, t)) {
|
|
75
|
+
a(), e.clickOutsideCloses && (r = (t) => {
|
|
76
|
+
if (!(!e.isOpen || !o.value) && document.body.contains(t.target) && !o.value.contains(t.target) && !t.target.closest("[data-ulu-tour-ui]") && $(o.value, t)) {
|
|
77
77
|
if (e.trigger instanceof HTMLElement && e.trigger.contains(t.target))
|
|
78
78
|
return;
|
|
79
79
|
i();
|
|
80
80
|
}
|
|
81
81
|
}, setTimeout(() => {
|
|
82
|
-
|
|
82
|
+
r && document.addEventListener("click", r);
|
|
83
83
|
}, 0));
|
|
84
84
|
};
|
|
85
85
|
return L(() => e.isOpen, (t, g) => {
|
|
86
|
-
t ? (m(), B(), e.directFocus &&
|
|
86
|
+
t ? (m(), B(), e.directFocus && O(() => {
|
|
87
87
|
e.directFocus({ isOpen: !0, trigger: e.trigger, content: o.value });
|
|
88
|
-
})) : (a(), e.directFocus && g === !0 &&
|
|
88
|
+
})) : (a(), e.directFocus && g === !0 && O(() => {
|
|
89
89
|
e.directFocus({ isOpen: !1, trigger: e.trigger, content: o.value });
|
|
90
90
|
}));
|
|
91
91
|
}, { immediate: !0 }), M(() => {
|
|
92
92
|
a();
|
|
93
|
-
}),
|
|
93
|
+
}), n({
|
|
94
94
|
/**
|
|
95
95
|
* Emits the close event
|
|
96
96
|
*/
|
|
@@ -103,7 +103,7 @@ const z = ["data-placement"], K = { class: "popover__inner" }, N = {
|
|
|
103
103
|
* The internal root popover element reference
|
|
104
104
|
*/
|
|
105
105
|
content: o
|
|
106
|
-
}), (t, g) => (
|
|
106
|
+
}), (t, g) => (d(), u("span", {
|
|
107
107
|
class: j(["popover", [
|
|
108
108
|
{
|
|
109
109
|
"popover--fixed": l(S),
|
|
@@ -113,7 +113,7 @@ const z = ["data-placement"], K = { class: "popover__inner" }, N = {
|
|
|
113
113
|
]]),
|
|
114
114
|
ref_key: "contentEl",
|
|
115
115
|
ref: o,
|
|
116
|
-
style:
|
|
116
|
+
style: v(l(w)),
|
|
117
117
|
"data-placement": l(E),
|
|
118
118
|
onKeydown: T(b, ["esc"]),
|
|
119
119
|
tabindex: "-1"
|
|
@@ -124,18 +124,18 @@ const z = ["data-placement"], K = { class: "popover__inner" }, N = {
|
|
|
124
124
|
close: i
|
|
125
125
|
})
|
|
126
126
|
]),
|
|
127
|
-
t.$slots.footer ? (
|
|
127
|
+
t.$slots.footer ? (d(), u("span", N, [
|
|
128
128
|
C(t.$slots, "footer", {
|
|
129
129
|
isOpen: s.isOpen,
|
|
130
130
|
close: i
|
|
131
131
|
})
|
|
132
132
|
])) : k("", !0),
|
|
133
|
-
f.value.arrow ? (
|
|
133
|
+
f.value.arrow ? (d(), u("span", {
|
|
134
134
|
key: 1,
|
|
135
135
|
class: "popover__arrow",
|
|
136
136
|
ref_key: "contentArrow",
|
|
137
137
|
ref: h,
|
|
138
|
-
style:
|
|
138
|
+
style: v(l(F)),
|
|
139
139
|
"data-ulu-popover-arrow": ""
|
|
140
140
|
}, null, 4)) : k("", !0)
|
|
141
141
|
], 46, z));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UluTourDisplay.vue.d.ts","sourceRoot":"","sources":["../../../lib/plugins/tour/UluTourDisplay.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UluTourDisplay.vue.d.ts","sourceRoot":"","sources":["../../../lib/plugins/tour/UluTourDisplay.vue"],"names":[],"mappings":"AAmEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA6hBklS,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAjW/nS,KAAK"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed as
|
|
1
|
+
import { computed as p, ref as f, watch as S, nextTick as T, onMounted as b, onUnmounted as L, createBlock as l, openBlock as o, Teleport as F, createElementBlock as y, createCommentVNode as x, unref as v, Fragment as I, resolveDynamicComponent as g, mergeProps as s, createSlots as $, withCtx as c, normalizeProps as k, createVNode as w, normalizeStyle as R } from "vue";
|
|
2
2
|
import V from "../../components/collapsible/UluModal.vue.js";
|
|
3
3
|
import D from "../popovers/UluPopoverBase.vue.js";
|
|
4
4
|
import P from "./UluTourPager.vue.js";
|
|
@@ -7,20 +7,20 @@ import { useTour as M } from "./useTour.js";
|
|
|
7
7
|
const H = {
|
|
8
8
|
__name: "UluTourDisplay",
|
|
9
9
|
setup(N) {
|
|
10
|
-
const { api:
|
|
10
|
+
const { api: d, state: u } = M(), t = p(() => u.active?.steps[u.stepIndex]), a = f(null), m = f(null), C = p(() => ({
|
|
11
11
|
placement: t.value?.placement || "bottom",
|
|
12
12
|
arrow: !0,
|
|
13
13
|
offset: 8
|
|
14
|
-
})), E =
|
|
15
|
-
...
|
|
14
|
+
})), E = p(() => ({
|
|
15
|
+
...u.active?.modalProps || {},
|
|
16
16
|
...t.value?.modalProps || {}
|
|
17
|
-
})), z =
|
|
17
|
+
})), z = p(() => ({
|
|
18
18
|
modifiers: "large",
|
|
19
|
-
...
|
|
19
|
+
...u.active?.popoverProps || {},
|
|
20
20
|
...t.value?.popoverProps || {}
|
|
21
|
-
})), r = f(null),
|
|
22
|
-
if (
|
|
23
|
-
const e =
|
|
21
|
+
})), r = f(null), i = () => {
|
|
22
|
+
if (a.value) {
|
|
23
|
+
const e = a.value.getBoundingClientRect();
|
|
24
24
|
r.value = {
|
|
25
25
|
top: e.top,
|
|
26
26
|
left: e.left,
|
|
@@ -29,7 +29,7 @@ const H = {
|
|
|
29
29
|
};
|
|
30
30
|
} else
|
|
31
31
|
r.value = null;
|
|
32
|
-
}, B =
|
|
32
|
+
}, B = p(() => {
|
|
33
33
|
if (!r.value) return {};
|
|
34
34
|
const e = r.value;
|
|
35
35
|
return {
|
|
@@ -60,27 +60,31 @@ const H = {
|
|
|
60
60
|
if (e?.target) {
|
|
61
61
|
await T();
|
|
62
62
|
const n = document.querySelector(e.target);
|
|
63
|
-
n ? (
|
|
63
|
+
n ? (a.value = n, m.value && m.value.update(), e.highlight && i()) : console.warn(`Tour target not found: ${e.target}`);
|
|
64
64
|
} else
|
|
65
|
-
|
|
65
|
+
a.value = null, r.value = null;
|
|
66
66
|
}, { immediate: !0 }), b(() => {
|
|
67
|
-
window.addEventListener("resize",
|
|
67
|
+
window.addEventListener("resize", i), window.addEventListener("scroll", i);
|
|
68
68
|
}), L(() => {
|
|
69
|
-
window.removeEventListener("resize",
|
|
69
|
+
window.removeEventListener("resize", i), window.removeEventListener("scroll", i);
|
|
70
70
|
}), (e, n) => (o(), l(F, { to: "body" }, [
|
|
71
|
-
v(
|
|
72
|
-
t.value?.component ? (o(), l(g(t.value.component),
|
|
71
|
+
v(u).active ? (o(), y(I, { key: 0 }, [
|
|
72
|
+
t.value?.component ? (o(), l(g(t.value.component), s({
|
|
73
|
+
key: 0,
|
|
74
|
+
"data-ulu-tour-ui": "true"
|
|
75
|
+
}, t.value.componentProps), null, 16)) : t.value?.target ? (o(), l(D, s({
|
|
73
76
|
key: 2,
|
|
74
77
|
ref_key: "popoverBase",
|
|
75
|
-
ref:
|
|
76
|
-
trigger:
|
|
78
|
+
ref: m,
|
|
79
|
+
trigger: a.value,
|
|
77
80
|
config: C.value,
|
|
78
81
|
style: { zIndex: 9999 },
|
|
79
82
|
isOpen: !0,
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
"data-ulu-tour-ui": "true",
|
|
84
|
+
onClose: n[1] || (n[1] = (h) => v(d).stop())
|
|
85
|
+
}, z.value), $({
|
|
82
86
|
default: c(() => [
|
|
83
|
-
t.value?.contentComponent ? (o(), l(g(t.value.contentComponent),
|
|
87
|
+
t.value?.contentComponent ? (o(), l(g(t.value.contentComponent), k(s({ key: 0 }, t.value.componentProps)), null, 16)) : (o(), l(_, {
|
|
84
88
|
key: 1,
|
|
85
89
|
step: t.value,
|
|
86
90
|
"is-modal": !1
|
|
@@ -97,12 +101,13 @@ const H = {
|
|
|
97
101
|
}
|
|
98
102
|
]), 1040, ["trigger", "config"])) : (o(), l(V, s({
|
|
99
103
|
key: 1,
|
|
100
|
-
modelValue: !0
|
|
104
|
+
modelValue: !0,
|
|
105
|
+
"data-ulu-tour-ui": "true"
|
|
101
106
|
}, E.value, {
|
|
102
|
-
onClose: n[0] || (n[0] = (
|
|
103
|
-
}),
|
|
107
|
+
onClose: n[0] || (n[0] = (h) => v(d).stop())
|
|
108
|
+
}), $({
|
|
104
109
|
default: c(() => [
|
|
105
|
-
t.value?.contentComponent ? (o(), l(g(t.value.contentComponent),
|
|
110
|
+
t.value?.contentComponent ? (o(), l(g(t.value.contentComponent), k(s({ key: 0 }, t.value.componentProps)), null, 16)) : (o(), l(_, {
|
|
106
111
|
key: 1,
|
|
107
112
|
step: t.value,
|
|
108
113
|
"is-modal": !0
|
|
@@ -118,13 +123,14 @@ const H = {
|
|
|
118
123
|
key: "0"
|
|
119
124
|
}
|
|
120
125
|
]), 1040)),
|
|
121
|
-
t.value?.target && t.value?.highlight && r.value ? (o(),
|
|
126
|
+
t.value?.target && t.value?.highlight && r.value ? (o(), y("div", {
|
|
122
127
|
key: 3,
|
|
123
128
|
class: "tour-highlight-backdrop",
|
|
124
129
|
style: R(B.value),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
130
|
+
"data-ulu-tour-ui": "true",
|
|
131
|
+
onClick: n[2] || (n[2] = (h) => v(d).stop())
|
|
132
|
+
}, null, 4)) : x("", !0)
|
|
133
|
+
], 64)) : x("", !0)
|
|
128
134
|
]));
|
|
129
135
|
}
|
|
130
136
|
};
|
package/package.json
CHANGED