"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; var __accessCheck = (obj, member, msg) => { if (!member.has(obj)) throw TypeError("Cannot " + msg); }; var __privateGet = (obj, member, getter) => { __accessCheck(obj, member, "read from private field"); return getter ? getter.call(obj) : member.get(obj); }; var __privateAdd = (obj, member, value) => { if (member.has(obj)) throw TypeError("Cannot add the same private member more than once"); member instanceof WeakSet ? member.add(obj) : member.set(obj, value); }; var __privateSet = (obj, member, value, setter) => { __accessCheck(obj, member, "write to private field"); setter ? setter.call(obj, value) : member.set(obj, value); return value; }; // src/index.ts var src_exports = {}; __export(src_exports, { Button: () => Button, Checkbox: () => Checkbox, CloseButton: () => CloseButton, Combobox: () => Combobox, ComboboxButton: () => ComboboxButton, ComboboxInput: () => ComboboxInput, ComboboxLabel: () => ComboboxLabel, ComboboxOption: () => ComboboxOption, ComboboxOptions: () => ComboboxOptions, DataInteractive: () => DataInteractive, Description: () => Description, Dialog: () => Dialog, DialogBackdrop: () => DialogBackdrop, DialogDescription: () => DialogDescription, DialogPanel: () => DialogPanel, DialogTitle: () => DialogTitle, Disclosure: () => Disclosure, DisclosureButton: () => DisclosureButton, DisclosurePanel: () => DisclosurePanel, Field: () => Field, Fieldset: () => Fieldset, FocusTrap: () => FocusTrap, FocusTrapFeatures: () => FocusTrapFeatures, Input: () => Input, Label: () => Label, Legend: () => Legend, Listbox: () => Listbox, ListboxButton: () => ListboxButton, ListboxLabel: () => ListboxLabel, ListboxOption: () => ListboxOption, ListboxOptions: () => ListboxOptions, ListboxSelectedOption: () => ListboxSelectedOption, Menu: () => Menu, MenuButton: () => MenuButton, MenuHeading: () => MenuHeading, MenuItem: () => MenuItem, MenuItems: () => MenuItems, MenuSection: () => MenuSection, MenuSeparator: () => MenuSeparator, Popover: () => Popover, PopoverBackdrop: () => PopoverBackdrop, PopoverButton: () => PopoverButton, PopoverGroup: () => PopoverGroup, PopoverOverlay: () => PopoverOverlay, PopoverPanel: () => PopoverPanel, Portal: () => Portal, Radio: () => Radio, RadioGroup: () => RadioGroup, RadioGroupDescription: () => RadioGroupDescription, RadioGroupLabel: () => RadioGroupLabel, RadioGroupOption: () => RadioGroupOption, Select: () => Select, Switch: () => Switch, SwitchDescription: () => SwitchDescription, SwitchGroup: () => SwitchGroup, SwitchLabel: () => SwitchLabel, Tab: () => Tab, TabGroup: () => TabGroup, TabList: () => TabList, TabPanel: () => TabPanel, TabPanels: () => TabPanels, Textarea: () => Textarea, Transition: () => Transition, TransitionChild: () => TransitionChild, useClose: () => useClose }); module.exports = __toCommonJS(src_exports); // ../../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs var import_react = __toESM(require("react"), 1); var $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== "undefined" ? (0, import_react.default).useLayoutEffect : () => { }; // ../../node_modules/@react-aria/utils/dist/useEffectEvent.mjs var import_react2 = require("react"); function $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) { const ref = (0, import_react2.useRef)(null); (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(() => { ref.current = fn; }, [ fn ]); return (0, import_react2.useCallback)((...args) => { const f = ref.current; return f === null || f === void 0 ? void 0 : f(...args); }, []); } // ../../node_modules/@react-aria/utils/dist/domHelpers.mjs var $431fbd86ca7dc216$export$b204af158042fbac = (el) => { var _el_ownerDocument; return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document; }; var $431fbd86ca7dc216$export$f21a1ffae260145a = (el) => { if (el && "window" in el && el.window === el) return el; const doc = $431fbd86ca7dc216$export$b204af158042fbac(el); return doc.defaultView || window; }; function $431fbd86ca7dc216$var$isNode(value) { return value !== null && typeof value === "object" && "nodeType" in value && typeof value.nodeType === "number"; } function $431fbd86ca7dc216$export$af51f0f06c0f328a(node) { return $431fbd86ca7dc216$var$isNode(node) && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && "host" in node; } // ../../node_modules/@react-stately/flags/dist/import.mjs var $f4e2df6bd15f8569$var$_shadowDOM = false; function $f4e2df6bd15f8569$export$98658e8c59125e6a() { return $f4e2df6bd15f8569$var$_shadowDOM; } // ../../node_modules/@react-aria/utils/dist/DOMFunctions.mjs function $d4ee10de306f2510$export$4282f70798064fe0(node, otherNode) { if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return otherNode && node ? node.contains(otherNode) : false; if (!node || !otherNode) return false; let currentNode = otherNode; while (currentNode !== null) { if (currentNode === node) return true; if (currentNode.tagName === "SLOT" && currentNode.assignedSlot) currentNode = currentNode.assignedSlot.parentNode; else if ((0, $431fbd86ca7dc216$export$af51f0f06c0f328a)(currentNode)) currentNode = currentNode.host; else currentNode = currentNode.parentNode; } return false; } var $d4ee10de306f2510$export$cd4e5573fbe2b576 = (doc = document) => { var _activeElement_shadowRoot; if (!(0, $f4e2df6bd15f8569$export$98658e8c59125e6a)()) return doc.activeElement; let activeElement2 = doc.activeElement; while (activeElement2 && "shadowRoot" in activeElement2 && ((_activeElement_shadowRoot = activeElement2.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement)) activeElement2 = activeElement2.shadowRoot.activeElement; return activeElement2; }; function $d4ee10de306f2510$export$e58f029f0fbfdb29(event) { if ((0, $f4e2df6bd15f8569$export$98658e8c59125e6a)() && event.target.shadowRoot) { if (event.composedPath) return event.composedPath()[0]; } return event.target; } // ../../node_modules/@react-aria/utils/dist/platform.mjs function $c87311424ea30a05$var$testUserAgent(re) { var _window_navigator_userAgentData; if (typeof window === "undefined" || window.navigator == null) return false; return ((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand) => re.test(brand.brand))) || re.test(window.navigator.userAgent); } function $c87311424ea30a05$var$testPlatform(re) { var _window_navigator_userAgentData; return typeof window !== "undefined" && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false; } function $c87311424ea30a05$var$cached(fn) { if (false) return fn; let res = null; return () => { if (res == null) res = fn(); return res; }; } var $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testPlatform(/^Mac/i); }); var $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testPlatform(/^iPhone/i); }); var $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support. $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1; }); var $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224(); }); var $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1(); }); var $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e(); }); var $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testUserAgent(/Chrome/i); }); var $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testUserAgent(/Android/i); }); var $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() { return $c87311424ea30a05$var$testUserAgent(/Firefox/i); }); // ../../node_modules/@react-aria/utils/dist/useGlobalListeners.mjs var import_react3 = require("react"); function $03deb23ff14920c4$export$4eaf04e54aa8eed6() { let globalListeners = (0, import_react3.useRef)(/* @__PURE__ */ new Map()); let addGlobalListener = (0, import_react3.useCallback)((eventTarget, type, listener, options) => { let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args) => { globalListeners.current.delete(listener); listener(...args); } : listener; globalListeners.current.set(listener, { type, eventTarget, fn, options }); eventTarget.addEventListener(type, fn, options); }, []); let removeGlobalListener = (0, import_react3.useCallback)((eventTarget, type, listener, options) => { var _globalListeners_current_get; let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener; eventTarget.removeEventListener(type, fn, options); globalListeners.current.delete(listener); }, []); let removeAllGlobalListeners = (0, import_react3.useCallback)(() => { globalListeners.current.forEach((value, key) => { removeGlobalListener(value.eventTarget, value.type, key, value.options); }); }, [ removeGlobalListener ]); (0, import_react3.useEffect)(() => { return removeAllGlobalListeners; }, [ removeAllGlobalListeners ]); return { addGlobalListener, removeGlobalListener, removeAllGlobalListeners }; } // ../../node_modules/@react-aria/utils/dist/isVirtualEvent.mjs function $6a7db85432448f7f$export$60278871457622de(event) { if (event.mozInputSource === 0 && event.isTrusted) return true; if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === "click" && event.buttons === 1; return event.detail === 0 && !event.pointerType; } // ../../node_modules/@react-aria/interactions/dist/utils.mjs var import_react4 = require("react"); function $8a9cb279dc87e130$export$525bc4921d56d4a(nativeEvent) { let event = nativeEvent; event.nativeEvent = nativeEvent; event.isDefaultPrevented = () => event.defaultPrevented; event.isPropagationStopped = () => event.cancelBubble; event.persist = () => { }; return event; } function $8a9cb279dc87e130$export$c2b7abe5d61ec696(event, target) { Object.defineProperty(event, "target", { value: target }); Object.defineProperty(event, "currentTarget", { value: target }); } function $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) { let stateRef = (0, import_react4.useRef)({ isFocused: false, observer: null }); (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(() => { const state = stateRef.current; return () => { if (state.observer) { state.observer.disconnect(); state.observer = null; } }; }, []); let dispatchBlur = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((e) => { onBlur === null || onBlur === void 0 ? void 0 : onBlur(e); }); return (0, import_react4.useCallback)((e) => { if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) { stateRef.current.isFocused = true; let target = e.target; let onBlurHandler = (e2) => { stateRef.current.isFocused = false; if (target.disabled) { let event = $8a9cb279dc87e130$export$525bc4921d56d4a(e2); dispatchBlur(event); } if (stateRef.current.observer) { stateRef.current.observer.disconnect(); stateRef.current.observer = null; } }; target.addEventListener("focusout", onBlurHandler, { once: true }); stateRef.current.observer = new MutationObserver(() => { if (stateRef.current.isFocused && target.disabled) { var _stateRef_current_observer; (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect(); let relatedTargetEl = target === document.activeElement ? null : document.activeElement; target.dispatchEvent(new FocusEvent("blur", { relatedTarget: relatedTargetEl })); target.dispatchEvent(new FocusEvent("focusout", { bubbles: true, relatedTarget: relatedTargetEl })); } }); stateRef.current.observer.observe(target, { attributes: true, attributeFilter: [ "disabled" ] }); } }, [ dispatchBlur ]); } var $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false; // ../../node_modules/@react-aria/interactions/dist/useFocusVisible.mjs var import_react5 = require("react"); var $507fabe10e71c6fb$var$currentModality = null; var $507fabe10e71c6fb$var$changeHandlers = /* @__PURE__ */ new Set(); var $507fabe10e71c6fb$export$d90243b58daecda7 = /* @__PURE__ */ new Map(); var $507fabe10e71c6fb$var$hasEventBeforeFocus = false; var $507fabe10e71c6fb$var$hasBlurredWindowRecently = false; var $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = { Tab: true, Escape: true }; function $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) { for (let handler of $507fabe10e71c6fb$var$changeHandlers) handler(modality, e); } function $507fabe10e71c6fb$var$isValidKey(e) { return !(e.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta"); } function $507fabe10e71c6fb$var$handleKeyboardEvent(e) { $507fabe10e71c6fb$var$hasEventBeforeFocus = true; if ($507fabe10e71c6fb$var$isValidKey(e)) { $507fabe10e71c6fb$var$currentModality = "keyboard"; $507fabe10e71c6fb$var$triggerChangeHandlers("keyboard", e); } } function $507fabe10e71c6fb$var$handlePointerEvent(e) { $507fabe10e71c6fb$var$currentModality = "pointer"; if (e.type === "mousedown" || e.type === "pointerdown") { $507fabe10e71c6fb$var$hasEventBeforeFocus = true; $507fabe10e71c6fb$var$triggerChangeHandlers("pointer", e); } } function $507fabe10e71c6fb$var$handleClickEvent(e) { if ((0, $6a7db85432448f7f$export$60278871457622de)(e)) { $507fabe10e71c6fb$var$hasEventBeforeFocus = true; $507fabe10e71c6fb$var$currentModality = "virtual"; } } function $507fabe10e71c6fb$var$handleFocusEvent(e) { if (e.target === window || e.target === document || (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) || !e.isTrusted) return; if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) { $507fabe10e71c6fb$var$currentModality = "virtual"; $507fabe10e71c6fb$var$triggerChangeHandlers("virtual", e); } $507fabe10e71c6fb$var$hasEventBeforeFocus = false; $507fabe10e71c6fb$var$hasBlurredWindowRecently = false; } function $507fabe10e71c6fb$var$handleWindowBlur() { if (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) return; $507fabe10e71c6fb$var$hasEventBeforeFocus = false; $507fabe10e71c6fb$var$hasBlurredWindowRecently = true; } function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) { if (typeof window === "undefined" || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return; const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element); const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element); let focus = windowObject.HTMLElement.prototype.focus; windowObject.HTMLElement.prototype.focus = function() { $507fabe10e71c6fb$var$hasEventBeforeFocus = true; focus.apply(this, arguments); }; documentObject.addEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true); documentObject.addEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true); documentObject.addEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true); windowObject.addEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true); windowObject.addEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false); if (typeof PointerEvent !== "undefined") { documentObject.addEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.addEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.addEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true); } else if (false) { documentObject.addEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.addEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.addEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true); } windowObject.addEventListener("beforeunload", () => { $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element); }, { once: true }); $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, { focus }); } var $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener) => { const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element); const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element); if (loadListener) documentObject.removeEventListener("DOMContentLoaded", loadListener); if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return; windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus; documentObject.removeEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true); documentObject.removeEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true); documentObject.removeEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true); windowObject.removeEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true); windowObject.removeEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false); if (typeof PointerEvent !== "undefined") { documentObject.removeEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.removeEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.removeEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true); } else if (false) { documentObject.removeEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.removeEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true); documentObject.removeEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true); } $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject); }; function $507fabe10e71c6fb$export$2f1888112f558a7d(element) { const documentObject = (0, $431fbd86ca7dc216$export$b204af158042fbac)(element); let loadListener; if (documentObject.readyState !== "loading") $507fabe10e71c6fb$var$setupGlobalFocusEvents(element); else { loadListener = () => { $507fabe10e71c6fb$var$setupGlobalFocusEvents(element); }; documentObject.addEventListener("DOMContentLoaded", loadListener); } return () => $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener); } if (typeof document !== "undefined") $507fabe10e71c6fb$export$2f1888112f558a7d(); function $507fabe10e71c6fb$export$b9b3dfddab17db27() { return $507fabe10e71c6fb$var$currentModality !== "pointer"; } var $507fabe10e71c6fb$var$nonTextInputTypes = /* @__PURE__ */ new Set([ "checkbox", "radio", "range", "color", "file", "image", "button", "submit", "reset" ]); function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) { let document1 = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e === null || e === void 0 ? void 0 : e.target); const IHTMLInputElement = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement; const IHTMLTextAreaElement = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement; const IHTMLElement = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement; const IKeyboardEvent = typeof window !== "undefined" ? (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent; isTextInput = isTextInput || document1.activeElement instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable; return !(isTextInput && modality === "keyboard" && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]); } function $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) { $507fabe10e71c6fb$var$setupGlobalFocusEvents(); (0, import_react5.useEffect)(() => { let handler = (modality, e) => { if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return; fn($507fabe10e71c6fb$export$b9b3dfddab17db27()); }; $507fabe10e71c6fb$var$changeHandlers.add(handler); return () => { $507fabe10e71c6fb$var$changeHandlers.delete(handler); }; }, deps); } // ../../node_modules/@react-aria/interactions/dist/useFocus.mjs var import_react6 = require("react"); function $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) { let { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props; const onBlur = (0, import_react6.useCallback)((e) => { if (e.target === e.currentTarget) { if (onBlurProp) onBlurProp(e); if (onFocusChange) onFocusChange(false); return true; } }, [ onBlurProp, onFocusChange ]); const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur); const onFocus = (0, import_react6.useCallback)((e) => { const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target); const activeElement2 = ownerDocument ? (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument) : (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(); if (e.target === e.currentTarget && activeElement2 === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) { if (onFocusProp) onFocusProp(e); if (onFocusChange) onFocusChange(true); onSyntheticFocus(e); } }, [ onFocusChange, onFocusProp, onSyntheticFocus ]); return { focusProps: { onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : void 0, onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : void 0 } }; } // ../../node_modules/@react-aria/interactions/dist/useFocusWithin.mjs var import_react7 = require("react"); function $9ab94262bd0047c7$export$420e68273165f4ec(props) { let { isDisabled, onBlurWithin, onFocusWithin, onFocusWithinChange } = props; let state = (0, import_react7.useRef)({ isFocusWithin: false }); let { addGlobalListener, removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)(); let onBlur = (0, import_react7.useCallback)((e) => { if (!e.currentTarget.contains(e.target)) return; if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) { state.current.isFocusWithin = false; removeAllGlobalListeners(); if (onBlurWithin) onBlurWithin(e); if (onFocusWithinChange) onFocusWithinChange(false); } }, [ onBlurWithin, onFocusWithinChange, state, removeAllGlobalListeners ]); let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur); let onFocus = (0, import_react7.useCallback)((e) => { if (!e.currentTarget.contains(e.target)) return; const ownerDocument = (0, $431fbd86ca7dc216$export$b204af158042fbac)(e.target); const activeElement2 = (0, $d4ee10de306f2510$export$cd4e5573fbe2b576)(ownerDocument); if (!state.current.isFocusWithin && activeElement2 === (0, $d4ee10de306f2510$export$e58f029f0fbfdb29)(e.nativeEvent)) { if (onFocusWithin) onFocusWithin(e); if (onFocusWithinChange) onFocusWithinChange(true); state.current.isFocusWithin = true; onSyntheticFocus(e); let currentTarget = e.currentTarget; addGlobalListener(ownerDocument, "focus", (e2) => { if (state.current.isFocusWithin && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(currentTarget, e2.target)) { let nativeEvent = new ownerDocument.defaultView.FocusEvent("blur", { relatedTarget: e2.target }); (0, $8a9cb279dc87e130$export$c2b7abe5d61ec696)(nativeEvent, currentTarget); let event = (0, $8a9cb279dc87e130$export$525bc4921d56d4a)(nativeEvent); onBlur(event); } }, { capture: true }); } }, [ onFocusWithin, onFocusWithinChange, onSyntheticFocus, addGlobalListener, onBlur ]); if (isDisabled) return { focusWithinProps: { // These cannot be null, that would conflict in mergeProps onFocus: void 0, onBlur: void 0 } }; return { focusWithinProps: { onFocus, onBlur } }; } // ../../node_modules/@react-aria/interactions/dist/useHover.mjs var import_react8 = require("react"); var $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false; var $6179b936705e76d3$var$hoverCount = 0; function $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() { $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true; setTimeout(() => { $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false; }, 50); } function $6179b936705e76d3$var$handleGlobalPointerEvent(e) { if (e.pointerType === "touch") $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents(); } function $6179b936705e76d3$var$setupGlobalTouchEvents() { if (typeof document === "undefined") return; if (typeof PointerEvent !== "undefined") document.addEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent); else if (false) document.addEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents); $6179b936705e76d3$var$hoverCount++; return () => { $6179b936705e76d3$var$hoverCount--; if ($6179b936705e76d3$var$hoverCount > 0) return; if (typeof PointerEvent !== "undefined") document.removeEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent); else if (false) document.removeEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents); }; } function $6179b936705e76d3$export$ae780daf29e6d456(props) { let { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props; let [isHovered, setHovered] = (0, import_react8.useState)(false); let state = (0, import_react8.useRef)({ isHovered: false, ignoreEmulatedMouseEvents: false, pointerType: "", target: null }).current; (0, import_react8.useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []); let { addGlobalListener, removeAllGlobalListeners } = (0, $03deb23ff14920c4$export$4eaf04e54aa8eed6)(); let { hoverProps, triggerHoverEnd } = (0, import_react8.useMemo)(() => { let triggerHoverStart = (event, pointerType) => { state.pointerType = pointerType; if (isDisabled || pointerType === "touch" || state.isHovered || !event.currentTarget.contains(event.target)) return; state.isHovered = true; let target = event.currentTarget; state.target = target; addGlobalListener((0, $431fbd86ca7dc216$export$b204af158042fbac)(event.target), "pointerover", (e) => { if (state.isHovered && state.target && !(0, $d4ee10de306f2510$export$4282f70798064fe0)(state.target, e.target)) triggerHoverEnd2(e, e.pointerType); }, { capture: true }); if (onHoverStart) onHoverStart({ type: "hoverstart", target, pointerType }); if (onHoverChange) onHoverChange(true); setHovered(true); }; let triggerHoverEnd2 = (event, pointerType) => { let target = state.target; state.pointerType = ""; state.target = null; if (pointerType === "touch" || !state.isHovered || !target) return; state.isHovered = false; removeAllGlobalListeners(); if (onHoverEnd) onHoverEnd({ type: "hoverend", target, pointerType }); if (onHoverChange) onHoverChange(false); setHovered(false); }; let hoverProps2 = {}; if (typeof PointerEvent !== "undefined") { hoverProps2.onPointerEnter = (e) => { if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse") return; triggerHoverStart(e, e.pointerType); }; hoverProps2.onPointerLeave = (e) => { if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd2(e, e.pointerType); }; } else if (false) { hoverProps2.onTouchStart = () => { state.ignoreEmulatedMouseEvents = true; }; hoverProps2.onMouseEnter = (e) => { if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, "mouse"); state.ignoreEmulatedMouseEvents = false; }; hoverProps2.onMouseLeave = (e) => { if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd2(e, "mouse"); }; } return { hoverProps: hoverProps2, triggerHoverEnd: triggerHoverEnd2 }; }, [ onHoverStart, onHoverChange, onHoverEnd, isDisabled, state, addGlobalListener, removeAllGlobalListeners ]); (0, import_react8.useEffect)(() => { if (isDisabled) triggerHoverEnd({ currentTarget: state.target }, state.pointerType); }, [ isDisabled ]); return { hoverProps, isHovered }; } // ../../node_modules/@react-aria/focus/dist/useFocusRing.mjs var import_react9 = require("react"); function $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) { let { autoFocus = false, isTextInput, within } = props; let state = (0, import_react9.useRef)({ isFocused: false, isFocusVisible: autoFocus || (0, $507fabe10e71c6fb$export$b9b3dfddab17db27)() }); let [isFocused, setFocused] = (0, import_react9.useState)(false); let [isFocusVisibleState, setFocusVisible] = (0, import_react9.useState)(() => state.current.isFocused && state.current.isFocusVisible); let updateState = (0, import_react9.useCallback)(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []); let onFocusChange = (0, import_react9.useCallback)((isFocused2) => { state.current.isFocused = isFocused2; setFocused(isFocused2); updateState(); }, [ updateState ]); (0, $507fabe10e71c6fb$export$ec71b4b83ac08ec3)((isFocusVisible) => { state.current.isFocusVisible = isFocusVisible; updateState(); }, [], { isTextInput }); let { focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)({ isDisabled: within, onFocusChange }); let { focusWithinProps } = (0, $9ab94262bd0047c7$export$420e68273165f4ec)({ isDisabled: !within, onFocusWithinChange: onFocusChange }); return { isFocused, isFocusVisible: isFocusVisibleState, focusProps: within ? focusWithinProps : focusProps }; } // src/hooks/use-active-press.tsx var import_react14 = require("react"); // src/utils/env.ts var Env = class { constructor() { __publicField(this, "current", this.detect()); __publicField(this, "handoffState", "pending"); __publicField(this, "currentId", 0); } set(env2) { if (this.current === env2) return; this.handoffState = "pending"; this.currentId = 0; this.current = env2; } reset() { this.set(this.detect()); } nextId() { return ++this.currentId; } get isServer() { return this.current === "server"; } get isClient() { return this.current === "client"; } detect() { if (typeof window === "undefined" || typeof document === "undefined") { return "server"; } return "client"; } handoff() { if (this.handoffState === "pending") { this.handoffState = "complete"; } } get isHandoffComplete() { return this.handoffState === "complete"; } }; var env = new Env(); // src/utils/owner.ts function getOwnerDocument(element) { var _a3; if (env.isServer) return null; if (element == null) return document; return (_a3 = element == null ? void 0 : element.ownerDocument) != null ? _a3 : document; } function getRootNode(element) { var _a3, _b2; if (env.isServer) return null; if (element == null) return document; return (_b2 = (_a3 = element == null ? void 0 : element.getRootNode) == null ? void 0 : _a3.call(element)) != null ? _b2 : document; } function getActiveElement(element) { var _a3, _b2; return (_b2 = (_a3 = getRootNode(element)) == null ? void 0 : _a3.activeElement) != null ? _b2 : null; } function isActiveElement(element) { return getActiveElement(element) === element; } // src/hooks/use-disposables.ts var import_react10 = require("react"); // src/utils/micro-task.ts function microTask(cb) { if (typeof queueMicrotask === "function") { queueMicrotask(cb); } else { Promise.resolve().then(cb).catch( (e) => setTimeout(() => { throw e; }) ); } } // src/utils/disposables.ts function disposables() { let _disposables = []; let api = { addEventListener(element, name, listener, options) { element.addEventListener(name, listener, options); return api.add(() => element.removeEventListener(name, listener, options)); }, requestAnimationFrame(...args) { let raf = requestAnimationFrame(...args); return api.add(() => cancelAnimationFrame(raf)); }, nextFrame(...args) { return api.requestAnimationFrame(() => { return api.requestAnimationFrame(...args); }); }, setTimeout(...args) { let timer = setTimeout(...args); return api.add(() => clearTimeout(timer)); }, microTask(...args) { let task = { current: true }; microTask(() => { if (task.current) { args[0](); } }); return api.add(() => { task.current = false; }); }, style(node, property, value) { let previous = node.style.getPropertyValue(property); Object.assign(node.style, { [property]: value }); return this.add(() => { Object.assign(node.style, { [property]: previous }); }); }, group(cb) { let d = disposables(); cb(d); return this.add(() => d.dispose()); }, add(cb) { if (!_disposables.includes(cb)) { _disposables.push(cb); } return () => { let idx = _disposables.indexOf(cb); if (idx >= 0) { for (let dispose of _disposables.splice(idx, 1)) { dispose(); } } }; }, dispose() { for (let dispose of _disposables.splice(0)) { dispose(); } } }; return api; } // src/hooks/use-disposables.ts function useDisposables() { let [d] = (0, import_react10.useState)(disposables); (0, import_react10.useEffect)(() => () => d.dispose(), [d]); return d; } // src/hooks/use-event.ts var import_react13 = __toESM(require("react"), 1); // src/hooks/use-latest-value.ts var import_react12 = require("react"); // src/hooks/use-iso-morphic-effect.ts var import_react11 = require("react"); var useIsoMorphicEffect = (effect, deps) => { if (env.isServer) { (0, import_react11.useEffect)(effect, deps); } else { (0, import_react11.useLayoutEffect)(effect, deps); } }; // src/hooks/use-latest-value.ts function useLatestValue(value) { let cache = (0, import_react12.useRef)(value); useIsoMorphicEffect(() => { cache.current = value; }, [value]); return cache; } // src/hooks/use-event.ts var useEvent = ( // TODO: Add React.useEvent ?? once the useEvent hook is available function useEvent2(cb) { let cache = useLatestValue(cb); return import_react13.default.useCallback((...args) => cache.current(...args), [cache]); } ); // src/hooks/use-active-press.tsx function pointerRectFromPointerEvent(event) { let offsetX = event.width / 2; let offsetY = event.height / 2; return { top: event.clientY - offsetY, right: event.clientX + offsetX, bottom: event.clientY + offsetY, left: event.clientX - offsetX }; } function areRectsOverlapping(a, b) { if (!a || !b) { return false; } if (a.right < b.left || a.left > b.right) { return false; } if (a.bottom < b.top || a.top > b.bottom) { return false; } return true; } function useActivePress({ disabled = false } = {}) { let target = (0, import_react14.useRef)(null); let [pressed, setPressed] = (0, import_react14.useState)(false); let d = useDisposables(); let reset = useEvent(() => { target.current = null; setPressed(false); d.dispose(); }); let handlePointerDown = useEvent((event) => { d.dispose(); if (target.current !== null) return; target.current = event.currentTarget; setPressed(true); { let owner = getOwnerDocument(event.currentTarget); d.addEventListener(owner, "pointerup", reset, false); d.addEventListener( owner, "pointermove", (event2) => { if (target.current) { let pointerRect = pointerRectFromPointerEvent(event2); setPressed(areRectsOverlapping(pointerRect, target.current.getBoundingClientRect())); } }, false ); d.addEventListener(owner, "pointercancel", reset, false); } }); return { pressed, pressProps: disabled ? {} : { onPointerDown: handlePointerDown, onPointerUp: reset, onClick: reset } }; } // src/hooks/use-slot.ts var import_react15 = require("react"); function useSlot(object) { return (0, import_react15.useMemo)(() => object, Object.values(object)); } // src/internal/disabled.tsx var import_react16 = __toESM(require("react"), 1); var DisabledContext = (0, import_react16.createContext)(void 0); function useDisabled() { return (0, import_react16.useContext)(DisabledContext); } function DisabledProvider({ value, children }) { return /* @__PURE__ */ import_react16.default.createElement(DisabledContext.Provider, { value }, children); } // src/utils/render.ts var import_react17 = __toESM(require("react"), 1); // src/utils/class-names.ts function classNames(...classes) { return Array.from( new Set( classes.flatMap((value) => { if (typeof value === "string") { return value.split(" "); } return []; }) ) ).filter(Boolean).join(" "); } // src/utils/match.ts function match(value, lookup, ...args) { if (value in lookup) { let returnValue = lookup[value]; return typeof returnValue === "function" ? returnValue(...args) : returnValue; } let error2 = new Error( `Tried to handle "${value}" but there is no handler defined. Only defined handlers are: ${Object.keys( lookup ).map((key) => `"${key}"`).join(", ")}.` ); if (Error.captureStackTrace) Error.captureStackTrace(error2, match); throw error2; } // src/utils/render.ts function useRender() { let mergeRefs = useMergeRefsFn(); return (0, import_react17.useCallback)( (args) => render({ mergeRefs, ...args }), [mergeRefs] ); } function render({ ourProps, theirProps, slot, defaultTag, features, visible = true, name, mergeRefs }) { mergeRefs = mergeRefs != null ? mergeRefs : defaultMergeRefs; let props = mergePropsAdvanced(theirProps, ourProps); if (visible) return _render(props, slot, defaultTag, name, mergeRefs); let featureFlags = features != null ? features : 0 /* None */; if (featureFlags & 2 /* Static */) { let { static: isStatic = false, ...rest } = props; if (isStatic) return _render(rest, slot, defaultTag, name, mergeRefs); } if (featureFlags & 1 /* RenderStrategy */) { let { unmount = true, ...rest } = props; let strategy = unmount ? 0 /* Unmount */ : 1 /* Hidden */; return match(strategy, { [0 /* Unmount */]() { return null; }, [1 /* Hidden */]() { return _render( { ...rest, ...{ hidden: true, style: { display: "none" } } }, slot, defaultTag, name, mergeRefs ); } }); } return _render(props, slot, defaultTag, name, mergeRefs); } function _render(props, slot = {}, tag, name, mergeRefs) { let { as: Component = tag, children, refName = "ref", ...rest } = omit(props, ["unmount", "static"]); let refRelatedProps = props.ref !== void 0 ? { [refName]: props.ref } : {}; let resolvedChildren = typeof children === "function" ? children(slot) : children; if ("className" in rest && rest.className && typeof rest.className === "function") { rest.className = rest.className(slot); } if (rest["aria-labelledby"] && rest["aria-labelledby"] === rest.id) { rest["aria-labelledby"] = void 0; } let dataAttributes = {}; if (slot) { let exposeState = false; let states = []; for (let [k, v] of Object.entries(slot)) { if (typeof v === "boolean") { exposeState = true; } if (v === true) { states.push(k.replace(/([A-Z])/g, (m) => `-${m.toLowerCase()}`)); } } if (exposeState) { dataAttributes["data-headlessui-state"] = states.join(" "); for (let state of states) { dataAttributes[`data-${state}`] = ""; } } } if (isFragment(Component)) { if (Object.keys(compact(rest)).length > 0 || Object.keys(compact(dataAttributes)).length > 0) { if (!(0, import_react17.isValidElement)(resolvedChildren) || Array.isArray(resolvedChildren) && resolvedChildren.length > 1 || isFragmentInstance(resolvedChildren)) { if (Object.keys(compact(rest)).length > 0) { throw new Error( [ 'Passing props on "Fragment"!', "", `The current component <${name} /> is rendering a "Fragment".`, `However we need to passthrough the following props:`, Object.keys(compact(rest)).concat(Object.keys(compact(dataAttributes))).map((line) => ` - ${line}`).join("\n"), "", "You can apply a few solutions:", [ 'Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".', "Render a single element as the child so that we can forward the props onto that element." ].map((line) => ` - ${line}`).join("\n") ].join("\n") ); } } else { let childProps = resolvedChildren.props; let childPropsClassName = childProps == null ? void 0 : childProps.className; let newClassName = typeof childPropsClassName === "function" ? (...args) => classNames( childPropsClassName(...args), rest.className ) : classNames(childPropsClassName, rest.className); let classNameProps = newClassName ? { className: newClassName } : {}; let mergedProps = mergePropsAdvanced( resolvedChildren.props, // Filter out undefined values so that they don't override the existing values compact(omit(rest, ["ref"])) ); for (let key in dataAttributes) { if (key in mergedProps) { delete dataAttributes[key]; } } return (0, import_react17.cloneElement)( resolvedChildren, Object.assign( {}, mergedProps, dataAttributes, refRelatedProps, { ref: mergeRefs(getElementRef(resolvedChildren), refRelatedProps.ref) }, classNameProps ) ); } } } return (0, import_react17.createElement)( Component, Object.assign( {}, omit(rest, ["ref"]), !isFragment(Component) && refRelatedProps, !isFragment(Component) && dataAttributes ), resolvedChildren ); } function useMergeRefsFn() { let currentRefs = (0, import_react17.useRef)([]); let mergedRef = (0, import_react17.useCallback)((value) => { for (let ref of currentRefs.current) { if (ref == null) continue; if (typeof ref === "function") ref(value); else ref.current = value; } }, []); return (...refs) => { if (refs.every((ref) => ref == null)) { return void 0; } currentRefs.current = refs; return mergedRef; }; } function defaultMergeRefs(...refs) { return refs.every((ref) => ref == null) ? void 0 : (value) => { for (let ref of refs) { if (ref == null) continue; if (typeof ref === "function") ref(value); else ref.current = value; } }; } function mergePropsAdvanced(...listOfProps) { var _a3; if (listOfProps.length === 0) return {}; if (listOfProps.length === 1) return listOfProps[0]; let target = {}; let eventHandlers = {}; for (let props of listOfProps) { for (let prop in props) { if (prop.startsWith("on") && typeof props[prop] === "function") { (_a3 = eventHandlers[prop]) != null ? _a3 : eventHandlers[prop] = []; eventHandlers[prop].push(props[prop]); } else { target[prop] = props[prop]; } } } if (target.disabled || target["aria-disabled"]) { for (let eventName in eventHandlers) { if (/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(eventName)) { eventHandlers[eventName] = [(e) => { var _a4; return (_a4 = e == null ? void 0 : e.preventDefault) == null ? void 0 : _a4.call(e); }]; } } } for (let eventName in eventHandlers) { Object.assign(target, { [eventName](event, ...args) { let handlers = eventHandlers[eventName]; for (let handler of handlers) { if ((event instanceof Event || (event == null ? void 0 : event.nativeEvent) instanceof Event) && event.defaultPrevented) { return; } handler(event, ...args); } } }); } return target; } function mergeProps(...listOfProps) { var _a3; if (listOfProps.length === 0) return {}; if (listOfProps.length === 1) return listOfProps[0]; let target = {}; let eventHandlers = {}; for (let props of listOfProps) { for (let prop in props) { if (prop.startsWith("on") && typeof props[prop] === "function") { (_a3 = eventHandlers[prop]) != null ? _a3 : eventHandlers[prop] = []; eventHandlers[prop].push(props[prop]); } else { target[prop] = props[prop]; } } } for (let eventName in eventHandlers) { Object.assign(target, { [eventName](...args) { let handlers = eventHandlers[eventName]; for (let handler of handlers) { handler == null ? void 0 : handler(...args); } } }); } return target; } function forwardRefWithAs(component) { var _a3; return Object.assign((0, import_react17.forwardRef)(component), { displayName: (_a3 = component.displayName) != null ? _a3 : component.name }); } function compact(object) { let clone = Object.assign({}, object); for (let key in clone) { if (clone[key] === void 0) delete clone[key]; } return clone; } function omit(object, keysToOmit = []) { let clone = Object.assign({}, object); for (let key of keysToOmit) { if (key in clone) delete clone[key]; } return clone; } function getElementRef(element) { return import_react17.default.version.split(".")[0] >= "19" ? element.props.ref : element.ref; } function isFragment(element) { return element === import_react17.Fragment || element === Symbol.for("react.fragment"); } function isFragmentInstance(element) { return isFragment(element.type); } // src/components/button/button.tsx var DEFAULT_BUTTON_TAG = "button"; function ButtonFn(props, ref) { var _a3; let providedDisabled = useDisabled(); let { disabled = providedDisabled || false, autoFocus = false, ...theirProps } = props; let { isFocusVisible: focus, focusProps } = $f7dceffc5ad7768b$export$4e328f61c538687f({ autoFocus }); let { isHovered: hover, hoverProps } = $6179b936705e76d3$export$ae780daf29e6d456({ isDisabled: disabled }); let { pressed: active, pressProps } = useActivePress({ disabled }); let ourProps = mergeProps( { ref, type: (_a3 = theirProps.type) != null ? _a3 : "button", disabled: disabled || void 0, autoFocus }, focusProps, hoverProps, pressProps ); let slot = useSlot({ disabled, hover, focus, active, autofocus: autoFocus }); let render2 = useRender(); return render2({ ourProps, theirProps, slot, defaultTag: DEFAULT_BUTTON_TAG, name: "Button" }); } var Button = forwardRefWithAs(ButtonFn); // src/components/checkbox/checkbox.tsx var import_react27 = __toESM(require("react"), 1); // src/hooks/use-controllable.ts var import_react18 = require("react"); var import_react_dom = require("react-dom"); function useControllable(controlledValue, onChange, defaultValue) { let [internalValue, setInternalValue] = (0, import_react18.useState)(defaultValue); let isControlled = controlledValue !== void 0; let wasControlled = (0, import_react18.useRef)(isControlled); let didWarnOnUncontrolledToControlled = (0, import_react18.useRef)(false); let didWarnOnControlledToUncontrolled = (0, import_react18.useRef)(false); if (isControlled && !wasControlled.current && !didWarnOnUncontrolledToControlled.current) { didWarnOnUncontrolledToControlled.current = true; wasControlled.current = isControlled; console.error( "A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen." ); } else if (!isControlled && wasControlled.current && !didWarnOnControlledToUncontrolled.current) { didWarnOnControlledToUncontrolled.current = true; wasControlled.current = isControlled; console.error( "A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen." ); } return [ isControlled ? controlledValue : internalValue, useEvent((value) => { if (isControlled) { return onChange == null ? void 0 : onChange(value); } else { (0, import_react_dom.flushSync)(() => setInternalValue(value)); return onChange == null ? void 0 : onChange(value); } }) ]; } // src/hooks/use-default-value.ts var import_react19 = require("react"); function useDefaultValue(value) { let [defaultValue] = (0, import_react19.useState)(value); return defaultValue; } // src/hooks/use-id.ts var import_react20 = require("react"); // src/internal/form-fields.tsx var import_react22 = __toESM(require("react"), 1); var import_react_dom2 = require("react-dom"); // src/utils/form.ts var import_react21 = require("react"); function objectToFormEntries(source = {}, parentKey = null, entries = []) { for (let [key, value] of Object.entries(source)) { append(entries, composeKey(parentKey, key), value); } return entries; } function composeKey(parent, key) { return parent ? parent + "[" + key + "]" : key; } function append(entries, key, value) { if (Array.isArray(value)) { for (let [subkey, subvalue] of value.entries()) { append(entries, composeKey(key, subkey.toString()), subvalue); } } else if (value instanceof Date) { entries.push([key, value.toISOString()]); } else if (typeof value === "boolean") { entries.push([key, value ? "1" : "0"]); } else if (typeof value === "string") { entries.push([key, value]); } else if (typeof value === "number") { entries.push([key, `${value}`]); } else if (value === null || value === void 0) { entries.push([key, ""]); } else if (isPlainObject(value) && !(0, import_react21.isValidElement)(value)) { objectToFormEntries(value, key, entries); } } function attemptSubmit(elementInForm) { var _a3, _b2; let form = (_a3 = elementInForm == null ? void 0 : elementInForm.form) != null ? _a3 : elementInForm.closest("form"); if (!form) return; for (let element of form.elements) { if (element === elementInForm) continue; if (element.tagName === "INPUT" && element.type === "submit" || element.tagName === "BUTTON" && element.type === "submit" || element.nodeName === "INPUT" && element.type === "image") { element.click(); return; } } (_b2 = form.requestSubmit) == null ? void 0 : _b2.call(form); } function isPlainObject(value) { if (Object.prototype.toString.call(value) !== "[object Object]") { return false; } let prototype = Object.getPrototypeOf(value); return prototype === null || Object.getPrototypeOf(prototype) === null; } // src/internal/hidden.tsx var DEFAULT_VISUALLY_HIDDEN_TAG = "span"; function VisuallyHidden(props, ref) { var _a3; let { features = 1 /* None */, ...theirProps } = props; let ourProps = { ref, "aria-hidden": (features & 2 /* Focusable */) === 2 /* Focusable */ ? true : (_a3 = theirProps["aria-hidden"]) != null ? _a3 : void 0, hidden: (features & 4 /* Hidden */) === 4 /* Hidden */ ? 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", ...(features & 4 /* Hidden */) === 4 /* Hidden */ && !((features & 2 /* Focusable */) === 2 /* Focusable */) && { display: "none" } } }; let render2 = useRender(); return render2({ ourProps, theirProps, slot: {}, defaultTag: DEFAULT_VISUALLY_HIDDEN_TAG, name: "Hidden" }); } var Hidden = forwardRefWithAs(VisuallyHidden); // src/internal/form-fields.tsx var FormFieldsContext = (0, import_react22.createContext)(null); function FormFieldsProvider(props) { let [target, setTarget] = (0, import_react22.useState)(null); return /* @__PURE__ */ import_react22.default.createElement(FormFieldsContext.Provider, { value: { target } }, props.children, /* @__PURE__ */ import_react22.default.createElement(Hidden, { features: 4 /* Hidden */, ref: setTarget })); } function HoistFormFields({ children }) { let formFieldsContext = (0, import_react22.useContext)(FormFieldsContext); if (!formFieldsContext) return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, children); let { target } = formFieldsContext; return target ? (0, import_react_dom2.createPortal)(/* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, children), target) : null; } function FormFields({ data, form: formId, disabled, onReset, overrides }) { let [form, setForm] = (0, import_react22.useState)(null); let d = useDisposables(); (0, import_react22.useEffect)(() => { if (!onReset) return; if (!form) return; return d.addEventListener(form, "reset", onReset); }, [form, formId, onReset]); return /* @__PURE__ */ import_react22.default.createElement(HoistFormFields, null, /* @__PURE__ */ import_react22.default.createElement(FormResolver, { setForm, formId }), objectToFormEntries(data).map(([name, value]) => { return /* @__PURE__ */ import_react22.default.createElement( Hidden, { features: 4 /* Hidden */, ...compact({ key: name, as: "input", type: "hidden", hidden: true, readOnly: true, form: formId, disabled, name, value, ...overrides }) } ); })); } function FormResolver({ setForm, formId }) { (0, import_react22.useEffect)(() => { if (formId) { let resolvedForm = document.getElementById(formId); if (resolvedForm) setForm(resolvedForm); } }, [setForm, formId]); return formId ? null : /* @__PURE__ */ import_react22.default.createElement( Hidden, { features: 4 /* Hidden */, as: "input", type: "hidden", hidden: true, readOnly: true, ref: (el) => { if (!el) return; let resolvedForm = el.closest("form"); if (resolvedForm) setForm(resolvedForm); } } ); } // src/internal/id.tsx var import_react23 = __toESM(require("react"), 1); var IdContext = (0, import_react23.createContext)(void 0); function useProvidedId() { return (0, import_react23.useContext)(IdContext); } function IdProvider({ id, children }) { return /* @__PURE__ */ import_react23.default.createElement(IdContext.Provider, { value: id }, children); } // src/utils/dom.ts function isNode(element) { if (typeof element !== "object") return false; if (element === null) return false; return "nodeType" in element; } function isElement(element) { return isNode(element) && "tagName" in element; } function isHTMLElement(element) { return isElement(element) && "accessKey" in element; } function isHTMLorSVGElement(element) { return isElement(element) && "tabIndex" in element; } function hasInlineStyle(element) { return isElement(element) && "style" in element; } function isHTMLIframeElement(element) { return isHTMLElement(element) && element.nodeName === "IFRAME"; } function isHTMLInputElement(element) { return isHTMLElement(element) && element.nodeName === "INPUT"; } function isHTMLLabelElement(element) { return isHTMLElement(element) && element.nodeName === "LABEL"; } function isHTMLFieldSetElement(element) { return isHTMLElement(element) && element.nodeName === "FIELDSET"; } function isHTMLLegendElement(element) { return isHTMLElement(element) && element.nodeName === "LEGEND"; } function isInteractiveElement(element) { if (!isElement(element)) return false; return element.matches( 'a[href],audio[controls],button,details,embed,iframe,img[usemap],input:not([type="hidden"]),label,select,textarea,video[controls]' ); } // src/utils/bugs.ts function isDisabledReactIssue7711(element) { let parent = element.parentElement; let legend = null; while (parent && !isHTMLFieldSetElement(parent)) { if (isHTMLLegendElement(parent)) legend = parent; parent = parent.parentElement; } let isParentDisabled = (parent == null ? void 0 : parent.getAttribute("disabled")) === ""; if (isParentDisabled && isFirstLegend(legend)) return false; return isParentDisabled; } function isFirstLegend(element) { if (!element) return false; let previous = element.previousElementSibling; while (previous !== null) { if (isHTMLLegendElement(previous)) return false; previous = previous.previousElementSibling; } return true; } // src/components/description/description.tsx var import_react25 = __toESM(require("react"), 1); // src/hooks/use-sync-refs.ts var import_react24 = require("react"); var Optional = Symbol(); function optionalRef(cb, isOptional = true) { return Object.assign(cb, { [Optional]: isOptional }); } function useSyncRefs(...refs) { let cache = (0, import_react24.useRef)(refs); (0, import_react24.useEffect)(() => { cache.current = refs; }, [refs]); let syncRefs = useEvent((value) => { for (let ref of cache.current) { if (ref == null) continue; if (typeof ref === "function") ref(value); else ref.current = value; } }); return refs.every( (ref) => ref == null || // @ts-expect-error (ref == null ? void 0 : ref[Optional]) ) ? void 0 : syncRefs; } // src/components/description/description.tsx var DescriptionContext = (0, import_react25.createContext)(null); DescriptionContext.displayName = "DescriptionContext"; function useDescriptionContext() { let context = (0, import_react25.useContext)(DescriptionContext); if (context === null) { let err = new Error( "You used a component, but it is not inside a relevant parent." ); if (Error.captureStackTrace) Error.captureStackTrace(err, useDescriptionContext); throw err; } return context; } function useDescribedBy() { var _a3, _b2; return (_b2 = (_a3 = (0, import_react25.useContext)(DescriptionContext)) == null ? void 0 : _a3.value) != null ? _b2 : void 0; } function useDescriptions() { let [descriptionIds, setDescriptionIds] = (0, import_react25.useState)([]); return [ // The actual id's as string or undefined descriptionIds.length > 0 ? descriptionIds.join(" ") : void 0, // The provider component (0, import_react25.useMemo)(() => { return function DescriptionProvider(props) { let register = useEvent((value) => { setDescriptionIds((existing) => [...existing, value]); return () => { return setDescriptionIds((existing) => { let clone = existing.slice(); let idx = clone.indexOf(value); if (idx !== -1) clone.splice(idx, 1); return clone; }); }; }); let contextBag = (0, import_react25.useMemo)( () => ({ register, slot: props.slot, name: props.name, props: props.props, value: props.value }), [register, props.slot, props.name, props.props, props.value] ); return /* @__PURE__ */ import_react25.default.createElement(DescriptionContext.Provider, { value: contextBag }, props.children); }; }, [setDescriptionIds]) ]; } var DEFAULT_DESCRIPTION_TAG = "p"; function DescriptionFn(props, ref) { let internalId = (0, import_react20.useId)(); let providedDisabled = useDisabled(); let { id = `headlessui-description-${internalId}`, ...theirProps } = props; let context = useDescriptionContext(); let descriptionRef = useSyncRefs(ref); useIsoMorphicEffect(() => context.register(id), [id, context.register]); let slot = useSlot({ ...context.slot, disabled: providedDisabled || false }); let ourProps = { ref: descriptionRef, ...context.props, id }; let render2 = useRender(); return render2({ ourProps, theirProps, slot, defaultTag: DEFAULT_DESCRIPTION_TAG, name: context.name || "Description" }); } var DescriptionRoot = forwardRefWithAs(DescriptionFn); var Description = Object.assign(DescriptionRoot, { // }); // src/components/label/label.tsx var import_react26 = __toESM(require("react"), 1); var LabelContext = (0, import_react26.createContext)(null); LabelContext.displayName = "LabelContext"; function useLabelContext() { let context = (0, import_react26.useContext)(LabelContext); if (context === null) { let err = new Error("You used a