Socket
Socket
Sign inDemoInstall

@headlessui/react

Package Overview
Dependencies
22
Maintainers
4
Versions
675
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.0-insiders.2b7a57e to 0.0.0-insiders.2d3ec80

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

2

dist/components/button/button.js

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

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

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

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

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

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

@@ -96,5 +69,6 @@ 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 = {

@@ -109,5 +83,7 @@ open: boolean;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -39,3 +40,3 @@ autofocus: boolean;

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;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
export interface _internal_ComponentDisclosure extends HasDisplayName {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"use client";import p from"react";import{forwardRefWithAs as r}from'../../utils/render.js';import{Label as e}from'../label/label.js';let a=e;function o(n,t){return p.createElement(e,{as:"div",ref:t,...n})}let d=r(o);export{d as Legend};
"use client";import p from"react";import{forwardRefWithAs as r}from'../../utils/render.js';import{Label as e}from'../label/label.js';let a=e;function o(t,n){return p.createElement(e,{as:"div",ref:n,...t})}let d=r(o);export{d as Legend};

@@ -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,7 @@ open: boolean;

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

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

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

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

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

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

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

@@ -39,2 +40,3 @@ };

anchor?: AnchorProps;
portal?: boolean;
modal?: boolean;

@@ -44,3 +46,3 @@ static?: 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<{

@@ -104,9 +106,15 @@ children?: React.ReactNode;

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

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

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

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

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

@@ -38,3 +39,3 @@ };

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;
declare function OverlayFn<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: PopoverOverlayProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare let DEFAULT_PANEL_TAG: "div";

@@ -49,2 +50,3 @@ type PanelRenderPropArg = {

anchor?: AnchorProps;
portal?: boolean;
modal?: boolean;

@@ -54,3 +56,3 @@ static?: boolean;

}>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: PopoverPanelProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: PopoverPanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_GROUP_TAG: "div";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

selected: boolean;
focus: boolean;
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -1,10 +0,16 @@

export declare function transition(node: HTMLElement, classes: {
base: string[];
enter: string[];
enterFrom: string[];
enterTo: string[];
leave: string[];
leaveFrom: string[];
leaveTo: string[];
entered: string[];
}, show: boolean, done?: () => void): () => void;
import type { MutableRefObject } from 'react';
export declare function transition(node: HTMLElement, { direction, done, classes, inFlight, }: {
direction: 'enter' | 'leave';
done?: () => void;
classes: {
base: string[];
enter: string[];
enterFrom: string[];
enterTo: string[];
leave: string[];
leaveFrom: string[];
leaveTo: string[];
entered: string[];
};
inFlight?: MutableRefObject<boolean>;
}): () => void;

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

import{disposables as s}from'../../../utils/disposables.js';import{match as g}from'../../../utils/match.js';import{once as b}from'../../../utils/once.js';function v(t,...e){t&&e.length>0&&t.classList.add(...e)}function f(t,...e){t&&e.length>0&&t.classList.remove(...e)}function F(t,e){let i=s();if(!t)return i.dispose;let{transitionDuration:u,transitionDelay:a}=getComputedStyle(t),[m,d]=[u,a].map(l=>{let[r=0]=l.split(",").filter(Boolean).map(o=>o.includes("ms")?parseFloat(o):parseFloat(o)*1e3).sort((o,p)=>p-o);return r}),n=m+d;if(n!==0){let l=i.group(r=>{let o=r.setTimeout(()=>{e(),r.dispose()},n);r.addEventListener(t,"transitionrun",p=>{p.target===p.currentTarget&&(o(),r.addEventListener(t,"transitioncancel",T=>{T.target===T.currentTarget&&(e(),l())}))})});i.addEventListener(t,"transitionend",r=>{r.target===r.currentTarget&&(e(),i.dispose())})}else e();return i.add(()=>e()),i.dispose}function y(t,e,i,u){let a=i?"enter":"leave",m=s(),d=u!==void 0?b(u):()=>{};a==="enter"&&(t.removeAttribute("hidden"),t.style.display="");let n=g(a,{enter:()=>e.enter,leave:()=>e.leave}),l=g(a,{enter:()=>e.enterTo,leave:()=>e.leaveTo}),r=g(a,{enter:()=>e.enterFrom,leave:()=>e.leaveFrom});return f(t,...e.base,...e.enter,...e.enterTo,...e.enterFrom,...e.leave,...e.leaveFrom,...e.leaveTo,...e.entered),v(t,...e.base,...n,...r),m.nextFrame(()=>{f(t,...e.base,...n,...r),v(t,...e.base,...n,...l),F(t,()=>(f(t,...e.base,...n),v(t,...e.base,...e.entered),d()))}),m.dispose}export{y as transition};
import{disposables as g}from'../../../utils/disposables.js';import{match as d}from'../../../utils/match.js';import{once as E}from'../../../utils/once.js';function v(t,...r){t&&r.length>0&&t.classList.add(...r)}function T(t,...r){t&&r.length>0&&t.classList.remove(...r)}function L(t,r){let n=E(r),e=g();if(!t)return e.dispose;let{transitionDuration:o,transitionDelay:m}=getComputedStyle(t),[s,u]=[o,m].map(a=>{let[i=0]=a.split(",").filter(Boolean).map(l=>l.includes("ms")?parseFloat(l):parseFloat(l)*1e3).sort((l,f)=>f-l);return i}),p=s+u;if(p!==0){let a=e.group(i=>{let l=i.setTimeout(()=>{n(),i.dispose()},p);i.addEventListener(t,"transitionrun",f=>{f.target===f.currentTarget&&(l(),i.addEventListener(t,"transitioncancel",b=>{b.target===b.currentTarget&&(n(),a())}))})});e.addEventListener(t,"transitionend",i=>{i.target===i.currentTarget&&(n(),e.dispose())})}else n();return e.dispose}function F(t,{direction:r,done:n,classes:e,inFlight:o}){let m=g(),s=n!==void 0?E(n):()=>{};r==="enter"&&(t.removeAttribute("hidden"),t.style.display="");let u=d(r,{enter:()=>e.enter,leave:()=>e.leave}),p=d(r,{enter:()=>e.enterTo,leave:()=>e.leaveTo}),a=d(r,{enter:()=>e.enterFrom,leave:()=>e.leaveFrom});return M(t,{prepare(){T(t,...e.base,...e.enter,...e.enterTo,...e.enterFrom,...e.leave,...e.leaveFrom,...e.leaveTo,...e.entered),v(t,...e.base,...u,...a)},inFlight:o}),o&&(o.current=!0),m.nextFrame(()=>{m.add(L(t,()=>(T(t,...e.base,...u),v(t,...e.base,...e.entered,...p),o&&(o.current=!1),s()))),T(t,...e.base,...u,...a),v(t,...e.base,...u,...p)}),m.dispose}function M(t,{inFlight:r,prepare:n}){if(r!=null&&r.current){n();return}let e=t.style.transition;t.style.transition="none",n(),t.offsetHeight,t.style.transition=e}export{F as transition};

@@ -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};
import { type MutableRefObject } from 'react';
export declare function useDidElementMove(element: MutableRefObject<HTMLElement | null>, enabled?: boolean): boolean;
export declare function useDidElementMove(enabled: boolean, element: MutableRefObject<HTMLElement | null>): boolean;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

