Socket
Socket
Sign inDemoInstall

@headlessui/react

Package Overview
Dependencies
22
Maintainers
0
Versions
679
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.0-insiders.1c2982a to 0.0.0-insiders.1c3f9a6

dist/components/close-button/close-button.d.ts

2

dist/components/button/button.js

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as b}from"@react-aria/focus";import{useHover as c}from"@react-aria/interactions";import{useMemo as P}from"react";import{useActivePress as B}from'../../hooks/use-active-press.js';import{useDisabled as A}from'../../internal/disabled.js';import{forwardRefWithAs as F,mergeProps as g,render as _}from'../../utils/render.js';let v="button";function E(o,l){var p,a;let i=A(),{disabled:e=i||!1,...t}=o,{isFocusVisible:s,focusProps:T}=b({autoFocus:(p=o.autoFocus)!=null?p:!1}),{isHovered:n,hoverProps:f}=c({isDisabled:e}),{pressed:r,pressProps:m}=B({disabled:e}),d=g({ref:l,disabled:e||void 0,type:(a=t.type)!=null?a:"button"},T,f,m),y=P(()=>{var u;return{disabled:e,hover:n,focus:s,active:r,autofocus:(u=o.autoFocus)!=null?u:!1}},[e,n,s,r,o.autoFocus]);return _({ourProps:d,theirProps:t,slot:y,defaultTag:v,name:"Button"})}let H=F(E);export{H as Button};
"use client";import{useFocusRing as y}from"@react-aria/focus";import{useHover as b}from"@react-aria/interactions";import{useMemo as P}from"react";import{useActivePress as B}from'../../hooks/use-active-press.js';import{useDisabled as c}from'../../internal/disabled.js';import{forwardRefWithAs as A,mergeProps as g,render as _}from'../../utils/render.js';let v="button";function E(a,u){var p;let l=c(),{disabled:e=l||!1,autoFocus:t=!1,...o}=a,{isFocusVisible:r,focusProps:i}=y({autoFocus:t}),{isHovered:s,hoverProps:T}=b({isDisabled:e}),{pressed:n,pressProps:f}=B({disabled:e}),m=g({ref:u,type:(p=o.type)!=null?p:"button",disabled:e||void 0,autoFocus:t},i,T,f),d=P(()=>({disabled:e,hover:s,focus:r,active:n,autofocus:t}),[e,s,r,n,t]);return _({ourProps:m,theirProps:o,slot:d,defaultTag:v,name:"Button"})}let h=A(E);export{h as Button};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as X}from"@react-aria/focus";import{useHover as G}from"@react-aria/interactions";import n,{useCallback as U,useMemo as S,useState as W}from"react";import{useActivePress as N}from'../../hooks/use-active-press.js';import{useControllable as J}from'../../hooks/use-controllable.js';import{useDisposables as V}from'../../hooks/use-disposables.js';import{useEvent as l}from'../../hooks/use-event.js';import{useId as $}from'../../hooks/use-id.js';import{useDisabled as j}from'../../internal/disabled.js';import{FormFields as q}from'../../internal/form-fields.js';import{useProvidedId as z}from'../../internal/id.js';import{isDisabledReactIssue7711 as T}from'../../utils/bugs.js';import{forwardRefWithAs as Q,mergeProps as Y,render as Z}from'../../utils/render.js';import{useDescribedBy as ee}from'../description/description.js';import{Keys as oe}from'../keyboard.js';import{useLabelledBy as te}from'../label/label.js';let re="span";function ae(a,h){var y;let C=$(),k=z(),x=j(),{id:g=k||`headlessui-checkbox-${C}`,disabled:e=x||!1,checked:E,defaultChecked:i=!1,onChange:v,name:d,value:P,form:D,indeterminate:s=!1,...F}=a,[r,t]=J(E,v,i),A=te(),R=ee(),_=V(),[c,p]=W(!1),u=l(()=>{p(!0),t==null||t(!r),_.nextFrame(()=>{p(!1)})}),K=l(o=>{if(T(o.currentTarget))return o.preventDefault();u()}),H=l(o=>{if(T(o.currentTarget))return o.preventDefault();switch(o.key){case oe.Space:o.preventDefault(),u();break}}),{isFocusVisible:f,focusProps:B}=X({autoFocus:(y=a.autoFocus)!=null?y:!1}),{isHovered:m,hoverProps:I}=G({isDisabled:e!=null?e:!1}),{pressed:b,pressProps:L}=N({disabled:e!=null?e:!1}),w=Y({ref:h,id:g,role:"checkbox","aria-checked":s?"mixed":r?"true":"false","aria-labelledby":A,"aria-describedby":R,"aria-disabled":e?!0:void 0,indeterminate:s?"true":void 0,tabIndex:0,onKeyDown:e?void 0:H,onClick:e?void 0:K},B,I,L),M=S(()=>{var o;return{checked:r,disabled:e,hover:m,focus:f,active:b,indeterminate:s,changing:c,autofocus:(o=a.autoFocus)!=null?o:!1}},[r,s,e,m,f,b,c,a.autoFocus]),O=U(()=>t==null?void 0:t(i),[t]);return n.createElement(n.Fragment,null,d!=null&&n.createElement(q,{data:r?{[d]:P||"on"}:{},form:D,onReset:O}),Z({ourProps:w,theirProps:F,slot:M,defaultTag:re,name:"Checkbox"}))}let xe=Q(ae);export{xe as Checkbox};
"use client";import{useFocusRing as S}from"@react-aria/focus";import{useHover as W}from"@react-aria/interactions";import i,{useCallback as N,useMemo as V,useState as w}from"react";import{useActivePress as J}from'../../hooks/use-active-press.js';import{useControllable as $}from'../../hooks/use-controllable.js';import{useDefaultValue as j}from'../../hooks/use-default-value.js';import{useDisposables as q}from'../../hooks/use-disposables.js';import{useEvent as l}from'../../hooks/use-event.js';import{useId as z}from'../../hooks/use-id.js';import{useDisabled as Q}from'../../internal/disabled.js';import{FormFields as Y}from'../../internal/form-fields.js';import{useProvidedId as Z}from'../../internal/id.js';import{isDisabledReactIssue7711 as ee}from'../../utils/bugs.js';import{attemptSubmit as oe}from'../../utils/form.js';import{forwardRefWithAs as te,mergeProps as re,render as ae}from'../../utils/render.js';import{useDescribedBy as ne}from'../description/description.js';import{Keys as y}from'../keyboard.js';import{useLabelledBy as le}from'../label/label.js';let se="span";function ie(T,h){let C=z(),k=Z(),x=Q(),{id:g=k||`headlessui-checkbox-${C}`,disabled:e=x||!1,autoFocus:s=!1,checked:E,defaultChecked:v,onChange:P,name:d,value:D,form:R,indeterminate:n=!1,...A}=T,r=j(v),[a,t]=$(E,P,r!=null?r:!1),F=le(),K=ne(),_=q(),[p,c]=w(!1),u=l(()=>{c(!0),t==null||t(!a),_.nextFrame(()=>{c(!1)})}),H=l(o=>{if(ee(o.currentTarget))return o.preventDefault();o.preventDefault(),u()}),B=l(o=>{o.key===y.Space?(o.preventDefault(),u()):o.key===y.Enter&&oe(o.currentTarget)}),L=l(o=>o.preventDefault()),{isFocusVisible:m,focusProps:I}=S({autoFocus:s}),{isHovered:f,hoverProps:M}=W({isDisabled:e}),{pressed:b,pressProps:U}=J({disabled:e}),O=re({ref:h,id:g,role:"checkbox","aria-checked":n?"mixed":a?"true":"false","aria-labelledby":F,"aria-describedby":K,"aria-disabled":e?!0:void 0,indeterminate:n?"true":void 0,tabIndex:e?void 0:0,onKeyUp:e?void 0:B,onKeyPress:e?void 0:L,onClick:e?void 0:H},I,M,U),X=V(()=>({checked:a,disabled:e,hover:f,focus:m,active:b,indeterminate:n,changing:p,autofocus:s}),[a,n,e,f,m,b,p,s]),G=N(()=>{if(r!==void 0)return t==null?void 0:t(r)},[t,r]);return i.createElement(i.Fragment,null,d!=null&&i.createElement(Y,{disabled:e,data:{[d]:D||"on"},overrides:{type:"checkbox",checked:a},form:R,onReset:G}),ae({ourProps:O,theirProps:A,slot:X,defaultTag:se,name:"Checkbox"}))}let Re=te(ie);export{Re as Checkbox};
import React, { type ElementType, type Ref } from 'react';
import { type ByComparator } from '../../hooks/use-by-comparator.js';
import { type TransitionData } from '../../hooks/use-transition.js';
import { type AnchorProps } from '../../internal/floating.js';
import type { EnsureArray, Expand, Props } from '../../types.js';
import type { EnsureArray, Props } from '../../types.js';
import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js';

@@ -17,38 +18,11 @@ import { type _internal_ComponentLabel } from '../label/label.js';

};
type O = 'value' | 'defaultValue' | 'nullable' | 'multiple' | 'onChange' | 'by';
type ComboboxValueProps<TValue, TNullable extends boolean | undefined, TMultiple extends boolean | undefined, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG> = Extract<({
value?: EnsureArray<TValue>;
defaultValue?: EnsureArray<TValue>;
nullable: true;
multiple: true;
onChange?(value: EnsureArray<TValue>): void;
by?: ByComparator<TValue>;
} & Props<TTag, ComboboxRenderPropArg<EnsureArray<TValue>, TValue>, O>) | ({
value?: TValue | null;
defaultValue?: TValue | null;
nullable: true;
multiple?: false;
onChange?(value: TValue | null): void;
by?: ByComparator<TValue | null>;
} & Expand<Props<TTag, ComboboxRenderPropArg<TValue | null>, O>>) | ({
value?: EnsureArray<TValue>;
defaultValue?: EnsureArray<TValue>;
nullable?: false;
multiple: true;
onChange?(value: EnsureArray<TValue>): void;
by?: ByComparator<TValue extends Array<infer U> ? U : TValue>;
} & Expand<Props<TTag, ComboboxRenderPropArg<EnsureArray<TValue>, TValue>, O>>) | ({
value?: TValue;
nullable?: false;
multiple?: false;
defaultValue?: TValue;
onChange?(value: TValue): void;
by?: ByComparator<TValue>;
} & Props<TTag, ComboboxRenderPropArg<TValue>, O>), {
nullable?: TNullable;
export type ComboboxProps<TValue, TMultiple extends boolean | undefined, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG> = Props<TTag, ComboboxRenderPropArg<NoInfer<TValue>>, 'value' | 'defaultValue' | 'multiple' | 'onChange' | 'by', {
value?: TMultiple extends true ? EnsureArray<TValue> : TValue;
defaultValue?: TMultiple extends true ? EnsureArray<NoInfer<TValue>> : NoInfer<TValue>;
onChange?(value: TMultiple extends true ? EnsureArray<NoInfer<TValue>> : NoInfer<TValue> | null): void;
by?: ByComparator<TMultiple extends true ? EnsureArray<NoInfer<TValue>>[number] : NoInfer<TValue>>;
/** @deprecated The `<Combobox />` is now nullable default */
nullable?: boolean;
multiple?: TMultiple;
}>;
export type ComboboxProps<TValue, TNullable extends boolean | undefined, TMultiple extends boolean | undefined, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG> = ComboboxValueProps<TValue, TNullable, TMultiple, TTag> & {
disabled?: boolean;
__demoMode?: boolean;
form?: string;

@@ -58,10 +32,9 @@ name?: string;

virtual?: {
options: TValue[];
disabled?: (value: TValue) => boolean;
options: NoInfer<TValue>[];
disabled?: (value: NoInfer<TValue>) => boolean;
} | null;
};
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, true, true, TTag>, ref: Ref<HTMLElement>): JSX.Element;
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, true, false, TTag>, ref: Ref<HTMLElement>): JSX.Element;
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, false, false, TTag>, ref: Ref<HTMLElement>): JSX.Element;
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, false, true, TTag>, ref: Ref<HTMLElement>): JSX.Element;
onClose?(): void;
__demoMode?: boolean;
}>;
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, boolean | undefined, TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_INPUT_TAG: "input";

@@ -78,2 +51,3 @@ type InputRenderPropArg = {

defaultValue?: TType;
disabled?: boolean;
displayValue?(item: TType): string;

@@ -96,9 +70,10 @@ onChange?(event: React.ChangeEvent<HTMLInputElement>): void;

autoFocus?: boolean;
disabled?: boolean;
}>;
declare function ButtonFn<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ComboboxButtonProps<TTag>, ref: Ref<HTMLButtonElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_OPTIONS_TAG: "ul";
declare let DEFAULT_OPTIONS_TAG: "div";
type OptionsRenderPropArg = {
open: boolean;
option: unknown;
};
} & TransitionData;
type OptionsPropsWeControl = 'aria-labelledby' | 'aria-multiselectable' | 'role' | 'tabIndex';

@@ -109,5 +84,8 @@ declare let OptionsRenderFeatures: number;

anchor?: AnchorProps;
portal?: boolean;
modal?: boolean;
transition?: boolean;
}>;
declare function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ComboboxOptionsProps<TTag>, ref: Ref<HTMLUListElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_OPTION_TAG: "li";
declare function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ComboboxOptionsProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_OPTION_TAG: "div";
type OptionRenderPropArg = {

@@ -126,8 +104,5 @@ focus: boolean;

}>;
declare function OptionFn<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = Parameters<typeof ComboboxRoot>[0]['value']>(props: ComboboxOptionProps<TTag, TType>, ref: Ref<HTMLLIElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare function OptionFn<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = Parameters<typeof ComboboxRoot>[0]['value']>(props: ComboboxOptionProps<TTag, TType>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export interface _internal_ComponentCombobox extends HasDisplayName {
<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, true, true, TTag> & RefProp<typeof ComboboxFn>): JSX.Element;
<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, true, false, TTag> & RefProp<typeof ComboboxFn>): JSX.Element;
<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, false, true, TTag> & RefProp<typeof ComboboxFn>): JSX.Element;
<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, false, false, TTag> & RefProp<typeof ComboboxFn>): JSX.Element;
<TValue, TMultiple extends boolean | undefined = false, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, TMultiple, TTag> & RefProp<typeof ComboboxFn>): JSX.Element;
}

@@ -156,9 +131,13 @@ export interface _internal_ComponentComboboxButton extends HasDisplayName {

export declare let Combobox: _internal_ComponentCombobox & {
/** @deprecated use `<ComboboxInput>` instead of `<Combobox.Input>` */
Input: _internal_ComponentComboboxInput;
/** @deprecated use `<ComboboxButton>` instead of `<Combobox.Button>` */
Button: _internal_ComponentComboboxButton;
/** @deprecated use `<Label>` instead of `<Combobox.Label>` */
Label: _internal_ComponentComboboxLabel;
/** @deprecated use `<ComboboxOptions>` instead of `<Combobox.Options>` */
Options: _internal_ComponentComboboxOptions;
/** @deprecated use `<ComboboxOption>` instead of `<Combobox.Option>` */
Option: _internal_ComponentComboboxOption;
};
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as ge}from"@react-aria/focus";import{useHover as ve}from"@react-aria/interactions";import{useVirtualizer as Fe}from"@tanstack/react-virtual";import w,{Fragment as Oe,createContext as se,createRef as _e,useCallback as Ce,useContext as de,useMemo as j,useReducer as Ve,useRef as H,useState as De}from"react";import{useActivePress as he}from'../../hooks/use-active-press.js';import{useByComparator as Me}from'../../hooks/use-by-comparator.js';import{useControllable as Le}from'../../hooks/use-controllable.js';import{useDisposables as ye}from'../../hooks/use-disposables.js';import{useEvent as x}from'../../hooks/use-event.js';import{useId as re}from'../../hooks/use-id.js';import{useIsoMorphicEffect as K}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Be}from'../../hooks/use-latest-value.js';import{useOutsideClick as we}from'../../hooks/use-outside-click.js';import{useOwnerDocument as Ue}from'../../hooks/use-owner.js';import{useResolveButtonType as ke}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as ae}from'../../hooks/use-sync-refs.js';import{useTrackedPointer as Ne}from'../../hooks/use-tracked-pointer.js';import{useTreeWalker as Ge}from'../../hooks/use-tree-walker.js';import{useWatch as Re}from'../../hooks/use-watch.js';import{useDisabled as He}from'../../internal/disabled.js';import{FloatingProvider as Xe,useFloatingPanel as je,useFloatingPanelProps as Ke,useFloatingReference as Je}from'../../internal/floating.js';import{FormFields as We}from'../../internal/form-fields.js';import{useProvidedId as $e}from'../../internal/id.js';import{OpenClosedProvider as ze,State as ie,useOpenClosed as qe}from'../../internal/open-closed.js';import{history as Ae}from'../../utils/active-element-history.js';import{isDisabledReactIssue7711 as Ye}from'../../utils/bugs.js';import{Focus as S,calculateActiveIndex as Pe}from'../../utils/calculate-active-index.js';import{disposables as Se}from'../../utils/disposables.js';import{sortByDomNode as Qe}from'../../utils/focus-management.js';import{match as $}from'../../utils/match.js';import{isMobile as Ze}from'../../utils/platform.js';import{RenderFeatures as Ee,forwardRefWithAs as q,mergeProps as be,render as Y}from'../../utils/render.js';import{useDescribedBy as eo}from'../description/description.js';import{Keys as M}from'../keyboard.js';import{Label as oo,useLabelledBy as ce,useLabels as to}from'../label/label.js';var no=(t=>(t[t.Open=0]="Open",t[t.Closed=1]="Closed",t))(no||{}),ro=(t=>(t[t.Single=0]="Single",t[t.Multi=1]="Multi",t))(ro||{}),ao=(l=>(l[l.Pointer=0]="Pointer",l[l.Focus=1]="Focus",l[l.Other=2]="Other",l))(ao||{}),io=(a=>(a[a.OpenCombobox=0]="OpenCombobox",a[a.CloseCombobox=1]="CloseCombobox",a[a.GoToOption=2]="GoToOption",a[a.RegisterOption=3]="RegisterOption",a[a.UnregisterOption=4]="UnregisterOption",a[a.SetActivationTrigger=5]="SetActivationTrigger",a[a.UpdateVirtualOptions=6]="UpdateVirtualOptions",a))(io||{});function fe(e,n=t=>t){let t=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,l=n(e.options.slice()),p=l.length>0&&l[0].dataRef.current.order!==null?l.sort((f,a)=>f.dataRef.current.order-a.dataRef.current.order):Qe(l,f=>f.dataRef.current.domRef.current),d=t?p.indexOf(t):null;return d===-1&&(d=null),{options:p,activeOptionIndex:d}}let lo={[1](e){var n;return(n=e.dataRef.current)!=null&&n.disabled||e.comboboxState===1?e:{...e,activeOptionIndex:null,comboboxState:1}},[0](e){var n,t;if((n=e.dataRef.current)!=null&&n.disabled||e.comboboxState===0)return e;if((t=e.dataRef.current)!=null&&t.value){let l=e.dataRef.current.calculateIndex(e.dataRef.current.value);if(l!==-1)return{...e,activeOptionIndex:l,comboboxState:0}}return{...e,comboboxState:0}},[2](e,n){var d,f,a,r,o;if((d=e.dataRef.current)!=null&&d.disabled||(f=e.dataRef.current)!=null&&f.optionsRef.current&&!((a=e.dataRef.current)!=null&&a.optionsPropsRef.current.static)&&e.comboboxState===1)return e;if(e.virtual){let i=n.focus===S.Specific?n.idx:Pe(n,{resolveItems:()=>e.virtual.options,resolveActiveIndex:()=>{var v,m;return(m=(v=e.activeOptionIndex)!=null?v:e.virtual.options.findIndex(b=>!e.virtual.disabled(b)))!=null?m:null},resolveDisabled:e.virtual.disabled,resolveId(){throw new Error("Function not implemented.")}}),E=(r=n.trigger)!=null?r:2;return e.activeOptionIndex===i&&e.activationTrigger===E?e:{...e,activeOptionIndex:i,activationTrigger:E}}let t=fe(e);if(t.activeOptionIndex===null){let i=t.options.findIndex(E=>!E.dataRef.current.disabled);i!==-1&&(t.activeOptionIndex=i)}let l=n.focus===S.Specific?n.idx:Pe(n,{resolveItems:()=>t.options,resolveActiveIndex:()=>t.activeOptionIndex,resolveId:i=>i.id,resolveDisabled:i=>i.dataRef.current.disabled}),p=(o=n.trigger)!=null?o:2;return e.activeOptionIndex===l&&e.activationTrigger===p?e:{...e,...t,activeOptionIndex:l,activationTrigger:p}},[3]:(e,n)=>{var d,f,a;if((d=e.dataRef.current)!=null&&d.virtual)return{...e,options:[...e.options,n.payload]};let t=n.payload,l=fe(e,r=>(r.push(t),r));e.activeOptionIndex===null&&(f=e.dataRef.current)!=null&&f.isSelected(n.payload.dataRef.current.value)&&(l.activeOptionIndex=l.options.indexOf(t));let p={...e,...l,activationTrigger:2};return(a=e.dataRef.current)!=null&&a.__demoMode&&e.dataRef.current.value===void 0&&(p.activeOptionIndex=0),p},[4]:(e,n)=>{var l;if((l=e.dataRef.current)!=null&&l.virtual)return{...e,options:e.options.filter(p=>p.id!==n.id)};let t=fe(e,p=>{let d=p.findIndex(f=>f.id===n.id);return d!==-1&&p.splice(d,1),p});return{...e,...t,activationTrigger:2}},[5]:(e,n)=>e.activationTrigger===n.trigger?e:{...e,activationTrigger:n.trigger},[6]:(e,n)=>{var l;if(((l=e.virtual)==null?void 0:l.options)===n.options)return e;let t=e.activeOptionIndex;if(e.activeOptionIndex!==null){let p=n.options.indexOf(e.virtual.options[e.activeOptionIndex]);p!==-1?t=p:t=null}return{...e,activeOptionIndex:t,virtual:Object.assign({},e.virtual,{options:n.options})}}},me=se(null);me.displayName="ComboboxActionsContext";function le(e){let n=de(me);if(n===null){let t=new Error(`<${e} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,le),t}return n}let Ie=se(null);function uo(e){var a;let n=z("VirtualProvider"),[t,l]=j(()=>{let r=n.optionsRef.current;if(!r)return[0,0];let o=window.getComputedStyle(r);return[parseFloat(o.paddingBlockStart||o.paddingTop),parseFloat(o.paddingBlockEnd||o.paddingBottom)]},[n.optionsRef.current]),p=Fe({scrollPaddingStart:t,scrollPaddingEnd:l,count:n.virtual.options.length,estimateSize(){return 40},getScrollElement(){var r;return(r=n.optionsRef.current)!=null?r:null},overscan:12}),[d,f]=De(0);return K(()=>{f(r=>r+1)},[(a=n.virtual)==null?void 0:a.options]),w.createElement(Ie.Provider,{value:p},w.createElement("div",{style:{position:"relative",width:"100%",height:`${p.getTotalSize()}px`},ref:r=>{if(r){if(typeof process!="undefined"&&process.env.JEST_WORKER_ID!==void 0||n.activationTrigger===0)return;n.activeOptionIndex!==null&&n.virtual.options.length>n.activeOptionIndex&&p.scrollToIndex(n.activeOptionIndex)}}},p.getVirtualItems().map(r=>{var o;return w.createElement(Oe,{key:r.key},w.cloneElement((o=e.children)==null?void 0:o.call(e,{option:n.virtual.options[r.index],open:n.comboboxState===0}),{key:`${d}-${r.key}`,"data-index":r.index,"aria-setsize":n.virtual.options.length,"aria-posinset":r.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${r.start}px)`,overflowAnchor:"none"}}))})))}let Te=se(null);Te.displayName="ComboboxDataContext";function z(e){let n=de(Te);if(n===null){let t=new Error(`<${e} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,z),t}return n}function po(e,n){return $(n.type,lo,e,n)}let so=Oe;function bo(e,n){var y,h;let t=He(),{value:l,defaultValue:p,onChange:d,form:f,name:a,by:r,disabled:o=t||!1,__demoMode:i=!1,nullable:E=!1,multiple:v=!1,immediate:m=!1,virtual:b=null,...L}=e,[P=v?[]:void 0,O]=Le(l,d,p),[T,_]=Ve(po,{dataRef:_e(),comboboxState:i?0:1,options:[],virtual:b?{options:b.options,disabled:(y=b.disabled)!=null?y:()=>!1}:null,activeOptionIndex:null,activationTrigger:2}),V=H(!1),k=H({static:!1,hold:!1}),N=H(null),G=H(null),I=H(null),C=Me(r),X=x(c=>b?r===null?b.options.indexOf(c):b.options.findIndex(g=>C(g,c)):T.options.findIndex(g=>C(g.dataRef.current.value,c))),A=Ce(c=>$(s.mode,{[1]:()=>P.some(g=>C(g,c)),[0]:()=>C(P,c)}),[P]),R=x(c=>T.activeOptionIndex===X(c)),s=j(()=>({...T,immediate:m,optionsPropsRef:k,inputRef:N,buttonRef:G,optionsRef:I,value:P,defaultValue:p,disabled:o,mode:v?1:0,virtual:T.virtual,get activeOptionIndex(){if(V.current&&T.activeOptionIndex===null&&(b?b.options.length>0:T.options.length>0)){if(b){let g=b.options.findIndex(U=>{var ne,xe;return!((xe=(ne=b==null?void 0:b.disabled)==null?void 0:ne.call(b,U))!=null&&xe)});if(g!==-1)return g}let c=T.options.findIndex(g=>!g.dataRef.current.disabled);if(c!==-1)return c}return T.activeOptionIndex},calculateIndex:X,compare:C,isSelected:A,isActive:R,nullable:E,__demoMode:i}),[P,p,o,v,E,i,T,b]);K(()=>{b&&_({type:6,options:b.options})},[b,b==null?void 0:b.options]),K(()=>{T.dataRef.current=s},[s]),we([s.buttonRef,s.inputRef,s.optionsRef],()=>W.closeCombobox(),s.comboboxState===0);let ue=j(()=>{var c,g,U;return{open:s.comboboxState===0,disabled:o,activeIndex:s.activeOptionIndex,activeOption:s.activeOptionIndex===null?null:s.virtual?s.virtual.options[(c=s.activeOptionIndex)!=null?c:0]:(U=(g=s.options[s.activeOptionIndex])==null?void 0:g.dataRef.current.value)!=null?U:null,value:P}},[s,o,P]),pe=x(()=>{if(s.activeOptionIndex!==null){if(s.virtual)J(s.virtual.options[s.activeOptionIndex]);else{let{dataRef:c}=s.options[s.activeOptionIndex];J(c.current.value)}W.goToOption(S.Specific,s.activeOptionIndex)}}),Q=x(()=>{_({type:0}),V.current=!0}),Z=x(()=>{_({type:1}),V.current=!1}),ee=x((c,g,U)=>(V.current=!1,c===S.Specific?_({type:2,focus:S.Specific,idx:g,trigger:U}):_({type:2,focus:c,trigger:U}))),oe=x((c,g)=>(_({type:3,payload:{id:c,dataRef:g}}),()=>{s.isActive(g.current.value)&&(V.current=!0),_({type:4,id:c})})),J=x(c=>$(s.mode,{[0](){return O==null?void 0:O(c)},[1](){let g=s.value.slice(),U=g.findIndex(ne=>C(ne,c));return U===-1?g.push(c):g.splice(U,1),O==null?void 0:O(g)}})),te=x(c=>{_({type:5,trigger:c})}),W=j(()=>({onChange:J,registerOption:oe,goToOption:ee,closeCombobox:Z,openCombobox:Q,setActivationTrigger:te,selectActiveOption:pe}),[]),[u,D]=to(),F=n===null?{}:{ref:n},B=Ce(()=>O==null?void 0:O(p),[O]);return w.createElement(D,{value:u,props:{htmlFor:(h=s.inputRef.current)==null?void 0:h.id},slot:{open:s.comboboxState===0,disabled:o}},w.createElement(Xe,null,w.createElement(me.Provider,{value:W},w.createElement(Te.Provider,{value:s},w.createElement(ze,{value:$(s.comboboxState,{[0]:ie.Open,[1]:ie.Closed})},a!=null&&w.createElement(We,{data:P!=null?{[a]:P}:{},form:f,onReset:B}),Y({ourProps:F,theirProps:L,slot:ue,defaultTag:so,name:"Combobox"}))))))}let co="input";function fo(e,n){var Q,Z,ee,oe,J,te,W;let t=re(),l=$e(),{id:p=l||`headlessui-combobox-input-${t}`,onChange:d,displayValue:f,type:a="text",...r}=e,o=z("Combobox.Input"),i=le("Combobox.Input"),E=ae(o.inputRef,n,Je()),v=Ue(o.inputRef),m=H(!1),b=ye(),L=x(()=>{i.onChange(null),o.optionsRef.current&&(o.optionsRef.current.scrollTop=0),i.goToOption(S.Nothing)}),P=function(){var u;return typeof f=="function"&&o.value!==void 0?(u=f(o.value))!=null?u:"":typeof o.value=="string"?o.value:""}();Re(([u,D],[F,B])=>{if(m.current)return;let y=o.inputRef.current;y&&((B===0&&D===1||u!==F)&&(y.value=u),requestAnimationFrame(()=>{if(m.current||!y||(v==null?void 0:v.activeElement)!==y)return;let{selectionStart:h,selectionEnd:c}=y;Math.abs((c!=null?c:0)-(h!=null?h:0))===0&&h===0&&y.setSelectionRange(y.value.length,y.value.length)}))},[P,o.comboboxState,v]),Re(([u],[D])=>{if(u===0&&D===1){if(m.current)return;let F=o.inputRef.current;if(!F)return;let B=F.value,{selectionStart:y,selectionEnd:h,selectionDirection:c}=F;F.value="",F.value=B,c!==null?F.setSelectionRange(y,h,c):F.setSelectionRange(y,h)}},[o.comboboxState]);let O=H(!1),T=x(()=>{O.current=!0}),_=x(()=>{b.nextFrame(()=>{O.current=!1})}),V=x(u=>{switch(m.current=!0,u.key){case M.Enter:if(m.current=!1,o.comboboxState!==0||O.current)return;if(u.preventDefault(),u.stopPropagation(),o.activeOptionIndex===null){i.closeCombobox();return}i.selectActiveOption(),o.mode===0&&i.closeCombobox();break;case M.ArrowDown:return m.current=!1,u.preventDefault(),u.stopPropagation(),$(o.comboboxState,{[0]:()=>i.goToOption(S.Next),[1]:()=>i.openCombobox()});case M.ArrowUp:return m.current=!1,u.preventDefault(),u.stopPropagation(),$(o.comboboxState,{[0]:()=>i.goToOption(S.Previous),[1]:()=>{i.openCombobox(),b.nextFrame(()=>{o.value||i.goToOption(S.Last)})}});case M.Home:if(u.shiftKey)break;return m.current=!1,u.preventDefault(),u.stopPropagation(),i.goToOption(S.First);case M.PageUp:return m.current=!1,u.preventDefault(),u.stopPropagation(),i.goToOption(S.First);case M.End:if(u.shiftKey)break;return m.current=!1,u.preventDefault(),u.stopPropagation(),i.goToOption(S.Last);case M.PageDown:return m.current=!1,u.preventDefault(),u.stopPropagation(),i.goToOption(S.Last);case M.Escape:return m.current=!1,o.comboboxState!==0?void 0:(u.preventDefault(),o.optionsRef.current&&!o.optionsPropsRef.current.static&&u.stopPropagation(),o.nullable&&o.mode===0&&o.value===null&&L(),i.closeCombobox());case M.Tab:if(m.current=!1,o.comboboxState!==0)return;o.mode===0&&o.activationTrigger!==1&&i.selectActiveOption(),i.closeCombobox();break}}),k=x(u=>{d==null||d(u),o.nullable&&o.mode===0&&u.target.value===""&&L(),i.openCombobox()}),N=x(u=>{var F,B,y;let D=(F=u.relatedTarget)!=null?F:Ae.find(h=>h!==u.currentTarget);if(m.current=!1,!((B=o.optionsRef.current)!=null&&B.contains(D))&&!((y=o.buttonRef.current)!=null&&y.contains(D))&&o.comboboxState===0)return u.preventDefault(),o.mode===0&&(o.nullable&&o.value===null?L():o.activationTrigger!==1&&i.selectActiveOption()),i.closeCombobox()}),G=x(u=>{var F,B,y;let D=(F=u.relatedTarget)!=null?F:Ae.find(h=>h!==u.currentTarget);(B=o.buttonRef.current)!=null&&B.contains(D)||(y=o.optionsRef.current)!=null&&y.contains(D)||o.disabled||o.immediate&&o.comboboxState!==0&&(i.openCombobox(),b.nextFrame(()=>{i.setActivationTrigger(1)}))}),I=ce(),C=eo(),{isFocusVisible:X,focusProps:A}=ge({isTextInput:!0,autoFocus:(Q=e.autoFocus)!=null?Q:!1}),{isHovered:R,hoverProps:s}=ve({isDisabled:(Z=o.disabled)!=null?Z:!1}),ue=j(()=>{var u;return{open:o.comboboxState===0,disabled:o.disabled,hover:R,focus:X,autofocus:(u=e.autoFocus)!=null?u:!1}},[o,R,X,e.autoFocus]),pe=be({ref:E,id:p,role:"combobox",type:a,"aria-controls":(ee=o.optionsRef.current)==null?void 0:ee.id,"aria-expanded":o.comboboxState===0,"aria-activedescendant":o.activeOptionIndex===null?void 0:o.virtual?(oe=o.options.find(u=>{var D;return!((D=o.virtual)!=null&&D.disabled(u.dataRef.current.value))&&o.compare(u.dataRef.current.value,o.virtual.options[o.activeOptionIndex])}))==null?void 0:oe.id:(J=o.options[o.activeOptionIndex])==null?void 0:J.id,"aria-labelledby":I,"aria-describedby":C,"aria-autocomplete":"list",defaultValue:(W=(te=e.defaultValue)!=null?te:o.defaultValue!==void 0?f==null?void 0:f(o.defaultValue):null)!=null?W:o.defaultValue,disabled:o.disabled,onCompositionStart:T,onCompositionEnd:_,onKeyDown:V,onChange:k,onFocus:G,onBlur:N},A,s);return Y({ourProps:pe,theirProps:r,slot:ue,defaultTag:co,name:"Combobox.Input"})}let mo="button";function To(e,n){var V,k,N,G;let t=z("Combobox.Button"),l=le("Combobox.Button"),p=ae(t.buttonRef,n),d=re(),{id:f=`headlessui-combobox-button-${d}`,...a}=e,r=ye(),o=x(I=>{switch(I.key){case M.ArrowDown:return I.preventDefault(),I.stopPropagation(),t.comboboxState===1&&l.openCombobox(),r.nextFrame(()=>{var C;return(C=t.inputRef.current)==null?void 0:C.focus({preventScroll:!0})});case M.ArrowUp:return I.preventDefault(),I.stopPropagation(),t.comboboxState===1&&(l.openCombobox(),r.nextFrame(()=>{t.value||l.goToOption(S.Last)})),r.nextFrame(()=>{var C;return(C=t.inputRef.current)==null?void 0:C.focus({preventScroll:!0})});case M.Escape:return t.comboboxState!==0?void 0:(I.preventDefault(),t.optionsRef.current&&!t.optionsPropsRef.current.static&&I.stopPropagation(),l.closeCombobox(),r.nextFrame(()=>{var C;return(C=t.inputRef.current)==null?void 0:C.focus({preventScroll:!0})}));default:return}}),i=x(I=>{if(Ye(I.currentTarget))return I.preventDefault();t.comboboxState===0?l.closeCombobox():(I.preventDefault(),l.openCombobox()),r.nextFrame(()=>{var C;return(C=t.inputRef.current)==null?void 0:C.focus({preventScroll:!0})})}),E=ce([f]),{isFocusVisible:v,focusProps:m}=ge({isTextInput:!0,autoFocus:(V=e.autoFocus)!=null?V:!1}),{isHovered:b,hoverProps:L}=ve({isDisabled:(k=t.disabled)!=null?k:!1}),{pressed:P,pressProps:O}=he({disabled:(N=t.disabled)!=null?N:!1}),T=j(()=>({open:t.comboboxState===0,active:P||t.comboboxState===0,disabled:t.disabled,value:t.value,hover:b,focus:v}),[t,b,v,P]),_=be({ref:p,id:f,type:ke(e,t.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":(G=t.optionsRef.current)==null?void 0:G.id,"aria-expanded":t.comboboxState===0,"aria-labelledby":E,disabled:t.disabled,onClick:i,onKeyDown:o},m,L,O);return Y({ourProps:_,theirProps:a,slot:T,defaultTag:mo,name:"Combobox.Button"})}let xo="ul",go=Ee.RenderStrategy|Ee.Static;function vo(e,n){var O;let t=re(),{id:l=`headlessui-combobox-options-${t}`,hold:p=!1,anchor:d,...f}=e,a=z("Combobox.Options"),[r,o]=je(d),i=Ke(),E=ae(a.optionsRef,n,d?r:null),v=qe(),m=(()=>v!==null?(v&ie.Open)===ie.Open:a.comboboxState===0)();K(()=>{var T;a.optionsPropsRef.current.static=(T=e.static)!=null?T:!1},[a.optionsPropsRef,e.static]),K(()=>{a.optionsPropsRef.current.hold=p},[a.optionsPropsRef,p]),Ge({container:a.optionsRef.current,enabled:a.comboboxState===0,accept(T){return T.getAttribute("role")==="option"?NodeFilter.FILTER_REJECT:T.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(T){T.setAttribute("role","none")}});let b=ce([(O=a.buttonRef.current)==null?void 0:O.id]),L=j(()=>({open:a.comboboxState===0,option:void 0}),[a]),P=be(d?i():{},{"aria-labelledby":b,role:"listbox","aria-multiselectable":a.mode===1?!0:void 0,id:l,ref:E,...o?{style:o}:{}});return a.virtual&&a.comboboxState===0&&Object.assign(f,{children:w.createElement(uo,null,f.children)}),Y({ourProps:P,theirProps:f,slot:L,defaultTag:xo,features:go,visible:m,name:"Combobox.Options"})}let Oo="li";function Co(e,n){var X;let t=re(),{id:l=`headlessui-combobox-option-${t}`,disabled:p=!1,value:d,order:f=null,...a}=e,r=z("Combobox.Option"),o=le("Combobox.Option"),i=r.virtual?r.activeOptionIndex===r.calculateIndex(d):r.activeOptionIndex===null?!1:((X=r.options[r.activeOptionIndex])==null?void 0:X.id)===l,E=r.isSelected(d),v=H(null),m=Be({disabled:p,value:d,domRef:v,order:f}),b=de(Ie),L=ae(n,v,b?b.measureElement:null),P=x(()=>o.onChange(d));K(()=>o.registerOption(l,m),[m,l]);let O=H(!(r.virtual||r.__demoMode));K(()=>{if(!r.virtual||!r.__demoMode)return;let A=Se();return A.requestAnimationFrame(()=>{O.current=!0}),A.dispose},[r.virtual,r.__demoMode]),K(()=>{if(!O.current||r.comboboxState!==0||!i||r.activationTrigger===0)return;let A=Se();return A.requestAnimationFrame(()=>{var R,s;(s=(R=v.current)==null?void 0:R.scrollIntoView)==null||s.call(R,{block:"nearest"})}),A.dispose},[v,i,r.comboboxState,r.activationTrigger,r.activeOptionIndex]);let T=x(A=>{var R;if(p||(R=r.virtual)!=null&&R.disabled(d))return A.preventDefault();P(),Ze()||requestAnimationFrame(()=>{var s;return(s=r.inputRef.current)==null?void 0:s.focus({preventScroll:!0})}),r.mode===0&&requestAnimationFrame(()=>o.closeCombobox())}),_=x(()=>{var R;if(p||(R=r.virtual)!=null&&R.disabled(d))return o.goToOption(S.Nothing);let A=r.calculateIndex(d);o.goToOption(S.Specific,A)}),V=Ne(),k=x(A=>V.update(A)),N=x(A=>{var s;if(!V.wasMoved(A)||p||(s=r.virtual)!=null&&s.disabled(d)||i)return;let R=r.calculateIndex(d);o.goToOption(S.Specific,R,0)}),G=x(A=>{var R;V.wasMoved(A)&&(p||(R=r.virtual)!=null&&R.disabled(d)||i&&(r.optionsPropsRef.current.hold||o.goToOption(S.Nothing)))}),I=j(()=>({active:i,focus:i,selected:E,disabled:p}),[i,E,p]);return Y({ourProps:{id:l,ref:L,role:"option",tabIndex:p===!0?void 0:-1,"aria-disabled":p===!0?!0:void 0,"aria-selected":E,disabled:void 0,onClick:T,onFocus:_,onPointerEnter:k,onMouseEnter:k,onPointerMove:N,onMouseMove:N,onPointerLeave:G,onMouseLeave:G},theirProps:a,slot:I,defaultTag:Oo,name:"Combobox.Option"})}let yo=q(bo),Ro=q(To),Ao=q(fo),Po=oo,So=q(vo),Eo=q(Co),st=Object.assign(yo,{Input:Ao,Button:Ro,Label:Po,Options:So,Option:Eo});export{st as Combobox,Ro as ComboboxButton,Ao as ComboboxInput,Po as ComboboxLabel,Eo as ComboboxOption,So as ComboboxOptions};
"use client";import{useFocusRing as ye}from"@react-aria/focus";import{useHover as Ce}from"@react-aria/interactions";import{useVirtualizer as ke}from"@tanstack/react-virtual";import D,{Fragment as Re,createContext as be,createRef as Ne,useCallback as Se,useContext as fe,useMemo as z,useReducer as Ue,useRef as $,useState as He}from"react";import{flushSync as Z}from"react-dom";import{useActivePress as Ge}from'../../hooks/use-active-press.js';import{useByComparator as je}from'../../hooks/use-by-comparator.js';import{useControllable as ze}from'../../hooks/use-controllable.js';import{useDefaultValue as Ke}from'../../hooks/use-default-value.js';import{useDisposables as We}from'../../hooks/use-disposables.js';import{useElementSize as Pe}from'../../hooks/use-element-size.js';import{useEvent as m}from'../../hooks/use-event.js';import{useId as pe}from'../../hooks/use-id.js';import{useInertOthers as $e}from'../../hooks/use-inert-others.js';import{useIsoMorphicEffect as X}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Xe}from'../../hooks/use-latest-value.js';import{useOnDisappear as Je}from'../../hooks/use-on-disappear.js';import{useOutsideClick as qe}from'../../hooks/use-outside-click.js';import{useOwnerDocument as Ie}from'../../hooks/use-owner.js';import{useRefocusableInput as Ae}from'../../hooks/use-refocusable-input.js';import{useResolveButtonType as Ye}from'../../hooks/use-resolve-button-type.js';import{useScrollLock as Qe}from'../../hooks/use-scroll-lock.js';import{useSyncRefs as se}from'../../hooks/use-sync-refs.js';import{useTrackedPointer as Ze}from'../../hooks/use-tracked-pointer.js';import{useTransition as eo}from'../../hooks/use-transition.js';import{useTreeWalker as oo}from'../../hooks/use-tree-walker.js';import{useWatch as Ee}from'../../hooks/use-watch.js';import{useDisabled as to}from'../../internal/disabled.js';import{FloatingProvider as no,useFloatingPanel as ro,useFloatingPanelProps as io,useFloatingReference as ao,useResolvedAnchor as lo}from'../../internal/floating.js';import{FormFields as uo}from'../../internal/form-fields.js';import{Frozen as po,useFrozenData as _e}from'../../internal/frozen.js';import{useProvidedId as so}from'../../internal/id.js';import{OpenClosedProvider as bo,State as de,useOpenClosed as fo}from'../../internal/open-closed.js';import{history as he}from'../../utils/active-element-history.js';import{isDisabledReactIssue7711 as co}from'../../utils/bugs.js';import{Focus as I,calculateActiveIndex as De}from'../../utils/calculate-active-index.js';import{disposables as Me}from'../../utils/disposables.js';import{sortByDomNode as mo}from'../../utils/focus-management.js';import{match as ee}from'../../utils/match.js';import{isMobile as To}from'../../utils/platform.js';import{RenderFeatures as Fe,forwardRefWithAs as te,mergeProps as ce,render as ne}from'../../utils/render.js';import{useDescribedBy as xo}from'../description/description.js';import{Keys as V}from'../keyboard.js';import{Label as go,useLabelledBy as me,useLabels as vo}from'../label/label.js';import{MouseButton as Ve}from'../mouse.js';import{Portal as Oo}from'../portal/portal.js';var yo=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(yo||{}),Co=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(Co||{}),Ro=(t=>(t[t.Pointer=0]="Pointer",t[t.Focus=1]="Focus",t[t.Other=2]="Other",t))(Ro||{}),So=(u=>(u[u.OpenCombobox=0]="OpenCombobox",u[u.CloseCombobox=1]="CloseCombobox",u[u.GoToOption=2]="GoToOption",u[u.SetTyping=3]="SetTyping",u[u.RegisterOption=4]="RegisterOption",u[u.UnregisterOption=5]="UnregisterOption",u[u.SetActivationTrigger=6]="SetActivationTrigger",u[u.UpdateVirtualConfiguration=7]="UpdateVirtualConfiguration",u))(So||{});function Te(o,r=e=>e){let e=o.activeOptionIndex!==null?o.options[o.activeOptionIndex]:null,t=r(o.options.slice()),c=t.length>0&&t[0].dataRef.current.order!==null?t.sort((f,s)=>f.dataRef.current.order-s.dataRef.current.order):mo(t,f=>f.dataRef.current.domRef.current),d=e?c.indexOf(e):null;return d===-1&&(d=null),{options:c,activeOptionIndex:d}}let Po={[1](o){var r;return(r=o.dataRef.current)!=null&&r.disabled||o.comboboxState===1?o:{...o,activeOptionIndex:null,comboboxState:1,isTyping:!1,activationTrigger:2,__demoMode:!1}},[0](o){var r,e;if((r=o.dataRef.current)!=null&&r.disabled||o.comboboxState===0)return o;if((e=o.dataRef.current)!=null&&e.value){let t=o.dataRef.current.calculateIndex(o.dataRef.current.value);if(t!==-1)return{...o,activeOptionIndex:t,comboboxState:0,__demoMode:!1}}return{...o,comboboxState:0,__demoMode:!1}},[3](o,r){return o.isTyping===r.isTyping?o:{...o,isTyping:r.isTyping}},[2](o,r){var d,f,s,u,a;if((d=o.dataRef.current)!=null&&d.disabled||(f=o.dataRef.current)!=null&&f.optionsRef.current&&!((s=o.dataRef.current)!=null&&s.optionsPropsRef.current.static)&&o.comboboxState===1)return o;if(o.virtual){let{options:n,disabled:T}=o.virtual,C=r.focus===I.Specific?r.idx:De(r,{resolveItems:()=>n,resolveActiveIndex:()=>{var p,w;return(w=(p=o.activeOptionIndex)!=null?p:n.findIndex(M=>!T(M)))!=null?w:null},resolveDisabled:T,resolveId(){throw new Error("Function not implemented.")}}),_=(u=r.trigger)!=null?u:2;return o.activeOptionIndex===C&&o.activationTrigger===_?o:{...o,activeOptionIndex:C,activationTrigger:_,isTyping:!1,__demoMode:!1}}let e=Te(o);if(e.activeOptionIndex===null){let n=e.options.findIndex(T=>!T.dataRef.current.disabled);n!==-1&&(e.activeOptionIndex=n)}let t=r.focus===I.Specific?r.idx:De(r,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:n=>n.id,resolveDisabled:n=>n.dataRef.current.disabled}),c=(a=r.trigger)!=null?a:2;return o.activeOptionIndex===t&&o.activationTrigger===c?o:{...o,...e,isTyping:!1,activeOptionIndex:t,activationTrigger:c,__demoMode:!1}},[4]:(o,r)=>{var d,f,s;if((d=o.dataRef.current)!=null&&d.virtual)return{...o,options:[...o.options,r.payload]};let e=r.payload,t=Te(o,u=>(u.push(e),u));o.activeOptionIndex===null&&(f=o.dataRef.current)!=null&&f.isSelected(r.payload.dataRef.current.value)&&(t.activeOptionIndex=t.options.indexOf(e));let c={...o,...t,activationTrigger:2};return(s=o.dataRef.current)!=null&&s.__demoMode&&o.dataRef.current.value===void 0&&(c.activeOptionIndex=0),c},[5]:(o,r)=>{var t;if((t=o.dataRef.current)!=null&&t.virtual)return{...o,options:o.options.filter(c=>c.id!==r.id)};let e=Te(o,c=>{let d=c.findIndex(f=>f.id===r.id);return d!==-1&&c.splice(d,1),c});return{...o,...e,activationTrigger:2}},[6]:(o,r)=>o.activationTrigger===r.trigger?o:{...o,activationTrigger:r.trigger},[7]:(o,r)=>{var t,c;if(o.virtual===null)return{...o,virtual:{options:r.options,disabled:(t=r.disabled)!=null?t:()=>!1}};if(o.virtual.options===r.options&&o.virtual.disabled===r.disabled)return o;let e=o.activeOptionIndex;if(o.activeOptionIndex!==null){let d=r.options.indexOf(o.virtual.options[o.activeOptionIndex]);d!==-1?e=d:e=null}return{...o,activeOptionIndex:e,virtual:{options:r.options,disabled:(c=r.disabled)!=null?c:()=>!1}}}},xe=be(null);xe.displayName="ComboboxActionsContext";function re(o){let r=fe(xe);if(r===null){let e=new Error(`<${o} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,re),e}return r}let Le=be(null);function Io(o){let r=oe("VirtualProvider"),{options:e}=r.virtual,[t,c]=z(()=>{let a=r.optionsRef.current;if(!a)return[0,0];let n=window.getComputedStyle(a);return[parseFloat(n.paddingBlockStart||n.paddingTop),parseFloat(n.paddingBlockEnd||n.paddingBottom)]},[r.optionsRef.current]),d=ke({scrollPaddingStart:t,scrollPaddingEnd:c,count:e.length,estimateSize(){return 40},getScrollElement(){var a;return(a=r.optionsRef.current)!=null?a:null},overscan:12}),[f,s]=He(0);X(()=>{s(a=>a+1)},[e]);let u=d.getVirtualItems();return u.length===0?null:D.createElement(Le.Provider,{value:d},D.createElement("div",{style:{position:"relative",width:"100%",height:`${d.getTotalSize()}px`},ref:a=>{if(a){if(typeof process!="undefined"&&process.env.JEST_WORKER_ID!==void 0||r.activationTrigger===0)return;r.activeOptionIndex!==null&&e.length>r.activeOptionIndex&&d.scrollToIndex(r.activeOptionIndex)}}},u.map(a=>{var n;return D.createElement(Re,{key:a.key},D.cloneElement((n=o.children)==null?void 0:n.call(o,{...o.slot,option:e[a.index]}),{key:`${f}-${a.key}`,"data-index":a.index,"aria-setsize":e.length,"aria-posinset":a.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${a.start}px)`,overflowAnchor:"none"}}))})))}let ie=be(null);ie.displayName="ComboboxDataContext";function oe(o){let r=fe(ie);if(r===null){let e=new Error(`<${o} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,oe),e}return r}function Ao(o,r){return ee(r.type,Po,o,r)}let Eo=Re;function _o(o,r){var ge,ve;let e=to(),{value:t,defaultValue:c,onChange:d,form:f,name:s,by:u,disabled:a=e||!1,onClose:n,__demoMode:T=!1,multiple:C=!1,immediate:_=!1,virtual:p=null,nullable:w,...M}=o,F=Ke(c),[v=C?[]:void 0,y]=ze(t,d,F),[R,S]=Ue(Ao,{dataRef:Ne(),comboboxState:T?0:1,isTyping:!1,options:[],virtual:p?{options:p.options,disabled:(ge=p.disabled)!=null?ge:()=>!1}:null,activeOptionIndex:null,activationTrigger:2,__demoMode:T}),h=$(!1),O=$({static:!1,hold:!1}),G=$(null),J=$(null),Q=$(null),A=je(u),B=m(b=>p?u===null?p.options.indexOf(b):p.options.findIndex(g=>A(g,b)):R.options.findIndex(g=>A(g.dataRef.current.value,b))),k=Se(b=>ee(i.mode,{[1]:()=>v.some(g=>A(g,b)),[0]:()=>A(v,b)}),[v]),K=m(b=>R.activeOptionIndex===B(b)),i=z(()=>({...R,immediate:_,optionsPropsRef:O,inputRef:G,buttonRef:J,optionsRef:Q,value:v,defaultValue:F,disabled:a,mode:C?1:0,virtual:p?R.virtual:null,get activeOptionIndex(){if(h.current&&R.activeOptionIndex===null&&(p?p.options.length>0:R.options.length>0)){if(p){let g=p.options.findIndex(j=>{var ue,Oe;return!((Oe=(ue=p.disabled)==null?void 0:ue.call(p,j))!=null&&Oe)});if(g!==-1)return g}let b=R.options.findIndex(g=>!g.dataRef.current.disabled);if(b!==-1)return b}return R.activeOptionIndex},calculateIndex:B,compare:A,isSelected:k,isActive:K}),[v,F,a,C,T,R,p]);X(()=>{var b;p&&S({type:7,options:p.options,disabled:(b=p.disabled)!=null?b:null})},[p,p==null?void 0:p.options,p==null?void 0:p.disabled]),X(()=>{R.dataRef.current=i},[i]);let N=i.comboboxState===0;qe(N,[i.buttonRef,i.inputRef,i.optionsRef],()=>x.closeCombobox());let q=z(()=>{var b,g,j;return{open:i.comboboxState===0,disabled:a,activeIndex:i.activeOptionIndex,activeOption:i.activeOptionIndex===null?null:i.virtual?i.virtual.options[(b=i.activeOptionIndex)!=null?b:0]:(j=(g=i.options[i.activeOptionIndex])==null?void 0:g.dataRef.current.value)!=null?j:null,value:v}},[i,a,v]),Y=m(()=>{if(i.activeOptionIndex!==null){if(x.setIsTyping(!1),i.virtual)P(i.virtual.options[i.activeOptionIndex]);else{let{dataRef:b}=i.options[i.activeOptionIndex];P(b.current.value)}x.goToOption(I.Specific,i.activeOptionIndex)}}),E=m(()=>{S({type:0}),h.current=!0}),ae=m(()=>{S({type:1}),h.current=!1,n==null||n()}),le=m(b=>{S({type:3,isTyping:b})}),l=m((b,g,j)=>(h.current=!1,b===I.Specific?S({type:2,focus:I.Specific,idx:g,trigger:j}):S({type:2,focus:b,trigger:j}))),U=m((b,g)=>(S({type:4,payload:{id:b,dataRef:g}}),()=>{i.isActive(g.current.value)&&(h.current=!0),S({type:5,id:b})})),P=m(b=>ee(i.mode,{[0](){return y==null?void 0:y(b)},[1](){let g=i.value.slice(),j=g.findIndex(ue=>A(ue,b));return j===-1?g.push(b):g.splice(j,1),y==null?void 0:y(g)}})),H=m(b=>{S({type:6,trigger:b})}),x=z(()=>({onChange:P,registerOption:U,goToOption:l,setIsTyping:le,closeCombobox:ae,openCombobox:E,setActivationTrigger:H,selectActiveOption:Y}),[]),[L,W]=vo(),we=r===null?{}:{ref:r},Be=Se(()=>{if(F!==void 0)return y==null?void 0:y(F)},[y,F]);return D.createElement(W,{value:L,props:{htmlFor:(ve=i.inputRef.current)==null?void 0:ve.id},slot:{open:i.comboboxState===0,disabled:a}},D.createElement(no,null,D.createElement(xe.Provider,{value:x},D.createElement(ie.Provider,{value:i},D.createElement(bo,{value:ee(i.comboboxState,{[0]:de.Open,[1]:de.Closed})},s!=null&&D.createElement(uo,{disabled:a,data:v!=null?{[s]:v}:{},form:f,onReset:Be}),ne({ourProps:we,theirProps:M,slot:q,defaultTag:Eo,name:"Combobox"}))))))}let ho="input";function Do(o,r){var q,Y,E,ae,le;let e=oe("Combobox.Input"),t=re("Combobox.Input"),c=pe(),d=so(),{id:f=d||`headlessui-combobox-input-${c}`,onChange:s,displayValue:u,disabled:a=e.disabled||!1,autoFocus:n=!1,type:T="text",...C}=o,_=se(e.inputRef,r,ao()),p=Ie(e.inputRef),w=We(),M=m(()=>{t.onChange(null),e.optionsRef.current&&(e.optionsRef.current.scrollTop=0),t.goToOption(I.Nothing)}),F=z(()=>{var l;return typeof u=="function"&&e.value!==void 0?(l=u(e.value))!=null?l:"":typeof e.value=="string"?e.value:""},[e.value,u]);Ee(([l,U],[P,H])=>{if(e.isTyping)return;let x=e.inputRef.current;x&&((H===0&&U===1||l!==P)&&(x.value=l),requestAnimationFrame(()=>{if(e.isTyping||!x||(p==null?void 0:p.activeElement)!==x)return;let{selectionStart:L,selectionEnd:W}=x;Math.abs((W!=null?W:0)-(L!=null?L:0))===0&&L===0&&x.setSelectionRange(x.value.length,x.value.length)}))},[F,e.comboboxState,p,e.isTyping]),Ee(([l],[U])=>{if(l===0&&U===1){if(e.isTyping)return;let P=e.inputRef.current;if(!P)return;let H=P.value,{selectionStart:x,selectionEnd:L,selectionDirection:W}=P;P.value="",P.value=H,W!==null?P.setSelectionRange(x,L,W):P.setSelectionRange(x,L)}},[e.comboboxState]);let v=$(!1),y=m(()=>{v.current=!0}),R=m(()=>{w.nextFrame(()=>{v.current=!1})}),S=m(l=>{switch(t.setIsTyping(!0),l.key){case V.Enter:if(e.comboboxState!==0||v.current)return;if(l.preventDefault(),l.stopPropagation(),e.activeOptionIndex===null){t.closeCombobox();return}t.selectActiveOption(),e.mode===0&&t.closeCombobox();break;case V.ArrowDown:return l.preventDefault(),l.stopPropagation(),ee(e.comboboxState,{[0]:()=>t.goToOption(I.Next),[1]:()=>t.openCombobox()});case V.ArrowUp:return l.preventDefault(),l.stopPropagation(),ee(e.comboboxState,{[0]:()=>t.goToOption(I.Previous),[1]:()=>{Z(()=>t.openCombobox()),e.value||t.goToOption(I.Last)}});case V.Home:if(l.shiftKey)break;return l.preventDefault(),l.stopPropagation(),t.goToOption(I.First);case V.PageUp:return l.preventDefault(),l.stopPropagation(),t.goToOption(I.First);case V.End:if(l.shiftKey)break;return l.preventDefault(),l.stopPropagation(),t.goToOption(I.Last);case V.PageDown:return l.preventDefault(),l.stopPropagation(),t.goToOption(I.Last);case V.Escape:return e.comboboxState!==0?void 0:(l.preventDefault(),e.optionsRef.current&&!e.optionsPropsRef.current.static&&l.stopPropagation(),e.mode===0&&e.value===null&&M(),t.closeCombobox());case V.Tab:if(e.comboboxState!==0)return;e.mode===0&&e.activationTrigger!==1&&t.selectActiveOption(),t.closeCombobox();break}}),h=m(l=>{s==null||s(l),e.mode===0&&l.target.value===""&&M(),t.openCombobox()}),O=m(l=>{var P,H,x;let U=(P=l.relatedTarget)!=null?P:he.find(L=>L!==l.currentTarget);if(!((H=e.optionsRef.current)!=null&&H.contains(U))&&!((x=e.buttonRef.current)!=null&&x.contains(U))&&e.comboboxState===0)return l.preventDefault(),e.mode===0&&e.value===null&&M(),t.closeCombobox()}),G=m(l=>{var P,H,x;let U=(P=l.relatedTarget)!=null?P:he.find(L=>L!==l.currentTarget);(H=e.buttonRef.current)!=null&&H.contains(U)||(x=e.optionsRef.current)!=null&&x.contains(U)||e.disabled||e.immediate&&e.comboboxState!==0&&(Z(()=>t.openCombobox()),t.setActivationTrigger(1))}),J=me(),Q=xo(),{isFocused:A,focusProps:B}=ye({autoFocus:n}),{isHovered:k,hoverProps:K}=Ce({isDisabled:a}),i=z(()=>({open:e.comboboxState===0,disabled:a,hover:k,focus:A,autofocus:n}),[e,k,A,n,a]),N=ce({ref:_,id:f,role:"combobox",type:T,"aria-controls":(q=e.optionsRef.current)==null?void 0:q.id,"aria-expanded":e.comboboxState===0,"aria-activedescendant":e.activeOptionIndex===null?void 0:e.virtual?(Y=e.options.find(l=>!l.dataRef.current.disabled&&e.compare(l.dataRef.current.value,e.virtual.options[e.activeOptionIndex])))==null?void 0:Y.id:(E=e.options[e.activeOptionIndex])==null?void 0:E.id,"aria-labelledby":J,"aria-describedby":Q,"aria-autocomplete":"list",defaultValue:(le=(ae=o.defaultValue)!=null?ae:e.defaultValue!==void 0?u==null?void 0:u(e.defaultValue):null)!=null?le:e.defaultValue,disabled:a||void 0,autoFocus:n,onCompositionStart:y,onCompositionEnd:R,onKeyDown:S,onChange:h,onFocus:G,onBlur:O},B,K);return ne({ourProps:N,theirProps:C,slot:i,defaultTag:ho,name:"Combobox.Input"})}let Mo="button";function Fo(o,r){var h;let e=oe("Combobox.Button"),t=re("Combobox.Button"),c=se(e.buttonRef,r),d=pe(),{id:f=`headlessui-combobox-button-${d}`,disabled:s=e.disabled||!1,autoFocus:u=!1,...a}=o,n=Ae(e.inputRef),T=m(O=>{switch(O.key){case V.Space:case V.Enter:O.preventDefault(),O.stopPropagation(),e.comboboxState===1&&Z(()=>t.openCombobox()),n();return;case V.ArrowDown:O.preventDefault(),O.stopPropagation(),e.comboboxState===1&&(Z(()=>t.openCombobox()),e.value||t.goToOption(I.First)),n();return;case V.ArrowUp:O.preventDefault(),O.stopPropagation(),e.comboboxState===1&&(Z(()=>t.openCombobox()),e.value||t.goToOption(I.Last)),n();return;case V.Escape:if(e.comboboxState!==0)return;O.preventDefault(),e.optionsRef.current&&!e.optionsPropsRef.current.static&&O.stopPropagation(),Z(()=>t.closeCombobox()),n();return;default:return}}),C=m(O=>{O.preventDefault(),!co(O.currentTarget)&&(O.button===Ve.Left&&(e.comboboxState===0?t.closeCombobox():t.openCombobox()),n())}),_=me([f]),{isFocusVisible:p,focusProps:w}=ye({autoFocus:u}),{isHovered:M,hoverProps:F}=Ce({isDisabled:s}),{pressed:v,pressProps:y}=Ge({disabled:s}),R=z(()=>({open:e.comboboxState===0,active:v||e.comboboxState===0,disabled:s,value:e.value,hover:M,focus:p}),[e,M,p,v,s]),S=ce({ref:c,id:f,type:Ye(o,e.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":(h=e.optionsRef.current)==null?void 0:h.id,"aria-expanded":e.comboboxState===0,"aria-labelledby":_,disabled:s||void 0,autoFocus:u,onMouseDown:C,onKeyDown:T},w,F,y);return ne({ourProps:S,theirProps:a,slot:R,defaultTag:Mo,name:"Combobox.Button"})}let Vo="div",Lo=Fe.RenderStrategy|Fe.Static;function wo(o,r){var N,q,Y;let e=pe(),{id:t=`headlessui-combobox-options-${e}`,hold:c=!1,anchor:d,portal:f=!1,modal:s=!0,transition:u=!1,...a}=o,n=oe("Combobox.Options"),T=re("Combobox.Options"),C=lo(d);C&&(f=!0);let[_,p]=ro(C),w=io(),M=se(n.optionsRef,r,C?_:null),F=Ie(n.optionsRef),v=fo(),[y,R]=eo(u,n.optionsRef,v!==null?(v&de.Open)===de.Open:n.comboboxState===0);Je(y,n.inputRef,T.closeCombobox);let S=n.__demoMode?!1:s&&n.comboboxState===0;Qe(S,F);let h=n.__demoMode?!1:s&&n.comboboxState===0;$e(h,{allowed:m(()=>[n.inputRef.current,n.buttonRef.current,n.optionsRef.current])}),X(()=>{var E;n.optionsPropsRef.current.static=(E=o.static)!=null?E:!1},[n.optionsPropsRef,o.static]),X(()=>{n.optionsPropsRef.current.hold=c},[n.optionsPropsRef,c]),oo(n.comboboxState===0,{container:n.optionsRef.current,accept(E){return E.getAttribute("role")==="option"?NodeFilter.FILTER_REJECT:E.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(E){E.setAttribute("role","none")}});let O=me([(N=n.buttonRef.current)==null?void 0:N.id]),G=z(()=>({open:n.comboboxState===0,option:void 0,...R}),[n.comboboxState,R]),J=m(()=>{T.setActivationTrigger(0)}),Q=m(E=>{E.preventDefault(),T.setActivationTrigger(0)}),A=ce(C?w():{},{"aria-labelledby":O,role:"listbox","aria-multiselectable":n.mode===1?!0:void 0,id:t,ref:M,style:{...a.style,...p,"--input-width":Pe(n.inputRef,!0).width,"--button-width":Pe(n.buttonRef,!0).width},onWheel:n.activationTrigger===0?void 0:J,onMouseDown:Q}),B=y&&n.comboboxState===1,k=_e(B,(q=n.virtual)==null?void 0:q.options),K=_e(B,n.value),i=m(E=>n.compare(K,E));if(n.virtual){if(k===void 0)throw new Error("Missing `options` in virtual mode");Object.assign(a,{children:D.createElement(ie.Provider,{value:k!==n.virtual.options?{...n,virtual:{...n.virtual,options:k}}:n},D.createElement(Io,{slot:G},a.children))})}return D.createElement(Oo,{enabled:f?o.static||y:!1},D.createElement(ie.Provider,{value:n.mode===1?n:{...n,isSelected:i}},ne({ourProps:A,theirProps:{...a,children:D.createElement(po,{freeze:B},typeof a.children=="function"?(Y=a.children)==null?void 0:Y.call(a,G):a.children)},slot:G,defaultTag:Vo,features:Lo,visible:y,name:"Combobox.Options"})))}let Bo="div";function ko(o,r){var A,B,k,K;let e=oe("Combobox.Option"),t=re("Combobox.Option"),c=pe(),{id:d=`headlessui-combobox-option-${c}`,value:f,disabled:s=(k=(B=(A=e.virtual)==null?void 0:A.disabled)==null?void 0:B.call(A,f))!=null?k:!1,order:u=null,...a}=o,n=Ae(e.inputRef),T=e.virtual?e.activeOptionIndex===e.calculateIndex(f):e.activeOptionIndex===null?!1:((K=e.options[e.activeOptionIndex])==null?void 0:K.id)===d,C=e.isSelected(f),_=$(null),p=Xe({disabled:s,value:f,domRef:_,order:u}),w=fe(Le),M=se(r,_,w?w.measureElement:null),F=m(()=>{t.setIsTyping(!1),t.onChange(f)});X(()=>t.registerOption(d,p),[p,d]);let v=$(!(e.virtual||e.__demoMode));X(()=>{if(!e.virtual&&!e.__demoMode)return Me().requestAnimationFrame(()=>{v.current=!0})},[e.virtual,e.__demoMode]),X(()=>{if(v.current&&e.comboboxState===0&&T&&e.activationTrigger!==0)return Me().requestAnimationFrame(()=>{var i,N;(N=(i=_.current)==null?void 0:i.scrollIntoView)==null||N.call(i,{block:"nearest"})})},[_,T,e.comboboxState,e.activationTrigger,e.activeOptionIndex]);let y=m(i=>{i.preventDefault(),i.button===Ve.Left&&(s||(F(),To()||requestAnimationFrame(()=>n()),e.mode===0&&t.closeCombobox()))}),R=m(()=>{if(s)return t.goToOption(I.Nothing);let i=e.calculateIndex(f);t.goToOption(I.Specific,i)}),S=Ze(),h=m(i=>S.update(i)),O=m(i=>{if(!S.wasMoved(i)||s||T)return;let N=e.calculateIndex(f);t.goToOption(I.Specific,N,0)}),G=m(i=>{S.wasMoved(i)&&(s||T&&(e.optionsPropsRef.current.hold||t.goToOption(I.Nothing)))}),J=z(()=>({active:T,focus:T,selected:C,disabled:s}),[T,C,s]);return ne({ourProps:{id:d,ref:M,role:"option",tabIndex:s===!0?void 0:-1,"aria-disabled":s===!0?!0:void 0,"aria-selected":C,disabled:void 0,onMouseDown:y,onFocus:R,onPointerEnter:h,onMouseEnter:h,onPointerMove:O,onMouseMove:O,onPointerLeave:G,onMouseLeave:G},theirProps:a,slot:J,defaultTag:Bo,name:"Combobox.Option"})}let No=te(_o),Uo=te(Fo),Ho=te(Do),Go=go,jo=te(wo),zo=te(ko),kt=Object.assign(No,{Input:Ho,Button:Uo,Label:Go,Options:jo,Option:zo});export{kt as Combobox,Uo as ComboboxButton,Ho as ComboboxInput,Go as ComboboxLabel,zo as ComboboxOption,jo as ComboboxOptions};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as c}from"@react-aria/focus";import{useHover as A}from"@react-aria/interactions";import{Fragment as D,useMemo as f}from"react";import{useActivePress as v}from'../../hooks/use-active-press.js';import{forwardRefWithAs as I,mergeProps as y,render as P}from'../../utils/render.js';let E=D;function _(o,n){let{...s}=o,e=!1,{isFocusVisible:t,focusProps:p}=c(),{isHovered:r,hoverProps:i}=A({isDisabled:e}),{pressed:a,pressProps:T}=v({disabled:e}),l=y({ref:n},p,i,T),m=f(()=>({hover:r,focus:t,active:a}),[r,t,a]);return P({ourProps:l,theirProps:s,slot:m,defaultTag:E,name:"DataInteractive"})}let C=I(_);export{C as DataInteractive};
"use client";import{useFocusRing as c}from"@react-aria/focus";import{useHover as A}from"@react-aria/interactions";import{Fragment as D,useMemo as f}from"react";import{useActivePress as v}from'../../hooks/use-active-press.js';import{forwardRefWithAs as I,mergeProps as y,render as P}from'../../utils/render.js';let E=D;function _(o,n){let{...p}=o,e=!1,{isFocusVisible:t,focusProps:s}=c(),{isHovered:r,hoverProps:i}=A({isDisabled:e}),{pressed:a,pressProps:T}=v({disabled:e}),l=y({ref:n},s,i,T),m=f(()=>({hover:r,focus:t,active:a}),[r,t,a]);return P({ourProps:l,theirProps:p,slot:m,defaultTag:E,name:"DataInteractive"})}let C=I(_);export{C as DataInteractive};

@@ -20,3 +20,3 @@ import React, { type ElementType, type ReactNode, type Ref } from 'react';

export type DescriptionProps<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = Props<TTag>;
declare function DescriptionFn<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag>, ref: Ref<HTMLParagraphElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare function DescriptionFn<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export interface _internal_ComponentDescription extends HasDisplayName {

@@ -23,0 +23,0 @@ <TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag> & RefProp<typeof DescriptionFn>): JSX.Element;

@@ -1,1 +0,1 @@

"use client";import m,{createContext as T,useContext as u,useMemo as c,useState as P}from"react";import{useEvent as g}from'../../hooks/use-event.js';import{useId as x}from'../../hooks/use-id.js';import{useIsoMorphicEffect as y}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as E}from'../../hooks/use-sync-refs.js';import{useDisabled as v}from'../../internal/disabled.js';import{forwardRefWithAs as R,render as I}from'../../utils/render.js';let a=T(null);a.displayName="DescriptionContext";function f(){let r=u(a);if(r===null){let e=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(e,f),e}return r}function w(){var r,e;return(e=(r=u(a))==null?void 0:r.value)!=null?e:void 0}function G(){let[r,e]=P([]);return[r.length>0?r.join(" "):void 0,c(()=>function(t){let i=g(n=>(e(s=>[...s,n]),()=>e(s=>{let o=s.slice(),p=o.indexOf(n);return p!==-1&&o.splice(p,1),o}))),l=c(()=>({register:i,slot:t.slot,name:t.name,props:t.props,value:t.value}),[i,t.slot,t.name,t.props,t.value]);return m.createElement(a.Provider,{value:l},t.children)},[e])]}let S="p";function h(r,e){let d=x(),t=v(),{id:i=`headlessui-description-${d}`,...l}=r,n=f(),s=E(e);y(()=>n.register(i),[i,n.register]);let o=t||!1,p=c(()=>({...n.slot,disabled:o}),[n.slot,o]),D={ref:s,...n.props,id:i};return I({ourProps:D,theirProps:l,slot:p,defaultTag:S,name:n.name||"Description"})}let C=R(h),U=Object.assign(C,{});export{U as Description,w as useDescribedBy,G as useDescriptions};
"use client";import m,{createContext as T,useContext as u,useMemo as c,useState as P}from"react";import{useEvent as g}from'../../hooks/use-event.js';import{useId as x}from'../../hooks/use-id.js';import{useIsoMorphicEffect as y}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as E}from'../../hooks/use-sync-refs.js';import{useDisabled as v}from'../../internal/disabled.js';import{forwardRefWithAs as R,render as I}from'../../utils/render.js';let a=T(null);a.displayName="DescriptionContext";function f(){let r=u(a);if(r===null){let e=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(e,f),e}return r}function G(){var r,e;return(e=(r=u(a))==null?void 0:r.value)!=null?e:void 0}function U(){let[r,e]=P([]);return[r.length>0?r.join(" "):void 0,c(()=>function(t){let i=g(n=>(e(s=>[...s,n]),()=>e(s=>{let o=s.slice(),p=o.indexOf(n);return p!==-1&&o.splice(p,1),o}))),l=c(()=>({register:i,slot:t.slot,name:t.name,props:t.props,value:t.value}),[i,t.slot,t.name,t.props,t.value]);return m.createElement(a.Provider,{value:l},t.children)},[e])]}let S="p";function C(r,e){let d=x(),t=v(),{id:i=`headlessui-description-${d}`,...l}=r,n=f(),s=E(e);y(()=>n.register(i),[i,n.register]);let o=t||!1,p=c(()=>({...n.slot,disabled:o}),[n.slot,o]),D={ref:s,...n.props,id:i};return I({ourProps:D,theirProps:l,slot:p,defaultTag:S,name:n.name||"Description"})}let _=R(C),w=Object.assign(_,{});export{w as Description,G as useDescribedBy,U as useDescriptions};

@@ -19,17 +19,3 @@ import React, { type ElementType, type MutableRefObject, type Ref } from 'react';

}>;
declare function DialogFn<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(props: DialogProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare let DEFAULT_OVERLAY_TAG: "div";
type OverlayRenderPropArg = {
open: boolean;
};
type OverlayPropsWeControl = 'aria-hidden';
export type DialogOverlayProps<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG> = Props<TTag, OverlayRenderPropArg, OverlayPropsWeControl>;
declare function OverlayFn<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: DialogOverlayProps<TTag>, ref: Ref<HTMLDivElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_BACKDROP_TAG: "div";
type BackdropRenderPropArg = {
open: boolean;
};
type BackdropPropsWeControl = 'aria-hidden';
export type DialogBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = Props<TTag, BackdropRenderPropArg, BackdropPropsWeControl>;
declare function BackdropFn<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: DialogBackdropProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function DialogFn<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(props: DialogProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_PANEL_TAG: "div";

@@ -40,3 +26,3 @@ type PanelRenderPropArg = {

export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag>, ref: Ref<HTMLDivElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_TITLE_TAG: "h2";

@@ -47,15 +33,9 @@ type TitleRenderPropArg = {

export type DialogTitleProps<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> = Props<TTag, TitleRenderPropArg>;
declare function TitleFn<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(props: DialogTitleProps<TTag>, ref: Ref<HTMLHeadingElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare function TitleFn<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(props: DialogTitleProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export interface _internal_ComponentDialog extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(props: DialogProps<TTag> & RefProp<typeof DialogFn>): JSX.Element;
}
export interface _internal_ComponentDialogBackdrop extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: DialogBackdropProps<TTag> & RefProp<typeof BackdropFn>): JSX.Element;
}
export interface _internal_ComponentDialogPanel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag> & RefProp<typeof PanelFn>): JSX.Element;
}
export interface _internal_ComponentDialogOverlay extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: DialogOverlayProps<TTag> & RefProp<typeof OverlayFn>): JSX.Element;
}
export interface _internal_ComponentDialogTitle extends HasDisplayName {

@@ -66,5 +46,3 @@ <TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(props: DialogTitleProps<TTag> & RefProp<typeof TitleFn>): JSX.Element;

}
export declare let DialogBackdrop: _internal_ComponentDialogBackdrop;
export declare let DialogPanel: _internal_ComponentDialogPanel;
export declare let DialogOverlay: _internal_ComponentDialogOverlay;
export declare let DialogTitle: _internal_ComponentDialogTitle;

@@ -74,5 +52,5 @@ /** @deprecated use `<Description>` instead of `<DialogDescription>` */

export declare let Dialog: _internal_ComponentDialog & {
Backdrop: _internal_ComponentDialogBackdrop;
/** @deprecated use `<DialogPanel>` instead of `<Dialog.Panel>` */
Panel: _internal_ComponentDialogPanel;
Overlay: _internal_ComponentDialogOverlay;
/** @deprecated use `<DialogTitle>` instead of `<Dialog.Title>` */
Title: _internal_ComponentDialogTitle;

@@ -79,0 +57,0 @@ /** @deprecated use `<Description>` instead of `<Dialog.Description>` */

@@ -1,1 +0,1 @@

"use client";import s,{createContext as _e,createRef as Re,useCallback as q,useContext as z,useEffect as H,useMemo as P,useReducer as Ce,useRef as Q,useState as Oe}from"react";import{useDocumentOverflowLockedEffect as ve}from'../../hooks/document-overflow/use-document-overflow.js';import{useEvent as _}from'../../hooks/use-event.js';import{useEventListener as Fe}from'../../hooks/use-event-listener.js';import{useId as R}from'../../hooks/use-id.js';import{useInert as Z}from'../../hooks/use-inert.js';import{useIsTouchDevice as be}from'../../hooks/use-is-touch-device.js';import{useOutsideClick as Le}from'../../hooks/use-outside-click.js';import{useOwnerDocument as xe}from'../../hooks/use-owner.js';import{useRootContainers as he}from'../../hooks/use-root-containers.js';import{useServerHandoffComplete as Se}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as C}from'../../hooks/use-sync-refs.js';import{HoistFormFields as ke}from'../../internal/form-fields.js';import{State as k,useOpenClosed as Ie}from'../../internal/open-closed.js';import{ForcePortalRoot as B}from'../../internal/portal-force-root.js';import{StackMessage as ee,StackProvider as Me}from'../../internal/stack-context.js';import{isDisabledReactIssue7711 as Ge}from'../../utils/bugs.js';import{match as U}from'../../utils/match.js';import{RenderFeatures as te,forwardRefWithAs as O,render as v}from'../../utils/render.js';import{Description as oe,useDescriptions as we}from'../description/description.js';import{FocusTrap as He,FocusTrapFeatures as E}from'../focus-trap/focus-trap.js';import{Keys as Be}from'../keyboard.js';import{Portal as N,useNestedPortals as Ue}from'../portal/portal.js';var Ne=(r=>(r[r.Open=0]="Open",r[r.Closed=1]="Closed",r))(Ne||{}),We=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(We||{});let Ye={[0](t,e){return t.titleId===e.id?t:{...t,titleId:e.id}}},I=_e(null);I.displayName="DialogContext";function F(t){let e=z(I);if(e===null){let r=new Error(`<${t} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,F),r}return e}function $e(t,e,r=()=>[document.body]){ve(t,e,i=>{var n;return{containers:[...(n=i.containers)!=null?n:[],r]}})}function je(t,e){return U(e.type,Ye,t,e)}let Je="div",Ke=te.RenderStrategy|te.Static;function Ve(t,e){let r=R(),{id:i=`headlessui-dialog-${r}`,open:n,onClose:l,initialFocus:p,role:a="dialog",autoFocus:T=!0,__demoMode:m=!1,...M}=t,[f,W]=Oe(0),Y=Q(!1);a=function(){return a==="dialog"||a==="alertdialog"?a:(Y.current||(Y.current=!0,console.warn(`Invalid role [${a}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")}();let A=Ie();n===void 0&&A!==null&&(n=(A&k.Open)===k.Open);let c=Q(null),re=C(c,e),g=xe(c),$=t.hasOwnProperty("open")||A!==null,j=t.hasOwnProperty("onClose");if(!$&&!j)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!$)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!j)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(typeof n!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${n}`);if(typeof l!="function")throw new Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${l}`);let d=n?0:1,[b,ne]=Ce(je,{titleId:null,descriptionId:null,panelRef:Re()}),y=_(()=>l(!1)),J=_(o=>ne({type:0,id:o})),L=Se()?m?!1:d===0:!1,x=f>1,K=z(I)!==null,[le,ae]=Ue(),ie={get current(){var o;return(o=b.panelRef.current)!=null?o:c.current}},{resolveContainers:G,mainTreeNodeRef:h,MainTreeNode:se}=he({portals:le,defaultContainers:[ie]}),pe=x?"parent":"leaf",V=A!==null?(A&k.Closing)===k.Closing:!1,de=(()=>K||V?!1:L)(),ue=q(()=>{var o,D;return(D=Array.from((o=g==null?void 0:g.querySelectorAll("body > *"))!=null?o:[]).find(u=>u.id==="headlessui-portal-root"?!1:u.contains(h.current)&&u instanceof HTMLElement))!=null?D:null},[h]);Z(ue,de);let fe=(()=>x?!0:L)(),ge=q(()=>{var o,D;return(D=Array.from((o=g==null?void 0:g.querySelectorAll("[data-headlessui-portal]"))!=null?o:[]).find(u=>u.contains(h.current)&&u instanceof HTMLElement))!=null?D:null},[h]);Z(ge,fe);let Te=(()=>!(!L||x))();Le(G,y,Te);let ce=(()=>!(x||d!==0))();Fe(g==null?void 0:g.defaultView,"keydown",o=>{ce&&(o.defaultPrevented||o.key===Be.Escape&&(o.preventDefault(),o.stopPropagation(),y()))});let De=(()=>!(V||d!==0||K))();$e(g,De,G),H(()=>{if(d!==0||!c.current)return;let o=new ResizeObserver(D=>{for(let u of D){let S=u.target.getBoundingClientRect();S.x===0&&S.y===0&&S.width===0&&S.height===0&&y()}});return o.observe(c.current),()=>o.disconnect()},[d,c,y]);let[me,ye]=we(),Pe=P(()=>[{dialogState:d,close:y,setTitleId:J},b],[d,b,y,J]),X=P(()=>({open:d===0}),[d]),Ee={ref:re,id:i,role:a,tabIndex:-1,"aria-modal":d===0?!0:void 0,"aria-labelledby":b.titleId,"aria-describedby":me},Ae=!be(),w=L?U(pe,{parent:E.RestoreFocus,leaf:E.All&~E.FocusLock}):E.None;return T&&(w|=E.AutoFocus),Ae||(w&=~E.InitialFocus),s.createElement(Me,{type:"Dialog",enabled:d===0,element:c,onUpdate:_((o,D)=>{D==="Dialog"&&U(o,{[ee.Add]:()=>W(u=>u+1),[ee.Remove]:()=>W(u=>u-1)})})},s.createElement(B,{force:!0},s.createElement(N,null,s.createElement(I.Provider,{value:Pe},s.createElement(N.Group,{target:c},s.createElement(B,{force:!1},s.createElement(ye,{slot:X,name:"Dialog.Description"},s.createElement(ae,null,s.createElement(He,{initialFocus:p,initialFocusFallback:c,containers:G,features:w},v({ourProps:Ee,theirProps:M,slot:X,defaultTag:Je,features:Ke,visible:d===0,name:"Dialog"}))))))))),s.createElement(ke,null,s.createElement(se,null)))}let Xe="div";function qe(t,e){let r=R(),{id:i=`headlessui-dialog-overlay-${r}`,...n}=t,[{dialogState:l,close:p}]=F("Dialog.Overlay"),a=C(e),T=_(f=>{if(f.target===f.currentTarget){if(Ge(f.currentTarget))return f.preventDefault();f.preventDefault(),f.stopPropagation(),p()}}),m=P(()=>({open:l===0}),[l]);return v({ourProps:{ref:a,id:i,"aria-hidden":!0,onClick:T},theirProps:n,slot:m,defaultTag:Xe,name:"Dialog.Overlay"})}let ze="div";function Qe(t,e){let r=R(),{id:i=`headlessui-dialog-backdrop-${r}`,...n}=t,[{dialogState:l},p]=F("Dialog.Backdrop"),a=C(e);H(()=>{if(p.panelRef.current===null)throw new Error("A <Dialog.Backdrop /> component is being used, but a <Dialog.Panel /> component is missing.")},[p.panelRef]);let T=P(()=>({open:l===0}),[l]);return s.createElement(B,{force:!0},s.createElement(N,null,v({ourProps:{ref:a,id:i,"aria-hidden":!0},theirProps:n,slot:T,defaultTag:ze,name:"Dialog.Backdrop"})))}let Ze="div";function et(t,e){let r=R(),{id:i=`headlessui-dialog-panel-${r}`,...n}=t,[{dialogState:l},p]=F("Dialog.Panel"),a=C(e,p.panelRef),T=P(()=>({open:l===0}),[l]),m=_(f=>{f.stopPropagation()});return v({ourProps:{ref:a,id:i,onClick:m},theirProps:n,slot:T,defaultTag:Ze,name:"Dialog.Panel"})}let tt="h2";function ot(t,e){let r=R(),{id:i=`headlessui-dialog-title-${r}`,...n}=t,[{dialogState:l,setTitleId:p}]=F("Dialog.Title"),a=C(e);H(()=>(p(i),()=>p(null)),[i,p]);let T=P(()=>({open:l===0}),[l]);return v({ourProps:{ref:a,id:i},theirProps:n,slot:T,defaultTag:tt,name:"Dialog.Title"})}let rt=O(Ve),nt=O(Qe),lt=O(et),at=O(qe),it=O(ot),St=oe,kt=Object.assign(rt,{Backdrop:nt,Panel:lt,Overlay:at,Title:it,Description:oe});export{kt as Dialog,nt as DialogBackdrop,St as DialogDescription,at as DialogOverlay,lt as DialogPanel,it as DialogTitle};
"use client";import n,{createContext as te,createRef as oe,useContext as le,useEffect as ne,useMemo as F,useReducer as re,useRef as U}from"react";import{useEscape as ae}from'../../hooks/use-escape.js';import{useEvent as y}from'../../hooks/use-event.js';import{useId as v}from'../../hooks/use-id.js';import{useInertOthers as ie}from'../../hooks/use-inert-others.js';import{useIsTouchDevice as se}from'../../hooks/use-is-touch-device.js';import{useOnDisappear as pe}from'../../hooks/use-on-disappear.js';import{useOutsideClick as de}from'../../hooks/use-outside-click.js';import{useOwnerDocument as ue}from'../../hooks/use-owner.js';import{useRootContainers as fe}from'../../hooks/use-root-containers.js';import{useScrollLock as Te}from'../../hooks/use-scroll-lock.js';import{useServerHandoffComplete as ge}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as x}from'../../hooks/use-sync-refs.js';import{CloseProvider as ce}from'../../internal/close-provider.js';import{HoistFormFields as me}from'../../internal/form-fields.js';import{State as b,useOpenClosed as De}from'../../internal/open-closed.js';import{ForcePortalRoot as k}from'../../internal/portal-force-root.js';import{match as Pe}from'../../utils/match.js';import{RenderFeatures as $,forwardRefWithAs as L,render as h}from'../../utils/render.js';import{Description as j,useDescriptions as ye}from'../description/description.js';import{FocusTrap as Ee,FocusTrapFeatures as E}from'../focus-trap/focus-trap.js';import{Portal as _e,PortalGroup as Ae,useNestedPortals as Ce}from'../portal/portal.js';var Fe=(l=>(l[l.Open=0]="Open",l[l.Closed=1]="Closed",l))(Fe||{}),be=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(be||{});let Re={[0](t,e){return t.titleId===e.id?t:{...t,titleId:e.id}}},O=te(null);O.displayName="DialogContext";function I(t){let e=le(O);if(e===null){let l=new Error(`<${t} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,I),l}return e}function ve(t,e){return Pe(e.type,Re,t,e)}let xe="div",Le=$.RenderStrategy|$.Static;function he(t,e){let l=v(),{id:s=`headlessui-dialog-${l}`,open:a,onClose:i,initialFocus:p,role:r="dialog",autoFocus:c=!0,__demoMode:d=!1,...S}=t,_=U(!1);r=function(){return r==="dialog"||r==="alertdialog"?r:(_.current||(_.current=!0,console.warn(`Invalid role [${r}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")}();let m=De();a===void 0&&m!==null&&(a=(m&b.Open)===b.Open);let u=U(null),W=x(u,e),A=ue(u),M=t.hasOwnProperty("open")||m!==null,w=t.hasOwnProperty("onClose");if(!M&&!w)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!M)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!w)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(typeof a!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${a}`);if(typeof i!="function")throw new Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${i}`);let f=a?0:1,[C,Y]=re(ve,{titleId:null,descriptionId:null,panelRef:oe()}),T=y(()=>i(!1)),G=y(o=>Y({type:0,id:o})),g=ge()?f===0:!1,[J,X]=Ce(),B={get current(){var o;return(o=C.panelRef.current)!=null?o:u.current}},{resolveContainers:R,mainTreeNodeRef:V,MainTreeNode:q}=fe({portals:J,defaultContainers:[B]}),H=m!==null?(m&b.Closing)===b.Closing:!1;ie(d||H?!1:g,{allowed:y(()=>{var o,P;return[(P=(o=u.current)==null?void 0:o.closest("[data-headlessui-portal]"))!=null?P:null]}),disallowed:y(()=>{var o,P;return[(P=(o=V.current)==null?void 0:o.closest("body > *:not(#headlessui-portal-root)"))!=null?P:null]})}),de(g,R,o=>{o.preventDefault(),T()}),ae(g,A==null?void 0:A.defaultView,o=>{o.preventDefault(),o.stopPropagation(),document.activeElement&&"blur"in document.activeElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur(),T()}),Te(d||H?!1:g,A,R),pe(g,u,T);let[z,K]=ye(),Q=F(()=>[{dialogState:f,close:T,setTitleId:G},C],[f,C,T,G]),N=F(()=>({open:f===0}),[f]),Z={ref:W,id:s,role:r,tabIndex:-1,"aria-modal":d?void 0:f===0?!0:void 0,"aria-labelledby":C.titleId,"aria-describedby":z},ee=!se(),D=E.None;return g&&!d&&(D|=E.RestoreFocus,D|=E.TabLock,c&&(D|=E.AutoFocus),ee&&(D|=E.InitialFocus)),n.createElement(n.Fragment,null,n.createElement(k,{force:!0},n.createElement(_e,null,n.createElement(O.Provider,{value:Q},n.createElement(Ae,{target:u},n.createElement(k,{force:!1},n.createElement(K,{slot:N},n.createElement(X,null,n.createElement(Ee,{initialFocus:p,initialFocusFallback:u,containers:R,features:D},n.createElement(ce,{value:T},h({ourProps:Z,theirProps:S,slot:N,defaultTag:xe,features:Le,visible:f===0,name:"Dialog"})))))))))),n.createElement(me,null,n.createElement(q,null)))}let Oe="div";function Ie(t,e){let l=v(),{id:s=`headlessui-dialog-panel-${l}`,...a}=t,[{dialogState:i},p]=I("Dialog.Panel"),r=x(e,p.panelRef),c=F(()=>({open:i===0}),[i]),d=y(_=>{_.stopPropagation()});return h({ourProps:{ref:r,id:s,onClick:d},theirProps:a,slot:c,defaultTag:Oe,name:"Dialog.Panel"})}let Se="h2";function Me(t,e){let l=v(),{id:s=`headlessui-dialog-title-${l}`,...a}=t,[{dialogState:i,setTitleId:p}]=I("Dialog.Title"),r=x(e);ne(()=>(p(s),()=>p(null)),[s,p]);let c=F(()=>({open:i===0}),[i]);return h({ourProps:{ref:r,id:s},theirProps:a,slot:c,defaultTag:Se,name:"Dialog.Title"})}let we=L(he),Ge=L(Ie),He=L(Me),pt=j,dt=Object.assign(we,{Panel:Ge,Title:He,Description:j});export{dt as Dialog,pt as DialogDescription,Ge as DialogPanel,He as DialogTitle};
import React, { type ElementType, type MutableRefObject, type Ref } from 'react';
import { type TransitionData } from '../../hooks/use-transition.js';
import type { Props } from '../../types.js';

@@ -21,2 +22,3 @@ import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js';

active: boolean;
disabled: boolean;
focus: boolean;

@@ -35,7 +37,9 @@ autofocus: boolean;

close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
};
} & TransitionData;
type DisclosurePanelPropsWeControl = never;
declare let PanelRenderFeatures: number;
export type DisclosurePanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, DisclosurePanelPropsWeControl, PropsForFeatures<typeof PanelRenderFeatures>>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
export type DisclosurePanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, DisclosurePanelPropsWeControl, {
transition?: boolean;
} & PropsForFeatures<typeof PanelRenderFeatures>>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
export interface _internal_ComponentDisclosure extends HasDisplayName {

@@ -53,5 +57,7 @@ <TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag> & RefProp<typeof DisclosureFn>): JSX.Element;

export declare let Disclosure: _internal_ComponentDisclosure & {
/** @deprecated use `<DisclosureButton>` instead of `<Disclosure.Button>` */
Button: _internal_ComponentDisclosureButton;
/** @deprecated use `<DisclosurePanel>` instead of `<Disclosure.Panel>` */
Panel: _internal_ComponentDisclosurePanel;
};
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as Y}from"@react-aria/focus";import{useHover as Z}from"@react-aria/interactions";import R,{Fragment as j,createContext as x,useContext as L,useEffect as W,useMemo as b,useReducer as ee,useRef as A}from"react";import{useActivePress as te}from'../../hooks/use-active-press.js';import{useEvent as C}from'../../hooks/use-event.js';import{useId as $}from'../../hooks/use-id.js';import{useResolveButtonType as ne}from'../../hooks/use-resolve-button-type.js';import{optionalRef as oe,useSyncRefs as O}from'../../hooks/use-sync-refs.js';import{OpenClosedProvider as le,State as I,useOpenClosed as se}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as re}from'../../utils/bugs.js';import{match as _}from'../../utils/match.js';import{getOwnerDocument as ue}from'../../utils/owner.js';import{RenderFeatures as J,forwardRefWithAs as v,mergeProps as X,render as B,useMergeRefsFn as V}from'../../utils/render.js';import{startTransition as ie}from'../../utils/start-transition.js';import{Keys as g}from'../keyboard.js';var ae=(l=>(l[l.Open=0]="Open",l[l.Closed=1]="Closed",l))(ae||{}),pe=(t=>(t[t.ToggleDisclosure=0]="ToggleDisclosure",t[t.CloseDisclosure=1]="CloseDisclosure",t[t.SetButtonId=2]="SetButtonId",t[t.SetPanelId=3]="SetPanelId",t[t.LinkPanel=4]="LinkPanel",t[t.UnlinkPanel=5]="UnlinkPanel",t))(pe||{});let ce={[0]:e=>({...e,disclosureState:_(e.disclosureState,{[0]:1,[1]:0})}),[1]:e=>e.disclosureState===1?e:{...e,disclosureState:1},[4](e){return e.linkedPanel===!0?e:{...e,linkedPanel:!0}},[5](e){return e.linkedPanel===!1?e:{...e,linkedPanel:!1}},[2](e,n){return e.buttonId===n.buttonId?e:{...e,buttonId:n.buttonId}},[3](e,n){return e.panelId===n.panelId?e:{...e,panelId:n.panelId}}},F=x(null);F.displayName="DisclosureContext";function k(e){let n=L(F);if(n===null){let l=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,k),l}return n}let M=x(null);M.displayName="DisclosureAPIContext";function q(e){let n=L(M);if(n===null){let l=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,q),l}return n}let H=x(null);H.displayName="DisclosurePanelContext";function de(){return L(H)}function fe(e,n){return _(n.type,ce,e,n)}let Te=j;function De(e,n){let{defaultOpen:l=!1,...i}=e,f=A(null),o=O(n,oe(u=>{f.current=u},e.as===void 0||e.as===j)),t=A(null),d=A(null),r=ee(fe,{disclosureState:l?0:1,linkedPanel:!1,buttonRef:d,panelRef:t,buttonId:null,panelId:null}),[{disclosureState:c,buttonId:a},y]=r,p=C(u=>{y({type:1});let D=ue(f);if(!D||!a)return;let P=(()=>u?u instanceof HTMLElement?u:u.current instanceof HTMLElement?u.current:D.getElementById(a):D.getElementById(a))();P==null||P.focus()}),m=b(()=>({close:p}),[p]),T=b(()=>({open:c===0,close:p}),[c,p]),S={ref:o};return R.createElement(F.Provider,{value:r},R.createElement(M.Provider,{value:m},R.createElement(le,{value:_(c,{[0]:I.Open,[1]:I.Closed})},B({ourProps:S,theirProps:i,slot:T,defaultTag:Te,name:"Disclosure"}))))}let Pe="button";function ye(e,n){var N,G,K;let l=$(),{id:i=`headlessui-disclosure-button-${l}`,...f}=e,[o,t]=k("Disclosure.Button"),d=de(),r=d===null?!1:d===o.panelId,c=A(null),a=O(c,n,r?null:o.buttonRef),y=V();W(()=>{if(!r)return t({type:2,buttonId:i}),()=>{t({type:2,buttonId:null})}},[i,t,r]);let p=C(s=>{var E;if(r){if(o.disclosureState===1)return;switch(s.key){case g.Space:case g.Enter:s.preventDefault(),s.stopPropagation(),t({type:0}),(E=o.buttonRef.current)==null||E.focus();break}}else switch(s.key){case g.Space:case g.Enter:s.preventDefault(),s.stopPropagation(),t({type:0});break}}),m=C(s=>{switch(s.key){case g.Space:s.preventDefault();break}}),T=C(s=>{var E;re(s.currentTarget)||e.disabled||(r?(t({type:0}),(E=o.buttonRef.current)==null||E.focus()):t({type:0}))}),{isFocusVisible:S,focusProps:u}=Y({autoFocus:(N=e.autoFocus)!=null?N:!1}),{isHovered:D,hoverProps:P}=Z({isDisabled:(G=e.disabled)!=null?G:!1}),{pressed:U,pressProps:h}=te({disabled:(K=e.disabled)!=null?K:!1}),z=b(()=>{var s;return{open:o.disclosureState===0,hover:D,active:U,focus:S,autofocus:(s=e.autoFocus)!=null?s:!1}},[o,D,U,S,e.autoFocus]),w=ne(e,c),Q=r?X({ref:a,type:w,onKeyDown:p,onClick:T},u,P,h):X({ref:a,id:i,type:w,"aria-expanded":o.disclosureState===0,"aria-controls":o.linkedPanel?o.panelId:void 0,onKeyDown:p,onKeyUp:m,onClick:T},u,P,h);return B({mergeRefs:y,ourProps:Q,theirProps:f,slot:z,defaultTag:Pe,name:"Disclosure.Button"})}let me="div",Ee=J.RenderStrategy|J.Static;function ge(e,n){let l=$(),{id:i=`headlessui-disclosure-panel-${l}`,...f}=e,[o,t]=k("Disclosure.Panel"),{close:d}=q("Disclosure.Panel"),r=V(),c=O(n,o.panelRef,T=>{ie(()=>t({type:T?4:5}))});W(()=>(t({type:3,panelId:i}),()=>{t({type:3,panelId:null})}),[i,t]);let a=se(),y=(()=>a!==null?(a&I.Open)===I.Open:o.disclosureState===0)(),p=b(()=>({open:o.disclosureState===0,close:d}),[o,d]),m={ref:c,id:i};return R.createElement(H.Provider,{value:o.panelId},B({mergeRefs:r,ourProps:m,theirProps:f,slot:p,defaultTag:me,features:Ee,visible:y,name:"Disclosure.Panel"}))}let Se=v(De),Re=v(ye),be=v(ge),we=Object.assign(Se,{Button:Re,Panel:be});export{we as Disclosure,Re as DisclosureButton,be as DisclosurePanel};
"use client";import{useFocusRing as Q}from"@react-aria/focus";import{useHover as Y}from"@react-aria/interactions";import S,{Fragment as K,createContext as x,useContext as L,useEffect as j,useMemo as R,useReducer as Z,useRef as A}from"react";import{useActivePress as ee}from'../../hooks/use-active-press.js';import{useEvent as C}from'../../hooks/use-event.js';import{useId as W}from'../../hooks/use-id.js';import{useResolveButtonType as te}from'../../hooks/use-resolve-button-type.js';import{optionalRef as ne,useSyncRefs as v}from'../../hooks/use-sync-refs.js';import{useTransition as oe}from'../../hooks/use-transition.js';import{CloseProvider as le}from'../../internal/close-provider.js';import{OpenClosedProvider as re,State as I,useOpenClosed as se}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as ie}from'../../utils/bugs.js';import{match as O}from'../../utils/match.js';import{getOwnerDocument as ae}from'../../utils/owner.js';import{RenderFeatures as $,forwardRefWithAs as _,mergeProps as J,render as B,useMergeRefsFn as X}from'../../utils/render.js';import{startTransition as ue}from'../../utils/start-transition.js';import{Keys as b}from'../keyboard.js';var pe=(l=>(l[l.Open=0]="Open",l[l.Closed=1]="Closed",l))(pe||{}),ce=(t=>(t[t.ToggleDisclosure=0]="ToggleDisclosure",t[t.CloseDisclosure=1]="CloseDisclosure",t[t.SetButtonId=2]="SetButtonId",t[t.SetPanelId=3]="SetPanelId",t[t.LinkPanel=4]="LinkPanel",t[t.UnlinkPanel=5]="UnlinkPanel",t))(ce||{});let de={[0]:e=>({...e,disclosureState:O(e.disclosureState,{[0]:1,[1]:0})}),[1]:e=>e.disclosureState===1?e:{...e,disclosureState:1},[4](e){return e.linkedPanel===!0?e:{...e,linkedPanel:!0}},[5](e){return e.linkedPanel===!1?e:{...e,linkedPanel:!1}},[2](e,n){return e.buttonId===n.buttonId?e:{...e,buttonId:n.buttonId}},[3](e,n){return e.panelId===n.panelId?e:{...e,panelId:n.panelId}}},M=x(null);M.displayName="DisclosureContext";function F(e){let n=L(M);if(n===null){let l=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,F),l}return n}let k=x(null);k.displayName="DisclosureAPIContext";function V(e){let n=L(k);if(n===null){let l=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,V),l}return n}let H=x(null);H.displayName="DisclosurePanelContext";function fe(){return L(H)}function Te(e,n){return O(n.type,de,e,n)}let De=K;function Pe(e,n){let{defaultOpen:l=!1,...c}=e,s=A(null),d=v(n,ne(a=>{s.current=a},e.as===void 0||e.as===K)),t=A(null),o=A(null),r=Z(Te,{disclosureState:l?0:1,linkedPanel:!1,buttonRef:o,panelRef:t,buttonId:null,panelId:null}),[{disclosureState:f,buttonId:i},T]=r,p=C(a=>{T({type:1});let y=ae(s);if(!y||!i)return;let m=(()=>a?a instanceof HTMLElement?a:a.current instanceof HTMLElement?a.current:y.getElementById(i):y.getElementById(i))();m==null||m.focus()}),D=R(()=>({close:p}),[p]),P=R(()=>({open:f===0,close:p}),[f,p]),E={ref:d};return S.createElement(M.Provider,{value:r},S.createElement(k.Provider,{value:D},S.createElement(le,{value:p},S.createElement(re,{value:O(f,{[0]:I.Open,[1]:I.Closed})},B({ourProps:E,theirProps:c,slot:P,defaultTag:De,name:"Disclosure"})))))}let ye="button";function me(e,n){let l=W(),{id:c=`headlessui-disclosure-button-${l}`,disabled:s=!1,autoFocus:d=!1,...t}=e,[o,r]=F("Disclosure.Button"),f=fe(),i=f===null?!1:f===o.panelId,T=A(null),p=v(T,n,i?null:o.buttonRef),D=X();j(()=>{if(!i)return r({type:2,buttonId:c}),()=>{r({type:2,buttonId:null})}},[c,r,i]);let P=C(u=>{var g;if(i){if(o.disclosureState===1)return;switch(u.key){case b.Space:case b.Enter:u.preventDefault(),u.stopPropagation(),r({type:0}),(g=o.buttonRef.current)==null||g.focus();break}}else switch(u.key){case b.Space:case b.Enter:u.preventDefault(),u.stopPropagation(),r({type:0});break}}),E=C(u=>{switch(u.key){case b.Space:u.preventDefault();break}}),a=C(u=>{var g;ie(u.currentTarget)||s||(i?(r({type:0}),(g=o.buttonRef.current)==null||g.focus()):r({type:0}))}),{isFocusVisible:y,focusProps:m}=Q({autoFocus:d}),{isHovered:U,hoverProps:h}=Y({isDisabled:s}),{pressed:N,pressProps:w}=ee({disabled:s}),q=R(()=>({open:o.disclosureState===0,hover:U,active:N,disabled:s,focus:y,autofocus:d}),[o,U,N,y,s,d]),G=te(e,T),z=i?J({ref:p,type:G,disabled:s||void 0,autoFocus:d,onKeyDown:P,onClick:a},m,h,w):J({ref:p,id:c,type:G,"aria-expanded":o.disclosureState===0,"aria-controls":o.linkedPanel?o.panelId:void 0,disabled:s||void 0,autoFocus:d,onKeyDown:P,onKeyUp:E,onClick:a},m,h,w);return B({mergeRefs:D,ourProps:z,theirProps:t,slot:q,defaultTag:ye,name:"Disclosure.Button"})}let Ee="div",ge=$.RenderStrategy|$.Static;function Se(e,n){let l=W(),{id:c=`headlessui-disclosure-panel-${l}`,transition:s=!1,...d}=e,[t,o]=F("Disclosure.Panel"),{close:r}=V("Disclosure.Panel"),f=X(),i=v(n,t.panelRef,a=>{ue(()=>o({type:a?4:5}))});j(()=>(o({type:3,panelId:c}),()=>{o({type:3,panelId:null})}),[c,o]);let T=se(),[p,D]=oe(s,t.panelRef,T!==null?(T&I.Open)===I.Open:t.disclosureState===0),P=R(()=>({open:t.disclosureState===0,close:r,...D}),[t.disclosureState,r,D]),E={ref:i,id:c};return S.createElement(H.Provider,{value:t.panelId},B({mergeRefs:f,ourProps:E,theirProps:d,slot:P,defaultTag:Ee,features:ge,visible:p,name:"Disclosure.Panel"}))}let be=_(Pe),Re=_(me),Ae=_(Se),Ke=Object.assign(be,{Button:Re,Panel:Ae});export{Ke as Disclosure,Re as DisclosureButton,Ae as DisclosurePanel};

@@ -1,1 +0,1 @@

"use client";import r,{useMemo as F}from"react";import{useId as T}from'../../hooks/use-id.js';import{DisabledProvider as P,useDisabled as f}from'../../internal/disabled.js';import{FormFieldsProvider as y}from'../../internal/form-fields.js';import{IdProvider as u}from'../../internal/id.js';import{forwardRefWithAs as D,render as v}from'../../utils/render.js';import{useDescriptions as b}from'../description/description.js';import{useLabels as E}from'../label/label.js';let A="div";function L(i,d){let l=`headlessui-control-${T()}`,[t,s]=E(),[p,n]=b(),a=f(),{disabled:e=a||!1,...o}=i,m=F(()=>({disabled:e}),[e]);return r.createElement(P,{value:e},r.createElement(s,{value:t},r.createElement(n,{value:p},r.createElement(u,{id:l},v({ourProps:{ref:d,disabled:e,"aria-disabled":e||void 0},theirProps:{...o,children:r.createElement(y,null,o.children)},slot:m,defaultTag:A,name:"Field"})))))}let H=D(L);export{H as Field};
"use client";import r,{useMemo as F}from"react";import{useId as T}from'../../hooks/use-id.js';import{DisabledProvider as f,useDisabled as P}from'../../internal/disabled.js';import{FormFieldsProvider as y}from'../../internal/form-fields.js';import{IdProvider as u}from'../../internal/id.js';import{forwardRefWithAs as D,render as v}from'../../utils/render.js';import{useDescriptions as b}from'../description/description.js';import{useLabels as E}from'../label/label.js';let A="div";function L(d,l){let t=`headlessui-control-${T()}`,[s,p]=E(),[n,a]=b(),m=P(),{disabled:e=m||!1,...o}=d,i=F(()=>({disabled:e}),[e]);return r.createElement(f,{value:e},r.createElement(p,{value:s},r.createElement(a,{value:n},r.createElement(u,{id:t},v({ourProps:{ref:l,disabled:e||void 0,"aria-disabled":e||void 0},theirProps:{...o,children:r.createElement(y,null,typeof o.children=="function"?o.children(i):o.children)},slot:i,defaultTag:A,name:"Field"})))))}let H=D(L);export{H as Field};
import { type ElementType } from 'react';
import type { Props } from '../../types.js';
import { type HasDisplayName } from '../../utils/render.js';
declare let DEFAULT_FIELDSET_TAG: "div";
declare let DEFAULT_FIELDSET_TAG: "fieldset";
type FieldsetRenderPropArg = {};
type FieldsetPropsWeControl = 'aria-controls';
type FieldsetPropsWeControl = 'aria-labelledby' | 'aria-disabled' | 'role';
export type FieldsetProps<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG> = Props<TTag, FieldsetRenderPropArg, FieldsetPropsWeControl, {

@@ -8,0 +8,0 @@ disabled?: boolean;

@@ -1,1 +0,1 @@

"use client";import t,{useMemo as a}from"react";import{DisabledProvider as n,useDisabled as T}from'../../internal/disabled.js';import{forwardRefWithAs as m,render as F}from'../../utils/render.js';import{useLabels as y}from'../label/label.js';let f="div";function E(r,o){let l=T(),{disabled:e=l||!1,...s}=r,[i,d]=y(),p=a(()=>({disabled:e}),[e]);return t.createElement(n,{value:e},t.createElement(d,null,F({ourProps:{ref:o,role:"group","aria-labelledby":i,"aria-disabled":e||void 0},theirProps:s,slot:p,defaultTag:f,name:"Fieldset"})))}let L=m(E);export{L as Fieldset};
"use client";import o,{useMemo as y}from"react";import{useResolvedTag as F}from'../../hooks/use-resolved-tag.js';import{useSyncRefs as b}from'../../hooks/use-sync-refs.js';import{DisabledProvider as E,useDisabled as P}from'../../internal/disabled.js';import{forwardRefWithAs as u,render as g}from'../../utils/render.js';import{useLabels as D}from'../label/label.js';let d="fieldset";function A(t,i){var s;let a=P(),{disabled:e=a||!1,...p}=t,[n,T]=F((s=t.as)!=null?s:d),l=b(i,T),[r,f]=D(),m=y(()=>({disabled:e}),[e]);return o.createElement(E,{value:e},o.createElement(f,null,g({ourProps:n==="fieldset"?{ref:l,"aria-labelledby":r,disabled:e||void 0}:{ref:l,role:"group","aria-labelledby":r,"aria-disabled":e||void 0},theirProps:p,slot:m,defaultTag:d,name:"Fieldset"})))}let C=u(A);export{C as Fieldset};

@@ -8,15 +8,13 @@ import React, { type ElementType, type MutableRefObject, type Ref } from 'react';

/** No features enabled for the focus trap. */
None = 1,
None = 0,
/** Ensure that we move focus initially into the container. */
InitialFocus = 2,
InitialFocus = 1,
/** Ensure that pressing `Tab` and `Shift+Tab` is trapped within the container. */
TabLock = 4,
TabLock = 2,
/** Ensure that programmatically moving focus outside of the container is disallowed. */
FocusLock = 8,
FocusLock = 4,
/** Ensure that we restore the focus when unmounting the focus trap. */
RestoreFocus = 16,
RestoreFocus = 8,
/** Initial focus should look for the `data-autofocus` */
AutoFocus = 32,
/** Enable all features. */
All = 30
AutoFocus = 16
}

@@ -31,3 +29,3 @@ type FocusTrapRenderPropArg = {};

}>;
declare function FocusTrapFn<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function FocusTrapFn<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
export interface _internal_ComponentFocusTrap extends HasDisplayName {

@@ -37,4 +35,5 @@ <TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag> & RefProp<typeof FocusTrapFn>): JSX.Element;

export declare let FocusTrap: _internal_ComponentFocusTrap & {
/** @deprecated use `FocusTrapFeatures` instead of `FocusTrap.features` */
features: typeof FocusTrapFeatures;
};
export {};

@@ -1,1 +0,1 @@

"use client";import d,{useRef as L}from"react";import{useDisposables as I}from'../../hooks/use-disposables.js';import{useEvent as A}from'../../hooks/use-event.js';import{useEventListener as k}from'../../hooks/use-event-listener.js';import{useIsMounted as g}from'../../hooks/use-is-mounted.js';import{useOnUnmount as G}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as W}from'../../hooks/use-owner.js';import{useServerHandoffComplete as K}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as V}from'../../hooks/use-sync-refs.js';import{Direction as M,useTabDirection as q}from'../../hooks/use-tab-direction.js';import{useWatch as y}from'../../hooks/use-watch.js';import{Hidden as F,HiddenFeatures as P}from'../../internal/hidden.js';import{history as R}from'../../utils/active-element-history.js';import{Focus as T,FocusResult as O,focusElement as f,focusIn as m}from'../../utils/focus-management.js';import{match as C}from'../../utils/match.js';import{microTask as _}from'../../utils/micro-task.js';import{forwardRefWithAs as J,render as X}from'../../utils/render.js';function S(t){if(!t)return new Set;if(typeof t=="function")return new Set(t());let o=new Set;for(let e of t.current)e.current instanceof HTMLElement&&o.add(e.current);return o}let z="div";var h=(r=>(r[r.None=1]="None",r[r.InitialFocus=2]="InitialFocus",r[r.TabLock=4]="TabLock",r[r.FocusLock=8]="FocusLock",r[r.RestoreFocus=16]="RestoreFocus",r[r.AutoFocus=32]="AutoFocus",r[r.All=30]="All",r))(h||{});function Q(t,o){let e=L(null),n=V(e,o),{initialFocus:c,initialFocusFallback:p,containers:u,features:r=30,...l}=t;K()||(r=1);let s=W(e);$({ownerDocument:s},!!(r&16));let U=D({ownerDocument:s,container:e,initialFocus:c,initialFocusFallback:p},r);w({ownerDocument:s,container:e,containers:u,previousActiveElement:U},!!(r&8));let b=q(),v=A(a=>{let i=e.current;if(!i)return;(N=>N())(()=>{C(b.current,{[M.Forwards]:()=>{m(i,T.First,{skipElements:[a.relatedTarget,p]})},[M.Backwards]:()=>{m(i,T.Last,{skipElements:[a.relatedTarget,p]})}})})}),B=I(),H=L(!1),x={ref:n,onKeyDown(a){a.key=="Tab"&&(H.current=!0,B.requestAnimationFrame(()=>{H.current=!1}))},onBlur(a){if(!(r&8))return;let i=S(u);e.current instanceof HTMLElement&&i.add(e.current);let E=a.relatedTarget;E instanceof HTMLElement&&E.dataset.headlessuiFocusGuard!=="true"&&(j(i,E)||(H.current?m(e.current,C(b.current,{[M.Forwards]:()=>T.Next,[M.Backwards]:()=>T.Previous})|T.WrapAround,{relativeTo:a.target}):a.target instanceof HTMLElement&&f(a.target)))}};return d.createElement(d.Fragment,null,!!(r&4)&&d.createElement(F,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:v,features:P.Focusable}),X({ourProps:x,theirProps:l,defaultTag:z,name:"FocusTrap"}),!!(r&4)&&d.createElement(F,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:v,features:P.Focusable}))}let Y=J(Q),Le=Object.assign(Y,{features:h});function Z(t=!0){let o=L(R.slice());return y(([e],[n])=>{n===!0&&e===!1&&_(()=>{o.current.splice(0)}),n===!1&&e===!0&&(o.current=R.slice())},[t,R,o]),A(()=>{var e;return(e=o.current.find(n=>n!=null&&n.isConnected))!=null?e:null})}function $({ownerDocument:t},o){let e=Z(o);y(()=>{o||(t==null?void 0:t.activeElement)===(t==null?void 0:t.body)&&f(e())},[o]),G(()=>{o&&f(e())})}function D({ownerDocument:t,container:o,initialFocus:e,initialFocusFallback:n},c){let p=!!(c&2),u=L(null),r=g();return y(()=>{if(!p){n!=null&&n.current&&f(n.current);return}let l=o.current;l&&_(()=>{if(!r.current)return;let s=t==null?void 0:t.activeElement;if(e!=null&&e.current){if((e==null?void 0:e.current)===s){u.current=s;return}}else if(l.contains(s)){u.current=s;return}if(e!=null&&e.current)f(e.current);else{if(c&32){if(m(l,T.First|T.AutoFocus)!==O.Error)return}else if(m(l,T.First)!==O.Error)return;if(n!=null&&n.current&&(f(n.current),(t==null?void 0:t.activeElement)===n.current))return;console.warn("There are no focusable elements inside the <FocusTrap />")}u.current=t==null?void 0:t.activeElement})},[n,p,c]),u}function w({ownerDocument:t,container:o,containers:e,previousActiveElement:n},c){let p=g();k(t==null?void 0:t.defaultView,"focus",u=>{if(!c||!p.current)return;let r=S(e);o.current instanceof HTMLElement&&r.add(o.current);let l=n.current;if(!l)return;let s=u.target;s&&s instanceof HTMLElement?j(r,s)?(n.current=s,f(s)):(u.preventDefault(),u.stopPropagation(),f(l)):f(n.current)},!0)}function j(t,o){for(let e of t)if(e.contains(o))return!0;return!1}export{Le as FocusTrap,h as FocusTrapFeatures};
"use client";import L,{useRef as M}from"react";import{useDisposables as G}from'../../hooks/use-disposables.js';import{useEvent as A}from'../../hooks/use-event.js';import{useEventListener as W}from'../../hooks/use-event-listener.js';import{useIsMounted as P}from'../../hooks/use-is-mounted.js';import{useIsTopLayer as O}from'../../hooks/use-is-top-layer.js';import{useOnUnmount as K}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as V}from'../../hooks/use-owner.js';import{useServerHandoffComplete as q}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as J}from'../../hooks/use-sync-refs.js';import{Direction as H,useTabDirection as X}from'../../hooks/use-tab-direction.js';import{useWatch as y}from'../../hooks/use-watch.js';import{Hidden as C,HiddenFeatures as _}from'../../internal/hidden.js';import{history as b}from'../../utils/active-element-history.js';import{Focus as T,FocusResult as S,focusElement as p,focusIn as E}from'../../utils/focus-management.js';import{match as h}from'../../utils/match.js';import{microTask as j}from'../../utils/micro-task.js';import{forwardRefWithAs as z,render as Q}from'../../utils/render.js';function U(o){if(!o)return new Set;if(typeof o=="function")return new Set(o());let e=new Set;for(let t of o.current)t.current instanceof HTMLElement&&e.add(t.current);return e}let Y="div";var x=(n=>(n[n.None=0]="None",n[n.InitialFocus=1]="InitialFocus",n[n.TabLock=2]="TabLock",n[n.FocusLock=4]="FocusLock",n[n.RestoreFocus=8]="RestoreFocus",n[n.AutoFocus=16]="AutoFocus",n))(x||{});function Z(o,e){let t=M(null),r=J(t,e),{initialFocus:s,initialFocusFallback:a,containers:n,features:u=15,...f}=o;q()||(u=0);let l=V(t);w(u,{ownerDocument:l});let i=ee(u,{ownerDocument:l,container:t,initialFocus:s,initialFocusFallback:a});te(u,{ownerDocument:l,container:t,containers:n,previousActiveElement:i});let R=X(),g=A(c=>{let m=t.current;if(!m)return;(B=>B())(()=>{h(R.current,{[H.Forwards]:()=>{E(m,T.First,{skipElements:[c.relatedTarget,a]})},[H.Backwards]:()=>{E(m,T.Last,{skipElements:[c.relatedTarget,a]})}})})}),v=O(!!(u&2),"focus-trap#tab-lock"),N=G(),F=M(!1),k={ref:r,onKeyDown(c){c.key=="Tab"&&(F.current=!0,N.requestAnimationFrame(()=>{F.current=!1}))},onBlur(c){if(!(u&4))return;let m=U(n);t.current instanceof HTMLElement&&m.add(t.current);let d=c.relatedTarget;d instanceof HTMLElement&&d.dataset.headlessuiFocusGuard!=="true"&&(I(m,d)||(F.current?E(t.current,h(R.current,{[H.Forwards]:()=>T.Next,[H.Backwards]:()=>T.Previous})|T.WrapAround,{relativeTo:c.target}):c.target instanceof HTMLElement&&p(c.target)))}};return L.createElement(L.Fragment,null,v&&L.createElement(C,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:g,features:_.Focusable}),Q({ourProps:k,theirProps:f,defaultTag:Y,name:"FocusTrap"}),v&&L.createElement(C,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:g,features:_.Focusable}))}let $=z(Z),Fe=Object.assign($,{features:x});function D(o=!0){let e=M(b.slice());return y(([t],[r])=>{r===!0&&t===!1&&j(()=>{e.current.splice(0)}),r===!1&&t===!0&&(e.current=b.slice())},[o,b,e]),A(()=>{var t;return(t=e.current.find(r=>r!=null&&r.isConnected))!=null?t:null})}function w(o,{ownerDocument:e}){let t=!!(o&8),r=D(t);y(()=>{t||(e==null?void 0:e.activeElement)===(e==null?void 0:e.body)&&p(r())},[t]),K(()=>{t&&p(r())})}function ee(o,{ownerDocument:e,container:t,initialFocus:r,initialFocusFallback:s}){let a=M(null),n=O(!!(o&1),"focus-trap#initial-focus"),u=P();return y(()=>{if(o===0)return;if(!n){s!=null&&s.current&&p(s.current);return}let f=t.current;f&&j(()=>{if(!u.current)return;let l=e==null?void 0:e.activeElement;if(r!=null&&r.current){if((r==null?void 0:r.current)===l){a.current=l;return}}else if(f.contains(l)){a.current=l;return}if(r!=null&&r.current)p(r.current);else{if(o&16){if(E(f,T.First|T.AutoFocus)!==S.Error)return}else if(E(f,T.First)!==S.Error)return;if(s!=null&&s.current&&(p(s.current),(e==null?void 0:e.activeElement)===s.current))return;console.warn("There are no focusable elements inside the <FocusTrap />")}a.current=e==null?void 0:e.activeElement})},[s,n,o]),a}function te(o,{ownerDocument:e,container:t,containers:r,previousActiveElement:s}){let a=P(),n=!!(o&4);W(e==null?void 0:e.defaultView,"focus",u=>{if(!n||!a.current)return;let f=U(r);t.current instanceof HTMLElement&&f.add(t.current);let l=s.current;if(!l)return;let i=u.target;i&&i instanceof HTMLElement?I(f,i)?(s.current=i,p(i)):(u.preventDefault(),u.stopPropagation(),p(l)):p(s.current)},!0)}function I(o,e){for(let t of o)if(t.contains(e))return!0;return!1}export{Fe as FocusTrap,x as FocusTrapFeatures};

@@ -1,4 +0,4 @@

import { type ElementType } from 'react';
import { type ElementType, type Ref } from 'react';
import type { Props } from '../../types.js';
import { type HasDisplayName } from '../../utils/render.js';
import { type HasDisplayName, type RefProp } from '../../utils/render.js';
declare let DEFAULT_INPUT_TAG: "input";

@@ -18,6 +18,7 @@ type InputRenderPropArg = {

}>;
declare function InputFn<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: InputProps<TTag>, ref: Ref<HTMLElement>): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
export interface _internal_ComponentInput extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: InputProps<TTag>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: InputProps<TTag> & RefProp<typeof InputFn>): JSX.Element;
}
export declare let Input: _internal_ComponentInput;
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as P}from"@react-aria/focus";import{useHover as g}from"@react-aria/interactions";import{useMemo as v}from"react";import{useId as A}from'../../hooks/use-id.js';import{useDisabled as F}from'../../internal/disabled.js';import{useProvidedId as _}from'../../internal/id.js';import{forwardRefWithAs as D,mergeProps as E,render as x}from'../../utils/render.js';import{useDescribedBy as U}from'../description/description.js';import{useLabelledBy as R}from'../label/label.js';let h="input";function L(o,l){var s;let p=A(),i=_(),u=F(),{id:d=i||`headlessui-input-${p}`,disabled:e=u||!1,invalid:t=!1,...f}=o,m=R(),T=U(),{isFocusVisible:r,focusProps:b}=P({isTextInput:!0,autoFocus:(s=o.autoFocus)!=null?s:!1}),{isHovered:n,hoverProps:y}=g({isDisabled:e!=null?e:!1}),I=E({ref:l,id:d,"aria-labelledby":m,"aria-describedby":T,"aria-invalid":t?"":void 0,disabled:e||void 0},b,y),c=v(()=>{var a;return{disabled:e,invalid:t,hover:n,focus:r,autofocus:(a=o.autoFocus)!=null?a:!1}},[e,t,n,r,o.autoFocus]);return x({ourProps:I,theirProps:f,slot:c,defaultTag:h,name:"Input"})}let J=D(L);export{J as Input};
"use client";import{useFocusRing as P}from"@react-aria/focus";import{useHover as c}from"@react-aria/interactions";import{useMemo as g}from"react";import{useId as v}from'../../hooks/use-id.js';import{useDisabled as A}from'../../internal/disabled.js';import{useProvidedId as _}from'../../internal/id.js';import{forwardRefWithAs as D,mergeProps as E,render as F}from'../../utils/render.js';import{useDescribedBy as R}from'../description/description.js';import{useLabelledBy as U}from'../label/label.js';let x="input";function h(n,s){let a=v(),l=_(),i=A(),{id:d=l||`headlessui-input-${a}`,disabled:e=i||!1,autoFocus:o=!1,invalid:t=!1,...u}=n,f=U(),m=R(),{isFocused:r,focusProps:T}=P({autoFocus:o}),{isHovered:p,hoverProps:b}=c({isDisabled:e}),y=E({ref:s,id:d,"aria-labelledby":f,"aria-describedby":m,"aria-invalid":t?"":void 0,disabled:e||void 0,autoFocus:o},T,b),I=g(()=>({disabled:e,invalid:t,hover:p,focus:r,autofocus:o}),[e,t,p,r,o]);return F({ourProps:y,theirProps:u,slot:I,defaultTag:x,name:"Input"})}let J=D(h);export{J as Input};

@@ -1,1 +0,1 @@

"use client";import k,{createContext as D,useContext as h,useMemo as T,useState as R}from"react";import{useEvent as v}from'../../hooks/use-event.js';import{useId as _}from'../../hooks/use-id.js';import{useIsoMorphicEffect as A}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as B}from'../../hooks/use-sync-refs.js';import{useDisabled as F}from'../../internal/disabled.js';import{useProvidedId as S}from'../../internal/id.js';import{forwardRefWithAs as M,render as H}from'../../utils/render.js';let c=D(null);c.displayName="LabelContext";function P(){let r=h(c);if(r===null){let l=new Error("You used a <Label /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(l,P),l}return r}function I(r){var a,e,o;let l=(e=(a=h(c))==null?void 0:a.value)!=null?e:void 0;return((o=r==null?void 0:r.length)!=null?o:0)>0?[l,...r].filter(Boolean).join(" "):l}function w({inherit:r=!1}={}){let l=I(),[a,e]=R([]),o=r?[l,...a].filter(Boolean):a;return[o.length>0?o.join(" "):void 0,T(()=>function(t){let s=v(i=>(e(p=>[...p,i]),()=>e(p=>{let u=p.slice(),d=u.indexOf(i);return d!==-1&&u.splice(d,1),u}))),m=T(()=>({register:s,slot:t.slot,name:t.name,props:t.props,value:t.value}),[s,t.slot,t.name,t.props,t.value]);return k.createElement(c.Provider,{value:m},t.children)},[e])]}let N="label";function G(r,l){var y;let a=_(),e=P(),o=S(),g=F(),{id:t=`headlessui-label-${a}`,htmlFor:s=o!=null?o:(y=e.props)==null?void 0:y.htmlFor,passive:m=!1,...i}=r,p=B(l);A(()=>e.register(t),[t,e.register]);let u=v(L=>{let b=L.currentTarget;if(b instanceof HTMLLabelElement&&L.preventDefault(),e.props&&"onClick"in e.props&&typeof e.props.onClick=="function"&&e.props.onClick(L),b instanceof HTMLLabelElement){let n=document.getElementById(b.htmlFor);if(n){let E=n.getAttribute("disabled");if(E==="true"||E==="")return;let x=n.getAttribute("aria-disabled");if(x==="true"||x==="")return;(n instanceof HTMLInputElement&&(n.type==="radio"||n.type==="checkbox")||n.role==="radio"||n.role==="checkbox"||n.role==="switch")&&n.click(),n.focus({preventScroll:!0})}}}),d=g||!1,C=T(()=>({...e.slot,disabled:d}),[e.slot,d]),f={ref:p,...e.props,id:t,htmlFor:s,onClick:u};return m&&("onClick"in f&&(delete f.htmlFor,delete f.onClick),"onClick"in i&&delete i.onClick),H({ourProps:f,theirProps:i,slot:C,defaultTag:s?N:"div",name:e.name||"Label"})}let U=M(G),z=Object.assign(U,{});export{z as Label,P as useLabelContext,I as useLabelledBy,w as useLabels};
"use client";import k,{createContext as D,useContext as h,useMemo as T,useState as R}from"react";import{useEvent as v}from'../../hooks/use-event.js';import{useId as _}from'../../hooks/use-id.js';import{useIsoMorphicEffect as A}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as B}from'../../hooks/use-sync-refs.js';import{useDisabled as F}from'../../internal/disabled.js';import{useProvidedId as S}from'../../internal/id.js';import{forwardRefWithAs as M,render as H}from'../../utils/render.js';let c=D(null);c.displayName="LabelContext";function P(){let r=h(c);if(r===null){let l=new Error("You used a <Label /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(l,P),l}return r}function I(r){var a,e,o;let l=(e=(a=h(c))==null?void 0:a.value)!=null?e:void 0;return((o=r==null?void 0:r.length)!=null?o:0)>0?[l,...r].filter(Boolean).join(" "):l}function z({inherit:r=!1}={}){let l=I(),[a,e]=R([]),o=r?[l,...a].filter(Boolean):a;return[o.length>0?o.join(" "):void 0,T(()=>function(t){let s=v(i=>(e(p=>[...p,i]),()=>e(p=>{let u=p.slice(),d=u.indexOf(i);return d!==-1&&u.splice(d,1),u}))),m=T(()=>({register:s,slot:t.slot,name:t.name,props:t.props,value:t.value}),[s,t.slot,t.name,t.props,t.value]);return k.createElement(c.Provider,{value:m},t.children)},[e])]}let N="label";function G(r,l){var y;let a=_(),e=P(),o=S(),g=F(),{id:t=`headlessui-label-${a}`,htmlFor:s=o!=null?o:(y=e.props)==null?void 0:y.htmlFor,passive:m=!1,...i}=r,p=B(l);A(()=>e.register(t),[t,e.register]);let u=v(L=>{let b=L.currentTarget;if(b instanceof HTMLLabelElement&&L.preventDefault(),e.props&&"onClick"in e.props&&typeof e.props.onClick=="function"&&e.props.onClick(L),b instanceof HTMLLabelElement){let n=document.getElementById(b.htmlFor);if(n){let E=n.getAttribute("disabled");if(E==="true"||E==="")return;let x=n.getAttribute("aria-disabled");if(x==="true"||x==="")return;(n instanceof HTMLInputElement&&(n.type==="radio"||n.type==="checkbox")||n.role==="radio"||n.role==="checkbox"||n.role==="switch")&&n.click(),n.focus({preventScroll:!0})}}}),d=g||!1,C=T(()=>({...e.slot,disabled:d}),[e.slot,d]),f={ref:p,...e.props,id:t,htmlFor:s,onClick:u};return m&&("onClick"in f&&(delete f.htmlFor,delete f.onClick),"onClick"in i&&delete i.onClick),H({ourProps:f,theirProps:i,slot:C,defaultTag:s?N:"div",name:e.name||"Label"})}let U=M(G),K=Object.assign(U,{});export{K as Label,P as useLabelContext,I as useLabelledBy,z as useLabels};

@@ -1,1 +0,1 @@

"use client";import p from"react";import{forwardRefWithAs as r}from'../../utils/render.js';import{Label as e}from'../label/label.js';let a=e;function o(n,t){return p.createElement(e,{as:"div",ref:t,...n})}let d=r(o);export{d as Legend};
"use client";import p from"react";import{forwardRefWithAs as r}from'../../utils/render.js';import{Label as e}from'../label/label.js';let a=e;function o(t,n){return p.createElement(e,{as:"div",ref:n,...t})}let d=r(o);export{d as Legend};
import React, { type ElementType, type Ref } from 'react';
import { type ByComparator } from '../../hooks/use-by-comparator.js';
import { type TransitionData } from '../../hooks/use-transition.js';
import { type AnchorPropsWithSelection } from '../../internal/floating.js';

@@ -27,2 +28,3 @@ import type { Props } from '../../types.js';

multiple?: boolean;
__demoMode?: boolean;
}>;

@@ -44,8 +46,9 @@ declare function ListboxFn<TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG, TType = string, TActualType = TType extends (infer U)[] ? U : TType>(props: ListboxProps<TTag, TType, TActualType>, ref: Ref<HTMLElement>): React.JSX.Element;

autoFocus?: boolean;
disabled?: boolean;
}>;
declare function ButtonFn<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ListboxButtonProps<TTag>, ref: Ref<HTMLButtonElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_OPTIONS_TAG: "ul";
declare let DEFAULT_OPTIONS_TAG: "div";
type OptionsRenderPropArg = {
open: boolean;
};
} & TransitionData;
type OptionsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'aria-multiselectable' | 'aria-orientation' | 'role' | 'tabIndex';

@@ -55,6 +58,8 @@ declare let OptionsRenderFeatures: number;

anchor?: AnchorPropsWithSelection;
portal?: boolean;
modal?: boolean;
transition?: boolean;
} & PropsForFeatures<typeof OptionsRenderFeatures>>;
declare function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ListboxOptionsProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_OPTION_TAG: "li";
declare let DEFAULT_OPTION_TAG: "div";
type OptionRenderPropArg = {

@@ -109,8 +114,13 @@ /** @deprecated use `focus` instead */

export declare let Listbox: _internal_ComponentListbox & {
/** @deprecated use `<ListboxButton>` instead of `<Listbox.Button>` */
Button: _internal_ComponentListboxButton;
/** @deprecated use `<Label>` instead of `<Listbox.Label>` */
Label: _internal_ComponentListboxLabel;
/** @deprecated use `<ListboxOptions>` instead of `<Listbox.Options>` */
Options: _internal_ComponentListboxOptions;
/** @deprecated use `<ListboxOption>` instead of `<Listbox.Option>` */
Option: _internal_ComponentListboxOption;
/** @deprecated use `<ListboxSelectedOption>` instead of `<Listbox.SelectedOption>` */
SelectedOption: _internal_ComponentListboxSelectedOption;
};
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as Se}from"@react-aria/focus";import{useHover as Re}from"@react-aria/interactions";import D,{Fragment as Z,createContext as ee,createRef as Pe,useCallback as pe,useContext as te,useEffect as ue,useMemo as N,useReducer as Ae,useRef as V,useState as Ee}from"react";import{useActivePress as he}from'../../hooks/use-active-press.js';import{useByComparator as De}from'../../hooks/use-by-comparator.js';import{useComputed as Ie}from'../../hooks/use-computed.js';import{useControllable as _e}from'../../hooks/use-controllable.js';import{useDidElementMove as Fe}from'../../hooks/use-did-element-move.js';import{useDisposables as X}from'../../hooks/use-disposables.js';import{useElementSize as Ce}from'../../hooks/use-element-size.js';import{useEvent as O}from'../../hooks/use-event.js';import{useId as oe}from'../../hooks/use-id.js';import{useIsoMorphicEffect as ne}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Me}from'../../hooks/use-latest-value.js';import{useOutsideClick as we}from'../../hooks/use-outside-click.js';import{useResolveButtonType as ke}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as j}from'../../hooks/use-sync-refs.js';import{useTextValue as Be}from'../../hooks/use-text-value.js';import{useTrackedPointer as Ue}from'../../hooks/use-tracked-pointer.js';import{useDisabled as Ne}from'../../internal/disabled.js';import{FloatingProvider as Ge,useFloatingPanel as Ve,useFloatingPanelProps as He,useFloatingReference as je,useFloatingReferenceProps as We}from'../../internal/floating.js';import{FormFields as ze}from'../../internal/form-fields.js';import{useProvidedId as Ke}from'../../internal/id.js';import{Modal as Qe}from'../../internal/modal.js';import{OpenClosedProvider as Xe,State as J,useOpenClosed as Je}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as $e}from'../../utils/bugs.js';import{Focus as y,calculateActiveIndex as ie}from'../../utils/calculate-active-index.js';import{disposables as re}from'../../utils/disposables.js';import{FocusableMode as qe,isFocusableElement as Ye,sortByDomNode as Ze}from'../../utils/focus-management.js';import{match as H}from'../../utils/match.js';import{getOwnerDocument as et}from'../../utils/owner.js';import{RenderFeatures as de,forwardRefWithAs as W,mergeProps as ce,render as z}from'../../utils/render.js';import{useDescribedBy as tt}from'../description/description.js';import{Keys as S}from'../keyboard.js';import{Label as ot,useLabelledBy as nt,useLabels as it}from'../label/label.js';import{Portal as rt}from'../portal/portal.js';var at=(o=>(o[o.Open=0]="Open",o[o.Closed=1]="Closed",o))(at||{}),lt=(o=>(o[o.Single=0]="Single",o[o.Multi=1]="Multi",o))(lt||{}),st=(o=>(o[o.Pointer=0]="Pointer",o[o.Other=1]="Other",o))(st||{}),pt=(t=>(t[t.OpenListbox=0]="OpenListbox",t[t.CloseListbox=1]="CloseListbox",t[t.GoToOption=2]="GoToOption",t[t.Search=3]="Search",t[t.ClearSearch=4]="ClearSearch",t[t.RegisterOption=5]="RegisterOption",t[t.UnregisterOption=6]="UnregisterOption",t))(pt||{});function ae(e,i=o=>o){let o=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,r=Ze(i(e.options.slice()),c=>c.dataRef.current.domRef.current),n=o?r.indexOf(o):null;return n===-1&&(n=null),{options:r,activeOptionIndex:n}}let ut={[1](e){return e.dataRef.current.disabled||e.listboxState===1?e:{...e,activeOptionIndex:null,listboxState:1}},[0](e){if(e.dataRef.current.disabled||e.listboxState===0)return e;let i=e.activeOptionIndex,{isSelected:o}=e.dataRef.current,r=e.options.findIndex(n=>o(n.dataRef.current.value));return r!==-1&&(i=r),{...e,listboxState:0,activeOptionIndex:i}},[2](e,i){var c,s,t,l,d;if(e.dataRef.current.disabled||e.listboxState===1)return e;let o={...e,searchQuery:"",activationTrigger:(c=i.trigger)!=null?c:1};if(i.focus===y.Nothing)return{...o,activeOptionIndex:null};if(i.focus===y.Specific)return{...o,activeOptionIndex:e.options.findIndex(p=>p.id===i.id)};if(i.focus===y.Previous){let p=e.activeOptionIndex;if(p!==null){let m=e.options[p].dataRef.current.domRef,T=ie(i,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:b=>b.id,resolveDisabled:b=>b.dataRef.current.disabled});if(T!==null){let b=e.options[T].dataRef.current.domRef;if(((s=m.current)==null?void 0:s.previousElementSibling)===b.current||((t=b.current)==null?void 0:t.previousElementSibling)===null)return{...o,activeOptionIndex:T}}}}else if(i.focus===y.Next){let p=e.activeOptionIndex;if(p!==null){let m=e.options[p].dataRef.current.domRef,T=ie(i,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:b=>b.id,resolveDisabled:b=>b.dataRef.current.disabled});if(T!==null){let b=e.options[T].dataRef.current.domRef;if(((l=m.current)==null?void 0:l.nextElementSibling)===b.current||((d=b.current)==null?void 0:d.nextElementSibling)===null)return{...o,activeOptionIndex:T}}}}let r=ae(e),n=ie(i,{resolveItems:()=>r.options,resolveActiveIndex:()=>r.activeOptionIndex,resolveId:p=>p.id,resolveDisabled:p=>p.dataRef.current.disabled});return{...o,...r,activeOptionIndex:n}},[3]:(e,i)=>{if(e.dataRef.current.disabled||e.listboxState===1)return e;let r=e.searchQuery!==""?0:1,n=e.searchQuery+i.value.toLowerCase(),s=(e.activeOptionIndex!==null?e.options.slice(e.activeOptionIndex+r).concat(e.options.slice(0,e.activeOptionIndex+r)):e.options).find(l=>{var d;return!l.dataRef.current.disabled&&((d=l.dataRef.current.textValue)==null?void 0:d.startsWith(n))}),t=s?e.options.indexOf(s):-1;return t===-1||t===e.activeOptionIndex?{...e,searchQuery:n}:{...e,searchQuery:n,activeOptionIndex:t,activationTrigger:1}},[4](e){return e.dataRef.current.disabled||e.listboxState===1||e.searchQuery===""?e:{...e,searchQuery:""}},[5]:(e,i)=>{let o={id:i.id,dataRef:i.dataRef},r=ae(e,n=>[...n,o]);return e.activeOptionIndex===null&&e.dataRef.current.isSelected(i.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(o)),{...e,...r}},[6]:(e,i)=>{let o=ae(e,r=>{let n=r.findIndex(c=>c.id===i.id);return n!==-1&&r.splice(n,1),r});return{...e,...o,activationTrigger:1}}},le=ee(null);le.displayName="ListboxActionsContext";function $(e){let i=te(le);if(i===null){let o=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,$),o}return i}let q=ee(null);q.displayName="ListboxDataContext";function K(e){let i=te(q);if(i===null){let o=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,K),o}return i}function dt(e,i){return H(i.type,ut,e,i)}let ct=Z;function ft(e,i){var se;let o=Ne(),{value:r,defaultValue:n,form:c,name:s,onChange:t,by:l,invalid:d=!1,disabled:p=o||!1,horizontal:m=!1,multiple:T=!1,...b}=e;const C=m?"horizontal":"vertical";let k=j(i),[R=T?[]:void 0,P]=_e(r,t,n),[h,v]=Ae(dt,{dataRef:Pe(),listboxState:1,options:[],searchQuery:"",activeOptionIndex:null,activationTrigger:1,optionsVisible:!1}),I=V({static:!1,hold:!1}),M=V(null),B=V(null),w=V(new Map),f=De(l),E=pe(x=>H(u.mode,{[1]:()=>R.some(L=>f(L,x)),[0]:()=>f(R,x)}),[R]),u=N(()=>({...h,value:R,disabled:p,invalid:d,mode:T?1:0,orientation:C,compare:f,isSelected:E,optionsPropsRef:I,buttonRef:M,optionsRef:B,listRef:w}),[R,p,d,T,h,w]);ne(()=>{h.dataRef.current=u},[u]),we([u.buttonRef,u.optionsRef],(x,L)=>{var _;v({type:1}),Ye(L,qe.Loose)||(x.preventDefault(),(_=u.buttonRef.current)==null||_.focus())},u.listboxState===0);let U=N(()=>({open:u.listboxState===0,disabled:p,invalid:d,value:R}),[u,p,R,d]),g=O(x=>{let L=u.options.find(_=>_.id===x);L&&Y(L.dataRef.current.value)}),G=O(()=>{if(u.activeOptionIndex!==null){let{dataRef:x,id:L}=u.options[u.activeOptionIndex];Y(x.current.value),v({type:2,focus:y.Specific,id:L})}}),Q=O(()=>v({type:0})),a=O(()=>v({type:1})),A=X(),F=O((x,L,_)=>{A.dispose(),A.microTask(()=>x===y.Specific?v({type:2,focus:y.Specific,id:L,trigger:_}):v({type:2,focus:x,trigger:_}))}),be=O((x,L)=>(v({type:5,id:x,dataRef:L}),()=>v({type:6,id:x}))),Y=O(x=>H(u.mode,{[0](){return P==null?void 0:P(x)},[1](){let L=u.value.slice(),_=L.findIndex(Le=>f(Le,x));return _===-1?L.push(x):L.splice(_,1),P==null?void 0:P(L)}})),Te=O(x=>v({type:3,value:x})),xe=O(()=>v({type:4})),me=N(()=>({onChange:Y,registerOption:be,goToOption:F,closeListbox:a,openListbox:Q,selectActiveOption:G,selectOption:g,search:Te,clearSearch:xe}),[]),[Oe,ye]=it({inherit:!0}),ve={ref:k},ge=pe(()=>P==null?void 0:P(n),[P]);return D.createElement(ye,{value:Oe,props:{htmlFor:(se=u.buttonRef.current)==null?void 0:se.id},slot:{open:u.listboxState===0,disabled:p}},D.createElement(Ge,null,D.createElement(le.Provider,{value:me},D.createElement(q.Provider,{value:u},D.createElement(Xe,{value:H(u.listboxState,{[0]:J.Open,[1]:J.Closed})},s!=null&&R!=null&&D.createElement(ze,{data:{[s]:R},form:c,onReset:ge}),z({ourProps:ve,theirProps:b,slot:U,defaultTag:ct,name:"Listbox"}))))))}let bt="button";function Tt(e,i){var f,E,u,U;let o=oe(),r=Ke(),{id:n=r||`headlessui-listbox-button-${o}`,...c}=e,s=K("Listbox.Button"),t=$("Listbox.Button"),l=j(s.buttonRef,i,je()),d=We(),p=X(),m=O(g=>{switch(g.key){case S.Space:case S.Enter:case S.ArrowDown:g.preventDefault(),t.openListbox(),p.nextFrame(()=>{s.value||t.goToOption(y.First)});break;case S.ArrowUp:g.preventDefault(),t.openListbox(),p.nextFrame(()=>{s.value||t.goToOption(y.Last)});break}}),T=O(g=>{switch(g.key){case S.Space:g.preventDefault();break}}),b=O(g=>{if($e(g.currentTarget))return g.preventDefault();s.listboxState===0?(t.closeListbox(),p.nextFrame(()=>{var G;return(G=s.buttonRef.current)==null?void 0:G.focus({preventScroll:!0})})):(g.preventDefault(),t.openListbox())}),C=nt([n]),k=tt(),{isFocusVisible:R,focusProps:P}=Se({autoFocus:(f=e.autoFocus)!=null?f:!1}),{isHovered:h,hoverProps:v}=Re({isDisabled:(E=s.disabled)!=null?E:!1}),{pressed:I,pressProps:M}=he({disabled:(u=s.disabled)!=null?u:!1}),B=N(()=>{var g;return{open:s.listboxState===0,active:I||s.listboxState===0,disabled:s.disabled,invalid:s.invalid,value:s.value,hover:h,focus:R,autofocus:(g=e.autoFocus)!=null?g:!1}},[s.listboxState,s.disabled,s.value,h,R,I,s.invalid,e.autoFocus]),w=ce(d(),{ref:l,id:n,type:ke(e,s.buttonRef),"aria-haspopup":"listbox","aria-controls":(U=s.optionsRef.current)==null?void 0:U.id,"aria-expanded":s.listboxState===0,"aria-labelledby":C,"aria-describedby":k,disabled:s.disabled,onKeyDown:m,onKeyUp:T,onClick:b},P,v,M);return z({ourProps:w,theirProps:c,slot:B,defaultTag:bt,name:"Listbox.Button"})}let fe=ee(!1),xt="ul",mt=de.RenderStrategy|de.Static;function Ot(e,i){var Q;let o=oe(),{id:r=`headlessui-listbox-options-${o}`,anchor:n,modal:c,...s}=e;n!=null&&c==null?c=!0:c==null&&(c=!1);let t=K("Listbox.Options"),l=$("Listbox.Options"),d=Je(),p=(()=>d!==null?(d&J.Open)===J.Open:t.listboxState===0)(),m=V(null);ue(()=>{var A;if(!((A=n==null?void 0:n.to)!=null&&A.includes("selection")))return;if(!p){m.current=null;return}let a=Array.from(t.listRef.current.values());m.current=a.findIndex(F=>(F==null?void 0:F.dataset.selected)===""),m.current===-1&&(m.current=a.findIndex(F=>(F==null?void 0:F.dataset.disabled)===void 0),l.goToOption(y.First))},[p,t.listRef]);let b=Fe(t.buttonRef,t.listboxState!==0)?!1:p,C=(()=>{if(n==null)return;if(t.listRef.current.size<=0)return{...n,inner:void 0};let a=Array.from(t.listRef.current.values());return{...n,inner:{listRef:{current:a},index:m.current}}})(),[k,R]=Ve(C),P=He(),h=j(t.optionsRef,i,n?k:null),v=X(),I=X();ue(()=>{var A;let a=t.optionsRef.current;a&&t.listboxState===0&&a!==((A=et(a))==null?void 0:A.activeElement)&&(a==null||a.focus({preventScroll:!0}))},[t.listboxState,t.optionsRef]);let M=O(a=>{switch(I.dispose(),a.key){case S.Space:if(t.searchQuery!=="")return a.preventDefault(),a.stopPropagation(),l.search(a.key);case S.Enter:if(a.preventDefault(),a.stopPropagation(),t.activeOptionIndex!==null){let{dataRef:A}=t.options[t.activeOptionIndex];l.onChange(A.current.value)}t.mode===0&&(l.closeListbox(),re().nextFrame(()=>{var A;return(A=t.buttonRef.current)==null?void 0:A.focus({preventScroll:!0})}));break;case H(t.orientation,{vertical:S.ArrowDown,horizontal:S.ArrowRight}):return a.preventDefault(),a.stopPropagation(),l.goToOption(y.Next);case H(t.orientation,{vertical:S.ArrowUp,horizontal:S.ArrowLeft}):return a.preventDefault(),a.stopPropagation(),l.goToOption(y.Previous);case S.Home:case S.PageUp:return a.preventDefault(),a.stopPropagation(),l.goToOption(y.First);case S.End:case S.PageDown:return a.preventDefault(),a.stopPropagation(),l.goToOption(y.Last);case S.Escape:return a.preventDefault(),a.stopPropagation(),l.closeListbox(),v.nextFrame(()=>{var A;return(A=t.buttonRef.current)==null?void 0:A.focus({preventScroll:!0})});case S.Tab:a.preventDefault(),a.stopPropagation();break;default:a.key.length===1&&(l.search(a.key),I.setTimeout(()=>l.clearSearch(),350));break}}),B=Ie(()=>{var a;return(a=t.buttonRef.current)==null?void 0:a.id},[t.buttonRef.current]),w=N(()=>({open:t.listboxState===0}),[t]),f=ce(n?P():{},{id:r,ref:h,"aria-activedescendant":t.activeOptionIndex===null||(Q=t.options[t.activeOptionIndex])==null?void 0:Q.id,"aria-multiselectable":t.mode===1?!0:void 0,"aria-labelledby":B,"aria-orientation":t.orientation,onKeyDown:M,role:"listbox",tabIndex:0,style:{...R,"--button-width":Ce(t.buttonRef,!0).width}}),E=c?Qe:n?rt:Z,u=c?{enabled:t.listboxState===0}:{},[U,g]=Ee(t.value);t.value!==U&&t.listboxState===0&&t.mode!==1&&g(t.value);let G=O(a=>t.compare(U,a));return D.createElement(E,{...u},D.createElement(q.Provider,{value:t.mode===1?t:{...t,isSelected:G}},z({ourProps:f,theirProps:s,slot:w,defaultTag:xt,features:mt,visible:b,name:"Listbox.Options"})))}let yt="li";function vt(e,i){let o=oe(),{id:r=`headlessui-listbox-option-${o}`,disabled:n=!1,value:c,...s}=e,t=te(fe)===!0,l=K("Listbox.Option"),d=$("Listbox.Option"),p=l.activeOptionIndex!==null?l.options[l.activeOptionIndex].id===r:!1,m=l.isSelected(c),T=V(null),b=Be(T),C=Me({disabled:n,value:c,domRef:T,get textValue(){return b()}}),k=j(i,T,f=>{f?l.listRef.current.set(r,f):l.listRef.current.delete(r)});ne(()=>{if(l.listboxState!==0||!p||l.activationTrigger===0)return;let f=re();return f.requestAnimationFrame(()=>{var E,u;(u=(E=T.current)==null?void 0:E.scrollIntoView)==null||u.call(E,{block:"nearest"})}),f.dispose},[T,p,l.listboxState,l.activationTrigger,l.activeOptionIndex]),ne(()=>{if(!t)return d.registerOption(r,C)},[C,r,t]);let R=O(f=>{if(n)return f.preventDefault();d.onChange(c),l.mode===0&&(d.closeListbox(),re().nextFrame(()=>{var E;return(E=l.buttonRef.current)==null?void 0:E.focus({preventScroll:!0})}))}),P=O(()=>{if(n)return d.goToOption(y.Nothing);d.goToOption(y.Specific,r)}),h=Ue(),v=O(f=>{h.update(f),!n&&(p||d.goToOption(y.Specific,r,0))}),I=O(f=>{h.wasMoved(f)&&(n||p||d.goToOption(y.Specific,r,0))}),M=O(f=>{h.wasMoved(f)&&(n||p&&d.goToOption(y.Nothing))}),B=N(()=>({active:p,focus:p,selected:m,disabled:n,selectedOption:m&&t}),[p,m,n,t]),w=t?{}:{id:r,ref:k,role:"option",tabIndex:n===!0?void 0:-1,"aria-disabled":n===!0?!0:void 0,"aria-selected":m,disabled:void 0,onClick:R,onFocus:P,onPointerEnter:v,onMouseEnter:v,onPointerMove:I,onMouseMove:I,onPointerLeave:M,onMouseLeave:M};return!m&&t?null:z({ourProps:w,theirProps:s,slot:B,defaultTag:yt,name:"Listbox.Option"})}let gt=Z;function Lt(e,i){let{options:o,placeholder:r,...n}=e,s={ref:j(i)},t=K("ListboxSelectedOption"),l=N(()=>({}),[]),d=t.value===void 0||t.value===null||t.mode===1&&Array.isArray(t.value)&&t.value.length===0;return D.createElement(fe.Provider,{value:!0},z({ourProps:s,theirProps:{...n,children:D.createElement(D.Fragment,null,r&&d?r:o)},slot:l,defaultTag:gt,name:"ListboxSelectedOption"}))}let St=W(ft),Rt=W(Tt),Pt=ot,At=W(Ot),Et=W(vt),uo=W(Lt),co=Object.assign(St,{Button:Rt,Label:Pt,Options:At,Option:Et});export{co as Listbox,Rt as ListboxButton,Pt as ListboxLabel,Et as ListboxOption,At as ListboxOptions,uo as ListboxSelectedOption};
"use client";import{useFocusRing as Ee}from"@react-aria/focus";import{useHover as he}from"@react-aria/interactions";import D,{Fragment as ce,createContext as ie,createRef as De,useCallback as fe,useContext as re,useEffect as be,useMemo as N,useReducer as _e,useRef as V}from"react";import{flushSync as G}from"react-dom";import{useActivePress as Ie}from'../../hooks/use-active-press.js';import{useByComparator as Ce}from'../../hooks/use-by-comparator.js';import{useComputed as Fe}from'../../hooks/use-computed.js';import{useControllable as Me}from'../../hooks/use-controllable.js';import{useDefaultValue as we}from'../../hooks/use-default-value.js';import{useDidElementMove as Be}from'../../hooks/use-did-element-move.js';import{useDisposables as Te}from'../../hooks/use-disposables.js';import{useElementSize as ke}from'../../hooks/use-element-size.js';import{useEvent as x}from'../../hooks/use-event.js';import{useId as ae}from'../../hooks/use-id.js';import{useInertOthers as Ue}from'../../hooks/use-inert-others.js';import{useIsoMorphicEffect as le}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Ne}from'../../hooks/use-latest-value.js';import{useOnDisappear as Ge}from'../../hooks/use-on-disappear.js';import{useOutsideClick as Ve}from'../../hooks/use-outside-click.js';import{useOwnerDocument as He}from'../../hooks/use-owner.js';import{useResolveButtonType as Ke}from'../../hooks/use-resolve-button-type.js';import{useScrollLock as je}from'../../hooks/use-scroll-lock.js';import{useSyncRefs as j}from'../../hooks/use-sync-refs.js';import{useTextValue as ze}from'../../hooks/use-text-value.js';import{useTrackedPointer as We}from'../../hooks/use-tracked-pointer.js';import{useTransition as Qe}from'../../hooks/use-transition.js';import{useDisabled as Xe}from'../../internal/disabled.js';import{FloatingProvider as Je,useFloatingPanel as $e,useFloatingPanelProps as qe,useFloatingReference as Ye,useFloatingReferenceProps as Ze,useResolvedAnchor as et}from'../../internal/floating.js';import{FormFields as tt}from'../../internal/form-fields.js';import{useFrozenData as ot}from'../../internal/frozen.js';import{useProvidedId as nt}from'../../internal/id.js';import{OpenClosedProvider as it,State as X,useOpenClosed as rt}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as at}from'../../utils/bugs.js';import{Focus as y,calculateActiveIndex as se}from'../../utils/calculate-active-index.js';import{disposables as lt}from'../../utils/disposables.js';import{Focus as xe,FocusableMode as st,focusFrom as pt,isFocusableElement as ut,sortByDomNode as dt}from'../../utils/focus-management.js';import{attemptSubmit as ct}from'../../utils/form.js';import{match as H}from'../../utils/match.js';import{getOwnerDocument as ft}from'../../utils/owner.js';import{RenderFeatures as me,forwardRefWithAs as z,mergeProps as Oe,render as W}from'../../utils/render.js';import{useDescribedBy as bt}from'../description/description.js';import{Keys as P}from'../keyboard.js';import{Label as Tt,useLabelledBy as xt,useLabels as mt}from'../label/label.js';import{Portal as Ot}from'../portal/portal.js';var yt=(o=>(o[o.Open=0]="Open",o[o.Closed=1]="Closed",o))(yt||{}),vt=(o=>(o[o.Single=0]="Single",o[o.Multi=1]="Multi",o))(vt||{}),gt=(o=>(o[o.Pointer=0]="Pointer",o[o.Other=1]="Other",o))(gt||{}),Lt=(i=>(i[i.OpenListbox=0]="OpenListbox",i[i.CloseListbox=1]="CloseListbox",i[i.GoToOption=2]="GoToOption",i[i.Search=3]="Search",i[i.ClearSearch=4]="ClearSearch",i[i.RegisterOption=5]="RegisterOption",i[i.UnregisterOption=6]="UnregisterOption",i))(Lt||{});function pe(e,r=o=>o){let o=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,n=dt(r(e.options.slice()),O=>O.dataRef.current.domRef.current),l=o?n.indexOf(o):null;return l===-1&&(l=null),{options:n,activeOptionIndex:l}}let St={[1](e){return e.dataRef.current.disabled||e.listboxState===1?e:{...e,activeOptionIndex:null,listboxState:1,__demoMode:!1}},[0](e){if(e.dataRef.current.disabled||e.listboxState===0)return e;let r=e.activeOptionIndex,{isSelected:o}=e.dataRef.current,n=e.options.findIndex(l=>o(l.dataRef.current.value));return n!==-1&&(r=n),{...e,listboxState:0,activeOptionIndex:r,__demoMode:!1}},[2](e,r){var O,v,i,s,p;if(e.dataRef.current.disabled||e.listboxState===1)return e;let o={...e,searchQuery:"",activationTrigger:(O=r.trigger)!=null?O:1,__demoMode:!1};if(r.focus===y.Nothing)return{...o,activeOptionIndex:null};if(r.focus===y.Specific)return{...o,activeOptionIndex:e.options.findIndex(t=>t.id===r.id)};if(r.focus===y.Previous){let t=e.activeOptionIndex;if(t!==null){let u=e.options[t].dataRef.current.domRef,b=se(r,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:c=>c.id,resolveDisabled:c=>c.dataRef.current.disabled});if(b!==null){let c=e.options[b].dataRef.current.domRef;if(((v=u.current)==null?void 0:v.previousElementSibling)===c.current||((i=c.current)==null?void 0:i.previousElementSibling)===null)return{...o,activeOptionIndex:b}}}}else if(r.focus===y.Next){let t=e.activeOptionIndex;if(t!==null){let u=e.options[t].dataRef.current.domRef,b=se(r,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:c=>c.id,resolveDisabled:c=>c.dataRef.current.disabled});if(b!==null){let c=e.options[b].dataRef.current.domRef;if(((s=u.current)==null?void 0:s.nextElementSibling)===c.current||((p=c.current)==null?void 0:p.nextElementSibling)===null)return{...o,activeOptionIndex:b}}}}let n=pe(e),l=se(r,{resolveItems:()=>n.options,resolveActiveIndex:()=>n.activeOptionIndex,resolveId:t=>t.id,resolveDisabled:t=>t.dataRef.current.disabled});return{...o,...n,activeOptionIndex:l}},[3]:(e,r)=>{if(e.dataRef.current.disabled||e.listboxState===1)return e;let n=e.searchQuery!==""?0:1,l=e.searchQuery+r.value.toLowerCase(),v=(e.activeOptionIndex!==null?e.options.slice(e.activeOptionIndex+n).concat(e.options.slice(0,e.activeOptionIndex+n)):e.options).find(s=>{var p;return!s.dataRef.current.disabled&&((p=s.dataRef.current.textValue)==null?void 0:p.startsWith(l))}),i=v?e.options.indexOf(v):-1;return i===-1||i===e.activeOptionIndex?{...e,searchQuery:l}:{...e,searchQuery:l,activeOptionIndex:i,activationTrigger:1}},[4](e){return e.dataRef.current.disabled||e.listboxState===1||e.searchQuery===""?e:{...e,searchQuery:""}},[5]:(e,r)=>{let o={id:r.id,dataRef:r.dataRef},n=pe(e,l=>[...l,o]);return e.activeOptionIndex===null&&e.dataRef.current.isSelected(r.dataRef.current.value)&&(n.activeOptionIndex=n.options.indexOf(o)),{...e,...n}},[6]:(e,r)=>{let o=pe(e,n=>{let l=n.findIndex(O=>O.id===r.id);return l!==-1&&n.splice(l,1),n});return{...e,...o,activationTrigger:1}}},ue=ie(null);ue.displayName="ListboxActionsContext";function J(e){let r=re(ue);if(r===null){let o=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,J),o}return r}let $=ie(null);$.displayName="ListboxDataContext";function Q(e){let r=re($);if(r===null){let o=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,Q),o}return r}function Rt(e,r){return H(r.type,St,e,r)}let Pt=ce;function At(e,r){var de;let o=Xe(),{value:n,defaultValue:l,form:O,name:v,onChange:i,by:s,invalid:p=!1,disabled:t=o||!1,horizontal:u=!1,multiple:b=!1,__demoMode:c=!1,...E}=e;const w=u?"horizontal":"vertical";let k=j(r),_=we(l),[f=b?[]:void 0,L]=Me(n,i,_),[I,S]=_e(Rt,{dataRef:De(),listboxState:c?0:1,options:[],searchQuery:"",activeOptionIndex:null,activationTrigger:1,optionsVisible:!1,__demoMode:c}),B=V({static:!1,hold:!1}),U=V(null),T=V(null),h=V(new Map),M=Ce(s),g=fe(m=>H(d.mode,{[1]:()=>f.some(R=>M(R,m)),[0]:()=>M(f,m)}),[f]),d=N(()=>({...I,value:f,disabled:t,invalid:p,mode:b?1:0,orientation:w,compare:M,isSelected:g,optionsPropsRef:B,buttonRef:U,optionsRef:T,listRef:h}),[f,t,p,b,I,h]);le(()=>{I.dataRef.current=d},[d]);let q=d.listboxState===0;Ve(q,[d.buttonRef,d.optionsRef],(m,R)=>{var F;S({type:1}),ut(R,st.Loose)||(m.preventDefault(),(F=d.buttonRef.current)==null||F.focus())});let Y=N(()=>({open:d.listboxState===0,disabled:t,invalid:p,value:f}),[d,t,f,p]),Z=x(m=>{let R=d.options.find(F=>F.id===m);R&&A(R.dataRef.current.value)}),ee=x(()=>{if(d.activeOptionIndex!==null){let{dataRef:m,id:R}=d.options[d.activeOptionIndex];A(m.current.value),S({type:2,focus:y.Specific,id:R})}}),te=x(()=>S({type:0})),oe=x(()=>S({type:1})),K=Te(),a=x((m,R,F)=>{K.dispose(),K.microTask(()=>m===y.Specific?S({type:2,focus:y.Specific,id:R,trigger:F}):S({type:2,focus:m,trigger:F}))}),C=x((m,R)=>(S({type:5,id:m,dataRef:R}),()=>S({type:6,id:m}))),A=x(m=>H(d.mode,{[0](){return L==null?void 0:L(m)},[1](){let R=d.value.slice(),F=R.findIndex(Ae=>M(Ae,m));return F===-1?R.push(m):R.splice(F,1),L==null?void 0:L(R)}})),ne=x(m=>S({type:3,value:m})),ve=x(()=>S({type:4})),ge=N(()=>({onChange:A,registerOption:C,goToOption:a,closeListbox:oe,openListbox:te,selectActiveOption:ee,selectOption:Z,search:ne,clearSearch:ve}),[]),[Le,Se]=mt({inherit:!0}),Re={ref:k},Pe=fe(()=>{if(_!==void 0)return L==null?void 0:L(_)},[L,_]);return D.createElement(Se,{value:Le,props:{htmlFor:(de=d.buttonRef.current)==null?void 0:de.id},slot:{open:d.listboxState===0,disabled:t}},D.createElement(Je,null,D.createElement(ue.Provider,{value:ge},D.createElement($.Provider,{value:d},D.createElement(it,{value:H(d.listboxState,{[0]:X.Open,[1]:X.Closed})},v!=null&&f!=null&&D.createElement(tt,{disabled:t,data:{[v]:f},form:O,onReset:Pe}),W({ourProps:Re,theirProps:E,slot:Y,defaultTag:Pt,name:"Listbox"}))))))}let Et="button";function ht(e,r){var M;let o=Q("Listbox.Button"),n=J("Listbox.Button"),l=ae(),O=nt(),{id:v=O||`headlessui-listbox-button-${l}`,disabled:i=o.disabled||!1,autoFocus:s=!1,...p}=e,t=j(o.buttonRef,r,Ye()),u=Ze(),b=x(g=>{switch(g.key){case P.Enter:ct(g.currentTarget);break;case P.Space:case P.ArrowDown:g.preventDefault(),G(()=>n.openListbox()),o.value||n.goToOption(y.First);break;case P.ArrowUp:g.preventDefault(),G(()=>n.openListbox()),o.value||n.goToOption(y.Last);break}}),c=x(g=>{switch(g.key){case P.Space:g.preventDefault();break}}),E=x(g=>{var d;if(at(g.currentTarget))return g.preventDefault();o.listboxState===0?(G(()=>n.closeListbox()),(d=o.buttonRef.current)==null||d.focus({preventScroll:!0})):(g.preventDefault(),n.openListbox())}),w=x(g=>g.preventDefault()),k=xt([v]),_=bt(),{isFocusVisible:f,focusProps:L}=Ee({autoFocus:s}),{isHovered:I,hoverProps:S}=he({isDisabled:i}),{pressed:B,pressProps:U}=Ie({disabled:i}),T=N(()=>({open:o.listboxState===0,active:B||o.listboxState===0,disabled:i,invalid:o.invalid,value:o.value,hover:I,focus:f,autofocus:s}),[o.listboxState,o.value,i,I,f,B,o.invalid,s]),h=Oe(u(),{ref:t,id:v,type:Ke(e,o.buttonRef),"aria-haspopup":"listbox","aria-controls":(M=o.optionsRef.current)==null?void 0:M.id,"aria-expanded":o.listboxState===0,"aria-labelledby":k,"aria-describedby":_,disabled:i||void 0,autoFocus:s,onKeyDown:b,onKeyUp:c,onKeyPress:w,onClick:E},L,S,U);return W({ourProps:h,theirProps:p,slot:T,defaultTag:Et,name:"Listbox.Button"})}let ye=ie(!1),Dt="div",_t=me.RenderStrategy|me.Static;function It(e,r){var K;let o=ae(),{id:n=`headlessui-listbox-options-${o}`,anchor:l,portal:O=!1,modal:v=!0,transition:i=!1,...s}=e,p=et(l);p&&(O=!0);let t=Q("Listbox.Options"),u=J("Listbox.Options"),b=He(t.optionsRef),c=rt(),[E,w]=Qe(i,t.optionsRef,c!==null?(c&X.Open)===X.Open:t.listboxState===0);Ge(E,t.buttonRef,u.closeListbox);let k=t.__demoMode?!1:v&&t.listboxState===0;je(k,b);let _=t.__demoMode?!1:v&&t.listboxState===0;Ue(_,{allowed:x(()=>[t.buttonRef.current,t.optionsRef.current])});let f=V(null);be(()=>{var C;if(!((C=p==null?void 0:p.to)!=null&&C.includes("selection")))return;if(!E){f.current=null;return}let a=Array.from(t.listRef.current.values());f.current=a.findIndex(A=>(A==null?void 0:A.dataset.selected)===""),f.current===-1&&(f.current=a.findIndex(A=>(A==null?void 0:A.dataset.disabled)===void 0),u.goToOption(y.First))},[E,t.listRef]);let L=t.listboxState!==0,S=Be(L,t.buttonRef)?!1:E,B=(()=>{if(p==null)return;if(t.listRef.current.size<=0)return{...p,inner:void 0};let a=Array.from(t.listRef.current.values());return{...p,inner:{listRef:{current:a},index:f.current}}})(),[U,T]=$e(B),h=qe(),M=j(t.optionsRef,r,p?U:null),g=Te();be(()=>{var C;let a=t.optionsRef.current;a&&t.listboxState===0&&a!==((C=ft(a))==null?void 0:C.activeElement)&&(a==null||a.focus({preventScroll:!0}))},[t.listboxState,t.optionsRef,t.optionsRef.current]);let d=x(a=>{var C,A;switch(g.dispose(),a.key){case P.Space:if(t.searchQuery!=="")return a.preventDefault(),a.stopPropagation(),u.search(a.key);case P.Enter:if(a.preventDefault(),a.stopPropagation(),t.activeOptionIndex!==null){let{dataRef:ne}=t.options[t.activeOptionIndex];u.onChange(ne.current.value)}t.mode===0&&(G(()=>u.closeListbox()),(C=t.buttonRef.current)==null||C.focus({preventScroll:!0}));break;case H(t.orientation,{vertical:P.ArrowDown,horizontal:P.ArrowRight}):return a.preventDefault(),a.stopPropagation(),u.goToOption(y.Next);case H(t.orientation,{vertical:P.ArrowUp,horizontal:P.ArrowLeft}):return a.preventDefault(),a.stopPropagation(),u.goToOption(y.Previous);case P.Home:case P.PageUp:return a.preventDefault(),a.stopPropagation(),u.goToOption(y.First);case P.End:case P.PageDown:return a.preventDefault(),a.stopPropagation(),u.goToOption(y.Last);case P.Escape:a.preventDefault(),a.stopPropagation(),G(()=>u.closeListbox()),(A=t.buttonRef.current)==null||A.focus({preventScroll:!0});return;case P.Tab:a.preventDefault(),a.stopPropagation(),G(()=>u.closeListbox()),pt(t.buttonRef.current,a.shiftKey?xe.Previous:xe.Next);break;default:a.key.length===1&&(u.search(a.key),g.setTimeout(()=>u.clearSearch(),350));break}}),q=Fe(()=>{var a;return(a=t.buttonRef.current)==null?void 0:a.id},[t.buttonRef.current]),Y=N(()=>({open:t.listboxState===0,...w}),[t.listboxState,w]),Z=Oe(p?h():{},{id:n,ref:M,"aria-activedescendant":t.activeOptionIndex===null||(K=t.options[t.activeOptionIndex])==null?void 0:K.id,"aria-multiselectable":t.mode===1?!0:void 0,"aria-labelledby":q,"aria-orientation":t.orientation,onKeyDown:d,role:"listbox",tabIndex:t.listboxState===0?0:void 0,style:{...s.style,...T,"--button-width":ke(t.buttonRef,!0).width}}),ee=E&&t.listboxState===1,te=ot(ee,t.value),oe=x(a=>t.compare(te,a));return D.createElement(Ot,{enabled:O?e.static||E:!1},D.createElement($.Provider,{value:t.mode===1?t:{...t,isSelected:oe}},W({ourProps:Z,theirProps:s,slot:Y,defaultTag:Dt,features:_t,visible:S,name:"Listbox.Options"})))}let Ct="div";function Ft(e,r){let o=ae(),{id:n=`headlessui-listbox-option-${o}`,disabled:l=!1,value:O,...v}=e,i=re(ye)===!0,s=Q("Listbox.Option"),p=J("Listbox.Option"),t=s.activeOptionIndex!==null?s.options[s.activeOptionIndex].id===n:!1,u=s.isSelected(O),b=V(null),c=ze(b),E=Ne({disabled:l,value:O,domRef:b,get textValue(){return c()}}),w=j(r,b,T=>{T?s.listRef.current.set(n,T):s.listRef.current.delete(n)});le(()=>{if(!s.__demoMode&&s.listboxState===0&&t&&s.activationTrigger!==0)return lt().requestAnimationFrame(()=>{var T,h;(h=(T=b.current)==null?void 0:T.scrollIntoView)==null||h.call(T,{block:"nearest"})})},[b,t,s.__demoMode,s.listboxState,s.activationTrigger,s.activeOptionIndex]),le(()=>{if(!i)return p.registerOption(n,E)},[E,n,i]);let k=x(T=>{var h;if(l)return T.preventDefault();p.onChange(O),s.mode===0&&(G(()=>p.closeListbox()),(h=s.buttonRef.current)==null||h.focus({preventScroll:!0}))}),_=x(()=>{if(l)return p.goToOption(y.Nothing);p.goToOption(y.Specific,n)}),f=We(),L=x(T=>{f.update(T),!l&&(t||p.goToOption(y.Specific,n,0))}),I=x(T=>{f.wasMoved(T)&&(l||t||p.goToOption(y.Specific,n,0))}),S=x(T=>{f.wasMoved(T)&&(l||t&&p.goToOption(y.Nothing))}),B=N(()=>({active:t,focus:t,selected:u,disabled:l,selectedOption:u&&i}),[t,u,l,i]),U=i?{}:{id:n,ref:w,role:"option",tabIndex:l===!0?void 0:-1,"aria-disabled":l===!0?!0:void 0,"aria-selected":u,disabled:void 0,onClick:k,onFocus:_,onPointerEnter:L,onMouseEnter:L,onPointerMove:I,onMouseMove:I,onPointerLeave:S,onMouseLeave:S};return!u&&i?null:W({ourProps:U,theirProps:v,slot:B,defaultTag:Ct,name:"Listbox.Option"})}let Mt=ce;function wt(e,r){let{options:o,placeholder:n,...l}=e,v={ref:j(r)},i=Q("ListboxSelectedOption"),s=N(()=>({}),[]),p=i.value===void 0||i.value===null||i.mode===1&&Array.isArray(i.value)&&i.value.length===0;return D.createElement(ye.Provider,{value:!0},W({ourProps:v,theirProps:{...l,children:D.createElement(D.Fragment,null,n&&p?n:o)},slot:s,defaultTag:Mt,name:"ListboxSelectedOption"}))}let Bt=z(At),kt=z(ht),Ut=Tt,Nt=z(It),Gt=z(Ft),Vt=z(wt),Fo=Object.assign(Bt,{Button:kt,Label:Ut,Options:Nt,Option:Gt,SelectedOption:Vt});export{Fo as Listbox,kt as ListboxButton,Ut as ListboxLabel,Gt as ListboxOption,Nt as ListboxOptions,Vt as ListboxSelectedOption};
import React, { type ElementType, type Ref } from 'react';
import { type TransitionData } from '../../hooks/use-transition.js';
import { type AnchorProps } from '../../internal/floating.js';

@@ -23,2 +24,3 @@ import type { Props } from '../../types.js';

focus: boolean;
disabled: boolean;
autofocus: boolean;

@@ -35,11 +37,13 @@ };

open: boolean;
};
} & TransitionData;
type ItemsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'role' | 'tabIndex';
export type MenuItemsProps<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> = Props<TTag, ItemsRenderPropArg, ItemsPropsWeControl, {
anchor?: AnchorProps;
portal?: boolean;
modal?: boolean;
transition?: boolean;
static?: boolean;
unmount?: boolean;
}>;
declare function ItemsFn<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(props: MenuItemsProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function ItemsFn<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(props: MenuItemsProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_ITEM_TAG: React.ExoticComponent<{

@@ -103,9 +107,15 @@ children?: React.ReactNode;

export declare let Menu: _internal_ComponentMenu & {
/** @deprecated use `<MenuButton>` instead of `<Menu.Button>` */
Button: _internal_ComponentMenuButton;
/** @deprecated use `<MenuItems>` instead of `<Menu.Items>` */
Items: _internal_ComponentMenuItems;
/** @deprecated use `<MenuItem>` instead of `<Menu.Item>` */
Item: _internal_ComponentMenuItem;
/** @deprecated use `<MenuSection>` instead of `<Menu.Section>` */
Section: _internal_ComponentMenuSection;
/** @deprecated use `<MenuHeading>` instead of `<Menu.Heading>` */
Heading: _internal_ComponentMenuHeading;
/** @deprecated use `<MenuSeparator>` instead of `<Menu.Separator>` */
Separator: _internal_ComponentMenuSeparator;
};
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as re}from"@react-aria/focus";import{useHover as oe}from"@react-aria/interactions";import b,{Fragment as W,createContext as ae,createRef as X,useContext as ie,useEffect as se,useMemo as U,useReducer as le,useRef as $}from"react";import{useActivePress as ue}from'../../hooks/use-active-press.js';import{useDidElementMove as pe}from'../../hooks/use-did-element-move.js';import{useDisposables as q}from'../../hooks/use-disposables.js';import{useElementSize as de}from'../../hooks/use-element-size.js';import{useEvent as I}from'../../hooks/use-event.js';import{useId as H}from'../../hooks/use-id.js';import{useIsoMorphicEffect as k}from'../../hooks/use-iso-morphic-effect.js';import{useOutsideClick as me}from'../../hooks/use-outside-click.js';import{useOwnerDocument as ce}from'../../hooks/use-owner.js';import{useResolveButtonType as fe}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as N}from'../../hooks/use-sync-refs.js';import{useTextValue as Te}from'../../hooks/use-text-value.js';import{useTrackedPointer as ye}from'../../hooks/use-tracked-pointer.js';import{useTreeWalker as ge}from'../../hooks/use-tree-walker.js';import{FloatingProvider as Ie,useFloatingPanel as Me,useFloatingPanelProps as Pe,useFloatingReference as Ae,useFloatingReferenceProps as Se}from'../../internal/floating.js';import{Modal as be,ModalFeatures as Ee}from'../../internal/modal.js';import{OpenClosedProvider as Re,State as w,useOpenClosed as ve}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as xe}from'../../utils/bugs.js';import{Focus as g,calculateActiveIndex as K}from'../../utils/calculate-active-index.js';import{disposables as j}from'../../utils/disposables.js';import{Focus as z,FocusableMode as _e,focusFrom as De,isFocusableElement as Fe,restoreFocusIfNecessary as Y,sortByDomNode as he}from'../../utils/focus-management.js';import{match as Z}from'../../utils/match.js';import{RenderFeatures as ee,forwardRefWithAs as E,mergeProps as te,render as R}from'../../utils/render.js';import{useDescriptions as Ce}from'../description/description.js';import{Keys as y}from'../keyboard.js';import{useLabelContext as Oe,useLabels as ne}from'../label/label.js';import{Portal as Le}from'../portal/portal.js';var Ge=(n=>(n[n.Open=0]="Open",n[n.Closed=1]="Closed",n))(Ge||{}),Ue=(n=>(n[n.Pointer=0]="Pointer",n[n.Other=1]="Other",n))(Ue||{}),He=(t=>(t[t.OpenMenu=0]="OpenMenu",t[t.CloseMenu=1]="CloseMenu",t[t.GoToItem=2]="GoToItem",t[t.Search=3]="Search",t[t.ClearSearch=4]="ClearSearch",t[t.RegisterItem=5]="RegisterItem",t[t.UnregisterItem=6]="UnregisterItem",t))(He||{});function Q(e,o=n=>n){let n=e.activeItemIndex!==null?e.items[e.activeItemIndex]:null,i=he(o(e.items.slice()),s=>s.dataRef.current.domRef.current),r=n?i.indexOf(n):null;return r===-1&&(r=null),{items:i,activeItemIndex:r}}let ke={[1](e){return e.menuState===1?e:{...e,activeItemIndex:null,menuState:1}},[0](e){return e.menuState===0?e:{...e,__demoMode:!1,menuState:0}},[2]:(e,o)=>{var s,l,t,u,m;if(e.menuState===1)return e;let n={...e,searchQuery:"",activationTrigger:(s=o.trigger)!=null?s:1};if(o.focus===g.Nothing)return{...n,activeItemIndex:null};if(o.focus===g.Specific)return{...n,activeItemIndex:e.items.findIndex(d=>d.id===o.id)};if(o.focus===g.Previous){let d=e.activeItemIndex;if(d!==null){let M=e.items[d].dataRef.current.domRef,f=K(o,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:p=>p.id,resolveDisabled:p=>p.dataRef.current.disabled});if(f!==null){let p=e.items[f].dataRef.current.domRef;if(((l=M.current)==null?void 0:l.previousElementSibling)===p.current||((t=p.current)==null?void 0:t.previousElementSibling)===null)return{...n,activeItemIndex:f}}}}else if(o.focus===g.Next){let d=e.activeItemIndex;if(d!==null){let M=e.items[d].dataRef.current.domRef,f=K(o,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:p=>p.id,resolveDisabled:p=>p.dataRef.current.disabled});if(f!==null){let p=e.items[f].dataRef.current.domRef;if(((u=M.current)==null?void 0:u.nextElementSibling)===p.current||((m=p.current)==null?void 0:m.nextElementSibling)===null)return{...n,activeItemIndex:f}}}}let i=Q(e),r=K(o,{resolveItems:()=>i.items,resolveActiveIndex:()=>i.activeItemIndex,resolveId:d=>d.id,resolveDisabled:d=>d.dataRef.current.disabled});return{...n,...i,activeItemIndex:r}},[3]:(e,o)=>{let i=e.searchQuery!==""?0:1,r=e.searchQuery+o.value.toLowerCase(),l=(e.activeItemIndex!==null?e.items.slice(e.activeItemIndex+i).concat(e.items.slice(0,e.activeItemIndex+i)):e.items).find(u=>{var m;return((m=u.dataRef.current.textValue)==null?void 0:m.startsWith(r))&&!u.dataRef.current.disabled}),t=l?e.items.indexOf(l):-1;return t===-1||t===e.activeItemIndex?{...e,searchQuery:r}:{...e,searchQuery:r,activeItemIndex:t,activationTrigger:1}},[4](e){return e.searchQuery===""?e:{...e,searchQuery:"",searchActiveItemIndex:null}},[5]:(e,o)=>{let n=Q(e,i=>[...i,{id:o.id,dataRef:o.dataRef}]);return{...e,...n}},[6]:(e,o)=>{let n=Q(e,i=>{let r=i.findIndex(s=>s.id===o.id);return r!==-1&&i.splice(r,1),i});return{...e,...n,activationTrigger:1}}},J=ae(null);J.displayName="MenuContext";function B(e){let o=ie(J);if(o===null){let n=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,B),n}return o}function Ne(e,o){return Z(o.type,ke,e,o)}let we=W;function Be(e,o){let{__demoMode:n=!1,...i}=e,r=le(Ne,{__demoMode:n,menuState:n?0:1,buttonRef:X(),itemsRef:X(),items:[],searchQuery:"",activeItemIndex:null,activationTrigger:1}),[{menuState:s,itemsRef:l,buttonRef:t},u]=r,m=N(o);me([t,l],(p,A)=>{var P;u({type:1}),Fe(A,_e.Loose)||(p.preventDefault(),(P=t.current)==null||P.focus())},s===0);let d=I(()=>{u({type:1})}),M=U(()=>({open:s===0,close:d}),[s,d]),f={ref:m};return b.createElement(Ie,null,b.createElement(J.Provider,{value:r},b.createElement(Re,{value:Z(s,{[0]:w.Open,[1]:w.Closed})},R({ourProps:f,theirProps:i,slot:M,defaultTag:we,name:"Menu"}))))}let We="button";function Ke(e,o){var D,F,h,C;let n=H(),{id:i=`headlessui-menu-button-${n}`,...r}=e,[s,l]=B("Menu.Button"),t=Se(),u=N(s.buttonRef,o,Ae()),m=q(),d=I(c=>{switch(c.key){case y.Space:case y.Enter:case y.ArrowDown:c.preventDefault(),c.stopPropagation(),l({type:0}),m.nextFrame(()=>l({type:2,focus:g.First}));break;case y.ArrowUp:c.preventDefault(),c.stopPropagation(),l({type:0}),m.nextFrame(()=>l({type:2,focus:g.Last}));break}}),M=I(c=>{switch(c.key){case y.Space:c.preventDefault();break}}),f=I(c=>{if(xe(c.currentTarget))return c.preventDefault();e.disabled||(s.menuState===0?(l({type:1}),m.nextFrame(()=>{var T;return(T=s.buttonRef.current)==null?void 0:T.focus({preventScroll:!0})})):(c.preventDefault(),l({type:0})))}),{isFocusVisible:p,focusProps:A}=re({autoFocus:(D=e.autoFocus)!=null?D:!1}),{isHovered:P,hoverProps:S}=oe({isDisabled:(F=e.disabled)!=null?F:!1}),{pressed:v,pressProps:x}=ue({disabled:(h=e.disabled)!=null?h:!1}),_=U(()=>{var c;return{open:s.menuState===0,active:v||s.menuState===0,hover:P,focus:p,autofocus:(c=e.autoFocus)!=null?c:!1}},[s,P,p,v,e.autoFocus]),O=te(t(),{ref:u,id:i,type:fe(e,s.buttonRef),"aria-haspopup":"menu","aria-controls":(C=s.itemsRef.current)==null?void 0:C.id,"aria-expanded":s.menuState===0,onKeyDown:d,onKeyUp:M,onClick:f},A,S,x);return R({ourProps:O,theirProps:r,slot:_,defaultTag:We,name:"Menu.Button"})}let je="div",Qe=ee.RenderStrategy|ee.Static;function Je(e,o){var c,T;let n=H(),{id:i=`headlessui-menu-items-${n}`,anchor:r,modal:s,...l}=e,[t,u]=B("Menu.Items"),[m,d]=Me(r),M=Pe(),f=N(t.itemsRef,o,r?m:null),p=ce(t.itemsRef);r!=null&&s==null?s=!0:s==null&&(s=!1);let A=q(),P=ve(),S=(()=>P!==null?(P&w.Open)===w.Open:t.menuState===0)(),x=pe(t.buttonRef,t.menuState!==0)?!1:S;se(()=>{let a=t.itemsRef.current;a&&t.menuState===0&&a!==(p==null?void 0:p.activeElement)&&a.focus({preventScroll:!0})},[t.menuState,t.itemsRef,p]),ge({container:t.itemsRef.current,enabled:t.menuState===0,accept(a){return a.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:a.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(a){a.setAttribute("role","none")}});let _=I(a=>{var L,V;switch(A.dispose(),a.key){case y.Space:if(t.searchQuery!=="")return a.preventDefault(),a.stopPropagation(),u({type:3,value:a.key});case y.Enter:if(a.preventDefault(),a.stopPropagation(),u({type:1}),t.activeItemIndex!==null){let{dataRef:G}=t.items[t.activeItemIndex];(V=(L=G.current)==null?void 0:L.domRef.current)==null||V.click()}Y(t.buttonRef.current);break;case y.ArrowDown:return a.preventDefault(),a.stopPropagation(),u({type:2,focus:g.Next});case y.ArrowUp:return a.preventDefault(),a.stopPropagation(),u({type:2,focus:g.Previous});case y.Home:case y.PageUp:return a.preventDefault(),a.stopPropagation(),u({type:2,focus:g.First});case y.End:case y.PageDown:return a.preventDefault(),a.stopPropagation(),u({type:2,focus:g.Last});case y.Escape:a.preventDefault(),a.stopPropagation(),u({type:1}),j().nextFrame(()=>{var G;return(G=t.buttonRef.current)==null?void 0:G.focus({preventScroll:!0})});break;case y.Tab:a.preventDefault(),a.stopPropagation(),u({type:1}),j().microTask(()=>{De(t.buttonRef.current,a.shiftKey?z.Previous:z.Next)});break;default:a.key.length===1&&(u({type:3,value:a.key}),A.setTimeout(()=>u({type:4}),350));break}}),O=I(a=>{switch(a.key){case y.Space:a.preventDefault();break}}),D=U(()=>({open:t.menuState===0}),[t]),F=te(r?M():{},{"aria-activedescendant":t.activeItemIndex===null||(c=t.items[t.activeItemIndex])==null?void 0:c.id,"aria-labelledby":(T=t.buttonRef.current)==null?void 0:T.id,id:i,onKeyDown:_,onKeyUp:O,role:"menu",tabIndex:0,ref:f,style:{...d,"--button-width":de(t.buttonRef,!0).width}}),h=s?be:r?Le:W,C=s?{features:Ee.ScrollLock,enabled:t.menuState===0}:{};return b.createElement(h,{...C},R({ourProps:F,theirProps:l,slot:D,defaultTag:je,features:Qe,visible:x,name:"Menu.Items"}))}let Ve=W;function Xe(e,o){let n=H(),{id:i=`headlessui-menu-item-${n}`,disabled:r=!1,...s}=e,[l,t]=B("Menu.Item"),u=l.activeItemIndex!==null?l.items[l.activeItemIndex].id===i:!1,m=$(null),d=N(o,m);k(()=>{if(l.__demoMode||l.menuState!==0||!u||l.activationTrigger===0)return;let T=j();return T.requestAnimationFrame(()=>{var a,L;(L=(a=m.current)==null?void 0:a.scrollIntoView)==null||L.call(a,{block:"nearest"})}),T.dispose},[l.__demoMode,m,u,l.menuState,l.activationTrigger,l.activeItemIndex]);let M=Te(m),f=$({disabled:r,domRef:m,get textValue(){return M()}});k(()=>{f.current.disabled=r},[f,r]),k(()=>(t({type:5,id:i,dataRef:f}),()=>t({type:6,id:i})),[f,i]);let p=I(()=>{t({type:1})}),A=I(T=>{if(r)return T.preventDefault();t({type:1}),Y(l.buttonRef.current)}),P=I(()=>{if(r)return t({type:2,focus:g.Nothing});t({type:2,focus:g.Specific,id:i})}),S=ye(),v=I(T=>{S.update(T),!r&&(u||t({type:2,focus:g.Specific,id:i,trigger:0}))}),x=I(T=>{S.wasMoved(T)&&(r||u||t({type:2,focus:g.Specific,id:i,trigger:0}))}),_=I(T=>{S.wasMoved(T)&&(r||u&&t({type:2,focus:g.Nothing}))}),[O,D]=ne(),[F,h]=Ce(),C=U(()=>({active:u,focus:u,disabled:r,close:p}),[u,r,p]);return b.createElement(D,null,b.createElement(h,null,R({ourProps:{id:i,ref:d,role:"menuitem",tabIndex:r===!0?void 0:-1,"aria-disabled":r===!0?!0:void 0,"aria-labelledby":O,"aria-describedby":F,disabled:void 0,onClick:A,onFocus:P,onPointerEnter:v,onMouseEnter:v,onPointerMove:x,onMouseMove:x,onPointerLeave:_,onMouseLeave:_},theirProps:s,slot:C,defaultTag:Ve,name:"Menu.Item"})))}let $e="div";function qe(e,o){let[n,i]=ne();return b.createElement(i,null,R({ourProps:{ref:o,"aria-labelledby":n,role:"group"},theirProps:e,slot:{},defaultTag:$e,name:"Menu.Section"}))}let ze="header";function Ye(e,o){let n=H(),{id:i=`headlessui-menu-heading-${n}`,...r}=e,s=Oe();k(()=>s.register(i),[i,s.register]);let l={id:i,ref:o,role:"presentation",...s.props};return R({ourProps:l,theirProps:r,slot:{},defaultTag:ze,name:"Menu.Heading"})}let Ze="div";function et(e,o){return R({ourProps:{ref:o,role:"separator"},theirProps:e,slot:{},defaultTag:Ze,name:"Menu.Separator"})}let tt=E(Be),nt=E(Ke),rt=E(Je),ot=E(Xe),at=E(qe),it=E(Ye),st=E(et),kt=Object.assign(tt,{Button:nt,Items:rt,Item:ot,Section:at,Heading:it,Separator:st});export{kt as Menu,nt as MenuButton,it as MenuHeading,ot as MenuItem,rt as MenuItems,at as MenuSection,st as MenuSeparator};
"use client";import{useFocusRing as le}from"@react-aria/focus";import{useHover as ue}from"@react-aria/interactions";import v,{Fragment as q,createContext as pe,createRef as z,useContext as de,useEffect as me,useMemo as G,useReducer as ce,useRef as Y}from"react";import{flushSync as O}from"react-dom";import{useActivePress as fe}from'../../hooks/use-active-press.js';import{useDidElementMove as Te}from'../../hooks/use-did-element-move.js';import{useDisposables as ye}from'../../hooks/use-disposables.js';import{useElementSize as ge}from'../../hooks/use-element-size.js';import{useEvent as A}from'../../hooks/use-event.js';import{useId as U}from'../../hooks/use-id.js';import{useInertOthers as Ie}from'../../hooks/use-inert-others.js';import{useIsoMorphicEffect as H}from'../../hooks/use-iso-morphic-effect.js';import{useOnDisappear as Me}from'../../hooks/use-on-disappear.js';import{useOutsideClick as Ae}from'../../hooks/use-outside-click.js';import{useOwnerDocument as Pe}from'../../hooks/use-owner.js';import{useResolveButtonType as Se}from'../../hooks/use-resolve-button-type.js';import{useScrollLock as be}from'../../hooks/use-scroll-lock.js';import{useSyncRefs as N}from'../../hooks/use-sync-refs.js';import{useTextValue as Ee}from'../../hooks/use-text-value.js';import{useTrackedPointer as Re}from'../../hooks/use-tracked-pointer.js';import{useTransition as ve}from'../../hooks/use-transition.js';import{useTreeWalker as xe}from'../../hooks/use-tree-walker.js';import{FloatingProvider as _e,useFloatingPanel as De,useFloatingPanelProps as he,useFloatingReference as Ce,useFloatingReferenceProps as Fe,useResolvedAnchor as Oe}from'../../internal/floating.js';import{OpenClosedProvider as Le,State as k,useOpenClosed as Ge}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as Ue}from'../../utils/bugs.js';import{Focus as I,calculateActiveIndex as K}from'../../utils/calculate-active-index.js';import{disposables as He}from'../../utils/disposables.js';import{Focus as Z,FocusableMode as Ne,focusFrom as ke,isFocusableElement as Be,restoreFocusIfNecessary as ee,sortByDomNode as we}from'../../utils/focus-management.js';import{match as te}from'../../utils/match.js';import{RenderFeatures as ne,forwardRefWithAs as x,mergeProps as re,render as _}from'../../utils/render.js';import{useDescriptions as Ke}from'../description/description.js';import{Keys as T}from'../keyboard.js';import{useLabelContext as We,useLabels as oe}from'../label/label.js';import{Portal as je}from'../portal/portal.js';var Qe=(r=>(r[r.Open=0]="Open",r[r.Closed=1]="Closed",r))(Qe||{}),Je=(r=>(r[r.Pointer=0]="Pointer",r[r.Other=1]="Other",r))(Je||{}),Ve=(n=>(n[n.OpenMenu=0]="OpenMenu",n[n.CloseMenu=1]="CloseMenu",n[n.GoToItem=2]="GoToItem",n[n.Search=3]="Search",n[n.ClearSearch=4]="ClearSearch",n[n.RegisterItem=5]="RegisterItem",n[n.UnregisterItem=6]="UnregisterItem",n))(Ve||{});function W(e,a=r=>r){let r=e.activeItemIndex!==null?e.items[e.activeItemIndex]:null,i=we(a(e.items.slice()),l=>l.dataRef.current.domRef.current),o=r?i.indexOf(r):null;return o===-1&&(o=null),{items:i,activeItemIndex:o}}let Xe={[1](e){return e.menuState===1?e:{...e,activeItemIndex:null,menuState:1}},[0](e){return e.menuState===0?e:{...e,__demoMode:!1,menuState:0}},[2]:(e,a)=>{var l,p,n,u,c;if(e.menuState===1)return e;let r={...e,searchQuery:"",activationTrigger:(l=a.trigger)!=null?l:1,__demoMode:!1};if(a.focus===I.Nothing)return{...r,activeItemIndex:null};if(a.focus===I.Specific)return{...r,activeItemIndex:e.items.findIndex(t=>t.id===a.id)};if(a.focus===I.Previous){let t=e.activeItemIndex;if(t!==null){let d=e.items[t].dataRef.current.domRef,f=K(a,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:m=>m.id,resolveDisabled:m=>m.dataRef.current.disabled});if(f!==null){let m=e.items[f].dataRef.current.domRef;if(((p=d.current)==null?void 0:p.previousElementSibling)===m.current||((n=m.current)==null?void 0:n.previousElementSibling)===null)return{...r,activeItemIndex:f}}}}else if(a.focus===I.Next){let t=e.activeItemIndex;if(t!==null){let d=e.items[t].dataRef.current.domRef,f=K(a,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:m=>m.id,resolveDisabled:m=>m.dataRef.current.disabled});if(f!==null){let m=e.items[f].dataRef.current.domRef;if(((u=d.current)==null?void 0:u.nextElementSibling)===m.current||((c=m.current)==null?void 0:c.nextElementSibling)===null)return{...r,activeItemIndex:f}}}}let i=W(e),o=K(a,{resolveItems:()=>i.items,resolveActiveIndex:()=>i.activeItemIndex,resolveId:t=>t.id,resolveDisabled:t=>t.dataRef.current.disabled});return{...r,...i,activeItemIndex:o}},[3]:(e,a)=>{let i=e.searchQuery!==""?0:1,o=e.searchQuery+a.value.toLowerCase(),p=(e.activeItemIndex!==null?e.items.slice(e.activeItemIndex+i).concat(e.items.slice(0,e.activeItemIndex+i)):e.items).find(u=>{var c;return((c=u.dataRef.current.textValue)==null?void 0:c.startsWith(o))&&!u.dataRef.current.disabled}),n=p?e.items.indexOf(p):-1;return n===-1||n===e.activeItemIndex?{...e,searchQuery:o}:{...e,searchQuery:o,activeItemIndex:n,activationTrigger:1}},[4](e){return e.searchQuery===""?e:{...e,searchQuery:"",searchActiveItemIndex:null}},[5]:(e,a)=>{let r=W(e,i=>[...i,{id:a.id,dataRef:a.dataRef}]);return{...e,...r}},[6]:(e,a)=>{let r=W(e,i=>{let o=i.findIndex(l=>l.id===a.id);return o!==-1&&i.splice(o,1),i});return{...e,...r,activationTrigger:1}}},j=pe(null);j.displayName="MenuContext";function B(e){let a=de(j);if(a===null){let r=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,B),r}return a}function $e(e,a){return te(a.type,Xe,e,a)}let qe=q;function ze(e,a){let{__demoMode:r=!1,...i}=e,o=ce($e,{__demoMode:r,menuState:r?0:1,buttonRef:z(),itemsRef:z(),items:[],searchQuery:"",activeItemIndex:null,activationTrigger:1}),[{menuState:l,itemsRef:p,buttonRef:n},u]=o,c=N(a);Ae(l===0,[n,p],(S,b)=>{var y;u({type:1}),Be(b,Ne.Loose)||(S.preventDefault(),(y=n.current)==null||y.focus())});let d=A(()=>{u({type:1})}),f=G(()=>({open:l===0,close:d}),[l,d]),m={ref:c};return v.createElement(_e,null,v.createElement(j.Provider,{value:o},v.createElement(Le,{value:te(l,{[0]:k.Open,[1]:k.Closed})},_({ourProps:m,theirProps:i,slot:f,defaultTag:qe,name:"Menu"}))))}let Ye="button";function Ze(e,a){var D;let r=U(),{id:i=`headlessui-menu-button-${r}`,disabled:o=!1,autoFocus:l=!1,...p}=e,[n,u]=B("Menu.Button"),c=Fe(),t=N(n.buttonRef,a,Ce()),d=A(g=>{switch(g.key){case T.Space:case T.Enter:case T.ArrowDown:g.preventDefault(),g.stopPropagation(),O(()=>u({type:0})),u({type:2,focus:I.First});break;case T.ArrowUp:g.preventDefault(),g.stopPropagation(),O(()=>u({type:0})),u({type:2,focus:I.Last});break}}),f=A(g=>{switch(g.key){case T.Space:g.preventDefault();break}}),m=A(g=>{var h;if(Ue(g.currentTarget))return g.preventDefault();o||(n.menuState===0?(O(()=>u({type:1})),(h=n.buttonRef.current)==null||h.focus({preventScroll:!0})):(g.preventDefault(),u({type:0})))}),{isFocusVisible:S,focusProps:b}=le({autoFocus:l}),{isHovered:y,hoverProps:E}=ue({isDisabled:o}),{pressed:P,pressProps:R}=fe({disabled:o}),C=G(()=>({open:n.menuState===0,active:P||n.menuState===0,disabled:o,hover:y,focus:S,autofocus:l}),[n,y,S,P,o,l]),F=re(c(),{ref:t,id:i,type:Se(e,n.buttonRef),"aria-haspopup":"menu","aria-controls":(D=n.itemsRef.current)==null?void 0:D.id,"aria-expanded":n.menuState===0,disabled:o||void 0,autoFocus:l,onKeyDown:d,onKeyUp:f,onClick:m},b,E,R);return _({ourProps:F,theirProps:p,slot:C,defaultTag:Ye,name:"Menu.Button"})}let et="div",tt=ne.RenderStrategy|ne.Static;function nt(e,a){var Q,J;let r=U(),{id:i=`headlessui-menu-items-${r}`,anchor:o,portal:l=!1,modal:p=!0,transition:n=!1,...u}=e,c=Oe(o),[t,d]=B("Menu.Items"),[f,m]=De(c),S=he(),b=N(t.itemsRef,a,c?f:null),y=Pe(t.itemsRef);c&&(l=!0);let E=Ge(),[P,R]=ve(n,t.itemsRef,E!==null?(E&k.Open)===k.Open:t.menuState===0);Me(P,t.buttonRef,()=>{d({type:1})});let C=t.__demoMode?!1:p&&t.menuState===0;be(C,y);let F=t.__demoMode?!1:p&&t.menuState===0;Ie(F,{allowed:A(()=>[t.buttonRef.current,t.itemsRef.current])});let D=t.menuState!==0,h=Te(D,t.buttonRef)?!1:P;me(()=>{let s=t.itemsRef.current;s&&t.menuState===0&&s!==(y==null?void 0:y.activeElement)&&s.focus({preventScroll:!0})},[t.menuState,t.itemsRef,y,t.itemsRef.current]),xe(t.menuState===0,{container:t.itemsRef.current,accept(s){return s.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:s.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(s){s.setAttribute("role","none")}});let w=ye(),M=A(s=>{var V,X,$;switch(w.dispose(),s.key){case T.Space:if(t.searchQuery!=="")return s.preventDefault(),s.stopPropagation(),d({type:3,value:s.key});case T.Enter:if(s.preventDefault(),s.stopPropagation(),d({type:1}),t.activeItemIndex!==null){let{dataRef:se}=t.items[t.activeItemIndex];(X=(V=se.current)==null?void 0:V.domRef.current)==null||X.click()}ee(t.buttonRef.current);break;case T.ArrowDown:return s.preventDefault(),s.stopPropagation(),d({type:2,focus:I.Next});case T.ArrowUp:return s.preventDefault(),s.stopPropagation(),d({type:2,focus:I.Previous});case T.Home:case T.PageUp:return s.preventDefault(),s.stopPropagation(),d({type:2,focus:I.First});case T.End:case T.PageDown:return s.preventDefault(),s.stopPropagation(),d({type:2,focus:I.Last});case T.Escape:s.preventDefault(),s.stopPropagation(),O(()=>d({type:1})),($=t.buttonRef.current)==null||$.focus({preventScroll:!0});break;case T.Tab:s.preventDefault(),s.stopPropagation(),O(()=>d({type:1})),ke(t.buttonRef.current,s.shiftKey?Z.Previous:Z.Next);break;default:s.key.length===1&&(d({type:3,value:s.key}),w.setTimeout(()=>d({type:4}),350));break}}),L=A(s=>{switch(s.key){case T.Space:s.preventDefault();break}}),ae=G(()=>({open:t.menuState===0,...R}),[t.menuState,R]),ie=re(c?S():{},{"aria-activedescendant":t.activeItemIndex===null||(Q=t.items[t.activeItemIndex])==null?void 0:Q.id,"aria-labelledby":(J=t.buttonRef.current)==null?void 0:J.id,id:i,onKeyDown:M,onKeyUp:L,role:"menu",tabIndex:t.menuState===0?0:void 0,ref:b,style:{...u.style,...m,"--button-width":ge(t.buttonRef,!0).width}});return v.createElement(je,{enabled:l?e.static||P:!1},_({ourProps:ie,theirProps:u,slot:ae,defaultTag:et,features:tt,visible:h,name:"Menu.Items"}))}let rt=q;function ot(e,a){let r=U(),{id:i=`headlessui-menu-item-${r}`,disabled:o=!1,...l}=e,[p,n]=B("Menu.Item"),u=p.activeItemIndex!==null?p.items[p.activeItemIndex].id===i:!1,c=Y(null),t=N(a,c);H(()=>{if(!p.__demoMode&&p.menuState===0&&u&&p.activationTrigger!==0)return He().requestAnimationFrame(()=>{var M,L;(L=(M=c.current)==null?void 0:M.scrollIntoView)==null||L.call(M,{block:"nearest"})})},[p.__demoMode,c,u,p.menuState,p.activationTrigger,p.activeItemIndex]);let d=Ee(c),f=Y({disabled:o,domRef:c,get textValue(){return d()}});H(()=>{f.current.disabled=o},[f,o]),H(()=>(n({type:5,id:i,dataRef:f}),()=>n({type:6,id:i})),[f,i]);let m=A(()=>{n({type:1})}),S=A(M=>{if(o)return M.preventDefault();n({type:1}),ee(p.buttonRef.current)}),b=A(()=>{if(o)return n({type:2,focus:I.Nothing});n({type:2,focus:I.Specific,id:i})}),y=Re(),E=A(M=>{y.update(M),!o&&(u||n({type:2,focus:I.Specific,id:i,trigger:0}))}),P=A(M=>{y.wasMoved(M)&&(o||u||n({type:2,focus:I.Specific,id:i,trigger:0}))}),R=A(M=>{y.wasMoved(M)&&(o||u&&n({type:2,focus:I.Nothing}))}),[C,F]=oe(),[D,g]=Ke(),h=G(()=>({active:u,focus:u,disabled:o,close:m}),[u,o,m]);return v.createElement(F,null,v.createElement(g,null,_({ourProps:{id:i,ref:t,role:"menuitem",tabIndex:o===!0?void 0:-1,"aria-disabled":o===!0?!0:void 0,"aria-labelledby":C,"aria-describedby":D,disabled:void 0,onClick:S,onFocus:b,onPointerEnter:E,onMouseEnter:E,onPointerMove:P,onMouseMove:P,onPointerLeave:R,onMouseLeave:R},theirProps:l,slot:h,defaultTag:rt,name:"Menu.Item"})))}let at="div";function it(e,a){let[r,i]=oe();return v.createElement(i,null,_({ourProps:{ref:a,"aria-labelledby":r,role:"group"},theirProps:e,slot:{},defaultTag:at,name:"Menu.Section"}))}let st="header";function lt(e,a){let r=U(),{id:i=`headlessui-menu-heading-${r}`,...o}=e,l=We();H(()=>l.register(i),[i,l.register]);let p={id:i,ref:a,role:"presentation",...l.props};return _({ourProps:p,theirProps:o,slot:{},defaultTag:st,name:"Menu.Heading"})}let ut="div";function pt(e,a){return _({ourProps:{ref:a,role:"separator"},theirProps:e,slot:{},defaultTag:ut,name:"Menu.Separator"})}let dt=x(ze),mt=x(Ze),ct=x(nt),ft=x(ot),Tt=x(it),yt=x(lt),gt=x(pt),Yt=Object.assign(dt,{Button:mt,Items:ct,Item:ft,Section:Tt,Heading:yt,Separator:gt});export{Yt as Menu,mt as MenuButton,yt as MenuHeading,ft as MenuItem,ct as MenuItems,Tt as MenuSection,gt as MenuSeparator};
import React, { type ElementType, type MouseEventHandler, type MutableRefObject, type Ref } from 'react';
import { type TransitionData } from '../../hooks/use-transition.js';
import { type AnchorProps } from '../../internal/floating.js';

@@ -22,2 +23,3 @@ import type { Props } from '../../types.js';

focus: boolean;
disabled: boolean;
autofocus: boolean;

@@ -34,7 +36,9 @@ };

open: boolean;
};
} & TransitionData;
type OverlayPropsWeControl = 'aria-hidden';
declare let OverlayRenderFeatures: number;
export type PopoverOverlayProps<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG> = Props<TTag, OverlayRenderPropArg, OverlayPropsWeControl, PropsForFeatures<typeof OverlayRenderFeatures>>;
declare function OverlayFn<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: PopoverOverlayProps<TTag>, ref: Ref<HTMLDivElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export type PopoverOverlayProps<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG> = Props<TTag, OverlayRenderPropArg, OverlayPropsWeControl, {
transition?: boolean;
} & PropsForFeatures<typeof OverlayRenderFeatures>>;
declare function OverlayFn<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: PopoverOverlayProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_PANEL_TAG: "div";

@@ -44,3 +48,3 @@ type PanelRenderPropArg = {

close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
};
} & TransitionData;
type PanelPropsWeControl = 'tabIndex';

@@ -50,7 +54,9 @@ export type PopoverPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, PanelPropsWeControl, {

anchor?: AnchorProps;
portal?: boolean;
modal?: boolean;
transition?: boolean;
static?: boolean;
unmount?: boolean;
}>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: PopoverPanelProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: PopoverPanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_GROUP_TAG: "div";

@@ -81,7 +87,11 @@ type GroupRenderPropArg = {};

export declare let Popover: _internal_ComponentPopover & {
/** @deprecated use `<PopoverButton>` instead of `<Popover.Button>` */
Button: _internal_ComponentPopoverButton;
/** @deprecated use `<PopoverOverlay>` instead of `<Popover.Overlay>` */
Overlay: _internal_ComponentPopoverOverlay;
/** @deprecated use `<PopoverPanel>` instead of `<Popover.Panel>` */
Panel: _internal_ComponentPopoverPanel;
/** @deprecated use `<PopoverGroup>` instead of `<Popover.Group>` */
Group: _internal_ComponentPopoverGroup;
};
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as Oe}from"@react-aria/focus";import{useHover as Ce}from"@react-aria/interactions";import y,{Fragment as Me,createContext as ee,createRef as me,useContext as te,useEffect as oe,useMemo as D,useReducer as xe,useRef as z,useState as ye}from"react";import{useActivePress as _e}from'../../hooks/use-active-press.js';import{useEvent as g}from'../../hooks/use-event.js';import{useEventListener as Le}from'../../hooks/use-event-listener.js';import{useId as re}from'../../hooks/use-id.js';import{useIsoMorphicEffect as Ie}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Ee}from'../../hooks/use-latest-value.js';import{useOutsideClick as Be}from'../../hooks/use-outside-click.js';import{useOwnerDocument as se}from'../../hooks/use-owner.js';import{useResolveButtonType as he}from'../../hooks/use-resolve-button-type.js';import{useMainTreeNode as De,useRootContainers as Ge}from'../../hooks/use-root-containers.js';import{optionalRef as He,useSyncRefs as Y}from'../../hooks/use-sync-refs.js';import{Direction as H,useTabDirection as be}from'../../hooks/use-tab-direction.js';import{FloatingProvider as Ne,useFloatingPanel as ke,useFloatingPanelProps as we,useFloatingReference as Ue}from'../../internal/floating.js';import{Hidden as ue,HiddenFeatures as ie}from'../../internal/hidden.js';import{Modal as ge,ModalFeatures as We}from'../../internal/modal.js';import{OpenClosedProvider as Ve,State as q,useOpenClosed as Se}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as Ae}from'../../utils/bugs.js';import{Focus as N,FocusResult as fe,FocusableMode as Ke,focusIn as W,getFocusableElements as Pe,isFocusableElement as je}from'../../utils/focus-management.js';import{match as V}from'../../utils/match.js';import'../../utils/micro-task.js';import{getOwnerDocument as $e}from'../../utils/owner.js';import{RenderFeatures as ne,forwardRefWithAs as Q,mergeProps as de,render as Z,useMergeRefsFn as Je}from'../../utils/render.js';import{FocusTrapFeatures as Xe}from'../focus-trap/focus-trap.js';import{Keys as K}from'../keyboard.js';import{Portal as Re,useNestedPortals as Ye}from'../portal/portal.js';var qe=(f=>(f[f.Open=0]="Open",f[f.Closed=1]="Closed",f))(qe||{}),ze=(n=>(n[n.TogglePopover=0]="TogglePopover",n[n.ClosePopover=1]="ClosePopover",n[n.SetButton=2]="SetButton",n[n.SetButtonId=3]="SetButtonId",n[n.SetPanel=4]="SetPanel",n[n.SetPanelId=5]="SetPanelId",n))(ze||{});let Qe={[0]:e=>{let a={...e,popoverState:V(e.popoverState,{[0]:1,[1]:0})};return a.popoverState===0&&(a.__demoMode=!1),a},[1](e){return e.popoverState===1?e:{...e,popoverState:1}},[2](e,a){return e.button===a.button?e:{...e,button:a.button}},[3](e,a){return e.buttonId===a.buttonId?e:{...e,buttonId:a.buttonId}},[4](e,a){return e.panel===a.panel?e:{...e,panel:a.panel}},[5](e,a){return e.panelId===a.panelId?e:{...e,panelId:a.panelId}}},ce=ee(null);ce.displayName="PopoverContext";function le(e){let a=te(ce);if(a===null){let f=new Error(`<${e} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(f,le),f}return a}let ae=ee(null);ae.displayName="PopoverAPIContext";function ve(e){let a=te(ae);if(a===null){let f=new Error(`<${e} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(f,ve),f}return a}let Te=ee(null);Te.displayName="PopoverGroupContext";function Fe(){return te(Te)}let pe=ee(null);pe.displayName="PopoverPanelContext";function Ze(){return te(pe)}function et(e,a){return V(a.type,Qe,e,a)}let tt="div";function ot(e,a){var P;let{__demoMode:f=!1,...F}=e,O=z(null),l=Y(a,He(o=>{O.current=o})),n=z([]),x=xe(et,{__demoMode:f,popoverState:f?0:1,buttons:n,button:null,buttonId:null,panel:null,panelId:null,beforePanelSentinel:me(),afterPanelSentinel:me()}),[{popoverState:t,button:p,buttonId:S,panel:s,panelId:k,beforePanelSentinel:m,afterPanelSentinel:T},d]=x,i=se((P=O.current)!=null?P:p),E=D(()=>{if(!p||!s)return!1;for(let v of document.querySelectorAll("body > *"))if(Number(v==null?void 0:v.contains(p))^Number(v==null?void 0:v.contains(s)))return!0;let o=Pe(),u=o.indexOf(p),c=(u+o.length-1)%o.length,R=(u+1)%o.length,M=o[c],r=o[R];return!s.contains(M)&&!s.contains(r)},[p,s]),C=Ee(S),b=Ee(k),L=D(()=>({buttonId:C,panelId:b,close:()=>d({type:1})}),[C,b,d]),A=Fe(),_=A==null?void 0:A.registerPopover,j=g(()=>{var o;return(o=A==null?void 0:A.isFocusWithinPopoverGroup())!=null?o:(i==null?void 0:i.activeElement)&&((p==null?void 0:p.contains(i.activeElement))||(s==null?void 0:s.contains(i.activeElement)))});oe(()=>_==null?void 0:_(L),[_,L]);let[$,J]=Ye(),B=Ge({mainTreeNodeRef:A==null?void 0:A.mainTreeNodeRef,portals:$,defaultContainers:[p,s]});Le(i==null?void 0:i.defaultView,"focus",o=>{var u,c,R,M;o.target!==window&&o.target instanceof HTMLElement&&t===0&&(j()||p&&s&&(B.contains(o.target)||(c=(u=m.current)==null?void 0:u.contains)!=null&&c.call(u,o.target)||(M=(R=T.current)==null?void 0:R.contains)!=null&&M.call(R,o.target)||d({type:1})))},!0),Be(B.resolveContainers,(o,u)=>{d({type:1}),je(u,Ke.Loose)||(o.preventDefault(),p==null||p.focus())},t===0);let h=g(o=>{d({type:1});let u=(()=>o?o instanceof HTMLElement?o:"current"in o&&o.current instanceof HTMLElement?o.current:p:p)();u==null||u.focus()}),G=D(()=>({close:h,isPortalled:E}),[h,E]),w=D(()=>({open:t===0,close:h}),[t,h]),X={ref:l};return y.createElement(Ne,null,y.createElement(pe.Provider,{value:null},y.createElement(ce.Provider,{value:x},y.createElement(ae.Provider,{value:G},y.createElement(Ve,{value:V(t,{[0]:q.Open,[1]:q.Closed})},y.createElement(J,null,Z({ourProps:X,theirProps:F,slot:w,defaultTag:tt,name:"Popover"}),y.createElement(B.MainTreeNode,null)))))))}let rt="button";function nt(e,a){var c,R,M;let f=re(),{id:F=`headlessui-popover-button-${f}`,...O}=e,[l,n]=le("Popover.Button"),{isPortalled:x}=ve("Popover.Button"),t=z(null),p=`headlessui-focus-sentinel-${re()}`,S=Fe(),s=S==null?void 0:S.closeOthers,m=Ze()!==null;oe(()=>{if(!m)return n({type:3,buttonId:F}),()=>{n({type:3,buttonId:null})}},[m,F,n]);let[T]=ye(()=>Symbol()),d=Y(t,a,Ue(),m?null:r=>{if(r)l.buttons.current.push(T);else{let v=l.buttons.current.indexOf(T);v!==-1&&l.buttons.current.splice(v,1)}l.buttons.current.length>1&&console.warn("You are already using a <Popover.Button /> but only 1 <Popover.Button /> is supported."),r&&n({type:2,button:r})}),i=Y(t,a),E=se(t),C=g(r=>{var v,I,U;if(m){if(l.popoverState===1)return;switch(r.key){case K.Space:case K.Enter:r.preventDefault(),(I=(v=r.target).click)==null||I.call(v),n({type:1}),(U=l.button)==null||U.focus();break}}else switch(r.key){case K.Space:case K.Enter:r.preventDefault(),r.stopPropagation(),l.popoverState===1&&(s==null||s(l.buttonId)),n({type:0});break;case K.Escape:if(l.popoverState!==0)return s==null?void 0:s(l.buttonId);if(!t.current||E!=null&&E.activeElement&&!t.current.contains(E.activeElement))return;r.preventDefault(),r.stopPropagation(),n({type:1});break}}),b=g(r=>{m||r.key===K.Space&&r.preventDefault()}),L=g(r=>{var v,I;Ae(r.currentTarget)||e.disabled||(m?(n({type:1}),(v=l.button)==null||v.focus()):(r.preventDefault(),r.stopPropagation(),l.popoverState===1&&(s==null||s(l.buttonId)),n({type:0}),(I=l.button)==null||I.focus()))}),A=g(r=>{r.preventDefault(),r.stopPropagation()}),{isFocusVisible:_,focusProps:j}=Oe({autoFocus:(c=e.autoFocus)!=null?c:!1}),{isHovered:$,hoverProps:J}=Ce({isDisabled:(R=e.disabled)!=null?R:!1}),{pressed:B,pressProps:h}=_e({disabled:(M=e.disabled)!=null?M:!1}),G=l.popoverState===0,w=D(()=>{var r;return{open:G,active:B||G,hover:$,focus:_,autofocus:(r=e.autoFocus)!=null?r:!1}},[G,$,_,B,e.autoFocus]),X=he(e,t),P=m?de({ref:i,type:X,onKeyDown:C,onClick:L},j,J,h):de({ref:d,id:l.buttonId,type:X,"aria-expanded":l.popoverState===0,"aria-controls":l.panel?l.panelId:void 0,onKeyDown:C,onKeyUp:b,onClick:L,onMouseDown:A},j,J,h),o=be(),u=g(()=>{let r=l.panel;if(!r)return;function v(){V(o.current,{[H.Forwards]:()=>W(r,N.First),[H.Backwards]:()=>W(r,N.Last)})===fe.Error&&W(Pe().filter(U=>U.dataset.headlessuiFocusGuard!=="true"),V(o.current,{[H.Forwards]:N.Next,[H.Backwards]:N.Previous}),{relativeTo:l.button})}v()});return y.createElement(y.Fragment,null,Z({ourProps:P,theirProps:O,slot:w,defaultTag:rt,name:"Popover.Button"}),G&&!m&&x&&y.createElement(ue,{id:p,features:ie.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:u}))}let lt="div",at=ne.RenderStrategy|ne.Static;function pt(e,a){let f=re(),{id:F=`headlessui-popover-overlay-${f}`,...O}=e,[{popoverState:l},n]=le("Popover.Overlay"),x=Y(a),t=Se(),p=(()=>t!==null?(t&q.Open)===q.Open:l===0)(),S=g(m=>{if(Ae(m.currentTarget))return m.preventDefault();n({type:1})}),s=D(()=>({open:l===0}),[l]);return Z({ourProps:{ref:x,id:F,"aria-hidden":!0,onClick:S},theirProps:O,slot:s,defaultTag:lt,features:at,visible:p,name:"Popover.Overlay"})}let st="div",ut=ne.RenderStrategy|ne.Static;function it(e,a){let f=re(),{id:F=`headlessui-popover-panel-${f}`,focus:O=!1,anchor:l,modal:n,...x}=e,[t,p]=le("Popover.Panel"),{close:S,isPortalled:s}=ve("Popover.Panel"),k=`headlessui-focus-sentinel-before-${f}`,m=`headlessui-focus-sentinel-after-${f}`,T=z(null),[d,i]=ke(l),E=we();l!=null&&n==null?n=!0:n==null&&(n=!1);let C=Y(T,a,l?d:null,P=>{p({type:4,panel:P})}),b=se(T),L=Je();Ie(()=>(p({type:5,panelId:F}),()=>{p({type:5,panelId:null})}),[F,p]);let A=Se(),_=(()=>A!==null?(A&q.Open)===q.Open:t.popoverState===0)(),j=g(P=>{var o;switch(P.key){case K.Escape:if(t.popoverState!==0||!T.current||b!=null&&b.activeElement&&!T.current.contains(b.activeElement))return;P.preventDefault(),P.stopPropagation(),p({type:1}),(o=t.button)==null||o.focus();break}});oe(()=>{var P;e.static||t.popoverState===1&&((P=e.unmount)==null||P)&&p({type:4,panel:null})},[t.popoverState,e.unmount,e.static,p]),oe(()=>{if(t.__demoMode||!O||t.popoverState!==0||!T.current)return;let P=b==null?void 0:b.activeElement;T.current.contains(P)||W(T.current,N.First)},[t.__demoMode,O,T,t.popoverState]);let $=D(()=>({open:t.popoverState===0,close:S}),[t,S]),J=de(l?E():{},{ref:C,id:F,onKeyDown:j,onBlur:O&&t.popoverState===0?P=>{var u,c,R,M,r;let o=P.relatedTarget;o&&T.current&&((u=T.current)!=null&&u.contains(o)||(p({type:1}),((R=(c=t.beforePanelSentinel.current)==null?void 0:c.contains)!=null&&R.call(c,o)||(r=(M=t.afterPanelSentinel.current)==null?void 0:M.contains)!=null&&r.call(M,o))&&o.focus({preventScroll:!0})))}:void 0,tabIndex:-1,...i?{style:i}:{}}),B=be(),h=g(()=>{let P=T.current;if(!P)return;function o(){V(B.current,{[H.Forwards]:()=>{var c;W(P,N.First)===fe.Error&&((c=t.afterPanelSentinel.current)==null||c.focus())},[H.Backwards]:()=>{var u;(u=t.button)==null||u.focus({preventScroll:!0})}})}o()}),G=g(()=>{let P=T.current;if(!P)return;function o(){V(B.current,{[H.Forwards]:()=>{var v;if(!t.button)return;let u=Pe(),c=u.indexOf(t.button),R=u.slice(0,c+1),r=[...u.slice(c+1),...R];for(let I of r.slice())if(I.dataset.headlessuiFocusGuard==="true"||(v=t.panel)!=null&&v.contains(I)){let U=r.indexOf(I);U!==-1&&r.splice(U,1)}W(r,N.First,{sorted:!1})},[H.Backwards]:()=>{var c;W(P,N.Previous)===fe.Error&&((c=t.button)==null||c.focus())}})}o()}),w=n?ge:l?Re:Me,X=n?{focusTrapFeatures:Xe.None,features:We.ScrollLock,enabled:t.popoverState===0}:{};return(w===Re||w===ge)&&(s=!0),y.createElement(pe.Provider,{value:F},y.createElement(ae.Provider,{value:{close:S,isPortalled:s}},y.createElement(w,{...X},_&&s&&y.createElement(ue,{id:k,ref:t.beforePanelSentinel,features:ie.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:h}),Z({mergeRefs:L,ourProps:J,theirProps:x,slot:$,defaultTag:st,features:ut,visible:_,name:"Popover.Panel"}),_&&s&&y.createElement(ue,{id:m,ref:t.afterPanelSentinel,features:ie.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:G}))))}let ft="div";function Pt(e,a){let f=z(null),F=Y(f,a),[O,l]=ye([]),n=De(),x=g(d=>{l(i=>{let E=i.indexOf(d);if(E!==-1){let C=i.slice();return C.splice(E,1),C}return i})}),t=g(d=>(l(i=>[...i,d]),()=>x(d))),p=g(()=>{var E;let d=$e(f);if(!d)return!1;let i=d.activeElement;return(E=f.current)!=null&&E.contains(i)?!0:O.some(C=>{var b,L;return((b=d.getElementById(C.buttonId.current))==null?void 0:b.contains(i))||((L=d.getElementById(C.panelId.current))==null?void 0:L.contains(i))})}),S=g(d=>{for(let i of O)i.buttonId.current!==d&&i.close()}),s=D(()=>({registerPopover:t,unregisterPopover:x,isFocusWithinPopoverGroup:p,closeOthers:S,mainTreeNodeRef:n.mainTreeNodeRef}),[t,x,p,S,n.mainTreeNodeRef]),k=D(()=>({}),[]),m=e,T={ref:F};return y.createElement(Te.Provider,{value:s},Z({ourProps:T,theirProps:m,slot:k,defaultTag:ft,name:"Popover.Group"}),y.createElement(n.MainTreeNode,null))}let dt=Q(ot),ct=Q(nt),vt=Q(pt),Tt=Q(it),mt=Q(Pt),Jt=Object.assign(dt,{Button:ct,Overlay:vt,Panel:Tt,Group:mt});export{Jt as Popover,ct as PopoverButton,mt as PopoverGroup,vt as PopoverOverlay,Tt as PopoverPanel};
"use client";import{useFocusRing as Me}from"@react-aria/focus";import{useHover as _e}from"@react-aria/interactions";import E,{createContext as ee,createRef as ue,useContext as te,useEffect as oe,useMemo as I,useReducer as xe,useRef as X,useState as ge}from"react";import{useActivePress as Le}from'../../hooks/use-active-press.js';import{useElementSize as Ie}from'../../hooks/use-element-size.js';import{useEvent as A}from'../../hooks/use-event.js';import{useEventListener as Be}from'../../hooks/use-event-listener.js';import{useId as re}from'../../hooks/use-id.js';import{useIsoMorphicEffect as he}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Se}from'../../hooks/use-latest-value.js';import{useOnDisappear as De}from'../../hooks/use-on-disappear.js';import{useOutsideClick as He}from'../../hooks/use-outside-click.js';import{useOwnerDocument as ie}from'../../hooks/use-owner.js';import{useResolveButtonType as Ge}from'../../hooks/use-resolve-button-type.js';import{useMainTreeNode as Ne,useRootContainers as ke}from'../../hooks/use-root-containers.js';import{useScrollLock as Ue}from'../../hooks/use-scroll-lock.js';import{optionalRef as we,useSyncRefs as Y}from'../../hooks/use-sync-refs.js';import{Direction as G,useTabDirection as Ae}from'../../hooks/use-tab-direction.js';import{useTransition as Re}from'../../hooks/use-transition.js';import{CloseProvider as We}from'../../internal/close-provider.js';import{FloatingProvider as Ve,useFloatingPanel as je,useFloatingPanelProps as Ke,useFloatingReference as $e,useResolvedAnchor as Je}from'../../internal/floating.js';import{Hidden as fe,HiddenFeatures as Pe}from'../../internal/hidden.js';import{OpenClosedProvider as Xe,State as q,useOpenClosed as Oe}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as Ce}from'../../utils/bugs.js';import{Focus as N,FocusResult as de,FocusableMode as Ye,focusIn as w,getFocusableElements as ce,isFocusableElement as qe}from'../../utils/focus-management.js';import{match as W}from'../../utils/match.js';import'../../utils/micro-task.js';import{getOwnerDocument as ze}from'../../utils/owner.js';import{RenderFeatures as ne,forwardRefWithAs as Q,mergeProps as ve,render as Z,useMergeRefsFn as Qe}from'../../utils/render.js';import{Keys as V}from'../keyboard.js';import{Portal as Ze,useNestedPortals as et}from'../portal/portal.js';var tt=(f=>(f[f.Open=0]="Open",f[f.Closed=1]="Closed",f))(tt||{}),ot=(u=>(u[u.TogglePopover=0]="TogglePopover",u[u.ClosePopover=1]="ClosePopover",u[u.SetButton=2]="SetButton",u[u.SetButtonId=3]="SetButtonId",u[u.SetPanel=4]="SetPanel",u[u.SetPanelId=5]="SetPanelId",u))(ot||{});let rt={[0]:t=>({...t,popoverState:W(t.popoverState,{[0]:1,[1]:0}),__demoMode:!1}),[1](t){return t.popoverState===1?t:{...t,popoverState:1,__demoMode:!1}},[2](t,a){return t.button===a.button?t:{...t,button:a.button}},[3](t,a){return t.buttonId===a.buttonId?t:{...t,buttonId:a.buttonId}},[4](t,a){return t.panel===a.panel?t:{...t,panel:a.panel}},[5](t,a){return t.panelId===a.panelId?t:{...t,panelId:a.panelId}}},Te=ee(null);Te.displayName="PopoverContext";function le(t){let a=te(Te);if(a===null){let f=new Error(`<${t} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(f,le),f}return a}let ae=ee(null);ae.displayName="PopoverAPIContext";function me(t){let a=te(ae);if(a===null){let f=new Error(`<${t} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(f,me),f}return a}let ye=ee(null);ye.displayName="PopoverGroupContext";function Fe(){return te(ye)}let pe=ee(null);pe.displayName="PopoverPanelContext";function nt(){return te(pe)}function lt(t,a){return W(a.type,rt,t,a)}let at="div";function pt(t,a){var J;let{__demoMode:f=!1,...C}=t,m=X(null),R=Y(a,we(e=>{m.current=e})),u=X([]),l=xe(lt,{__demoMode:f,popoverState:f?0:1,buttons:u,button:null,buttonId:null,panel:null,panelId:null,beforePanelSentinel:ue(),afterPanelSentinel:ue(),afterButtonSentinel:ue()}),[{popoverState:c,button:P,buttonId:r,panel:i,panelId:O,beforePanelSentinel:y,afterPanelSentinel:B,afterButtonSentinel:d},n]=l,v=ie((J=m.current)!=null?J:P),F=I(()=>{if(!P||!i)return!1;for(let g of document.querySelectorAll("body > *"))if(Number(g==null?void 0:g.contains(P))^Number(g==null?void 0:g.contains(i)))return!0;let e=ce(),s=e.indexOf(P),o=(s+e.length-1)%e.length,p=(s+1)%e.length,S=e[o],b=e[p];return!i.contains(S)&&!i.contains(b)},[P,i]),M=Se(r),x=Se(O),j=I(()=>({buttonId:M,panelId:x,close:()=>n({type:1})}),[M,x,n]),T=Fe(),h=T==null?void 0:T.registerPopover,k=A(()=>{var e;return(e=T==null?void 0:T.isFocusWithinPopoverGroup())!=null?e:(v==null?void 0:v.activeElement)&&((P==null?void 0:P.contains(v.activeElement))||(i==null?void 0:i.contains(v.activeElement)))});oe(()=>h==null?void 0:h(j),[h,j]);let[_,U]=et(),D=ke({mainTreeNodeRef:T==null?void 0:T.mainTreeNodeRef,portals:_,defaultContainers:[P,i]});Be(v==null?void 0:v.defaultView,"focus",e=>{var s,o,p,S,b,g;e.target!==window&&e.target instanceof HTMLElement&&c===0&&(k()||P&&i&&(D.contains(e.target)||(o=(s=y.current)==null?void 0:s.contains)!=null&&o.call(s,e.target)||(S=(p=B.current)==null?void 0:p.contains)!=null&&S.call(p,e.target)||(g=(b=d.current)==null?void 0:b.contains)!=null&&g.call(b,e.target)||n({type:1})))},!0),He(c===0,D.resolveContainers,(e,s)=>{n({type:1}),qe(s,Ye.Loose)||(e.preventDefault(),P==null||P.focus())});let L=A(e=>{n({type:1});let s=(()=>e?e instanceof HTMLElement?e:"current"in e&&e.current instanceof HTMLElement?e.current:P:P)();s==null||s.focus()}),H=I(()=>({close:L,isPortalled:F}),[L,F]),K=I(()=>({open:c===0,close:L}),[c,L]),$={ref:R};return E.createElement(Ve,null,E.createElement(pe.Provider,{value:null},E.createElement(Te.Provider,{value:l},E.createElement(ae.Provider,{value:H},E.createElement(We,{value:L},E.createElement(Xe,{value:W(c,{[0]:q.Open,[1]:q.Closed})},E.createElement(U,null,Z({ourProps:$,theirProps:C,slot:K,defaultTag:at,name:"Popover"}),E.createElement(D.MainTreeNode,null))))))))}let st="button";function ut(t,a){let f=re(),{id:C=`headlessui-popover-button-${f}`,disabled:m=!1,autoFocus:R=!1,...u}=t,[l,c]=le("Popover.Button"),{isPortalled:P}=me("Popover.Button"),r=X(null),i=`headlessui-focus-sentinel-${re()}`,O=Fe(),y=O==null?void 0:O.closeOthers,d=nt()!==null;oe(()=>{if(!d)return c({type:3,buttonId:C}),()=>{c({type:3,buttonId:null})}},[d,C,c]);let[n]=ge(()=>Symbol()),v=Y(r,a,$e(),d?null:o=>{if(o)l.buttons.current.push(n);else{let p=l.buttons.current.indexOf(n);p!==-1&&l.buttons.current.splice(p,1)}l.buttons.current.length>1&&console.warn("You are already using a <Popover.Button /> but only 1 <Popover.Button /> is supported."),o&&c({type:2,button:o})}),F=Y(r,a),M=ie(r),x=A(o=>{var p,S,b;if(d){if(l.popoverState===1)return;switch(o.key){case V.Space:case V.Enter:o.preventDefault(),(S=(p=o.target).click)==null||S.call(p),c({type:1}),(b=l.button)==null||b.focus();break}}else switch(o.key){case V.Space:case V.Enter:o.preventDefault(),o.stopPropagation(),l.popoverState===1&&(y==null||y(l.buttonId)),c({type:0});break;case V.Escape:if(l.popoverState!==0)return y==null?void 0:y(l.buttonId);if(!r.current||M!=null&&M.activeElement&&!r.current.contains(M.activeElement))return;o.preventDefault(),o.stopPropagation(),c({type:1});break}}),j=A(o=>{d||o.key===V.Space&&o.preventDefault()}),T=A(o=>{var p,S;Ce(o.currentTarget)||m||(d?(c({type:1}),(p=l.button)==null||p.focus()):(o.preventDefault(),o.stopPropagation(),l.popoverState===1&&(y==null||y(l.buttonId)),c({type:0}),(S=l.button)==null||S.focus()))}),h=A(o=>{o.preventDefault(),o.stopPropagation()}),{isFocusVisible:k,focusProps:_}=Me({autoFocus:R}),{isHovered:U,hoverProps:D}=_e({isDisabled:m}),{pressed:z,pressProps:L}=Le({disabled:m}),H=l.popoverState===0,K=I(()=>({open:H,active:z||H,disabled:m,hover:U,focus:k,autofocus:R}),[H,U,k,z,m,R]),$=Ge(t,r),J=d?ve({ref:F,type:$,onKeyDown:x,onClick:T,disabled:m||void 0,autoFocus:R},_,D,L):ve({ref:v,id:l.buttonId,type:$,"aria-expanded":l.popoverState===0,"aria-controls":l.panel?l.panelId:void 0,disabled:m||void 0,autoFocus:R,onKeyDown:x,onKeyUp:j,onClick:T,onMouseDown:h},_,D,L),e=Ae(),s=A(()=>{let o=l.panel;if(!o)return;function p(){W(e.current,{[G.Forwards]:()=>w(o,N.First),[G.Backwards]:()=>w(o,N.Last)})===de.Error&&w(ce().filter(b=>b.dataset.headlessuiFocusGuard!=="true"),W(e.current,{[G.Forwards]:N.Next,[G.Backwards]:N.Previous}),{relativeTo:l.button})}p()});return E.createElement(E.Fragment,null,Z({ourProps:J,theirProps:u,slot:K,defaultTag:st,name:"Popover.Button"}),H&&!d&&P&&E.createElement(fe,{id:i,ref:l.afterButtonSentinel,features:Pe.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:s}))}let it="div",ft=ne.RenderStrategy|ne.Static;function Pt(t,a){let f=re(),{id:C=`headlessui-popover-overlay-${f}`,transition:m=!1,...R}=t,[{popoverState:u},l]=le("Popover.Overlay"),c=X(null),P=Y(a,c),r=Oe(),[i,O]=Re(m,c,r!==null?(r&q.Open)===q.Open:u===0),y=A(n=>{if(Ce(n.currentTarget))return n.preventDefault();l({type:1})}),B=I(()=>({open:u===0,...O}),[u,O]);return Z({ourProps:{ref:P,id:C,"aria-hidden":!0,onClick:y},theirProps:R,slot:B,defaultTag:it,features:ft,visible:i,name:"Popover.Overlay"})}let dt="div",ct=ne.RenderStrategy|ne.Static;function vt(t,a){let f=re(),{id:C=`headlessui-popover-panel-${f}`,focus:m=!1,anchor:R,portal:u=!1,modal:l=!1,transition:c=!1,...P}=t,[r,i]=le("Popover.Panel"),{close:O,isPortalled:y}=me("Popover.Panel"),B=`headlessui-focus-sentinel-before-${f}`,d=`headlessui-focus-sentinel-after-${f}`,n=X(null),v=Je(R),[F,M]=je(v),x=Ke();v&&(u=!0);let j=Y(n,a,v?F:null,e=>{i({type:4,panel:e})}),T=ie(n),h=Qe();he(()=>(i({type:5,panelId:C}),()=>{i({type:5,panelId:null})}),[C,i]);let k=Oe(),[_,U]=Re(c,n,k!==null?(k&q.Open)===q.Open:r.popoverState===0);De(_,r.button,()=>{i({type:1})});let D=r.__demoMode?!1:l&&_;Ue(D,T);let z=A(e=>{var s;switch(e.key){case V.Escape:if(r.popoverState!==0||!n.current||T!=null&&T.activeElement&&!n.current.contains(T.activeElement))return;e.preventDefault(),e.stopPropagation(),i({type:1}),(s=r.button)==null||s.focus();break}});oe(()=>{var e;t.static||r.popoverState===1&&((e=t.unmount)==null||e)&&i({type:4,panel:null})},[r.popoverState,t.unmount,t.static,i]),oe(()=>{if(r.__demoMode||!m||r.popoverState!==0||!n.current)return;let e=T==null?void 0:T.activeElement;n.current.contains(e)||w(n.current,N.First)},[r.__demoMode,m,n,r.popoverState]);let L=I(()=>({open:r.popoverState===0,close:O,...U}),[r.popoverState,O,U]),H=ve(v?x():{},{ref:j,id:C,onKeyDown:z,onBlur:m&&r.popoverState===0?e=>{var o,p,S,b,g;let s=e.relatedTarget;s&&n.current&&((o=n.current)!=null&&o.contains(s)||(i({type:1}),((S=(p=r.beforePanelSentinel.current)==null?void 0:p.contains)!=null&&S.call(p,s)||(g=(b=r.afterPanelSentinel.current)==null?void 0:b.contains)!=null&&g.call(b,s))&&s.focus({preventScroll:!0})))}:void 0,tabIndex:-1,style:{...P.style,...M,"--button-width":Ie(r.button,!0).width}}),K=Ae(),$=A(()=>{let e=n.current;if(!e)return;function s(){W(K.current,{[G.Forwards]:()=>{var p;w(e,N.First)===de.Error&&((p=r.afterPanelSentinel.current)==null||p.focus())},[G.Backwards]:()=>{var o;(o=r.button)==null||o.focus({preventScroll:!0})}})}s()}),J=A(()=>{let e=n.current;if(!e)return;function s(){W(K.current,{[G.Forwards]:()=>{var Ee;if(!r.button)return;let o=ce(),p=o.indexOf(r.button),S=o.slice(0,p+1),g=[...o.slice(p+1),...S];for(let se of g.slice())if(se.dataset.headlessuiFocusGuard==="true"||(Ee=r.panel)!=null&&Ee.contains(se)){let be=g.indexOf(se);be!==-1&&g.splice(be,1)}w(g,N.First,{sorted:!1})},[G.Backwards]:()=>{var p;w(e,N.Previous)===de.Error&&((p=r.button)==null||p.focus())}})}s()});return E.createElement(pe.Provider,{value:C},E.createElement(ae.Provider,{value:{close:O,isPortalled:y}},E.createElement(Ze,{enabled:u?t.static||_:!1},_&&y&&E.createElement(fe,{id:B,ref:r.beforePanelSentinel,features:Pe.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:$}),Z({mergeRefs:h,ourProps:H,theirProps:P,slot:L,defaultTag:dt,features:ct,visible:_,name:"Popover.Panel"}),_&&y&&E.createElement(fe,{id:d,ref:r.afterPanelSentinel,features:Pe.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:J}))))}let Tt="div";function mt(t,a){let f=X(null),C=Y(f,a),[m,R]=ge([]),u=Ne(),l=A(d=>{R(n=>{let v=n.indexOf(d);if(v!==-1){let F=n.slice();return F.splice(v,1),F}return n})}),c=A(d=>(R(n=>[...n,d]),()=>l(d))),P=A(()=>{var v;let d=ze(f);if(!d)return!1;let n=d.activeElement;return(v=f.current)!=null&&v.contains(n)?!0:m.some(F=>{var M,x;return((M=d.getElementById(F.buttonId.current))==null?void 0:M.contains(n))||((x=d.getElementById(F.panelId.current))==null?void 0:x.contains(n))})}),r=A(d=>{for(let n of m)n.buttonId.current!==d&&n.close()}),i=I(()=>({registerPopover:c,unregisterPopover:l,isFocusWithinPopoverGroup:P,closeOthers:r,mainTreeNodeRef:u.mainTreeNodeRef}),[c,l,P,r,u.mainTreeNodeRef]),O=I(()=>({}),[]),y=t,B={ref:C};return E.createElement(ye.Provider,{value:i},Z({ourProps:B,theirProps:y,slot:O,defaultTag:Tt,name:"Popover.Group"}),E.createElement(u.MainTreeNode,null))}let yt=Q(pt),Et=Q(ut),bt=Q(Pt),gt=Q(vt),St=Q(mt),to=Object.assign(yt,{Button:Et,Overlay:bt,Panel:gt,Group:St});export{to as Popover,Et as PopoverButton,St as PopoverGroup,bt as PopoverOverlay,gt as PopoverPanel};

@@ -9,4 +9,6 @@ import React, { type ElementType, type MutableRefObject, type Ref } from 'react';

type PortalPropsWeControl = never;
export type PortalProps<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG> = Props<TTag, PortalRenderPropArg, PortalPropsWeControl>;
declare function PortalFn<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG>(props: PortalProps<TTag>, ref: Ref<HTMLElement>): React.ReactPortal | null;
export type PortalProps<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG> = Props<TTag, PortalRenderPropArg, PortalPropsWeControl, {
enabled?: boolean;
}>;
declare function PortalFn<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG>(props: PortalProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element | null;
declare let DEFAULT_GROUP_TAG: React.ExoticComponent<{

@@ -32,4 +34,5 @@ children?: React.ReactNode;

export declare let Portal: _internal_ComponentPortal & {
/** @deprecated use `<PortalGroup>` instead of `<Portal.Group>` */
Group: _internal_ComponentPortalGroup;
};
export {};

@@ -1,1 +0,1 @@

"use client";import P,{Fragment as T,createContext as m,useContext as s,useEffect as d,useMemo as y,useRef as g,useState as R}from"react";import{createPortal as M}from"react-dom";import{useEvent as E}from'../../hooks/use-event.js';import{useIsoMorphicEffect as c}from'../../hooks/use-iso-morphic-effect.js';import{useOnUnmount as H}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as G}from'../../hooks/use-owner.js';import{useServerHandoffComplete as O}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as b,useSyncRefs as x}from'../../hooks/use-sync-refs.js';import{usePortalRoot as h}from'../../internal/portal-force-root.js';import{env as A}from'../../utils/env.js';import{forwardRefWithAs as L,render as _}from'../../utils/render.js';function F(a){let l=h(),n=s(C),e=G(a),[p,o]=R(()=>{if(!l&&n!==null||A.isServer)return null;let t=e==null?void 0:e.getElementById("headlessui-portal-root");if(t)return t;if(e===null)return null;let r=e.createElement("div");return r.setAttribute("id","headlessui-portal-root"),e.body.appendChild(r)});return d(()=>{p!==null&&(e!=null&&e.body.contains(p)||e==null||e.body.appendChild(p))},[p,e]),d(()=>{l||n!==null&&o(n.current)},[n,o,l]),p}let U=T;function D(a,l){let n=a,e=g(null),p=x(b(u=>{e.current=u}),l),o=G(e),t=F(e),[r]=R(()=>{var u;return A.isServer?null:(u=o==null?void 0:o.createElement("div"))!=null?u:null}),i=s(f),v=O();return c(()=>{!t||!r||t.contains(r)||(r.setAttribute("data-headlessui-portal",""),t.appendChild(r))},[t,r]),c(()=>{if(r&&i)return i.register(r)},[i,r]),H(()=>{var u;!t||!r||(r instanceof Node&&t.contains(r)&&t.removeChild(r),t.childNodes.length<=0&&((u=t.parentElement)==null||u.removeChild(t)))}),v?!t||!r?null:M(_({ourProps:{ref:p},theirProps:n,slot:{},defaultTag:U,name:"Portal"}),r):null}let N=T,C=m(null);function S(a,l){let{target:n,...e}=a,o={ref:x(l)};return P.createElement(C.Provider,{value:n},_({ourProps:o,theirProps:e,defaultTag:N,name:"Popover.Group"}))}let f=m(null);function $(){let a=s(f),l=g([]),n=E(o=>(l.current.push(o),a&&a.register(o),()=>e(o))),e=E(o=>{let t=l.current.indexOf(o);t!==-1&&l.current.splice(t,1),a&&a.unregister(o)}),p=y(()=>({register:n,unregister:e,portals:l}),[n,e,l]);return[l,y(()=>function({children:t}){return P.createElement(f.Provider,{value:p},t)},[p])]}let j=L(D),W=L(S),w=Object.assign(j,{Group:W});export{w as Portal,W as PortalGroup,$ as useNestedPortals};
"use client";import f,{Fragment as g,createContext as E,useContext as T,useEffect as R,useMemo as c,useRef as A,useState as G}from"react";import{createPortal as H}from"react-dom";import{useEvent as L}from'../../hooks/use-event.js';import{useIsoMorphicEffect as x}from'../../hooks/use-iso-morphic-effect.js';import{useOnUnmount as O}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as _}from'../../hooks/use-owner.js';import{useServerHandoffComplete as h}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as F,useSyncRefs as P}from'../../hooks/use-sync-refs.js';import{usePortalRoot as U}from'../../internal/portal-force-root.js';import{env as C}from'../../utils/env.js';import{forwardRefWithAs as m,render as d}from'../../utils/render.js';function D(p){let r=U(),l=T(v),e=_(p),[o,n]=G(()=>{var t;if(!r&&l!==null)return(t=l.current)!=null?t:null;if(C.isServer)return null;let u=e==null?void 0:e.getElementById("headlessui-portal-root");if(u)return u;if(e===null)return null;let a=e.createElement("div");return a.setAttribute("id","headlessui-portal-root"),e.body.appendChild(a)});return R(()=>{o!==null&&(e!=null&&e.body.contains(o)||e==null||e.body.appendChild(o))},[o,e]),R(()=>{r||l!==null&&n(l.current)},[l,n,r]),o}let M=g,N=m(function(r,l){let e=r,o=A(null),n=P(F(i=>{o.current=i}),l),u=_(o),a=D(o),[t]=G(()=>{var i;return C.isServer?null:(i=u==null?void 0:u.createElement("div"))!=null?i:null}),s=T(y),b=h();return x(()=>{!a||!t||a.contains(t)||(t.setAttribute("data-headlessui-portal",""),a.appendChild(t))},[a,t]),x(()=>{if(t&&s)return s.register(t)},[s,t]),O(()=>{var i;!a||!t||(t instanceof Node&&a.contains(t)&&a.removeChild(t),a.childNodes.length<=0&&((i=a.parentElement)==null||i.removeChild(a)))}),b?!a||!t?null:H(d({ourProps:{ref:n},theirProps:e,slot:{},defaultTag:M,name:"Portal"}),t):null});function S(p,r){let l=P(r),{enabled:e=!0,...o}=p;return e?f.createElement(N,{...o,ref:l}):d({ourProps:{ref:l},theirProps:o,slot:{},defaultTag:M,name:"Portal"})}let j=g,v=E(null);function W(p,r){let{target:l,...e}=p,n={ref:P(r)};return f.createElement(v.Provider,{value:l},d({ourProps:n,theirProps:e,defaultTag:j,name:"Popover.Group"}))}let y=E(null);function ee(){let p=T(y),r=A([]),l=L(n=>(r.current.push(n),p&&p.register(n),()=>e(n))),e=L(n=>{let u=r.current.indexOf(n);u!==-1&&r.current.splice(u,1),p&&p.unregister(n)}),o=c(()=>({register:l,unregister:e,portals:r}),[l,e,r]);return[r,c(()=>function({children:u}){return f.createElement(y.Provider,{value:o},u)},[o])]}let I=m(S),J=m(W),te=Object.assign(I,{Group:J});export{te as Portal,J as PortalGroup,ee as useNestedPortals};

@@ -68,2 +68,3 @@ import React, { type ElementType, type Ref } from 'react';

declare let RadioGroupRoot: _internal_ComponentRadioGroup;
/** @deprecated use `<Radio>` instead of `<RadioGroupOption>` */
export declare let RadioGroupOption: _internal_ComponentRadioOption;

@@ -76,3 +77,6 @@ export declare let Radio: _internal_ComponentRadio;

export declare let RadioGroup: _internal_ComponentRadioGroup & {
/** @deprecated use `<Radio>` instead of `<RadioGroup.Option>` */
Option: _internal_ComponentRadioOption;
/** @deprecated use `<Radio>` instead of `<RadioGroup.Radio>` */
Radio: _internal_ComponentRadio;
/** @deprecated use `<Label>` instead of `<RadioGroup.Label>` */

@@ -79,0 +83,0 @@ Label: _internal_ComponentRadioLabel;

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as Q}from"@react-aria/focus";import{useHover as Y}from"@react-aria/interactions";import G,{createContext as Z,useCallback as me,useContext as ee,useMemo as x,useReducer as ye,useRef as B}from"react";import{useByComparator as Re}from'../../hooks/use-by-comparator.js';import{useControllable as be}from'../../hooks/use-controllable.js';import{useEvent as S}from'../../hooks/use-event.js';import{useId as K}from'../../hooks/use-id.js';import{useIsoMorphicEffect as oe}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as te}from'../../hooks/use-latest-value.js';import{useSyncRefs as $}from'../../hooks/use-sync-refs.js';import{useDisabled as re}from'../../internal/disabled.js';import{FormFields as ge}from'../../internal/form-fields.js';import{useProvidedId as Oe}from'../../internal/id.js';import{isDisabledReactIssue7711 as ne}from'../../utils/bugs.js';import{Focus as N,FocusResult as ie,focusIn as ae,sortByDomNode as Pe}from'../../utils/focus-management.js';import{attemptSubmit as ve}from'../../utils/form.js';import{match as De}from'../../utils/match.js';import{getOwnerDocument as Ae}from'../../utils/owner.js';import{forwardRefWithAs as j,mergeProps as pe,render as V}from'../../utils/render.js';import{Description as _e,useDescribedBy as Ee,useDescriptions as le}from'../description/description.js';import{Keys as F}from'../keyboard.js';import{Label as Ge,useLabelledBy as xe,useLabels as se}from'../label/label.js';var Ce=(o=>(o[o.RegisterOption=0]="RegisterOption",o[o.UnregisterOption=1]="UnregisterOption",o))(Ce||{});let he={[0](e,t){let o=[...e.options,{id:t.id,element:t.element,propsRef:t.propsRef}];return{...e,options:Pe(o,a=>a.element.current)}},[1](e,t){let o=e.options.slice(),a=e.options.findIndex(y=>y.id===t.id);return a===-1?e:(o.splice(a,1),{...e,options:o})}},J=Z(null);J.displayName="RadioGroupDataContext";function X(e){let t=ee(J);if(t===null){let o=new Error(`<${e} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,X),o}return t}let z=Z(null);z.displayName="RadioGroupActionsContext";function q(e){let t=ee(z);if(t===null){let o=new Error(`<${e} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,q),o}return t}function Le(e,t){return De(t.type,he,e,t)}let ke="div";function Fe(e,t){let o=K(),a=re(),{id:y=`headlessui-radiogroup-${o}`,value:C,defaultValue:h,form:u,name:b,onChange:p,by:I,disabled:f=a||!1,...U}=e,T=Re(I),[c,R]=ye(Le,{options:[]}),l=c.options,[L,s]=se(),[g,w]=le(),D=B(null),O=$(D,t),[n,A]=be(C,p,h),_=x(()=>l.find(r=>!r.propsRef.current.disabled),[l]),P=x(()=>l.some(r=>T(r.propsRef.current.value,n)),[l,n]),i=S(r=>{var d;if(f||T(r,n))return!1;let k=(d=l.find(H=>T(H.propsRef.current.value,r)))==null?void 0:d.propsRef.current;return k!=null&&k.disabled?!1:(A==null||A(r),!0)}),m=S(r=>{let k=D.current;if(!k)return;let d=Ae(k),H=l.filter(v=>v.propsRef.current.disabled===!1).map(v=>v.element.current);switch(r.key){case F.Enter:ve(r.currentTarget);break;case F.ArrowLeft:case F.ArrowUp:if(r.preventDefault(),r.stopPropagation(),ae(H,N.Previous|N.WrapAround)===ie.Success){let E=l.find(W=>W.element.current===(d==null?void 0:d.activeElement));E&&i(E.propsRef.current.value)}break;case F.ArrowRight:case F.ArrowDown:if(r.preventDefault(),r.stopPropagation(),ae(H,N.Next|N.WrapAround)===ie.Success){let E=l.find(W=>W.element.current===(d==null?void 0:d.activeElement));E&&i(E.propsRef.current.value)}break;case F.Space:{r.preventDefault(),r.stopPropagation();let v=l.find(E=>E.element.current===(d==null?void 0:d.activeElement));v&&i(v.propsRef.current.value)}break}}),M=S(r=>(R({type:0,...r}),()=>R({type:1,id:r.id}))),de=x(()=>({value:n,firstOption:_,containsCheckedOption:P,disabled:f,compare:T,...c}),[n,_,P,f,T,c]),ue=x(()=>({registerOption:M,change:i}),[M,i]),ce={ref:O,id:y,role:"radiogroup","aria-labelledby":L,"aria-describedby":g,onKeyDown:m},fe=x(()=>({value:n}),[n]),Te=me(()=>i(h),[i]);return G.createElement(w,{name:"RadioGroup.Description"},G.createElement(s,{name:"RadioGroup.Label"},G.createElement(z.Provider,{value:ue},G.createElement(J.Provider,{value:de},b!=null&&G.createElement(ge,{data:n!=null?{[b]:n||"on"}:{},form:u,onReset:Te}),V({ourProps:ce,theirProps:U,slot:fe,defaultTag:ke,name:"RadioGroup"})))))}let Ie="div";function Ue(e,t){var P,i;let o=K(),{id:a=`headlessui-radiogroup-option-${o}`,value:y,disabled:C=!1,...h}=e,u=B(null),b=$(u,t),[p,I]=se(),[f,U]=le(),T=te({value:y,disabled:C}),c=X("RadioGroup.Option"),R=q("RadioGroup.Option");oe(()=>R.registerOption({id:a,element:u,propsRef:T}),[a,R,u,T]);let l=S(m=>{var M;if(ne(m.currentTarget))return m.preventDefault();R.change(y)&&((M=u.current)==null||M.focus())}),L=((P=c.firstOption)==null?void 0:P.id)===a,s=c.disabled||C,{isFocusVisible:g,focusProps:w}=Q({autoFocus:(i=e.autoFocus)!=null?i:!1}),{isHovered:D,hoverProps:O}=Y({isDisabled:s!=null?s:!1}),n=c.compare(c.value,y),A=pe({ref:b,id:a,role:"radio","aria-checked":n?"true":"false","aria-labelledby":p,"aria-describedby":f,"aria-disabled":s?!0:void 0,tabIndex:(()=>s?-1:n||!c.containsCheckedOption&&L?0:-1)(),onClick:s?void 0:l},w,O),_=x(()=>{var m;return{checked:n,disabled:s,active:g,hover:D,focus:g,autofocus:(m=e.autoFocus)!=null?m:!1}},[n,s,D,g,e.autoFocus]);return G.createElement(U,{name:"RadioGroup.Description"},G.createElement(I,{name:"RadioGroup.Label"},V({ourProps:A,theirProps:h,slot:_,defaultTag:Ie,name:"RadioGroup.Option"})))}let we="span";function Me(e,t){var _,P;let o=X("Radio"),a=q("Radio"),y=K(),C=Oe(),h=re(),{id:u=C||`headlessui-radio-${y}`,value:b,disabled:p=o.disabled||h||!1,...I}=e,f=B(null),U=$(f,t),T=xe(),c=Ee(),R=te({value:b,disabled:p});oe(()=>a.registerOption({id:u,element:f,propsRef:R}),[u,a,f,R]);let l=S(i=>{var m;if(ne(i.currentTarget))return i.preventDefault();a.change(b)&&((m=f.current)==null||m.focus())}),{isFocusVisible:L,focusProps:s}=Q({autoFocus:(_=e.autoFocus)!=null?_:!1}),{isHovered:g,hoverProps:w}=Y({isDisabled:p!=null?p:!1}),D=((P=o.firstOption)==null?void 0:P.id)===u,O=o.compare(o.value,b),n=pe({ref:U,id:u,role:"radio","aria-checked":O?"true":"false","aria-labelledby":T,"aria-describedby":c,"aria-disabled":p?!0:void 0,tabIndex:(()=>p?-1:O||!o.containsCheckedOption&&D?0:-1)(),onClick:p?void 0:l},s,w),A=x(()=>{var i;return{checked:O,disabled:p,hover:g,focus:L,autofocus:(i=e.autoFocus)!=null?i:!1}},[O,p,g,L,e.autoFocus]);return V({ourProps:n,theirProps:I,slot:A,defaultTag:we,name:"Radio"})}let Se=j(Fe),He=j(Ue),uo=j(Me),Ne=Ge,We=_e,co=Object.assign(Se,{Option:He,Label:Ne,Description:We});export{uo as Radio,co as RadioGroup,We as RadioGroupDescription,Ne as RadioGroupLabel,He as RadioGroupOption};
"use client";import{useFocusRing as Q}from"@react-aria/focus";import{useHover as Y}from"@react-aria/interactions";import G,{createContext as Z,useCallback as ye,useContext as ee,useMemo as x,useReducer as Re,useRef as W}from"react";import{useByComparator as be}from'../../hooks/use-by-comparator.js';import{useControllable as ge}from'../../hooks/use-controllable.js';import{useDefaultValue as Oe}from'../../hooks/use-default-value.js';import{useEvent as S}from'../../hooks/use-event.js';import{useId as B}from'../../hooks/use-id.js';import{useIsoMorphicEffect as te}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as oe}from'../../hooks/use-latest-value.js';import{useSyncRefs as V}from'../../hooks/use-sync-refs.js';import{useDisabled as re}from'../../internal/disabled.js';import{FormFields as Pe}from'../../internal/form-fields.js';import{useProvidedId as ve}from'../../internal/id.js';import{isDisabledReactIssue7711 as ie}from'../../utils/bugs.js';import{Focus as w,FocusResult as ne,focusIn as ae,sortByDomNode as De}from'../../utils/focus-management.js';import{attemptSubmit as Ae}from'../../utils/form.js';import{match as _e}from'../../utils/match.js';import{getOwnerDocument as Ee}from'../../utils/owner.js';import{forwardRefWithAs as K,mergeProps as pe,render as $}from'../../utils/render.js';import{Description as Ge,useDescribedBy as xe,useDescriptions as le}from'../description/description.js';import{Keys as F}from'../keyboard.js';import{Label as Ce,useLabelledBy as he,useLabels as se}from'../label/label.js';var Le=(e=>(e[e.RegisterOption=0]="RegisterOption",e[e.UnregisterOption=1]="UnregisterOption",e))(Le||{});let ke={[0](o,t){let e=[...o.options,{id:t.id,element:t.element,propsRef:t.propsRef}];return{...o,options:De(e,a=>a.element.current)}},[1](o,t){let e=o.options.slice(),a=o.options.findIndex(O=>O.id===t.id);return a===-1?o:(e.splice(a,1),{...o,options:e})}},j=Z(null);j.displayName="RadioGroupDataContext";function J(o){let t=ee(j);if(t===null){let e=new Error(`<${o} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,J),e}return t}let X=Z(null);X.displayName="RadioGroupActionsContext";function z(o){let t=ee(X);if(t===null){let e=new Error(`<${o} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,z),e}return t}function Fe(o,t){return _e(t.type,ke,o,t)}let Ie="div";function Ue(o,t){let e=B(),a=re(),{id:O=`headlessui-radiogroup-${e}`,value:m,form:P,name:i,onChange:f,by:c,disabled:p=a||!1,defaultValue:I,...y}=o,T=be(c),[v,C]=Re(Fe,{options:[]}),n=v.options,[U,h]=se(),[D,L]=le(),A=W(null),M=V(A,t),l=Oe(I),[s,_]=ge(m,f,l),R=x(()=>n.find(r=>!r.propsRef.current.disabled),[n]),b=x(()=>n.some(r=>T(r.propsRef.current.value,s)),[n,s]),d=S(r=>{var u;if(p||T(r,s))return!1;let k=(u=n.find(H=>T(H.propsRef.current.value,r)))==null?void 0:u.propsRef.current;return k!=null&&k.disabled?!1:(_==null||_(r),!0)}),de=S(r=>{let k=A.current;if(!k)return;let u=Ee(k),H=n.filter(g=>g.propsRef.current.disabled===!1).map(g=>g.element.current);switch(r.key){case F.Enter:Ae(r.currentTarget);break;case F.ArrowLeft:case F.ArrowUp:if(r.preventDefault(),r.stopPropagation(),ae(H,w.Previous|w.WrapAround)===ne.Success){let E=n.find(N=>N.element.current===(u==null?void 0:u.activeElement));E&&d(E.propsRef.current.value)}break;case F.ArrowRight:case F.ArrowDown:if(r.preventDefault(),r.stopPropagation(),ae(H,w.Next|w.WrapAround)===ne.Success){let E=n.find(N=>N.element.current===(u==null?void 0:u.activeElement));E&&d(E.propsRef.current.value)}break;case F.Space:{r.preventDefault(),r.stopPropagation();let g=n.find(E=>E.element.current===(u==null?void 0:u.activeElement));g&&d(g.propsRef.current.value)}break}}),q=S(r=>(C({type:0,...r}),()=>C({type:1,id:r.id}))),ue=x(()=>({value:s,firstOption:R,containsCheckedOption:b,disabled:p,compare:T,...v}),[s,R,b,p,T,v]),ce=x(()=>({registerOption:q,change:d}),[q,d]),fe={ref:M,id:O,role:"radiogroup","aria-labelledby":U,"aria-describedby":D,onKeyDown:de},Te=x(()=>({value:s}),[s]),me=ye(()=>{if(l!==void 0)return d(l)},[d,l]);return G.createElement(L,{name:"RadioGroup.Description"},G.createElement(h,{name:"RadioGroup.Label"},G.createElement(X.Provider,{value:ce},G.createElement(j.Provider,{value:ue},i!=null&&G.createElement(Pe,{disabled:p,data:{[i]:s||"on"},overrides:{type:"radio",checked:s!=null},form:P,onReset:me}),$({ourProps:fe,theirProps:y,slot:Te,defaultTag:Ie,name:"RadioGroup"})))))}let Me="div";function Se(o,t){var R;let e=J("RadioGroup.Option"),a=z("RadioGroup.Option"),O=B(),{id:m=`headlessui-radiogroup-option-${O}`,value:P,disabled:i=e.disabled||!1,autoFocus:f=!1,...c}=o,p=W(null),I=V(p,t),[y,T]=se(),[v,C]=le(),n=oe({value:P,disabled:i});te(()=>a.registerOption({id:m,element:p,propsRef:n}),[m,a,p,n]);let U=S(b=>{var d;if(ie(b.currentTarget))return b.preventDefault();a.change(P)&&((d=p.current)==null||d.focus())}),h=((R=e.firstOption)==null?void 0:R.id)===m,{isFocusVisible:D,focusProps:L}=Q({autoFocus:f}),{isHovered:A,hoverProps:M}=Y({isDisabled:i}),l=e.compare(e.value,P),s=pe({ref:I,id:m,role:"radio","aria-checked":l?"true":"false","aria-labelledby":y,"aria-describedby":v,"aria-disabled":i?!0:void 0,tabIndex:(()=>i?-1:l||!e.containsCheckedOption&&h?0:-1)(),onClick:i?void 0:U,autoFocus:f},L,M),_=x(()=>({checked:l,disabled:i,active:D,hover:A,focus:D,autofocus:f}),[l,i,A,D,f]);return G.createElement(C,{name:"RadioGroup.Description"},G.createElement(T,{name:"RadioGroup.Label"},$({ourProps:s,theirProps:c,slot:_,defaultTag:Me,name:"RadioGroup.Option"})))}let He="span";function we(o,t){var R;let e=J("Radio"),a=z("Radio"),O=B(),m=ve(),P=re(),{id:i=m||`headlessui-radio-${O}`,value:f,disabled:c=e.disabled||P||!1,autoFocus:p=!1,...I}=o,y=W(null),T=V(y,t),v=he(),C=xe(),n=oe({value:f,disabled:c});te(()=>a.registerOption({id:i,element:y,propsRef:n}),[i,a,y,n]);let U=S(b=>{var d;if(ie(b.currentTarget))return b.preventDefault();a.change(f)&&((d=y.current)==null||d.focus())}),{isFocusVisible:h,focusProps:D}=Q({autoFocus:p}),{isHovered:L,hoverProps:A}=Y({isDisabled:c}),M=((R=e.firstOption)==null?void 0:R.id)===i,l=e.compare(e.value,f),s=pe({ref:T,id:i,role:"radio","aria-checked":l?"true":"false","aria-labelledby":v,"aria-describedby":C,"aria-disabled":c?!0:void 0,tabIndex:(()=>c?-1:l||!e.containsCheckedOption&&M?0:-1)(),autoFocus:p,onClick:c?void 0:U},D,A),_=x(()=>({checked:l,disabled:c,hover:L,focus:h,autofocus:p}),[l,c,L,h,p]);return $({ourProps:s,theirProps:I,slot:_,defaultTag:He,name:"Radio"})}let Ne=K(Ue),We=K(Se),Be=K(we),Ve=Ce,Ke=Ge,Tt=Object.assign(Ne,{Option:We,Radio:Be,Label:Ve,Description:Ke});export{Be as Radio,Tt as RadioGroup,Ke as RadioGroupDescription,Ve as RadioGroupLabel,We as RadioGroupOption};

@@ -1,4 +0,4 @@

import { type ElementType } from 'react';
import { type ElementType, type Ref } from 'react';
import type { Props } from '../../types.js';
import { type HasDisplayName } from '../../utils/render.js';
import { type HasDisplayName, type RefProp } from '../../utils/render.js';
declare let DEFAULT_SELECT_TAG: "select";

@@ -19,6 +19,7 @@ type SelectRenderPropArg = {

}>;
declare function SelectFn<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag>, ref: Ref<HTMLElement>): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
export interface _internal_ComponentSelect extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag> & RefProp<typeof SelectFn>): JSX.Element;
}
export declare let Select: _internal_ComponentSelect;
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as v}from"@react-aria/focus";import{useHover as A}from"@react-aria/interactions";import{useMemo as g}from"react";import{useActivePress as F}from'../../hooks/use-active-press.js';import{useId as _}from'../../hooks/use-id.js';import{useDisabled as D}from'../../internal/disabled.js';import{useProvidedId as L}from'../../internal/id.js';import{forwardRefWithAs as C,mergeProps as x,render as R}from'../../utils/render.js';import{useDescribedBy as h}from'../description/description.js';import{useLabelledBy as H}from'../label/label.js';let B="select";function G(o,n){var a;let p=_(),d=L(),c=D(),{id:u=d||`headlessui-select-${p}`,disabled:e=c||!1,invalid:t=!1,...f}=o,m=H(),T=h(),{isFocusVisible:l,focusProps:b}=v({autoFocus:(a=o.autoFocus)!=null?a:!1}),{isHovered:r,hoverProps:y}=A({isDisabled:e!=null?e:!1}),{pressed:s,pressProps:E}=F({disabled:e!=null?e:!1}),P=x({ref:n,id:u,"aria-labelledby":m,"aria-describedby":T,"aria-invalid":t?"":void 0,disabled:e||void 0},b,y,E),S=g(()=>{var i;return{disabled:e,invalid:t,hover:r,focus:l,active:s,autofocus:(i=o.autoFocus)!=null?i:!1}},[e,t,r,l,s,o.autoFocus]);return R({ourProps:P,theirProps:f,slot:S,defaultTag:B,name:"Select"})}let $=C(G);export{$ as Select};
"use client";import{useFocusRing as E}from"@react-aria/focus";import{useHover as v}from"@react-aria/interactions";import{useMemo as A}from"react";import{useActivePress as g}from'../../hooks/use-active-press.js';import{useId as _}from'../../hooks/use-id.js';import{useDisabled as D}from'../../internal/disabled.js';import{useProvidedId as F}from'../../internal/id.js';import{forwardRefWithAs as L,mergeProps as R,render as C}from'../../utils/render.js';import{useDescribedBy as x}from'../description/description.js';import{useLabelledBy as h}from'../label/label.js';let H="select";function B(a,i){let p=_(),d=F(),n=D(),{id:c=d||`headlessui-select-${p}`,disabled:e=n||!1,invalid:t=!1,autoFocus:o=!1,...f}=a,m=h(),u=x(),{isFocusVisible:r,focusProps:T}=E({autoFocus:o}),{isHovered:l,hoverProps:b}=v({isDisabled:e}),{pressed:s,pressProps:y}=g({disabled:e}),P=R({ref:i,id:c,"aria-labelledby":m,"aria-describedby":u,"aria-invalid":t?"":void 0,disabled:e||void 0,autoFocus:o},T,b,y),S=A(()=>({disabled:e,invalid:t,hover:l,focus:r,active:s,autofocus:o}),[e,t,l,r,s,o]);return C({ourProps:P,theirProps:f,slot:S,defaultTag:H,name:"Select"})}let $=L(B);export{$ as Select};

@@ -21,3 +21,3 @@ import React, { type ElementType, type Ref } from 'react';

};
type SwitchPropsWeControl = 'aria-checked' | 'aria-describedby' | 'aria-labelledby' | 'role' | 'tabIndex';
type SwitchPropsWeControl = 'aria-checked' | 'aria-describedby' | 'aria-labelledby' | 'role';
export type SwitchProps<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG> = Props<TTag, SwitchRenderPropArg, SwitchPropsWeControl, {

@@ -32,2 +32,3 @@ checked?: boolean;

disabled?: boolean;
tabIndex?: number;
}>;

@@ -45,2 +46,3 @@ declare function SwitchFn<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG>(props: SwitchProps<TTag>, ref: Ref<HTMLButtonElement>): React.JSX.Element;

}
/** @deprecated use `<Field>` instead of `<SwitchGroup>` */
export declare let SwitchGroup: _internal_ComponentSwitchGroup;

@@ -52,2 +54,3 @@ /** @deprecated use `<Label>` instead of `<SwitchLabel>` */

export declare let Switch: _internal_ComponentSwitch & {
/** @deprecated use `<Field>` instead of `<Switch.Group>` */
Group: _internal_ComponentSwitchGroup;

@@ -54,0 +57,0 @@ /** @deprecated use `<Label>` instead of `<Switch.Label>` */

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as j}from"@react-aria/focus";import{useHover as V}from"@react-aria/interactions";import l,{Fragment as $,createContext as q,useCallback as z,useContext as Q,useMemo as C,useRef as Y,useState as L}from"react";import{useActivePress as Z}from'../../hooks/use-active-press.js';import{useControllable as ee}from'../../hooks/use-controllable.js';import{useDisposables as te}from'../../hooks/use-disposables.js';import{useEvent as m}from'../../hooks/use-event.js';import{useId as oe}from'../../hooks/use-id.js';import{useResolveButtonType as re}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as ne}from'../../hooks/use-sync-refs.js';import{useDisabled as le}from'../../internal/disabled.js';import{FormFields as ie}from'../../internal/form-fields.js';import{useProvidedId as ae}from'../../internal/id.js';import{isDisabledReactIssue7711 as se}from'../../utils/bugs.js';import{attemptSubmit as pe}from'../../utils/form.js';import{forwardRefWithAs as ce,mergeProps as ue,render as x}from'../../utils/render.js';import{Description as me,useDescribedBy as de,useDescriptions as fe}from'../description/description.js';import{Keys as G}from'../keyboard.js';import{Label as he,useLabelledBy as Te,useLabels as be}from'../label/label.js';let b=q(null);b.displayName="GroupContext";let ye=$;function Se(o){var i;let[r,s]=L(null),[d,f]=be(),[h,t]=fe(),p=C(()=>({switch:r,setSwitch:s}),[r,s]),c={},T=o;return l.createElement(t,{name:"Switch.Description",value:h},l.createElement(f,{name:"Switch.Label",value:d,props:{htmlFor:(i=p.switch)==null?void 0:i.id,onClick(u){r&&(u.currentTarget instanceof HTMLLabelElement&&u.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},l.createElement(b.Provider,{value:p},x({ourProps:c,theirProps:T,slot:{},defaultTag:ye,name:"Switch.Group"}))))}let we="button";function _e(o,r){var v;let s=oe(),d=ae(),f=le(),{id:h=d||`headlessui-switch-${s}`,disabled:t=f||!1,checked:p,defaultChecked:c=!1,onChange:T,name:i,value:u,form:F,...R}=o,y=Q(b),S=Y(null),A=ne(S,r,y===null?null:y.setSwitch),[a,n]=ee(p,T,c),k=te(),[w,_]=L(!1),P=m(()=>{_(!0),n==null||n(!a),k.nextFrame(()=>{_(!1)})}),H=m(e=>{if(se(e.currentTarget))return e.preventDefault();e.preventDefault(),P()}),M=m(e=>{e.key===G.Space?(e.preventDefault(),P()):e.key===G.Enter&&pe(e.currentTarget)}),U=m(e=>e.preventDefault()),B=Te(),I=de(),{isFocusVisible:E,focusProps:K}=j({autoFocus:(v=o.autoFocus)!=null?v:!1}),{isHovered:g,hoverProps:W}=V({isDisabled:t!=null?t:!1}),{pressed:D,pressProps:O}=Z({disabled:t!=null?t:!1}),N=C(()=>{var e;return{checked:a,disabled:t,hover:g,focus:E,active:D,autofocus:(e=o.autoFocus)!=null?e:!1,changing:w}},[a,g,E,D,t,w,o.autoFocus]),J=ue({id:h,ref:A,role:"switch",type:re(o,S),tabIndex:0,"aria-checked":a,"aria-labelledby":B,"aria-describedby":I,disabled:t,onClick:H,onKeyUp:M,onKeyPress:U},K,W,O),X=z(()=>n==null?void 0:n(c),[n]);return l.createElement(l.Fragment,null,i!=null&&l.createElement(ie,{data:a?{[i]:u||"on"}:{},form:F,onReset:X}),x({ourProps:J,theirProps:R,slot:N,defaultTag:we,name:"Switch"}))}let Pe=ce(_e),Ee=Se,ge=he,De=me,Xe=Object.assign(Pe,{Group:Ee,Label:ge,Description:De});export{Xe as Switch,De as SwitchDescription,Ee as SwitchGroup,ge as SwitchLabel};
"use client";import{useFocusRing as $}from"@react-aria/focus";import{useHover as q}from"@react-aria/interactions";import i,{Fragment as z,createContext as Q,useCallback as Y,useContext as Z,useMemo as L,useRef as ee,useState as G}from"react";import{useActivePress as te}from'../../hooks/use-active-press.js';import{useControllable as oe}from'../../hooks/use-controllable.js';import{useDefaultValue as re}from'../../hooks/use-default-value.js';import{useDisposables as ne}from'../../hooks/use-disposables.js';import{useEvent as m}from'../../hooks/use-event.js';import{useId as le}from'../../hooks/use-id.js';import{useResolveButtonType as ie}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as ae}from'../../hooks/use-sync-refs.js';import{useDisabled as se}from'../../internal/disabled.js';import{FormFields as pe}from'../../internal/form-fields.js';import{useProvidedId as ce}from'../../internal/id.js';import{isDisabledReactIssue7711 as ue}from'../../utils/bugs.js';import{attemptSubmit as de}from'../../utils/form.js';import{forwardRefWithAs as me,mergeProps as fe,render as R}from'../../utils/render.js';import{Description as be,useDescribedBy as he,useDescriptions as Te}from'../description/description.js';import{Keys as A}from'../keyboard.js';import{Label as ye,useLabelledBy as Se,useLabels as we}from'../label/label.js';let S=Q(null);S.displayName="GroupContext";let _e=z;function Pe(n){var a;let[o,p]=G(null),[f,b]=we(),[h,t]=Te(),c=L(()=>({switch:o,setSwitch:p}),[o,p]),T={},y=n;return i.createElement(t,{name:"Switch.Description",value:h},i.createElement(b,{name:"Switch.Label",value:f,props:{htmlFor:(a=c.switch)==null?void 0:a.id,onClick(u){o&&(u.currentTarget instanceof HTMLLabelElement&&u.preventDefault(),o.click(),o.focus({preventScroll:!0}))}}},i.createElement(S.Provider,{value:c},R({ourProps:T,theirProps:y,slot:{},defaultTag:_e,name:"Switch.Group"}))))}let Ee="button";function De(n,o){var C;let p=le(),f=ce(),b=se(),{id:h=f||`headlessui-switch-${p}`,disabled:t=b||!1,checked:c,defaultChecked:T,onChange:y,name:a,value:u,form:F,autoFocus:d=!1,...k}=n,w=Z(S),_=ee(null),H=ae(_,o,w===null?null:w.setSwitch),l=re(T),[s,r]=oe(c,y,l!=null?l:!1),M=ne(),[P,E]=G(!1),D=m(()=>{E(!0),r==null||r(!s),M.nextFrame(()=>{E(!1)})}),U=m(e=>{if(ue(e.currentTarget))return e.preventDefault();e.preventDefault(),D()}),I=m(e=>{e.key===A.Space?(e.preventDefault(),D()):e.key===A.Enter&&de(e.currentTarget)}),B=m(e=>e.preventDefault()),K=Se(),W=he(),{isFocusVisible:g,focusProps:O}=$({autoFocus:d}),{isHovered:v,hoverProps:N}=q({isDisabled:t}),{pressed:x,pressProps:J}=te({disabled:t}),V=L(()=>({checked:s,disabled:t,hover:v,focus:g,active:x,autofocus:d,changing:P}),[s,v,g,x,t,P,d]),X=fe({id:h,ref:H,role:"switch",type:ie(n,_),tabIndex:n.tabIndex===-1?0:(C=n.tabIndex)!=null?C:0,"aria-checked":s,"aria-labelledby":K,"aria-describedby":W,disabled:t||void 0,autoFocus:d,onClick:U,onKeyUp:I,onKeyPress:B},O,N,J),j=Y(()=>{if(l!==void 0)return r==null?void 0:r(l)},[r,l]);return i.createElement(i.Fragment,null,a!=null&&i.createElement(pe,{disabled:t,data:{[a]:u||"on"},overrides:{type:"checkbox",checked:s},form:F,onReset:j}),R({ourProps:X,theirProps:k,slot:V,defaultTag:Ee,name:"Switch"}))}let ge=me(De),ve=Pe,xe=ye,Ce=be,qe=Object.assign(ge,{Group:ve,Label:xe,Description:Ce});export{qe as Switch,Ce as SwitchDescription,ve as SwitchGroup,xe as SwitchLabel};
import React, { type ElementType, type Ref } from 'react';
import type { Props } from '../../types.js';
import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js';
declare let DEFAULT_TABS_TAG: React.ExoticComponent<{
children?: React.ReactNode;
}>;
declare let DEFAULT_TABS_TAG: "div";
type TabsRenderPropArg = {

@@ -33,2 +31,3 @@ selectedIndex: number;

selected: boolean;
disabled: boolean;
};

@@ -50,2 +49,3 @@ type TabPropsWeControl = 'aria-controls' | 'aria-selected' | 'role' | 'tabIndex';

selected: boolean;
focus: boolean;
};

@@ -79,7 +79,11 @@ type PanelPropsWeControl = 'role' | 'aria-labelledby';

export declare let Tab: _internal_ComponentTab & {
/** @deprecated use `<TabGroup>` instead of `<Tab.Group>` */
Group: _internal_ComponentTabGroup;
/** @deprecated use `<TabList>` instead of `<Tab.List>` */
List: _internal_ComponentTabList;
/** @deprecated use `<TabPanels>` instead of `<Tab.Panels>` */
Panels: _internal_ComponentTabPanels;
/** @deprecated use `<TabPanel>` instead of `<Tab.Panel>` */
Panel: _internal_ComponentTabPanel;
};
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as Te}from"@react-aria/focus";import{useHover as de}from"@react-aria/interactions";import M,{Fragment as ce,createContext as re,useContext as ae,useMemo as D,useReducer as fe,useRef as X}from"react";import{useActivePress as be}from'../../hooks/use-active-press.js';import{useEvent as F}from'../../hooks/use-event.js';import{useId as oe}from'../../hooks/use-id.js';import{useIsoMorphicEffect as N}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as $}from'../../hooks/use-latest-value.js';import{useResolveButtonType as me}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as G}from'../../hooks/use-sync-refs.js';import{FocusSentinel as Pe}from'../../internal/focus-sentinel.js';import{Hidden as ye}from'../../internal/hidden.js';import{Focus as m,FocusResult as B,focusIn as I,sortByDomNode as w}from'../../utils/focus-management.js';import{match as U}from'../../utils/match.js';import{microTask as xe}from'../../utils/micro-task.js';import{getOwnerDocument as ge}from'../../utils/owner.js';import{RenderFeatures as le,forwardRefWithAs as H,mergeProps as Ae,render as k}from'../../utils/render.js';import{StableCollection as Ee,useStableCollectionIndex as se}from'../../utils/stable-collection.js';import{Keys as P}from'../keyboard.js';var Le=(t=>(t[t.Forwards=0]="Forwards",t[t.Backwards=1]="Backwards",t))(Le||{}),Re=(l=>(l[l.Less=-1]="Less",l[l.Equal=0]="Equal",l[l.Greater=1]="Greater",l))(Re||{}),_e=(r=>(r[r.SetSelectedIndex=0]="SetSelectedIndex",r[r.RegisterTab=1]="RegisterTab",r[r.UnregisterTab=2]="UnregisterTab",r[r.RegisterPanel=3]="RegisterPanel",r[r.UnregisterPanel=4]="UnregisterPanel",r))(_e||{});let De={[0](e,n){var u;let t=w(e.tabs,T=>T.current),l=w(e.panels,T=>T.current),s=t.filter(T=>{var a;return!((a=T.current)!=null&&a.hasAttribute("disabled"))}),r={...e,tabs:t,panels:l};if(n.index<0||n.index>t.length-1){let T=U(Math.sign(n.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>U(Math.sign(n.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(s.length===0)return r;let a=U(T,{[0]:()=>t.indexOf(s[0]),[1]:()=>t.indexOf(s[s.length-1])});return{...r,selectedIndex:a===-1?e.selectedIndex:a}}let i=t.slice(0,n.index),f=[...t.slice(n.index),...i].find(T=>s.includes(T));if(!f)return r;let c=(u=t.indexOf(f))!=null?u:e.selectedIndex;return c===-1&&(c=e.selectedIndex),{...r,selectedIndex:c}},[1](e,n){var r;if(e.tabs.includes(n.tab))return e;let t=e.tabs[e.selectedIndex],l=w([...e.tabs,n.tab],i=>i.current),s=(r=l.indexOf(t))!=null?r:e.selectedIndex;return s===-1&&(s=e.selectedIndex),{...e,tabs:l,selectedIndex:s}},[2](e,n){return{...e,tabs:e.tabs.filter(t=>t!==n.tab)}},[3](e,n){return e.panels.includes(n.panel)?e:{...e,panels:w([...e.panels,n.panel],t=>t.current)}},[4](e,n){return{...e,panels:e.panels.filter(t=>t!==n.panel)}}},q=re(null);q.displayName="TabsDataContext";function h(e){let n=ae(q);if(n===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,h),t}return n}let z=re(null);z.displayName="TabsActionsContext";function V(e){let n=ae(z);if(n===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,V),t}return n}function Fe(e,n){return U(n.type,De,e,n)}let Se=ce;function Ie(e,n){let{defaultIndex:t=0,vertical:l=!1,manual:s=!1,onChange:r,selectedIndex:i=null,...R}=e;const f=l?"vertical":"horizontal",c=s?"manual":"auto";let u=i!==null,T=G(n),[a,d]=fe(Fe,{selectedIndex:i!=null?i:t,tabs:[],panels:[]}),y=D(()=>({selectedIndex:a.selectedIndex}),[a.selectedIndex]),b=$(r||(()=>{})),x=$(a.tabs),g=D(()=>({orientation:f,activation:c,...a}),[f,c,a]),S=F(p=>(d({type:1,tab:p}),()=>d({type:2,tab:p}))),L=F(p=>(d({type:3,panel:p}),()=>d({type:4,panel:p}))),_=F(p=>{v.current!==p&&b.current(p),u||d({type:0,index:p})}),v=$(u?e.selectedIndex:a.selectedIndex),O=D(()=>({registerTab:S,registerPanel:L,change:_}),[]);N(()=>{d({type:0,index:i!=null?i:t})},[i]),N(()=>{if(v.current===void 0||a.tabs.length<=0)return;let p=w(a.tabs,A=>A.current);p.some((A,j)=>a.tabs[j]!==A)&&_(p.indexOf(a.tabs[v.current]))});let W={ref:T};return M.createElement(Ee,null,M.createElement(z.Provider,{value:O},M.createElement(q.Provider,{value:g},g.tabs.length<=0&&M.createElement(Pe,{onFocus:()=>{var p,C;for(let A of x.current)if(((p=A.current)==null?void 0:p.tabIndex)===0)return(C=A.current)==null||C.focus(),!0;return!1}}),k({ourProps:W,theirProps:R,slot:y,defaultTag:Se,name:"Tabs"}))))}let he="div";function ve(e,n){let{orientation:t,selectedIndex:l}=h("Tab.List"),s=G(n),r=D(()=>({selectedIndex:l}),[l]);return k({ourProps:{ref:s,role:"tablist","aria-orientation":t},theirProps:e,slot:r,defaultTag:he,name:"Tabs.List"})}let Ce="button";function Me(e,n){var Q,Y,Z,ee,te;let t=oe(),{id:l=`headlessui-tabs-tab-${t}`,...s}=e,{orientation:r,activation:i,selectedIndex:R,tabs:f,panels:c}=h("Tab"),u=V("Tab"),T=h("Tab"),a=X(null),d=G(a,n);N(()=>u.registerTab(a),[u,a]);let y=se("tabs"),b=f.indexOf(a);b===-1&&(b=y);let x=b===R,g=F(o=>{var K;let E=o();if(E===B.Success&&i==="auto"){let J=(K=ge(a))==null?void 0:K.activeElement,ne=T.tabs.findIndex(ue=>ue.current===J);ne!==-1&&u.change(ne)}return E}),S=F(o=>{let E=f.map(J=>J.current).filter(Boolean);if(o.key===P.Space||o.key===P.Enter){o.preventDefault(),o.stopPropagation(),u.change(b);return}switch(o.key){case P.Home:case P.PageUp:return o.preventDefault(),o.stopPropagation(),g(()=>I(E,m.First));case P.End:case P.PageDown:return o.preventDefault(),o.stopPropagation(),g(()=>I(E,m.Last))}if(g(()=>U(r,{vertical(){return o.key===P.ArrowUp?I(E,m.Previous|m.WrapAround):o.key===P.ArrowDown?I(E,m.Next|m.WrapAround):B.Error},horizontal(){return o.key===P.ArrowLeft?I(E,m.Previous|m.WrapAround):o.key===P.ArrowRight?I(E,m.Next|m.WrapAround):B.Error}}))===B.Success)return o.preventDefault()}),L=X(!1),_=F(()=>{var o;L.current||(L.current=!0,(o=a.current)==null||o.focus({preventScroll:!0}),u.change(b),xe(()=>{L.current=!1}))}),v=F(o=>{o.preventDefault()}),{isFocusVisible:O,focusProps:W}=Te({autoFocus:(Q=e.autoFocus)!=null?Q:!1}),{isHovered:p,hoverProps:C}=de({isDisabled:(Y=e.disabled)!=null?Y:!1}),{pressed:A,pressProps:j}=be({disabled:(Z=e.disabled)!=null?Z:!1}),ie=D(()=>{var o;return{selected:x,hover:p,active:A,focus:O,autofocus:(o=e.autoFocus)!=null?o:!1}},[x,p,O,A,e.autoFocus]),pe=Ae({ref:d,onKeyDown:S,onMouseDown:v,onClick:_,id:l,role:"tab",type:me(e,a),"aria-controls":(te=(ee=c[b])==null?void 0:ee.current)==null?void 0:te.id,"aria-selected":x,tabIndex:x?0:-1},W,C,j);return k({ourProps:pe,theirProps:s,slot:ie,defaultTag:Ce,name:"Tabs.Tab"})}let Ge="div";function we(e,n){let{selectedIndex:t}=h("Tab.Panels"),l=G(n),s=D(()=>({selectedIndex:t}),[t]);return k({ourProps:{ref:l},theirProps:e,slot:s,defaultTag:Ge,name:"Tabs.Panels"})}let Ue="div",He=le.RenderStrategy|le.Static;function ke(e,n){var g,S,L,_;let t=oe(),{id:l=`headlessui-tabs-panel-${t}`,tabIndex:s=0,...r}=e,{selectedIndex:i,tabs:R,panels:f}=h("Tab.Panel"),c=V("Tab.Panel"),u=X(null),T=G(u,n);N(()=>c.registerPanel(u),[c,u]);let a=se("panels"),d=f.indexOf(u);d===-1&&(d=a);let y=d===i,b=D(()=>({selected:y}),[y]),x={ref:T,id:l,role:"tabpanel","aria-labelledby":(S=(g=R[d])==null?void 0:g.current)==null?void 0:S.id,tabIndex:y?s:-1};return!y&&((L=r.unmount)==null||L)&&!((_=r.static)!=null&&_)?M.createElement(ye,{as:"span","aria-hidden":"true",...x}):k({ourProps:x,theirProps:r,slot:b,defaultTag:Ue,features:He,visible:y,name:"Tabs.Panel"})}let Oe=H(Me),Ne=H(Ie),Be=H(ve),We=H(we),je=H(ke),pt=Object.assign(Oe,{Group:Ne,List:Be,Panels:We,Panel:je});export{pt as Tab,Ne as TabGroup,Be as TabList,je as TabPanel,We as TabPanels};
"use client";import{useFocusRing as te}from"@react-aria/focus";import{useHover as de}from"@react-aria/interactions";import G,{createContext as re,useContext as ne,useMemo as D,useReducer as ce,useRef as q}from"react";import{useActivePress as fe}from'../../hooks/use-active-press.js';import{useEvent as S}from'../../hooks/use-event.js';import{useId as ae}from'../../hooks/use-id.js';import{useIsoMorphicEffect as W}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as j}from'../../hooks/use-latest-value.js';import{useResolveButtonType as be}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as U}from'../../hooks/use-sync-refs.js';import{FocusSentinel as me}from'../../internal/focus-sentinel.js';import{Hidden as Pe}from'../../internal/hidden.js';import{Focus as P,FocusResult as K,focusIn as v,sortByDomNode as H}from'../../utils/focus-management.js';import{match as w}from'../../utils/match.js';import{microTask as ye}from'../../utils/micro-task.js';import{getOwnerDocument as xe}from'../../utils/owner.js';import{RenderFeatures as oe,forwardRefWithAs as O,mergeProps as le,render as N}from'../../utils/render.js';import{StableCollection as ge,useStableCollectionIndex as se}from'../../utils/stable-collection.js';import{Keys as y}from'../keyboard.js';var Ae=(t=>(t[t.Forwards=0]="Forwards",t[t.Backwards=1]="Backwards",t))(Ae||{}),Ee=(o=>(o[o.Less=-1]="Less",o[o.Equal=0]="Equal",o[o.Greater=1]="Greater",o))(Ee||{}),Re=(n=>(n[n.SetSelectedIndex=0]="SetSelectedIndex",n[n.RegisterTab=1]="RegisterTab",n[n.UnregisterTab=2]="UnregisterTab",n[n.RegisterPanel=3]="RegisterPanel",n[n.UnregisterPanel=4]="UnregisterPanel",n))(Re||{});let Le={[0](e,r){var c;let t=H(e.tabs,T=>T.current),o=H(e.panels,T=>T.current),a=t.filter(T=>{var d;return!((d=T.current)!=null&&d.hasAttribute("disabled"))}),n={...e,tabs:t,panels:o};if(r.index<0||r.index>t.length-1){let T=w(Math.sign(r.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>w(Math.sign(r.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(a.length===0)return n;let d=w(T,{[0]:()=>t.indexOf(a[0]),[1]:()=>t.indexOf(a[a.length-1])});return{...n,selectedIndex:d===-1?e.selectedIndex:d}}let u=t.slice(0,r.index),x=[...t.slice(r.index),...u].find(T=>a.includes(T));if(!x)return n;let f=(c=t.indexOf(x))!=null?c:e.selectedIndex;return f===-1&&(f=e.selectedIndex),{...n,selectedIndex:f}},[1](e,r){if(e.tabs.includes(r.tab))return e;let t=e.tabs[e.selectedIndex],o=H([...e.tabs,r.tab],n=>n.current),a=e.selectedIndex;return e.info.current.isControlled||(a=o.indexOf(t),a===-1&&(a=e.selectedIndex)),{...e,tabs:o,selectedIndex:a}},[2](e,r){return{...e,tabs:e.tabs.filter(t=>t!==r.tab)}},[3](e,r){return e.panels.includes(r.panel)?e:{...e,panels:H([...e.panels,r.panel],t=>t.current)}},[4](e,r){return{...e,panels:e.panels.filter(t=>t!==r.panel)}}},z=re(null);z.displayName="TabsDataContext";function C(e){let r=ne(z);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,C),t}return r}let V=re(null);V.displayName="TabsActionsContext";function Q(e){let r=ne(V);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Q),t}return r}function _e(e,r){return w(r.type,Le,e,r)}let De="div";function Se(e,r){let{defaultIndex:t=0,vertical:o=!1,manual:a=!1,onChange:n,selectedIndex:u=null,..._}=e;const x=o?"vertical":"horizontal",f=a?"manual":"auto";let c=u!==null,T=j({isControlled:c}),d=U(r),[i,s]=ce(_e,{info:T,selectedIndex:u!=null?u:t,tabs:[],panels:[]}),F=D(()=>({selectedIndex:i.selectedIndex}),[i.selectedIndex]),M=j(n||(()=>{})),b=j(i.tabs),m=D(()=>({orientation:x,activation:f,...i}),[x,f,i]),E=S(p=>(s({type:1,tab:p}),()=>s({type:2,tab:p}))),I=S(p=>(s({type:3,panel:p}),()=>s({type:4,panel:p}))),g=S(p=>{R.current!==p&&M.current(p),c||s({type:0,index:p})}),R=j(c?e.selectedIndex:i.selectedIndex),J=D(()=>({registerTab:E,registerPanel:I,change:g}),[]);W(()=>{s({type:0,index:u!=null?u:t})},[u]),W(()=>{if(R.current===void 0||i.tabs.length<=0)return;let p=H(i.tabs,L=>L.current);p.some((L,B)=>i.tabs[B]!==L)&&g(p.indexOf(i.tabs[R.current]))});let k={ref:d};return G.createElement(ge,null,G.createElement(V.Provider,{value:J},G.createElement(z.Provider,{value:m},m.tabs.length<=0&&G.createElement(me,{onFocus:()=>{var p,h;for(let L of b.current)if(((p=L.current)==null?void 0:p.tabIndex)===0)return(h=L.current)==null||h.focus(),!0;return!1}}),N({ourProps:k,theirProps:_,slot:F,defaultTag:De,name:"Tabs"}))))}let Fe="div";function Ie(e,r){let{orientation:t,selectedIndex:o}=C("Tab.List"),a=U(r),n=D(()=>({selectedIndex:o}),[o]);return N({ourProps:{ref:a,role:"tablist","aria-orientation":t},theirProps:e,slot:n,defaultTag:Fe,name:"Tabs.List"})}let he="button";function ve(e,r){var Y,Z;let t=ae(),{id:o=`headlessui-tabs-tab-${t}`,disabled:a=!1,autoFocus:n=!1,...u}=e,{orientation:_,activation:x,selectedIndex:f,tabs:c,panels:T}=C("Tab"),d=Q("Tab"),i=C("Tab"),s=q(null),F=U(s,r);W(()=>d.registerTab(s),[d,s]);let M=se("tabs"),b=c.indexOf(s);b===-1&&(b=M);let m=b===f,E=S(l=>{var X;let A=l();if(A===K.Success&&x==="auto"){let $=(X=xe(s))==null?void 0:X.activeElement,ee=i.tabs.findIndex(Te=>Te.current===$);ee!==-1&&d.change(ee)}return A}),I=S(l=>{let A=c.map($=>$.current).filter(Boolean);if(l.key===y.Space||l.key===y.Enter){l.preventDefault(),l.stopPropagation(),d.change(b);return}switch(l.key){case y.Home:case y.PageUp:return l.preventDefault(),l.stopPropagation(),E(()=>v(A,P.First));case y.End:case y.PageDown:return l.preventDefault(),l.stopPropagation(),E(()=>v(A,P.Last))}if(E(()=>w(_,{vertical(){return l.key===y.ArrowUp?v(A,P.Previous|P.WrapAround):l.key===y.ArrowDown?v(A,P.Next|P.WrapAround):K.Error},horizontal(){return l.key===y.ArrowLeft?v(A,P.Previous|P.WrapAround):l.key===y.ArrowRight?v(A,P.Next|P.WrapAround):K.Error}}))===K.Success)return l.preventDefault()}),g=q(!1),R=S(()=>{var l;g.current||(g.current=!0,(l=s.current)==null||l.focus({preventScroll:!0}),d.change(b),ye(()=>{g.current=!1}))}),J=S(l=>{l.preventDefault()}),{isFocusVisible:k,focusProps:p}=te({autoFocus:n}),{isHovered:h,hoverProps:L}=de({isDisabled:a}),{pressed:B,pressProps:ie}=fe({disabled:a}),pe=D(()=>({selected:m,hover:h,active:B,focus:k,autofocus:n,disabled:a}),[m,h,k,B,n,a]),ue=le({ref:F,onKeyDown:I,onMouseDown:J,onClick:R,id:o,role:"tab",type:be(e,s),"aria-controls":(Z=(Y=T[b])==null?void 0:Y.current)==null?void 0:Z.id,"aria-selected":m,tabIndex:m?0:-1,disabled:a||void 0,autoFocus:n},p,L,ie);return N({ourProps:ue,theirProps:u,slot:pe,defaultTag:he,name:"Tabs.Tab"})}let Ce="div";function Me(e,r){let{selectedIndex:t}=C("Tab.Panels"),o=U(r),a=D(()=>({selectedIndex:t}),[t]);return N({ourProps:{ref:o},theirProps:e,slot:a,defaultTag:Ce,name:"Tabs.Panels"})}let Ge="div",Ue=oe.RenderStrategy|oe.Static;function He(e,r){var E,I,g,R;let t=ae(),{id:o=`headlessui-tabs-panel-${t}`,tabIndex:a=0,...n}=e,{selectedIndex:u,tabs:_,panels:x}=C("Tab.Panel"),f=Q("Tab.Panel"),c=q(null),T=U(c,r);W(()=>f.registerPanel(c),[f,c]);let d=se("panels"),i=x.indexOf(c);i===-1&&(i=d);let s=i===u,{isFocusVisible:F,focusProps:M}=te(),b=D(()=>({selected:s,focus:F}),[s,F]),m=le({ref:T,id:o,role:"tabpanel","aria-labelledby":(I=(E=_[i])==null?void 0:E.current)==null?void 0:I.id,tabIndex:s?a:-1},M);return!s&&((g=n.unmount)==null||g)&&!((R=n.static)!=null&&R)?G.createElement(Pe,{as:"span","aria-hidden":"true",...m}):N({ourProps:m,theirProps:n,slot:b,defaultTag:Ge,features:Ue,visible:s,name:"Tabs.Panel"})}let we=O(ve),Oe=O(Se),Ne=O(Ie),ke=O(Me),Be=O(He),st=Object.assign(we,{Group:Oe,List:Ne,Panels:ke,Panel:Be});export{st as Tab,Oe as TabGroup,Ne as TabList,Be as TabPanel,ke as TabPanels};

@@ -1,4 +0,4 @@

import { type ElementType } from 'react';
import { type ElementType, type Ref } from 'react';
import type { Props } from '../../types.js';
import { type HasDisplayName } from '../../utils/render.js';
import { type HasDisplayName, type RefProp } from '../../utils/render.js';
declare let DEFAULT_TEXTAREA_TAG: "textarea";

@@ -18,6 +18,7 @@ type TextareaRenderPropArg = {

}>;
declare function TextareaFn<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag>, ref: Ref<HTMLElement>): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
export interface _internal_ComponentTextarea extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag> & RefProp<typeof TextareaFn>): JSX.Element;
}
export declare let Textarea: _internal_ComponentTextarea;
export {};

@@ -1,1 +0,1 @@

"use client";import{useFocusRing as A}from"@react-aria/focus";import{useHover as E}from"@react-aria/interactions";import{useMemo as P}from"react";import{useId as g}from'../../hooks/use-id.js';import{useDisabled as v}from'../../internal/disabled.js';import{useProvidedId as F}from'../../internal/id.js';import{forwardRefWithAs as _,mergeProps as R,render as D}from'../../utils/render.js';import{useDescribedBy as h}from'../description/description.js';import{useLabelledBy as L}from'../label/label.js';let H="textarea";function X(a,i){var s;let n=g(),d=F(),T=v(),{id:p=d||`headlessui-textarea-${n}`,disabled:e=T||!1,invalid:o=!1,...u}=a,f=L(),m=h(),{isFocusVisible:r,focusProps:b}=A({autoFocus:(s=a.autoFocus)!=null?s:!1}),{isHovered:t,hoverProps:y}=E({isDisabled:e!=null?e:!1}),x=R({ref:i,id:p,"aria-labelledby":f,"aria-describedby":m,"aria-invalid":o?"":void 0,disabled:e||void 0},b,y),c=P(()=>{var l;return{disabled:e,invalid:o,hover:t,focus:r,autofocus:(l=a.autoFocus)!=null?l:!1}},[e,o,t,r,a.autoFocus]);return D({ourProps:x,theirProps:u,slot:c,defaultTag:H,name:"Textarea"})}let k=_(X);export{k as Textarea};
"use client";import{useFocusRing as A}from"@react-aria/focus";import{useHover as E}from"@react-aria/interactions";import{useMemo as P}from"react";import{useId as c}from'../../hooks/use-id.js';import{useDisabled as R}from'../../internal/disabled.js';import{useProvidedId as g}from'../../internal/id.js';import{forwardRefWithAs as v,mergeProps as _,render as D}from'../../utils/render.js';import{useDescribedBy as F}from'../description/description.js';import{useLabelledBy as h}from'../label/label.js';let L="textarea";function H(s,l){let i=c(),p=g(),d=R(),{id:n=p||`headlessui-textarea-${i}`,disabled:e=d||!1,autoFocus:r=!1,invalid:a=!1,...T}=s,f=h(),m=F(),{isFocused:o,focusProps:u}=A({autoFocus:r}),{isHovered:t,hoverProps:b}=E({isDisabled:e}),y=_({ref:l,id:n,"aria-labelledby":f,"aria-describedby":m,"aria-invalid":a?"":void 0,disabled:e||void 0,autoFocus:r},u,b),x=P(()=>({disabled:e,invalid:a,hover:t,focus:o,autofocus:r}),[e,a,t,o,r]);return D({ourProps:y,theirProps:T,slot:x,defaultTag:L,name:"Textarea"})}let w=v(H);export{w as Textarea};

@@ -1,1 +0,1 @@

"use client";var J=Object.defineProperty;var X=(o,e,t)=>e in o?J(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var f=(o,e,t)=>(X(o,typeof e!="symbol"?e+"":e,t),t);import{useFocusRing as $}from"@react-aria/focus";import{useHover as j}from"@react-aria/interactions";import y,{Fragment as E,createContext as G,useContext as O,useEffect as q,useId as z,useMemo as P,useReducer as Q,useRef as U,useSyncExternalStore as Y}from"react";import{useDisposables as Z}from'../../hooks/use-disposables.js';import{useEvent as a}from'../../hooks/use-event.js';import{useSyncRefs as R}from'../../hooks/use-sync-refs.js';import{FloatingProvider as ee,useFloatingPanel as te,useFloatingReference as oe}from'../../internal/floating.js';import{State as V,useOpenClosed as ie}from'../../internal/open-closed.js';import{match as p}from'../../utils/match.js';import{RenderFeatures as N,forwardRefWithAs as I,mergeProps as ne,render as F}from'../../utils/render.js';import{Description as k,useDescribedBy as re,useDescriptions as le}from'../description/description.js';import{Keys as H}from'../keyboard.js';import{Portal as ae}from'../portal/portal.js';var pe=(i=>(i[i.Hidden=0]="Hidden",i[i.Initiated=1]="Initiated",i[i.Visible=2]="Visible",i[i.Hiding=3]="Hiding",i))(pe||{}),se=(t=>(t[t.Delayed=0]="Delayed",t[t.Immediate=1]="Immediate",t))(se||{});class Te{constructor(){f(this,"_state",null);f(this,"_listeners",[]);f(this,"subscribe",e=>(this._listeners.push(e),()=>{this._listeners=this._listeners.filter(t=>t!==e)}));f(this,"getSnapshot",()=>this._state);f(this,"getServerSnapshot",()=>this._state);f(this,"setTooltipId",e=>{this._state!==e&&(this._state=e,this._listeners.forEach(t=>t(e)))})}}let S=new Te;var de=(t=>(t[t.ShowTooltip=0]="ShowTooltip",t[t.HideTooltip=1]="HideTooltip",t))(de||{});let ue={[0](o,e){return{...o,tooltipState:p(o.tooltipState,{[0]:p(e.when,{[1]:2,[0]:1}),[1]:p(e.when,{[1]:2,[0]:1}),[2]:2,[3]:2})}},[1](o,e){return{...o,tooltipState:p(o.tooltipState,{[0]:0,[1]:0,[2]:p(e.when,{[1]:0,[0]:3}),[3]:p(e.when,{[1]:0,[0]:3})})}}},x=G(null);x.displayName="TooltipActionsContext";function B(o){let e=O(x);if(e===null){let t=new Error(`<${o} /> is missing a parent <Tooltip /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,B),t}return e}let W=G(null);W.displayName="TooltipDataContext";function w(o){let e=O(W);if(e===null){let t=new Error(`<${o} /> is missing a parent <Tooltip /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,w),t}return e}function me(o,e){return p(e.type,ue,o,e)}let fe=E;function ce(o,e){let{id:t=`headlessui-tooltip-${z()}`,showDelayMs:s=750,hideDelayMs:i=300,...c}=o,n=Y(S.subscribe,S.getSnapshot,S.getServerSnapshot),[r,d]=Q(me,{id:t,tooltipState:0}),[g,u]=le(),T=Z();q(()=>{T.dispose(),p(r.tooltipState,{[0](){},[1](){T.setTimeout(()=>m(1),s)},[2](){},[3](){T.setTimeout(()=>h(1),i)}})},[T,r.tooltipState,s,i]);let m=a(l=>{l===0&&n!==null&&n!==t&&(l=1),l===1&&S.setTooltipId(t),d({type:0,when:l})}),h=a(l=>{n===t&&l===1&&S.setTooltipId(null),d({type:1,when:l})}),D={ref:R(e)},_=P(()=>({}),[]),v=P(()=>({visible:n===r.id&&p(r.tooltipState,{[0]:!1,[1]:!1,[2]:!0,[3]:!0}),...r}),[n,r]),b=P(()=>({showTooltip:m,hideTooltip:h}),[m,h]);return y.createElement(u,{value:g},y.createElement(ee,null,y.createElement(x.Provider,{value:b},y.createElement(W.Provider,{value:v},F({ourProps:D,theirProps:c,slot:_,defaultTag:fe,name:"Tooltip"})))))}let ge=E;function ye(o,e){var C,M;let{...t}=o,s=w("TooltipTrigger"),i=B("TooltipTrigger"),c=re(),n=U(null),r=R(n,e,oe()),{isFocusVisible:d,focusProps:g}=$({autoFocus:(C=o.autoFocus)!=null?C:!1}),{isHovered:u,hoverProps:T}=j({isDisabled:(M=o.disabled)!=null?M:!1}),m=a(A=>{switch(A.key){case H.Enter:case H.Escape:case H.Space:if(s.tooltipState===2)return i.hideTooltip(1);break}}),h=a(()=>{i.showTooltip(1)}),L=a(()=>{i.hideTooltip(1)}),D=a(()=>{i.hideTooltip(1)}),_=a(()=>{i.showTooltip(0)}),v=a(()=>{i.hideTooltip(0)}),b=a(()=>{s.tooltipState===3&&i.showTooltip(1)}),l=P(()=>{var A;return{hover:u,focus:d,autofocus:(A=o.autoFocus)!=null?A:!1}},[u,d,o.autoFocus]),K=ne({ref:r,"aria-describedby":s.visible?c:void 0,onKeyDown:m,onFocus:h,onBlur:L,onMouseDown:D,onMouseEnter:_,onMouseLeave:v,onMouseMove:b},g,T);return F({ourProps:K,theirProps:t,slot:l,defaultTag:ge,name:"TooltipTrigger"})}let Le=k,he=N.RenderStrategy|N.Static;function Pe(o,e){let{anchor:t={to:"top",padding:8,gap:8,offset:-4},...s}=o,i=w("TooltipPanel"),c=ie(),n=(()=>c!==null?(c&V.Open)===V.Open:i.visible)(),r=U(null),[d,g]=te(n?t:void 0),u=R(r,e,d),T={ref:u,role:"tooltip",...g?{style:g}:{}},m=P(()=>({}),[]);return F({ourProps:{...T,as:E,children:y.createElement(ae,null,y.createElement(k,{ref:u,...s}))},theirProps:{},slot:m,defaultTag:E,features:he,visible:n,name:"TooltipPanel"})}let Ce=I(ce),Me=I(ye),Ge=I(Pe);export{Ce as Tooltip,Ge as TooltipPanel,Me as TooltipTrigger};
"use client";var J=Object.defineProperty;var X=(o,t,e)=>t in o?J(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var g=(o,t,e)=>(X(o,typeof t!="symbol"?t+"":t,e),e);import{useFocusRing as $}from"@react-aria/focus";import{useHover as j}from"@react-aria/interactions";import c,{Fragment as A,createContext as w,useContext as C,useEffect as q,useId as z,useMemo as P,useReducer as Q,useRef as M,useSyncExternalStore as Y}from"react";import{useDisposables as Z}from'../../hooks/use-disposables.js';import{useEvent as a}from'../../hooks/use-event.js';import{useSyncRefs as b}from'../../hooks/use-sync-refs.js';import{FloatingProvider as ee,useFloatingPanel as te,useFloatingReference as oe,useResolvedAnchor as ie}from'../../internal/floating.js';import{State as G,useOpenClosed as re}from'../../internal/open-closed.js';import{match as s}from'../../utils/match.js';import{RenderFeatures as O,forwardRefWithAs as R,mergeProps as ne,render as I}from'../../utils/render.js';import{Description as U,useDescribedBy as le,useDescriptions as pe}from'../description/description.js';import{Keys as F}from'../keyboard.js';import{Portal as ae}from'../portal/portal.js';var se=(r=>(r[r.Hidden=0]="Hidden",r[r.Initiated=1]="Initiated",r[r.Visible=2]="Visible",r[r.Hiding=3]="Hiding",r))(se||{}),Te=(e=>(e[e.Delayed=0]="Delayed",e[e.Immediate=1]="Immediate",e))(Te||{});class de{constructor(){g(this,"_state",null);g(this,"_listeners",[]);g(this,"subscribe",t=>(this._listeners.push(t),()=>{this._listeners=this._listeners.filter(e=>e!==t)}));g(this,"getSnapshot",()=>this._state);g(this,"getServerSnapshot",()=>this._state);g(this,"setTooltipId",t=>{this._state!==t&&(this._state=t,this._listeners.forEach(e=>e(t)))})}}let S=new de;var ue=(e=>(e[e.ShowTooltip=0]="ShowTooltip",e[e.HideTooltip=1]="HideTooltip",e))(ue||{});let me={[0](o,t){return{...o,tooltipState:s(o.tooltipState,{[0]:s(t.when,{[1]:2,[0]:1}),[1]:s(t.when,{[1]:2,[0]:1}),[2]:2,[3]:2})}},[1](o,t){return{...o,tooltipState:s(o.tooltipState,{[0]:0,[1]:0,[2]:s(t.when,{[1]:0,[0]:3}),[3]:s(t.when,{[1]:0,[0]:3})})}}},H=w(null);H.displayName="TooltipActionsContext";function V(o){let t=C(H);if(t===null){let e=new Error(`<${o} /> is missing a parent <Tooltip /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,V),e}return t}let x=w(null);x.displayName="TooltipDataContext";function W(o){let t=C(x);if(t===null){let e=new Error(`<${o} /> is missing a parent <Tooltip /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,W),e}return t}function fe(o,t){return s(t.type,me,o,t)}let ge=A;function ye(o,t){let{id:e=`headlessui-tooltip-${z()}`,showDelayMs:T=750,hideDelayMs:r=300,...d}=o,i=Y(S.subscribe,S.getSnapshot,S.getServerSnapshot),[n,y]=Q(fe,{id:e,tooltipState:0}),[h,m]=pe(),l=Z();q(()=>{l.dispose(),s(n.tooltipState,{[0](){},[1](){l.setTimeout(()=>u(1),T)},[2](){},[3](){l.setTimeout(()=>f(1),r)}})},[l,n.tooltipState,T,r]);let u=a(p=>{p===0&&i!==null&&i!==e&&(p=1),p===1&&S.setTooltipId(e),y({type:0,when:p})}),f=a(p=>{i===e&&p===1&&S.setTooltipId(null),y({type:1,when:p})}),E={ref:b(t)},D=P(()=>({}),[]),_=P(()=>({visible:i===n.id&&s(n.tooltipState,{[0]:!1,[1]:!1,[2]:!0,[3]:!0}),...n}),[i,n]),v=P(()=>({showTooltip:u,hideTooltip:f}),[u,f]);return c.createElement(m,{value:h},c.createElement(ee,null,c.createElement(H.Provider,{value:v},c.createElement(x.Provider,{value:_},I({ourProps:E,theirProps:d,slot:D,defaultTag:ge,name:"Tooltip"})))))}let ce=A;function he(o,t){let{disabled:e=!1,autoFocus:T=!1,...r}=o,d=W("TooltipTrigger"),i=V("TooltipTrigger"),n=le(),y=M(null),h=b(y,t,oe()),{isFocusVisible:m,focusProps:l}=$({autoFocus:T}),{isHovered:u,hoverProps:f}=j({isDisabled:e}),L=a(K=>{switch(K.key){case F.Enter:case F.Escape:case F.Space:if(d.tooltipState===2)return i.hideTooltip(1);break}}),E=a(()=>{i.showTooltip(1)}),D=a(()=>{i.hideTooltip(1)}),_=a(()=>{i.hideTooltip(1)}),v=a(()=>{i.showTooltip(0)}),p=a(()=>{i.hideTooltip(0)}),N=a(()=>{d.tooltipState===3&&i.showTooltip(1)}),B=P(()=>({hover:u,focus:m,autofocus:T}),[u,m,T]),k=ne({ref:h,"aria-describedby":d.visible?n:void 0,onKeyDown:L,onFocus:E,onBlur:D,onMouseDown:_,onMouseEnter:v,onMouseLeave:p,onMouseMove:N},l,f);return I({ourProps:k,theirProps:r,slot:B,defaultTag:ce,name:"TooltipTrigger"})}let Ce=U,Pe=O.RenderStrategy|O.Static;function Se(o,t){let{anchor:e,...T}=o,r=W("TooltipPanel"),d=re(),i=(()=>d!==null?(d&G.Open)===G.Open:r.visible)(),n=M(null),y=ie(e!=null?e:{to:"top",padding:8,gap:8,offset:-4}),[h,m]=te(i?y:void 0),l=b(n,t,h),u={ref:l,role:"tooltip",...m?{style:m}:{}},f=P(()=>({}),[]);return I({ourProps:{...u,as:A,children:c.createElement(ae,null,c.createElement(U,{ref:l,...T}))},theirProps:{},slot:f,defaultTag:A,features:Pe,visible:i,name:"TooltipPanel"})}let Me=R(ye),Ge=R(he),Oe=R(Se);export{Me as Tooltip,Oe as TooltipPanel,Ge as TooltipTrigger};

@@ -8,2 +8,5 @@ import React, { type ElementType, type MutableRefObject, type Ref } from 'react';

enterTo?: string;
/**
* @deprecated The `enterTo` and `leaveTo` classes stay applied after the transition has finished.
*/
entered?: string;

@@ -24,4 +27,6 @@ leave?: string;

}>;
declare let DEFAULT_TRANSITION_CHILD_TAG: "div";
type TransitionChildRenderPropArg = MutableRefObject<HTMLDivElement>;
declare let DEFAULT_TRANSITION_CHILD_TAG: React.ExoticComponent<{
children?: React.ReactNode;
}>;
type TransitionChildRenderPropArg = MutableRefObject<HTMLElement>;
declare let TransitionChildRenderFeatures: RenderFeatures;

@@ -42,5 +47,7 @@ declare function TransitionChildFn<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionChildProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;

export declare let Transition: _internal_ComponentTransitionRoot & {
/** @deprecated use `<TransitionChild>` instead of `<Transition.Child>` */
Child: _internal_ComponentTransitionChild;
/** @deprecated use `<Transition>` instead of `<Transition.Root>` */
Root: _internal_ComponentTransitionRoot;
};
export {};

@@ -1,1 +0,1 @@

"use client";import m,{Fragment as Z,createContext as $,useContext as W,useEffect as pe,useMemo as ee,useRef as c,useState as J}from"react";import{useDisposables as Ce}from'../../hooks/use-disposables.js';import{useEvent as E}from'../../hooks/use-event.js';import{useFlags as he}from'../../hooks/use-flags.js';import{useIsMounted as ve}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as H}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as V}from'../../hooks/use-latest-value.js';import{useServerHandoffComplete as te}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as ne}from'../../hooks/use-sync-refs.js';import{useTransition as ge}from'../../hooks/use-transition.js';import{OpenClosedProvider as Ee,State as b,useOpenClosed as re}from'../../internal/open-closed.js';import{classNames as ie}from'../../utils/class-names.js';import{match as F}from'../../utils/match.js';import{RenderFeatures as be,RenderStrategy as y,forwardRefWithAs as X,render as oe}from'../../utils/render.js';function S(t=""){return t.split(/\s+/).filter(n=>n.length>1)}let w=$(null);w.displayName="TransitionContext";var Se=(r=>(r.Visible="visible",r.Hidden="hidden",r))(Se||{});function ye(){let t=W(w);if(t===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return t}function xe(){let t=W(M);if(t===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return t}let M=$(null);M.displayName="NestingContext";function U(t){return"children"in t?U(t.children):t.current.filter(({el:n})=>n.current!==null).filter(({state:n})=>n==="visible").length>0}function se(t,n){let r=V(t),s=c([]),R=ve(),D=Ce(),p=E((i,e=y.Hidden)=>{let a=s.current.findIndex(({el:o})=>o===i);a!==-1&&(F(e,{[y.Unmount](){s.current.splice(a,1)},[y.Hidden](){s.current[a].state="hidden"}}),D.microTask(()=>{var o;!U(s)&&R.current&&((o=r.current)==null||o.call(r))}))}),x=E(i=>{let e=s.current.find(({el:a})=>a===i);return e?e.state!=="visible"&&(e.state="visible"):s.current.push({el:i,state:"visible"}),()=>p(i,y.Unmount)}),C=c([]),h=c(Promise.resolve()),u=c({enter:[],leave:[],idle:[]}),v=E((i,e,a)=>{C.current.splice(0),n&&(n.chains.current[e]=n.chains.current[e].filter(([o])=>o!==i)),n==null||n.chains.current[e].push([i,new Promise(o=>{C.current.push(o)})]),n==null||n.chains.current[e].push([i,new Promise(o=>{Promise.all(u.current[e].map(([f,N])=>N)).then(()=>o())})]),e==="enter"?h.current=h.current.then(()=>n==null?void 0:n.wait.current).then(()=>a(e)):a(e)}),d=E((i,e,a)=>{Promise.all(u.current[e].splice(0).map(([o,f])=>f)).then(()=>{var o;(o=C.current.shift())==null||o()}).then(()=>a(e))});return ee(()=>({children:s,register:x,unregister:p,onStart:v,onStop:d,wait:h,chains:u}),[x,p,s,v,d,u,h])}function Ne(){}let Pe=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function ae(t){var r;let n={};for(let s of Pe)n[s]=(r=t[s])!=null?r:Ne;return n}function Re(t){let n=c(ae(t));return pe(()=>{n.current=ae(t)},[t]),n}let De="div",le=be.RenderStrategy;function _e(t,n){var Q,Y;let{beforeEnter:r,afterEnter:s,beforeLeave:R,afterLeave:D,enter:p,enterFrom:x,enterTo:C,entered:h,leave:u,leaveFrom:v,leaveTo:d,...i}=t,e=c(null),a=ne(e,n),o=(Q=i.unmount)==null||Q?y.Unmount:y.Hidden,{show:f,appear:N,initial:T}=ye(),[l,j]=J(f?"visible":"hidden"),z=xe(),{register:L,unregister:A}=z;H(()=>L(e),[L,e]),H(()=>{if(o===y.Hidden&&e.current){if(f&&l!=="visible"){j("visible");return}return F(l,{["hidden"]:()=>A(e),["visible"]:()=>L(e)})}},[l,e,L,A,f,o]);let k=V({base:S(i.className),enter:S(p),enterFrom:S(x),enterTo:S(C),entered:S(h),leave:S(u),leaveFrom:S(v),leaveTo:S(d)}),O=Re({beforeEnter:r,afterEnter:s,beforeLeave:R,afterLeave:D}),G=te();H(()=>{if(G&&l==="visible"&&e.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[e,l,G]);let Te=T&&!N,K=N&&f&&T,de=(()=>!G||Te?"idle":f?"enter":"leave")(),_=he(0),fe=E(g=>F(g,{enter:()=>{_.addFlag(b.Opening),O.current.beforeEnter()},leave:()=>{_.addFlag(b.Closing),O.current.beforeLeave()},idle:()=>{}})),me=E(g=>F(g,{enter:()=>{_.removeFlag(b.Opening),O.current.afterEnter()},leave:()=>{_.removeFlag(b.Closing),O.current.afterLeave()},idle:()=>{}})),I=se(()=>{j("hidden"),A(e)},z),B=c(!1);ge({immediate:K,container:e,classes:k,direction:de,onStart:V(g=>{B.current=!0,I.onStart(e,g,fe)}),onStop:V(g=>{B.current=!1,I.onStop(e,g,me),g==="leave"&&!U(I)&&(j("hidden"),A(e))})});let P=i,ce={ref:a};return K?P={...P,className:ie(i.className,...k.current.enter,...k.current.enterFrom)}:B.current&&(P.className=ie(i.className,(Y=e.current)==null?void 0:Y.className),P.className===""&&delete P.className),m.createElement(M.Provider,{value:I},m.createElement(Ee,{value:F(l,{["visible"]:b.Open,["hidden"]:b.Closed})|_.flags},oe({ourProps:ce,theirProps:P,defaultTag:De,features:le,visible:l==="visible",name:"Transition.Child"})))}function He(t,n){let{show:r,appear:s=!1,unmount:R=!0,...D}=t,p=c(null),x=ne(p,n);te();let C=re();if(r===void 0&&C!==null&&(r=(C&b.Open)===b.Open),![!0,!1].includes(r))throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[h,u]=J(r?"visible":"hidden"),v=se(()=>{u("hidden")}),[d,i]=J(!0),e=c([r]);H(()=>{d!==!1&&e.current[e.current.length-1]!==r&&(e.current.push(r),i(!1))},[e,r]);let a=ee(()=>({show:r,appear:s,initial:d}),[r,s,d]);H(()=>{if(r)u("visible");else if(!U(v))u("hidden");else{let T=p.current;if(!T)return;let l=T.getBoundingClientRect();l.x===0&&l.y===0&&l.width===0&&l.height===0&&u("hidden")}},[r,v]);let o={unmount:R},f=E(()=>{var T;d&&i(!1),(T=t.beforeEnter)==null||T.call(t)}),N=E(()=>{var T;d&&i(!1),(T=t.beforeLeave)==null||T.call(t)});return m.createElement(M.Provider,{value:v},m.createElement(w.Provider,{value:a},oe({ourProps:{...o,as:Z,children:m.createElement(ue,{ref:x,...o,...D,beforeEnter:f,beforeLeave:N})},theirProps:{},defaultTag:Z,features:le,visible:h==="visible",name:"Transition"})))}function Fe(t,n){let r=W(w)!==null,s=re()!==null;return m.createElement(m.Fragment,null,!r&&s?m.createElement(q,{ref:n,...t}):m.createElement(ue,{ref:n,...t}))}let q=X(He),ue=X(_e),Le=X(Fe),qe=Object.assign(q,{Child:Le,Root:q});export{qe as Transition,Le as TransitionChild};
"use client";import d,{Fragment as O,createContext as $,useContext as W,useEffect as ce,useMemo as ee,useRef as v,useState as k}from"react";import{useDisposables as pe}from'../../hooks/use-disposables.js';import{useEvent as b}from'../../hooks/use-event.js';import{useIsMounted as Ce}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as D}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as he}from'../../hooks/use-latest-value.js';import{useOnDisappear as ge}from'../../hooks/use-on-disappear.js';import{useServerHandoffComplete as te}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as ne}from'../../hooks/use-sync-refs.js';import{useTransition as ve}from'../../hooks/use-transition.js';import{OpenClosedProvider as be,State as x,useOpenClosed as ie}from'../../internal/open-closed.js';import{classNames as Se}from'../../utils/class-names.js';import{match as re}from'../../utils/match.js';import{RenderFeatures as Ee,RenderStrategy as P,compact as ye,forwardRefWithAs as q,render as oe}from'../../utils/render.js';function se(t){var n;return!!(t.enter||t.enterFrom||t.enterTo||t.leave||t.leaveFrom||t.leaveTo)||((n=t.as)!=null?n:ae)!==O||d.Children.count(t.children)===1}let V=$(null);V.displayName="TransitionContext";var Re=(i=>(i.Visible="visible",i.Hidden="hidden",i))(Re||{});function Pe(){let t=W(V);if(t===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return t}function xe(){let t=W(w);if(t===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return t}let w=$(null);w.displayName="NestingContext";function M(t){return"children"in t?M(t.children):t.current.filter(({el:n})=>n.current!==null).filter(({state:n})=>n==="visible").length>0}function le(t,n){let i=he(t),l=v([]),S=Ce(),E=pe(),u=b((o,e=P.Hidden)=>{let r=l.current.findIndex(({el:s})=>s===o);r!==-1&&(re(e,{[P.Unmount](){l.current.splice(r,1)},[P.Hidden](){l.current[r].state="hidden"}}),E.microTask(()=>{var s;!M(l)&&S.current&&((s=i.current)==null||s.call(i))}))}),y=b(o=>{let e=l.current.find(({el:r})=>r===o);return e?e.state!=="visible"&&(e.state="visible"):l.current.push({el:o,state:"visible"}),()=>u(o,P.Unmount)}),R=v([]),f=v(Promise.resolve()),c=v({enter:[],leave:[]}),m=b((o,e,r)=>{R.current.splice(0),n&&(n.chains.current[e]=n.chains.current[e].filter(([s])=>s!==o)),n==null||n.chains.current[e].push([o,new Promise(s=>{R.current.push(s)})]),n==null||n.chains.current[e].push([o,new Promise(s=>{Promise.all(c.current[e].map(([C,T])=>T)).then(()=>s())})]),e==="enter"?f.current=f.current.then(()=>n==null?void 0:n.wait.current).then(()=>r(e)):r(e)}),p=b((o,e,r)=>{Promise.all(c.current[e].splice(0).map(([s,C])=>C)).then(()=>{var s;(s=R.current.shift())==null||s()}).then(()=>r(e))});return ee(()=>({children:l,register:y,unregister:u,onStart:m,onStop:p,wait:f,chains:c}),[y,u,l,m,p,c,f])}let ae=O,Te=Ee.RenderStrategy;function Ne(t,n){var Y,Z;let{beforeEnter:i,afterEnter:l,beforeLeave:S,afterLeave:E,enter:u,enterFrom:y,enterTo:R,entered:f,leave:c,leaveFrom:m,leaveTo:p,...o}=t,e=v(null),r=se(t),s=ne(...r?[e,n]:n===null?[]:[n]),C=(Y=o.unmount)==null||Y?P.Unmount:P.Hidden,{show:T,appear:H,initial:h}=Pe(),[g,U]=k(T?"visible":"hidden"),X=xe(),{register:A,unregister:I}=X;D(()=>A(e),[A,e]),D(()=>{if(C===P.Hidden&&e.current){if(T&&g!=="visible"){U("visible");return}return re(g,{["hidden"]:()=>I(e),["visible"]:()=>A(e)})}},[g,e,A,I,T,C]);let j=te();D(()=>{if(r&&j&&g==="visible"&&e.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[e,g,j,r]);let de=h&&!H,z=H&&T&&h,G=v(!1),F=le(()=>{G.current||(U("hidden"),I(e))},X),K=b(B=>{G.current=!0;let L=B?"enter":"leave";F.onStart(e,L,_=>{_==="enter"?i==null||i():_==="leave"&&(S==null||S())})}),Q=b(B=>{let L=B?"enter":"leave";G.current=!1,F.onStop(e,L,_=>{_==="enter"?l==null||l():_==="leave"&&(E==null||E())}),L==="leave"&&!M(F)&&(U("hidden"),I(e))});ce(()=>{r||(K(T),Q(T))},[T,r]);let fe=(()=>!(!r||!j||de))(),[,a]=ve(fe,e,T,{start:K,end:Q}),me=ye({ref:s,className:((Z=Se(o.className,z&&u,z&&y,a.enter&&u,a.enter&&a.closed&&y,a.enter&&!a.closed&&R,a.leave&&c,a.leave&&!a.closed&&m,a.leave&&a.closed&&p,!a.transition&&T&&f))==null?void 0:Z.trim())||void 0}),N=0;return g==="visible"&&(N|=x.Open),g==="hidden"&&(N|=x.Closed),a.enter&&(N|=x.Opening),a.leave&&(N|=x.Closing),d.createElement(w.Provider,{value:F},d.createElement(be,{value:N},oe({ourProps:me,theirProps:o,slot:a,defaultTag:ae,features:Te,visible:g==="visible",name:"Transition.Child"})))}function _e(t,n){let{show:i,appear:l=!1,unmount:S=!0,...E}=t,u=v(null),y=se(t),R=ne(...y?[u,n]:n===null?[]:[n]);te();let f=ie();if(i===void 0&&f!==null&&(i=(f&x.Open)===x.Open),i===void 0)throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[c,m]=k(i?"visible":"hidden"),p=le(()=>{i||m("hidden")}),[o,e]=k(!0),r=v([i]);D(()=>{o!==!1&&r.current[r.current.length-1]!==i&&(r.current.push(i),e(!1))},[r,i]);let s=ee(()=>({show:i,appear:l,initial:o}),[i,l,o]);ge(i,u,()=>m("hidden")),D(()=>{i?m("visible"):!M(p)&&u.current!==null&&m("hidden")},[i,p]);let C={unmount:S},T=b(()=>{var h;o&&e(!1),(h=t.beforeEnter)==null||h.call(t)}),H=b(()=>{var h;o&&e(!1),(h=t.beforeLeave)==null||h.call(t)});return d.createElement(w.Provider,{value:p},d.createElement(V.Provider,{value:s},oe({ourProps:{...C,as:O,children:d.createElement(ue,{ref:R,...C,...E,beforeEnter:T,beforeLeave:H})},theirProps:{},defaultTag:O,features:Te,visible:c==="visible",name:"Transition"})))}function De(t,n){let i=W(V)!==null,l=ie()!==null;return d.createElement(d.Fragment,null,!i&&l?d.createElement(J,{ref:n,...t}):d.createElement(ue,{ref:n,...t}))}let J=q(_e),ue=q(Ne),He=q(De),qe=Object.assign(J,{Child:He,Root:J});export{qe as Transition,He as TransitionChild};

@@ -1,1 +0,1 @@

export*from'./components/button/button.js';export*from'./components/checkbox/checkbox.js';export*from'./components/combobox/combobox.js';export*from'./components/data-interactive/data-interactive.js';import{Description as m}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 c}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 g}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*from'./components/transition/transition.js';export{m as Description,c as Label,g as Portal};
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};

@@ -1,1 +0,1 @@

import{disposables as f}from'../../utils/disposables.js';import{isIOS as p}from'../../utils/platform.js';function w(){return p()?{before({doc:o,d:n,meta:m}){function a(i){return m.containers.flatMap(l=>l()).some(l=>l.contains(i))}n.microTask(()=>{var c;if(window.getComputedStyle(o.documentElement).scrollBehavior!=="auto"){let e=f();e.style(o.documentElement,"scrollBehavior","auto"),n.add(()=>n.microTask(()=>e.dispose()))}let i=(c=window.scrollY)!=null?c:window.pageYOffset,l=null;n.addEventListener(o,"click",e=>{if(e.target instanceof HTMLElement)try{let t=e.target.closest("a");if(!t)return;let{hash:r}=new URL(t.href),s=o.querySelector(r);s&&!a(s)&&(l=s)}catch{}},!0),n.addEventListener(o,"touchstart",e=>{if(e.target instanceof HTMLElement)if(a(e.target)){let t=e.target;for(;t.parentElement&&a(t.parentElement);)t=t.parentElement;n.style(t,"overscrollBehavior","contain")}else n.style(e.target,"touchAction","none")}),n.addEventListener(o,"touchmove",e=>{if(e.target instanceof HTMLElement)if(a(e.target)){let t=e.target;for(;t.parentElement&&a(t.parentElement);)t=t.parentElement;let r=t;for(;r.parentElement&&r.dataset.headlessuiPortal!==""&&!(r.scrollHeight>r.clientHeight);)r=r.parentElement;r.dataset.headlessuiPortal===""&&e.preventDefault()}else e.preventDefault()},{passive:!1}),n.add(()=>{var t;let e=(t=window.scrollY)!=null?t:window.pageYOffset;i!==e&&window.scrollTo(0,i),l&&l.isConnected&&(l.scrollIntoView({block:"nearest"}),l=null)})})}}:{}}export{w as handleIOSLocking};
import{disposables as m}from'../../utils/disposables.js';import{isIOS as u}from'../../utils/platform.js';function d(){return u()?{before({doc:r,d:n,meta:c}){function o(a){return c.containers.flatMap(l=>l()).some(l=>l.contains(a))}n.microTask(()=>{var s;if(window.getComputedStyle(r.documentElement).scrollBehavior!=="auto"){let t=m();t.style(r.documentElement,"scrollBehavior","auto"),n.add(()=>n.microTask(()=>t.dispose()))}let a=(s=window.scrollY)!=null?s:window.pageYOffset,l=null;n.addEventListener(r,"click",t=>{if(t.target instanceof HTMLElement)try{let e=t.target.closest("a");if(!e)return;let{hash:f}=new URL(e.href),i=r.querySelector(f);i&&!o(i)&&(l=i)}catch{}},!0),n.addEventListener(r,"touchstart",t=>{if(t.target instanceof HTMLElement)if(o(t.target)){let e=t.target;for(;e.parentElement&&o(e.parentElement);)e=e.parentElement;n.style(e,"overscrollBehavior","contain")}else n.style(t.target,"touchAction","none")}),n.addEventListener(r,"touchmove",t=>{if(t.target instanceof HTMLElement){if(t.target.tagName==="INPUT")return;if(o(t.target)){let e=t.target;for(;e.parentElement&&e.dataset.headlessuiPortal!==""&&!(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);)e=e.parentElement;e.dataset.headlessuiPortal===""&&t.preventDefault()}else t.preventDefault()}},{passive:!1}),n.add(()=>{var e;let t=(e=window.scrollY)!=null?e:window.pageYOffset;a!==t&&window.scrollTo(0,a),l&&l.isConnected&&(l.scrollIntoView({block:"nearest"}),l=null)})})}}:{}}export{d as handleIOSLocking};

@@ -1,1 +0,1 @@

export declare function useDocumentOverflowLockedEffect(doc: Document | null, shouldBeLocked: boolean, meta?: (meta: Record<string, any>) => Record<string, any>): boolean;
export declare function useDocumentOverflowLockedEffect(shouldBeLocked: boolean, doc: Document | null, meta?: (meta: Record<string, any>) => Record<string, any>): boolean;

@@ -1,1 +0,1 @@

import{useStore as s}from'../../hooks/use-store.js';import{useIsoMorphicEffect as u}from'../use-iso-morphic-effect.js';import{overflows as t}from'./overflow-store.js';function a(e,r,n=()=>({containers:[]})){let f=s(t),o=e?f.get(e):void 0,i=o?o.count>0:!1;return u(()=>{if(!(!e||!r))return t.dispatch("PUSH",e,n),()=>t.dispatch("POP",e,n)},[r,e]),i}export{a as useDocumentOverflowLockedEffect};
import{useStore as s}from'../../hooks/use-store.js';import{useIsoMorphicEffect as u}from'../use-iso-morphic-effect.js';import{overflows as t}from'./overflow-store.js';function a(r,e,n=()=>({containers:[]})){let f=s(t),o=e?f.get(e):void 0,i=o?o.count>0:!1;return u(()=>{if(!(!e||!r))return t.dispatch("PUSH",e,n),()=>t.dispatch("POP",e,n)},[r,e]),i}export{a as useDocumentOverflowLockedEffect};

@@ -1,2 +0,2 @@

export type ByComparator<T> = (T extends null ? string : keyof T & string) | ((a: T, z: T) => boolean);
export type ByComparator<T> = (NonNullable<T> extends never ? string : keyof NonNullable<T> & string) | ((a: T, z: T) => boolean);
export declare function useByComparator<T>(by?: ByComparator<T>): (a: T, z: T) => boolean;

@@ -1,1 +0,1 @@

import{useCallback as n}from"react";function i(t,r){return t!==null&&r!==null&&typeof t=="object"&&typeof r=="object"&&"id"in t&&"id"in r?t.id===r.id:t===r}function T(t=i){return n((r,e)=>{if(typeof t=="string"){let o=t;return(r==null?void 0:r[o])===(e==null?void 0:e[o])}return t(r,e)},[t])}export{T as useByComparator};
import{useCallback as n}from"react";function l(e,r){return e!==null&&r!==null&&typeof e=="object"&&typeof r=="object"&&"id"in e&&"id"in r?e.id===r.id:e===r}function u(e=l){return n((r,t)=>{if(typeof e=="string"){let o=e;return(r==null?void 0:r[o])===(t==null?void 0:t[o])}return e(r,t)},[e])}export{u as useByComparator};
import { type MutableRefObject } from 'react';
export declare function useDidElementMove(element: MutableRefObject<HTMLElement | null>, enabled?: boolean): boolean;
export declare function useDidElementMove(enabled: boolean, element: MutableRefObject<HTMLElement | null>): boolean;

@@ -1,1 +0,1 @@

import{useRef as o}from"react";import{useIsoMorphicEffect as f}from'./use-iso-morphic-effect.js';function p(e,r=!0){let t=o({left:0,top:0});if(f(()=>{let u=e.current;if(!u)return;let l=u.getBoundingClientRect();l&&(t.current=l)},[r]),e.current==null||!r||e.current===document.activeElement)return!1;let n=e.current.getBoundingClientRect();return n.top!==t.current.top||n.left!==t.current.left}export{p as useDidElementMove};
import{useRef as o}from"react";import{useIsoMorphicEffect as f}from'./use-iso-morphic-effect.js';function p(r,e){let t=o({left:0,top:0});if(f(()=>{let u=e.current;if(!u)return;let l=u.getBoundingClientRect();l&&(t.current=l)},[r]),e.current==null||!r||e.current===document.activeElement)return!1;let n=e.current.getBoundingClientRect();return n.top!==t.current.top||n.left!==t.current.left}export{p as useDidElementMove};

@@ -0,1 +1,5 @@

/**
* The `useDisposables` hook returns a `disposables` object that is disposed
* when the component is unmounted.
*/
export declare function useDisposables(): {

@@ -2,0 +6,0 @@ addEventListener<TEventName extends keyof WindowEventMap>(element: Window | Document | HTMLElement, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void;

@@ -1,1 +0,1 @@

export declare function useDocumentEvent<TType extends keyof DocumentEventMap>(type: TType, listener: (ev: DocumentEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;
export declare function useDocumentEvent<TType extends keyof DocumentEventMap>(enabled: boolean, type: TType, listener: (ev: DocumentEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;

@@ -1,1 +0,1 @@

import{useEffect as m}from"react";import{useLatestValue as c}from'./use-latest-value.js';function d(e,r,n){let o=c(r);m(()=>{function t(u){o.current(u)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)},[e,n])}export{d as useDocumentEvent};
import{useEffect as c}from"react";import{useLatestValue as a}from'./use-latest-value.js';function i(t,e,o,n){let u=a(o);c(()=>{if(!t)return;function r(m){u.current(m)}return document.addEventListener(e,r,n),()=>document.removeEventListener(e,r,n)},[t,e,n])}export{i as useDocumentEvent};
/// <reference types="react" />
export declare function useElementSize(ref: React.MutableRefObject<HTMLElement | null>, unit?: boolean): {
export declare function useElementSize(ref: React.MutableRefObject<HTMLElement | null> | HTMLElement | null, unit?: boolean): {
width: number;

@@ -4,0 +4,0 @@ height: number;

@@ -1,1 +0,1 @@

import{useState as o}from"react";import{useIsoMorphicEffect as h}from'./use-iso-morphic-effect.js';function u(e){if(e===null)return{width:0,height:0};let{width:r,height:t}=e.getBoundingClientRect();return{width:r,height:t}}function f(e,r=!1){let[t,l]=o(()=>u(e.current));return h(()=>{let i=e.current;if(!i)return;let n=new ResizeObserver(()=>{l(u(i))});return n.observe(i),()=>{n.disconnect()}},[e]),r?{width:`${t.width}px`,height:`${t.height}px`}:t}export{f as useElementSize};
import{useMemo as o,useReducer as c}from"react";import{useIsoMorphicEffect as h}from'./use-iso-morphic-effect.js';function s(e){if(e===null)return{width:0,height:0};let{width:n,height:t}=e.getBoundingClientRect();return{width:n,height:t}}function f(e,n=!1){let t=e===null?null:"current"in e?e.current:e,[l,u]=c(()=>({}),{}),r=o(()=>s(t),[t,l]);return h(()=>{if(!t)return;let i=new ResizeObserver(u);return i.observe(t),()=>{i.disconnect()}},[t]),n?{width:`${r.width}px`,height:`${r.height}px`}:r}export{f as useElementSize};
export declare function useFlags(initialFlags?: number): {
flags: number;
setFlag: (flag: number) => void;
addFlag: (flag: number) => void;

@@ -4,0 +5,0 @@ hasFlag: (flag: number) => boolean;

@@ -1,1 +0,1 @@

import{useCallback as n,useState as f}from"react";import{useIsMounted as i}from'./use-is-mounted.js';function c(a=0){let[l,r]=f(a),t=i(),o=n(e=>{t.current&&r(u=>u|e)},[l,t]),m=n(e=>!!(l&e),[l]),s=n(e=>{t.current&&r(u=>u&~e)},[r,t]),g=n(e=>{t.current&&r(u=>u^e)},[r]);return{flags:l,addFlag:o,hasFlag:m,removeFlag:s,toggleFlag:g}}export{c as useFlags};
import{useCallback as r,useState as b}from"react";function c(u=0){let[t,l]=b(u),g=r(e=>l(e),[t]),s=r(e=>l(a=>a|e),[t]),m=r(e=>(t&e)===e,[t]),n=r(e=>l(a=>a&~e),[l]),F=r(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}export{c as useFlags};

@@ -1,2 +0,1 @@

import React from 'react';
export declare let useId: typeof React.useId;
export { useId } from 'react';

@@ -1,1 +0,1 @@

var o;import t from"react";import{env as r}from'../utils/env.js';import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';import{useServerHandoffComplete as f}from'./use-server-handoff-complete.js';let I=(o=t.useId)!=null?o:function(){let n=f(),[e,u]=t.useState(n?()=>r.nextId():null);return d(()=>{e===null&&u(r.nextId())},[e]),e!=null?""+e:void 0};export{I as useId};
import{useId as r}from"react";export{r as useId};

@@ -5,3 +5,3 @@ import { type MutableRefObject } from 'react';

type ContainerInput = Container | ContainerCollection;
export declare function useOutsideClick(containers: ContainerInput | (() => ContainerInput), cb: (event: MouseEvent | PointerEvent | FocusEvent | TouchEvent, target: HTMLElement) => void, enabled?: boolean): void;
export declare function useOutsideClick(enabled: boolean, containers: ContainerInput | (() => ContainerInput), cb: (event: MouseEvent | PointerEvent | FocusEvent | TouchEvent, target: HTMLElement) => void): void;
export {};

@@ -1,1 +0,1 @@

import{useEffect as d,useRef as f}from"react";import{FocusableMode as p,isFocusableElement as C}from'../utils/focus-management.js';import{isMobile as M}from'../utils/platform.js';import{useDocumentEvent as l}from'./use-document-event.js';import{useWindowEvent as T}from'./use-window-event.js';function w(s,m,a=!0){let i=f(!1);d(()=>{requestAnimationFrame(()=>{i.current=a})},[a]);function c(e,r){if(!i.current||e.defaultPrevented)return;let t=r(e);if(t===null||!t.getRootNode().contains(t)||!t.isConnected)return;let E=function u(n){return typeof n=="function"?u(n()):Array.isArray(n)||n instanceof Set?n:[n]}(s);for(let u of E){if(u===null)continue;let n=u instanceof HTMLElement?u:u.current;if(n!=null&&n.contains(t)||e.composed&&e.composedPath().includes(n))return}return!C(t,p.Loose)&&t.tabIndex!==-1&&e.preventDefault(),m(e,t)}let o=f(null);l("pointerdown",e=>{var r,t;i.current&&(o.current=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),l("mousedown",e=>{var r,t;i.current&&(o.current=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),l("click",e=>{M()||o.current&&(c(e,()=>o.current),o.current=null)},!0),l("touchend",e=>c(e,()=>e.target instanceof HTMLElement?e.target:null),!0),T("blur",e=>c(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{w as useOutsideClick};
import{useCallback as h,useRef as m}from"react";import{FocusableMode as M,isFocusableElement as b}from'../utils/focus-management.js';import{isMobile as y}from'../utils/platform.js';import{useDocumentEvent as c}from'./use-document-event.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useLatestValue as g}from'./use-latest-value.js';import{useWindowEvent as H}from'./use-window-event.js';const d=30;function F(E,p,C){let u=L(E,"outside-click"),f=g(C),s=h(function(e,o){if(e.defaultPrevented)return;let r=o(e);if(r===null||!r.getRootNode().contains(r)||!r.isConnected)return;let T=function i(n){return typeof n=="function"?i(n()):Array.isArray(n)||n instanceof Set?n:[n]}(p);for(let i of T){if(i===null)continue;let n=i instanceof HTMLElement?i:i.current;if(n!=null&&n.contains(r)||e.composed&&e.composedPath().includes(n))return}return!b(r,M.Loose)&&r.tabIndex!==-1&&e.preventDefault(),f.current(e,r)},[f]),l=m(null);c(u,"pointerdown",t=>{var e,o;l.current=((o=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:o[0])||t.target},!0),c(u,"mousedown",t=>{var e,o;l.current=((o=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:o[0])||t.target},!0),c(u,"click",t=>{y()||l.current&&(s(t,()=>l.current),l.current=null)},!0);let a=m({x:0,y:0});c(u,"touchstart",t=>{a.current.x=t.touches[0].clientX,a.current.y=t.touches[0].clientY},!0),c(u,"touchend",t=>{let e={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY};if(!(Math.abs(e.x-a.current.x)>=d||Math.abs(e.y-a.current.y)>=d))return s(t,()=>t.target instanceof HTMLElement?t.target:null)},!0),H(u,"blur",t=>s(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{F as useOutsideClick};

@@ -1,1 +0,1 @@

import{useSyncExternalStore as e}from'../use-sync-external-store-shim/index.js';function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};
import{useSyncExternalStore as e}from"react";function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};

@@ -1,1 +0,1 @@

import{useRef as t}from"react";import{useWindowEvent as a}from'./use-window-event.js';var s=(r=>(r[r.Forwards=0]="Forwards",r[r.Backwards=1]="Backwards",r))(s||{});function n(){let e=t(0);return a("keydown",o=>{o.key==="Tab"&&(e.current=o.shiftKey?1:0)},!0),e}export{s as Direction,n as useTabDirection};
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};

@@ -1,20 +0,11 @@

import type { MutableRefObject } from 'react';
interface TransitionArgs {
immediate: boolean;
container: MutableRefObject<HTMLElement | null>;
classes: MutableRefObject<{
base: string[];
enter: string[];
enterFrom: string[];
enterTo: string[];
leave: string[];
leaveFrom: string[];
leaveTo: string[];
entered: string[];
}>;
direction: 'enter' | 'leave' | 'idle';
onStart: MutableRefObject<(direction: TransitionArgs['direction']) => void>;
onStop: MutableRefObject<(direction: TransitionArgs['direction']) => void>;
}
export declare function useTransition({ immediate, container, direction, classes, onStart, onStop, }: TransitionArgs): void;
export {};
import { type MutableRefObject } from 'react';
export type TransitionData = {
closed?: boolean;
enter?: boolean;
leave?: boolean;
transition?: boolean;
};
export declare function useTransition(enabled: boolean, elementRef: MutableRefObject<HTMLElement | null>, show: boolean, events?: {
start?(show: boolean): void;
end?(show: boolean): void;
}): [visible: boolean, data: TransitionData];

@@ -1,1 +0,1 @@

import{transition as f}from'../components/transition/utils/transition.js';import{disposables as m}from'../utils/disposables.js';import{useDisposables as p}from'./use-disposables.js';import{useIsMounted as b}from'./use-is-mounted.js';import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';import{useLatestValue as g}from'./use-latest-value.js';function A({immediate:t,container:s,direction:n,classes:u,onStart:a,onStop:c}){let l=b(),d=p(),e=g(n);o(()=>{t&&(e.current="enter")},[t]),o(()=>{let r=m();d.add(r.dispose);let i=s.current;if(i&&e.current!=="idle"&&l.current)return r.dispose(),a.current(e.current),r.add(f(i,u.current,e.current==="enter",()=>{r.dispose(),c.current(e.current)})),r.dispose},[n])}export{A as useTransition};
import{useRef as b,useState as S}from"react";import{disposables as E}from'../utils/disposables.js';import{once as g}from'../utils/once.js';import{useDisposables as L}from'./use-disposables.js';import{useFlags as C}from'./use-flags.js';import{useIsoMorphicEffect as M}from'./use-iso-morphic-effect.js';var y=(i=>(i[i.None=0]="None",i[i.Closed=1]="Closed",i[i.Enter=2]="Enter",i[i.Leave=4]="Leave",i))(y||{});function V(r,a,e,t){let[i,u]=S(e),{hasFlag:d,addFlag:f,removeFlag:s}=C(r&&i?3:0),l=b(!1),n=b(!1),o=L();return M(function p(){var T;if(!r)return;e&&u(!0);let c=a.current;return c?((T=t==null?void 0:t.start)==null||T.call(t,e),D(c,{inFlight:l,prepare(){n.current?n.current=!1:n.current=l.current,l.current=!0,!n.current&&(e?(f(3),s(4)):(f(4),s(2)))},run(){n.current?e?(s(3),f(4)):(s(4),f(3)):e?s(1):f(1)},done(){var m;n.current&&typeof c.getAnimations=="function"&&c.getAnimations().length>0||(l.current=!1,s(7),e||u(!1),(m=t==null?void 0:t.end)==null||m.call(t,e))}})):e?(f(3),o.nextFrame(()=>p())):void 0},[r,e,a,o]),r?[i,{closed:d(1),enter:d(2),leave:d(4),transition:d(2)||d(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function D(r,{prepare:a,run:e,done:t,inFlight:i}){let u=E();return v(r,{prepare:a,inFlight:i}),u.nextFrame(()=>{u.add(F(r,t)),e()}),u.dispose}function F(r,a){let e=g(a),t=E();if(!r)return t.dispose;let{transitionDuration:i,transitionDelay:u}=getComputedStyle(r),[d,f]=[i,u].map(l=>{let[n=0]=l.split(",").filter(Boolean).map(o=>o.includes("ms")?parseFloat(o):parseFloat(o)*1e3).sort((o,p)=>p-o);return n}),s=d+f;if(s!==0){let l=t.group(n=>{let o=n.setTimeout(()=>{e(),n.dispose()},s);n.addEventListener(r,"transitionrun",p=>{p.target===p.currentTarget&&(o(),n.addEventListener(r,"transitioncancel",c=>{c.target===c.currentTarget&&(e(),l())}))})});t.addEventListener(r,"transitionend",n=>{n.target===n.currentTarget&&(e(),t.dispose())})}else e();return t.dispose}function v(r,{inFlight:a,prepare:e}){if(a!=null&&a.current){e();return}let t=r.style.transition;r.style.transition="none",e(),r.offsetHeight,r.style.transition=t}export{V as useTransition};
type AcceptNode = (node: HTMLElement) => typeof NodeFilter.FILTER_ACCEPT | typeof NodeFilter.FILTER_SKIP | typeof NodeFilter.FILTER_REJECT;
export declare function useTreeWalker({ container, accept, walk, enabled, }: {
export declare function useTreeWalker(enabled: boolean, { container, accept, walk, }: {
container: HTMLElement | null;
accept: AcceptNode;
walk(node: HTMLElement): void;
enabled?: boolean;
}): void;
export {};

@@ -1,1 +0,1 @@

import{useEffect as m,useRef as E}from"react";import{getOwnerDocument as T}from'../utils/owner.js';import{useIsoMorphicEffect as N}from'./use-iso-morphic-effect.js';function F({container:e,accept:t,walk:r,enabled:c=!0}){let o=E(t),l=E(r);m(()=>{o.current=t,l.current=r},[t,r]),N(()=>{if(!e||!c)return;let n=T(e);if(!n)return;let f=o.current,p=l.current,d=Object.assign(i=>f(i),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,d,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};
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};

@@ -1,1 +0,1 @@

import{useEffect as s,useRef as f}from"react";import{useEvent as i}from'./use-event.js';function m(u,t){let e=f([]),r=i(u);s(()=>{let o=[...e.current];for(let[n,a]of t.entries())if(e.current[n]!==a){let l=r(t,o);return e.current=t,l}},[r,...t])}export{m as useWatch};
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};

@@ -1,1 +0,1 @@

export declare function useWindowEvent<TType extends keyof WindowEventMap>(type: TType, listener: (ev: WindowEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;
export declare function useWindowEvent<TType extends keyof WindowEventMap>(enabled: boolean, type: TType, listener: (ev: WindowEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;

@@ -1,1 +0,1 @@

import{useEffect as d}from"react";import{useLatestValue as a}from'./use-latest-value.js';function s(e,r,n){let o=a(r);d(()=>{function t(i){o.current(i)}return window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)},[e,n])}export{s as useWindowEvent};
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};
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';

@@ -23,2 +24,3 @@ export * from './components/data-interactive/data-interactive.js';

export * from './components/textarea/textarea.js';
export { useClose } from './internal/close-provider.js';
export * from './components/transition/transition.js';

@@ -1,1 +0,1 @@

export*from'./components/button/button.js';export*from'./components/checkbox/checkbox.js';export*from'./components/combobox/combobox.js';export*from'./components/data-interactive/data-interactive.js';import{Description as m}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 c}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 g}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*from'./components/transition/transition.js';export{m as Description,c as Label,g as Portal};
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};

@@ -19,3 +19,3 @@ import { type InnerProps } from '@floating-ui/react';

};
export type AnchorProps = Partial<BaseAnchorProps & {
export type AnchorProps = false | (`${Placement}` | `${Placement} ${Align}`) | Partial<BaseAnchorProps & {
/**

@@ -27,3 +27,3 @@ * The `to` value defines which side of the trigger the panel should be placed on and its

}>;
export type AnchorPropsWithSelection = Partial<BaseAnchorProps & {
export type AnchorPropsWithSelection = false | (`${Placement | 'selection'}` | `${Placement | 'selection'} ${Align}`) | Partial<BaseAnchorProps & {
/**

@@ -41,2 +41,3 @@ * The `to` value defines which side of the trigger the panel should be placed on and its

}>;
export declare function useResolvedAnchor<T extends AnchorProps | AnchorPropsWithSelection>(anchor?: T): Exclude<T, boolean | string> | null;
export declare function useFloatingReference(): ((node: import("@floating-ui/react-dom").ReferenceType | null) => void) & ((node: any) => void);

@@ -47,3 +48,3 @@ export declare function useFloatingReferenceProps(): (userProps?: React.HTMLProps<Element> | undefined) => Record<string, unknown>;

};
export declare function useFloatingPanel(placement?: AnchorPropsWithSelection & InternalFloatingPanelProps): readonly [((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void), React.CSSProperties | 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, }: {

@@ -50,0 +51,0 @@ children: React.ReactNode;

@@ -1,1 +0,1 @@

import{autoUpdate as Z,flip as ee,inner as te,offset as ne,shift as le,size as re,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 b,useMemo as v,useRef as ue,useState as T}from"react";import{useDisposables as pe}from'../hooks/use-disposables.js';import{useEvent as z}from'../hooks/use-event.js';import{useIsoMorphicEffect as E}from'../hooks/use-iso-morphic-effect.js';let y=_({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});y.displayName="FloatingContext";let $=_(null);$.displayName="PlacementContext";function ye(){return b(y).setReference}function xe(){return b(y).getReferenceProps}function Fe(){let{getFloatingProps:e,slot:t}=b(y);return ae((...n)=>Object.assign({},e(...n),{"data-anchor":t.anchor}),[e,t])}function be(e){let t=b($),n=v(()=>e,[JSON.stringify(e,typeof HTMLElement!="undefined"?(s,a)=>a instanceof HTMLElement?a.outerHTML:a:void 0)]);E(()=>{t==null||t(n!=null?n:null)},[t,n]);let l=b(y);return v(()=>[l.setFloating,l.styles],[l.setFloating,l.styles])}let q=4;function Me({children:e,enabled:t=!0}){let[n,l]=T(null),[s,a]=T(0),M=ue(null),[m,o]=T(null);fe(m);let r=t&&n!==null&&m!==null,{to:x="bottom",gap:I=0,offset:R=0,padding:p=0,inner:d}=ce(n,m),[i,u="center"]=x.split(" ");E(()=>{r&&a(0)},[r]);let{refs:F,floatingStyles:w,context:f}=oe({open:r,placement:i==="selection"?u==="center"?"bottom":`bottom-${u}`:u==="center"?`${i}`:`${i}-${u}`,strategy:"fixed",transform:!1,middleware:[ne({mainAxis:i==="selection"?0:I,crossAxis:R}),le({padding:p}),i!=="selection"&&ee(),i==="selection"&&d?te({...d,padding:p,overflowRef:M,offset:s,minItemsVisible:q,referenceOverflowThreshold:p,onFallbackChange(P){var k,N;if(!P)return;let c=f.elements.floating;if(!c)return;let C=parseFloat(getComputedStyle(c).scrollPaddingBottom)||0,H=Math.min(q,c.childElementCount),B=0,O=0;for(let g of(N=(k=f.elements.floating)==null?void 0:k.childNodes)!=null?N:[])if(g instanceof HTMLElement){let h=g.offsetTop,U=h+g.clientHeight+C,S=c.scrollTop,W=S+c.clientHeight;if(h>=S&&U<=W)H--;else{O=Math.max(0,Math.min(U,W)-Math.max(h,S)),B=g.clientHeight;break}}H>=1&&a(g=>{let h=B*H-O+C;return g>=h?g:h})}}):null,re({apply({availableWidth:P,availableHeight:c,elements:C}){Object.assign(C.floating.style,{maxWidth:`${P-p}px`,maxHeight:`${c-p}px`})}})].filter(Boolean),whileElementsMounted:Z}),[A=i,V=u]=f.placement.split("-");i==="selection"&&(A="selection");let G=v(()=>({anchor:[A,V].filter(Boolean).join(" ")}),[A,V]),K=ie(f,{overflowRef:M,onChange:a}),{getReferenceProps:Q,getFloatingProps:X}=se([K]),Y=z(P=>{o(P),F.setFloating(P)});return j.createElement($.Provider,{value:l},j.createElement(y.Provider,{value:{setFloating:Y,setReference:F.setReference,styles:r?w:{},getReferenceProps:Q,getFloatingProps:X,slot:G}},e))}function fe(e){E(()=>{if(!e)return;let t=new MutationObserver(()=>{let n=e.style.maxHeight;parseFloat(n)!==parseInt(n)&&(e.style.maxHeight=`${Math.ceil(parseFloat(n))}px`)});return t.observe(e,{attributes:!0,attributeFilter:["style"]}),()=>{t.disconnect()}},[e])}function ce(e,t){let n=L(e==null?void 0:e.gap,t),l=L(e==null?void 0:e.offset,t),s=L(e==null?void 0:e.padding,t);return{...e,gap:n,offset:l,padding:s}}function L(e,t,n=void 0){let l=pe(),s=z((o,r)=>{if(o==null)return[n,null];if(typeof o=="number")return[o,null];if(typeof o=="string"){if(!r)return[n,null];let x=J(o,r);return[x,I=>{let R=D(o);{let p=R.map(d=>window.getComputedStyle(r).getPropertyValue(d));l.requestAnimationFrame(function d(){l.nextFrame(d);let i=!1;for(let[F,w]of R.entries()){let f=window.getComputedStyle(r).getPropertyValue(w);if(p[F]!==f){p[F]=f,i=!0;break}}if(!i)return;let u=J(o,r);x!==u&&(I(u),x=u)})}return l.dispose}]}return[n,null]}),a=v(()=>s(e,t)[0],[e,t]),[M=a,m]=T();return E(()=>{let[o,r]=s(e,t);if(m(o),!!r)return r(m)},[e,t]),M}function D(e){let t=/var\((.*)\)/.exec(e);if(t){let n=t[1].indexOf(",");if(n===-1)return[t[1]];let l=t[1].slice(0,n).trim(),s=t[1].slice(n+1).trim();return s?[l,...D(s)]:[l]}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 l=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),l}export{Me as FloatingProvider,be as useFloatingPanel,Fe as useFloatingPanelProps,ye as useFloatingReference,xe as useFloatingReferenceProps};
import{autoUpdate as Z,flip as ee,inner as te,offset as ne,shift as le,size as re,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 R,useMemo as v,useRef as ue,useState as E}from"react";import{useDisposables as fe}from'../hooks/use-disposables.js';import{useEvent as z}from'../hooks/use-event.js';import{useIsoMorphicEffect as A}from'../hooks/use-iso-morphic-effect.js';let y=_({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});y.displayName="FloatingContext";let S=_(null);S.displayName="PlacementContext";function xe(e){return v(()=>e?typeof e=="string"?{to:e}:e:null,[e])}function ye(){return R(y).setReference}function Fe(){return R(y).getReferenceProps}function be(){let{getFloatingProps:e,slot:t}=R(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=R(S),n=v(()=>e,[JSON.stringify(e,typeof HTMLElement!="undefined"?(a,r)=>r instanceof HTMLElement?r.outerHTML:r:void 0)]);A(()=>{t==null||t(n!=null?n:null)},[t,n]);let l=R(y);return v(()=>[l.setFloating,e?l.styles:{}],[l.setFloating,e,l.styles])}let q=4;function ve({children:e,enabled:t=!0}){let[n,l]=E(null),[a,r]=E(0),c=ue(null),[u,i]=E(null);pe(u);let o=t&&n!==null&&u!==null,{to:F="bottom",gap:C=0,offset:M=0,padding:p=0,inner:P}=ce(n,u),[s,f="center"]=F.split(" ");A(()=>{o&&r(0)},[o]);let{refs:b,floatingStyles:$,context:g}=oe({open:o,placement:s==="selection"?f==="center"?"bottom":`bottom-${f}`:f==="center"?`${s}`:`${s}-${f}`,strategy:"absolute",transform:!1,middleware:[ne({mainAxis:s==="selection"?0:C,crossAxis:M}),le({padding:p}),s!=="selection"&&ee({padding:p}),s==="selection"&&P?te({...P,padding:p,overflowRef:c,offset:a,minItemsVisible:q,referenceOverflowThreshold:p,onFallbackChange(h){var W,k;if(!h)return;let d=g.elements.floating;if(!d)return;let T=parseFloat(getComputedStyle(d).scrollPaddingBottom)||0,w=Math.min(q,d.childElementCount),B=0,O=0;for(let m of(k=(W=g.elements.floating)==null?void 0:W.childNodes)!=null?k:[])if(m instanceof HTMLElement){let x=m.offsetTop,N=x+m.clientHeight+T,H=d.scrollTop,U=H+d.clientHeight;if(x>=H&&N<=U)w--;else{O=Math.max(0,Math.min(N,U)-Math.max(x,H)),B=m.clientHeight;break}}w>=1&&r(m=>{let x=B*w-O+T;return m>=x?m:x})}}):null,re({padding:p,apply({availableWidth:h,availableHeight:d,elements:T}){Object.assign(T.floating.style,{overflow:"auto",maxWidth:`${h}px`,maxHeight:`min(var(--anchor-max-height, 100vh), ${d}px)`})}})].filter(Boolean),whileElementsMounted:Z}),[I=s,V=f]=g.placement.split("-");s==="selection"&&(I="selection");let G=v(()=>({anchor:[I,V].filter(Boolean).join(" ")}),[I,V]),K=ie(g,{overflowRef:c,onChange:r}),{getReferenceProps:Q,getFloatingProps:X}=se([K]),Y=z(h=>{i(h),b.setFloating(h)});return j.createElement(S.Provider,{value:l},j.createElement(y.Provider,{value:{setFloating:Y,setReference:b.setReference,styles:$,getReferenceProps:Q,getFloatingProps:X,slot:G}},e))}function pe(e){A(()=>{if(!e)return;let t=new MutationObserver(()=>{let n=e.style.maxHeight;parseFloat(n)!==parseInt(n)&&(e.style.maxHeight=`${Math.ceil(parseFloat(n))}px`)});return t.observe(e,{attributes:!0,attributeFilter:["style"]}),()=>{t.disconnect()}},[e])}function ce(e,t){var r,c,u;let n=L((r=e==null?void 0:e.gap)!=null?r:"var(--anchor-gap, 0)",t),l=L((c=e==null?void 0:e.offset)!=null?c:"var(--anchor-offset, 0)",t),a=L((u=e==null?void 0:e.padding)!=null?u:"var(--anchor-padding, 0)",t);return{...e,gap:n,offset:l,padding:a}}function L(e,t,n=void 0){let l=fe(),a=z((i,o)=>{if(i==null)return[n,null];if(typeof i=="number")return[i,null];if(typeof i=="string"){if(!o)return[n,null];let F=J(i,o);return[F,C=>{let M=D(i);{let p=M.map(P=>window.getComputedStyle(o).getPropertyValue(P));l.requestAnimationFrame(function P(){l.nextFrame(P);let s=!1;for(let[b,$]of M.entries()){let g=window.getComputedStyle(o).getPropertyValue($);if(p[b]!==g){p[b]=g,s=!0;break}}if(!s)return;let f=J(i,o);F!==f&&(C(f),F=f)})}return l.dispose}]}return[n,null]}),r=v(()=>a(e,t)[0],[e,t]),[c=r,u]=E();return A(()=>{let[i,o]=a(e,t);if(u(i),!!o)return o(u)},[e,t]),c}function D(e){let t=/var\((.*)\)/.exec(e);if(t){let n=t[1].indexOf(",");if(n===-1)return[t[1]];let l=t[1].slice(0,n).trim(),a=t[1].slice(n+1).trim();return a?[l,...D(a)]:[l]}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 l=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),l}export{ve as FloatingProvider,Re as useFloatingPanel,be as useFloatingPanelProps,ye as useFloatingReference,Fe as useFloatingReferenceProps,xe as useResolvedAnchor};
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, onReset, }: {
export declare function FormFields({ data, form: formId, disabled, onReset, overrides, }: {
data: Record<string, any>;
overrides?: Record<string, any>;
form?: string;
disabled?: boolean;
onReset?: (e: Event) => void;
}): React.JSX.Element;

@@ -1,1 +0,1 @@

import o,{createContext as a,useContext as H,useEffect as m,useState as s}from"react";import{createPortal as v}from"react-dom";import{useDisposables as E}from'../hooks/use-disposables.js';import{objectToFormEntries as g}from'../utils/form.js';import{compact as h}from'../utils/render.js';import{Hidden as i,HiddenFeatures as l}from'./hidden.js';let u=a(null);function b(t){let[r,e]=s(null);return o.createElement(u.Provider,{value:{target:r}},t.children,o.createElement(i,{features:l.Hidden,ref:e}))}function x({children:t}){let r=H(u);if(!r)return o.createElement(o.Fragment,null,t);let{target:e}=r;return e?v(o.createElement(o.Fragment,null,t),e):null}function O({data:t,form:r,onReset:e}){let[n,f]=s(null),F=E();return m(()=>{if(e&&n)return F.addEventListener(n,"reset",e)},[n,r,e]),o.createElement(x,null,o.createElement(y,{setForm:f,formId:r}),g(t).map(([d,p])=>o.createElement(i,{features:l.Hidden,...h({key:d,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:r,name:d,value:p})})))}function y({setForm:t,formId:r}){return m(()=>{if(r){let e=document.getElementById(r);e&&t(e)}},[t,r]),r?null:o.createElement(i,{features:l.Hidden,as:"input",type:"hidden",hidden:!0,readOnly:!0,ref:e=>{if(!e)return;let n=e.closest("form");n&&t(n)}})}export{O as FormFields,b as FormFieldsProvider,x as HoistFormFields};
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};

@@ -1,1 +0,1 @@

import{forwardRefWithAs as p,render as i}from'../utils/render.js';let a="div";var s=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(s||{});function l(t,o){var n;let{features:d=1,...e}=t,r={ref:o,"aria-hidden":(d&2)===2?!0:(n=e["aria-hidden"])!=null?n: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 i({ourProps:r,theirProps:e,slot:{},defaultTag:a,name:"Hidden"})}let H=p(l);export{H as Hidden,s as HiddenFeatures};
import{forwardRefWithAs as i,render as p}from'../utils/render.js';let a="div";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 T=i(l);export{T as Hidden,s as HiddenFeatures};
export type Disposables = ReturnType<typeof disposables>;
/**
* 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(): {

@@ -3,0 +15,0 @@ addEventListener<TEventName extends keyof WindowEventMap>(element: HTMLElement | Window | Document, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions): () => void;

@@ -1,1 +0,1 @@

import{microTask as i}from'./micro-task.js';function o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},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 i(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}export{o as disposables};
import{microTask as i}from'./micro-task.js';function o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},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 i(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}export{o as disposables};

@@ -1,1 +0,1 @@

import{disposables as N}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as E}from'./owner.js';let f=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),p=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var F=(n=>(n[n.First=1]="First",n[n.Previous=2]="Previous",n[n.Next=4]="Next",n[n.Last=8]="Last",n[n.WrapAround=16]="WrapAround",n[n.NoScroll=32]="NoScroll",n[n.AutoFocus=64]="AutoFocus",n))(F||{}),T=(o=>(o[o.Error=0]="Error",o[o.Overflow=1]="Overflow",o[o.Success=2]="Success",o[o.Underflow=3]="Underflow",o))(T||{}),y=(t=>(t[t.Previous=-1]="Previous",t[t.Next=1]="Next",t))(y||{});function b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]="Strict",t[t.Loose=1]="Loose",t))(h||{});function A(e,r=0){var t;return e===((t=E(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(f)},[1](){let u=e;for(;u!==null;){if(u.matches(f))return!0;u=u.parentElement}return!1}})}function G(e){let r=E(e);N().nextFrame(()=>{r&&!A(r.activeElement,0)&&w(e)})}var H=(t=>(t[t.Keyboard=0]="Keyboard",t[t.Mouse=1]="Mouse",t))(H||{});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 I=["textarea","input"].join(",");function O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,I))!=null?t:!1}function _(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function j(e,r){return P(b(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?_(e):e:r&64?S(e):b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&"current"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&O(i)&&i.select(),2}export{F as Focus,T as FocusResult,h as FocusableMode,w as focusElement,j as focusFrom,P as focusIn,S as getAutoFocusableElements,b as getFocusableElements,A as isFocusableElement,G as restoreFocusIfNecessary,_ as sortByDomNode};
import{disposables as N}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as E}from'./owner.js';let f=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),p=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var F=(n=>(n[n.First=1]="First",n[n.Previous=2]="Previous",n[n.Next=4]="Next",n[n.Last=8]="Last",n[n.WrapAround=16]="WrapAround",n[n.NoScroll=32]="NoScroll",n[n.AutoFocus=64]="AutoFocus",n))(F||{}),T=(o=>(o[o.Error=0]="Error",o[o.Overflow=1]="Overflow",o[o.Success=2]="Success",o[o.Underflow=3]="Underflow",o))(T||{}),y=(t=>(t[t.Previous=-1]="Previous",t[t.Next=1]="Next",t))(y||{});function b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]="Strict",t[t.Loose=1]="Loose",t))(h||{});function A(e,r=0){var t;return e===((t=E(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(f)},[1](){let u=e;for(;u!==null;){if(u.matches(f))return!0;u=u.parentElement}return!1}})}function G(e){let r=E(e);N().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var H=(t=>(t[t.Keyboard=0]="Keyboard",t[t.Mouse=1]="Mouse",t))(H||{});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 I(e){e==null||e.focus({preventScroll:!0})}let w=["textarea","input"].join(",");function O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,w))!=null?t:!1}function _(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function j(e,r){return P(b(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?_(e):e:r&64?S(e):b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&"current"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&O(i)&&i.select(),2}export{F as Focus,T as FocusResult,h as FocusableMode,I as focusElement,j as focusFrom,P as focusIn,S as getAutoFocusableElements,b as getFocusableElements,A as isFocusableElement,G as restoreFocusIfNecessary,_ as sortByDomNode};

@@ -1,4 +0,4 @@

import{Fragment as F,cloneElement as N,createElement as P,forwardRef as E,isValidElement as j,useCallback as S,useRef as w}from"react";import{classNames as h}from'./class-names.js';import{match as v}from'./match.js';var O=(a=>(a[a.None=0]="None",a[a.RenderStrategy=1]="RenderStrategy",a[a.Static=2]="Static",a))(O||{}),k=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(k||{});function $({ourProps:r,theirProps:n,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:M;let o=x(n,r);if(t)return g(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...d}=o;if(f)return g(d,e,a,l,i)}if(y&1){let{unmount:f=!0,...d}=o;return v(f?0:1,{[0](){return null},[1](){return g({...d,hidden:!0,style:{display:"none"}},e,a,l,i)}})}return g(o,e,a,l,i)}function g(r,n={},e,a,s){let{as:t=e,children:l,refName:i="ref",...o}=R(r,["unmount","static"]),y=r.ref!==void 0?{[i]:r.ref}:{},f=typeof l=="function"?l(n):l;"className"in o&&o.className&&typeof o.className=="function"&&(o.className=o.className(n)),o["aria-labelledby"]&&o["aria-labelledby"]===o.id&&(o["aria-labelledby"]=void 0);let d={};if(n){let u=!1,p=[];for(let[c,T]of Object.entries(n))typeof T=="boolean"&&(u=!0),T===!0&&p.push(c.replace(/([A-Z])/g,b=>`-${b.toLowerCase()}`));if(u){d["data-headlessui-state"]=p.join(" ");for(let c of p)d[`data-${c}`]=""}}if(t===F&&(Object.keys(m(o)).length>0||Object.keys(m(d)).length>0))if(!j(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).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(o)).concat(Object.keys(m(d))).map(u=>` - ${u}`).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(u=>` - ${u}`).join(`
import{Fragment as R,cloneElement as x,createElement as E,forwardRef as j,isValidElement as S,useCallback as v,useRef as w}from"react";import{classNames as P}from'./class-names.js';import{match as k}from'./match.js';var O=(a=>(a[a.None=0]="None",a[a.RenderStrategy=1]="RenderStrategy",a[a.Static=2]="Static",a))(O||{}),M=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(M||{});function H({ourProps:r,theirProps:n,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:A;let o=N(n,r);if(t)return b(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return b(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return k(f?0:1,{[0](){return null},[1](){return b({...u,hidden:!0,style:{display:"none"}},e,a,l,i)}})}return b(o,e,a,l,i)}function b(r,n={},e,a,s){let{as:t=e,children:l,refName:i="ref",...o}=h(r,["unmount","static"]),y=r.ref!==void 0?{[i]:r.ref}:{},f=typeof l=="function"?l(n):l;"className"in o&&o.className&&typeof o.className=="function"&&(o.className=o.className(n)),o["aria-labelledby"]&&o["aria-labelledby"]===o.id&&(o["aria-labelledby"]=void 0);let u={};if(n){let d=!1,p=[];for(let[c,T]of Object.entries(n))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(t===R&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!S(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).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(o)).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 u=f.props,p=u==null?void 0:u.className,c=typeof p=="function"?(...b)=>h(p(...b),o.className):h(p,o.className),T=c?{className:c}:{};return N(f,Object.assign({},x(f.props,m(R(o,["ref"]))),d,y,{ref:s(f.ref,y.ref)},T))}return P(t,Object.assign({},R(o,["ref"]),t!==F&&y,t!==F&&d),f)}function H(){let r=w([]),n=S(e=>{for(let a of r.current)a!=null&&(typeof a=="function"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return r.current=e,n}}function M(...r){return r.every(n=>n==null)?void 0:n=>{for(let e of r)e!=null&&(typeof e=="function"?e(n):e.current=n)}}function x(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let n={},e={};for(let s of r)for(let t in s)t.startsWith("on")&&typeof s[t]=="function"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):n[t]=s[t];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(e).map(s=>[s,void 0])));for(let s in e)Object.assign(n,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return n}function I(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let n={},e={};for(let s of r)for(let t in s)t.startsWith("on")&&typeof s[t]=="function"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):n[t]=s[t];for(let s in e)Object.assign(n,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return n}function U(r){var n;return Object.assign(E(r),{displayName:(n=r.displayName)!=null?n:r.name})}function m(r){let n=Object.assign({},r);for(let e in n)n[e]===void 0&&delete n[e];return n}function R(r,n=[]){let e=Object.assign({},r);for(let a of n)a in e&&delete e[a];return e}export{O as RenderFeatures,k as RenderStrategy,m as compact,U as forwardRefWithAs,I as mergeProps,$ as render,H as useMergeRefsFn};
`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p=="function"?(...F)=>P(p(...F),o.className):P(p,o.className),T=c?{className:c}:{},g=N(f.props,m(h(o,["ref"])));for(let F in u)F in g&&delete u[F];return x(f,Object.assign({},g,u,y,{ref:s(f.ref,y.ref)},T))}return E(t,Object.assign({},h(o,["ref"]),t!==R&&y,t!==R&&u),f)}function U(){let r=w([]),n=v(e=>{for(let a of r.current)a!=null&&(typeof a=="function"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return r.current=e,n}}function A(...r){return r.every(n=>n==null)?void 0:n=>{for(let e of r)e!=null&&(typeof e=="function"?e(n):e.current=n)}}function N(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let n={},e={};for(let s of r)for(let t in s)t.startsWith("on")&&typeof s[t]=="function"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):n[t]=s[t];if(n.disabled||n["aria-disabled"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(n,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return n}function D(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let n={},e={};for(let s of r)for(let t in s)t.startsWith("on")&&typeof s[t]=="function"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):n[t]=s[t];for(let s in e)Object.assign(n,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return n}function I(r){var n;return Object.assign(j(r),{displayName:(n=r.displayName)!=null?n:r.name})}function m(r){let n=Object.assign({},r);for(let e in n)n[e]===void 0&&delete n[e];return n}function h(r,n=[]){let e=Object.assign({},r);for(let a of n)a in e&&delete e[a];return e}export{O as RenderFeatures,M as RenderStrategy,m as compact,I as forwardRefWithAs,D as mergeProps,H as render,U as useMergeRefsFn};

@@ -1,1 +0,1 @@

import*as r from"react";const s=r.createContext(null);function a(){return{groups:new Map,get(n,t){var c;let e=this.groups.get(n);e||(e=new Map,this.groups.set(n,e));let l=(c=e.get(t))!=null?c:0;e.set(t,l+1);let o=Array.from(e.keys()).indexOf(t);function i(){let u=e.get(t);u>1?e.set(t,u-1):e.delete(t)}return[o,i]}}}function C({children:n}){let t=r.useRef(a());return r.createElement(s.Provider,{value:t},n)}function d(n){let t=r.useContext(s);if(!t)throw new Error("You must wrap your component in a <StableCollection>");let e=f(),[l,o]=t.current.get(n,e);return r.useEffect(()=>o,[]),l}function f(){var l,o,i;let n=(i=(o=(l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)==null?void 0:l.ReactCurrentOwner)==null?void 0:o.current)!=null?i:null;if(!n)return Symbol();let t=[],e=n;for(;e;)t.push(e.index),e=e.return;return"$."+t.join(".")}export{C as StableCollection,d as useStableCollectionIndex};
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 <StableCollection>");let t=l.useId(),[n,r]=e.current.get(o,t);return l.useEffect(()=>r,[]),n}export{f as StableCollection,C as useStableCollectionIndex};
{
"name": "@headlessui/react",
"version": "0.0.0-insiders.1c2982a",
"version": "0.0.0-insiders.1c3f9a6",
"description": "A set of completely unstyled, fully accessible UI components for React, designed to integrate beautifully with Tailwind CSS.",

@@ -40,25 +40,24 @@ "main": "dist/index.cjs",

"lint": "../../scripts/lint.sh",
"lint-types": "yarn run attw -P",
"playground": "yarn workspace playground-react dev",
"lint-types": "npm run attw -P --workspaces --if-present",
"playground": "npm run dev --workspace=playground-react",
"clean": "rimraf ./dist"
},
"peerDependencies": {
"react": "^16 || ^17 || ^18",
"react-dom": "^16 || ^17 || ^18"
"react": "^18",
"react-dom": "^18"
},
"devDependencies": {
"@testing-library/react": "^13.0.0",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"esbuild": "^0.11.18",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"snapshot-diff": "^0.8.1"
"@testing-library/react": "^15.0.7",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"snapshot-diff": "^0.10.0"
},
"dependencies": {
"@floating-ui/react": "^0.26.2",
"@tanstack/react-virtual": "3.0.0-beta.60",
"@react-aria/focus": "^3.14.3",
"@react-aria/interactions": "3.0.0-nightly.2584"
"@floating-ui/react": "^0.26.16",
"@tanstack/react-virtual": "3.5.0",
"@react-aria/focus": "^3.17.1",
"@react-aria/interactions": "^3.21.3"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc