vue-micro-router 1.0.56 → 1.0.58

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.
Files changed (2) hide show
  1. package/dist/index.mjs +627 -603
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
- import { shallowReactive as U, computed as A, defineAsyncComponent as me, reactive as pe, nextTick as k, ref as ee, inject as x, watch as X, onMounted as q, onBeforeUnmount as he, provide as N, toRefs as Ne, toRef as Oe, defineComponent as oe, openBlock as G, createBlock as F, resolveDynamicComponent as ye, mergeProps as Pe, Teleport as Ke, createElementVNode as j, withModifiers as le, normalizeStyle as be, normalizeClass as Q, createElementBlock as V, createCommentVNode as We, renderSlot as we, Fragment as te, createVNode as Re, TransitionGroup as Se, withCtx as ce, renderList as ue, unref as Y } from "vue";
2
- import { i as De, s as Ce, g as H, w as ne, p as B, b as K, n as W, u as $e } from "./use-audio-manager.mjs";
1
+ import { shallowReactive as U, computed as C, defineAsyncComponent as me, reactive as pe, nextTick as k, ref as ee, inject as V, watch as X, onMounted as q, onBeforeUnmount as he, provide as N, toRefs as Oe, toRef as Ke, defineComponent as oe, openBlock as B, createBlock as z, resolveDynamicComponent as ye, mergeProps as Pe, Teleport as We, createElementVNode as j, withModifiers as le, normalizeStyle as be, normalizeClass as Q, createElementBlock as x, createCommentVNode as $e, renderSlot as we, Fragment as te, createVNode as Re, TransitionGroup as Ee, withCtx as ce, renderList as ue, unref as Y } from "vue";
2
+ import { i as De, s as Ae, g as H, w as ne, p as _, b as K, n as W, u as Ye } from "./use-audio-manager.mjs";
3
3
  const Me = Symbol("micro-router");
4
- function vt() {
4
+ function ht() {
5
5
  return Symbol("micro-router-nested");
6
6
  }
7
- const de = Symbol("micro-router-root"), Le = Symbol("micro-route-path"), Te = Symbol("micro-dialog-path"), _e = Symbol("micro-control-name"), ae = Symbol("micro-attrs-read"), ie = Symbol("micro-attrs-write"), Ye = 550;
8
- function Ae() {
7
+ const de = Symbol("micro-router-root"), Le = Symbol("micro-route-path"), Te = Symbol("micro-dialog-path"), Ie = Symbol("micro-control-name"), ae = Symbol("micro-attrs-read"), ie = Symbol("micro-attrs-write"), Ue = 550;
8
+ function Ce() {
9
9
  const e = /* @__PURE__ */ new Set();
10
10
  function o(i, t) {
11
- const c = setTimeout(() => {
12
- e.delete(c), i();
11
+ const l = setTimeout(() => {
12
+ e.delete(l), i();
13
13
  }, t);
14
- return e.add(c), c;
14
+ return e.add(l), l;
15
15
  }
16
16
  function n() {
17
17
  e.forEach(clearTimeout), e.clear();
@@ -21,90 +21,90 @@ function Ae() {
21
21
  function fe(e) {
22
22
  return new Promise((o) => setTimeout(o, e));
23
23
  }
24
- function Ue(e, o) {
25
- const n = e.defaultControlName, i = e.onboardingControlName, t = 300, c = Ae();
26
- let u = !1;
27
- const s = U(/* @__PURE__ */ new Map()), f = U(
24
+ function Xe(e, o) {
25
+ const n = e.defaultControlName, i = e.onboardingControlName, t = 300, l = Ce();
26
+ let c = !1;
27
+ const r = U(/* @__PURE__ */ new Map()), u = U(
28
28
  /* @__PURE__ */ new Map()
29
- ), a = A(() => {
30
- const l = [];
31
- for (const r of s.values())
32
- r.activated && l.push(r);
33
- return l;
34
- }), d = a, R = A(
35
- () => a.value.some((l) => l.name !== n)
36
- ), L = A(() => {
37
- const l = a.value.find((r) => r.name !== n);
38
- return (l == null ? void 0 : l.name) ?? n;
29
+ ), a = C(() => {
30
+ const s = [];
31
+ for (const f of r.values())
32
+ f.activated && s.push(f);
33
+ return s;
34
+ }), m = a, R = C(
35
+ () => a.value.some((s) => s.name !== n)
36
+ ), L = C(() => {
37
+ const s = a.value.find((f) => f.name !== n);
38
+ return (s == null ? void 0 : s.name) ?? n;
39
39
  });
40
- function M(l, r, P) {
41
- var h, C, m;
42
- if (!(r && u)) {
43
- r && (u = !0);
40
+ function M(s, f, A) {
41
+ var d, P, p;
42
+ if (!(f && c)) {
43
+ f && (c = !0);
44
44
  try {
45
- const y = s.get(l);
46
- if (!y) return;
47
- const v = s.get(n), D = l === n || l === i;
48
- if (r)
49
- (h = o == null ? void 0 : o.trackGuiEnter) == null || h.call(o, l), D ? s.forEach((w) => {
50
- var b;
51
- w.name !== n && w.activated && ((b = o == null ? void 0 : o.trackGuiLeave) == null || b.call(o, w.name), s.set(w.name, {
45
+ const h = r.get(s);
46
+ if (!h) return;
47
+ const v = r.get(n), D = s === n || s === i;
48
+ if (f)
49
+ (d = o == null ? void 0 : o.trackGuiEnter) == null || d.call(o, s), D ? r.forEach((w) => {
50
+ var S;
51
+ w.name !== n && w.activated && ((S = o == null ? void 0 : o.trackGuiLeave) == null || S.call(o, w.name), r.set(w.name, {
52
52
  ...w,
53
53
  activated: !1,
54
54
  attrs: void 0
55
55
  }));
56
- }) : v != null && v.activated && ((C = o == null ? void 0 : o.trackGuiLeave) == null || C.call(o, n), s.set(n, { ...v, activated: !1 })), P && f.set(l, { ...P }), s.set(l, {
57
- ...y,
56
+ }) : v != null && v.activated && ((P = o == null ? void 0 : o.trackGuiLeave) == null || P.call(o, n), r.set(n, { ...v, activated: !1 })), A && u.set(s, { ...A }), r.set(s, {
57
+ ...h,
58
58
  activated: !0,
59
- componentKey: (y.componentKey || 0) + 1,
60
- attrs: P ? { ...P } : void 0
59
+ componentKey: (h.componentKey || 0) + 1,
60
+ attrs: A ? { ...A } : void 0
61
61
  });
62
62
  else {
63
- (m = o == null ? void 0 : o.trackGuiLeave) == null || m.call(o, l), f.delete(l), s.set(l, { ...y, activated: !1, attrs: void 0 });
64
- const w = s.get(n);
63
+ (p = o == null ? void 0 : o.trackGuiLeave) == null || p.call(o, s), u.delete(s), r.set(s, { ...h, activated: !1, attrs: void 0 });
64
+ const w = r.get(n);
65
65
  if (!D && w && !w.activated) {
66
66
  if (w.name === i) return;
67
- s.set(n, { ...w, activated: !0 });
67
+ r.set(n, { ...w, activated: !0 });
68
68
  }
69
69
  }
70
70
  } finally {
71
- r && c.schedule(() => {
72
- u = !1;
71
+ f && l.schedule(() => {
72
+ c = !1;
73
73
  }, t);
74
74
  }
75
75
  }
76
76
  }
77
- function _(l) {
78
- s.has(l.name) && console.warn(`[vue-micro-router] Control "${l.name}" already registered. Overwriting.`);
79
- let { component: r } = l;
80
- De(r) && (r = me(r)), s.set(l.name, {
81
- ...l,
82
- component: Ce(r)
77
+ function T(s) {
78
+ r.has(s.name) && console.warn(`[vue-micro-router] Control "${s.name}" already registered. Overwriting.`);
79
+ let { component: f } = s;
80
+ De(f) && (f = me(f)), r.set(s.name, {
81
+ ...s,
82
+ component: Ae(f)
83
83
  });
84
84
  }
85
- function T(l) {
86
- l.forEach(_);
85
+ function I(s) {
86
+ s.forEach(T);
87
87
  }
88
- function g(l) {
89
- return f.get(l);
88
+ function g(s) {
89
+ return u.get(s);
90
90
  }
91
- function p(l, r) {
92
- const P = f.get(l);
93
- f.set(l, { ...P, ...r });
91
+ function y(s, f) {
92
+ const A = u.get(s);
93
+ u.set(s, { ...A, ...f });
94
94
  }
95
95
  return {
96
- resolveControls: d,
96
+ resolveControls: m,
97
97
  activeControl: R,
98
98
  currentControl: L,
99
99
  toggleControl: M,
100
- registerControl: _,
101
- registerControls: T,
100
+ registerControl: T,
101
+ registerControls: I,
102
102
  getControlAttrs: g,
103
- updateControlAttrs: p,
104
- cleanup: c.cleanup
103
+ updateControlAttrs: y,
104
+ cleanup: l.cleanup
105
105
  };
106
106
  }
107
- const ge = "micro-router-inspector", Xe = "micro-router-events";
107
+ const ge = "micro-router-inspector", Fe = "micro-router-events";
108
108
  async function ze(e) {
109
109
  if (typeof import.meta < "u") return;
110
110
  let o;
@@ -129,7 +129,7 @@ async function ze(e) {
129
129
  label: "Micro Router",
130
130
  icon: "route"
131
131
  }), n.addTimelineLayer({
132
- id: Xe,
132
+ id: Fe,
133
133
  label: "Micro Router",
134
134
  color: 4372611
135
135
  }), n.on.getInspectorTree((i) => {
@@ -200,30 +200,30 @@ async function ze(e) {
200
200
  }
201
201
  );
202
202
  }
203
- function Fe(e) {
203
+ function Ve(e) {
204
204
  const o = e.activePath.value.split("/").filter(Boolean), n = {};
205
- for (const s of o) {
206
- const f = e.getRouteAttrs(s);
207
- f && (n[s] = { ...f });
205
+ for (const r of o) {
206
+ const u = e.getRouteAttrs(r);
207
+ u && (n[r] = { ...u });
208
208
  }
209
209
  const i = [], t = {};
210
- for (const s of e.resolveDialogs.value) {
211
- if (s.closing) continue;
212
- i.push(s.path);
213
- const f = e.getDialogAttrs(s.path);
214
- f && (t[s.path] = { ...f });
210
+ for (const r of e.resolveDialogs.value) {
211
+ if (r.closing) continue;
212
+ i.push(r.path);
213
+ const u = e.getDialogAttrs(r.path);
214
+ u && (t[r.path] = { ...u });
215
215
  }
216
- const c = [], u = {};
217
- for (const s of e.resolveControls.value) {
218
- c.push(s.name);
219
- const f = e.getControlAttrs(s.name);
220
- f && (u[s.name] = { ...f });
216
+ const l = [], c = {};
217
+ for (const r of e.resolveControls.value) {
218
+ l.push(r.name);
219
+ const u = e.getControlAttrs(r.name);
220
+ u && (c[r.name] = { ...u });
221
221
  }
222
222
  return {
223
223
  version: 1,
224
224
  navigation: { activePath: e.activePath.value, routeAttrs: n },
225
225
  dialogs: { stack: i, attrs: t },
226
- controls: { active: c, attrs: u }
226
+ controls: { active: l, attrs: c }
227
227
  };
228
228
  }
229
229
  async function xe(e, o) {
@@ -233,19 +233,19 @@ async function xe(e, o) {
233
233
  }
234
234
  const { activePath: n, routeAttrs: i } = o.navigation;
235
235
  await e.push(n);
236
- for (const [t, c] of Object.entries(i))
237
- e.updateRouteAttrs(t, c);
236
+ for (const [t, l] of Object.entries(i))
237
+ e.updateRouteAttrs(t, l);
238
238
  for (const t of o.dialogs.stack) {
239
- const c = o.dialogs.attrs[t];
240
- e.openDialog(t, c);
239
+ const l = o.dialogs.attrs[t];
240
+ e.openDialog(t, l);
241
241
  }
242
242
  for (const t of o.controls.active) {
243
- const c = o.controls.attrs[t];
244
- e.toggleControl(t, !0, c);
243
+ const l = o.controls.attrs[t];
244
+ e.toggleControl(t, !0, l);
245
245
  }
246
246
  }
247
- function Ve(e) {
248
- const n = Ae();
247
+ function je(e) {
248
+ const n = Ce();
249
249
  let i = !1;
250
250
  const t = pe({
251
251
  activeDialog: "",
@@ -257,167 +257,167 @@ function Ve(e) {
257
257
  dialogs: U(/* @__PURE__ */ new Map()),
258
258
  /** Attrs stored separately for useMicroState access inside dialog components */
259
259
  dialogAttrs: U(/* @__PURE__ */ new Map())
260
- }), c = A(() => {
261
- const g = [], p = /* @__PURE__ */ new Set();
262
- for (const l of t.dialogStack) {
263
- const r = t.dialogs.get(l);
264
- r && (r.activated || r.closing) && (g.push(r), p.add(l));
260
+ }), l = C(() => {
261
+ const g = [], y = /* @__PURE__ */ new Set();
262
+ for (const s of t.dialogStack) {
263
+ const f = t.dialogs.get(s);
264
+ f && (f.activated || f.closing) && (g.push(f), y.add(s));
265
265
  }
266
- for (const l of t.dialogs.values())
267
- l.closing && !p.has(l.path) && g.push(l);
266
+ for (const s of t.dialogs.values())
267
+ s.closing && !y.has(s.path) && g.push(s);
268
268
  return g;
269
- }), u = n.schedule;
270
- function s(g, p) {
271
- return { path: g, attrs: p };
269
+ }), c = n.schedule;
270
+ function r(g, y) {
271
+ return { path: g, attrs: y };
272
272
  }
273
- function f({ path: g, open: p, attrs: l }) {
274
- const r = t.dialogs.get(g);
275
- return r && k(() => {
276
- if (p)
277
- t.fromDialog = t.activeDialog, t.toDialog = g, t.dialogStack.includes(g) || t.dialogStack.push(g), t.activeDialog = g, l && t.dialogAttrs.set(g, { ...l }), t.dialogs.set(g, {
278
- ...r,
273
+ function u({ path: g, open: y, attrs: s }) {
274
+ const f = t.dialogs.get(g);
275
+ return f && k(() => {
276
+ if (y)
277
+ t.fromDialog = t.activeDialog, t.toDialog = g, t.dialogStack.includes(g) || t.dialogStack.push(g), t.activeDialog = g, s && t.dialogAttrs.set(g, { ...s }), t.dialogs.set(g, {
278
+ ...f,
279
279
  activated: !0,
280
280
  closing: !1,
281
- componentKey: (r.componentKey || 0) + 1,
281
+ componentKey: (f.componentKey || 0) + 1,
282
282
  attrs: {
283
283
  path: g,
284
- ...l,
284
+ ...s,
285
285
  onClose: () => {
286
- d(g), l != null && l.onClose && typeof l.onClose == "function" && l.onClose();
286
+ m(g), s != null && s.onClose && typeof s.onClose == "function" && s.onClose();
287
287
  }
288
288
  }
289
289
  });
290
290
  else {
291
291
  t.fromDialog = t.activeDialog;
292
- const P = t.dialogStack.indexOf(g);
293
- P > -1 && t.dialogStack.splice(P, 1), t.activeDialog = t.dialogStack.at(-1) ?? "", t.toDialog = t.activeDialog;
294
- const h = r.transitionDuration ?? (r.transition === "slide" ? 500 : 300);
292
+ const A = t.dialogStack.indexOf(g);
293
+ A > -1 && t.dialogStack.splice(A, 1), t.activeDialog = t.dialogStack.at(-1) ?? "", t.toDialog = t.activeDialog;
294
+ const d = f.transitionDuration ?? (f.transition === "slide" ? 500 : 300);
295
295
  t.dialogs.set(g, {
296
- ...r,
296
+ ...f,
297
297
  activated: !1,
298
298
  closing: !0,
299
299
  attrs: void 0
300
- }), u(() => {
301
- const C = t.dialogs.get(g);
302
- C && !C.activated && t.dialogs.set(g, { ...C, closing: !1 });
303
- }, h + 200);
300
+ }), c(() => {
301
+ const P = t.dialogs.get(g);
302
+ P && !P.activated && t.dialogs.set(g, { ...P, closing: !1 });
303
+ }, d + 200);
304
304
  }
305
- }), s(g, l);
305
+ }), r(g, s);
306
306
  }
307
- function a(g, p) {
308
- var l;
309
- if (i) return s(g, p);
307
+ function a(g, y) {
308
+ var s;
309
+ if (i) return r(g, y);
310
310
  i = !0;
311
311
  try {
312
- const r = t.activeDialog || "";
313
- (l = e == null ? void 0 : e.trackDialogEnter) == null || l.call(e, g, r, g);
314
- const P = f({ path: g, open: !0, attrs: p });
315
- return u(() => {
312
+ const f = t.activeDialog || "";
313
+ (s = e == null ? void 0 : e.trackDialogEnter) == null || s.call(e, g, f, g);
314
+ const A = u({ path: g, open: !0, attrs: y });
315
+ return c(() => {
316
316
  i = !1;
317
- }, 300), P;
318
- } catch (r) {
319
- throw i = !1, r;
317
+ }, 300), A;
318
+ } catch (f) {
319
+ throw i = !1, f;
320
320
  }
321
321
  }
322
- function d(g) {
323
- var p;
324
- (p = e == null ? void 0 : e.trackDialogLeave) == null || p.call(e, g, g, ""), t.dialogAttrs.delete(g), f({ path: g, open: !1 });
322
+ function m(g) {
323
+ var y;
324
+ (y = e == null ? void 0 : e.trackDialogLeave) == null || y.call(e, g, g, ""), t.dialogAttrs.delete(g), u({ path: g, open: !1 });
325
325
  }
326
326
  function R() {
327
- const g = [], p = [];
328
- t.dialogs.forEach((l, r) => {
329
- var P, h;
330
- if (l.activated) {
331
- (P = e == null ? void 0 : e.trackDialogLeave) == null || P.call(e, r, r, "");
332
- const C = (h = l.attrs) == null ? void 0 : h.onClose;
333
- typeof C == "function" && p.push(C), t.dialogs.set(r, {
334
- ...l,
327
+ const g = [], y = [];
328
+ t.dialogs.forEach((s, f) => {
329
+ var A, d;
330
+ if (s.activated) {
331
+ (A = e == null ? void 0 : e.trackDialogLeave) == null || A.call(e, f, f, "");
332
+ const P = (d = s.attrs) == null ? void 0 : d.onClose;
333
+ typeof P == "function" && y.push(P), t.dialogs.set(f, {
334
+ ...s,
335
335
  activated: !1,
336
336
  closing: !0,
337
337
  attrs: void 0
338
- }), g.push(r);
338
+ }), g.push(f);
339
339
  }
340
- }), p.forEach((l) => l()), t.dialogAttrs.clear(), t.fromDialog = t.activeDialog, t.toDialog = "", t.activeDialog = "", t.dialogStack = [], u(() => {
341
- g.forEach((l) => {
342
- const r = t.dialogs.get(l);
343
- r && !r.activated && t.dialogs.set(l, { ...r, closing: !1 });
340
+ }), y.forEach((s) => s()), t.dialogAttrs.clear(), t.fromDialog = t.activeDialog, t.toDialog = "", t.activeDialog = "", t.dialogStack = [], c(() => {
341
+ g.forEach((s) => {
342
+ const f = t.dialogs.get(s);
343
+ f && !f.activated && t.dialogs.set(s, { ...f, closing: !1 });
344
344
  });
345
345
  }, 500);
346
346
  }
347
347
  function L(g) {
348
348
  t.dialogs.has(g.path) && console.warn(`[vue-micro-router] Dialog "${g.path}" already registered. Overwriting.`);
349
- let { component: p } = g;
350
- De(p) && (p = me(p)), t.dialogs.set(g.path, {
349
+ let { component: y } = g;
350
+ De(y) && (y = me(y)), t.dialogs.set(g.path, {
351
351
  persistent: !0,
352
352
  ...g,
353
- component: Ce(p)
353
+ component: Ae(y)
354
354
  });
355
355
  }
356
356
  function M(g) {
357
357
  g.forEach(L);
358
358
  }
359
- function _(g) {
359
+ function T(g) {
360
360
  return t.dialogAttrs.get(g);
361
361
  }
362
- function T(g, p) {
363
- const l = t.dialogAttrs.get(g);
364
- t.dialogAttrs.set(g, { ...l, ...p });
362
+ function I(g, y) {
363
+ const s = t.dialogAttrs.get(g);
364
+ t.dialogAttrs.set(g, { ...s, ...y });
365
365
  }
366
366
  return {
367
- activeDialog: A(() => t.activeDialog),
368
- fromDialog: A(() => t.fromDialog),
369
- toDialog: A(() => t.toDialog),
370
- resolveDialogs: c,
367
+ activeDialog: C(() => t.activeDialog),
368
+ fromDialog: C(() => t.fromDialog),
369
+ toDialog: C(() => t.toDialog),
370
+ resolveDialogs: l,
371
371
  openDialog: a,
372
- closeDialog: d,
372
+ closeDialog: m,
373
373
  closeAllDialogs: R,
374
374
  registerDialog: L,
375
375
  registerDialogs: M,
376
- getDialogAttrs: _,
377
- updateDialogAttrs: T,
376
+ getDialogAttrs: T,
377
+ updateDialogAttrs: I,
378
378
  cleanup: n.cleanup
379
379
  };
380
380
  }
381
- const Be = 5e3;
381
+ const _e = 5e3;
382
382
  async function ve(e, o, n, i) {
383
383
  let t;
384
384
  try {
385
- const c = await Promise.race([
385
+ const l = await Promise.race([
386
386
  Promise.resolve(e(o, n)),
387
- new Promise((u, s) => {
388
- t = setTimeout(() => s(new Error("Navigation guard timed out")), i);
387
+ new Promise((c, r) => {
388
+ t = setTimeout(() => r(new Error("Navigation guard timed out")), i);
389
389
  })
390
390
  ]);
391
- return clearTimeout(t), c !== !1;
391
+ return clearTimeout(t), l !== !1;
392
392
  } catch {
393
393
  return clearTimeout(t), !1;
394
394
  }
395
395
  }
396
- async function je(e, o, n, i = Be) {
396
+ async function He(e, o, n, i = _e) {
397
397
  for (const t of e)
398
398
  if (!await ve(t, o, n, i)) return !1;
399
399
  return !0;
400
400
  }
401
- async function Ee(e, o, n, i) {
402
- var s;
403
- const t = n.guardTimeout ?? Be;
404
- if ((s = n.beforeEach) != null && s.length && !await je(n.beforeEach, e, o, t))
401
+ async function Se(e, o, n, i) {
402
+ var r;
403
+ const t = n.guardTimeout ?? _e;
404
+ if ((r = n.beforeEach) != null && r.length && !await He(n.beforeEach, e, o, t))
405
405
  return !1;
406
- const c = H(e);
407
- if (c) {
408
- const f = i.getRoute(c);
409
- if (f != null && f.beforeEnter && !await ve(f.beforeEnter, e, o, t))
406
+ const l = H(e);
407
+ if (l) {
408
+ const u = i.getRoute(l);
409
+ if (u != null && u.beforeEnter && !await ve(u.beforeEnter, e, o, t))
410
410
  return !1;
411
411
  }
412
- const u = H(o);
413
- if (u) {
414
- const f = i.getRoute(u);
415
- if (f != null && f.beforeLeave && !await ve(f.beforeLeave, e, o, t))
412
+ const c = H(o);
413
+ if (c) {
414
+ const u = i.getRoute(c);
415
+ if (u != null && u.beforeLeave && !await ve(u.beforeLeave, e, o, t))
416
416
  return !1;
417
417
  }
418
418
  return !0;
419
419
  }
420
- function He(e, o, n) {
420
+ function qe(e, o, n) {
421
421
  if (n != null && n.length)
422
422
  for (const i of n)
423
423
  try {
@@ -425,23 +425,23 @@ function He(e, o, n) {
425
425
  } catch {
426
426
  }
427
427
  }
428
- function qe(e, o) {
428
+ function Je(e, o) {
429
429
  const n = e.maxEntries ?? 50, i = [];
430
- let t = -1, c = !1;
431
- const u = ee(0);
432
- function s(g, p) {
433
- !e.enabled || c || (t < i.length - 1 && i.splice(t + 1), i.push({ path: g, timestamp: Date.now(), props: p ? { ...p } : void 0 }), t = i.length - 1, i.length > n && (i.shift(), t--), u.value++);
430
+ let t = -1, l = !1;
431
+ const c = ee(0);
432
+ function r(g, y) {
433
+ !e.enabled || l || (t < i.length - 1 && i.splice(t + 1), i.push({ path: g, timestamp: Date.now(), props: y ? { ...y } : void 0 }), t = i.length - 1, i.length > n && (i.shift(), t--), c.value++);
434
434
  }
435
- const f = A(() => (u.value, [...i])), a = A(() => (u.value, t > 0)), d = A(() => (u.value, t < i.length - 1));
435
+ const u = C(() => (c.value, [...i])), a = C(() => (c.value, t > 0)), m = C(() => (c.value, t < i.length - 1));
436
436
  async function R(g) {
437
437
  if (g < 0 || g >= i.length) return;
438
- const p = i[g];
439
- if (p) {
440
- t = g, c = !0, u.value++;
438
+ const y = i[g];
439
+ if (y) {
440
+ t = g, l = !0, c.value++;
441
441
  try {
442
- await o(p.path);
442
+ await o(y.path);
443
443
  } finally {
444
- c = !1;
444
+ l = !1;
445
445
  }
446
446
  }
447
447
  }
@@ -449,112 +449,112 @@ function qe(e, o) {
449
449
  a.value && await R(t - 1);
450
450
  }
451
451
  async function M() {
452
- d.value && await R(t + 1);
452
+ m.value && await R(t + 1);
453
453
  }
454
- async function _(g) {
455
- const p = t + g;
456
- await R(p);
454
+ async function T(g) {
455
+ const y = t + g;
456
+ await R(y);
457
457
  }
458
- function T() {
459
- i.length = 0, t = -1, u.value++;
458
+ function I() {
459
+ i.length = 0, t = -1, c.value++;
460
460
  }
461
- return { entries: f, canGoBack: a, canGoForward: d, back: L, forward: M, go: _, clear: T, record: s };
461
+ return { entries: u, canGoBack: a, canGoForward: m, back: L, forward: M, go: T, clear: I, record: r };
462
462
  }
463
- function Je() {
463
+ function Qe() {
464
464
  const e = U(/* @__PURE__ */ new Map()), o = /* @__PURE__ */ new Map();
465
- function n(u) {
466
- e.has(u.path) && console.warn(`[vue-micro-router] Route "${u.path}" already registered. Overwriting.`);
467
- let { component: s } = u;
468
- De(s) && (o.set(u.path, s), s = me(s)), e.set(u.path, {
469
- ...u,
470
- component: Ce(s)
471
- }), u.preload === "eager" && o.has(u.path) && ne(o.get(u.path));
465
+ function n(c) {
466
+ e.has(c.path) && console.warn(`[vue-micro-router] Route "${c.path}" already registered. Overwriting.`);
467
+ let { component: r } = c;
468
+ De(r) && (o.set(c.path, r), r = me(r)), e.set(c.path, {
469
+ ...c,
470
+ component: Ae(r)
471
+ }), c.preload === "eager" && o.has(c.path) && ne(o.get(c.path));
472
472
  }
473
- function i(u) {
474
- u.forEach(n);
473
+ function i(c) {
474
+ c.forEach(n);
475
475
  }
476
- async function t(u) {
477
- const s = o.get(u);
478
- s && await ne(s);
476
+ async function t(c) {
477
+ const r = o.get(c);
478
+ r && await ne(r);
479
479
  }
480
- function c(u) {
481
- for (const [s, f] of e.entries())
482
- if (f.preload === "adjacent" && !u.includes(s)) {
483
- const a = o.get(s);
480
+ function l(c) {
481
+ for (const [r, u] of e.entries())
482
+ if (u.preload === "adjacent" && !c.includes(r)) {
483
+ const a = o.get(r);
484
484
  a && ne(a);
485
485
  }
486
486
  }
487
- return { routes: e, asyncLoaders: o, registerRoute: n, registerRoutes: i, preloadRoute: t, preloadAdjacent: c };
487
+ return { routes: e, asyncLoaders: o, registerRoute: n, registerRoutes: i, preloadRoute: t, preloadAdjacent: l };
488
488
  }
489
- function Qe(e) {
489
+ function Ze(e) {
490
490
  const o = e.stepWiseDelay ?? Math.max(e.stepDelay * 1.2, e.stepDelay + 100);
491
- async function n(t, c) {
491
+ async function n(t, l) {
492
492
  if (!t || e.isLocked()) return;
493
- const u = W(t);
494
- if (e.getActivePath() !== u) {
493
+ const c = W(t);
494
+ if (e.getActivePath() !== c) {
495
495
  e.lock();
496
496
  try {
497
497
  if (e.runGuards) {
498
498
  const a = W(e.getActivePath());
499
- if (!await e.runGuards(u, a)) {
499
+ if (!await e.runGuards(c, a)) {
500
500
  e.unlock();
501
501
  return;
502
502
  }
503
503
  }
504
- const s = B(e.getActivePath()), f = B(u);
504
+ const r = _(e.getActivePath()), u = _(c);
505
505
  if (t.startsWith("/"))
506
- for (let a = 0; a < f.length; a++) {
507
- const d = K(
508
- f.slice(0, a + 1)
506
+ for (let a = 0; a < u.length; a++) {
507
+ const m = K(
508
+ u.slice(0, a + 1)
509
509
  );
510
- if (e.getActivePath() === d) continue;
511
- const R = a === f.length - 1;
512
- await e.pushCore(d, R ? c : void 0), R || await fe(o);
510
+ if (e.getActivePath() === m) continue;
511
+ const R = a === u.length - 1;
512
+ await e.pushCore(m, R ? l : void 0), R || await fe(o);
513
513
  }
514
514
  else {
515
- const a = f.filter(
516
- (d) => !s.includes(d)
515
+ const a = u.filter(
516
+ (m) => !r.includes(m)
517
517
  );
518
518
  if (a.length === 0) {
519
- await e.pushCore(t, c), e.scheduleUnlock();
519
+ await e.pushCore(t, l), e.scheduleUnlock();
520
520
  return;
521
521
  }
522
- for (let d = 0; d < a.length; d++) {
523
- const R = d === a.length - 1;
524
- await e.pushCore(a[d], R ? c : void 0), R || await fe(o);
522
+ for (let m = 0; m < a.length; m++) {
523
+ const R = m === a.length - 1;
524
+ await e.pushCore(a[m], R ? l : void 0), R || await fe(o);
525
525
  }
526
526
  }
527
527
  e.scheduleUnlock();
528
- } catch (s) {
529
- throw e.unlock(), s;
528
+ } catch (r) {
529
+ throw e.unlock(), r;
530
530
  }
531
531
  }
532
532
  }
533
533
  async function i(t) {
534
534
  if (t < 1 || e.isLocked()) return;
535
- const c = B(e.getActivePath()), u = Math.min(t, c.length - 1);
536
- if (!(u < 1)) {
535
+ const l = _(e.getActivePath()), c = Math.min(t, l.length - 1);
536
+ if (!(c < 1)) {
537
537
  e.lock();
538
538
  try {
539
539
  if (e.runGuards) {
540
- const s = c.slice(0, c.length - u), f = K(s), a = W(e.getActivePath());
541
- if (!await e.runGuards(f, a)) {
540
+ const r = l.slice(0, l.length - c), u = K(r), a = W(e.getActivePath());
541
+ if (!await e.runGuards(u, a)) {
542
542
  e.unlock();
543
543
  return;
544
544
  }
545
545
  }
546
- for (let s = 0; s < u; s++)
547
- await e.pushCore(-1), s < u - 1 && await fe(o);
546
+ for (let r = 0; r < c; r++)
547
+ await e.pushCore(-1), r < c - 1 && await fe(o);
548
548
  e.scheduleUnlock();
549
- } catch (s) {
550
- throw e.unlock(), s;
549
+ } catch (r) {
550
+ throw e.unlock(), r;
551
551
  }
552
552
  }
553
553
  }
554
554
  return { stepWisePush: n, stepWiseBack: i };
555
555
  }
556
- function Ze(e, o) {
557
- const n = e.defaultPath, i = e.stepDelay ?? Ye, t = e.guards ?? {}, c = e.history ?? {}, u = Ae(), s = Je(), f = ee(!1), a = pe({
556
+ function ke(e, o) {
557
+ const n = e.defaultPath, i = e.stepDelay ?? Ue, t = e.guards ?? {}, l = e.history ?? {}, c = Ce(), r = Qe(), u = ee(!1), a = pe({
558
558
  activePath: n,
559
559
  fromPath: n,
560
560
  toPath: n,
@@ -564,207 +564,207 @@ function Ze(e, o) {
564
564
  routeKeys: U(/* @__PURE__ */ new Map()),
565
565
  /** Component key per segment — incremented to force Vue full remount (resets local state) */
566
566
  componentKeys: U(/* @__PURE__ */ new Map())
567
- }), d = /* @__PURE__ */ new Map(), R = A(() => {
568
- const m = B(a.activePath), y = [];
569
- for (const v of m) {
570
- const D = s.routes.get(v);
567
+ }), m = /* @__PURE__ */ new Map(), R = C(() => {
568
+ const p = _(a.activePath), h = [];
569
+ for (const v of p) {
570
+ const D = r.routes.get(v);
571
571
  if (!D) continue;
572
- const w = a.routeKeys.get(v) || 0, b = a.componentKeys.get(v) || 0, E = `${D.path}-${w}`, S = d.get(v);
573
- if (S && S.key === E && S.componentKey === b)
574
- y.push(S);
572
+ const w = a.routeKeys.get(v) || 0, S = a.componentKeys.get(v) || 0, b = `${D.path}-${w}`, E = m.get(v);
573
+ if (E && E.key === b && E.componentKey === S)
574
+ h.push(E);
575
575
  else {
576
- const O = { ...D, key: E, componentKey: b };
577
- d.set(v, O), y.push(O);
576
+ const O = { ...D, key: b, componentKey: S };
577
+ m.set(v, O), h.push(O);
578
578
  }
579
579
  }
580
- for (const v of d.keys())
581
- m.includes(v) || d.delete(v);
582
- return y;
580
+ for (const v of m.keys())
581
+ p.includes(v) || m.delete(v);
582
+ return h;
583
583
  });
584
- function L(m, y) {
585
- var O, I;
586
- const v = B(a.activePath), D = Math.min(m, v.length - 1);
584
+ function L(p, h) {
585
+ var O, G;
586
+ const v = _(a.activePath), D = Math.min(p, v.length - 1);
587
587
  if (D <= 0) return;
588
- const w = v.slice(0, -D), b = K(w);
588
+ const w = v.slice(0, -D), S = K(w);
589
589
  for (let $ = v.length - D; $ < v.length; $++)
590
590
  a.routeAttrs.delete(v[$]);
591
- const E = w.at(-1);
592
- if (E && y) {
593
- const $ = a.routeAttrs.get(E);
594
- a.routeAttrs.set(E, { ...$, ...y }), a.componentKeys.set(
595
- E,
596
- (a.componentKeys.get(E) || 0) + 1
591
+ const b = w.at(-1);
592
+ if (b && h) {
593
+ const $ = a.routeAttrs.get(b);
594
+ a.routeAttrs.set(b, { ...$, ...h }), a.componentKeys.set(
595
+ b,
596
+ (a.componentKeys.get(b) || 0) + 1
597
597
  );
598
598
  }
599
- const S = a.activePath;
600
- (O = o == null ? void 0 : o.trackPageLeave) == null || O.call(o, S, S, b), a.fromPath = S, a.toPath = b, a.activePath = b, (I = o == null ? void 0 : o.trackPageEnter) == null || I.call(o, b, S, b);
599
+ const E = a.activePath;
600
+ (O = o == null ? void 0 : o.trackPageLeave) == null || O.call(o, E, E, S), a.fromPath = E, a.toPath = S, a.activePath = S, (G = o == null ? void 0 : o.trackPageEnter) == null || G.call(o, S, E, S);
601
601
  }
602
- async function M(m, y) {
603
- var b, E;
604
- const v = W(m), D = B(v);
602
+ async function M(p, h) {
603
+ var S, b;
604
+ const v = W(p), D = _(v);
605
605
  await Promise.all(
606
- D.map((S) => s.asyncLoaders.get(S)).filter((S) => !!S).map((S) => ne(S))
606
+ D.map((E) => r.asyncLoaders.get(E)).filter((E) => !!E).map((E) => ne(E))
607
607
  );
608
608
  const w = a.activePath;
609
- w !== v && ((b = o == null ? void 0 : o.trackPageLeave) == null || b.call(o, w, w, v)), a.fromPath = w, a.toPath = v, a.activePath = v, y && _(v, y), (E = o == null ? void 0 : o.trackPageEnter) == null || E.call(o, v, w, v);
609
+ w !== v && ((S = o == null ? void 0 : o.trackPageLeave) == null || S.call(o, w, w, v)), a.fromPath = w, a.toPath = v, a.activePath = v, h && T(v, h), (b = o == null ? void 0 : o.trackPageEnter) == null || b.call(o, v, w, v);
610
610
  }
611
- function _(m, y) {
612
- const v = B(m).at(-1);
611
+ function T(p, h) {
612
+ const v = _(p).at(-1);
613
613
  if (!v) return;
614
614
  const D = a.routeAttrs.get(v);
615
- a.routeAttrs.set(v, { ...D, ...y });
615
+ a.routeAttrs.set(v, { ...D, ...h });
616
616
  }
617
- function T(m, y) {
618
- const v = a.routeAttrs.get(m);
619
- a.routeAttrs.set(m, { ...v, ...y });
617
+ function I(p, h) {
618
+ const v = a.routeAttrs.get(p);
619
+ a.routeAttrs.set(p, { ...v, ...h });
620
620
  }
621
- function g(m) {
622
- return a.routeAttrs.get(m);
621
+ function g(p) {
622
+ return a.routeAttrs.get(p);
623
623
  }
624
- async function p(m, y) {
625
- if (!m && m !== 0) return;
626
- if (typeof m == "number" && m < 0) {
627
- L(Math.abs(m), y);
624
+ async function y(p, h) {
625
+ if (!p && p !== 0) return;
626
+ if (typeof p == "number" && p < 0) {
627
+ L(Math.abs(p), h);
628
628
  return;
629
629
  }
630
- const v = m.toString();
630
+ const v = p.toString();
631
631
  if (v.startsWith("/")) {
632
- const E = B(v), S = B(a.activePath);
633
- if (E.length < S.length && E.every(($, se) => S[se] === $)) {
634
- if (S.length - E.length === 1)
635
- L(1, y);
632
+ const b = _(v), E = _(a.activePath);
633
+ if (b.length < E.length && b.every(($, se) => E[se] === $)) {
634
+ if (E.length - b.length === 1)
635
+ L(1, h);
636
636
  else {
637
- const se = S.slice(0, E.length + 1), Ie = K(se);
638
- for (let re = E.length + 1; re < S.length; re++)
639
- a.routeAttrs.delete(S[re]);
640
- a.activePath = Ie, await k(), L(1, y);
637
+ const se = E.slice(0, b.length + 1), Ne = K(se);
638
+ for (let re = b.length + 1; re < E.length; re++)
639
+ a.routeAttrs.delete(E[re]);
640
+ a.activePath = Ne, await k(), L(1, h);
641
641
  }
642
642
  return;
643
643
  }
644
- const I = E.at(-1);
645
- I && S.at(-1) === I && a.routeKeys.set(
646
- I,
647
- (a.routeKeys.get(I) || 0) + 1
648
- ), await M(v, y);
644
+ const G = b.at(-1);
645
+ G && E.at(-1) === G && a.routeKeys.set(
646
+ G,
647
+ (a.routeKeys.get(G) || 0) + 1
648
+ ), await M(v, h);
649
649
  return;
650
650
  }
651
- const D = B(a.activePath), w = D.indexOf(v);
651
+ const D = _(a.activePath), w = D.indexOf(v);
652
652
  if (w !== -1) {
653
- const E = D.length - (w + 1);
654
- if (E === 1)
655
- L(1, y);
656
- else if (E > 1) {
657
- const S = D.slice(0, w + 2), O = K(S);
658
- for (let I = w + 2; I < D.length; I++)
659
- a.routeAttrs.delete(D[I]);
660
- a.activePath = O, await k(), L(1, y);
653
+ const b = D.length - (w + 1);
654
+ if (b === 1)
655
+ L(1, h);
656
+ else if (b > 1) {
657
+ const E = D.slice(0, w + 2), O = K(E);
658
+ for (let G = w + 2; G < D.length; G++)
659
+ a.routeAttrs.delete(D[G]);
660
+ a.activePath = O, await k(), L(1, h);
661
661
  } else
662
662
  a.routeKeys.set(v, (a.routeKeys.get(v) || 0) + 1), await M(
663
663
  K(D.slice(0, w + 1)),
664
- y
664
+ h
665
665
  );
666
666
  return;
667
667
  }
668
- const b = K([...D, v]);
669
- await M(b, y);
668
+ const S = K([...D, v]);
669
+ await M(S, h);
670
670
  }
671
- function l(m) {
672
- if (typeof m == "number" && m < 0) {
673
- const w = B(a.activePath), b = Math.min(Math.abs(m), w.length - 1);
674
- return b <= 0 ? a.activePath : K(w.slice(0, -b));
671
+ function s(p) {
672
+ if (typeof p == "number" && p < 0) {
673
+ const w = _(a.activePath), S = Math.min(Math.abs(p), w.length - 1);
674
+ return S <= 0 ? a.activePath : K(w.slice(0, -S));
675
675
  }
676
- const y = m.toString();
677
- if (y.startsWith("/")) return W(y);
678
- const v = B(a.activePath), D = v.indexOf(y);
679
- return D !== -1 ? K(v.slice(0, D + 1)) : K([...v, y]);
676
+ const h = p.toString();
677
+ if (h.startsWith("/")) return W(h);
678
+ const v = _(a.activePath), D = v.indexOf(h);
679
+ return D !== -1 ? K(v.slice(0, D + 1)) : K([...v, h]);
680
680
  }
681
- const r = { getRoute: (m) => s.routes.get(m) };
682
- async function P(m, y) {
681
+ const f = { getRoute: (p) => r.routes.get(p) };
682
+ async function A(p, h) {
683
683
  var v;
684
- if (!f.value) {
685
- f.value = !0;
684
+ if (!u.value) {
685
+ u.value = !0;
686
686
  try {
687
- const D = (((v = t.beforeEach) == null ? void 0 : v.length) ?? 0) > 0, w = s.routes.size > 0;
688
- if ((D || w) && m) {
689
- const S = l(m), O = W(a.activePath);
690
- if (!await Ee(S, O, t, r)) {
691
- f.value = !1;
687
+ const D = (((v = t.beforeEach) == null ? void 0 : v.length) ?? 0) > 0, w = r.routes.size > 0;
688
+ if ((D || w) && p) {
689
+ const E = s(p), O = W(a.activePath);
690
+ if (!await Se(E, O, t, f)) {
691
+ u.value = !1;
692
692
  return;
693
693
  }
694
694
  }
695
+ const S = W(a.activePath);
696
+ await y(p, h);
695
697
  const b = W(a.activePath);
696
- await p(m, y);
697
- const E = W(a.activePath);
698
- h == null || h.record(E, y), He(E, b, t.afterEach), s.preloadAdjacent(B(a.activePath)), u.schedule(() => {
699
- f.value = !1;
698
+ d == null || d.record(b, h), qe(b, S, t.afterEach), r.preloadAdjacent(_(a.activePath)), c.schedule(() => {
699
+ u.value = !1;
700
700
  }, i);
701
701
  } catch (D) {
702
- throw f.value = !1, D;
702
+ throw u.value = !1, D;
703
703
  }
704
704
  }
705
705
  }
706
- const h = c.enabled ? qe(c, async (m) => {
707
- const y = B(a.activePath), v = B(m);
708
- if (v.length < y.length && v.every((w, b) => y[b] === w)) {
709
- const w = y.length - v.length;
710
- await P(-w);
706
+ const d = l.enabled ? Je(l, async (p) => {
707
+ const h = _(a.activePath), v = _(p);
708
+ if (v.length < h.length && v.every((w, S) => h[S] === w)) {
709
+ const w = h.length - v.length;
710
+ await A(-w);
711
711
  } else
712
- await P(m);
712
+ await A(p);
713
713
  }) : void 0;
714
- h && h.record(W(n));
715
- const C = Qe({
714
+ d && d.record(W(n));
715
+ const P = Ze({
716
716
  getActivePath: () => a.activePath,
717
- pushCore: p,
718
- runGuards: (m, y) => Ee(m, y, t, r),
719
- scheduleUnlock: () => u.schedule(() => {
720
- f.value = !1;
717
+ pushCore: y,
718
+ runGuards: (p, h) => Se(p, h, t, f),
719
+ scheduleUnlock: () => c.schedule(() => {
720
+ u.value = !1;
721
721
  }, i),
722
722
  lock: () => {
723
- f.value = !0;
723
+ u.value = !0;
724
724
  },
725
725
  unlock: () => {
726
- f.value = !1;
726
+ u.value = !1;
727
727
  },
728
- isLocked: () => f.value,
728
+ isLocked: () => u.value,
729
729
  stepDelay: i
730
730
  });
731
731
  return {
732
- activePath: A(() => a.activePath),
733
- fromPath: A(() => a.fromPath),
734
- toPath: A(() => a.toPath),
735
- activePage: A(() => H(a.activePath)),
736
- fromPage: A(() => H(a.fromPath)),
737
- toPage: A(() => H(a.toPath)),
738
- isNavigating: A(() => f.value),
732
+ activePath: C(() => a.activePath),
733
+ fromPath: C(() => a.fromPath),
734
+ toPath: C(() => a.toPath),
735
+ activePage: C(() => H(a.activePath)),
736
+ fromPage: C(() => H(a.fromPath)),
737
+ toPage: C(() => H(a.toPath)),
738
+ isNavigating: C(() => u.value),
739
739
  resolveRoutes: R,
740
- push: P,
741
- stepWisePush: C.stepWisePush,
742
- stepWiseBack: C.stepWiseBack,
743
- registerRoute: s.registerRoute,
744
- registerRoutes: s.registerRoutes,
745
- updateRouteAttrs: T,
740
+ push: A,
741
+ stepWisePush: P.stepWisePush,
742
+ stepWiseBack: P.stepWiseBack,
743
+ registerRoute: r.registerRoute,
744
+ registerRoutes: r.registerRoutes,
745
+ updateRouteAttrs: I,
746
746
  getRouteAttrs: g,
747
- preloadRoute: s.preloadRoute,
748
- routes: s.routes,
749
- history: h,
750
- cleanup: u.cleanup
747
+ preloadRoute: r.preloadRoute,
748
+ routes: r.routes,
749
+ history: d,
750
+ cleanup: c.cleanup
751
751
  };
752
752
  }
753
- const z = () => {
753
+ const F = () => {
754
754
  };
755
- function ke(e) {
755
+ function et(e) {
756
756
  return {
757
- trackPageEnter: (e == null ? void 0 : e.trackPageEnter) ?? z,
758
- trackPageLeave: (e == null ? void 0 : e.trackPageLeave) ?? z,
759
- trackDialogEnter: (e == null ? void 0 : e.trackDialogEnter) ?? z,
760
- trackDialogLeave: (e == null ? void 0 : e.trackDialogLeave) ?? z,
761
- trackGuiEnter: (e == null ? void 0 : e.trackGuiEnter) ?? z,
762
- trackGuiLeave: (e == null ? void 0 : e.trackGuiLeave) ?? z,
763
- cleanupAllSessions: (e == null ? void 0 : e.cleanupAllSessions) ?? z
757
+ trackPageEnter: (e == null ? void 0 : e.trackPageEnter) ?? F,
758
+ trackPageLeave: (e == null ? void 0 : e.trackPageLeave) ?? F,
759
+ trackDialogEnter: (e == null ? void 0 : e.trackDialogEnter) ?? F,
760
+ trackDialogLeave: (e == null ? void 0 : e.trackDialogLeave) ?? F,
761
+ trackGuiEnter: (e == null ? void 0 : e.trackGuiEnter) ?? F,
762
+ trackGuiLeave: (e == null ? void 0 : e.trackGuiLeave) ?? F,
763
+ cleanupAllSessions: (e == null ? void 0 : e.cleanupAllSessions) ?? F
764
764
  };
765
765
  }
766
- function et(e) {
767
- const o = ke(e.tracker), n = Ze(
766
+ function tt(e) {
767
+ const o = et(e.tracker), n = ke(
768
768
  {
769
769
  defaultPath: e.defaultPath,
770
770
  stepDelay: e.stepDelay,
@@ -772,16 +772,16 @@ function et(e) {
772
772
  history: e.history
773
773
  },
774
774
  o
775
- ), i = Ve(o), t = Ue(
775
+ ), i = je(o), t = Xe(
776
776
  {
777
777
  defaultControlName: e.defaultControlName,
778
778
  onboardingControlName: e.onboardingControlName
779
779
  },
780
780
  o
781
- ), c = e.volumeRef ? $e({
781
+ ), l = e.volumeRef ? Ye({
782
782
  volumeRef: e.volumeRef,
783
783
  defaultBgm: e.defaultBgm
784
- }) : null, u = {
784
+ }) : null, c = {
785
785
  // Navigation
786
786
  activePath: n.activePath,
787
787
  fromPath: n.fromPath,
@@ -791,14 +791,14 @@ function et(e) {
791
791
  toPage: n.toPage,
792
792
  isNavigating: n.isNavigating,
793
793
  resolveRoutes: n.resolveRoutes,
794
- push: async (a, d) => {
795
- await n.push(a, d), c && c.updateBackgroundMusic(n.activePath.value, n.routes);
794
+ push: async (a, m) => {
795
+ await n.push(a, m), l && l.updateBackgroundMusic(n.activePath.value, n.routes);
796
796
  },
797
- stepWisePush: async (a, d) => {
798
- await n.stepWisePush(a, d), c && c.updateBackgroundMusic(n.activePath.value, n.routes);
797
+ stepWisePush: async (a, m) => {
798
+ await n.stepWisePush(a, m), l && l.updateBackgroundMusic(n.activePath.value, n.routes);
799
799
  },
800
800
  stepWiseBack: async (a) => {
801
- await n.stepWiseBack(a), c && c.updateBackgroundMusic(n.activePath.value, n.routes);
801
+ await n.stepWiseBack(a), l && l.updateBackgroundMusic(n.activePath.value, n.routes);
802
802
  },
803
803
  registerRoute: n.registerRoute,
804
804
  registerRoutes: n.registerRoutes,
@@ -835,64 +835,64 @@ function et(e) {
835
835
  getControlAttrs: t.getControlAttrs,
836
836
  updateControlAttrs: t.updateControlAttrs,
837
837
  // Serialization
838
- serialize: () => Fe(u),
839
- restore: (a) => xe(u, a),
838
+ serialize: () => Ve(c),
839
+ restore: (a) => xe(c, a),
840
840
  // Audio (conditional — only if volumeRef provided in config)
841
- ...c ? {
842
- playSound: c.playSound,
843
- stopSound: c.stopSound,
844
- pauseSound: c.pauseSound,
845
- resumeSound: c.resumeSound,
846
- updateBackgroundMusic: c.updateBackgroundMusic
841
+ ...l ? {
842
+ playSound: l.playSound,
843
+ stopSound: l.stopSound,
844
+ pauseSound: l.pauseSound,
845
+ resumeSound: l.resumeSound,
846
+ updateBackgroundMusic: l.updateBackgroundMusic
847
847
  } : {}
848
- }, s = H(e.defaultPath);
849
- return X(n.activePage, (a, d) => {
850
- if (!d) return;
848
+ }, r = H(e.defaultPath);
849
+ return X(n.activePage, (a, m) => {
850
+ if (!m) return;
851
851
  const R = t.currentControl.value;
852
- d === s && a !== s && o.trackGuiLeave(R), a === s && d !== s && o.trackGuiEnter(R);
853
- }), c && e.defaultBgm && e.bgmStartRef && X(e.bgmStartRef, (a) => {
854
- a && !c.isStarted() && c.playSoundSync(e.defaultBgm, !0);
852
+ m === r && a !== r && o.trackGuiLeave(R), a === r && m !== r && o.trackGuiEnter(R);
853
+ }), l && e.defaultBgm && e.bgmStartRef && X(e.bgmStartRef, (a) => {
854
+ a && !l.isStarted() && l.playSoundSync(e.defaultBgm, !0);
855
855
  }, { flush: "sync" }), q(async () => {
856
856
  await k(), t.toggleControl(e.defaultControlName, !0), o.trackPageEnter(
857
857
  n.activePath.value,
858
858
  void 0,
859
859
  n.activePath.value
860
- ), c && document.addEventListener("visibilitychange", c.handleVisibilityChange), ze(u);
860
+ ), l && document.addEventListener("visibilitychange", l.handleVisibilityChange), ze(c);
861
861
  }), he(() => {
862
- o.cleanupAllSessions(), n.cleanup(), i.cleanup(), t.cleanup(), c && (document.removeEventListener("visibilitychange", c.handleVisibilityChange), c.cleanup());
863
- }), N(Me, u), x(de, null) || N(de, u), u;
862
+ o.cleanupAllSessions(), n.cleanup(), i.cleanup(), t.cleanup(), l && (document.removeEventListener("visibilitychange", l.handleVisibilityChange), l.cleanup());
863
+ }), N(Me, c), V(de, null) || N(de, c), c;
864
864
  }
865
865
  function J(e) {
866
- const o = e != null && e.root ? de : Me, n = x(o);
866
+ const o = e != null && e.root ? de : Me, n = V(o);
867
867
  if (!n)
868
868
  throw new Error(
869
869
  e != null && e.root ? "[vue-micro-router] useMicroRouter({ root: true }) failed — no root <MicroRouterView> found." : "[vue-micro-router] useMicroRouter() must be called inside <MicroRouterView>. Did you forget to wrap your app with <MicroRouterView>?"
870
870
  );
871
871
  return n;
872
872
  }
873
- function mt(e) {
874
- const o = x(ae), n = x(ie);
873
+ function yt(e) {
874
+ const o = V(ae), n = V(ie);
875
875
  !o && !e && console.warn(
876
876
  "[vue-micro-router] useMicroState() called without provider and no defaults. Ensure component is inside <RoutePage>, <MicroDialog>, or <MicroControlWrapper>."
877
877
  );
878
878
  const i = (o == null ? void 0 : o()) ?? {}, t = e ? { ...e } : {};
879
- for (const s of Object.keys(i))
880
- t[s] = i[s];
881
- const c = pe(t);
879
+ for (const r of Object.keys(i))
880
+ t[r] = i[r];
881
+ const l = pe(t);
882
882
  n && X(
883
- c,
884
- (s) => n({ ...s }),
883
+ l,
884
+ (r) => n({ ...r }),
885
885
  { deep: !0, flush: "post" }
886
886
  );
887
- const u = Ne(c);
888
- return new Proxy(u, {
889
- get(s, f, a) {
890
- return typeof f == "string" && !(f in s) && (s[f] = Oe(c, f)), Reflect.get(s, f, a);
887
+ const c = Oe(l);
888
+ return new Proxy(c, {
889
+ get(r, u, a) {
890
+ return typeof u == "string" && !(u in r) && (r[u] = Ke(l, u)), Reflect.get(r, u, a);
891
891
  }
892
892
  });
893
893
  }
894
- function pt(e) {
895
- const o = x(Le);
894
+ function Pt(e) {
895
+ const o = V(Le);
896
896
  if (!o) {
897
897
  console.warn(
898
898
  "[vue-micro-router] useRouteLifecycle() must be called inside a route component rendered by <MicroRouterView>."
@@ -905,13 +905,13 @@ function pt(e) {
905
905
  var t;
906
906
  return (t = e.onRouteEnter) == null ? void 0 : t.call(e);
907
907
  }), X(n, (t) => {
908
- var u, s;
909
- const c = t === o;
910
- c && !i ? (u = e.onRouteEnter) == null || u.call(e) : !c && i && ((s = e.onRouteLeave) == null || s.call(e)), i = c;
908
+ var c, r;
909
+ const l = t === o;
910
+ l && !i ? (c = e.onRouteEnter) == null || c.call(e) : !l && i && ((r = e.onRouteLeave) == null || r.call(e)), i = l;
911
911
  });
912
912
  }
913
- function ht(e) {
914
- const o = x(Te);
913
+ function wt(e) {
914
+ const o = V(Te);
915
915
  if (!o) {
916
916
  console.warn(
917
917
  "[vue-micro-router] useDialogLifecycle() must be called inside a dialog component rendered by <MicroDialog>."
@@ -924,13 +924,13 @@ function ht(e) {
924
924
  var t;
925
925
  return (t = e.onDialogEnter) == null ? void 0 : t.call(e);
926
926
  }), X(n, (t) => {
927
- var u, s;
928
- const c = t === o;
929
- c && !i ? (u = e.onDialogEnter) == null || u.call(e) : !c && i && ((s = e.onDialogLeave) == null || s.call(e)), i = c;
927
+ var c, r;
928
+ const l = t === o;
929
+ l && !i ? (c = e.onDialogEnter) == null || c.call(e) : !l && i && ((r = e.onDialogLeave) == null || r.call(e)), i = l;
930
930
  });
931
931
  }
932
- function yt(e) {
933
- const o = x(_e);
932
+ function Dt(e) {
933
+ const o = V(Ie);
934
934
  if (!o) {
935
935
  console.warn(
936
936
  "[vue-micro-router] useControlLifecycle() must be called inside a control component rendered by <MicroControlWrapper>."
@@ -943,105 +943,118 @@ function yt(e) {
943
943
  var t;
944
944
  return (t = e.onControlEnter) == null ? void 0 : t.call(e);
945
945
  }), X(n, (t) => {
946
- var u, s;
947
- const c = t === o;
948
- c && !i ? (u = e.onControlEnter) == null || u.call(e) : !c && i && ((s = e.onControlLeave) == null || s.call(e)), i = c;
946
+ var c, r;
947
+ const l = t === o;
948
+ l && !i ? (c = e.onControlEnter) == null || c.call(e) : !l && i && ((r = e.onControlLeave) == null || r.call(e)), i = l;
949
949
  });
950
950
  }
951
- function tt(e, o) {
951
+ function nt(e, o) {
952
952
  if (!e.enabled) return;
953
953
  const n = e.edgeWidth ?? 20, i = e.threshold ?? 0.3, t = e.velocityThreshold ?? 0.5;
954
- let c = 0, u = 0, s = 0, f = !1, a = null, d = null;
954
+ let l = 0, c = 0, r = 0, u = !1, a = null, m = null;
955
955
  function R() {
956
- const l = o.containerRef.value;
957
- return l ? "$el" in l ? l.$el : l : null;
956
+ const s = o.containerRef.value;
957
+ return s ? "$el" in s ? s.$el : s : null;
958
958
  }
959
959
  function L() {
960
- const l = R();
961
- if (!l) return { current: null, previous: null };
962
- const r = l.querySelectorAll(".route-page");
963
- return r.length < 2 ? { current: r[r.length - 1] ?? null, previous: null } : {
964
- current: r[r.length - 1],
965
- previous: r[r.length - 2]
960
+ const s = R();
961
+ if (!s) return { current: null, previous: null };
962
+ const f = s.querySelectorAll(".route-page");
963
+ return f.length < 2 ? { current: f[f.length - 1] ?? null, previous: null } : {
964
+ current: f[f.length - 1],
965
+ previous: f[f.length - 2]
966
966
  };
967
967
  }
968
- function M(l) {
969
- var C;
970
- if (!o.canGoBack() || l.clientX > n) return;
971
- const { current: r, previous: P } = L();
972
- if (!r) return;
973
- f = !0, c = l.clientX, u = l.clientY, s = Date.now(), a = r, d = P;
974
- const h = R();
975
- (C = h == null ? void 0 : h.setPointerCapture) == null || C.call(h, l.pointerId), a.style.willChange = "transform", d && (d.style.willChange = "transform", d.style.transition = "none"), a.style.transition = "none";
968
+ function M(s) {
969
+ var P;
970
+ if (!o.canGoBack() || s.clientX > n) return;
971
+ const { current: f, previous: A } = L();
972
+ if (!f) return;
973
+ u = !0, l = s.clientX, c = s.clientY, r = Date.now(), a = f, m = A;
974
+ const d = R();
975
+ (P = d == null ? void 0 : d.setPointerCapture) == null || P.call(d, s.pointerId), a.style.willChange = "transform", m && (m.style.willChange = "transform", m.style.transition = "none"), a.style.transition = "none";
976
976
  }
977
- function _(l) {
978
- if (!f || !a) return;
979
- const r = Math.max(0, l.clientX - c);
980
- if (Math.abs(l.clientY - u) > r * 1.5) {
977
+ function T(s) {
978
+ if (!u || !a) return;
979
+ const f = Math.max(0, s.clientX - l);
980
+ if (Math.abs(s.clientY - c) > f * 1.5) {
981
981
  g();
982
982
  return;
983
983
  }
984
- const h = r / window.innerWidth;
985
- if (a.style.transform = `translateX(${r}px)`, d) {
986
- const C = -20 + 20 * h;
987
- d.style.transform = `translateX(${C}%)`;
984
+ const d = f / window.innerWidth;
985
+ if (a.style.transform = `translateX(${f}px)`, m) {
986
+ const P = -20 + 20 * d;
987
+ m.style.transform = `translateX(${P}%)`;
988
988
  }
989
989
  }
990
- function T(l) {
991
- if (!f || !a) return;
990
+ function I(s) {
991
+ if (!u || !a) return;
992
992
  if (!a.isConnected) {
993
- p(), f = !1;
993
+ y(), u = !1;
994
994
  return;
995
995
  }
996
- const r = l.clientX - c, P = Date.now() - s, h = r / P;
997
- r / window.innerWidth > i || h > t ? (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(100%)", d && (d.style.transition = "transform 0.2s ease-out", d.style.transform = "translateX(0)"), setTimeout(() => {
998
- p(), o.goBack();
999
- }, 200)) : (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(0)", d && (d.style.transition = "transform 0.2s ease-out", d.style.transform = "translateX(-20%)"), setTimeout(p, 200)), f = !1;
996
+ const f = s.clientX - l, A = Date.now() - r, d = f / A;
997
+ f / window.innerWidth > i || d > t ? (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(100%)", m && (m.style.transition = "transform 0.2s ease-out", m.style.transform = "translateX(0)"), setTimeout(() => {
998
+ y(), o.goBack();
999
+ }, 200)) : (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(0)", m && (m.style.transition = "transform 0.2s ease-out", m.style.transform = "translateX(-20%)"), setTimeout(y, 200)), u = !1;
1000
1000
  }
1001
1001
  function g() {
1002
- f && (a && (a.style.transition = "transform 0.15s ease-out", a.style.transform = "translateX(0)"), d && (d.style.transition = "transform 0.15s ease-out", d.style.transform = "translateX(-20%)"), setTimeout(p, 150), f = !1);
1002
+ u && (a && (a.style.transition = "transform 0.15s ease-out", a.style.transform = "translateX(0)"), m && (m.style.transition = "transform 0.15s ease-out", m.style.transform = "translateX(-20%)"), setTimeout(y, 150), u = !1);
1003
1003
  }
1004
- function p() {
1005
- a && (a.style.willChange = "", a.style.transition = "", a.style.transform = ""), d && (d.style.willChange = "", d.style.transition = "", d.style.transform = ""), a = null, d = null;
1004
+ function y() {
1005
+ a && (a.style.willChange = "", a.style.transition = "", a.style.transform = ""), m && (m.style.willChange = "", m.style.transition = "", m.style.transform = ""), a = null, m = null;
1006
1006
  }
1007
1007
  q(() => {
1008
- const l = R();
1009
- l != null && l.addEventListener && (l.addEventListener("pointerdown", M, { passive: !0 }), l.addEventListener("pointermove", _, { passive: !0 }), l.addEventListener("pointerup", T, { passive: !0 }), l.addEventListener("pointercancel", g, { passive: !0 }));
1008
+ const s = R();
1009
+ s != null && s.addEventListener && (s.addEventListener("pointerdown", M, { passive: !0 }), s.addEventListener("pointermove", T, { passive: !0 }), s.addEventListener("pointerup", I, { passive: !0 }), s.addEventListener("pointercancel", g, { passive: !0 }));
1010
1010
  }), he(() => {
1011
- const l = R();
1012
- l != null && l.removeEventListener && (l.removeEventListener("pointerdown", M), l.removeEventListener("pointermove", _), l.removeEventListener("pointerup", T), l.removeEventListener("pointercancel", g));
1011
+ const s = R();
1012
+ s != null && s.removeEventListener && (s.removeEventListener("pointerdown", M), s.removeEventListener("pointermove", T), s.removeEventListener("pointerup", I), s.removeEventListener("pointercancel", g));
1013
1013
  });
1014
1014
  }
1015
- function Pt(e) {
1015
+ function At(e) {
1016
1016
  return { ...e };
1017
1017
  }
1018
- function nt(e, o) {
1018
+ function ot(e, o) {
1019
1019
  var n, i, t;
1020
- for (const c of e)
1021
- (n = c.routes) != null && n.length && o.registerRoutes(c.routes), (i = c.dialogs) != null && i.length && o.registerDialogs(c.dialogs), (t = c.controls) != null && t.length && o.registerControls(c.controls);
1020
+ for (const l of e)
1021
+ (n = l.routes) != null && n.length && o.registerRoutes(l.routes), (i = l.dialogs) != null && i.length && o.registerDialogs(l.dialogs), (t = l.controls) != null && t.length && o.registerControls(l.controls);
1022
1022
  }
1023
- const ot = /* @__PURE__ */ oe({
1023
+ const at = /* @__PURE__ */ oe({
1024
1024
  __name: "MicroControlWrapper",
1025
1025
  props: {
1026
1026
  control: {}
1027
1027
  },
1028
1028
  setup(e) {
1029
1029
  const o = e, { getControlAttrs: n, updateControlAttrs: i } = J();
1030
- return N(_e, o.control.name), N(ae, () => n(o.control.name)), N(ie, (t) => {
1030
+ return N(Ie, o.control.name), N(ae, () => n(o.control.name)), N(ie, (t) => {
1031
1031
  i(o.control.name, t);
1032
- }), (t, c) => (G(), F(ye(e.control.component), Pe({
1032
+ }), (t, l) => (B(), z(ye(e.control.component), Pe({
1033
1033
  key: e.control.componentKey || 0
1034
1034
  }, e.control.attrs), null, 16));
1035
1035
  }
1036
1036
  });
1037
- let Z = 0, Ge = "";
1038
- function at() {
1039
- Z === 0 && (Ge = document.body.style.overflow, document.body.style.overflow = "hidden"), Z++;
1040
- }
1037
+ let Z = 0, Be = "";
1041
1038
  function it() {
1042
- Z = Math.max(0, Z - 1), Z === 0 && (document.body.style.overflow = Ge);
1039
+ Z === 0 && (Be = document.body.style.overflow, document.body.style.overflow = "hidden"), Z++;
1040
+ }
1041
+ function st() {
1042
+ Z = Math.max(0, Z - 1), Z === 0 && (document.body.style.overflow = Be);
1043
+ }
1044
+ const rt = /* @__PURE__ */ new Set(["A", "BUTTON", "INPUT", "SELECT", "TEXTAREA"]);
1045
+ function lt(e) {
1046
+ return !(!rt.has(e.tagName) && !e.hasAttribute("tabindex") || e.tagName === "A" && !e.hasAttribute("href") || e.offsetParent === null || e.getAttribute("aria-hidden") === "true" || e.getAttribute("tabindex") === "-1" || e.hasAttribute("disabled") || e instanceof HTMLInputElement && e.type === "hidden");
1047
+ }
1048
+ function Ge(e) {
1049
+ return Array.from(
1050
+ e.querySelectorAll("*")
1051
+ ).filter(lt);
1052
+ }
1053
+ function ct(e) {
1054
+ const o = Ge(e);
1055
+ return o.find((n) => n.hasAttribute("autofocus")) ?? o[0] ?? e;
1043
1056
  }
1044
- const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])', rt = /* @__PURE__ */ oe({
1057
+ const ut = /* @__PURE__ */ oe({
1045
1058
  __name: "MicroDialog",
1046
1059
  props: {
1047
1060
  dialog: {},
@@ -1049,113 +1062,124 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
1049
1062
  },
1050
1063
  emits: ["close"],
1051
1064
  setup(e, { emit: o }) {
1052
- const n = e, i = o, { getDialogAttrs: t, updateDialogAttrs: c } = J();
1053
- let u = !1;
1054
- const s = ee(null), f = ee(null), a = A(() => n.dialog.transition ?? "scale"), d = A(() => n.dialog.transitionDuration != null ? n.dialog.transitionDuration : a.value === "slide" ? 500 : 300), R = A(() => n.dialog.position ?? "standard"), L = A(() => n.dialog.seamless ?? !1);
1055
- function M() {
1056
- return s.value ? Array.from(
1057
- s.value.querySelectorAll(st)
1058
- ).filter((r) => r.offsetParent !== null) : [];
1065
+ const n = e, i = o, { getDialogAttrs: t, updateDialogAttrs: l } = J();
1066
+ let c = !1, r = 0;
1067
+ const u = ee(null), a = ee(null), m = C(() => n.dialog.transition ?? "scale"), R = C(() => n.dialog.transitionDuration != null ? n.dialog.transitionDuration : m.value === "slide" ? 500 : 300), L = C(() => n.dialog.position ?? "standard"), M = C(() => n.dialog.seamless ?? !1);
1068
+ function T() {
1069
+ return u.value ? Ge(u.value) : [];
1059
1070
  }
1060
- function _(r) {
1061
- var v, D;
1062
- if (r.key === "Escape") {
1071
+ function I(d) {
1072
+ var w, S;
1073
+ if (d.key === "Escape") {
1063
1074
  if (n.dialog.persistent) return;
1064
- r.preventDefault(), r.stopPropagation(), i("close", n.dialog.path);
1075
+ d.preventDefault(), d.stopPropagation(), i("close", n.dialog.path);
1065
1076
  return;
1066
1077
  }
1067
- if (r.key !== "Tab") return;
1068
- const P = M();
1078
+ if (d.key !== "Tab") return;
1079
+ const P = T();
1069
1080
  if (P.length === 0) {
1070
- r.preventDefault(), (v = s.value) == null || v.focus();
1081
+ d.preventDefault(), (w = u.value) == null || w.focus();
1071
1082
  return;
1072
1083
  }
1073
- const h = P[0], C = P[P.length - 1], m = document.activeElement, y = !!((D = s.value) != null && D.contains(m));
1074
- r.shiftKey ? (!y || m === h) && (r.preventDefault(), C.focus()) : (!y || m === C) && (r.preventDefault(), h.focus());
1084
+ const p = P[0], h = P[P.length - 1], v = document.activeElement, D = !!((S = u.value) != null && S.contains(v));
1085
+ d.shiftKey ? (!D || v === p) && (d.preventDefault(), h.focus()) : (!D || v === h) && (d.preventDefault(), p.focus());
1075
1086
  }
1076
- function T(r) {
1077
- n.dialog.persistent || r.target === r.currentTarget && i("close", n.dialog.path);
1087
+ function g(d) {
1088
+ n.dialog.persistent || d.target === d.currentTarget && i("close", n.dialog.path);
1078
1089
  }
1079
- function g(r) {
1080
- if (!n.dialog.focusInput || !s.value) {
1081
- r();
1090
+ function y(d) {
1091
+ if (!n.dialog.focusInput || !u.value) {
1092
+ d();
1082
1093
  return;
1083
1094
  }
1084
1095
  const P = document.createElement("input");
1085
- P.style.cssText = "position:fixed;opacity:0;height:0;width:0;top:-100px;", s.value.appendChild(P), P.focus(), setTimeout(() => {
1086
- P.remove(), r();
1096
+ P.style.cssText = "position:fixed;opacity:0;height:0;width:0;top:-100px;", u.value.appendChild(P), P.focus(), setTimeout(() => {
1097
+ P.remove(), d();
1087
1098
  }, 50);
1088
1099
  }
1089
- function p() {
1090
- u || (u = !0, f.value = document.activeElement, at(), k(() => {
1091
- s.value && g(() => {
1092
- if (!s.value) return;
1093
- (M()[0] ?? s.value).focus();
1094
- });
1095
- }));
1100
+ function s(d) {
1101
+ const P = ++r;
1102
+ k(() => {
1103
+ if (!u.value || !n.dialog.activated || P !== r) return;
1104
+ const p = () => {
1105
+ !u.value || !n.dialog.activated || P !== r || ct(u.value).focus();
1106
+ };
1107
+ if (d) {
1108
+ y(p);
1109
+ return;
1110
+ }
1111
+ p();
1112
+ });
1113
+ }
1114
+ function f() {
1115
+ if (c) {
1116
+ s(n.dialog.focusInput ?? !1);
1117
+ return;
1118
+ }
1119
+ c = !0, a.value = document.activeElement, it(), s(n.dialog.focusInput ?? !1);
1096
1120
  }
1097
- function l() {
1098
- var m;
1099
- if (!u) return;
1100
- u = !1, it();
1101
- const r = f.value;
1102
- f.value = null;
1103
- const P = document.activeElement, h = !!((m = s.value) != null && m.contains(P)), C = !P || P === document.body;
1104
- r && typeof r.focus == "function" && document.contains(r) && (h || C) && r.focus();
1121
+ function A() {
1122
+ var v;
1123
+ if (!c) return;
1124
+ r++, c = !1, st();
1125
+ const d = a.value;
1126
+ a.value = null;
1127
+ const P = document.activeElement, p = !!((v = u.value) != null && v.contains(P)), h = !P || P === document.body;
1128
+ d && typeof d.focus == "function" && document.contains(d) && (p || h) && d.focus();
1105
1129
  }
1106
- return N(Te, n.dialog.path), N(ae, () => t(n.dialog.path)), N(ie, (r) => {
1107
- c(n.dialog.path, r);
1130
+ return N(Te, n.dialog.path), N(ae, () => t(n.dialog.path)), N(ie, (d) => {
1131
+ l(n.dialog.path, d);
1108
1132
  }), X(
1109
1133
  () => n.dialog.activated,
1110
- (r) => {
1111
- r && p();
1134
+ (d) => {
1135
+ d && f();
1112
1136
  }
1113
1137
  ), X(
1114
1138
  () => n.dialog.closing,
1115
- (r) => {
1116
- !r && !n.dialog.activated && u && l();
1139
+ (d) => {
1140
+ !d && !n.dialog.activated && c && A();
1117
1141
  }
1118
1142
  ), q(() => {
1119
- n.dialog.activated && p();
1143
+ n.dialog.activated && f();
1120
1144
  }), he(() => {
1121
- u && l();
1122
- }), (r, P) => (G(), F(Ke, { to: "body" }, [
1145
+ c && A();
1146
+ }), (d, P) => (B(), z(We, { to: "body" }, [
1123
1147
  j("div", {
1124
1148
  class: Q(["micro-dialog-portal", [
1125
- `micro-dialog--${R.value}`,
1149
+ `micro-dialog--${L.value}`,
1126
1150
  e.dialog.fullscreen && "micro-dialog--fullscreen",
1127
- L.value && "micro-dialog--seamless"
1151
+ M.value && "micro-dialog--seamless"
1128
1152
  ]]),
1129
1153
  style: be({
1130
1154
  zIndex: 100 + e.stackIndex,
1131
- "--dialog-duration": `${d.value}ms`
1155
+ "--dialog-duration": `${R.value}ms`
1132
1156
  }),
1133
- onClick: le(T, ["self"])
1157
+ onClick: le(g, ["self"])
1134
1158
  }, [
1135
- L.value ? We("", !0) : (G(), V("div", {
1159
+ M.value ? $e("", !0) : (B(), x("div", {
1136
1160
  key: 0,
1137
1161
  class: Q(["micro-dialog-backdrop", e.dialog.closing && "micro-dialog-backdrop--closing"])
1138
1162
  }, null, 2)),
1139
1163
  j("div", {
1140
1164
  ref_key: "wrapperRef",
1141
- ref: s,
1165
+ ref: u,
1142
1166
  role: "dialog",
1143
1167
  "aria-modal": "true",
1144
1168
  tabindex: "-1",
1145
1169
  class: Q(["micro-dialog", [
1146
- `dialog-transition-${a.value}`,
1170
+ `dialog-transition-${m.value}`,
1147
1171
  e.dialog.closing && "micro-dialog--closing"
1148
1172
  ]]),
1149
- onClick: le(T, ["self"]),
1150
- onKeydown: _
1173
+ onClick: le(g, ["self"]),
1174
+ onKeydown: I
1151
1175
  }, [
1152
1176
  j("div", {
1153
1177
  class: "micro-dialog__content",
1154
1178
  onClick: P[0] || (P[0] = le(() => {
1155
1179
  }, ["stop"]))
1156
1180
  }, [
1157
- we(r.$slots, "default"),
1158
- (G(), F(ye(e.dialog.component), Pe({
1181
+ we(d.$slots, "default"),
1182
+ (B(), z(ye(e.dialog.component), Pe({
1159
1183
  key: e.dialog.componentKey
1160
1184
  }, e.dialog.attrs), null, 16))
1161
1185
  ])
@@ -1163,7 +1187,7 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
1163
1187
  ], 6)
1164
1188
  ]));
1165
1189
  }
1166
- }), lt = { class: "route-page" }, ct = { class: "route-page__body" }, ut = /* @__PURE__ */ oe({
1190
+ }), ft = { class: "route-page" }, gt = { class: "route-page__body" }, dt = /* @__PURE__ */ oe({
1167
1191
  __name: "RoutePage",
1168
1192
  props: {
1169
1193
  routePath: {}
@@ -1174,17 +1198,17 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
1174
1198
  const n = o.routePath;
1175
1199
  N(Le, n);
1176
1200
  const { updateRouteAttrs: i, getRouteAttrs: t } = J();
1177
- N(ae, () => t(n)), N(ie, (c) => {
1178
- i(n, c);
1201
+ N(ae, () => t(n)), N(ie, (l) => {
1202
+ i(n, l);
1179
1203
  });
1180
1204
  }
1181
- return (n, i) => (G(), V("div", lt, [
1182
- j("div", ct, [
1205
+ return (n, i) => (B(), x("div", ft, [
1206
+ j("div", gt, [
1183
1207
  we(n.$slots, "default")
1184
1208
  ])
1185
1209
  ]));
1186
1210
  }
1187
- }), ft = { class: "micro-router-content-layer" }, wt = /* @__PURE__ */ oe({
1211
+ }), vt = { class: "micro-router-content-layer" }, Ct = /* @__PURE__ */ oe({
1188
1212
  __name: "MicroRouterView",
1189
1213
  props: {
1190
1214
  config: {},
@@ -1192,84 +1216,84 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
1192
1216
  nested: { type: Boolean }
1193
1217
  },
1194
1218
  setup(e) {
1195
- var p, l;
1196
- const o = e, n = et(o.config);
1197
- (p = o.plugins) != null && p.length && nt(o.plugins, n);
1219
+ var y, s;
1220
+ const o = e, n = tt(o.config);
1221
+ (y = o.plugins) != null && y.length && ot(o.plugins, n);
1198
1222
  const {
1199
1223
  resolveRoutes: i,
1200
1224
  resolveDialogs: t,
1201
- resolveControls: c,
1202
- fromPath: u,
1203
- toPath: s,
1204
- isNavigating: f,
1225
+ resolveControls: l,
1226
+ fromPath: c,
1227
+ toPath: r,
1228
+ isNavigating: u,
1205
1229
  closeDialog: a
1206
- } = n, d = ee(null), R = A(() => {
1207
- const r = u.value.split("/").filter(Boolean), P = new Set(s.value.split("/").filter(Boolean));
1208
- return r.some((h) => P.has(h));
1209
- }), L = A(() => c.value.length > 0), M = A(() => {
1210
- const r = i.value.at(-1);
1211
- return (r == null ? void 0 : r.transition) ?? "slide";
1212
- }), _ = A(() => M.value === "none" ? "" : M.value === "fade" ? "page-fade" : "page-slide"), T = A(() => {
1213
- const r = i.value.at(-1);
1214
- return r != null && r.transitionDuration ? r.transitionDuration : M.value === "fade" ? 300 : 500;
1215
- }), g = A(
1230
+ } = n, m = ee(null), R = C(() => {
1231
+ const f = c.value.split("/").filter(Boolean), A = new Set(r.value.split("/").filter(Boolean));
1232
+ return f.some((d) => A.has(d));
1233
+ }), L = C(() => l.value.length > 0), M = C(() => {
1234
+ const f = i.value.at(-1);
1235
+ return (f == null ? void 0 : f.transition) ?? "slide";
1236
+ }), T = C(() => M.value === "none" ? "" : M.value === "fade" ? "page-fade" : "page-slide"), I = C(() => {
1237
+ const f = i.value.at(-1);
1238
+ return f != null && f.transitionDuration ? f.transitionDuration : M.value === "fade" ? 300 : 500;
1239
+ }), g = C(
1216
1240
  () => R.value && M.value !== "none"
1217
1241
  );
1218
- return (l = o.config.gesture) != null && l.enabled && tt(o.config.gesture, {
1219
- containerRef: d,
1242
+ return (s = o.config.gesture) != null && s.enabled && nt(o.config.gesture, {
1243
+ containerRef: m,
1220
1244
  goBack: () => n.push(-1),
1221
1245
  canGoBack: () => i.value.length > 1
1222
- }), (r, P) => (G(), V(te, null, [
1223
- Re(Se, {
1246
+ }), (f, A) => (B(), x(te, null, [
1247
+ Re(Ee, {
1224
1248
  ref_key: "pageContainerRef",
1225
- ref: d,
1226
- name: _.value,
1249
+ ref: m,
1250
+ name: T.value,
1227
1251
  css: g.value
1228
1252
  }, {
1229
1253
  default: ce(() => [
1230
- (G(!0), V(te, null, ue(Y(i), (h, C) => (G(), F(ut, {
1231
- key: h.key || h.path,
1232
- "route-path": h.path,
1254
+ (B(!0), x(te, null, ue(Y(i), (d, P) => (B(), z(dt, {
1255
+ key: d.key || d.path,
1256
+ "route-path": d.path,
1233
1257
  class: Q({
1234
- deactivate: Y(i).length > 1 && C !== Y(i).length - 1,
1235
- "micro-router--navigating": Y(f)
1258
+ deactivate: Y(i).length > 1 && P !== Y(i).length - 1,
1259
+ "micro-router--navigating": Y(u)
1236
1260
  }),
1237
1261
  style: be({
1238
- transition: g.value ? `transform ${T.value}ms cubic-bezier(0.65, 0, 0.35, 1), opacity ${T.value}ms ease` : "none",
1239
- zIndex: 10 + C,
1262
+ transition: g.value ? `transform ${I.value}ms cubic-bezier(0.65, 0, 0.35, 1), opacity ${I.value}ms ease` : "none",
1263
+ zIndex: 10 + P,
1240
1264
  "--mr-page-height": e.nested ? "100%" : "100dvh"
1241
1265
  })
1242
1266
  }, {
1243
1267
  default: ce(() => [
1244
- (G(), F(ye(h.component), Pe({
1245
- key: h.componentKey
1246
- }, { ref_for: !0 }, Y(n).getRouteAttrs(h.path)), null, 16))
1268
+ (B(), z(ye(d.component), Pe({
1269
+ key: d.componentKey
1270
+ }, { ref_for: !0 }, Y(n).getRouteAttrs(d.path)), null, 16))
1247
1271
  ]),
1248
1272
  _: 2
1249
1273
  }, 1032, ["route-path", "class", "style"]))), 128))
1250
1274
  ]),
1251
1275
  _: 1
1252
1276
  }, 8, ["name", "css"]),
1253
- j("div", ft, [
1254
- we(r.$slots, "default")
1277
+ j("div", vt, [
1278
+ we(f.$slots, "default")
1255
1279
  ]),
1256
1280
  j("div", {
1257
1281
  class: Q(["micro-router-gui-layer", { "gui-visible": L.value }])
1258
1282
  }, [
1259
- Re(Se, { name: "control-fade" }, {
1283
+ Re(Ee, { name: "control-fade" }, {
1260
1284
  default: ce(() => [
1261
- (G(!0), V(te, null, ue(Y(c), (h) => (G(), F(ot, {
1262
- key: h.name + "-" + (h.componentKey || 0),
1263
- control: h
1285
+ (B(!0), x(te, null, ue(Y(l), (d) => (B(), z(at, {
1286
+ key: d.name + "-" + (d.componentKey || 0),
1287
+ control: d
1264
1288
  }, null, 8, ["control"]))), 128))
1265
1289
  ]),
1266
1290
  _: 1
1267
1291
  })
1268
1292
  ], 2),
1269
- (G(!0), V(te, null, ue(Y(t), (h, C) => (G(), F(rt, {
1270
- key: "dialog-" + h.path,
1271
- dialog: h,
1272
- "stack-index": C,
1293
+ (B(!0), x(te, null, ue(Y(t), (d, P) => (B(), z(ut, {
1294
+ key: "dialog-" + d.path,
1295
+ dialog: d,
1296
+ "stack-index": P,
1273
1297
  onClose: Y(a)
1274
1298
  }, null, 8, ["dialog", "stack-index", "onClose"]))), 128))
1275
1299
  ], 64));
@@ -1278,34 +1302,34 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
1278
1302
  export {
1279
1303
  ae as MICRO_ATTRS_READ_KEY,
1280
1304
  ie as MICRO_ATTRS_WRITE_KEY,
1281
- _e as MICRO_CONTROL_NAME_KEY,
1305
+ Ie as MICRO_CONTROL_NAME_KEY,
1282
1306
  Te as MICRO_DIALOG_PATH_KEY,
1283
1307
  Me as MICRO_ROUTER_KEY,
1284
1308
  de as MICRO_ROUTER_ROOT_KEY,
1285
1309
  Le as MICRO_ROUTE_PATH_KEY,
1286
- ot as MicroControlWrapper,
1287
- rt as MicroDialogComponent,
1288
- wt as MicroRouterView,
1289
- ut as RoutePage,
1290
- Ye as STEP_DELAY,
1310
+ at as MicroControlWrapper,
1311
+ ut as MicroDialogComponent,
1312
+ Ct as MicroRouterView,
1313
+ dt as RoutePage,
1314
+ Ue as STEP_DELAY,
1291
1315
  K as buildPathFromSegments,
1292
- vt as createRouterKey,
1293
- Pt as defineFeaturePlugin,
1316
+ ht as createRouterKey,
1317
+ At as defineFeaturePlugin,
1294
1318
  H as getLastSegment,
1295
1319
  De as isAsyncLoader,
1296
1320
  W as normalizePath,
1297
- B as parsePathSegments,
1298
- nt as registerFeaturePlugins,
1299
- Ce as safeMarkRaw,
1300
- yt as useControlLifecycle,
1301
- Ue as useControlManager,
1302
- ht as useDialogLifecycle,
1303
- Ve as useDialogManager,
1304
- tt as useGestureNavigation,
1305
- et as useGlobalMicroRouter,
1321
+ _ as parsePathSegments,
1322
+ ot as registerFeaturePlugins,
1323
+ Ae as safeMarkRaw,
1324
+ Dt as useControlLifecycle,
1325
+ Xe as useControlManager,
1326
+ wt as useDialogLifecycle,
1327
+ je as useDialogManager,
1328
+ nt as useGestureNavigation,
1329
+ tt as useGlobalMicroRouter,
1306
1330
  J as useMicroRouter,
1307
- mt as useMicroState,
1308
- Ze as useNavigation,
1309
- ke as usePageTracker,
1310
- pt as useRouteLifecycle
1331
+ yt as useMicroState,
1332
+ ke as useNavigation,
1333
+ et as usePageTracker,
1334
+ Pt as useRouteLifecycle
1311
1335
  };