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

@headlessui/react

Package Overview
Dependencies
Maintainers
4
Versions
736
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@headlessui/react - npm Package Compare versions

Comparing version 0.0.0-insiders.b6aa1d6 to 0.0.0-insiders.b6f355d

dist/components/popover-backdrop/popover-backdrop.d.ts

2

dist/components/button/button.d.ts

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

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

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

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

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

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

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

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

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

virtual?: {
options: NoInfer<TValue>[];
disabled?: (value: NoInfer<TValue>) => boolean;
options: TMultiple extends true ? EnsureArray<NoInfer<TValue>> : NoInfer<TValue>[];
disabled?: (value: TMultiple extends true ? EnsureArray<NoInfer<TValue>>[number] : NoInfer<TValue>) => boolean;
} | null;

@@ -73,3 +73,3 @@ onClose?(): void;

open: boolean;
option: unknown;
option: any;
};

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

modal?: boolean;
transition?: boolean;
}>;
declare function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ComboboxOptionsProps<TTag>, ref: Ref<HTMLUListElement>): React.JSX.Element;
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";

@@ -100,11 +101,11 @@ type OptionRenderPropArg = {

}>;
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, TMultiple extends boolean | undefined = false, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, TMultiple, TTag> & RefProp<typeof ComboboxFn>): JSX.Element;
<TValue, TMultiple extends boolean | undefined = false, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, TMultiple, TTag> & RefProp<typeof ComboboxFn>): React.JSX.Element;
}
export interface _internal_ComponentComboboxButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ComboboxButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: ComboboxButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export interface _internal_ComponentComboboxInput extends HasDisplayName {
<TType, TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: ComboboxInputProps<TTag, TType> & RefProp<typeof InputFn>): JSX.Element;
<TType, TTag extends ElementType = typeof DEFAULT_INPUT_TAG>(props: ComboboxInputProps<TTag, TType> & RefProp<typeof InputFn>): React.JSX.Element;
}

@@ -114,6 +115,6 @@ export interface _internal_ComponentComboboxLabel extends _internal_ComponentLabel {

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

@@ -128,9 +129,13 @@ declare let ComboboxRoot: _internal_ComponentCombobox;

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

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

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

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

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

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

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

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

string | undefined,
(props: DescriptionProviderProps) => JSX.Element
(props: DescriptionProviderProps) => React.JSX.Element
];
declare let DEFAULT_DESCRIPTION_TAG: "p";
export type DescriptionProps<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = Props<TTag>;
declare function DescriptionFn<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag>, ref: Ref<HTMLParagraphElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
declare function DescriptionFn<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag>, ref: Ref<HTMLElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export interface _internal_ComponentDescription extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag> & RefProp<typeof DescriptionFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(props: DescriptionProps<TTag> & RefProp<typeof DescriptionFn>): React.JSX.Element;
}
export declare let Description: _internal_ComponentDescription;
export {};

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

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

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

open?: boolean;
onClose(value: boolean): void;
onClose: (value: boolean) => void;
initialFocus?: MutableRefObject<HTMLElement | null>;
role?: 'dialog' | 'alertdialog';
autoFocus?: boolean;
transition?: boolean;
__demoMode?: boolean;
}>;
declare function DialogFn<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(props: DialogProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare let DEFAULT_OVERLAY_TAG: "div";
type OverlayRenderPropArg = {
declare function DialogFn<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(props: DialogProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_PANEL_TAG: "div";
type PanelRenderPropArg = {
open: boolean;
};
type OverlayPropsWeControl = 'aria-hidden';
export type DialogOverlayProps<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG> = Props<TTag, OverlayRenderPropArg, OverlayPropsWeControl>;
declare function OverlayFn<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: DialogOverlayProps<TTag>, ref: Ref<HTMLDivElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, never, {
transition?: boolean;
}>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_BACKDROP_TAG: "div";

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

};
type BackdropPropsWeControl = 'aria-hidden';
export type DialogBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = Props<TTag, BackdropRenderPropArg, BackdropPropsWeControl>;
declare function BackdropFn<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: DialogBackdropProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare let DEFAULT_PANEL_TAG: "div";
type PanelRenderPropArg = {
open: boolean;
};
export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DialogPanelProps<TTag>, ref: Ref<HTMLDivElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
export type DialogBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = Props<TTag, BackdropRenderPropArg, never, {
transition?: boolean;
}>;
declare function BackdropFn<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: DialogBackdropProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_TITLE_TAG: "h2";

@@ -47,23 +44,19 @@ type TitleRenderPropArg = {

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

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

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

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

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

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

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

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

@@ -39,12 +39,14 @@ type DisclosurePropsWeControl = never;

declare let PanelRenderFeatures: number;
export type DisclosurePanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, DisclosurePanelPropsWeControl, PropsForFeatures<typeof PanelRenderFeatures>>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
export type DisclosurePanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, DisclosurePanelPropsWeControl, {
transition?: boolean;
} & PropsForFeatures<typeof PanelRenderFeatures>>;
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
export interface _internal_ComponentDisclosure extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag> & RefProp<typeof DisclosureFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag> & RefProp<typeof DisclosureFn>): React.JSX.Element;
}
export interface _internal_ComponentDisclosureButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: DisclosureButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: DisclosureButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export interface _internal_ComponentDisclosurePanel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag> & RefProp<typeof PanelFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag> & RefProp<typeof PanelFn>): React.JSX.Element;
}

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

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

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

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

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

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

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

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

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

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

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

import { type ElementType } from 'react';
import React, { type ElementType } from 'react';
import type { Props } from '../../types.js';
import { type HasDisplayName } from '../../utils/render.js';
declare let DEFAULT_FIELDSET_TAG: "div";
declare let DEFAULT_FIELDSET_TAG: "fieldset";
type FieldsetRenderPropArg = {};
type FieldsetPropsWeControl = 'aria-controls';
type FieldsetPropsWeControl = 'aria-labelledby' | 'aria-disabled' | 'role';
export type FieldsetProps<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG> = Props<TTag, FieldsetRenderPropArg, FieldsetPropsWeControl, {

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

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

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

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

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

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

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

}>;
declare function FocusTrapFn<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function FocusTrapFn<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
export interface _internal_ComponentFocusTrap extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag> & RefProp<typeof FocusTrapFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(props: FocusTrapProps<TTag> & RefProp<typeof FocusTrapFn>): React.JSX.Element;
}
export declare let FocusTrap: _internal_ComponentFocusTrap & {
/** @deprecated use `FocusTrapFeatures` instead of `FocusTrap.features` */
features: typeof FocusTrapFeatures;
};
export {};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -57,2 +58,3 @@ 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;

modal?: boolean;
transition?: boolean;
} & PropsForFeatures<typeof OptionsRenderFeatures>>;

@@ -86,6 +88,6 @@ declare function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(props: ListboxOptionsProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;

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

@@ -95,9 +97,9 @@ export interface _internal_ComponentListboxLabel extends _internal_ComponentLabel {

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

@@ -112,8 +114,13 @@ declare let ListboxRoot: _internal_ComponentListbox;

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

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

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

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

modal?: boolean;
transition?: boolean;
static?: boolean;
unmount?: boolean;
}>;
declare function ItemsFn<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(props: MenuItemsProps<TTag>, ref: Ref<HTMLDivElement>): React.JSX.Element;
declare function ItemsFn<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(props: MenuItemsProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
declare let DEFAULT_ITEM_TAG: React.ExoticComponent<{

@@ -77,21 +78,21 @@ children?: React.ReactNode;

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

@@ -105,9 +106,15 @@ export declare let MenuButton: _internal_ComponentMenuButton;

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

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

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

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

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

@@ -32,10 +32,13 @@ type PopoverPropsWeControl = never;

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

@@ -52,6 +55,7 @@ type PanelRenderPropArg = {

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

@@ -63,26 +67,34 @@ type GroupRenderPropArg = {};

export interface _internal_ComponentPopover extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_POPOVER_TAG>(props: PopoverProps<TTag> & RefProp<typeof PopoverFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_POPOVER_TAG>(props: PopoverProps<TTag> & RefProp<typeof PopoverFn>): React.JSX.Element;
}
export interface _internal_ComponentPopoverButton extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: PopoverButtonProps<TTag> & RefProp<typeof ButtonFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: PopoverButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
}
export interface _internal_ComponentPopoverOverlay extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG>(props: PopoverOverlayProps<TTag> & RefProp<typeof OverlayFn>): JSX.Element;
export interface _internal_ComponentPopoverBackdrop extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(props: PopoverBackdropProps<TTag> & RefProp<typeof BackdropFn>): React.JSX.Element;
}
export interface _internal_ComponentPopoverPanel extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: PopoverPanelProps<TTag> & RefProp<typeof PanelFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: PopoverPanelProps<TTag> & RefProp<typeof PanelFn>): React.JSX.Element;
}
export interface _internal_ComponentPopoverGroup extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: PopoverGroupProps<TTag> & RefProp<typeof GroupFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: PopoverGroupProps<TTag> & RefProp<typeof GroupFn>): React.JSX.Element;
}
export declare let PopoverButton: _internal_ComponentPopoverButton;
export declare let PopoverOverlay: _internal_ComponentPopoverOverlay;
/** @deprecated use `<PopoverBackdrop>` instead of `<PopoverOverlay>` */
export declare let PopoverOverlay: _internal_ComponentPopoverBackdrop;
export declare let PopoverBackdrop: _internal_ComponentPopoverBackdrop;
export declare let PopoverPanel: _internal_ComponentPopoverPanel;
export declare let PopoverGroup: _internal_ComponentPopoverGroup;
export declare let Popover: _internal_ComponentPopover & {
/** @deprecated use `<PopoverButton>` instead of `<Popover.Button>` */
Button: _internal_ComponentPopoverButton;
Overlay: _internal_ComponentPopoverOverlay;
/** @deprecated use `<PopoverBackdrop>` instead of `<Popover.Backdrop>` */
Backdrop: _internal_ComponentPopoverBackdrop;
/** @deprecated use `<PopoverOverlay>` instead of `<Popover.Overlay>` */
Overlay: _internal_ComponentPopoverBackdrop;
/** @deprecated use `<PopoverPanel>` instead of `<Popover.Panel>` */
Panel: _internal_ComponentPopoverPanel;
/** @deprecated use `<PopoverGroup>` instead of `<Popover.Group>` */
Group: _internal_ComponentPopoverGroup;
};
export {};

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

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

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

enabled?: boolean;
ownerDocument?: Document | null;
}>;

@@ -27,11 +28,12 @@ declare function PortalFn<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG>(props: PortalProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element | null;

export interface _internal_ComponentPortal extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG>(props: PortalProps<TTag> & RefProp<typeof PortalFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG>(props: PortalProps<TTag> & RefProp<typeof PortalFn>): React.JSX.Element;
}
export interface _internal_ComponentPortalGroup extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: PortalGroupProps<TTag> & RefProp<typeof GroupFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: PortalGroupProps<TTag> & RefProp<typeof GroupFn>): React.JSX.Element;
}
export declare let PortalGroup: _internal_ComponentPortalGroup;
export declare let Portal: _internal_ComponentPortal & {
/** @deprecated use `<PortalGroup>` instead of `<Portal.Group>` */
Group: _internal_ComponentPortalGroup;
};
export {};

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

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

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

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

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

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

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

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

@@ -80,0 +84,0 @@ Label: _internal_ComponentRadioLabel;

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

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

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

export interface _internal_ComponentSelect extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag> & RefProp<typeof SelectFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(props: SelectProps<TTag> & RefProp<typeof SelectFn>): React.JSX.Element;
}
export declare let Select: _internal_ComponentSelect;
export {};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

export interface _internal_ComponentTextarea extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag> & RefProp<typeof TextareaFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(props: TextareaProps<TTag> & RefProp<typeof TextareaFn>): React.JSX.Element;
}
export declare let Textarea: _internal_ComponentTextarea;
export {};

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

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

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

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

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

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

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

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

export type TransitionChildProps<TTag extends ReactTag> = Props<TTag, TransitionChildRenderPropArg, TransitionChildPropsWeControl, PropsForFeatures<typeof TransitionChildRenderFeatures> & TransitionClasses & TransitionEvents & {
transition?: boolean;
appear?: boolean;

@@ -30,3 +31,3 @@ }>;

}>;
type TransitionChildRenderPropArg = MutableRefObject<HTMLDivElement>;
type TransitionChildRenderPropArg = MutableRefObject<HTMLElement>;
declare let TransitionChildRenderFeatures: RenderFeatures;

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

export interface _internal_ComponentTransitionRoot extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionRootProps<TTag> & RefProp<typeof TransitionRootFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionRootProps<TTag> & RefProp<typeof TransitionRootFn>): React.JSX.Element;
}
export interface _internal_ComponentTransitionChild extends HasDisplayName {
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionChildProps<TTag> & RefProp<typeof TransitionChildFn>): JSX.Element;
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionChildProps<TTag> & RefProp<typeof TransitionChildFn>): React.JSX.Element;
}
export declare let TransitionChild: _internal_ComponentTransitionChild;
export declare let Transition: _internal_ComponentTransitionRoot & {
/** @deprecated use `<TransitionChild>` instead of `<Transition.Child>` */
Child: _internal_ComponentTransitionChild;
/** @deprecated use `<Transition>` instead of `<Transition.Root>` */
Root: _internal_ComponentTransitionRoot;
};
export {};

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

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

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

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

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

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

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

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

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

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

import{useEffect as m}from"react";import{useLatestValue as c}from'./use-latest-value.js';function d(e,r,n){let o=c(r);m(()=>{function t(u){o.current(u)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)},[e,n])}export{d as useDocumentEvent};
import{useEffect as c}from"react";import{useLatestValue as a}from'./use-latest-value.js';function i(t,e,o,n){let u=a(o);c(()=>{if(!t)return;function r(m){u.current(m)}return document.addEventListener(e,r,n),()=>document.removeEventListener(e,r,n)},[t,e,n])}export{i as useDocumentEvent};

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

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

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

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

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

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

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

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

@@ -26,5 +26,5 @@ /**

*/
export declare function useInertOthers({ allowed, disallowed, }?: {
export declare function useInertOthers(enabled: boolean, { allowed, disallowed, }?: {
allowed?: () => (HTMLElement | null)[];
disallowed?: () => (HTMLElement | null)[];
}, enabled?: boolean): void;
}): void;

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

import{disposables as p}from'../utils/disposables.js';import{getOwnerDocument as E}from'../utils/owner.js';import{useIsoMorphicEffect as m}from'./use-iso-morphic-effect.js';let a=new Map,u=new Map;function s(t){var e;let r=(e=u.get(t))!=null?e:0;return u.set(t,r+1),r!==0?()=>c(t):(a.set(t,{"aria-hidden":t.getAttribute("aria-hidden"),inert:t.inert}),t.setAttribute("aria-hidden","true"),t.inert=!0,()=>c(t))}function c(t){var i;let r=(i=u.get(t))!=null?i:1;if(r===1?u.delete(t):u.set(t,r-1),r!==1)return;let e=a.get(t);e&&(e["aria-hidden"]===null?t.removeAttribute("aria-hidden"):t.setAttribute("aria-hidden",e["aria-hidden"]),t.inert=e.inert,a.delete(t))}function H({allowed:t=()=>[],disallowed:r=()=>[]}={},e=!0){m(()=>{if(!e)return;let i=p();for(let n of r())n&&i.add(s(n));let d=t();for(let n of d){if(!n)continue;let l=E(n);if(!l)continue;let o=n.parentElement;for(;o&&o!==l.body;){for(let f of o.childNodes)d.some(h=>f.contains(h))||i.add(s(f));o=o.parentElement}}return i.dispose},[e,t,r])}export{H as useInertOthers};
import{disposables as M}from'../utils/disposables.js';import{getOwnerDocument as b}from'../utils/owner.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useIsoMorphicEffect as T}from'./use-iso-morphic-effect.js';let f=new Map,u=new Map;function h(t){var e;let r=(e=u.get(t))!=null?e:0;return u.set(t,r+1),r!==0?()=>m(t):(f.set(t,{"aria-hidden":t.getAttribute("aria-hidden"),inert:t.inert}),t.setAttribute("aria-hidden","true"),t.inert=!0,()=>m(t))}function m(t){var i;let r=(i=u.get(t))!=null?i:1;if(r===1?u.delete(t):u.set(t,r-1),r!==1)return;let e=f.get(t);e&&(e["aria-hidden"]===null?t.removeAttribute("aria-hidden"):t.setAttribute("aria-hidden",e["aria-hidden"]),t.inert=e.inert,f.delete(t))}function y(t,{allowed:r,disallowed:e}={}){let i=L(t,"inert-others");T(()=>{var d,c;if(!i)return;let a=M();for(let n of(d=e==null?void 0:e())!=null?d:[])n&&a.add(h(n));let s=(c=r==null?void 0:r())!=null?c:[];for(let n of s){if(!n)continue;let l=b(n);if(!l)continue;let o=n.parentElement;for(;o&&o!==l.body;){for(let p of o.children)s.some(E=>p.contains(E))||a.add(h(p));o=o.parentElement}}return a.dispose},[i,r,e])}export{y as useInertOthers};

@@ -9,2 +9,2 @@ import { type MutableRefObject } from 'react';

*/
export declare function useOnDisappear(ref: MutableRefObject<HTMLElement | null> | HTMLElement | null, cb: () => void, enabled?: boolean): void;
export declare function useOnDisappear(enabled: boolean, ref: MutableRefObject<HTMLElement | null> | HTMLElement | null, cb: () => void): void;

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

import{useEffect as o}from"react";import{disposables as u}from'../utils/disposables.js';import{useLatestValue as c}from'./use-latest-value.js';function m(n,l,s=!0){let i=c(t=>{let e=t.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&l()});o(()=>{if(!s)return;let t=n===null?null:n instanceof HTMLElement?n:n.current;if(!t)return;let e=u();if(typeof ResizeObserver!="undefined"){let r=new ResizeObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}if(typeof IntersectionObserver!="undefined"){let r=new IntersectionObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}return()=>e.dispose()},[n,i,s])}export{m as useOnDisappear};
import{useEffect as o}from"react";import{disposables as u}from'../utils/disposables.js';import{useLatestValue as c}from'./use-latest-value.js';function m(s,n,l){let i=c(t=>{let e=t.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&l()});o(()=>{if(!s)return;let t=n===null?null:n instanceof HTMLElement?n:n.current;if(!t)return;let e=u();if(typeof ResizeObserver!="undefined"){let r=new ResizeObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}if(typeof IntersectionObserver!="undefined"){let r=new IntersectionObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}return()=>e.dispose()},[n,i,s])}export{m as useOnDisappear};

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

import { type MutableRefObject } from 'react';
type Container = MutableRefObject<HTMLElement | null> | HTMLElement | null;
type Container = HTMLElement | null;
type ContainerCollection = Container[] | Set<Container>;
type ContainerInput = Container | ContainerCollection;
export declare function useOutsideClick(containers: ContainerInput | (() => ContainerInput), cb: (event: MouseEvent | PointerEvent | FocusEvent | TouchEvent, target: HTMLElement) => void, enabled?: boolean): void;
export declare function useOutsideClick(enabled: boolean, containers: ContainerInput | (() => ContainerInput), cb: (event: MouseEvent | PointerEvent | FocusEvent | TouchEvent, target: HTMLElement) => void): void;
export {};

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

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

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

import { type MutableRefObject } from 'react';
/**

@@ -8,2 +7,2 @@ * The `useRefocusableInput` hook exposes a function to re-focus the input element.

*/
export declare function useRefocusableInput(ref: MutableRefObject<HTMLInputElement | null>): () => void;
export declare function useRefocusableInput(input: HTMLInputElement | null): () => void;

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

import{useRef as r}from"react";import{useEvent as c}from'./use-event.js';import{useEventListener as i}from'./use-event-listener.js';function f(l){let n=r({value:"",selectionStart:null,selectionEnd:null});return i(l.current,"blur",e=>{let t=e.target;t instanceof HTMLInputElement&&(n.current={value:t.value,selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})}),c(()=>{let e=l.current;if(document.activeElement!==e&&e instanceof HTMLInputElement&&e.isConnected){if(e.focus({preventScroll:!0}),e.value!==n.current.value)e.setSelectionRange(e.value.length,e.value.length);else{let{selectionStart:t,selectionEnd:u}=n.current;t!==null&&u!==null&&e.setSelectionRange(t,u)}n.current={value:"",selectionStart:null,selectionEnd:null}}})}export{f as useRefocusableInput};
import{useRef as r}from"react";import{useEvent as u}from'./use-event.js';import{useEventListener as o}from'./use-event-listener.js';function i(e){let n=r({value:"",selectionStart:null,selectionEnd:null});return o(e,"blur",l=>{let t=l.target;t instanceof HTMLInputElement&&(n.current={value:t.value,selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})}),u(()=>{if(document.activeElement!==e&&e instanceof HTMLInputElement&&e.isConnected){if(e.focus({preventScroll:!0}),e.value!==n.current.value)e.setSelectionRange(e.value.length,e.value.length);else{let{selectionStart:l,selectionEnd:t}=n.current;l!==null&&t!==null&&e.setSelectionRange(l,t)}n.current={value:"",selectionStart:null,selectionEnd:null}}})}export{i as useRefocusableInput};

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

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

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

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

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

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

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

export declare function useScrollLock(ownerDocument: Document | null, enabled: boolean, resolveAllowedContainers?: () => HTMLElement[]): void;
export declare function useScrollLock(enabled: boolean, ownerDocument: Document | null, resolveAllowedContainers?: () => HTMLElement[]): void;

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

import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';function u(e,n,c=()=>[document.body]){l(e,n,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],c]}})}export{u as useScrollLock};
import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';import{useIsTopLayer as m}from'./use-is-top-layer.js';function f(e,c,n=()=>[document.body]){let r=m(e,"scroll-lock");l(r,c,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],n]}})}export{f as useScrollLock};

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

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

@@ -1,19 +0,12 @@

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

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

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

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

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

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

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

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

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

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

import r,{createContext as n,useContext as i}from"react";let e=n(()=>{});function l(){return i(e)}function u({value:o,children:t}){return r.createElement(e.Provider,{value:o},t)}export{u as CloseProvider,l as useClose};
"use client";import r,{createContext as n,useContext as i}from"react";let e=n(()=>{});function u(){return i(e)}function C({value:t,children:o}){return r.createElement(e.Provider,{value:t},o)}export{C as CloseProvider,u as useClose};

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

};
export type AnchorProps = boolean | 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 = boolean | Partial<BaseAnchorProps & {
export type AnchorPropsWithSelection = false | (`${Placement | 'selection'}` | `${Placement | 'selection'} ${Align}`) | Partial<BaseAnchorProps & {
/**

@@ -41,3 +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> | null;
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);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc