Socket
Socket
Sign inDemoInstall

@headlessui/react

Package Overview
Dependencies
Maintainers
4
Versions
719
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@headlessui/react - npm Package Compare versions

Comparing version 1.7.16 to 1.7.17

2

dist/components/combobox/combobox.js

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

import z,{Fragment as xe,createContext as ue,createRef as Ce,useCallback as Oe,useContext as pe,useEffect as se,useMemo as _,useReducer as ge,useRef as S}from"react";import{useComputed as te}from'../../hooks/use-computed.js';import{useDisposables as ne}from'../../hooks/use-disposables.js';import{useEvent as C}from'../../hooks/use-event.js';import{useId as q}from'../../hooks/use-id.js';import{useIsoMorphicEffect as k}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as ye}from'../../hooks/use-latest-value.js';import{useOutsideClick as Re}from'../../hooks/use-outside-click.js';import{useResolveButtonType as ve}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as Q}from'../../hooks/use-sync-refs.js';import{useTreeWalker as Pe}from'../../hooks/use-tree-walker.js';import{calculateActiveIndex as Ae,Focus as y}from'../../utils/calculate-active-index.js';import{disposables as be}from'../../utils/disposables.js';import{forwardRefWithAs as H,render as G,compact as Ee,Features as de}from'../../utils/render.js';import{isDisabledReactIssue7711 as Se}from'../../utils/bugs.js';import{match as X}from'../../utils/match.js';import{objectToFormEntries as Ie}from'../../utils/form.js';import{sortByDomNode as Le}from'../../utils/focus-management.js';import{Hidden as Ve,Features as De}from'../../internal/hidden.js';import{useOpenClosed as Fe,State as ee,OpenClosedProvider as Me}from'../../internal/open-closed.js';import{Keys as v}from'../keyboard.js';import{useControllable as _e}from'../../hooks/use-controllable.js';import{useWatch as fe}from'../../hooks/use-watch.js';import{useTrackedPointer as he}from'../../hooks/use-tracked-pointer.js';import{isMobile as Be}from'../../utils/platform.js';var ke=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(ke||{}),we=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(we||{}),Ue=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(Ue||{}),Ne=(n=>(n[n.OpenCombobox=0]="OpenCombobox",n[n.CloseCombobox=1]="CloseCombobox",n[n.GoToOption=2]="GoToOption",n[n.RegisterOption=3]="RegisterOption",n[n.UnregisterOption=4]="UnregisterOption",n[n.RegisterLabel=5]="RegisterLabel",n))(Ne||{});function re(t,l=e=>e){let e=t.activeOptionIndex!==null?t.options[t.activeOptionIndex]:null,r=Le(l(t.options.slice()),b=>b.dataRef.current.domRef.current),i=e?r.indexOf(e):null;return i===-1&&(i=null),{options:r,activeOptionIndex:i}}let He={[1](t){var l;return(l=t.dataRef.current)!=null&&l.disabled||t.comboboxState===1?t:{...t,activeOptionIndex:null,comboboxState:1}},[0](t){var e;if((e=t.dataRef.current)!=null&&e.disabled||t.comboboxState===0)return t;let l=t.activeOptionIndex;if(t.dataRef.current){let{isSelected:r}=t.dataRef.current,i=t.options.findIndex(b=>r(b.dataRef.current.value));i!==-1&&(l=i)}return{...t,comboboxState:0,activeOptionIndex:l}},[2](t,l){var i,b,n,d;if((i=t.dataRef.current)!=null&&i.disabled||(b=t.dataRef.current)!=null&&b.optionsRef.current&&!((n=t.dataRef.current)!=null&&n.optionsPropsRef.current.static)&&t.comboboxState===1)return t;let e=re(t);if(e.activeOptionIndex===null){let o=e.options.findIndex(u=>!u.dataRef.current.disabled);o!==-1&&(e.activeOptionIndex=o)}let r=Ae(l,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:o=>o.id,resolveDisabled:o=>o.dataRef.current.disabled});return{...t,...e,activeOptionIndex:r,activationTrigger:(d=l.trigger)!=null?d:1}},[3]:(t,l)=>{var b,n;let e={id:l.id,dataRef:l.dataRef},r=re(t,d=>[...d,e]);t.activeOptionIndex===null&&(b=t.dataRef.current)!=null&&b.isSelected(l.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(e));let i={...t,...r,activationTrigger:1};return(n=t.dataRef.current)!=null&&n.__demoMode&&t.dataRef.current.value===void 0&&(i.activeOptionIndex=0),i},[4]:(t,l)=>{let e=re(t,r=>{let i=r.findIndex(b=>b.id===l.id);return i!==-1&&r.splice(i,1),r});return{...t,...e,activationTrigger:1}},[5]:(t,l)=>({...t,labelId:l.id})},ae=ue(null);ae.displayName="ComboboxActionsContext";function Y(t){let l=pe(ae);if(l===null){let e=new Error(`<${t} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,Y),e}return l}let le=ue(null);le.displayName="ComboboxDataContext";function j(t){let l=pe(le);if(l===null){let e=new Error(`<${t} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,j),e}return l}function Ge(t,l){return X(l.type,He,t,l)}let Xe=xe;function je(t,l){let{value:e,defaultValue:r,onChange:i,form:b,name:n,by:d=(p,T)=>p===T,disabled:o=!1,__demoMode:u=!1,nullable:P=!1,multiple:f=!1,...E}=t,[c=f?[]:void 0,g]=_e(e,i,r),[m,x]=ge(Ge,{dataRef:Ce(),comboboxState:u?0:1,options:[],activeOptionIndex:null,activationTrigger:1,labelId:null}),V=S(!1),h=S({static:!1,hold:!1}),w=S(null),U=S(null),N=S(null),J=S(null),F=C(typeof d=="string"?(p,T)=>{let R=d;return(p==null?void 0:p[R])===(T==null?void 0:T[R])}:d),B=Oe(p=>X(s.mode,{[1]:()=>c.some(T=>F(T,p)),[0]:()=>F(c,p)}),[c]),s=_(()=>({...m,optionsPropsRef:h,labelRef:w,inputRef:U,buttonRef:N,optionsRef:J,value:c,defaultValue:r,disabled:o,mode:f?1:0,get activeOptionIndex(){if(V.current&&m.activeOptionIndex===null&&m.options.length>0){let p=m.options.findIndex(T=>!T.dataRef.current.disabled);if(p!==-1)return p}return m.activeOptionIndex},compare:F,isSelected:B,nullable:P,__demoMode:u}),[c,r,o,f,P,u,m]),O=S(s.activeOptionIndex!==null?s.options[s.activeOptionIndex]:null);se(()=>{let p=s.activeOptionIndex!==null?s.options[s.activeOptionIndex]:null;O.current!==p&&(O.current=p)}),k(()=>{m.dataRef.current=s},[s]),Re([s.buttonRef,s.inputRef,s.optionsRef],()=>oe.closeCombobox(),s.comboboxState===0);let a=_(()=>({open:s.comboboxState===0,disabled:o,activeIndex:s.activeOptionIndex,activeOption:s.activeOptionIndex===null?null:s.options[s.activeOptionIndex].dataRef.current.value,value:c}),[s,o,c]),L=C(p=>{let T=s.options.find(R=>R.id===p);T&&W(T.dataRef.current.value)}),I=C(()=>{if(s.activeOptionIndex!==null){let{dataRef:p,id:T}=s.options[s.activeOptionIndex];W(p.current.value),oe.goToOption(y.Specific,T)}}),K=C(()=>{x({type:0}),V.current=!0}),A=C(()=>{x({type:1}),V.current=!1}),D=C((p,T,R)=>(V.current=!1,p===y.Specific?x({type:2,focus:y.Specific,id:T,trigger:R}):x({type:2,focus:p,trigger:R}))),M=C((p,T)=>(x({type:3,id:p,dataRef:T}),()=>{var R;((R=O.current)==null?void 0:R.id)===p&&(V.current=!0),x({type:4,id:p})})),ce=C(p=>(x({type:5,id:p}),()=>x({type:5,id:null}))),W=C(p=>X(s.mode,{[0](){return g==null?void 0:g(p)},[1](){let T=s.value.slice(),R=T.findIndex($=>F($,p));return R===-1?T.push(p):T.splice(R,1),g==null?void 0:g(T)}})),oe=_(()=>({onChange:W,registerOption:M,registerLabel:ce,goToOption:D,closeCombobox:A,openCombobox:K,selectActiveOption:I,selectOption:L}),[]),Te=l===null?{}:{ref:l},Z=S(null),me=ne();return se(()=>{Z.current&&r!==void 0&&me.addEventListener(Z.current,"reset",()=>{W(r)})},[Z,W]),z.createElement(ae.Provider,{value:oe},z.createElement(le.Provider,{value:s},z.createElement(Me,{value:X(s.comboboxState,{[0]:ee.Open,[1]:ee.Closed})},n!=null&&c!=null&&Ie({[n]:c}).map(([p,T],R)=>z.createElement(Ve,{features:De.Hidden,ref:R===0?$=>{var ie;Z.current=(ie=$==null?void 0:$.closest("form"))!=null?ie:null}:void 0,...Ee({key:p,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:b,name:p,value:T})})),G({ourProps:Te,theirProps:E,slot:a,defaultTag:Xe,name:"Combobox"}))))}let Je="input";function Ke(t,l){var F,B,s,O;let e=q(),{id:r=`headlessui-combobox-input-${e}`,onChange:i,displayValue:b,type:n="text",...d}=t,o=j("Combobox.Input"),u=Y("Combobox.Input"),P=Q(o.inputRef,l),f=S(!1),E=ne(),c=function(){var a;return typeof b=="function"&&o.value!==void 0?(a=b(o.value))!=null?a:"":typeof o.value=="string"?o.value:""}();fe(([a,L],[I,K])=>{if(f.current)return;let A=o.inputRef.current;A&&((K===0&&L===1||a!==I)&&(A.value=a),requestAnimationFrame(()=>{if(f.current||!A)return;let{selectionStart:D,selectionEnd:M}=A;Math.abs((M!=null?M:0)-(D!=null?D:0))===0&&D===0&&A.setSelectionRange(A.value.length,A.value.length)}))},[c,o.comboboxState]),fe(([a],[L])=>{if(a===0&&L===1){if(f.current)return;let I=o.inputRef.current;if(!I)return;let K=I.value,{selectionStart:A,selectionEnd:D,selectionDirection:M}=I;I.value="",I.value=K,M!==null?I.setSelectionRange(A,D,M):I.setSelectionRange(A,D)}},[o.comboboxState]);let g=S(!1),m=C(()=>{g.current=!0}),x=C(()=>{E.nextFrame(()=>{g.current=!1})}),V=C(a=>{switch(f.current=!0,a.key){case v.Backspace:case v.Delete:if(o.mode!==0||!o.nullable)return;let L=a.currentTarget;E.requestAnimationFrame(()=>{L.value===""&&(u.onChange(null),o.optionsRef.current&&(o.optionsRef.current.scrollTop=0),u.goToOption(y.Nothing))});break;case v.Enter:if(f.current=!1,o.comboboxState!==0||g.current)return;if(a.preventDefault(),a.stopPropagation(),o.activeOptionIndex===null){u.closeCombobox();return}u.selectActiveOption(),o.mode===0&&u.closeCombobox();break;case v.ArrowDown:return f.current=!1,a.preventDefault(),a.stopPropagation(),X(o.comboboxState,{[0]:()=>{u.goToOption(y.Next)},[1]:()=>{u.openCombobox()}});case v.ArrowUp:return f.current=!1,a.preventDefault(),a.stopPropagation(),X(o.comboboxState,{[0]:()=>{u.goToOption(y.Previous)},[1]:()=>{u.openCombobox(),E.nextFrame(()=>{o.value||u.goToOption(y.Last)})}});case v.Home:if(a.shiftKey)break;return f.current=!1,a.preventDefault(),a.stopPropagation(),u.goToOption(y.First);case v.PageUp:return f.current=!1,a.preventDefault(),a.stopPropagation(),u.goToOption(y.First);case v.End:if(a.shiftKey)break;return f.current=!1,a.preventDefault(),a.stopPropagation(),u.goToOption(y.Last);case v.PageDown:return f.current=!1,a.preventDefault(),a.stopPropagation(),u.goToOption(y.Last);case v.Escape:return f.current=!1,o.comboboxState!==0?void 0:(a.preventDefault(),o.optionsRef.current&&!o.optionsPropsRef.current.static&&a.stopPropagation(),u.closeCombobox());case v.Tab:if(f.current=!1,o.comboboxState!==0)return;o.mode===0&&u.selectActiveOption(),u.closeCombobox();break}}),h=C(a=>{i==null||i(a),u.openCombobox()}),w=C(()=>{f.current=!1}),U=te(()=>{if(o.labelId)return[o.labelId].join(" ")},[o.labelId]),N=_(()=>({open:o.comboboxState===0,disabled:o.disabled}),[o]),J={ref:P,id:r,role:"combobox",type:n,"aria-controls":(F=o.optionsRef.current)==null?void 0:F.id,"aria-expanded":o.comboboxState===0,"aria-activedescendant":o.activeOptionIndex===null||(B=o.options[o.activeOptionIndex])==null?void 0:B.id,"aria-labelledby":U,"aria-autocomplete":"list",defaultValue:(O=(s=t.defaultValue)!=null?s:o.defaultValue!==void 0?b==null?void 0:b(o.defaultValue):null)!=null?O:o.defaultValue,disabled:o.disabled,onCompositionStart:m,onCompositionEnd:x,onKeyDown:V,onChange:h,onBlur:w};return G({ourProps:J,theirProps:d,slot:N,defaultTag:Je,name:"Combobox.Input"})}let We="button";function $e(t,l){var g;let e=j("Combobox.Button"),r=Y("Combobox.Button"),i=Q(e.buttonRef,l),b=q(),{id:n=`headlessui-combobox-button-${b}`,...d}=t,o=ne(),u=C(m=>{switch(m.key){case v.ArrowDown:return m.preventDefault(),m.stopPropagation(),e.comboboxState===1&&r.openCombobox(),o.nextFrame(()=>{var x;return(x=e.inputRef.current)==null?void 0:x.focus({preventScroll:!0})});case v.ArrowUp:return m.preventDefault(),m.stopPropagation(),e.comboboxState===1&&(r.openCombobox(),o.nextFrame(()=>{e.value||r.goToOption(y.Last)})),o.nextFrame(()=>{var x;return(x=e.inputRef.current)==null?void 0:x.focus({preventScroll:!0})});case v.Escape:return e.comboboxState!==0?void 0:(m.preventDefault(),e.optionsRef.current&&!e.optionsPropsRef.current.static&&m.stopPropagation(),r.closeCombobox(),o.nextFrame(()=>{var x;return(x=e.inputRef.current)==null?void 0:x.focus({preventScroll:!0})}));default:return}}),P=C(m=>{if(Se(m.currentTarget))return m.preventDefault();e.comboboxState===0?r.closeCombobox():(m.preventDefault(),r.openCombobox()),o.nextFrame(()=>{var x;return(x=e.inputRef.current)==null?void 0:x.focus({preventScroll:!0})})}),f=te(()=>{if(e.labelId)return[e.labelId,n].join(" ")},[e.labelId,n]),E=_(()=>({open:e.comboboxState===0,disabled:e.disabled,value:e.value}),[e]),c={ref:i,id:n,type:ve(t,e.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":(g=e.optionsRef.current)==null?void 0:g.id,"aria-expanded":e.comboboxState===0,"aria-labelledby":f,disabled:e.disabled,onClick:P,onKeyDown:u};return G({ourProps:c,theirProps:d,slot:E,defaultTag:We,name:"Combobox.Button"})}let qe="label";function Qe(t,l){let e=q(),{id:r=`headlessui-combobox-label-${e}`,...i}=t,b=j("Combobox.Label"),n=Y("Combobox.Label"),d=Q(b.labelRef,l);k(()=>n.registerLabel(r),[r]);let o=C(()=>{var f;return(f=b.inputRef.current)==null?void 0:f.focus({preventScroll:!0})}),u=_(()=>({open:b.comboboxState===0,disabled:b.disabled}),[b]);return G({ourProps:{ref:d,id:r,onClick:o},theirProps:i,slot:u,defaultTag:qe,name:"Combobox.Label"})}let Ye="ul",Ze=de.RenderStrategy|de.Static;function ze(t,l){let e=q(),{id:r=`headlessui-combobox-options-${e}`,hold:i=!1,...b}=t,n=j("Combobox.Options"),d=Q(n.optionsRef,l),o=Fe(),u=(()=>o!==null?(o&ee.Open)===ee.Open:n.comboboxState===0)();k(()=>{var c;n.optionsPropsRef.current.static=(c=t.static)!=null?c:!1},[n.optionsPropsRef,t.static]),k(()=>{n.optionsPropsRef.current.hold=i},[n.optionsPropsRef,i]),Pe({container:n.optionsRef.current,enabled:n.comboboxState===0,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 P=te(()=>{var c,g;return(g=n.labelId)!=null?g:(c=n.buttonRef.current)==null?void 0:c.id},[n.labelId,n.buttonRef.current]),f=_(()=>({open:n.comboboxState===0}),[n]),E={"aria-labelledby":P,role:"listbox","aria-multiselectable":n.mode===1?!0:void 0,id:r,ref:d};return G({ourProps:E,theirProps:b,slot:f,defaultTag:Ye,features:Ze,visible:u,name:"Combobox.Options"})}let eo="li";function oo(t,l){var B,s;let e=q(),{id:r=`headlessui-combobox-option-${e}`,disabled:i=!1,value:b,...n}=t,d=j("Combobox.Option"),o=Y("Combobox.Option"),u=d.activeOptionIndex!==null?d.options[d.activeOptionIndex].id===r:!1,P=d.isSelected(b),f=S(null),E=ye({disabled:i,value:b,domRef:f,textValue:(s=(B=f.current)==null?void 0:B.textContent)==null?void 0:s.toLowerCase()}),c=Q(l,f),g=C(()=>o.selectOption(r));k(()=>o.registerOption(r,E),[E,r]);let m=S(!d.__demoMode);k(()=>{if(!d.__demoMode)return;let O=be();return O.requestAnimationFrame(()=>{m.current=!0}),O.dispose},[]),k(()=>{if(d.comboboxState!==0||!u||!m.current||d.activationTrigger===0)return;let O=be();return O.requestAnimationFrame(()=>{var a,L;(L=(a=f.current)==null?void 0:a.scrollIntoView)==null||L.call(a,{block:"nearest"})}),O.dispose},[f,u,d.comboboxState,d.activationTrigger,d.activeOptionIndex]);let x=C(O=>{if(i)return O.preventDefault();g(),d.mode===0&&o.closeCombobox(),Be()||requestAnimationFrame(()=>{var a;return(a=d.inputRef.current)==null?void 0:a.focus()})}),V=C(()=>{if(i)return o.goToOption(y.Nothing);o.goToOption(y.Specific,r)}),h=he(),w=C(O=>h.update(O)),U=C(O=>{h.wasMoved(O)&&(i||u||o.goToOption(y.Specific,r,0))}),N=C(O=>{h.wasMoved(O)&&(i||u&&(d.optionsPropsRef.current.hold||o.goToOption(y.Nothing)))}),J=_(()=>({active:u,selected:P,disabled:i}),[u,P,i]);return G({ourProps:{id:r,ref:c,role:"option",tabIndex:i===!0?void 0:-1,"aria-disabled":i===!0?!0:void 0,"aria-selected":P,disabled:void 0,onClick:x,onFocus:V,onPointerEnter:w,onMouseEnter:w,onPointerMove:U,onMouseMove:U,onPointerLeave:N,onMouseLeave:N},theirProps:n,slot:J,defaultTag:eo,name:"Combobox.Option"})}let to=H(je),no=H($e),ro=H(Ke),ao=H(Qe),lo=H(ze),io=H(oo),Wo=Object.assign(to,{Input:ro,Button:no,Label:ao,Options:lo,Option:io});export{Wo as Combobox};
import ee,{Fragment as xe,createContext as pe,createRef as Ce,useCallback as Oe,useContext as se,useEffect as be,useMemo as M,useReducer as ge,useRef as S}from"react";import{useComputed as ne}from'../../hooks/use-computed.js';import{useDisposables as re}from'../../hooks/use-disposables.js';import{useEvent as x}from'../../hooks/use-event.js';import{useId as Q}from'../../hooks/use-id.js';import{useIsoMorphicEffect as k}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as ye}from'../../hooks/use-latest-value.js';import{useOutsideClick as Re}from'../../hooks/use-outside-click.js';import{useResolveButtonType as ve}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as Y}from'../../hooks/use-sync-refs.js';import{useTreeWalker as Pe}from'../../hooks/use-tree-walker.js';import{calculateActiveIndex as Ae,Focus as R}from'../../utils/calculate-active-index.js';import{disposables as de}from'../../utils/disposables.js';import{forwardRefWithAs as G,render as X,compact as Ee,Features as fe}from'../../utils/render.js';import{isDisabledReactIssue7711 as Se}from'../../utils/bugs.js';import{match as j}from'../../utils/match.js';import{objectToFormEntries as Ie}from'../../utils/form.js';import{sortByDomNode as Le}from'../../utils/focus-management.js';import{Hidden as Ve,Features as De}from'../../internal/hidden.js';import{useOpenClosed as Fe,State as oe,OpenClosedProvider as Me}from'../../internal/open-closed.js';import{Keys as I}from'../keyboard.js';import{useControllable as _e}from'../../hooks/use-controllable.js';import{useWatch as ce}from'../../hooks/use-watch.js';import{useTrackedPointer as he}from'../../hooks/use-tracked-pointer.js';import{isMobile as Be}from'../../utils/platform.js';import{useOwnerDocument as ke}from'../../hooks/use-owner.js';var we=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(we||{}),Ue=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(Ue||{}),Ne=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(Ne||{}),He=(n=>(n[n.OpenCombobox=0]="OpenCombobox",n[n.CloseCombobox=1]="CloseCombobox",n[n.GoToOption=2]="GoToOption",n[n.RegisterOption=3]="RegisterOption",n[n.UnregisterOption=4]="UnregisterOption",n[n.RegisterLabel=5]="RegisterLabel",n))(He||{});function ae(t,a=e=>e){let e=t.activeOptionIndex!==null?t.options[t.activeOptionIndex]:null,r=Le(a(t.options.slice()),b=>b.dataRef.current.domRef.current),l=e?r.indexOf(e):null;return l===-1&&(l=null),{options:r,activeOptionIndex:l}}let Ge={[1](t){var a;return(a=t.dataRef.current)!=null&&a.disabled||t.comboboxState===1?t:{...t,activeOptionIndex:null,comboboxState:1}},[0](t){var e;if((e=t.dataRef.current)!=null&&e.disabled||t.comboboxState===0)return t;let a=t.activeOptionIndex;if(t.dataRef.current){let{isSelected:r}=t.dataRef.current,l=t.options.findIndex(b=>r(b.dataRef.current.value));l!==-1&&(a=l)}return{...t,comboboxState:0,activeOptionIndex:a}},[2](t,a){var l,b,n,d;if((l=t.dataRef.current)!=null&&l.disabled||(b=t.dataRef.current)!=null&&b.optionsRef.current&&!((n=t.dataRef.current)!=null&&n.optionsPropsRef.current.static)&&t.comboboxState===1)return t;let e=ae(t);if(e.activeOptionIndex===null){let o=e.options.findIndex(i=>!i.dataRef.current.disabled);o!==-1&&(e.activeOptionIndex=o)}let r=Ae(a,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:o=>o.id,resolveDisabled:o=>o.dataRef.current.disabled});return{...t,...e,activeOptionIndex:r,activationTrigger:(d=a.trigger)!=null?d:1}},[3]:(t,a)=>{var b,n;let e={id:a.id,dataRef:a.dataRef},r=ae(t,d=>[...d,e]);t.activeOptionIndex===null&&(b=t.dataRef.current)!=null&&b.isSelected(a.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(e));let l={...t,...r,activationTrigger:1};return(n=t.dataRef.current)!=null&&n.__demoMode&&t.dataRef.current.value===void 0&&(l.activeOptionIndex=0),l},[4]:(t,a)=>{let e=ae(t,r=>{let l=r.findIndex(b=>b.id===a.id);return l!==-1&&r.splice(l,1),r});return{...t,...e,activationTrigger:1}},[5]:(t,a)=>({...t,labelId:a.id})},le=pe(null);le.displayName="ComboboxActionsContext";function Z(t){let a=se(le);if(a===null){let e=new Error(`<${t} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,Z),e}return a}let ie=pe(null);ie.displayName="ComboboxDataContext";function J(t){let a=se(ie);if(a===null){let e=new Error(`<${t} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,J),e}return a}function Xe(t,a){return j(a.type,Ge,t,a)}let je=xe;function Je(t,a){let{value:e,defaultValue:r,onChange:l,form:b,name:n,by:d=(u,T)=>u===T,disabled:o=!1,__demoMode:i=!1,nullable:A=!1,multiple:O=!1,...C}=t,[f=O?[]:void 0,g]=_e(e,l,r),[m,c]=ge(Xe,{dataRef:Ce(),comboboxState:i?0:1,options:[],activeOptionIndex:null,activationTrigger:1,labelId:null}),D=S(!1),_=S({static:!1,hold:!1}),w=S(null),U=S(null),N=S(null),K=S(null),h=x(typeof d=="string"?(u,T)=>{let v=d;return(u==null?void 0:u[v])===(T==null?void 0:T[v])}:d),H=Oe(u=>j(p.mode,{[1]:()=>f.some(T=>h(T,u)),[0]:()=>h(f,u)}),[f]),p=M(()=>({...m,optionsPropsRef:_,labelRef:w,inputRef:U,buttonRef:N,optionsRef:K,value:f,defaultValue:r,disabled:o,mode:O?1:0,get activeOptionIndex(){if(D.current&&m.activeOptionIndex===null&&m.options.length>0){let u=m.options.findIndex(T=>!T.dataRef.current.disabled);if(u!==-1)return u}return m.activeOptionIndex},compare:h,isSelected:H,nullable:A,__demoMode:i}),[f,r,o,O,A,i,m]),y=S(p.activeOptionIndex!==null?p.options[p.activeOptionIndex]:null);be(()=>{let u=p.activeOptionIndex!==null?p.options[p.activeOptionIndex]:null;y.current!==u&&(y.current=u)}),k(()=>{m.dataRef.current=p},[p]),Re([p.buttonRef,p.inputRef,p.optionsRef],()=>te.closeCombobox(),p.comboboxState===0);let E=M(()=>({open:p.comboboxState===0,disabled:o,activeIndex:p.activeOptionIndex,activeOption:p.activeOptionIndex===null?null:p.options[p.activeOptionIndex].dataRef.current.value,value:f}),[p,o,f]),B=x(u=>{let T=p.options.find(v=>v.id===u);T&&V(T.dataRef.current.value)}),s=x(()=>{if(p.activeOptionIndex!==null){let{dataRef:u,id:T}=p.options[p.activeOptionIndex];V(u.current.value),te.goToOption(R.Specific,T)}}),W=x(()=>{c({type:0}),D.current=!0}),L=x(()=>{c({type:1}),D.current=!1}),$=x((u,T,v)=>(D.current=!1,u===R.Specific?c({type:2,focus:R.Specific,id:T,trigger:v}):c({type:2,focus:u,trigger:v}))),P=x((u,T)=>(c({type:3,id:u,dataRef:T}),()=>{var v;((v=y.current)==null?void 0:v.id)===u&&(D.current=!0),c({type:4,id:u})})),F=x(u=>(c({type:5,id:u}),()=>c({type:5,id:null}))),V=x(u=>j(p.mode,{[0](){return g==null?void 0:g(u)},[1](){let T=p.value.slice(),v=T.findIndex(q=>h(q,u));return v===-1?T.push(u):T.splice(v,1),g==null?void 0:g(T)}})),te=M(()=>({onChange:V,registerOption:P,registerLabel:F,goToOption:$,closeCombobox:L,openCombobox:W,selectActiveOption:s,selectOption:B}),[]),Te=a===null?{}:{ref:a},z=S(null),me=re();return be(()=>{z.current&&r!==void 0&&me.addEventListener(z.current,"reset",()=>{g==null||g(r)})},[z,g]),ee.createElement(le.Provider,{value:te},ee.createElement(ie.Provider,{value:p},ee.createElement(Me,{value:j(p.comboboxState,{[0]:oe.Open,[1]:oe.Closed})},n!=null&&f!=null&&Ie({[n]:f}).map(([u,T],v)=>ee.createElement(Ve,{features:De.Hidden,ref:v===0?q=>{var ue;z.current=(ue=q==null?void 0:q.closest("form"))!=null?ue:null}:void 0,...Ee({key:u,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:b,name:u,value:T})})),X({ourProps:Te,theirProps:C,slot:E,defaultTag:je,name:"Combobox"}))))}let Ke="input";function We(t,a){var p,y,E,B;let e=Q(),{id:r=`headlessui-combobox-input-${e}`,onChange:l,displayValue:b,type:n="text",...d}=t,o=J("Combobox.Input"),i=Z("Combobox.Input"),A=Y(o.inputRef,a),O=ke(o.inputRef),C=S(!1),f=re(),g=x(()=>{i.onChange(null),o.optionsRef.current&&(o.optionsRef.current.scrollTop=0),i.goToOption(R.Nothing)}),m=function(){var s;return typeof b=="function"&&o.value!==void 0?(s=b(o.value))!=null?s:"":typeof o.value=="string"?o.value:""}();ce(([s,W],[L,$])=>{if(C.current)return;let P=o.inputRef.current;P&&(($===0&&W===1||s!==L)&&(P.value=s),requestAnimationFrame(()=>{if(C.current||!P||(O==null?void 0:O.activeElement)!==P)return;let{selectionStart:F,selectionEnd:V}=P;Math.abs((V!=null?V:0)-(F!=null?F:0))===0&&F===0&&P.setSelectionRange(P.value.length,P.value.length)}))},[m,o.comboboxState,O]),ce(([s],[W])=>{if(s===0&&W===1){if(C.current)return;let L=o.inputRef.current;if(!L)return;let $=L.value,{selectionStart:P,selectionEnd:F,selectionDirection:V}=L;L.value="",L.value=$,V!==null?L.setSelectionRange(P,F,V):L.setSelectionRange(P,F)}},[o.comboboxState]);let c=S(!1),D=x(()=>{c.current=!0}),_=x(()=>{f.nextFrame(()=>{c.current=!1})}),w=x(s=>{switch(C.current=!0,s.key){case I.Enter:if(C.current=!1,o.comboboxState!==0||c.current)return;if(s.preventDefault(),s.stopPropagation(),o.activeOptionIndex===null){i.closeCombobox();return}i.selectActiveOption(),o.mode===0&&i.closeCombobox();break;case I.ArrowDown:return C.current=!1,s.preventDefault(),s.stopPropagation(),j(o.comboboxState,{[0]:()=>{i.goToOption(R.Next)},[1]:()=>{i.openCombobox()}});case I.ArrowUp:return C.current=!1,s.preventDefault(),s.stopPropagation(),j(o.comboboxState,{[0]:()=>{i.goToOption(R.Previous)},[1]:()=>{i.openCombobox(),f.nextFrame(()=>{o.value||i.goToOption(R.Last)})}});case I.Home:if(s.shiftKey)break;return C.current=!1,s.preventDefault(),s.stopPropagation(),i.goToOption(R.First);case I.PageUp:return C.current=!1,s.preventDefault(),s.stopPropagation(),i.goToOption(R.First);case I.End:if(s.shiftKey)break;return C.current=!1,s.preventDefault(),s.stopPropagation(),i.goToOption(R.Last);case I.PageDown:return C.current=!1,s.preventDefault(),s.stopPropagation(),i.goToOption(R.Last);case I.Escape:return C.current=!1,o.comboboxState!==0?void 0:(s.preventDefault(),o.optionsRef.current&&!o.optionsPropsRef.current.static&&s.stopPropagation(),o.nullable&&o.mode===0&&o.value===null&&g(),i.closeCombobox());case I.Tab:if(C.current=!1,o.comboboxState!==0)return;o.mode===0&&i.selectActiveOption(),i.closeCombobox();break}}),U=x(s=>{l==null||l(s),o.nullable&&o.mode===0&&s.target.value===""&&g(),i.openCombobox()}),N=x(()=>{C.current=!1}),K=ne(()=>{if(o.labelId)return[o.labelId].join(" ")},[o.labelId]),h=M(()=>({open:o.comboboxState===0,disabled:o.disabled}),[o]),H={ref:A,id:r,role:"combobox",type:n,"aria-controls":(p=o.optionsRef.current)==null?void 0:p.id,"aria-expanded":o.comboboxState===0,"aria-activedescendant":o.activeOptionIndex===null||(y=o.options[o.activeOptionIndex])==null?void 0:y.id,"aria-labelledby":K,"aria-autocomplete":"list",defaultValue:(B=(E=t.defaultValue)!=null?E:o.defaultValue!==void 0?b==null?void 0:b(o.defaultValue):null)!=null?B:o.defaultValue,disabled:o.disabled,onCompositionStart:D,onCompositionEnd:_,onKeyDown:w,onChange:U,onBlur:N};return X({ourProps:H,theirProps:d,slot:h,defaultTag:Ke,name:"Combobox.Input"})}let $e="button";function qe(t,a){var g;let e=J("Combobox.Button"),r=Z("Combobox.Button"),l=Y(e.buttonRef,a),b=Q(),{id:n=`headlessui-combobox-button-${b}`,...d}=t,o=re(),i=x(m=>{switch(m.key){case I.ArrowDown:return m.preventDefault(),m.stopPropagation(),e.comboboxState===1&&r.openCombobox(),o.nextFrame(()=>{var c;return(c=e.inputRef.current)==null?void 0:c.focus({preventScroll:!0})});case I.ArrowUp:return m.preventDefault(),m.stopPropagation(),e.comboboxState===1&&(r.openCombobox(),o.nextFrame(()=>{e.value||r.goToOption(R.Last)})),o.nextFrame(()=>{var c;return(c=e.inputRef.current)==null?void 0:c.focus({preventScroll:!0})});case I.Escape:return e.comboboxState!==0?void 0:(m.preventDefault(),e.optionsRef.current&&!e.optionsPropsRef.current.static&&m.stopPropagation(),r.closeCombobox(),o.nextFrame(()=>{var c;return(c=e.inputRef.current)==null?void 0:c.focus({preventScroll:!0})}));default:return}}),A=x(m=>{if(Se(m.currentTarget))return m.preventDefault();e.comboboxState===0?r.closeCombobox():(m.preventDefault(),r.openCombobox()),o.nextFrame(()=>{var c;return(c=e.inputRef.current)==null?void 0:c.focus({preventScroll:!0})})}),O=ne(()=>{if(e.labelId)return[e.labelId,n].join(" ")},[e.labelId,n]),C=M(()=>({open:e.comboboxState===0,disabled:e.disabled,value:e.value}),[e]),f={ref:l,id:n,type:ve(t,e.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":(g=e.optionsRef.current)==null?void 0:g.id,"aria-expanded":e.comboboxState===0,"aria-labelledby":O,disabled:e.disabled,onClick:A,onKeyDown:i};return X({ourProps:f,theirProps:d,slot:C,defaultTag:$e,name:"Combobox.Button"})}let Qe="label";function Ye(t,a){let e=Q(),{id:r=`headlessui-combobox-label-${e}`,...l}=t,b=J("Combobox.Label"),n=Z("Combobox.Label"),d=Y(b.labelRef,a);k(()=>n.registerLabel(r),[r]);let o=x(()=>{var O;return(O=b.inputRef.current)==null?void 0:O.focus({preventScroll:!0})}),i=M(()=>({open:b.comboboxState===0,disabled:b.disabled}),[b]);return X({ourProps:{ref:d,id:r,onClick:o},theirProps:l,slot:i,defaultTag:Qe,name:"Combobox.Label"})}let Ze="ul",ze=fe.RenderStrategy|fe.Static;function eo(t,a){let e=Q(),{id:r=`headlessui-combobox-options-${e}`,hold:l=!1,...b}=t,n=J("Combobox.Options"),d=Y(n.optionsRef,a),o=Fe(),i=(()=>o!==null?(o&oe.Open)===oe.Open:n.comboboxState===0)();k(()=>{var f;n.optionsPropsRef.current.static=(f=t.static)!=null?f:!1},[n.optionsPropsRef,t.static]),k(()=>{n.optionsPropsRef.current.hold=l},[n.optionsPropsRef,l]),Pe({container:n.optionsRef.current,enabled:n.comboboxState===0,accept(f){return f.getAttribute("role")==="option"?NodeFilter.FILTER_REJECT:f.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(f){f.setAttribute("role","none")}});let A=ne(()=>{var f,g;return(g=n.labelId)!=null?g:(f=n.buttonRef.current)==null?void 0:f.id},[n.labelId,n.buttonRef.current]),O=M(()=>({open:n.comboboxState===0}),[n]),C={"aria-labelledby":A,role:"listbox","aria-multiselectable":n.mode===1?!0:void 0,id:r,ref:d};return X({ourProps:C,theirProps:b,slot:O,defaultTag:Ze,features:ze,visible:i,name:"Combobox.Options"})}let oo="li";function to(t,a){var H,p;let e=Q(),{id:r=`headlessui-combobox-option-${e}`,disabled:l=!1,value:b,...n}=t,d=J("Combobox.Option"),o=Z("Combobox.Option"),i=d.activeOptionIndex!==null?d.options[d.activeOptionIndex].id===r:!1,A=d.isSelected(b),O=S(null),C=ye({disabled:l,value:b,domRef:O,textValue:(p=(H=O.current)==null?void 0:H.textContent)==null?void 0:p.toLowerCase()}),f=Y(a,O),g=x(()=>o.selectOption(r));k(()=>o.registerOption(r,C),[C,r]);let m=S(!d.__demoMode);k(()=>{if(!d.__demoMode)return;let y=de();return y.requestAnimationFrame(()=>{m.current=!0}),y.dispose},[]),k(()=>{if(d.comboboxState!==0||!i||!m.current||d.activationTrigger===0)return;let y=de();return y.requestAnimationFrame(()=>{var E,B;(B=(E=O.current)==null?void 0:E.scrollIntoView)==null||B.call(E,{block:"nearest"})}),y.dispose},[O,i,d.comboboxState,d.activationTrigger,d.activeOptionIndex]);let c=x(y=>{if(l)return y.preventDefault();g(),d.mode===0&&o.closeCombobox(),Be()||requestAnimationFrame(()=>{var E;return(E=d.inputRef.current)==null?void 0:E.focus()})}),D=x(()=>{if(l)return o.goToOption(R.Nothing);o.goToOption(R.Specific,r)}),_=he(),w=x(y=>_.update(y)),U=x(y=>{_.wasMoved(y)&&(l||i||o.goToOption(R.Specific,r,0))}),N=x(y=>{_.wasMoved(y)&&(l||i&&(d.optionsPropsRef.current.hold||o.goToOption(R.Nothing)))}),K=M(()=>({active:i,selected:A,disabled:l}),[i,A,l]);return X({ourProps:{id:r,ref:f,role:"option",tabIndex:l===!0?void 0:-1,"aria-disabled":l===!0?!0:void 0,"aria-selected":A,disabled:void 0,onClick:c,onFocus:D,onPointerEnter:w,onMouseEnter:w,onPointerMove:U,onMouseMove:U,onPointerLeave:N,onMouseLeave:N},theirProps:n,slot:K,defaultTag:oo,name:"Combobox.Option"})}let no=G(Je),ro=G(qe),ao=G(We),lo=G(Ye),io=G(eo),uo=G(to),qo=Object.assign(no,{Input:ao,Button:ro,Label:lo,Options:io,Option:uo});export{qo as Combobox};

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

import j,{Fragment as xe,createContext as Z,createRef as ye,useCallback as ge,useContext as ee,useEffect as te,useMemo as h,useReducer as Oe,useRef as D}from"react";import{useDisposables as V}from'../../hooks/use-disposables.js';import{useId as K}from'../../hooks/use-id.js';import{useIsoMorphicEffect as Q}from'../../hooks/use-iso-morphic-effect.js';import{useComputed as oe}from'../../hooks/use-computed.js';import{useSyncRefs as k}from'../../hooks/use-sync-refs.js';import{Features as ne,forwardRefWithAs as w,render as _,compact as Le}from'../../utils/render.js';import{match as I}from'../../utils/match.js';import{disposables as $}from'../../utils/disposables.js';import{Keys as y}from'../keyboard.js';import{Focus as v,calculateActiveIndex as me}from'../../utils/calculate-active-index.js';import{isDisabledReactIssue7711 as Re}from'../../utils/bugs.js';import{isFocusableElement as ve,FocusableMode as Ae,sortByDomNode as Se}from'../../utils/focus-management.js';import{useOpenClosed as Pe,State as W,OpenClosedProvider as Ee}from'../../internal/open-closed.js';import{useResolveButtonType as he}from'../../hooks/use-resolve-button-type.js';import{useOutsideClick as De}from'../../hooks/use-outside-click.js';import{Hidden as Ie,Features as Ce}from'../../internal/hidden.js';import{objectToFormEntries as Fe}from'../../utils/form.js';import{getOwnerDocument as Me}from'../../utils/owner.js';import{useEvent as f}from'../../hooks/use-event.js';import{useControllable as ke}from'../../hooks/use-controllable.js';import{useLatestValue as we}from'../../hooks/use-latest-value.js';import{useTrackedPointer as _e}from'../../hooks/use-tracked-pointer.js';import{useTextValue as Ue}from'../../hooks/use-text-value.js';var Be=(n=>(n[n.Open=0]="Open",n[n.Closed=1]="Closed",n))(Be||{}),He=(n=>(n[n.Single=0]="Single",n[n.Multi=1]="Multi",n))(He||{}),Ge=(n=>(n[n.Pointer=0]="Pointer",n[n.Other=1]="Other",n))(Ge||{}),Ne=(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[i.RegisterLabel=7]="RegisterLabel",i))(Ne||{});function z(e,a=n=>n){let n=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,r=Se(a(e.options.slice()),t=>t.dataRef.current.domRef.current),l=n?r.indexOf(n):null;return l===-1&&(l=null),{options:r,activeOptionIndex:l}}let je={[1](e){return e.dataRef.current.disabled||e.listboxState===1?e:{...e,activeOptionIndex:null,listboxState:1}},[0](e){if(e.dataRef.current.disabled||e.listboxState===0)return e;let a=e.activeOptionIndex,{isSelected:n}=e.dataRef.current,r=e.options.findIndex(l=>n(l.dataRef.current.value));return r!==-1&&(a=r),{...e,listboxState:0,activeOptionIndex:a}},[2](e,a){var l;if(e.dataRef.current.disabled||e.listboxState===1)return e;let n=z(e),r=me(a,{resolveItems:()=>n.options,resolveActiveIndex:()=>n.activeOptionIndex,resolveId:t=>t.id,resolveDisabled:t=>t.dataRef.current.disabled});return{...e,...n,searchQuery:"",activeOptionIndex:r,activationTrigger:(l=a.trigger)!=null?l:1}},[3]:(e,a)=>{if(e.dataRef.current.disabled||e.listboxState===1)return e;let r=e.searchQuery!==""?0:1,l=e.searchQuery+a.value.toLowerCase(),p=(e.activeOptionIndex!==null?e.options.slice(e.activeOptionIndex+r).concat(e.options.slice(0,e.activeOptionIndex+r)):e.options).find(i=>{var b;return!i.dataRef.current.disabled&&((b=i.dataRef.current.textValue)==null?void 0:b.startsWith(l))}),u=p?e.options.indexOf(p):-1;return u===-1||u===e.activeOptionIndex?{...e,searchQuery:l}:{...e,searchQuery:l,activeOptionIndex:u,activationTrigger:1}},[4](e){return e.dataRef.current.disabled||e.listboxState===1||e.searchQuery===""?e:{...e,searchQuery:""}},[5]:(e,a)=>{let n={id:a.id,dataRef:a.dataRef},r=z(e,l=>[...l,n]);return e.activeOptionIndex===null&&e.dataRef.current.isSelected(a.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(n)),{...e,...r}},[6]:(e,a)=>{let n=z(e,r=>{let l=r.findIndex(t=>t.id===a.id);return l!==-1&&r.splice(l,1),r});return{...e,...n,activationTrigger:1}},[7]:(e,a)=>({...e,labelId:a.id})},J=Z(null);J.displayName="ListboxActionsContext";function U(e){let a=ee(J);if(a===null){let n=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,U),n}return a}let q=Z(null);q.displayName="ListboxDataContext";function B(e){let a=ee(q);if(a===null){let n=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,B),n}return a}function Ve(e,a){return I(a.type,je,e,a)}let Ke=xe;function Qe(e,a){let{value:n,defaultValue:r,form:l,name:t,onChange:p,by:u=(s,c)=>s===c,disabled:i=!1,horizontal:b=!1,multiple:m=!1,...L}=e;const P=b?"horizontal":"vertical";let S=k(a),[g=m?[]:void 0,R]=ke(n,p,r),[T,o]=Oe(Ve,{dataRef:ye(),listboxState:1,options:[],searchQuery:"",labelId:null,activeOptionIndex:null,activationTrigger:1}),x=D({static:!1,hold:!1}),E=D(null),H=D(null),X=D(null),C=f(typeof u=="string"?(s,c)=>{let O=u;return(s==null?void 0:s[O])===(c==null?void 0:c[O])}:u),A=ge(s=>I(d.mode,{[1]:()=>g.some(c=>C(c,s)),[0]:()=>C(g,s)}),[g]),d=h(()=>({...T,value:g,disabled:i,mode:m?1:0,orientation:P,compare:C,isSelected:A,optionsPropsRef:x,labelRef:E,buttonRef:H,optionsRef:X}),[g,i,m,T]);Q(()=>{T.dataRef.current=d},[d]),De([d.buttonRef,d.optionsRef],(s,c)=>{var O;o({type:1}),ve(c,Ae.Loose)||(s.preventDefault(),(O=d.buttonRef.current)==null||O.focus())},d.listboxState===0);let G=h(()=>({open:d.listboxState===0,disabled:i,value:g}),[d,i,g]),ie=f(s=>{let c=d.options.find(O=>O.id===s);c&&F(c.dataRef.current.value)}),re=f(()=>{if(d.activeOptionIndex!==null){let{dataRef:s,id:c}=d.options[d.activeOptionIndex];F(s.current.value),o({type:2,focus:v.Specific,id:c})}}),ae=f(()=>o({type:0})),le=f(()=>o({type:1})),se=f((s,c,O)=>s===v.Specific?o({type:2,focus:v.Specific,id:c,trigger:O}):o({type:2,focus:s,trigger:O})),pe=f((s,c)=>(o({type:5,id:s,dataRef:c}),()=>o({type:6,id:s}))),ue=f(s=>(o({type:7,id:s}),()=>o({type:7,id:null}))),F=f(s=>I(d.mode,{[0](){return R==null?void 0:R(s)},[1](){let c=d.value.slice(),O=c.findIndex(M=>C(M,s));return O===-1?c.push(s):c.splice(O,1),R==null?void 0:R(c)}})),de=f(s=>o({type:3,value:s})),ce=f(()=>o({type:4})),fe=h(()=>({onChange:F,registerOption:pe,registerLabel:ue,goToOption:se,closeListbox:le,openListbox:ae,selectActiveOption:re,selectOption:ie,search:de,clearSearch:ce}),[]),Te={ref:S},N=D(null),be=V();return te(()=>{N.current&&r!==void 0&&be.addEventListener(N.current,"reset",()=>{F(r)})},[N,F]),j.createElement(J.Provider,{value:fe},j.createElement(q.Provider,{value:d},j.createElement(Ee,{value:I(d.listboxState,{[0]:W.Open,[1]:W.Closed})},t!=null&&g!=null&&Fe({[t]:g}).map(([s,c],O)=>j.createElement(Ie,{features:Ce.Hidden,ref:O===0?M=>{var Y;N.current=(Y=M==null?void 0:M.closest("form"))!=null?Y:null}:void 0,...Le({key:s,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:l,name:s,value:c})})),_({ourProps:Te,theirProps:L,slot:G,defaultTag:Ke,name:"Listbox"}))))}let We="button";function Xe(e,a){var R;let n=K(),{id:r=`headlessui-listbox-button-${n}`,...l}=e,t=B("Listbox.Button"),p=U("Listbox.Button"),u=k(t.buttonRef,a),i=V(),b=f(T=>{switch(T.key){case y.Space:case y.Enter:case y.ArrowDown:T.preventDefault(),p.openListbox(),i.nextFrame(()=>{t.value||p.goToOption(v.First)});break;case y.ArrowUp:T.preventDefault(),p.openListbox(),i.nextFrame(()=>{t.value||p.goToOption(v.Last)});break}}),m=f(T=>{switch(T.key){case y.Space:T.preventDefault();break}}),L=f(T=>{if(Re(T.currentTarget))return T.preventDefault();t.listboxState===0?(p.closeListbox(),i.nextFrame(()=>{var o;return(o=t.buttonRef.current)==null?void 0:o.focus({preventScroll:!0})})):(T.preventDefault(),p.openListbox())}),P=oe(()=>{if(t.labelId)return[t.labelId,r].join(" ")},[t.labelId,r]),S=h(()=>({open:t.listboxState===0,disabled:t.disabled,value:t.value}),[t]),g={ref:u,id:r,type:he(e,t.buttonRef),"aria-haspopup":"listbox","aria-controls":(R=t.optionsRef.current)==null?void 0:R.id,"aria-expanded":t.listboxState===0,"aria-labelledby":P,disabled:t.disabled,onKeyDown:b,onKeyUp:m,onClick:L};return _({ourProps:g,theirProps:l,slot:S,defaultTag:We,name:"Listbox.Button"})}let $e="label";function ze(e,a){let n=K(),{id:r=`headlessui-listbox-label-${n}`,...l}=e,t=B("Listbox.Label"),p=U("Listbox.Label"),u=k(t.labelRef,a);Q(()=>p.registerLabel(r),[r]);let i=f(()=>{var L;return(L=t.buttonRef.current)==null?void 0:L.focus({preventScroll:!0})}),b=h(()=>({open:t.listboxState===0,disabled:t.disabled}),[t]);return _({ourProps:{ref:u,id:r,onClick:i},theirProps:l,slot:b,defaultTag:$e,name:"Listbox.Label"})}let Je="ul",qe=ne.RenderStrategy|ne.Static;function Ye(e,a){var T;let n=K(),{id:r=`headlessui-listbox-options-${n}`,...l}=e,t=B("Listbox.Options"),p=U("Listbox.Options"),u=k(t.optionsRef,a),i=V(),b=V(),m=Pe(),L=(()=>m!==null?(m&W.Open)===W.Open:t.listboxState===0)();te(()=>{var x;let o=t.optionsRef.current;o&&t.listboxState===0&&o!==((x=Me(o))==null?void 0:x.activeElement)&&o.focus({preventScroll:!0})},[t.listboxState,t.optionsRef]);let P=f(o=>{switch(b.dispose(),o.key){case y.Space:if(t.searchQuery!=="")return o.preventDefault(),o.stopPropagation(),p.search(o.key);case y.Enter:if(o.preventDefault(),o.stopPropagation(),t.activeOptionIndex!==null){let{dataRef:x}=t.options[t.activeOptionIndex];p.onChange(x.current.value)}t.mode===0&&(p.closeListbox(),$().nextFrame(()=>{var x;return(x=t.buttonRef.current)==null?void 0:x.focus({preventScroll:!0})}));break;case I(t.orientation,{vertical:y.ArrowDown,horizontal:y.ArrowRight}):return o.preventDefault(),o.stopPropagation(),p.goToOption(v.Next);case I(t.orientation,{vertical:y.ArrowUp,horizontal:y.ArrowLeft}):return o.preventDefault(),o.stopPropagation(),p.goToOption(v.Previous);case y.Home:case y.PageUp:return o.preventDefault(),o.stopPropagation(),p.goToOption(v.First);case y.End:case y.PageDown:return o.preventDefault(),o.stopPropagation(),p.goToOption(v.Last);case y.Escape:return o.preventDefault(),o.stopPropagation(),p.closeListbox(),i.nextFrame(()=>{var x;return(x=t.buttonRef.current)==null?void 0:x.focus({preventScroll:!0})});case y.Tab:o.preventDefault(),o.stopPropagation();break;default:o.key.length===1&&(p.search(o.key),b.setTimeout(()=>p.clearSearch(),350));break}}),S=oe(()=>{var o,x,E;return(E=(o=t.labelRef.current)==null?void 0:o.id)!=null?E:(x=t.buttonRef.current)==null?void 0:x.id},[t.labelRef.current,t.buttonRef.current]),g=h(()=>({open:t.listboxState===0}),[t]),R={"aria-activedescendant":t.activeOptionIndex===null||(T=t.options[t.activeOptionIndex])==null?void 0:T.id,"aria-multiselectable":t.mode===1?!0:void 0,"aria-labelledby":S,"aria-orientation":t.orientation,id:r,onKeyDown:P,role:"listbox",tabIndex:0,ref:u};return _({ourProps:R,theirProps:l,slot:g,defaultTag:Je,features:qe,visible:L,name:"Listbox.Options"})}let Ze="li";function et(e,a){let n=K(),{id:r=`headlessui-listbox-option-${n}`,disabled:l=!1,value:t,...p}=e,u=B("Listbox.Option"),i=U("Listbox.Option"),b=u.activeOptionIndex!==null?u.options[u.activeOptionIndex].id===r:!1,m=u.isSelected(t),L=D(null),P=Ue(L),S=we({disabled:l,value:t,domRef:L,get textValue(){return P()}}),g=k(a,L);Q(()=>{if(u.listboxState!==0||!b||u.activationTrigger===0)return;let A=$();return A.requestAnimationFrame(()=>{var d,G;(G=(d=L.current)==null?void 0:d.scrollIntoView)==null||G.call(d,{block:"nearest"})}),A.dispose},[L,b,u.listboxState,u.activationTrigger,u.activeOptionIndex]),Q(()=>i.registerOption(r,S),[S,r]);let R=f(A=>{if(l)return A.preventDefault();i.onChange(t),u.mode===0&&(i.closeListbox(),$().nextFrame(()=>{var d;return(d=u.buttonRef.current)==null?void 0:d.focus({preventScroll:!0})}))}),T=f(()=>{if(l)return i.goToOption(v.Nothing);i.goToOption(v.Specific,r)}),o=_e(),x=f(A=>o.update(A)),E=f(A=>{o.wasMoved(A)&&(l||b||i.goToOption(v.Specific,r,0))}),H=f(A=>{o.wasMoved(A)&&(l||b&&i.goToOption(v.Nothing))}),X=h(()=>({active:b,selected:m,disabled:l}),[b,m,l]);return _({ourProps:{id:r,ref:g,role:"option",tabIndex:l===!0?void 0:-1,"aria-disabled":l===!0?!0:void 0,"aria-selected":m,disabled:void 0,onClick:R,onFocus:T,onPointerEnter:x,onMouseEnter:x,onPointerMove:E,onMouseMove:E,onPointerLeave:H,onMouseLeave:H},theirProps:p,slot:X,defaultTag:Ze,name:"Listbox.Option"})}let tt=w(Qe),ot=w(Xe),nt=w(ze),it=w(Ye),rt=w(et),Nt=Object.assign(tt,{Button:ot,Label:nt,Options:it,Option:rt});export{Nt as Listbox};
import N,{Fragment as xe,createContext as Z,createRef as ye,useCallback as ge,useContext as ee,useEffect as te,useMemo as h,useReducer as Le,useRef as D}from"react";import{useDisposables as j}from'../../hooks/use-disposables.js';import{useId as V}from'../../hooks/use-id.js';import{useIsoMorphicEffect as K}from'../../hooks/use-iso-morphic-effect.js';import{useComputed as oe}from'../../hooks/use-computed.js';import{useSyncRefs as M}from'../../hooks/use-sync-refs.js';import{Features as ne,forwardRefWithAs as k,render as w,compact as Oe}from'../../utils/render.js';import{match as I}from'../../utils/match.js';import{disposables as $}from'../../utils/disposables.js';import{Keys as g}from'../keyboard.js';import{Focus as v,calculateActiveIndex as me}from'../../utils/calculate-active-index.js';import{isDisabledReactIssue7711 as Re}from'../../utils/bugs.js';import{isFocusableElement as ve,FocusableMode as Ae,sortByDomNode as Se}from'../../utils/focus-management.js';import{useOpenClosed as Pe,State as Q,OpenClosedProvider as Ee}from'../../internal/open-closed.js';import{useResolveButtonType as he}from'../../hooks/use-resolve-button-type.js';import{useOutsideClick as De}from'../../hooks/use-outside-click.js';import{Hidden as Ie,Features as Ce}from'../../internal/hidden.js';import{objectToFormEntries as Fe}from'../../utils/form.js';import{getOwnerDocument as Me}from'../../utils/owner.js';import{useEvent as f}from'../../hooks/use-event.js';import{useControllable as ke}from'../../hooks/use-controllable.js';import{useLatestValue as we}from'../../hooks/use-latest-value.js';import{useTrackedPointer as _e}from'../../hooks/use-tracked-pointer.js';import{useTextValue as Ue}from'../../hooks/use-text-value.js';var Be=(n=>(n[n.Open=0]="Open",n[n.Closed=1]="Closed",n))(Be||{}),He=(n=>(n[n.Single=0]="Single",n[n.Multi=1]="Multi",n))(He||{}),Ge=(n=>(n[n.Pointer=0]="Pointer",n[n.Other=1]="Other",n))(Ge||{}),Ne=(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[i.RegisterLabel=7]="RegisterLabel",i))(Ne||{});function z(e,a=n=>n){let n=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,r=Se(a(e.options.slice()),t=>t.dataRef.current.domRef.current),l=n?r.indexOf(n):null;return l===-1&&(l=null),{options:r,activeOptionIndex:l}}let je={[1](e){return e.dataRef.current.disabled||e.listboxState===1?e:{...e,activeOptionIndex:null,listboxState:1}},[0](e){if(e.dataRef.current.disabled||e.listboxState===0)return e;let a=e.activeOptionIndex,{isSelected:n}=e.dataRef.current,r=e.options.findIndex(l=>n(l.dataRef.current.value));return r!==-1&&(a=r),{...e,listboxState:0,activeOptionIndex:a}},[2](e,a){var l;if(e.dataRef.current.disabled||e.listboxState===1)return e;let n=z(e),r=me(a,{resolveItems:()=>n.options,resolveActiveIndex:()=>n.activeOptionIndex,resolveId:t=>t.id,resolveDisabled:t=>t.dataRef.current.disabled});return{...e,...n,searchQuery:"",activeOptionIndex:r,activationTrigger:(l=a.trigger)!=null?l:1}},[3]:(e,a)=>{if(e.dataRef.current.disabled||e.listboxState===1)return e;let r=e.searchQuery!==""?0:1,l=e.searchQuery+a.value.toLowerCase(),p=(e.activeOptionIndex!==null?e.options.slice(e.activeOptionIndex+r).concat(e.options.slice(0,e.activeOptionIndex+r)):e.options).find(i=>{var b;return!i.dataRef.current.disabled&&((b=i.dataRef.current.textValue)==null?void 0:b.startsWith(l))}),u=p?e.options.indexOf(p):-1;return u===-1||u===e.activeOptionIndex?{...e,searchQuery:l}:{...e,searchQuery:l,activeOptionIndex:u,activationTrigger:1}},[4](e){return e.dataRef.current.disabled||e.listboxState===1||e.searchQuery===""?e:{...e,searchQuery:""}},[5]:(e,a)=>{let n={id:a.id,dataRef:a.dataRef},r=z(e,l=>[...l,n]);return e.activeOptionIndex===null&&e.dataRef.current.isSelected(a.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(n)),{...e,...r}},[6]:(e,a)=>{let n=z(e,r=>{let l=r.findIndex(t=>t.id===a.id);return l!==-1&&r.splice(l,1),r});return{...e,...n,activationTrigger:1}},[7]:(e,a)=>({...e,labelId:a.id})},J=Z(null);J.displayName="ListboxActionsContext";function _(e){let a=ee(J);if(a===null){let n=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,_),n}return a}let q=Z(null);q.displayName="ListboxDataContext";function U(e){let a=ee(q);if(a===null){let n=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,U),n}return a}function Ve(e,a){return I(a.type,je,e,a)}let Ke=xe;function Qe(e,a){let{value:n,defaultValue:r,form:l,name:t,onChange:p,by:u=(s,c)=>s===c,disabled:i=!1,horizontal:b=!1,multiple:R=!1,...m}=e;const P=b?"horizontal":"vertical";let S=M(a),[L=R?[]:void 0,y]=ke(n,p,r),[T,o]=Le(Ve,{dataRef:ye(),listboxState:1,options:[],searchQuery:"",labelId:null,activeOptionIndex:null,activationTrigger:1}),x=D({static:!1,hold:!1}),E=D(null),B=D(null),W=D(null),C=f(typeof u=="string"?(s,c)=>{let O=u;return(s==null?void 0:s[O])===(c==null?void 0:c[O])}:u),A=ge(s=>I(d.mode,{[1]:()=>L.some(c=>C(c,s)),[0]:()=>C(L,s)}),[L]),d=h(()=>({...T,value:L,disabled:i,mode:R?1:0,orientation:P,compare:C,isSelected:A,optionsPropsRef:x,labelRef:E,buttonRef:B,optionsRef:W}),[L,i,R,T]);K(()=>{T.dataRef.current=d},[d]),De([d.buttonRef,d.optionsRef],(s,c)=>{var O;o({type:1}),ve(c,Ae.Loose)||(s.preventDefault(),(O=d.buttonRef.current)==null||O.focus())},d.listboxState===0);let H=h(()=>({open:d.listboxState===0,disabled:i,value:L}),[d,i,L]),ie=f(s=>{let c=d.options.find(O=>O.id===s);c&&X(c.dataRef.current.value)}),re=f(()=>{if(d.activeOptionIndex!==null){let{dataRef:s,id:c}=d.options[d.activeOptionIndex];X(s.current.value),o({type:2,focus:v.Specific,id:c})}}),ae=f(()=>o({type:0})),le=f(()=>o({type:1})),se=f((s,c,O)=>s===v.Specific?o({type:2,focus:v.Specific,id:c,trigger:O}):o({type:2,focus:s,trigger:O})),pe=f((s,c)=>(o({type:5,id:s,dataRef:c}),()=>o({type:6,id:s}))),ue=f(s=>(o({type:7,id:s}),()=>o({type:7,id:null}))),X=f(s=>I(d.mode,{[0](){return y==null?void 0:y(s)},[1](){let c=d.value.slice(),O=c.findIndex(F=>C(F,s));return O===-1?c.push(s):c.splice(O,1),y==null?void 0:y(c)}})),de=f(s=>o({type:3,value:s})),ce=f(()=>o({type:4})),fe=h(()=>({onChange:X,registerOption:pe,registerLabel:ue,goToOption:se,closeListbox:le,openListbox:ae,selectActiveOption:re,selectOption:ie,search:de,clearSearch:ce}),[]),Te={ref:S},G=D(null),be=j();return te(()=>{G.current&&r!==void 0&&be.addEventListener(G.current,"reset",()=>{y==null||y(r)})},[G,y]),N.createElement(J.Provider,{value:fe},N.createElement(q.Provider,{value:d},N.createElement(Ee,{value:I(d.listboxState,{[0]:Q.Open,[1]:Q.Closed})},t!=null&&L!=null&&Fe({[t]:L}).map(([s,c],O)=>N.createElement(Ie,{features:Ce.Hidden,ref:O===0?F=>{var Y;G.current=(Y=F==null?void 0:F.closest("form"))!=null?Y:null}:void 0,...Oe({key:s,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:l,name:s,value:c})})),w({ourProps:Te,theirProps:m,slot:H,defaultTag:Ke,name:"Listbox"}))))}let We="button";function Xe(e,a){var y;let n=V(),{id:r=`headlessui-listbox-button-${n}`,...l}=e,t=U("Listbox.Button"),p=_("Listbox.Button"),u=M(t.buttonRef,a),i=j(),b=f(T=>{switch(T.key){case g.Space:case g.Enter:case g.ArrowDown:T.preventDefault(),p.openListbox(),i.nextFrame(()=>{t.value||p.goToOption(v.First)});break;case g.ArrowUp:T.preventDefault(),p.openListbox(),i.nextFrame(()=>{t.value||p.goToOption(v.Last)});break}}),R=f(T=>{switch(T.key){case g.Space:T.preventDefault();break}}),m=f(T=>{if(Re(T.currentTarget))return T.preventDefault();t.listboxState===0?(p.closeListbox(),i.nextFrame(()=>{var o;return(o=t.buttonRef.current)==null?void 0:o.focus({preventScroll:!0})})):(T.preventDefault(),p.openListbox())}),P=oe(()=>{if(t.labelId)return[t.labelId,r].join(" ")},[t.labelId,r]),S=h(()=>({open:t.listboxState===0,disabled:t.disabled,value:t.value}),[t]),L={ref:u,id:r,type:he(e,t.buttonRef),"aria-haspopup":"listbox","aria-controls":(y=t.optionsRef.current)==null?void 0:y.id,"aria-expanded":t.listboxState===0,"aria-labelledby":P,disabled:t.disabled,onKeyDown:b,onKeyUp:R,onClick:m};return w({ourProps:L,theirProps:l,slot:S,defaultTag:We,name:"Listbox.Button"})}let $e="label";function ze(e,a){let n=V(),{id:r=`headlessui-listbox-label-${n}`,...l}=e,t=U("Listbox.Label"),p=_("Listbox.Label"),u=M(t.labelRef,a);K(()=>p.registerLabel(r),[r]);let i=f(()=>{var m;return(m=t.buttonRef.current)==null?void 0:m.focus({preventScroll:!0})}),b=h(()=>({open:t.listboxState===0,disabled:t.disabled}),[t]);return w({ourProps:{ref:u,id:r,onClick:i},theirProps:l,slot:b,defaultTag:$e,name:"Listbox.Label"})}let Je="ul",qe=ne.RenderStrategy|ne.Static;function Ye(e,a){var T;let n=V(),{id:r=`headlessui-listbox-options-${n}`,...l}=e,t=U("Listbox.Options"),p=_("Listbox.Options"),u=M(t.optionsRef,a),i=j(),b=j(),R=Pe(),m=(()=>R!==null?(R&Q.Open)===Q.Open:t.listboxState===0)();te(()=>{var x;let o=t.optionsRef.current;o&&t.listboxState===0&&o!==((x=Me(o))==null?void 0:x.activeElement)&&o.focus({preventScroll:!0})},[t.listboxState,t.optionsRef]);let P=f(o=>{switch(b.dispose(),o.key){case g.Space:if(t.searchQuery!=="")return o.preventDefault(),o.stopPropagation(),p.search(o.key);case g.Enter:if(o.preventDefault(),o.stopPropagation(),t.activeOptionIndex!==null){let{dataRef:x}=t.options[t.activeOptionIndex];p.onChange(x.current.value)}t.mode===0&&(p.closeListbox(),$().nextFrame(()=>{var x;return(x=t.buttonRef.current)==null?void 0:x.focus({preventScroll:!0})}));break;case I(t.orientation,{vertical:g.ArrowDown,horizontal:g.ArrowRight}):return o.preventDefault(),o.stopPropagation(),p.goToOption(v.Next);case I(t.orientation,{vertical:g.ArrowUp,horizontal:g.ArrowLeft}):return o.preventDefault(),o.stopPropagation(),p.goToOption(v.Previous);case g.Home:case g.PageUp:return o.preventDefault(),o.stopPropagation(),p.goToOption(v.First);case g.End:case g.PageDown:return o.preventDefault(),o.stopPropagation(),p.goToOption(v.Last);case g.Escape:return o.preventDefault(),o.stopPropagation(),p.closeListbox(),i.nextFrame(()=>{var x;return(x=t.buttonRef.current)==null?void 0:x.focus({preventScroll:!0})});case g.Tab:o.preventDefault(),o.stopPropagation();break;default:o.key.length===1&&(p.search(o.key),b.setTimeout(()=>p.clearSearch(),350));break}}),S=oe(()=>{var o,x,E;return(E=(o=t.labelRef.current)==null?void 0:o.id)!=null?E:(x=t.buttonRef.current)==null?void 0:x.id},[t.labelRef.current,t.buttonRef.current]),L=h(()=>({open:t.listboxState===0}),[t]),y={"aria-activedescendant":t.activeOptionIndex===null||(T=t.options[t.activeOptionIndex])==null?void 0:T.id,"aria-multiselectable":t.mode===1?!0:void 0,"aria-labelledby":S,"aria-orientation":t.orientation,id:r,onKeyDown:P,role:"listbox",tabIndex:0,ref:u};return w({ourProps:y,theirProps:l,slot:L,defaultTag:Je,features:qe,visible:m,name:"Listbox.Options"})}let Ze="li";function et(e,a){let n=V(),{id:r=`headlessui-listbox-option-${n}`,disabled:l=!1,value:t,...p}=e,u=U("Listbox.Option"),i=_("Listbox.Option"),b=u.activeOptionIndex!==null?u.options[u.activeOptionIndex].id===r:!1,R=u.isSelected(t),m=D(null),P=Ue(m),S=we({disabled:l,value:t,domRef:m,get textValue(){return P()}}),L=M(a,m);K(()=>{if(u.listboxState!==0||!b||u.activationTrigger===0)return;let A=$();return A.requestAnimationFrame(()=>{var d,H;(H=(d=m.current)==null?void 0:d.scrollIntoView)==null||H.call(d,{block:"nearest"})}),A.dispose},[m,b,u.listboxState,u.activationTrigger,u.activeOptionIndex]),K(()=>i.registerOption(r,S),[S,r]);let y=f(A=>{if(l)return A.preventDefault();i.onChange(t),u.mode===0&&(i.closeListbox(),$().nextFrame(()=>{var d;return(d=u.buttonRef.current)==null?void 0:d.focus({preventScroll:!0})}))}),T=f(()=>{if(l)return i.goToOption(v.Nothing);i.goToOption(v.Specific,r)}),o=_e(),x=f(A=>o.update(A)),E=f(A=>{o.wasMoved(A)&&(l||b||i.goToOption(v.Specific,r,0))}),B=f(A=>{o.wasMoved(A)&&(l||b&&i.goToOption(v.Nothing))}),W=h(()=>({active:b,selected:R,disabled:l}),[b,R,l]);return w({ourProps:{id:r,ref:L,role:"option",tabIndex:l===!0?void 0:-1,"aria-disabled":l===!0?!0:void 0,"aria-selected":R,disabled:void 0,onClick:y,onFocus:T,onPointerEnter:x,onMouseEnter:x,onPointerMove:E,onMouseMove:E,onPointerLeave:B,onMouseLeave:B},theirProps:p,slot:W,defaultTag:Ze,name:"Listbox.Option"})}let tt=k(Qe),ot=k(Xe),nt=k(ze),it=k(Ye),rt=k(et),Nt=Object.assign(tt,{Button:ot,Label:nt,Options:it,Option:rt});export{Nt as Listbox};

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

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

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

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

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

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

@@ -3,0 +4,0 @@ enterFrom: string[];

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

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

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

import{isIOS as f}from'../../utils/platform.js';function p(){if(!f())return{};let o;return{before(){o=window.pageYOffset},after({doc:r,d:l,meta:s}){function i(e){return s.containers.flatMap(t=>t()).some(t=>t.contains(e))}l.style(r.body,"marginTop",`-${o}px`),window.scrollTo(0,0);let n=null;l.addEventListener(r,"click",e=>{if(e.target instanceof HTMLElement)try{let t=e.target.closest("a");if(!t)return;let{hash:c}=new URL(t.href),a=r.querySelector(c);a&&!i(a)&&(n=a)}catch{}},!0),l.addEventListener(r,"touchmove",e=>{e.target instanceof HTMLElement&&!i(e.target)&&e.preventDefault()},{passive:!1}),l.add(()=>{window.scrollTo(0,window.pageYOffset+o),n&&n.isConnected&&(n.scrollIntoView({block:"nearest"}),n=null)})}}}export{p as handleIOSLocking};
import{disposables as m}from'../../utils/disposables.js';import{isIOS as f}from'../../utils/platform.js';function T(){if(!f())return{};let l;return{before(){l=window.pageYOffset},after({doc:o,d:t,meta:s}){function i(n){return s.containers.flatMap(e=>e()).some(e=>e.contains(n))}t.microTask(()=>{if(window.getComputedStyle(o.documentElement).scrollBehavior!=="auto"){let e=m();e.style(o.documentElement,"scroll-behavior","auto"),t.add(()=>t.microTask(()=>e.dispose()))}t.style(o.body,"marginTop",`-${l}px`),window.scrollTo(0,0);let n=null;t.addEventListener(o,"click",e=>{if(e.target instanceof HTMLElement)try{let r=e.target.closest("a");if(!r)return;let{hash:c}=new URL(r.href),a=o.querySelector(c);a&&!i(a)&&(n=a)}catch{}},!0),t.addEventListener(o,"touchmove",e=>{e.target instanceof HTMLElement&&!i(e.target)&&e.preventDefault()},{passive:!1}),t.add(()=>{window.scrollTo(0,window.pageYOffset+l),n&&n.isConnected&&(n.scrollIntoView({block:"nearest"}),n=null)})})}}}export{T as handleIOSLocking};
import React, { MutableRefObject } from 'react';
export declare function useRootContainers({ defaultContainers, portals, }?: {
export declare function useRootContainers({ defaultContainers, portals, mainTreeNodeRef: _mainTreeNodeRef, }?: {
defaultContainers?: (HTMLElement | null | MutableRefObject<HTMLElement | null>)[];
portals?: MutableRefObject<HTMLElement[]>;
mainTreeNodeRef?: MutableRefObject<HTMLElement | null>;
}): {
resolveContainers: () => HTMLElement[];
contains: (element: HTMLElement) => boolean;
mainTreeNodeRef: React.MutableRefObject<HTMLDivElement | null>;
mainTreeNodeRef: React.MutableRefObject<HTMLElement | null>;
MainTreeNode: () => JSX.Element | null;
};
export declare function useMainTreeNode(): {
mainTreeNodeRef: React.MutableRefObject<HTMLElement | null>;
MainTreeNode: () => JSX.Element;
};

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

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

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

import{useState as r,useEffect as o}from"react";import{env as t}from'../utils/env.js';function l(){let[e,f]=r(t.isHandoffComplete);return e&&t.isHandoffComplete===!1&&f(!1),o(()=>{e!==!0&&f(!0)},[e]),o(()=>t.handoff(),[]),e}export{l as useServerHandoffComplete};
import*as t from"react";import{env as f}from'../utils/env.js';function s(){let r=typeof document=="undefined";return"useSyncExternalStore"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};
import { MutableRefObject } from 'react';
interface TransitionArgs {
immediate: boolean;
container: MutableRefObject<HTMLElement | null>;
classes: MutableRefObject<{
base: string[];
enter: string[];

@@ -17,3 +19,3 @@ enterFrom: string[];

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

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

import{transition as d}from'../components/transitions/utils/transition.js';import{disposables as l}from'../utils/disposables.js';import{useDisposables as f}from'./use-disposables.js';import{useIsMounted as m}from'./use-is-mounted.js';import{useIsoMorphicEffect as p}from'./use-iso-morphic-effect.js';import{useLatestValue as b}from'./use-latest-value.js';function D({container:i,direction:t,classes:o,onStart:s,onStop:u}){let a=m(),c=f(),r=b(t);p(()=>{let e=l();c.add(e.dispose);let n=i.current;if(n&&r.current!=="idle"&&a.current)return e.dispose(),s.current(r.current),e.add(d(n,o.current,r.current==="enter",()=>{e.dispose(),u.current(r.current)})),e.dispose},[t])}export{D as useTransition};
import{transition as f}from'../components/transitions/utils/transition.js';import{disposables as m}from'../utils/disposables.js';import{useDisposables as p}from'./use-disposables.js';import{useIsMounted as b}from'./use-is-mounted.js';import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';import{useLatestValue as g}from'./use-latest-value.js';function E({immediate:t,container:s,direction:n,classes:u,onStart:a,onStop:c}){let l=b(),d=p(),e=g(n);o(()=>{t&&(e.current="enter")},[t]),o(()=>{let r=m();d.add(r.dispose);let i=s.current;if(i&&e.current!=="idle"&&l.current)return r.dispose(),a.current(e.current),r.add(f(i,u.current,e.current==="enter",()=>{r.dispose(),c.current(e.current)})),r.dispose},[n])}export{E as useTransition};

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

function e(...n){return n.filter(Boolean).join(" ")}export{e as classNames};
function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n=="string"?n.split(" "):[]))).filter(Boolean).join(" ")}export{t as classNames};
type Entries = [string, string][];
export declare function objectToFormEntries(source?: Record<string, any>, parentKey?: string | null, entries?: Entries): Entries;
export declare function attemptSubmit(element: HTMLElement): void;
export declare function attemptSubmit(elementInForm: HTMLElement): void;
export {};

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

function e(n={},r=null,t=[]){for(let[i,o]of Object.entries(n))f(t,s(r,i),o);return t}function s(n,r){return n?n+"["+r+"]":r}function f(n,r,t){if(Array.isArray(t))for(let[i,o]of t.entries())f(n,s(r,i.toString()),o);else t instanceof Date?n.push([r,t.toISOString()]):typeof t=="boolean"?n.push([r,t?"1":"0"]):typeof t=="string"?n.push([r,t]):typeof t=="number"?n.push([r,`${t}`]):t==null?n.push([r,""]):e(t,r,n)}function p(n){var t;let r=(t=n==null?void 0:n.form)!=null?t:n.closest("form");if(r){for(let i of r.elements)if(i.tagName==="INPUT"&&i.type==="submit"||i.tagName==="BUTTON"&&i.type==="submit"||i.nodeName==="INPUT"&&i.type==="image"){i.click();return}r.requestSubmit()}}export{p as attemptSubmit,e as objectToFormEntries};
function e(i={},s=null,t=[]){for(let[r,n]of Object.entries(i))o(t,f(s,r),n);return t}function f(i,s){return i?i+"["+s+"]":s}function o(i,s,t){if(Array.isArray(t))for(let[r,n]of t.entries())o(i,f(s,r.toString()),n);else t instanceof Date?i.push([s,t.toISOString()]):typeof t=="boolean"?i.push([s,t?"1":"0"]):typeof t=="string"?i.push([s,t]):typeof t=="number"?i.push([s,`${t}`]):t==null?i.push([s,""]):e(t,s,i)}function p(i){var t,r;let s=(t=i==null?void 0:i.form)!=null?t:i.closest("form");if(s){for(let n of s.elements)if(n!==i&&(n.tagName==="INPUT"&&n.type==="submit"||n.tagName==="BUTTON"&&n.type==="submit"||n.nodeName==="INPUT"&&n.type==="image")){n.click();return}(r=s.requestSubmit)==null||r.call(s)}}export{p as attemptSubmit,e as objectToFormEntries};
{
"name": "@headlessui/react",
"version": "1.7.16",
"version": "1.7.17",
"description": "A set of completely unstyled, fully accessible UI components for React, designed to integrate beautifully with Tailwind CSS.",

@@ -5,0 +5,0 @@ "main": "dist/index.cjs",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc