diff --git a/node_modules/@headlessui/react/LICENSE b/node_modules/@headlessui/react/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..634e7f20855319d08ba17e062386c3394708142c
--- /dev/null
+++ b/node_modules/@headlessui/react/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Tailwind Labs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/node_modules/@headlessui/react/README.md b/node_modules/@headlessui/react/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b1d7528a90ce1d6056a011d25ed4ec46f4d39fe0
--- /dev/null
+++ b/node_modules/@headlessui/react/README.md
@@ -0,0 +1,30 @@
+
+ @headlessui/react
+
+
+
+ A set of completely unstyled, fully accessible UI components for React, designed to integrate
+ beautifully with Tailwind CSS.
+
+
+
+
+
+
+
+
+## Installation
+
+```sh
+npm install @headlessui/react
+```
+
+## Documentation
+
+For full documentation, visit [headlessui.dev](https://headlessui.dev/react/menu).
+
+## Community
+
+For help, discussion about best practices, or feature ideas:
+
+[Discuss Headless UI on GitHub](https://github.com/tailwindlabs/headlessui/discussions)
diff --git a/node_modules/@headlessui/react/dist/hooks/use-quick-release.js b/node_modules/@headlessui/react/dist/hooks/use-quick-release.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a8bfe41cc134927e8d5ec5a0b97fa173c1a8e26
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-quick-release.js
@@ -0,0 +1 @@
+import{useRef as o}from"react";import*as E from'../utils/dom.js';import{useDocumentEvent as d}from'./use-document-event.js';var H=(e=>(e[e.Ignore=0]="Ignore",e[e.Select=1]="Select",e[e.Close=2]="Close",e))(H||{});const S={Ignore:{kind:0},Select:r=>({kind:1,target:r}),Close:{kind:2}},M=200,f=5;function L(r,{trigger:n,action:T,close:e,select:p}){let l=o(null),i=o(null),u=o(null);d(r&&n!==null,"pointerdown",t=>{E.isNode(t==null?void 0:t.target)&&n!=null&&n.contains(t.target)&&(i.current=t.x,u.current=t.y,l.current=t.timeStamp)}),d(r&&n!==null,"pointerup",t=>{var s,m;let c=l.current;if(c===null||(l.current=null,!E.isHTMLorSVGElement(t.target))||Math.abs(t.x-((s=i.current)!=null?s:t.x))M&&(p(a.target),e());break}case 2:{e();break}}},{capture:!0})}export{S as Action,L as useQuickRelease};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.d.ts b/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..edfc74c2d3e302954d21028c2d9e03cecb5dee76
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.d.ts
@@ -0,0 +1,7 @@
+/**
+ * The `useRefocusableInput` hook exposes a function to re-focus the input element.
+ *
+ * This hook will also keep the cursor position into account to make sure the
+ * cursor is placed at the correct position as-if we didn't loose focus at all.
+ */
+export declare function useRefocusableInput(input: HTMLInputElement | null): () => void;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.js b/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.js
new file mode 100644
index 0000000000000000000000000000000000000000..f1c261452016efe4a6e44e2863f1aab825a3d581
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.js
@@ -0,0 +1 @@
+import{useRef as u}from"react";import*as r from'../utils/dom.js';import{isActiveElement as o}from'../utils/owner.js';import{useEvent as s}from'./use-event.js';import{useEventListener as c}from'./use-event-listener.js';function v(e){let l=u({value:"",selectionStart:null,selectionEnd:null});return c(e,"blur",n=>{let t=n.target;r.isHTMLInputElement(t)&&(l.current={value:t.value,selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})}),s(()=>{if(!o(e)&&r.isHTMLInputElement(e)&&e.isConnected){if(e.focus({preventScroll:!0}),e.value!==l.current.value)e.setSelectionRange(e.value.length,e.value.length);else{let{selectionStart:n,selectionEnd:t}=l.current;n!==null&&t!==null&&e.setSelectionRange(n,t)}l.current={value:"",selectionStart:null,selectionEnd:null}}})}export{v as useRefocusableInput};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.d.ts b/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3c14088b20649b8015f2463fb6efbbf438234e28
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.d.ts
@@ -0,0 +1,4 @@
+export declare function useResolveButtonType(props: {
+ type?: string;
+ as?: TTag;
+}, element: HTMLElement | null): string | undefined;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js b/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5b5408eaf59d63d12f10490db83d72741647ac8
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js
@@ -0,0 +1 @@
+import{useMemo as a}from"react";function e(t,u){return a(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:"button";if(typeof r=="string"&&r.toLowerCase()==="button"||(u==null?void 0:u.tagName)==="BUTTON"&&!u.hasAttribute("type"))return"button"},[t.type,t.as,u])}export{e as useResolveButtonType};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.d.ts b/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..edb9f2135e9abf9997ac950bbbd5c0bfe85362dc
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.d.ts
@@ -0,0 +1,10 @@
+///
+/**
+ * Resolve the actual rendered tag of a DOM node. If the `tag` provided is
+ * already a string we can use that as-is. This will happen when the `as` prop is
+ * not used or when it's used with a string value.
+ *
+ * If an actual component is used, then we need to do some more work because
+ * then we actually need to render the component to know what the tag name is.
+ */
+export declare function useResolvedTag(tag: T): readonly [string | undefined, (ref: any) => void];
diff --git a/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.js b/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b65097ee796c410142c971cd9d8f41f976b2b0f
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.js
@@ -0,0 +1 @@
+import{useCallback as r,useState as a}from"react";import*as i from'../utils/dom.js';function d(t){let e=typeof t=="string"?t:void 0,[s,o]=a(e);return[e!=null?e:s,r(n=>{e||i.isHTMLElement(n)&&o(n.tagName.toLowerCase())},[e])]}export{d as useResolvedTag};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-root-containers.d.ts b/node_modules/@headlessui/react/dist/hooks/use-root-containers.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..683b2cd89ecbb30b450995dda2c0b735ebf54b5e
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-root-containers.d.ts
@@ -0,0 +1,40 @@
+import React, { type MutableRefObject } from 'react';
+export declare function useRootContainers({ defaultContainers, portals, mainTreeNode, }?: {
+ defaultContainers?: (Element | null | MutableRefObject)[];
+ portals?: MutableRefObject;
+ mainTreeNode?: Element | null;
+}): {
+ resolveContainers: () => Element[];
+ contains: (element: Element) => boolean;
+};
+/**
+ * A provider for the main tree node.
+ *
+ * When a component is rendered in a `Portal`, it is no longer part of the main
+ * tree. This provider helps to find the main tree node and pass it along to the
+ * components that need it.
+ *
+ * The main tree node is used for features such as outside click behavior, where
+ * we allow clicks in 3rd party containers, but not in the parent of the "main
+ * tree".
+ *
+ * In case of a `Popover`, we can use the `PopoverButton` as a marker in the
+ * "main tree", the `PopoverPanel` can't be used because it could be rendered in
+ * a `Portal` (e.g. when using the `anchor` props).
+ *
+ * However, we can't use the `PopoverButton` when it's nested inside of another
+ * `Popover`'s `PopoverPanel` component if the parent `PopoverPanel` is
+ * rendered in a `Portal`.
+ *
+ * This is where the `MainTreeProvider` comes in. It will find the "main tree"
+ * node and pass it on. The top-level `PopoverButton` will be used as a marker
+ * in the "main tree" and nested `Popover` will use this button as well.
+ */
+export declare function MainTreeProvider({ children, node, }: {
+ children: React.ReactNode;
+ node?: Element | null;
+}): React.JSX.Element;
+/**
+ * Get the main tree node from context or fallback to the optionally provided node.
+ */
+export declare function useMainTreeNode(fallbackMainTreeNode?: Element | null): Element | null;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-root-containers.js b/node_modules/@headlessui/react/dist/hooks/use-root-containers.js
new file mode 100644
index 0000000000000000000000000000000000000000..504e4002e8a5aacd28ab5b7baca65552d6f6ac7b
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-root-containers.js
@@ -0,0 +1 @@
+import s,{createContext as h,useContext as b,useState as p}from"react";import{Hidden as M,HiddenFeatures as v}from'../internal/hidden.js';import*as f from'../utils/dom.js';import{getOwnerDocument as a}from'../utils/owner.js';import{useEvent as m}from'./use-event.js';function S({defaultContainers:l=[],portals:n,mainTreeNode:o}={}){let c=m(()=>{var r,u;let i=a(o),t=[];for(let e of l)e!==null&&(f.isElement(e)?t.push(e):"current"in e&&f.isElement(e.current)&&t.push(e.current));if(n!=null&&n.current)for(let e of n.current)t.push(e);for(let e of(r=i==null?void 0:i.querySelectorAll("html > *, body > *"))!=null?r:[])e!==document.body&&e!==document.head&&f.isElement(e)&&e.id!=="headlessui-portal-root"&&(o&&(e.contains(o)||e.contains((u=o==null?void 0:o.getRootNode())==null?void 0:u.host))||t.some(E=>e.contains(E))||t.push(e));return t});return{resolveContainers:c,contains:m(i=>c().some(t=>t.contains(i)))}}let d=h(null);function j({children:l,node:n}){let[o,c]=p(null),i=x(n!=null?n:o);return s.createElement(d.Provider,{value:i},l,i===null&&s.createElement(M,{features:v.Hidden,ref:t=>{var r,u;if(t){for(let e of(u=(r=a(t))==null?void 0:r.querySelectorAll("html > *, body > *"))!=null?u:[])if(e!==document.body&&e!==document.head&&f.isElement(e)&&e!=null&&e.contains(t)){c(e);break}}}}))}function x(l=null){var n;return(n=b(d))!=null?n:l}export{j as MainTreeProvider,x as useMainTreeNode,S as useRootContainers};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.d.ts b/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..72908fdc1ce3289f91e73e582f20b620dd896790
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.d.ts
@@ -0,0 +1 @@
+export declare function useScrollLock(enabled: boolean, ownerDocument: Document | null, resolveAllowedContainers?: () => Element[]): void;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js b/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js
new file mode 100644
index 0000000000000000000000000000000000000000..253cd5eec78abe48f0af3b84fc10e1ecd914b3be
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js
@@ -0,0 +1 @@
+import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';import{useIsTopLayer as m}from'./use-is-top-layer.js';function f(e,c,n=()=>[document.body]){let r=m(e,"scroll-lock");l(r,c,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],n]}})}export{f as useScrollLock};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.d.ts b/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..82ff255c9e14fa28b66f2be07600a42cc79ba192
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.d.ts
@@ -0,0 +1 @@
+export declare function useServerHandoffComplete(): boolean;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js b/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js
new file mode 100644
index 0000000000000000000000000000000000000000..dc25c3c3dea8ab725d1ca1f88b51d9aae4d173c7
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js
@@ -0,0 +1 @@
+import*as t from"react";import{env as f}from'../utils/env.js';function s(){let r=typeof document=="undefined";return"useSyncExternalStore"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-slot.d.ts b/node_modules/@headlessui/react/dist/hooks/use-slot.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..73648318ee8d693ba6870c8ddb086c112d6dc23d
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-slot.d.ts
@@ -0,0 +1 @@
+export declare function useSlot>(object: ExpectedType): ExpectedType;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-slot.js b/node_modules/@headlessui/react/dist/hooks/use-slot.js
new file mode 100644
index 0000000000000000000000000000000000000000..44c234ab8f6c9dfaeaf0e46957efd56f5efff4e6
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-slot.js
@@ -0,0 +1 @@
+import{useMemo as t}from"react";function n(e){return t(()=>e,Object.values(e))}export{n as useSlot};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-store.d.ts b/node_modules/@headlessui/react/dist/hooks/use-store.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..badd43a7e73d7173c5ad4a5d1394b64bdd517bb6
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-store.d.ts
@@ -0,0 +1,2 @@
+import type { Store } from '../utils/store.js';
+export declare function useStore(store: Store): T;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-store.js b/node_modules/@headlessui/react/dist/hooks/use-store.js
new file mode 100644
index 0000000000000000000000000000000000000000..4ee878099c5c7da85166b00571a0e1552cf7bdf6
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-store.js
@@ -0,0 +1 @@
+import{useSyncExternalStore as e}from"react";function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-sync-refs.d.ts b/node_modules/@headlessui/react/dist/hooks/use-sync-refs.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0bfe042df0fd4ccfd247e4cdf2050201bf67b539
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-sync-refs.d.ts
@@ -0,0 +1,5 @@
+///
+export declare function optionalRef(cb: (ref: T) => void, isOptional?: boolean): ((ref: T) => void) & {
+ [x: symbol]: boolean;
+};
+export declare function useSyncRefs(...refs: (React.MutableRefObject | ((instance: TType) => void) | null)[]): ((value: TType) => void) | undefined;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js b/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js
new file mode 100644
index 0000000000000000000000000000000000000000..67c31a8f0d0c83cd1a9e7b5dfaff3def9e8799ef
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js
@@ -0,0 +1 @@
+import{useEffect as l,useRef as i}from"react";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=i(t);l(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o=="function"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-tab-direction.d.ts b/node_modules/@headlessui/react/dist/hooks/use-tab-direction.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ce42110b47a0582cb9964d604c99c485734d2432
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-tab-direction.d.ts
@@ -0,0 +1,6 @@
+///
+export declare enum Direction {
+ Forwards = 0,
+ Backwards = 1
+}
+export declare function useTabDirection(): import("react").MutableRefObject;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-tab-direction.js b/node_modules/@headlessui/react/dist/hooks/use-tab-direction.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7ceaee10bf1a3c590cefd3e81a656bfaebbc53f
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-tab-direction.js
@@ -0,0 +1 @@
+import{useRef as o}from"react";import{useWindowEvent as t}from'./use-window-event.js';var a=(r=>(r[r.Forwards=0]="Forwards",r[r.Backwards=1]="Backwards",r))(a||{});function u(){let e=o(0);return t(!0,"keydown",r=>{r.key==="Tab"&&(e.current=r.shiftKey?1:0)},!0),e}export{a as Direction,u as useTabDirection};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-text-value.d.ts b/node_modules/@headlessui/react/dist/hooks/use-text-value.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8a56f3c94c18705fd2a93020e74b30a2ff2cb5a5
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-text-value.d.ts
@@ -0,0 +1,2 @@
+import { type MutableRefObject } from 'react';
+export declare function useTextValue(element: MutableRefObject): () => string;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-text-value.js b/node_modules/@headlessui/react/dist/hooks/use-text-value.js
new file mode 100644
index 0000000000000000000000000000000000000000..5026bf0838a780fc8fcc68fc1399d37e4864634c
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-text-value.js
@@ -0,0 +1 @@
+import{useRef as l}from"react";import{getTextValue as i}from'../utils/get-text-value.js';import{useEvent as o}from'./use-event.js';function s(c){let t=l(""),r=l("");return o(()=>{let e=c.current;if(!e)return"";let u=e.innerText;if(t.current===u)return r.current;let n=i(e).trim().toLowerCase();return t.current=u,r.current=n,n})}export{s as useTextValue};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.d.ts b/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..749dbf33feb3c2e57a1b5c5999b485085dd37c0b
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.d.ts
@@ -0,0 +1,4 @@
+export declare function useTrackedPointer(): {
+ wasMoved(evt: PointerEvent): boolean;
+ update(evt: PointerEvent): void;
+};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js b/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js
new file mode 100644
index 0000000000000000000000000000000000000000..442fe84bda5ef5695b78b783cff8089c19570622
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js
@@ -0,0 +1 @@
+import{useRef as o}from"react";function t(e){return[e.screenX,e.screenY]}function u(){let e=o([-1,-1]);return{wasMoved(r){let n=t(r);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(r){e.current=t(r)}}}export{u as useTrackedPointer};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-transition.d.ts b/node_modules/@headlessui/react/dist/hooks/use-transition.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bd1a6ac98ecd9087ec85efad69beac076567149d
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-transition.d.ts
@@ -0,0 +1,12 @@
+type TransitionData = {
+ closed?: boolean;
+ enter?: boolean;
+ leave?: boolean;
+ transition?: boolean;
+};
+export declare function transitionDataAttributes(data: TransitionData): Record;
+export declare function useTransition(enabled: boolean, element: HTMLElement | null, show: boolean, events?: {
+ start?: (show: boolean) => void;
+ end?: (show: boolean) => void;
+}): [visible: boolean, data: TransitionData];
+export {};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-transition.js b/node_modules/@headlessui/react/dist/hooks/use-transition.js
new file mode 100644
index 0000000000000000000000000000000000000000..034297154aa4f3f8197e12440766cb0633c63524
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-transition.js
@@ -0,0 +1,2 @@
+var T,S;import{useRef as c,useState as b}from"react";import{disposables as m}from'../utils/disposables.js';import{useDisposables as g}from'./use-disposables.js';import{useFlags as y}from'./use-flags.js';import{useIsoMorphicEffect as L}from'./use-iso-morphic-effect.js';typeof process!="undefined"&&typeof globalThis!="undefined"&&typeof Element!="undefined"&&((T=process==null?void 0:process.env)==null?void 0:T["NODE_ENV"])==="test"&&typeof((S=Element==null?void 0:Element.prototype)==null?void 0:S.getAnimations)=="undefined"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
+`)),[]});var A=(i=>(i[i.None=0]="None",i[i.Closed=1]="Closed",i[i.Enter=2]="Enter",i[i.Leave=4]="Leave",i))(A||{});function x(e){let r={};for(let t in e)e[t]===!0&&(r[`data-${t}`]="");return r}function N(e,r,t,n){let[i,a]=b(t),{hasFlag:s,addFlag:o,removeFlag:l}=y(e&&i?3:0),u=c(!1),f=c(!1),E=g();return L(()=>{var d;if(e){if(t&&a(!0),!r){t&&o(3);return}return(d=n==null?void 0:n.start)==null||d.call(n,t),C(r,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(t?(o(3),l(4)):(o(4),l(2)))},run(){f.current?t?(l(3),o(4)):(l(4),o(3)):t?l(1):o(1)},done(){var p;f.current&&D(r)||(u.current=!1,l(7),t||a(!1),(p=n==null?void 0:n.end)==null||p.call(n,t))}})}},[e,t,r,E]),e?[i,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[t,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(e,{prepare:r,run:t,done:n,inFlight:i}){let a=m();return j(e,{prepare:r,inFlight:i}),a.nextFrame(()=>{t(),a.requestAnimationFrame(()=>{a.add(M(e,n))})}),a.dispose}function M(e,r){var a,s;let t=m();if(!e)return t.dispose;let n=!1;t.add(()=>{n=!0});let i=(s=(a=e.getAnimations)==null?void 0:a.call(e).filter(o=>o instanceof CSSTransition))!=null?s:[];return i.length===0?(r(),t.dispose):(Promise.allSettled(i.map(o=>o.finished)).then(()=>{n||r()}),t.dispose)}function j(e,{inFlight:r,prepare:t}){if(r!=null&&r.current){t();return}let n=e.style.transition;e.style.transition="none",t(),e.offsetHeight,e.style.transition=n}function D(e){var t,n;return((n=(t=e.getAnimations)==null?void 0:t.call(e))!=null?n:[]).some(i=>i instanceof CSSTransition&&i.playState!=="finished")}export{x as transitionDataAttributes,N as useTransition};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-tree-walker.d.ts b/node_modules/@headlessui/react/dist/hooks/use-tree-walker.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d2e2130b5072c48071fed9c89a0c01ff9b0bf45a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-tree-walker.d.ts
@@ -0,0 +1,7 @@
+type AcceptNode = (node: HTMLElement) => typeof NodeFilter.FILTER_ACCEPT | typeof NodeFilter.FILTER_SKIP | typeof NodeFilter.FILTER_REJECT;
+export declare function useTreeWalker(enabled: boolean, { container, accept, walk, }: {
+ container: HTMLElement | null;
+ accept: AcceptNode;
+ walk(node: HTMLElement): void;
+}): void;
+export {};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js b/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c751d5417bf28053222bfa30115502120b27714
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js
@@ -0,0 +1 @@
+import{useEffect as T,useRef as E}from"react";import{getOwnerDocument as d}from'../utils/owner.js';import{useIsoMorphicEffect as N}from'./use-iso-morphic-effect.js';function F(c,{container:e,accept:t,walk:r}){let o=E(t),l=E(r);T(()=>{o.current=t,l.current=r},[t,r]),N(()=>{if(!e||!c)return;let n=d(e);if(!n)return;let f=o.current,p=l.current,i=Object.assign(m=>f(m),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,i,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-watch.d.ts b/node_modules/@headlessui/react/dist/hooks/use-watch.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3acfb82b603bdb325eb2e8864da3ce7ca1c2adb3
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-watch.d.ts
@@ -0,0 +1 @@
+export declare function useWatch(cb: (newValues: [...T], oldValues: [...T]) => void | (() => void), dependencies: [...T]): void;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-watch.js b/node_modules/@headlessui/react/dist/hooks/use-watch.js
new file mode 100644
index 0000000000000000000000000000000000000000..c25cf4b04a766156c28e2773b1afba3899c8e5f4
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-watch.js
@@ -0,0 +1 @@
+import{useEffect as f,useRef as s}from"react";import{useEvent as i}from'./use-event.js';function m(u,t){let e=s([]),r=i(u);f(()=>{let o=[...e.current];for(let[a,l]of t.entries())if(e.current[a]!==l){let n=r(t,o);return e.current=t,n}},[r,...t])}export{m as useWatch};
diff --git a/node_modules/@headlessui/react/dist/hooks/use-window-event.d.ts b/node_modules/@headlessui/react/dist/hooks/use-window-event.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..636e0fbb93d47089039df1f935f74d872efed669
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-window-event.d.ts
@@ -0,0 +1 @@
+export declare function useWindowEvent(enabled: boolean, type: TType, listener: (ev: WindowEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;
diff --git a/node_modules/@headlessui/react/dist/hooks/use-window-event.js b/node_modules/@headlessui/react/dist/hooks/use-window-event.js
new file mode 100644
index 0000000000000000000000000000000000000000..deded2a6e2b08c48e0746e39b713032e92360e1a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/hooks/use-window-event.js
@@ -0,0 +1 @@
+import{useEffect as a}from"react";import{useLatestValue as f}from'./use-latest-value.js';function s(t,e,o,n){let i=f(o);a(()=>{if(!t)return;function r(d){i.current(d)}return window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)},[t,e,n])}export{s as useWindowEvent};
diff --git a/node_modules/@headlessui/react/dist/index.cjs b/node_modules/@headlessui/react/dist/index.cjs
new file mode 100644
index 0000000000000000000000000000000000000000..92466f45072d9dab91287dddaa6aaaff2060c806
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/index.cjs
@@ -0,0 +1,7 @@
+'use strict'
+
+if (process.env.NODE_ENV === 'production') {
+ module.exports = require('./headlessui.prod.cjs')
+} else {
+ module.exports = require('./headlessui.dev.cjs')
+}
diff --git a/node_modules/@headlessui/react/dist/index.d.cts b/node_modules/@headlessui/react/dist/index.d.cts
new file mode 100644
index 0000000000000000000000000000000000000000..5b62317c78b50a326d6881a0ec5acd1fceab6bbf
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/index.d.cts
@@ -0,0 +1,25 @@
+export * from './components/button/button';
+export * from './components/checkbox/checkbox';
+export * from './components/close-button/close-button';
+export * from './components/combobox/combobox';
+export * from './components/data-interactive/data-interactive';
+export { Description, type DescriptionProps } from './components/description/description';
+export * from './components/dialog/dialog';
+export * from './components/disclosure/disclosure';
+export * from './components/field/field';
+export * from './components/fieldset/fieldset';
+export * from './components/focus-trap/focus-trap';
+export * from './components/input/input';
+export { Label, type LabelProps } from './components/label/label';
+export * from './components/legend/legend';
+export * from './components/listbox/listbox';
+export * from './components/menu/menu';
+export * from './components/popover/popover';
+export { Portal } from './components/portal/portal';
+export * from './components/radio-group/radio-group';
+export * from './components/select/select';
+export * from './components/switch/switch';
+export * from './components/tabs/tabs';
+export * from './components/textarea/textarea';
+export { useClose } from './internal/close-provider';
+export * from './components/transition/transition';
diff --git a/node_modules/@headlessui/react/dist/index.d.ts b/node_modules/@headlessui/react/dist/index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d094b27ea5f0964faaef5a46ef2a17d5f771a26f
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/index.d.ts
@@ -0,0 +1,25 @@
+export * from './components/button/button.js';
+export * from './components/checkbox/checkbox.js';
+export * from './components/close-button/close-button.js';
+export * from './components/combobox/combobox.js';
+export * from './components/data-interactive/data-interactive.js';
+export { Description, type DescriptionProps } from './components/description/description.js';
+export * from './components/dialog/dialog.js';
+export * from './components/disclosure/disclosure.js';
+export * from './components/field/field.js';
+export * from './components/fieldset/fieldset.js';
+export * from './components/focus-trap/focus-trap.js';
+export * from './components/input/input.js';
+export { Label, type LabelProps } from './components/label/label.js';
+export * from './components/legend/legend.js';
+export * from './components/listbox/listbox.js';
+export * from './components/menu/menu.js';
+export * from './components/popover/popover.js';
+export { Portal } from './components/portal/portal.js';
+export * from './components/radio-group/radio-group.js';
+export * from './components/select/select.js';
+export * from './components/switch/switch.js';
+export * from './components/tabs/tabs.js';
+export * from './components/textarea/textarea.js';
+export { useClose } from './internal/close-provider.js';
+export * from './components/transition/transition.js';
diff --git a/node_modules/@headlessui/react/dist/index.js b/node_modules/@headlessui/react/dist/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..9898e27d59a18aa89ed95ad27c496b00845c1d51
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/index.js
@@ -0,0 +1 @@
+export*from'./components/button/button.js';export*from'./components/checkbox/checkbox.js';export*from'./components/close-button/close-button.js';export*from'./components/combobox/combobox.js';export*from'./components/data-interactive/data-interactive.js';import{Description as x}from'./components/description/description.js';export*from'./components/dialog/dialog.js';export*from'./components/disclosure/disclosure.js';export*from'./components/field/field.js';export*from'./components/fieldset/fieldset.js';export*from'./components/focus-trap/focus-trap.js';export*from'./components/input/input.js';import{Label as n}from'./components/label/label.js';export*from'./components/legend/legend.js';export*from'./components/listbox/listbox.js';export*from'./components/menu/menu.js';export*from'./components/popover/popover.js';import{Portal as d}from'./components/portal/portal.js';export*from'./components/radio-group/radio-group.js';export*from'./components/select/select.js';export*from'./components/switch/switch.js';export*from'./components/tabs/tabs.js';export*from'./components/textarea/textarea.js';import{useClose as w}from'./internal/close-provider.js';export*from'./components/transition/transition.js';export{x as Description,n as Label,d as Portal,w as useClose};
diff --git a/node_modules/@headlessui/react/dist/internal/close-provider.d.ts b/node_modules/@headlessui/react/dist/internal/close-provider.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c80188c92eb43b75cee0612c03f5354183c792ee
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/close-provider.d.ts
@@ -0,0 +1,5 @@
+import React from 'react';
+export declare function useClose(): () => void;
+export declare function CloseProvider({ value, children }: React.PropsWithChildren<{
+ value: () => void;
+}>): React.JSX.Element;
diff --git a/node_modules/@headlessui/react/dist/internal/close-provider.js b/node_modules/@headlessui/react/dist/internal/close-provider.js
new file mode 100644
index 0000000000000000000000000000000000000000..99c48cacdad753a19d88a2d3eeb4eda0bb6465c4
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/close-provider.js
@@ -0,0 +1 @@
+"use client";import r,{createContext as n,useContext as i}from"react";let e=n(()=>{});function u(){return i(e)}function C({value:t,children:o}){return r.createElement(e.Provider,{value:t},o)}export{C as CloseProvider,u as useClose};
diff --git a/node_modules/@headlessui/react/dist/internal/disabled.d.ts b/node_modules/@headlessui/react/dist/internal/disabled.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8219d32f0fd8d84a96a3732e19bd5c75c9e3614e
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/disabled.d.ts
@@ -0,0 +1,5 @@
+import React from 'react';
+export declare function useDisabled(): boolean | undefined;
+export declare function DisabledProvider({ value, children, }: React.PropsWithChildren<{
+ value?: boolean;
+}>): React.JSX.Element;
diff --git a/node_modules/@headlessui/react/dist/internal/disabled.js b/node_modules/@headlessui/react/dist/internal/disabled.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ed2b2bcdce3d0baedd270aa1a4514e5f3a39fd0
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/disabled.js
@@ -0,0 +1 @@
+import n,{createContext as r,useContext as i}from"react";let e=r(void 0);function a(){return i(e)}function l({value:t,children:o}){return n.createElement(e.Provider,{value:t},o)}export{l as DisabledProvider,a as useDisabled};
diff --git a/node_modules/@headlessui/react/dist/internal/floating.d.ts b/node_modules/@headlessui/react/dist/internal/floating.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6bfb882f449174d1f738ece21a225e3a8d8a1703
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/floating.d.ts
@@ -0,0 +1,52 @@
+import { type InnerProps } from '@floating-ui/react';
+import * as React from 'react';
+type Align = 'start' | 'end';
+type Placement = 'top' | 'right' | 'bottom' | 'left';
+type AnchorTo = `${Placement}` | `${Placement} ${Align}`;
+type AnchorToWithSelection = `${Placement | 'selection'}` | `${Placement | 'selection'} ${Align}`;
+type BaseAnchorProps = {
+ /**
+ * The `gap` is the space between the trigger and the panel.
+ */
+ gap: number | string;
+ /**
+ * The `offset` is the amount the panel should be nudged from its original position.
+ */
+ offset: number | string;
+ /**
+ * The `padding` is the minimum space between the panel and the viewport.
+ */
+ padding: number | string;
+};
+export type AnchorProps = false | AnchorTo | Partial;
+export type AnchorPropsWithSelection = false | AnchorToWithSelection | Partial;
+export type InternalFloatingPanelProps = Partial<{
+ inner: {
+ listRef: InnerProps['listRef'];
+ index: InnerProps['index'];
+ };
+}>;
+export declare function useResolvedAnchor(anchor?: T): Exclude | null;
+export declare function useFloatingReference(): ((node: import("@floating-ui/react-dom").ReferenceType | null) => void) & ((node: any) => void);
+export declare function useFloatingReferenceProps(): (userProps?: React.HTMLProps | undefined) => Record;
+export declare function useFloatingPanelProps(): (userProps?: React.HTMLProps | undefined) => Record & {
+ 'data-anchor': AnchorToWithSelection | undefined;
+};
+export declare function useFloatingPanel(placement?: (AnchorPropsWithSelection & InternalFloatingPanelProps) | null): readonly [((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void), React.CSSProperties | undefined];
+export declare function FloatingProvider({ children, enabled, }: {
+ children: React.ReactNode;
+ enabled?: boolean;
+}): React.JSX.Element;
+export {};
diff --git a/node_modules/@headlessui/react/dist/internal/floating.js b/node_modules/@headlessui/react/dist/internal/floating.js
new file mode 100644
index 0000000000000000000000000000000000000000..46b9710a645241fab584fb9ef60d0c13e9c1427a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/floating.js
@@ -0,0 +1 @@
+import{autoUpdate as Z,flip as ee,inner as te,offset as ne,shift as re,size as le,useFloating as oe,useInnerOffset as ie,useInteractions as se}from"@floating-ui/react";import*as j from"react";import{createContext as _,useCallback as ae,useContext as T,useMemo as R,useRef as ue,useState as v}from"react";import{useDisposables as fe}from'../hooks/use-disposables.js';import{useEvent as z}from'../hooks/use-event.js';import{useIsoMorphicEffect as C}from'../hooks/use-iso-morphic-effect.js';import*as pe from'../utils/dom.js';let y=_({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});y.displayName="FloatingContext";let $=_(null);$.displayName="PlacementContext";function ye(e){return R(()=>e?typeof e=="string"?{to:e}:e:null,[e])}function Fe(){return T(y).setReference}function be(){return T(y).getReferenceProps}function Te(){let{getFloatingProps:e,slot:t}=T(y);return ae((...n)=>Object.assign({},e(...n),{"data-anchor":t.anchor}),[e,t])}function Re(e=null){e===!1&&(e=null),typeof e=="string"&&(e={to:e});let t=T($),n=R(()=>e,[JSON.stringify(e,(l,o)=>{var u;return(u=o==null?void 0:o.outerHTML)!=null?u:o})]);C(()=>{t==null||t(n!=null?n:null)},[t,n]);let r=T(y);return R(()=>[r.setFloating,e?r.styles:{}],[r.setFloating,e,r.styles])}let D=4;function Ae({children:e,enabled:t=!0}){let[n,r]=v(null),[l,o]=v(0),u=ue(null),[f,s]=v(null);ce(f);let i=t&&n!==null&&f!==null,{to:F="bottom",gap:E=0,offset:A=0,padding:c=0,inner:h}=ge(n,f),[a,p="center"]=F.split(" ");C(()=>{i&&o(0)},[i]);let{refs:b,floatingStyles:S,context:g}=oe({open:i,placement:a==="selection"?p==="center"?"bottom":`bottom-${p}`:p==="center"?`${a}`:`${a}-${p}`,strategy:"absolute",transform:!1,middleware:[ne({mainAxis:a==="selection"?0:E,crossAxis:A}),re({padding:c}),a!=="selection"&&ee({padding:c}),a==="selection"&&h?te({...h,padding:c,overflowRef:u,offset:l,minItemsVisible:D,referenceOverflowThreshold:c,onFallbackChange(P){var L,N;if(!P)return;let d=g.elements.floating;if(!d)return;let M=parseFloat(getComputedStyle(d).scrollPaddingBottom)||0,I=Math.min(D,d.childElementCount),W=0,B=0;for(let m of(N=(L=g.elements.floating)==null?void 0:L.childNodes)!=null?N:[])if(pe.isHTMLElement(m)){let x=m.offsetTop,k=x+m.clientHeight+M,H=d.scrollTop,U=H+d.clientHeight;if(x>=H&&k<=U)I--;else{B=Math.max(0,Math.min(k,U)-Math.max(x,H)),W=m.clientHeight;break}}I>=1&&o(m=>{let x=W*I-B+M;return m>=x?m:x})}}):null,le({padding:c,apply({availableWidth:P,availableHeight:d,elements:M}){Object.assign(M.floating.style,{overflow:"auto",maxWidth:`${P}px`,maxHeight:`min(var(--anchor-max-height, 100vh), ${d}px)`})}})].filter(Boolean),whileElementsMounted:Z}),[w=a,V=p]=g.placement.split("-");a==="selection"&&(w="selection");let G=R(()=>({anchor:[w,V].filter(Boolean).join(" ")}),[w,V]),K=ie(g,{overflowRef:u,onChange:o}),{getReferenceProps:Q,getFloatingProps:X}=se([K]),Y=z(P=>{s(P),b.setFloating(P)});return j.createElement($.Provider,{value:r},j.createElement(y.Provider,{value:{setFloating:Y,setReference:b.setReference,styles:S,getReferenceProps:Q,getFloatingProps:X,slot:G}},e))}function ce(e){C(()=>{if(!e)return;let t=new MutationObserver(()=>{let n=window.getComputedStyle(e).maxHeight,r=parseFloat(n);if(isNaN(r))return;let l=parseInt(n);isNaN(l)||r!==l&&(e.style.maxHeight=`${Math.ceil(r)}px`)});return t.observe(e,{attributes:!0,attributeFilter:["style"]}),()=>{t.disconnect()}},[e])}function ge(e,t){var o,u,f;let n=O((o=e==null?void 0:e.gap)!=null?o:"var(--anchor-gap, 0)",t),r=O((u=e==null?void 0:e.offset)!=null?u:"var(--anchor-offset, 0)",t),l=O((f=e==null?void 0:e.padding)!=null?f:"var(--anchor-padding, 0)",t);return{...e,gap:n,offset:r,padding:l}}function O(e,t,n=void 0){let r=fe(),l=z((s,i)=>{if(s==null)return[n,null];if(typeof s=="number")return[s,null];if(typeof s=="string"){if(!i)return[n,null];let F=J(s,i);return[F,E=>{let A=q(s);{let c=A.map(h=>window.getComputedStyle(i).getPropertyValue(h));r.requestAnimationFrame(function h(){r.nextFrame(h);let a=!1;for(let[b,S]of A.entries()){let g=window.getComputedStyle(i).getPropertyValue(S);if(c[b]!==g){c[b]=g,a=!0;break}}if(!a)return;let p=J(s,i);F!==p&&(E(p),F=p)})}return r.dispose}]}return[n,null]}),o=R(()=>l(e,t)[0],[e,t]),[u=o,f]=v();return C(()=>{let[s,i]=l(e,t);if(f(s),!!i)return i(f)},[e,t]),u}function q(e){let t=/var\((.*)\)/.exec(e);if(t){let n=t[1].indexOf(",");if(n===-1)return[t[1]];let r=t[1].slice(0,n).trim(),l=t[1].slice(n+1).trim();return l?[r,...q(l)]:[r]}return[]}function J(e,t){let n=document.createElement("div");t.appendChild(n),n.style.setProperty("margin-top","0px","important"),n.style.setProperty("margin-top",e,"important");let r=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),r}export{Ae as FloatingProvider,Re as useFloatingPanel,Te as useFloatingPanelProps,Fe as useFloatingReference,be as useFloatingReferenceProps,ye as useResolvedAnchor};
diff --git a/node_modules/@headlessui/react/dist/internal/focus-sentinel.d.ts b/node_modules/@headlessui/react/dist/internal/focus-sentinel.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3ddde9fcab16201c45990c9ba8f84aa55e10d183
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/focus-sentinel.d.ts
@@ -0,0 +1,6 @@
+import React from 'react';
+interface FocusSentinelProps {
+ onFocus(): boolean;
+}
+export declare function FocusSentinel({ onFocus }: FocusSentinelProps): React.JSX.Element | null;
+export {};
diff --git a/node_modules/@headlessui/react/dist/internal/focus-sentinel.js b/node_modules/@headlessui/react/dist/internal/focus-sentinel.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc7b50c9521468967e65b8ab661115e88962e87d
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/focus-sentinel.js
@@ -0,0 +1 @@
+import s,{useState as c}from"react";import{useIsMounted as m}from'../hooks/use-is-mounted.js';import{Hidden as f,HiddenFeatures as l}from'./hidden.js';function b({onFocus:n}){let[r,o]=c(!0),u=m();return r?s.createElement(f,{as:"button",type:"button",features:l.Focusable,onFocus:a=>{a.preventDefault();let e,i=50;function t(){if(i--<=0){e&&cancelAnimationFrame(e);return}if(n()){if(cancelAnimationFrame(e),!u.current)return;o(!1);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}export{b as FocusSentinel};
diff --git a/node_modules/@headlessui/react/dist/internal/form-fields.d.ts b/node_modules/@headlessui/react/dist/internal/form-fields.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5dc1691bcaecc629b51147de67f0861e42d5f785
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/form-fields.d.ts
@@ -0,0 +1,10 @@
+import React from 'react';
+export declare function FormFieldsProvider(props: React.PropsWithChildren<{}>): React.JSX.Element;
+export declare function HoistFormFields({ children }: React.PropsWithChildren<{}>): React.JSX.Element | null;
+export declare function FormFields({ data, form: formId, disabled, onReset, overrides, }: {
+ data: Record;
+ overrides?: Record;
+ form?: string;
+ disabled?: boolean;
+ onReset?: (e: Event) => void;
+}): React.JSX.Element;
diff --git a/node_modules/@headlessui/react/dist/internal/form-fields.js b/node_modules/@headlessui/react/dist/internal/form-fields.js
new file mode 100644
index 0000000000000000000000000000000000000000..232c3b9cde663d2e1a1efc44b83715142b6fdd7f
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/form-fields.js
@@ -0,0 +1 @@
+import o,{createContext as H,useContext as E,useEffect as m,useState as u}from"react";import{createPortal as g}from"react-dom";import{useDisposables as h}from'../hooks/use-disposables.js';import{objectToFormEntries as x}from'../utils/form.js';import{compact as y}from'../utils/render.js';import{Hidden as l,HiddenFeatures as d}from'./hidden.js';let f=H(null);function W(t){let[e,r]=u(null);return o.createElement(f.Provider,{value:{target:e}},t.children,o.createElement(l,{features:d.Hidden,ref:r}))}function c({children:t}){let e=E(f);if(!e)return o.createElement(o.Fragment,null,t);let{target:r}=e;return r?g(o.createElement(o.Fragment,null,t),r):null}function j({data:t,form:e,disabled:r,onReset:n,overrides:F}){let[i,a]=u(null),p=h();return m(()=>{if(n&&i)return p.addEventListener(i,"reset",n)},[i,e,n]),o.createElement(c,null,o.createElement(C,{setForm:a,formId:e}),x(t).map(([s,v])=>o.createElement(l,{features:d.Hidden,...y({key:s,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:e,disabled:r,name:s,value:v,...F})})))}function C({setForm:t,formId:e}){return m(()=>{if(e){let r=document.getElementById(e);r&&t(r)}},[t,e]),e?null:o.createElement(l,{features:d.Hidden,as:"input",type:"hidden",hidden:!0,readOnly:!0,ref:r=>{if(!r)return;let n=r.closest("form");n&&t(n)}})}export{j as FormFields,W as FormFieldsProvider,c as HoistFormFields};
diff --git a/node_modules/@headlessui/react/dist/internal/frozen.d.ts b/node_modules/@headlessui/react/dist/internal/frozen.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..41f1a1b9a9fafb8e69977ceaa4ceb3622acae1f1
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/frozen.d.ts
@@ -0,0 +1,6 @@
+import React from 'react';
+export declare const Frozen: React.ForwardRefExoticComponent<{
+ children: React.ReactNode;
+ freeze: boolean;
+} & React.RefAttributes>;
+export declare function useFrozenData(freeze: boolean, data: T): T;
diff --git a/node_modules/@headlessui/react/dist/internal/frozen.js b/node_modules/@headlessui/react/dist/internal/frozen.js
new file mode 100644
index 0000000000000000000000000000000000000000..6519148144e0151b4edbe631174aaa0ef15178b1
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/frozen.js
@@ -0,0 +1 @@
+import r,{cloneElement as l,isValidElement as c,useState as a}from"react";function f({children:t,freeze:e},o){let n=u(e,t);return c(n)?l(n,{ref:o}):r.createElement(r.Fragment,null,n)}const s=r.forwardRef(f);function u(t,e){let[o,n]=a(e);return!t&&o!==e&&n(e),t?o:e}export{s as Frozen,u as useFrozenData};
diff --git a/node_modules/@headlessui/react/dist/internal/hidden.d.ts b/node_modules/@headlessui/react/dist/internal/hidden.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d01f22aa8f826f9ce233f4232d849172a961d853
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/hidden.d.ts
@@ -0,0 +1,20 @@
+import type { ElementType, Ref } from 'react';
+import type { Props } from '../types.js';
+import { type HasDisplayName, type RefProp } from '../utils/render.js';
+declare let DEFAULT_VISUALLY_HIDDEN_TAG: "span";
+export declare enum HiddenFeatures {
+ None = 1,
+ Focusable = 2,
+ Hidden = 4
+}
+type HiddenRenderPropArg = {};
+type HiddenPropsWeControl = never;
+export type HiddenProps = Props;
+declare function VisuallyHidden(props: HiddenProps, ref: Ref): import("react").ReactElement> | null;
+interface ComponentHidden extends HasDisplayName {
+ (props: HiddenProps & RefProp): React.JSX.Element;
+}
+export declare let Hidden: ComponentHidden;
+export {};
diff --git a/node_modules/@headlessui/react/dist/internal/hidden.js b/node_modules/@headlessui/react/dist/internal/hidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..c553cb7dd5ab9e0ca3b24b617b6ee38156d75d1a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/hidden.js
@@ -0,0 +1 @@
+import{forwardRefWithAs as i,useRender as p}from'../utils/render.js';let a="span";var s=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,"aria-hidden":(d&2)===2?!0:(n=e["aria-hidden"])!=null?n:void 0,hidden:(d&4)===4?!0: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",...(d&4)===4&&(d&2)!==2&&{display:"none"}}};return p()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:"Hidden"})}let f=i(l);export{f as Hidden,s as HiddenFeatures};
diff --git a/node_modules/@headlessui/react/dist/internal/id.d.ts b/node_modules/@headlessui/react/dist/internal/id.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f5f42afab994c7ad9cfafeb7bd48d3a110330452
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/id.d.ts
@@ -0,0 +1,5 @@
+import React from 'react';
+export declare function useProvidedId(): string | undefined;
+export declare function IdProvider({ id, children }: React.PropsWithChildren<{
+ id: string | undefined;
+}>): React.JSX.Element;
diff --git a/node_modules/@headlessui/react/dist/internal/id.js b/node_modules/@headlessui/react/dist/internal/id.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c4277c44ad172bfa2af5451844ae1d05ae54383
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/id.js
@@ -0,0 +1 @@
+import n,{createContext as d,useContext as i}from"react";let e=d(void 0);function u(){return i(e)}function f({id:t,children:r}){return n.createElement(e.Provider,{value:t},r)}export{f as IdProvider,u as useProvidedId};
diff --git a/node_modules/@headlessui/react/dist/internal/open-closed.d.ts b/node_modules/@headlessui/react/dist/internal/open-closed.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b7210141e7888460a06d6960c763cc3a761741b5
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/open-closed.d.ts
@@ -0,0 +1,17 @@
+import React, { type ReactElement, type ReactNode } from 'react';
+export declare enum State {
+ Open = 1,
+ Closed = 2,
+ Closing = 4,
+ Opening = 8
+}
+export declare function useOpenClosed(): State | null;
+interface Props {
+ value: State;
+ children: ReactNode;
+}
+export declare function OpenClosedProvider({ value, children }: Props): ReactElement;
+export declare function ResetOpenClosedProvider({ children }: {
+ children: React.ReactNode;
+}): ReactElement;
+export {};
diff --git a/node_modules/@headlessui/react/dist/internal/open-closed.js b/node_modules/@headlessui/react/dist/internal/open-closed.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3283c5f351b9660d0a1661963934f36b3bdea2d
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/open-closed.js
@@ -0,0 +1 @@
+import r,{createContext as l,useContext as d}from"react";let n=l(null);n.displayName="OpenClosedContext";var i=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(i||{});function u(){return d(n)}function c({value:o,children:t}){return r.createElement(n.Provider,{value:o},t)}function s({children:o}){return r.createElement(n.Provider,{value:null},o)}export{c as OpenClosedProvider,s as ResetOpenClosedProvider,i as State,u as useOpenClosed};
diff --git a/node_modules/@headlessui/react/dist/internal/portal-force-root.d.ts b/node_modules/@headlessui/react/dist/internal/portal-force-root.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8f8c680e75044ac9c75549ec571e275caf9239df
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/portal-force-root.d.ts
@@ -0,0 +1,8 @@
+import React, { type ReactNode } from 'react';
+export declare function usePortalRoot(): boolean;
+interface ForcePortalRootProps {
+ force: boolean;
+ children: ReactNode;
+}
+export declare function ForcePortalRoot(props: ForcePortalRootProps): React.JSX.Element;
+export {};
diff --git a/node_modules/@headlessui/react/dist/internal/portal-force-root.js b/node_modules/@headlessui/react/dist/internal/portal-force-root.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad5954434bae3b8c39bd0b4df4328982ff8dd7aa
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/internal/portal-force-root.js
@@ -0,0 +1 @@
+import t,{createContext as r,useContext as c}from"react";let e=r(!1);function a(){return c(e)}function l(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{l as ForcePortalRoot,a as usePortalRoot};
diff --git a/node_modules/@headlessui/react/dist/machine.d.ts b/node_modules/@headlessui/react/dist/machine.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1a4f46019538a2f4eb89b4e87601e6d192c072d8
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/machine.d.ts
@@ -0,0 +1,37 @@
+export declare abstract class Machine {
+ #private;
+ disposables: {
+ addEventListener(element: Window | Document | HTMLElement, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void;
+ requestAnimationFrame(callback: FrameRequestCallback): () => void;
+ nextFrame(callback: FrameRequestCallback): () => void;
+ setTimeout(callback: (...args: any[]) => void, ms?: number | undefined, ...args: any[]): () => void;
+ microTask(cb: () => void): () => void;
+ style(node: ElementCSSInlineStyle, property: string, value: string): () => void;
+ group(cb: (d: {
+ addEventListener(element: Window | Document | HTMLElement, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void;
+ requestAnimationFrame(callback: FrameRequestCallback): () => void;
+ nextFrame(callback: FrameRequestCallback): () => void;
+ setTimeout(callback: (...args: any[]) => void, ms?: number | undefined, ...args: any[]): () => void;
+ microTask(cb: () => void): () => void;
+ style(node: ElementCSSInlineStyle, property: string, value: string): () => void;
+ group(cb: any): () => void;
+ add(cb: () => void): () => void;
+ dispose(): void;
+ }) => void): () => void;
+ add(cb: () => void): () => void;
+ dispose(): void;
+ };
+ constructor(initialState: State);
+ dispose(): void;
+ get state(): Readonly;
+ abstract reduce(state: Readonly, event: Event): Readonly;
+ subscribe(selector: (state: Readonly) => Slice, callback: (state: Slice) => void): () => void;
+ on(type: T, callback: (state: State, event: Extract) => void): () => void;
+ send(event: Event): void;
+}
+export declare function shallowEqual(a: any, b: any): boolean;
+export declare function batch void, P extends any[] = Parameters>(setup: () => [callback: F, handle: () => void]): (...args: P) => void;
diff --git a/node_modules/@headlessui/react/dist/machine.js b/node_modules/@headlessui/react/dist/machine.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1c8ca355ddc99439e0ef36430de005fd6ee97fe
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/machine.js
@@ -0,0 +1 @@
+var h=Object.defineProperty;var v=(t,e,r)=>e in t?h(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var S=(t,e,r)=>(v(t,typeof e!="symbol"?e+"":e,r),r),b=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)};var i=(t,e,r)=>(b(t,e,"read from private field"),r?r.call(t):e.get(t)),c=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},u=(t,e,r,s)=>(b(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r);var n,a,o;import{DefaultMap as m}from'./utils/default-map.js';import{disposables as y}from'./utils/disposables.js';import{env as d}from'./utils/env.js';class T{constructor(e){c(this,n,{});c(this,a,new m(()=>new Set));c(this,o,new Set);S(this,"disposables",y());u(this,n,e),d.isServer&&this.disposables.microTask(()=>{this.dispose()})}dispose(){this.disposables.dispose()}get state(){return i(this,n)}subscribe(e,r){if(d.isServer)return()=>{};let s={selector:e,callback:r,current:e(i(this,n))};return i(this,o).add(s),this.disposables.add(()=>{i(this,o).delete(s)})}on(e,r){return d.isServer?()=>{}:(i(this,a).get(e).add(r),this.disposables.add(()=>{i(this,a).get(e).delete(r)}))}send(e){let r=this.reduce(i(this,n),e);if(r!==i(this,n)){u(this,n,r);for(let s of i(this,o)){let l=s.selector(i(this,n));j(s.current,l)||(s.current=l,s.callback(l))}for(let s of i(this,a).get(e.type))s(i(this,n),e)}}}n=new WeakMap,a=new WeakMap,o=new WeakMap;function j(t,e){return Object.is(t,e)?!0:typeof t!="object"||t===null||typeof e!="object"||e===null?!1:Array.isArray(t)&&Array.isArray(e)?t.length!==e.length?!1:f(t[Symbol.iterator](),e[Symbol.iterator]()):t instanceof Map&&e instanceof Map||t instanceof Set&&e instanceof Set?t.size!==e.size?!1:f(t.entries(),e.entries()):p(t)&&p(e)?f(Object.entries(t)[Symbol.iterator](),Object.entries(e)[Symbol.iterator]()):!1}function f(t,e){do{let r=t.next(),s=e.next();if(r.done&&s.done)return!0;if(r.done||s.done||!Object.is(r.value,s.value))return!1}while(!0)}function p(t){if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||Object.getPrototypeOf(e)===null}function k(t){let[e,r]=t(),s=y();return(...l)=>{e(...l),s.dispose(),s.microTask(r)}}export{T as Machine,k as batch,j as shallowEqual};
diff --git a/node_modules/@headlessui/react/dist/machines/stack-machine.d.ts b/node_modules/@headlessui/react/dist/machines/stack-machine.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3b4144564a73085670de09bbbb721e68b2903723
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/machines/stack-machine.d.ts
@@ -0,0 +1,32 @@
+import { Machine } from '../machine.js';
+import { DefaultMap } from '../utils/default-map.js';
+type Scope = string | null;
+type Id = string;
+interface State {
+ stack: Id[];
+}
+export declare enum ActionTypes {
+ Push = 0,
+ Pop = 1
+}
+export type Actions = {
+ type: ActionTypes.Push;
+ id: Id;
+} | {
+ type: ActionTypes.Pop;
+ id: Id;
+};
+declare class StackMachine extends Machine {
+ static new(): StackMachine;
+ reduce(state: Readonly, action: Actions): State;
+ actions: {
+ push: (id: Id) => void;
+ pop: (id: Id) => void;
+ };
+ selectors: {
+ isTop: (state: State, id: Id) => boolean;
+ inStack: (state: State, id: Id) => boolean;
+ };
+}
+export declare const stackMachines: DefaultMap;
+export {};
diff --git a/node_modules/@headlessui/react/dist/machines/stack-machine.js b/node_modules/@headlessui/react/dist/machines/stack-machine.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c30376863ce11d41684e8e8ace7788b2c9b0579
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/machines/stack-machine.js
@@ -0,0 +1 @@
+var a=Object.defineProperty;var r=(e,c,t)=>c in e?a(e,c,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[c]=t;var p=(e,c,t)=>(r(e,typeof c!="symbol"?c+"":c,t),t);import{Machine as d}from'../machine.js';import{DefaultMap as l}from'../utils/default-map.js';import{match as u}from'../utils/match.js';var k=(t=>(t[t.Push=0]="Push",t[t.Pop=1]="Pop",t))(k||{});let y={[0](e,c){let t=c.id,s=e.stack,i=e.stack.indexOf(t);if(i!==-1){let n=e.stack.slice();return n.splice(i,1),n.push(t),s=n,{...e,stack:s}}return{...e,stack:[...e.stack,t]}},[1](e,c){let t=c.id,s=e.stack.indexOf(t);if(s===-1)return e;let i=e.stack.slice();return i.splice(s,1),{...e,stack:i}}};class o extends d{constructor(){super(...arguments);p(this,"actions",{push:t=>this.send({type:0,id:t}),pop:t=>this.send({type:1,id:t})});p(this,"selectors",{isTop:(t,s)=>t.stack[t.stack.length-1]===s,inStack:(t,s)=>t.stack.includes(s)})}static new(){return new o({stack:[]})}reduce(t,s){return u(s.type,y,t,s)}}const x=new l(()=>o.new());export{k as ActionTypes,x as stackMachines};
diff --git a/node_modules/@headlessui/react/dist/react-glue.d.ts b/node_modules/@headlessui/react/dist/react-glue.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f8bc570aca5c72abc78f1ecd1d422126d8b6a372
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/react-glue.d.ts
@@ -0,0 +1,2 @@
+import { shallowEqual, type Machine } from './machine.js';
+export declare function useSlice, Slice>(machine: M, selector: (state: Readonly ? State : never>) => Slice, compare?: typeof shallowEqual): Slice;
diff --git a/node_modules/@headlessui/react/dist/react-glue.js b/node_modules/@headlessui/react/dist/react-glue.js
new file mode 100644
index 0000000000000000000000000000000000000000..071fc1209f3241dd2c5a90a9be575c8c6dd93fec
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/react-glue.js
@@ -0,0 +1 @@
+import{useSyncExternalStoreWithSelector as a}from"use-sync-external-store/with-selector";import{useEvent as t}from'./hooks/use-event.js';import{shallowEqual as o}from'./machine.js';function S(e,n,r=o){return a(t(i=>e.subscribe(s,i)),t(()=>e.state),t(()=>e.state),t(n),r)}function s(e){return e}export{S as useSlice};
diff --git a/node_modules/@headlessui/react/dist/types.d.ts b/node_modules/@headlessui/react/dist/types.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f5a7d88a148f4015e3cb3c9b2dbcc2f1d9c00140
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/types.d.ts
@@ -0,0 +1,20 @@
+import type { JSXElementConstructor, ReactElement, ReactNode } from 'react';
+export type ReactTag = keyof React.JSX.IntrinsicElements | JSXElementConstructor;
+export type Expand = T extends infer O ? {
+ [K in keyof O]: O[K];
+} : never;
+export type PropsOf = TTag extends React.ElementType ? Omit, 'ref'> : never;
+type PropsWeControl = 'as' | 'children' | 'refName' | 'className';
+type CleanProps = Omit, TOmittableProps | PropsWeControl>;
+type OurProps = {
+ as?: TTag;
+ children?: ReactNode | ((bag: TSlot) => ReactElement);
+ refName?: string;
+};
+type HasProperty = T extends never ? never : K extends keyof T ? true : never;
+type ClassNameOverride = true extends HasProperty, 'className'> ? {
+ className?: PropsOf['className'] | ((bag: TSlot) => string);
+} : {};
+export type Props = CleanProps & OurProps & ClassNameOverride & Overrides;
+export type EnsureArray = T extends any[] ? T : Expand[];
+export {};
diff --git a/node_modules/@headlessui/react/dist/types.js b/node_modules/@headlessui/react/dist/types.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/node_modules/@headlessui/react/dist/utils/active-element-history.d.ts b/node_modules/@headlessui/react/dist/utils/active-element-history.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..252779cee523a7472fcd432c4697623957e13e03
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/active-element-history.d.ts
@@ -0,0 +1 @@
+export declare let history: (HTMLOrSVGElement & Element)[];
diff --git a/node_modules/@headlessui/react/dist/utils/active-element-history.js b/node_modules/@headlessui/react/dist/utils/active-element-history.js
new file mode 100644
index 0000000000000000000000000000000000000000..582efa1df5636f0310d263a2c0b6262124b81921
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/active-element-history.js
@@ -0,0 +1 @@
+import{onDocumentReady as d}from'./document-ready.js';import*as u from'./dom.js';import{focusableSelector as i}from'./focus-management.js';let n=[];d(()=>{function e(t){if(!u.isHTMLorSVGElement(t.target)||t.target===document.body||n[0]===t.target)return;let r=t.target;r=r.closest(i),n.unshift(r!=null?r:t.target),n=n.filter(o=>o!=null&&o.isConnected),n.splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});export{n as history};
diff --git a/node_modules/@headlessui/react/dist/utils/bugs.d.ts b/node_modules/@headlessui/react/dist/utils/bugs.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..77ab9943a88db4c7172f530105d249871249af11
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/bugs.d.ts
@@ -0,0 +1 @@
+export declare function isDisabledReactIssue7711(element: Element): boolean;
diff --git a/node_modules/@headlessui/react/dist/utils/bugs.js b/node_modules/@headlessui/react/dist/utils/bugs.js
new file mode 100644
index 0000000000000000000000000000000000000000..8bcca5243be14f0a35a6be20d220ff30712a98ac
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/bugs.js
@@ -0,0 +1 @@
+import*as n from'./dom.js';function s(l){let e=l.parentElement,t=null;for(;e&&!n.isHTMLFieldSetElement(e);)n.isHTMLLegendElement(e)&&(t=e),e=e.parentElement;let i=(e==null?void 0:e.getAttribute("disabled"))==="";return i&&r(t)?!1:i}function r(l){if(!l)return!1;let e=l.previousElementSibling;for(;e!==null;){if(n.isHTMLLegendElement(e))return!1;e=e.previousElementSibling}return!0}export{s as isDisabledReactIssue7711};
diff --git a/node_modules/@headlessui/react/dist/utils/calculate-active-index.d.ts b/node_modules/@headlessui/react/dist/utils/calculate-active-index.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..011d94d7e4356d2c6ae76ca05074fddbac2c29fe
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/calculate-active-index.d.ts
@@ -0,0 +1,25 @@
+export declare enum Focus {
+ /** Focus the first non-disabled item. */
+ First = 0,
+ /** Focus the previous non-disabled item. */
+ Previous = 1,
+ /** Focus the next non-disabled item. */
+ Next = 2,
+ /** Focus the last non-disabled item. */
+ Last = 3,
+ /** Focus a specific item based on the `id` of the item. */
+ Specific = 4,
+ /** Focus no items at all. */
+ Nothing = 5
+}
+export declare function calculateActiveIndex(action: {
+ focus: Focus.Specific;
+ id: string;
+} | {
+ focus: Exclude;
+}, resolvers: {
+ resolveItems(): TItem[];
+ resolveActiveIndex(): number | null;
+ resolveId(item: TItem, index: number, items: TItem[]): string;
+ resolveDisabled(item: TItem, index: number, items: TItem[]): boolean;
+}): number | null;
diff --git a/node_modules/@headlessui/react/dist/utils/calculate-active-index.js b/node_modules/@headlessui/react/dist/utils/calculate-active-index.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d0d76182ab3960bfbe9d986715d9dea6de25709
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/calculate-active-index.js
@@ -0,0 +1 @@
+function u(l){throw new Error("Unexpected object: "+l)}var c=(i=>(i[i.First=0]="First",i[i.Previous=1]="Previous",i[i.Next=2]="Next",i[i.Last=3]="Last",i[i.Specific=4]="Specific",i[i.Nothing=5]="Nothing",i))(c||{});function f(l,n){let t=n.resolveItems();if(t.length<=0)return null;let r=n.resolveActiveIndex(),s=r!=null?r:-1;switch(l.focus){case 0:{for(let e=0;e=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 2:{for(let e=s+1;e=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 4:{for(let e=0;etypeof n=="string"?n.split(" "):[]))).filter(Boolean).join(" ")}export{t as classNames};
diff --git a/node_modules/@headlessui/react/dist/utils/default-map.d.ts b/node_modules/@headlessui/react/dist/utils/default-map.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..65e0364ff9b2c85ffc43bc3c298db600b9938ef6
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/default-map.d.ts
@@ -0,0 +1,5 @@
+export declare class DefaultMap extends Map {
+ private factory;
+ constructor(factory: (key: T) => V);
+ get(key: T): V;
+}
diff --git a/node_modules/@headlessui/react/dist/utils/default-map.js b/node_modules/@headlessui/react/dist/utils/default-map.js
new file mode 100644
index 0000000000000000000000000000000000000000..506ea7516c9ce52d2603de3be43ca2650327d167
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/default-map.js
@@ -0,0 +1 @@
+class a extends Map{constructor(t){super();this.factory=t}get(t){let e=super.get(t);return e===void 0&&(e=this.factory(t),this.set(t,e)),e}}export{a as DefaultMap};
diff --git a/node_modules/@headlessui/react/dist/utils/disposables.d.ts b/node_modules/@headlessui/react/dist/utils/disposables.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0ad8d96b923504db3851d9815100709d2b47d87b
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/disposables.d.ts
@@ -0,0 +1,24 @@
+export type Disposables = ReturnType;
+/**
+ * Disposables are a way to manage event handlers and functions like
+ * `setTimeout` and `requestAnimationFrame` that need to be cleaned up when they
+ * are no longer needed.
+ *
+ *
+ * When you register a disposable function, it is added to a collection of
+ * disposables. Each disposable in the collection provides a `dispose` clean up
+ * function that can be called when it's no longer needed. There is also a
+ * `dispose` function on the collection itself that can be used to clean up all
+ * pending disposables in that collection.
+ */
+export declare function disposables(): {
+ addEventListener(element: HTMLElement | Window | Document, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions): () => void;
+ requestAnimationFrame(callback: FrameRequestCallback): () => void;
+ nextFrame(callback: FrameRequestCallback): () => void;
+ setTimeout(callback: (...args: any[]) => void, ms?: number | undefined, ...args: any[]): () => void;
+ microTask(cb: () => void): () => void;
+ style(node: ElementCSSInlineStyle, property: string, value: string): () => void;
+ group(cb: (d: typeof this) => void): () => void;
+ add(cb: () => void): () => void;
+ dispose(): void;
+};
diff --git a/node_modules/@headlessui/react/dist/utils/disposables.js b/node_modules/@headlessui/react/dist/utils/disposables.js
new file mode 100644
index 0000000000000000000000000000000000000000..f1b151794297ac42e15e31fef7e066797a990c00
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/disposables.js
@@ -0,0 +1 @@
+import{microTask as a}from'./micro-task.js';function o(){let s=[],r={addEventListener(e,t,n,i){return e.addEventListener(t,n,i),r.add(()=>e.removeEventListener(t,n,i))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return a(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,n){let i=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:n}),this.add(()=>{Object.assign(e.style,{[t]:i})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return s.includes(e)||s.push(e),()=>{let t=s.indexOf(e);if(t>=0)for(let n of s.splice(t,1))n()}},dispose(){for(let e of s.splice(0))e()}};return r}export{o as disposables};
diff --git a/node_modules/@headlessui/react/dist/utils/document-ready.d.ts b/node_modules/@headlessui/react/dist/utils/document-ready.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a872936a8b2e1e4d7307193f67517c020e62baa6
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/document-ready.d.ts
@@ -0,0 +1 @@
+export declare function onDocumentReady(cb: () => void): void;
diff --git a/node_modules/@headlessui/react/dist/utils/document-ready.js b/node_modules/@headlessui/react/dist/utils/document-ready.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ddda1cdf4d7378ac22ca7cdef5a34260e5effd1
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/document-ready.js
@@ -0,0 +1 @@
+function t(n){function e(){document.readyState!=="loading"&&(n(),document.removeEventListener("DOMContentLoaded",e))}typeof window!="undefined"&&typeof document!="undefined"&&(document.addEventListener("DOMContentLoaded",e),e())}export{t as onDocumentReady};
diff --git a/node_modules/@headlessui/react/dist/utils/dom.d.ts b/node_modules/@headlessui/react/dist/utils/dom.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3e2ad3e3c7b3e907c0146ac58b4998e8d5d10b0c
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/dom.d.ts
@@ -0,0 +1,12 @@
+export declare function isNode(element: unknown): element is Node;
+export declare function isElement(element: unknown): element is Element;
+export declare function isHTMLElement(element: unknown): element is HTMLElement;
+export declare function isHTMLorSVGElement(element: unknown): element is HTMLOrSVGElement & Element;
+export declare function hasInlineStyle(element: unknown): element is ElementCSSInlineStyle;
+export declare function isHTMLIframeElement(element: unknown): element is HTMLIFrameElement;
+export declare function isHTMLInputElement(element: unknown): element is HTMLInputElement;
+export declare function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement;
+export declare function isHTMLLabelElement(element: unknown): element is HTMLLabelElement;
+export declare function isHTMLFieldSetElement(element: unknown): element is HTMLFieldSetElement;
+export declare function isHTMLLegendElement(element: unknown): element is HTMLLegendElement;
+export declare function isInteractiveElement(element: unknown): element is Element;
diff --git a/node_modules/@headlessui/react/dist/utils/dom.js b/node_modules/@headlessui/react/dist/utils/dom.js
new file mode 100644
index 0000000000000000000000000000000000000000..79699d71ce434fabba36b871245ae8285bd8d1d3
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/dom.js
@@ -0,0 +1 @@
+function o(e){return typeof e!="object"||e===null?!1:"nodeType"in e}function t(e){return o(e)&&"tagName"in e}function n(e){return t(e)&&"accessKey"in e}function i(e){return t(e)&&"tabIndex"in e}function r(e){return t(e)&&"style"in e}function u(e){return n(e)&&e.nodeName==="IFRAME"}function l(e){return n(e)&&e.nodeName==="INPUT"}function s(e){return n(e)&&e.nodeName==="TEXTAREA"}function m(e){return n(e)&&e.nodeName==="LABEL"}function a(e){return n(e)&&e.nodeName==="FIELDSET"}function E(e){return n(e)&&e.nodeName==="LEGEND"}function L(e){return t(e)?e.matches('a[href],audio[controls],button,details,embed,iframe,img[usemap],input:not([type="hidden"]),label,select,textarea,video[controls]'):!1}export{r as hasInlineStyle,t as isElement,n as isHTMLElement,a as isHTMLFieldSetElement,u as isHTMLIframeElement,l as isHTMLInputElement,m as isHTMLLabelElement,E as isHTMLLegendElement,s as isHTMLTextAreaElement,i as isHTMLorSVGElement,L as isInteractiveElement,o as isNode};
diff --git a/node_modules/@headlessui/react/dist/utils/element-movement.d.ts b/node_modules/@headlessui/react/dist/utils/element-movement.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..86146cf3f247a65b34289ab77e7add91f1a254fc
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/element-movement.d.ts
@@ -0,0 +1,19 @@
+export declare const ElementPositionState: {
+ Idle: {
+ kind: "Idle";
+ };
+ Tracked: (position: string) => {
+ kind: "Tracked";
+ position: string;
+ };
+ Moved: {
+ kind: "Moved";
+ };
+};
+type ResolvedStates> = {
+ [K in keyof T]: T[K] extends (...args: any[]) => infer R ? R : T[K];
+}[keyof T];
+export type ElementPositionState = ResolvedStates;
+export declare function computeVisualPosition(element: HTMLElement): string;
+export declare function detectMovement(target: HTMLElement, state: ResolvedStates, onMove: () => void): () => void;
+export {};
diff --git a/node_modules/@headlessui/react/dist/utils/element-movement.js b/node_modules/@headlessui/react/dist/utils/element-movement.js
new file mode 100644
index 0000000000000000000000000000000000000000..59df24eb5149344261bda1c3589a1fc6e3e1c045
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/element-movement.js
@@ -0,0 +1 @@
+import{disposables as r}from'./disposables.js';const c={Idle:{kind:"Idle"},Tracked:e=>({kind:"Tracked",position:e}),Moved:{kind:"Moved"}};function a(e){let t=e.getBoundingClientRect();return`${t.x},${t.y}`}function p(e,t,i){let n=r();if(t.kind==="Tracked"){let o=function(){d!==a(e)&&(n.dispose(),i())};var f=o;let{position:d}=t,s=new ResizeObserver(o);s.observe(e),n.add(()=>s.disconnect()),n.addEventListener(window,"scroll",o,{passive:!0}),n.addEventListener(window,"resize",o)}return()=>n.dispose()}export{c as ElementPositionState,a as computeVisualPosition,p as detectMovement};
diff --git a/node_modules/@headlessui/react/dist/utils/env.d.ts b/node_modules/@headlessui/react/dist/utils/env.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bc5b0b61ffd2fca93c078a5349ae61e28566efbd
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/env.d.ts
@@ -0,0 +1,17 @@
+type RenderEnv = 'client' | 'server';
+type HandoffState = 'pending' | 'complete';
+declare class Env {
+ current: RenderEnv;
+ handoffState: HandoffState;
+ currentId: number;
+ set(env: RenderEnv): void;
+ reset(): void;
+ nextId(): number;
+ get isServer(): boolean;
+ get isClient(): boolean;
+ private detect;
+ handoff(): void;
+ get isHandoffComplete(): boolean;
+}
+export declare let env: Env;
+export {};
diff --git a/node_modules/@headlessui/react/dist/utils/env.js b/node_modules/@headlessui/react/dist/utils/env.js
new file mode 100644
index 0000000000000000000000000000000000000000..be4399df4886c062d1339adafb315d5549ea8fc5
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/env.js
@@ -0,0 +1 @@
+var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!="symbol"?e+"":e,n),n);class o{constructor(){r(this,"current",this.detect());r(this,"handoffState","pending");r(this,"currentId",0)}set(e){this.current!==e&&(this.handoffState="pending",this.currentId=0,this.current=e)}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"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}}let s=new o;export{s as env};
diff --git a/node_modules/@headlessui/react/dist/utils/focus-management.d.ts b/node_modules/@headlessui/react/dist/utils/focus-management.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f44e1f1444ca7dc10e0284ce0e5b881501b7df5b
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/focus-management.d.ts
@@ -0,0 +1,50 @@
+import type { MutableRefObject } from 'react';
+export declare let focusableSelector: string;
+export declare enum Focus {
+ /** Focus the first non-disabled element */
+ First = 1,
+ /** Focus the previous non-disabled element */
+ Previous = 2,
+ /** Focus the next non-disabled element */
+ Next = 4,
+ /** Focus the last non-disabled element */
+ Last = 8,
+ /** Wrap tab around */
+ WrapAround = 16,
+ /** Prevent scrolling the focusable elements into view */
+ NoScroll = 32,
+ /** Focus the first focusable element with the `data-autofocus` attribute. */
+ AutoFocus = 64
+}
+export declare enum FocusResult {
+ /** Something went wrong while trying to focus. */
+ Error = 0,
+ /** When `Focus.WrapAround` is enabled, going from position `N` to `N+1` where `N` is the last index in the array, then we overflow. */
+ Overflow = 1,
+ /** Focus was successful. */
+ Success = 2,
+ /** When `Focus.WrapAround` is enabled, going from position `N` to `N-1` where `N` is the first index in the array, then we underflow. */
+ Underflow = 3
+}
+interface QuerySelectorAll {
+ querySelectorAll(selectors: string): NodeListOf;
+}
+export declare function getFocusableElements(container?: QuerySelectorAll | null): HTMLElement[];
+export declare function getAutoFocusableElements(container?: HTMLElement | null): HTMLElement[];
+export declare enum FocusableMode {
+ /** The element itself must be focusable. */
+ Strict = 0,
+ /** The element should be inside of a focusable element. */
+ Loose = 1
+}
+export declare function isFocusableElement(element: HTMLOrSVGElement & Element, mode?: FocusableMode): boolean;
+export declare function restoreFocusIfNecessary(element: HTMLElement | null): void;
+export declare function focusElement(element: HTMLOrSVGElement | null): void;
+export declare function sortByDomNode(nodes: T[], resolveKey?: (item: T) => HTMLElement | null): T[];
+export declare function focusFrom(current: HTMLElement | null, focus: Focus, container?: Document | ShadowRoot | HTMLElement | null): FocusResult;
+export declare function focusIn(container: HTMLElement | HTMLElement[], focus: Focus, { sorted, relativeTo, skipElements, }?: Partial<{
+ sorted: boolean;
+ relativeTo: HTMLElement | null;
+ skipElements: (HTMLElement | MutableRefObject)[];
+}>): FocusResult;
+export {};
diff --git a/node_modules/@headlessui/react/dist/utils/focus-management.js b/node_modules/@headlessui/react/dist/utils/focus-management.js
new file mode 100644
index 0000000000000000000000000000000000000000..756515c679ee1655a72c78ffbb3534207289d563
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/focus-management.js
@@ -0,0 +1 @@
+import{disposables as p}from'./disposables.js';import*as y from'./dom.js';import{match as L}from'./match.js';import{getActiveElement as b,getOwnerDocument as F,getRootNode as f}from'./owner.js';let E=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","details>summary","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),S=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var T=(o=>(o[o.First=1]="First",o[o.Previous=2]="Previous",o[o.Next=4]="Next",o[o.Last=8]="Last",o[o.WrapAround=16]="WrapAround",o[o.NoScroll=32]="NoScroll",o[o.AutoFocus=64]="AutoFocus",o))(T||{}),A=(n=>(n[n.Error=0]="Error",n[n.Overflow=1]="Overflow",n[n.Success=2]="Success",n[n.Underflow=3]="Underflow",n))(A||{}),O=(t=>(t[t.Previous=-1]="Previous",t[t.Next=1]="Next",t))(O||{});function x(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(E)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function h(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(S)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var I=(t=>(t[t.Strict=0]="Strict",t[t.Loose=1]="Loose",t))(I||{});function H(e,r=0){var t;return e===((t=F(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(E)},[1](){let l=e;for(;l!==null;){if(l.matches(E))return!0;l=l.parentElement}return!1}})}function K(e){p().nextFrame(()=>{let r=b(e);r&&y.isHTMLorSVGElement(r)&&!H(r,0)&&w(e)})}var g=(t=>(t[t.Keyboard=0]="Keyboard",t[t.Mouse=1]="Mouse",t))(g||{});typeof window!="undefined"&&typeof document!="undefined"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function w(e){e==null||e.focus({preventScroll:!0})}let _=["textarea","input"].join(",");function P(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,_))!=null?t:!1}function G(e,r=t=>t){return e.slice().sort((t,l)=>{let n=r(t),a=r(l);if(n===null||a===null)return 0;let u=n.compareDocumentPosition(a);return u&Node.DOCUMENT_POSITION_FOLLOWING?-1:u&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function R(e,r,t=e===null?document.body:f(e)){return v(x(t),r,{relativeTo:e})}function v(e,r,{sorted:t=!0,relativeTo:l=null,skipElements:n=[]}={}){let a=Array.isArray(e)?e.length>0?f(e[0]):document:f(e),u=Array.isArray(e)?t?G(e):e:r&64?h(e):x(e);n.length>0&&u.length>1&&(u=u.filter(i=>!n.some(d=>d!=null&&"current"in d?(d==null?void 0:d.current)===i:d===i))),l=l!=null?l:a==null?void 0:a.activeElement;let o=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),M=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,u.indexOf(l))-1;if(r&4)return Math.max(0,u.indexOf(l))+1;if(r&8)return u.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),N=r&32?{preventScroll:!0}:{},m=0,c=u.length,s;do{if(m>=c||m+c<=0)return 0;let i=M+m;if(r&16)i=(i+c)%c;else{if(i<0)return 3;if(i>=c)return 1}s=u[i],s==null||s.focus(N),m+=o}while(s!==b(s));return r&6&&P(s)&&s.select(),2}export{T as Focus,A as FocusResult,I as FocusableMode,w as focusElement,R as focusFrom,v as focusIn,E as focusableSelector,h as getAutoFocusableElements,x as getFocusableElements,H as isFocusableElement,K as restoreFocusIfNecessary,G as sortByDomNode};
diff --git a/node_modules/@headlessui/react/dist/utils/form.d.ts b/node_modules/@headlessui/react/dist/utils/form.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d39fbc7d8e68fb195e52f39e38a2858eaf7aa8c9
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/form.d.ts
@@ -0,0 +1,4 @@
+type Entries = [string, string][];
+export declare function objectToFormEntries(source?: Record, parentKey?: string | null, entries?: Entries): Entries;
+export declare function attemptSubmit(elementInForm: HTMLElement): void;
+export {};
diff --git a/node_modules/@headlessui/react/dist/utils/form.js b/node_modules/@headlessui/react/dist/utils/form.js
new file mode 100644
index 0000000000000000000000000000000000000000..83bce5b303e97c39d8c0e192bc3c2f933711cb5c
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/form.js
@@ -0,0 +1 @@
+import{isValidElement as f}from"react";function p(t={},i=null,n=[]){for(let[e,o]of Object.entries(t))s(n,r(i,e),o);return n}function r(t,i){return t?t+"["+i+"]":i}function s(t,i,n){if(Array.isArray(n))for(let[e,o]of n.entries())s(t,r(i,e.toString()),o);else n instanceof Date?t.push([i,n.toISOString()]):typeof n=="boolean"?t.push([i,n?"1":"0"]):typeof n=="string"?t.push([i,n]):typeof n=="number"?t.push([i,`${n}`]):n==null?t.push([i,""]):c(n)&&!f(n)&&p(n,i,t)}function g(t){var n,e;let i=(n=t==null?void 0:t.form)!=null?n:t.closest("form");if(i){for(let o of i.elements)if(o!==t&&(o.tagName==="INPUT"&&o.type==="submit"||o.tagName==="BUTTON"&&o.type==="submit"||o.nodeName==="INPUT"&&o.type==="image")){o.click();return}(e=i.requestSubmit)==null||e.call(i)}}function c(t){if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let i=Object.getPrototypeOf(t);return i===null||Object.getPrototypeOf(i)===null}export{g as attemptSubmit,p as objectToFormEntries};
diff --git a/node_modules/@headlessui/react/dist/utils/get-text-value.d.ts b/node_modules/@headlessui/react/dist/utils/get-text-value.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7fb96d7f00bc8239837c6827deae29302eb9a1a3
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/get-text-value.d.ts
@@ -0,0 +1 @@
+export declare function getTextValue(element: HTMLElement): string;
diff --git a/node_modules/@headlessui/react/dist/utils/get-text-value.js b/node_modules/@headlessui/react/dist/utils/get-text-value.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5a01c1ed00a041d5b3a90b072fdf61df966cdc5
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/get-text-value.js
@@ -0,0 +1 @@
+import*as g from'./dom.js';let a=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function o(e){var l,n;let i=(l=e.innerText)!=null?l:"",t=e.cloneNode(!0);if(!g.isHTMLElement(t))return i;let u=!1;for(let f of t.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))f.remove(),u=!0;let r=u?(n=t.innerText)!=null?n:"":i;return a.test(r)&&(r=r.replace(a,"")),r}function F(e){let i=e.getAttribute("aria-label");if(typeof i=="string")return i.trim();let t=e.getAttribute("aria-labelledby");if(t){let u=t.split(" ").map(r=>{let l=document.getElementById(r);if(l){let n=l.getAttribute("aria-label");return typeof n=="string"?n.trim():o(l).trim()}return null}).filter(Boolean);if(u.length>0)return u.join(", ")}return o(e).trim()}export{F as getTextValue};
diff --git a/node_modules/@headlessui/react/dist/utils/match.d.ts b/node_modules/@headlessui/react/dist/utils/match.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cc266b60c339002ab264707b0b90dd02b7721f5a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/match.d.ts
@@ -0,0 +1 @@
+export declare function match(value: TValue, lookup: Record TReturnValue)>, ...args: any[]): TReturnValue;
diff --git a/node_modules/@headlessui/react/dist/utils/match.js b/node_modules/@headlessui/react/dist/utils/match.js
new file mode 100644
index 0000000000000000000000000000000000000000..f80912d7a5b193c3602cf431b776ffedd8cdb3d7
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/match.js
@@ -0,0 +1 @@
+function u(r,n,...a){if(r in n){let e=n[r];return typeof e=="function"?e(...a):e}let t=new Error(`Tried to handle "${r}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`"${e}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};
diff --git a/node_modules/@headlessui/react/dist/utils/micro-task.d.ts b/node_modules/@headlessui/react/dist/utils/micro-task.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..140784256cbf38c356b79d67e445a3dc8f6f0b4b
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/micro-task.d.ts
@@ -0,0 +1 @@
+export declare function microTask(cb: () => void): void;
diff --git a/node_modules/@headlessui/react/dist/utils/micro-task.js b/node_modules/@headlessui/react/dist/utils/micro-task.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3e4c777ea5a5a7e6a0da2fc8460f51d38a1e4ac
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/micro-task.js
@@ -0,0 +1 @@
+function t(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};
diff --git a/node_modules/@headlessui/react/dist/utils/once.d.ts b/node_modules/@headlessui/react/dist/utils/once.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cc1f09b5025da13aebaf4028c8eb6a7ef4d5c542
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/once.d.ts
@@ -0,0 +1 @@
+export declare function once(cb: (...args: T[]) => void): (...args: T[]) => void;
diff --git a/node_modules/@headlessui/react/dist/utils/once.js b/node_modules/@headlessui/react/dist/utils/once.js
new file mode 100644
index 0000000000000000000000000000000000000000..12f474065f5e954287e56a1fb7614b8d3a6a5952
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/once.js
@@ -0,0 +1 @@
+function l(r){let e={called:!1};return(...t)=>{if(!e.called)return e.called=!0,r(...t)}}export{l as once};
diff --git a/node_modules/@headlessui/react/dist/utils/owner.d.ts b/node_modules/@headlessui/react/dist/utils/owner.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8758ceddad16763de5639d119427ece2fbea942c
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/owner.d.ts
@@ -0,0 +1,4 @@
+export declare function getOwnerDocument(element: T | null | undefined): Document | null;
+export declare function getRootNode(element: T | null | undefined): Document | ShadowRoot | null;
+export declare function getActiveElement(element: Element | null | undefined): Element | null;
+export declare function isActiveElement(element: Element | null | undefined): boolean;
diff --git a/node_modules/@headlessui/react/dist/utils/owner.js b/node_modules/@headlessui/react/dist/utils/owner.js
new file mode 100644
index 0000000000000000000000000000000000000000..c14be927c87c1033a930efe0a04a72aefb187bdc
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/owner.js
@@ -0,0 +1 @@
+import{env as t}from'./env.js';function l(n){var u;return t.isServer?null:n==null?document:(u=n==null?void 0:n.ownerDocument)!=null?u:document}function r(n){var u,o;return t.isServer?null:n==null?document:(o=(u=n==null?void 0:n.getRootNode)==null?void 0:u.call(n))!=null?o:document}function e(n){var u,o;return(o=(u=r(n))==null?void 0:u.activeElement)!=null?o:null}function d(n){return e(n)===n}export{e as getActiveElement,l as getOwnerDocument,r as getRootNode,d as isActiveElement};
diff --git a/node_modules/@headlessui/react/dist/utils/platform.d.ts b/node_modules/@headlessui/react/dist/utils/platform.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0df3bb0c6f4432353aa75a1ed71d677f52ff47cd
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/platform.d.ts
@@ -0,0 +1,3 @@
+export declare function isIOS(): boolean;
+export declare function isAndroid(): boolean;
+export declare function isMobile(): boolean;
diff --git a/node_modules/@headlessui/react/dist/utils/platform.js b/node_modules/@headlessui/react/dist/utils/platform.js
new file mode 100644
index 0000000000000000000000000000000000000000..5fd20ab753246a9add0cfb5124d18878c78ee58a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/platform.js
@@ -0,0 +1 @@
+function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};
diff --git a/node_modules/@headlessui/react/dist/utils/render.d.ts b/node_modules/@headlessui/react/dist/utils/render.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..43dd50649205885b1c01502d86cabdc668b3bd1a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/render.d.ts
@@ -0,0 +1,81 @@
+import React, { Fragment, type ElementType, type Ref } from 'react';
+import type { Expand, Props } from '../types.js';
+export declare enum RenderFeatures {
+ /** No features at all */
+ None = 0,
+ /**
+ * When used, this will allow us to use one of the render strategies.
+ *
+ * **The render strategies are:**
+ * - **Unmount** _(Will unmount the component.)_
+ * - **Hidden** _(Will hide the component using the [hidden] attribute.)_
+ */
+ RenderStrategy = 1,
+ /**
+ * When used, this will allow the user of our component to be in control. This can be used when
+ * you want to transition based on some state.
+ */
+ Static = 2
+}
+export declare enum RenderStrategy {
+ Unmount = 0,
+ Hidden = 1
+}
+type UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;
+type PropsForFeature = TPassedInFeatures extends TForFeature ? TProps : {};
+export type PropsForFeatures = Expand | PropsForFeature>>;
+export declare function useRender(): typeof render;
+declare function render({ ourProps, theirProps, slot, defaultTag, features, visible, name, mergeRefs, }: {
+ ourProps: Expand & PropsForFeatures> & {
+ ref?: Ref;
+ };
+ theirProps: Expand>;
+ slot?: TSlot;
+ defaultTag: ElementType;
+ features?: TFeature;
+ visible?: boolean;
+ name: string;
+ mergeRefs?: ReturnType;
+}): ReturnType | null;
+declare function _render(props: Props & {
+ ref?: unknown;
+}, slot: TSlot | undefined, tag: ElementType, name: string, mergeRefs: ReturnType): React.ReactElement>;
+/**
+ * This is a singleton hook. **You can ONLY call the returned
+ * function *once* to produce expected results.** If you need
+ * to call `mergeRefs()` multiple times you need to create a
+ * separate function for each invocation. This happens as we
+ * store the list of `refs` to update and always return the
+ * same function that refers to that list of refs.
+ *
+ * You shouldn't normally read refs during render but this
+ * should actually be okay because React itself is calling
+ * the `function` that updates these refs and can only do
+ * so once the ref that contains the list is updated.
+ */
+declare function useMergeRefsFn(): (...refs: any[]) => ((value: any) => void) | undefined;
+export type HasDisplayName = {
+ displayName: string;
+};
+export type RefProp = T extends (props: any, ref: Ref) => any ? {
+ ref?: Ref;
+} : never;
+export declare function mergeProps[]>(...listOfProps: T): Props;
+/**
+ * This is a hack, but basically we want to keep the full 'API' of the component, but we do want to
+ * wrap it in a forwardRef so that we _can_ passthrough the ref
+ */
+export declare function forwardRefWithAs(component: T): T & {
+ displayName: string;
+};
+export declare function compact>(object: T): {} & T;
+export declare function isFragment(element: any): element is typeof Fragment;
+export declare function isFragmentInstance(element: React.ReactElement): boolean;
+export {};
diff --git a/node_modules/@headlessui/react/dist/utils/render.js b/node_modules/@headlessui/react/dist/utils/render.js
new file mode 100644
index 0000000000000000000000000000000000000000..2110491ecf427d530faffadee51048390abe253c
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/render.js
@@ -0,0 +1,4 @@
+import v,{Fragment as S,cloneElement as j,createElement as w,forwardRef as k,isValidElement as M,useCallback as x,useRef as O}from"react";import{classNames as N}from'./class-names.js';import{match as $}from'./match.js';var A=(a=>(a[a.None=0]="None",a[a.RenderStrategy=1]="RenderStrategy",a[a.Static=2]="Static",a))(A||{}),C=(t=>(t[t.Unmount=0]="Unmount",t[t.Hidden=1]="Hidden",t))(C||{});function K(){let e=I();return x(r=>U({mergeRefs:e,...r}),[e])}function U({ourProps:e,theirProps:r,slot:t,defaultTag:a,features:o,visible:n=!0,name:i,mergeRefs:l}){l=l!=null?l:H;let s=P(r,e);if(n)return F(s,t,a,i,l);let y=o!=null?o:0;if(y&2){let{static:f=!1,...u}=s;if(f)return F(u,t,a,i,l)}if(y&1){let{unmount:f=!0,...u}=s;return $(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:"none"}},t,a,i,l)}})}return F(s,t,a,i,l)}function F(e,r={},t,a,o){let{as:n=t,children:i,refName:l="ref",...s}=h(e,["unmount","static"]),y=e.ref!==void 0?{[l]:e.ref}:{},f=typeof i=="function"?i(r):i;f=E(f),"className"in s&&s.className&&typeof s.className=="function"&&(s.className=s.className(r)),s["aria-labelledby"]&&s["aria-labelledby"]===s.id&&(s["aria-labelledby"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T=="boolean"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u["data-headlessui-state"]=p.join(" ");for(let c of p)u[`data-${c}`]=""}}if(b(n)&&(Object.keys(m(s)).length>0||Object.keys(m(u)).length>0))if(!M(f)||Array.isArray(f)&&f.length>1||L(f)){if(Object.keys(m(s)).length>0)throw new Error(['Passing props on "Fragment"!',"",`The current component <${a} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(m(s)).concat(Object.keys(m(u))).map(d=>` - ${d}`).join(`
+`),"","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(d=>` - ${d}`).join(`
+`)].join(`
+`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p=="function"?(...R)=>N(p(...R),s.className):N(p,s.className),T=c?{className:c}:{},g=P(f.props,m(h(s,["ref"])));for(let R in u)R in g&&delete u[R];return j(f,Object.assign({},g,u,y,{ref:o(D(f),y.ref)},T))}return w(n,Object.assign({},h(s,["ref"]),!b(n)&&y,!b(n)&&u),f)}function I(){let e=O([]),r=x(t=>{for(let a of e.current)a!=null&&(typeof a=="function"?a(t):a.current=t)},[]);return(...t)=>{if(!t.every(a=>a==null))return e.current=t,r}}function H(...e){return e.every(r=>r==null)?void 0:r=>{for(let t of e)t!=null&&(typeof t=="function"?t(r):t.current=r)}}function P(...e){var a;if(e.length===0)return{};if(e.length===1)return e[0];let r={},t={};for(let o of e)for(let n in o)n.startsWith("on")&&typeof o[n]=="function"?((a=t[n])!=null||(t[n]=[]),t[n].push(o[n])):r[n]=o[n];if(r.disabled||r["aria-disabled"])for(let o in t)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(o)&&(t[o]=[n=>{var i;return(i=n==null?void 0:n.preventDefault)==null?void 0:i.call(n)}]);for(let o in t)Object.assign(r,{[o](n,...i){let l=t[o];for(let s of l){if((n instanceof Event||(n==null?void 0:n.nativeEvent)instanceof Event)&&n.defaultPrevented)return;s(n,...i)}}});return r}function V(...e){var a;if(e.length===0)return{};if(e.length===1)return e[0];let r={},t={};for(let o of e)for(let n in o)n.startsWith("on")&&typeof o[n]=="function"?((a=t[n])!=null||(t[n]=[]),t[n].push(o[n])):r[n]=o[n];for(let o in t)Object.assign(r,{[o](...n){let i=t[o];for(let l of i)l==null||l(...n)}});return r}function Y(e){var r;return Object.assign(k(e),{displayName:(r=e.displayName)!=null?r:e.name})}function m(e){let r=Object.assign({},e);for(let t in r)r[t]===void 0&&delete r[t];return r}function h(e,r=[]){let t=Object.assign({},e);for(let a of r)a in t&&delete t[a];return t}function D(e){return v.version.split(".")[0]>="19"?e.props.ref:e.ref}function E(e){if(e!=null&&e.$$typeof===Symbol.for("react.lazy")){let r=e._payload;if(r!=null&&r.status==="fulfilled")return E(r.value)}return e}function b(e){return e===S||e===Symbol.for("react.fragment")}function L(e){return b(e.type)}export{A as RenderFeatures,C as RenderStrategy,m as compact,Y as forwardRefWithAs,b as isFragment,L as isFragmentInstance,V as mergeProps,K as useRender};
diff --git a/node_modules/@headlessui/react/dist/utils/stable-collection.d.ts b/node_modules/@headlessui/react/dist/utils/stable-collection.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..44790c542a3f9b6dd2a986e4143443a8ffce5e99
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/stable-collection.d.ts
@@ -0,0 +1,5 @@
+import * as React from 'react';
+export declare function StableCollection({ children }: {
+ children: React.ReactNode | React.ReactNode[];
+}): React.JSX.Element;
+export declare function useStableCollectionIndex(group: string): number;
diff --git a/node_modules/@headlessui/react/dist/utils/stable-collection.js b/node_modules/@headlessui/react/dist/utils/stable-collection.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cc02770856ee938874a36ce858234b8fd3692b5
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/stable-collection.js
@@ -0,0 +1 @@
+import*as l from"react";const s=l.createContext(null);function a(){return{groups:new Map,get(o,e){var i;let t=this.groups.get(o);t||(t=new Map,this.groups.set(o,t));let n=(i=t.get(e))!=null?i:0;t.set(e,n+1);let r=Array.from(t.keys()).indexOf(e);function u(){let c=t.get(e);c>1?t.set(e,c-1):t.delete(e)}return[r,u]}}}function f({children:o}){let e=l.useRef(a());return l.createElement(s.Provider,{value:e},o)}function C(o){let e=l.useContext(s);if(!e)throw new Error("You must wrap your component in a ");let t=l.useId(),[n,r]=e.current.get(o,t);return l.useEffect(()=>r,[]),n}export{f as StableCollection,C as useStableCollectionIndex};
diff --git a/node_modules/@headlessui/react/dist/utils/start-transition.d.ts b/node_modules/@headlessui/react/dist/utils/start-transition.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..01cc687afe569bd175125f0da54cbdbb9683c2dd
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/start-transition.d.ts
@@ -0,0 +1,2 @@
+import React from 'react';
+export declare let startTransition: typeof React.startTransition;
diff --git a/node_modules/@headlessui/react/dist/utils/start-transition.js b/node_modules/@headlessui/react/dist/utils/start-transition.js
new file mode 100644
index 0000000000000000000000000000000000000000..f4b61d7aba74f0d8d8c98bb934d3d4e5c37c8d3a
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/start-transition.js
@@ -0,0 +1 @@
+var t;import r from"react";let a=(t=r.startTransition)!=null?t:function(i){i()};export{a as startTransition};
diff --git a/node_modules/@headlessui/react/dist/utils/store.d.ts b/node_modules/@headlessui/react/dist/utils/store.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0db445f44e61e199798d80d26dc6c9aa52181d93
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/store.d.ts
@@ -0,0 +1,11 @@
+type ChangeFn = () => void;
+type UnsubscribeFn = () => void;
+type ActionFn = (this: T, ...args: any[]) => T | void;
+type StoreActions = Record>;
+export interface Store {
+ getSnapshot(): T;
+ subscribe(onChange: ChangeFn): UnsubscribeFn;
+ dispatch(action: ActionKey, ...args: any[]): void;
+}
+export declare function createStore(initial: () => T, actions: StoreActions): Store;
+export {};
diff --git a/node_modules/@headlessui/react/dist/utils/store.js b/node_modules/@headlessui/react/dist/utils/store.js
new file mode 100644
index 0000000000000000000000000000000000000000..14116c6732f198e4f140b256ca53e7ceb5a4f506
--- /dev/null
+++ b/node_modules/@headlessui/react/dist/utils/store.js
@@ -0,0 +1 @@
+function a(o,r){let t=o(),n=new Set;return{getSnapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},dispatch(e,...s){let i=r[e].call(t,...s);i&&(t=i,n.forEach(c=>c()))}}}export{a as createStore};
diff --git a/node_modules/@headlessui/react/package.json b/node_modules/@headlessui/react/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..79ec21e8b9fc77ac73b975a6438d92ad1012e34a
--- /dev/null
+++ b/node_modules/@headlessui/react/package.json
@@ -0,0 +1,65 @@
+{
+ "name": "@headlessui/react",
+ "version": "2.2.10",
+ "description": "A set of completely unstyled, fully accessible UI components for React, designed to integrate beautifully with Tailwind CSS.",
+ "main": "dist/index.cjs",
+ "typings": "dist/index.d.ts",
+ "module": "dist/headlessui.esm.js",
+ "license": "MIT",
+ "files": [
+ "README.md",
+ "dist"
+ ],
+ "exports": {
+ "types": {
+ "import": "./dist/index.d.ts",
+ "require": "./dist/index.d.cts"
+ },
+ "import": "./dist/headlessui.esm.js",
+ "require": "./dist/index.cjs"
+ },
+ "type": "module",
+ "sideEffects": false,
+ "engines": {
+ "node": ">=10"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/tailwindlabs/headlessui.git",
+ "directory": "packages/@headlessui-react"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "prepublishOnly": "npm run build",
+ "build": "../../scripts/build.sh --external:react --external:react-dom --external:use-sync-external-store",
+ "watch": "../../scripts/watch.sh --external:react --external:react-dom --external:use-sync-external-store",
+ "test": "../../scripts/test.sh",
+ "lint": "../../scripts/lint.sh",
+ "lint-types": "npm run attw -P --workspaces --if-present",
+ "playground": "npm run dev --workspace=playground-react",
+ "clean": "rimraf ./dist"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ },
+ "devDependencies": {
+ "@testing-library/react": "^15.0.7",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@types/use-sync-external-store": "^1.5.0",
+ "jsdom-testing-mocks": "^1.13.1",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "snapshot-diff": "^0.10.0"
+ },
+ "dependencies": {
+ "@floating-ui/react": "^0.26.16",
+ "@react-aria/focus": "^3.20.2",
+ "@react-aria/interactions": "^3.25.0",
+ "@tanstack/react-virtual": "^3.13.9",
+ "use-sync-external-store": "^1.5.0"
+ }
+}
diff --git a/node_modules/@hookform/resolvers/LICENSE b/node_modules/@hookform/resolvers/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..139faf48e1b4926a8743bc7a5bd67287f43f0dd0
--- /dev/null
+++ b/node_modules/@hookform/resolvers/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019-present Beier(Bill) Luo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@hookform/resolvers/README.md b/node_modules/@hookform/resolvers/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..25b0aa8457ca3eb952aa392641a93c7a79fea9f3
--- /dev/null
+++ b/node_modules/@hookform/resolvers/README.md
@@ -0,0 +1,1038 @@
+