4 lines
6.9 KiB
JavaScript
4 lines
6.9 KiB
JavaScript
import{a4 as L,r as E,p as w,H as q,E as B,c as b,d as M,Q as x,a5 as G,a6 as C,a7 as V,a8 as j,R as K,a9 as Y,k as z,o as W,w as _,f as H,u as T,G as Q}from"./app-BXYcVHqk.js";import{r as J,S as O,P as X}from"./AppLogoIcon.vue_vue_type_script_setup_true_lang-BzXwPo6R.js";import{q as Z,i as ee,u as te,b as ne}from"./useForwardExpose-Djbxsgaa.js";import{b as R,g as P,c as ae,a as oe}from"./VisuallyHidden-BvthYHr5.js";function Ee(t,e="reka"){return`${e}-${L?.()}`}function re(t,e){const i=E(t);function a(d){return e[i.value][d]??i.value}return{state:i,dispatch:d=>{i.value=a(d)}}}function ie(t,e){const i=E({}),a=E("none"),s=E(t),d=t.value?"mounted":"unmounted";let c;const v=e.value?.ownerDocument.defaultView??Z,{state:m,dispatch:u}=re(d,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),n=o=>{if(ee){const r=new CustomEvent(o,{bubbles:!1,cancelable:!1});e.value?.dispatchEvent(r)}};w(t,async(o,r)=>{const h=r!==o;if(await q(),h){const I=a.value,p=N(e.value);o?(u("MOUNT"),n("enter"),p==="none"&&n("after-enter")):p==="none"||p==="undefined"||i.value?.display==="none"?(u("UNMOUNT"),n("leave"),n("after-leave")):r&&I!==p?(u("ANIMATION_OUT"),n("leave")):(u("UNMOUNT"),n("after-leave"))}},{immediate:!0});const l=o=>{const r=N(e.value),h=r.includes(CSS.escape(o.animationName)),I=m.value==="mounted"?"enter":"leave";if(o.target===e.value&&h&&(n(`after-${I}`),u("ANIMATION_END"),!s.value)){const p=e.value.style.animationFillMode;e.value.style.animationFillMode="forwards",c=v?.setTimeout(()=>{e.value?.style.animationFillMode==="forwards"&&(e.value.style.animationFillMode=p)})}o.target===e.value&&r==="none"&&u("ANIMATION_END")},f=o=>{o.target===e.value&&(a.value=N(e.value))},A=w(e,(o,r)=>{o?(i.value=getComputedStyle(o),o.addEventListener("animationstart",f),o.addEventListener("animationcancel",l),o.addEventListener("animationend",l)):(u("ANIMATION_END"),c!==void 0&&v?.clearTimeout(c),r?.removeEventListener("animationstart",f),r?.removeEventListener("animationcancel",l),r?.removeEventListener("animationend",l))},{immediate:!0}),g=w(m,()=>{const o=N(e.value);a.value=m.value==="mounted"?o:"none"});return B(()=>{A(),g()}),{isPresent:b(()=>["mounted","unmountSuspended"].includes(m.value))}}function N(t){return t&&getComputedStyle(t).animationName||"none"}var Ie=M({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(t,{slots:e,expose:i}){const{present:a,forceMount:s}=x(t),d=E(),{isPresent:c}=ie(a,d);i({present:c});let v=e.default({present:c.value});v=J(v||[]);const m=G();if(v&&v?.length>1){const u=m?.parent?.type.name?`<${m.parent.type.name} />`:"component";throw new Error([`Detected an invalid children for \`${u}\` for \`Presence\` component.`,"","Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.","You can apply a few solutions:",["Provide a single child element so that `presence` directive attach correctly.","Ensure the first child is an actual element instead of a raw text node or comment node."].map(n=>` - ${n}`).join(`
|
|
`)].join(`
|
|
`))}return()=>s.value||a.value||c.value?C(e.default({present:c.value})[0],{ref:u=>{const n=te(u);return typeof n?.hasAttribute>"u"||(n?.hasAttribute("data-reka-popper-content-wrapper")?d.value=n.firstElementChild:d.value=n),n}}):null}});const U="data-reka-collection-item";function se(t={}){const{key:e="",isProvider:i=!1}=t,a=`${e}CollectionProvider`;let s;if(i){const n=E(new Map);s={collectionRef:E(),itemMap:n},V(a,s)}else s=j(a);const d=(n=!1)=>{const l=s.collectionRef.value;if(!l)return[];const f=Array.from(l.querySelectorAll(`[${U}]`)),g=Array.from(s.itemMap.value.values()).sort((S,o)=>f.indexOf(S.ref)-f.indexOf(o.ref));return n?g:g.filter(S=>S.ref.dataset.disabled!=="")},c=M({name:"CollectionSlot",setup(n,{slots:l}){const{primitiveElement:f,currentElement:A}=R();return w(A,()=>{s.collectionRef.value=A.value}),()=>C(O,{ref:f},l)}}),v=M({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(n,{slots:l,attrs:f}){const{primitiveElement:A,currentElement:g}=R();return K(S=>{if(g.value){const o=Y(g.value);s.itemMap.value.set(o,{ref:g.value,value:n.value}),S(()=>s.itemMap.value.delete(o))}}),()=>C(O,{...f,[U]:"",ref:A},l)}}),m=b(()=>Array.from(s.itemMap.value.values())),u=b(()=>s.itemMap.value.size);return{getItems:d,reactiveItems:m,itemMapSize:u,CollectionSlot:c,CollectionItem:v}}const ue="rovingFocusGroup.onEntryFocus",le={bubbles:!1,cancelable:!0},ce={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function de(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function ye(t,e,i){const a=de(t.key,i);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(a))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(a)))return ce[a]}function fe(t,e=!1){const i=P();for(const a of t)if(a===i||(a.focus({preventScroll:e}),P()!==i))return}function Se(t,e){return t.map((i,a)=>t[(e+a)%t.length])}const[Te,me]=ae("RovingFocusGroup");var ve=M({__name:"RovingFocusGroup",props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["entryFocus","update:currentTabStopId"],setup(t,{expose:e,emit:i}){const a=t,s=i,{loop:d,orientation:c,dir:v}=x(a),m=oe(v),u=ne(a,"currentTabStopId",s,{defaultValue:a.defaultCurrentTabStopId,passive:a.currentTabStopId===void 0}),n=E(!1),l=E(!1),f=E(0),{getItems:A,CollectionSlot:g}=se({isProvider:!0});function S(r){const h=!l.value;if(r.currentTarget&&r.target===r.currentTarget&&h&&!n.value){const I=new CustomEvent(ue,le);if(r.currentTarget.dispatchEvent(I),s("entryFocus",I),!I.defaultPrevented){const p=A().map(y=>y.ref).filter(y=>y.dataset.disabled!==""),F=p.find(y=>y.getAttribute("data-active")===""),D=p.find(y=>y.getAttribute("data-highlighted")===""),$=p.find(y=>y.id===u.value),k=[F,D,$,...p].filter(Boolean);fe(k,a.preventScrollOnEntryFocus)}}l.value=!1}function o(){setTimeout(()=>{l.value=!1},1)}return e({getItems:A}),me({loop:d,dir:m,orientation:c,currentTabStopId:u,onItemFocus:r=>{u.value=r},onItemShiftTab:()=>{n.value=!0},onFocusableItemAdd:()=>{f.value++},onFocusableItemRemove:()=>{f.value--}}),(r,h)=>(W(),z(T(g),null,{default:_(()=>[H(T(X),{tabindex:n.value||f.value===0?-1:0,"data-orientation":T(c),as:r.as,"as-child":r.asChild,dir:T(m),style:{outline:"none"},onMousedown:h[0]||(h[0]=I=>l.value=!0),onMouseup:o,onFocus:S,onBlur:h[1]||(h[1]=I=>n.value=!1)},{default:_(()=>[Q(r.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),Ne=ve;export{Ie as P,Ne as R,se as a,fe as f,ye as g,Te as i,Ee as u,Se as w};
|