@bccampus/ui-components 0.4.2 → 0.5.0

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 (165) hide show
  1. package/dist/_chunks/CompositeDataItem.js +204 -0
  2. package/dist/_chunks/createLucideIcon.js +103 -0
  3. package/dist/_chunks/index.js +125 -0
  4. package/dist/_chunks/index2.js +44 -0
  5. package/dist/_chunks/index3.js +533 -0
  6. package/dist/{utils-CRiPKpXj.js → _chunks/utils.js} +754 -526
  7. package/dist/components/index.d.ts +16 -0
  8. package/dist/components/index.js +84 -0
  9. package/dist/components/ui/banner.d.ts +10 -0
  10. package/dist/components/ui/banner.js +45 -0
  11. package/dist/components/ui/button.d.ts +11 -0
  12. package/dist/{button.js → components/ui/button.js} +11 -10
  13. package/dist/components/ui/card.d.ts +27 -0
  14. package/dist/components/ui/card.js +109 -0
  15. package/dist/components/ui/composite/CompositeData.d.ts +20 -0
  16. package/dist/components/ui/composite/CompositeData.js +89 -0
  17. package/dist/components/ui/composite/CompositeDataItem.d.ts +28 -0
  18. package/dist/components/ui/composite/CompositeDataItem.js +5 -0
  19. package/dist/components/ui/composite/FocusProvider/AbstractFocusProvider.d.ts +41 -0
  20. package/dist/components/ui/composite/FocusProvider/AbstractFocusProvider.js +35 -0
  21. package/dist/components/ui/composite/FocusProvider/ListboxFocusProvider.d.ts +16 -0
  22. package/dist/components/ui/composite/FocusProvider/ListboxFocusProvider.js +67 -0
  23. package/dist/components/ui/composite/FocusProvider/index.d.ts +2 -0
  24. package/dist/components/ui/composite/FocusProvider/index.js +6 -0
  25. package/dist/components/ui/composite/SelectionProvider/AbstractSelectionProvider.d.ts +23 -0
  26. package/dist/components/ui/composite/SelectionProvider/AbstractSelectionProvider.js +20 -0
  27. package/dist/components/ui/composite/SelectionProvider/MultipleSelectionProvider.d.ts +9 -0
  28. package/dist/components/ui/composite/SelectionProvider/MultipleSelectionProvider.js +20 -0
  29. package/dist/components/ui/composite/SelectionProvider/SingleSelectionProvider.d.ts +9 -0
  30. package/dist/components/ui/composite/SelectionProvider/SingleSelectionProvider.js +25 -0
  31. package/dist/components/ui/composite/SelectionProvider/index.d.ts +3 -0
  32. package/dist/components/ui/composite/SelectionProvider/index.js +8 -0
  33. package/dist/components/ui/composite/composite-component-item.d.ts +2 -0
  34. package/dist/components/ui/composite/composite-component-item.js +74 -0
  35. package/dist/components/ui/composite/composite-component.d.ts +2 -0
  36. package/dist/components/ui/composite/composite-component.js +66 -0
  37. package/dist/components/ui/composite/index.d.ts +7 -0
  38. package/dist/components/ui/composite/index.js +22 -0
  39. package/dist/components/ui/composite/listbox.d.ts +2 -0
  40. package/dist/components/ui/composite/listbox.js +58 -0
  41. package/dist/components/ui/composite/types.d.ts +82 -0
  42. package/dist/components/ui/composite/types.js +1 -0
  43. package/dist/components/ui/horizontal-list.d.ts +10 -0
  44. package/dist/components/ui/horizontal-list.js +82 -0
  45. package/dist/components/ui/icon-generator/generate-tiles.d.ts +4 -0
  46. package/dist/components/ui/icon-generator/generate-tiles.js +223 -0
  47. package/dist/components/ui/icon-generator/icon-generator.d.ts +3 -0
  48. package/dist/components/ui/icon-generator/icon-generator.js +82 -0
  49. package/dist/components/ui/icon-generator/index.d.ts +4 -0
  50. package/dist/components/ui/icon-generator/index.js +11 -0
  51. package/dist/components/ui/icon-generator/masked-image-generator.d.ts +3 -0
  52. package/dist/components/ui/icon-generator/masked-image-generator.js +31 -0
  53. package/dist/{masked-image-generator.d.ts → components/ui/icon-generator/types.d.ts} +48 -58
  54. package/dist/components/ui/icon-generator/types.js +30 -0
  55. package/dist/components/ui/input.d.ts +3 -0
  56. package/dist/{input.js → components/ui/input.js} +8 -8
  57. package/dist/components/ui/navigation-menu.d.ts +16 -0
  58. package/dist/components/ui/navigation-menu.js +1041 -0
  59. package/dist/components/ui/overlay.d.ts +7 -0
  60. package/dist/{overlay.js → components/ui/overlay.js} +7 -7
  61. package/dist/components/ui/page-header.d.ts +5 -0
  62. package/dist/{page-header.js → components/ui/page-header.js} +189 -181
  63. package/dist/components/ui/page-section.d.ts +8 -0
  64. package/dist/{page-section.js → components/ui/page-section.js} +7 -7
  65. package/dist/components/ui/page.d.ts +3 -0
  66. package/dist/components/ui/page.js +8 -0
  67. package/dist/components/ui/popover.d.ts +7 -0
  68. package/dist/components/ui/popover.js +3532 -0
  69. package/dist/components/ui/search-input.d.ts +3 -0
  70. package/dist/components/ui/search-input.js +24 -0
  71. package/dist/components/ui/tag.d.ts +10 -0
  72. package/dist/{tag.js → components/ui/tag.js} +10 -9
  73. package/dist/components/ui/typography/caption.d.ts +8 -0
  74. package/dist/components/ui/typography/caption.js +28 -0
  75. package/dist/components/ui/typography/index.d.ts +1 -0
  76. package/dist/components/ui/typography/index.js +5 -0
  77. package/dist/hooks/index.d.ts +3 -0
  78. package/dist/hooks/index.js +9 -0
  79. package/dist/hooks/use-effect-after-mount.d.ts +2 -0
  80. package/dist/hooks/use-effect-after-mount.js +24 -0
  81. package/dist/hooks/use-id.d.ts +1 -0
  82. package/dist/hooks/use-id.js +7 -0
  83. package/dist/hooks/use-keyboard-event.d.ts +59 -0
  84. package/dist/hooks/use-keyboard-event.js +52 -0
  85. package/dist/lib/index.d.ts +3 -0
  86. package/dist/lib/index.js +16 -0
  87. package/dist/lib/object.d.ts +5 -0
  88. package/dist/lib/object.js +38 -0
  89. package/dist/lib/set-operations.d.ts +5 -0
  90. package/dist/lib/set-operations.js +51 -0
  91. package/dist/{utils.d.ts → lib/utils.d.ts} +2 -5
  92. package/dist/lib/utils.js +4 -0
  93. package/package.json +9 -76
  94. package/src/components/index.ts +17 -0
  95. package/src/components/ui/composite/FocusProvider/index.ts +2 -0
  96. package/src/components/ui/composite/SelectionProvider/MultipleSelectionProvider.ts +1 -1
  97. package/src/components/ui/composite/SelectionProvider/index.ts +3 -0
  98. package/src/components/ui/composite/index.ts +5 -5
  99. package/src/components/ui/icon-generator/index.ts +2 -0
  100. package/src/components/ui/typography/index.ts +1 -0
  101. package/src/hooks/index.ts +3 -0
  102. package/src/index.ts +3 -0
  103. package/src/lib/index.ts +3 -0
  104. package/tsconfig.lib.json +44 -0
  105. package/vite.config.ts +28 -31
  106. package/dist/AbstractFocusProvider-CxvlcEki.js +0 -29
  107. package/dist/AbstractSelectionProvider-BtaROstC.js +0 -30
  108. package/dist/CompositeDataItem-DuHOHCWy.js +0 -158
  109. package/dist/ListboxFocusProvider.d.ts +0 -149
  110. package/dist/ListboxFocusProvider.js +0 -53
  111. package/dist/MultipleSelectionProvider.d.ts +0 -141
  112. package/dist/MultipleSelectionProvider.js +0 -19
  113. package/dist/SingleSelectionProvider.d.ts +0 -141
  114. package/dist/SingleSelectionProvider.js +0 -23
  115. package/dist/banner.d.ts +0 -16
  116. package/dist/banner.js +0 -42
  117. package/dist/button.d.ts +0 -17
  118. package/dist/caption.d.ts +0 -13
  119. package/dist/caption.js +0 -27
  120. package/dist/card.d.ts +0 -46
  121. package/dist/card.js +0 -108
  122. package/dist/composite-component-DSUbd1XS.js +0 -122
  123. package/dist/composite.d.ts +0 -208
  124. package/dist/composite.js +0 -82
  125. package/dist/createLucideIcon-CzehbSja.js +0 -94
  126. package/dist/generate-tiles-DuagGD1d.js +0 -244
  127. package/dist/generate-tiles.d.ts +0 -43
  128. package/dist/generate-tiles.js +0 -7
  129. package/dist/horizontal-list.d.ts +0 -16
  130. package/dist/horizontal-list.js +0 -77
  131. package/dist/icon-generator-tuhuqdpL.js +0 -76
  132. package/dist/icon-generator.d.ts +0 -58
  133. package/dist/icon-generator.js +0 -6
  134. package/dist/index-CQhYMnjT.js +0 -34
  135. package/dist/index-U7DVCmS_.js +0 -76
  136. package/dist/input.d.ts +0 -7
  137. package/dist/listbox.d.ts +0 -171
  138. package/dist/listbox.js +0 -76
  139. package/dist/masked-image-generator.js +0 -29
  140. package/dist/navigation-menu.d.ts +0 -27
  141. package/dist/navigation-menu.js +0 -1139
  142. package/dist/overlay.d.ts +0 -13
  143. package/dist/page-header.d.ts +0 -9
  144. package/dist/page-section.d.ts +0 -14
  145. package/dist/page.d.ts +0 -7
  146. package/dist/page.js +0 -8
  147. package/dist/search-input.d.ts +0 -7
  148. package/dist/search-input.js +0 -23
  149. package/dist/tag.d.ts +0 -16
  150. package/dist/ui-components.d.ts +0 -215
  151. package/dist/ui-components.js +0 -54
  152. package/dist/utils.js +0 -4
  153. package/src/assets/icons/icon_01.svg +0 -6
  154. package/src/assets/icons/icon_02.svg +0 -6
  155. package/src/assets/icons/icon_03.svg +0 -6
  156. package/src/assets/icons/icon_04.svg +0 -6
  157. package/src/assets/icons/icon_05.svg +0 -4
  158. package/src/assets/icons/icon_06.svg +0 -4
  159. package/src/assets/images/image_01.jpg +0 -0
  160. package/src/assets/images/image_02.jpg +0 -0
  161. package/src/assets/images/image_03.webp +0 -0
  162. package/src/assets/images/image_04.png +0 -0
  163. package/src/assets/images/image_05.jpg +0 -0
  164. package/src/assets/images/image_06.jpg +0 -0
  165. package/src/components/ui/index.ts +0 -15
@@ -1,1139 +0,0 @@
1
- import { jsx as f, jsxs as $, Fragment as ie } from "react/jsx-runtime";
2
- import * as i from "react";
3
- import L from "react";
4
- import * as ke from "react-dom";
5
- import Fe from "react-dom";
6
- import { c as H, u as D, a as Ke } from "./index-U7DVCmS_.js";
7
- import { c as A } from "./utils-CRiPKpXj.js";
8
- import { buttonVariants as Ve } from "./button.js";
9
- import { c as Ue } from "./createLucideIcon-CzehbSja.js";
10
- /**
11
- * @license lucide-react v0.544.0 - ISC
12
- *
13
- * This source code is licensed under the ISC license.
14
- * See the LICENSE file in the root directory of this source tree.
15
- */
16
- const ze = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], $e = Ue("chevron-down", ze);
17
- function le(e, t = []) {
18
- let n = [];
19
- function o(a, s) {
20
- const u = i.createContext(s), l = n.length;
21
- n = [...n, s];
22
- const d = (v) => {
23
- const { scope: p, children: h, ...E } = v, g = p?.[e]?.[l] || u, C = i.useMemo(() => E, Object.values(E));
24
- return /* @__PURE__ */ f(g.Provider, { value: C, children: h });
25
- };
26
- d.displayName = a + "Provider";
27
- function c(v, p) {
28
- const h = p?.[e]?.[l] || u, E = i.useContext(h);
29
- if (E) return E;
30
- if (s !== void 0) return s;
31
- throw new Error(`\`${v}\` must be used within \`${a}\``);
32
- }
33
- return [d, c];
34
- }
35
- const r = () => {
36
- const a = n.map((s) => i.createContext(s));
37
- return function(u) {
38
- const l = u?.[e] || a;
39
- return i.useMemo(
40
- () => ({ [`__scope${e}`]: { ...u, [e]: l } }),
41
- [u, l]
42
- );
43
- };
44
- };
45
- return r.scopeName = e, [o, We(r, ...t)];
46
- }
47
- function We(...e) {
48
- const t = e[0];
49
- if (e.length === 1) return t;
50
- const n = () => {
51
- const o = e.map((r) => ({
52
- useScope: r(),
53
- scopeName: r.scopeName
54
- }));
55
- return function(a) {
56
- const s = o.reduce((u, { useScope: l, scopeName: d }) => {
57
- const v = l(a)[`__scope${d}`];
58
- return { ...u, ...v };
59
- }, {});
60
- return i.useMemo(() => ({ [`__scope${t.scopeName}`]: s }), [s]);
61
- };
62
- };
63
- return n.scopeName = t.scopeName, n;
64
- }
65
- function P(e, t, { checkForDefaultPrevented: n = !0 } = {}) {
66
- return function(r) {
67
- if (e?.(r), n === !1 || !r.defaultPrevented)
68
- return t?.(r);
69
- };
70
- }
71
- var Be = [
72
- "a",
73
- "button",
74
- "div",
75
- "form",
76
- "h2",
77
- "h3",
78
- "img",
79
- "input",
80
- "label",
81
- "li",
82
- "nav",
83
- "ol",
84
- "p",
85
- "select",
86
- "span",
87
- "svg",
88
- "ul"
89
- ], x = Be.reduce((e, t) => {
90
- const n = H(`Primitive.${t}`), o = i.forwardRef((r, a) => {
91
- const { asChild: s, ...u } = r, l = s ? n : t;
92
- return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ f(l, { ...u, ref: a });
93
- });
94
- return o.displayName = `Primitive.${t}`, { ...e, [t]: o };
95
- }, {});
96
- function G(e, t) {
97
- e && ke.flushSync(() => e.dispatchEvent(t));
98
- }
99
- var k = globalThis?.document ? i.useLayoutEffect : () => {
100
- }, He = i[" useInsertionEffect ".trim().toString()] || k;
101
- function de({
102
- prop: e,
103
- defaultProp: t,
104
- onChange: n = () => {
105
- },
106
- caller: o
107
- }) {
108
- const [r, a, s] = Ge({
109
- defaultProp: t,
110
- onChange: n
111
- }), u = e !== void 0, l = u ? e : r;
112
- {
113
- const c = i.useRef(e !== void 0);
114
- i.useEffect(() => {
115
- const v = c.current;
116
- v !== u && console.warn(
117
- `${o} is changing from ${v ? "controlled" : "uncontrolled"} to ${u ? "controlled" : "uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
118
- ), c.current = u;
119
- }, [u, o]);
120
- }
121
- const d = i.useCallback(
122
- (c) => {
123
- if (u) {
124
- const v = je(c) ? c(e) : c;
125
- v !== e && s.current?.(v);
126
- } else
127
- a(c);
128
- },
129
- [u, e, a, s]
130
- );
131
- return [l, d];
132
- }
133
- function Ge({
134
- defaultProp: e,
135
- onChange: t
136
- }) {
137
- const [n, o] = i.useState(e), r = i.useRef(n), a = i.useRef(t);
138
- return He(() => {
139
- a.current = t;
140
- }, [t]), i.useEffect(() => {
141
- r.current !== n && (a.current?.(n), r.current = n);
142
- }, [n, r]), [n, o, a];
143
- }
144
- function je(e) {
145
- return typeof e == "function";
146
- }
147
- var Ye = i.createContext(void 0);
148
- function qe(e) {
149
- const t = i.useContext(Ye);
150
- return e || t || "ltr";
151
- }
152
- function Xe(e, t) {
153
- return i.useReducer((n, o) => t[n][o] ?? n, e);
154
- }
155
- var V = (e) => {
156
- const { present: t, children: n } = e, o = Je(t), r = typeof n == "function" ? n({ present: o.isPresent }) : i.Children.only(n), a = D(o.ref, Qe(r));
157
- return typeof n == "function" || o.isPresent ? i.cloneElement(r, { ref: a }) : null;
158
- };
159
- V.displayName = "Presence";
160
- function Je(e) {
161
- const [t, n] = i.useState(), o = i.useRef(null), r = i.useRef(e), a = i.useRef("none"), s = e ? "mounted" : "unmounted", [u, l] = Xe(s, {
162
- mounted: {
163
- UNMOUNT: "unmounted",
164
- ANIMATION_OUT: "unmountSuspended"
165
- },
166
- unmountSuspended: {
167
- MOUNT: "mounted",
168
- ANIMATION_END: "unmounted"
169
- },
170
- unmounted: {
171
- MOUNT: "mounted"
172
- }
173
- });
174
- return i.useEffect(() => {
175
- const d = U(o.current);
176
- a.current = u === "mounted" ? d : "none";
177
- }, [u]), k(() => {
178
- const d = o.current, c = r.current;
179
- if (c !== e) {
180
- const p = a.current, h = U(d);
181
- e ? l("MOUNT") : h === "none" || d?.display === "none" ? l("UNMOUNT") : l(c && p !== h ? "ANIMATION_OUT" : "UNMOUNT"), r.current = e;
182
- }
183
- }, [e, l]), k(() => {
184
- if (t) {
185
- let d;
186
- const c = t.ownerDocument.defaultView ?? window, v = (h) => {
187
- const g = U(o.current).includes(CSS.escape(h.animationName));
188
- if (h.target === t && g && (l("ANIMATION_END"), !r.current)) {
189
- const C = t.style.animationFillMode;
190
- t.style.animationFillMode = "forwards", d = c.setTimeout(() => {
191
- t.style.animationFillMode === "forwards" && (t.style.animationFillMode = C);
192
- });
193
- }
194
- }, p = (h) => {
195
- h.target === t && (a.current = U(o.current));
196
- };
197
- return t.addEventListener("animationstart", p), t.addEventListener("animationcancel", v), t.addEventListener("animationend", v), () => {
198
- c.clearTimeout(d), t.removeEventListener("animationstart", p), t.removeEventListener("animationcancel", v), t.removeEventListener("animationend", v);
199
- };
200
- } else
201
- l("ANIMATION_END");
202
- }, [t, l]), {
203
- isPresent: ["mounted", "unmountSuspended"].includes(u),
204
- ref: i.useCallback((d) => {
205
- o.current = d ? getComputedStyle(d) : null, n(d);
206
- }, [])
207
- };
208
- }
209
- function U(e) {
210
- return e?.animationName || "none";
211
- }
212
- function Qe(e) {
213
- let t = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, n = t && "isReactWarning" in t && t.isReactWarning;
214
- return n ? e.ref : (t = Object.getOwnPropertyDescriptor(e, "ref")?.get, n = t && "isReactWarning" in t && t.isReactWarning, n ? e.props.ref : e.props.ref || e.ref);
215
- }
216
- var Ze = i[" useId ".trim().toString()] || (() => {
217
- }), et = 0;
218
- function fe(e) {
219
- const [t, n] = i.useState(Ze());
220
- return k(() => {
221
- n((o) => o ?? String(et++));
222
- }, [e]), t ? `radix-${t}` : "";
223
- }
224
- function ve(e) {
225
- const t = e + "CollectionProvider", [n, o] = le(t), [r, a] = n(
226
- t,
227
- { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
228
- ), s = (g) => {
229
- const { scope: C, children: M } = g, I = L.useRef(null), m = L.useRef(/* @__PURE__ */ new Map()).current;
230
- return /* @__PURE__ */ f(r, { scope: C, itemMap: m, collectionRef: I, children: M });
231
- };
232
- s.displayName = t;
233
- const u = e + "CollectionSlot", l = H(u), d = L.forwardRef(
234
- (g, C) => {
235
- const { scope: M, children: I } = g, m = a(u, M), w = D(C, m.collectionRef);
236
- return /* @__PURE__ */ f(l, { ref: w, children: I });
237
- }
238
- );
239
- d.displayName = u;
240
- const c = e + "CollectionItemSlot", v = "data-radix-collection-item", p = H(c), h = L.forwardRef(
241
- (g, C) => {
242
- const { scope: M, children: I, ...m } = g, w = L.useRef(null), N = D(C, w), y = a(c, M);
243
- return L.useEffect(() => (y.itemMap.set(w, { ref: w, ...m }), () => void y.itemMap.delete(w))), /* @__PURE__ */ f(p, { [v]: "", ref: N, children: I });
244
- }
245
- );
246
- h.displayName = c;
247
- function E(g) {
248
- const C = a(e + "CollectionConsumer", g);
249
- return L.useCallback(() => {
250
- const I = C.collectionRef.current;
251
- if (!I) return [];
252
- const m = Array.from(I.querySelectorAll(`[${v}]`));
253
- return Array.from(C.itemMap.values()).sort(
254
- (y, R) => m.indexOf(y.ref.current) - m.indexOf(R.ref.current)
255
- );
256
- }, [C.collectionRef, C.itemMap]);
257
- }
258
- return [
259
- { Provider: s, Slot: d, ItemSlot: h },
260
- E,
261
- o
262
- ];
263
- }
264
- function _(e) {
265
- const t = i.useRef(e);
266
- return i.useEffect(() => {
267
- t.current = e;
268
- }), i.useMemo(() => (...n) => t.current?.(...n), []);
269
- }
270
- function tt(e, t = globalThis?.document) {
271
- const n = _(e);
272
- i.useEffect(() => {
273
- const o = (r) => {
274
- r.key === "Escape" && n(r);
275
- };
276
- return t.addEventListener("keydown", o, { capture: !0 }), () => t.removeEventListener("keydown", o, { capture: !0 });
277
- }, [n, t]);
278
- }
279
- var nt = "DismissableLayer", j = "dismissableLayer.update", ot = "dismissableLayer.pointerDownOutside", rt = "dismissableLayer.focusOutside", ae, me = i.createContext({
280
- layers: /* @__PURE__ */ new Set(),
281
- layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
282
- branches: /* @__PURE__ */ new Set()
283
- }), pe = i.forwardRef(
284
- (e, t) => {
285
- const {
286
- disableOutsidePointerEvents: n = !1,
287
- onEscapeKeyDown: o,
288
- onPointerDownOutside: r,
289
- onFocusOutside: a,
290
- onInteractOutside: s,
291
- onDismiss: u,
292
- ...l
293
- } = e, d = i.useContext(me), [c, v] = i.useState(null), p = c?.ownerDocument ?? globalThis?.document, [, h] = i.useState({}), E = D(t, (R) => v(R)), g = Array.from(d.layers), [C] = [...d.layersWithOutsidePointerEventsDisabled].slice(-1), M = g.indexOf(C), I = c ? g.indexOf(c) : -1, m = d.layersWithOutsidePointerEventsDisabled.size > 0, w = I >= M, N = st((R) => {
294
- const T = R.target, b = [...d.branches].some((S) => S.contains(T));
295
- !w || b || (r?.(R), s?.(R), R.defaultPrevented || u?.());
296
- }, p), y = ct((R) => {
297
- const T = R.target;
298
- [...d.branches].some((S) => S.contains(T)) || (a?.(R), s?.(R), R.defaultPrevented || u?.());
299
- }, p);
300
- return tt((R) => {
301
- I === d.layers.size - 1 && (o?.(R), !R.defaultPrevented && u && (R.preventDefault(), u()));
302
- }, p), i.useEffect(() => {
303
- if (c)
304
- return n && (d.layersWithOutsidePointerEventsDisabled.size === 0 && (ae = p.body.style.pointerEvents, p.body.style.pointerEvents = "none"), d.layersWithOutsidePointerEventsDisabled.add(c)), d.layers.add(c), se(), () => {
305
- n && d.layersWithOutsidePointerEventsDisabled.size === 1 && (p.body.style.pointerEvents = ae);
306
- };
307
- }, [c, p, n, d]), i.useEffect(() => () => {
308
- c && (d.layers.delete(c), d.layersWithOutsidePointerEventsDisabled.delete(c), se());
309
- }, [c, d]), i.useEffect(() => {
310
- const R = () => h({});
311
- return document.addEventListener(j, R), () => document.removeEventListener(j, R);
312
- }, []), /* @__PURE__ */ f(
313
- x.div,
314
- {
315
- ...l,
316
- ref: E,
317
- style: {
318
- pointerEvents: m ? w ? "auto" : "none" : void 0,
319
- ...e.style
320
- },
321
- onFocusCapture: P(e.onFocusCapture, y.onFocusCapture),
322
- onBlurCapture: P(e.onBlurCapture, y.onBlurCapture),
323
- onPointerDownCapture: P(
324
- e.onPointerDownCapture,
325
- N.onPointerDownCapture
326
- )
327
- }
328
- );
329
- }
330
- );
331
- pe.displayName = nt;
332
- var it = "DismissableLayerBranch", at = i.forwardRef((e, t) => {
333
- const n = i.useContext(me), o = i.useRef(null), r = D(t, o);
334
- return i.useEffect(() => {
335
- const a = o.current;
336
- if (a)
337
- return n.branches.add(a), () => {
338
- n.branches.delete(a);
339
- };
340
- }, [n.branches]), /* @__PURE__ */ f(x.div, { ...e, ref: r });
341
- });
342
- at.displayName = it;
343
- function st(e, t = globalThis?.document) {
344
- const n = _(e), o = i.useRef(!1), r = i.useRef(() => {
345
- });
346
- return i.useEffect(() => {
347
- const a = (u) => {
348
- if (u.target && !o.current) {
349
- let l = function() {
350
- ge(
351
- ot,
352
- n,
353
- d,
354
- { discrete: !0 }
355
- );
356
- };
357
- const d = { originalEvent: u };
358
- u.pointerType === "touch" ? (t.removeEventListener("click", r.current), r.current = l, t.addEventListener("click", r.current, { once: !0 })) : l();
359
- } else
360
- t.removeEventListener("click", r.current);
361
- o.current = !1;
362
- }, s = window.setTimeout(() => {
363
- t.addEventListener("pointerdown", a);
364
- }, 0);
365
- return () => {
366
- window.clearTimeout(s), t.removeEventListener("pointerdown", a), t.removeEventListener("click", r.current);
367
- };
368
- }, [t, n]), {
369
- // ensures we check React component tree (not just DOM tree)
370
- onPointerDownCapture: () => o.current = !0
371
- };
372
- }
373
- function ct(e, t = globalThis?.document) {
374
- const n = _(e), o = i.useRef(!1);
375
- return i.useEffect(() => {
376
- const r = (a) => {
377
- a.target && !o.current && ge(rt, n, { originalEvent: a }, {
378
- discrete: !1
379
- });
380
- };
381
- return t.addEventListener("focusin", r), () => t.removeEventListener("focusin", r);
382
- }, [t, n]), {
383
- onFocusCapture: () => o.current = !0,
384
- onBlurCapture: () => o.current = !1
385
- };
386
- }
387
- function se() {
388
- const e = new CustomEvent(j);
389
- document.dispatchEvent(e);
390
- }
391
- function ge(e, t, n, { discrete: o }) {
392
- const r = n.originalEvent.target, a = new CustomEvent(e, { bubbles: !1, cancelable: !0, detail: n });
393
- t && r.addEventListener(e, t, { once: !0 }), o ? G(r, a) : r.dispatchEvent(a);
394
- }
395
- function ut(e) {
396
- const t = i.useRef({ value: e, previous: e });
397
- return i.useMemo(() => (t.current.value !== e && (t.current.previous = t.current.value, t.current.value = e), t.current.previous), [e]);
398
- }
399
- var lt = Object.freeze({
400
- // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
401
- position: "absolute",
402
- border: 0,
403
- width: 1,
404
- height: 1,
405
- padding: 0,
406
- margin: -1,
407
- overflow: "hidden",
408
- clip: "rect(0, 0, 0, 0)",
409
- whiteSpace: "nowrap",
410
- wordWrap: "normal"
411
- }), dt = "VisuallyHidden", we = i.forwardRef(
412
- (e, t) => /* @__PURE__ */ f(
413
- x.span,
414
- {
415
- ...e,
416
- ref: t,
417
- style: { ...lt, ...e.style }
418
- }
419
- )
420
- );
421
- we.displayName = dt;
422
- var ft = we, F = "NavigationMenu", [Z, he, vt] = ve(F), [Y, mt, pt] = ve(F), [ee] = le(
423
- F,
424
- [vt, pt]
425
- ), [gt, O] = ee(F), [wt, ht] = ee(F), Ee = i.forwardRef(
426
- (e, t) => {
427
- const {
428
- __scopeNavigationMenu: n,
429
- value: o,
430
- onValueChange: r,
431
- defaultValue: a,
432
- delayDuration: s = 200,
433
- skipDelayDuration: u = 300,
434
- orientation: l = "horizontal",
435
- dir: d,
436
- ...c
437
- } = e, [v, p] = i.useState(null), h = D(t, (b) => p(b)), E = qe(d), g = i.useRef(0), C = i.useRef(0), M = i.useRef(0), [I, m] = i.useState(!0), [w, N] = de({
438
- prop: o,
439
- onChange: (b) => {
440
- const S = b !== "", B = u > 0;
441
- S ? (window.clearTimeout(M.current), B && m(!1)) : (window.clearTimeout(M.current), M.current = window.setTimeout(
442
- () => m(!0),
443
- u
444
- )), r?.(b);
445
- },
446
- defaultProp: a ?? "",
447
- caller: F
448
- }), y = i.useCallback(() => {
449
- window.clearTimeout(C.current), C.current = window.setTimeout(() => N(""), 150);
450
- }, [N]), R = i.useCallback(
451
- (b) => {
452
- window.clearTimeout(C.current), N(b);
453
- },
454
- [N]
455
- ), T = i.useCallback(
456
- (b) => {
457
- w === b ? window.clearTimeout(C.current) : g.current = window.setTimeout(() => {
458
- window.clearTimeout(C.current), N(b);
459
- }, s);
460
- },
461
- [w, N, s]
462
- );
463
- return i.useEffect(() => () => {
464
- window.clearTimeout(g.current), window.clearTimeout(C.current), window.clearTimeout(M.current);
465
- }, []), /* @__PURE__ */ f(
466
- Ce,
467
- {
468
- scope: n,
469
- isRootMenu: !0,
470
- value: w,
471
- dir: E,
472
- orientation: l,
473
- rootNavigationMenu: v,
474
- onTriggerEnter: (b) => {
475
- window.clearTimeout(g.current), I ? T(b) : R(b);
476
- },
477
- onTriggerLeave: () => {
478
- window.clearTimeout(g.current), y();
479
- },
480
- onContentEnter: () => window.clearTimeout(C.current),
481
- onContentLeave: y,
482
- onItemSelect: (b) => {
483
- N((S) => S === b ? "" : b);
484
- },
485
- onItemDismiss: () => N(""),
486
- children: /* @__PURE__ */ f(
487
- x.nav,
488
- {
489
- "aria-label": "Main",
490
- "data-orientation": l,
491
- dir: E,
492
- ...c,
493
- ref: h
494
- }
495
- )
496
- }
497
- );
498
- }
499
- );
500
- Ee.displayName = F;
501
- var q = "NavigationMenuSub", Et = i.forwardRef(
502
- (e, t) => {
503
- const {
504
- __scopeNavigationMenu: n,
505
- value: o,
506
- onValueChange: r,
507
- defaultValue: a,
508
- orientation: s = "horizontal",
509
- ...u
510
- } = e, l = O(q, n), [d, c] = de({
511
- prop: o,
512
- onChange: r,
513
- defaultProp: a ?? "",
514
- caller: q
515
- });
516
- return /* @__PURE__ */ f(
517
- Ce,
518
- {
519
- scope: n,
520
- isRootMenu: !1,
521
- value: d,
522
- dir: l.dir,
523
- orientation: s,
524
- rootNavigationMenu: l.rootNavigationMenu,
525
- onTriggerEnter: (v) => c(v),
526
- onItemSelect: (v) => c(v),
527
- onItemDismiss: () => c(""),
528
- children: /* @__PURE__ */ f(x.div, { "data-orientation": s, ...u, ref: t })
529
- }
530
- );
531
- }
532
- );
533
- Et.displayName = q;
534
- var Ce = (e) => {
535
- const {
536
- scope: t,
537
- isRootMenu: n,
538
- rootNavigationMenu: o,
539
- dir: r,
540
- orientation: a,
541
- children: s,
542
- value: u,
543
- onItemSelect: l,
544
- onItemDismiss: d,
545
- onTriggerEnter: c,
546
- onTriggerLeave: v,
547
- onContentEnter: p,
548
- onContentLeave: h
549
- } = e, [E, g] = i.useState(null), [C, M] = i.useState(/* @__PURE__ */ new Map()), [I, m] = i.useState(null);
550
- return /* @__PURE__ */ f(
551
- gt,
552
- {
553
- scope: t,
554
- isRootMenu: n,
555
- rootNavigationMenu: o,
556
- value: u,
557
- previousValue: ut(u),
558
- baseId: fe(),
559
- dir: r,
560
- orientation: a,
561
- viewport: E,
562
- onViewportChange: g,
563
- indicatorTrack: I,
564
- onIndicatorTrackChange: m,
565
- onTriggerEnter: _(c),
566
- onTriggerLeave: _(v),
567
- onContentEnter: _(p),
568
- onContentLeave: _(h),
569
- onItemSelect: _(l),
570
- onItemDismiss: _(d),
571
- onViewportContentChange: i.useCallback((w, N) => {
572
- M((y) => (y.set(w, N), new Map(y)));
573
- }, []),
574
- onViewportContentRemove: i.useCallback((w) => {
575
- M((N) => N.has(w) ? (N.delete(w), new Map(N)) : N);
576
- }, []),
577
- children: /* @__PURE__ */ f(Z.Provider, { scope: t, children: /* @__PURE__ */ f(wt, { scope: t, items: C, children: s }) })
578
- }
579
- );
580
- }, Ne = "NavigationMenuList", ye = i.forwardRef(
581
- (e, t) => {
582
- const { __scopeNavigationMenu: n, ...o } = e, r = O(Ne, n), a = /* @__PURE__ */ f(x.ul, { "data-orientation": r.orientation, ...o, ref: t });
583
- return /* @__PURE__ */ f(x.div, { style: { position: "relative" }, ref: r.onIndicatorTrackChange, children: /* @__PURE__ */ f(Z.Slot, { scope: n, children: r.isRootMenu ? /* @__PURE__ */ f(_e, { asChild: !0, children: a }) : a }) });
584
- }
585
- );
586
- ye.displayName = Ne;
587
- var Re = "NavigationMenuItem", [Ct, Me] = ee(Re), be = i.forwardRef(
588
- (e, t) => {
589
- const { __scopeNavigationMenu: n, value: o, ...r } = e, a = fe(), s = o || a || "LEGACY_REACT_AUTO_VALUE", u = i.useRef(null), l = i.useRef(null), d = i.useRef(null), c = i.useRef(() => {
590
- }), v = i.useRef(!1), p = i.useCallback((E = "start") => {
591
- if (u.current) {
592
- c.current();
593
- const g = J(u.current);
594
- g.length && oe(E === "start" ? g : g.reverse());
595
- }
596
- }, []), h = i.useCallback(() => {
597
- if (u.current) {
598
- const E = J(u.current);
599
- E.length && (c.current = Pt(E));
600
- }
601
- }, []);
602
- return /* @__PURE__ */ f(
603
- Ct,
604
- {
605
- scope: n,
606
- value: s,
607
- triggerRef: l,
608
- contentRef: u,
609
- focusProxyRef: d,
610
- wasEscapeCloseRef: v,
611
- onEntryKeyDown: p,
612
- onFocusProxyEnter: p,
613
- onRootContentClose: h,
614
- onContentFocusOutside: h,
615
- children: /* @__PURE__ */ f(x.li, { ...r, ref: t })
616
- }
617
- );
618
- }
619
- );
620
- be.displayName = Re;
621
- var X = "NavigationMenuTrigger", Ie = i.forwardRef((e, t) => {
622
- const { __scopeNavigationMenu: n, disabled: o, ...r } = e, a = O(X, e.__scopeNavigationMenu), s = Me(X, e.__scopeNavigationMenu), u = i.useRef(null), l = D(u, s.triggerRef, t), d = Ae(a.baseId, s.value), c = Le(a.baseId, s.value), v = i.useRef(!1), p = i.useRef(!1), h = s.value === a.value;
623
- return /* @__PURE__ */ $(ie, { children: [
624
- /* @__PURE__ */ f(Z.ItemSlot, { scope: n, value: s.value, children: /* @__PURE__ */ f(De, { asChild: !0, children: /* @__PURE__ */ f(
625
- x.button,
626
- {
627
- id: d,
628
- disabled: o,
629
- "data-disabled": o ? "" : void 0,
630
- "data-state": re(h),
631
- "aria-expanded": h,
632
- "aria-controls": c,
633
- ...r,
634
- ref: l,
635
- onPointerEnter: P(e.onPointerEnter, () => {
636
- p.current = !1, s.wasEscapeCloseRef.current = !1;
637
- }),
638
- onPointerMove: P(
639
- e.onPointerMove,
640
- W(() => {
641
- o || p.current || s.wasEscapeCloseRef.current || v.current || (a.onTriggerEnter(s.value), v.current = !0);
642
- })
643
- ),
644
- onPointerLeave: P(
645
- e.onPointerLeave,
646
- W(() => {
647
- o || (a.onTriggerLeave(), v.current = !1);
648
- })
649
- ),
650
- onClick: P(e.onClick, () => {
651
- a.onItemSelect(s.value), p.current = h;
652
- }),
653
- onKeyDown: P(e.onKeyDown, (E) => {
654
- const C = { horizontal: "ArrowDown", vertical: a.dir === "rtl" ? "ArrowLeft" : "ArrowRight" }[a.orientation];
655
- h && E.key === C && (s.onEntryKeyDown(), E.preventDefault());
656
- })
657
- }
658
- ) }) }),
659
- h && /* @__PURE__ */ $(ie, { children: [
660
- /* @__PURE__ */ f(
661
- ft,
662
- {
663
- "aria-hidden": !0,
664
- tabIndex: 0,
665
- ref: s.focusProxyRef,
666
- onFocus: (E) => {
667
- const g = s.contentRef.current, C = E.relatedTarget, M = C === u.current, I = g?.contains(C);
668
- (M || !I) && s.onFocusProxyEnter(M ? "start" : "end");
669
- }
670
- }
671
- ),
672
- a.viewport && /* @__PURE__ */ f("span", { "aria-owns": c })
673
- ] })
674
- ] });
675
- });
676
- Ie.displayName = X;
677
- var Nt = "NavigationMenuLink", ce = "navigationMenu.linkSelect", Pe = i.forwardRef(
678
- (e, t) => {
679
- const { __scopeNavigationMenu: n, active: o, onSelect: r, ...a } = e;
680
- return /* @__PURE__ */ f(De, { asChild: !0, children: /* @__PURE__ */ f(
681
- x.a,
682
- {
683
- "data-active": o ? "" : void 0,
684
- "aria-current": o ? "page" : void 0,
685
- ...a,
686
- ref: t,
687
- onClick: P(
688
- e.onClick,
689
- (s) => {
690
- const u = s.target, l = new CustomEvent(ce, {
691
- bubbles: !0,
692
- cancelable: !0
693
- });
694
- if (u.addEventListener(ce, (d) => r?.(d), { once: !0 }), G(u, l), !l.defaultPrevented && !s.metaKey) {
695
- const d = new CustomEvent(z, {
696
- bubbles: !0,
697
- cancelable: !0
698
- });
699
- G(u, d);
700
- }
701
- },
702
- { checkForDefaultPrevented: !1 }
703
- )
704
- }
705
- ) });
706
- }
707
- );
708
- Pe.displayName = Nt;
709
- var te = "NavigationMenuIndicator", xe = i.forwardRef((e, t) => {
710
- const { forceMount: n, ...o } = e, r = O(te, e.__scopeNavigationMenu), a = !!r.value;
711
- return r.indicatorTrack ? Fe.createPortal(
712
- /* @__PURE__ */ f(V, { present: n || a, children: /* @__PURE__ */ f(yt, { ...o, ref: t }) }),
713
- r.indicatorTrack
714
- ) : null;
715
- });
716
- xe.displayName = te;
717
- var yt = i.forwardRef((e, t) => {
718
- const { __scopeNavigationMenu: n, ...o } = e, r = O(te, n), a = he(n), [s, u] = i.useState(
719
- null
720
- ), [l, d] = i.useState(null), c = r.orientation === "horizontal", v = !!r.value;
721
- i.useEffect(() => {
722
- const E = a().find((g) => g.value === r.value)?.ref.current;
723
- E && u(E);
724
- }, [a, r.value]);
725
- const p = () => {
726
- s && d({
727
- size: c ? s.offsetWidth : s.offsetHeight,
728
- offset: c ? s.offsetLeft : s.offsetTop
729
- });
730
- };
731
- return Q(s, p), Q(r.indicatorTrack, p), l ? /* @__PURE__ */ f(
732
- x.div,
733
- {
734
- "aria-hidden": !0,
735
- "data-state": v ? "visible" : "hidden",
736
- "data-orientation": r.orientation,
737
- ...o,
738
- ref: t,
739
- style: {
740
- position: "absolute",
741
- ...c ? {
742
- left: 0,
743
- width: l.size + "px",
744
- transform: `translateX(${l.offset}px)`
745
- } : {
746
- top: 0,
747
- height: l.size + "px",
748
- transform: `translateY(${l.offset}px)`
749
- },
750
- ...o.style
751
- }
752
- }
753
- ) : null;
754
- }), K = "NavigationMenuContent", Te = i.forwardRef((e, t) => {
755
- const { forceMount: n, ...o } = e, r = O(K, e.__scopeNavigationMenu), a = Me(K, e.__scopeNavigationMenu), s = D(a.contentRef, t), u = a.value === r.value, l = {
756
- value: a.value,
757
- triggerRef: a.triggerRef,
758
- focusProxyRef: a.focusProxyRef,
759
- wasEscapeCloseRef: a.wasEscapeCloseRef,
760
- onContentFocusOutside: a.onContentFocusOutside,
761
- onRootContentClose: a.onRootContentClose,
762
- ...o
763
- };
764
- return r.viewport ? /* @__PURE__ */ f(Rt, { forceMount: n, ...l, ref: s }) : /* @__PURE__ */ f(V, { present: n || u, children: /* @__PURE__ */ f(
765
- Se,
766
- {
767
- "data-state": re(u),
768
- ...l,
769
- ref: s,
770
- onPointerEnter: P(e.onPointerEnter, r.onContentEnter),
771
- onPointerLeave: P(
772
- e.onPointerLeave,
773
- W(r.onContentLeave)
774
- ),
775
- style: {
776
- // Prevent interaction when animating out
777
- pointerEvents: !u && r.isRootMenu ? "none" : void 0,
778
- ...l.style
779
- }
780
- }
781
- ) });
782
- });
783
- Te.displayName = K;
784
- var Rt = i.forwardRef((e, t) => {
785
- const n = O(K, e.__scopeNavigationMenu), { onViewportContentChange: o, onViewportContentRemove: r } = n;
786
- return k(() => {
787
- o(e.value, {
788
- ref: t,
789
- ...e
790
- });
791
- }, [e, t, o]), k(() => () => r(e.value), [e.value, r]), null;
792
- }), z = "navigationMenu.rootContentDismiss", Se = i.forwardRef((e, t) => {
793
- const {
794
- __scopeNavigationMenu: n,
795
- value: o,
796
- triggerRef: r,
797
- focusProxyRef: a,
798
- wasEscapeCloseRef: s,
799
- onRootContentClose: u,
800
- onContentFocusOutside: l,
801
- ...d
802
- } = e, c = O(K, n), v = i.useRef(null), p = D(v, t), h = Ae(c.baseId, o), E = Le(c.baseId, o), g = he(n), C = i.useRef(null), { onItemDismiss: M } = c;
803
- i.useEffect(() => {
804
- const m = v.current;
805
- if (c.isRootMenu && m) {
806
- const w = () => {
807
- M(), u(), m.contains(document.activeElement) && r.current?.focus();
808
- };
809
- return m.addEventListener(z, w), () => m.removeEventListener(z, w);
810
- }
811
- }, [c.isRootMenu, e.value, r, M, u]);
812
- const I = i.useMemo(() => {
813
- const w = g().map((S) => S.value);
814
- c.dir === "rtl" && w.reverse();
815
- const N = w.indexOf(c.value), y = w.indexOf(c.previousValue), R = o === c.value, T = y === w.indexOf(o);
816
- if (!R && !T) return C.current;
817
- const b = (() => {
818
- if (N !== y) {
819
- if (R && y !== -1) return N > y ? "from-end" : "from-start";
820
- if (T && N !== -1) return N > y ? "to-start" : "to-end";
821
- }
822
- return null;
823
- })();
824
- return C.current = b, b;
825
- }, [c.previousValue, c.value, c.dir, g, o]);
826
- return /* @__PURE__ */ f(_e, { asChild: !0, children: /* @__PURE__ */ f(
827
- pe,
828
- {
829
- id: E,
830
- "aria-labelledby": h,
831
- "data-motion": I,
832
- "data-orientation": c.orientation,
833
- ...d,
834
- ref: p,
835
- disableOutsidePointerEvents: !1,
836
- onDismiss: () => {
837
- const m = new Event(z, {
838
- bubbles: !0,
839
- cancelable: !0
840
- });
841
- v.current?.dispatchEvent(m);
842
- },
843
- onFocusOutside: P(e.onFocusOutside, (m) => {
844
- l();
845
- const w = m.target;
846
- c.rootNavigationMenu?.contains(w) && m.preventDefault();
847
- }),
848
- onPointerDownOutside: P(e.onPointerDownOutside, (m) => {
849
- const w = m.target, N = g().some((R) => R.ref.current?.contains(w)), y = c.isRootMenu && c.viewport?.contains(w);
850
- (N || y || !c.isRootMenu) && m.preventDefault();
851
- }),
852
- onKeyDown: P(e.onKeyDown, (m) => {
853
- const w = m.altKey || m.ctrlKey || m.metaKey;
854
- if (m.key === "Tab" && !w) {
855
- const y = J(m.currentTarget), R = document.activeElement, T = y.findIndex((B) => B === R), S = m.shiftKey ? y.slice(0, T).reverse() : y.slice(T + 1, y.length);
856
- oe(S) ? m.preventDefault() : a.current?.focus();
857
- }
858
- }),
859
- onEscapeKeyDown: P(e.onEscapeKeyDown, (m) => {
860
- s.current = !0;
861
- })
862
- }
863
- ) });
864
- }), ne = "NavigationMenuViewport", Oe = i.forwardRef((e, t) => {
865
- const { forceMount: n, ...o } = e, a = !!O(ne, e.__scopeNavigationMenu).value;
866
- return /* @__PURE__ */ f(V, { present: n || a, children: /* @__PURE__ */ f(Mt, { ...o, ref: t }) });
867
- });
868
- Oe.displayName = ne;
869
- var Mt = i.forwardRef((e, t) => {
870
- const { __scopeNavigationMenu: n, children: o, ...r } = e, a = O(ne, n), s = D(t, a.onViewportChange), u = ht(
871
- K,
872
- e.__scopeNavigationMenu
873
- ), [l, d] = i.useState(null), [c, v] = i.useState(null), p = l ? l?.width + "px" : void 0, h = l ? l?.height + "px" : void 0, E = !!a.value, g = E ? a.value : a.previousValue;
874
- return Q(c, () => {
875
- c && d({ width: c.offsetWidth, height: c.offsetHeight });
876
- }), /* @__PURE__ */ f(
877
- x.div,
878
- {
879
- "data-state": re(E),
880
- "data-orientation": a.orientation,
881
- ...r,
882
- ref: s,
883
- style: {
884
- // Prevent interaction when animating out
885
- pointerEvents: !E && a.isRootMenu ? "none" : void 0,
886
- "--radix-navigation-menu-viewport-width": p,
887
- "--radix-navigation-menu-viewport-height": h,
888
- ...r.style
889
- },
890
- onPointerEnter: P(e.onPointerEnter, a.onContentEnter),
891
- onPointerLeave: P(e.onPointerLeave, W(a.onContentLeave)),
892
- children: Array.from(u.items).map(([M, { ref: I, forceMount: m, ...w }]) => {
893
- const N = g === M;
894
- return /* @__PURE__ */ f(V, { present: m || N, children: /* @__PURE__ */ f(
895
- Se,
896
- {
897
- ...w,
898
- ref: Ke(I, (y) => {
899
- N && y && v(y);
900
- })
901
- }
902
- ) }, M);
903
- })
904
- }
905
- );
906
- }), bt = "FocusGroup", _e = i.forwardRef(
907
- (e, t) => {
908
- const { __scopeNavigationMenu: n, ...o } = e, r = O(bt, n);
909
- return /* @__PURE__ */ f(Y.Provider, { scope: n, children: /* @__PURE__ */ f(Y.Slot, { scope: n, children: /* @__PURE__ */ f(x.div, { dir: r.dir, ...o, ref: t }) }) });
910
- }
911
- ), ue = ["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"], It = "FocusGroupItem", De = i.forwardRef(
912
- (e, t) => {
913
- const { __scopeNavigationMenu: n, ...o } = e, r = mt(n), a = O(It, n);
914
- return /* @__PURE__ */ f(Y.ItemSlot, { scope: n, children: /* @__PURE__ */ f(
915
- x.button,
916
- {
917
- ...o,
918
- ref: t,
919
- onKeyDown: P(e.onKeyDown, (s) => {
920
- if (["Home", "End", ...ue].includes(s.key)) {
921
- let l = r().map((v) => v.ref.current);
922
- if ([a.dir === "rtl" ? "ArrowRight" : "ArrowLeft", "ArrowUp", "End"].includes(s.key) && l.reverse(), ue.includes(s.key)) {
923
- const v = l.indexOf(s.currentTarget);
924
- l = l.slice(v + 1);
925
- }
926
- setTimeout(() => oe(l)), s.preventDefault();
927
- }
928
- })
929
- }
930
- ) });
931
- }
932
- );
933
- function J(e) {
934
- const t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
935
- acceptNode: (o) => {
936
- const r = o.tagName === "INPUT" && o.type === "hidden";
937
- return o.disabled || o.hidden || r ? NodeFilter.FILTER_SKIP : o.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
938
- }
939
- });
940
- for (; n.nextNode(); ) t.push(n.currentNode);
941
- return t;
942
- }
943
- function oe(e) {
944
- const t = document.activeElement;
945
- return e.some((n) => n === t ? !0 : (n.focus(), document.activeElement !== t));
946
- }
947
- function Pt(e) {
948
- return e.forEach((t) => {
949
- t.dataset.tabindex = t.getAttribute("tabindex") || "", t.setAttribute("tabindex", "-1");
950
- }), () => {
951
- e.forEach((t) => {
952
- const n = t.dataset.tabindex;
953
- t.setAttribute("tabindex", n);
954
- });
955
- };
956
- }
957
- function Q(e, t) {
958
- const n = _(t);
959
- k(() => {
960
- let o = 0;
961
- if (e) {
962
- const r = new ResizeObserver(() => {
963
- cancelAnimationFrame(o), o = window.requestAnimationFrame(n);
964
- });
965
- return r.observe(e), () => {
966
- window.cancelAnimationFrame(o), r.unobserve(e);
967
- };
968
- }
969
- }, [e, n]);
970
- }
971
- function re(e) {
972
- return e ? "open" : "closed";
973
- }
974
- function Ae(e, t) {
975
- return `${e}-trigger-${t}`;
976
- }
977
- function Le(e, t) {
978
- return `${e}-content-${t}`;
979
- }
980
- function W(e) {
981
- return (t) => t.pointerType === "mouse" ? e(t) : void 0;
982
- }
983
- var xt = Ee, Tt = ye, St = be, Ot = Ie, _t = Pe, Dt = xe, At = Te, Lt = Oe;
984
- function Ht({
985
- className: e,
986
- children: t,
987
- noViewport: n = !1,
988
- mega: o = !1,
989
- ...r
990
- }) {
991
- return /* @__PURE__ */ $(
992
- xt,
993
- {
994
- "data-slot": "navigation-menu",
995
- "data-mega": o,
996
- "data-viewport": !n || o,
997
- className: A(
998
- "group/navigation-menu flex max-w-max flex-1 items-center justify-center",
999
- { relative: !o },
1000
- e
1001
- ),
1002
- ...r,
1003
- children: [
1004
- t,
1005
- (!n || o) && /* @__PURE__ */ f(Ft, { mega: o })
1006
- ]
1007
- }
1008
- );
1009
- }
1010
- function Gt({ className: e, ...t }) {
1011
- return /* @__PURE__ */ f(
1012
- Tt,
1013
- {
1014
- "data-slot": "navigation-menu-list",
1015
- className: A("group flex flex-1 list-none items-center justify-center gap-1", e),
1016
- ...t
1017
- }
1018
- );
1019
- }
1020
- function jt({ className: e, ...t }) {
1021
- return /* @__PURE__ */ f(St, { "data-slot": "navigation-menu-item", className: A("relative", e), ...t });
1022
- }
1023
- const kt = Ve({
1024
- variant: "ghost",
1025
- className: "data-[state=open]:hover:text-secondary data-[state=open]:focus:text-secondary data-[state=open]:text-secondary"
1026
- });
1027
- function Yt({
1028
- className: e,
1029
- children: t,
1030
- ...n
1031
- }) {
1032
- return /* @__PURE__ */ $(
1033
- Ot,
1034
- {
1035
- "data-slot": "navigation-menu-trigger",
1036
- className: A(kt, "group", e),
1037
- ...n,
1038
- children: [
1039
- t,
1040
- " ",
1041
- /* @__PURE__ */ f(
1042
- $e,
1043
- {
1044
- className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
1045
- "aria-hidden": "true"
1046
- }
1047
- )
1048
- ]
1049
- }
1050
- );
1051
- }
1052
- function qt({ className: e, ...t }) {
1053
- return /* @__PURE__ */ f(
1054
- At,
1055
- {
1056
- "data-slot": "navigation-menu-content",
1057
- className: A(
1058
- "max-md:h-[calc(100vh-var(--spacing-page-nav))] top-0 left-0 min-w-xs w-auto absolute group-data-[mega=true]/navigation-menu:w-full",
1059
- "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52",
1060
- "group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0",
1061
- "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
1062
- e
1063
- ),
1064
- ...t
1065
- }
1066
- );
1067
- }
1068
- function Ft({
1069
- className: e,
1070
- mega: t = !1,
1071
- ...n
1072
- }) {
1073
- return /* @__PURE__ */ f(
1074
- "div",
1075
- {
1076
- className: A("absolute top-full left-0 isolate z-50 flex justify-center bg-popover", {
1077
- "min-w-xs": !t,
1078
- "w-full px-(--spacing-section)": t
1079
- }),
1080
- children: /* @__PURE__ */ f(
1081
- Lt,
1082
- {
1083
- "data-slot": "navigation-menu-viewport",
1084
- className: A(
1085
- "origin-top-center duration-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",
1086
- "bg-popover text-popover-foreground relative overflow-hidden w-full h-[var(--radix-navigation-menu-viewport-height)] overscroll-contain",
1087
- {
1088
- "mt-1.5 rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]": !t,
1089
- "border-b-1 border-complement-1-50": t
1090
- },
1091
- e
1092
- ),
1093
- ...n
1094
- }
1095
- )
1096
- }
1097
- );
1098
- }
1099
- function Xt({ className: e, ...t }) {
1100
- return /* @__PURE__ */ f(
1101
- _t,
1102
- {
1103
- "data-slot": "navigation-menu-link",
1104
- className: A(
1105
- "[&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
1106
- e
1107
- ),
1108
- ...t
1109
- }
1110
- );
1111
- }
1112
- function Jt({
1113
- className: e,
1114
- ...t
1115
- }) {
1116
- return /* @__PURE__ */ f(
1117
- Dt,
1118
- {
1119
- "data-slot": "navigation-menu-indicator",
1120
- className: A(
1121
- "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
1122
- e
1123
- ),
1124
- ...t,
1125
- children: /* @__PURE__ */ f("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
1126
- }
1127
- );
1128
- }
1129
- export {
1130
- Ht as NavigationMenu,
1131
- qt as NavigationMenuContent,
1132
- Jt as NavigationMenuIndicator,
1133
- jt as NavigationMenuItem,
1134
- Xt as NavigationMenuLink,
1135
- Gt as NavigationMenuList,
1136
- Yt as NavigationMenuTrigger,
1137
- Ft as NavigationMenuViewport,
1138
- kt as navigationMenuTriggerStyle
1139
- };