New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@headlessui/react

Package Overview
Dependencies
Maintainers
4
Versions
734
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@headlessui/react - npm Package Compare versions

Comparing version 0.0.0-insiders.056b311 to 0.0.0-insiders.058a14b

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

2

dist/components/button/button.d.ts

@@ -20,5 +20,5 @@ import { type ElementType, type Ref } from 'react';

export interface _internal_ComponentButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export declare let Button: _internal_ComponentButton;
export {};

@@ -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,useRender as _}from'../../utils/render.js';let R="button";function v(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:d}=B({disabled:e}),f=g({ref:u,type:(p=o.type)!=null?p:"button",disabled:e||void 0,autoFocus:t},i,T,d),m=P(()=>({disabled:e,hover:s,focus:r,active:n,autofocus:t}),[e,s,r,n,t]);return _()({ourProps:f,theirProps:o,slot:m,defaultTag:R,name:"Button"})}let H=A(v);export{H as Button};

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

export interface _internal_ComponentCheckbox extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG, TType = string>(props: CheckboxProps<TTag, TType> & RefProp<typeof CheckboxFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG, TType = string>(props: CheckboxProps<TTag, TType> & RefProp<typeof CheckboxFn>): React.JSX.Element;
}
export declare let Checkbox: _internal_ComponentCheckbox;
export {};

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

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

virtual?: {
options: TValue[];
disabled?: (value: TValue) => boolean;
options: TMultiple extends true ? EnsureArray<NoInfer<TValue>> : NoInfer<TValue>[];
disabled?: (value: TMultiple extends true ? EnsureArray<NoInfer<TValue>>[number] : 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 +50,3 @@ type InputRenderPropArg = {

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

@@ -96,8 +69,9 @@ 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;
option: any;
};

@@ -109,5 +83,8 @@ type OptionsPropsWeControl = 'aria-labelledby' | 'aria-multiselectable' | 'role' | 'tabIndex';

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,14 +103,11 @@ 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>): React.JSX.Element;
}
export interface _internal_ComponentComboboxButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ComboboxButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ComboboxButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export interface _internal_ComponentComboboxInput extends HasDisplayName {
<TType, TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: ComboboxInputProps<TTag, TType> & RefProp<typeof InputFn>): JSX.Element;
<TType, TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: ComboboxInputProps<TTag, TType> & RefProp<typeof InputFn>): React.JSX.Element;
}

@@ -143,6 +117,6 @@ export interface _internal_ComponentComboboxLabel extends _internal_ComponentLabel {

export interface _internal_ComponentComboboxOptions extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ComboboxOptionsProps<TTag> & RefProp<typeof OptionsFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ComboboxOptionsProps<TTag> & RefProp<typeof OptionsFn>): React.JSX.Element;
}
export interface _internal_ComponentComboboxOption extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = Parameters<typeof ComboboxRoot>[0]['value']>(props: ComboboxOptionProps<TTag, TType> & RefProp<typeof OptionFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = Parameters<typeof ComboboxRoot>[0]['value']>(props: ComboboxOptionProps<TTag, TType> & RefProp<typeof OptionFn>): React.JSX.Element;
}

@@ -157,9 +131,13 @@ declare let ComboboxRoot: _internal_ComponentCombobox;

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

@@ -16,5 +16,5 @@ import { type ElementType, type Ref } from 'react';

export interface _internal_ComponentDataInteractive extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG>(props: DataInteractiveProps<TTag> & RefProp<typeof DataInteractiveFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG>(props: DataInteractiveProps<TTag> & RefProp<typeof DataInteractiveFn>): React.JSX.Element;
}
export declare let DataInteractive: _internal_ComponentDataInteractive;
export {};

@@ -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 m}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,useRender as P}from'../../utils/render.js';let E=D;function d(o,n){let{...s}=o,e=!1,{isFocusVisible:t,focusProps:p}=m(),{isHovered:r,hoverProps:i}=A({isDisabled:e}),{pressed:a,pressProps:T}=v({disabled:e}),l=y({ref:n},p,i,T),c=f(()=>({hover:r,focus:t,active:a}),[r,t,a]);return P()({ourProps:l,theirProps:s,slot:c,defaultTag:E,name:"DataInteractive"})}let x=I(d);export{x as DataInteractive};

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

string | undefined,
(props: DescriptionProviderProps) => JSX.Element
(props: DescriptionProviderProps) => React.JSX.Element
];
declare let DEFAULT_DESCRIPTION_TAG: "p";
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 {
<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag> & RefProp<typeof DescriptionFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag> & RefProp<typeof DescriptionFn>): React.JSX.Element;
}
export declare let Description: _internal_ComponentDescription;
export {};

@@ -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,useRender 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 U(){var r,e;return(e=(r=u(a))==null?void 0:r.value)!=null?e:void 0}function w(){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),H=Object.assign(_,{});export{H as Description,U as useDescribedBy,w as useDescriptions};

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

open?: boolean;
onClose(value: boolean): void;
onClose: (value: boolean) => void;
initialFocus?: MutableRefObject<HTMLElement | null>;
role?: 'dialog' | 'alertdialog';
autoFocus?: boolean;
transition?: boolean;
__demoMode?: boolean;
}>;
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 = {
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";
type PanelRenderPropArg = {
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;
export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, never, {
transition?: boolean;
}>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_BACKDROP_TAG: "div";

@@ -32,11 +34,6 @@ type BackdropRenderPropArg = {

};
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 let DEFAULT_PANEL_TAG: "div";
type PanelRenderPropArg = {
open: boolean;
};
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;
export type DialogBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = Props<TTag, BackdropRenderPropArg, never, {
transition?: boolean;
}>;
declare function BackdropFn<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: DialogBackdropProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_TITLE_TAG: "h2";

@@ -47,23 +44,19 @@ 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;
<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(props: DialogProps<TTag> & RefProp<typeof DialogFn>): React.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;
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag> & RefProp<typeof PanelFn>): React.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_ComponentDialogBackdrop extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: DialogBackdropProps<TTag> & RefProp<typeof BackdropFn>): React.JSX.Element;
}
export interface _internal_ComponentDialogTitle extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(props: DialogTitleProps<TTag> & RefProp<typeof TitleFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(props: DialogTitleProps<TTag> & RefProp<typeof TitleFn>): React.JSX.Element;
}
export interface _internal_ComponentDialogDescription extends _internal_ComponentDescription {
}
export declare let DialogPanel: _internal_ComponentDialogPanel;
export declare let DialogBackdrop: _internal_ComponentDialogBackdrop;
export declare let DialogPanel: _internal_ComponentDialogPanel;
export declare let DialogOverlay: _internal_ComponentDialogOverlay;
export declare let DialogTitle: _internal_ComponentDialogTitle;

@@ -73,5 +66,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;

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

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

open: boolean;
close(focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>): void;
close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
};

@@ -22,2 +22,3 @@ type DisclosurePropsWeControl = never;

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

@@ -39,12 +40,14 @@ autofocus: boolean;

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 {
<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag> & RefProp<typeof DisclosureFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag> & RefProp<typeof DisclosureFn>): React.JSX.Element;
}
export interface _internal_ComponentDisclosureButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: DisclosureButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: DisclosureButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export interface _internal_ComponentDisclosurePanel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag> & RefProp<typeof PanelFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag> & RefProp<typeof PanelFn>): React.JSX.Element;
}

@@ -54,5 +57,7 @@ export declare let DisclosureButton: _internal_ComponentDisclosureButton;

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

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

import { type ElementType } from 'react';
import React, { type ElementType } from 'react';
import type { Props } from '../../types.js';

@@ -11,5 +11,5 @@ import { type HasDisplayName } from '../../utils/render.js';

export interface _internal_ComponentField extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_FIELD_TAG>(props: FieldProps<TTag>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_FIELD_TAG>(props: FieldProps<TTag>): React.JSX.Element;
}
export declare let Field: _internal_ComponentField;
export {};

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

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

import { type ElementType } from 'react';
import React, { 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, {

@@ -11,5 +11,5 @@ disabled?: boolean;

export interface _internal_ComponentFieldset extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG>(props: FieldsetProps<TTag>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG>(props: FieldsetProps<TTag>): React.JSX.Element;
}
export declare let Fieldset: _internal_ComponentFieldset;
export {};

@@ -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 b}from"react";import{useResolvedTag as E}from'../../hooks/use-resolved-tag.js';import{useSyncRefs as P}from'../../hooks/use-sync-refs.js';import{DisabledProvider as u,useDisabled as g}from'../../internal/disabled.js';import{forwardRefWithAs as D,useRender as A}from'../../utils/render.js';import{useLabels as L}from'../label/label.js';let d="fieldset";function _(t,a){var s;let i=g(),{disabled:e=i||!1,...p}=t,[n,T]=E((s=t.as)!=null?s:d),l=P(a,T),[r,f]=L(),m=b(()=>({disabled:e}),[e]),y=n==="fieldset"?{ref:l,"aria-labelledby":r,disabled:e||void 0}:{ref:l,role:"group","aria-labelledby":r,"aria-disabled":e||void 0},F=A();return o.createElement(u,{value:e},o.createElement(f,null,F({ourProps:y,theirProps:p,slot:m,defaultTag:d,name:"Fieldset"})))}let G=D(_);export{G 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,9 +29,10 @@ 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 {
<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag> & RefProp<typeof FocusTrapFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag> & RefProp<typeof FocusTrapFn>): React.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 W}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 P}from'../../hooks/use-is-mounted.js';import{useIsTopLayer as O}from'../../hooks/use-is-top-layer.js';import{useOnUnmount as V}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as q}from'../../hooks/use-owner.js';import{useServerHandoffComplete as J}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as X}from'../../hooks/use-sync-refs.js';import{Direction as H,useTabDirection as z}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 Q,useRender as Y}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 Z="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 $(o,e){let t=M(null),r=X(t,e),{initialFocus:s,initialFocusFallback:a,containers:n,features:u=15,...f}=o;J()||(u=0);let l=q(t);ee(u,{ownerDocument:l});let i=te(u,{ownerDocument:l,container:t,initialFocus:s,initialFocusFallback:a});re(u,{ownerDocument:l,container:t,containers:n,previousActiveElement:i});let R=z(),g=A(c=>{let m=t.current;if(!m)return;(G=>G())(()=>{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=W(),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)))}},B=Y();return L.createElement(L.Fragment,null,v&&L.createElement(C,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:g,features:_.Focusable}),B({ourProps:k,theirProps:f,defaultTag:Z,name:"FocusTrap"}),v&&L.createElement(C,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:g,features:_.Focusable}))}let D=Q($),ye=Object.assign(D,{features:x});function w(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 ee(o,{ownerDocument:e}){let t=!!(o&8),r=w(t);y(()=>{t||(e==null?void 0:e.activeElement)===(e==null?void 0:e.body)&&p(r())},[t]),V(()=>{t&&p(r())})}function te(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 re(o,{ownerDocument:e,container:t,containers:r,previousActiveElement:s}){let a=P(),n=!!(o&4);K(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{ye as FocusTrap,x as FocusTrapFeatures};

@@ -20,5 +20,5 @@ import { type ElementType, type Ref } from 'react';

export interface _internal_ComponentInput extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: InputProps<TTag> & RefProp<typeof InputFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: InputProps<TTag> & RefProp<typeof InputFn>): React.JSX.Element;
}
export declare let Input: _internal_ComponentInput;
export {};

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

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

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

inherit?: boolean;
}) => JSX.Element
}) => React.JSX.Element
];

@@ -34,5 +34,5 @@ declare let DEFAULT_LABEL_TAG: "label";

export interface _internal_ComponentLabel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_LABEL_TAG>(props: LabelProps<TTag> & RefProp<typeof LabelFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_LABEL_TAG>(props: LabelProps<TTag> & RefProp<typeof LabelFn>): React.JSX.Element;
}
export declare let Label: _internal_ComponentLabel;
export {};

@@ -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 R,{createContext as k,useContext as h,useMemo as T,useState as D}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,useRender as H}from'../../utils/render.js';let c=k(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 K({inherit:r=!1}={}){let l=I(),[a,e]=D([]),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 R.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),Q=Object.assign(U,{});export{Q as Label,P as useLabelContext,I as useLabelledBy,K as useLabels};

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

import { type ElementType } from 'react';
import React, { type ElementType } from 'react';
import type { Props } from '../../types.js';

@@ -9,5 +9,5 @@ import { type HasDisplayName } from '../../utils/render.js';

export interface _internal_ComponentLegend extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_LEGEND_TAG>(props: LegendProps<TTag>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_LEGEND_TAG>(props: LegendProps<TTag>): React.JSX.Element;
}
export declare let Legend: _internal_ComponentLegend;
export {};

@@ -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};

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

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

@@ -44,5 +45,6 @@ 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 = {

@@ -55,6 +57,8 @@ open: boolean;

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 = {

@@ -85,6 +89,6 @@ /** @deprecated use `focus` instead */

export interface _internal_ComponentListbox extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG, TType = string, TActualType = TType extends (infer U)[] ? U : TType>(props: ListboxProps<TTag, TType, TActualType> & RefProp<typeof ListboxFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG, TType = string, TActualType = TType extends (infer U)[] ? U : TType>(props: ListboxProps<TTag, TType, TActualType> & RefProp<typeof ListboxFn>): React.JSX.Element;
}
export interface _internal_ComponentListboxButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ListboxButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ListboxButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}

@@ -94,9 +98,9 @@ export interface _internal_ComponentListboxLabel extends _internal_ComponentLabel {

export interface _internal_ComponentListboxOptions extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ListboxOptionsProps<TTag> & RefProp<typeof OptionsFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ListboxOptionsProps<TTag> & RefProp<typeof OptionsFn>): React.JSX.Element;
}
export interface _internal_ComponentListboxOption extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = Parameters<typeof ListboxRoot>[0]['value']>(props: ListboxOptionProps<TTag, TType> & RefProp<typeof OptionFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = Parameters<typeof ListboxRoot>[0]['value']>(props: ListboxOptionProps<TTag, TType> & RefProp<typeof OptionFn>): React.JSX.Element;
}
export interface _internal_ComponentListboxSelectedOption extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SELECTED_OPTION_TAG>(props: ListboxSelectedOptionProps<TTag> & RefProp<typeof SelectedFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SELECTED_OPTION_TAG>(props: ListboxSelectedOptionProps<TTag> & RefProp<typeof SelectedFn>): React.JSX.Element;
}

@@ -111,8 +115,13 @@ declare let ListboxRoot: _internal_ComponentListbox;

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

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

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

@@ -39,7 +40,9 @@ };

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<{

@@ -76,21 +79,21 @@ children?: React.ReactNode;

export interface _internal_ComponentMenu extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_MENU_TAG>(props: MenuProps<TTag> & RefProp<typeof MenuFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_MENU_TAG>(props: MenuProps<TTag> & RefProp<typeof MenuFn>): React.JSX.Element;
}
export interface _internal_ComponentMenuButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: MenuButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: MenuButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export interface _internal_ComponentMenuItems extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(props: MenuItemsProps<TTag> & RefProp<typeof ItemsFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(props: MenuItemsProps<TTag> & RefProp<typeof ItemsFn>): React.JSX.Element;
}
export interface _internal_ComponentMenuItem extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_ITEM_TAG>(props: MenuItemProps<TTag> & RefProp<typeof ItemFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_ITEM_TAG>(props: MenuItemProps<TTag> & RefProp<typeof ItemFn>): React.JSX.Element;
}
export interface _internal_ComponentMenuSection extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SECTION_TAG>(props: MenuSectionProps<TTag> & RefProp<typeof SectionFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SECTION_TAG>(props: MenuSectionProps<TTag> & RefProp<typeof SectionFn>): React.JSX.Element;
}
export interface _internal_ComponentMenuHeading extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_HEADING_TAG>(props: MenuHeadingProps<TTag> & RefProp<typeof HeadingFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_HEADING_TAG>(props: MenuHeadingProps<TTag> & RefProp<typeof HeadingFn>): React.JSX.Element;
}
export interface _internal_ComponentMenuSeparator extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG>(props: MenuSeparatorProps<TTag> & RefProp<typeof SeparatorFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG>(props: MenuSeparatorProps<TTag> & RefProp<typeof SeparatorFn>): React.JSX.Element;
}

@@ -104,9 +107,15 @@ export declare let MenuButton: _internal_ComponentMenuButton;

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

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

open: boolean;
close(focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null> | MouseEvent<HTMLElement>): void;
close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null> | MouseEvent<HTMLElement>) => void;
};

@@ -23,2 +23,3 @@ type PopoverPropsWeControl = never;

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

@@ -32,10 +33,13 @@ };

declare function ButtonFn<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: PopoverButtonProps<TTag>, ref: Ref<HTMLButtonElement>): React.JSX.Element;
declare let DEFAULT_OVERLAY_TAG: "div";
type OverlayRenderPropArg = {
declare let DEFAULT_BACKDROP_TAG: "div";
type BackdropRenderPropArg = {
open: boolean;
};
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;
type BackdropPropsWeControl = 'aria-hidden';
declare let BackdropRenderFeatures: number;
export type PopoverBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = Props<TTag, BackdropRenderPropArg, BackdropPropsWeControl, {
transition?: boolean;
} & PropsForFeatures<typeof BackdropRenderFeatures>>;
export type PopoverOverlayProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = PopoverBackdropProps<TTag>;
declare function BackdropFn<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: PopoverBackdropProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_PANEL_TAG: "div";

@@ -50,7 +54,9 @@ type PanelRenderPropArg = {

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";

@@ -62,26 +68,34 @@ type GroupRenderPropArg = {};

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

@@ -9,4 +9,7 @@ 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;
ownerDocument?: Document | null;
}>;
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<{

@@ -25,11 +28,12 @@ children?: React.ReactNode;

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

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

export interface _internal_ComponentRadioGroup extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_RADIO_GROUP_TAG, TType = string>(props: RadioGroupProps<TTag, TType> & RefProp<typeof RadioGroupFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_RADIO_GROUP_TAG, TType = string>(props: RadioGroupProps<TTag, TType> & RefProp<typeof RadioGroupFn>): React.JSX.Element;
}
export interface _internal_ComponentRadioOption extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = string>(props: RadioOptionProps<TTag, TType> & RefProp<typeof OptionFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_OPTION_TAG, TType = string>(props: RadioOptionProps<TTag, TType> & RefProp<typeof OptionFn>): React.JSX.Element;
}
export interface _internal_ComponentRadio extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_RADIO_TAG, TType = string>(props: RadioProps<TTag, TType> & RefProp<typeof RadioFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_RADIO_TAG, TType = string>(props: RadioProps<TTag, TType> & RefProp<typeof RadioFn>): React.JSX.Element;
}

@@ -69,2 +69,3 @@ export interface _internal_ComponentRadioLabel extends _internal_ComponentLabel {

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

@@ -77,3 +78,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>` */

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

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

export interface _internal_ComponentSelect extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag> & RefProp<typeof SelectFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag> & RefProp<typeof SelectFn>): React.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 F}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 L}from'../../internal/id.js';import{forwardRefWithAs as R,mergeProps as C,render as x}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:f=d||`headlessui-select-${p}`,disabled:e=c||!1,invalid:t=!1,...u}=o,m=H(),T=h(),{isFocusVisible:r,focusProps:y}=v({autoFocus:(a=o.autoFocus)!=null?a:!1}),{isHovered:l,hoverProps:b}=A({isDisabled:e!=null?e:!1}),{pressed:s,pressProps:P}=g({disabled:e!=null?e:!1}),S=C({ref:n,id:f,"aria-labelledby":m,"aria-describedby":T,"aria-invalid":t?"":void 0,disabled:e||void 0},y,b,P),E=F(()=>{var i;return{disabled:e,invalid:t,hover:l,focus:r,active:s,autofocus:(i=o.autoFocus)!=null?i:!1}},[e,t,l,r,s,o.autoFocus]);return x({ourProps:S,theirProps:u,slot:E,defaultTag:B,name:"Select"})}let $=R(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 R}from'../../internal/disabled.js';import{useProvidedId as D}from'../../internal/id.js';import{forwardRefWithAs as F,mergeProps as L,useRender 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=D(),n=R(),{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=L({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 j=F(B);export{j as Select};

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

export interface _internal_ComponentSwitch extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG>(props: SwitchProps<TTag> & RefProp<typeof SwitchFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG>(props: SwitchProps<TTag> & RefProp<typeof SwitchFn>): React.JSX.Element;
}
export interface _internal_ComponentSwitchGroup extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: SwitchGroupProps<TTag> & RefProp<typeof GroupFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: SwitchGroupProps<TTag> & RefProp<typeof GroupFn>): React.JSX.Element;
}

@@ -45,2 +45,3 @@ export interface _internal_ComponentSwitchLabel extends _internal_ComponentLabel {

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

@@ -52,2 +53,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 +56,0 @@ /** @deprecated use `<Label>` instead of `<Switch.Label>` */

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

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

@@ -50,2 +48,3 @@ selectedIndex: number;

selected: boolean;
focus: boolean;
};

@@ -60,15 +59,15 @@ type PanelPropsWeControl = 'role' | 'aria-labelledby';

export interface _internal_ComponentTab extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TAB_TAG>(props: TabProps<TTag> & RefProp<typeof TabFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TAB_TAG>(props: TabProps<TTag> & RefProp<typeof TabFn>): React.JSX.Element;
}
export interface _internal_ComponentTabGroup extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TABS_TAG>(props: TabGroupProps<TTag> & RefProp<typeof GroupFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TABS_TAG>(props: TabGroupProps<TTag> & RefProp<typeof GroupFn>): React.JSX.Element;
}
export interface _internal_ComponentTabList extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_LIST_TAG>(props: TabListProps<TTag> & RefProp<typeof ListFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_LIST_TAG>(props: TabListProps<TTag> & RefProp<typeof ListFn>): React.JSX.Element;
}
export interface _internal_ComponentTabPanels extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANELS_TAG>(props: TabPanelsProps<TTag> & RefProp<typeof PanelsFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PANELS_TAG>(props: TabPanelsProps<TTag> & RefProp<typeof PanelsFn>): React.JSX.Element;
}
export interface _internal_ComponentTabPanel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: TabPanelProps<TTag> & RefProp<typeof PanelFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: TabPanelProps<TTag> & RefProp<typeof PanelFn>): React.JSX.Element;
}

@@ -80,7 +79,11 @@ export declare let TabGroup: _internal_ComponentTabGroup;

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

@@ -20,5 +20,5 @@ import { type ElementType, type Ref } from 'react';

export interface _internal_ComponentTextarea extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag> & RefProp<typeof TextareaFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag> & RefProp<typeof TextareaFn>): React.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 F}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 h}from'../description/description.js';import{useLabelledBy as L}from'../label/label.js';let H="textarea";function X(a,i){var s;let n=F(),d=g(),p=R(),{id:T=d||`headlessui-textarea-${n}`,disabled:e=p||!1,invalid:o=!1,...f}=a,u=L(),m=h(),{isFocused:r,focusProps:y}=A({autoFocus:(s=a.autoFocus)!=null?s:!1}),{isHovered:t,hoverProps:b}=E({isDisabled:e!=null?e:!1}),x=_({ref:i,id:T,"aria-labelledby":u,"aria-describedby":m,"aria-invalid":o?"":void 0,disabled:e||void 0},y,b),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:f,slot:c,defaultTag:H,name:"Textarea"})}let k=v(X);export{k as Textarea};
"use client";import{useFocusRing as A}from"@react-aria/focus";import{useHover as c}from"@react-aria/interactions";import{useMemo as E}from"react";import{useId as P}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 _,useRender 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=P(),d=g(),n=R(),{id:p=d||`headlessui-textarea-${i}`,disabled:e=n||!1,autoFocus:r=!1,invalid:a=!1,...T}=s,f=h(),m=F(),{isFocused:o,focusProps:u}=A({autoFocus:r}),{isHovered:t,hoverProps:b}=c({isDisabled:e}),y=_({ref:l,id:p,"aria-labelledby":f,"aria-describedby":m,"aria-invalid":a?"":void 0,disabled:e||void 0,autoFocus:r},u,b),x=E(()=>({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 J=v(H);export{J as Textarea};

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

export interface _internal_ComponentTooltip extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TOOLTIP_TAG>(props: TooltipProps<TTag> & RefProp<typeof TooltipFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TOOLTIP_TAG>(props: TooltipProps<TTag> & RefProp<typeof TooltipFn>): React.JSX.Element;
}
export interface _internal_ComponentTrigger extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TRIGGER_TAG>(props: TooltipTriggerProps<TTag> & RefProp<typeof TriggerFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TRIGGER_TAG>(props: TooltipTriggerProps<TTag> & RefProp<typeof TriggerFn>): React.JSX.Element;
}
export interface _internal_ComponentPanel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: TooltipPanelProps<TTag> & RefProp<typeof PanelFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: TooltipPanelProps<TTag> & RefProp<typeof PanelFn>): React.JSX.Element;
}

@@ -47,0 +47,0 @@ export declare let Tooltip: _internal_ComponentTooltip;

@@ -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 c=(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 y,{Fragment as A,createContext as C,useContext as M,useEffect as q,useId as z,useMemo as P,useReducer as Q,useRef as G,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 I}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 O,useOpenClosed as re}from'../../internal/open-closed.js';import{match as s}from'../../utils/match.js';import{RenderFeatures as U,forwardRefWithAs as F,mergeProps as ne,useRender as H}from'../../utils/render.js';import{Description as V,useDescribedBy as le,useDescriptions as pe}from'../description/description.js';import{Keys as x}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(){c(this,"_state",null);c(this,"_listeners",[]);c(this,"subscribe",t=>(this._listeners.push(t),()=>{this._listeners=this._listeners.filter(e=>e!==t)}));c(this,"getSnapshot",()=>this._state);c(this,"getServerSnapshot",()=>this._state);c(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})})}}},W=C(null);W.displayName="TooltipActionsContext";function N(o){let t=M(W);if(t===null){let e=new Error(`<${o} /> is missing a parent <Tooltip /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,N),e}return t}let L=C(null);L.displayName="TooltipDataContext";function w(o){let t=M(L);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 ce=A;function ge(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,g]=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),g({type:0,when:p})}),f=a(p=>{i===e&&p===1&&S.setTooltipId(null),g({type:1,when:p})}),D={ref:I(t)},_=P(()=>({}),[]),R=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]),b=H();return y.createElement(m,{value:h},y.createElement(ee,null,y.createElement(W.Provider,{value:v},y.createElement(L.Provider,{value:R},b({ourProps:D,theirProps:d,slot:_,defaultTag:ce,name:"Tooltip"})))))}let ye=A;function he(o,t){let{disabled:e=!1,autoFocus:T=!1,...r}=o,d=w("TooltipTrigger"),i=N("TooltipTrigger"),n=le(),g=G(null),h=I(g,t,oe()),{isFocusVisible:m,focusProps:l}=$({autoFocus:T}),{isHovered:u,hoverProps:f}=j({isDisabled:e}),E=a(K=>{switch(K.key){case x.Enter:case x.Escape:case x.Space:if(d.tooltipState===2)return i.hideTooltip(1);break}}),D=a(()=>{i.showTooltip(1)}),_=a(()=>{i.hideTooltip(1)}),R=a(()=>{i.hideTooltip(1)}),v=a(()=>{i.showTooltip(0)}),b=a(()=>{i.hideTooltip(0)}),p=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:E,onFocus:D,onBlur:_,onMouseDown:R,onMouseEnter:v,onMouseLeave:b,onMouseMove:p},l,f);return H()({ourProps:k,theirProps:r,slot:B,defaultTag:ye,name:"TooltipTrigger"})}let Me=V,Pe=U.RenderStrategy|U.Static;function Se(o,t){let{anchor:e,...T}=o,r=w("TooltipPanel"),d=re(),i=(()=>d!==null?(d&O.Open)===O.Open:r.visible)(),n=G(null),g=ie(e!=null?e:{to:"top",padding:8,gap:8,offset:-4}),[h,m]=te(i?g:void 0),l=I(n,t,h),u={ref:l,role:"tooltip",...m?{style:m}:{}},f=P(()=>({}),[]);return H()({ourProps:{...u,as:A,children:y.createElement(ae,null,y.createElement(V,{ref:l,...T}))},theirProps:{},slot:f,defaultTag:A,features:Pe,visible:i,name:"TooltipPanel"})}let Ge=F(ge),Oe=F(he),Ue=F(Se);export{Ge as Tooltip,Ue as TooltipPanel,Oe 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;

@@ -22,6 +25,9 @@ leave?: string;

export type TransitionChildProps<TTag extends ReactTag> = Props<TTag, TransitionChildRenderPropArg, TransitionChildPropsWeControl, PropsForFeatures<typeof TransitionChildRenderFeatures> & TransitionClasses & TransitionEvents & {
transition?: boolean;
appear?: boolean;
}>;
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;

@@ -35,12 +41,14 @@ declare function TransitionChildFn<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionChildProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;

export interface _internal_ComponentTransitionRoot extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionRootProps<TTag> & RefProp<typeof TransitionRootFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionRootProps<TTag> & RefProp<typeof TransitionRootFn>): React.JSX.Element;
}
export interface _internal_ComponentTransitionChild extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionChildProps<TTag> & RefProp<typeof TransitionChildFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionChildProps<TTag> & RefProp<typeof TransitionChildFn>): React.JSX.Element;
}
export declare let TransitionChild: _internal_ComponentTransitionChild;
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 m,{Fragment as O,createContext as ne,useContext as q,useEffect as ge,useMemo as ie,useRef as b,useState as V}from"react";import{useDisposables as ve}from'../../hooks/use-disposables.js';import{useEvent as E}from'../../hooks/use-event.js';import{useIsMounted as be}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as D}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Ee}from'../../hooks/use-latest-value.js';import{useServerHandoffComplete as re}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as oe}from'../../hooks/use-sync-refs.js';import{transitionDataAttributes as Se,useTransition as Re}from'../../hooks/use-transition.js';import{OpenClosedProvider as ye,State as x,useOpenClosed as se}from'../../internal/open-closed.js';import{classNames as Pe}from'../../utils/class-names.js';import{match as le}from'../../utils/match.js';import{RenderFeatures as xe,RenderStrategy as P,compact as Ne,forwardRefWithAs as J,useRender as ae}from'../../utils/render.js';function ue(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:de)!==O||m.Children.count(e.children)===1}let w=ne(null);w.displayName="TransitionContext";var _e=(n=>(n.Visible="visible",n.Hidden="hidden",n))(_e||{});function De(){let e=q(w);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}function He(){let e=q(M);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}let M=ne(null);M.displayName="NestingContext";function U(e){return"children"in e?U(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t==="visible").length>0}function Te(e,t){let n=Ee(e),l=b([]),S=be(),R=ve(),d=E((o,i=P.Hidden)=>{let a=l.current.findIndex(({el:s})=>s===o);a!==-1&&(le(i,{[P.Unmount](){l.current.splice(a,1)},[P.Hidden](){l.current[a].state="hidden"}}),R.microTask(()=>{var s;!U(l)&&S.current&&((s=n.current)==null||s.call(n))}))}),y=E(o=>{let i=l.current.find(({el:a})=>a===o);return i?i.state!=="visible"&&(i.state="visible"):l.current.push({el:o,state:"visible"}),()=>d(o,P.Unmount)}),p=b([]),c=b(Promise.resolve()),C=b({enter:[],leave:[]}),h=E((o,i,a)=>{p.current.splice(0),t&&(t.chains.current[i]=t.chains.current[i].filter(([s])=>s!==o)),t==null||t.chains.current[i].push([o,new Promise(s=>{p.current.push(s)})]),t==null||t.chains.current[i].push([o,new Promise(s=>{Promise.all(C.current[i].map(([r,f])=>f)).then(()=>s())})]),i==="enter"?c.current=c.current.then(()=>t==null?void 0:t.wait.current).then(()=>a(i)):a(i)}),g=E((o,i,a)=>{Promise.all(C.current[i].splice(0).map(([s,r])=>r)).then(()=>{var s;(s=p.current.shift())==null||s()}).then(()=>a(i))});return ie(()=>({children:l,register:y,unregister:d,onStart:h,onStop:g,wait:c,chains:C}),[y,d,l,h,g,C,c])}let de=O,fe=xe.RenderStrategy;function Ae(e,t){var ee,te;let{transition:n=!0,beforeEnter:l,afterEnter:S,beforeLeave:R,afterLeave:d,enter:y,enterFrom:p,enterTo:c,entered:C,leave:h,leaveFrom:g,leaveTo:o,...i}=e,[a,s]=V(null),r=b(null),f=ue(e),j=oe(...f?[r,t,s]:t===null?[]:[t]),H=(ee=i.unmount)==null||ee?P.Unmount:P.Hidden,{show:u,appear:z,initial:K}=De(),[v,G]=V(u?"visible":"hidden"),Q=He(),{register:A,unregister:I}=Q;D(()=>A(r),[A,r]),D(()=>{if(H===P.Hidden&&r.current){if(u&&v!=="visible"){G("visible");return}return le(v,{["hidden"]:()=>I(r),["visible"]:()=>A(r)})}},[v,r,A,I,u,H]);let B=re();D(()=>{if(f&&B&&v==="visible"&&r.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[r,v,B,f]);let ce=K&&!z,Y=z&&u&&K,W=b(!1),L=Te(()=>{W.current||(G("hidden"),I(r))},Q),Z=E(k=>{W.current=!0;let F=k?"enter":"leave";L.onStart(r,F,_=>{_==="enter"?l==null||l():_==="leave"&&(R==null||R())})}),$=E(k=>{let F=k?"enter":"leave";W.current=!1,L.onStop(r,F,_=>{_==="enter"?S==null||S():_==="leave"&&(d==null||d())}),F==="leave"&&!U(L)&&(G("hidden"),I(r))});ge(()=>{f&&n||(Z(u),$(u))},[u,f,n]);let pe=(()=>!(!n||!f||!B||ce))(),[,T]=Re(pe,a,u,{start:Z,end:$}),Ce=Ne({ref:j,className:((te=Pe(i.className,Y&&y,Y&&p,T.enter&&y,T.enter&&T.closed&&p,T.enter&&!T.closed&&c,T.leave&&h,T.leave&&!T.closed&&g,T.leave&&T.closed&&o,!T.transition&&u&&C))==null?void 0:te.trim())||void 0,...Se(T)}),N=0;v==="visible"&&(N|=x.Open),v==="hidden"&&(N|=x.Closed),T.enter&&(N|=x.Opening),T.leave&&(N|=x.Closing);let he=ae();return m.createElement(M.Provider,{value:L},m.createElement(ye,{value:N},he({ourProps:Ce,theirProps:i,defaultTag:de,features:fe,visible:v==="visible",name:"Transition.Child"})))}function Ie(e,t){let{show:n,appear:l=!1,unmount:S=!0,...R}=e,d=b(null),y=ue(e),p=oe(...y?[d,t]:t===null?[]:[t]);re();let c=se();if(n===void 0&&c!==null&&(n=(c&x.Open)===x.Open),n===void 0)throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[C,h]=V(n?"visible":"hidden"),g=Te(()=>{n||h("hidden")}),[o,i]=V(!0),a=b([n]);D(()=>{o!==!1&&a.current[a.current.length-1]!==n&&(a.current.push(n),i(!1))},[a,n]);let s=ie(()=>({show:n,appear:l,initial:o}),[n,l,o]);D(()=>{n?h("visible"):!U(g)&&d.current!==null&&h("hidden")},[n,g]);let r={unmount:S},f=E(()=>{var u;o&&i(!1),(u=e.beforeEnter)==null||u.call(e)}),j=E(()=>{var u;o&&i(!1),(u=e.beforeLeave)==null||u.call(e)}),H=ae();return m.createElement(M.Provider,{value:g},m.createElement(w.Provider,{value:s},H({ourProps:{...r,as:O,children:m.createElement(me,{ref:p,...r,...R,beforeEnter:f,beforeLeave:j})},theirProps:{},defaultTag:O,features:fe,visible:C==="visible",name:"Transition"})))}function Le(e,t){let n=q(w)!==null,l=se()!==null;return m.createElement(m.Fragment,null,!n&&l?m.createElement(X,{ref:t,...e}):m.createElement(me,{ref:t,...e}))}let X=J(Ie),me=J(Ae),Fe=J(Le),ze=Object.assign(X,{Child:Fe,Root:X});export{ze as Transition,Fe 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 m}from'../../utils/disposables.js';import{isIOS as u}from'../../utils/platform.js';function d(){return u()?{before({doc:r,d:l,meta:c}){function o(a){return c.containers.flatMap(n=>n()).some(n=>n.contains(a))}l.microTask(()=>{var s;if(window.getComputedStyle(r.documentElement).scrollBehavior!=="auto"){let t=m();t.style(r.documentElement,"scrollBehavior","auto"),l.add(()=>l.microTask(()=>t.dispose()))}let a=(s=window.scrollY)!=null?s:window.pageYOffset,n=null;l.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)&&(n=i)}catch{}},!0),l.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;l.style(e,"overscrollBehavior","contain")}else l.style(t.target,"touchAction","none")}),l.addEventListener(r,"touchmove",t=>{if(t.target instanceof HTMLElement)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}),l.add(()=>{var e;let t=(e=window.scrollY)!=null?e:window.pageYOffset;a!==t&&window.scrollTo(0,a),n&&n.isConnected&&(n.scrollIntoView({block:"nearest"}),n=null)})})}}:{}}export{d 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};

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

import { type MutableRefObject } from 'react';
export declare function useDidElementMove(element: MutableRefObject<HTMLElement | null>, enabled?: boolean): boolean;
export declare function useDidElementMove(enabled: boolean, element: 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 i}from"react";import{useIsoMorphicEffect as u}from'./use-iso-morphic-effect.js';function s(n,t){let e=i({left:0,top:0});if(u(()=>{if(!t)return;let r=t.getBoundingClientRect();r&&(e.current=r)},[n,t]),t==null||!n||t===document.activeElement)return!1;let o=t.getBoundingClientRect();return o.top!==e.current.top||o.left!==e.current.left}export{s 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};

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

/// <reference types="react" />
export declare function useElementSize(ref: React.MutableRefObject<HTMLElement | null>, unit?: boolean): {
export declare function useElementSize(element: HTMLElement | null, unit?: boolean): {
width: number;

@@ -4,0 +3,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 h}from"react";import{useIsoMorphicEffect as s}from'./use-iso-morphic-effect.js';function f(e){if(e===null)return{width:0,height:0};let{width:t,height:r}=e.getBoundingClientRect();return{width:t,height:r}}function d(e,t=!1){let[r,u]=h(()=>({}),{}),i=o(()=>f(e),[e,r]);return s(()=>{if(!e)return;let n=new ResizeObserver(u);return n.observe(e),()=>{n.disconnect()}},[e]),t?{width:`${i.width}px`,height:`${i.height}px`}:i}export{d 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};

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

import { type MutableRefObject } from 'react';
type Container = MutableRefObject<HTMLElement | null> | HTMLElement | null;
type Container = HTMLElement | null;
type ContainerCollection = Container[] | Set<Container>;
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 T,useRef as d}from"react";import{FocusableMode as y,isFocusableElement as M}from'../utils/focus-management.js';import{isMobile as g}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 b}from'./use-latest-value.js';import{useWindowEvent as P}from'./use-window-event.js';const E=30;function R(p,f,C){let u=L(p,"outside-click"),m=b(C),s=T(function(e,n){if(e.defaultPrevented)return;let r=n(e);if(r===null||!r.getRootNode().contains(r)||!r.isConnected)return;let h=function l(o){return typeof o=="function"?l(o()):Array.isArray(o)||o instanceof Set?o:[o]}(f);for(let l of h)if(l!==null&&(l.contains(r)||e.composed&&e.composedPath().includes(l)))return;return!M(r,y.Loose)&&r.tabIndex!==-1&&e.preventDefault(),m.current(e,r)},[m,f]),i=d(null);c(u,"pointerdown",t=>{var e,n;i.current=((n=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:n[0])||t.target},!0),c(u,"mousedown",t=>{var e,n;i.current=((n=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:n[0])||t.target},!0),c(u,"click",t=>{g()||i.current&&(s(t,()=>i.current),i.current=null)},!0);let a=d({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)>=E||Math.abs(e.y-a.current.y)>=E))return s(t,()=>t.target instanceof HTMLElement?t.target:null)},!0),P(u,"blur",t=>s(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{R as useOutsideClick};

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

import { type MutableRefObject } from 'react';
export declare function useResolveButtonType<TTag>(props: {
type?: string;
as?: TTag;
}, ref: MutableRefObject<HTMLElement | null>): string | undefined;
}, element: HTMLElement | null): string | undefined;

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

import{useState as o}from"react";import{useIsoMorphicEffect as r}from'./use-iso-morphic-effect.js';function i(t){var n;if(t.type)return t.type;let e=(n=t.as)!=null?n:"button";if(typeof e=="string"&&e.toLowerCase()==="button")return"button"}function T(t,e){let[n,u]=o(()=>i(t));return r(()=>{u(i(t))},[t.type,t.as]),r(()=>{n||e.current&&e.current instanceof HTMLButtonElement&&!e.current.hasAttribute("type")&&u("button")},[n,e]),n}export{T as useResolveButtonType};
import{useMemo as a}from"react";function e(t,u){return a(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:"button";if(typeof r=="string"&&r.toLowerCase()==="button"||(u==null?void 0:u.tagName)==="BUTTON"&&!u.hasAttribute("type"))return"button"},[t.type,t.as,u])}export{e as useResolveButtonType};
import React, { type MutableRefObject } from 'react';
export declare function useRootContainers({ defaultContainers, portals, mainTreeNodeRef: _mainTreeNodeRef, }?: {
export declare function useRootContainers({ defaultContainers, portals, mainTreeNode, }?: {
defaultContainers?: (HTMLElement | null | MutableRefObject<HTMLElement | null>)[];
portals?: MutableRefObject<HTMLElement[]>;
mainTreeNodeRef?: MutableRefObject<HTMLElement | null>;
mainTreeNode?: HTMLElement | null;
}): {
resolveContainers: () => HTMLElement[];
contains: (element: HTMLElement) => boolean;
mainTreeNodeRef: React.MutableRefObject<HTMLElement | null>;
MainTreeNode: () => React.JSX.Element | null;
};
export declare function useMainTreeNode(): {
mainTreeNodeRef: React.MutableRefObject<HTMLElement | null>;
MainTreeNode: () => React.JSX.Element;
};
/**
* A provider for the main tree node.
*
* When a component is rendered in a `Portal`, it is no longer part of the main
* tree. This provider helps to find the main tree node and pass it along to the
* components that need it.
*
* The main tree node is used for features such as outside click behavior, where
* we allow clicks in 3rd party containers, but not in the parent of the "main
* tree".
*
* In case of a `Popover`, we can use the `PopoverButton` as a marker in the
* "main tree", the `PopoverPanel` can't be used because it could be rendered in
* a `Portal` (e.g. when using the `anchor` props).
*
* However, we can't use the `PopoverButton` when it's nested inside of another
* `Popover`'s `PopoverPanel` component if the parent `PopoverPanel` is
* rendered in a `Portal`.
*
* This is where the `MainTreeProvider` comes in. It will find the "main tree"
* node and pass it on. The top-level `PopoverButton` will be used as a marker
* in the "main tree" and nested `Popover` will use this button as well.
*/
export declare function MainTreeProvider({ children, node, }: {
children: React.ReactNode;
node?: HTMLElement | null;
}): React.JSX.Element;
/**
* Get the main tree node from context or fallback to the optionally provided node.
*/
export declare function useMainTreeNode(fallbackMainTreeNode?: HTMLElement | null): HTMLElement | null;

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

import m,{useMemo as d,useRef as M}from"react";import{Hidden as H,HiddenFeatures as T}from'../internal/hidden.js';import{useEvent as E}from'./use-event.js';import{useOwnerDocument as b}from'./use-owner.js';function j({defaultContainers:o=[],portals:r,mainTreeNodeRef:u}={}){var f;let t=M((f=u==null?void 0:u.current)!=null?f:null),l=b(t),c=E(()=>{var i,s,a;let n=[];for(let e of o)e!==null&&(e instanceof HTMLElement?n.push(e):"current"in e&&e.current instanceof HTMLElement&&n.push(e.current));if(r!=null&&r.current)for(let e of r.current)n.push(e);for(let e of(i=l==null?void 0:l.querySelectorAll("html > *, body > *"))!=null?i:[])e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e.id!=="headlessui-portal-root"&&(e.contains(t.current)||e.contains((a=(s=t.current)==null?void 0:s.getRootNode())==null?void 0:a.host)||n.some(L=>e.contains(L))||n.push(e));return n});return{resolveContainers:c,contains:E(n=>c().some(i=>i.contains(n))),mainTreeNodeRef:t,MainTreeNode:d(()=>function(){return u!=null?null:m.createElement(H,{features:T.Hidden,ref:t})},[t,u])}}function y(){let o=M(null);return{mainTreeNodeRef:o,MainTreeNode:d(()=>function(){return m.createElement(H,{features:T.Hidden,ref:o})},[o])}}export{y as useMainTreeNode,j as useRootContainers};
import f,{createContext as M,useContext as d,useState as H}from"react";import{Hidden as E,HiddenFeatures as T}from'../internal/hidden.js';import{getOwnerDocument as L}from'../utils/owner.js';import{useEvent as s}from'./use-event.js';import{useOwnerDocument as h}from'./use-owner.js';function R({defaultContainers:l=[],portals:n,mainTreeNode:o}={}){let r=h(o),u=s(()=>{var i,c;let t=[];for(let e of l)e!==null&&(e instanceof HTMLElement?t.push(e):"current"in e&&e.current instanceof HTMLElement&&t.push(e.current));if(n!=null&&n.current)for(let e of n.current)t.push(e);for(let e of(i=r==null?void 0:r.querySelectorAll("html > *, body > *"))!=null?i:[])e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e.id!=="headlessui-portal-root"&&(o&&(e.contains(o)||e.contains((c=o==null?void 0:o.getRootNode())==null?void 0:c.host))||t.some(m=>e.contains(m))||t.push(e));return t});return{resolveContainers:u,contains:s(t=>u().some(i=>i.contains(t)))}}let a=M(null);function O({children:l,node:n}){let[o,r]=H(null),u=b(n!=null?n:o);return f.createElement(a.Provider,{value:u},l,u===null&&f.createElement(E,{features:T.Hidden,ref:t=>{var i,c;if(t){for(let e of(c=(i=L(t))==null?void 0:i.querySelectorAll("html > *, body > *"))!=null?c:[])if(e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e!=null&&e.contains(t)){r(e);break}}}}))}function b(l=null){var n;return(n=d(a))!=null?n:l}export{O as MainTreeProvider,b as useMainTreeNode,R as useRootContainers};

@@ -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,12 @@

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;
type TransitionData = {
closed?: boolean;
enter?: boolean;
leave?: boolean;
transition?: boolean;
};
export declare function transitionDataAttributes(data: TransitionData): Record<string, string>;
export declare function useTransition(enabled: boolean, element: HTMLElement | null, show: boolean, events?: {
start?(show: boolean): void;
end?(show: boolean): void;
}): [visible: boolean, data: TransitionData];
export {};

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

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};
var T,b;import{useRef as c,useState as S}from"react";import{disposables as m}from'../utils/disposables.js';import{useDisposables as g}from'./use-disposables.js';import{useFlags as y}from'./use-flags.js';import{useIsoMorphicEffect as A}from'./use-iso-morphic-effect.js';typeof process!="undefined"&&typeof globalThis!="undefined"&&typeof Element!="undefined"&&((T=process==null?void 0:process.env)==null?void 0:T["NODE_ENV"])==="test"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)=="undefined"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
`)),[]});var L=(r=>(r[r.None=0]="None",r[r.Closed=1]="Closed",r[r.Enter=2]="Enter",r[r.Leave=4]="Leave",r))(L||{});function R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]="");return n}function x(t,n,e,i){let[r,o]=S(e),{hasFlag:s,addFlag:a,removeFlag:l}=y(t&&r?3:0),u=c(!1),f=c(!1),E=g();return A(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations=="function"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=m();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=m();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition="none",e(),t.offsetHeight,t.style.transition=i}export{R as transitionDataAttributes,x 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};

@@ -7,6 +7,2 @@ import { type InnerProps } from '@floating-ui/react';

/**
* The strategy to use when positioning the panel. Defaults to `fixed`.
*/
strategy: 'absolute' | 'fixed';
/**
* The `gap` is the space between the trigger and the panel.

@@ -24,3 +20,3 @@ */

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

@@ -32,3 +28,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 & {
/**

@@ -46,2 +42,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);

@@ -52,3 +49,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, }: {

@@ -55,0 +52,0 @@ children: React.ReactNode;

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

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

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

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

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

@@ -17,5 +17,5 @@ None = 1,

interface ComponentHidden extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG>(props: HiddenProps<TTag> & RefProp<typeof VisuallyHidden>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG>(props: HiddenProps<TTag> & RefProp<typeof VisuallyHidden>): React.JSX.Element;
}
export declare let Hidden: ComponentHidden;
export {};

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

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,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,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:r,theirProps:e,slot:{},defaultTag:a,name:"Hidden"})}let T=i(l);export{T as Hidden,s as HiddenFeatures};
import{forwardRefWithAs as i,useRender as p}from'../utils/render.js';let a="span";var s=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,"aria-hidden":(d&2)===2?!0:(n=e["aria-hidden"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(d&4)===4&&(d&2)!==2&&{display:"none"}}};return p()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:"Hidden"})}let f=i(l);export{f as Hidden,s as HiddenFeatures};

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

import { type ReactElement, type ReactNode } from 'react';
import React, { type ReactElement, type ReactNode } from 'react';
export declare enum State {

@@ -14,2 +14,5 @@ Open = 1,

export declare function OpenClosedProvider({ value, children }: Props): ReactElement;
export declare function ResetOpenClosedProvider({ children }: {
children: React.ReactNode;
}): ReactElement;
export {};

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

import t,{createContext as l,useContext as p}from"react";let n=l(null);n.displayName="OpenClosedContext";var d=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(d||{});function u(){return p(n)}function s({value:o,children:r}){return t.createElement(n.Provider,{value:o},r)}export{s as OpenClosedProvider,d as State,u as useOpenClosed};
import r,{createContext as l,useContext as d}from"react";let n=l(null);n.displayName="OpenClosedContext";var i=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(i||{});function u(){return d(n)}function c({value:o,children:t}){return r.createElement(n.Provider,{value:o},t)}function s({children:o}){return r.createElement(n.Provider,{value:null},o)}export{c as OpenClosedProvider,s as ResetOpenClosedProvider,i as State,u as useOpenClosed};
import type { JSXElementConstructor, ReactElement, ReactNode } from 'react';
export type ReactTag = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
declare let __: "1D45E01E-AF44-47C4-988A-19A94EBAF55C";
export type __ = typeof __;
export type ReactTag = keyof React.JSX.IntrinsicElements | JSXElementConstructor<any>;
export type Expand<T> = T extends infer O ? {

@@ -21,7 +19,3 @@ [K in keyof O]: O[K];

export type Props<TTag extends ReactTag, TSlot = {}, TOmittableProps extends PropertyKey = never, Overrides = {}> = CleanProps<TTag, TOmittableProps | keyof Overrides> & OurProps<TTag, TSlot> & ClassNameOverride<TTag, TSlot> & Overrides;
type Without<T, U> = {
[P in Exclude<keyof T, keyof U>]?: never;
};
export type XOR<T, U> = T | U extends __ ? never : T extends __ ? U : U extends __ ? T : T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
export type EnsureArray<T> = T extends any[] ? T : Expand<T>[];
export {};

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

import{onDocumentReady as d}from'./document-ready.js';let t=[];d(()=>{function e(n){n.target instanceof HTMLElement&&n.target!==document.body&&t[0]!==n.target&&(t.unshift(n.target),t=t.filter(r=>r!=null&&r.isConnected),t.splice(10))}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});export{t as history};
import{onDocumentReady as d}from'./document-ready.js';import{focusableSelector as u}from'./focus-management.js';let r=[];d(()=>{function e(t){if(!(t.target instanceof HTMLElement)||t.target===document.body||r[0]===t.target)return;let n=t.target;n=n.closest(u),r.unshift(n!=null?n:t.target),r=r.filter(o=>o!=null&&o.isConnected),r.splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});export{r as history};
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};
import type { MutableRefObject } from 'react';
export declare let focusableSelector: string;
export declare enum Focus {

@@ -3,0 +4,0 @@ /** Focus the first non-disabled element */

@@ -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,f as focusableSelector,S as getAutoFocusableElements,b as getFocusableElements,A as isFocusableElement,G as restoreFocusIfNecessary,_ as sortByDomNode};

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

import{env as n}from'./env.js';function u(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty("current")&&r.current instanceof Node?r.current.ownerDocument:document}export{u as getOwnerDocument};
import{env as t}from'./env.js';function o(n){var e,r;return t.isServer?null:n?"ownerDocument"in n?n.ownerDocument:"current"in n?(r=(e=n.current)==null?void 0:e.ownerDocument)!=null?r:document:null:document}export{o as getOwnerDocument};

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

import { type ElementType, type ReactElement, type Ref } from 'react';
import type { Expand, Props, XOR, __ } from '../types.js';
import React, { type ElementType, type Ref } from 'react';
import type { Expand, Props } from '../types.js';
export declare enum RenderFeatures {

@@ -24,11 +24,11 @@ /** No features at all */

}
type PropsForFeature<TPassedInFeatures extends RenderFeatures, TForFeature extends RenderFeatures, TProps> = {
[P in TPassedInFeatures]: P extends TForFeature ? TProps : __;
}[TPassedInFeatures];
export type PropsForFeatures<T extends RenderFeatures> = XOR<PropsForFeature<T, RenderFeatures.Static, {
type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;
type PropsForFeature<TPassedInFeatures extends RenderFeatures, TForFeature extends RenderFeatures, TProps> = TPassedInFeatures extends TForFeature ? TProps : {};
export type PropsForFeatures<T extends RenderFeatures> = Expand<UnionToIntersection<PropsForFeature<T, RenderFeatures.Static, {
static?: boolean;
}>, PropsForFeature<T, RenderFeatures.RenderStrategy, {
}> | PropsForFeature<T, RenderFeatures.RenderStrategy, {
unmount?: boolean;
}>>;
export declare function render<TFeature extends RenderFeatures, TTag extends ElementType, TSlot>({ ourProps, theirProps, slot, defaultTag, features, visible, name, mergeRefs, }: {
}>>>;
export declare function useRender(): typeof render;
declare function render<TFeature extends RenderFeatures, TTag extends ElementType, TSlot>({ ourProps, theirProps, slot, defaultTag, features, visible, name, mergeRefs, }: {
ourProps: Expand<Props<TTag, TSlot, any> & PropsForFeatures<TFeature>> & {

@@ -44,3 +44,6 @@ ref?: Ref<HTMLElement | ElementType>;

mergeRefs?: ReturnType<typeof useMergeRefsFn>;
}): ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
}): ReturnType<typeof _render> | null;
declare function _render<TTag extends ElementType, TSlot>(props: Props<TTag, TSlot> & {
ref?: unknown;
}, slot: TSlot | undefined, tag: ElementType, name: string, mergeRefs: ReturnType<typeof useMergeRefsFn>): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
/**

@@ -59,3 +62,3 @@ * This is a singleton hook. **You can ONLY call the returned

*/
export declare function useMergeRefsFn(): (...refs: any[]) => ((value: any) => void) | undefined;
declare function useMergeRefsFn(): (...refs: any[]) => ((value: any) => void) | undefined;
export type HasDisplayName = {

@@ -62,0 +65,0 @@ displayName: string;

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

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

@@ -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.056b311",
"version": "0.0.0-insiders.058a14b",
"description": "A set of completely unstyled, fully accessible UI components for React, designed to integrate beautifully with Tailwind CSS.",

@@ -45,19 +45,20 @@ "main": "dist/index.cjs",

"peerDependencies": {
"react": "^16 || ^17 || ^18",
"react-dom": "^16 || ^17 || ^18"
"react": "^18 || ^19 || ^19.0.0-rc",
"react-dom": "^18 || ^19 || ^19.0.0-rc"
},
"devDependencies": {
"@testing-library/react": "^13.0.0",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"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",
"jsdom-testing-mocks": "^1.13.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"snapshot-diff": "^0.10.0"
},
"dependencies": {
"@floating-ui/react": "^0.26.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",
"@react-aria/focus": "^3.17.1",
"@react-aria/interactions": "^3.21.3",
"@tanstack/react-virtual": "^3.11.1"
}
}

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc