@scalar/use-modal
Advanced tools
Comparing version 0.1.6 to 0.1.7
# @scalar/use-modal | ||
## 0.1.7 | ||
### Patch Changes | ||
- 55246e5: chore: rewrite all package.jsons (including their prod, dev and peer dependency requirements) | ||
## 0.1.6 | ||
@@ -4,0 +10,0 @@ |
@@ -1,46 +0,26 @@ | ||
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{ | ||
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{ | ||
state: { | ||
type: import("vue").PropType<{ | ||
open: boolean; | ||
show: () => void; | ||
hide: () => void; | ||
}>; | ||
required: true; | ||
open: boolean; | ||
show: () => void; | ||
hide: () => void; | ||
}; | ||
title: { | ||
type: import("vue").PropType<string>; | ||
}; | ||
bodyClass: { | ||
type: import("vue").PropType<string>; | ||
}; | ||
maxWidth: { | ||
type: import("vue").PropType<string>; | ||
}; | ||
variant: { | ||
type: import("vue").PropType<"small" | "normal" | "large" | "search" | "history">; | ||
default: string; | ||
}; | ||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{ | ||
title?: string | undefined; | ||
bodyClass?: string | undefined; | ||
maxWidth?: string | undefined; | ||
variant?: "small" | "normal" | "large" | "search" | "history" | undefined; | ||
}>, { | ||
variant: string; | ||
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{ | ||
state: { | ||
type: import("vue").PropType<{ | ||
open: boolean; | ||
show: () => void; | ||
hide: () => void; | ||
}>; | ||
required: true; | ||
open: boolean; | ||
show: () => void; | ||
hide: () => void; | ||
}; | ||
title: { | ||
type: import("vue").PropType<string>; | ||
}; | ||
bodyClass: { | ||
type: import("vue").PropType<string>; | ||
}; | ||
maxWidth: { | ||
type: import("vue").PropType<string>; | ||
}; | ||
variant: { | ||
type: import("vue").PropType<"small" | "normal" | "large" | "search" | "history">; | ||
default: string; | ||
}; | ||
}>>, { | ||
title?: string | undefined; | ||
bodyClass?: string | undefined; | ||
maxWidth?: string | undefined; | ||
variant?: "small" | "normal" | "large" | "search" | "history" | undefined; | ||
}>, { | ||
variant: string; | ||
}>>>, { | ||
variant: "small" | "normal" | "large" | "search" | "history"; | ||
@@ -51,2 +31,19 @@ }, {}>, { | ||
export default _default; | ||
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T; | ||
type __VLS_TypePropsToRuntimeProps<T> = { | ||
[K in keyof T]-?: {} extends Pick<T, K> ? { | ||
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>; | ||
} : { | ||
type: import('vue').PropType<T[K]>; | ||
required: true; | ||
}; | ||
}; | ||
type __VLS_WithDefaults<P, D> = { | ||
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & { | ||
default: D[K]; | ||
}> : P[K]; | ||
}; | ||
type __VLS_Prettify<T> = { | ||
[K in keyof T]: T[K]; | ||
} & {}; | ||
type __VLS_WithTemplateSlots<T, S> = T & { | ||
@@ -53,0 +50,0 @@ new (): { |
@@ -1,841 +0,3 @@ | ||
import { cloneVNode, h as h$2, Fragment, inject, watchEffect, ref, computed, defineComponent, onMounted, onUnmounted, watch, provide, Teleport, reactive, unref, shallowRef, nextTick, openBlock, createBlock, withCtx, createElementVNode, createVNode, normalizeClass, normalizeStyle, createTextVNode, toDisplayString, createCommentVNode, renderSlot } from "vue"; | ||
function u$3(r, n2, ...a2) { | ||
if (r in n2) { | ||
let e2 = n2[r]; | ||
return typeof e2 == "function" ? e2(...a2) : e2; | ||
} | ||
let t2 = new Error(`Tried to handle "${r}" but there is no handler defined. Only defined handlers are: ${Object.keys(n2).map((e2) => `"${e2}"`).join(", ")}.`); | ||
throw Error.captureStackTrace && Error.captureStackTrace(t2, u$3), t2; | ||
} | ||
var N$2 = ((o2) => (o2[o2.None = 0] = "None", o2[o2.RenderStrategy = 1] = "RenderStrategy", o2[o2.Static = 2] = "Static", o2))(N$2 || {}), S$2 = ((e2) => (e2[e2.Unmount = 0] = "Unmount", e2[e2.Hidden = 1] = "Hidden", e2))(S$2 || {}); | ||
function H$1({ visible: r = true, features: t2 = 0, ourProps: e2, theirProps: o2, ...i2 }) { | ||
var a2; | ||
let n2 = j(o2, e2), l2 = Object.assign(i2, { props: n2 }); | ||
if (r || t2 & 2 && n2.static) | ||
return y$2(l2); | ||
if (t2 & 1) { | ||
let d2 = (a2 = n2.unmount) == null || a2 ? 0 : 1; | ||
return u$3(d2, { [0]() { | ||
return null; | ||
}, [1]() { | ||
return y$2({ ...i2, props: { ...n2, hidden: true, style: { display: "none" } } }); | ||
} }); | ||
} | ||
return y$2(l2); | ||
} | ||
function y$2({ props: r, attrs: t2, slots: e2, slot: o2, name: i2 }) { | ||
var m2, h2; | ||
let { as: n2, ...l2 } = T$1(r, ["unmount", "static"]), a2 = (m2 = e2.default) == null ? void 0 : m2.call(e2, o2), d2 = {}; | ||
if (o2) { | ||
let u2 = false, c2 = []; | ||
for (let [p2, f2] of Object.entries(o2)) | ||
typeof f2 == "boolean" && (u2 = true), f2 === true && c2.push(p2); | ||
u2 && (d2["data-headlessui-state"] = c2.join(" ")); | ||
} | ||
if (n2 === "template") { | ||
if (a2 = b$1(a2 != null ? a2 : []), Object.keys(l2).length > 0 || Object.keys(t2).length > 0) { | ||
let [u2, ...c2] = a2 != null ? a2 : []; | ||
if (!v$1(u2) || c2.length > 0) | ||
throw new Error(['Passing props on "template"!', "", `The current component <${i2} /> is rendering a "template".`, "However we need to passthrough the following props:", Object.keys(l2).concat(Object.keys(t2)).map((s2) => s2.trim()).filter((s2, g, R) => R.indexOf(s2) === g).sort((s2, g) => s2.localeCompare(g)).map((s2) => ` - ${s2}`).join(` | ||
`), "", "You can apply a few solutions:", ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".', "Render a single element as the child so that we can forward the props onto that element."].map((s2) => ` - ${s2}`).join(` | ||
`)].join(` | ||
`)); | ||
let p2 = j((h2 = u2.props) != null ? h2 : {}, l2), f2 = cloneVNode(u2, p2); | ||
for (let s2 in p2) | ||
s2.startsWith("on") && (f2.props || (f2.props = {}), f2.props[s2] = p2[s2]); | ||
return f2; | ||
} | ||
return Array.isArray(a2) && a2.length === 1 ? a2[0] : a2; | ||
} | ||
return h$2(n2, Object.assign({}, l2, d2), { default: () => a2 }); | ||
} | ||
function b$1(r) { | ||
return r.flatMap((t2) => t2.type === Fragment ? b$1(t2.children) : [t2]); | ||
} | ||
function j(...r) { | ||
if (r.length === 0) | ||
return {}; | ||
if (r.length === 1) | ||
return r[0]; | ||
let t2 = {}, e2 = {}; | ||
for (let i2 of r) | ||
for (let n2 in i2) | ||
n2.startsWith("on") && typeof i2[n2] == "function" ? (e2[n2] != null || (e2[n2] = []), e2[n2].push(i2[n2])) : t2[n2] = i2[n2]; | ||
if (t2.disabled || t2["aria-disabled"]) | ||
return Object.assign(t2, Object.fromEntries(Object.keys(e2).map((i2) => [i2, void 0]))); | ||
for (let i2 in e2) | ||
Object.assign(t2, { [i2](n2, ...l2) { | ||
let a2 = e2[i2]; | ||
for (let d2 of a2) { | ||
if (n2 instanceof Event && n2.defaultPrevented) | ||
return; | ||
d2(n2, ...l2); | ||
} | ||
} }); | ||
return t2; | ||
} | ||
function T$1(r, t2 = []) { | ||
let e2 = Object.assign({}, r); | ||
for (let o2 of t2) | ||
o2 in e2 && delete e2[o2]; | ||
return e2; | ||
} | ||
function v$1(r) { | ||
return r == null ? false : typeof r.type == "string" || typeof r.type == "object" || typeof r.type == "function"; | ||
} | ||
let e$1 = 0; | ||
function n$3() { | ||
return ++e$1; | ||
} | ||
function t$4() { | ||
return n$3(); | ||
} | ||
var o$2 = ((r) => (r.Space = " ", r.Enter = "Enter", r.Escape = "Escape", r.Backspace = "Backspace", r.Delete = "Delete", r.ArrowLeft = "ArrowLeft", r.ArrowUp = "ArrowUp", r.ArrowRight = "ArrowRight", r.ArrowDown = "ArrowDown", r.Home = "Home", r.End = "End", r.PageUp = "PageUp", r.PageDown = "PageDown", r.Tab = "Tab", r))(o$2 || {}); | ||
function o$1(n2) { | ||
var l2; | ||
return n2 == null || n2.value == null ? null : (l2 = n2.value.$el) != null ? l2 : n2.value; | ||
} | ||
let n$2 = Symbol("Context"); | ||
var l$1 = ((e2) => (e2[e2.Open = 1] = "Open", e2[e2.Closed = 2] = "Closed", e2[e2.Closing = 4] = "Closing", e2[e2.Opening = 8] = "Opening", e2))(l$1 || {}); | ||
function p$3() { | ||
return inject(n$2, null); | ||
} | ||
var i$1 = Object.defineProperty; | ||
var d$2 = (t2, e2, r) => e2 in t2 ? i$1(t2, e2, { enumerable: true, configurable: true, writable: true, value: r }) : t2[e2] = r; | ||
var n$1 = (t2, e2, r) => (d$2(t2, typeof e2 != "symbol" ? e2 + "" : e2, r), r); | ||
class s { | ||
constructor() { | ||
n$1(this, "current", this.detect()); | ||
n$1(this, "currentId", 0); | ||
} | ||
set(e2) { | ||
this.current !== e2 && (this.currentId = 0, this.current = e2); | ||
} | ||
reset() { | ||
this.set(this.detect()); | ||
} | ||
nextId() { | ||
return ++this.currentId; | ||
} | ||
get isServer() { | ||
return this.current === "server"; | ||
} | ||
get isClient() { | ||
return this.current === "client"; | ||
} | ||
detect() { | ||
return typeof window == "undefined" || typeof document == "undefined" ? "server" : "client"; | ||
} | ||
} | ||
let c$2 = new s(); | ||
function m$2(r) { | ||
if (c$2.isServer) | ||
return null; | ||
if (r instanceof Node) | ||
return r.ownerDocument; | ||
if (r != null && r.hasOwnProperty("value")) { | ||
let n2 = o$1(r); | ||
if (n2) | ||
return n2.ownerDocument; | ||
} | ||
return document; | ||
} | ||
let c$1 = ["[contentEditable=true]", "[tabindex]", "a[href]", "area[href]", "button:not([disabled])", "iframe", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].map((e2) => `${e2}:not([tabindex='-1'])`).join(","); | ||
var N$1 = ((n2) => (n2[n2.First = 1] = "First", n2[n2.Previous = 2] = "Previous", n2[n2.Next = 4] = "Next", n2[n2.Last = 8] = "Last", n2[n2.WrapAround = 16] = "WrapAround", n2[n2.NoScroll = 32] = "NoScroll", n2))(N$1 || {}), T = ((o2) => (o2[o2.Error = 0] = "Error", o2[o2.Overflow = 1] = "Overflow", o2[o2.Success = 2] = "Success", o2[o2.Underflow = 3] = "Underflow", o2))(T || {}), F$1 = ((t2) => (t2[t2.Previous = -1] = "Previous", t2[t2.Next = 1] = "Next", t2))(F$1 || {}); | ||
function E$4(e2 = document.body) { | ||
return e2 == null ? [] : Array.from(e2.querySelectorAll(c$1)).sort((r, t2) => Math.sign((r.tabIndex || Number.MAX_SAFE_INTEGER) - (t2.tabIndex || Number.MAX_SAFE_INTEGER))); | ||
} | ||
var h$1 = ((t2) => (t2[t2.Strict = 0] = "Strict", t2[t2.Loose = 1] = "Loose", t2))(h$1 || {}); | ||
function w$2(e2, r = 0) { | ||
var t2; | ||
return e2 === ((t2 = m$2(e2)) == null ? void 0 : t2.body) ? false : u$3(r, { [0]() { | ||
return e2.matches(c$1); | ||
}, [1]() { | ||
let l2 = e2; | ||
for (; l2 !== null; ) { | ||
if (l2.matches(c$1)) | ||
return true; | ||
l2 = l2.parentElement; | ||
} | ||
return false; | ||
} }); | ||
} | ||
var y$1 = ((t2) => (t2[t2.Keyboard = 0] = "Keyboard", t2[t2.Mouse = 1] = "Mouse", t2))(y$1 || {}); | ||
typeof window != "undefined" && typeof document != "undefined" && (document.addEventListener("keydown", (e2) => { | ||
e2.metaKey || e2.altKey || e2.ctrlKey || (document.documentElement.dataset.headlessuiFocusVisible = ""); | ||
}, true), document.addEventListener("click", (e2) => { | ||
e2.detail === 1 ? delete document.documentElement.dataset.headlessuiFocusVisible : e2.detail === 0 && (document.documentElement.dataset.headlessuiFocusVisible = ""); | ||
}, true)); | ||
function S$1(e2) { | ||
e2 == null || e2.focus({ preventScroll: true }); | ||
} | ||
let H = ["textarea", "input"].join(","); | ||
function I(e2) { | ||
var r, t2; | ||
return (t2 = (r = e2 == null ? void 0 : e2.matches) == null ? void 0 : r.call(e2, H)) != null ? t2 : false; | ||
} | ||
function O(e2, r = (t2) => t2) { | ||
return e2.slice().sort((t2, l2) => { | ||
let o2 = r(t2), i2 = r(l2); | ||
if (o2 === null || i2 === null) | ||
return 0; | ||
let n2 = o2.compareDocumentPosition(i2); | ||
return n2 & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : n2 & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0; | ||
}); | ||
} | ||
function P$1(e2, r, { sorted: t2 = true, relativeTo: l2 = null, skipElements: o2 = [] } = {}) { | ||
var m2; | ||
let i2 = (m2 = Array.isArray(e2) ? e2.length > 0 ? e2[0].ownerDocument : document : e2 == null ? void 0 : e2.ownerDocument) != null ? m2 : document, n2 = Array.isArray(e2) ? t2 ? O(e2) : e2 : E$4(e2); | ||
o2.length > 0 && n2.length > 1 && (n2 = n2.filter((s2) => !o2.includes(s2))), l2 = l2 != null ? l2 : i2.activeElement; | ||
let x2 = (() => { | ||
if (r & 5) | ||
return 1; | ||
if (r & 10) | ||
return -1; | ||
throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last"); | ||
})(), p2 = (() => { | ||
if (r & 1) | ||
return 0; | ||
if (r & 2) | ||
return Math.max(0, n2.indexOf(l2)) - 1; | ||
if (r & 4) | ||
return Math.max(0, n2.indexOf(l2)) + 1; | ||
if (r & 8) | ||
return n2.length - 1; | ||
throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last"); | ||
})(), L2 = r & 32 ? { preventScroll: true } : {}, a2 = 0, d2 = n2.length, u2; | ||
do { | ||
if (a2 >= d2 || a2 + d2 <= 0) | ||
return 0; | ||
let s2 = p2 + a2; | ||
if (r & 16) | ||
s2 = (s2 + d2) % d2; | ||
else { | ||
if (s2 < 0) | ||
return 3; | ||
if (s2 >= d2) | ||
return 1; | ||
} | ||
u2 = n2[s2], u2 == null || u2.focus(L2), a2 += x2; | ||
} while (u2 !== i2.activeElement); | ||
return r & 6 && I(u2) && u2.select(), 2; | ||
} | ||
function u$2(e2, t2, n2) { | ||
c$2.isServer || watchEffect((o2) => { | ||
document.addEventListener(e2, t2, n2), o2(() => document.removeEventListener(e2, t2, n2)); | ||
}); | ||
} | ||
function w$1(e2, n2, t2) { | ||
c$2.isServer || watchEffect((o2) => { | ||
window.addEventListener(e2, n2, t2), o2(() => window.removeEventListener(e2, n2, t2)); | ||
}); | ||
} | ||
function y(f2, c2, i2 = computed(() => true)) { | ||
function a2(e2, r) { | ||
if (!i2.value || e2.defaultPrevented) | ||
return; | ||
let t2 = r(e2); | ||
if (t2 === null || !t2.getRootNode().contains(t2)) | ||
return; | ||
let m2 = function o2(n2) { | ||
return typeof n2 == "function" ? o2(n2()) : Array.isArray(n2) || n2 instanceof Set ? n2 : [n2]; | ||
}(f2); | ||
for (let o2 of m2) { | ||
if (o2 === null) | ||
continue; | ||
let n2 = o2 instanceof HTMLElement ? o2 : o$1(o2); | ||
if (n2 != null && n2.contains(t2) || e2.composed && e2.composedPath().includes(n2)) | ||
return; | ||
} | ||
return !w$2(t2, h$1.Loose) && t2.tabIndex !== -1 && e2.preventDefault(), c2(e2, t2); | ||
} | ||
let u2 = ref(null); | ||
u$2("pointerdown", (e2) => { | ||
var r, t2; | ||
i2.value && (u2.value = ((t2 = (r = e2.composedPath) == null ? void 0 : r.call(e2)) == null ? void 0 : t2[0]) || e2.target); | ||
}, true), u$2("mousedown", (e2) => { | ||
var r, t2; | ||
i2.value && (u2.value = ((t2 = (r = e2.composedPath) == null ? void 0 : r.call(e2)) == null ? void 0 : t2[0]) || e2.target); | ||
}, true), u$2("click", (e2) => { | ||
u2.value && (a2(e2, () => u2.value), u2.value = null); | ||
}, true), u$2("touchend", (e2) => a2(e2, () => e2.target instanceof HTMLElement ? e2.target : null), true), w$1("blur", (e2) => a2(e2, () => window.document.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null), true); | ||
} | ||
var a$2 = ((e2) => (e2[e2.None = 1] = "None", e2[e2.Focusable = 2] = "Focusable", e2[e2.Hidden = 4] = "Hidden", e2))(a$2 || {}); | ||
let f$1 = defineComponent({ name: "Hidden", props: { as: { type: [Object, String], default: "div" }, features: { type: Number, default: 1 } }, setup(r, { slots: t2, attrs: d2 }) { | ||
return () => { | ||
let { features: e2, ...o2 } = r, n2 = { "aria-hidden": (e2 & 2) === 2 ? true : void 0, style: { position: "fixed", top: 1, left: 1, width: 1, height: 0, padding: 0, margin: -1, overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0", ...(e2 & 4) === 4 && (e2 & 2) !== 2 && { display: "none" } } }; | ||
return H$1({ ourProps: n2, theirProps: o2, slot: {}, attrs: d2, slots: t2, name: "Hidden" }); | ||
}; | ||
} }); | ||
function t$3() { | ||
return /iPhone/gi.test(window.navigator.platform) || /Mac/gi.test(window.navigator.platform) && window.navigator.maxTouchPoints > 0; | ||
} | ||
function t$2(e2) { | ||
typeof queueMicrotask == "function" ? queueMicrotask(e2) : Promise.resolve().then(e2).catch((o2) => setTimeout(() => { | ||
throw o2; | ||
})); | ||
} | ||
function o() { | ||
let a2 = [], s2 = { addEventListener(e2, t2, r, i2) { | ||
return e2.addEventListener(t2, r, i2), s2.add(() => e2.removeEventListener(t2, r, i2)); | ||
}, requestAnimationFrame(...e2) { | ||
let t2 = requestAnimationFrame(...e2); | ||
s2.add(() => cancelAnimationFrame(t2)); | ||
}, nextFrame(...e2) { | ||
s2.requestAnimationFrame(() => { | ||
s2.requestAnimationFrame(...e2); | ||
}); | ||
}, setTimeout(...e2) { | ||
let t2 = setTimeout(...e2); | ||
s2.add(() => clearTimeout(t2)); | ||
}, microTask(...e2) { | ||
let t2 = { current: true }; | ||
return t$2(() => { | ||
t2.current && e2[0](); | ||
}), s2.add(() => { | ||
t2.current = false; | ||
}); | ||
}, style(e2, t2, r) { | ||
let i2 = e2.style.getPropertyValue(t2); | ||
return Object.assign(e2.style, { [t2]: r }), this.add(() => { | ||
Object.assign(e2.style, { [t2]: i2 }); | ||
}); | ||
}, group(e2) { | ||
let t2 = o(); | ||
return e2(t2), this.add(() => t2.dispose()); | ||
}, add(e2) { | ||
return a2.push(e2), () => { | ||
let t2 = a2.indexOf(e2); | ||
if (t2 >= 0) | ||
for (let r of a2.splice(t2, 1)) | ||
r(); | ||
}; | ||
}, dispose() { | ||
for (let e2 of a2.splice(0)) | ||
e2(); | ||
} }; | ||
return s2; | ||
} | ||
var d$1 = ((r) => (r[r.Forwards = 0] = "Forwards", r[r.Backwards = 1] = "Backwards", r))(d$1 || {}); | ||
function n() { | ||
let o2 = ref(0); | ||
return w$1("keydown", (e2) => { | ||
e2.key === "Tab" && (o2.value = e2.shiftKey ? 1 : 0); | ||
}), o2; | ||
} | ||
function E$3(n2, e2, o2, r) { | ||
c$2.isServer || watchEffect((t2) => { | ||
n2 = n2 != null ? n2 : window, n2.addEventListener(e2, o2, r), t2(() => n2.removeEventListener(e2, o2, r)); | ||
}); | ||
} | ||
function t$1(n2) { | ||
function e2() { | ||
document.readyState !== "loading" && (n2(), document.removeEventListener("DOMContentLoaded", e2)); | ||
} | ||
typeof window != "undefined" && typeof document != "undefined" && (document.addEventListener("DOMContentLoaded", e2), e2()); | ||
} | ||
function B(e2) { | ||
if (!e2) | ||
return /* @__PURE__ */ new Set(); | ||
if (typeof e2 == "function") | ||
return new Set(e2()); | ||
let t2 = /* @__PURE__ */ new Set(); | ||
for (let l2 of e2.value) { | ||
let o2 = o$1(l2); | ||
o2 instanceof HTMLElement && t2.add(o2); | ||
} | ||
return t2; | ||
} | ||
var A = ((n2) => (n2[n2.None = 1] = "None", n2[n2.InitialFocus = 2] = "InitialFocus", n2[n2.TabLock = 4] = "TabLock", n2[n2.FocusLock = 8] = "FocusLock", n2[n2.RestoreFocus = 16] = "RestoreFocus", n2[n2.All = 30] = "All", n2))(A || {}); | ||
let ce = Object.assign(defineComponent({ name: "FocusTrap", props: { as: { type: [Object, String], default: "div" }, initialFocus: { type: Object, default: null }, features: { type: Number, default: 30 }, containers: { type: [Object, Function], default: ref(/* @__PURE__ */ new Set()) } }, inheritAttrs: false, setup(e2, { attrs: t2, slots: l2, expose: o2 }) { | ||
let r = ref(null); | ||
o2({ el: r, $el: r }); | ||
let i2 = computed(() => m$2(r)), n$12 = ref(false); | ||
onMounted(() => n$12.value = true), onUnmounted(() => n$12.value = false), z({ ownerDocument: i2 }, computed(() => n$12.value && Boolean(e2.features & 16))); | ||
let m2 = J({ ownerDocument: i2, container: r, initialFocus: computed(() => e2.initialFocus) }, computed(() => n$12.value && Boolean(e2.features & 2))); | ||
Q({ ownerDocument: i2, container: r, containers: e2.containers, previousActiveElement: m2 }, computed(() => n$12.value && Boolean(e2.features & 8))); | ||
let c2 = n(); | ||
function u2(a2) { | ||
let d2 = o$1(r); | ||
if (!d2) | ||
return; | ||
((g) => g())(() => { | ||
u$3(c2.value, { [d$1.Forwards]: () => { | ||
P$1(d2, N$1.First, { skipElements: [a2.relatedTarget] }); | ||
}, [d$1.Backwards]: () => { | ||
P$1(d2, N$1.Last, { skipElements: [a2.relatedTarget] }); | ||
} }); | ||
}); | ||
} | ||
let s2 = ref(false); | ||
function H2(a2) { | ||
a2.key === "Tab" && (s2.value = true, requestAnimationFrame(() => { | ||
s2.value = false; | ||
})); | ||
} | ||
function M2(a2) { | ||
if (!n$12.value) | ||
return; | ||
let d2 = B(e2.containers); | ||
o$1(r) instanceof HTMLElement && d2.add(o$1(r)); | ||
let E2 = a2.relatedTarget; | ||
E2 instanceof HTMLElement && E2.dataset.headlessuiFocusGuard !== "true" && (N(d2, E2) || (s2.value ? P$1(o$1(r), u$3(c2.value, { [d$1.Forwards]: () => N$1.Next, [d$1.Backwards]: () => N$1.Previous }) | N$1.WrapAround, { relativeTo: a2.target }) : a2.target instanceof HTMLElement && S$1(a2.target))); | ||
} | ||
return () => { | ||
let a2 = {}, d2 = { ref: r, onKeydown: H2, onFocusout: M2 }, { features: E2, initialFocus: g, containers: X, ...O2 } = e2; | ||
return h$2(Fragment, [Boolean(E2 & 4) && h$2(f$1, { as: "button", type: "button", "data-headlessui-focus-guard": true, onFocus: u2, features: a$2.Focusable }), H$1({ ourProps: d2, theirProps: { ...t2, ...O2 }, slot: a2, attrs: t2, slots: l2, name: "FocusTrap" }), Boolean(E2 & 4) && h$2(f$1, { as: "button", type: "button", "data-headlessui-focus-guard": true, onFocus: u2, features: a$2.Focusable })]); | ||
}; | ||
} }), { features: A }), L = []; | ||
t$1(() => { | ||
function e2(t2) { | ||
t2.target instanceof HTMLElement && t2.target !== document.body && L[0] !== t2.target && (L.unshift(t2.target), L = L.filter((l2) => l2 != null && l2.isConnected), L.splice(10)); | ||
} | ||
window.addEventListener("click", e2, { capture: true }), window.addEventListener("mousedown", e2, { capture: true }), window.addEventListener("focus", e2, { capture: true }), document.body.addEventListener("click", e2, { capture: true }), document.body.addEventListener("mousedown", e2, { capture: true }), document.body.addEventListener("focus", e2, { capture: true }); | ||
}); | ||
function x(e2) { | ||
let t2 = ref(L.slice()); | ||
return watch([e2], ([l2], [o2]) => { | ||
o2 === true && l2 === false ? t$2(() => { | ||
t2.value.splice(0); | ||
}) : o2 === false && l2 === true && (t2.value = L.slice()); | ||
}, { flush: "post" }), () => { | ||
var l2; | ||
return (l2 = t2.value.find((o2) => o2 != null && o2.isConnected)) != null ? l2 : null; | ||
}; | ||
} | ||
function z({ ownerDocument: e2 }, t2) { | ||
let l2 = x(t2); | ||
onMounted(() => { | ||
watchEffect(() => { | ||
var o2, r; | ||
t2.value || ((o2 = e2.value) == null ? void 0 : o2.activeElement) === ((r = e2.value) == null ? void 0 : r.body) && S$1(l2()); | ||
}, { flush: "post" }); | ||
}), onUnmounted(() => { | ||
t2.value && S$1(l2()); | ||
}); | ||
} | ||
function J({ ownerDocument: e2, container: t2, initialFocus: l2 }, o2) { | ||
let r = ref(null), i2 = ref(false); | ||
return onMounted(() => i2.value = true), onUnmounted(() => i2.value = false), onMounted(() => { | ||
watch([t2, l2, o2], (n2, m2) => { | ||
if (n2.every((u2, s2) => (m2 == null ? void 0 : m2[s2]) === u2) || !o2.value) | ||
return; | ||
let c2 = o$1(t2); | ||
c2 && t$2(() => { | ||
var H2, M2; | ||
if (!i2.value) | ||
return; | ||
let u2 = o$1(l2), s2 = (H2 = e2.value) == null ? void 0 : H2.activeElement; | ||
if (u2) { | ||
if (u2 === s2) { | ||
r.value = s2; | ||
return; | ||
} | ||
} else if (c2.contains(s2)) { | ||
r.value = s2; | ||
return; | ||
} | ||
u2 ? S$1(u2) : P$1(c2, N$1.First | N$1.NoScroll) === T.Error && console.warn("There are no focusable elements inside the <FocusTrap />"), r.value = (M2 = e2.value) == null ? void 0 : M2.activeElement; | ||
}); | ||
}, { immediate: true, flush: "post" }); | ||
}), r; | ||
} | ||
function Q({ ownerDocument: e2, container: t2, containers: l2, previousActiveElement: o2 }, r) { | ||
var i2; | ||
E$3((i2 = e2.value) == null ? void 0 : i2.defaultView, "focus", (n2) => { | ||
if (!r.value) | ||
return; | ||
let m2 = B(l2); | ||
o$1(t2) instanceof HTMLElement && m2.add(o$1(t2)); | ||
let c2 = o2.value; | ||
if (!c2) | ||
return; | ||
let u2 = n2.target; | ||
u2 && u2 instanceof HTMLElement ? N(m2, u2) ? (o2.value = u2, S$1(u2)) : (n2.preventDefault(), n2.stopPropagation(), S$1(c2)) : S$1(o2.value); | ||
}, true); | ||
} | ||
function N(e2, t2) { | ||
for (let l2 of e2) | ||
if (l2.contains(t2)) | ||
return true; | ||
return false; | ||
} | ||
let i = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(); | ||
function E$2(d2, f2 = ref(true)) { | ||
watchEffect((o2) => { | ||
var a2; | ||
if (!f2.value) | ||
return; | ||
let e2 = o$1(d2); | ||
if (!e2) | ||
return; | ||
o2(function() { | ||
var u2; | ||
if (!e2) | ||
return; | ||
let r = (u2 = t.get(e2)) != null ? u2 : 1; | ||
if (r === 1 ? t.delete(e2) : t.set(e2, r - 1), r !== 1) | ||
return; | ||
let n2 = i.get(e2); | ||
n2 && (n2["aria-hidden"] === null ? e2.removeAttribute("aria-hidden") : e2.setAttribute("aria-hidden", n2["aria-hidden"]), e2.inert = n2.inert, i.delete(e2)); | ||
}); | ||
let l2 = (a2 = t.get(e2)) != null ? a2 : 0; | ||
t.set(e2, l2 + 1), l2 === 0 && (i.set(e2, { "aria-hidden": e2.getAttribute("aria-hidden"), inert: e2.inert }), e2.setAttribute("aria-hidden", "true"), e2.inert = true); | ||
}); | ||
} | ||
let e = Symbol("ForcePortalRootContext"); | ||
function u$1() { | ||
return inject(e, false); | ||
} | ||
let P = defineComponent({ name: "ForcePortalRoot", props: { as: { type: [Object, String], default: "template" }, force: { type: Boolean, default: false } }, setup(o2, { slots: t2, attrs: r }) { | ||
return provide(e, o2.force), () => { | ||
let { force: f2, ...n2 } = o2; | ||
return H$1({ theirProps: n2, ourProps: {}, slot: {}, slots: t2, attrs: r, name: "ForcePortalRoot" }); | ||
}; | ||
} }); | ||
function E$1(t2) { | ||
let e2 = m$2(t2); | ||
if (!e2) { | ||
if (t2 === null) | ||
return null; | ||
throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${t2}`); | ||
} | ||
let u2 = e2.getElementById("headlessui-portal-root"); | ||
if (u2) | ||
return u2; | ||
let r = e2.createElement("div"); | ||
return r.setAttribute("id", "headlessui-portal-root"), e2.body.appendChild(r); | ||
} | ||
let U = defineComponent({ name: "Portal", props: { as: { type: [Object, String], default: "div" } }, setup(t2, { slots: e2, attrs: u2 }) { | ||
let r = ref(null), i2 = computed(() => m$2(r)), l2 = u$1(), n2 = inject(h, null), o2 = ref(l2 === true || n2 == null ? E$1(r.value) : n2.resolveTarget()); | ||
watchEffect(() => { | ||
l2 || n2 != null && (o2.value = n2.resolveTarget()); | ||
}); | ||
let d2 = inject(f, null); | ||
return onMounted(() => { | ||
let a2 = o$1(r); | ||
a2 && d2 && onUnmounted(d2.register(a2)); | ||
}), onUnmounted(() => { | ||
var v2, P2; | ||
let a2 = (v2 = i2.value) == null ? void 0 : v2.getElementById("headlessui-portal-root"); | ||
a2 && o2.value === a2 && o2.value.children.length <= 0 && ((P2 = o2.value.parentElement) == null || P2.removeChild(o2.value)); | ||
}), () => { | ||
if (o2.value === null) | ||
return null; | ||
let a2 = { ref: r, "data-headlessui-portal": "" }; | ||
return h$2(Teleport, { to: o2.value }, H$1({ ourProps: a2, theirProps: t2, slot: {}, attrs: u2, slots: e2, name: "Portal" })); | ||
}; | ||
} }), f = Symbol("PortalParentContext"); | ||
function V() { | ||
let t2 = inject(f, null), e2 = ref([]); | ||
function u2(l2) { | ||
return e2.value.push(l2), t2 && t2.register(l2), () => r(l2); | ||
} | ||
function r(l2) { | ||
let n2 = e2.value.indexOf(l2); | ||
n2 !== -1 && e2.value.splice(n2, 1), t2 && t2.unregister(l2); | ||
} | ||
let i2 = { register: u2, unregister: r, portals: e2 }; | ||
return [e2, defineComponent({ name: "PortalWrapper", setup(l2, { slots: n2 }) { | ||
return provide(f, i2), () => { | ||
var o2; | ||
return (o2 = n2.default) == null ? void 0 : o2.call(n2); | ||
}; | ||
} })]; | ||
} | ||
let h = Symbol("PortalGroupContext"), _ = defineComponent({ name: "PortalGroup", props: { as: { type: [Object, String], default: "template" }, target: { type: Object, default: null } }, setup(t2, { attrs: e2, slots: u2 }) { | ||
let r = reactive({ resolveTarget() { | ||
return t2.target; | ||
} }); | ||
return provide(h, r), () => { | ||
let { target: i2, ...l2 } = t2; | ||
return H$1({ theirProps: l2, ourProps: {}, slot: {}, attrs: e2, slots: u2, name: "PortalGroup" }); | ||
}; | ||
} }); | ||
let u = Symbol("StackContext"); | ||
var p$2 = ((e2) => (e2[e2.Add = 0] = "Add", e2[e2.Remove = 1] = "Remove", e2))(p$2 || {}); | ||
function v() { | ||
return inject(u, () => { | ||
}); | ||
} | ||
function S({ type: o2, enabled: r, element: e2, onUpdate: i2 }) { | ||
let a2 = v(); | ||
function t2(...n2) { | ||
i2 == null || i2(...n2), a2(...n2); | ||
} | ||
onMounted(() => { | ||
watch(r, (n2, d2) => { | ||
n2 ? t2(0, o2, e2) : d2 === true && t2(1, o2, e2); | ||
}, { immediate: true, flush: "sync" }); | ||
}), onUnmounted(() => { | ||
r.value && t2(1, o2, e2); | ||
}), provide(u, t2); | ||
} | ||
let p$1 = Symbol("DescriptionContext"); | ||
function b() { | ||
let t2 = inject(p$1, null); | ||
if (t2 === null) | ||
throw new Error("Missing parent"); | ||
return t2; | ||
} | ||
function M$1({ slot: t2 = ref({}), name: i2 = "Description", props: o2 = {} } = {}) { | ||
let e2 = ref([]); | ||
function s2(n2) { | ||
return e2.value.push(n2), () => { | ||
let r = e2.value.indexOf(n2); | ||
r !== -1 && e2.value.splice(r, 1); | ||
}; | ||
} | ||
return provide(p$1, { register: s2, slot: t2, name: i2, props: o2 }), computed(() => e2.value.length > 0 ? e2.value.join(" ") : void 0); | ||
} | ||
let E = defineComponent({ name: "Description", props: { as: { type: [Object, String], default: "p" }, id: { type: String, default: () => `headlessui-description-${t$4()}` } }, setup(t2, { attrs: i2, slots: o2 }) { | ||
let e2 = b(); | ||
return onMounted(() => onUnmounted(e2.register(t2.id))), () => { | ||
let { name: s2 = "Description", slot: n2 = ref({}), props: r = {} } = e2, { id: d2, ...l2 } = t2, c2 = { ...Object.entries(r).reduce((f2, [a2, g]) => Object.assign(f2, { [a2]: unref(g) }), {}), id: d2 }; | ||
return H$1({ ourProps: c2, theirProps: l2, slot: n2.value, attrs: i2, slots: o2, name: s2 }); | ||
}; | ||
} }); | ||
function m$1(t2) { | ||
let e2 = shallowRef(t2.getSnapshot()); | ||
return onUnmounted(t2.subscribe(() => { | ||
e2.value = t2.getSnapshot(); | ||
})), e2; | ||
} | ||
function a$1(o2, r) { | ||
let t2 = o2(), n2 = /* @__PURE__ */ new Set(); | ||
return { getSnapshot() { | ||
return t2; | ||
}, subscribe(e2) { | ||
return n2.add(e2), () => n2.delete(e2); | ||
}, dispatch(e2, ...s2) { | ||
let i2 = r[e2].call(t2, ...s2); | ||
i2 && (t2 = i2, n2.forEach((c2) => c2())); | ||
} }; | ||
} | ||
function c() { | ||
let o2; | ||
return { before({ doc: e2 }) { | ||
var l2; | ||
let n2 = e2.documentElement; | ||
o2 = ((l2 = e2.defaultView) != null ? l2 : window).innerWidth - n2.clientWidth; | ||
}, after({ doc: e2, d: n2 }) { | ||
let t2 = e2.documentElement, l2 = t2.clientWidth - t2.offsetWidth, r = o2 - l2; | ||
n2.style(t2, "paddingRight", `${r}px`); | ||
} }; | ||
} | ||
function w() { | ||
if (!t$3()) | ||
return {}; | ||
let r; | ||
return { before() { | ||
r = window.pageYOffset; | ||
}, after({ doc: n2, d: o$12, meta: s2 }) { | ||
function i2(e2) { | ||
return s2.containers.flatMap((t2) => t2()).some((t2) => t2.contains(e2)); | ||
} | ||
if (window.getComputedStyle(n2.documentElement).scrollBehavior !== "auto") { | ||
let e2 = o(); | ||
e2.style(n2.documentElement, "scroll-behavior", "auto"), o$12.add(() => o$12.microTask(() => e2.dispose())); | ||
} | ||
o$12.style(n2.body, "marginTop", `-${r}px`), window.scrollTo(0, 0); | ||
let l2 = null; | ||
o$12.addEventListener(n2, "click", (e2) => { | ||
if (e2.target instanceof HTMLElement) | ||
try { | ||
let t2 = e2.target.closest("a"); | ||
if (!t2) | ||
return; | ||
let { hash: c2 } = new URL(t2.href), a2 = n2.querySelector(c2); | ||
a2 && !i2(a2) && (l2 = a2); | ||
} catch { | ||
} | ||
}, true), o$12.addEventListener(n2, "touchmove", (e2) => { | ||
e2.target instanceof HTMLElement && !i2(e2.target) && e2.preventDefault(); | ||
}, { passive: false }), o$12.add(() => { | ||
window.scrollTo(0, window.pageYOffset + r), l2 && l2.isConnected && (l2.scrollIntoView({ block: "nearest" }), l2 = null); | ||
}); | ||
} }; | ||
} | ||
function l() { | ||
return { before({ doc: e2, d: o2 }) { | ||
o2.style(e2.documentElement, "overflow", "hidden"); | ||
} }; | ||
} | ||
function m(e2) { | ||
let n2 = {}; | ||
for (let t2 of e2) | ||
Object.assign(n2, t2(n2)); | ||
return n2; | ||
} | ||
let a = a$1(() => /* @__PURE__ */ new Map(), { PUSH(e2, n2) { | ||
var o$12; | ||
let t2 = (o$12 = this.get(e2)) != null ? o$12 : { doc: e2, count: 0, d: o(), meta: /* @__PURE__ */ new Set() }; | ||
return t2.count++, t2.meta.add(n2), this.set(e2, t2), this; | ||
}, POP(e2, n2) { | ||
let t2 = this.get(e2); | ||
return t2 && (t2.count--, t2.meta.delete(n2)), this; | ||
}, SCROLL_PREVENT({ doc: e2, d: n2, meta: t2 }) { | ||
let o2 = { doc: e2, d: n2, meta: m(t2) }, c$12 = [w(), c(), l()]; | ||
c$12.forEach(({ before: r }) => r == null ? void 0 : r(o2)), c$12.forEach(({ after: r }) => r == null ? void 0 : r(o2)); | ||
}, SCROLL_ALLOW({ d: e2 }) { | ||
e2.dispose(); | ||
}, TEARDOWN({ doc: e2 }) { | ||
this.delete(e2); | ||
} }); | ||
a.subscribe(() => { | ||
let e2 = a.getSnapshot(), n2 = /* @__PURE__ */ new Map(); | ||
for (let [t2] of e2) | ||
n2.set(t2, t2.documentElement.style.overflow); | ||
for (let t2 of e2.values()) { | ||
let o2 = n2.get(t2.doc) === "hidden", c2 = t2.count !== 0; | ||
(c2 && !o2 || !c2 && o2) && a.dispatch(t2.count > 0 ? "SCROLL_PREVENT" : "SCROLL_ALLOW", t2), t2.count === 0 && a.dispatch("TEARDOWN", t2); | ||
} | ||
}); | ||
function d(t2, a$12, n2) { | ||
let i2 = m$1(a), l2 = computed(() => { | ||
let e2 = t2.value ? i2.value.get(t2.value) : void 0; | ||
return e2 ? e2.count > 0 : false; | ||
}); | ||
return watch([t2, a$12], ([e2, m2], [r], o2) => { | ||
if (!e2 || !m2) | ||
return; | ||
a.dispatch("PUSH", e2, n2); | ||
let f2 = false; | ||
o2(() => { | ||
f2 || (a.dispatch("POP", r != null ? r : e2, n2), f2 = true); | ||
}); | ||
}, { immediate: true }), l2; | ||
} | ||
function p({ defaultContainers: t2 = [], portals: o2, mainTreeNodeRef: s2 } = {}) { | ||
let i2 = ref(null), r = m$2(i2); | ||
function u2() { | ||
var l2; | ||
let n2 = []; | ||
for (let e2 of t2) | ||
e2 !== null && (e2 instanceof HTMLElement ? n2.push(e2) : "value" in e2 && e2.value instanceof HTMLElement && n2.push(e2.value)); | ||
if (o2 != null && o2.value) | ||
for (let e2 of o2.value) | ||
n2.push(e2); | ||
for (let e2 of (l2 = r == null ? void 0 : r.querySelectorAll("html > *, body > *")) != null ? l2 : []) | ||
e2 !== document.body && e2 !== document.head && e2 instanceof HTMLElement && e2.id !== "headlessui-portal-root" && (e2.contains(o$1(i2)) || n2.some((c2) => e2.contains(c2)) || n2.push(e2)); | ||
return n2; | ||
} | ||
return { resolveContainers: u2, contains(n2) { | ||
return u2().some((l2) => l2.contains(n2)); | ||
}, mainTreeNodeRef: i2, MainTreeNode() { | ||
return s2 != null ? null : h$2(f$1, { features: a$2.Hidden, ref: i2 }); | ||
} }; | ||
} | ||
var Oe = ((t2) => (t2[t2.Open = 0] = "Open", t2[t2.Closed = 1] = "Closed", t2))(Oe || {}); | ||
let F = Symbol("DialogContext"); | ||
function C(o2) { | ||
let n2 = inject(F, null); | ||
if (n2 === null) { | ||
let t2 = new Error(`<${o2} /> is missing a parent <Dialog /> component.`); | ||
throw Error.captureStackTrace && Error.captureStackTrace(t2, C), t2; | ||
} | ||
return n2; | ||
} | ||
let M = "DC8F892D-2EBD-447C-A4C8-A03058436FF4", Ue = defineComponent({ name: "Dialog", inheritAttrs: false, props: { as: { type: [Object, String], default: "div" }, static: { type: Boolean, default: false }, unmount: { type: Boolean, default: true }, open: { type: [Boolean, String], default: M }, initialFocus: { type: Object, default: null }, id: { type: String, default: () => `headlessui-dialog-${t$4()}` } }, emits: { close: (o2) => true }, setup(o2, { emit: n2, attrs: t2, slots: u2, expose: i2 }) { | ||
var N2; | ||
let r = ref(false); | ||
onMounted(() => { | ||
r.value = true; | ||
}); | ||
let s2 = ref(0), p$12 = p$3(), m2 = computed(() => o2.open === M && p$12 !== null ? (p$12.value & l$1.Open) === l$1.Open : o2.open), v2 = ref(null), T2 = computed(() => m$2(v2)); | ||
if (i2({ el: v2, $el: v2 }), !(o2.open !== M || p$12 !== null)) | ||
throw new Error("You forgot to provide an `open` prop to the `Dialog`."); | ||
if (typeof m2.value != "boolean") | ||
throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${m2.value === M ? void 0 : o2.open}`); | ||
let c2 = computed(() => r.value && m2.value ? 0 : 1), R = computed(() => c2.value === 0), E2 = computed(() => s2.value > 1), $ = inject(F, null) !== null, [G, V$1] = V(), { resolveContainers: x2, mainTreeNodeRef: j2, MainTreeNode: W } = p({ portals: G, defaultContainers: [computed(() => { | ||
var e2; | ||
return (e2 = y$12.panelRef.value) != null ? e2 : v2.value; | ||
})] }), J2 = computed(() => E2.value ? "parent" : "leaf"), H2 = computed(() => p$12 !== null ? (p$12.value & l$1.Closing) === l$1.Closing : false), Q2 = computed(() => $ || H2.value ? false : R.value), X = computed(() => { | ||
var e2, l2, f2; | ||
return (f2 = Array.from((l2 = (e2 = T2.value) == null ? void 0 : e2.querySelectorAll("body > *")) != null ? l2 : []).find((d2) => d2.id === "headlessui-portal-root" ? false : d2.contains(o$1(j2)) && d2 instanceof HTMLElement)) != null ? f2 : null; | ||
}); | ||
E$2(X, Q2); | ||
let Z = computed(() => E2.value ? true : R.value), ee = computed(() => { | ||
var e2, l2, f2; | ||
return (f2 = Array.from((l2 = (e2 = T2.value) == null ? void 0 : e2.querySelectorAll("[data-headlessui-portal]")) != null ? l2 : []).find((d2) => d2.contains(o$1(j2)) && d2 instanceof HTMLElement)) != null ? f2 : null; | ||
}); | ||
E$2(ee, Z), S({ type: "Dialog", enabled: computed(() => c2.value === 0), element: v2, onUpdate: (e2, l2) => { | ||
if (l2 === "Dialog") | ||
return u$3(e2, { [p$2.Add]: () => s2.value += 1, [p$2.Remove]: () => s2.value -= 1 }); | ||
} }); | ||
let te = M$1({ name: "DialogDescription", slot: computed(() => ({ open: m2.value })) }), k = ref(null), y$12 = { titleId: k, panelRef: ref(null), dialogState: c2, setTitleId(e2) { | ||
k.value !== e2 && (k.value = e2); | ||
}, close() { | ||
n2("close", false); | ||
} }; | ||
provide(F, y$12); | ||
let le = computed(() => !(!R.value || E2.value)); | ||
y(x2, (e2, l2) => { | ||
y$12.close(), nextTick(() => l2 == null ? void 0 : l2.focus()); | ||
}, le); | ||
let oe = computed(() => !(E2.value || c2.value !== 0)); | ||
E$3((N2 = T2.value) == null ? void 0 : N2.defaultView, "keydown", (e2) => { | ||
oe.value && (e2.defaultPrevented || e2.key === o$2.Escape && (e2.preventDefault(), e2.stopPropagation(), y$12.close())); | ||
}); | ||
let re = computed(() => !(H2.value || c2.value !== 0 || $)); | ||
return d(T2, re, (e2) => { | ||
var l2; | ||
return { containers: [...(l2 = e2.containers) != null ? l2 : [], x2] }; | ||
}), watchEffect((e2) => { | ||
if (c2.value !== 0) | ||
return; | ||
let l2 = o$1(v2); | ||
if (!l2) | ||
return; | ||
let f2 = new ResizeObserver((d2) => { | ||
for (let A2 of d2) { | ||
let D = A2.target.getBoundingClientRect(); | ||
D.x === 0 && D.y === 0 && D.width === 0 && D.height === 0 && y$12.close(); | ||
} | ||
}); | ||
f2.observe(l2), e2(() => f2.disconnect()); | ||
}), () => { | ||
let { id: e2, open: l2, initialFocus: f2, ...d2 } = o2, A2 = { ...t2, ref: v2, id: e2, role: "dialog", "aria-modal": c2.value === 0 ? true : void 0, "aria-labelledby": k.value, "aria-describedby": te.value }, D = { open: c2.value === 0 }; | ||
return h$2(P, { force: true }, () => [h$2(U, () => h$2(_, { target: v2.value }, () => h$2(P, { force: false }, () => h$2(ce, { initialFocus: f2, containers: x2, features: R.value ? u$3(J2.value, { parent: ce.features.RestoreFocus, leaf: ce.features.All & ~ce.features.FocusLock }) : ce.features.None }, () => h$2(V$1, {}, () => H$1({ ourProps: A2, theirProps: { ...d2, ...t2 }, slot: D, attrs: t2, slots: u2, visible: c2.value === 0, features: N$2.RenderStrategy | N$2.Static, name: "Dialog" })))))), h$2(W)]); | ||
}; | ||
} }); | ||
defineComponent({ name: "DialogOverlay", props: { as: { type: [Object, String], default: "div" }, id: { type: String, default: () => `headlessui-dialog-overlay-${t$4()}` } }, setup(o2, { attrs: n2, slots: t2 }) { | ||
let u2 = C("DialogOverlay"); | ||
function i2(r) { | ||
r.target === r.currentTarget && (r.preventDefault(), r.stopPropagation(), u2.close()); | ||
} | ||
return () => { | ||
let { id: r, ...s2 } = o2; | ||
return H$1({ ourProps: { id: r, "aria-hidden": true, onClick: i2 }, theirProps: s2, slot: { open: u2.dialogState.value === 0 }, attrs: n2, slots: t2, name: "DialogOverlay" }); | ||
}; | ||
} }); | ||
defineComponent({ name: "DialogBackdrop", props: { as: { type: [Object, String], default: "div" }, id: { type: String, default: () => `headlessui-dialog-backdrop-${t$4()}` } }, inheritAttrs: false, setup(o2, { attrs: n2, slots: t2, expose: u2 }) { | ||
let i2 = C("DialogBackdrop"), r = ref(null); | ||
return u2({ el: r, $el: r }), onMounted(() => { | ||
if (i2.panelRef.value === null) | ||
throw new Error("A <DialogBackdrop /> component is being used, but a <DialogPanel /> component is missing."); | ||
}), () => { | ||
let { id: s2, ...p2 } = o2, m2 = { id: s2, ref: r, "aria-hidden": true }; | ||
return h$2(P, { force: true }, () => h$2(U, () => H$1({ ourProps: m2, theirProps: { ...n2, ...p2 }, slot: { open: i2.dialogState.value === 0 }, attrs: n2, slots: t2, name: "DialogBackdrop" }))); | ||
}; | ||
} }); | ||
let Ge = defineComponent({ name: "DialogPanel", props: { as: { type: [Object, String], default: "div" }, id: { type: String, default: () => `headlessui-dialog-panel-${t$4()}` } }, setup(o2, { attrs: n2, slots: t2, expose: u2 }) { | ||
let i2 = C("DialogPanel"); | ||
u2({ el: i2.panelRef, $el: i2.panelRef }); | ||
function r(s2) { | ||
s2.stopPropagation(); | ||
} | ||
return () => { | ||
let { id: s2, ...p2 } = o2, m2 = { id: s2, ref: i2.panelRef, onClick: r }; | ||
return H$1({ ourProps: m2, theirProps: p2, slot: { open: i2.dialogState.value === 0 }, attrs: n2, slots: t2, name: "DialogPanel" }); | ||
}; | ||
} }), Ve = defineComponent({ name: "DialogTitle", props: { as: { type: [Object, String], default: "h2" }, id: { type: String, default: () => `headlessui-dialog-title-${t$4()}` } }, setup(o2, { attrs: n2, slots: t2 }) { | ||
let u2 = C("DialogTitle"); | ||
return onMounted(() => { | ||
u2.setTitleId(o2.id), onUnmounted(() => u2.setTitleId(null)); | ||
}), () => { | ||
let { id: i2, ...r } = o2; | ||
return H$1({ ourProps: { id: i2 }, theirProps: r, slot: { open: u2.dialogState.value === 0 }, attrs: n2, slots: t2, name: "DialogTitle" }); | ||
}; | ||
} }), We = E; | ||
import { defineComponent, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode, normalizeClass, normalizeStyle, createTextVNode, toDisplayString, createCommentVNode, renderSlot, reactive } from "vue"; | ||
import { Dialog, DialogPanel, DialogTitle, DialogDescription } from "@headlessui/vue"; | ||
const _hoisted_1 = { class: "modal-layout" }; | ||
@@ -853,3 +15,3 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ | ||
return (_ctx, _cache) => { | ||
return openBlock(), createBlock(unref(Ue), { | ||
return openBlock(), createBlock(unref(Dialog), { | ||
open: _ctx.state.open, | ||
@@ -860,3 +22,3 @@ onClose: _cache[0] || (_cache[0] = ($event) => _ctx.state.hide()) | ||
createElementVNode("div", _hoisted_1, [ | ||
createVNode(unref(Ge), { | ||
createVNode(unref(DialogPanel), { | ||
class: normalizeClass(["modal", { | ||
@@ -872,3 +34,3 @@ "modal-content-large": _ctx.variant === "large", | ||
default: withCtx(() => [ | ||
_ctx.title ? (openBlock(), createBlock(unref(Ve), { | ||
_ctx.title ? (openBlock(), createBlock(unref(DialogTitle), { | ||
key: 0, | ||
@@ -882,3 +44,3 @@ class: "modal-header" | ||
})) : createCommentVNode("", true), | ||
createVNode(unref(We), { | ||
createVNode(unref(DialogDescription), { | ||
class: normalizeClass(["modal-body custom-scroll", [_ctx.bodyClass]]) | ||
@@ -885,0 +47,0 @@ }, { |
{ | ||
"name": "@scalar/use-modal", | ||
"description": "modals for Vue", | ||
"version": "0.1.6", | ||
"license": "MIT", | ||
"author": "Scalar (https://github.com/scalar)", | ||
"bugs": "https://github.com/scalar/scalar/issues/new", | ||
"dependencies": { | ||
"@headlessui/vue": "1.7.16" | ||
}, | ||
"devDependencies": { | ||
"@vitejs/plugin-vue": "4.3.4", | ||
"@vitest/coverage-v8": "0.34.4", | ||
"tsc-alias": "1.8.8", | ||
"vite": "4.4.9", | ||
"vitest": "0.34.4", | ||
"vue-tsc": "1.8.13" | ||
}, | ||
"homepage": "https://github.com/scalar/scalar", | ||
"bugs": "https://github.com/scalar/scalar/issues/new/choose", | ||
"keywords": [ | ||
"composable", | ||
"modals", | ||
"vue", | ||
"vue3" | ||
], | ||
"version": "0.1.7", | ||
"engines": { | ||
"node": ">=18" | ||
"node": ">=20" | ||
}, | ||
"type": "module", | ||
"main": "dist/index.js", | ||
"exports": { | ||
@@ -28,15 +27,3 @@ "import": "./dist/index.js" | ||
], | ||
"homepage": "https://github.com/scalar/scalar", | ||
"keywords": [ | ||
"composable", | ||
"modals", | ||
"vue", | ||
"vue3" | ||
], | ||
"license": "MIT", | ||
"main": "dist/index.js", | ||
"module": "dist/index.js", | ||
"peerDependencies": { | ||
"vue": "3.3.4" | ||
}, | ||
"repository": { | ||
@@ -47,3 +34,17 @@ "type": "git", | ||
}, | ||
"type": "module", | ||
"dependencies": { | ||
"@headlessui/vue": "^1.7.16" | ||
}, | ||
"devDependencies": { | ||
"@vitejs/plugin-vue": "^4.4.0", | ||
"@vitest/coverage-v8": "^0.34.4", | ||
"tsc-alias": "^1.8.8", | ||
"vite": "^4.4.11", | ||
"vitest": "^0.34.4", | ||
"vue": "^3.3.4", | ||
"vue-tsc": "^1.8.19" | ||
}, | ||
"peerDependencies": { | ||
"vue": "3.3.4" | ||
}, | ||
"scripts": { | ||
@@ -50,0 +51,0 @@ "build": "vite build && pnpm types:build && tsc-alias -p tsconfig.build.json", |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
12450
7
249
1
+ Added@headlessui/vue@1.7.23(transitive)
+ Added@tanstack/virtual-core@3.12.0(transitive)
+ Added@tanstack/vue-virtual@3.12.0(transitive)
- Removed@headlessui/vue@1.7.16(transitive)
Updated@headlessui/vue@^1.7.16