@robuust-digital/vue-components 1.0.1-rc.3 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,4 @@
1
- (function(n,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.VueComponents={},n.Vue))})(this,function(n,e){"use strict";const i={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"};function r(t,o){return e.openBlock(),e.createElementBlock("svg",i,o[0]||(o[0]=[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",style:{opacity:".25"}},null,-1),e.createElementVNode("path",{fill:"currentColor",d:"M4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12zm2 5.291A7.96 7.96 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938z"},null,-1)]))}const c={render:r},l={__name:"ButtonBase",props:{as:{type:[String,Object,Function],default:"button"},label:{type:String,default:""},icon:{type:[Object,Function],default:null},iconLeft:{type:Boolean},size:{type:String,default:"base",validator:t=>["xs","sm","base","lg"].includes(t)},spinning:{type:Boolean},color:{type:String,default:"primary",validator:t=>/^(primary|secondary|tertiary|light|dark|danger|warning|success)(-soft)?$/.test(t)||t.startsWith("custom-")||"clear"}},setup(t){return(o,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{class:e.normalizeClass(["button",`button-${t.color}`,`button-${t.size}`,{"button-reverse":t.iconLeft}])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label)+" ",1),e.renderSlot(o.$slots,"icon",{},()=>[t.icon&&!t.spinning?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon),{key:0,class:"button-icon"})):e.createCommentVNode("",!0)]),e.renderSlot(o.$slots,"spinner",{},()=>[t.spinning?(e.openBlock(),e.createBlock(e.unref(c),{key:0,class:"button-icon button-icon-loading"})):e.createCommentVNode("",!0)])]),_:3},8,["class"]))}};n.ButtonBase=l,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
1
+ (function(L,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(L=typeof globalThis<"u"?globalThis:L||self,t(L.VueComponents={},L.Vue))})(this,function(L,t){"use strict";function ut(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,l.get?l:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}const Ne=ut(t);function De(e,n){return t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[t.createElementVNode("path",{"fill-rule":"evenodd",d:"M5.47 5.47a.75.75 0 0 1 1.06 0L12 10.94l5.47-5.47a.75.75 0 1 1 1.06 1.06L13.06 12l5.47 5.47a.75.75 0 1 1-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 0 1-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 0 1 0-1.06Z","clip-rule":"evenodd"})])}const st={class:"alert-title"},dt={__name:"Alert",props:{as:{type:String,default:"div"},title:{type:String,default:""},icon:{type:[Object,Function],default:null},type:{type:String,default:"default",validator:e=>["success","warning","danger","default"].includes(e)},close:{type:Boolean,default:!1}},emits:["alert:close"],setup(e){return(n,r)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.as),{class:t.normalizeClass(["alert",`alert-${e.type}`])},{default:t.withCtx(()=>[t.renderSlot(n.$slots,"icon",{},()=>[e.icon?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.icon),{key:0,class:"alert-icon"})):t.createCommentVNode("",!0)]),t.createElementVNode("div",null,[t.renderSlot(n.$slots,"title",{},()=>[t.createElementVNode("span",st,t.toDisplayString(e.title),1)]),t.renderSlot(n.$slots,"default")]),t.renderSlot(n.$slots,"close",{},()=>[e.close?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"alert-close rvc-transition-colors",onClick:r[0]||(r[0]=l=>n.$emit("alert:close"))},[t.createVNode(t.unref(De),{class:"rvc-size-5"})])):t.createCommentVNode("",!0)])]),_:3},8,["class"]))}},Be=e=>typeof e!="string"?!1:/^(primary|secondary|tertiary|light|dark|danger|warning|success)(-soft)?$/.test(e)||e.startsWith("custom-")||e==="clear",ct={__name:"Badge",props:{as:{type:String,default:"span"},label:{type:String,default:""},size:{type:String,default:"base",validator:e=>["xs","sm","base","lg"].includes(e)},color:{type:String,default:"primary",validator:e=>Be(e)}},setup(e){return(n,r)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.as),{class:t.normalizeClass(["badge",`badge-${e.color}`,`badge-${e.size}`])},{default:t.withCtx(()=>[t.renderSlot(n.$slots,"default",{label:e.label},()=>[t.createTextVNode(t.toDisplayString(e.label),1)])]),_:3},8,["class"]))}},ft={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"};function vt(e,n){return t.openBlock(),t.createElementBlock("svg",ft,n[0]||(n[0]=[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",style:{opacity:".25"}},null,-1),t.createElementVNode("path",{fill:"currentColor",d:"M4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12zm2 5.291A7.96 7.96 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938z"},null,-1)]))}const pt={render:vt},mt={key:0,class:"rvc-sr-only"},se={__name:"ButtonBase",props:{as:{type:[String,Object,Function],default:"button"},bindAs:{type:String,default:void 0},label:{type:String,default:""},icon:{type:[Object,Function],default:null},iconOnly:{type:Boolean,default:!1},iconLeft:{type:Boolean},size:{type:String,default:"base",validator:e=>["sm","base"].includes(e)},spinning:{type:Boolean},color:{type:String,default:"primary",validator:e=>Be(e)}},setup(e){const n=e;return t.watchEffect(()=>{n.iconOnly&&!n.icon&&console.warn("[ButtonBase] Using iconOnly prop without providing an icon may result in an empty button.")}),(r,l)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.as),t.mergeProps(e.bindAs?{as:e.bindAs}:{},{class:["button",`button-${e.color}`,`button-${e.size}`,{"button-reverse":e.iconLeft},{"button-icon-only":e.iconOnly}],"aria-label":e.iconOnly?e.label:null,"aria-busy":e.spinning}),{default:t.withCtx(()=>[e.iconOnly&&e.label?(t.openBlock(),t.createElementBlock("span",mt,[t.renderSlot(r.$slots,"default",{label:e.label},()=>[t.createTextVNode(t.toDisplayString(e.label),1)])])):e.label?t.renderSlot(r.$slots,"default",{key:1,label:e.label},()=>[t.createTextVNode(t.toDisplayString(e.label),1)]):t.createCommentVNode("",!0),t.renderSlot(r.$slots,"icon",{icon:e.icon},()=>[e.icon&&!e.spinning?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.icon),{key:0,class:"button-icon","aria-hidden":!e.iconOnly},null,8,["aria-hidden"])):t.createCommentVNode("",!0)]),t.renderSlot(r.$slots,"spinner",{spinning:e.spinning},()=>[e.spinning?(t.openBlock(),t.createBlock(t.unref(pt),{key:0,class:"button-icon button-icon-loading","aria-hidden":"true"})):t.createCommentVNode("",!0)])]),_:3},16,["class","aria-label","aria-busy"]))}};function de(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(n=>setTimeout(()=>{throw n}))}function z(){let e=[],n={addEventListener(r,l,o,a){return r.addEventListener(l,o,a),n.add(()=>r.removeEventListener(l,o,a))},requestAnimationFrame(...r){let l=requestAnimationFrame(...r);n.add(()=>cancelAnimationFrame(l))},nextFrame(...r){n.requestAnimationFrame(()=>{n.requestAnimationFrame(...r)})},setTimeout(...r){let l=setTimeout(...r);n.add(()=>clearTimeout(l))},microTask(...r){let l={current:!0};return de(()=>{l.current&&r[0]()}),n.add(()=>{l.current=!1})},style(r,l,o){let a=r.style.getPropertyValue(l);return Object.assign(r.style,{[l]:o}),this.add(()=>{Object.assign(r.style,{[l]:a})})},group(r){let l=z();return r(l),this.add(()=>l.dispose())},add(r){return e.push(r),()=>{let l=e.indexOf(r);if(l>=0)for(let o of e.splice(l,1))o()}},dispose(){for(let r of e.splice(0))r()}};return n}var xe;let ht=Symbol("headlessui.useid"),gt=0;const A=(xe=Ne.useId)!=null?xe:function(){return Ne.inject(ht,()=>`${++gt}`)()};function w(e){var n;if(e==null||e.value==null)return null;let r=(n=e.value.$el)!=null?n:e.value;return r instanceof Node?r:null}function k(e,n,...r){if(e in n){let o=n[e];return typeof o=="function"?o(...r):o}let l=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(o=>`"${o}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,k),l}var yt=Object.defineProperty,bt=(e,n,r)=>n in e?yt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,Ae=(e,n,r)=>(bt(e,typeof n!="symbol"?n+"":n,r),r);let wt=class{constructor(){Ae(this,"current",this.detect()),Ae(this,"currentId",0)}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}},q=new wt;function I(e){if(q.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=w(e);if(n)return n.ownerDocument}return document}let ce=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var B=(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",e))(B||{}),je=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(je||{}),Et=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(Et||{});function St(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(ce)).sort((n,r)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(r.tabIndex||Number.MAX_SAFE_INTEGER)))}var Me=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(Me||{});function Ct(e,n=0){var r;return e===((r=I(e))==null?void 0:r.body)?!1:k(n,{0(){return e.matches(ce)},1(){let l=e;for(;l!==null;){if(l.matches(ce))return!0;l=l.parentElement}return!1}})}var Tt=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Tt||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function j(e){e==null||e.focus({preventScroll:!0})}let Ot=["textarea","input"].join(",");function Lt(e){var n,r;return(r=(n=e==null?void 0:e.matches)==null?void 0:n.call(e,Ot))!=null?r:!1}function kt(e,n=r=>r){return e.slice().sort((r,l)=>{let o=n(r),a=n(l);if(o===null||a===null)return 0;let u=o.compareDocumentPosition(a);return u&Node.DOCUMENT_POSITION_FOLLOWING?-1:u&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Z(e,n,{sorted:r=!0,relativeTo:l=null,skipElements:o=[]}={}){var a;let u=(a=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e==null?void 0:e.ownerDocument)!=null?a:document,i=Array.isArray(e)?r?kt(e):e:St(e);o.length>0&&i.length>1&&(i=i.filter(p=>!o.includes(p))),l=l??u.activeElement;let s=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),c=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,i.indexOf(l))-1;if(n&4)return Math.max(0,i.indexOf(l))+1;if(n&8)return i.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=n&32?{preventScroll:!0}:{},v=0,f=i.length,m;do{if(v>=f||v+f<=0)return 0;let p=c+v;if(n&16)p=(p+f)%f;else{if(p<0)return 3;if(p>=f)return 1}m=i[p],m==null||m.focus(d),v+=s}while(m!==u.activeElement);return n&6&&Lt(m)&&m.select(),2}function Ve(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function Pt(){return/Android/gi.test(window.navigator.userAgent)}function Ft(){return Ve()||Pt()}function J(e,n,r){q.isServer||t.watchEffect(l=>{document.addEventListener(e,n,r),l(()=>document.removeEventListener(e,n,r))})}function Re(e,n,r){q.isServer||t.watchEffect(l=>{window.addEventListener(e,n,r),l(()=>window.removeEventListener(e,n,r))})}function Nt(e,n,r=t.computed(()=>!0)){function l(a,u){if(!r.value||a.defaultPrevented)return;let i=u(a);if(i===null||!i.getRootNode().contains(i))return;let s=function c(d){return typeof d=="function"?c(d()):Array.isArray(d)||d instanceof Set?d:[d]}(e);for(let c of s){if(c===null)continue;let d=c instanceof HTMLElement?c:w(c);if(d!=null&&d.contains(i)||a.composed&&a.composedPath().includes(d))return}return!Ct(i,Me.Loose)&&i.tabIndex!==-1&&a.preventDefault(),n(a,i)}let o=t.ref(null);J("pointerdown",a=>{var u,i;r.value&&(o.value=((i=(u=a.composedPath)==null?void 0:u.call(a))==null?void 0:i[0])||a.target)},!0),J("mousedown",a=>{var u,i;r.value&&(o.value=((i=(u=a.composedPath)==null?void 0:u.call(a))==null?void 0:i[0])||a.target)},!0),J("click",a=>{Ft()||o.value&&(l(a,()=>o.value),o.value=null)},!0),J("touchend",a=>l(a,()=>a.target instanceof HTMLElement?a.target:null),!0),Re("blur",a=>l(a,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var _=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(_||{}),x=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(x||{});function E({visible:e=!0,features:n=0,ourProps:r,theirProps:l,...o}){var a;let u=Ie(l,r),i=Object.assign(o,{props:u});if(e||n&2&&u.static)return fe(i);if(n&1){let s=(a=u.unmount)==null||a?0:1;return k(s,{0(){return null},1(){return fe({...o,props:{...u,hidden:!0,style:{display:"none"}}})}})}return fe(i)}function fe({props:e,attrs:n,slots:r,slot:l,name:o}){var a,u;let{as:i,...s}=Ue(e,["unmount","static"]),c=(a=r.default)==null?void 0:a.call(r,l),d={};if(l){let v=!1,f=[];for(let[m,p]of Object.entries(l))typeof p=="boolean"&&(v=!0),p===!0&&f.push(m);v&&(d["data-headlessui-state"]=f.join(" "))}if(i==="template"){if(c=He(c??[]),Object.keys(s).length>0||Object.keys(n).length>0){let[v,...f]=c??[];if(!Dt(v)||f.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${o} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(s).concat(Object.keys(n)).map(h=>h.trim()).filter((h,y,P)=>P.indexOf(h)===y).sort((h,y)=>h.localeCompare(y)).map(h=>` - ${h}`).join(`
2
+ `),"","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(h=>` - ${h}`).join(`
3
+ `)].join(`
4
+ `));let m=Ie((u=v.props)!=null?u:{},s,d),p=t.cloneVNode(v,m,!0);for(let h in m)h.startsWith("on")&&(p.props||(p.props={}),p.props[h]=m[h]);return p}return Array.isArray(c)&&c.length===1?c[0]:c}return t.h(i,Object.assign({},s,d),{default:()=>c})}function He(e){return e.flatMap(n=>n.type===t.Fragment?He(n.children):[n])}function Ie(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},r={};for(let l of e)for(let o in l)o.startsWith("on")&&typeof l[o]=="function"?(r[o]!=null||(r[o]=[]),r[o].push(l[o])):n[o]=l[o];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(r).map(l=>[l,void 0])));for(let l in r)Object.assign(n,{[l](o,...a){let u=r[l];for(let i of u){if(o instanceof Event&&o.defaultPrevented)return;i(o,...a)}}});return n}function Ue(e,n=[]){let r=Object.assign({},e);for(let l of n)l in r&&delete r[l];return r}function Dt(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}var $=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))($||{});let ve=t.defineComponent({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:r}){return()=>{var l;let{features:o,...a}=e,u={"aria-hidden":(o&2)===2?!0:(l=a["aria-hidden"])!=null?l:void 0,hidden:(o&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(o&4)===4&&(o&2)!==2&&{display:"none"}}};return E({ourProps:u,theirProps:a,slot:{},attrs:r,slots:n,name:"Hidden"})}}}),We=Symbol("Context");var S=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(S||{});function Bt(){return pe()!==null}function pe(){return t.inject(We,null)}function xt(e){t.provide(We,e)}var ze=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",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",e))(ze||{});function At(e){function n(){document.readyState!=="loading"&&(e(),document.removeEventListener("DOMContentLoaded",n))}typeof window<"u"&&typeof document<"u"&&(document.addEventListener("DOMContentLoaded",n),n())}let M=[];At(()=>{function e(n){n.target instanceof HTMLElement&&n.target!==document.body&&M[0]!==n.target&&(M.unshift(n.target),M=M.filter(r=>r!=null&&r.isConnected),M.splice(10))}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});function qe(e,n,r,l){q.isServer||t.watchEffect(o=>{e=e??window,e.addEventListener(n,r,l),o(()=>e.removeEventListener(n,r,l))})}var G=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(G||{});function jt(){let e=t.ref(0);return Re("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function Ge(e){if(!e)return new Set;if(typeof e=="function")return new Set(e());let n=new Set;for(let r of e.value){let l=w(r);l instanceof HTMLElement&&n.add(l)}return n}var Ye=(e=>(e[e.None=1]="None",e[e.InitialFocus=2]="InitialFocus",e[e.TabLock=4]="TabLock",e[e.FocusLock=8]="FocusLock",e[e.RestoreFocus=16]="RestoreFocus",e[e.All=30]="All",e))(Ye||{});let Y=Object.assign(t.defineComponent({name:"FocusTrap",props:{as:{type:[Object,String],default:"div"},initialFocus:{type:Object,default:null},features:{type:Number,default:30},containers:{type:[Object,Function],default:t.ref(new Set)}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:l}){let o=t.ref(null);l({el:o,$el:o});let a=t.computed(()=>I(o)),u=t.ref(!1);t.onMounted(()=>u.value=!0),t.onUnmounted(()=>u.value=!1),Vt({ownerDocument:a},t.computed(()=>u.value&&!!(e.features&16)));let i=Rt({ownerDocument:a,container:o,initialFocus:t.computed(()=>e.initialFocus)},t.computed(()=>u.value&&!!(e.features&2)));Ht({ownerDocument:a,container:o,containers:e.containers,previousActiveElement:i},t.computed(()=>u.value&&!!(e.features&8)));let s=jt();function c(m){let p=w(o);p&&(h=>h())(()=>{k(s.value,{[G.Forwards]:()=>{Z(p,B.First,{skipElements:[m.relatedTarget]})},[G.Backwards]:()=>{Z(p,B.Last,{skipElements:[m.relatedTarget]})}})})}let d=t.ref(!1);function v(m){m.key==="Tab"&&(d.value=!0,requestAnimationFrame(()=>{d.value=!1}))}function f(m){if(!u.value)return;let p=Ge(e.containers);w(o)instanceof HTMLElement&&p.add(w(o));let h=m.relatedTarget;h instanceof HTMLElement&&h.dataset.headlessuiFocusGuard!=="true"&&(Ke(p,h)||(d.value?Z(w(o),k(s.value,{[G.Forwards]:()=>B.Next,[G.Backwards]:()=>B.Previous})|B.WrapAround,{relativeTo:m.target}):m.target instanceof HTMLElement&&j(m.target)))}return()=>{let m={},p={ref:o,onKeydown:v,onFocusout:f},{features:h,initialFocus:y,containers:P,...C}=e;return t.h(t.Fragment,[!!(h&4)&&t.h(ve,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:c,features:$.Focusable}),E({ourProps:p,theirProps:{...n,...C},slot:m,attrs:n,slots:r,name:"FocusTrap"}),!!(h&4)&&t.h(ve,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:c,features:$.Focusable})])}}}),{features:Ye});function Mt(e){let n=t.ref(M.slice());return t.watch([e],([r],[l])=>{l===!0&&r===!1?de(()=>{n.value.splice(0)}):l===!1&&r===!0&&(n.value=M.slice())},{flush:"post"}),()=>{var r;return(r=n.value.find(l=>l!=null&&l.isConnected))!=null?r:null}}function Vt({ownerDocument:e},n){let r=Mt(n);t.onMounted(()=>{t.watchEffect(()=>{var l,o;n.value||((l=e.value)==null?void 0:l.activeElement)===((o=e.value)==null?void 0:o.body)&&j(r())},{flush:"post"})}),t.onUnmounted(()=>{n.value&&j(r())})}function Rt({ownerDocument:e,container:n,initialFocus:r},l){let o=t.ref(null),a=t.ref(!1);return t.onMounted(()=>a.value=!0),t.onUnmounted(()=>a.value=!1),t.onMounted(()=>{t.watch([n,r,l],(u,i)=>{if(u.every((c,d)=>(i==null?void 0:i[d])===c)||!l.value)return;let s=w(n);s&&de(()=>{var c,d;if(!a.value)return;let v=w(r),f=(c=e.value)==null?void 0:c.activeElement;if(v){if(v===f){o.value=f;return}}else if(s.contains(f)){o.value=f;return}v?j(v):Z(s,B.First|B.NoScroll)===je.Error&&console.warn("There are no focusable elements inside the <FocusTrap />"),o.value=(d=e.value)==null?void 0:d.activeElement})},{immediate:!0,flush:"post"})}),o}function Ht({ownerDocument:e,container:n,containers:r,previousActiveElement:l},o){var a;qe((a=e.value)==null?void 0:a.defaultView,"focus",u=>{if(!o.value)return;let i=Ge(r);w(n)instanceof HTMLElement&&i.add(w(n));let s=l.value;if(!s)return;let c=u.target;c&&c instanceof HTMLElement?Ke(i,c)?(l.value=c,j(c)):(u.preventDefault(),u.stopPropagation(),j(s)):j(l.value)},!0)}function Ke(e,n){for(let r of e)if(r.contains(n))return!0;return!1}function It(e){let n=t.shallowRef(e.getSnapshot());return t.onUnmounted(e.subscribe(()=>{n.value=e.getSnapshot()})),n}function Ut(e,n){let r=e(),l=new Set;return{getSnapshot(){return r},subscribe(o){return l.add(o),()=>l.delete(o)},dispatch(o,...a){let u=n[o].call(r,...a);u&&(r=u,l.forEach(i=>i()))}}}function Wt(){let e;return{before({doc:n}){var r;let l=n.documentElement;e=((r=n.defaultView)!=null?r:window).innerWidth-l.clientWidth},after({doc:n,d:r}){let l=n.documentElement,o=l.clientWidth-l.offsetWidth,a=e-o;r.style(l,"paddingRight",`${a}px`)}}}function zt(){return Ve()?{before({doc:e,d:n,meta:r}){function l(o){return r.containers.flatMap(a=>a()).some(a=>a.contains(o))}n.microTask(()=>{var o;if(window.getComputedStyle(e.documentElement).scrollBehavior!=="auto"){let i=z();i.style(e.documentElement,"scrollBehavior","auto"),n.add(()=>n.microTask(()=>i.dispose()))}let a=(o=window.scrollY)!=null?o:window.pageYOffset,u=null;n.addEventListener(e,"click",i=>{if(i.target instanceof HTMLElement)try{let s=i.target.closest("a");if(!s)return;let{hash:c}=new URL(s.href),d=e.querySelector(c);d&&!l(d)&&(u=d)}catch{}},!0),n.addEventListener(e,"touchstart",i=>{if(i.target instanceof HTMLElement)if(l(i.target)){let s=i.target;for(;s.parentElement&&l(s.parentElement);)s=s.parentElement;n.style(s,"overscrollBehavior","contain")}else n.style(i.target,"touchAction","none")}),n.addEventListener(e,"touchmove",i=>{if(i.target instanceof HTMLElement){if(i.target.tagName==="INPUT")return;if(l(i.target)){let s=i.target;for(;s.parentElement&&s.dataset.headlessuiPortal!==""&&!(s.scrollHeight>s.clientHeight||s.scrollWidth>s.clientWidth);)s=s.parentElement;s.dataset.headlessuiPortal===""&&i.preventDefault()}else i.preventDefault()}},{passive:!1}),n.add(()=>{var i;let s=(i=window.scrollY)!=null?i:window.pageYOffset;a!==s&&window.scrollTo(0,a),u&&u.isConnected&&(u.scrollIntoView({block:"nearest"}),u=null)})})}}:{}}function qt(){return{before({doc:e,d:n}){n.style(e.documentElement,"overflow","hidden")}}}function Gt(e){let n={};for(let r of e)Object.assign(n,r(n));return n}let V=Ut(()=>new Map,{PUSH(e,n){var r;let l=(r=this.get(e))!=null?r:{doc:e,count:0,d:z(),meta:new Set};return l.count++,l.meta.add(n),this.set(e,l),this},POP(e,n){let r=this.get(e);return r&&(r.count--,r.meta.delete(n)),this},SCROLL_PREVENT({doc:e,d:n,meta:r}){let l={doc:e,d:n,meta:Gt(r)},o=[zt(),Wt(),qt()];o.forEach(({before:a})=>a==null?void 0:a(l)),o.forEach(({after:a})=>a==null?void 0:a(l))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});V.subscribe(()=>{let e=V.getSnapshot(),n=new Map;for(let[r]of e)n.set(r,r.documentElement.style.overflow);for(let r of e.values()){let l=n.get(r.doc)==="hidden",o=r.count!==0;(o&&!l||!o&&l)&&V.dispatch(r.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",r),r.count===0&&V.dispatch("TEARDOWN",r)}});function Yt(e,n,r){let l=It(V),o=t.computed(()=>{let a=e.value?l.value.get(e.value):void 0;return a?a.count>0:!1});return t.watch([e,n],([a,u],[i],s)=>{if(!a||!u)return;V.dispatch("PUSH",a,r);let c=!1;s(()=>{c||(V.dispatch("POP",i??a,r),c=!0)})},{immediate:!0}),o}let me=new Map,K=new Map;function Xe(e,n=t.ref(!0)){t.watchEffect(r=>{var l;if(!n.value)return;let o=w(e);if(!o)return;r(function(){var u;if(!o)return;let i=(u=K.get(o))!=null?u:1;if(i===1?K.delete(o):K.set(o,i-1),i!==1)return;let s=me.get(o);s&&(s["aria-hidden"]===null?o.removeAttribute("aria-hidden"):o.setAttribute("aria-hidden",s["aria-hidden"]),o.inert=s.inert,me.delete(o))});let a=(l=K.get(o))!=null?l:0;K.set(o,a+1),a===0&&(me.set(o,{"aria-hidden":o.getAttribute("aria-hidden"),inert:o.inert}),o.setAttribute("aria-hidden","true"),o.inert=!0)})}function Kt({defaultContainers:e=[],portals:n,mainTreeNodeRef:r}={}){let l=t.ref(null),o=I(l);function a(){var u,i,s;let c=[];for(let d of e)d!==null&&(d instanceof HTMLElement?c.push(d):"value"in d&&d.value instanceof HTMLElement&&c.push(d.value));if(n!=null&&n.value)for(let d of n.value)c.push(d);for(let d of(u=o==null?void 0:o.querySelectorAll("html > *, body > *"))!=null?u:[])d!==document.body&&d!==document.head&&d instanceof HTMLElement&&d.id!=="headlessui-portal-root"&&(d.contains(w(l))||d.contains((s=(i=w(l))==null?void 0:i.getRootNode())==null?void 0:s.host)||c.some(v=>d.contains(v))||c.push(d));return c}return{resolveContainers:a,contains(u){return a().some(i=>i.contains(u))},mainTreeNodeRef:l,MainTreeNode(){return r!=null?null:t.h(ve,{features:$.Hidden,ref:l})}}}let Qe=Symbol("ForcePortalRootContext");function Xt(){return t.inject(Qe,!1)}let he=t.defineComponent({name:"ForcePortalRoot",props:{as:{type:[Object,String],default:"template"},force:{type:Boolean,default:!1}},setup(e,{slots:n,attrs:r}){return t.provide(Qe,e.force),()=>{let{force:l,...o}=e;return E({theirProps:o,ourProps:{},slot:{},slots:n,attrs:r,name:"ForcePortalRoot"})}}}),Ze=Symbol("StackContext");var ge=(e=>(e[e.Add=0]="Add",e[e.Remove=1]="Remove",e))(ge||{});function Qt(){return t.inject(Ze,()=>{})}function Zt({type:e,enabled:n,element:r,onUpdate:l}){let o=Qt();function a(...u){l==null||l(...u),o(...u)}t.onMounted(()=>{t.watch(n,(u,i)=>{u?a(0,e,r):i===!0&&a(1,e,r)},{immediate:!0,flush:"sync"})}),t.onUnmounted(()=>{n.value&&a(1,e,r)}),t.provide(Ze,a)}let Je=Symbol("DescriptionContext");function Jt(){let e=t.inject(Je,null);if(e===null)throw new Error("Missing parent");return e}function _t({slot:e=t.ref({}),name:n="Description",props:r={}}={}){let l=t.ref([]);function o(a){return l.value.push(a),()=>{let u=l.value.indexOf(a);u!==-1&&l.value.splice(u,1)}}return t.provide(Je,{register:o,slot:e,name:n,props:r}),t.computed(()=>l.value.length>0?l.value.join(" "):void 0)}t.defineComponent({name:"Description",props:{as:{type:[Object,String],default:"p"},id:{type:String,default:null}},setup(e,{attrs:n,slots:r}){var l;let o=(l=e.id)!=null?l:`headlessui-description-${A()}`,a=Jt();return t.onMounted(()=>t.onUnmounted(a.register(o))),()=>{let{name:u="Description",slot:i=t.ref({}),props:s={}}=a,{...c}=e,d={...Object.entries(s).reduce((v,[f,m])=>Object.assign(v,{[f]:t.unref(m)}),{}),id:o};return E({ourProps:d,theirProps:c,slot:i.value,attrs:n,slots:r,name:u})}}});function $t(e){let n=I(e);if(!n){if(e===null)return null;throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${e}`)}let r=n.getElementById("headlessui-portal-root");if(r)return r;let l=n.createElement("div");return l.setAttribute("id","headlessui-portal-root"),n.body.appendChild(l)}const ye=new WeakMap;function en(e){var n;return(n=ye.get(e))!=null?n:0}function _e(e,n){let r=n(en(e));return r<=0?ye.delete(e):ye.set(e,r),r}let $e=t.defineComponent({name:"Portal",props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:r}){let l=t.ref(null),o=t.computed(()=>I(l)),a=Xt(),u=t.inject(et,null),i=t.ref(a===!0||u==null?$t(l.value):u.resolveTarget());i.value&&_e(i.value,f=>f+1);let s=t.ref(!1);t.onMounted(()=>{s.value=!0}),t.watchEffect(()=>{a||u!=null&&(i.value=u.resolveTarget())});let c=t.inject(be,null),d=!1,v=t.getCurrentInstance();return t.watch(l,()=>{if(d||!c)return;let f=w(l);f&&(t.onUnmounted(c.register(f),v),d=!0)}),t.onUnmounted(()=>{var f,m;let p=(f=o.value)==null?void 0:f.getElementById("headlessui-portal-root");!p||i.value!==p||_e(i.value,h=>h-1)||i.value.children.length>0||(m=i.value.parentElement)==null||m.removeChild(i.value)}),()=>{if(!s.value||i.value===null)return null;let f={ref:l,"data-headlessui-portal":""};return t.h(t.Teleport,{to:i.value},E({ourProps:f,theirProps:e,slot:{},attrs:r,slots:n,name:"Portal"}))}}}),be=Symbol("PortalParentContext");function tn(){let e=t.inject(be,null),n=t.ref([]);function r(a){return n.value.push(a),e&&e.register(a),()=>l(a)}function l(a){let u=n.value.indexOf(a);u!==-1&&n.value.splice(u,1),e&&e.unregister(a)}let o={register:r,unregister:l,portals:n};return[n,t.defineComponent({name:"PortalWrapper",setup(a,{slots:u}){return t.provide(be,o),()=>{var i;return(i=u.default)==null?void 0:i.call(u)}}})]}let et=Symbol("PortalGroupContext"),nn=t.defineComponent({name:"PortalGroup",props:{as:{type:[Object,String],default:"template"},target:{type:Object,default:null}},setup(e,{attrs:n,slots:r}){let l=t.reactive({resolveTarget(){return e.target}});return t.provide(et,l),()=>{let{target:o,...a}=e;return E({theirProps:a,ourProps:{},slot:{},attrs:n,slots:r,name:"PortalGroup"})}}});var rn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(rn||{});let we=Symbol("DialogContext");function X(e){let n=t.inject(we,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,X),r}return n}let ee="DC8F892D-2EBD-447C-A4C8-A03058436FF4",ln=t.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:ee},initialFocus:{type:Object,default:null},id:{type:String,default:null},role:{type:String,default:"dialog"}},emits:{close:e=>!0},setup(e,{emit:n,attrs:r,slots:l,expose:o}){var a,u;let i=(a=e.id)!=null?a:`headlessui-dialog-${A()}`,s=t.ref(!1);t.onMounted(()=>{s.value=!0});let c=!1,d=t.computed(()=>e.role==="dialog"||e.role==="alertdialog"?e.role:(c||(c=!0,console.warn(`Invalid role [${d}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")),v=t.ref(0),f=pe(),m=t.computed(()=>e.open===ee&&f!==null?(f.value&S.Open)===S.Open:e.open),p=t.ref(null),h=t.computed(()=>I(p));if(o({el:p,$el:p}),!(e.open!==ee||f!==null))throw new Error("You forgot to provide an `open` prop to the `Dialog`.");if(typeof m.value!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${m.value===ee?void 0:e.open}`);let y=t.computed(()=>s.value&&m.value?0:1),P=t.computed(()=>y.value===0),C=t.computed(()=>v.value>1),H=t.inject(we,null)!==null,[re,le]=tn(),{resolveContainers:U,mainTreeNodeRef:oe,MainTreeNode:ae}=Kt({portals:re,defaultContainers:[t.computed(()=>{var g;return(g=W.panelRef.value)!=null?g:p.value})]}),Le=t.computed(()=>C.value?"parent":"leaf"),ie=t.computed(()=>f!==null?(f.value&S.Closing)===S.Closing:!1),ke=t.computed(()=>H||ie.value?!1:P.value),Pe=t.computed(()=>{var g,b,T;return(T=Array.from((b=(g=h.value)==null?void 0:g.querySelectorAll("body > *"))!=null?b:[]).find(O=>O.id==="headlessui-portal-root"?!1:O.contains(w(oe))&&O instanceof HTMLElement))!=null?T:null});Xe(Pe,ke);let F=t.computed(()=>C.value?!0:P.value),Q=t.computed(()=>{var g,b,T;return(T=Array.from((b=(g=h.value)==null?void 0:g.querySelectorAll("[data-headlessui-portal]"))!=null?b:[]).find(O=>O.contains(w(oe))&&O instanceof HTMLElement))!=null?T:null});Xe(Q,F),Zt({type:"Dialog",enabled:t.computed(()=>y.value===0),element:p,onUpdate:(g,b)=>{if(b==="Dialog")return k(g,{[ge.Add]:()=>v.value+=1,[ge.Remove]:()=>v.value-=1})}});let N=_t({name:"DialogDescription",slot:t.computed(()=>({open:m.value}))}),D=t.ref(null),W={titleId:D,panelRef:t.ref(null),dialogState:y,setTitleId(g){D.value!==g&&(D.value=g)},close(){n("close",!1)}};t.provide(we,W);let ot=t.computed(()=>!(!P.value||C.value));Nt(U,(g,b)=>{g.preventDefault(),W.close(),t.nextTick(()=>b==null?void 0:b.focus())},ot);let at=t.computed(()=>!(C.value||y.value!==0));qe((u=h.value)==null?void 0:u.defaultView,"keydown",g=>{at.value&&(g.defaultPrevented||g.key===ze.Escape&&(g.preventDefault(),g.stopPropagation(),W.close()))});let it=t.computed(()=>!(ie.value||y.value!==0||H));return Yt(h,it,g=>{var b;return{containers:[...(b=g.containers)!=null?b:[],U]}}),t.watchEffect(g=>{if(y.value!==0)return;let b=w(p);if(!b)return;let T=new ResizeObserver(O=>{for(let Fe of O){let ue=Fe.target.getBoundingClientRect();ue.x===0&&ue.y===0&&ue.width===0&&ue.height===0&&W.close()}});T.observe(b),g(()=>T.disconnect())}),()=>{let{open:g,initialFocus:b,...T}=e,O={...r,ref:p,id:i,role:d.value,"aria-modal":y.value===0?!0:void 0,"aria-labelledby":D.value,"aria-describedby":N.value},Fe={open:y.value===0};return t.h(he,{force:!0},()=>[t.h($e,()=>t.h(nn,{target:p.value},()=>t.h(he,{force:!1},()=>t.h(Y,{initialFocus:b,containers:U,features:P.value?k(Le.value,{parent:Y.features.RestoreFocus,leaf:Y.features.All&~Y.features.FocusLock}):Y.features.None},()=>t.h(le,{},()=>E({ourProps:O,theirProps:{...T,...r},slot:Fe,attrs:r,slots:l,visible:y.value===0,features:_.RenderStrategy|_.Static,name:"Dialog"})))))),t.h(ae)])}}});t.defineComponent({name:"DialogOverlay",props:{as:{type:[Object,String],default:"div"},id:{type:String,default:null}},setup(e,{attrs:n,slots:r}){var l;let o=(l=e.id)!=null?l:`headlessui-dialog-overlay-${A()}`,a=X("DialogOverlay");function u(i){i.target===i.currentTarget&&(i.preventDefault(),i.stopPropagation(),a.close())}return()=>{let{...i}=e;return E({ourProps:{id:o,"aria-hidden":!0,onClick:u},theirProps:i,slot:{open:a.dialogState.value===0},attrs:n,slots:r,name:"DialogOverlay"})}}}),t.defineComponent({name:"DialogBackdrop",props:{as:{type:[Object,String],default:"div"},id:{type:String,default:null}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:l}){var o;let a=(o=e.id)!=null?o:`headlessui-dialog-backdrop-${A()}`,u=X("DialogBackdrop"),i=t.ref(null);return l({el:i,$el:i}),t.onMounted(()=>{if(u.panelRef.value===null)throw new Error("A <DialogBackdrop /> component is being used, but a <DialogPanel /> component is missing.")}),()=>{let{...s}=e,c={id:a,ref:i,"aria-hidden":!0};return t.h(he,{force:!0},()=>t.h($e,()=>E({ourProps:c,theirProps:{...n,...s},slot:{open:u.dialogState.value===0},attrs:n,slots:r,name:"DialogBackdrop"})))}}});let on=t.defineComponent({name:"DialogPanel",props:{as:{type:[Object,String],default:"div"},id:{type:String,default:null}},setup(e,{attrs:n,slots:r,expose:l}){var o;let a=(o=e.id)!=null?o:`headlessui-dialog-panel-${A()}`,u=X("DialogPanel");l({el:u.panelRef,$el:u.panelRef});function i(s){s.stopPropagation()}return()=>{let{...s}=e,c={id:a,ref:u.panelRef,onClick:i};return E({ourProps:c,theirProps:s,slot:{open:u.dialogState.value===0},attrs:n,slots:r,name:"DialogPanel"})}}}),an=t.defineComponent({name:"DialogTitle",props:{as:{type:[Object,String],default:"h2"},id:{type:String,default:null}},setup(e,{attrs:n,slots:r}){var l;let o=(l=e.id)!=null?l:`headlessui-dialog-title-${A()}`,a=X("DialogTitle");return t.onMounted(()=>{a.setTitleId(o),t.onUnmounted(()=>a.setTitleId(null))}),()=>{let{...u}=e;return E({ourProps:{id:o},theirProps:u,slot:{open:a.dialogState.value===0},attrs:n,slots:r,name:"DialogTitle"})}}});function un(e){let n={called:!1};return(...r)=>{if(!n.called)return n.called=!0,e(...r)}}function Ee(e,...n){e&&n.length>0&&e.classList.add(...n)}function te(e,...n){e&&n.length>0&&e.classList.remove(...n)}var Se=(e=>(e.Finished="finished",e.Cancelled="cancelled",e))(Se||{});function sn(e,n){let r=z();if(!e)return r.dispose;let{transitionDuration:l,transitionDelay:o}=getComputedStyle(e),[a,u]=[l,o].map(i=>{let[s=0]=i.split(",").filter(Boolean).map(c=>c.includes("ms")?parseFloat(c):parseFloat(c)*1e3).sort((c,d)=>d-c);return s});return a!==0?r.setTimeout(()=>n("finished"),a+u):n("finished"),r.add(()=>n("cancelled")),r.dispose}function tt(e,n,r,l,o,a){let u=z(),i=a!==void 0?un(a):()=>{};return te(e,...o),Ee(e,...n,...r),u.nextFrame(()=>{te(e,...r),Ee(e,...l),u.add(sn(e,s=>(te(e,...l,...n),Ee(e,...o),i(s))))}),u.add(()=>te(e,...n,...r,...l,...o)),u.add(()=>i("cancelled")),u.dispose}function R(e=""){return e.split(/\s+/).filter(n=>n.length>1)}let Ce=Symbol("TransitionContext");var dn=(e=>(e.Visible="visible",e.Hidden="hidden",e))(dn||{});function cn(){return t.inject(Ce,null)!==null}function fn(){let e=t.inject(Ce,null);if(e===null)throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");return e}function vn(){let e=t.inject(Te,null);if(e===null)throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");return e}let Te=Symbol("NestingContext");function ne(e){return"children"in e?ne(e.children):e.value.filter(({state:n})=>n==="visible").length>0}function nt(e){let n=t.ref([]),r=t.ref(!1);t.onMounted(()=>r.value=!0),t.onUnmounted(()=>r.value=!1);function l(a,u=x.Hidden){let i=n.value.findIndex(({id:s})=>s===a);i!==-1&&(k(u,{[x.Unmount](){n.value.splice(i,1)},[x.Hidden](){n.value[i].state="hidden"}}),!ne(n)&&r.value&&(e==null||e()))}function o(a){let u=n.value.find(({id:i})=>i===a);return u?u.state!=="visible"&&(u.state="visible"):n.value.push({id:a,state:"visible"}),()=>l(a,x.Unmount)}return{children:n,register:o,unregister:l}}let rt=_.RenderStrategy,Oe=t.defineComponent({props:{as:{type:[Object,String],default:"div"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:""},enterFrom:{type:[String],default:""},enterTo:{type:[String],default:""},entered:{type:[String],default:""},leave:{type:[String],default:""},leaveFrom:{type:[String],default:""},leaveTo:{type:[String],default:""}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(e,{emit:n,attrs:r,slots:l,expose:o}){let a=t.ref(0);function u(){a.value|=S.Opening,n("beforeEnter")}function i(){a.value&=~S.Opening,n("afterEnter")}function s(){a.value|=S.Closing,n("beforeLeave")}function c(){a.value&=~S.Closing,n("afterLeave")}if(!cn()&&Bt())return()=>t.h(lt,{...e,onBeforeEnter:u,onAfterEnter:i,onBeforeLeave:s,onAfterLeave:c},l);let d=t.ref(null),v=t.computed(()=>e.unmount?x.Unmount:x.Hidden);o({el:d,$el:d});let{show:f,appear:m}=fn(),{register:p,unregister:h}=vn(),y=t.ref(f.value?"visible":"hidden"),P={value:!0},C=A(),H={value:!1},re=nt(()=>{!H.value&&y.value!=="hidden"&&(y.value="hidden",h(C),c())});t.onMounted(()=>{let F=p(C);t.onUnmounted(F)}),t.watchEffect(()=>{if(v.value===x.Hidden&&C){if(f.value&&y.value!=="visible"){y.value="visible";return}k(y.value,{hidden:()=>h(C),visible:()=>p(C)})}});let le=R(e.enter),U=R(e.enterFrom),oe=R(e.enterTo),ae=R(e.entered),Le=R(e.leave),ie=R(e.leaveFrom),ke=R(e.leaveTo);t.onMounted(()=>{t.watchEffect(()=>{if(y.value==="visible"){let F=w(d);if(F instanceof Comment&&F.data==="")throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")}})});function Pe(F){let Q=P.value&&!m.value,N=w(d);!N||!(N instanceof HTMLElement)||Q||(H.value=!0,f.value&&u(),f.value||s(),F(f.value?tt(N,le,U,oe,ae,D=>{H.value=!1,D===Se.Finished&&i()}):tt(N,Le,ie,ke,ae,D=>{H.value=!1,D===Se.Finished&&(ne(re)||(y.value="hidden",h(C),c()))})))}return t.onMounted(()=>{t.watch([f],(F,Q,N)=>{Pe(N),P.value=!1},{immediate:!0})}),t.provide(Te,re),xt(t.computed(()=>k(y.value,{visible:S.Open,hidden:S.Closed})|a.value)),()=>{let{appear:F,show:Q,enter:N,enterFrom:D,enterTo:W,entered:ot,leave:at,leaveFrom:it,leaveTo:g,...b}=e,T={ref:d},O={...b,...m.value&&f.value&&q.isServer?{class:t.normalizeClass([r.class,b.class,...le,...U])}:{}};return E({theirProps:O,ourProps:T,slot:{},slots:l,attrs:r,features:rt,visible:y.value==="visible",name:"TransitionChild"})}}}),pn=Oe,lt=t.defineComponent({inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:""},enterFrom:{type:[String],default:""},enterTo:{type:[String],default:""},entered:{type:[String],default:""},leave:{type:[String],default:""},leaveFrom:{type:[String],default:""},leaveTo:{type:[String],default:""}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(e,{emit:n,attrs:r,slots:l}){let o=pe(),a=t.computed(()=>e.show===null&&o!==null?(o.value&S.Open)===S.Open:e.show);t.watchEffect(()=>{if(![!0,!1].includes(a.value))throw new Error('A <Transition /> is used but it is missing a `:show="true | false"` prop.')});let u=t.ref(a.value?"visible":"hidden"),i=nt(()=>{u.value="hidden"}),s=t.ref(!0),c={show:a,appear:t.computed(()=>e.appear||!s.value)};return t.onMounted(()=>{t.watchEffect(()=>{s.value=!1,a.value?u.value="visible":ne(i)||(u.value="hidden")})}),t.provide(Te,i),t.provide(Ce,c),()=>{let d=Ue(e,["show","appear","unmount","onBeforeEnter","onBeforeLeave","onAfterEnter","onAfterLeave"]),v={unmount:e.unmount};return E({ourProps:{...v,as:"template"},theirProps:{},slot:{},slots:{...l,default:()=>[t.h(pn,{onBeforeEnter:()=>n("beforeEnter"),onAfterEnter:()=>n("afterEnter"),onBeforeLeave:()=>n("beforeLeave"),onAfterLeave:()=>n("afterLeave"),...r,...v,...d},l.default)]},attrs:{},features:rt,visible:u.value==="visible",name:"Transition"})}}});const mn={class:"rvc-fixed rvc-inset-0 rvc-overflow-hidden",role:"presentation"},hn={class:"rvc-absolute rvc-inset-0 rvc-overflow-hidden"},gn={class:"rvc-pointer-events-none rvc-fixed rvc-inset-y-0 rvc-right-0 rvc-flex rvc-max-w-full rvc-pl-10"},yn={class:"rvc-flex rvc-h-full rvc-flex-col rvc-shadow-xl"},bn={class:"rvc-flex rvc-items-center rvc-justify-between"},wn={key:0,class:"rvc-ml-3 rvc-flex rvc-h-7 rvc-items-center"},En=["id"],Sn={class:"rvc-flex rvc-shrink-0 drawer-footer"},Cn={__name:"Drawer",props:{as:{type:String,default:"form"},id:{type:String,required:!0},title:{type:String,required:!0},showClose:{type:Boolean},scrolledDown:{type:Boolean},headerSticky:{type:Boolean},spinning:{type:Boolean},submitLabel:{type:String,default:"Save"},cancelLabel:{type:String,default:"Cancel"},panelClass:{type:String,default:"rvc-max-w-xl"}},emits:["drawer:open","drawer:close","drawer:save"],setup(e,{emit:n}){const r=n,l=e,o=t.ref(null),a=t.ref(!1),u=t.computed(()=>l.as==="form"),i=t.computed(()=>`${l.id}-title`),s=t.computed(()=>`${l.id}-content`),c=t.computed(()=>{var d;return(d=o.value)==null?void 0:d.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')});return(d,v)=>(t.openBlock(),t.createBlock(t.unref(lt),{as:"template"},{default:t.withCtx(()=>[t.createVNode(t.unref(ln),{as:e.as,class:"drawer",static:"","aria-modal":"true",role:"dialog","initial-focus":c.value,"aria-labelledby":i.value,onClose:v[5]||(v[5]=f=>d.$emit("drawer:close")),onSubmit:v[6]||(v[6]=t.withModifiers(f=>r("drawer:save",f),["prevent"]))},{default:t.withCtx(()=>[t.createVNode(t.unref(Oe),{as:"template",enter:"rvc-ease-in-out rvc-duration-500","enter-from":"rvc-opacity-0","enter-to":"rvc-opacity-100",leave:"rvc-ease-in-out rvc-duration-500","leave-from":"rvc-opacity-100","leave-to":"rvc-opacity-0",onBeforeEnter:v[0]||(v[0]=f=>r("drawer:open"))},{default:t.withCtx(()=>v[7]||(v[7]=[t.createElementVNode("div",{class:"rvc-fixed rvc-inset-0 rvc-transition-opacity drawer-backdrop","aria-hidden":"true"},null,-1)])),_:1}),t.createElementVNode("div",mn,[t.createElementVNode("div",hn,[t.createElementVNode("div",gn,[t.createVNode(t.unref(Oe),{as:"template",enter:"rvc-transform rvc-transition rvc-ease-in-out rvc-duration-500 sm:rvc-duration-700","enter-from":"rvc-translate-x-full","enter-to":"rvc-translate-x-0",leave:"rvc-transform rvc-transition rvc-ease-in-out rvc-duration-500 sm:rvc-duration-700","leave-from":"rvc-translate-x-0","leave-to":"rvc-translate-x-full",onBeforeEnter:v[3]||(v[3]=f=>a.value=!0),onAfterLeave:v[4]||(v[4]=f=>a.value=!1)},{default:t.withCtx(()=>[t.createVNode(t.unref(on),{class:t.normalizeClass(["rvc-pointer-events-auto rvc-w-screen",e.panelClass]),"aria-busy":e.spinning,"aria-describedby":s.value},{default:t.withCtx(()=>[t.createElementVNode("div",yn,[t.createElementVNode("header",{class:t.normalizeClass([{"rvc-sticky rvc-top-0 rvc-left-0 rvc-w-full rvc-z-10":e.headerSticky},"drawer-header"])},[t.renderSlot(d.$slots,"header",{title:e.title,showClose:e.showClose},()=>[t.createElementVNode("div",bn,[t.createVNode(t.unref(an),{id:i.value,class:"drawer-title"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.title),1)]),_:1},8,["id"]),e.showClose?(t.openBlock(),t.createElementBlock("div",wn,[t.createElementVNode("button",{type:"button",class:"rvc-relative drawer-close","aria-label":"Close panel",onClick:v[1]||(v[1]=f=>r("drawer:close"))},[t.createVNode(t.unref(De),{class:"rvc-size-full","aria-hidden":"true"})])])):t.createCommentVNode("",!0)])])],2),t.createElementVNode("div",{class:t.normalizeClass([e.scrolledDown?"rvc-flex-col-reverse":"rvc-flex-col","rvc-flex rvc-min-h-0 rvc-flex-1 rvc-overflow-y-scroll"])},[t.createElementVNode("div",{id:s.value,ref_key:"contentRef",ref:o,class:"rvc-relative rvc-flex-1 drawer-content"},[t.renderSlot(d.$slots,"default",{ready:a.value})],8,En)],2),t.createElementVNode("footer",Sn,[t.renderSlot(d.$slots,"footer",{loading:e.spinning},()=>[t.createVNode(se,{type:"button",label:e.cancelLabel,color:"light",onClick:v[2]||(v[2]=f=>r("drawer:close"))},null,8,["label"]),u.value?(t.openBlock(),t.createBlock(se,{key:0,type:"submit",label:e.submitLabel,spinning:e.spinning,disabled:e.spinning},null,8,["label","spinning","disabled"])):t.createCommentVNode("",!0)])])])]),_:3},8,["class","aria-busy","aria-describedby"])]),_:3})])])])]),_:3},8,["as","initial-focus","aria-labelledby"])]),_:3}))}};L.Alert=dt,L.Badge=ct,L.ButtonBase=se,L.Drawer=Cn,Object.defineProperty(L,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robuust-digital/vue-components",
3
- "version": "1.0.1-rc.3",
3
+ "version": "1.1.1",
4
4
  "type": "module",
5
5
  "description": "A modern and customizable component library built with **Vue 3** and **Tailwind CSS**, designed to deliver a flexible, cohesive UI experience across all projects. Quickly integrate reusable components with ease, and customize them to suit your unique branding needs.",
6
6
  "directories": {
@@ -30,10 +30,11 @@
30
30
  "require": "./dist/vue-components.umd.js"
31
31
  },
32
32
  "./tailwind": "./dist/tailwind/index.js",
33
- "./nuxt": "./dist/nuxt-module.js"
33
+ "./nuxt": "./dist/nuxt-module.js",
34
+ "./css": "./dist/style.css"
34
35
  },
35
36
  "scripts": {
36
- "dev": "nodemon --watch 'tailwind.config.js' --exec 'vite'",
37
+ "dev": "nodemon --watch 'tailwind.config.js' --exec 'vite --host'",
37
38
  "build": "vite build",
38
39
  "preview": "vite preview",
39
40
  "test:unit": "vitest run",
@@ -43,6 +44,7 @@
43
44
  "docs:preview": "vitepress preview docs"
44
45
  },
45
46
  "dependencies": {
47
+ "@headlessui/vue": "^1.7.23",
46
48
  "@heroicons/vue": "^2.1.5",
47
49
  "@nuxt/kit": "^3.13.2",
48
50
  "tailwindcss": "^3.4.14",