motion-plus-vue 1.3.1 → 1.4.0

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.
package/dist/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("motion-v");function Be(n,{locales:t,format:o},i,s){const l=new Intl.NumberFormat(t,o).formatToParts(Number(n));i&&l.unshift({type:"prefix",value:i}),s&&l.push({type:"suffix",value:s});const c=[],v=[],h=[],x=[],u={},f=m=>`${m}:${u[m]=(u[m]??-1)+1}`;let p="",B=!1,w=!1,y=0;for(const m of l){p+=m.value;const d=m.type==="minusSign"||m.type==="plusSign"?"sign":m.type;switch(d){case"integer":B=!0,v.push(...m.value.split("").map(b=>({type:d,value:parseInt(b)})));break;case"group":v.push({type:d,value:m.value});break;case"decimal":w=!0,h.push({type:d,value:m.value,key:f(d),originalIndex:y++});break;case"fraction":h.push(...m.value.split("").map(b=>({type:d,value:parseInt(b),key:f(d),originalIndex:y++})));break;default:(B||w?x:c).push({type:d,value:m.value,key:f(d),originalIndex:y++})}}const k=[];for(let m=v.length-1;m>=0;m--){const d=f(v[m].type);k.unshift({...v[m],key:d,originalIndex:m})}return{pre:c,integer:k,fraction:h,post:x,formatted:p}}const[Ce,be]=r.createContext("SectionContext");function ve(){const n={current:!0};return e.onMounted(()=>{n.current=!1}),n}function G(n){const{width:t,fontSize:o}=getComputedStyle(n);return`${parseFloat(t)/parseFloat(o)}em`}const T="var(--mask-height, 0.15em)",U="var(--mask-width, 0.5em)",O=`calc(${U} / var(--invert-x, 1))`,j="#000 0, transparent 71%",Se=`linear-gradient(to right, transparent 0, #000 ${O}, #000 calc(100% - ${O}), transparent),linear-gradient(to bottom, transparent 0, #000 ${T}, #000 calc(100% - ${T}), transparent 100%),radial-gradient(at bottom right, ${j}),radial-gradient(at bottom left, ${j}), radial-gradient(at top left, ${j}), radial-gradient(at top right, ${j})`,Ie=`100% calc(100% - ${T} * 2),calc(100% - ${O} * 2) 100%,${O} ${T},${O} ${T},${O} ${T},${O} ${T}`;r.addScaleCorrector({"--invert-x":{correct:(n,{treeScale:t,projectionDelta:o})=>o.x.scale*t.x}});const ae={display:"flex",flexDirection:"column",alignItems:"center",position:"absolute",width:"100%"};function ge(n){const t=e.ref();function o(s){t.value=s==null?void 0:s.$el}e.watch(()=>n.isPresent,s=>{var a;t.value&&((a=r.mountedStates.get(t.value))==null||a.setActive("exit",!s))});function i(s){var a;s.detail.isExit&&!n.isPresent&&((a=n.onRemove)==null||a.call(n,n.partKey,s.target))}return{root:t,getRoot:o,handleComplete:i}}const Le=e.defineComponent({__name:"NumberSymbol",props:{partKey:{},type:{},value:{},isPresent:{type:Boolean},onRemove:{type:Function},style:{},layoutDependency:{},preInitial:{type:Boolean}},setup(n){const t=n,{justify:o}=Ce(),{getRoot:i,handleComplete:s}=ge(t);return(a,l)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{ref:e.unref(i),layout:"position","layout-dependency":a.layoutDependency,"data-state":a.isPresent?void 0:"exiting",style:e.normalizeStyle({display:"inline-flex",justifyContent:e.unref(o),padding:`calc(${e.unref(T)}/2) 0`,position:"relative",pointerEvents:a.isPresent?void 0:"none"}),"aria-hidden":!a.isPresent,onMotioncomplete:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(e.unref(r.AnimatePresence),{mode:"popLayout","anchor-x":e.unref(o),initial:a.preInitial},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(r.motion).span,{key:a.value,layout:e.unref(o)==="right"?"position":!1,"layout-dependency":a.layoutDependency,initial:{opacity:0,left:e.unref(o)==="right"&&a.preInitial===void 0?"-100%":void 0},animate:{opacity:[null,1],left:0},exit:{opacity:[null,0],transition:{opacity:{duration:.4}}},style:{display:"inline-block",whiteSpace:"pre",position:"relative"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["layout","layout-dependency","initial"]))]),_:1},8,["anchor-x","initial"])]),_:1},8,["layout-dependency","data-state","style","aria-hidden","onMotioncomplete"]))}}),ze=new WeakMap,Ee=e.defineComponent({__name:"NumberDigit",props:{value:{},initialValue:{default:void 0},isPresent:{type:Boolean},partKey:{},onRemove:{},style:{},layoutDependency:{}},setup(n){const t=n,o=t.initialValue??t.value,i=ve(),s=r.useMotionConfig(),a=e.ref(),l=e.ref(Array(10).fill(null)),c=e.ref(),{getRoot:v,handleComplete:h,root:x}=ge(t);let u=o;const f=e.ref(o);e.watch([()=>t.value,()=>t.isPresent],([y,k])=>{if(!k)return f.value=0;if(i.current)return e.nextTick(()=>{f.value=y});f.value=y},{immediate:!0});function p(y){var b;if(!a.value||y===u)return;const k=a.value.getBoundingClientRect(),m=(b=x.value)==null?void 0:b.getBoundingClientRect(),d=k.height*(y-u)+(k.top-(m?m.top||0:k.top));r.animate(a.value,{y:[d,0]},s.value.transition)}function B(y){if(i.current&&o===y||!l.value[y])return;const k=G(l.value[y]);x.value&&(ze.set(x.value,k),x.value.style.width=k),c.value=k}e.watch(f,y=>{B(y)},{immediate:!0,flush:"sync"}),e.watch(f,async(y,k,m)=>{await e.nextTick(),p(y),m(()=>{u=y})},{immediate:!0,flush:"sync"});function w(y){return()=>e.createVNode("span",{key:y,style:{display:"inline-block",padding:`calc(${T}/2) 0`},ref:k=>{l.value[y]=k}},[y])}return(y,k)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{ref:e.unref(v),layout:"position","layout-dependency":y.layoutDependency,"data-state":y.isPresent?void 0:"exiting","data-key":y.partKey,style:e.normalizeStyle({display:"inline-flex",justifyContent:"center",width:c.value,pointerEvents:y.isPresent?void 0:"none"}),"aria-hidden":!y.isPresent,onMotioncomplete:e.unref(h)},{default:e.withCtx(()=>[e.createElementVNode("span",{ref_key:"scope",ref:a,style:{display:"inline-flex",justifyContent:"center",flexDirection:"column",alignItems:"center",position:"relative"}},[f.value!==0?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle({...e.unref(ae),bottom:"100%",left:0})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,m=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(m-1)),{key:m-1}))),128))],4)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(f.value)))),f.value!==9?(e.openBlock(),e.createElementBlock("span",{key:1,style:e.normalizeStyle({...e.unref(ae),top:"100%",left:0})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(9-f.value,m=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(f.value+m)),{key:f.value+m}))),128))],4)):e.createCommentVNode("",!0)],512)]),_:1},8,["layout-dependency","data-state","data-key","style","aria-hidden","onMotioncomplete"]))}}),H=e.defineComponent({__name:"NumberSection",props:{parts:{},justify:{default:"left"},mode:{},name:{},style:{},layoutDependency:{}},setup(n){var x;const t=n,o=e.ref(),i=r.useDomRef(),s=e.ref(),a=ve(),l=e.ref(t.parts);let c=t.name==="pre"&&!((x=t.parts)!=null&&x.length)?void 0:!1;e.watch(()=>t.parts,u=>{const f=new Map(u.map(w=>[w.key,{...w,isPresent:!0}])),p=l.value.filter(w=>!f.get(w.key)).map(w=>({...w,isPresent:!1})),B=u.sort((w,y)=>w.originalIndex-y.originalIndex);l.value=p.concat(B)},{flush:"pre"}),e.watch(()=>{var u;return(u=t.parts)==null?void 0:u.map(f=>f.value).join("")},async(u,f)=>{if(await e.nextTick(),c=!1,!s.value)return;if(a.current){i.value&&(i.value.style.width=G(s.value));return}const p=Array.from(s.value.children).map(w=>{if(w instanceof HTMLElement&&w.dataset.state==="exiting"){const y=w.nextSibling;return w.remove(),()=>{s.value&&s.value.insertBefore(w,y)}}}),B=G(s.value);o.value=B;for(let w=p.length-1;w>=0;w--){const y=p[w];y&&y()}},{flush:"post"});const v=e.toRef(t,"justify");be({justify:v});function h(u,f){var p;l.value=l.value.filter(B=>B.key!==u),(p=f==null?void 0:f.parentElement)==null||p.removeChild(f)}return(u,f)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{ref:e.unref(i),class:e.normalizeClass(`number-section-${u.name}`),style:e.normalizeStyle({...u.style,display:"inline-flex",justifyContent:v.value,width:o.value}),layout:"position","layout-dependency":u.layoutDependency},{default:e.withCtx(()=>[e.createElementVNode("span",{ref_key:"measuredRef",ref:s,style:{display:"inline-flex",justifyContent:"inherit",position:"relative"}},[f[0]||(f[0]=e.createTextVNode(" ​ ")),e.createVNode(e.unref(r.AnimatePresence),{mode:u.mode,"anchor-x":v.value,initial:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,p=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p.key},[p.type==="integer"||p.type==="fraction"?(e.openBlock(),e.createBlock(Ee,{key:p.key,"part-key":p.key,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},value:p.value,"is-present":p.isPresent??!0,"initial-value":e.unref(a).current?void 0:0,"layout-dependency":u.layoutDependency,onRemove:h},null,8,["part-key","value","is-present","initial-value","layout-dependency"])):(e.openBlock(),e.createBlock(Le,{key:p.type==="literal"?`${p.key}:${p.value}`:p.key,type:p.type,"part-key":p.key,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},value:p.value,"is-present":p.isPresent??!0,"pre-initial":e.unref(c),"layout-dependency":u.layoutDependency,onRemove:h},null,8,["type","part-key","value","is-present","pre-initial","layout-dependency"]))],64))),128))]),_:1},8,["mode","anchor-x"])],512)]),_:1},8,["class","style","layout-dependency"]))}}),Pe=e.defineComponent({__name:"Mask",props:{layoutDependency:{}},setup(n){return(t,o)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{layout:"","layout-dependency":t.layoutDependency,"aria-hidden":!0,style:e.normalizeStyle({display:"inline-flex","--invert-x":1,margin:`0 calc(-1*${e.unref(U)})`,padding:`calc(${e.unref(T)}/2) ${e.unref(U)}`,position:"relative",zIndex:-1,overflow:"clip",webkitMaskImage:e.unref(Se),webkitMaskSize:e.unref(Ie),webkitMaskPosition:"center, center, top left, top right, bottom right, bottom left",webkitMaskRepeat:"no-repeat"})},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["layout-dependency","style"]))}}),Te=e.defineComponent({name:"AnimateNumber",inheritAttrs:!1,__name:"AnimateNumber",props:{locales:{},format:{},transition:{},suffix:{},prefix:{},value:{},style:{},layoutDependency:{}},setup(n){const t={opacity:{duration:1,ease:r.easeOut},layout:{type:"spring",duration:1,bounce:0},y:{type:"spring",duration:1,bounce:0}},o=n,i=e.computed(()=>{const v=o.value;return Be(v,{locales:o.locales,format:o.format},o.prefix,o.suffix)}),s=r.useMotionConfig(),a=e.computed(()=>o.transition??s.value.transition??t);function l(){const{format:v,prefix:h,suffix:x,locales:u,value:f,layoutDependency:p,...B}=o;return B}const c=e.computed(()=>{if(o.layoutDependency!==void 0)return{layoutDependency:o.layoutDependency,value:o.value}});return(v,h)=>(e.openBlock(),e.createBlock(e.unref(r.LayoutGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(r.MotionConfig),{transition:a.value},{default:e.withCtx(()=>[e.createVNode(e.unref(r.motion).div,e.mergeProps({...v.$attrs,...l()},{layout:"","layout-dependency":c.value,style:{lineHeight:"1",...v.style,display:"inline-flex",isolation:"isolate",whiteSpace:"nowrap"}}),{default:e.withCtx(()=>[e.createVNode(e.unref(r.motion).div,{layout:"","layout-dependency":c.value,"aria-label":i.value.formatted,style:{display:"inline-flex",direction:"ltr",isolation:"isolate",position:"relative",zIndex:-1}},{default:e.withCtx(()=>[e.createVNode(H,{"layout-dependency":c.value,style:e.normalizeStyle({padding:`calc(${e.unref(T)}/2) 0`}),"aria-hidden":!0,justify:"right",mode:"popLayout",parts:i.value.pre,name:"pre"},null,8,["layout-dependency","style","parts"]),e.createVNode(Pe,{"layout-dependency":c.value},{default:e.withCtx(()=>[e.createVNode(H,{"layout-dependency":c.value,justify:"right",parts:i.value.integer,name:"integer",mode:"popLayout"},null,8,["layout-dependency","parts"]),e.createVNode(H,{"layout-dependency":c.value,layout:"position",parts:i.value.fraction,name:"fraction",mode:"popLayout"},null,8,["layout-dependency","parts"])]),_:1},8,["layout-dependency"]),e.createVNode(H,{"layout-dependency":c.value,style:e.normalizeStyle({padding:`calc(${e.unref(T)}/2) 0`}),"aria-hidden":!0,layout:"position",mode:"popLayout",parts:i.value.post,name:"post"},null,8,["layout-dependency","style","parts"])]),_:1},8,["layout-dependency","aria-label"])]),_:1},16,["layout-dependency","style"])]),_:1},8,["transition"])]),_:1}))}}),$e=Te;function Me(){const n=document.createElement("style");return n.textContent=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("motion-v"),ae=require("motion-plus-dom");function Be(n,{locales:t,format:o},i,s){const l=new Intl.NumberFormat(t,o).formatToParts(Number(n));i&&l.unshift({type:"prefix",value:i}),s&&l.push({type:"suffix",value:s});const d=[],y=[],h=[],x=[],c={},f=v=>`${v}:${c[v]=(c[v]??-1)+1}`;let u="",k=!1,g=!1,m=0;for(const v of l){u+=v.value;const p=v.type==="minusSign"||v.type==="plusSign"?"sign":v.type;switch(p){case"integer":k=!0,y.push(...v.value.split("").map(b=>({type:p,value:parseInt(b)})));break;case"group":y.push({type:p,value:v.value});break;case"decimal":g=!0,h.push({type:p,value:v.value,key:f(p),originalIndex:m++});break;case"fraction":h.push(...v.value.split("").map(b=>({type:p,value:parseInt(b),key:f(p),originalIndex:m++})));break;default:(k||g?x:d).push({type:p,value:v.value,key:f(p),originalIndex:m++})}}const C=[];for(let v=y.length-1;v>=0;v--){const p=f(y[v].type);C.unshift({...y[v],key:p,originalIndex:v})}return{pre:d,integer:C,fraction:h,post:x,formatted:u}}const[be,Se]=r.createContext("SectionContext");function ge(){const n={current:!0};return e.onMounted(()=>{n.current=!1}),n}function G(n){const{width:t,fontSize:o}=getComputedStyle(n);return`${parseFloat(t)/parseFloat(o)}em`}const P="var(--mask-height, 0.15em)",U="var(--mask-width, 0.5em)",_=`calc(${U} / var(--invert-x, 1))`,j="#000 0, transparent 71%",Ie=`linear-gradient(to right, transparent 0, #000 ${_}, #000 calc(100% - ${_}), transparent),linear-gradient(to bottom, transparent 0, #000 ${P}, #000 calc(100% - ${P}), transparent 100%),radial-gradient(at bottom right, ${j}),radial-gradient(at bottom left, ${j}), radial-gradient(at top left, ${j}), radial-gradient(at top right, ${j})`,Le=`100% calc(100% - ${P} * 2),calc(100% - ${_} * 2) 100%,${_} ${P},${_} ${P},${_} ${P},${_} ${P}`;r.addScaleCorrector({"--invert-x":{correct:(n,{treeScale:t,projectionDelta:o})=>o.x.scale*t.x}});const se={display:"flex",flexDirection:"column",alignItems:"center",position:"absolute",width:"100%"};function he(n){const t=e.ref();function o(s){t.value=s==null?void 0:s.$el}e.watch(()=>n.isPresent,s=>{var a;t.value&&((a=r.mountedStates.get(t.value))==null||a.setActive("exit",!s))});function i(s){var a;s.detail.isExit&&!n.isPresent&&((a=n.onRemove)==null||a.call(n,n.partKey,s.target))}return{root:t,getRoot:o,handleComplete:i}}const Te=e.defineComponent({__name:"NumberSymbol",props:{partKey:{},type:{},value:{},isPresent:{type:Boolean},onRemove:{type:Function},style:{},layoutDependency:{},preInitial:{type:Boolean}},setup(n){const t=n,{justify:o}=be(),{getRoot:i,handleComplete:s}=he(t);return(a,l)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{ref:e.unref(i),layout:"position","layout-dependency":a.layoutDependency,"data-state":a.isPresent?void 0:"exiting",style:e.normalizeStyle({display:"inline-flex",justifyContent:e.unref(o),padding:`calc(${e.unref(P)}/2) 0`,position:"relative",pointerEvents:a.isPresent?void 0:"none"}),"aria-hidden":!a.isPresent,onMotioncomplete:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(e.unref(r.AnimatePresence),{mode:"popLayout","anchor-x":e.unref(o),initial:a.preInitial},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(r.motion).span,{key:a.value,layout:e.unref(o)==="right"?"position":!1,"layout-dependency":a.layoutDependency,initial:{opacity:0,left:e.unref(o)==="right"&&a.preInitial===void 0?"-100%":void 0},animate:{opacity:[null,1],left:0},exit:{opacity:[null,0],transition:{opacity:{duration:.4}}},style:{display:"inline-block",whiteSpace:"pre",position:"relative"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["layout","layout-dependency","initial"]))]),_:1},8,["anchor-x","initial"])]),_:1},8,["layout-dependency","data-state","style","aria-hidden","onMotioncomplete"]))}}),Ee=new WeakMap,ze=e.defineComponent({__name:"NumberDigit",props:{value:{},initialValue:{default:void 0},isPresent:{type:Boolean},partKey:{},onRemove:{},style:{},layoutDependency:{}},setup(n){const t=n,o=t.initialValue??t.value,i=ge(),s=r.useMotionConfig(),a=e.ref(),l=e.ref(Array(10).fill(null)),d=e.ref(),{getRoot:y,handleComplete:h,root:x}=he(t);let c=o;const f=e.ref(o);e.watch([()=>t.value,()=>t.isPresent],([m,C])=>{if(!C)return f.value=0;if(i.current)return e.nextTick(()=>{f.value=m});f.value=m},{immediate:!0});function u(m){var b;if(!a.value||m===c)return;const C=a.value.getBoundingClientRect(),v=(b=x.value)==null?void 0:b.getBoundingClientRect(),p=C.height*(m-c)+(C.top-(v?v.top||0:C.top));r.animate(a.value,{y:[p,0]},s.value.transition)}function k(m){if(i.current&&o===m||!l.value[m])return;const C=G(l.value[m]);x.value&&(Ee.set(x.value,C),x.value.style.width=C),d.value=C}e.watch(f,m=>{k(m)},{immediate:!0,flush:"sync"}),e.watch(f,async(m,C,v)=>{await e.nextTick(),u(m),v(()=>{c=m})},{immediate:!0,flush:"sync"});function g(m){return()=>e.createVNode("span",{key:m,style:{display:"inline-block",padding:`calc(${P}/2) 0`},ref:C=>{l.value[m]=C}},[m])}return(m,C)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{ref:e.unref(y),layout:"position","layout-dependency":m.layoutDependency,"data-state":m.isPresent?void 0:"exiting","data-key":m.partKey,style:e.normalizeStyle({display:"inline-flex",justifyContent:"center",width:d.value,pointerEvents:m.isPresent?void 0:"none"}),"aria-hidden":!m.isPresent,onMotioncomplete:e.unref(h)},{default:e.withCtx(()=>[e.createElementVNode("span",{ref_key:"scope",ref:a,style:{display:"inline-flex",justifyContent:"center",flexDirection:"column",alignItems:"center",position:"relative"}},[f.value!==0?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle({...e.unref(se),bottom:"100%",left:0})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,v=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g(v-1)),{key:v-1}))),128))],4)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g(f.value)))),f.value!==9?(e.openBlock(),e.createElementBlock("span",{key:1,style:e.normalizeStyle({...e.unref(se),top:"100%",left:0})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(9-f.value,v=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g(f.value+v)),{key:f.value+v}))),128))],4)):e.createCommentVNode("",!0)],512)]),_:1},8,["layout-dependency","data-state","data-key","style","aria-hidden","onMotioncomplete"]))}}),H=e.defineComponent({__name:"NumberSection",props:{parts:{},justify:{default:"left"},mode:{},name:{},style:{},layoutDependency:{}},setup(n){var x;const t=n,o=e.ref(),i=r.useDomRef(),s=e.ref(),a=ge(),l=e.ref(t.parts);let d=t.name==="pre"&&!((x=t.parts)!=null&&x.length)?void 0:!1;e.watch(()=>t.parts,c=>{const f=new Map(c.map(g=>[g.key,{...g,isPresent:!0}])),u=l.value.filter(g=>!f.get(g.key)).map(g=>({...g,isPresent:!1})),k=c.sort((g,m)=>g.originalIndex-m.originalIndex);l.value=u.concat(k)},{flush:"pre"}),e.watch(()=>{var c;return(c=t.parts)==null?void 0:c.map(f=>f.value).join("")},async(c,f)=>{if(await e.nextTick(),d=!1,!s.value)return;if(a.current){i.value&&(i.value.style.width=G(s.value));return}const u=Array.from(s.value.children).map(g=>{if(g instanceof HTMLElement&&g.dataset.state==="exiting"){const m=g.nextSibling;return g.remove(),()=>{s.value&&s.value.insertBefore(g,m)}}}),k=G(s.value);o.value=k;for(let g=u.length-1;g>=0;g--){const m=u[g];m&&m()}},{flush:"post"});const y=e.toRef(t,"justify");Se({justify:y});function h(c,f){var u;l.value=l.value.filter(k=>k.key!==c),(u=f==null?void 0:f.parentElement)==null||u.removeChild(f)}return(c,f)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{ref:e.unref(i),class:e.normalizeClass(`number-section-${c.name}`),style:e.normalizeStyle({...c.style,display:"inline-flex",justifyContent:y.value,width:o.value}),layout:"position","layout-dependency":c.layoutDependency},{default:e.withCtx(()=>[e.createElementVNode("span",{ref_key:"measuredRef",ref:s,style:{display:"inline-flex",justifyContent:"inherit",position:"relative"}},[f[0]||(f[0]=e.createTextVNode(" ​ ")),e.createVNode(e.unref(r.AnimatePresence),{mode:c.mode,"anchor-x":y.value,initial:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.key},[u.type==="integer"||u.type==="fraction"?(e.openBlock(),e.createBlock(ze,{key:u.key,"part-key":u.key,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},value:u.value,"is-present":u.isPresent??!0,"initial-value":e.unref(a).current?void 0:0,"layout-dependency":c.layoutDependency,onRemove:h},null,8,["part-key","value","is-present","initial-value","layout-dependency"])):(e.openBlock(),e.createBlock(Te,{key:u.type==="literal"?`${u.key}:${u.value}`:u.key,type:u.type,"part-key":u.key,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},value:u.value,"is-present":u.isPresent??!0,"pre-initial":e.unref(d),"layout-dependency":c.layoutDependency,onRemove:h},null,8,["type","part-key","value","is-present","pre-initial","layout-dependency"]))],64))),128))]),_:1},8,["mode","anchor-x"])],512)]),_:1},8,["class","style","layout-dependency"]))}}),Pe=e.defineComponent({__name:"Mask",props:{layoutDependency:{}},setup(n){return(t,o)=>(e.openBlock(),e.createBlock(e.unref(r.motion).span,{layout:"","layout-dependency":t.layoutDependency,"aria-hidden":!0,style:e.normalizeStyle({display:"inline-flex","--invert-x":1,margin:`0 calc(-1*${e.unref(U)})`,padding:`calc(${e.unref(P)}/2) ${e.unref(U)}`,position:"relative",zIndex:-1,overflow:"clip",webkitMaskImage:e.unref(Ie),webkitMaskSize:e.unref(Le),webkitMaskPosition:"center, center, top left, top right, bottom right, bottom left",webkitMaskRepeat:"no-repeat"})},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["layout-dependency","style"]))}}),$e=e.defineComponent({name:"AnimateNumber",inheritAttrs:!1,__name:"AnimateNumber",props:{locales:{},format:{},transition:{},suffix:{},prefix:{},value:{},style:{},layoutDependency:{}},setup(n){const t={opacity:{duration:1,ease:r.easeOut},layout:{type:"spring",duration:1,bounce:0},y:{type:"spring",duration:1,bounce:0}},o=n,i=e.computed(()=>{const y=o.value;return Be(y,{locales:o.locales,format:o.format},o.prefix,o.suffix)}),s=r.useMotionConfig(),a=e.computed(()=>o.transition??s.value.transition??t);function l(){const{format:y,prefix:h,suffix:x,locales:c,value:f,layoutDependency:u,...k}=o;return k}const d=e.computed(()=>{if(o.layoutDependency!==void 0)return{layoutDependency:o.layoutDependency,value:o.value}});return(y,h)=>(e.openBlock(),e.createBlock(e.unref(r.LayoutGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(r.MotionConfig),{transition:a.value},{default:e.withCtx(()=>[e.createVNode(e.unref(r.motion).div,e.mergeProps({...y.$attrs,...l()},{layout:"","layout-dependency":d.value,style:{lineHeight:"1",...y.style,display:"inline-flex",isolation:"isolate",whiteSpace:"nowrap"}}),{default:e.withCtx(()=>[e.createVNode(e.unref(r.motion).div,{layout:"","layout-dependency":d.value,"aria-label":i.value.formatted,style:{display:"inline-flex",direction:"ltr",isolation:"isolate",position:"relative",zIndex:-1}},{default:e.withCtx(()=>[e.createVNode(H,{"layout-dependency":d.value,style:e.normalizeStyle({padding:`calc(${e.unref(P)}/2) 0`}),"aria-hidden":!0,justify:"right",mode:"popLayout",parts:i.value.pre,name:"pre"},null,8,["layout-dependency","style","parts"]),e.createVNode(Pe,{"layout-dependency":d.value},{default:e.withCtx(()=>[e.createVNode(H,{"layout-dependency":d.value,justify:"right",parts:i.value.integer,name:"integer",mode:"popLayout"},null,8,["layout-dependency","parts"]),e.createVNode(H,{"layout-dependency":d.value,layout:"position",parts:i.value.fraction,name:"fraction",mode:"popLayout"},null,8,["layout-dependency","parts"])]),_:1},8,["layout-dependency"]),e.createVNode(H,{"layout-dependency":d.value,style:e.normalizeStyle({padding:`calc(${e.unref(P)}/2) 0`}),"aria-hidden":!0,layout:"position",mode:"popLayout",parts:i.value.post,name:"post"},null,8,["layout-dependency","style","parts"])]),_:1},8,["layout-dependency","aria-label"])]),_:1},16,["layout-dependency","style"])]),_:1},8,["transition"])]),_:1}))}}),Me=$e;function Ve(){const n=document.createElement("style");return n.textContent=`
2
2
  * {
3
3
  cursor: none !important;
4
4
  }
@@ -6,4 +6,4 @@
6
6
  [data-motion-cursor="pointer"] {
7
7
  background-color: #333;
8
8
  }
9
- `,document.head.appendChild(n),()=>{document.head.removeChild(n)}}function Ve(n){e.watch(n,(t,o,i)=>{const s=t?Me():r.noop;return i(()=>{s()})},{immediate:!0,flush:"post"})}function ee(n){return t=>{t.pointerType==="mouse"&&n(t)}}function se(n){return ee(t=>{t.button===0&&n(t)})}let K,Z;function Ne(){K=r.motionValue(0),Z=r.motionValue(0);let n=0,t=0;function o(){K.set(n),Z.set(t)}typeof window<"u"&&window.addEventListener("pointermove",ee(i=>{n=i.clientX,t=i.clientY,r.frame.update(o)}))}function te(){return K||Ne(),{x:K,y:Z}}function Re(n,t){return{x:r.useTransform(()=>n.x.get()+t.value.x),y:r.useTransform(()=>n.y.get()+t.value.y)}}function De(n){return n.closest("[data-cursor]")}function Oe(n){return n.closest('a, button, input[type="button"]:not(:disabled)')}function Ae(n){return window.getComputedStyle(n).userSelect==="none"?null:n.closest("p, textarea:not(:disabled), input[type='text']:not(:disabled), h1, h2, h3, h4, h5, h6")}function Fe(n){let t=De(n);return t?[t.dataset.cursor,t]:(t=Oe(n),t?["pointer",t]:(t=Ae(n),t?["text",t]:["default",null]))}let Y=null,P={type:"default",isPressed:!1,fontSize:null,targetBoundingBox:null,target:null,zone:null};function _e(n){let t=null;if("closest"in n){const o=n.closest("[data-cursor-zone]");o instanceof HTMLElement&&(t=o.dataset.cursorZone||null)}return t}function je(){if(typeof window>"u")return{onChange:()=>()=>{}};const n=new Set;function t(c){P={...P,...c},n.forEach(v=>v(P))}const o=se(()=>{P.isPressed||t({isPressed:!0})}),i=se(()=>{P.isPressed&&t({isPressed:!1})}),s=ee(({target:c})=>{if(!c)return;const[v,h]=Fe(c);let x=!1;const u={target:h,zone:_e(c)};v!==P.type&&(u.type=v,x=!0),u.zone!==P.zone&&(P.zone=u.zone,x=!0);const f=v==="pointer"&&h?h.getBoundingClientRect():null;if(f!==P.targetBoundingBox&&(u.targetBoundingBox=f,x=!0),v==="text"){const{fontSize:p}=window.getComputedStyle(c),B=p?parseInt(p):null;B!==P.fontSize&&(u.fontSize=B,x=!0)}else P.fontSize&&(u.fontSize=null,x=!0);x&&t(u)});function a(){typeof window>"u"||(window.addEventListener("pointerover",s),window.addEventListener("pointerdown",o),window.addEventListener("pointerup",i))}function l(){window.removeEventListener("pointerover",s),window.removeEventListener("pointerdown",o),window.removeEventListener("pointerup",i)}return{onChange:c=>(n.size||a(),n.add(c),()=>{n.delete(c),n.size||l()})}}function He(){return Y||(Y=je()),Y}function ne(){const n=e.ref({...P});return e.watch(n,()=>He().onChange(t=>{n.value=t}),{immediate:!0,flush:"post"}),n}let q=null;function We(){const n=new Set;function t(){n.forEach(a=>a.show())}function o(){n.forEach(a=>a.hide())}function i(){document.body.addEventListener("mouseenter",t),document.body.addEventListener("mouseleave",o)}function s(){document.body.removeEventListener("mouseenter",t),document.body.removeEventListener("mouseleave",o)}return{on:a=>typeof window>"u"?r.noop:(n.size||i(),n.add(a),()=>{n.delete(a),n.size===0&&s()})}}function Ke(){return q||(q=We()),q}function he(n){const t=e.ref(!0);return e.watch(t,()=>Ke().on({show:()=>{t.value||(n(),t.value=!0)},hide:()=>t.value=!1}),{immediate:!0}),t}const le={x:0,y:0},Xe={x:.5,y:.5},Ye={duration:0},qe={stiffness:1e3,damping:100},Ge={duration:.15,ease:[.38,.12,.29,1]},ue={magneticOptions:{morph:!0,padding:5,snap:.8}},ce=17,de=31,fe=4,Ue=20;function W(n,t,o){const i={width:(o==null?void 0:o.width)??n,height:(o==null?void 0:o.height)??t};return typeof i.width=="number"&&(i.width=`${i.width}px`),typeof i.height=="number"&&(i.height=`${i.height}px`),i}function Ze({type:n,state:t,hasChildren:o,style:i,isMagnetic:s,magneticOptions:a,matchTextSize:l}){const c=s&&t.targetBoundingBox;if(o&&!c)return W("auto","auto",i);const{padding:v,morph:h}=a;switch(n){case"pointer":if(s&&h&&t.targetBoundingBox){const{width:x,height:u}=t.targetBoundingBox;return{width:`${x+v*2}px`,height:`${u+v*2}px`}}return W(de,de,i);case"text":return l&&t.fontSize?{width:`${fe}px`,height:`${t.fontSize}px`}:W(fe,Ue,i);default:return W(ce,ce,i)}}function Je({x:n,y:t},o){const i=e.ref(n.prev!==void 0||t.prev!==void 0);return e.watch(i,()=>{if(i.value)return;const s=()=>{i.value=!0,o(),a()},a=r.pipe(n.on("change",s),t.on("change",s));return()=>a()},{immediate:!0}),i}function Qe(n,t,o){return r.useTransform(()=>r.mix(n.value.get(),t.get(),o.get()))}function pe(n,t,o){const i=r.useSpring(0,{stiffness:600,damping:50}),s=r.useMotionValue(0),a=Qe(n,i,s);return e.watch(()=>o==null?void 0:o.value,(l,c)=>{l?(!c&&!s.isAnimating()?i.jump(l):i.set(l),r.animate(s,t.value||0)):r.animate(s,0)},{immediate:!0,flush:"sync"}),a}function et(n,t,o,i){const s=pe(e.computed(()=>n.value.x),i,e.computed(()=>o.value.targetBoundingBox?o.value.targetBoundingBox.left+o.value.targetBoundingBox.width/2:void 0)),a=pe(e.computed(()=>n.value.y),i,e.computed(()=>o.value.targetBoundingBox?o.value.targetBoundingBox.top+o.value.targetBoundingBox.height/2:void 0));return e.computed(()=>t.value?{x:s,y:a}:n.value)}const tt=e.defineComponent({name:"Cursor",inheritAttrs:!1,__name:"Cursor",props:{follow:{type:Boolean,default:!1},center:{default:({follow:n})=>n?le:Xe},offset:{default:()=>le},spring:{type:[Boolean,Object],default:({follow:n})=>n?qe:!1},matchTextSize:{type:Boolean,default:!0},magnetic:{type:[Boolean,Object],default:!1},transition:{},variants:{},style:{},show:{type:Boolean,default:!0}},setup(n){const t=n,{offset:o,magnetic:i}=e.toRefs(t),s=r.useReducedMotion();Ve(()=>!s.value&&!t.follow);const a=te(),l=Re(a,o),c=r.useSpring(l.x,t.spring||void 0),v=r.useSpring(l.y,t.spring||void 0),h=e.computed(()=>typeof t.magnetic=="object"?{...ue.magneticOptions,...t.magnetic}:ue.magneticOptions);function x(){const d=l.x.on("change",L=>{c.jump(L),d()}),b=l.y.on("change",L=>{v.jump(L),b()})}const u=ne(),f=he(x),p=et(e.computed(()=>t.spring?{x:c,y:v}:a),e.computed(()=>!!i.value),u,e.computed(()=>h.value&&h.value.snap)),B=e.useSlots(),w=e.computed(()=>{var L,z;const d=(z=(L=B.default)==null?void 0:L.call(B))==null?void 0:z.filter(V=>V.type!==Symbol.for("v-cmt"));return Ze({type:u.value.type,state:u.value,hasChildren:!!(d!=null&&d.length),isMagnetic:!!t.magnetic,style:t.style,magneticOptions:h.value,matchTextSize:t.matchTextSize})}),y=Je(a,x);function k(d){return(b,L)=>`translate(-${d.x*100}%, -${d.y*100}%) ${L}`}function m(){const{follow:d,center:b,offset:L,spring:z,matchTextSize:V,magnetic:A,...F}=t;return F}return(d,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.unref(y)?(e.openBlock(),e.createBlock(e.unref(r.LayoutGroup),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(r.MotionConfig),{transition:e.unref(s)?e.unref(Ye):d.transition||e.unref(Ge)},{default:e.withCtx(()=>{var L,z;return[e.createVNode(e.unref(r.motion).div,e.mergeProps({layout:"","data-motion-cursor":d.follow?"follow":"pointer","data-framer-portal-id":"motion-cursor",initial:"exit",exit:"exit"},{...d.$attrs,...m()},{variants:{pressed:d.follow?{}:{scale:.9},...d.variants,default:{opacity:1,scale:1,...(L=d.variants)==null?void 0:L.default},exit:{opacity:0,scale:0,...(z=d.variants)==null?void 0:z.exit}},animate:["default",e.unref(u).type,e.unref(i)&&e.unref(u).targetBoundingBox?"magnetic":"",!e.unref(f)||!d.show?"exit":e.unref(u).isPressed?"pressed":""],"transform-template":k(d.center),style:{borderRadius:d.follow?0:20,zIndex:d.follow?99998:99999,willChange:"transform",contain:"layout",originX:d.center.x,originY:d.center.y,...d.style,width:w.value.width,height:w.value.height,x:e.unref(p).x,y:e.unref(p).y,top:0,left:0,position:"fixed",pointerEvents:"none"}}),{default:e.withCtx(()=>[e.createVNode(e.unref(r.AnimatePresence),null,{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3})]),_:3},16,["data-motion-cursor","variants","animate","transform-template","style"])]}),_:3},8,["transition"])]),_:3})):e.createCommentVNode("",!0)]))}});function me(n,t,o){const i=r.useMotionValue(0),s=r.useMotionValue(0),a=r.useMotionValue(0);return e.watch(()=>o==null?void 0:o.value,l=>{if(typeof l=="number"){r.animate(a,1);const c=()=>{s.set(t*(n.get()-l))};return c(),n.on("change",c)}else r.animate(a,0)},{immediate:!0,flush:"post"}),r.useTransform(()=>r.mix(i.get(),s.get(),a.get()))}function nt(n,t=.1){const o=ne(),i=te(),s=e.computed(()=>o.value.targetBoundingBox&&o.value.target===n.value),a=me(i.x,t,e.computed(()=>s.value?o.value.targetBoundingBox.left+o.value.targetBoundingBox.width/2:void 0)),l=me(i.y,t,e.computed(()=>s.value?o.value.targetBoundingBox.top+o.value.targetBoundingBox.height/2:void 0));return{x:a,y:l}}const[ot,it]=r.createContext("TickerItemContext"),J=e.defineComponent({__name:"TickerItem",props:{offset:{},axis:{},listSize:{},inset:{},bounds:{},itemIndex:{},cloneIndex:{},alignItems:{},itemSize:{default:"auto"}},setup(n){const t=n,o=r.useTransform(()=>{const l=t.offset.get(),{start:c,end:v}=t.bounds;return!c&&!v||!t.listSize?0:l+v<=-t.inset?t.listSize:0}),i=r.useTransform(()=>{const{start:l,end:c}=t.bounds,v=t.offset.get(),h=o.get();return!l&&!c||!t.listSize?0:v+l+h}),s=e.computed(()=>t.alignItems==="stretch"?"100%":"fit-content"),a=e.computed(()=>t.cloneIndex!==void 0);return it({offset:i}),(l,c)=>(e.openBlock(),e.createBlock(e.unref(r.motion).li,e.mergeProps(l.$attrs,{class:l.cloneIndex===void 0?"ticker-item":"clone-item","aria-hidden":a.value?!0:void 0,style:{flexGrow:0,flexShrink:0,flexBasis:l.itemSize==="fill"?"100%":void 0,display:l.itemSize==="fill"?"flex":void 0,height:l.axis==="x"?s.value:void 0,width:l.axis==="y"?s.value:void 0,x:l.axis==="x"?e.unref(o):0,y:l.axis==="y"?e.unref(o):0}}),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},16,["class","aria-hidden","style"]))}});function rt(n,t,o,i,s){let a=!1;e.watch(n,(l,c,v)=>{if(!l)return;let h=!1;const x=new AbortController,u={signal:x.signal},f={...u,capture:!0},p=t.value==="x"?"scrollLeft":"scrollTop",B=t.value==="x"?"offsetLeft":"offsetTop",w=t.value==="x"?"ArrowLeft":"ArrowUp",y=t.value==="x"?"ArrowRight":"ArrowDown";let k=[],m=0;const d=async()=>{const g=k[m];g.focus(),await e.nextTick(),o.set(-g[B]),l[p]=0},b=g=>{if(g.key==="Tab"){g.preventDefault(),V();const C=Array.from(document.querySelectorAll('a, button, input, textarea, select, [tabindex]:not([tabindex="-1"]), [contenteditable="true"]')).filter(r.isHTMLElement);C.sort(at);const I=C[g.shiftKey?0:C.length-1],E=g.shiftKey?C.length-1:0;if(l.contains(I)){C[E].focus();return}else{const N=C.indexOf(k[m]),$=g.shiftKey?-1:1;for(let M=N;M<C.length&&M>=0;M+=$){const R=C[M];if(!l.contains(R)){R.focus();return}}}return}else g.key===w?m--:g.key===y&&m++;m=r.wrap(0,k.length,m),d()},L=()=>{a||(s(!0),a=!0,k=Array.from(l.querySelectorAll('.ticker-item a, .ticker-item button, .ticker-item input, .ticker-item textarea, .ticker-item select, .ticker-item [tabindex]:not([tabindex="-1"]), .ticker-item [contenteditable="true"]')).filter(r.isHTMLElement),m=0,d(),window.addEventListener("focus",z,f),window.addEventListener("blur",z,f),l.addEventListener("keydown",b,u))},z=g=>{(!g.target||!(g.target instanceof HTMLElement)||!l.contains(g.target))&&V()},V=()=>{a&&(a=!1,s(!1),i.value.set(o.get()),window.removeEventListener("focus",z),window.removeEventListener("blur",z),l.removeEventListener("keydown",b))},A=g=>{const{target:C}=g;r.isHTMLElement(C)&&(a||L())},F=()=>{h||(h=!0,l.addEventListener("focus",A,f),window.addEventListener("pointermove",_,u))},_=()=>{h&&(h=!1,l.removeEventListener("focus",A,!0),window.removeEventListener("pointermove",_,u))},S=g=>{const I=g.target.closest('[aria-hidden="true"]');I&&I.removeAttribute("aria-hidden")};window.addEventListener("keydown",F,u),l.addEventListener("pointerdown",S,u),v(()=>{x.abort(),V()})},{flush:"post"})}function at(n,t){return n.tabIndex>=1&&t.tabIndex>=1?n.tabIndex-t.tabIndex:n.tabIndex>=1&&t.tabIndex<=0?-1:t.tabIndex>=1&&n.tabIndex<=0?1:0}const ye={start:0,end:0},st={start:"flex-start",end:"flex-end"};function lt(n){return n.end-n.start}function we(n){return n.length?n[n.length-1].end-n[0].start:0}function ut(n,t,o){const i=we(t),s=Math.max(...t.map(lt));let a=0,l=0;for(;l<n;)l=(i+o)*(a+1)-s,a++;return Math.max(a-1,0)}function ct(n=[]){const t=[];for(const o of n)o.type!==e.Comment&&t.push(o);return t}function Q(n){var o;const t=[];for(const i of n)if(i.type===e.Fragment){const s=Array.isArray(i.children)?i.children:(o=i.children)==null?void 0:o.default();t.push(...Q(s))}else t.push(i);return t}function dt(n,t){let o=0,i=n;for(;i;)o+=t==="x"?i.offsetLeft:i.offsetTop,i=i.offsetParent;return o}function ft(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const pt=e.defineComponent({__name:"Ticker",props:{axis:{default:"x"},style:{},velocity:{default:50},hoverFactor:{default:1},gap:{default:10},align:{default:"center"},offset:{},itemSize:{default:"auto"},overflow:{type:Boolean,default:!1}},setup(n){const t=n,o=e.reactive({visibleLength:0,inset:0,totalItemLength:0,itemPositions:[]}),i=e.computed(()=>st[t.align]||t.align),s=e.useSlots(),a=e.computed(()=>{var S;return ct((S=s.default)==null?void 0:S.call(s))}),l=e.ref(!1),c=r.useMotionValue(1),v=r.useMotionValue(0),h=e.computed(()=>t.offset??v),x=r.useTransform(()=>r.wrap(-o.totalItemLength-t.gap-o.inset,-o.inset,h.value.get())),u=r.useMotionValue(0),f=e.computed(()=>l.value?u:x),p=r.useDomRef(),B=r.useDomRef(),w=r.useInView(p,{margin:"100px"}),y=r.usePageInView(),k=e.computed(()=>w.value&&y.value),m=r.useReducedMotion();function d(){if(!p.value||!B.value)return;const S=t.axis==="x"?"innerWidth":"innerHeight",g=t.axis==="x"?"offsetWidth":"offsetHeight",C=t.axis==="x"?"offsetLeft":"offsetTop",I=t.axis==="x"?"paddingLeft":"paddingTop",E=p.value,$=B.value.querySelectorAll(".ticker-item");if(!$.length)return;let M=!1;const R=[];for(let D=0;D<$.length;D++){const X=$[D];R.push({start:X[C],end:X[C]+X[g]}),(!o.itemPositions[D]||R[D].start!==o.itemPositions[D].start||R[D].end!==o.itemPositions[D].end)&&(M=!0)}const oe=t.overflow?window[S]:Math.min(E[g],window[S]),ie=we(R),xe=window.getComputedStyle(E),ke=parseInt(xe[I]??"0"),re=t.overflow?dt($[0],t.axis):ke;(oe!==o.visibleLength||ie!==o.totalItemLength||re!==o.inset||M)&&(o.visibleLength=oe,o.itemPositions=R,o.totalItemLength=ie,o.inset=re)}e.watch([a,k],(S,g,C)=>{if(!k.value||!p.value)return;d();const I=t.overflow?r.resize(d):void 0,E=r.resize(p.value,d);C(()=>{I==null||I(),E()})},{immediate:!0,flush:"post"});const b=e.computed(()=>o.totalItemLength>0);r.useAnimationFrame((S,g)=>{if(b.value&&k.value&&h.value===v&&!m.value){const C=g/1e3*(t.velocity*c.get());h.value.set(h.value.get()-C)}});const L=e.computed(()=>!b.value||!o.visibleLength?0:ut(o.visibleLength,o.itemPositions,t.gap)),z=e.computed(()=>o.totalItemLength===0?0:(o.totalItemLength+t.gap)*(L.value+1)),V=e.computed(()=>{const S=[];for(let g=0;g<L.value;g++)a.value.forEach((C,I)=>{let E;const N=o.itemPositions[I],$=(o.totalItemLength+t.gap)*(g+1),M=N?{start:N.start+$,end:N.end+$}:ye;S.push(e.createVNode(J,{key:`clone-${g}-${I}`,offset:f.value,axis:t.axis,listSize:z.value,cloneIndex:I,bounds:M,inset:o.inset,alignItems:i.value,itemSize:t.itemSize},ft(E=Q([C]))?E:{default:()=>[E]}))});return S}),A=e.toRef(t,"axis");rt(p,A,u,h,S=>{l.value=S});const F={display:"flex",position:"relative"},_=e.computed(()=>({display:"flex",position:"relative",willChange:b.value&&k.value?"transform":void 0,listStyleType:"none",padding:0,margin:0,justifyContent:"flex-start",flexDirection:t.axis==="x"?"row":"column",gap:`${t.gap}px`,alignItems:i.value,x:t.axis==="x"?f.value:0,y:t.axis==="y"?f.value:0,opacity:b.value?1:0,width:"100%",height:"100%",maxHeight:"100%",maxWidth:"100%"}));return(S,g)=>(e.openBlock(),e.createBlock(e.unref(r.motion).div,e.mergeProps(S.$attrs,{ref_key:"containerRef",ref:p,style:{...F,...t.style,overflow:t.overflow?"visible":"hidden"},onPointerenter:g[0]||(g[0]=()=>{e.unref(r.animate)(e.unref(c),S.hoverFactor)}),onPointerleave:g[1]||(g[1]=()=>{e.unref(r.animate)(e.unref(c),1)})}),{default:e.withCtx(()=>[e.createVNode(e.unref(r.motion).ul,{ref_key:"listRef",ref:B,style:e.normalizeStyle(_.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(C,I)=>(e.openBlock(),e.createBlock(J,{key:`original-${I}`,axis:A.value,offset:f.value,"list-size":z.value,"item-index":I,bounds:o.itemPositions[I]??e.unref(ye),inset:o.inset,"align-items":i.value,"item-size":S.itemSize},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Q)([C]),(E,N)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(E),{key:N}))),128))]),_:2},1032,["axis","offset","list-size","item-index","bounds","inset","align-items","item-size"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,C=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C),{key:C.key}))),128))]),_:1},8,["style"])]),_:1},16,["style"]))}});function mt(){const n=ot(null);return r.invariant(!!n,"useItemOffset must be used within a TickerItem"),n==null?void 0:n.offset}const yt=pt;exports.AnimateNumber=$e;exports.Cursor=tt;exports.Ticker=yt;exports.TickerItem=J;exports.useCursorIsInView=he;exports.useCursorState=ne;exports.useItemOffset=mt;exports.useMagneticPull=nt;exports.usePointerPosition=te;
9
+ `,document.head.appendChild(n),()=>{document.head.removeChild(n)}}function Ne(n){e.watch(n,(t,o,i)=>{const s=t?Ve():r.noop;return i(()=>{s()})},{immediate:!0,flush:"post"})}function ee(n){return t=>{t.pointerType==="mouse"&&n(t)}}function le(n){return ee(t=>{t.button===0&&n(t)})}let K,Z;function De(){K=r.motionValue(0),Z=r.motionValue(0);let n=0,t=0;function o(){K.set(n),Z.set(t)}typeof window<"u"&&window.addEventListener("pointermove",ee(i=>{n=i.clientX,t=i.clientY,r.frame.update(o)}))}function te(){return K||De(),{x:K,y:Z}}function Re(n,t){return{x:r.useTransform(()=>n.x.get()+t.value.x),y:r.useTransform(()=>n.y.get()+t.value.y)}}function _e(n){return n.closest("[data-cursor]")}function Fe(n){return n.closest('a, button, input[type="button"]:not(:disabled)')}function Oe(n){return window.getComputedStyle(n).userSelect==="none"?null:n.closest("p, textarea:not(:disabled), input[type='text']:not(:disabled), h1, h2, h3, h4, h5, h6")}function Ae(n){let t=_e(n);return t?[t.dataset.cursor,t]:(t=Fe(n),t?["pointer",t]:(t=Oe(n),t?["text",t]:["default",null]))}let Y=null,z={type:"default",isPressed:!1,fontSize:null,targetBoundingBox:null,target:null,zone:null};function je(n){let t=null;if("closest"in n){const o=n.closest("[data-cursor-zone]");o instanceof HTMLElement&&(t=o.dataset.cursorZone||null)}return t}function He(){if(typeof window>"u")return{onChange:()=>()=>{}};const n=new Set;function t(d){z={...z,...d},n.forEach(y=>y(z))}const o=le(()=>{z.isPressed||t({isPressed:!0})}),i=le(()=>{z.isPressed&&t({isPressed:!1})}),s=ee(({target:d})=>{if(!d)return;const[y,h]=Ae(d);let x=!1;const c={target:h,zone:je(d)};y!==z.type&&(c.type=y,x=!0),c.zone!==z.zone&&(z.zone=c.zone,x=!0);const f=y==="pointer"&&h?h.getBoundingClientRect():null;if(f!==z.targetBoundingBox&&(c.targetBoundingBox=f,x=!0),y==="text"){const{fontSize:u}=window.getComputedStyle(d),k=u?parseInt(u):null;k!==z.fontSize&&(c.fontSize=k,x=!0)}else z.fontSize&&(c.fontSize=null,x=!0);x&&t(c)});function a(){typeof window>"u"||(window.addEventListener("pointerover",s),window.addEventListener("pointerdown",o),window.addEventListener("pointerup",i))}function l(){window.removeEventListener("pointerover",s),window.removeEventListener("pointerdown",o),window.removeEventListener("pointerup",i)}return{onChange:d=>(n.size||a(),n.add(d),()=>{n.delete(d),n.size||l()})}}function We(){return Y||(Y=He()),Y}function ne(){const n=e.ref({...z});return e.watch(n,()=>We().onChange(t=>{n.value=t}),{immediate:!0,flush:"post"}),n}let q=null;function Ke(){const n=new Set;function t(){n.forEach(a=>a.show())}function o(){n.forEach(a=>a.hide())}function i(){document.body.addEventListener("mouseenter",t),document.body.addEventListener("mouseleave",o)}function s(){document.body.removeEventListener("mouseenter",t),document.body.removeEventListener("mouseleave",o)}return{on:a=>typeof window>"u"?r.noop:(n.size||i(),n.add(a),()=>{n.delete(a),n.size===0&&s()})}}function Xe(){return q||(q=Ke()),q}function xe(n){const t=e.ref(!0);return e.watch(t,()=>Xe().on({show:()=>{t.value||(n(),t.value=!0)},hide:()=>t.value=!1}),{immediate:!0}),t}const ue={x:0,y:0},Ye={x:.5,y:.5},qe={duration:0},Ge={stiffness:1e3,damping:100},Ue={duration:.15,ease:[.38,.12,.29,1]},ce={magneticOptions:{morph:!0,padding:5,snap:.8}},de=17,fe=31,pe=4,Ze=20;function W(n,t,o){const i={width:(o==null?void 0:o.width)??n,height:(o==null?void 0:o.height)??t};return typeof i.width=="number"&&(i.width=`${i.width}px`),typeof i.height=="number"&&(i.height=`${i.height}px`),i}function Je({type:n,state:t,hasChildren:o,style:i,isMagnetic:s,magneticOptions:a,matchTextSize:l}){const d=s&&t.targetBoundingBox;if(o&&!d)return W("auto","auto",i);const{padding:y,morph:h}=a;switch(n){case"pointer":if(s&&h&&t.targetBoundingBox){const{width:x,height:c}=t.targetBoundingBox;return{width:`${x+y*2}px`,height:`${c+y*2}px`}}return W(fe,fe,i);case"text":return l&&t.fontSize?{width:`${pe}px`,height:`${t.fontSize}px`}:W(pe,Ze,i);default:return W(de,de,i)}}function Qe({x:n,y:t},o){const i=e.ref(n.prev!==void 0||t.prev!==void 0);return e.watch(i,()=>{if(i.value)return;const s=()=>{i.value=!0,o(),a()},a=r.pipe(n.on("change",s),t.on("change",s));return()=>a()},{immediate:!0}),i}function et(n,t,o){return r.useTransform(()=>r.mix(n.value.get(),t.get(),o.get()))}function me(n,t,o){const i=r.useSpring(0,{stiffness:600,damping:50}),s=r.useMotionValue(0),a=et(n,i,s);return e.watch(()=>o==null?void 0:o.value,(l,d)=>{l?(!d&&!s.isAnimating()?i.jump(l):i.set(l),r.animate(s,t.value||0)):r.animate(s,0)},{immediate:!0,flush:"sync"}),a}function tt(n,t,o,i){const s=me(e.computed(()=>n.value.x),i,e.computed(()=>o.value.targetBoundingBox?o.value.targetBoundingBox.left+o.value.targetBoundingBox.width/2:void 0)),a=me(e.computed(()=>n.value.y),i,e.computed(()=>o.value.targetBoundingBox?o.value.targetBoundingBox.top+o.value.targetBoundingBox.height/2:void 0));return e.computed(()=>t.value?{x:s,y:a}:n.value)}const nt=e.defineComponent({name:"Cursor",inheritAttrs:!1,__name:"Cursor",props:{follow:{type:Boolean,default:!1},center:{default:({follow:n})=>n?ue:Ye},offset:{default:()=>ue},spring:{type:[Boolean,Object],default:({follow:n})=>n?Ge:!1},matchTextSize:{type:Boolean,default:!0},magnetic:{type:[Boolean,Object],default:!1},transition:{},variants:{},style:{},show:{type:Boolean,default:!0}},setup(n){const t=n,{offset:o,magnetic:i}=e.toRefs(t),s=r.useReducedMotion();Ne(()=>!s.value&&!t.follow);const a=te(),l=Re(a,o),d=r.useSpring(l.x,t.spring||void 0),y=r.useSpring(l.y,t.spring||void 0),h=e.computed(()=>typeof t.magnetic=="object"?{...ce.magneticOptions,...t.magnetic}:ce.magneticOptions);function x(){const p=l.x.on("change",L=>{d.jump(L),p()}),b=l.y.on("change",L=>{y.jump(L),b()})}const c=ne(),f=xe(x),u=tt(e.computed(()=>t.spring?{x:d,y}:a),e.computed(()=>!!i.value),c,e.computed(()=>h.value&&h.value.snap)),k=e.useSlots(),g=e.computed(()=>{var L,T;const p=(T=(L=k.default)==null?void 0:L.call(k))==null?void 0:T.filter(V=>V.type!==Symbol.for("v-cmt"));return Je({type:c.value.type,state:c.value,hasChildren:!!(p!=null&&p.length),isMagnetic:!!t.magnetic,style:t.style,magneticOptions:h.value,matchTextSize:t.matchTextSize})}),m=Qe(a,x);function C(p){return(b,L)=>`translate(-${p.x*100}%, -${p.y*100}%) ${L}`}function v(){const{follow:p,center:b,offset:L,spring:T,matchTextSize:V,magnetic:F,...O}=t;return O}return(p,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.unref(m)?(e.openBlock(),e.createBlock(e.unref(r.LayoutGroup),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(r.MotionConfig),{transition:e.unref(s)?e.unref(qe):p.transition||e.unref(Ue)},{default:e.withCtx(()=>{var L,T;return[e.createVNode(e.unref(r.motion).div,e.mergeProps({layout:"","data-motion-cursor":p.follow?"follow":"pointer","data-framer-portal-id":"motion-cursor",initial:"exit",exit:"exit"},{...p.$attrs,...v()},{variants:{pressed:p.follow?{}:{scale:.9},...p.variants,default:{opacity:1,scale:1,...(L=p.variants)==null?void 0:L.default},exit:{opacity:0,scale:0,...(T=p.variants)==null?void 0:T.exit}},animate:["default",e.unref(c).type,e.unref(i)&&e.unref(c).targetBoundingBox?"magnetic":"",!e.unref(f)||!p.show?"exit":e.unref(c).isPressed?"pressed":""],"transform-template":C(p.center),style:{borderRadius:p.follow?0:20,zIndex:p.follow?99998:99999,willChange:"transform",contain:"layout",originX:p.center.x,originY:p.center.y,...p.style,width:g.value.width,height:g.value.height,x:e.unref(u).x,y:e.unref(u).y,top:0,left:0,position:"fixed",pointerEvents:"none"}}),{default:e.withCtx(()=>[e.createVNode(e.unref(r.AnimatePresence),null,{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3})]),_:3},16,["data-motion-cursor","variants","animate","transform-template","style"])]}),_:3},8,["transition"])]),_:3})):e.createCommentVNode("",!0)]))}});function ye(n,t,o){const i=r.useMotionValue(0),s=r.useMotionValue(0),a=r.useMotionValue(0);return e.watch(()=>o==null?void 0:o.value,l=>{if(typeof l=="number"){r.animate(a,1);const d=()=>{s.set(t*(n.get()-l))};return d(),n.on("change",d)}else r.animate(a,0)},{immediate:!0,flush:"post"}),r.useTransform(()=>r.mix(i.get(),s.get(),a.get()))}function ot(n,t=.1){const o=ne(),i=te(),s=e.computed(()=>o.value.targetBoundingBox&&o.value.target===n.value),a=ye(i.x,t,e.computed(()=>s.value?o.value.targetBoundingBox.left+o.value.targetBoundingBox.width/2:void 0)),l=ye(i.y,t,e.computed(()=>s.value?o.value.targetBoundingBox.top+o.value.targetBoundingBox.height/2:void 0));return{x:a,y:l}}const[it,rt]=r.createContext("TickerItemContext"),J=e.defineComponent({__name:"TickerItem",props:{offset:{},axis:{},listSize:{},inset:{},bounds:{},itemIndex:{},cloneIndex:{},alignItems:{},itemSize:{default:"auto"}},setup(n){const t=n,o=r.useTransform(()=>{const l=t.offset.get(),{start:d,end:y}=t.bounds;return!d&&!y||!t.listSize?0:l+y<=-t.inset?t.listSize:0}),i=r.useTransform(()=>{const{start:l,end:d}=t.bounds,y=t.offset.get(),h=o.get();return!l&&!d||!t.listSize?0:y+l+h}),s=e.computed(()=>t.alignItems==="stretch"?"100%":"fit-content"),a=e.computed(()=>t.cloneIndex!==void 0);return rt({offset:i}),(l,d)=>(e.openBlock(),e.createBlock(e.unref(r.motion).li,e.mergeProps(l.$attrs,{class:l.cloneIndex===void 0?"ticker-item":"clone-item","aria-hidden":a.value?!0:void 0,style:{flexGrow:0,flexShrink:0,flexBasis:l.itemSize==="fill"?"100%":void 0,display:l.itemSize==="fill"?"flex":void 0,height:l.axis==="x"?s.value:void 0,width:l.axis==="y"?s.value:void 0,x:l.axis==="x"?e.unref(o):0,y:l.axis==="y"?e.unref(o):0}}),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},16,["class","aria-hidden","style"]))}});function at(n,t,o,i,s){let a=!1;e.watch(n,(l,d,y)=>{if(!l)return;let h=!1;const x=new AbortController,c={signal:x.signal},f={...c,capture:!0},u=t.value==="x"?"scrollLeft":"scrollTop",k=t.value==="x"?"offsetLeft":"offsetTop",g=t.value==="x"?"ArrowLeft":"ArrowUp",m=t.value==="x"?"ArrowRight":"ArrowDown";let C=[],v=0;const p=async()=>{const w=C[v];w.focus(),await e.nextTick(),o.set(-w[k]),l[u]=0},b=w=>{if(w.key==="Tab"){w.preventDefault(),V();const B=Array.from(document.querySelectorAll('a, button, input, textarea, select, [tabindex]:not([tabindex="-1"]), [contenteditable="true"]')).filter(r.isHTMLElement);B.sort(st);const I=B[w.shiftKey?0:B.length-1],E=w.shiftKey?B.length-1:0;if(l.contains(I)){B[E].focus();return}else{const N=B.indexOf(C[v]),$=w.shiftKey?-1:1;for(let M=N;M<B.length&&M>=0;M+=$){const D=B[M];if(!l.contains(D)){D.focus();return}}}return}else w.key===g?v--:w.key===m&&v++;v=r.wrap(0,C.length,v),p()},L=()=>{a||(s(!0),a=!0,C=Array.from(l.querySelectorAll('.ticker-item a, .ticker-item button, .ticker-item input, .ticker-item textarea, .ticker-item select, .ticker-item [tabindex]:not([tabindex="-1"]), .ticker-item [contenteditable="true"]')).filter(r.isHTMLElement),v=0,p(),window.addEventListener("focus",T,f),window.addEventListener("blur",T,f),l.addEventListener("keydown",b,c))},T=w=>{(!w.target||!(w.target instanceof HTMLElement)||!l.contains(w.target))&&V()},V=()=>{a&&(a=!1,s(!1),i.value.set(o.get()),window.removeEventListener("focus",T),window.removeEventListener("blur",T),l.removeEventListener("keydown",b))},F=w=>{const{target:B}=w;r.isHTMLElement(B)&&(a||L())},O=()=>{h||(h=!0,l.addEventListener("focus",F,f),window.addEventListener("pointermove",A,c))},A=()=>{h&&(h=!1,l.removeEventListener("focus",F,!0),window.removeEventListener("pointermove",A,c))},S=w=>{const I=w.target.closest('[aria-hidden="true"]');I&&I.removeAttribute("aria-hidden")};window.addEventListener("keydown",O,c),l.addEventListener("pointerdown",S,c),y(()=>{x.abort(),V()})},{flush:"post"})}function st(n,t){return n.tabIndex>=1&&t.tabIndex>=1?n.tabIndex-t.tabIndex:n.tabIndex>=1&&t.tabIndex<=0?-1:t.tabIndex>=1&&n.tabIndex<=0?1:0}const ve={start:0,end:0},lt={start:"flex-start",end:"flex-end"};function ut(n){return n.end-n.start}function we(n){return n.length?n[n.length-1].end-n[0].start:0}function ct(n,t,o){const i=we(t),s=Math.max(...t.map(ut));let a=0,l=0;for(;l<n;)l=(i+o)*(a+1)-s,a++;return Math.max(a-1,0)}function dt(n=[]){const t=[];for(const o of n)o.type!==e.Comment&&t.push(o);return t}function Q(n){var o;const t=[];for(const i of n)if(i.type===e.Fragment){const s=Array.isArray(i.children)?i.children:(o=i.children)==null?void 0:o.default();t.push(...Q(s))}else t.push(i);return t}function ft(n,t){let o=0,i=n;for(;i;)o+=t==="x"?i.offsetLeft:i.offsetTop,i=i.offsetParent;return o}function pt(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const mt=e.defineComponent({__name:"Ticker",props:{axis:{default:"x"},style:{},velocity:{default:50},hoverFactor:{default:1},gap:{default:10},align:{default:"center"},offset:{},itemSize:{default:"auto"},overflow:{type:Boolean,default:!1}},setup(n){const t=n,o=e.reactive({visibleLength:0,inset:0,totalItemLength:0,itemPositions:[]}),i=e.computed(()=>lt[t.align]||t.align),s=e.useSlots(),a=e.computed(()=>{var S;return dt((S=s.default)==null?void 0:S.call(s))}),l=e.ref(!1),d=r.useMotionValue(1),y=r.useMotionValue(0),h=e.computed(()=>t.offset??y),x=r.useTransform(()=>r.wrap(-o.totalItemLength-t.gap-o.inset,-o.inset,h.value.get())),c=r.useMotionValue(0),f=e.computed(()=>l.value?c:x),u=r.useDomRef(),k=r.useDomRef(),g=r.useInView(u,{margin:"100px"}),m=r.usePageInView(),C=e.computed(()=>g.value&&m.value),v=r.useReducedMotion();function p(){if(!u.value||!k.value)return;const S=t.axis==="x"?"innerWidth":"innerHeight",w=t.axis==="x"?"offsetWidth":"offsetHeight",B=t.axis==="x"?"offsetLeft":"offsetTop",I=t.axis==="x"?"paddingLeft":"paddingTop",E=u.value,$=k.value.querySelectorAll(".ticker-item");if(!$.length)return;let M=!1;const D=[];for(let R=0;R<$.length;R++){const X=$[R];D.push({start:X[B],end:X[B]+X[w]}),(!o.itemPositions[R]||D[R].start!==o.itemPositions[R].start||D[R].end!==o.itemPositions[R].end)&&(M=!0)}const oe=t.overflow?window[S]:Math.min(E[w],window[S]),ie=we(D),ke=window.getComputedStyle(E),Ce=parseInt(ke[I]??"0"),re=t.overflow?ft($[0],t.axis):Ce;(oe!==o.visibleLength||ie!==o.totalItemLength||re!==o.inset||M)&&(o.visibleLength=oe,o.itemPositions=D,o.totalItemLength=ie,o.inset=re)}e.watch([a,C],(S,w,B)=>{if(!C.value||!u.value)return;p();const I=t.overflow?r.resize(p):void 0,E=r.resize(u.value,p);B(()=>{I==null||I(),E()})},{immediate:!0,flush:"post"});const b=e.computed(()=>o.totalItemLength>0);r.useAnimationFrame((S,w)=>{if(b.value&&C.value&&h.value===y&&!v.value){const B=w/1e3*(t.velocity*d.get());h.value.set(h.value.get()-B)}});const L=e.computed(()=>!b.value||!o.visibleLength?0:ct(o.visibleLength,o.itemPositions,t.gap)),T=e.computed(()=>o.totalItemLength===0?0:(o.totalItemLength+t.gap)*(L.value+1)),V=e.computed(()=>{const S=[];for(let w=0;w<L.value;w++)a.value.forEach((B,I)=>{let E;const N=o.itemPositions[I],$=(o.totalItemLength+t.gap)*(w+1),M=N?{start:N.start+$,end:N.end+$}:ve;S.push(e.createVNode(J,{key:`clone-${w}-${I}`,offset:f.value,axis:t.axis,listSize:T.value,cloneIndex:I,bounds:M,inset:o.inset,alignItems:i.value,itemSize:t.itemSize},pt(E=Q([B]))?E:{default:()=>[E]}))});return S}),F=e.toRef(t,"axis");at(u,F,c,h,S=>{l.value=S});const O={display:"flex",position:"relative"},A=e.computed(()=>({display:"flex",position:"relative",willChange:b.value&&C.value?"transform":void 0,listStyleType:"none",padding:0,margin:0,justifyContent:"flex-start",flexDirection:t.axis==="x"?"row":"column",gap:`${t.gap}px`,alignItems:i.value,x:t.axis==="x"?f.value:0,y:t.axis==="y"?f.value:0,opacity:b.value?1:0,width:"100%",height:"100%",maxHeight:"100%",maxWidth:"100%"}));return(S,w)=>(e.openBlock(),e.createBlock(e.unref(r.motion).div,e.mergeProps(S.$attrs,{ref_key:"containerRef",ref:u,style:{...O,...t.style,overflow:t.overflow?"visible":"hidden"},onPointerenter:w[0]||(w[0]=()=>{e.unref(r.animate)(e.unref(d),S.hoverFactor)}),onPointerleave:w[1]||(w[1]=()=>{e.unref(r.animate)(e.unref(d),1)})}),{default:e.withCtx(()=>[e.createVNode(e.unref(r.motion).ul,{ref_key:"listRef",ref:k,style:e.normalizeStyle(A.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(B,I)=>(e.openBlock(),e.createBlock(J,{key:`original-${I}`,axis:F.value,offset:f.value,"list-size":T.value,"item-index":I,bounds:o.itemPositions[I]??e.unref(ve),inset:o.inset,"align-items":i.value,"item-size":S.itemSize},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Q)([B]),(E,N)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(E),{key:N}))),128))]),_:2},1032,["axis","offset","list-size","item-index","bounds","inset","align-items","item-size"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,B=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B),{key:B.key}))),128))]),_:1},8,["style"])]),_:1},16,["style"]))}});function yt(){const n=it(null);return r.invariant(!!n,"useItemOffset must be used within a TickerItem"),n==null?void 0:n.offset}const vt=mt,gt={slow:130,normal:75,fast:30},ht=e.defineComponent({__name:"Typewriter",props:e.mergeDefaults({as:{},speed:{},variance:{},play:{type:Boolean},cursorClassName:{},cursorStyle:{},textClassName:{},textStyle:{},cursorBlinkDuration:{},onComplete:{type:Function},replace:{},backspace:{},backspaceFactor:{}},{as:"span",speed:"normal",variance:"natural",cursorClassName:"motion-typewriter-cursor",play:!0,cursorBlinkDuration:.5,replace:"type",backspace:"character",backspaceFactor:.2}),setup(n){const t=n,o=e.useSlots();function i(){var k;return(((k=o==null?void 0:o.default)==null?void 0:k.call(o))??[]).map(g=>typeof g.children=="string"?g.children:"").join("")}let s=i();const a=r.useMotionValue("");e.watchEffect(()=>{const u=i();t.replace==="all"&&u!==s&&a.set(""),s=u});const l=e.ref();let d=null;const y=e.computed(()=>typeof t.speed=="number"?t.speed:gt[t.speed]);function h(){l.value&&(d=r.animate(l.value,{opacity:[1,1,0,0]},{duration:t.cursorBlinkDuration,times:[0,.5,.5,1],ease:"linear",repeat:1/0,repeatType:"reverse"}))}let x=null;function c(){x==null||x(),x=null}function f(){if(!t.play){h(),c();return}d==null||d.cancel();const u=i(),k=()=>{var C;const m=ae.getNextText(a.get(),u,t.replace,t.backspace);a.set(m),m!==u?g():(h(),(C=t.onComplete)==null||C.call(t))},g=()=>{x=r.delayInMs(k,ae.getTypewriterDelay(u,a.get(),y.value,t.variance,t.backspaceFactor))};x||g()}return e.watchEffect(u=>{f(),u(c)}),e.onMounted(()=>{f()}),(u,k)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{"aria-label":e.unref(s)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.textClassName),style:e.normalizeStyle(t.textStyle)},[e.createVNode(e.unref(r.RowValue),{value:e.unref(a)},null,8,["value"])],6),e.createElementVNode("span",{ref_key:"cursorRef",ref:l,class:e.normalizeClass(t.cursorClassName),style:e.normalizeStyle({display:"inline-block",width:"2px",height:"1em",backgroundColor:"currentColor",position:"relative",top:"0.1em",left:"0.2em",...t.cursorStyle})},null,6)]),_:1},8,["aria-label"]))}});exports.AnimateNumber=Me;exports.Cursor=nt;exports.Ticker=vt;exports.TickerItem=J;exports.Typewriter=ht;exports.useCursorIsInView=xe;exports.useCursorState=ne;exports.useItemOffset=yt;exports.useMagneticPull=ot;exports.usePointerPosition=te;
@@ -0,0 +1,98 @@
1
+ import { CSSProperties, IntrinsicElementAttributes } from 'vue';
2
+ import { AsTag, ComponentProps, ElementType } from 'motion-v';
3
+ type TypewriterOwnProps<T extends AsTag = 'span'> = {
4
+ /**
5
+ * The HTML element or component to render as (defaults to "span")
6
+ *
7
+ * @default "span"
8
+ */
9
+ as?: T;
10
+ /**
11
+ * Typing speed preset (default: "normal")
12
+ * - slow: 130ms per character
13
+ * - normal: 75ms per character
14
+ * - fast: 30ms per character
15
+ *
16
+ * @default "normal"
17
+ */
18
+ speed?: number | 'slow' | 'normal' | 'fast';
19
+ /**
20
+ * Amount of variance in timing between characters as a factor of the speed.
21
+ * Defaults to "natural" for realistic human typing patterns.
22
+ *
23
+ * @default "natural"
24
+ */
25
+ variance?: number | 'natural';
26
+ /**
27
+ * Whether the animation should be playing (default: true)
28
+ * This is useful to manually start the animation
29
+ * when the component enters the viewport.
30
+ *
31
+ * @default true
32
+ */
33
+ play?: boolean;
34
+ /**
35
+ * Custom className for the cursor element
36
+ */
37
+ cursorClassName?: string;
38
+ /**
39
+ * Custom styles for the cursor element
40
+ */
41
+ cursorStyle?: CSSProperties;
42
+ /**
43
+ * Custom className for the text element
44
+ */
45
+ textClassName?: string;
46
+ /**
47
+ * Custom styles for the text element
48
+ */
49
+ textStyle?: CSSProperties;
50
+ /**
51
+ * The duration of the cursor blink animation in seconds (default: 0.5)
52
+ *
53
+ * @default 0.5
54
+ */
55
+ cursorBlinkDuration?: number;
56
+ /**
57
+ * Callback when typing animation completes
58
+ *
59
+ * @default undefined
60
+ */
61
+ onComplete?: () => void;
62
+ /**
63
+ * Replacement method for changed content:
64
+ * - "all": Replace all text instantly
65
+ * - "type": Type from current text to new text
66
+ *
67
+ * @default "type"
68
+ */
69
+ replace?: 'all' | 'type';
70
+ /**
71
+ * When using replace: "type", how to backspace to the common prefix.
72
+ * - "character": Backspace one character at a time
73
+ * - "word": Backspace one word at a time (like option-backspace)
74
+ * - "all": Jump immediately to the common prefix
75
+ *
76
+ * @default "character"
77
+ */
78
+ backspace?: 'character' | 'word' | 'all';
79
+ /**
80
+ * The speed factor for backspacing relative to typing speed
81
+ * @default 0.2 - backspace 5x faster than typing
82
+ */
83
+ backspaceFactor?: number;
84
+ };
85
+ export type TypewriterProps<T extends AsTag = 'span'> = TypewriterOwnProps<T> & /** @vue-ignore */ (T extends ElementType ? IntrinsicElementAttributes[T] : ComponentProps<T>);
86
+ declare const _default: <T extends AsTag>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
87
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, never> & TypewriterProps<T> & Partial<{}>> & import('vue').PublicProps;
88
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
89
+ attrs: any;
90
+ slots: {};
91
+ emit: {};
92
+ }>) => import('vue').VNode & {
93
+ __ctx?: Awaited<typeof __VLS_setup>;
94
+ };
95
+ export default _default;
96
+ type __VLS_PrettifyLocal<T> = {
97
+ [K in keyof T]: T[K];
98
+ } & {};
@@ -0,0 +1 @@
1
+ export { default as Typewriter, type TypewriterProps } from './Typewriter';
@@ -0,0 +1,6 @@
1
+ export declare const TYPING_SPEEDS: {
2
+ readonly slow: 130;
3
+ readonly normal: 75;
4
+ readonly fast: 30;
5
+ };
6
+ export type TypingSpeed = keyof typeof TYPING_SPEEDS;
@@ -0,0 +1,129 @@
1
+ import { defineComponent as N, mergeDefaults as T, useSlots as _, watchEffect as C, ref as S, computed as w, onMounted as D, createBlock as B, openBlock as E, resolveDynamicComponent as F, unref as p, withCtx as V, createElementVNode as k, normalizeStyle as h, normalizeClass as b, createVNode as I } from "vue";
2
+ import { useMotionValue as M, RowValue as R, delayInMs as z, animate as P } from "motion-v";
3
+ import { getTypewriterDelay as j, getNextText as G } from "motion-plus-dom";
4
+ import { TYPING_SPEEDS as Y } from "./types.mjs";
5
+ const K = /* @__PURE__ */ N({
6
+ __name: "Typewriter",
7
+ props: /* @__PURE__ */ T({
8
+ as: {},
9
+ speed: {},
10
+ variance: {},
11
+ play: { type: Boolean },
12
+ cursorClassName: {},
13
+ cursorStyle: {},
14
+ textClassName: {},
15
+ textStyle: {},
16
+ cursorBlinkDuration: {},
17
+ onComplete: { type: Function },
18
+ replace: {},
19
+ backspace: {},
20
+ backspaceFactor: {}
21
+ }, {
22
+ as: "span",
23
+ speed: "normal",
24
+ variance: "natural",
25
+ cursorClassName: "motion-typewriter-cursor",
26
+ play: !0,
27
+ cursorBlinkDuration: 0.5,
28
+ replace: "type",
29
+ backspace: "character",
30
+ backspaceFactor: 0.2
31
+ }),
32
+ setup(g) {
33
+ const e = g, r = _();
34
+ function s() {
35
+ var l;
36
+ return (((l = r == null ? void 0 : r.default) == null ? void 0 : l.call(r)) ?? []).map((o) => typeof o.children == "string" ? o.children : "").join("");
37
+ }
38
+ let i = s();
39
+ const n = M("");
40
+ C(() => {
41
+ const t = s();
42
+ e.replace === "all" && t !== i && n.set(""), i = t;
43
+ });
44
+ const u = S();
45
+ let c = null;
46
+ const v = w(() => typeof e.speed == "number" ? e.speed : Y[e.speed]);
47
+ function m() {
48
+ u.value && (c = P(
49
+ u.value,
50
+ {
51
+ opacity: [1, 1, 0, 0]
52
+ },
53
+ {
54
+ duration: e.cursorBlinkDuration,
55
+ times: [0, 0.5, 0.5, 1],
56
+ ease: "linear",
57
+ repeat: 1 / 0,
58
+ repeatType: "reverse"
59
+ }
60
+ ));
61
+ }
62
+ let a = null;
63
+ function f() {
64
+ a == null || a(), a = null;
65
+ }
66
+ function y() {
67
+ if (!e.play) {
68
+ m(), f();
69
+ return;
70
+ }
71
+ c == null || c.cancel();
72
+ const t = s(), l = () => {
73
+ var x;
74
+ const d = G(
75
+ n.get(),
76
+ t,
77
+ e.replace,
78
+ e.backspace
79
+ );
80
+ n.set(d), d !== t ? o() : (m(), (x = e.onComplete) == null || x.call(e));
81
+ }, o = () => {
82
+ a = z(
83
+ l,
84
+ j(
85
+ t,
86
+ n.get(),
87
+ v.value,
88
+ e.variance,
89
+ e.backspaceFactor
90
+ )
91
+ );
92
+ };
93
+ a || o();
94
+ }
95
+ return C((t) => {
96
+ y(), t(f);
97
+ }), D(() => {
98
+ y();
99
+ }), (t, l) => (E(), B(F(e.as), { "aria-label": p(i) }, {
100
+ default: V(() => [
101
+ k("span", {
102
+ class: b(e.textClassName),
103
+ style: h(e.textStyle)
104
+ }, [
105
+ I(p(R), { value: p(n) }, null, 8, ["value"])
106
+ ], 6),
107
+ k("span", {
108
+ ref_key: "cursorRef",
109
+ ref: u,
110
+ class: b(e.cursorClassName),
111
+ style: h({
112
+ display: "inline-block",
113
+ width: "2px",
114
+ height: "1em",
115
+ backgroundColor: "currentColor",
116
+ position: "relative",
117
+ top: "0.1em",
118
+ left: "0.2em",
119
+ ...e.cursorStyle
120
+ })
121
+ }, null, 6)
122
+ ]),
123
+ _: 1
124
+ }, 8, ["aria-label"]));
125
+ }
126
+ });
127
+ export {
128
+ K as default
129
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Typewriter.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,8 @@
1
+ const o = {
2
+ slow: 130,
3
+ normal: 75,
4
+ fast: 30
5
+ };
6
+ export {
7
+ o as TYPING_SPEEDS
8
+ };
package/dist/es/index.mjs CHANGED
@@ -2,19 +2,21 @@ import { AnimateNumber as o } from "./components/AnimateNumber/index.mjs";
2
2
  import { Ticker as f } from "./components/Ticker/index.mjs";
3
3
  import { default as s } from "./components/Cursor/Cursor.vue.mjs";
4
4
  import { default as p } from "./components/Ticker/TickerItem.vue.mjs";
5
- import { useCursorState as i } from "./components/Cursor/hooks/use-cursor-state/index.mjs";
6
- import { useCursorIsInView as n } from "./components/Cursor/hooks/use-cursor-in-view.mjs";
7
- import { usePointerPosition as I } from "./components/Cursor/hooks/use-pointer-position.mjs";
8
- import { useMagneticPull as C } from "./components/Cursor/magnetic/use-magnetic-pull.mjs";
9
- import { useItemOffset as d } from "./components/Ticker/use-item-offset.mjs";
5
+ import { default as a } from "./components/Typewriter/Typewriter.vue.mjs";
6
+ import { useCursorState as l } from "./components/Cursor/hooks/use-cursor-state/index.mjs";
7
+ import { useCursorIsInView as I } from "./components/Cursor/hooks/use-cursor-in-view.mjs";
8
+ import { usePointerPosition as d } from "./components/Cursor/hooks/use-pointer-position.mjs";
9
+ import { useMagneticPull as P } from "./components/Cursor/magnetic/use-magnetic-pull.mjs";
10
+ import { useItemOffset as k } from "./components/Ticker/use-item-offset.mjs";
10
11
  export {
11
12
  o as AnimateNumber,
12
13
  s as Cursor,
13
14
  f as Ticker,
14
15
  p as TickerItem,
15
- n as useCursorIsInView,
16
- i as useCursorState,
17
- d as useItemOffset,
18
- C as useMagneticPull,
19
- I as usePointerPosition
16
+ a as Typewriter,
17
+ I as useCursorIsInView,
18
+ l as useCursorState,
19
+ k as useItemOffset,
20
+ P as useMagneticPull,
21
+ d as usePointerPosition
20
22
  };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './components/AnimateNumber';
2
2
  export * from './components/Cursor';
3
3
  export * from './components/Ticker';
4
+ export * from './components/Typewriter';
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "motion-plus-vue",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "Motion Plus Vue",
5
5
  "author": "",
6
6
  "license": "ISC",
@@ -25,9 +25,12 @@
25
25
  ],
26
26
  "typings": "./dist/index.d.ts",
27
27
  "peerDependencies": {
28
- "motion-v": "^1.5.0",
28
+ "motion-v": "^1.6.0",
29
29
  "vue": ">=3.0.0"
30
30
  },
31
+ "dependencies": {
32
+ "motion-plus-dom": "^1.5.0"
33
+ },
31
34
  "size-limit": [
32
35
  {
33
36
  "path": "dist/es/components/AnimateNumber/index.mjs",