1import { q as re, N as se, E as ie, n as Z, e as k } from "./XMarkIcon-C7ztHuKP.js"; 2import { B as pe, r as ve, A as R, n as W, o, m as D, p as L, I as ce, k as U, l as J, P as B, N as O, q as _, v as j, s as K, L as X, T as V, J as fe, K as de, x as C } from "./index-CDyB1Hog.js"; 3import { a5 as q, p as ee, X as z, a6 as x, F as Q, G as F, g as $, k as te, L as le, a4 as Y } from "./app-yg_pP4S4.js"; 4var be = ((r) => (r[r.Open = 0] = "Open", r[r.Closed = 1] = "Closed", r))(be || {}); 5let oe = /* @__PURE__ */ Symbol("PopoverContext"); 6function H(r) { 7 let f = Y(oe, null); 8 if (f === null) { 9 let d = new Error(`<${r} /> is missing a parent <${me.name} /> component.`); 10 throw Error.captureStackTrace && Error.captureStackTrace(d, H), d; 11 } 12 return f; 13} 14let Pe = /* @__PURE__ */ Symbol("PopoverGroupContext"); 15function ae() { 16 return Y(Pe, null); 17} 18let ne = /* @__PURE__ */ Symbol("PopoverPanelContext"); 19function Se() { 20 return Y(ne, null); 21} 22let me = q({ name: "Popover", inheritAttrs: false, props: { as: { type: [Object, String], default: "div" } }, setup(r, { slots: f, attrs: d, expose: w }) { 23 var m; 24 let b = F(null); 25 w({ el: b, $el: b }); 26 let l = F(1), t = F(null), y = F(null), g = F(null), P = F(null), c = $(() => W(b)), h = $(() => { 27 var e, n; 28 if (!o(t) || !o(P)) return false; 29 for (let A of document.querySelectorAll("body > *")) if (Number(A == null ? void 0 : A.contains(o(t))) ^ Number(A == null ? void 0 : A.contains(o(P)))) return true; 30 let a = X(), p = a.indexOf(o(t)), E = (p + a.length - 1) % a.length, I = (p + 1) % a.length, M = a[E], ue = a[I]; 31 return !((e = o(P)) != null && e.contains(M)) && !((n = o(P)) != null && n.contains(ue)); 32 }), v = { popoverState: l, buttonId: F(null), panelId: F(null), panel: P, button: t, isPortalled: h, beforePanelSentinel: y, afterPanelSentinel: g, togglePopover() { 33 l.value = D(l.value, { 0: 1, 1: 0 }); 34 }, closePopover() { 35 l.value !== 1 && (l.value = 1); 36 }, close(e) { 37 v.closePopover(); 38 let n = e ? e instanceof HTMLElement ? e : e.value instanceof HTMLElement ? o(e) : o(v.button) : o(v.button); 39 n == null ? void 0 : n.focus(); 40 } }; 41 ee(oe, v), pe($(() => D(l.value, { 0: j.Open, 1: j.Closed }))); 42 let T = { buttonId: v.buttonId, panelId: v.panelId, close() { 43 v.closePopover(); 44 } }, S = ae(), N = S == null ? void 0 : S.registerPopover, [G, s] = re(), i = se({ mainTreeNodeRef: S == null ? void 0 : S.mainTreeNodeRef, portals: G, defaultContainers: [t, P] }); 45 function u() { 46 var e, n, a, p; 47 return (p = S == null ? void 0 : S.isFocusWithinPopoverGroup()) != null ? p : ((e = c.value) == null ? void 0 : e.activeElement) && (((n = o(t)) == null ? void 0 : n.contains(c.value.activeElement)) || ((a = o(P)) == null ? void 0 : a.contains(c.value.activeElement))); 48 } 49 return z(() => N == null ? void 0 : N(T)), ie((m = c.value) == null ? void 0 : m.defaultView, "focus", (e) => { 50 var n, a; 51 e.target !== window && e.target instanceof HTMLElement && l.value === 0 && (u() || t && P && (i.contains(e.target) || (n = o(v.beforePanelSentinel)) != null && n.contains(e.target) || (a = o(v.afterPanelSentinel)) != null && a.contains(e.target) || v.closePopover())); 52 }, true), ve(i.resolveContainers, (e, n) => { 53 var a; 54 v.closePopover(), fe(n, de.Loose) || (e.preventDefault(), (a = o(t)) == null || a.focus()); 55 }, $(() => l.value === 0)), () => { 56 let e = { open: l.value === 0, close: v.close }; 57 return x(Q, [x(s, {}, () => R({ theirProps: { ...r, ...d }, ourProps: { ref: b }, slot: e, slots: f, attrs: d, name: "Popover" })), x(i.MainTreeNode)]); 58 }; 59} }), $e = q({ name: "PopoverButton", props: { as: { type: [Object, String], default: "button" }, disabled: { type: [Boolean], default: false }, id: { type: String, default: null } }, inheritAttrs: false, setup(r, { attrs: f, slots: d, expose: w }) { 60 var m; 61 let b = (m = r.id) != null ? m : `headlessui-popover-button-${L()}`, l = H("PopoverButton"), t = $(() => W(l.button)); 62 w({ el: l.button, $el: l.button }), te(() => { 63 l.buttonId.value = b; 64 }), le(() => { 65 l.buttonId.value = null; 66 }); 67 let y = ae(), g = y == null ? void 0 : y.closeOthers, P = Se(), c = $(() =>
67 P === null ? false : P.value === l.panelId.value), h = F(null), v = `headlessui-focus-sentinel-${L()}`; 68 c.value || z(() => { 69 l.button.value = o(h); 70 }); 71 let T = ce($(() => ({ as: r.as, type: f.type })), h); 72 function S(e) { 73 var n, a, p, E, I; 74 if (c.value) { 75 if (l.popoverState.value === 1) return; 76 switch (e.key) { 77 case C.Space: 78 case C.Enter: 79 e.preventDefault(), (a = (n = e.target).click) == null || a.call(n), l.closePopover(), (p = o(l.button)) == null || p.focus(); 80 break; 81 } 82 } else switch (e.key) { 83 case C.Space: 84 case C.Enter: 85 e.preventDefault(), e.stopPropagation(), l.popoverState.value === 1 && (g == null ? void 0 : g(l.buttonId.value)), l.togglePopover(); 86 break; 87 case C.Escape: 88 if (l.popoverState.value !== 0) return g == null ? void 0 : g(l.buttonId.value); 89 if (!o(l.button) || (E = t.value) != null && E.activeElement && !((I = o(l.button)) != null && I.contains(t.value.activeElement))) return; 90 e.preventDefault(), e.stopPropagation(), l.closePopover(); 91 break; 92 } 93 } 94 function N(e) { 95 c.value || e.key === C.Space && e.preventDefault(); 96 } 97 function G(e) { 98 var n, a; 99 r.disabled || (c.value ? (l.closePopover(), (n = o(l.button)) == null || n.focus()) : (e.preventDefault(), e.stopPropagation(), l.popoverState.value === 1 && (g == null ? void 0 : g(l.buttonId.value)), l.togglePopover(), (a = o(l.button)) == null || a.focus())); 100 } 101 function s(e) { 102 e.preventDefault(), e.stopPropagation(); 103 } 104 let i = Z(); 105 function u() { 106 let e = o(l.panel); 107 if (!e) return; 108 function n() { 109 D(i.value, { [k.Forwards]: () => B(e, O.First), [k.Backwards]: () => B(e, O.Last) }) === V.Error && B(X().filter((a) => a.dataset.headlessuiFocusGuard !== "true"), D(i.value, { [k.Forwards]: O.Next, [k.Backwards]: O.Previous }), { relativeTo: o(l.button) }); 110 } 111 n(); 112 } 113 return () => { 114 let e = l.popoverState.value === 0, n = { open: e }, { ...a } = r, p = c.value ? { ref: h, type: T.value, onKeydown: S, onClick: G } : { ref: h, id: b, type: T.value, "aria-expanded": l.popoverState.value === 0, "aria-controls": o(l.panel) ? l.panelId.value : void 0, disabled: r.disabled ? true : void 0, onKeydown: S, onKeyup: N, onClick: G, onMousedown: s }; 115 return x(Q, [R({ ourProps: p, theirProps: { ...f, ...a }, slot: n, attrs: f, slots: d, name: "PopoverButton" }), e && !c.value && l.isPortalled.value && x(U, { id: v, features: J.Focusable, "data-headlessui-focus-guard": true, as: "button", type: "button", onFocus: u })]); 116 }; 117} }), we = q({ name: "PopoverOverlay", props: { as: { type: [Object, String], default: "div" }, static: { type: Boolean, default: false }, unmount: { type: Boolean, default: true } }, setup(r, { attrs: f, slots: d }) { 118 let w = H("PopoverOverlay"), m = `headlessui-popover-overlay-${L()}`, b = _(), l = $(() => b !== null ? (b.value & j.Open) === j.Open : w.popoverState.value === 0); 119 function t() { 120 w.closePopover(); 121 } 122 return () => { 123 let y = { open: w.popoverState.value === 0 }; 124 return R({ ourProps: { id: m, "aria-hidden": true, onClick: t }, theirProps: r, slot: y, attrs: f, slots: d, features: K.RenderStrategy | K.Static, visible: l.value, name: "PopoverOverlay" }); 125 }; 126} }), Ee = q({ name: "PopoverPanel", props: { as: { type: [Object, String], default: "div" }, static: { type: Boolean, default: false }, unmount: { type: Boolean, default: true }, focus: { type: Boolean, default: false }, id: { type: String, default: null } }, inheritAttrs: false, setup(r, { attrs: f, slots: d, expose: w }) { 127 var m; 128 let b = (m = r.id) != null ? m : `headlessui-popover-panel-${L()}`, { focus: l } = r, t = H("PopoverPanel"), y = $(() => W(t.panel)), g = `headlessui-focus-sentinel-before-${L()}`, P = `headlessui-focus-sentinel-after-${L()}`; 129 w({ el: t.panel, $el: t.panel }), te(() => { 130 t.panelId.value = b; 131 }), le(() => { 132 t.panelId.value = null; 133 }), ee(ne, t.panelId), z(() => { 134 var s, i; 135 if (!l || t.popoverState.value !== 0 || !t.panel) return; 136 let u = (s = y.value) == null ? void 0 : s.activeElement; 137 (i = o(t.panel)) != null && i.contains(u) || B(o(t.panel), O.First); 138 }); 139 let c = _(), h = $(() => c !== null ? (c.value & j.Open) === j.Open : t.popoverState.value === 0); 140 function v(s) { 141 var i, u; 142 switch (s.key) { 143 case C.Escape: 144 if (t.popoverState.value !== 0 || !o(t.panel) || y.value && !((i = o(t.panel)) != null && i.contains(y.value.activeElement))) return; 145 s.preventDefault(), s.stopPropagation(), t.closePopover(), (u = o(t.button)) == null || u.focus(); 146 break; 147 } 148 } 149 function T(s) { 150 var i, u, e, n, a; 151 let p = s.relatedTarget; 152 p && o(t.panel) && ((i = o(t.panel)) != null && i.contains(p) || (t.closePopover(), ((e = (u = o(t.beforePanelSentinel)) == null ? void 0 : u.contains) != null && e.call(u, p) || (a = (n = o(t.afterPanelSentinel)) == null ? void 0 : n.contains) != null && a.call(n, p)) && p.focus({ preventScroll: true }))); 153 } 154 let S = Z(); 155 function N() { 156 let s = o(t.panel); 157 if (!s) return; 158 function i() { 159 D(S.value, { [k.Forwards]: () => { 160 var u; 161 B(s, O.First) === V.Error && ((u = o(t.afterPanelSentinel)) == null || u.focus()); 162 }, [k.Backwards]: () => { 163 var u; 164 (u = o(t.button)) == null || u.focus({ preventScroll: true }); 165 } }); 166 } 167 i(); 168 } 169 function G() { 170 let s = o(t.panel); 171 if (!s) return; 172 function i() { 173 D(S.value, { [k.Forwards]: () => { 174 let u = o(t.button), e = o(t.panel); 175 if (!u) return; 176 let n = X(), a = n.indexOf(u), p = n.slice(0, a + 1), E = [...n.slice(a + 1), ...p]; 177 for (let I of E.slice()) if (I.dataset.headlessuiFocusGuard === "true" || e != null && e.contains(I)) { 178 let M = E.indexOf(I); 179 M !== -1 && E.splice(M, 1); 180 } 181 B(E, O.First, { sorted: false }); 182 }, [k.Backwards]: () => { 183 var u; 184 B(s, O.Previous) === V.Error && ((u = o(t.button)) == null || u.focus()); 185 } }); 186 } 187 i(); 188 } 189 return () => { 190 let s = { open: t.popoverState.value === 0, close: t.close }, { focus: i, ...u } = r, e = { ref: t.panel, id: b, onKeydown: v, onFocusout: l && t.popoverState.value === 0 ? T : void 0, tabIndex: -1 }; 191 return R({ ourProps: e, theirProps: { ...f, ...u }, attrs: f, slot: s, slots: { ...d, default: (...n) => { 192 var a; 193 return [x(Q, [h.value && t.isPortalled.value && x(U, { id: g, ref: t.beforePanelSentinel, features: J.Focusable, "data-headlessui-focus-guard": true, as: "button", type: "button", onFocus: N }), (a = d.default) == null ? void 0 : a.call(d, ...n), h.value && t.isPortalled.value && x(U, { id: P, ref: t.afterPanelSentinel, features: J.Focusable, "data-headlessui-focus-guard": true, as: "button", type: "button", onFocus: G })])]; 194 } }, features: K.RenderStrategy | K.Static, visible: h.value, name: "PopoverPanel" }); 195 }; 196} }); 197export { 198 we as $, 199 $e as G, 200 Ee as j, 201 me as y 202};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.