import type { MutableRefObject } from 'react';
import { type MutableRefObject } from 'react';
interface TransitionArgs {
immediate: boolean;
container: MutableRefObject<HTMLElement | null>;

@@ -19,3 +18,3 @@ classes: MutableRefObject<{

}
export declare function useTransition({ immediate, container, direction, classes, onStart, onStop, }: TransitionArgs): void;
export declare function useTransition({ container, direction, classes, onStart, onStop }: TransitionArgs): void;
export {};

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

import{transition as f}from'../components/transition/utils/transition.js';import{disposables as m}from'../utils/disposables.js';import{useDisposables as p}from'./use-disposables.js';import{useIsMounted as b}from'./use-is-mounted.js';import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';import{useLatestValue as g}from'./use-latest-value.js';function A({immediate:t,container:s,direction:n,classes:u,onStart:a,onStop:c}){let l=b(),d=p(),e=g(n);o(()=>{t&&(e.current="enter")},[t]),o(()=>{let r=m();d.add(r.dispose);let i=s.current;if(i&&e.current!=="idle"&&l.current)return r.dispose(),a.current(e.current),r.add(f(i,u.current,e.current==="enter",()=>{r.dispose(),c.current(e.current)})),r.dispose},[n])}export{A as useTransition};
import{useRef as u}from"react";import{transition as f}from'../components/transition/utils/transition.js';import{useDisposables as c}from'./use-disposables.js';import{useIsMounted as m}from'./use-is-mounted.js';import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';function v({container:i,direction:e,classes:s,onStart:o,onStop:t}){let a=m(),r=c(),l=u(!1);d(()=>{if(e==="idle"||!a.current)return;o.current(e);let n=i.current;return n?r.add(f(n,{direction:e,classes:s.current,inFlight:l,done(){t.current(e)}})):t.current(e),r.dispose},[e])}export{v as useTransition};
type AcceptNode = (node: HTMLElement) => typeof NodeFilter.FILTER_ACCEPT | typeof NodeFilter.FILTER_SKIP | typeof NodeFilter.FILTER_REJECT;
export declare function useTreeWalker({ container, accept, walk, enabled, }: {
export declare function useTreeWalker(enabled: boolean, { container, accept, walk, }: {
container: HTMLElement | null;
accept: AcceptNode;
walk(node: HTMLElement): void;
enabled?: boolean;
}): void;
export {};

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

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

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

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

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

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

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

export*from'./components/button/button.js';export*from'./components/checkbox/checkbox.js';export*from'./components/combobox/combobox.js';export*from'./components/data-interactive/data-interactive.js';import{Description as m}from'./components/description/description.js';export*from'./components/dialog/dialog.js';export*from'./components/disclosure/disclosure.js';export*from'./components/field/field.js';export*from'./components/fieldset/fieldset.js';export*from'./components/focus-trap/focus-trap.js';export*from'./components/input/input.js';import{Label as c}from'./components/label/label.js';export*from'./components/legend/legend.js';export*from'./components/listbox/listbox.js';export*from'./components/menu/menu.js';export*from'./components/popover/popover.js';import{Portal as g}from'./components/portal/portal.js';export*from'./components/radio-group/radio-group.js';export*from'./components/select/select.js';export*from'./components/switch/switch.js';export*from'./components/tabs/tabs.js';export*from'./components/textarea/textarea.js';export*from'./components/transition/transition.js';export{m as Description,c as Label,g as Portal};
export*from'./components/button/button.js';export*from'./components/checkbox/checkbox.js';export*from'./components/close-button/close-button.js';export*from'./components/combobox/combobox.js';export*from'./components/data-interactive/data-interactive.js';import{Description as x}from'./components/description/description.js';export*from'./components/dialog/dialog.js';export*from'./components/disclosure/disclosure.js';export*from'./components/field/field.js';export*from'./components/fieldset/fieldset.js';export*from'./components/focus-trap/focus-trap.js';export*from'./components/input/input.js';import{Label as n}from'./components/label/label.js';export*from'./components/legend/legend.js';export*from'./components/listbox/listbox.js';export*from'./components/menu/menu.js';export*from'./components/popover/popover.js';import{Portal as d}from'./components/portal/portal.js';export*from'./components/radio-group/radio-group.js';export*from'./components/select/select.js';export*from'./components/switch/switch.js';export*from'./components/tabs/tabs.js';export*from'./components/textarea/textarea.js';import{useClose as w}from'./internal/close-provider.js';export*from'./components/transition/transition.js';export{x as Description,n as Label,d as Portal,w as useClose};

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

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

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

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

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

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

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

};
export declare function useFloatingPanel(placement?: AnchorPropsWithSelection & InternalFloatingPanelProps): readonly [((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void), React.CSSProperties | undefined];
export declare function useFloatingPanel(placement?: (AnchorPropsWithSelection & InternalFloatingPanelProps) | null): readonly [((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void), React.CSSProperties | undefined];
export declare function FloatingProvider({ children, enabled, }: {

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

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

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

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

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

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

import{forwardRefWithAs as p,render as i}from'../utils/render.js';let a="div";var s=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(s||{});function l(t,o){var n;let{features:d=1,...e}=t,r={ref:o,"aria-hidden":(d&2)===2?!0:(n=e["aria-hidden"])!=null?n:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(d&4)===4&&(d&2)!==2&&{display:"none"}}};return i({ourProps:r,theirProps:e,slot:{},defaultTag:a,name:"Hidden"})}let H=p(l);export{H as Hidden,s as HiddenFeatures};
import{forwardRefWithAs as i,render as p}from'../utils/render.js';let a="div";var s=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,"aria-hidden":(d&2)===2?!0:(n=e["aria-hidden"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(d&4)===4&&(d&2)!==2&&{display:"none"}}};return p({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:"Hidden"})}let T=i(l);export{T as Hidden,s as HiddenFeatures};
export type Disposables = ReturnType<typeof disposables>;
/**
* Disposables are a way to manage event handlers and functions like
* `setTimeout` and `requestAnimationFrame` that need to be cleaned up when they
* are no longer needed.
*
*
* When you register a disposable function, it is added to a collection of
* disposables. Each disposable in the collection provides a `dispose` clean up
* function that can be called when it's no longer needed. There is also a
* `dispose` function on the collection itself that can be used to clean up all
* pending disposables in that collection.
*/
export declare function disposables(): {

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

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

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

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

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

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

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

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

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

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

"peerDependencies": {
"react": "^16 || ^17 || ^18",
"react-dom": "^16 || ^17 || ^18"
"react": "^18",
"react-dom": "^18"
},
"devDependencies": {
"@testing-library/react": "^13.0.0",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"esbuild": "^0.11.18",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"snapshot-diff": "^0.8.1"
"@testing-library/react": "^15.0.7",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"snapshot-diff": "^0.10.0"
},
"dependencies": {
"@floating-ui/react": "^0.26.2",
"@tanstack/react-virtual": "3.0.0-beta.60",
"@react-aria/focus": "^3.14.3",
"@react-aria/interactions": "3.0.0-nightly.2584"
"@floating-ui/react": "^0.26.16",
"@tanstack/react-virtual": "3.5.0",
"@react-aria/focus": "^3.17.1",
"@react-aria/interactions": "^3.21.3"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc