Socket
Socket
Sign inDemoInstall

@headlessui/react

Package Overview
Dependencies
22
Maintainers
4
Versions
679
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.0-insiders.6ac6930 to 0.0.0-insiders.6b6c259

dist/hooks/use-transition-data.d.ts

2

dist/components/checkbox/checkbox.js

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

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

@@ -73,3 +74,3 @@ import type { EnsureArray, Props } from '../../types.js';

option: unknown;
};
} & TransitionData;
type OptionsPropsWeControl = 'aria-labelledby' | 'aria-multiselectable' | 'role' | 'tabIndex';

@@ -82,2 +83,3 @@ declare let OptionsRenderFeatures: number;

modal?: boolean;
transition?: boolean;
}>;

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

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

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

@@ -35,6 +36,8 @@ import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js';

close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
};
} & TransitionData;
type DisclosurePanelPropsWeControl = never;
declare let PanelRenderFeatures: number;
export type DisclosurePanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, DisclosurePanelPropsWeControl, PropsForFeatures<typeof PanelRenderFeatures>>;
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;

@@ -41,0 +44,0 @@ export interface _internal_ComponentDisclosure extends HasDisplayName {

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

@@ -50,3 +51,3 @@ import type { Props } from '../../types.js';

open: boolean;
};
} & TransitionData;
type OptionsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'aria-multiselectable' | 'aria-orientation' | 'role' | 'tabIndex';

@@ -58,2 +59,3 @@ declare let OptionsRenderFeatures: number;

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

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

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

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

@@ -35,3 +36,3 @@ import type { Props } from '../../types.js';

open: boolean;
};
} & TransitionData;
type ItemsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'role' | 'tabIndex';

@@ -42,2 +43,3 @@ export type MenuItemsProps<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> = Props<TTag, ItemsRenderPropArg, ItemsPropsWeControl, {

modal?: boolean;
transition?: boolean;
static?: boolean;

@@ -44,0 +46,0 @@ unmount?: boolean;

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

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

@@ -34,6 +35,8 @@ import type { Props } from '../../types.js';

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

@@ -44,3 +47,3 @@ declare let DEFAULT_PANEL_TAG: "div";

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

@@ -52,2 +55,3 @@ export type PopoverPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, PanelPropsWeControl, {

modal?: boolean;
transition?: boolean;
static?: boolean;

@@ -54,0 +58,0 @@ unmount?: boolean;

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

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

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

@@ -17,1 +18,5 @@ direction: 'enter' | 'leave';

}): () => void;
export declare function prepareTransition(node: HTMLElement, { inFlight, prepare }: {
inFlight?: MutableRefObject<boolean>;
prepare: () => void;
}): void;

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

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

@@ -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};
export declare function useFlags(initialFlags?: number): {
flags: number;
setFlag: (flag: number) => void;
addFlag: (flag: number) => void;

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

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

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

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

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

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

import{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,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*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.6ac6930",
"version": "0.0.0-insiders.6b6c259",
"description": "A set of completely unstyled, fully accessible UI components for React, designed to integrate beautifully with Tailwind CSS.",

@@ -49,4 +49,4 @@ "main": "dist/index.cjs",

"devDependencies": {
"@testing-library/react": "^15.0.5",
"@types/react": "^18.3.1",
"@testing-library/react": "^15.0.7",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",

@@ -58,7 +58,7 @@ "react": "^18.3.1",

"dependencies": {
"@floating-ui/react": "^0.26.13",
"@floating-ui/react": "^0.26.16",
"@tanstack/react-virtual": "3.5.0",
"@react-aria/focus": "^3.16.2",
"@react-aria/interactions": "^3.21.1"
"@react-aria/focus": "^3.17.1",
"@react-aria/interactions": "^3.21.3"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc