UNPKG

@headlessui/vue

Version:

A set of completely unstyled, fully accessible UI components for Vue 3, designed to integrate beautifully with Tailwind CSS.

1 lines • 68.4 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,n,o=require("vue");function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function a(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)t.indexOf(n=a[o])>=0||(r[n]=e[n]);return r}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function u(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){if(e in t){for(var n=t[e],o=arguments.length,r=new Array(o>2?o-2:0),a=2;a<o;a++)r[a-2]=arguments[a];return"function"==typeof n?n.apply(void 0,r):n}var i=new Error('Tried to handle "'+e+'" but there is no handler defined. Only defined handlers are: '+Object.keys(t).map((function(e){return'"'+e+'"'})).join(", ")+".");throw Error.captureStackTrace&&Error.captureStackTrace(i,l),i}function s(n){var o,i,u=n.visible,s=void 0===u||u,d=n.features,p=void 0===d?e.None:d,f=a(n,["visible","features"]);return s||p&e.Static&&f.props.static?c(f):p&e.RenderStrategy?l(null==(o=f.props.unmount)||o?t.Unmount:t.Hidden,((i={})[t.Unmount]=function(){return null},i[t.Hidden]=function(){return c(r({},f,{props:r({},f.props,{hidden:!0,style:{display:"none"}})}))},i)):c(f)}function c(e){var t,n=e.attrs,r=e.slots,i=e.slot,u=e.name,l=d(e.props,["unmount","static"]),s=l.as,c=a(l,["as"]),p=null==r.default?void 0:r.default(i);if("template"===s){if(Object.keys(c).length>0||Object.keys(n).length>0){var f=null!=p?p:[],v=f[0],m=f.slice(1);if(null==(t=v)||"string"!=typeof t.type&&"object"!=typeof t.type&&"function"!=typeof t.type||m.length>0)throw new Error(['Passing props on "template"!',"","The current component <"+u+' /> is rendering a "template".',"However we need to passthrough the following props:",Object.keys(c).concat(Object.keys(n)).map((function(e){return" - "+e})).join("\n"),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map((function(e){return" - "+e})).join("\n")].join("\n"));return o.cloneVNode(v,c)}return Array.isArray(p)&&1===p.length?p[0]:p}return o.h(s,c,p)}function d(e,t){void 0===t&&(t=[]);for(var n,o=Object.assign({},e),r=u(t);!(n=r()).done;){var a=n.value;a in o&&delete o[a]}return o}!function(e){e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static"}(e||(e={})),function(e){e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden"}(t||(t={})),function(e){e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab"}(n||(n={}));var p=0;function f(){return++p}var v,m,b,h,y=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map((function(e){return e+":not([tabindex='-1'])"})).join(",");function g(e){return void 0===e&&(e=document.body),null==e?[]:Array.from(e.querySelectorAll(y))}function S(e){null==e||e.focus({preventScroll:!0})}function x(e,t){var n=Array.isArray(e)?e:g(e),o=document.activeElement,r=function(){if(t&(v.First|v.Next))return b.Next;if(t&(v.Previous|v.Last))return b.Previous;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),a=function(){if(t&v.First)return 0;if(t&v.Previous)return Math.max(0,n.indexOf(o))-1;if(t&v.Next)return Math.max(0,n.indexOf(o))+1;if(t&v.Last)return n.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),i=t&v.NoScroll?{preventScroll:!0}:{},u=0,l=n.length,s=void 0;do{var c;if(u>=l||u+l<=0)return m.Error;var d=a+u;if(t&v.WrapAround)d=(d+l)%l;else{if(d<0)return m.Underflow;if(d>=l)return m.Overflow}null==(c=s=n[d])||c.focus(i),u+=r}while(s!==document.activeElement);return s.hasAttribute("tabindex")||s.setAttribute("tabindex","0"),m.Success}function w(e,t,n){window.addEventListener(e,t,n),o.onUnmounted((function(){return window.removeEventListener(e,t,n)}))}function O(e,t){for(var n,o=u(e);!(n=o()).done;)if(n.value.contains(t))return!0;return!1}function E(e,t,r){void 0===t&&(t=o.ref(!0)),void 0===r&&(r=o.ref({}));var a=o.ref("undefined"!=typeof window?document.activeElement:null),i=o.ref(null);function l(){if(t.value&&1===e.value.size){var n=r.value.initialFocus,o=document.activeElement;if(n){if(n===o)return}else if(O(e.value,o))return;if(a.value=o,n)S(n);else{for(var l,s=!1,c=u(e.value);!(l=c()).done;)if(x(l.value,v.First)===m.Success){s=!0;break}s||console.warn("There are no focusable elements inside the <FocusTrap />")}i.value=document.activeElement}}function s(){S(a.value),a.value=null,i.value=null}o.watchEffect(l),o.onUpdated((function(){t.value?l():s()})),o.onUnmounted(s),w("keydown",(function(o){if(t.value&&o.key===n.Tab&&document.activeElement&&1===e.value.size){o.preventDefault();for(var r,a=u(e.value);!(r=a()).done;)if(x(r.value,(o.shiftKey?v.Previous:v.Next)|v.WrapAround)===m.Success){i.value=document.activeElement;break}}})),w("focus",(function(n){if(t.value&&1===e.value.size){var o=i.value;if(o){var r=n.target;r&&r instanceof HTMLElement?O(e.value,r)?(i.value=r,S(r)):(n.preventDefault(),n.stopPropagation(),S(o)):S(i.value)}}}),!0)}!function(e){e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll"}(v||(v={})),function(e){e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow"}(m||(m={})),function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"}(b||(b={})),function(e){e[e.Strict=0]="Strict",e[e.Loose=1]="Loose"}(h||(h={}));var C=new Set,P=new Map;function T(e){e.setAttribute("aria-hidden","true"),e.inert=!0}function k(e){var t=P.get(e);t&&(null===t["aria-hidden"]?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",t["aria-hidden"]),e.inert=t.inert)}var D,I=Symbol("StackContext");function R(){return o.inject(I,(function(){}))}function L(e){var t=R();o.provide(I,(function(){for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];null==e||e.apply(void 0,o),t.apply(void 0,o)}))}!function(e){e[e.AddElement=0]="AddElement",e[e.RemoveElement=1]="RemoveElement"}(D||(D={}));var A=Symbol("ForcePortalRootContext"),F=o.defineComponent({name:"ForcePortalRoot",props:{as:{type:[Object,String],default:"template"},force:{type:Boolean,default:!1}},setup:function(e,t){var n=t.slots,r=t.attrs;return o.provide(A,e.force),function(){return s({props:a(e,["force"]),slot:{},slots:n,attrs:r,name:"ForcePortalRoot"})}}}),$=o.defineComponent({name:"Portal",props:{as:{type:[Object,String],default:"div"}},setup:function(e,t){var n=t.slots,a=t.attrs,i=o.inject(A,!1),u=o.inject(j,null),l=o.ref(!0===i||null===u?function(){var e=document.getElementById("headlessui-portal-root");if(e)return e;var t=document.createElement("div");return t.setAttribute("id","headlessui-portal-root"),document.body.appendChild(t)}():u.resolveTarget());o.watchEffect((function(){i||null!==u&&(l.value=u.resolveTarget())}));var c=o.ref(null);return function(e){var t=R();o.watchEffect((function(n){var o=null==e?void 0:e.value;o&&(t(D.AddElement,o),n((function(){return t(D.RemoveElement,o)})))}))}(c),o.onUnmounted((function(){var e,t=document.getElementById("headlessui-portal-root");t&&l.value===t&&l.value.children.length<=0&&(null==(e=l.value.parentElement)||e.removeChild(l.value))})),L(),function(){return null===l.value?null:o.h(o.Teleport,{to:l.value},s({props:r({},e,{ref:c}),slot:{},attrs:a,slots:n,name:"Portal"}))}}}),j=Symbol("PortalGroupContext"),B=o.defineComponent({name:"PortalGroup",props:{as:{type:[Object,String],default:"template"},target:{type:Object,default:null}},setup:function(e,t){var n=t.attrs,r=t.slots,i=o.reactive({resolveTarget:function(){return e.target}});return o.provide(j,i),function(){return s({props:a(e,["target"]),slot:{},attrs:n,slots:r,name:"PortalGroup"})}}}),M=Symbol("DescriptionContext");function K(e){var t=void 0===e?{}:e,n=t.slot,r=void 0===n?o.ref({}):n,a=t.name,i=void 0===a?"Description":a,u=t.props,l=void 0===u?{}:u,s=o.ref([]);return o.provide(M,{register:function(e){return s.value.push(e),function(){var t=s.value.indexOf(e);-1!==t&&s.value.splice(t,1)}},slot:r,name:i,props:l}),o.computed((function(){return s.value.length>0?s.value.join(" "):void 0}))}var U=o.defineComponent({name:"Description",props:{as:{type:[Object,String],default:"p"}},render:function(){var e=this.context,t=e.name,n=void 0===t?"Description":t,a=e.slot,i=void 0===a?o.ref({}):a,u=e.props,l=this.$props,c=r({},Object.entries(void 0===u?{}:u).reduce((function(e,t){var n;return Object.assign(e,((n={})[t[0]]=o.unref(t[1]),n))}),{}),{id:this.id});return s({props:r({},l,c),slot:i.value,attrs:this.$attrs,slots:this.$slots,name:n})},setup:function(){var e=function(){var e=o.inject(M,null);if(null===e)throw new Error("Missing parent");return e}(),t="headlessui-description-"+f();return o.onMounted((function(){return o.onUnmounted(e.register(t))})),{id:t,context:e}}});function N(e){var t;return null==e||null==e.value?null:null!=(t=e.value.$el)?t:e.value}var V,G,H=Symbol("Context");function W(){return o.inject(H,null)}function z(e){o.provide(H,e)}!function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(V||(V={})),function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(G||(G={}));var q=Symbol("DialogContext");function _(e){var t=o.inject(q,null);if(null===t){var n=new Error("<"+e+" /> is missing a parent <Dialog /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,_),n}return t}var Q,Y="DC8F892D-2EBD-447C-A4C8-A03058436FF4",J=o.defineComponent({name:"Dialog",inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:Y},initialFocus:{type:Object,default:null}},emits:{close:function(e){return!0}},render:function(){var t=this,n=r({},this.$attrs,{ref:"el",id:this.id,role:"dialog","aria-modal":this.dialogState===G.Open||void 0,"aria-labelledby":this.titleId,"aria-describedby":this.describedby,onClick:this.handleClick}),i=a(this.$props,["open","initialFocus"]),u={open:this.dialogState===G.Open};return o.h(F,{force:!0},(function(){return o.h($,(function(){return o.h(B,{target:t.dialogRef},(function(){return o.h(F,{force:!1},(function(){return s({props:r({},i,n),slot:u,attrs:t.$attrs,slots:t.$slots,visible:t.visible,features:e.RenderStrategy|e.Static,name:"Dialog"})}))}))}))}))},setup:function(e,t){var r=t.emit,a=o.ref(new Set),i=W(),s=o.computed((function(){var t;return e.open===Y&&null!==i?l(i.value,((t={})[V.Open]=!0,t[V.Closed]=!1,t)):e.open}));if(e.open===Y&&null===i)throw new Error("You forgot to provide an `open` prop to the `Dialog`.");if("boolean"!=typeof s.value)throw new Error("You provided an `open` prop to the `Dialog`, but the value is not a boolean. Received: "+(s.value===Y?void 0:e.open));var c=o.computed((function(){return e.open?G.Open:G.Closed})),d=o.computed((function(){return null!==i?i.value===V.Open:c.value===G.Open})),p=o.ref(null),v=o.ref(c.value===G.Open);o.onUpdated((function(){v.value=c.value===G.Open}));var m="headlessui-dialog-"+f(),b=o.computed((function(){return{initialFocus:e.initialFocus}}));E(a,v,b),function(e,t){void 0===t&&(t=o.ref(!0)),o.watchEffect((function(n){if(t.value&&e.value){var o=e.value;C.add(o);for(var r,a=u(P.keys());!(r=a()).done;){var i=r.value;i.contains(o)&&(k(i),P.delete(i))}document.querySelectorAll("body > *").forEach((function(e){if(e instanceof HTMLElement){for(var t,n=u(C);!(t=n()).done;)if(e.contains(t.value))return;1===C.size&&(P.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),T(e))}})),n((function(){if(C.delete(o),C.size>0)document.querySelectorAll("body > *").forEach((function(e){if(e instanceof HTMLElement&&!P.has(e)){for(var t,n=u(C);!(t=n()).done;)if(e.contains(t.value))return;P.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),T(e)}}));else for(var e,t=u(P.keys());!(e=t()).done;){var n=e.value;k(n),P.delete(n)}}))}}))}(p,v),L((function(e,t){var n;return l(e,((n={})[D.AddElement]=function(){a.value.add(t)},n[D.RemoveElement]=function(){a.value.delete(t)},n))}));var h=K({name:"DialogDescription",slot:o.computed((function(){return{open:s.value}}))}),y=o.ref(null),g={titleId:y,dialogState:c,setTitleId:function(e){y.value!==e&&(y.value=e)},close:function(){r("close",!1)}};return o.provide(q,g),w("mousedown",(function(e){var t=e.target;c.value===G.Open&&1===a.value.size&&(O(a.value,t)||(g.close(),o.nextTick((function(){return null==t?void 0:t.focus()}))))})),w("keydown",(function(e){e.key===n.Escape&&c.value===G.Open&&(a.value.size>1||(e.preventDefault(),e.stopPropagation(),g.close()))})),o.watchEffect((function(e){if(c.value===G.Open){var t=document.documentElement.style.overflow,n=document.documentElement.style.paddingRight,o=window.innerWidth-document.documentElement.clientWidth;document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=o+"px",e((function(){document.documentElement.style.overflow=t,document.documentElement.style.paddingRight=n}))}})),o.watchEffect((function(e){if(c.value===G.Open){var t=N(p);if(t){var n=new IntersectionObserver((function(e){for(var t,n=u(e);!(t=n()).done;){var o=t.value;0===o.boundingClientRect.x&&0===o.boundingClientRect.y&&0===o.boundingClientRect.width&&0===o.boundingClientRect.height&&g.close()}}));n.observe(t),e((function(){return n.disconnect()}))}}})),{id:m,el:p,dialogRef:p,containers:a,dialogState:c,titleId:y,describedby:h,visible:d,open:s,handleClick:function(e){e.stopPropagation()}}}}),X=o.defineComponent({name:"DialogOverlay",props:{as:{type:[Object,String],default:"div"}},render:function(){var e=_("DialogOverlay");return s({props:r({},this.$props,{ref:"el",id:this.id,"aria-hidden":!0,onClick:this.handleClick}),slot:{open:e.dialogState.value===G.Open},attrs:this.$attrs,slots:this.$slots,name:"DialogOverlay"})},setup:function(){var e=_("DialogOverlay");return{id:"headlessui-dialog-overlay-"+f(),handleClick:function(t){t.preventDefault(),t.stopPropagation(),e.close()}}}}),Z=o.defineComponent({name:"DialogTitle",props:{as:{type:[Object,String],default:"h2"}},render:function(){var e=_("DialogTitle");return s({props:r({},this.$props,{id:this.id}),slot:{open:e.dialogState.value===G.Open},attrs:this.$attrs,slots:this.$slots,name:"DialogTitle"})},setup:function(){var e=_("DialogTitle"),t="headlessui-dialog-title-"+f();return o.onMounted((function(){e.setTitleId(t),o.onUnmounted((function(){return e.setTitleId(null)}))})),{id:t}}}),ee=U;function te(e,t){if(e)return e;var n=null!=t?t:"button";return"string"==typeof n&&"button"===n.toLowerCase()?"button":void 0}function ne(e,t){var n=o.ref(te(e.value.type,e.value.as));return o.onMounted((function(){n.value=te(e.value.type,e.value.as)})),o.watchEffect((function(){var e;n.value||N(t)&&N(t)instanceof HTMLButtonElement&&!(null==(e=N(t))?void 0:e.hasAttribute("type"))&&(n.value="button")})),n}!function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(Q||(Q={}));var oe=Symbol("DisclosureContext");function re(e){var t=o.inject(oe,null);if(null===t){var n=new Error("<"+e+" /> is missing a parent <Disclosure /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,re),n}return t}var ae,ie,ue=Symbol("DisclosurePanelContext"),le=o.defineComponent({name:"Disclosure",props:{as:{type:[Object,String],default:"template"},defaultOpen:{type:[Boolean],default:!1}},setup:function(e,t){var n=t.slots,r=t.attrs,i="headlessui-disclosure-button-"+f(),u="headlessui-disclosure-panel-"+f(),c=o.ref(e.defaultOpen?Q.Open:Q.Closed),d=o.ref(null),p=o.ref(null),v={buttonId:i,panelId:u,disclosureState:c,panel:d,button:p,toggleDisclosure:function(){var e;c.value=l(c.value,((e={})[Q.Open]=Q.Closed,e[Q.Closed]=Q.Open,e))},closeDisclosure:function(){c.value!==Q.Closed&&(c.value=Q.Closed)},close:function(e){v.closeDisclosure();var t=e?e instanceof HTMLElement?e:e.value instanceof HTMLElement?N(e):N(v.button):N(v.button);null==t||t.focus()}};return o.provide(oe,v),z(o.computed((function(){var e;return l(c.value,((e={})[Q.Open]=V.Open,e[Q.Closed]=V.Closed,e))}))),function(){return s({props:a(e,["defaultOpen"]),slot:{open:c.value===Q.Open,close:v.close},slots:n,attrs:r,name:"Disclosure"})}}}),se=o.defineComponent({name:"DisclosureButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1}},render:function(){var e=re("DisclosureButton"),t={open:e.disclosureState.value===Q.Open},n=this.isWithinPanel?{ref:"el",type:this.type,onClick:this.handleClick,onKeydown:this.handleKeyDown}:{id:this.id,ref:"el",type:this.type,"aria-expanded":this.$props.disabled?void 0:e.disclosureState.value===Q.Open,"aria-controls":N(e.panel)?e.panelId:void 0,disabled:!!this.$props.disabled||void 0,onClick:this.handleClick,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp};return s({props:r({},this.$props,n),slot:t,attrs:this.$attrs,slots:this.$slots,name:"DisclosureButton"})},setup:function(e,t){var r=t.attrs,a=re("DisclosureButton"),i=o.inject(ue,null),u=null!==i&&i===a.panelId,l=o.ref(null);return u||o.watchEffect((function(){a.button.value=l.value})),{isWithinPanel:u,id:a.buttonId,el:l,type:ne(o.computed((function(){return{as:e.as,type:r.type}})),l),handleClick:function(){var t;e.disabled||(u?(a.toggleDisclosure(),null==(t=N(a.button))||t.focus()):a.toggleDisclosure())},handleKeyDown:function(t){var o;if(!e.disabled)if(u)switch(t.key){case n.Space:case n.Enter:t.preventDefault(),t.stopPropagation(),a.toggleDisclosure(),null==(o=N(a.button))||o.focus()}else switch(t.key){case n.Space:case n.Enter:t.preventDefault(),t.stopPropagation(),a.toggleDisclosure()}},handleKeyUp:function(e){switch(e.key){case n.Space:e.preventDefault()}}}}}),ce=o.defineComponent({name:"DisclosurePanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},render:function(){var t=re("DisclosurePanel"),n={open:t.disclosureState.value===Q.Open,close:t.close};return s({props:r({},this.$props,{id:this.id,ref:"el"}),slot:n,attrs:this.$attrs,slots:this.$slots,features:e.RenderStrategy|e.Static,visible:this.visible,name:"DisclosurePanel"})},setup:function(){var e=re("DisclosurePanel");o.provide(ue,e.panelId);var t=W(),n=o.computed((function(){return null!==t?t.value===V.Open:e.disclosureState.value===Q.Open}));return{id:e.panelId,el:e.panel,visible:n}}}),de=o.defineComponent({name:"FocusTrap",props:{as:{type:[Object,String],default:"div"},initialFocus:{type:Object,default:null}},render:function(){return s({props:r({},a(this.$props,["initialFocus"]),{ref:"el"}),slot:{},attrs:this.$attrs,slots:this.$slots,name:"FocusTrap"})},setup:function(e){var t=o.ref(new Set),n=o.ref(null),r=o.ref(!0),a=o.computed((function(){return{initialFocus:e.initialFocus}}));return o.onMounted((function(){n.value&&(t.value.add(n.value),E(t,r,a))})),o.onUnmounted((function(){r.value=!1})),{el:n}}});function pe(e,t){var n=t.resolveItems();if(n.length<=0)return null;var o=t.resolveActiveIndex(),r=null!=o?o:-1,a=function(){switch(e.focus){case ae.First:return n.findIndex((function(e){return!t.resolveDisabled(e)}));case ae.Previous:var o=n.slice().reverse().findIndex((function(e,n,o){return!(-1!==r&&o.length-n-1>=r||t.resolveDisabled(e))}));return-1===o?o:n.length-1-o;case ae.Next:return n.findIndex((function(e,n){return!(n<=r||t.resolveDisabled(e))}));case ae.Last:var a=n.slice().reverse().findIndex((function(e){return!t.resolveDisabled(e)}));return-1===a?a:n.length-1-a;case ae.Specific:return n.findIndex((function(n){return t.resolveId(n)===e.id}));case ae.Nothing:return null;default:!function(e){throw new Error("Unexpected object: "+e)}(e)}}();return-1===a?o:a}!function(e){e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing"}(ae||(ae={})),function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(ie||(ie={}));var fe=Symbol("ListboxContext");function ve(e){var t=o.inject(fe,null);if(null===t){var n=new Error("<"+e+" /> is missing a parent <Listbox /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,ve),n}return t}var me,be=o.defineComponent({name:"Listbox",emits:{"update:modelValue":function(e){return!0}},props:{as:{type:[Object,String],default:"template"},disabled:{type:[Boolean],default:!1},horizontal:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean]}},setup:function(e,t){var n=t.slots,r=t.attrs,a=t.emit,i=o.ref(ie.Closed),u=o.ref(null),c=o.ref(null),p=o.ref(null),f=o.ref([]),v=o.ref(""),m=o.ref(null),b=o.computed((function(){return e.modelValue})),h={listboxState:i,value:b,orientation:o.computed((function(){return e.horizontal?"horizontal":"vertical"})),labelRef:u,buttonRef:c,optionsRef:p,disabled:o.computed((function(){return e.disabled})),options:f,searchQuery:v,activeOptionIndex:m,closeListbox:function(){e.disabled||i.value!==ie.Closed&&(i.value=ie.Closed,m.value=null)},openListbox:function(){e.disabled||i.value!==ie.Open&&(i.value=ie.Open)},goToOption:function(t,n){if(!e.disabled&&i.value!==ie.Closed){var o=pe(t===ae.Specific?{focus:ae.Specific,id:n}:{focus:t},{resolveItems:function(){return f.value},resolveActiveIndex:function(){return m.value},resolveId:function(e){return e.id},resolveDisabled:function(e){return e.dataRef.disabled}});""===v.value&&m.value===o||(v.value="",m.value=o)}},search:function(t){if(!e.disabled&&i.value!==ie.Closed){v.value+=t.toLowerCase();var n=f.value.findIndex((function(e){return!e.dataRef.disabled&&e.dataRef.textValue.startsWith(v.value)}));-1!==n&&n!==m.value&&(m.value=n)}},clearSearch:function(){e.disabled||i.value!==ie.Closed&&""!==v.value&&(v.value="")},registerOption:function(e,t){f.value.push({id:e,dataRef:t})},unregisterOption:function(e){var t=f.value.slice(),n=null!==m.value?t[m.value]:null,o=t.findIndex((function(t){return t.id===e}));-1!==o&&t.splice(o,1),f.value=t,m.value=o===m.value||null===n?null:t.indexOf(n)},select:function(t){e.disabled||a("update:modelValue",t)}};return w("mousedown",(function(e){var t,n,o,r=e.target,a=document.activeElement;i.value===ie.Open&&((null==(t=N(c))?void 0:t.contains(r))||((null==(n=N(p))?void 0:n.contains(r))||h.closeListbox(),a!==document.body&&(null==a?void 0:a.contains(r))||e.defaultPrevented||null==(o=N(c))||o.focus({preventScroll:!0})))})),o.provide(fe,h),z(o.computed((function(){var e;return l(i.value,((e={})[ie.Open]=V.Open,e[ie.Closed]=V.Closed,e))}))),function(){var t={open:i.value===ie.Open,disabled:e.disabled};return s({props:d(e,["modelValue","onUpdate:modelValue","disabled","horizontal"]),slot:t,slots:n,attrs:r,name:"Listbox"})}}}),he=o.defineComponent({name:"ListboxLabel",props:{as:{type:[Object,String],default:"label"}},render:function(){var e=ve("ListboxLabel"),t={open:e.listboxState.value===ie.Open,disabled:e.disabled.value};return s({props:r({},this.$props,{id:this.id,ref:"el",onClick:this.handleClick}),slot:t,attrs:this.$attrs,slots:this.$slots,name:"ListboxLabel"})},setup:function(){var e=ve("ListboxLabel");return{id:"headlessui-listbox-label-"+f(),el:e.labelRef,handleClick:function(){var t;null==(t=N(e.buttonRef))||t.focus({preventScroll:!0})}}}}),ye=o.defineComponent({name:"ListboxButton",props:{as:{type:[Object,String],default:"button"}},render:function(){var e,t,n=ve("ListboxButton"),o={open:n.listboxState.value===ie.Open,disabled:n.disabled.value},a={ref:"el",id:this.id,type:this.type,"aria-haspopup":!0,"aria-controls":null==(e=N(n.optionsRef))?void 0:e.id,"aria-expanded":n.disabled.value?void 0:n.listboxState.value===ie.Open,"aria-labelledby":n.labelRef.value?[null==(t=N(n.labelRef))?void 0:t.id,this.id].join(" "):void 0,disabled:!0===n.disabled.value||void 0,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp,onClick:this.handleClick};return s({props:r({},this.$props,a),slot:o,attrs:this.$attrs,slots:this.$slots,name:"ListboxButton"})},setup:function(e,t){var r=t.attrs,a=ve("ListboxButton");return{id:"headlessui-listbox-button-"+f(),el:a.buttonRef,type:ne(o.computed((function(){return{as:e.as,type:r.type}})),a.buttonRef),handleKeyDown:function(e){switch(e.key){case n.Space:case n.Enter:case n.ArrowDown:e.preventDefault(),a.openListbox(),o.nextTick((function(){var e;null==(e=N(a.optionsRef))||e.focus({preventScroll:!0}),a.value.value||a.goToOption(ae.First)}));break;case n.ArrowUp:e.preventDefault(),a.openListbox(),o.nextTick((function(){var e;null==(e=N(a.optionsRef))||e.focus({preventScroll:!0}),a.value.value||a.goToOption(ae.Last)}))}},handleKeyUp:function(e){switch(e.key){case n.Space:e.preventDefault()}},handleClick:function(e){var t;a.disabled.value||(a.listboxState.value===ie.Open?(a.closeListbox(),o.nextTick((function(){var e;return null==(e=N(a.buttonRef))?void 0:e.focus({preventScroll:!0})}))):(e.preventDefault(),a.openListbox(),t=function(){var e;return null==(e=N(a.optionsRef))?void 0:e.focus({preventScroll:!0})},requestAnimationFrame((function(){return requestAnimationFrame(t)}))))}}}}),ge=o.defineComponent({name:"ListboxOptions",props:{as:{type:[Object,String],default:"ul"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},render:function(){var t,n,o,a,i=ve("ListboxOptions"),u={open:i.listboxState.value===ie.Open},l={"aria-activedescendant":null===i.activeOptionIndex.value||null==(t=i.options.value[i.activeOptionIndex.value])?void 0:t.id,"aria-labelledby":null!=(n=null==(o=N(i.labelRef))?void 0:o.id)?n:null==(a=N(i.buttonRef))?void 0:a.id,"aria-orientation":i.orientation.value,id:this.id,onKeydown:this.handleKeyDown,role:"listbox",tabIndex:0,ref:"el"};return s({props:r({},this.$props,l),slot:u,attrs:this.$attrs,slots:this.$slots,features:e.RenderStrategy|e.Static,visible:this.visible,name:"ListboxOptions"})},setup:function(){var e=ve("ListboxOptions"),t="headlessui-listbox-options-"+f(),r=o.ref(null),a=W(),i=o.computed((function(){return null!==a?a.value===V.Open:e.listboxState.value===ie.Open}));return{id:t,el:e.optionsRef,handleKeyDown:function(t){switch(r.value&&clearTimeout(r.value),t.key){case n.Space:if(""!==e.searchQuery.value)return t.preventDefault(),t.stopPropagation(),e.search(t.key);case n.Enter:t.preventDefault(),t.stopPropagation(),null!==e.activeOptionIndex.value&&e.select(e.options.value[e.activeOptionIndex.value].dataRef.value),e.closeListbox(),o.nextTick((function(){var t;return null==(t=N(e.buttonRef))?void 0:t.focus({preventScroll:!0})}));break;case l(e.orientation.value,{vertical:n.ArrowDown,horizontal:n.ArrowRight}):return t.preventDefault(),t.stopPropagation(),e.goToOption(ae.Next);case l(e.orientation.value,{vertical:n.ArrowUp,horizontal:n.ArrowLeft}):return t.preventDefault(),t.stopPropagation(),e.goToOption(ae.Previous);case n.Home:case n.PageUp:return t.preventDefault(),t.stopPropagation(),e.goToOption(ae.First);case n.End:case n.PageDown:return t.preventDefault(),t.stopPropagation(),e.goToOption(ae.Last);case n.Escape:t.preventDefault(),t.stopPropagation(),e.closeListbox(),o.nextTick((function(){var t;return null==(t=N(e.buttonRef))?void 0:t.focus({preventScroll:!0})}));break;case n.Tab:t.preventDefault(),t.stopPropagation();break;default:1===t.key.length&&(e.search(t.key),r.value=setTimeout((function(){return e.clearSearch()}),350))}},visible:i}}}),Se=o.defineComponent({name:"ListboxOption",props:{as:{type:[Object,String],default:"li"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1}},setup:function(e,t){var n=t.slots,a=t.attrs,i=ve("ListboxOption"),u="headlessui-listbox-option-"+f(),l=o.computed((function(){return null!==i.activeOptionIndex.value&&i.options.value[i.activeOptionIndex.value].id===u})),c=o.computed((function(){return o.toRaw(i.value.value)===o.toRaw(e.value)})),d=o.ref({disabled:e.disabled,value:e.value,textValue:""});function p(t){if(e.disabled)return t.preventDefault();i.select(e.value),i.closeListbox(),o.nextTick((function(){var e;return null==(e=N(i.buttonRef))?void 0:e.focus({preventScroll:!0})}))}function v(){if(e.disabled)return i.goToOption(ae.Nothing);i.goToOption(ae.Specific,u)}function m(){e.disabled||l.value||i.goToOption(ae.Specific,u)}function b(){e.disabled||l.value&&i.goToOption(ae.Nothing)}return o.onMounted((function(){var e,t,n=null==(e=document.getElementById(u))||null==(t=e.textContent)?void 0:t.toLowerCase().trim();void 0!==n&&(d.value.textValue=n)})),o.onMounted((function(){return i.registerOption(u,d)})),o.onUnmounted((function(){return i.unregisterOption(u)})),o.onMounted((function(){o.watch([i.listboxState,c],(function(){var e;i.listboxState.value===ie.Open&&c.value&&(i.goToOption(ae.Specific,u),null==(e=document.getElementById(u))||null==e.focus||e.focus())}),{immediate:!0})})),o.watchEffect((function(){i.listboxState.value===ie.Open&&l.value&&o.nextTick((function(){var e;return null==(e=document.getElementById(u))||null==e.scrollIntoView?void 0:e.scrollIntoView({block:"nearest"})}))})),function(){var t=e.disabled,o={active:l.value,selected:c.value,disabled:t};return s({props:r({},e,{id:u,role:"option",tabIndex:!0===t?void 0:-1,"aria-disabled":!0===t||void 0,"aria-selected":!0===c.value?c.value:void 0,disabled:void 0,onClick:p,onFocus:v,onPointermove:m,onMousemove:m,onPointerleave:b,onMouseleave:b}),slot:o,attrs:a,slots:n,name:"ListboxOption"})}}});function xe(e){var t=e.container,n=e.accept,r=e.walk,a=e.enabled;o.watchEffect((function(){var e=t.value;if(e&&(void 0===a||a.value))for(var o=Object.assign((function(e){return n(e)}),{acceptNode:n}),i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,o,!1);i.nextNode();)r(i.currentNode)}))}!function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(me||(me={}));var we=Symbol("MenuContext");function Oe(e){var t=o.inject(we,null);if(null===t){var n=new Error("<"+e+" /> is missing a parent <Menu /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,Oe),n}return t}var Ee,Ce=o.defineComponent({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup:function(e,t){var n=t.slots,r=t.attrs,a=o.ref(me.Closed),i=o.ref(null),u=o.ref(null),c=o.ref([]),d=o.ref(""),p=o.ref(null),f={menuState:a,buttonRef:i,itemsRef:u,items:c,searchQuery:d,activeItemIndex:p,closeMenu:function(){a.value=me.Closed,p.value=null},openMenu:function(){return a.value=me.Open},goToItem:function(e,t){var n=pe(e===ae.Specific?{focus:ae.Specific,id:t}:{focus:e},{resolveItems:function(){return c.value},resolveActiveIndex:function(){return p.value},resolveId:function(e){return e.id},resolveDisabled:function(e){return e.dataRef.disabled}});""===d.value&&p.value===n||(d.value="",p.value=n)},search:function(e){d.value+=e.toLowerCase();var t=c.value.findIndex((function(e){return e.dataRef.textValue.startsWith(d.value)&&!e.dataRef.disabled}));-1!==t&&t!==p.value&&(p.value=t)},clearSearch:function(){d.value=""},registerItem:function(e,t){c.value.push({id:e,dataRef:t})},unregisterItem:function(e){var t=c.value.slice(),n=null!==p.value?t[p.value]:null,o=t.findIndex((function(t){return t.id===e}));-1!==o&&t.splice(o,1),c.value=t,p.value=o===p.value||null===n?null:t.indexOf(n)}};return w("mousedown",(function(e){var t,n,o,r=e.target,l=document.activeElement;a.value===me.Open&&((null==(t=N(i))?void 0:t.contains(r))||((null==(n=N(u))?void 0:n.contains(r))||f.closeMenu(),l!==document.body&&(null==l?void 0:l.contains(r))||e.defaultPrevented||null==(o=N(i))||o.focus({preventScroll:!0})))})),o.provide(we,f),z(o.computed((function(){var e;return l(a.value,((e={})[me.Open]=V.Open,e[me.Closed]=V.Closed,e))}))),function(){return s({props:e,slot:{open:a.value===me.Open},slots:n,attrs:r,name:"Menu"})}}}),Pe=o.defineComponent({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"}},render:function(){var e,t=Oe("MenuButton"),n={open:t.menuState.value===me.Open},o={ref:"el",id:this.id,type:this.type,"aria-haspopup":!0,"aria-controls":null==(e=N(t.itemsRef))?void 0:e.id,"aria-expanded":this.$props.disabled?void 0:t.menuState.value===me.Open,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp,onClick:this.handleClick};return s({props:r({},this.$props,o),slot:n,attrs:this.$attrs,slots:this.$slots,name:"MenuButton"})},setup:function(e,t){var r=t.attrs,a=Oe("MenuButton");return{id:"headlessui-menu-button-"+f(),el:a.buttonRef,type:ne(o.computed((function(){return{as:e.as,type:r.type}})),a.buttonRef),handleKeyDown:function(e){switch(e.key){case n.Space:case n.Enter:case n.ArrowDown:e.preventDefault(),e.stopPropagation(),a.openMenu(),o.nextTick((function(){var e;null==(e=N(a.itemsRef))||e.focus({preventScroll:!0}),a.goToItem(ae.First)}));break;case n.ArrowUp:e.preventDefault(),e.stopPropagation(),a.openMenu(),o.nextTick((function(){var e;null==(e=N(a.itemsRef))||e.focus({preventScroll:!0}),a.goToItem(ae.Last)}))}},handleKeyUp:function(e){switch(e.key){case n.Space:e.preventDefault()}},handleClick:function(t){var n;e.disabled||(a.menuState.value===me.Open?(a.closeMenu(),o.nextTick((function(){var e;return null==(e=N(a.buttonRef))?void 0:e.focus({preventScroll:!0})}))):(t.preventDefault(),t.stopPropagation(),a.openMenu(),n=function(){var e;return null==(e=N(a.itemsRef))?void 0:e.focus({preventScroll:!0})},requestAnimationFrame((function(){return requestAnimationFrame(n)}))))}}}}),Te=o.defineComponent({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},render:function(){var t,n,o=Oe("MenuItems"),a={open:o.menuState.value===me.Open},i={"aria-activedescendant":null===o.activeItemIndex.value||null==(t=o.items.value[o.activeItemIndex.value])?void 0:t.id,"aria-labelledby":null==(n=N(o.buttonRef))?void 0:n.id,id:this.id,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp,role:"menu",tabIndex:0,ref:"el"};return s({props:r({},this.$props,i),slot:a,attrs:this.$attrs,slots:this.$slots,features:e.RenderStrategy|e.Static,visible:this.visible,name:"MenuItems"})},setup:function(){var e=Oe("MenuItems"),t="headlessui-menu-items-"+f(),r=o.ref(null);xe({container:o.computed((function(){return N(e.itemsRef)})),enabled:o.computed((function(){return e.menuState.value===me.Open})),accept:function(e){return"menuitem"===e.getAttribute("role")?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk:function(e){e.setAttribute("role","none")}});var a=W(),i=o.computed((function(){return null!==a?a.value===V.Open:e.menuState.value===me.Open}));return{id:t,el:e.itemsRef,handleKeyDown:function(t){switch(r.value&&clearTimeout(r.value),t.key){case n.Space:if(""!==e.searchQuery.value)return t.preventDefault(),t.stopPropagation(),e.search(t.key);case n.Enter:var a;t.preventDefault(),t.stopPropagation(),null!==e.activeItemIndex.value&&(null==(a=document.getElementById(e.items.value[e.activeItemIndex.value].id))||a.click()),e.closeMenu(),o.nextTick((function(){var t;return null==(t=N(e.buttonRef))?void 0:t.focus({preventScroll:!0})}));break;case n.ArrowDown:return t.preventDefault(),t.stopPropagation(),e.goToItem(ae.Next);case n.ArrowUp:return t.preventDefault(),t.stopPropagation(),e.goToItem(ae.Previous);case n.Home:case n.PageUp:return t.preventDefault(),t.stopPropagation(),e.goToItem(ae.First);case n.End:case n.PageDown:return t.preventDefault(),t.stopPropagation(),e.goToItem(ae.Last);case n.Escape:t.preventDefault(),t.stopPropagation(),e.closeMenu(),o.nextTick((function(){var t;return null==(t=N(e.buttonRef))?void 0:t.focus({preventScroll:!0})}));break;case n.Tab:t.preventDefault(),t.stopPropagation();break;default:1===t.key.length&&(e.search(t.key),r.value=setTimeout((function(){return e.clearSearch()}),350))}},handleKeyUp:function(e){switch(e.key){case n.Space:e.preventDefault()}},visible:i}}}),ke=o.defineComponent({name:"MenuItem",props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1}},setup:function(e,t){var n=t.slots,a=t.attrs,i=Oe("MenuItem"),u="headlessui-menu-item-"+f(),l=o.computed((function(){return null!==i.activeItemIndex.value&&i.items.value[i.activeItemIndex.value].id===u})),c=o.ref({disabled:e.disabled,textValue:""});function d(t){if(e.disabled)return t.preventDefault();i.closeMenu(),o.nextTick((function(){var e;return null==(e=N(i.buttonRef))?void 0:e.focus({preventScroll:!0})}))}function p(){if(e.disabled)return i.goToItem(ae.Nothing);i.goToItem(ae.Specific,u)}function v(){e.disabled||l.value||i.goToItem(ae.Specific,u)}function m(){e.disabled||l.value&&i.goToItem(ae.Nothing)}return o.onMounted((function(){var e,t,n=null==(e=document.getElementById(u))||null==(t=e.textContent)?void 0:t.toLowerCase().trim();void 0!==n&&(c.value.textValue=n)})),o.onMounted((function(){return i.registerItem(u,c)})),o.onUnmounted((function(){return i.unregisterItem(u)})),o.watchEffect((function(){i.menuState.value===me.Open&&l.value&&o.nextTick((function(){var e;return null==(e=document.getElementById(u))||null==e.scrollIntoView?void 0:e.scrollIntoView({block:"nearest"})}))})),function(){var t=e.disabled,o={active:l.value,disabled:t};return s({props:r({},e,{id:u,role:"menuitem",tabIndex:!0===t?void 0:-1,"aria-disabled":!0===t||void 0,onClick:d,onFocus:p,onPointermove:v,onMousemove:v,onPointerleave:m,onMouseleave:m}),slot:o,attrs:a,slots:n,name:"MenuItem"})}}});!function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(Ee||(Ee={}));var De=Symbol("PopoverContext");function Ie(e){var t=o.inject(De,null);if(null===t){var n=new Error("<"+e+" /> is missing a parent <"+Fe.name+" /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,Ie),n}return t}var Re=Symbol("PopoverGroupContext");function Le(){return o.inject(Re,null)}var Ae=Symbol("PopoverPanelContext"),Fe=o.defineComponent({name:"Popover",props:{as:{type:[Object,String],default:"div"}},setup:function(e,t){var n=t.slots,r=t.attrs,a="headlessui-popover-button-"+f(),i="headlessui-popover-panel-"+f(),u=o.ref(Ee.Closed),c=o.ref(null),d=o.ref(null),p={popoverState:u,buttonId:a,panelId:i,panel:d,button:c,togglePopover:function(){var e;u.value=l(u.value,((e={})[Ee.Open]=Ee.Closed,e[Ee.Closed]=Ee.Open,e))},closePopover:function(){u.value!==Ee.Closed&&(u.value=Ee.Closed)},close:function(e){p.closePopover();var t=e?e instanceof HTMLElement?e:e.value instanceof HTMLElement?N(e):N(p.button):N(p.button);null==t||t.focus()}};o.provide(De,p),z(o.computed((function(){var e;return l(u.value,((e={})[Ee.Open]=V.Open,e[Ee.Closed]=V.Closed,e))})));var v={buttonId:a,panelId:i,close:function(){p.closePopover()}},m=Le(),b=null==m?void 0:m.registerPopover;return o.watchEffect((function(){return null==b?void 0:b(v)})),w("focus",(function(){var e,t,n;u.value===Ee.Open&&((null!=(e=null==m?void 0:m.isFocusWithinPopoverGroup())?e:(null==(t=N(c))?void 0:t.contains(document.activeElement))||(null==(n=N(d))?void 0:n.contains(document.activeElement)))||c&&d&&p.closePopover())}),!0),w("mousedown",(function(e){var t,n,o,r,a,i,s=e.target;u.value===Ee.Open&&((null==(t=N(c))?void 0:t.contains(s))||(null==(n=N(d))?void 0:n.contains(s))||(p.closePopover(),void 0===(a=h.Loose)&&(a=h.Strict),(r=s)!==document.body&&l(a,((i={})[h.Strict]=function(){return r.matches(y)},i[h.Loose]=function(){for(var e=r;null!==e;){if(e.matches(y))return!0;e=e.parentElement}return!1},i))||(e.preventDefault(),null==(o=N(c))||o.focus())))})),function(){return s({props:e,slot:{open:u.value===Ee.Open,close:p.close},slots:n,attrs:r,name:"Popover"})}}}),$e=o.defineComponent({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1}},render:function(){var e=Ie("PopoverButton"),t={open:e.popoverState.value===Ee.Open},n=this.isWithinPanel?{ref:"el",type:this.type,onKeydown:this.handleKeyDown,onClick:this.handleClick}:{ref:"el",id:e.buttonId,type:this.type,"aria-expanded":this.$props.disabled?void 0:e.popoverState.value===Ee.Open,"aria-controls":N(e.panel)?e.panelId:void 0,disabled:!!this.$props.disabled||void 0,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp,onClick:this.handleClick};return s({props:r({},this.$props,n),slot:t,attrs:this.$attrs,slots:this.$slots,name:"PopoverButton"})},setup:function(e,t){var r=t.attrs,a=Ie("PopoverButton"),i=Le(),u=null==i?void 0:i.closeOthers,l=o.inject(Ae,null),s=null!==l&&l===a.panelId,c=o.ref(null),d=o.ref("undefined"==typeof window?null:document.activeElement);w("focus",(function(){d.value=c.value,c.value=document.activeElement}),!0);var p=o.ref(null);return s||o.watchEffect((function(){a.button.value=p.value})),{isWithinPanel:s,el:p,type:ne(o.computed((function(){return{as:e.as,type:r.type}})),p),handleKeyDown:function(e){var t,o;if(s){if(a.popoverState.value===Ee.Closed)return;switch(e.key){case n.Space:case n.Enter:e.preventDefault(),e.stopPropagation(),a.closePopover(),null==(t=N(a.button))||t.focus()}}else switch(e.key){case n.Space:case n.Enter:e.preventDefault(),e.stopPropagation(),a.popoverState.value===Ee.Closed&&(null==u||u(a.buttonId)),a.togglePopover();break;case n.Escape:if(a.popoverState.value!==Ee.Open)return null==u?void 0:u(a.buttonId);if(!N(a.button))return;if(!(null==(o=N(a.button))?void 0:o.contains(document.activeElement)))return;a.closePopover();break;case n.Tab:if(a.popoverState.value!==Ee.Open)return;if(!a.panel)return;if(!a.button)return;if(e.shiftKey){var r,i;if(!d.value)return;if(null==(r=N(a.button))?void 0:r.contains(d.value))return;if(null==(i=N(a.panel))?void 0:i.contains(d.value))return;var l=g(),c=l.indexOf(d.value);if(l.indexOf(N(a.button))>c)return;e.preventDefault(),e.stopPropagation(),x(N(a.panel),v.Last)}else e.preventDefault(),e.stopPropagation(),x(N(a.panel),v.First)}},handleKeyUp:function(e){var t,o;if(!s&&(e.key===n.Space&&e.preventDefault(),a.popoverState.value===Ee.Open&&a.panel&&a.button))switch(e.key){case n.Tab:if(!d.value)return;if(null==(t=N(a.button))?void 0:t.contains(d.value))return;if(null==(o=N(a.panel))?void 0:o.contains(d.value))return;var r=g(),i=r.indexOf(d.value);if(r.indexOf(N(a.button))>i)return;e.preventDefault(),e.stopPropagation(),x(N(a.panel),v.Last)}},handleClick:function(){var t,n;e.disabled||(s?(a.closePopover(),null==(t=N(a.button))||t.focus()):(a.popoverState.value===Ee.Closed&&(null==u||u(a.buttonId)),null==(n=N(a.button))||n.focus(),a.togglePopover()))}}}}),je=o.defineComponent({name:"PopoverOverlay",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},render:function(){var t={open:Ie("PopoverOverlay").popoverState.value===Ee.Open};return s({props:r({},this.$props,{id:this.id,ref:"el","aria-hidden":!0,onClick:this.handleClick}),slot:t,attrs:this.$attrs,slots:this.$slots,features:e.RenderStrategy|e.Static,visible:this.visible,name:"PopoverOverlay"})},setup:function(){var e=Ie("PopoverOverlay"),t=W(),n=o.computed((function(){return null!==t?t.value===V.Open:e.popoverState.value===Ee.Open}));return{id:"headlessui-popover-overlay-"+f(),handleClick:function(){e.closePopover()},visible:n}}}),Be=o.defineComponent({name:"PopoverPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1}},render:function(){var t=Ie("PopoverPanel"),n={open:t.popoverState.value===Ee.Open,close:t.close};return s({props:r({},this.$props,{ref:"el",id:this.id,onKeydown:this.handleKeyDown}),slot:n,attrs:this.$attrs,slots:this.$slots,features:e.RenderStrategy|e.Static,visible:this.visible,name:"PopoverPanel"})},setup:function(e){var t=e.focus,r=Ie("PopoverPanel");o.provide(Ae,r.panelId),o.onUnmounted((function(){r.panel.value=null})),o.watchEffect((function(){var e;if(t&&r.popoverState.value===Ee.Open&&r.panel){var n=document.activeElement;(null==(e=N(r.panel))?void 0:e.contains(n))||x(N(r.panel),v.First)}})),w("keydown",(function(e){var t;if(r.popoverState.value===Ee.Open&&N(r.panel)&&e.key===n.Tab&&document.activeElement&&(null==(t=N(r.panel))?void 0:t.contains(document.activeElement))){e.preventDefault();var o,a=x(N(r.panel),e.shiftKey?v.Previous:v.Next);if(a===m.Underflow)return null==(o=N(r.button))?void 0:o.focus();if(a===m.Overflow){if(!N(r.button))return;var i=g(),u=i.indexOf(N(r.button));x(i.splice(u+1).filter((function(e){var t;return!(null==(t=N(r.panel))?void 0:t.contains(e))})),v.First)===m.Error&&x(document.body,v.First)}}})),w("focus",(function(){var e;t&&r.popoverState.value===Ee.Open&&N(r.panel)&&((null==(e=N(r.panel))?void 0:e.contains(document.activeElement))||r.closePopover())}),!0);var a=W(),i=o.computed((function(){return null!==a?a.value===V.Open:r.popoverState.value===Ee.Open}));return{id:r.panelId,el:r.panel,handleKeyDown:function(e){var t,o;switch(e.key){case n.Escape:if(r.popoverState.value!==Ee.Open)return;if(!N(r.panel))return;if(!(null==(t=N(r.panel))?void 0:t.contains(document.activeElement)))return;e.preventDefault(),r.closePopover(),null==(o=N(r.button))||o.focus()}},visible:i}}}),Me=o.defineComponent({name:"PopoverGroup",props:{as:{type:[Object,String],default:"div"}},render:function(){return s({props:r({},this.$props,{ref:"el"}),slot:{},attrs:this.$attrs,slots:this.$slots,name:"PopoverGroup"})},setup:function(){var e=o.ref(null),t=o.ref([]);function n(e){var n=t.value.indexOf(e);-1!==n&&t.value.splice(n,1)}return o.provide(Re,{registerPopover:function(e){return t.value.push(e),function(){n(e)}},unregisterPopover:n,isFocusWithinPopoverGroup:function(){var n,o=document.activeElement;return!!(null==(n=N(e))?void 0:n.contains(o))||t.value.some((function(e){var t,n;return(null==(t=document.getElementById(e.buttonId))?void 0:t.contains(o))||(null==(n=document.getElementById(e.panelId))?void 0:n.contains(o))}))},closeOthers:function(e){for(var n,o=u(t.value);!(n=o()).done;){var r=n.value;r.buttonId!==e&&r.close()}}}),{el:e}}}),Ke=Symbol("LabelContext");function Ue(){var e=o.inject(Ke,null);if(null===e){var t=new Error("You used a <Label /> component, but it is not inside a parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,Ue),t}return e}function Ne(e){var t=void 0===e?{}:e,n=t.slot,r=void 0===n?{}:n,a=t.name,i=void 0===a?"Label":a,u=t.props,l=void 0===u?{}:u,s=o.ref([]);return o.provide(Ke,{register:function(e){return s.value.push(e),function(){var t=s.value.indexOf(e);-1!==t&&s.value.splice(t,1)}},slot:r,name:i,props:l}),o.computed((function(){return s.value.length>0?s.value.join(" "):void 0}))}var Ve=o.defineComponent({name:"Label",props:{as:{type:[Object,String],default:"label"},passive:{type:[Boolean],default:!1}},render:function(){var e=this.context,t=e.name,n=void 0===t?"Label":t,i=e.slot,u=void 0===i?{}:i,l=e.props,c=void 0===l?{}:l,d=this.$props,p=d.passive,f=a(d,["passive"]),v=r({},Object.entries(c).reduce((function(e,t){var n;return Object.assign(e,((n={})[t[0]]=o.unref(t[1]),n))}),{}),{id:this.id}),m=r({},f,v);return p&&delete m.onClick,s({props:m,slot:u,attrs:this.$attrs,slots:this.$slots,name:n})},setup:function(){var e=Ue(),t="headlessui-label-"+f();return o.onMounted((function(){return o.onUnmounted(e.register(t))})),{id:t,context:e}}}),Ge=Symbol("RadioGroupContext");function He(e){var t=o.inject(Ge,null);if(null===t){var n=new Error("<"+e+" /> is missing a parent <RadioGroup /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,He),n}return t}var We,ze=o.defineComponent({name:"RadioGroup",emits:{"update:modelValue":function(e){return!0}},props:{as:{type:[Object,String],default:"div"},disabled:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean]}},render:function(){return s({props:r({},a(this.$props,["modelValue","disabled"]),{ref:"el",id:this.id,role:"radiogroup","aria-labelledby":this.labelledby,"aria-describedby":this.describedby,onKeydown:this.handleKeyDown}),slot:{},attrs:this.$attrs,slots:this.$slots,name:"RadioGroup"})},setup:function(e,t){var r=t.emit,a=o.ref(null),i=o.ref([]),u=Ne({name:"RadioGroupLabel"}),l=K({name:"RadioGroupDescription"}),s=o.computed((function(){return e.modelValue})),c={options:i,value:s,disabled:o.computed((function(){return e.disabled})),firstOption:o.computed((function(){return i.value.find((function(e){return!e.propsRef.disabled}))})),containsCheckedOption:o.computed((function(){return i.value.some((function(t){return o.toRaw(t.propsRef.value)===o.toRaw(e.modelValue)}))})),change:function(t){var n;if(e.disabled)return!1;if(s.value===t)return!1;var a=null==(n=i.value.find((function(e){return o.toRaw(e.propsRef.value)===o.toRaw(t)})))?void 0:n.propsRef;return!(null==a?void 0:a.disabled)&&(r("update:modelValue",t),!0)},registerOption:function(e){var t,n=Array.from(null==(t=a.value)?void 0:t.querySelectorAll('[id^="headlessui-radiogroup-option-"]')).reduce((function(e,t,n){var o;return Object.assign(e,((o={})[t.id]=n,o))}),{});i.value.push(e),i.value.sort((function(e,t){return n[e.id]-n[t.id]}))},unregisterOption:function(e){var t=i.value.findIndex((function(t){return t.id===e}));-1!==t&&i.value.splice(t,1)}};return o.provide(Ge,c),xe({container:o.computed((function(){return N(a)})),accept:function(e){return"radio"===e.getAttribute("role")?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk:functio