@voidzero-dev/vitepress-theme 0.1.33 → 0.1.35

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/index100.js +9 -0
  2. package/dist/index101.js +35 -0
  3. package/dist/index102.js +59 -0
  4. package/dist/index103.js +11 -0
  5. package/dist/index104.js +16 -0
  6. package/dist/index105.js +60 -0
  7. package/dist/index106.js +8 -0
  8. package/dist/index107.js +41 -0
  9. package/dist/index108.js +23 -0
  10. package/dist/index109.js +27 -0
  11. package/dist/index110.js +12 -0
  12. package/dist/index111.js +59 -0
  13. package/dist/index112.js +38 -0
  14. package/dist/index113.js +121 -0
  15. package/dist/index114.js +94 -0
  16. package/dist/index115.js +10 -0
  17. package/dist/index116.js +441 -0
  18. package/dist/index117.js +35 -0
  19. package/dist/index118.js +1204 -0
  20. package/dist/index119.js +6 -0
  21. package/dist/index120.js +1737 -0
  22. package/dist/index121.js +7 -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/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 +7 -7
  32. package/dist/index4.js +24 -21
  33. package/dist/index41.js +81 -23
  34. package/dist/index42.js +63 -27
  35. package/dist/index43.js +49 -22
  36. package/dist/index44.js +73 -23
  37. package/dist/index45.js +14 -14
  38. package/dist/index46.js +20 -16
  39. package/dist/index47.js +26 -2
  40. package/dist/index48.js +26 -2
  41. package/dist/index49.js +26 -2
  42. package/dist/index50.js +26 -2
  43. package/dist/index51.js +18 -2
  44. package/dist/index52.js +18 -2
  45. package/dist/index53.js +18 -2
  46. package/dist/index54.js +2 -2
  47. package/dist/index55.js +2 -2
  48. package/dist/index56.js +1 -1
  49. package/dist/index57.js +2 -2
  50. package/dist/index58.js +2 -18
  51. package/dist/index59.js +2 -18
  52. package/dist/index6.js +27 -27
  53. package/dist/index60.js +2 -18
  54. package/dist/index61.js +2 -2
  55. package/dist/index62.js +2 -49
  56. package/dist/index63.js +3 -44
  57. package/dist/index64.js +2 -2587
  58. package/dist/index65.js +2 -51
  59. package/dist/index66.js +49 -7207
  60. package/dist/index67.js +43 -14
  61. package/dist/index68.js +2585 -32
  62. package/dist/index69.js +51 -2
  63. package/dist/index7.js +1 -1
  64. package/dist/index70.js +7207 -2
  65. package/dist/index71.js +14 -2
  66. package/dist/index72.js +22 -2
  67. package/dist/index73.js +124 -2
  68. package/dist/index74.js +2 -2
  69. package/dist/index75.js +2 -2
  70. package/dist/index76.js +2 -2
  71. package/dist/index77.js +2 -2
  72. package/dist/index78.js +2 -2
  73. package/dist/index79.js +25 -2
  74. package/dist/index8.js +2 -2
  75. package/dist/index80.js +33 -21
  76. package/dist/index81.js +2 -124
  77. package/dist/index82.js +2 -2
  78. package/dist/index83.js +2 -439
  79. package/dist/index84.js +2 -1735
  80. package/dist/index85.js +2 -2
  81. package/dist/index86.js +2 -2
  82. package/dist/index87.js +2 -2
  83. package/dist/index88.js +1 -1
  84. package/dist/index89.js +1 -1
  85. package/dist/index90.js +1 -1
  86. package/dist/index91.js +2 -33
  87. package/dist/index92.js +2 -1202
  88. package/dist/index93.js +2 -446
  89. package/dist/index94.js +5324 -5
  90. package/dist/index95.js +2 -2
  91. package/dist/index96.js +9 -314
  92. package/dist/index97.js +7 -2
  93. package/dist/index98.js +4 -3
  94. package/dist/index99.js +6 -0
  95. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ import { injectConfigProviderContext as o } from "./index99.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 "./index102.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 "./index106.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 "./index99.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 "./index104.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 "./index102.js";
4
+ import { isClient as C } from "./index106.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 "./index98.js";
2
+ import { usePresence as f } from "./index105.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 "./index102.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 "./index98.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 "./index108.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 "./index102.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 "./index108.js";
2
+ import { usePrimitiveElement as m } from "./index110.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 "./index97.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 "./index96.js";
2
+ import { useDirection as x } from "./index100.js";
3
+ import { Primitive as G } from "./index109.js";
4
+ import { useCollection as O } from "./index111.js";
5
+ import { focusFirst as k, ENTRY_FOCUS as M, EVENT_OPTIONS as N } from "./index112.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 "./index102.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 "./index103.js";
2
+ import { Primitive as y } from "./index109.js";
3
+ import { useCollection as I } from "./index111.js";
4
+ import { getFocusIntent as g, wrapArray as F, focusFirst as K } from "./index112.js";
5
+ import { injectRovingFocusGroupContext as S } from "./index113.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
+ };