@voidzero-dev/vitepress-theme 0.1.34 → 0.1.36

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 (97) hide show
  1. package/dist/index100.js +9 -0
  2. package/dist/index101.js +7 -0
  3. package/dist/index102.js +6 -0
  4. package/dist/index103.js +9 -0
  5. package/dist/index104.js +35 -0
  6. package/dist/index105.js +59 -0
  7. package/dist/index106.js +11 -0
  8. package/dist/index107.js +16 -0
  9. package/dist/index108.js +60 -0
  10. package/dist/index109.js +8 -0
  11. package/dist/index110.js +41 -0
  12. package/dist/index111.js +23 -0
  13. package/dist/index112.js +27 -0
  14. package/dist/index113.js +12 -0
  15. package/dist/index114.js +59 -0
  16. package/dist/index115.js +38 -0
  17. package/dist/index116.js +121 -0
  18. package/dist/index117.js +94 -0
  19. package/dist/index118.js +10 -0
  20. package/dist/index119.js +441 -0
  21. package/dist/index120.js +7 -0
  22. package/dist/index121.js +1737 -0
  23. package/dist/index122.js +4 -0
  24. package/dist/index123.js +317 -0
  25. package/dist/index124.js +4 -0
  26. package/dist/index125.js +448 -0
  27. package/dist/index27.js +1 -1
  28. package/dist/index3.js +3 -3
  29. package/dist/index30.js +8 -8
  30. package/dist/index34.js +12 -12
  31. package/dist/index36.js +7 -7
  32. package/dist/index38.js +17 -16
  33. package/dist/index4.js +24 -21
  34. package/dist/index40.js +18 -26
  35. package/dist/index41.js +18 -30
  36. package/dist/index42.js +18 -26
  37. package/dist/index43.js +24 -25
  38. package/dist/index44.js +2 -26
  39. package/dist/index45.js +29 -21
  40. package/dist/index46.js +1 -1
  41. package/dist/index47.js +2 -25
  42. package/dist/index48.js +2 -2
  43. package/dist/index49.js +2 -2
  44. package/dist/index50.js +2 -2
  45. package/dist/index51.js +2 -49
  46. package/dist/index52.js +2 -7207
  47. package/dist/index53.js +1 -1
  48. package/dist/index54.js +2 -2
  49. package/dist/index55.js +2 -2
  50. package/dist/index56.js +2 -2
  51. package/dist/index57.js +2 -2
  52. package/dist/index58.js +2 -2
  53. package/dist/index59.js +2 -2
  54. package/dist/index6.js +1 -1
  55. package/dist/index60.js +2 -2
  56. package/dist/index61.js +1 -1
  57. package/dist/index62.js +2 -18
  58. package/dist/index63.js +2 -18
  59. package/dist/index64.js +2 -18
  60. package/dist/index65.js +2 -2
  61. package/dist/index66.js +2 -2
  62. package/dist/index67.js +84 -2
  63. package/dist/index68.js +66 -2
  64. package/dist/index69.js +53 -2
  65. package/dist/index7.js +1 -1
  66. package/dist/index70.js +73 -31
  67. package/dist/index71.js +26 -2
  68. package/dist/index72.js +30 -2
  69. package/dist/index73.js +26 -2
  70. package/dist/index74.js +26 -2
  71. package/dist/index75.js +26 -2
  72. package/dist/index76.js +26 -2
  73. package/dist/index77.js +2 -2
  74. package/dist/index78.js +49 -5324
  75. package/dist/index79.js +44 -3
  76. package/dist/index8.js +2 -2
  77. package/dist/index80.js +2587 -2
  78. package/dist/index81.js +51 -2
  79. package/dist/index82.js +7207 -2
  80. package/dist/index83.js +14 -2
  81. package/dist/index84.js +2 -2
  82. package/dist/index85.js +22 -2
  83. package/dist/index86.js +123 -3
  84. package/dist/index87.js +2 -1735
  85. package/dist/index88.js +5324 -5
  86. package/dist/index89.js +2 -2
  87. package/dist/index90.js +2 -446
  88. package/dist/index91.js +2 -315
  89. package/dist/index92.js +2 -2
  90. package/dist/index93.js +4 -0
  91. package/dist/index94.js +4 -0
  92. package/dist/index95.js +4 -0
  93. package/dist/index96.js +6 -0
  94. package/dist/index97.js +35 -0
  95. package/dist/index98.js +1204 -0
  96. package/dist/index99.js +12 -0
  97. package/package.json +1 -1
@@ -0,0 +1,9 @@
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;
6
+ }
7
+ export {
8
+ t as getActiveElement
9
+ };
@@ -0,0 +1,7 @@
1
+ import { Fragment as e } from "vue";
2
+ function n(t) {
3
+ return t ? t.flatMap((r) => r.type === e ? n(r.children) : [r]) : [];
4
+ }
5
+ export {
6
+ n as renderSlotFragments
7
+ };
@@ -0,0 +1,6 @@
1
+ import { createContext as o } from "./index99.js";
2
+ import "vue";
3
+ const [e] = o("ConfigProvider");
4
+ export {
5
+ e as injectConfigProviderContext
6
+ };
@@ -0,0 +1,9 @@
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
+ }
7
+ export {
8
+ u as useDirection
9
+ };
@@ -0,0 +1,35 @@
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);
26
+ }
27
+ return {
28
+ forwardRef: c,
29
+ currentRef: r,
30
+ currentElement: u
31
+ };
32
+ }
33
+ export {
34
+ m as useForwardExpose
35
+ };
@@ -0,0 +1,59 @@
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
+ }
52
+ 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
59
+ };
@@ -0,0 +1,11 @@
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}`;
8
+ }
9
+ export {
10
+ d as useId
11
+ };
@@ -0,0 +1,16 @@
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
+ };
13
+ }
14
+ export {
15
+ i as useStateMachine
16
+ };
@@ -0,0 +1,60 @@
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)) };
54
+ }
55
+ function l(o) {
56
+ return o && getComputedStyle(o).animationName || "none";
57
+ }
58
+ export {
59
+ P as usePresence
60
+ };
@@ -0,0 +1,8 @@
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";
5
+ export {
6
+ n as isClient,
7
+ i as isDef
8
+ };
@@ -0,0 +1,41 @@
1
+ import { renderSlotFragments as u } from "./index101.js";
2
+ import { usePresence as f } from "./index108.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 "./index105.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
+ });
39
+ export {
40
+ x as Presence_default
41
+ };
@@ -0,0 +1,23 @@
1
+ import { renderSlotFragments as s } from "./index101.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
+ };
19
+ }
20
+ });
21
+ export {
22
+ a as Slot
23
+ };
@@ -0,0 +1,27 @@
1
+ import { Slot as r } from "./index111.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
+ });
25
+ export {
26
+ d as Primitive
27
+ };
@@ -0,0 +1,12 @@
1
+ import { ref as n, computed as m } from "vue";
2
+ import { unrefElement as r } from "./index105.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
+ };
9
+ }
10
+ export {
11
+ o as usePrimitiveElement
12
+ };
@@ -0,0 +1,59 @@
1
+ import { Slot as s } from "./index111.js";
2
+ import { usePrimitiveElement as m } from "./index113.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);
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
55
+ };
56
+ }
57
+ export {
58
+ j as useCollection
59
+ };
@@ -0,0 +1,38 @@
1
+ import { getActiveElement as n } from "./index100.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;
27
+ }
28
+ function l(r, t) {
29
+ return r.map((e, o) => r[(t + o) % r.length]);
30
+ }
31
+ export {
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
38
+ };
@@ -0,0 +1,121 @@
1
+ import { createContext as E } from "./index99.js";
2
+ import { useDirection as x } from "./index103.js";
3
+ import { Primitive as G } from "./index112.js";
4
+ import { useCollection as O } from "./index114.js";
5
+ import { focusFirst as k, ENTRY_FOCUS as M, EVENT_OPTIONS as N } from "./index115.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 "./index105.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;
118
+ export {
119
+ Z as RovingFocusGroup_default,
120
+ X as injectRovingFocusGroupContext
121
+ };
@@ -0,0 +1,94 @@
1
+ import { useId as b } from "./index106.js";
2
+ import { Primitive as y } from "./index112.js";
3
+ import { useCollection as I } from "./index114.js";
4
+ import { getFocusIntent as g, wrapArray as F, focusFirst as K } from "./index115.js";
5
+ import { injectRovingFocusGroupContext as S } from "./index116.js";
6
+ import { defineComponent as h, computed as u, onMounted as C, onUnmounted as w, createBlock as T, openBlock as q, unref as i, withCtx as s, createVNode as B, renderSlot as x, nextTick as R } from "vue";
7
+ var _ = /* @__PURE__ */ h({
8
+ __name: "RovingFocusItem",
9
+ props: {
10
+ tabStopId: {
11
+ type: String,
12
+ required: !1
13
+ },
14
+ focusable: {
15
+ type: Boolean,
16
+ required: !1,
17
+ default: !0
18
+ },
19
+ active: {
20
+ type: Boolean,
21
+ required: !1
22
+ },
23
+ allowShiftKey: {
24
+ type: Boolean,
25
+ required: !1
26
+ },
27
+ asChild: {
28
+ type: Boolean,
29
+ required: !1
30
+ },
31
+ as: {
32
+ type: null,
33
+ required: !1,
34
+ default: "span"
35
+ }
36
+ },
37
+ setup(d) {
38
+ const n = d, t = S(), f = b(), l = u(() => n.tabStopId || f), c = u(() => t.currentTabStopId.value === l.value), { getItems: p, CollectionItem: m } = I();
39
+ C(() => {
40
+ n.focusable && t.onFocusableItemAdd();
41
+ }), w(() => {
42
+ n.focusable && t.onFocusableItemRemove();
43
+ });
44
+ function v(e) {
45
+ if (e.key === "Tab" && e.shiftKey) {
46
+ t.onItemShiftTab();
47
+ return;
48
+ }
49
+ if (e.target !== e.currentTarget) return;
50
+ const o = g(e, t.orientation.value, t.dir.value);
51
+ if (o !== void 0) {
52
+ if (e.metaKey || e.ctrlKey || e.altKey || !n.allowShiftKey && e.shiftKey) return;
53
+ e.preventDefault();
54
+ let a = [...p().map((r) => r.ref).filter((r) => r.dataset.disabled !== "")];
55
+ if (o === "last") a.reverse();
56
+ else if (o === "prev" || o === "next") {
57
+ o === "prev" && a.reverse();
58
+ const r = a.indexOf(e.currentTarget);
59
+ a = t.loop.value ? F(a, r + 1) : a.slice(r + 1);
60
+ }
61
+ R(() => K(a));
62
+ }
63
+ }
64
+ return (e, o) => (q(), T(i(m), null, {
65
+ default: s(() => [B(i(y), {
66
+ tabindex: c.value ? 0 : -1,
67
+ "data-orientation": i(t).orientation.value,
68
+ "data-active": e.active ? "" : void 0,
69
+ "data-disabled": e.focusable ? void 0 : "",
70
+ as: e.as,
71
+ "as-child": e.asChild,
72
+ onMousedown: o[0] || (o[0] = (a) => {
73
+ e.focusable ? i(t).onItemFocus(l.value) : a.preventDefault();
74
+ }),
75
+ onFocus: o[1] || (o[1] = (a) => i(t).onItemFocus(l.value)),
76
+ onKeydown: v
77
+ }, {
78
+ default: s(() => [x(e.$slots, "default")]),
79
+ _: 3
80
+ }, 8, [
81
+ "tabindex",
82
+ "data-orientation",
83
+ "data-active",
84
+ "data-disabled",
85
+ "as",
86
+ "as-child"
87
+ ])]),
88
+ _: 3
89
+ }));
90
+ }
91
+ }), j = _;
92
+ export {
93
+ j as RovingFocusItem_default
94
+ };
@@ -0,0 +1,10 @@
1
+ function e(n, t) {
2
+ return `${n}-trigger-${t}`;
3
+ }
4
+ function r(n, t) {
5
+ return `${n}-content-${t}`;
6
+ }
7
+ export {
8
+ r as makeContentId,
9
+ e as makeTriggerId
10
+ };