@voidzero-dev/vitepress-theme 0.1.38 → 0.1.41

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 (95) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index100.js +13 -6
  3. package/dist/index101.js +57 -4
  4. package/dist/index102.js +5 -3
  5. package/dist/index103.js +39 -7
  6. package/dist/index104.js +20 -32
  7. package/dist/index105.js +25 -57
  8. package/dist/index106.js +9 -8
  9. package/dist/index107.js +54 -11
  10. package/dist/index108.js +34 -56
  11. package/dist/index109.js +119 -6
  12. package/dist/index110.js +86 -33
  13. package/dist/index111.js +8 -21
  14. package/dist/index112.js +2 -25
  15. package/dist/index113.js +7204 -7
  16. package/dist/index114.js +1730 -52
  17. package/dist/index115.js +434 -31
  18. package/dist/index116.js +12 -117
  19. package/dist/index117.js +5323 -91
  20. package/dist/index118.js +2 -8
  21. package/dist/index119.js +32 -438
  22. package/dist/index120.js +1202 -5
  23. package/dist/index121.js +5 -2
  24. package/dist/index122.js +3 -1734
  25. package/dist/index18.js +2 -2
  26. package/dist/index27.js +1 -1
  27. package/dist/index3.js +3 -3
  28. package/dist/index30.js +8 -8
  29. package/dist/index34.js +12 -12
  30. package/dist/index36.js +7 -7
  31. package/dist/index38.js +40 -40
  32. package/dist/index40.js +6 -6
  33. package/dist/index41.js +4 -4
  34. package/dist/index42.js +3 -3
  35. package/dist/index43.js +4 -4
  36. package/dist/index44.js +1 -1
  37. package/dist/index45.js +1 -1
  38. package/dist/index46.js +1 -1
  39. package/dist/index47.js +1 -1
  40. package/dist/index48.js +1 -1
  41. package/dist/index49.js +1 -1
  42. package/dist/index50.js +2 -2
  43. package/dist/index51.js +2 -25
  44. package/dist/index52.js +16 -20
  45. package/dist/index53.js +16 -122
  46. package/dist/index54.js +18 -2
  47. package/dist/index55.js +1 -1
  48. package/dist/index56.js +34 -2
  49. package/dist/index57.js +1 -1
  50. package/dist/index58.js +1 -1
  51. package/dist/index59.js +2 -2
  52. package/dist/index6.js +29 -29
  53. package/dist/index60.js +2 -2
  54. package/dist/index61.js +1 -1
  55. package/dist/index62.js +2 -2
  56. package/dist/index63.js +2 -2
  57. package/dist/index64.js +2 -2
  58. package/dist/index65.js +2 -2
  59. package/dist/index66.js +2 -2
  60. package/dist/index67.js +2 -18
  61. package/dist/index68.js +20 -16
  62. package/dist/index69.js +122 -16
  63. package/dist/index7.js +2 -2
  64. package/dist/index70.js +2 -2
  65. package/dist/index71.js +2 -2
  66. package/dist/index72.js +3 -2
  67. package/dist/index73.js +52 -34
  68. package/dist/index74.js +44 -3
  69. package/dist/index75.js +53 -2
  70. package/dist/index76.js +2 -2
  71. package/dist/index77.js +2587 -2
  72. package/dist/index78.js +2 -2
  73. package/dist/index79.js +2 -2
  74. package/dist/index8.js +3 -3
  75. package/dist/index80.js +2 -2
  76. package/dist/index81.js +2 -2
  77. package/dist/index82.js +2 -49
  78. package/dist/index83.js +3 -44
  79. package/dist/index84.js +2 -2587
  80. package/dist/index85.js +2 -51
  81. package/dist/index86.js +2 -7207
  82. package/dist/index87.js +2 -14
  83. package/dist/index88.js +2 -5324
  84. package/dist/index89.js +2 -2
  85. package/dist/index90.js +1 -1
  86. package/dist/index91.js +1 -1
  87. package/dist/index92.js +10 -2
  88. package/dist/index93.js +7 -2
  89. package/dist/index94.js +5 -2
  90. package/dist/index95.js +4 -2
  91. package/dist/index96.js +6 -32
  92. package/dist/index97.js +31 -1200
  93. package/dist/index98.js +56 -3
  94. package/dist/index99.js +8 -9
  95. package/package.json +1 -1
package/dist/index100.js CHANGED
@@ -1,9 +1,16 @@
1
- function t() {
2
- let e = document.activeElement;
3
- if (e == null) return null;
4
- for (; e != null && e.shadowRoot != null && e.shadowRoot.activeElement != null; ) e = e.shadowRoot.activeElement;
5
- return e;
1
+ import { ref as c } from "vue";
2
+ function i(n, a) {
3
+ const t = c(n);
4
+ function r(e) {
5
+ return a[t.value][e] ?? t.value;
6
+ }
7
+ return {
8
+ state: t,
9
+ dispatch: (e) => {
10
+ t.value = r(e);
11
+ }
12
+ };
6
13
  }
7
14
  export {
8
- t as getActiveElement
15
+ i as useStateMachine
9
16
  };
package/dist/index101.js CHANGED
@@ -1,7 +1,60 @@
1
- import { Fragment as e } from "vue";
2
- function n(t) {
3
- return t ? t.flatMap((r) => r.type === e ? n(r.children) : [r]) : [];
1
+ import { useStateMachine as U } from "./index100.js";
2
+ import { ref as f, watch as N, nextTick as h, onUnmounted as S, computed as g } from "vue";
3
+ import { defaultWindow as y } from "./index98.js";
4
+ import { isClient as C } from "./index102.js";
5
+ function P(o, t) {
6
+ const A = f({}), r = f("none"), p = f(o), E = o.value ? "mounted" : "unmounted";
7
+ let c;
8
+ const M = t.value?.ownerDocument.defaultView ?? y, { state: m, dispatch: a } = U(E, {
9
+ mounted: {
10
+ UNMOUNT: "unmounted",
11
+ ANIMATION_OUT: "unmountSuspended"
12
+ },
13
+ unmountSuspended: {
14
+ MOUNT: "mounted",
15
+ ANIMATION_END: "unmounted"
16
+ },
17
+ unmounted: { MOUNT: "mounted" }
18
+ }), i = (e) => {
19
+ if (C) {
20
+ const n = new CustomEvent(e, {
21
+ bubbles: !1,
22
+ cancelable: !1
23
+ });
24
+ t.value?.dispatchEvent(n);
25
+ }
26
+ };
27
+ N(o, async (e, n) => {
28
+ const v = n !== e;
29
+ if (await h(), v) {
30
+ const d = r.value, u = l(t.value);
31
+ e ? (a("MOUNT"), i("enter"), u === "none" && i("after-enter")) : u === "none" || u === "undefined" || A.value?.display === "none" ? (a("UNMOUNT"), i("leave"), i("after-leave")) : n && d !== u ? (a("ANIMATION_OUT"), i("leave")) : (a("UNMOUNT"), i("after-leave"));
32
+ }
33
+ }, { immediate: !0 });
34
+ const s = (e) => {
35
+ const n = l(t.value), v = n.includes(CSS.escape(e.animationName)), d = m.value === "mounted" ? "enter" : "leave";
36
+ if (e.target === t.value && v && (i(`after-${d}`), a("ANIMATION_END"), !p.value)) {
37
+ const u = t.value.style.animationFillMode;
38
+ t.value.style.animationFillMode = "forwards", c = M?.setTimeout(() => {
39
+ t.value?.style.animationFillMode === "forwards" && (t.value.style.animationFillMode = u);
40
+ });
41
+ }
42
+ e.target === t.value && n === "none" && a("ANIMATION_END");
43
+ }, T = (e) => {
44
+ e.target === t.value && (r.value = l(t.value));
45
+ }, O = N(t, (e, n) => {
46
+ e ? (A.value = getComputedStyle(e), e.addEventListener("animationstart", T), e.addEventListener("animationcancel", s), e.addEventListener("animationend", s)) : (a("ANIMATION_END"), c !== void 0 && M?.clearTimeout(c), n?.removeEventListener("animationstart", T), n?.removeEventListener("animationcancel", s), n?.removeEventListener("animationend", s));
47
+ }, { immediate: !0 }), I = N(m, () => {
48
+ const e = l(t.value);
49
+ r.value = m.value === "mounted" ? e : "none";
50
+ });
51
+ return S(() => {
52
+ O(), I();
53
+ }), { isPresent: g(() => ["mounted", "unmountSuspended"].includes(m.value)) };
54
+ }
55
+ function l(o) {
56
+ return o && getComputedStyle(o).animationName || "none";
4
57
  }
5
58
  export {
6
- n as renderSlotFragments
59
+ P as usePresence
7
60
  };
package/dist/index102.js CHANGED
@@ -1,6 +1,8 @@
1
- import { createContext as o } from "./index99.js";
2
1
  import "vue";
3
- const [e] = o("ConfigProvider");
2
+ const n = typeof window < "u" && typeof document < "u";
3
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
4
+ const i = (e) => typeof e < "u";
4
5
  export {
5
- e as injectConfigProviderContext
6
+ n as isClient,
7
+ i as isDef
6
8
  };
package/dist/index103.js CHANGED
@@ -1,9 +1,41 @@
1
- import { injectConfigProviderContext as o } from "./index102.js";
2
- import { ref as e, computed as i } from "vue";
3
- function u(r) {
4
- const t = o({ dir: e("ltr") });
5
- return i(() => r?.value || t.dir?.value || "ltr");
6
- }
1
+ import { renderSlotFragments as u } from "./index94.js";
2
+ import { usePresence as f } from "./index101.js";
3
+ import { defineComponent as d, toRefs as m, ref as h, getCurrentInstance as v, h as y } from "vue";
4
+ import { unrefElement as w } from "./index98.js";
5
+ var x = d({
6
+ name: "Presence",
7
+ props: {
8
+ present: {
9
+ type: Boolean,
10
+ required: !0
11
+ },
12
+ forceMount: { type: Boolean }
13
+ },
14
+ slots: {},
15
+ setup(l, { slots: a, expose: c }) {
16
+ const { present: i, forceMount: p } = m(l), r = h(), { isPresent: t } = f(i, r);
17
+ c({ present: t });
18
+ let n = a.default({ present: t.value });
19
+ n = u(n || []);
20
+ const s = v();
21
+ if (n && n?.length > 1) {
22
+ const o = s?.parent?.type.name ? `<${s.parent.type.name} />` : "component";
23
+ throw new Error([
24
+ `Detected an invalid children for \`${o}\` for \`Presence\` component.`,
25
+ "",
26
+ "Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",
27
+ "You can apply a few solutions:",
28
+ ["Provide a single child element so that `presence` directive attach correctly.", "Ensure the first child is an actual element instead of a raw text node or comment node."].map((e) => ` - ${e}`).join(`
29
+ `)
30
+ ].join(`
31
+ `));
32
+ }
33
+ return () => p.value || i.value || t.value ? y(a.default({ present: t.value })[0], { ref: (o) => {
34
+ const e = w(o);
35
+ return typeof e?.hasAttribute > "u" || (e?.hasAttribute("data-reka-popper-content-wrapper") ? r.value = e.firstElementChild : r.value = e), e;
36
+ } }) : null;
37
+ }
38
+ });
7
39
  export {
8
- u as useDirection
40
+ x as Presence_default
9
41
  };
package/dist/index104.js CHANGED
@@ -1,35 +1,23 @@
1
- import { getCurrentInstance as l, ref as i, computed as s } from "vue";
2
- import { unrefElement as a } from "./index105.js";
3
- function m() {
4
- const t = l(), r = i(), u = s(() => ["#text", "#comment"].includes(r.value?.$el.nodeName) ? r.value?.$el.nextElementSibling : a(r)), o = Object.assign({}, t.exposed), n = {};
5
- for (const e in t.props) Object.defineProperty(n, e, {
6
- enumerable: !0,
7
- configurable: !0,
8
- get: () => t.props[e]
9
- });
10
- if (Object.keys(o).length > 0) for (const e in o) Object.defineProperty(n, e, {
11
- enumerable: !0,
12
- configurable: !0,
13
- get: () => o[e]
14
- });
15
- Object.defineProperty(n, "$el", {
16
- enumerable: !0,
17
- configurable: !0,
18
- get: () => t.vnode.el
19
- }), t.exposed = n;
20
- function c(e) {
21
- r.value = e, e && (Object.defineProperty(n, "$el", {
22
- enumerable: !0,
23
- configurable: !0,
24
- get: () => e instanceof Element ? e : e.$el
25
- }), t.exposed = n);
1
+ import { renderSlotFragments as s } from "./index94.js";
2
+ import { defineComponent as d, Comment as l, mergeProps as f, cloneVNode as c } from "vue";
3
+ const a = d({
4
+ name: "PrimitiveSlot",
5
+ inheritAttrs: !1,
6
+ setup(u, { attrs: t, slots: o }) {
7
+ return () => {
8
+ if (!o.default) return null;
9
+ const e = s(o.default()), n = e.findIndex((p) => p.type !== l);
10
+ if (n === -1) return e;
11
+ const r = e[n];
12
+ delete r.props?.ref;
13
+ const m = r.props ? f(t, r.props) : t, i = c({
14
+ ...r,
15
+ props: {}
16
+ }, m);
17
+ return e.length === 1 ? i : (e[n] = i, e);
18
+ };
26
19
  }
27
- return {
28
- forwardRef: c,
29
- currentRef: r,
30
- currentElement: u
31
- };
32
- }
20
+ });
33
21
  export {
34
- m as useForwardExpose
22
+ a as Slot
35
23
  };
package/dist/index105.js CHANGED
@@ -1,59 +1,27 @@
1
- import { isDef as b, isClient as E } from "./index109.js";
2
- import { getCurrentInstance as J, ref as O, watch as _, nextTick as h, computed as C, toValue as F } from "vue";
3
- const T = E ? window : void 0;
4
- function U(i) {
5
- var n;
6
- const l = F(i);
7
- return (n = l?.$el) != null ? n : l;
8
- }
9
- function D(i) {
10
- return JSON.parse(JSON.stringify(i));
11
- }
12
- function W(i, n, l, w = {}) {
13
- var a, c, d;
14
- const {
15
- clone: s = !1,
16
- passive: N = !1,
17
- eventName: S,
18
- deep: m = !1,
19
- defaultValue: $,
20
- shouldEmit: v
21
- } = w, t = J(), g = l || t?.emit || ((a = t?.$emit) == null ? void 0 : a.bind(t)) || ((d = (c = t?.proxy) == null ? void 0 : c.$emit) == null ? void 0 : d.bind(t?.proxy));
22
- let o = S;
23
- n || (n = "modelValue"), o = o || `update:${n.toString()}`;
24
- const p = (e) => s ? typeof s == "function" ? s(e) : D(e) : e, V = () => b(i[n]) ? p(i[n]) : $, x = (e) => {
25
- v ? v(e) && g(o, e) : g(o, e);
26
- };
27
- if (N) {
28
- const e = V(), f = O(e);
29
- let u = !1;
30
- return _(
31
- () => i[n],
32
- (r) => {
33
- u || (u = !0, f.value = p(r), h(() => u = !1));
34
- }
35
- ), _(
36
- f,
37
- (r) => {
38
- !u && (r !== i[n] || m) && x(r);
39
- },
40
- { deep: m }
41
- ), f;
42
- } else
43
- return C({
44
- get() {
45
- return V();
46
- },
47
- set(e) {
48
- x(e);
49
- }
50
- });
51
- }
1
+ import { Slot as r } from "./index104.js";
2
+ import { defineComponent as f, h as a } from "vue";
3
+ const l = [
4
+ "area",
5
+ "img",
6
+ "input"
7
+ ], d = f({
8
+ name: "Primitive",
9
+ inheritAttrs: !1,
10
+ props: {
11
+ asChild: {
12
+ type: Boolean,
13
+ default: !1
14
+ },
15
+ as: {
16
+ type: [String, Object],
17
+ default: "div"
18
+ }
19
+ },
20
+ setup(t, { attrs: i, slots: n }) {
21
+ const e = t.asChild ? "template" : t.as;
22
+ return typeof e == "string" && l.includes(e) ? () => a(e, i) : e !== "template" ? () => a(t.as, i, { default: n.default }) : () => a(r, i, { default: n.default });
23
+ }
24
+ });
52
25
  export {
53
- D as cloneFnJSON,
54
- T as defaultWindow,
55
- E as isClient,
56
- b as isDef,
57
- U as unrefElement,
58
- W as useVModel
26
+ d as Primitive
59
27
  };
package/dist/index106.js CHANGED
@@ -1,11 +1,12 @@
1
- import { injectConfigProviderContext as r } from "./index102.js";
2
- import * as o from "vue";
3
- let n = 0;
4
- function d(i, e = "reka") {
5
- if ("useId" in o) return `${e}-${o.useId?.()}`;
6
- const t = r({ useId: void 0 });
7
- return t.useId ? `${e}-${t.useId()}` : `${e}-${++n}`;
1
+ import { ref as n, computed as m } from "vue";
2
+ import { unrefElement as r } from "./index98.js";
3
+ function o() {
4
+ const e = n(), t = m(() => ["#text", "#comment"].includes(e.value?.$el.nodeName) ? e.value?.$el.nextElementSibling : r(e));
5
+ return {
6
+ primitiveElement: e,
7
+ currentElement: t
8
+ };
8
9
  }
9
10
  export {
10
- d as useId
11
+ o as usePrimitiveElement
11
12
  };
package/dist/index107.js CHANGED
@@ -1,16 +1,59 @@
1
- import { ref as c } from "vue";
2
- function i(n, a) {
3
- const t = c(n);
4
- function r(e) {
5
- return a[t.value][e] ?? t.value;
6
- }
7
- return {
8
- state: t,
9
- dispatch: (e) => {
10
- t.value = r(e);
1
+ import { Slot as s } from "./index104.js";
2
+ import { usePrimitiveElement as m } from "./index106.js";
3
+ import { ref as u, provide as h, inject as k, defineComponent as f, watch as w, h as v, watchEffect as x, markRaw as T, computed as p } from "vue";
4
+ const d = "data-reka-collection-item";
5
+ function j(M = {}) {
6
+ const { key: A = "", isProvider: y = !1 } = M, a = `${A}CollectionProvider`;
7
+ let e;
8
+ if (y) {
9
+ const o = u(/* @__PURE__ */ new Map());
10
+ e = {
11
+ collectionRef: u(),
12
+ itemMap: o
13
+ }, h(a, e);
14
+ } else e = k(a);
15
+ const C = (o = !1) => {
16
+ const t = e.collectionRef.value;
17
+ if (!t) return [];
18
+ const r = Array.from(t.querySelectorAll(`[${d}]`)), l = Array.from(e.itemMap.value.values()).sort((n, c) => r.indexOf(n.ref) - r.indexOf(c.ref));
19
+ return o ? l : l.filter((n) => n.ref.dataset.disabled !== "");
20
+ }, E = f({
21
+ name: "CollectionSlot",
22
+ setup(o, { slots: t }) {
23
+ const { primitiveElement: r, currentElement: i } = m();
24
+ return w(i, () => {
25
+ e.collectionRef.value = i.value;
26
+ }), () => v(s, { ref: r }, t);
27
+ }
28
+ }), I = f({
29
+ name: "CollectionItem",
30
+ inheritAttrs: !1,
31
+ props: { value: { validator: () => !0 } },
32
+ setup(o, { slots: t, attrs: r }) {
33
+ const { primitiveElement: i, currentElement: l } = m();
34
+ return x((n) => {
35
+ if (l.value) {
36
+ const c = T(l.value);
37
+ e.itemMap.value.set(c, {
38
+ ref: l.value,
39
+ value: o.value
40
+ }), n(() => e.itemMap.value.delete(c));
41
+ }
42
+ }), () => v(s, {
43
+ ...r,
44
+ [d]: "",
45
+ ref: i
46
+ }, t);
11
47
  }
48
+ }), R = p(() => Array.from(e.itemMap.value.values())), S = p(() => e.itemMap.value.size);
49
+ return {
50
+ getItems: C,
51
+ reactiveItems: R,
52
+ itemMapSize: S,
53
+ CollectionSlot: E,
54
+ CollectionItem: I
12
55
  };
13
56
  }
14
57
  export {
15
- i as useStateMachine
58
+ j as useCollection
16
59
  };
package/dist/index108.js CHANGED
@@ -1,60 +1,38 @@
1
- import { useStateMachine as U } from "./index107.js";
2
- import { ref as f, watch as N, nextTick as h, onUnmounted as S, computed as g } from "vue";
3
- import { defaultWindow as y } from "./index105.js";
4
- import { isClient as C } from "./index109.js";
5
- function P(o, t) {
6
- const A = f({}), r = f("none"), p = f(o), E = o.value ? "mounted" : "unmounted";
7
- let c;
8
- const M = t.value?.ownerDocument.defaultView ?? y, { state: m, dispatch: a } = U(E, {
9
- mounted: {
10
- UNMOUNT: "unmounted",
11
- ANIMATION_OUT: "unmountSuspended"
12
- },
13
- unmountSuspended: {
14
- MOUNT: "mounted",
15
- ANIMATION_END: "unmounted"
16
- },
17
- unmounted: { MOUNT: "mounted" }
18
- }), i = (e) => {
19
- if (C) {
20
- const n = new CustomEvent(e, {
21
- bubbles: !1,
22
- cancelable: !1
23
- });
24
- t.value?.dispatchEvent(n);
25
- }
26
- };
27
- N(o, async (e, n) => {
28
- const v = n !== e;
29
- if (await h(), v) {
30
- const d = r.value, u = l(t.value);
31
- e ? (a("MOUNT"), i("enter"), u === "none" && i("after-enter")) : u === "none" || u === "undefined" || A.value?.display === "none" ? (a("UNMOUNT"), i("leave"), i("after-leave")) : n && d !== u ? (a("ANIMATION_OUT"), i("leave")) : (a("UNMOUNT"), i("after-leave"));
32
- }
33
- }, { immediate: !0 });
34
- const s = (e) => {
35
- const n = l(t.value), v = n.includes(CSS.escape(e.animationName)), d = m.value === "mounted" ? "enter" : "leave";
36
- if (e.target === t.value && v && (i(`after-${d}`), a("ANIMATION_END"), !p.value)) {
37
- const u = t.value.style.animationFillMode;
38
- t.value.style.animationFillMode = "forwards", c = M?.setTimeout(() => {
39
- t.value?.style.animationFillMode === "forwards" && (t.value.style.animationFillMode = u);
40
- });
41
- }
42
- e.target === t.value && n === "none" && a("ANIMATION_END");
43
- }, T = (e) => {
44
- e.target === t.value && (r.value = l(t.value));
45
- }, O = N(t, (e, n) => {
46
- e ? (A.value = getComputedStyle(e), e.addEventListener("animationstart", T), e.addEventListener("animationcancel", s), e.addEventListener("animationend", s)) : (a("ANIMATION_END"), c !== void 0 && M?.clearTimeout(c), n?.removeEventListener("animationstart", T), n?.removeEventListener("animationcancel", s), n?.removeEventListener("animationend", s));
47
- }, { immediate: !0 }), I = N(m, () => {
48
- const e = l(t.value);
49
- r.value = m.value === "mounted" ? e : "none";
50
- });
51
- return S(() => {
52
- O(), I();
53
- }), { isPresent: g(() => ["mounted", "unmountSuspended"].includes(m.value)) };
1
+ import { getActiveElement as n } from "./index93.js";
2
+ const u = "rovingFocusGroup.onEntryFocus", s = {
3
+ bubbles: !1,
4
+ cancelable: !0
5
+ }, i = {
6
+ ArrowLeft: "prev",
7
+ ArrowUp: "prev",
8
+ ArrowRight: "next",
9
+ ArrowDown: "next",
10
+ PageUp: "first",
11
+ Home: "first",
12
+ PageDown: "last",
13
+ End: "last"
14
+ };
15
+ function c(r, t) {
16
+ return t !== "rtl" ? r : r === "ArrowLeft" ? "ArrowRight" : r === "ArrowRight" ? "ArrowLeft" : r;
17
+ }
18
+ function w(r, t, e) {
19
+ const o = c(r.key, e);
20
+ if (!(t === "vertical" && ["ArrowLeft", "ArrowRight"].includes(o)) && !(t === "horizontal" && ["ArrowUp", "ArrowDown"].includes(o)))
21
+ return i[o];
22
+ }
23
+ function A(r, t = !1) {
24
+ const e = n();
25
+ for (const o of r)
26
+ if (o === e || (o.focus({ preventScroll: t }), n() !== e)) return;
54
27
  }
55
- function l(o) {
56
- return o && getComputedStyle(o).animationName || "none";
28
+ function l(r, t) {
29
+ return r.map((e, o) => r[(t + o) % r.length]);
57
30
  }
58
31
  export {
59
- P as usePresence
32
+ u as ENTRY_FOCUS,
33
+ s as EVENT_OPTIONS,
34
+ i as MAP_KEY_TO_FOCUS_INTENT,
35
+ A as focusFirst,
36
+ w as getFocusIntent,
37
+ l as wrapArray
60
38
  };
package/dist/index109.js CHANGED
@@ -1,8 +1,121 @@
1
- import "vue";
2
- const n = typeof window < "u" && typeof document < "u";
3
- typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
4
- const i = (e) => typeof e < "u";
1
+ import { createContext as E } from "./index92.js";
2
+ import { useDirection as x } from "./index96.js";
3
+ import { Primitive as G } from "./index105.js";
4
+ import { useCollection as O } from "./index107.js";
5
+ import { focusFirst as k, ENTRY_FOCUS as M, EVENT_OPTIONS as N } from "./index108.js";
6
+ import { defineComponent as P, toRefs as V, ref as c, createBlock as w, openBlock as A, unref as s, withCtx as g, createVNode as $, renderSlot as D } from "vue";
7
+ import { useVModel as U } from "./index98.js";
8
+ const [X, j] = E("RovingFocusGroup");
9
+ var K = /* @__PURE__ */ P({
10
+ __name: "RovingFocusGroup",
11
+ props: {
12
+ orientation: {
13
+ type: String,
14
+ required: !1,
15
+ default: void 0
16
+ },
17
+ dir: {
18
+ type: String,
19
+ required: !1
20
+ },
21
+ loop: {
22
+ type: Boolean,
23
+ required: !1,
24
+ default: !1
25
+ },
26
+ currentTabStopId: {
27
+ type: [String, null],
28
+ required: !1
29
+ },
30
+ defaultCurrentTabStopId: {
31
+ type: String,
32
+ required: !1
33
+ },
34
+ preventScrollOnEntryFocus: {
35
+ type: Boolean,
36
+ required: !1,
37
+ default: !1
38
+ },
39
+ asChild: {
40
+ type: Boolean,
41
+ required: !1
42
+ },
43
+ as: {
44
+ type: null,
45
+ required: !1
46
+ }
47
+ },
48
+ emits: ["entryFocus", "update:currentTabStopId"],
49
+ setup(F, { expose: b, emit: I }) {
50
+ const r = F, p = I, { loop: S, orientation: f, dir: y } = V(r), v = x(y), l = U(r, "currentTabStopId", p, {
51
+ defaultValue: r.defaultCurrentTabStopId,
52
+ passive: r.currentTabStopId === void 0
53
+ }), u = c(!1), a = c(!1), d = c(0), { getItems: m, CollectionSlot: T } = O({ isProvider: !0 });
54
+ function C(e) {
55
+ const o = !a.value;
56
+ if (e.currentTarget && e.target === e.currentTarget && o && !u.value) {
57
+ const n = new CustomEvent(M, N);
58
+ if (e.currentTarget.dispatchEvent(n), p("entryFocus", n), !n.defaultPrevented) {
59
+ const i = m().map((t) => t.ref).filter((t) => t.dataset.disabled !== ""), _ = i.find((t) => t.getAttribute("data-active") === ""), R = i.find((t) => t.getAttribute("data-highlighted") === ""), q = i.find((t) => t.id === l.value), B = [
60
+ _,
61
+ R,
62
+ q,
63
+ ...i
64
+ ].filter(Boolean);
65
+ k(B, r.preventScrollOnEntryFocus);
66
+ }
67
+ }
68
+ a.value = !1;
69
+ }
70
+ function h() {
71
+ setTimeout(() => {
72
+ a.value = !1;
73
+ }, 1);
74
+ }
75
+ return b({ getItems: m }), j({
76
+ loop: S,
77
+ dir: v,
78
+ orientation: f,
79
+ currentTabStopId: l,
80
+ onItemFocus: (e) => {
81
+ l.value = e;
82
+ },
83
+ onItemShiftTab: () => {
84
+ u.value = !0;
85
+ },
86
+ onFocusableItemAdd: () => {
87
+ d.value++;
88
+ },
89
+ onFocusableItemRemove: () => {
90
+ d.value--;
91
+ }
92
+ }), (e, o) => (A(), w(s(T), null, {
93
+ default: g(() => [$(s(G), {
94
+ tabindex: u.value || d.value === 0 ? -1 : 0,
95
+ "data-orientation": s(f),
96
+ as: e.as,
97
+ "as-child": e.asChild,
98
+ dir: s(v),
99
+ style: { outline: "none" },
100
+ onMousedown: o[0] || (o[0] = (n) => a.value = !0),
101
+ onMouseup: h,
102
+ onFocus: C,
103
+ onBlur: o[1] || (o[1] = (n) => u.value = !1)
104
+ }, {
105
+ default: g(() => [D(e.$slots, "default")]),
106
+ _: 3
107
+ }, 8, [
108
+ "tabindex",
109
+ "data-orientation",
110
+ "as",
111
+ "as-child",
112
+ "dir"
113
+ ])]),
114
+ _: 3
115
+ }));
116
+ }
117
+ }), Z = K;
5
118
  export {
6
- n as isClient,
7
- i as isDef
119
+ Z as RovingFocusGroup_default,
120
+ X as injectRovingFocusGroupContext
8
121
  };