troncell-vue-component 1.0.2 → 1.0.3

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/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),as=require("clsx"),rs=require("tailwind-merge"),xe=require("motion-v"),X=require("ogl"),$e=require("three"),Ce=require("@vueuse/core"),ls=require("@iconify/vue"),Vt=require("vue-router"),de=require("gsap"),F=require("gl-matrix"),cs=require("@number-flow/vue");require("@vueuse/motion");const us=require("@splinetool/runtime"),St=require("lucide-vue-next");function ds(o){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const i in o)if(i!=="default"){const s=Object.getOwnPropertyDescriptor(o,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>o[i]})}}return t.default=o,Object.freeze(t)}const nt=ds($e);function hs(){const o=e.ref(!1);function t(i){o.value=i}return{isMouseEntered:e.readonly(o),setMouseEntered:t}}const ms=e.defineComponent({__name:"CardContainer",props:{class:String,containerClass:String},setup(o){const t=e.ref(null),i=hs();e.provide("use3DCardMouseState",i);function s(l){if(!t.value)return;const{left:a,top:c,width:u,height:d}=t.value.getBoundingClientRect(),m=(l.clientX-a-u/2)/25,h=(l.clientY-c-d/2)/25;t.value.style.transform=`rotateY(${m}deg) rotateX(${h}deg)`}function n(){i.setMouseEntered(!0)}function r(){t.value&&(i.setMouseEntered(!1),t.value.style.transform="rotateY(0deg) rotateX(0deg)")}return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-center p-2",o.containerClass]),style:{perspective:"1000px"}},[e.createElementVNode("div",{ref_key:"containerRef",ref:t,class:e.normalizeClass(["relative flex items-center justify-center transition-all duration-200 ease-linear",l.$props.class]),style:{"transform-style":"preserve-3d"},onMouseenter:n,onMousemove:s,onMouseleave:r},[e.renderSlot(l.$slots,"default")],34)],2))}});function J(...o){return rs.twMerge(as.clsx(o))}const fs=e.defineComponent({__name:"CardBody",props:{class:String},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("h-96 w-96",t.$props.class)),style:{"transform-style":"preserve-3d"}},[e.renderSlot(t.$slots,"default")],2))}}),Ze=e.defineComponent({__name:"Cardltem",props:{as:{type:String,default:"div"},class:String,translateX:{type:[Number,String],default:0},translateY:{type:[Number,String],default:0},translateZ:{type:[Number,String],default:0},rotateX:{type:[Number,String],default:0},rotateY:{type:[Number,String],default:0},rotateZ:{type:[Number,String],default:0}},setup(o){const t=o,i=e.ref(null),s=e.inject("use3DCardMouseState");function n(r){i.value&&(r?i.value.style.transform=`translateX(${t.translateX}px) translateY(${t.translateY}px) translateZ(${t.translateZ}px) rotateX(${t.rotateX}deg) rotateY(${t.rotateY}deg) rotateZ(${t.rotateZ}deg)`:i.value.style.transform="translateX(0px) translateY(0px) translateZ(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg)")}return e.watch(s.isMouseEntered,n,{immediate:!0}),(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.as),{ref_key:"refElement",ref:i,class:e.normalizeClass(e.unref(J)("w-fit transition duration-500 ease-in-out",r.$props.class))},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class"]))}}),ps=["src"],vs=e.defineComponent({__name:"index",props:{title:{type:String,default:void 0},content:{type:String,default:void 0},imageSrc:{type:String,default:void 0},buttons:{type:Array,default:()=>[]},classList:{type:Object,default:()=>({})}},setup(o){const t=o,i=e.ref(),s=e.ref(),n=()=>{console.log(s.value.event)};e.onMounted(()=>{i.value=t.buttons.find(l=>l.buttonType=="a"),s.value=t.buttons.find(l=>l.buttonType=="button")});const r=e.computed(()=>{const l=t.classList?.Location||{};return[l.position,l.width,l.height,l.left,l.top].filter(Boolean)});return(l,a)=>(e.openBlock(),e.createBlock(e.unref(ms),null,{default:e.withCtx(()=>[e.createVNode(e.unref(fs),{class:e.normalizeClass([o.classList.overallClass,r.value])},{default:e.withCtx(()=>[e.createVNode(e.unref(Ze),{"translate-z":50,class:"text-xl font-bold text-neutral-600 dark:text-white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.title),1)]),_:1}),e.createVNode(e.unref(Ze),{as:"p","translate-z":"60",class:"mt-2 max-w-sm text-sm text-neutral-500 dark:text-neutral-300"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.content),1)]),_:1}),e.createVNode(e.unref(Ze),{"translate-z":100,class:e.normalizeClass(o.classList.imgBoxClass)},{default:e.withCtx(()=>[e.createElementVNode("img",{src:o.imageSrc,height:"1000",width:"1000",class:e.normalizeClass(o.classList.imgClass),alt:"thumbnail"},null,10,ps)]),_:1},8,["class"]),e.createElementVNode("div",{class:e.normalizeClass(o.classList.buttonBoxClass)},[e.createVNode(e.unref(Ze),{"translate-z":20,as:i.value?.buttonType,href:i.value?.url,target:"__blank",class:"rounded-xl px-4 py-2 text-xs font-normal dark:text-white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value?.title)+" → ",1)]),_:1},8,["as","href"]),e.createVNode(e.unref(Ze),{"translate-z":20,as:s.value?.buttonType,onClick:n,class:"rounded-xl bg-black px-4 py-2 text-xs font-bold text-white dark:bg-white dark:text-black"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value?.title),1)]),_:1},8,["as"])],2)]),_:1},8,["class"])]),_:1}))}}),gs=["src","alt"],xs=e.defineComponent({__name:"AnimatedTestimonials",props:{testimonials:{default:()=>[]},autoplay:{type:Boolean,default:()=>!1},duration:{default:5e3},classList:{default:()=>({})}},setup(o){const t=o,i=e.ref(0),s=e.ref(),n=e.computed(()=>t.testimonials[i.value].quote.split(/<\/p>\s*<p>/).map(u=>u.replace(/<\/?p>/g,"")));e.onMounted(()=>{t.autoplay&&(s.value=setInterval(r,t.duration))}),e.onUnmounted(()=>{s.value||clearInterval(s.value)});function r(){i.value=(i.value+1)%t.testimonials.length}function l(c){return i.value===c}function a(){return Math.floor(Math.random()*21)-10}return(c,u)=>{const d=e.resolveComponent("AnimatePresence");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"mx-auto max-w-sm px-4 py-20 font-sans antialiased lg:px-12 md:max-w-4xl md:px-8")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.gridClass||"relative grid grid-cols-1 gap-20 md:grid-cols-2")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.containerClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.imageContainerClass||"relative h-80 w-full")},[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.testimonials,(m,h)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{key:m.image,as:"div",initial:{opacity:0,scale:.9,z:-100,rotate:a()},animate:{opacity:l(h)?1:.7,scale:l(h)?1:.95,z:l(h)?0:-100,rotate:l(h)?0:a(),zIndex:l(h)?40:o.testimonials.length+2-h,y:l(h)?[0,-80,0]:0},exit:{opacity:0,scale:.9,z:100,rotate:a()},transition:{duration:.4,ease:"easeInOut"},class:"absolute inset-0 origin-bottom"},{default:e.withCtx(()=>[e.createElementVNode("img",{src:m.image,alt:m.name,draggable:!1,class:e.normalizeClass(o.classList?.imageClass||"size-full rounded-3xl object-cover object-center")},null,10,gs)]),_:2},1032,["initial","animate","exit"]))),128))]),_:1})],2)],2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.contentClass||"flex flex-col justify-between py-4")},[(e.openBlock(),e.createBlock(e.unref(xe.Motion),{style:{"text-align":"left"},key:i.value,as:"div",initial:{y:20,opacity:0},animate:{y:0,opacity:1},exit:{y:-20,opacity:0},transition:{duration:.2,ease:"easeInOut"}},{default:e.withCtx(()=>[e.createElementVNode("h3",{class:e.normalizeClass(o.classList?.nameClass||"text-2xl font-bold text-black dark:text-white")},e.toDisplayString(t.testimonials[i.value].name),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.designationClass||"text-sm text-gray-500 dark:text-neutral-500")},e.toDisplayString(t.testimonials[i.value].designation),3),e.createVNode(e.unref(xe.Motion),{as:"p",class:e.normalizeClass(o.classList?.quoteClass||"mt-8 text-lg text-gray-500 dark:text-neutral-300")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(m,h)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{style:{"margin-bottom":"10px",display:"block"},key:h,as:"span",initial:{filter:"blur(10px)",opacity:0,y:5},animate:{filter:"blur(0px)",opacity:1,y:0},transition:{duration:.2,ease:"easeInOut",delay:.02*h},class:"inline-block"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1032,["transition"]))),128))]),_:1},8,["class"])]),_:1}))],2)],2)],2)}}}),ys=["src"],ws=e.defineComponent({__name:"index",props:{title:{},titleClass:{},testimonials:{default:()=>[{quote:"The attention to detail and innovative features have completely transformed our workflow. This is exactly what we've been looking for.",name:"Sarah Chen",designation:"Product Manager at TechFlow",image:"https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?q=80&w=3560&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"Implementation was seamless and the results exceeded our expectations. The platform's flexibility is remarkable.",name:"Michael Rodriguez",designation:"CTO at InnovateSphere",image:"https://images.unsplash.com/photo-1438761681033-6461ffad8d80?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"This solution has significantly improved our team's productivity. The intuitive interface makes complex tasks simple.",name:"Emily Watson",designation:"Operations Director at CloudScale",image:"https://images.unsplash.com/photo-1623582854588-d60de57fa33f?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"Outstanding support and robust features. It's rare to find a product that delivers on all its promises.",name:"James Kim",designation:"Engineering Lead at DataPro",image:"https://images.unsplash.com/photo-1636041293178-808a6762ab39?q=80&w=3464&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"The scalability and performance have been game-changing for our organization. Highly recommend to any growing business.",name:"Lisa Thompson",designation:"VP of Technology at FutureNet",image:"https://images.unsplash.com/photo-1624561172888-ac93c696e10c?q=80&w=2592&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"}]},autoplay:{type:Boolean,default:!0},duration:{default:5e3},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>{const r=e.resolveComponent("ClientOnly");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("div",{class:e.normalizeClass(o.titleClass)},[e.createElementVNode("img",{src:o.title,alt:""},null,8,ys)],2),e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(xs,{testimonials:o.testimonials,autoplay:o.autoplay,duration:o.duration,"class-list":o.classList},null,8,["testimonials","autoplay","duration","class-list"])]),_:1})],2)}}}),bs=`#version 300 es
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),as=require("clsx"),rs=require("tailwind-merge"),xe=require("motion-v"),G=require("ogl"),$e=require("three"),Ce=require("@vueuse/core"),ls=require("@iconify/vue"),Vt=require("vue-router"),de=require("gsap"),F=require("gl-matrix"),cs=require("@number-flow/vue");require("@vueuse/motion");const us=require("@splinetool/runtime"),St=require("lucide-vue-next");function ds(o){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const i in o)if(i!=="default"){const s=Object.getOwnPropertyDescriptor(o,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>o[i]})}}return t.default=o,Object.freeze(t)}const nt=ds($e);function hs(){const o=e.ref(!1);function t(i){o.value=i}return{isMouseEntered:e.readonly(o),setMouseEntered:t}}const ms=e.defineComponent({__name:"CardContainer",props:{class:String,containerClass:String},setup(o){const t=e.ref(null),i=hs();e.provide("use3DCardMouseState",i);function s(l){if(!t.value)return;const{left:a,top:c,width:u,height:h}=t.value.getBoundingClientRect(),f=(l.clientX-a-u/2)/25,d=(l.clientY-c-h/2)/25;t.value.style.transform=`rotateY(${f}deg) rotateX(${d}deg)`}function n(){i.setMouseEntered(!0)}function r(){t.value&&(i.setMouseEntered(!1),t.value.style.transform="rotateY(0deg) rotateX(0deg)")}return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-center p-2",o.containerClass]),style:{perspective:"1000px"}},[e.createElementVNode("div",{ref_key:"containerRef",ref:t,class:e.normalizeClass(["relative flex items-center justify-center transition-all duration-200 ease-linear",l.$props.class]),style:{"transform-style":"preserve-3d"},onMouseenter:n,onMousemove:s,onMouseleave:r},[e.renderSlot(l.$slots,"default")],34)],2))}});function J(...o){return rs.twMerge(as.clsx(o))}const fs=e.defineComponent({__name:"CardBody",props:{class:String},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("h-96 w-96",t.$props.class)),style:{"transform-style":"preserve-3d"}},[e.renderSlot(t.$slots,"default")],2))}}),Ze=e.defineComponent({__name:"Cardltem",props:{as:{type:String,default:"div"},class:String,translateX:{type:[Number,String],default:0},translateY:{type:[Number,String],default:0},translateZ:{type:[Number,String],default:0},rotateX:{type:[Number,String],default:0},rotateY:{type:[Number,String],default:0},rotateZ:{type:[Number,String],default:0}},setup(o){const t=o,i=e.ref(null),s=e.inject("use3DCardMouseState");function n(r){i.value&&(r?i.value.style.transform=`translateX(${t.translateX}px) translateY(${t.translateY}px) translateZ(${t.translateZ}px) rotateX(${t.rotateX}deg) rotateY(${t.rotateY}deg) rotateZ(${t.rotateZ}deg)`:i.value.style.transform="translateX(0px) translateY(0px) translateZ(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg)")}return e.watch(s.isMouseEntered,n,{immediate:!0}),(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.as),{ref_key:"refElement",ref:i,class:e.normalizeClass(e.unref(J)("w-fit transition duration-500 ease-in-out",r.$props.class))},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["class"]))}}),ps=["src"],gs=e.defineComponent({__name:"index",props:{title:{type:String,default:void 0},content:{type:String,default:void 0},imageSrc:{type:String,default:void 0},buttons:{type:Array,default:()=>[]},classList:{type:Object,default:()=>({})}},setup(o){const t=o,i=e.ref(),s=e.ref(),n=()=>{console.log(s.value.event)};e.onMounted(()=>{i.value=t.buttons.find(l=>l.buttonType=="a"),s.value=t.buttons.find(l=>l.buttonType=="button")});const r=e.computed(()=>{const l=t.classList?.Location||{};return[l.position,l.width,l.height,l.left,l.top].filter(Boolean)});return(l,a)=>(e.openBlock(),e.createBlock(e.unref(ms),null,{default:e.withCtx(()=>[e.createVNode(e.unref(fs),{class:e.normalizeClass([o.classList.overallClass,r.value])},{default:e.withCtx(()=>[e.createVNode(e.unref(Ze),{"translate-z":50,class:"text-xl font-bold text-neutral-600 dark:text-white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.title),1)]),_:1}),e.createVNode(e.unref(Ze),{as:"p","translate-z":"60",class:"mt-2 max-w-sm text-sm text-neutral-500 dark:text-neutral-300"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.content),1)]),_:1}),e.createVNode(e.unref(Ze),{"translate-z":100,class:e.normalizeClass(o.classList.imgBoxClass)},{default:e.withCtx(()=>[e.createElementVNode("img",{src:o.imageSrc,height:"1000",width:"1000",class:e.normalizeClass(o.classList.imgClass),alt:"thumbnail"},null,10,ps)]),_:1},8,["class"]),e.createElementVNode("div",{class:e.normalizeClass(o.classList.buttonBoxClass)},[e.createVNode(e.unref(Ze),{"translate-z":20,as:i.value?.buttonType,href:i.value?.url,target:"__blank",class:"rounded-xl px-4 py-2 text-xs font-normal dark:text-white"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value?.title)+" → ",1)]),_:1},8,["as","href"]),e.createVNode(e.unref(Ze),{"translate-z":20,as:s.value?.buttonType,onClick:n,class:"rounded-xl bg-black px-4 py-2 text-xs font-bold text-white dark:bg-white dark:text-black"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value?.title),1)]),_:1},8,["as"])],2)]),_:1},8,["class"])]),_:1}))}}),vs=["src","alt"],xs=e.defineComponent({__name:"AnimatedTestimonials",props:{testimonials:{default:()=>[]},autoplay:{type:Boolean,default:()=>!1},duration:{default:5e3},classList:{default:()=>({})}},setup(o){const t=o,i=e.ref(0),s=e.ref(),n=e.computed(()=>t.testimonials[i.value].quote.split(/<\/p>\s*<p>/).map(u=>u.replace(/<\/?p>/g,"")));e.onMounted(()=>{t.autoplay&&(s.value=setInterval(r,t.duration))}),e.onUnmounted(()=>{s.value||clearInterval(s.value)});function r(){i.value=(i.value+1)%t.testimonials.length}function l(c){return i.value===c}function a(){return Math.floor(Math.random()*21)-10}return(c,u)=>{const h=e.resolveComponent("AnimatePresence");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"mx-auto max-w-sm px-4 py-20 font-sans antialiased lg:px-12 md:max-w-4xl md:px-8")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.gridClass||"relative grid grid-cols-1 gap-20 md:grid-cols-2")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.containerClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.imageContainerClass||"relative h-80 w-full")},[e.createVNode(h,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.testimonials,(f,d)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{key:f.image,as:"div",initial:{opacity:0,scale:.9,z:-100,rotate:a()},animate:{opacity:l(d)?1:.7,scale:l(d)?1:.95,z:l(d)?0:-100,rotate:l(d)?0:a(),zIndex:l(d)?40:o.testimonials.length+2-d,y:l(d)?[0,-80,0]:0},exit:{opacity:0,scale:.9,z:100,rotate:a()},transition:{duration:.4,ease:"easeInOut"},class:"absolute inset-0 origin-bottom"},{default:e.withCtx(()=>[e.createElementVNode("img",{src:f.image,alt:f.name,draggable:!1,class:e.normalizeClass(o.classList?.imageClass||"size-full rounded-3xl object-cover object-center")},null,10,vs)]),_:2},1032,["initial","animate","exit"]))),128))]),_:1})],2)],2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.contentClass||"flex flex-col justify-between py-4")},[(e.openBlock(),e.createBlock(e.unref(xe.Motion),{style:{"text-align":"left"},key:i.value,as:"div",initial:{y:20,opacity:0},animate:{y:0,opacity:1},exit:{y:-20,opacity:0},transition:{duration:.2,ease:"easeInOut"}},{default:e.withCtx(()=>[e.createElementVNode("h3",{class:e.normalizeClass(o.classList?.nameClass||"text-2xl font-bold text-black dark:text-white")},e.toDisplayString(t.testimonials[i.value].name),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.designationClass||"text-sm text-gray-500 dark:text-neutral-500")},e.toDisplayString(t.testimonials[i.value].designation),3),e.createVNode(e.unref(xe.Motion),{as:"p",class:e.normalizeClass(o.classList?.quoteClass||"mt-8 text-lg text-gray-500 dark:text-neutral-300")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(f,d)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{style:{"margin-bottom":"10px",display:"block"},key:d,as:"span",initial:{filter:"blur(10px)",opacity:0,y:5},animate:{filter:"blur(0px)",opacity:1,y:0},transition:{duration:.2,ease:"easeInOut",delay:.02*d},class:"inline-block"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f),1)]),_:2},1032,["transition"]))),128))]),_:1},8,["class"])]),_:1}))],2)],2)],2)}}}),ys=["src"],ws=e.defineComponent({__name:"index",props:{title:{},titleClass:{},testimonials:{default:()=>[{quote:"The attention to detail and innovative features have completely transformed our workflow. This is exactly what we've been looking for.",name:"Sarah Chen",designation:"Product Manager at TechFlow",image:"https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?q=80&w=3560&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"Implementation was seamless and the results exceeded our expectations. The platform's flexibility is remarkable.",name:"Michael Rodriguez",designation:"CTO at InnovateSphere",image:"https://images.unsplash.com/photo-1438761681033-6461ffad8d80?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"This solution has significantly improved our team's productivity. The intuitive interface makes complex tasks simple.",name:"Emily Watson",designation:"Operations Director at CloudScale",image:"https://images.unsplash.com/photo-1623582854588-d60de57fa33f?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"Outstanding support and robust features. It's rare to find a product that delivers on all its promises.",name:"James Kim",designation:"Engineering Lead at DataPro",image:"https://images.unsplash.com/photo-1636041293178-808a6762ab39?q=80&w=3464&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{quote:"The scalability and performance have been game-changing for our organization. Highly recommend to any growing business.",name:"Lisa Thompson",designation:"VP of Technology at FutureNet",image:"https://images.unsplash.com/photo-1624561172888-ac93c696e10c?q=80&w=2592&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"}]},autoplay:{type:Boolean,default:!0},duration:{default:5e3},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>{const r=e.resolveComponent("ClientOnly");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("div",{class:e.normalizeClass(o.titleClass)},[e.createElementVNode("img",{src:o.title,alt:""},null,8,ys)],2),e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(xs,{testimonials:o.testimonials,autoplay:o.autoplay,duration:o.duration,"class-list":o.classList},null,8,["testimonials","autoplay","duration","class-list"])]),_:1})],2)}}}),bs=`#version 300 es
2
2
  in vec2 position;
3
3
  void main() {
4
4
  gl_Position = vec4(position, 0.0, 1.0);
@@ -91,7 +91,7 @@ void main() {
91
91
 
92
92
  fragColor = vec4(auroraColor * finalAlpha, finalAlpha);
93
93
  }
94
- `,Es=e.defineComponent({__name:"Aurora",props:{colorStops:{default:()=>["#7cff67","#171D22","#7cff67"]},amplitude:{default:1},blend:{default:.5},time:{},speed:{default:1},intensity:{default:1},className:{default:""},style:{default:()=>({})}},setup(o){const t=o,i=e.useTemplateRef("containerRef");let s=null,n=0;const r=()=>{const a=i.value;if(!a)return;s=new X.Renderer({alpha:!0,premultipliedAlpha:!0,antialias:!0});const c=s.gl;c.clearColor(0,0,0,0),c.enable(c.BLEND),c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.canvas.style.backgroundColor="transparent";let u;const d=()=>{if(!a)return;const v=a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,y=a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,p=Math.max(v,300),E=Math.max(y,300);s.setSize(p,E),u&&(u.uniforms.uResolution.value=[p,E])};window.addEventListener("resize",d);const m=new X.Triangle(c);m.attributes.uv&&delete m.attributes.uv;const h=t.colorStops.map(v=>{const y=new X.Color(v);return[y.r,y.g,y.b]});u=new X.Program(c,{vertex:bs,fragment:Cs,uniforms:{uTime:{value:0},uAmplitude:{value:t.amplitude},uColorStops:{value:h},uResolution:{value:[Math.max(a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,300),Math.max(a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,300)]},uBlend:{value:t.blend},uIntensity:{value:t.intensity}}});const f=new X.Mesh(c,{geometry:m,program:u});a.appendChild(c.canvas),c.canvas.style.width="100%",c.canvas.style.height="100%",c.canvas.style.display="block",c.canvas.style.position="absolute",c.canvas.style.top="0",c.canvas.style.left="0";const x=v=>{n=requestAnimationFrame(x);const y=t.time??v*.01,p=t.speed??1;if(u){u.uniforms.uTime.value=y*p*.1,u.uniforms.uAmplitude.value=t.amplitude??1,u.uniforms.uBlend.value=t.blend??.5,u.uniforms.uIntensity.value=t.intensity??1;const E=t.colorStops??["#27FF64","#7cff67","#27FF64"];u.uniforms.uColorStops.value=E.map(k=>{const b=new X.Color(k);return[b.r,b.g,b.b]}),s.render({scene:f})}};return n=requestAnimationFrame(x),d(),()=>{cancelAnimationFrame(n),window.removeEventListener("resize",d),a&&c.canvas.parentNode===a&&a.removeChild(c.canvas),c.getExtension("WEBGL_lose_context")?.loseContext()}},l=()=>{if(n&&cancelAnimationFrame(n),s){const a=s.gl,c=i.value;c&&a.canvas.parentNode===c&&c.removeChild(a.canvas),a.getExtension("WEBGL_lose_context")?.loseContext()}s=null};return e.onMounted(()=>{r()}),e.onUnmounted(()=>{l()}),e.watch(()=>[t.amplitude,t.intensity],()=>{l(),r()}),(a,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:e.normalizeClass([o.className,"relative"]),style:e.normalizeStyle(o.style)},null,6))}}),me=(o,t)=>{const i=o.__vccOpts||o;for(const[s,n]of t)i[s]=n;return i},ks=me(Es,[["__scopeId","data-v-46144515"]]),Ss=e.defineComponent({__name:"index",props:{colorStops:{default:()=>["#7cff67","#171D22","#7cff67"]},amplitude:{default:1},blend:{default:.5},speed:{default:1},intensity:{default:1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList?.Location,r=["aurora-container"];return n?.width&&r.push(n.width),n?.height&&r.push(n.height),n?.position&&r.push(n.position),n?.left&&r.push(n.left),n?.top&&r.push(n.top),r.join(" ")}),s=e.computed(()=>{const n=t.classList?.Location,r={};return n?.position&&n.position==="absolute"?r.position="absolute":n?.position||(r.position="relative"),r});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value),style:e.normalizeStyle(s.value)},[e.createVNode(ks,{"color-stops":o.colorStops,amplitude:o.amplitude,blend:o.blend,speed:o.speed,intensity:o.intensity,class:e.normalizeClass(o.classList?.overallClass||"w-full h-full")},null,8,["color-stops","amplitude","blend","speed","intensity","class"])],6))}}),_s=me(Ss,[["__scopeId","data-v-f9a0f228"]]),Ts=e.defineComponent({__name:"BendingGallery",props:{items:{},bend:{default:3},textColor:{default:"#ffffff"},borderRadius:{default:.05},font:{default:"bold 30px DM Sans"}},setup(o){const t=o,i=e.ref(null);let s=null;function n(h,f){let x;return function(...v){window.clearTimeout(x),x=window.setTimeout(()=>h.apply(this,v),f)}}function r(h,f,x){return h+(f-h)*x}function l(h){const f=Object.getPrototypeOf(h);Object.getOwnPropertyNames(f).forEach(x=>{x!=="constructor"&&typeof h[x]=="function"&&(h[x]=h[x].bind(h))})}function a(h){const f=h.match(/(\d+)px/);return f?Number.parseInt(f[1],10):30}function c(h,f,x="bold 30px monospace",v="black"){const y=document.createElement("canvas"),p=y.getContext("2d");if(!p)throw new Error("Could not get 2d context");p.font=x;const E=p.measureText(f),k=Math.ceil(E.width),b=a(x),L=Math.ceil(b*1.2);y.width=k+20,y.height=L+20,p.font=x,p.fillStyle=v,p.textBaseline="middle",p.textAlign="center",p.clearRect(0,0,y.width,y.height),p.fillText(f,y.width/2,y.height/2);const U=new X.Texture(h,{generateMipmaps:!1});return U.image=y,{texture:U,width:y.width,height:y.height}}class u{gl;plane;renderer;text;textColor;font;mesh;constructor({gl:f,plane:x,renderer:v,text:y,textColor:p="#545050",font:E="30px sans-serif"}){l(this),this.gl=f,this.plane=x,this.renderer=v,this.text=y,this.textColor=p,this.font=E,this.createMesh()}createMesh(){const{texture:f,width:x,height:v}=c(this.gl,this.text,this.font,this.textColor),y=new X.Plane(this.gl),p=new X.Program(this.gl,{vertex:`
94
+ `,Es=e.defineComponent({__name:"Aurora",props:{colorStops:{default:()=>["#7cff67","#171D22","#7cff67"]},amplitude:{default:1},blend:{default:.5},time:{},speed:{default:1},intensity:{default:1},className:{default:""},style:{default:()=>({})}},setup(o){const t=o,i=e.useTemplateRef("containerRef");let s=null,n=0;const r=()=>{const a=i.value;if(!a)return;s=new G.Renderer({alpha:!0,premultipliedAlpha:!0,antialias:!0});const c=s.gl;c.clearColor(0,0,0,0),c.enable(c.BLEND),c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.canvas.style.backgroundColor="transparent";let u;const h=()=>{if(!a)return;const g=a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,x=a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,p=Math.max(g,300),k=Math.max(x,300);s.setSize(p,k),u&&(u.uniforms.uResolution.value=[p,k])};window.addEventListener("resize",h);const f=new G.Triangle(c);f.attributes.uv&&delete f.attributes.uv;const d=t.colorStops.map(g=>{const x=new G.Color(g);return[x.r,x.g,x.b]});u=new G.Program(c,{vertex:bs,fragment:Cs,uniforms:{uTime:{value:0},uAmplitude:{value:t.amplitude},uColorStops:{value:d},uResolution:{value:[Math.max(a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,300),Math.max(a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,300)]},uBlend:{value:t.blend},uIntensity:{value:t.intensity}}});const m=new G.Mesh(c,{geometry:f,program:u});a.appendChild(c.canvas),c.canvas.style.width="100%",c.canvas.style.height="100%",c.canvas.style.display="block",c.canvas.style.position="absolute",c.canvas.style.top="0",c.canvas.style.left="0";const v=g=>{n=requestAnimationFrame(v);const x=t.time??g*.01,p=t.speed??1;if(u){u.uniforms.uTime.value=x*p*.1,u.uniforms.uAmplitude.value=t.amplitude??1,u.uniforms.uBlend.value=t.blend??.5,u.uniforms.uIntensity.value=t.intensity??1;const k=t.colorStops??["#27FF64","#7cff67","#27FF64"];u.uniforms.uColorStops.value=k.map(E=>{const w=new G.Color(E);return[w.r,w.g,w.b]}),s.render({scene:m})}};return n=requestAnimationFrame(v),h(),()=>{cancelAnimationFrame(n),window.removeEventListener("resize",h),a&&c.canvas.parentNode===a&&a.removeChild(c.canvas),c.getExtension("WEBGL_lose_context")?.loseContext()}},l=()=>{if(n&&cancelAnimationFrame(n),s){const a=s.gl,c=i.value;c&&a.canvas.parentNode===c&&c.removeChild(a.canvas),a.getExtension("WEBGL_lose_context")?.loseContext()}s=null};return e.onMounted(()=>{r()}),e.onUnmounted(()=>{l()}),e.watch(()=>[t.amplitude,t.intensity],()=>{l(),r()}),(a,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:e.normalizeClass([o.className,"relative"]),style:e.normalizeStyle(o.style)},null,6))}}),me=(o,t)=>{const i=o.__vccOpts||o;for(const[s,n]of t)i[s]=n;return i},ks=me(Es,[["__scopeId","data-v-46144515"]]),Ss=e.defineComponent({__name:"index",props:{colorStops:{default:()=>["#7cff67","#171D22","#7cff67"]},amplitude:{default:1},blend:{default:.5},speed:{default:1},intensity:{default:1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList?.Location,r=["aurora-container"];return n?.width&&r.push(n.width),n?.height&&r.push(n.height),n?.position&&r.push(n.position),n?.left&&r.push(n.left),n?.top&&r.push(n.top),r.join(" ")}),s=e.computed(()=>{const n=t.classList?.Location,r={};return n?.position&&n.position==="absolute"?r.position="absolute":n?.position||(r.position="relative"),r});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value),style:e.normalizeStyle(s.value)},[e.createVNode(ks,{"color-stops":o.colorStops,amplitude:o.amplitude,blend:o.blend,speed:o.speed,intensity:o.intensity,class:e.normalizeClass(o.classList?.overallClass||"w-full h-full")},null,8,["color-stops","amplitude","blend","speed","intensity","class"])],6))}}),Ts=me(Ss,[["__scopeId","data-v-f9a0f228"]]),Ms=e.defineComponent({__name:"BendingGallery",props:{items:{},bend:{default:3},textColor:{default:"#ffffff"},borderRadius:{default:.05},font:{default:"bold 30px DM Sans"}},setup(o){const t=o,i=e.ref(null);let s=null;function n(d,m){let v;return function(...g){window.clearTimeout(v),v=window.setTimeout(()=>d.apply(this,g),m)}}function r(d,m,v){return d+(m-d)*v}function l(d){const m=Object.getPrototypeOf(d);Object.getOwnPropertyNames(m).forEach(v=>{v!=="constructor"&&typeof d[v]=="function"&&(d[v]=d[v].bind(d))})}function a(d){const m=d.match(/(\d+)px/);return m?Number.parseInt(m[1],10):30}function c(d,m,v="bold 30px monospace",g="black"){const x=document.createElement("canvas"),p=x.getContext("2d");if(!p)throw new Error("Could not get 2d context");p.font=v;const k=p.measureText(m),E=Math.ceil(k.width),w=a(v),D=Math.ceil(w*1.2);x.width=E+20,x.height=D+20,p.font=v,p.fillStyle=g,p.textBaseline="middle",p.textAlign="center",p.clearRect(0,0,x.width,x.height),p.fillText(m,x.width/2,x.height/2);const O=new G.Texture(d,{generateMipmaps:!1});return O.image=x,{texture:O,width:x.width,height:x.height}}class u{gl;plane;renderer;text;textColor;font;mesh;constructor({gl:m,plane:v,renderer:g,text:x,textColor:p="#545050",font:k="30px sans-serif"}){l(this),this.gl=m,this.plane=v,this.renderer=g,this.text=x,this.textColor=p,this.font=k,this.createMesh()}createMesh(){const{texture:m,width:v,height:g}=c(this.gl,this.text,this.font,this.textColor),x=new G.Plane(this.gl),p=new G.Program(this.gl,{vertex:`
95
95
  attribute vec3 position;
96
96
  attribute vec2 uv;
97
97
  uniform mat4 modelViewMatrix;
@@ -110,7 +110,7 @@ void main() {
110
110
  if (color.a < 0.1) discard;
111
111
  gl_FragColor = color;
112
112
  }
113
- `,uniforms:{tMap:{value:f}},transparent:!0});this.mesh=new X.Mesh(this.gl,{geometry:y,program:p});const E=x/v,k=this.plane.scale.y*.15,b=k*E;this.mesh.scale.set(b,k,1),this.mesh.position.y=-this.plane.scale.y*.5-k*.5-.05,this.mesh.setParent(this.plane)}}class d{extra=0;geometry;gl;image;index;length;renderer;scene;screen;text;viewport;bend;textColor;borderRadius;font;program;plane;title;scale;padding;width;widthTotal;x;speed=0;isBefore=!1;isAfter=!1;constructor({geometry:f,gl:x,image:v,index:y,length:p,renderer:E,scene:k,screen:b,text:L,viewport:U,bend:H,textColor:S,borderRadius:C=0,font:_}){this.geometry=f,this.gl=x,this.image=v,this.index=y,this.length=p,this.renderer=E,this.scene=k,this.screen=b,this.text=L,this.viewport=U,this.bend=H,this.textColor=S,this.borderRadius=C,this.font=_,this.createShader(),this.createMesh(),this.createTitle(),this.onResize()}createShader(){const f=new X.Texture(this.gl,{generateMipmaps:!1});this.program=new X.Program(this.gl,{depthTest:!1,depthWrite:!1,vertex:`
113
+ `,uniforms:{tMap:{value:m}},transparent:!0});this.mesh=new G.Mesh(this.gl,{geometry:x,program:p});const k=v/g,E=this.plane.scale.y*.15,w=E*k;this.mesh.scale.set(w,E,1),this.mesh.position.y=-this.plane.scale.y*.5-E*.5-.05,this.mesh.setParent(this.plane)}}class h{extra=0;geometry;gl;image;index;length;renderer;scene;screen;text;viewport;bend;textColor;borderRadius;font;program;plane;title;scale;padding;width;widthTotal;x;speed=0;isBefore=!1;isAfter=!1;constructor({geometry:m,gl:v,image:g,index:x,length:p,renderer:k,scene:E,screen:w,text:D,viewport:O,bend:H,textColor:S,borderRadius:C=0,font:T}){this.geometry=m,this.gl=v,this.image=g,this.index=x,this.length=p,this.renderer=k,this.scene=E,this.screen=w,this.text=D,this.viewport=O,this.bend=H,this.textColor=S,this.borderRadius=C,this.font=T,this.createShader(),this.createMesh(),this.createTitle(),this.onResize()}createShader(){const m=new G.Texture(this.gl,{generateMipmaps:!1});this.program=new G.Program(this.gl,{depthTest:!1,depthWrite:!1,vertex:`
114
114
  precision highp float;
115
115
  attribute vec3 position;
116
116
  attribute vec2 uv;
@@ -158,8 +158,69 @@ void main() {
158
158
 
159
159
  gl_FragColor = vec4(color.rgb, 1.0);
160
160
  }
161
- `,uniforms:{tMap:{value:f},uPlaneSizes:{value:[0,0]},uImageSizes:{value:[0,0]},uSpeed:{value:0},uTime:{value:100*Math.random()},uBorderRadius:{value:this.borderRadius}},transparent:!0});const x=new Image;x.crossOrigin="anonymous",x.src=this.image,x.onload=()=>{f.image=x,this.program.uniforms.uImageSizes.value=[x.naturalWidth,x.naturalHeight]}}createMesh(){this.plane=new X.Mesh(this.gl,{geometry:this.geometry,program:this.program}),this.plane.setParent(this.scene)}createTitle(){this.title=new u({gl:this.gl,plane:this.plane,renderer:this.renderer,text:this.text,textColor:this.textColor,font:this.font})}update(f,x){this.plane.position.x=this.x-f.current-this.extra;const v=this.plane.position.x,y=this.viewport.width/2;if(this.bend===0)this.plane.position.y=0,this.plane.rotation.z=0;else{const k=Math.abs(this.bend),b=(y*y+k*k)/(2*k),L=Math.min(Math.abs(v),y),U=b-Math.sqrt(b*b-L*L);this.bend>0?(this.plane.position.y=-U,this.plane.rotation.z=-Math.sign(v)*Math.asin(L/b)):(this.plane.position.y=U,this.plane.rotation.z=Math.sign(v)*Math.asin(L/b))}this.speed=f.current-f.last,this.program.uniforms.uTime.value+=.04,this.program.uniforms.uSpeed.value=this.speed;const p=this.plane.scale.x/2,E=this.viewport.width/2;this.isBefore=this.plane.position.x+p<-E,this.isAfter=this.plane.position.x-p>E,x==="right"&&this.isBefore&&(this.extra-=this.widthTotal,this.isBefore=this.isAfter=!1),x==="left"&&this.isAfter&&(this.extra+=this.widthTotal,this.isBefore=this.isAfter=!1)}onResize({screen:f,viewport:x}={}){f&&(this.screen=f),x&&(this.viewport=x,this.plane.program.uniforms.uViewportSizes&&(this.plane.program.uniforms.uViewportSizes.value=[this.viewport.width,this.viewport.height])),this.scale=this.screen.height/1500,this.plane.scale.y=this.viewport.height*(900*this.scale)/this.screen.height,this.plane.scale.x=this.viewport.width*(700*this.scale)/this.screen.width,this.plane.program.uniforms.uPlaneSizes.value=[this.plane.scale.x,this.plane.scale.y],this.padding=2,this.width=this.plane.scale.x+this.padding,this.widthTotal=this.width*this.length,this.x=this.width*this.index}}class m{container;scroll;onCheckDebounce;renderer;gl;camera;scene;planeGeometry;medias=[];mediasImages=[];screen;viewport;raf=0;boundOnResize;boundOnWheel;boundOnTouchDown;boundOnTouchMove;boundOnTouchUp;isDown=!1;start=0;constructor(f,{items:x,bend:v=1,textColor:y="#ffffff",borderRadius:p=0,font:E="bold 30px DM Sans"}){this.container=f,this.scroll={ease:.05,current:0,target:0,last:0},this.onCheckDebounce=n(this.onCheck.bind(this),200),this.createRenderer(),this.createCamera(),this.createScene(),this.onResize(),this.createGeometry(),this.createMedias(x,v,y,p,E),this.update(),this.addEventListeners()}createRenderer(){this.renderer=new X.Renderer({alpha:!0}),this.gl=this.renderer.gl,this.gl.clearColor(0,0,0,0),this.container.appendChild(this.renderer.gl.canvas)}createCamera(){this.camera=new X.Camera(this.gl),this.camera.fov=45,this.camera.position.z=20}createScene(){this.scene=new X.Transform}createGeometry(){this.planeGeometry=new X.Plane(this.gl,{heightSegments:50,widthSegments:100})}createMedias(f,x=1,v,y,p){const E=[{image:"https://picsum.photos/seed/1/800/600?grayscale",text:"Bridge"},{image:"https://picsum.photos/seed/2/800/600?grayscale",text:"Desk Setup"},{image:"https://picsum.photos/seed/3/800/600?grayscale",text:"Waterfall"},{image:"https://picsum.photos/seed/4/800/600?grayscale",text:"Strawberries"},{image:"https://picsum.photos/seed/5/800/600?grayscale",text:"Deep Diving"},{image:"https://picsum.photos/seed/16/800/600?grayscale",text:"Train Track"},{image:"https://picsum.photos/seed/17/800/600?grayscale",text:"Santorini"},{image:"https://picsum.photos/seed/8/800/600?grayscale",text:"Blurry Lights"},{image:"https://picsum.photos/seed/9/800/600?grayscale",text:"New York"},{image:"https://picsum.photos/seed/10/800/600?grayscale",text:"Good Boy"},{image:"https://picsum.photos/seed/21/800/600?grayscale",text:"Coastline"},{image:"https://picsum.photos/seed/12/800/600?grayscale",text:"Palm Trees"}],k=f&&f.length?f:E;this.mediasImages=k.concat(k),this.medias=this.mediasImages.map((b,L)=>new d({geometry:this.planeGeometry,gl:this.gl,image:b.image,index:L,length:this.mediasImages.length,renderer:this.renderer,scene:this.scene,screen:this.screen,text:b.text,viewport:this.viewport,bend:x,textColor:v,borderRadius:y,font:p}))}onTouchDown(f){this.isDown=!0,this.scroll.position=this.scroll.current,this.start="touches"in f?f.touches[0].clientX:f.clientX}onTouchMove(f){if(!this.isDown)return;const x="touches"in f?f.touches[0].clientX:f.clientX,v=(this.start-x)*.05;this.scroll.target=(this.scroll.position??0)+v}onTouchUp(){this.isDown=!1,this.onCheck()}onWheel(){this.scroll.target+=2,this.onCheckDebounce()}onCheck(){if(!this.medias||!this.medias[0])return;const f=this.medias[0].width,x=Math.round(Math.abs(this.scroll.target)/f),v=f*x;this.scroll.target=this.scroll.target<0?-v:v}onResize(){this.screen={width:this.container.clientWidth,height:this.container.clientHeight},this.renderer.setSize(this.screen.width,this.screen.height),this.camera.perspective({aspect:this.screen.width/this.screen.height});const f=this.camera.fov*Math.PI/180,x=2*Math.tan(f/2)*this.camera.position.z,v=x*this.camera.aspect;this.viewport={width:v,height:x},this.medias&&this.medias.forEach(y=>y.onResize({screen:this.screen,viewport:this.viewport}))}update(){this.scroll.current=r(this.scroll.current,this.scroll.target,this.scroll.ease);const f=this.scroll.current>this.scroll.last?"right":"left";this.medias&&this.medias.forEach(x=>x.update(this.scroll,f)),this.renderer.render({scene:this.scene,camera:this.camera}),this.scroll.last=this.scroll.current,this.raf=window.requestAnimationFrame(this.update.bind(this))}addEventListeners(){this.boundOnResize=this.onResize.bind(this),this.boundOnWheel=this.onWheel.bind(this),this.boundOnTouchDown=this.onTouchDown.bind(this),this.boundOnTouchMove=this.onTouchMove.bind(this),this.boundOnTouchUp=this.onTouchUp.bind(this),window.addEventListener("resize",this.boundOnResize),window.addEventListener("mousewheel",this.boundOnWheel),window.addEventListener("wheel",this.boundOnWheel),window.addEventListener("mousedown",this.boundOnTouchDown),window.addEventListener("mousemove",this.boundOnTouchMove),window.addEventListener("mouseup",this.boundOnTouchUp),window.addEventListener("touchstart",this.boundOnTouchDown),window.addEventListener("touchmove",this.boundOnTouchMove),window.addEventListener("touchend",this.boundOnTouchUp)}destroy(){window.cancelAnimationFrame(this.raf),window.removeEventListener("resize",this.boundOnResize),window.removeEventListener("mousewheel",this.boundOnWheel),window.removeEventListener("wheel",this.boundOnWheel),window.removeEventListener("mousedown",this.boundOnTouchDown),window.removeEventListener("mousemove",this.boundOnTouchMove),window.removeEventListener("mouseup",this.boundOnTouchUp),window.removeEventListener("touchstart",this.boundOnTouchDown),window.removeEventListener("touchmove",this.boundOnTouchMove),window.removeEventListener("touchend",this.boundOnTouchUp),this.renderer&&this.renderer.gl&&this.renderer.gl.canvas.parentNode&&this.renderer.gl.canvas.parentNode.removeChild(this.renderer.gl.canvas)}}return e.onMounted(()=>{i.value&&(s=new m(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font}))}),e.watch([()=>t.bend,()=>t.textColor,()=>t.borderRadius,()=>t.font],()=>{s&&(s.destroy(),s=null),i.value&&(s=new m(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font}))}),e.watch(()=>t.items,()=>{s&&(s.destroy(),s=null),i.value&&(s=new m(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font}))},{deep:!0}),e.onBeforeUnmount(()=>{s&&(s.destroy(),s=null)}),(h,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:"w-full h-full overflow-hidden cursor-grab active:cursor-grabbing"},null,512))}}),Bs=e.defineComponent({__name:"index",props:{items:{default:()=>[{image:"https://images.pexels.com/photos/799443/pexels-photo-799443.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/16245254/pexels-photo-16245254/free-photo-of-chatgpt-a-chatbot-for-your-website.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/1910236/pexels-photo-1910236.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/2832382/pexels-photo-2832382.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/2333293/pexels-photo-2333293.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""}]},bend:{default:2},borderRadius:{default:.1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"h-96 w-full border border-zinc-800 rounded-xl overflow-clip flex flex-col items-center justify-center gap-24",i.value])},[e.createVNode(Ts,{items:o.items,bend:o.bend,"border-radius":o.borderRadius},null,8,["items","bend","border-radius"])],2))}}),Ms=e.defineComponent({__name:"BentoGrid",props:{class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("grid md:auto-rows-[18rem] grid-cols-1 md:grid-cols-3 gap-4 max-w-7xl mx-auto ",t.class))},[e.renderSlot(i.$slots,"default")],2))}}),Ds={class:"transition duration-200 group-hover/bento:translate-x-2"},Rs={class:"my-2 font-sans font-bold text-neutral-600 dark:text-neutral-200"},Ls={class:"font-sans text-xs font-normal text-neutral-600 dark:text-neutral-300"},Is=e.defineComponent({__name:"BentoGridltem",props:{class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("row-span-1 rounded-xl group/bento hover:shadow-xl transition duration-200 shadow-input dark:shadow-none p-4 dark:bg-black dark:border-white/[0.2] bg-white border border-transparent justify-between flex flex-col space-y-4",t.class))},[e.renderSlot(i.$slots,"header"),e.createElementVNode("div",Ds,[e.renderSlot(i.$slots,"icon"),e.createElementVNode("div",Rs,[e.renderSlot(i.$slots,"title")]),e.createElementVNode("div",Ls,[e.renderSlot(i.$slots,"description")])])],2))}}),zs={class:"flex size-full animate-pulse space-x-4"},As={class:"flex size-full flex-1 rounded-md bg-zinc-800 relative overflow-hidden"},Ps=["src","alt"],Ns=e.defineComponent({__name:"index",props:{items:{default:()=>[{title:"The Dawn of Innovation",description:"Explore the birth of groundbreaking ideas and inventions."},{title:"The Digital Revolution",description:"Dive into the transformative power of technology."},{title:"The Art of Design",description:"Discover the beauty of thoughtful and experience design."},{title:"The Power of Communication",description:"Understand the impact of effective communication in our lives."},{title:"The Pursuit of Knowledge",description:"Join the quest for understanding and enlightenment."},{title:"The Joy of Creation",description:"Experience the thrill of bringing ideas to life."},{title:"The Spirit of Adventure",description:"Embark on exciting journeys and thrilling discoveries."}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return t.classList?.overallClass&&n.push(t.classList.overallClass),s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||"mx-auto max-w-4xl"});return(s,n)=>(e.openBlock(),e.createBlock(Ms,{class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,(r,l)=>(e.openBlock(),e.createBlock(Is,{key:l,class:e.normalizeClass(r.colSpan||"")},{header:e.withCtx(()=>[e.createElementVNode("div",zs,[e.createElementVNode("div",As,[r.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:r.image,alt:r.title,class:"absolute inset-0 size-full object-cover rounded-md"},null,8,Ps)):e.createCommentVNode("",!0)])])]),title:e.withCtx(()=>[e.createElementVNode("strong",null,e.toDisplayString(r.title),1)]),icon:e.withCtx(()=>[...n[0]||(n[0]=[])]),description:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(r.description),1)]),_:2},1032,["class"]))),128))]),_:1},8,["class"]))}}),_t=new $e.Vector3,Vs=new $e.Quaternion,Tt=new $e.Vector3;class Fs extends $e.Object3D{constructor(t=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(i){i.element instanceof i.element.ownerDocument.defaultView.Element&&i.element.parentNode!==null&&i.element.remove()})})}copy(t,i){return super.copy(t,i),this.element=t.element.cloneNode(!0),this}}const Be=new $e.Matrix4,Os=new $e.Matrix4;class Us{constructor(t={}){const i=this;let s,n,r,l;const a={camera:{style:""},objects:new WeakMap},c=t.element!==void 0?t.element:document.createElement("div");c.style.overflow="hidden",this.domElement=c;const u=document.createElement("div");u.style.transformOrigin="0 0",u.style.pointerEvents="none",c.appendChild(u);const d=document.createElement("div");d.style.transformStyle="preserve-3d",u.appendChild(d),this.getSize=function(){return{width:s,height:n}},this.render=function(y,p){const E=p.projectionMatrix.elements[5]*l;p.view&&p.view.enabled?(u.style.transform=`translate( ${-p.view.offsetX*(s/p.view.width)}px, ${-p.view.offsetY*(n/p.view.height)}px )`,u.style.transform+=`scale( ${p.view.fullWidth/p.view.width}, ${p.view.fullHeight/p.view.height} )`):u.style.transform="",y.matrixWorldAutoUpdate===!0&&y.updateMatrixWorld(),p.parent===null&&p.matrixWorldAutoUpdate===!0&&p.updateMatrixWorld();let k,b;p.isOrthographicCamera&&(k=-(p.right+p.left)/2,b=(p.top+p.bottom)/2);const L=p.view&&p.view.enabled?p.view.height/p.view.fullHeight:1,U=p.isOrthographicCamera?`scale( ${L} )scale(`+E+")translate("+m(k)+"px,"+m(b)+"px)"+h(p.matrixWorldInverse):`scale( ${L} )translateZ(`+E+"px)"+h(p.matrixWorldInverse),S=(p.isPerspectiveCamera?"perspective("+E+"px) ":"")+U+"translate("+r+"px,"+l+"px)";a.camera.style!==S&&(d.style.transform=S,a.camera.style=S),v(y,y,p)},this.setSize=function(y,p){s=y,n=p,r=s/2,l=n/2,c.style.width=y+"px",c.style.height=p+"px",u.style.width=y+"px",u.style.height=p+"px",d.style.width=y+"px",d.style.height=p+"px"};function m(y){return Math.abs(y)<1e-10?0:y}function h(y){const p=y.elements;return"matrix3d("+m(p[0])+","+m(-p[1])+","+m(p[2])+","+m(p[3])+","+m(p[4])+","+m(-p[5])+","+m(p[6])+","+m(p[7])+","+m(p[8])+","+m(-p[9])+","+m(p[10])+","+m(p[11])+","+m(p[12])+","+m(-p[13])+","+m(p[14])+","+m(p[15])+")"}function f(y){const p=y.elements;return"translate(-50%,-50%)"+("matrix3d("+m(p[0])+","+m(p[1])+","+m(p[2])+","+m(p[3])+","+m(-p[4])+","+m(-p[5])+","+m(-p[6])+","+m(-p[7])+","+m(p[8])+","+m(p[9])+","+m(p[10])+","+m(p[11])+","+m(p[12])+","+m(p[13])+","+m(p[14])+","+m(p[15])+")")}function x(y){y.isCSS3DObject&&(y.element.style.display="none");for(let p=0,E=y.children.length;p<E;p++)x(y.children[p])}function v(y,p,E,k){if(y.visible===!1){x(y);return}if(y.isCSS3DObject){const b=y.layers.test(E.layers)===!0,L=y.element;if(L.style.display=b===!0?"":"none",b===!0){y.onBeforeRender(i,p,E);let U;y.isCSS3DSprite?(Be.copy(E.matrixWorldInverse),Be.transpose(),y.rotation2D!==0&&Be.multiply(Os.makeRotationZ(y.rotation2D)),y.matrixWorld.decompose(_t,Vs,Tt),Be.setPosition(_t),Be.scale(Tt),Be.elements[3]=0,Be.elements[7]=0,Be.elements[11]=0,Be.elements[15]=1,U=f(Be)):U=f(y.matrixWorld);const H=a.objects.get(y);if(H===void 0||H.style!==U){L.style.transform=U;const S={style:U};a.objects.set(y,S)}L.parentNode!==d&&d.appendChild(L),y.onAfterRender(i,p,E)}}for(let b=0,L=y.children.length;b<L;b++)v(y.children[b],p,E)}}}const $s=.0025,Hs=e.defineComponent({__name:"Carousel3D",props:{items:{default:()=>[]},class:{default:""},containerClass:{default:""},width:{default:450},height:{default:600}},setup(o){const t=o,i=e.ref(),s=e.ref(!1),n=e.ref(0),r=e.ref(0),l=new nt.Scene,a=new nt.PerspectiveCamera(50,1,1,5e3);let c;const u=e.ref(750);let d,m=e.ref(null);e.onMounted(()=>{if(!i.value)return;c=new Us;const b=i.value.clientWidth,L=i.value.clientHeight;c.setSize(b,L),i.value.appendChild(c.domElement),a.position.z=550,a.position.y=70,d=new nt.Object3D,l.add(d),t.items.forEach((U,H)=>{const S=document.createElement("div");S.style.width=`${t.width}px`,S.style.height=`${t.height}px`,S.classList.add("rounded-lg"),S.style.backgroundImage=`url(${U})`,S.style.backgroundSize="cover";const C=new Fs(S),_=H/t.items.length*Math.PI*2;C.position.setFromSphericalCoords(u.value,Math.PI/2,_),C.lookAt(d.position),d.add(C)}),d.rotation.x=nt.MathUtils.degToRad(20),h(),window.addEventListener("resize",k)});function h(){m.value&&m.value.stop();const b=d.rotation.y,L=b+Math.PI*2;m.value=xe.animate(b,L,{duration:20,ease:"linear",repeat:1/0,repeatType:"loop",onUpdate:U=>{d.rotation.y=U,c.render(l,a)}})}function f(b){s.value=!0,n.value="touches"in b?b.touches[0].clientX:b.clientX,r.value=n.value,m.value&&(m.value.stop(),m.value=null)}function x(){s.value&&(s.value=!1,h())}function v(b){s.value&&E(b.clientX)}function y(b){f(b)}function p(b){s.value&&(b.preventDefault(),E(b.touches[0].clientX))}function E(b){const L=b-r.value;r.value=b,d.rotation.y+=-L*$s,c.render(l,a)}function k(){if(!i.value)return;const b=i.value.clientWidth,L=i.value.clientHeight;u.value=b/3,a.aspect=b/L,a.updateProjectionMatrix(),c.setSize(b,L)}return e.onBeforeUnmount(()=>{i.value&&c&&i.value.removeChild(c.domElement),window.removeEventListener("resize",k),m.value&&m.value.stop()}),(b,L)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"carouselContainer",ref:i,class:e.normalizeClass(e.unref(J)("w-full h-[60vh] relative",t.containerClass))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)("absolute top-[40%] translate-y-[-50%] left-0 w-full h-[80%] z-[100]",t.class)),onMousedown:f,onMouseup:x,onMouseleave:x,onMousemove:v,onTouchstart:y,onTouchend:x,onTouchmove:p},null,34)],2))}}),Gs=e.defineComponent({__name:"index",props:{items:{default:()=>["https://images.pexels.com/photos/799443/pexels-photo-799443.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/16245254/pexels-photo-16245254/free-photo-of-chatgpt-a-chatbot-for-your-website.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/1910236/pexels-photo-1910236.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/2832382/pexels-photo-2832382.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/2333293/pexels-photo-2333293.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/604684/pexels-photo-604684.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/3308588/pexels-photo-3308588.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/2860807/pexels-photo-2860807.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"w-full h-auto",i.value])},[e.createVNode(Hs,{items:o.items},null,8,["items"])],2))}}),Ys={class:"size-full overflow-hidden rounded-2xl bg-gray-100 md:rounded-2xl md:p-4 dark:bg-zinc-900"},Ws=e.defineComponent({__name:"ContainerScrollCard",props:{rotate:Number,scale:Number},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle({transform:`rotateX(${o.rotate}deg) scale(${o.scale})`,boxShadow:"0 0 #0000004d, 0 9px 20px #0000004a, 0 37px 37px #00000042, 0 84px 50px #00000026, 0 149px 60px #0000000a, 0 233px 65px #00000003"}),class:"mx-auto -mt-12 h-[30rem] w-full max-w-5xl rounded-[30px] border-4 border-[#6C6C6C] bg-[#222222] p-2 shadow-2xl md:h-[40rem] md:p-6"},[e.createElementVNode("div",Ys,[e.renderSlot(t.$slots,"default")])],4))}}),js=e.defineComponent({__name:"ContainerScrollTitle",props:{translate:Number},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle({transform:`translateY(${o.translate}px)`}),class:"mx-auto max-w-5xl text-center"},[e.renderSlot(t.$slots,"default")],4))}}),Xs={class:"relative w-full py-10 md:py-40",style:{perspective:"1000px"}},qs=e.defineComponent({__name:"ContainerScroll",setup(o){const t=e.ref(null),i=e.ref(!1);function s(){i.value=window.innerWidth<=768}e.onMounted(()=>{s(),window.addEventListener("resize",s)}),e.onUnmounted(()=>{window.removeEventListener("resize",s)});const{height:n}=Ce.useWindowSize(),{y:r}=Ce.useScroll(window),{bottom:l}=Ce.useElementBounding(t),a=e.computed(()=>l.value?1-Math.max(0,l.value-r.value)/n.value:0),c=e.computed(()=>i.value?[.7,.9]:[1.05,1]),u=e.computed(()=>20*(1-a.value)),d=e.computed(()=>{const[h,f]=c.value;return h+(f-h)*a.value}),m=e.computed(()=>-100*a.value);return(h,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:t,class:"relative flex h-[60rem] items-center justify-center p-2 md:h-[80rem] md:p-20"},[e.createElementVNode("div",Xs,[e.createVNode(js,{translate:m.value},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"title")]),_:3},8,["translate"]),e.createVNode(Ws,{rotate:u.value,scale:d.value},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"card")]),_:3},8,["rotate","scale"])])],512))}}),Zs=["src"],Ks=e.defineComponent({__name:"index",props:{imageSrc:{default:""},title1:{default:""},title2:{default:""},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=[];t.classList?.overallClass?s.push(t.classList.overallClass):s.push("flex flex-col overflow-hidden");const n=t.classList?.Location;return n?.position&&s.push(n.position),n?.width&&s.push(n.width),n?.height&&s.push(n.height),n?.left&&s.push(n.left),n?.top&&s.push(n.top),s.join(" ")});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(qs,null,{title:e.withCtx(()=>[e.createElementVNode("h1",{class:e.normalizeClass(o.classList?.h1Class||"text-4xl font-semibold text-black dark:text-white")},[e.createTextVNode(e.toDisplayString(o.title1)+" ",1),n[0]||(n[0]=e.createElementVNode("br",null,null,-1)),e.createElementVNode("span",{class:e.normalizeClass(o.classList?.spanClass||"mt-1 text-4xl font-bold leading-none md:text-[6rem]")},e.toDisplayString(o.title2),3)],2)]),card:e.withCtx(()=>[e.createElementVNode("img",{src:o.imageSrc,class:e.normalizeClass(o.classList?.imageClass||"mx-auto h-full rounded-2xl object-cover object-left-top"),alt:"hero",height:"720",width:"1400"},null,10,Zs)]),_:1})],2))}}),Js={class:"relative size-full overflow-hidden"},Qs=["src"],ei=e.defineComponent({__name:"DirectionAwareHover",props:{imageUrl:{},childrenClass:{default:void 0},imageClass:{default:void 0},class:{default:void 0}},setup(o){const t=o,i=e.ref(null),s=e.ref(null),n=e.ref(!1),r=e.ref(!1);let l=null;function a(){r.value=window.matchMedia("(max-width: 768px)").matches||"ontouchstart"in window}function c(E){if(r.value||!i.value)return;switch(h(E,i.value)){case 0:s.value="top";break;case 1:s.value="right";break;case 2:s.value="bottom";break;case 3:s.value="left";break;default:s.value="left";break}}function u(){r.value||(s.value=null)}function d(E){if(!r.value||(n.value=!0,!i.value))return;const k=E.touches[0],b=new MouseEvent("mouseenter",{clientX:k.clientX,clientY:k.clientY});switch(h(b,i.value)){case 0:s.value="top";break;case 1:s.value="right";break;case 2:s.value="bottom";break;case 3:s.value="left";break;default:s.value="left";break}l&&clearTimeout(l),l=setTimeout(()=>{m()},3e3)}function m(){l&&(clearTimeout(l),l=null),setTimeout(()=>{s.value=null,n.value=!1},300)}function h(E,k){const{width:b,height:L,left:U,top:H}=k.getBoundingClientRect(),S=E.clientX-U-b/2*(b>L?L/b:1),C=E.clientY-H-L/2*(L>b?b/L:1);return Math.round(Math.atan2(C,S)/1.57079633+5)%4}const f=e.computed(()=>J("group/card relative overflow-hidden rounded-lg bg-transparent transition-all duration-300","h-48 w-48","xs:h-56 xs:w-56","sm:h-64 sm:w-64","md:h-80 md:w-80","lg:h-96 lg:w-96","xl:h-[28rem] xl:w-[28rem]","touch-manipulation","active:scale-[0.98]","md:active:scale-100",t.class)),x=e.computed(()=>J("h-full w-full object-cover transition-transform duration-300","scale-125","sm:scale-135","md:scale-150",t.imageClass)),v=e.computed(()=>J("absolute z-40 text-white transition-opacity duration-300","bottom-2 left-2 text-sm","sm:bottom-3 sm:left-3 sm:text-base","md:bottom-4 md:left-4 md:text-lg",t.childrenClass)),y=e.computed(()=>{const E="absolute inset-0 z-10 transition-all duration-300",k="bg-black/40 dark:bg-black/60";let b="";switch(s.value){case"top":b="-translate-y-full";break;case"bottom":b="translate-y-full";break;case"left":b="-translate-x-full";break;case"right":b="translate-x-full";break;default:b=""}return J(E,k,b)}),p=e.computed(()=>({"translate-y-2 md:translate-y-5":s.value==="top","-translate-y-2 md:-translate-y-5":s.value==="bottom","translate-x-2 md:translate-x-5":s.value==="left","-translate-x-2 md:-translate-x-5":s.value==="right"}));return e.onMounted(()=>{a(),window.addEventListener("resize",a)}),e.onUnmounted(()=>{window.removeEventListener("resize",a),l&&clearTimeout(l)}),(E,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"divRef",ref:i,class:e.normalizeClass(f.value),onMouseenter:c,onMouseleave:u,onTouchstart:d,onTouchend:m},[e.createElementVNode("div",Js,[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(y.value)},null,2),[[e.vShow,s.value!==null]])]),_:1}),e.createElementVNode("div",{class:e.normalizeClass(["relative size-full bg-gray-50 transition-transform duration-300 dark:bg-black",p.value])},[e.createElementVNode("img",{src:o.imageUrl,alt:"image",class:e.normalizeClass(x.value),width:"1000",height:"1000"},null,10,Qs)],2),e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(v.value)},[e.renderSlot(E.$slots,"default",{},void 0,!0)],2),[[e.vShow,s.value!==null||n.value]])]),_:3})])],34))}}),ti=me(ei,[["__scopeId","data-v-17828482"]]),si=e.defineComponent({__name:"index",props:{items:{default:()=>[{imageUrl:"https://images.unsplash.com/photo-1728755833852-2c138c84cfb1?q=80&w=2672&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",title:"Beautiful Landscape",description:"Discover nature's wonders"},{imageUrl:"https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80",title:"Urban Adventure",description:"Explore the city lights",class:"border-2 border-blue-500 shadow-xl ring-2 ring-blue-200 dark:border-blue-400 dark:ring-blue-800",imageClass:"scale-110 hover:scale-125 transition-transform duration-500",childrenClass:"bg-gradient-to-t from-black/80 to-transparent p-3 sm:p-4 rounded-b-lg backdrop-blur-sm"},{imageUrl:"https://images.unsplash.com/photo-1664710476481-1213c456c56c?q=80&w=2672&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",title:"Culinary Delights",description:"Savor exquisite flavors",buttonText:"View Recipe",containerClass:"md:col-span-2 lg:col-span-1",class:"overflow-hidden rounded-xl shadow-2xl ring-1 ring-gray-300 dark:ring-gray-700",childrenClass:"bg-gradient-to-t from-black/90 via-black/40 to-transparent p-3 sm:p-4 rounded-b-xl"}]},classList:{default:()=>({})}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"container mx-auto p-4 sm:p-6 lg:p-8")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.gridClass||"grid grid-cols-2 gap-6 sm:gap-8 xl:gap-10")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,(s,n)=>(e.openBlock(),e.createElementBlock("div",{key:n,class:e.normalizeClass(["flex justify-center",s.containerClass])},[e.createVNode(ti,{"image-url":s.imageUrl,class:e.normalizeClass(s.class||"shadow-lg ring-1 ring-gray-200 dark:ring-gray-800"),"image-class":s.imageClass,"children-class":s.childrenClass},{default:e.withCtx(()=>[s.title?(e.openBlock(),e.createElementBlock("h2",{key:0,class:e.normalizeClass(["text-lg font-semibold sm:text-xl",s.titleClass])},e.toDisplayString(s.title),3)):e.createCommentVNode("",!0),s.description?(e.openBlock(),e.createElementBlock("p",{key:1,class:e.normalizeClass(["mt-1 text-sm opacity-90 sm:mt-2 sm:text-base",s.descriptionClass])},e.toDisplayString(s.description),3)):e.createCommentVNode("",!0),s.buttonText?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["mt-3 rounded-lg bg-white px-3 py-1.5 text-sm font-medium text-black transition-all hover:bg-gray-100 hover:scale-105 active:scale-95 sm:mt-4 sm:px-4 sm:py-2 sm:text-base",s.buttonClass])},e.toDisplayString(s.buttonText),3)):e.createCommentVNode("",!0)]),_:2},1032,["image-url","class","image-class","children-class"])],2))),128))],2)],2))}}),Ft=Symbol("mouse-x"),Ot=Symbol("mouse-y"),Ut=Symbol("magnification"),$t=Symbol("distance"),wt=Symbol("orientation"),ii=e.defineComponent({__name:"Dock",props:{class:{},magnification:{default:60},distance:{default:140},direction:{default:"middle"},orientation:{default:"horizontal"}},setup(o){const t=o,i=e.ref(null),s=e.ref(1/0),n=e.ref(1/0),r=e.computed(()=>t.magnification),l=e.computed(()=>t.distance),a=e.computed(()=>({"items-start":t.direction==="top","items-center":t.direction==="middle","items-end":t.direction==="bottom"}));function c(d){requestAnimationFrame(()=>{s.value=d.pageX,n.value=d.pageY})}function u(){requestAnimationFrame(()=>{s.value=1/0,n.value=1/0})}return e.provide(Ft,s),e.provide(Ot,n),e.provide(wt,t.orientation),e.provide(Ut,r),e.provide($t,l),(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dockRef",ref:i,class:e.normalizeClass(e.unref(J)("supports-backdrop-blur:bg-white/10 supports-backdrop-blur:dark:bg-black/10 mx-auto mt-8 flex h-[58px] w-max rounded-2xl border p-2 backdrop-blur-md transition-all gap-4",o.orientation==="vertical"&&"flex-col w-[58px] h-max",t.class,a.value)),onMousemove:c,onMouseleave:u},[e.renderSlot(d.$slots,"default")],34))}}),oi=["hovered"],ni=e.defineComponent({__name:"Docklcon",setup(o){const t=e.ref(null),i=e.inject(Ft,e.ref(1/0)),s=e.inject(Ot,e.ref(1/0)),n=e.inject($t),r=e.inject(wt,"vertical"),l=e.inject(Ut),a=e.computed(()=>r==="vertical"),c=e.ref(0);function u(m){if(a.value){const f=t.value?.getBoundingClientRect()||{y:0,height:0};return m-f.y-f.height/2}const h=t.value?.getBoundingClientRect()||{x:0,width:0};return m-h.x-h.width/2}const d=e.computed(()=>{const m=a.value?u(s.value):u(i.value);return!n?.value||!l?.value?40:Math.abs(m)<n?.value?(1-Math.abs(m)/n?.value)*l?.value+40:40});return(m,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"iconRef",ref:t,class:"flex aspect-square cursor-pointer items-center justify-center rounded-full transition-all duration-200 ease-out",style:e.normalizeStyle({width:`${d.value}px`,height:`${d.value}px`}),hovered:{marginLeft:c.value,marginRight:c.value}},[e.renderSlot(m.$slots,"default")],12,oi))}}),ai=e.defineComponent({__name:"DockSeparator",setup(o){const t=e.inject(wt,"vertical");return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("relative block bg-secondary",e.unref(t)==="vertical"?"w-4/5 h-0.5":"h-4/5 w-0.5"))},null,2))}}),ri=e.defineComponent({__name:"index",props:{icons:{default:()=>["mdi:github","logos:google-drive","logos:notion","logos:whatsapp"]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||""});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(e.unref(ii),{class:e.normalizeClass(o.classList?.overallClass||"mb-6")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.icons,(r,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l},[e.createVNode(e.unref(ni),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ls.Icon),{icon:r},null,8,["icon"])]),_:2},1024),l<o.icons.length-1?(e.openBlock(),e.createBlock(e.unref(ai),{key:0})):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["class"])],2))}}),li={class:"w-full h-full grid place-items-center contain-layout contain-paint contain-size",style:{perspective:"calc(var(--radius) * 2)",perspectiveOrigin:"50% 50%"}},ci=["data-src","data-offset-x","data-offset-y","data-size-x","data-size-y"],ui=["aria-label"],di=["src","alt"],hi=.008,mi=e.defineComponent({__name:"DomeGallery",props:{images:{},fit:{default:.5},fitBasis:{default:"auto"},minRadius:{default:600},maxRadius:{default:1/0},padFactor:{default:.25},overlayBlurColor:{default:"#060010"},maxVerticalRotationDeg:{default:5},dragSensitivity:{default:20},enlargeTransitionMs:{default:300},segments:{default:35},dragDampening:{default:2},openedImageWidth:{default:"400px"},openedImageHeight:{default:"400px"},imageBorderRadius:{default:"30px"},openedImageBorderRadius:{default:"30px"},grayscale:{type:Boolean,default:!0}},setup(o){const t=[{src:"https://images.unsplash.com/photo-1755331039789-7e5680e26e8f?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Abstract art"},{src:"https://images.unsplash.com/photo-1755569309049-98410b94f66d?q=80&w=772&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Modern sculpture"},{src:"https://images.unsplash.com/photo-1755497595318-7e5e3523854f?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Digital artwork"},{src:"https://images.unsplash.com/photo-1755353985163-c2a0fe5ac3d8?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Contemporary art"},{src:"https://images.unsplash.com/photo-1745965976680-d00be7dc0377?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Geometric pattern"},{src:"https://images.unsplash.com/photo-1752588975228-21f44630bb3c?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Textured surface"},{src:"https://pbs.twimg.com/media/Gyla7NnXMAAXSo_?format=jpg&name=large",alt:"Social media image"}],i=o,s=e.computed(()=>i.images||t),n=e.useTemplateRef("rootRef"),r=e.useTemplateRef("mainRef"),l=e.useTemplateRef("sphereRef"),a=e.useTemplateRef("viewerRef"),c=e.useTemplateRef("scrimRef"),u=e.useTemplateRef("frameRef"),d=e.ref({x:0,y:0}),m=e.ref({x:0,y:0}),h=e.ref(null),f=e.ref(!1),x=e.ref(!1),v=e.ref(!1),y=e.ref(null),p=e.ref(null),E=e.ref(!1),k=e.ref(0),b=e.ref(0);let L=null,U=null,H=null,S=null,C=0;const _=(z,$,W)=>Math.min(Math.max(z,$),W),D=z=>(z%360+360)%360,M=z=>((z+180)%360+360)%360-180,I=(z,$,W)=>{const te=z.dataset[$]??z.getAttribute(`data-${$}`),j=te==null?NaN:parseFloat(te);return Number.isFinite(j)?j:W};function N(z,$){const W=Array.from({length:$},(K,re)=>-37+re*2),te=[-4,-2,0,2,4],j=[-3,-1,1,3,5],ae=W.flatMap((K,re)=>(re%2===0?te:j).map(ge=>({x:K,y:ge,sizeX:2,sizeY:2}))),oe=ae.length;if(z.length===0)return ae.map(K=>({...K,src:"",alt:""}));z.length>oe&&console.warn(`[DomeGallery] Provided image count (${z.length}) exceeds available tiles (${oe}). Some images will not be shown.`);const he=z.map(K=>typeof K=="string"?{src:K,alt:""}:{src:K.src||"",alt:K.alt||""}),ue=Array.from({length:oe},(K,re)=>he[re%he.length]);for(let K=1;K<ue.length;K++)if(ue[K].src===ue[K-1].src){for(let re=K+1;re<ue.length;re++)if(ue[re].src!==ue[K].src){const pe=ue[K];ue[K]=ue[re],ue[re]=pe;break}}return ae.map((K,re)=>({...K,src:ue[re].src,alt:ue[re].alt}))}const V=e.computed(()=>N(s.value,i.segments));function A(z,$,W,te,j){const ae=360/j/2,oe=ae*(z+(W-1)/2);return{rotateX:ae*($-(te-1)/2),rotateY:oe}}const Q=(z,$)=>{const W=l.value;W&&(W.style.transform=`translateZ(calc(var(--radius) * -1)) rotateX(${z}deg) rotateY(${$}deg)`)},w=()=>{E.value||(E.value=!0,document.body.classList.add("overflow-hidden"))},R=()=>{E.value&&n.value?.getAttribute("data-enlarging")!=="true"&&(E.value=!1,document.body.classList.remove("overflow-hidden"))},G=()=>{L&&(cancelAnimationFrame(L),L=null)},le=(z,$)=>{let te=_(z,-1.4,1.4)*80,j=_($,-1.4,1.4)*80,ae=0;const oe=_(i.dragDampening??.6,0,1),he=.94+.055*oe,ue=.015-.01*oe,K=Math.round(90+270*oe),re=()=>{if(te*=he,j*=he,Math.abs(te)<ue&&Math.abs(j)<ue){L=null;return}if(++ae>K){L=null;return}const pe=_(d.value.x-j/200,-i.maxVerticalRotationDeg,i.maxVerticalRotationDeg),ge=M(d.value.y+te/200);d.value={x:pe,y:ge},Q(pe,ge),L=requestAnimationFrame(re)};G(),L=requestAnimationFrame(re)},Z=()=>{S&&(cancelAnimationFrame(S),S=null),C=0},Y=z=>{C||(C=z);const $=z-C;if(C=z,!f.value&&!v.value&&!y.value&&L===null&&$>0){const te=M(d.value.y+$*hi);te!==d.value.y&&(d.value={x:d.value.x,y:te})}S=requestAnimationFrame(Y)},se=()=>{S===null&&(C=0,S=requestAnimationFrame(Y))},ie=z=>{if(y.value)return;G(),f.value=!0,x.value=!1,m.value={...d.value};const $="touches"in z?z.touches[0].clientX:z.clientX,W="touches"in z?z.touches[0].clientY:z.clientY;h.value={x:$,y:W}},ce=z=>{if(y.value||!f.value||!h.value)return;const $="touches"in z?z.touches[0].clientX:z.clientX,W="touches"in z?z.touches[0].clientY:z.clientY,te=$-h.value.x,j=W-h.value.y;x.value||te*te+j*j>16&&(x.value=!0);const ae=_(m.value.x-j/i.dragSensitivity,-i.maxVerticalRotationDeg,i.maxVerticalRotationDeg),oe=M(m.value.y+te/i.dragSensitivity);(d.value.x!==ae||d.value.y!==oe)&&(d.value={x:ae,y:oe},Q(ae,oe))},fe=z=>{if(f.value){if(f.value=!1,x.value&&h.value){const $="touches"in z?z.changedTouches?.[0]?.clientX??0:z.clientX,W="touches"in z?z.changedTouches?.[0]?.clientY??0:z.clientY,te=$-h.value.x,j=W-h.value.y,ae=_(te/i.dragSensitivity*.02,-1.2,1.2),oe=_(j/i.dragSensitivity*.02,-1.2,1.2);(Math.abs(ae)>.005||Math.abs(oe)>.005)&&le(ae,oe),b.value=performance.now()}x.value=!1}},we=z=>{if(v.value)return;v.value=!0,k.value=performance.now(),w();const $=z.parentElement;if(!$)return;y.value=z,z.setAttribute("data-focused","true");const W=I($,"offsetX",0),te=I($,"offsetY",0),j=I($,"sizeX",2),ae=I($,"sizeY",2),oe=A(W,te,j,ae,i.segments),he=D(oe.rotateY),ue=D(d.value.y);let K=-(he+ue)%360;K<-180&&(K+=360);const re=-oe.rotateX-d.value.x;$.style.setProperty("--rot-y-delta",`${K}deg`),$.style.setProperty("--rot-x-delta",`${re}deg`);const pe=document.createElement("div");pe.className="item__image item__image--reference",pe.style.opacity="0",pe.style.transform=`rotateX(${-oe.rotateX}deg) rotateY(${-oe.rotateY}deg)`,$.appendChild(pe);const ge=pe.getBoundingClientRect(),Re=r.value?.getBoundingClientRect(),ve=u.value?.getBoundingClientRect();if(!Re||!ve)return;p.value={left:ge.left,top:ge.top,width:ge.width,height:ge.height},z.style.visibility="hidden",z.style.zIndex="0";const q=document.createElement("div");q.className="enlarge",q.style.position="absolute",q.style.left=`${ve.left-Re.left}px`,q.style.top=`${ve.top-Re.top}px`,q.style.width=`${ve.width}px`,q.style.height=`${ve.height}px`,q.style.opacity="0",q.style.zIndex="30",q.style.willChange="transform, opacity",q.style.transformOrigin="top left",q.style.transition=`transform ${i.enlargeTransitionMs}ms ease, opacity ${i.enlargeTransitionMs}ms ease`;const _e=$.dataset.src||z.querySelector("img")?.src||"",Te=document.createElement("img");Te.src=_e,q.appendChild(Te),a.value?.appendChild(q);const Pe=ge.left-ve.left,Ne=ge.top-ve.top,Oe=ge.width/ve.width,je=ge.height/ve.height;if(q.style.transform=`translate(${Pe}px, ${Ne}px) scale(${Oe}, ${je})`,requestAnimationFrame(()=>{q.style.opacity="1",q.style.transform="translate(0px, 0px) scale(1,1)",n.value?.setAttribute("data-enlarging","true"),c.value?.classList.add("opacity-100","pointer-events-auto"),c.value?.classList.remove("opacity-0","pointer-events-none")}),i.openedImageWidth||i.openedImageHeight){const it=He=>{if(He.propertyName!=="transform")return;q.removeEventListener("transitionend",it);const ct=q.style.transition;q.style.transition="none";const ot=i.openedImageWidth||`${ve.width}px`,Xe=i.openedImageHeight||`${ve.height}px`;q.style.width=ot,q.style.height=Xe;const qe=q.getBoundingClientRect();q.style.width=`${ve.width}px`,q.style.height=`${ve.height}px`,q.offsetWidth,q.style.transition=`left ${i.enlargeTransitionMs}ms ease, top ${i.enlargeTransitionMs}ms ease, width ${i.enlargeTransitionMs}ms ease, height ${i.enlargeTransitionMs}ms ease`;const g=ve.left-Re.left+(ve.width-qe.width)/2,B=ve.top-Re.top+(ve.height-qe.height)/2;requestAnimationFrame(()=>{q.style.left=`${g}px`,q.style.top=`${B}px`,q.style.width=ot,q.style.height=Xe});const T=()=>{q.removeEventListener("transitionend",T),q.style.transition=ct};q.addEventListener("transitionend",T,{once:!0})};q.addEventListener("transitionend",it)}},be=()=>{if(performance.now()-k.value<250)return;const z=y.value;if(!z)return;const $=z.parentElement,W=a.value?.querySelector(".enlarge");if(!W||!$)return;const te=$.querySelector(".item__image--reference"),j=p.value;if(!j){W.remove(),te&&te.remove(),$.style.setProperty("--rot-y-delta","0deg"),$.style.setProperty("--rot-x-delta","0deg"),z.style.visibility="",z.style.zIndex="0",y.value=null,n.value?.removeAttribute("data-enlarging"),c.value?.classList.add("opacity-0","pointer-events-none"),c.value?.classList.remove("opacity-100","pointer-events-auto"),v.value=!1,R();return}const ae=W.getBoundingClientRect(),oe=n.value?.getBoundingClientRect();if(!oe)return;const he={left:j.left-oe.left,top:j.top-oe.top,width:j.width,height:j.height},ue={left:ae.left-oe.left,top:ae.top-oe.top,width:ae.width,height:ae.height},K=document.createElement("div");K.className="enlarge-closing",K.style.cssText=`position:absolute;left:${ue.left}px;top:${ue.top}px;width:${ue.width}px;height:${ue.height}px;z-index:9999;border-radius: var(--enlarge-radius, 32px);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:all ${i.enlargeTransitionMs}ms ease-out;pointer-events:none;margin:0;transform:none;`;const re=W.querySelector("img");if(re){const ge=re.cloneNode();ge.style.cssText="width:100%;height:100%;object-fit:cover;",K.appendChild(ge)}W.remove(),n.value?.appendChild(K),K.getBoundingClientRect(),requestAnimationFrame(()=>{K.style.left=`${he.left}px`,K.style.top=`${he.top}px`,K.style.width=`${he.width}px`,K.style.height=`${he.height}px`,K.style.opacity="0"});const pe=()=>{K.remove(),p.value=null,te&&te.remove(),$.style.transition="none",z.style.transition="none",$.style.setProperty("--rot-y-delta","0deg"),$.style.setProperty("--rot-x-delta","0deg"),requestAnimationFrame(()=>{z.style.visibility="",z.style.opacity="0",z.style.zIndex="0",y.value=null,n.value?.removeAttribute("data-enlarging"),c.value?.classList.add("opacity-0","pointer-events-none"),c.value?.classList.remove("opacity-100","pointer-events-auto"),requestAnimationFrame(()=>{$.style.transition="",z.style.transition="opacity 300ms ease-out",requestAnimationFrame(()=>{z.style.opacity="1",setTimeout(()=>{z.style.transition="",z.style.opacity="",v.value=!1,R()},300)})})})};K.addEventListener("transitionend",pe,{once:!0})},Ee=z=>{f.value||performance.now()-b.value<80||v.value||we(z.currentTarget)},De=z=>{z.pointerType==="touch"&&(f.value||performance.now()-b.value<80||v.value||we(z.currentTarget))},Fe=z=>{f.value||performance.now()-b.value<80||v.value||we(z.currentTarget)};return e.onMounted(()=>{Q(d.value.x,d.value.y),se();const z=n.value,$=r.value;if(!z||!$)return;U=new ResizeObserver(te=>{const j=te[0].contentRect,ae=Math.max(1,j.width),oe=Math.max(1,j.height),he=Math.min(ae,oe),ue=Math.max(ae,oe),K=ae/oe;let re;switch(i.fitBasis){case"min":re=he;break;case"max":re=ue;break;case"width":re=ae;break;case"height":re=oe;break;default:re=K>=1.3?ae:he}let pe=re*i.fit;const ge=oe*1.35;pe=Math.min(pe,ge),pe=_(pe,i.minRadius,i.maxRadius);const Re=Math.max(8,Math.round(he*i.padFactor)),ve=Math.round(pe);z.style.setProperty("--radius",`${ve}px`),z.style.setProperty("--viewer-pad",`${Re}px`);const q=a.value?.querySelector(".enlarge");if(q&&u.value&&r.value){const _e=u.value.getBoundingClientRect(),Te=r.value.getBoundingClientRect();if(i.openedImageWidth&&i.openedImageHeight){const Pe=document.createElement("div");Pe.style.cssText=`position:absolute;visibility:hidden;width:${i.openedImageWidth};height:${i.openedImageHeight};pointer-events:none;`,document.body.appendChild(Pe);const Ne=Pe.getBoundingClientRect();document.body.removeChild(Pe);const Oe=_e.left-Te.left+(_e.width-Ne.width)/2,je=_e.top-Te.top+(_e.height-Ne.height)/2;q.style.left=`${Oe}px`,q.style.top=`${je}px`,q.style.width=i.openedImageWidth,q.style.height=i.openedImageHeight}else q.style.left=`${_e.left-Te.left}px`,q.style.top=`${_e.top-Te.top}px`,q.style.width=`${_e.width}px`,q.style.height=`${_e.height}px`}}),U.observe(z),$.addEventListener("mousedown",ie,{passive:!0}),$.addEventListener("touchstart",ie,{passive:!0}),window.addEventListener("mousemove",ce,{passive:!0}),window.addEventListener("touchmove",ce,{passive:!0}),window.addEventListener("mouseup",fe),window.addEventListener("touchend",fe);const W=c.value;W&&W.addEventListener("click",be),H=te=>{te.key==="Escape"&&be()},window.addEventListener("keydown",H)}),e.onUnmounted(()=>{G(),Z(),U&&U.disconnect();const z=r.value,$=c.value;z&&(z.removeEventListener("mousedown",ie),z.removeEventListener("touchstart",ie)),$&&$.removeEventListener("click",be),window.removeEventListener("mousemove",ce),window.removeEventListener("touchmove",ce),window.removeEventListener("mouseup",fe),window.removeEventListener("touchend",fe),H&&window.removeEventListener("keydown",H),document.body.classList.remove("overflow-hidden")}),e.watch(d,z=>{Q(z.x,z.y)}),(z,$)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"rootRef",ref:n,class:"relative w-full h-[1000px] box-border",style:e.normalizeStyle({"--segments-x":o.segments,"--segments-y":o.segments,"--overlay-blur-color":o.overlayBlurColor,"--tile-radius":o.imageBorderRadius,"--enlarge-radius":o.openedImageBorderRadius,"--image-filter":o.grayscale?"grayscale(1)":"none","--radius":"520px","--viewer-pad":"72px","--circ":"calc(var(--radius) * 3.14)","--rot-y":"calc((360deg / var(--segments-x)) / 2)","--rot-x":"calc((360deg / var(--segments-y)) / 2)","--item-width":"calc(var(--circ) / var(--segments-x))","--item-height":"calc(var(--circ) / var(--segments-y))"})},[e.createElementVNode("main",{ref_key:"mainRef",ref:r,class:"absolute inset-0 grid place-items-center overflow-hidden touch-none select-none bg-transparent"},[e.createElementVNode("div",li,[e.createElementVNode("div",{ref_key:"sphereRef",ref:l,class:"will-change-transform",style:{"transform-style":"preserve-3d",transform:"translateZ(calc(var(--radius) * -1))"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,(W,te)=>(e.openBlock(),e.createElementBlock("div",{key:`${W.x},${W.y},${te}`,class:"absolute -top-[999px] -bottom-[999px] -left-[999px] -right-[999px] m-auto transition-transform duration-300","data-src":W.src,"data-offset-x":W.x,"data-offset-y":W.y,"data-size-x":W.sizeX,"data-size-y":W.sizeY,style:e.normalizeStyle({"--offset-x":W.x,"--offset-y":W.y,"--item-size-x":W.sizeX,"--item-size-y":W.sizeY,width:"calc(var(--item-width) * var(--item-size-x))",height:"calc(var(--item-height) * var(--item-size-y))",transformStyle:"preserve-3d",transformOrigin:"50% 50%",backfaceVisibility:"hidden",transform:"rotateY(calc(var(--rot-y) * (var(--offset-x) + ((var(--item-size-x) - 1) / 2)) + var(--rot-y-delta, 0deg))) rotateX(calc(var(--rot-x) * (var(--offset-y) - ((var(--item-size-y) - 1) / 2)) + var(--rot-x-delta, 0deg))) translateZ(var(--radius))"})},[e.createElementVNode("div",{class:"absolute block inset-[10px] bg-transparent overflow-hidden transition-transform duration-300 cursor-pointer pointer-events-auto transform translate-z-0 focus:outline-none",role:"button",tabindex:"0","aria-label":W.alt||"Open image",onClick:Ee,onPointerup:De,onTouchend:Fe,style:{borderRadius:"var(--tile-radius, 12px)",transformStyle:"preserve-3d",backfaceVisibility:"hidden",touchAction:"manipulation",WebkitTapHighlightColor:"transparent",WebkitTransform:"translateZ(0)"}},[e.createElementVNode("img",{src:W.src,draggable:"false",alt:W.alt,class:"w-full h-full object-cover pointer-events-none",style:{backfaceVisibility:"hidden",filter:"var(--image-filter, none)"}},null,8,di)],40,ui)],12,ci))),128))],512)]),$[0]||($[0]=e.createElementVNode("div",{class:"absolute inset-0 m-auto z-[3] pointer-events-none",style:{backgroundImage:"radial-gradient(rgba(235, 235, 235, 0) 65%, var(--overlay-blur-color, #060010) 100%)"}},null,-1)),$[1]||($[1]=e.createElementVNode("div",{class:"absolute inset-0 m-auto z-[3] pointer-events-none",style:{WebkitMaskImage:"radial-gradient(rgba(235, 235, 235, 0) 70%, var(--overlay-blur-color, #060010) 90%)",maskImage:"radial-gradient(rgba(235, 235, 235, 0) 70%, var(--overlay-blur-color, #060010) 90%)",backdropFilter:"blur(3px)"}},null,-1)),$[2]||($[2]=e.createElementVNode("div",{class:"absolute left-0 right-0 h-[120px] z-[5] pointer-events-none top-0 rotate-180",style:{background:"linear-gradient(to bottom, transparent, var(--overlay-blur-color, #060010))"}},null,-1)),$[3]||($[3]=e.createElementVNode("div",{class:"absolute left-0 right-0 h-[120px] z-[5] pointer-events-none bottom-0",style:{background:"linear-gradient(to bottom, transparent, var(--overlay-blur-color, #060010))"}},null,-1)),e.createElementVNode("div",{ref_key:"viewerRef",ref:a,class:"absolute inset-0 z-20 pointer-events-none flex items-center justify-center",style:{padding:"var(--viewer-pad)"}},[e.createElementVNode("div",{ref_key:"scrimRef",ref:c,class:"absolute inset-0 z-10 bg-black/40 pointer-events-none opacity-0 transition-opacity duration-500 ease-linear",style:{backdropFilter:"blur(3px)"}},null,512),e.createElementVNode("div",{ref_key:"frameRef",ref:u,class:"h-full aspect-square flex max-[1/1]:h-auto max-[1/1]:w-full",style:{borderRadius:"var(--enlarge-radius, 32px)"}},null,512)],512)],512)],4))}}),fi=e.defineComponent({__name:"index",props:{images:{default:()=>["https://images.unsplash.com/photo-1755331039789-7e5680e26e8f?q=80&w=774&auto=format&fit=crop","https://images.unsplash.com/photo-1755569309049-98410b94f66d?q=80&w=772&auto=format&fit=crop","https://images.unsplash.com/photo-1755497595318-7e5e3523854f?q=80&w=774&auto=format&fit=crop"]},fit:{default:.8},fitBasis:{default:"auto"},minRadius:{default:600},segments:{default:34},dragSensitivity:{default:20},enlargeTransitionMs:{default:300},grayscale:{type:Boolean,default:!0},overlayBlurColor:{default:"#060010"},imageBorderRadius:{default:"30px"},openedImageWidth:{default:"250px"},openedImageHeight:{default:"350px"},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return t.classList?.overallClass&&n.push(t.classList.overallClass),s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||"w-full h-[1000px]"});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(mi,{images:o.images,fit:o.fit,"fit-basis":o.fitBasis,"min-radius":o.minRadius,segments:o.segments,"drag-sensitivity":o.dragSensitivity,"enlarge-transition-ms":o.enlargeTransitionMs,grayscale:o.grayscale,"overlay-blur-color":o.overlayBlurColor,"image-border-radius":o.imageBorderRadius,"opened-image-width":o.openedImageWidth,"opened-image-height":o.openedImageHeight},null,8,["images","fit","fit-basis","min-radius","segments","drag-sensitivity","enlarge-transition-ms","grayscale","overlay-blur-color","image-border-radius","opened-image-width","opened-image-height"])],2))}}),pi=["src","alt"],vi=e.defineComponent({__name:"ExpandableGallery",props:{images:{},class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)(t.class))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.images,n=>(e.openBlock(),e.createElementBlock("div",{key:n,class:"relative flex h-full flex-1 cursor-pointer overflow-hidden rounded-xl transition-all duration-500 ease-in-out hover:flex-[3]"},[e.createElementVNode("img",{class:"relative h-full object-cover",src:n,alt:n},null,8,pi)]))),128))],2))}}),gi=e.defineComponent({__name:"index",props:{images:{},classList:{}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createBlock(vi,{images:o.images,class:e.normalizeClass([o.classList?.overallClass,i.value])},null,8,["images","class"]))}}),xi=e.defineComponent({__name:"FluidCursor",props:{simResolution:{default:128},dyeResolution:{default:1440},captureResolution:{default:512},densityDissipation:{default:3.5},velocityDissipation:{default:2},pressure:{default:.1},pressureIterations:{default:20},curl:{default:3},splatRadius:{default:.2},splatForce:{default:6e3},shading:{type:Boolean,default:!0},colorUpdateSpeed:{default:10},backColor:{default:()=>({r:.5,g:0,b:0})},transparent:{type:Boolean,default:!0},class:{}},setup(o){const t=o;function i(){return{id:-1,texcoordX:0,texcoordY:0,prevTexcoordX:0,prevTexcoordY:0,deltaX:0,deltaY:0,down:!1,moved:!1,color:{r:0,g:0,b:0}}}const s=e.ref(null);return e.onMounted(()=>{const n=s.value;if(!n)return;const r=[i()],l={SIM_RESOLUTION:t.simResolution,DYE_RESOLUTION:t.dyeResolution,CAPTURE_RESOLUTION:t.captureResolution,DENSITY_DISSIPATION:t.densityDissipation,VELOCITY_DISSIPATION:t.velocityDissipation,PRESSURE:t.pressure,PRESSURE_ITERATIONS:t.pressureIterations,CURL:t.curl,SPLAT_RADIUS:t.splatRadius,SPLAT_FORCE:t.splatForce,SHADING:t.shading,COLOR_UPDATE_SPEED:t.colorUpdateSpeed,BACK_COLOR:t.backColor,TRANSPARENT:t.transparent},{gl:a,ext:c}=u(n);if(!a||!c)return;c.supportLinearFiltering||(l.DYE_RESOLUTION=256,l.SHADING=!1);function u(g){const B={alpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1};let T=g.getContext("webgl2",B);if(T||(T=g.getContext("webgl",B)||g.getContext("experimental-webgl",B)),!T)throw new Error("Unable to initialize WebGL.");const P="drawBuffers"in T;let O=!1,ee=null;P?(T.getExtension("EXT_color_buffer_float"),O=!!T.getExtension("OES_texture_float_linear")):(ee=T.getExtension("OES_texture_half_float"),O=!!T.getExtension("OES_texture_half_float_linear")),T.clearColor(0,0,0,1);const ne=P?T.HALF_FLOAT:ee&&ee.HALF_FLOAT_OES||0;let ke,Se,Le;return P?(ke=d(T,T.RGBA16F,T.RGBA,ne),Se=d(T,T.RG16F,T.RG,ne),Le=d(T,T.R16F,T.RED,ne)):(ke=d(T,T.RGBA,T.RGBA,ne),Se=d(T,T.RGBA,T.RGBA,ne),Le=d(T,T.RGBA,T.RGBA,ne)),{gl:T,ext:{formatRGBA:ke,formatRG:Se,formatR:Le,halfFloatTexType:ne,supportLinearFiltering:O}}}function d(g,B,T,P){if(!m(g,B,T,P)){if("drawBuffers"in g){const O=g;switch(B){case O.R16F:return d(O,O.RG16F,O.RG,P);case O.RG16F:return d(O,O.RGBA16F,O.RGBA,P);default:return null}}return null}return{internalFormat:B,format:T}}function m(g,B,T,P){const O=g.createTexture();if(!O)return!1;g.bindTexture(g.TEXTURE_2D,O),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.NEAREST),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.NEAREST),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),g.texImage2D(g.TEXTURE_2D,0,B,4,4,0,T,P,null);const ee=g.createFramebuffer();return ee?(g.bindFramebuffer(g.FRAMEBUFFER,ee),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,O,0),g.checkFramebufferStatus(g.FRAMEBUFFER)===g.FRAMEBUFFER_COMPLETE):!1}function h(g){if(!g.length)return 0;let B=0;for(let T=0;T<g.length;T++)B=(B<<5)-B+g.charCodeAt(T),B|=0;return B}function f(g,B){if(!B)return g;let T="";for(const P of B)T+=`#define ${P}
162
- `;return T+g}function x(g,B,T=null){const P=f(B,T),O=a.createShader(g);return O?(a.shaderSource(O,P),a.compileShader(O),O):null}function v(g,B){if(!g||!B)return null;const T=a.createProgram();return T?(a.attachShader(T,g),a.attachShader(T,B),a.linkProgram(T),T):null}function y(g){const B={},T=a.getProgramParameter(g,a.ACTIVE_UNIFORMS);for(let P=0;P<T;P++){const O=a.getActiveUniform(g,P);O&&(B[O.name]=a.getUniformLocation(g,O.name))}return B}class p{program;uniforms;constructor(B,T){this.program=v(B,T),this.uniforms=this.program?y(this.program):{}}bind(){this.program&&a.useProgram(this.program)}}class E{vertexShader;fragmentShaderSource;programs;activeProgram;uniforms;constructor(B,T){this.vertexShader=B,this.fragmentShaderSource=T,this.programs={},this.activeProgram=null,this.uniforms={}}setKeywords(B){let T=0;for(const O of B)T+=h(O);let P=this.programs[T];if(P==null){const O=x(a.FRAGMENT_SHADER,this.fragmentShaderSource,B);P=v(this.vertexShader,O),this.programs[T]=P}P!==this.activeProgram&&(P&&(this.uniforms=y(P)),this.activeProgram=P)}bind(){this.activeProgram&&a.useProgram(this.activeProgram)}}const k=x(a.VERTEX_SHADER,`
161
+ `,uniforms:{tMap:{value:m},uPlaneSizes:{value:[0,0]},uImageSizes:{value:[0,0]},uSpeed:{value:0},uTime:{value:100*Math.random()},uBorderRadius:{value:this.borderRadius}},transparent:!0});const v=new Image;v.crossOrigin="anonymous",v.src=this.image,v.onload=()=>{m.image=v,this.program.uniforms.uImageSizes.value=[v.naturalWidth,v.naturalHeight]}}createMesh(){this.plane=new G.Mesh(this.gl,{geometry:this.geometry,program:this.program}),this.plane.setParent(this.scene)}createTitle(){this.title=new u({gl:this.gl,plane:this.plane,renderer:this.renderer,text:this.text,textColor:this.textColor,font:this.font})}update(m,v){this.plane.position.x=this.x-m.current-this.extra;const g=this.plane.position.x,x=this.viewport.width/2;if(this.bend===0)this.plane.position.y=0,this.plane.rotation.z=0;else{const E=Math.abs(this.bend),w=(x*x+E*E)/(2*E),D=Math.min(Math.abs(g),x),O=w-Math.sqrt(w*w-D*D);this.bend>0?(this.plane.position.y=-O,this.plane.rotation.z=-Math.sign(g)*Math.asin(D/w)):(this.plane.position.y=O,this.plane.rotation.z=Math.sign(g)*Math.asin(D/w))}this.speed=m.current-m.last,this.program.uniforms.uTime.value+=.04,this.program.uniforms.uSpeed.value=this.speed;const p=this.plane.scale.x/2,k=this.viewport.width/2;this.isBefore=this.plane.position.x+p<-k,this.isAfter=this.plane.position.x-p>k,v==="right"&&this.isBefore&&(this.extra-=this.widthTotal,this.isBefore=this.isAfter=!1),v==="left"&&this.isAfter&&(this.extra+=this.widthTotal,this.isBefore=this.isAfter=!1)}onResize({screen:m,viewport:v}={}){m&&(this.screen=m),v&&(this.viewport=v,this.plane.program.uniforms.uViewportSizes&&(this.plane.program.uniforms.uViewportSizes.value=[this.viewport.width,this.viewport.height])),this.scale=this.screen.height/1500,this.plane.scale.y=this.viewport.height*(900*this.scale)/this.screen.height,this.plane.scale.x=this.viewport.width*(700*this.scale)/this.screen.width,this.plane.program.uniforms.uPlaneSizes.value=[this.plane.scale.x,this.plane.scale.y],this.padding=2,this.width=this.plane.scale.x+this.padding,this.widthTotal=this.width*this.length,this.x=this.width*this.index}}class f{container;scroll;onCheckDebounce;renderer;gl;camera;scene;planeGeometry;medias=[];mediasImages=[];screen;viewport;raf=0;boundOnResize;boundOnWheel;boundOnTouchDown;boundOnTouchMove;boundOnTouchUp;isDown=!1;start=0;constructor(m,{items:v,bend:g=1,textColor:x="#ffffff",borderRadius:p=0,font:k="bold 30px DM Sans"}){this.container=m,this.scroll={ease:.05,current:0,target:0,last:0},this.onCheckDebounce=n(this.onCheck.bind(this),200),this.createRenderer(),this.createCamera(),this.createScene(),this.onResize(),this.createGeometry(),this.createMedias(v,g,x,p,k),this.update(),this.addEventListeners()}createRenderer(){this.renderer=new G.Renderer({alpha:!0}),this.gl=this.renderer.gl,this.gl.clearColor(0,0,0,0),this.container.appendChild(this.renderer.gl.canvas)}createCamera(){this.camera=new G.Camera(this.gl),this.camera.fov=45,this.camera.position.z=20}createScene(){this.scene=new G.Transform}createGeometry(){this.planeGeometry=new G.Plane(this.gl,{heightSegments:50,widthSegments:100})}createMedias(m,v=1,g,x,p){const k=[{image:"https://picsum.photos/seed/1/800/600?grayscale",text:"Bridge"},{image:"https://picsum.photos/seed/2/800/600?grayscale",text:"Desk Setup"},{image:"https://picsum.photos/seed/3/800/600?grayscale",text:"Waterfall"},{image:"https://picsum.photos/seed/4/800/600?grayscale",text:"Strawberries"},{image:"https://picsum.photos/seed/5/800/600?grayscale",text:"Deep Diving"},{image:"https://picsum.photos/seed/16/800/600?grayscale",text:"Train Track"},{image:"https://picsum.photos/seed/17/800/600?grayscale",text:"Santorini"},{image:"https://picsum.photos/seed/8/800/600?grayscale",text:"Blurry Lights"},{image:"https://picsum.photos/seed/9/800/600?grayscale",text:"New York"},{image:"https://picsum.photos/seed/10/800/600?grayscale",text:"Good Boy"},{image:"https://picsum.photos/seed/21/800/600?grayscale",text:"Coastline"},{image:"https://picsum.photos/seed/12/800/600?grayscale",text:"Palm Trees"}],E=m&&m.length?m:k;this.mediasImages=E.concat(E),this.medias=this.mediasImages.map((w,D)=>new h({geometry:this.planeGeometry,gl:this.gl,image:w.image,index:D,length:this.mediasImages.length,renderer:this.renderer,scene:this.scene,screen:this.screen,text:w.text,viewport:this.viewport,bend:v,textColor:g,borderRadius:x,font:p}))}onTouchDown(m){this.isDown=!0,this.scroll.position=this.scroll.current,this.start="touches"in m?m.touches[0].clientX:m.clientX}onTouchMove(m){if(!this.isDown)return;const v="touches"in m?m.touches[0].clientX:m.clientX,g=(this.start-v)*.05;this.scroll.target=(this.scroll.position??0)+g}onTouchUp(){this.isDown=!1,this.onCheck()}onWheel(){this.scroll.target+=2,this.onCheckDebounce()}onCheck(){if(!this.medias||!this.medias[0])return;const m=this.medias[0].width,v=Math.round(Math.abs(this.scroll.target)/m),g=m*v;this.scroll.target=this.scroll.target<0?-g:g}onResize(){this.screen={width:this.container.clientWidth,height:this.container.clientHeight},this.renderer.setSize(this.screen.width,this.screen.height),this.camera.perspective({aspect:this.screen.width/this.screen.height});const m=this.camera.fov*Math.PI/180,v=2*Math.tan(m/2)*this.camera.position.z,g=v*this.camera.aspect;this.viewport={width:g,height:v},this.medias&&this.medias.forEach(x=>x.onResize({screen:this.screen,viewport:this.viewport}))}update(){this.scroll.current=r(this.scroll.current,this.scroll.target,this.scroll.ease);const m=this.scroll.current>this.scroll.last?"right":"left";this.medias&&this.medias.forEach(v=>v.update(this.scroll,m)),this.renderer.render({scene:this.scene,camera:this.camera}),this.scroll.last=this.scroll.current,this.raf=window.requestAnimationFrame(this.update.bind(this))}addEventListeners(){this.boundOnResize=this.onResize.bind(this),this.boundOnWheel=this.onWheel.bind(this),this.boundOnTouchDown=this.onTouchDown.bind(this),this.boundOnTouchMove=this.onTouchMove.bind(this),this.boundOnTouchUp=this.onTouchUp.bind(this),window.addEventListener("resize",this.boundOnResize),window.addEventListener("mousewheel",this.boundOnWheel),window.addEventListener("wheel",this.boundOnWheel),window.addEventListener("mousedown",this.boundOnTouchDown),window.addEventListener("mousemove",this.boundOnTouchMove),window.addEventListener("mouseup",this.boundOnTouchUp),window.addEventListener("touchstart",this.boundOnTouchDown),window.addEventListener("touchmove",this.boundOnTouchMove),window.addEventListener("touchend",this.boundOnTouchUp)}destroy(){window.cancelAnimationFrame(this.raf),window.removeEventListener("resize",this.boundOnResize),window.removeEventListener("mousewheel",this.boundOnWheel),window.removeEventListener("wheel",this.boundOnWheel),window.removeEventListener("mousedown",this.boundOnTouchDown),window.removeEventListener("mousemove",this.boundOnTouchMove),window.removeEventListener("mouseup",this.boundOnTouchUp),window.removeEventListener("touchstart",this.boundOnTouchDown),window.removeEventListener("touchmove",this.boundOnTouchMove),window.removeEventListener("touchend",this.boundOnTouchUp),this.renderer&&this.renderer.gl&&this.renderer.gl.canvas.parentNode&&this.renderer.gl.canvas.parentNode.removeChild(this.renderer.gl.canvas)}}return e.onMounted(()=>{i.value&&(s=new f(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font}))}),e.watch([()=>t.bend,()=>t.textColor,()=>t.borderRadius,()=>t.font],()=>{s&&(s.destroy(),s=null),i.value&&(s=new f(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font}))}),e.watch(()=>t.items,()=>{s&&(s.destroy(),s=null),i.value&&(s=new f(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font}))},{deep:!0}),e.onBeforeUnmount(()=>{s&&(s.destroy(),s=null)}),(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:"w-full h-full overflow-hidden cursor-grab active:cursor-grabbing"},null,512))}}),_s=e.defineComponent({__name:"index",props:{items:{default:()=>[{image:"https://images.pexels.com/photos/799443/pexels-photo-799443.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/16245254/pexels-photo-16245254/free-photo-of-chatgpt-a-chatbot-for-your-website.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/1910236/pexels-photo-1910236.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/2832382/pexels-photo-2832382.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""},{image:"https://images.pexels.com/photos/2333293/pexels-photo-2333293.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",text:""}]},bend:{default:2},borderRadius:{default:.1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"h-96 w-full border border-zinc-800 rounded-xl overflow-clip flex flex-col items-center justify-center gap-24",i.value])},[e.createVNode(Ms,{items:o.items,bend:o.bend,"border-radius":o.borderRadius},null,8,["items","bend","border-radius"])],2))}}),Bs=e.defineComponent({__name:"BentoGrid",props:{class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("grid md:auto-rows-[18rem] grid-cols-1 md:grid-cols-3 gap-4 max-w-7xl mx-auto ",t.class))},[e.renderSlot(i.$slots,"default")],2))}}),Ds={class:"transition duration-200 group-hover/bento:translate-x-2"},Rs={class:"my-2 font-sans font-bold text-neutral-600 dark:text-neutral-200"},Ls={class:"font-sans text-xs font-normal text-neutral-600 dark:text-neutral-300"},Is=e.defineComponent({__name:"BentoGridltem",props:{class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("row-span-1 rounded-xl group/bento hover:shadow-xl transition duration-200 shadow-input dark:shadow-none p-4 dark:bg-black dark:border-white/[0.2] bg-white border border-transparent justify-between flex flex-col space-y-4",t.class))},[e.renderSlot(i.$slots,"header"),e.createElementVNode("div",Ds,[e.renderSlot(i.$slots,"icon"),e.createElementVNode("div",Rs,[e.renderSlot(i.$slots,"title")]),e.createElementVNode("div",Ls,[e.renderSlot(i.$slots,"description")])])],2))}}),zs={class:"flex size-full animate-pulse space-x-4"},As={class:"flex size-full flex-1 rounded-md bg-zinc-800 relative overflow-hidden"},Ps=["src","alt"],Ns=e.defineComponent({__name:"index",props:{items:{default:()=>[{title:"The Dawn of Innovation",description:"Explore the birth of groundbreaking ideas and inventions."},{title:"The Digital Revolution",description:"Dive into the transformative power of technology."},{title:"The Art of Design",description:"Discover the beauty of thoughtful and experience design."},{title:"The Power of Communication",description:"Understand the impact of effective communication in our lives."},{title:"The Pursuit of Knowledge",description:"Join the quest for understanding and enlightenment."},{title:"The Joy of Creation",description:"Experience the thrill of bringing ideas to life."},{title:"The Spirit of Adventure",description:"Embark on exciting journeys and thrilling discoveries."}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return t.classList?.overallClass&&n.push(t.classList.overallClass),s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||"mx-auto max-w-4xl"});return(s,n)=>(e.openBlock(),e.createBlock(Bs,{class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,(r,l)=>(e.openBlock(),e.createBlock(Is,{key:l,class:e.normalizeClass(r.colSpan||"")},{header:e.withCtx(()=>[e.createElementVNode("div",zs,[e.createElementVNode("div",As,[r.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:r.image,alt:r.title,class:"absolute inset-0 size-full object-cover rounded-md"},null,8,Ps)):e.createCommentVNode("",!0)])])]),title:e.withCtx(()=>[e.createElementVNode("strong",null,e.toDisplayString(r.title),1)]),icon:e.withCtx(()=>[...n[0]||(n[0]=[])]),description:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(r.description),1)]),_:2},1032,["class"]))),128))]),_:1},8,["class"]))}}),Tt=new $e.Vector3,Vs=new $e.Quaternion,Mt=new $e.Vector3;class Fs extends $e.Object3D{constructor(t=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(i){i.element instanceof i.element.ownerDocument.defaultView.Element&&i.element.parentNode!==null&&i.element.remove()})})}copy(t,i){return super.copy(t,i),this.element=t.element.cloneNode(!0),this}}const _e=new $e.Matrix4,Os=new $e.Matrix4;class Us{constructor(t={}){const i=this;let s,n,r,l;const a={camera:{style:""},objects:new WeakMap},c=t.element!==void 0?t.element:document.createElement("div");c.style.overflow="hidden",this.domElement=c;const u=document.createElement("div");u.style.transformOrigin="0 0",u.style.pointerEvents="none",c.appendChild(u);const h=document.createElement("div");h.style.transformStyle="preserve-3d",u.appendChild(h),this.getSize=function(){return{width:s,height:n}},this.render=function(x,p){const k=p.projectionMatrix.elements[5]*l;p.view&&p.view.enabled?(u.style.transform=`translate( ${-p.view.offsetX*(s/p.view.width)}px, ${-p.view.offsetY*(n/p.view.height)}px )`,u.style.transform+=`scale( ${p.view.fullWidth/p.view.width}, ${p.view.fullHeight/p.view.height} )`):u.style.transform="",x.matrixWorldAutoUpdate===!0&&x.updateMatrixWorld(),p.parent===null&&p.matrixWorldAutoUpdate===!0&&p.updateMatrixWorld();let E,w;p.isOrthographicCamera&&(E=-(p.right+p.left)/2,w=(p.top+p.bottom)/2);const D=p.view&&p.view.enabled?p.view.height/p.view.fullHeight:1,O=p.isOrthographicCamera?`scale( ${D} )scale(`+k+")translate("+f(E)+"px,"+f(w)+"px)"+d(p.matrixWorldInverse):`scale( ${D} )translateZ(`+k+"px)"+d(p.matrixWorldInverse),S=(p.isPerspectiveCamera?"perspective("+k+"px) ":"")+O+"translate("+r+"px,"+l+"px)";a.camera.style!==S&&(h.style.transform=S,a.camera.style=S),g(x,x,p)},this.setSize=function(x,p){s=x,n=p,r=s/2,l=n/2,c.style.width=x+"px",c.style.height=p+"px",u.style.width=x+"px",u.style.height=p+"px",h.style.width=x+"px",h.style.height=p+"px"};function f(x){return Math.abs(x)<1e-10?0:x}function d(x){const p=x.elements;return"matrix3d("+f(p[0])+","+f(-p[1])+","+f(p[2])+","+f(p[3])+","+f(p[4])+","+f(-p[5])+","+f(p[6])+","+f(p[7])+","+f(p[8])+","+f(-p[9])+","+f(p[10])+","+f(p[11])+","+f(p[12])+","+f(-p[13])+","+f(p[14])+","+f(p[15])+")"}function m(x){const p=x.elements;return"translate(-50%,-50%)"+("matrix3d("+f(p[0])+","+f(p[1])+","+f(p[2])+","+f(p[3])+","+f(-p[4])+","+f(-p[5])+","+f(-p[6])+","+f(-p[7])+","+f(p[8])+","+f(p[9])+","+f(p[10])+","+f(p[11])+","+f(p[12])+","+f(p[13])+","+f(p[14])+","+f(p[15])+")")}function v(x){x.isCSS3DObject&&(x.element.style.display="none");for(let p=0,k=x.children.length;p<k;p++)v(x.children[p])}function g(x,p,k,E){if(x.visible===!1){v(x);return}if(x.isCSS3DObject){const w=x.layers.test(k.layers)===!0,D=x.element;if(D.style.display=w===!0?"":"none",w===!0){x.onBeforeRender(i,p,k);let O;x.isCSS3DSprite?(_e.copy(k.matrixWorldInverse),_e.transpose(),x.rotation2D!==0&&_e.multiply(Os.makeRotationZ(x.rotation2D)),x.matrixWorld.decompose(Tt,Vs,Mt),_e.setPosition(Tt),_e.scale(Mt),_e.elements[3]=0,_e.elements[7]=0,_e.elements[11]=0,_e.elements[15]=1,O=m(_e)):O=m(x.matrixWorld);const H=a.objects.get(x);if(H===void 0||H.style!==O){D.style.transform=O;const S={style:O};a.objects.set(x,S)}D.parentNode!==h&&h.appendChild(D),x.onAfterRender(i,p,k)}}for(let w=0,D=x.children.length;w<D;w++)g(x.children[w],p,k)}}}const $s=.0025,Hs=e.defineComponent({__name:"Carousel3D",props:{items:{default:()=>[]},class:{default:""},containerClass:{default:""},width:{default:450},height:{default:600}},setup(o){const t=o,i=e.ref(),s=e.ref(!1),n=e.ref(0),r=e.ref(0),l=new nt.Scene,a=new nt.PerspectiveCamera(50,1,1,5e3);let c;const u=e.ref(750);let h,f=e.ref(null);e.onMounted(()=>{if(!i.value)return;c=new Us;const w=i.value.clientWidth,D=i.value.clientHeight;c.setSize(w,D),i.value.appendChild(c.domElement),a.position.z=550,a.position.y=70,h=new nt.Object3D,l.add(h),t.items.forEach((O,H)=>{const S=document.createElement("div");S.style.width=`${t.width}px`,S.style.height=`${t.height}px`,S.classList.add("rounded-lg"),S.style.backgroundImage=`url(${O})`,S.style.backgroundSize="cover";const C=new Fs(S),T=H/t.items.length*Math.PI*2;C.position.setFromSphericalCoords(u.value,Math.PI/2,T),C.lookAt(h.position),h.add(C)}),h.rotation.x=nt.MathUtils.degToRad(20),d(),window.addEventListener("resize",E)});function d(){f.value&&f.value.stop();const w=h.rotation.y,D=w+Math.PI*2;f.value=xe.animate(w,D,{duration:20,ease:"linear",repeat:1/0,repeatType:"loop",onUpdate:O=>{h.rotation.y=O,c.render(l,a)}})}function m(w){s.value=!0,n.value="touches"in w?w.touches[0].clientX:w.clientX,r.value=n.value,f.value&&(f.value.stop(),f.value=null)}function v(){s.value&&(s.value=!1,d())}function g(w){s.value&&k(w.clientX)}function x(w){m(w)}function p(w){s.value&&(w.preventDefault(),k(w.touches[0].clientX))}function k(w){const D=w-r.value;r.value=w,h.rotation.y+=-D*$s,c.render(l,a)}function E(){if(!i.value)return;const w=i.value.clientWidth,D=i.value.clientHeight;u.value=w/3,a.aspect=w/D,a.updateProjectionMatrix(),c.setSize(w,D)}return e.onBeforeUnmount(()=>{i.value&&c&&i.value.removeChild(c.domElement),window.removeEventListener("resize",E),f.value&&f.value.stop()}),(w,D)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"carouselContainer",ref:i,class:e.normalizeClass(e.unref(J)("w-full h-[60vh] relative",t.containerClass))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)("absolute top-[40%] translate-y-[-50%] left-0 w-full h-[80%] z-[100]",t.class)),onMousedown:m,onMouseup:v,onMouseleave:v,onMousemove:g,onTouchstart:x,onTouchend:v,onTouchmove:p},null,34)],2))}}),Gs=e.defineComponent({__name:"index",props:{items:{default:()=>["https://images.pexels.com/photos/799443/pexels-photo-799443.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/16245254/pexels-photo-16245254/free-photo-of-chatgpt-a-chatbot-for-your-website.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/1910236/pexels-photo-1910236.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/2832382/pexels-photo-2832382.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/2333293/pexels-photo-2333293.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/604684/pexels-photo-604684.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/3308588/pexels-photo-3308588.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2","https://images.pexels.com/photos/2860807/pexels-photo-2860807.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"w-full h-auto",i.value])},[e.createVNode(Hs,{items:o.items},null,8,["items"])],2))}}),Ys=e.defineComponent({__name:"CircularGallery",props:{items:{},bend:{default:3},textColor:{default:"#ffffff"},borderRadius:{default:.05},font:{default:"bold 30px Figtree"},scrollSpeed:{default:2},scrollEase:{default:.05},autoplay:{type:Boolean,default:!1},autoplaySpeed:{default:.5},scale:{default:1}},setup(o){const t=o,i=e.useTemplateRef("containerRef");let s=null;function n(d,m){let v;return function(...g){window.clearTimeout(v),v=window.setTimeout(()=>d.apply(this,g),m)}}function r(d,m,v){return d+(m-d)*v}function l(d){const m=Object.getPrototypeOf(d);m&&Object.getOwnPropertyNames(m).forEach(v=>{if(v!=="constructor"){const g=Object.getOwnPropertyDescriptor(m,v);if(g&&typeof g.value=="function"){const x=g.value;d[v]=x.bind(d)}}})}function a(d){const m=d.match(/(\d+)px/);return m?parseInt(m[1],10):30}function c(d,m,v="bold 30px monospace",g="black"){const x=document.createElement("canvas"),p=x.getContext("2d");if(!p)throw new Error("Could not get 2d context");p.font=v;const k=p.measureText(m),E=Math.ceil(k.width),w=a(v),D=Math.ceil(w*1.2);x.width=E+20,x.height=D+20,p.font=v,p.fillStyle=g,p.textBaseline="middle",p.textAlign="center",p.clearRect(0,0,x.width,x.height),p.fillText(m,x.width/2,x.height/2);const O=new G.Texture(d,{generateMipmaps:!1});return O.image=x,{texture:O,width:x.width,height:x.height}}class u{gl;plane;renderer;text;textColor;font;mesh;constructor({gl:m,plane:v,renderer:g,text:x,textColor:p="#545050",font:k="30px sans-serif"}){l(this),this.gl=m,this.plane=v,this.renderer=g,this.text=x,this.textColor=p,this.font=k,this.createMesh()}createMesh(){const{texture:m,width:v,height:g}=c(this.gl,this.text,this.font,this.textColor),x=new G.Plane(this.gl),p=new G.Program(this.gl,{vertex:`
162
+ attribute vec3 position;
163
+ attribute vec2 uv;
164
+ uniform mat4 modelViewMatrix;
165
+ uniform mat4 projectionMatrix;
166
+ varying vec2 vUv;
167
+ void main() {
168
+ vUv = uv;
169
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
170
+ }
171
+ `,fragment:`
172
+ precision highp float;
173
+ uniform sampler2D tMap;
174
+ varying vec2 vUv;
175
+ void main() {
176
+ vec4 color = texture2D(tMap, vUv);
177
+ if (color.a < 0.1) discard;
178
+ gl_FragColor = color;
179
+ }
180
+ `,uniforms:{tMap:{value:m}},transparent:!0});this.mesh=new G.Mesh(this.gl,{geometry:x,program:p});const k=v/g,E=this.plane.scale.y*.15,w=E*k*.8;this.mesh.scale.set(w,E,1),this.mesh.position.y=-this.plane.scale.y*.5-E*.5-.05,this.mesh.setParent(this.plane)}}class h{extra=0;geometry;gl;image;index;length;renderer;scene;screen;text;viewport;bend;textColor;borderRadius;font;imageScale;program;plane;title;scale;padding;width;widthTotal;x;speed=0;isBefore=!1;isAfter=!1;constructor({geometry:m,gl:v,image:g,index:x,length:p,renderer:k,scene:E,screen:w,text:D,viewport:O,bend:H,textColor:S,borderRadius:C=0,font:T,imageScale:R=1}){this.geometry=m,this.gl=v,this.image=g,this.index=x,this.length=p,this.renderer=k,this.scene=E,this.screen=w,this.text=D,this.viewport=O,this.bend=H,this.textColor=S,this.borderRadius=C,this.font=T,this.imageScale=R,this.createShader(),this.createMesh(),this.createTitle(),this.onResize()}createShader(){const m=new G.Texture(this.gl,{generateMipmaps:!1});this.program=new G.Program(this.gl,{depthTest:!1,depthWrite:!1,vertex:`
181
+ precision highp float;
182
+ attribute vec3 position;
183
+ attribute vec2 uv;
184
+ uniform mat4 modelViewMatrix;
185
+ uniform mat4 projectionMatrix;
186
+ varying vec2 vUv;
187
+ void main() {
188
+ vUv = uv;
189
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
190
+ }
191
+ `,fragment:`
192
+ precision highp float;
193
+ uniform vec2 uImageSizes;
194
+ uniform vec2 uPlaneSizes;
195
+ uniform sampler2D tMap;
196
+ uniform float uBorderRadius;
197
+ varying vec2 vUv;
198
+
199
+ float roundedBoxSDF(vec2 p, vec2 b, float r) {
200
+ vec2 d = abs(p) - b;
201
+ return length(max(d, vec2(0.0))) + min(max(d.x, d.y), 0.0) - r;
202
+ }
203
+
204
+ void main() {
205
+ vec2 ratio = vec2(
206
+ min((uPlaneSizes.x / uPlaneSizes.y) / (uImageSizes.x / uImageSizes.y), 1.0),
207
+ min((uPlaneSizes.y / uPlaneSizes.x) / (uImageSizes.y / uImageSizes.x), 1.0)
208
+ );
209
+ vec2 uv = vec2(
210
+ vUv.x * ratio.x + (1.0 - ratio.x) * 0.5,
211
+ vUv.y * ratio.y + (1.0 - ratio.y) * 0.5
212
+ );
213
+ vec4 color = texture2D(tMap, uv);
214
+
215
+ float d = roundedBoxSDF(vUv - 0.5, vec2(0.5 - uBorderRadius), uBorderRadius);
216
+ if(d > 0.0) {
217
+ discard;
218
+ }
219
+
220
+ gl_FragColor = vec4(color.rgb, 1.0);
221
+ }
222
+ `,uniforms:{tMap:{value:m},uPlaneSizes:{value:[0,0]},uImageSizes:{value:[0,0]},uBorderRadius:{value:this.borderRadius}},transparent:!0});const v=new Image;v.crossOrigin="anonymous",v.src=this.image,v.onload=()=>{m.image=v,this.program.uniforms.uImageSizes.value=[v.naturalWidth,v.naturalHeight]}}createMesh(){this.plane=new G.Mesh(this.gl,{geometry:this.geometry,program:this.program}),this.plane.setParent(this.scene)}createTitle(){this.title=new u({gl:this.gl,plane:this.plane,renderer:this.renderer,text:this.text,textColor:this.textColor,font:this.font})}update(m,v){this.plane.position.x=this.x-m.current-this.extra;const g=this.plane.position.x,x=this.viewport.width/2;if(this.bend===0)this.plane.position.y=.5,this.plane.rotation.z=0;else{const E=Math.abs(this.bend),w=(x*x+E*E)/(2*E),D=Math.min(Math.abs(g),x),O=w-Math.sqrt(w*w-D*D);this.bend>0?(this.plane.position.y=-O+.5,this.plane.rotation.z=-Math.sign(g)*Math.asin(D/w)):(this.plane.position.y=O+.5,this.plane.rotation.z=Math.sign(g)*Math.asin(D/w))}const p=this.plane.scale.x/2,k=this.viewport.width/2;this.isBefore=this.plane.position.x+p<-k,this.isAfter=this.plane.position.x-p>k,v==="right"&&this.isBefore&&(this.extra-=this.widthTotal,this.isBefore=this.isAfter=!1),v==="left"&&this.isAfter&&(this.extra+=this.widthTotal,this.isBefore=this.isAfter=!1)}onResize({screen:m,viewport:v}={}){m&&(this.screen=m),v&&(this.viewport=v,this.plane.program.uniforms.uViewportSizes&&(this.plane.program.uniforms.uViewportSizes.value=[this.viewport.width,this.viewport.height])),this.scale=this.screen.height/1500,this.plane.scale.y=this.viewport.height*(1200*this.scale*this.imageScale)/this.screen.height,this.plane.scale.x=this.viewport.width*(1500*this.scale*this.imageScale)/this.screen.width,this.plane.program.uniforms.uPlaneSizes.value=[this.plane.scale.x,this.plane.scale.y],this.padding=2,this.width=this.plane.scale.x+this.padding,this.widthTotal=this.width*this.length,this.x=this.width*this.index}}class f{container;scrollSpeed;scroll;onCheckDebounce;renderer;gl;camera;scene;planeGeometry;medias=[];mediasImages=[];screen;viewport;raf=0;boundOnResize;boundOnWheel;boundOnTouchDown;boundOnTouchMove;boundOnTouchUp;isDown=!1;start=0;autoplay=!1;autoplaySpeed=.5;imageScale=1;constructor(m,{items:v,bend:g=1,textColor:x="#ffffff",borderRadius:p=0,font:k="bold 30px Figtree",scrollSpeed:E=2,scrollEase:w=.05,autoplay:D=!1,autoplaySpeed:O=.5,scale:H=1}){document.documentElement.classList.remove("no-js"),this.container=m,this.scrollSpeed=E,this.scroll={ease:w,current:0,target:0,last:0},this.onCheckDebounce=n(this.onCheck.bind(this),200),this.autoplay=D,this.autoplaySpeed=O,this.imageScale=H,this.createRenderer(),this.createCamera(),this.createScene(),this.onResize(),this.createGeometry(),this.createMedias(v,g,x,p,k),this.update(),this.addEventListeners()}createRenderer(){this.renderer=new G.Renderer({alpha:!0}),this.gl=this.renderer.gl,this.gl.clearColor(0,0,0,0),this.container.appendChild(this.renderer.gl.canvas)}createCamera(){this.camera=new G.Camera(this.gl),this.camera.fov=45,this.camera.position.z=20}createScene(){this.scene=new G.Transform}createGeometry(){this.planeGeometry=new G.Plane(this.gl,{heightSegments:50,widthSegments:100})}createMedias(m,v=1,g,x,p){const k=[{image:"https://picsum.photos/seed/1/800/600?grayscale",text:"Bridge"},{image:"https://picsum.photos/seed/2/800/600?grayscale",text:"Desk Setup"},{image:"https://picsum.photos/seed/3/800/600?grayscale",text:"Waterfall"},{image:"https://picsum.photos/seed/4/800/600?grayscale",text:"Strawberries"},{image:"https://picsum.photos/seed/5/800/600?grayscale",text:"Deep Diving"},{image:"https://picsum.photos/seed/16/800/600?grayscale",text:"Train Track"},{image:"https://picsum.photos/seed/17/800/600?grayscale",text:"Santorini"},{image:"https://picsum.photos/seed/8/800/600?grayscale",text:"Blurry Lights"},{image:"https://picsum.photos/seed/9/800/600?grayscale",text:"New York"},{image:"https://picsum.photos/seed/10/800/600?grayscale",text:"Good Boy"},{image:"https://picsum.photos/seed/21/800/600?grayscale",text:"Coastline"},{image:"https://picsum.photos/seed/12/800/600?grayscale",text:"Palm Trees"}],E=m&&m.length?m:k;this.mediasImages=E.concat(E),this.medias=this.mediasImages.map((w,D)=>new h({geometry:this.planeGeometry,gl:this.gl,image:w.image,index:D,length:this.mediasImages.length,renderer:this.renderer,scene:this.scene,screen:this.screen,text:w.text,viewport:this.viewport,bend:v,textColor:g,borderRadius:x,font:p,imageScale:this.imageScale}))}onTouchDown(m){this.isDown=!0,this.scroll.position=this.scroll.current,this.start="touches"in m?m.touches[0].clientX:m.clientX}onTouchMove(m){if(!this.isDown)return;const v="touches"in m?m.touches[0].clientX:m.clientX,g=(this.start-v)*(this.scrollSpeed*.025);this.scroll.target=(this.scroll.position??0)+g}onTouchUp(){this.isDown=!1,this.onCheck()}onWheel(m){const v=m,g=v,x=v.deltaY??g.wheelDelta??g.detail??0;this.scroll.target+=x>0?this.scrollSpeed:-this.scrollSpeed,this.onCheckDebounce()}onCheck(){if(!this.medias||!this.medias[0])return;const m=this.medias[0].width,v=Math.round(Math.abs(this.scroll.target)/m),g=m*v;this.scroll.target=this.scroll.target<0?-g:g}onResize(){this.screen={width:this.container.clientWidth,height:this.container.clientHeight},this.renderer.setSize(this.screen.width,this.screen.height),this.camera.perspective({aspect:this.screen.width/this.screen.height});const m=this.camera.fov*Math.PI/180,v=2*Math.tan(m/2)*this.camera.position.z,g=v*this.camera.aspect;this.viewport={width:g,height:v},this.medias&&this.medias.forEach(x=>x.onResize({screen:this.screen,viewport:this.viewport}))}update(){this.autoplay&&!this.isDown&&(this.scroll.target+=this.autoplaySpeed),this.scroll.current=r(this.scroll.current,this.scroll.target,this.scroll.ease);const m=this.scroll.current>this.scroll.last?"right":"left";this.medias&&this.medias.forEach(v=>v.update(this.scroll,m)),this.renderer.render({scene:this.scene,camera:this.camera}),this.scroll.last=this.scroll.current,this.raf=window.requestAnimationFrame(this.update.bind(this))}addEventListeners(){this.boundOnResize=this.onResize.bind(this),this.boundOnWheel=this.onWheel.bind(this),this.boundOnTouchDown=this.onTouchDown.bind(this),this.boundOnTouchMove=this.onTouchMove.bind(this),this.boundOnTouchUp=this.onTouchUp.bind(this),window.addEventListener("resize",this.boundOnResize),this.container.addEventListener("wheel",this.boundOnWheel),this.container.addEventListener("mousedown",this.boundOnTouchDown),this.container.addEventListener("touchstart",this.boundOnTouchDown),window.addEventListener("mousemove",this.boundOnTouchMove),window.addEventListener("mouseup",this.boundOnTouchUp),window.addEventListener("touchmove",this.boundOnTouchMove),window.addEventListener("touchend",this.boundOnTouchUp)}destroy(){window.cancelAnimationFrame(this.raf),window.removeEventListener("resize",this.boundOnResize),window.removeEventListener("mousemove",this.boundOnTouchMove),window.removeEventListener("mouseup",this.boundOnTouchUp),window.removeEventListener("touchmove",this.boundOnTouchMove),window.removeEventListener("touchend",this.boundOnTouchUp),this.container.removeEventListener("wheel",this.boundOnWheel),this.container.removeEventListener("mousedown",this.boundOnTouchDown),this.container.removeEventListener("touchstart",this.boundOnTouchDown),this.renderer&&this.renderer.gl&&this.renderer.gl.canvas.parentNode&&this.renderer.gl.canvas.parentNode.removeChild(this.renderer.gl.canvas)}}return e.onMounted(()=>{i.value&&(s=new f(i.value,{items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font,scrollSpeed:t.scrollSpeed,scrollEase:t.scrollEase,autoplay:t.autoplay,autoplaySpeed:t.autoplaySpeed,scale:t.scale}))}),e.onUnmounted(()=>{s&&(s.destroy(),s=null)}),e.watch(()=>({items:t.items,bend:t.bend,textColor:t.textColor,borderRadius:t.borderRadius,font:t.font,scrollSpeed:t.scrollSpeed,scrollEase:t.scrollEase,autoplay:t.autoplay,autoplaySpeed:t.autoplaySpeed,scale:t.scale}),d=>{s&&s.destroy(),i.value&&(s=new f(i.value,d))},{deep:!0}),(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:"w-full h-full overflow-hidden cursor-grab active:cursor-grabbing"},null,512))}}),Ws=e.defineComponent({__name:"index",props:{items:{default:()=>[{image:"https://picsum.photos/800/600?random=1",text:"Beautiful Nature"},{image:"https://picsum.photos/800/600?random=2",text:"City Life"},{image:"https://picsum.photos/800/600?random=3",text:"Ocean Views"}]},bend:{default:0},autoplay:{type:Boolean,default:!0},autoplaySpeed:{default:.1},textColor:{default:"#ffffff"},borderRadius:{default:.05},font:{default:"bold 60px Arial"},scrollSpeed:{default:2},scrollEase:{default:.05},scale:{default:1},classList:{default:()=>({})}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.containerClass||"w-full h-[550px]")},[e.createVNode(Ys,{items:o.items,bend:o.bend,autoplay:o.autoplay,autoplaySpeed:o.autoplaySpeed,"text-color":o.textColor,"border-radius":o.borderRadius,font:o.font,"scroll-speed":o.scrollSpeed,"scroll-ease":o.scrollEase,scale:o.scale},null,8,["items","bend","autoplay","autoplaySpeed","text-color","border-radius","font","scroll-speed","scroll-ease","scale"])],2))}}),js={class:"size-full overflow-hidden rounded-2xl bg-gray-100 md:rounded-2xl md:p-4 dark:bg-zinc-900"},Xs=e.defineComponent({__name:"ContainerScrollCard",props:{rotate:Number,scale:Number},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle({transform:`rotateX(${o.rotate}deg) scale(${o.scale})`,boxShadow:"0 0 #0000004d, 0 9px 20px #0000004a, 0 37px 37px #00000042, 0 84px 50px #00000026, 0 149px 60px #0000000a, 0 233px 65px #00000003"}),class:"mx-auto -mt-12 h-[30rem] w-full max-w-5xl rounded-[30px] border-4 border-[#6C6C6C] bg-[#222222] p-2 shadow-2xl md:h-[40rem] md:p-6"},[e.createElementVNode("div",js,[e.renderSlot(t.$slots,"default")])],4))}}),qs=e.defineComponent({__name:"ContainerScrollTitle",props:{translate:Number},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle({transform:`translateY(${o.translate}px)`}),class:"mx-auto max-w-5xl text-center"},[e.renderSlot(t.$slots,"default")],4))}}),Zs={class:"relative w-full py-10 md:py-40",style:{perspective:"1000px"}},Ks=e.defineComponent({__name:"ContainerScroll",setup(o){const t=e.ref(null),i=e.ref(!1);function s(){i.value=window.innerWidth<=768}e.onMounted(()=>{s(),window.addEventListener("resize",s)}),e.onUnmounted(()=>{window.removeEventListener("resize",s)});const{height:n}=Ce.useWindowSize(),{y:r}=Ce.useScroll(window),{bottom:l}=Ce.useElementBounding(t),a=e.computed(()=>l.value?1-Math.max(0,l.value-r.value)/n.value:0),c=e.computed(()=>i.value?[.7,.9]:[1.05,1]),u=e.computed(()=>20*(1-a.value)),h=e.computed(()=>{const[d,m]=c.value;return d+(m-d)*a.value}),f=e.computed(()=>-100*a.value);return(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:t,class:"relative flex h-[60rem] items-center justify-center p-2 md:h-[80rem] md:p-20"},[e.createElementVNode("div",Zs,[e.createVNode(qs,{translate:f.value},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"title")]),_:3},8,["translate"]),e.createVNode(Xs,{rotate:u.value,scale:h.value},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"card")]),_:3},8,["rotate","scale"])])],512))}}),Js=["src"],Qs=e.defineComponent({__name:"index",props:{imageSrc:{default:""},title1:{default:""},title2:{default:""},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=[];t.classList?.overallClass?s.push(t.classList.overallClass):s.push("flex flex-col overflow-hidden");const n=t.classList?.Location;return n?.position&&s.push(n.position),n?.width&&s.push(n.width),n?.height&&s.push(n.height),n?.left&&s.push(n.left),n?.top&&s.push(n.top),s.join(" ")});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(Ks,null,{title:e.withCtx(()=>[e.createElementVNode("h1",{class:e.normalizeClass(o.classList?.h1Class||"text-4xl font-semibold text-black dark:text-white")},[e.createTextVNode(e.toDisplayString(o.title1)+" ",1),n[0]||(n[0]=e.createElementVNode("br",null,null,-1)),e.createElementVNode("span",{class:e.normalizeClass(o.classList?.spanClass||"mt-1 text-4xl font-bold leading-none md:text-[6rem]")},e.toDisplayString(o.title2),3)],2)]),card:e.withCtx(()=>[e.createElementVNode("img",{src:o.imageSrc,class:e.normalizeClass(o.classList?.imageClass||"mx-auto h-full rounded-2xl object-cover object-left-top"),alt:"hero",height:"720",width:"1400"},null,10,Js)]),_:1})],2))}}),ei={class:"relative size-full overflow-hidden"},ti=["src"],si=e.defineComponent({__name:"DirectionAwareHover",props:{imageUrl:{},childrenClass:{default:void 0},imageClass:{default:void 0},class:{default:void 0}},setup(o){const t=o,i=e.ref(null),s=e.ref(null),n=e.ref(!1),r=e.ref(!1);let l=null;function a(){r.value=window.matchMedia("(max-width: 768px)").matches||"ontouchstart"in window}function c(k){if(r.value||!i.value)return;switch(d(k,i.value)){case 0:s.value="top";break;case 1:s.value="right";break;case 2:s.value="bottom";break;case 3:s.value="left";break;default:s.value="left";break}}function u(){r.value||(s.value=null)}function h(k){if(!r.value||(n.value=!0,!i.value))return;const E=k.touches[0],w=new MouseEvent("mouseenter",{clientX:E.clientX,clientY:E.clientY});switch(d(w,i.value)){case 0:s.value="top";break;case 1:s.value="right";break;case 2:s.value="bottom";break;case 3:s.value="left";break;default:s.value="left";break}l&&clearTimeout(l),l=setTimeout(()=>{f()},3e3)}function f(){l&&(clearTimeout(l),l=null),setTimeout(()=>{s.value=null,n.value=!1},300)}function d(k,E){const{width:w,height:D,left:O,top:H}=E.getBoundingClientRect(),S=k.clientX-O-w/2*(w>D?D/w:1),C=k.clientY-H-D/2*(D>w?w/D:1);return Math.round(Math.atan2(C,S)/1.57079633+5)%4}const m=e.computed(()=>J("group/card relative overflow-hidden rounded-lg bg-transparent transition-all duration-300","h-48 w-48","xs:h-56 xs:w-56","sm:h-64 sm:w-64","md:h-80 md:w-80","lg:h-96 lg:w-96","xl:h-[28rem] xl:w-[28rem]","touch-manipulation","active:scale-[0.98]","md:active:scale-100",t.class)),v=e.computed(()=>J("h-full w-full object-cover transition-transform duration-300","scale-125","sm:scale-135","md:scale-150",t.imageClass)),g=e.computed(()=>J("absolute z-40 text-white transition-opacity duration-300","bottom-2 left-2 text-sm","sm:bottom-3 sm:left-3 sm:text-base","md:bottom-4 md:left-4 md:text-lg",t.childrenClass)),x=e.computed(()=>{const k="absolute inset-0 z-10 transition-all duration-300",E="bg-black/40 dark:bg-black/60";let w="";switch(s.value){case"top":w="-translate-y-full";break;case"bottom":w="translate-y-full";break;case"left":w="-translate-x-full";break;case"right":w="translate-x-full";break;default:w=""}return J(k,E,w)}),p=e.computed(()=>({"translate-y-2 md:translate-y-5":s.value==="top","-translate-y-2 md:-translate-y-5":s.value==="bottom","translate-x-2 md:translate-x-5":s.value==="left","-translate-x-2 md:-translate-x-5":s.value==="right"}));return e.onMounted(()=>{a(),window.addEventListener("resize",a)}),e.onUnmounted(()=>{window.removeEventListener("resize",a),l&&clearTimeout(l)}),(k,E)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"divRef",ref:i,class:e.normalizeClass(m.value),onMouseenter:c,onMouseleave:u,onTouchstart:h,onTouchend:f},[e.createElementVNode("div",ei,[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(x.value)},null,2),[[e.vShow,s.value!==null]])]),_:1}),e.createElementVNode("div",{class:e.normalizeClass(["relative size-full bg-gray-50 transition-transform duration-300 dark:bg-black",p.value])},[e.createElementVNode("img",{src:o.imageUrl,alt:"image",class:e.normalizeClass(v.value),width:"1000",height:"1000"},null,10,ti)],2),e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(g.value)},[e.renderSlot(k.$slots,"default",{},void 0,!0)],2),[[e.vShow,s.value!==null||n.value]])]),_:3})])],34))}}),ii=me(si,[["__scopeId","data-v-17828482"]]),oi=e.defineComponent({__name:"index",props:{items:{default:()=>[{imageUrl:"https://images.unsplash.com/photo-1728755833852-2c138c84cfb1?q=80&w=2672&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",title:"Beautiful Landscape",description:"Discover nature's wonders"},{imageUrl:"https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80",title:"Urban Adventure",description:"Explore the city lights",class:"border-2 border-blue-500 shadow-xl ring-2 ring-blue-200 dark:border-blue-400 dark:ring-blue-800",imageClass:"scale-110 hover:scale-125 transition-transform duration-500",childrenClass:"bg-gradient-to-t from-black/80 to-transparent p-3 sm:p-4 rounded-b-lg backdrop-blur-sm"},{imageUrl:"https://images.unsplash.com/photo-1664710476481-1213c456c56c?q=80&w=2672&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",title:"Culinary Delights",description:"Savor exquisite flavors",buttonText:"View Recipe",containerClass:"md:col-span-2 lg:col-span-1",class:"overflow-hidden rounded-xl shadow-2xl ring-1 ring-gray-300 dark:ring-gray-700",childrenClass:"bg-gradient-to-t from-black/90 via-black/40 to-transparent p-3 sm:p-4 rounded-b-xl"}]},classList:{default:()=>({})}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"container mx-auto p-4 sm:p-6 lg:p-8")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.gridClass||"grid grid-cols-2 gap-6 sm:gap-8 xl:gap-10")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,(s,n)=>(e.openBlock(),e.createElementBlock("div",{key:n,class:e.normalizeClass(["flex justify-center",s.containerClass])},[e.createVNode(ii,{"image-url":s.imageUrl,class:e.normalizeClass(s.class||"shadow-lg ring-1 ring-gray-200 dark:ring-gray-800"),"image-class":s.imageClass,"children-class":s.childrenClass},{default:e.withCtx(()=>[s.title?(e.openBlock(),e.createElementBlock("h2",{key:0,class:e.normalizeClass(["text-lg font-semibold sm:text-xl",s.titleClass])},e.toDisplayString(s.title),3)):e.createCommentVNode("",!0),s.description?(e.openBlock(),e.createElementBlock("p",{key:1,class:e.normalizeClass(["mt-1 text-sm opacity-90 sm:mt-2 sm:text-base",s.descriptionClass])},e.toDisplayString(s.description),3)):e.createCommentVNode("",!0),s.buttonText?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["mt-3 rounded-lg bg-white px-3 py-1.5 text-sm font-medium text-black transition-all hover:bg-gray-100 hover:scale-105 active:scale-95 sm:mt-4 sm:px-4 sm:py-2 sm:text-base",s.buttonClass])},e.toDisplayString(s.buttonText),3)):e.createCommentVNode("",!0)]),_:2},1032,["image-url","class","image-class","children-class"])],2))),128))],2)],2))}}),Ft=Symbol("mouse-x"),Ot=Symbol("mouse-y"),Ut=Symbol("magnification"),$t=Symbol("distance"),wt=Symbol("orientation"),ni=e.defineComponent({__name:"Dock",props:{class:{},magnification:{default:60},distance:{default:140},direction:{default:"middle"},orientation:{default:"horizontal"}},setup(o){const t=o,i=e.ref(null),s=e.ref(1/0),n=e.ref(1/0),r=e.computed(()=>t.magnification),l=e.computed(()=>t.distance),a=e.computed(()=>({"items-start":t.direction==="top","items-center":t.direction==="middle","items-end":t.direction==="bottom"}));function c(h){requestAnimationFrame(()=>{s.value=h.pageX,n.value=h.pageY})}function u(){requestAnimationFrame(()=>{s.value=1/0,n.value=1/0})}return e.provide(Ft,s),e.provide(Ot,n),e.provide(wt,t.orientation),e.provide(Ut,r),e.provide($t,l),(h,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dockRef",ref:i,class:e.normalizeClass(e.unref(J)("supports-backdrop-blur:bg-white/10 supports-backdrop-blur:dark:bg-black/10 mx-auto mt-8 flex h-[58px] w-max rounded-2xl border p-2 backdrop-blur-md transition-all gap-4",o.orientation==="vertical"&&"flex-col w-[58px] h-max",t.class,a.value)),onMousemove:c,onMouseleave:u},[e.renderSlot(h.$slots,"default")],34))}}),ai=["hovered"],ri=e.defineComponent({__name:"Docklcon",setup(o){const t=e.ref(null),i=e.inject(Ft,e.ref(1/0)),s=e.inject(Ot,e.ref(1/0)),n=e.inject($t),r=e.inject(wt,"vertical"),l=e.inject(Ut),a=e.computed(()=>r==="vertical"),c=e.ref(0);function u(f){if(a.value){const m=t.value?.getBoundingClientRect()||{y:0,height:0};return f-m.y-m.height/2}const d=t.value?.getBoundingClientRect()||{x:0,width:0};return f-d.x-d.width/2}const h=e.computed(()=>{const f=a.value?u(s.value):u(i.value);return!n?.value||!l?.value?40:Math.abs(f)<n?.value?(1-Math.abs(f)/n?.value)*l?.value+40:40});return(f,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"iconRef",ref:t,class:"flex aspect-square cursor-pointer items-center justify-center rounded-full transition-all duration-200 ease-out",style:e.normalizeStyle({width:`${h.value}px`,height:`${h.value}px`}),hovered:{marginLeft:c.value,marginRight:c.value}},[e.renderSlot(f.$slots,"default")],12,ai))}}),li=e.defineComponent({__name:"DockSeparator",setup(o){const t=e.inject(wt,"vertical");return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("relative block bg-secondary",e.unref(t)==="vertical"?"w-4/5 h-0.5":"h-4/5 w-0.5"))},null,2))}}),ci=e.defineComponent({__name:"index",props:{icons:{default:()=>["mdi:github","logos:google-drive","logos:notion","logos:whatsapp"]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||""});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(e.unref(ni),{class:e.normalizeClass(o.classList?.overallClass||"mb-6")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.icons,(r,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l},[e.createVNode(e.unref(ri),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ls.Icon),{icon:r},null,8,["icon"])]),_:2},1024),l<o.icons.length-1?(e.openBlock(),e.createBlock(e.unref(li),{key:0})):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["class"])],2))}}),ui={class:"w-full h-full grid place-items-center contain-layout contain-paint contain-size",style:{perspective:"calc(var(--radius) * 2)",perspectiveOrigin:"50% 50%"}},di=["data-src","data-offset-x","data-offset-y","data-size-x","data-size-y"],hi=["aria-label"],mi=["src","alt"],fi=.008,pi=e.defineComponent({__name:"DomeGallery",props:{images:{},fit:{default:.5},fitBasis:{default:"auto"},minRadius:{default:600},maxRadius:{default:1/0},padFactor:{default:.25},overlayBlurColor:{default:"#060010"},maxVerticalRotationDeg:{default:5},dragSensitivity:{default:20},enlargeTransitionMs:{default:300},segments:{default:35},dragDampening:{default:2},openedImageWidth:{default:"400px"},openedImageHeight:{default:"400px"},imageBorderRadius:{default:"30px"},openedImageBorderRadius:{default:"30px"},grayscale:{type:Boolean,default:!0}},setup(o){const t=[{src:"https://images.unsplash.com/photo-1755331039789-7e5680e26e8f?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Abstract art"},{src:"https://images.unsplash.com/photo-1755569309049-98410b94f66d?q=80&w=772&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Modern sculpture"},{src:"https://images.unsplash.com/photo-1755497595318-7e5e3523854f?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Digital artwork"},{src:"https://images.unsplash.com/photo-1755353985163-c2a0fe5ac3d8?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Contemporary art"},{src:"https://images.unsplash.com/photo-1745965976680-d00be7dc0377?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Geometric pattern"},{src:"https://images.unsplash.com/photo-1752588975228-21f44630bb3c?q=80&w=774&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Textured surface"},{src:"https://pbs.twimg.com/media/Gyla7NnXMAAXSo_?format=jpg&name=large",alt:"Social media image"}],i=o,s=e.computed(()=>i.images||t),n=e.useTemplateRef("rootRef"),r=e.useTemplateRef("mainRef"),l=e.useTemplateRef("sphereRef"),a=e.useTemplateRef("viewerRef"),c=e.useTemplateRef("scrimRef"),u=e.useTemplateRef("frameRef"),h=e.ref({x:0,y:0}),f=e.ref({x:0,y:0}),d=e.ref(null),m=e.ref(!1),v=e.ref(!1),g=e.ref(!1),x=e.ref(null),p=e.ref(null),k=e.ref(!1),E=e.ref(0),w=e.ref(0);let D=null,O=null,H=null,S=null,C=0;const T=(z,$,j)=>Math.min(Math.max(z,$),j),R=z=>(z%360+360)%360,B=z=>((z+180)%360+360)%360-180,I=(z,$,j)=>{const te=z.dataset[$]??z.getAttribute(`data-${$}`),X=te==null?NaN:parseFloat(te);return Number.isFinite(X)?X:j};function N(z,$){const j=Array.from({length:$},(K,re)=>-37+re*2),te=[-4,-2,0,2,4],X=[-3,-1,1,3,5],ae=j.flatMap((K,re)=>(re%2===0?te:X).map(ve=>({x:K,y:ve,sizeX:2,sizeY:2}))),oe=ae.length;if(z.length===0)return ae.map(K=>({...K,src:"",alt:""}));z.length>oe&&console.warn(`[DomeGallery] Provided image count (${z.length}) exceeds available tiles (${oe}). Some images will not be shown.`);const he=z.map(K=>typeof K=="string"?{src:K,alt:""}:{src:K.src||"",alt:K.alt||""}),ue=Array.from({length:oe},(K,re)=>he[re%he.length]);for(let K=1;K<ue.length;K++)if(ue[K].src===ue[K-1].src){for(let re=K+1;re<ue.length;re++)if(ue[re].src!==ue[K].src){const pe=ue[K];ue[K]=ue[re],ue[re]=pe;break}}return ae.map((K,re)=>({...K,src:ue[re].src,alt:ue[re].alt}))}const V=e.computed(()=>N(s.value,i.segments));function A(z,$,j,te,X){const ae=360/X/2,oe=ae*(z+(j-1)/2);return{rotateX:ae*($-(te-1)/2),rotateY:oe}}const Q=(z,$)=>{const j=l.value;j&&(j.style.transform=`translateZ(calc(var(--radius) * -1)) rotateX(${z}deg) rotateY(${$}deg)`)},b=()=>{k.value||(k.value=!0,document.body.classList.add("overflow-hidden"))},L=()=>{k.value&&n.value?.getAttribute("data-enlarging")!=="true"&&(k.value=!1,document.body.classList.remove("overflow-hidden"))},Y=()=>{D&&(cancelAnimationFrame(D),D=null)},le=(z,$)=>{let te=T(z,-1.4,1.4)*80,X=T($,-1.4,1.4)*80,ae=0;const oe=T(i.dragDampening??.6,0,1),he=.94+.055*oe,ue=.015-.01*oe,K=Math.round(90+270*oe),re=()=>{if(te*=he,X*=he,Math.abs(te)<ue&&Math.abs(X)<ue){D=null;return}if(++ae>K){D=null;return}const pe=T(h.value.x-X/200,-i.maxVerticalRotationDeg,i.maxVerticalRotationDeg),ve=B(h.value.y+te/200);h.value={x:pe,y:ve},Q(pe,ve),D=requestAnimationFrame(re)};Y(),D=requestAnimationFrame(re)},Z=()=>{S&&(cancelAnimationFrame(S),S=null),C=0},W=z=>{C||(C=z);const $=z-C;if(C=z,!m.value&&!g.value&&!x.value&&D===null&&$>0){const te=B(h.value.y+$*fi);te!==h.value.y&&(h.value={x:h.value.x,y:te})}S=requestAnimationFrame(W)},se=()=>{S===null&&(C=0,S=requestAnimationFrame(W))},ie=z=>{if(x.value)return;Y(),m.value=!0,v.value=!1,f.value={...h.value};const $="touches"in z?z.touches[0].clientX:z.clientX,j="touches"in z?z.touches[0].clientY:z.clientY;d.value={x:$,y:j}},ce=z=>{if(x.value||!m.value||!d.value)return;const $="touches"in z?z.touches[0].clientX:z.clientX,j="touches"in z?z.touches[0].clientY:z.clientY,te=$-d.value.x,X=j-d.value.y;v.value||te*te+X*X>16&&(v.value=!0);const ae=T(f.value.x-X/i.dragSensitivity,-i.maxVerticalRotationDeg,i.maxVerticalRotationDeg),oe=B(f.value.y+te/i.dragSensitivity);(h.value.x!==ae||h.value.y!==oe)&&(h.value={x:ae,y:oe},Q(ae,oe))},fe=z=>{if(m.value){if(m.value=!1,v.value&&d.value){const $="touches"in z?z.changedTouches?.[0]?.clientX??0:z.clientX,j="touches"in z?z.changedTouches?.[0]?.clientY??0:z.clientY,te=$-d.value.x,X=j-d.value.y,ae=T(te/i.dragSensitivity*.02,-1.2,1.2),oe=T(X/i.dragSensitivity*.02,-1.2,1.2);(Math.abs(ae)>.005||Math.abs(oe)>.005)&&le(ae,oe),w.value=performance.now()}v.value=!1}},we=z=>{if(g.value)return;g.value=!0,E.value=performance.now(),b();const $=z.parentElement;if(!$)return;x.value=z,z.setAttribute("data-focused","true");const j=I($,"offsetX",0),te=I($,"offsetY",0),X=I($,"sizeX",2),ae=I($,"sizeY",2),oe=A(j,te,X,ae,i.segments),he=R(oe.rotateY),ue=R(h.value.y);let K=-(he+ue)%360;K<-180&&(K+=360);const re=-oe.rotateX-h.value.x;$.style.setProperty("--rot-y-delta",`${K}deg`),$.style.setProperty("--rot-x-delta",`${re}deg`);const pe=document.createElement("div");pe.className="item__image item__image--reference",pe.style.opacity="0",pe.style.transform=`rotateX(${-oe.rotateX}deg) rotateY(${-oe.rotateY}deg)`,$.appendChild(pe);const ve=pe.getBoundingClientRect(),Re=r.value?.getBoundingClientRect(),ge=u.value?.getBoundingClientRect();if(!Re||!ge)return;p.value={left:ve.left,top:ve.top,width:ve.width,height:ve.height},z.style.visibility="hidden",z.style.zIndex="0";const q=document.createElement("div");q.className="enlarge",q.style.position="absolute",q.style.left=`${ge.left-Re.left}px`,q.style.top=`${ge.top-Re.top}px`,q.style.width=`${ge.width}px`,q.style.height=`${ge.height}px`,q.style.opacity="0",q.style.zIndex="30",q.style.willChange="transform, opacity",q.style.transformOrigin="top left",q.style.transition=`transform ${i.enlargeTransitionMs}ms ease, opacity ${i.enlargeTransitionMs}ms ease`;const Te=$.dataset.src||z.querySelector("img")?.src||"",Me=document.createElement("img");Me.src=Te,q.appendChild(Me),a.value?.appendChild(q);const Pe=ve.left-ge.left,Ne=ve.top-ge.top,Oe=ve.width/ge.width,je=ve.height/ge.height;if(q.style.transform=`translate(${Pe}px, ${Ne}px) scale(${Oe}, ${je})`,requestAnimationFrame(()=>{q.style.opacity="1",q.style.transform="translate(0px, 0px) scale(1,1)",n.value?.setAttribute("data-enlarging","true"),c.value?.classList.add("opacity-100","pointer-events-auto"),c.value?.classList.remove("opacity-0","pointer-events-none")}),i.openedImageWidth||i.openedImageHeight){const it=He=>{if(He.propertyName!=="transform")return;q.removeEventListener("transitionend",it);const ct=q.style.transition;q.style.transition="none";const ot=i.openedImageWidth||`${ge.width}px`,Xe=i.openedImageHeight||`${ge.height}px`;q.style.width=ot,q.style.height=Xe;const qe=q.getBoundingClientRect();q.style.width=`${ge.width}px`,q.style.height=`${ge.height}px`,q.offsetWidth,q.style.transition=`left ${i.enlargeTransitionMs}ms ease, top ${i.enlargeTransitionMs}ms ease, width ${i.enlargeTransitionMs}ms ease, height ${i.enlargeTransitionMs}ms ease`;const y=ge.left-Re.left+(ge.width-qe.width)/2,_=ge.top-Re.top+(ge.height-qe.height)/2;requestAnimationFrame(()=>{q.style.left=`${y}px`,q.style.top=`${_}px`,q.style.width=ot,q.style.height=Xe});const M=()=>{q.removeEventListener("transitionend",M),q.style.transition=ct};q.addEventListener("transitionend",M,{once:!0})};q.addEventListener("transitionend",it)}},be=()=>{if(performance.now()-E.value<250)return;const z=x.value;if(!z)return;const $=z.parentElement,j=a.value?.querySelector(".enlarge");if(!j||!$)return;const te=$.querySelector(".item__image--reference"),X=p.value;if(!X){j.remove(),te&&te.remove(),$.style.setProperty("--rot-y-delta","0deg"),$.style.setProperty("--rot-x-delta","0deg"),z.style.visibility="",z.style.zIndex="0",x.value=null,n.value?.removeAttribute("data-enlarging"),c.value?.classList.add("opacity-0","pointer-events-none"),c.value?.classList.remove("opacity-100","pointer-events-auto"),g.value=!1,L();return}const ae=j.getBoundingClientRect(),oe=n.value?.getBoundingClientRect();if(!oe)return;const he={left:X.left-oe.left,top:X.top-oe.top,width:X.width,height:X.height},ue={left:ae.left-oe.left,top:ae.top-oe.top,width:ae.width,height:ae.height},K=document.createElement("div");K.className="enlarge-closing",K.style.cssText=`position:absolute;left:${ue.left}px;top:${ue.top}px;width:${ue.width}px;height:${ue.height}px;z-index:9999;border-radius: var(--enlarge-radius, 32px);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:all ${i.enlargeTransitionMs}ms ease-out;pointer-events:none;margin:0;transform:none;`;const re=j.querySelector("img");if(re){const ve=re.cloneNode();ve.style.cssText="width:100%;height:100%;object-fit:cover;",K.appendChild(ve)}j.remove(),n.value?.appendChild(K),K.getBoundingClientRect(),requestAnimationFrame(()=>{K.style.left=`${he.left}px`,K.style.top=`${he.top}px`,K.style.width=`${he.width}px`,K.style.height=`${he.height}px`,K.style.opacity="0"});const pe=()=>{K.remove(),p.value=null,te&&te.remove(),$.style.transition="none",z.style.transition="none",$.style.setProperty("--rot-y-delta","0deg"),$.style.setProperty("--rot-x-delta","0deg"),requestAnimationFrame(()=>{z.style.visibility="",z.style.opacity="0",z.style.zIndex="0",x.value=null,n.value?.removeAttribute("data-enlarging"),c.value?.classList.add("opacity-0","pointer-events-none"),c.value?.classList.remove("opacity-100","pointer-events-auto"),requestAnimationFrame(()=>{$.style.transition="",z.style.transition="opacity 300ms ease-out",requestAnimationFrame(()=>{z.style.opacity="1",setTimeout(()=>{z.style.transition="",z.style.opacity="",g.value=!1,L()},300)})})})};K.addEventListener("transitionend",pe,{once:!0})},Ee=z=>{m.value||performance.now()-w.value<80||g.value||we(z.currentTarget)},De=z=>{z.pointerType==="touch"&&(m.value||performance.now()-w.value<80||g.value||we(z.currentTarget))},Fe=z=>{m.value||performance.now()-w.value<80||g.value||we(z.currentTarget)};return e.onMounted(()=>{Q(h.value.x,h.value.y),se();const z=n.value,$=r.value;if(!z||!$)return;O=new ResizeObserver(te=>{const X=te[0].contentRect,ae=Math.max(1,X.width),oe=Math.max(1,X.height),he=Math.min(ae,oe),ue=Math.max(ae,oe),K=ae/oe;let re;switch(i.fitBasis){case"min":re=he;break;case"max":re=ue;break;case"width":re=ae;break;case"height":re=oe;break;default:re=K>=1.3?ae:he}let pe=re*i.fit;const ve=oe*1.35;pe=Math.min(pe,ve),pe=T(pe,i.minRadius,i.maxRadius);const Re=Math.max(8,Math.round(he*i.padFactor)),ge=Math.round(pe);z.style.setProperty("--radius",`${ge}px`),z.style.setProperty("--viewer-pad",`${Re}px`);const q=a.value?.querySelector(".enlarge");if(q&&u.value&&r.value){const Te=u.value.getBoundingClientRect(),Me=r.value.getBoundingClientRect();if(i.openedImageWidth&&i.openedImageHeight){const Pe=document.createElement("div");Pe.style.cssText=`position:absolute;visibility:hidden;width:${i.openedImageWidth};height:${i.openedImageHeight};pointer-events:none;`,document.body.appendChild(Pe);const Ne=Pe.getBoundingClientRect();document.body.removeChild(Pe);const Oe=Te.left-Me.left+(Te.width-Ne.width)/2,je=Te.top-Me.top+(Te.height-Ne.height)/2;q.style.left=`${Oe}px`,q.style.top=`${je}px`,q.style.width=i.openedImageWidth,q.style.height=i.openedImageHeight}else q.style.left=`${Te.left-Me.left}px`,q.style.top=`${Te.top-Me.top}px`,q.style.width=`${Te.width}px`,q.style.height=`${Te.height}px`}}),O.observe(z),$.addEventListener("mousedown",ie,{passive:!0}),$.addEventListener("touchstart",ie,{passive:!0}),window.addEventListener("mousemove",ce,{passive:!0}),window.addEventListener("touchmove",ce,{passive:!0}),window.addEventListener("mouseup",fe),window.addEventListener("touchend",fe);const j=c.value;j&&j.addEventListener("click",be),H=te=>{te.key==="Escape"&&be()},window.addEventListener("keydown",H)}),e.onUnmounted(()=>{Y(),Z(),O&&O.disconnect();const z=r.value,$=c.value;z&&(z.removeEventListener("mousedown",ie),z.removeEventListener("touchstart",ie)),$&&$.removeEventListener("click",be),window.removeEventListener("mousemove",ce),window.removeEventListener("touchmove",ce),window.removeEventListener("mouseup",fe),window.removeEventListener("touchend",fe),H&&window.removeEventListener("keydown",H),document.body.classList.remove("overflow-hidden")}),e.watch(h,z=>{Q(z.x,z.y)}),(z,$)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"rootRef",ref:n,class:"relative w-full h-[1000px] box-border",style:e.normalizeStyle({"--segments-x":o.segments,"--segments-y":o.segments,"--overlay-blur-color":o.overlayBlurColor,"--tile-radius":o.imageBorderRadius,"--enlarge-radius":o.openedImageBorderRadius,"--image-filter":o.grayscale?"grayscale(1)":"none","--radius":"520px","--viewer-pad":"72px","--circ":"calc(var(--radius) * 3.14)","--rot-y":"calc((360deg / var(--segments-x)) / 2)","--rot-x":"calc((360deg / var(--segments-y)) / 2)","--item-width":"calc(var(--circ) / var(--segments-x))","--item-height":"calc(var(--circ) / var(--segments-y))"})},[e.createElementVNode("main",{ref_key:"mainRef",ref:r,class:"absolute inset-0 grid place-items-center overflow-hidden touch-none select-none bg-transparent"},[e.createElementVNode("div",ui,[e.createElementVNode("div",{ref_key:"sphereRef",ref:l,class:"will-change-transform",style:{"transform-style":"preserve-3d",transform:"translateZ(calc(var(--radius) * -1))"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,(j,te)=>(e.openBlock(),e.createElementBlock("div",{key:`${j.x},${j.y},${te}`,class:"absolute -top-[999px] -bottom-[999px] -left-[999px] -right-[999px] m-auto transition-transform duration-300","data-src":j.src,"data-offset-x":j.x,"data-offset-y":j.y,"data-size-x":j.sizeX,"data-size-y":j.sizeY,style:e.normalizeStyle({"--offset-x":j.x,"--offset-y":j.y,"--item-size-x":j.sizeX,"--item-size-y":j.sizeY,width:"calc(var(--item-width) * var(--item-size-x))",height:"calc(var(--item-height) * var(--item-size-y))",transformStyle:"preserve-3d",transformOrigin:"50% 50%",backfaceVisibility:"hidden",transform:"rotateY(calc(var(--rot-y) * (var(--offset-x) + ((var(--item-size-x) - 1) / 2)) + var(--rot-y-delta, 0deg))) rotateX(calc(var(--rot-x) * (var(--offset-y) - ((var(--item-size-y) - 1) / 2)) + var(--rot-x-delta, 0deg))) translateZ(var(--radius))"})},[e.createElementVNode("div",{class:"absolute block inset-[10px] bg-transparent overflow-hidden transition-transform duration-300 cursor-pointer pointer-events-auto transform translate-z-0 focus:outline-none",role:"button",tabindex:"0","aria-label":j.alt||"Open image",onClick:Ee,onPointerup:De,onTouchend:Fe,style:{borderRadius:"var(--tile-radius, 12px)",transformStyle:"preserve-3d",backfaceVisibility:"hidden",touchAction:"manipulation",WebkitTapHighlightColor:"transparent",WebkitTransform:"translateZ(0)"}},[e.createElementVNode("img",{src:j.src,draggable:"false",alt:j.alt,class:"w-full h-full object-cover pointer-events-none",style:{backfaceVisibility:"hidden",filter:"var(--image-filter, none)"}},null,8,mi)],40,hi)],12,di))),128))],512)]),$[0]||($[0]=e.createElementVNode("div",{class:"absolute inset-0 m-auto z-[3] pointer-events-none",style:{backgroundImage:"radial-gradient(rgba(235, 235, 235, 0) 65%, var(--overlay-blur-color, #060010) 100%)"}},null,-1)),$[1]||($[1]=e.createElementVNode("div",{class:"absolute inset-0 m-auto z-[3] pointer-events-none",style:{WebkitMaskImage:"radial-gradient(rgba(235, 235, 235, 0) 70%, var(--overlay-blur-color, #060010) 90%)",maskImage:"radial-gradient(rgba(235, 235, 235, 0) 70%, var(--overlay-blur-color, #060010) 90%)",backdropFilter:"blur(3px)"}},null,-1)),$[2]||($[2]=e.createElementVNode("div",{class:"absolute left-0 right-0 h-[120px] z-[5] pointer-events-none top-0 rotate-180",style:{background:"linear-gradient(to bottom, transparent, var(--overlay-blur-color, #060010))"}},null,-1)),$[3]||($[3]=e.createElementVNode("div",{class:"absolute left-0 right-0 h-[120px] z-[5] pointer-events-none bottom-0",style:{background:"linear-gradient(to bottom, transparent, var(--overlay-blur-color, #060010))"}},null,-1)),e.createElementVNode("div",{ref_key:"viewerRef",ref:a,class:"absolute inset-0 z-20 pointer-events-none flex items-center justify-center",style:{padding:"var(--viewer-pad)"}},[e.createElementVNode("div",{ref_key:"scrimRef",ref:c,class:"absolute inset-0 z-10 bg-black/40 pointer-events-none opacity-0 transition-opacity duration-500 ease-linear",style:{backdropFilter:"blur(3px)"}},null,512),e.createElementVNode("div",{ref_key:"frameRef",ref:u,class:"h-full aspect-square flex max-[1/1]:h-auto max-[1/1]:w-full",style:{borderRadius:"var(--enlarge-radius, 32px)"}},null,512)],512)],512)],4))}}),gi=e.defineComponent({__name:"index",props:{images:{default:()=>["https://images.unsplash.com/photo-1755331039789-7e5680e26e8f?q=80&w=774&auto=format&fit=crop","https://images.unsplash.com/photo-1755569309049-98410b94f66d?q=80&w=772&auto=format&fit=crop","https://images.unsplash.com/photo-1755497595318-7e5e3523854f?q=80&w=774&auto=format&fit=crop"]},fit:{default:.8},fitBasis:{default:"auto"},minRadius:{default:600},segments:{default:34},dragSensitivity:{default:20},enlargeTransitionMs:{default:300},grayscale:{type:Boolean,default:!0},overlayBlurColor:{default:"#060010"},imageBorderRadius:{default:"30px"},openedImageWidth:{default:"250px"},openedImageHeight:{default:"350px"},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return t.classList?.overallClass&&n.push(t.classList.overallClass),s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||"w-full h-[1000px]"});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(pi,{images:o.images,fit:o.fit,"fit-basis":o.fitBasis,"min-radius":o.minRadius,segments:o.segments,"drag-sensitivity":o.dragSensitivity,"enlarge-transition-ms":o.enlargeTransitionMs,grayscale:o.grayscale,"overlay-blur-color":o.overlayBlurColor,"image-border-radius":o.imageBorderRadius,"opened-image-width":o.openedImageWidth,"opened-image-height":o.openedImageHeight},null,8,["images","fit","fit-basis","min-radius","segments","drag-sensitivity","enlarge-transition-ms","grayscale","overlay-blur-color","image-border-radius","opened-image-width","opened-image-height"])],2))}}),vi=["src","alt"],xi=e.defineComponent({__name:"ExpandableGallery",props:{images:{},class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)(t.class))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.images,n=>(e.openBlock(),e.createElementBlock("div",{key:n,class:"relative flex h-full flex-1 cursor-pointer overflow-hidden rounded-xl transition-all duration-500 ease-in-out hover:flex-[3]"},[e.createElementVNode("img",{class:"relative h-full object-cover",src:n,alt:n},null,8,vi)]))),128))],2))}}),yi=e.defineComponent({__name:"index",props:{images:{},classList:{}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createBlock(xi,{images:o.images,class:e.normalizeClass([o.classList?.overallClass,i.value])},null,8,["images","class"]))}}),wi=e.defineComponent({__name:"FluidCursor",props:{simResolution:{default:128},dyeResolution:{default:1440},captureResolution:{default:512},densityDissipation:{default:3.5},velocityDissipation:{default:2},pressure:{default:.1},pressureIterations:{default:20},curl:{default:3},splatRadius:{default:.2},splatForce:{default:6e3},shading:{type:Boolean,default:!0},colorUpdateSpeed:{default:10},backColor:{default:()=>({r:.5,g:0,b:0})},transparent:{type:Boolean,default:!0},class:{}},setup(o){const t=o;function i(){return{id:-1,texcoordX:0,texcoordY:0,prevTexcoordX:0,prevTexcoordY:0,deltaX:0,deltaY:0,down:!1,moved:!1,color:{r:0,g:0,b:0}}}const s=e.ref(null);return e.onMounted(()=>{const n=s.value;if(!n)return;const r=[i()],l={SIM_RESOLUTION:t.simResolution,DYE_RESOLUTION:t.dyeResolution,CAPTURE_RESOLUTION:t.captureResolution,DENSITY_DISSIPATION:t.densityDissipation,VELOCITY_DISSIPATION:t.velocityDissipation,PRESSURE:t.pressure,PRESSURE_ITERATIONS:t.pressureIterations,CURL:t.curl,SPLAT_RADIUS:t.splatRadius,SPLAT_FORCE:t.splatForce,SHADING:t.shading,COLOR_UPDATE_SPEED:t.colorUpdateSpeed,BACK_COLOR:t.backColor,TRANSPARENT:t.transparent},{gl:a,ext:c}=u(n);if(!a||!c)return;c.supportLinearFiltering||(l.DYE_RESOLUTION=256,l.SHADING=!1);function u(y){const _={alpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1};let M=y.getContext("webgl2",_);if(M||(M=y.getContext("webgl",_)||y.getContext("experimental-webgl",_)),!M)throw new Error("Unable to initialize WebGL.");const P="drawBuffers"in M;let U=!1,ee=null;P?(M.getExtension("EXT_color_buffer_float"),U=!!M.getExtension("OES_texture_float_linear")):(ee=M.getExtension("OES_texture_half_float"),U=!!M.getExtension("OES_texture_half_float_linear")),M.clearColor(0,0,0,1);const ne=P?M.HALF_FLOAT:ee&&ee.HALF_FLOAT_OES||0;let ke,Se,Le;return P?(ke=h(M,M.RGBA16F,M.RGBA,ne),Se=h(M,M.RG16F,M.RG,ne),Le=h(M,M.R16F,M.RED,ne)):(ke=h(M,M.RGBA,M.RGBA,ne),Se=h(M,M.RGBA,M.RGBA,ne),Le=h(M,M.RGBA,M.RGBA,ne)),{gl:M,ext:{formatRGBA:ke,formatRG:Se,formatR:Le,halfFloatTexType:ne,supportLinearFiltering:U}}}function h(y,_,M,P){if(!f(y,_,M,P)){if("drawBuffers"in y){const U=y;switch(_){case U.R16F:return h(U,U.RG16F,U.RG,P);case U.RG16F:return h(U,U.RGBA16F,U.RGBA,P);default:return null}}return null}return{internalFormat:_,format:M}}function f(y,_,M,P){const U=y.createTexture();if(!U)return!1;y.bindTexture(y.TEXTURE_2D,U),y.texParameteri(y.TEXTURE_2D,y.TEXTURE_MIN_FILTER,y.NEAREST),y.texParameteri(y.TEXTURE_2D,y.TEXTURE_MAG_FILTER,y.NEAREST),y.texParameteri(y.TEXTURE_2D,y.TEXTURE_WRAP_S,y.CLAMP_TO_EDGE),y.texParameteri(y.TEXTURE_2D,y.TEXTURE_WRAP_T,y.CLAMP_TO_EDGE),y.texImage2D(y.TEXTURE_2D,0,_,4,4,0,M,P,null);const ee=y.createFramebuffer();return ee?(y.bindFramebuffer(y.FRAMEBUFFER,ee),y.framebufferTexture2D(y.FRAMEBUFFER,y.COLOR_ATTACHMENT0,y.TEXTURE_2D,U,0),y.checkFramebufferStatus(y.FRAMEBUFFER)===y.FRAMEBUFFER_COMPLETE):!1}function d(y){if(!y.length)return 0;let _=0;for(let M=0;M<y.length;M++)_=(_<<5)-_+y.charCodeAt(M),_|=0;return _}function m(y,_){if(!_)return y;let M="";for(const P of _)M+=`#define ${P}
223
+ `;return M+y}function v(y,_,M=null){const P=m(_,M),U=a.createShader(y);return U?(a.shaderSource(U,P),a.compileShader(U),U):null}function g(y,_){if(!y||!_)return null;const M=a.createProgram();return M?(a.attachShader(M,y),a.attachShader(M,_),a.linkProgram(M),M):null}function x(y){const _={},M=a.getProgramParameter(y,a.ACTIVE_UNIFORMS);for(let P=0;P<M;P++){const U=a.getActiveUniform(y,P);U&&(_[U.name]=a.getUniformLocation(y,U.name))}return _}class p{program;uniforms;constructor(_,M){this.program=g(_,M),this.uniforms=this.program?x(this.program):{}}bind(){this.program&&a.useProgram(this.program)}}class k{vertexShader;fragmentShaderSource;programs;activeProgram;uniforms;constructor(_,M){this.vertexShader=_,this.fragmentShaderSource=M,this.programs={},this.activeProgram=null,this.uniforms={}}setKeywords(_){let M=0;for(const U of _)M+=d(U);let P=this.programs[M];if(P==null){const U=v(a.FRAGMENT_SHADER,this.fragmentShaderSource,_);P=g(this.vertexShader,U),this.programs[M]=P}P!==this.activeProgram&&(P&&(this.uniforms=x(P)),this.activeProgram=P)}bind(){this.activeProgram&&a.useProgram(this.activeProgram)}}const E=v(a.VERTEX_SHADER,`
163
224
  precision highp float;
164
225
  attribute vec2 aPosition;
165
226
  varying vec2 vUv;
@@ -177,7 +238,7 @@ void main() {
177
238
  vB = vUv - vec2(0.0, texelSize.y);
178
239
  gl_Position = vec4(aPosition, 0.0, 1.0);
179
240
  }
180
- `),b=x(a.FRAGMENT_SHADER,`
241
+ `),w=v(a.FRAGMENT_SHADER,`
181
242
  precision mediump float;
182
243
  precision mediump sampler2D;
183
244
  varying highp vec2 vUv;
@@ -186,7 +247,7 @@ void main() {
186
247
  void main () {
187
248
  gl_FragColor = texture2D(uTexture, vUv);
188
249
  }
189
- `),L=x(a.FRAGMENT_SHADER,`
250
+ `),D=v(a.FRAGMENT_SHADER,`
190
251
  precision mediump float;
191
252
  precision mediump sampler2D;
192
253
  varying highp vec2 vUv;
@@ -196,7 +257,7 @@ void main() {
196
257
  void main () {
197
258
  gl_FragColor = value * texture2D(uTexture, vUv);
198
259
  }
199
- `),U=`
260
+ `),O=`
200
261
  precision highp float;
201
262
  precision highp sampler2D;
202
263
  varying vec2 vUv;
@@ -235,7 +296,7 @@ void main() {
235
296
  float a = max(c.r, max(c.g, c.b));
236
297
  gl_FragColor = vec4(c, a);
237
298
  }
238
- `,H=x(a.FRAGMENT_SHADER,`
299
+ `,H=v(a.FRAGMENT_SHADER,`
239
300
  precision highp float;
240
301
  precision highp sampler2D;
241
302
  varying vec2 vUv;
@@ -252,7 +313,7 @@ void main() {
252
313
  vec3 base = texture2D(uTarget, vUv).xyz;
253
314
  gl_FragColor = vec4(base + splat, 1.0);
254
315
  }
255
- `),S=x(a.FRAGMENT_SHADER,`
316
+ `),S=v(a.FRAGMENT_SHADER,`
256
317
  precision highp float;
257
318
  precision highp sampler2D;
258
319
  varying vec2 vUv;
@@ -287,7 +348,7 @@ void main() {
287
348
  float decay = 1.0 + dissipation * dt;
288
349
  gl_FragColor = result / decay;
289
350
  }
290
- `,c.supportLinearFiltering?null:["MANUAL_FILTERING"]),C=x(a.FRAGMENT_SHADER,`
351
+ `,c.supportLinearFiltering?null:["MANUAL_FILTERING"]),C=v(a.FRAGMENT_SHADER,`
291
352
  precision mediump float;
292
353
  precision mediump sampler2D;
293
354
  varying highp vec2 vUv;
@@ -312,7 +373,7 @@ void main() {
312
373
  float div = 0.5 * (R - L + T - B);
313
374
  gl_FragColor = vec4(div, 0.0, 0.0, 1.0);
314
375
  }
315
- `),_=x(a.FRAGMENT_SHADER,`
376
+ `),T=v(a.FRAGMENT_SHADER,`
316
377
  precision mediump float;
317
378
  precision mediump sampler2D;
318
379
  varying highp vec2 vUv;
@@ -330,7 +391,7 @@ void main() {
330
391
  float vorticity = R - L - T + B;
331
392
  gl_FragColor = vec4(0.5 * vorticity, 0.0, 0.0, 1.0);
332
393
  }
333
- `),D=x(a.FRAGMENT_SHADER,`
394
+ `),R=v(a.FRAGMENT_SHADER,`
334
395
  precision highp float;
335
396
  precision highp sampler2D;
336
397
  varying vec2 vUv;
@@ -360,7 +421,7 @@ void main() {
360
421
  velocity = min(max(velocity, -1000.0), 1000.0);
361
422
  gl_FragColor = vec4(velocity, 0.0, 1.0);
362
423
  }
363
- `),M=x(a.FRAGMENT_SHADER,`
424
+ `),B=v(a.FRAGMENT_SHADER,`
364
425
  precision mediump float;
365
426
  precision mediump sampler2D;
366
427
  varying highp vec2 vUv;
@@ -381,7 +442,7 @@ void main() {
381
442
  float pressure = (L + R + B + T - divergence) * 0.25;
382
443
  gl_FragColor = vec4(pressure, 0.0, 0.0, 1.0);
383
444
  }
384
- `),I=x(a.FRAGMENT_SHADER,`
445
+ `),I=v(a.FRAGMENT_SHADER,`
385
446
  precision mediump float;
386
447
  precision mediump sampler2D;
387
448
  varying highp vec2 vUv;
@@ -401,32 +462,32 @@ void main() {
401
462
  velocity.xy -= vec2(R - L, T - B);
402
463
  gl_FragColor = vec4(velocity, 0.0, 1.0);
403
464
  }
404
- `),N=(()=>{const g=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,g),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),a.STATIC_DRAW);const B=a.createBuffer();return a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,B),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),a.STATIC_DRAW),a.vertexAttribPointer(0,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(0),(T,P=!1)=>{a&&(T?(a.viewport(0,0,T.width,T.height),a.bindFramebuffer(a.FRAMEBUFFER,T.fbo)):(a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),a.bindFramebuffer(a.FRAMEBUFFER,null)),P&&(a.clearColor(0,0,0,1),a.clear(a.COLOR_BUFFER_BIT)),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0))}})();let V,A,Q,w,R;const G=new p(k,b),le=new p(k,L),Z=new p(k,H),Y=new p(k,S),se=new p(k,C),ie=new p(k,_),ce=new p(k,D),fe=new p(k,M),we=new p(k,I),be=new E(k,U);function Ee(g,B,T,P,O,ee){a.activeTexture(a.TEXTURE0);const ne=a.createTexture();a.bindTexture(a.TEXTURE_2D,ne),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,ee),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,ee),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texImage2D(a.TEXTURE_2D,0,T,g,B,0,P,O,null);const ke=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,ke),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,ne,0),a.viewport(0,0,g,B),a.clear(a.COLOR_BUFFER_BIT);const Se=1/g,Le=1/B;return{texture:ne,fbo:ke,width:g,height:B,texelSizeX:Se,texelSizeY:Le,attach(Ge){return a.activeTexture(a.TEXTURE0+Ge),a.bindTexture(a.TEXTURE_2D,ne),Ge}}}function De(g,B,T,P,O,ee){const ne=Ee(g,B,T,P,O,ee),ke=Ee(g,B,T,P,O,ee);return{width:g,height:B,texelSizeX:ne.texelSizeX,texelSizeY:ne.texelSizeY,read:ne,write:ke,swap(){const Se=this.read;this.read=this.write,this.write=Se}}}function Fe(g,B,T,P,O,ee,ne){const ke=Ee(B,T,P,O,ee,ne);return G.bind(),G.uniforms.uTexture&&a.uniform1i(G.uniforms.uTexture,g.attach(0)),N(ke,!1),ke}function z(g,B,T,P,O,ee,ne){return g.width===B&&g.height===T||(g.read=Fe(g.read,B,T,P,O,ee,ne),g.write=Ee(B,T,P,O,ee,ne),g.width=B,g.height=T,g.texelSizeX=1/B,g.texelSizeY=1/T),g}function $(){const g=te(l.SIM_RESOLUTION),B=te(l.DYE_RESOLUTION),T=c.halfFloatTexType,P=c.formatRGBA,O=c.formatRG,ee=c.formatR,ne=c.supportLinearFiltering?a.LINEAR:a.NEAREST;a.disable(a.BLEND),V?V=z(V,B.width,B.height,P.internalFormat,P.format,T,ne):V=De(B.width,B.height,P.internalFormat,P.format,T,ne),A?A=z(A,g.width,g.height,O.internalFormat,O.format,T,ne):A=De(g.width,g.height,O.internalFormat,O.format,T,ne),Q=Ee(g.width,g.height,ee.internalFormat,ee.format,T,a.NEAREST),w=Ee(g.width,g.height,ee.internalFormat,ee.format,T,a.NEAREST),R=De(g.width,g.height,ee.internalFormat,ee.format,T,a.NEAREST)}function W(){const g=[];l.SHADING&&g.push("SHADING"),be.setKeywords(g)}function te(g){const B=a.drawingBufferWidth,T=a.drawingBufferHeight,P=B/T,O=P<1?1/P:P,ee=Math.round(g),ne=Math.round(g*O);return B>T?{width:ne,height:ee}:{width:ee,height:ne}}function j(g){const B=window.devicePixelRatio||1;return Math.floor(g*B)}W(),$();let ae=Date.now(),oe=0;function he(){const g=ue();K()&&$(),re(g),pe(),ge(g),Re(null),requestAnimationFrame(he)}function ue(){const g=Date.now();let B=(g-ae)/1e3;return B=Math.min(B,.016666),ae=g,B}function K(){const g=j(n.clientWidth),B=j(n.clientHeight);return n.width!==g||n.height!==B?(n.width=g,n.height=B,!0):!1}function re(g){oe+=g*l.COLOR_UPDATE_SPEED,oe>=1&&(oe=ot(oe,0,1),r.forEach(B=>{B.color=He()}))}function pe(){for(const g of r)g.moved&&(g.moved=!1,q(g))}function ge(g){a.disable(a.BLEND),ie.bind(),ie.uniforms.texelSize&&a.uniform2f(ie.uniforms.texelSize,A.texelSizeX,A.texelSizeY),ie.uniforms.uVelocity&&a.uniform1i(ie.uniforms.uVelocity,A.read.attach(0)),N(w),ce.bind(),ce.uniforms.texelSize&&a.uniform2f(ce.uniforms.texelSize,A.texelSizeX,A.texelSizeY),ce.uniforms.uVelocity&&a.uniform1i(ce.uniforms.uVelocity,A.read.attach(0)),ce.uniforms.uCurl&&a.uniform1i(ce.uniforms.uCurl,w.attach(1)),ce.uniforms.curl&&a.uniform1f(ce.uniforms.curl,l.CURL),ce.uniforms.dt&&a.uniform1f(ce.uniforms.dt,g),N(A.write),A.swap(),se.bind(),se.uniforms.texelSize&&a.uniform2f(se.uniforms.texelSize,A.texelSizeX,A.texelSizeY),se.uniforms.uVelocity&&a.uniform1i(se.uniforms.uVelocity,A.read.attach(0)),N(Q),le.bind(),le.uniforms.uTexture&&a.uniform1i(le.uniforms.uTexture,R.read.attach(0)),le.uniforms.value&&a.uniform1f(le.uniforms.value,l.PRESSURE),N(R.write),R.swap(),fe.bind(),fe.uniforms.texelSize&&a.uniform2f(fe.uniforms.texelSize,A.texelSizeX,A.texelSizeY),fe.uniforms.uDivergence&&a.uniform1i(fe.uniforms.uDivergence,Q.attach(0));for(let T=0;T<l.PRESSURE_ITERATIONS;T++)fe.uniforms.uPressure&&a.uniform1i(fe.uniforms.uPressure,R.read.attach(1)),N(R.write),R.swap();we.bind(),we.uniforms.texelSize&&a.uniform2f(we.uniforms.texelSize,A.texelSizeX,A.texelSizeY),we.uniforms.uPressure&&a.uniform1i(we.uniforms.uPressure,R.read.attach(0)),we.uniforms.uVelocity&&a.uniform1i(we.uniforms.uVelocity,A.read.attach(1)),N(A.write),A.swap(),Y.bind(),Y.uniforms.texelSize&&a.uniform2f(Y.uniforms.texelSize,A.texelSizeX,A.texelSizeY),!c.supportLinearFiltering&&Y.uniforms.dyeTexelSize&&a.uniform2f(Y.uniforms.dyeTexelSize,A.texelSizeX,A.texelSizeY);const B=A.read.attach(0);Y.uniforms.uVelocity&&a.uniform1i(Y.uniforms.uVelocity,B),Y.uniforms.uSource&&a.uniform1i(Y.uniforms.uSource,B),Y.uniforms.dt&&a.uniform1f(Y.uniforms.dt,g),Y.uniforms.dissipation&&a.uniform1f(Y.uniforms.dissipation,l.VELOCITY_DISSIPATION),N(A.write),A.swap(),!c.supportLinearFiltering&&Y.uniforms.dyeTexelSize&&a.uniform2f(Y.uniforms.dyeTexelSize,V.texelSizeX,V.texelSizeY),Y.uniforms.uVelocity&&a.uniform1i(Y.uniforms.uVelocity,A.read.attach(0)),Y.uniforms.uSource&&a.uniform1i(Y.uniforms.uSource,V.read.attach(1)),Y.uniforms.dissipation&&a.uniform1f(Y.uniforms.dissipation,l.DENSITY_DISSIPATION),N(V.write),V.swap()}function Re(g){a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),a.enable(a.BLEND),ve(g)}function ve(g){const B=a.drawingBufferWidth,T=a.drawingBufferHeight;be.bind(),l.SHADING&&be.uniforms.texelSize&&a.uniform2f(be.uniforms.texelSize,1/B,1/T),be.uniforms.uTexture&&a.uniform1i(be.uniforms.uTexture,V.read.attach(0)),N(g,!1)}function q(g){const B=g.deltaX*l.SPLAT_FORCE,T=g.deltaY*l.SPLAT_FORCE;Te(g.texcoordX,g.texcoordY,B,T,g.color)}function _e(g){const B=He();B.r*=10,B.g*=10,B.b*=10;const T=10*(Math.random()-.5),P=30*(Math.random()-.5);Te(g.texcoordX,g.texcoordY,T,P,B)}function Te(g,B,T,P,O){Z.bind(),Z.uniforms.uTarget&&a.uniform1i(Z.uniforms.uTarget,A.read.attach(0)),Z.uniforms.aspectRatio&&a.uniform1f(Z.uniforms.aspectRatio,n.width/n.height),Z.uniforms.point&&a.uniform2f(Z.uniforms.point,g,B),Z.uniforms.color&&a.uniform3f(Z.uniforms.color,T,P,0),Z.uniforms.radius&&a.uniform1f(Z.uniforms.radius,Pe(l.SPLAT_RADIUS/100)),N(A.write),A.swap(),Z.uniforms.uTarget&&a.uniform1i(Z.uniforms.uTarget,V.read.attach(0)),Z.uniforms.color&&a.uniform3f(Z.uniforms.color,O.r,O.g,O.b),N(V.write),V.swap()}function Pe(g){const B=n.width/n.height;return B>1&&(g*=B),g}function Ne(g,B,T,P){g.id=B,g.down=!0,g.moved=!1,g.texcoordX=T/n.width,g.texcoordY=1-P/n.height,g.prevTexcoordX=g.texcoordX,g.prevTexcoordY=g.texcoordY,g.deltaX=0,g.deltaY=0,g.color=He()}function Oe(g,B,T,P){g.prevTexcoordX=g.texcoordX,g.prevTexcoordY=g.texcoordY,g.texcoordX=B/n.width,g.texcoordY=1-T/n.height,g.deltaX=kt(g.texcoordX-g.prevTexcoordX),g.deltaY=it(g.texcoordY-g.prevTexcoordY),g.moved=Math.abs(g.deltaX)>0||Math.abs(g.deltaY)>0,g.color=P}function je(g){g.down=!1}function kt(g){const B=n.width/n.height;return B<1&&(g*=B),g}function it(g){const B=n.width/n.height;return B>1&&(g/=B),g}function He(){const g=ct(Math.random(),1,1);return g.r*=.15,g.g*=.15,g.b*=.15,g}function ct(g,B,T){let P=0,O=0,ee=0;const ne=Math.floor(g*6),ke=g*6-ne,Se=T*(1-B),Le=T*(1-ke*B),Ge=T*(1-(1-ke)*B);switch(ne%6){case 0:P=T,O=Ge,ee=Se;break;case 1:P=Le,O=T,ee=Se;break;case 2:P=Se,O=T,ee=Ge;break;case 3:P=Se,O=Le,ee=T;break;case 4:P=Ge,O=Se,ee=T;break;case 5:P=T,O=Se,ee=Le;break}return{r:P,g:O,b:ee}}function ot(g,B,T){const P=T-B;return(g-B)%P+B}window.addEventListener("mousedown",g=>{const B=r[0],T=j(g.clientX),P=j(g.clientY);Ne(B,-1,T,P),_e(B)});function Xe(g){const B=r[0],T=j(g.clientX),P=j(g.clientY),O=He();he(),Oe(B,T,P,O),document.body.removeEventListener("mousemove",Xe)}document.body.addEventListener("mousemove",Xe),window.addEventListener("mousemove",g=>{const B=r[0],T=j(g.clientX),P=j(g.clientY),O=B.color;Oe(B,T,P,O)});function qe(g){const B=g.targetTouches,T=r[0];for(let P=0;P<B.length;P++){const O=j(B[P].clientX),ee=j(B[P].clientY);he(),Ne(T,B[P].identifier,O,ee)}document.body.removeEventListener("touchstart",qe)}document.body.addEventListener("touchstart",qe),window.addEventListener("touchstart",g=>{const B=g.targetTouches,T=r[0];for(let P=0;P<B.length;P++){const O=j(B[P].clientX),ee=j(B[P].clientY);Ne(T,B[P].identifier,O,ee)}},!1),window.addEventListener("touchmove",g=>{const B=g.targetTouches,T=r[0];for(let P=0;P<B.length;P++){const O=j(B[P].clientX),ee=j(B[P].clientY);Oe(T,O,ee,T.color)}},!1),window.addEventListener("touchend",g=>{const B=g.changedTouches,T=r[0];for(let P=0;P<B.length;P++)je(T)}),e.watch(()=>t.simResolution,g=>{l.SIM_RESOLUTION=g,$()}),e.watch(()=>t.dyeResolution,g=>{l.DYE_RESOLUTION=g,$()}),e.watch(()=>t.shading,g=>{l.SHADING=g,W()}),he()}),(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("pointer-events-none fixed left-0 top-0 z-50 size-full",t.class))},[e.createElementVNode("canvas",{id:"fluid",ref_key:"canvasRef",ref:s,class:"block h-screen w-screen"},null,512)],2))}}),yi={class:"relative h-60 w-full flex flex-col items-center justify-center gap-4"},wi={class:"flex flex-row items-center justify-center gap-4"},bi={key:0,class:"opacity-50 text-4xl font-semibold"},Ci=e.defineComponent({__name:"index",props:{title:{type:String,default:void 0},classList:{type:Object,default:()=>({})}},setup(o){const t=e.ref(!1);return(i,s)=>{const n=e.resolveComponent("el-switch");return e.openBlock(),e.createElementBlock("div",yi,[e.createElementVNode("div",wi,[e.createElementVNode("span",null,e.toDisplayString(o.title),1),e.createVNode(n,{modelValue:t.value,"onUpdate:modelValue":s[0]||(s[0]=r=>t.value=r)},null,8,["modelValue"])]),t.value?(e.openBlock(),e.createElementBlock("span",bi," Hover anywhere ")):e.createCommentVNode("",!0),t.value?(e.openBlock(),e.createBlock(xi,{key:1})):e.createCommentVNode("",!0)])}}});class bt{static instance=null;constructor(){}static getInstance(){return this.instance===null&&(this.instance=new bt),this.instance}canPost(){return typeof window<"u"&&!!window.chrome&&!!window.chrome.webview&&typeof window.chrome.webview.postMessage=="function"}post(t){if(this.canPost())return window.chrome.webview.postMessage(t),!0}send(t,i){return this.post({type:t,payload:i})}sendRaw(t){if(this.canPost())return window.chrome.webview.postMessage(t),!0}addBehaviorRecord(t,i,s,n,r,l,a,c,u,d,m,h,f,x,v){return this.send("addBehaviorRecord",{thingId:t,thingName:i,thingCategory:s,action:n,increment:r,collectionTime:l,collectEndTime:a,softwareName:c,pageName:u,pageArea:d,previousPageName:m,previousPageArea:h,position:f,pSource:x,comments:v})}addBehaviorRecordObject(t){return this.send("addBehaviorRecord",t)}doDropCargo(t){return this.send("doDropCargo",{cargoRoad:t})}printPayData(t){return this.send("printPayData",{printJsonData:t})}sendSerialCommand(t,i){return this.send("sendSerialCommand",{command:t,isHex:i})}log(t){return this.send("log",{content:t})}CloseFaceRecognition(){return this.send("CloseFaceRecognition")}sendAction(t,i){return this.send("sendAction",{v1:t,v2:i})}facedetect(){return this.send("facedetect")}}const Ei=e.defineComponent({__name:"index",props:{title:{type:String,default:void 0},class:{type:String,default:void 0},classList:{type:Object,default:()=>({})},events:{type:Object,default:()=>({emitEventName:void 0,emitPayload:void 0,postToWebview:!1})},onCustomClick:{type:Function,default:void 0}},emits:["click"],setup(o,{emit:t}){const i=o,s=e.computed(()=>{const d=i.classList&&i.classList.Location||{};return[d.position,d.width,d.height,d.left,d.top].filter(Boolean)}),n=e.computed(()=>i.title??"Button"),r=e.ref(null),l=Vt.useRouter(),a=t,c=d=>{if(!Array.isArray(d)||d.length===0)return null;const m=d[0];if(typeof m!="string")return null;const h=m.match(/^s:navigate\?page=([^&\s]+)/);return h?{type:"navigate",page:h[1]}:{type:"custom",command:m}},u=d=>{if(a("click",d),i.onCustomClick&&typeof i.onCustomClick=="function"){i.onCustomClick({event:d,events:i.events,payload:i.events.emitPayload});return}const m=i.events.emitPayload,h=m?.Data;if(i.events.postToWebview===!0){try{const f=bt.getInstance(),x=m||{PageName:"unknown",ControlName:"IButtonComp",Data:h||[]};console.log("Posting to WebView via bridge:",x),f.sendRaw(x)||console.warn("WebView bridge not available; message not sent")}catch(f){console.warn("Failed to postMessage to webview",f)}return}if(h&&Array.isArray(h)){const f=c(h);if(f?.type==="navigate"&&f.page){console.log("Navigating to page:",f.page),l.push(`/${f.page}`);return}}if(i.events.emitEventName){const f={payload:m,originalEvent:d};console.log("Dispatching custom event:",i.events.emitEventName,f),window.dispatchEvent(new CustomEvent(i.events.emitEventName,{detail:f}))}};return(d,m)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps({ref_key:"buttonRef",ref:r},d.$attrs,{onClick:u,class:e.unref(J)(o.classList?.buttonClass,i.class,s.value)}),[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)(o.classList?.containerClass))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)(o.classList?.dotClass))},null,2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(J)(o.classList?.textClass))},e.toDisplayString(n.value),3)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)(o.classList?.hoverContainerClass))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(J)(o.classList?.hoverTextClass))},e.toDisplayString(n.value),3),(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:e.normalizeClass(e.unref(J)(o.classList?.iconClass))},[...m[0]||(m[0]=[e.createElementVNode("path",{d:"M5 12h14"},null,-1),e.createElementVNode("path",{d:"m12 5 7 7-7 7"},null,-1)])],2))],2)],16))}}),ki=e.defineComponent({__name:"IconCloud",props:{class:{},images:{}},setup(o){const t=o,{images:i}=t,s=e.ref(null),n=e.ref(0),r=e.ref([]),l=e.ref([]),a=e.ref([]),c=e.reactive({x:0,y:0}),u=e.ref(!1),d=e.reactive({x:0,y:0}),m=e.reactive({x:0,y:0}),h=e.ref(null);function f(p){return 1-(1-p)**3}e.watchEffect(()=>{if(!i)return;l.value=new Array(i.length).fill(!1);const p=i.map((E,k)=>{const b=document.createElement("canvas");b.width=40,b.height=40;const L=b.getContext("2d");if(!L)return b;const U=new Image;return U.crossOrigin="anonymous",U.src=E,U.onload=()=>{L.clearRect(0,0,b.width,b.height),L.beginPath(),L.arc(20,20,20,0,Math.PI*2),L.closePath(),L.clip(),L.drawImage(U,0,0,40,40),l.value[k]=!0},b});r.value=p}),e.watchEffect(()=>{const p=i?.length||0;if(p===0){a.value=[];return}const E=[],k=2/p,b=Math.PI*(3-Math.sqrt(5));for(let L=0;L<p;L++){const U=L*k-1+k/2,H=Math.sqrt(1-U*U),S=L*b,C=Math.cos(S)*H,_=Math.sin(S)*H;E.push({x:C*100,y:U*100,z:_*100,scale:1,opacity:1,id:L})}a.value=E});function x(p){const E=s.value;if(!E)return;const k=E.getBoundingClientRect(),b=p.clientX-k.left,L=p.clientY-k.top;E.getContext("2d")&&(a.value.forEach(H=>{const S=Math.cos(c.x),C=Math.sin(c.x),_=Math.cos(c.y),D=Math.sin(c.y),M=H.x*_-H.z*D,I=H.x*D+H.z*_,N=H.y*S+I*C,V=E.width/2+M,A=E.height/2+N,w=20*((I+200)/300),R=b-V,G=L-A;if(R*R+G*G<w*w){const le=-Math.atan2(H.y,Math.sqrt(H.x*H.x+H.z*H.z)),Z=Math.atan2(H.x,H.z),Y=c.x,se=c.y,ie=Math.sqrt((le-Y)**2+(Z-se)**2),ce=Math.min(2e3,Math.max(800,ie*1e3));h.value={x:le,y:Z,startX:Y,startY:se,distance:ie,startTime:performance.now(),duration:ce};return}}),u.value=!0,d.x=p.clientX,d.y=p.clientY)}function v(p){const E=s.value;if(!E)return;const k=E.getBoundingClientRect();if(m.x=p.clientX-k.left,m.y=p.clientY-k.top,u.value){const b=p.clientX-d.x,L=p.clientY-d.y;c.x+=L*.002,c.y+=b*.002,d.x=p.clientX,d.y=p.clientY}}function y(){u.value=!1}return e.onMounted(()=>{const p=s.value;if(!p)return;const E=p.getContext("2d");if(!E)return;function k(){if(!E||!p)return;E.clearRect(0,0,p.width,p.height);const b=p.width/2,L=p.height/2,U=m.x-b,H=m.y-L,S=Math.sqrt(b*b+L*L),_=.003+Math.sqrt(U*U+H*H)/S*.01;if(h.value){const{startX:D,startY:M,x:I,y:N,startTime:V,duration:A}=h.value,Q=performance.now()-V,w=Math.min(1,Q/A),R=f(w);c.x=D+(I-D)*R,c.y=M+(N-M)*R,w>=1&&(h.value=null)}else u.value||(c.x+=H/p.height*_,c.y+=U/p.width*_);a.value.forEach((D,M)=>{const I=Math.cos(c.x),N=Math.sin(c.x),V=Math.cos(c.y),A=Math.sin(c.y),Q=D.x*V-D.z*A,w=D.x*A+D.z*V,R=D.y*I+w*N,G=(w+200)/300,le=Math.max(.2,Math.min(1,(w+150)/200));E.save(),E.translate(b+Q,L+R),E.scale(G,G),E.globalAlpha=le,r.value[M]&&l.value[M]&&E.drawImage(r.value[M],-20,-20,40,40),E.restore()}),n.value=requestAnimationFrame(k)}n.value=requestAnimationFrame(k)}),e.onBeforeUnmount(()=>{n.value&&cancelAnimationFrame(n.value)}),(p,E)=>(e.openBlock(),e.createElementBlock("canvas",{ref_key:"canvasRef",ref:s,width:"300",height:"300",class:e.normalizeClass(e.unref(J)("rounded-lg",p.$props.class)),role:"img","aria-label":"Interactive 3D Image Cloud",onMousedown:x,onMousemove:v,onMouseup:y,onMouseleave:y},null,34))}}),Si=e.defineComponent({__name:"index",props:{slugs:{default:()=>["typescript","javascript","dart","java","react","flutter","android","html5","css3","nodedotjs","express","nextdotjs","prisma","amazonaws","postgresql","firebase","nginx","vercel","testinglibrary","jest","cypress","docker","git","jira","github","gitlab","visualstudiocode","androidstudio","sonarqube","figma"]},useColorSlugAsColor:{type:Boolean,default:!0},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>t.slugs.map(n=>n)),s=e.computed(()=>{const n=t.classList?.Location,r=[];return t.classList?.overallClass?r.push(t.classList.overallClass):r.push("grid place-content-center p-6"),n?.width&&r.push(n.width),n?.height&&r.push(n.height),n?.position&&r.push(n.position),n?.left&&r.push(n.left),n?.top&&r.push(n.top),r.join(" ")});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.createVNode(ki,{images:i.value},null,8,["images"])],2))}}),_i=["placeholder"],Ti=100,Bi=e.defineComponent({inheritAttrs:!1,__name:"index",props:{defaultValue:{},modelValue:{},placeholder:{},class:{},containerClass:{},classList:{}},emits:["update:modelValue"],setup(o,{emit:t}){const i=o,s=t,n=Ce.useVModel(i,"modelValue",s,{passive:!0,defaultValue:i.defaultValue}),r=e.ref(null),l=e.ref({x:0,y:0}),a=e.ref(!1),c=e.computed(()=>`
465
+ `),N=(()=>{const y=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,y),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),a.STATIC_DRAW);const _=a.createBuffer();return a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,_),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),a.STATIC_DRAW),a.vertexAttribPointer(0,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(0),(M,P=!1)=>{a&&(M?(a.viewport(0,0,M.width,M.height),a.bindFramebuffer(a.FRAMEBUFFER,M.fbo)):(a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),a.bindFramebuffer(a.FRAMEBUFFER,null)),P&&(a.clearColor(0,0,0,1),a.clear(a.COLOR_BUFFER_BIT)),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0))}})();let V,A,Q,b,L;const Y=new p(E,w),le=new p(E,D),Z=new p(E,H),W=new p(E,S),se=new p(E,C),ie=new p(E,T),ce=new p(E,R),fe=new p(E,B),we=new p(E,I),be=new k(E,O);function Ee(y,_,M,P,U,ee){a.activeTexture(a.TEXTURE0);const ne=a.createTexture();a.bindTexture(a.TEXTURE_2D,ne),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,ee),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,ee),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texImage2D(a.TEXTURE_2D,0,M,y,_,0,P,U,null);const ke=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,ke),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,ne,0),a.viewport(0,0,y,_),a.clear(a.COLOR_BUFFER_BIT);const Se=1/y,Le=1/_;return{texture:ne,fbo:ke,width:y,height:_,texelSizeX:Se,texelSizeY:Le,attach(Ge){return a.activeTexture(a.TEXTURE0+Ge),a.bindTexture(a.TEXTURE_2D,ne),Ge}}}function De(y,_,M,P,U,ee){const ne=Ee(y,_,M,P,U,ee),ke=Ee(y,_,M,P,U,ee);return{width:y,height:_,texelSizeX:ne.texelSizeX,texelSizeY:ne.texelSizeY,read:ne,write:ke,swap(){const Se=this.read;this.read=this.write,this.write=Se}}}function Fe(y,_,M,P,U,ee,ne){const ke=Ee(_,M,P,U,ee,ne);return Y.bind(),Y.uniforms.uTexture&&a.uniform1i(Y.uniforms.uTexture,y.attach(0)),N(ke,!1),ke}function z(y,_,M,P,U,ee,ne){return y.width===_&&y.height===M||(y.read=Fe(y.read,_,M,P,U,ee,ne),y.write=Ee(_,M,P,U,ee,ne),y.width=_,y.height=M,y.texelSizeX=1/_,y.texelSizeY=1/M),y}function $(){const y=te(l.SIM_RESOLUTION),_=te(l.DYE_RESOLUTION),M=c.halfFloatTexType,P=c.formatRGBA,U=c.formatRG,ee=c.formatR,ne=c.supportLinearFiltering?a.LINEAR:a.NEAREST;a.disable(a.BLEND),V?V=z(V,_.width,_.height,P.internalFormat,P.format,M,ne):V=De(_.width,_.height,P.internalFormat,P.format,M,ne),A?A=z(A,y.width,y.height,U.internalFormat,U.format,M,ne):A=De(y.width,y.height,U.internalFormat,U.format,M,ne),Q=Ee(y.width,y.height,ee.internalFormat,ee.format,M,a.NEAREST),b=Ee(y.width,y.height,ee.internalFormat,ee.format,M,a.NEAREST),L=De(y.width,y.height,ee.internalFormat,ee.format,M,a.NEAREST)}function j(){const y=[];l.SHADING&&y.push("SHADING"),be.setKeywords(y)}function te(y){const _=a.drawingBufferWidth,M=a.drawingBufferHeight,P=_/M,U=P<1?1/P:P,ee=Math.round(y),ne=Math.round(y*U);return _>M?{width:ne,height:ee}:{width:ee,height:ne}}function X(y){const _=window.devicePixelRatio||1;return Math.floor(y*_)}j(),$();let ae=Date.now(),oe=0;function he(){const y=ue();K()&&$(),re(y),pe(),ve(y),Re(null),requestAnimationFrame(he)}function ue(){const y=Date.now();let _=(y-ae)/1e3;return _=Math.min(_,.016666),ae=y,_}function K(){const y=X(n.clientWidth),_=X(n.clientHeight);return n.width!==y||n.height!==_?(n.width=y,n.height=_,!0):!1}function re(y){oe+=y*l.COLOR_UPDATE_SPEED,oe>=1&&(oe=ot(oe,0,1),r.forEach(_=>{_.color=He()}))}function pe(){for(const y of r)y.moved&&(y.moved=!1,q(y))}function ve(y){a.disable(a.BLEND),ie.bind(),ie.uniforms.texelSize&&a.uniform2f(ie.uniforms.texelSize,A.texelSizeX,A.texelSizeY),ie.uniforms.uVelocity&&a.uniform1i(ie.uniforms.uVelocity,A.read.attach(0)),N(b),ce.bind(),ce.uniforms.texelSize&&a.uniform2f(ce.uniforms.texelSize,A.texelSizeX,A.texelSizeY),ce.uniforms.uVelocity&&a.uniform1i(ce.uniforms.uVelocity,A.read.attach(0)),ce.uniforms.uCurl&&a.uniform1i(ce.uniforms.uCurl,b.attach(1)),ce.uniforms.curl&&a.uniform1f(ce.uniforms.curl,l.CURL),ce.uniforms.dt&&a.uniform1f(ce.uniforms.dt,y),N(A.write),A.swap(),se.bind(),se.uniforms.texelSize&&a.uniform2f(se.uniforms.texelSize,A.texelSizeX,A.texelSizeY),se.uniforms.uVelocity&&a.uniform1i(se.uniforms.uVelocity,A.read.attach(0)),N(Q),le.bind(),le.uniforms.uTexture&&a.uniform1i(le.uniforms.uTexture,L.read.attach(0)),le.uniforms.value&&a.uniform1f(le.uniforms.value,l.PRESSURE),N(L.write),L.swap(),fe.bind(),fe.uniforms.texelSize&&a.uniform2f(fe.uniforms.texelSize,A.texelSizeX,A.texelSizeY),fe.uniforms.uDivergence&&a.uniform1i(fe.uniforms.uDivergence,Q.attach(0));for(let M=0;M<l.PRESSURE_ITERATIONS;M++)fe.uniforms.uPressure&&a.uniform1i(fe.uniforms.uPressure,L.read.attach(1)),N(L.write),L.swap();we.bind(),we.uniforms.texelSize&&a.uniform2f(we.uniforms.texelSize,A.texelSizeX,A.texelSizeY),we.uniforms.uPressure&&a.uniform1i(we.uniforms.uPressure,L.read.attach(0)),we.uniforms.uVelocity&&a.uniform1i(we.uniforms.uVelocity,A.read.attach(1)),N(A.write),A.swap(),W.bind(),W.uniforms.texelSize&&a.uniform2f(W.uniforms.texelSize,A.texelSizeX,A.texelSizeY),!c.supportLinearFiltering&&W.uniforms.dyeTexelSize&&a.uniform2f(W.uniforms.dyeTexelSize,A.texelSizeX,A.texelSizeY);const _=A.read.attach(0);W.uniforms.uVelocity&&a.uniform1i(W.uniforms.uVelocity,_),W.uniforms.uSource&&a.uniform1i(W.uniforms.uSource,_),W.uniforms.dt&&a.uniform1f(W.uniforms.dt,y),W.uniforms.dissipation&&a.uniform1f(W.uniforms.dissipation,l.VELOCITY_DISSIPATION),N(A.write),A.swap(),!c.supportLinearFiltering&&W.uniforms.dyeTexelSize&&a.uniform2f(W.uniforms.dyeTexelSize,V.texelSizeX,V.texelSizeY),W.uniforms.uVelocity&&a.uniform1i(W.uniforms.uVelocity,A.read.attach(0)),W.uniforms.uSource&&a.uniform1i(W.uniforms.uSource,V.read.attach(1)),W.uniforms.dissipation&&a.uniform1f(W.uniforms.dissipation,l.DENSITY_DISSIPATION),N(V.write),V.swap()}function Re(y){a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),a.enable(a.BLEND),ge(y)}function ge(y){const _=a.drawingBufferWidth,M=a.drawingBufferHeight;be.bind(),l.SHADING&&be.uniforms.texelSize&&a.uniform2f(be.uniforms.texelSize,1/_,1/M),be.uniforms.uTexture&&a.uniform1i(be.uniforms.uTexture,V.read.attach(0)),N(y,!1)}function q(y){const _=y.deltaX*l.SPLAT_FORCE,M=y.deltaY*l.SPLAT_FORCE;Me(y.texcoordX,y.texcoordY,_,M,y.color)}function Te(y){const _=He();_.r*=10,_.g*=10,_.b*=10;const M=10*(Math.random()-.5),P=30*(Math.random()-.5);Me(y.texcoordX,y.texcoordY,M,P,_)}function Me(y,_,M,P,U){Z.bind(),Z.uniforms.uTarget&&a.uniform1i(Z.uniforms.uTarget,A.read.attach(0)),Z.uniforms.aspectRatio&&a.uniform1f(Z.uniforms.aspectRatio,n.width/n.height),Z.uniforms.point&&a.uniform2f(Z.uniforms.point,y,_),Z.uniforms.color&&a.uniform3f(Z.uniforms.color,M,P,0),Z.uniforms.radius&&a.uniform1f(Z.uniforms.radius,Pe(l.SPLAT_RADIUS/100)),N(A.write),A.swap(),Z.uniforms.uTarget&&a.uniform1i(Z.uniforms.uTarget,V.read.attach(0)),Z.uniforms.color&&a.uniform3f(Z.uniforms.color,U.r,U.g,U.b),N(V.write),V.swap()}function Pe(y){const _=n.width/n.height;return _>1&&(y*=_),y}function Ne(y,_,M,P){y.id=_,y.down=!0,y.moved=!1,y.texcoordX=M/n.width,y.texcoordY=1-P/n.height,y.prevTexcoordX=y.texcoordX,y.prevTexcoordY=y.texcoordY,y.deltaX=0,y.deltaY=0,y.color=He()}function Oe(y,_,M,P){y.prevTexcoordX=y.texcoordX,y.prevTexcoordY=y.texcoordY,y.texcoordX=_/n.width,y.texcoordY=1-M/n.height,y.deltaX=kt(y.texcoordX-y.prevTexcoordX),y.deltaY=it(y.texcoordY-y.prevTexcoordY),y.moved=Math.abs(y.deltaX)>0||Math.abs(y.deltaY)>0,y.color=P}function je(y){y.down=!1}function kt(y){const _=n.width/n.height;return _<1&&(y*=_),y}function it(y){const _=n.width/n.height;return _>1&&(y/=_),y}function He(){const y=ct(Math.random(),1,1);return y.r*=.15,y.g*=.15,y.b*=.15,y}function ct(y,_,M){let P=0,U=0,ee=0;const ne=Math.floor(y*6),ke=y*6-ne,Se=M*(1-_),Le=M*(1-ke*_),Ge=M*(1-(1-ke)*_);switch(ne%6){case 0:P=M,U=Ge,ee=Se;break;case 1:P=Le,U=M,ee=Se;break;case 2:P=Se,U=M,ee=Ge;break;case 3:P=Se,U=Le,ee=M;break;case 4:P=Ge,U=Se,ee=M;break;case 5:P=M,U=Se,ee=Le;break}return{r:P,g:U,b:ee}}function ot(y,_,M){const P=M-_;return(y-_)%P+_}window.addEventListener("mousedown",y=>{const _=r[0],M=X(y.clientX),P=X(y.clientY);Ne(_,-1,M,P),Te(_)});function Xe(y){const _=r[0],M=X(y.clientX),P=X(y.clientY),U=He();he(),Oe(_,M,P,U),document.body.removeEventListener("mousemove",Xe)}document.body.addEventListener("mousemove",Xe),window.addEventListener("mousemove",y=>{const _=r[0],M=X(y.clientX),P=X(y.clientY),U=_.color;Oe(_,M,P,U)});function qe(y){const _=y.targetTouches,M=r[0];for(let P=0;P<_.length;P++){const U=X(_[P].clientX),ee=X(_[P].clientY);he(),Ne(M,_[P].identifier,U,ee)}document.body.removeEventListener("touchstart",qe)}document.body.addEventListener("touchstart",qe),window.addEventListener("touchstart",y=>{const _=y.targetTouches,M=r[0];for(let P=0;P<_.length;P++){const U=X(_[P].clientX),ee=X(_[P].clientY);Ne(M,_[P].identifier,U,ee)}},!1),window.addEventListener("touchmove",y=>{const _=y.targetTouches,M=r[0];for(let P=0;P<_.length;P++){const U=X(_[P].clientX),ee=X(_[P].clientY);Oe(M,U,ee,M.color)}},!1),window.addEventListener("touchend",y=>{const _=y.changedTouches,M=r[0];for(let P=0;P<_.length;P++)je(M)}),e.watch(()=>t.simResolution,y=>{l.SIM_RESOLUTION=y,$()}),e.watch(()=>t.dyeResolution,y=>{l.DYE_RESOLUTION=y,$()}),e.watch(()=>t.shading,y=>{l.SHADING=y,j()}),he()}),(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("pointer-events-none fixed left-0 top-0 z-50 size-full",t.class))},[e.createElementVNode("canvas",{id:"fluid",ref_key:"canvasRef",ref:s,class:"block h-screen w-screen"},null,512)],2))}}),bi={class:"relative h-60 w-full flex flex-col items-center justify-center gap-4"},Ci={class:"flex flex-row items-center justify-center gap-4"},Ei={key:0,class:"opacity-50 text-4xl font-semibold"},ki=e.defineComponent({__name:"index",props:{title:{type:String,default:void 0},classList:{type:Object,default:()=>({})}},setup(o){const t=e.ref(!1);return(i,s)=>{const n=e.resolveComponent("el-switch");return e.openBlock(),e.createElementBlock("div",bi,[e.createElementVNode("div",Ci,[e.createElementVNode("span",null,e.toDisplayString(o.title),1),e.createVNode(n,{modelValue:t.value,"onUpdate:modelValue":s[0]||(s[0]=r=>t.value=r)},null,8,["modelValue"])]),t.value?(e.openBlock(),e.createElementBlock("span",Ei," Hover anywhere ")):e.createCommentVNode("",!0),t.value?(e.openBlock(),e.createBlock(wi,{key:1})):e.createCommentVNode("",!0)])}}});class bt{static instance=null;constructor(){}static getInstance(){return this.instance===null&&(this.instance=new bt),this.instance}canPost(){return typeof window<"u"&&!!window.chrome&&!!window.chrome.webview&&typeof window.chrome.webview.postMessage=="function"}post(t){if(this.canPost())return window.chrome.webview.postMessage(t),!0}send(t,i){return this.post({type:t,payload:i})}sendRaw(t){if(this.canPost())return window.chrome.webview.postMessage(t),!0}addBehaviorRecord(t,i,s,n,r,l,a,c,u,h,f,d,m,v,g){return this.send("addBehaviorRecord",{thingId:t,thingName:i,thingCategory:s,action:n,increment:r,collectionTime:l,collectEndTime:a,softwareName:c,pageName:u,pageArea:h,previousPageName:f,previousPageArea:d,position:m,pSource:v,comments:g})}addBehaviorRecordObject(t){return this.send("addBehaviorRecord",t)}doDropCargo(t){return this.send("doDropCargo",{cargoRoad:t})}printPayData(t){return this.send("printPayData",{printJsonData:t})}sendSerialCommand(t,i){return this.send("sendSerialCommand",{command:t,isHex:i})}log(t){return this.send("log",{content:t})}CloseFaceRecognition(){return this.send("CloseFaceRecognition")}sendAction(t,i){return this.send("sendAction",{v1:t,v2:i})}facedetect(){return this.send("facedetect")}}const Si=e.defineComponent({__name:"index",props:{title:{type:String,default:void 0},class:{type:String,default:void 0},classList:{type:Object,default:()=>({})},events:{type:Object,default:()=>({emitEventName:void 0,emitPayload:void 0,postToWebview:!1})},onCustomClick:{type:Function,default:void 0}},emits:["click"],setup(o,{emit:t}){const i=o,s=e.computed(()=>{const h=i.classList&&i.classList.Location||{};return[h.position,h.width,h.height,h.left,h.top].filter(Boolean)}),n=e.computed(()=>i.title??"Button"),r=e.ref(null),l=Vt.useRouter(),a=t,c=h=>{if(!Array.isArray(h)||h.length===0)return null;const f=h[0];if(typeof f!="string")return null;const d=f.match(/^s:navigate\?page=([^&\s]+)/);return d?{type:"navigate",page:d[1]}:{type:"custom",command:f}},u=h=>{if(a("click",h),i.onCustomClick&&typeof i.onCustomClick=="function"){i.onCustomClick({event:h,events:i.events,payload:i.events.emitPayload});return}const f=i.events.emitPayload,d=f?.Data;if(i.events.postToWebview===!0){try{const m=bt.getInstance(),v=f||{PageName:"unknown",ControlName:"IButtonComp",Data:d||[]};console.log("Posting to WebView via bridge:",v),m.sendRaw(v)||console.warn("WebView bridge not available; message not sent")}catch(m){console.warn("Failed to postMessage to webview",m)}return}if(d&&Array.isArray(d)){const m=c(d);if(m?.type==="navigate"&&m.page){console.log("Navigating to page:",m.page),l.push(`/${m.page}`);return}}if(i.events.emitEventName){const m={payload:f,originalEvent:h};console.log("Dispatching custom event:",i.events.emitEventName,m),window.dispatchEvent(new CustomEvent(i.events.emitEventName,{detail:m}))}};return(h,f)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps({ref_key:"buttonRef",ref:r},h.$attrs,{onClick:u,class:e.unref(J)(o.classList?.buttonClass,i.class,s.value)}),[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)(o.classList?.containerClass))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)(o.classList?.dotClass))},null,2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(J)(o.classList?.textClass))},e.toDisplayString(n.value),3)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)(o.classList?.hoverContainerClass))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(J)(o.classList?.hoverTextClass))},e.toDisplayString(n.value),3),(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:e.normalizeClass(e.unref(J)(o.classList?.iconClass))},[...f[0]||(f[0]=[e.createElementVNode("path",{d:"M5 12h14"},null,-1),e.createElementVNode("path",{d:"m12 5 7 7-7 7"},null,-1)])],2))],2)],16))}}),Ti=e.defineComponent({__name:"IconCloud",props:{class:{},images:{}},setup(o){const t=o,{images:i}=t,s=e.ref(null),n=e.ref(0),r=e.ref([]),l=e.ref([]),a=e.ref([]),c=e.reactive({x:0,y:0}),u=e.ref(!1),h=e.reactive({x:0,y:0}),f=e.reactive({x:0,y:0}),d=e.ref(null);function m(p){return 1-(1-p)**3}e.watchEffect(()=>{if(!i)return;l.value=new Array(i.length).fill(!1);const p=i.map((k,E)=>{const w=document.createElement("canvas");w.width=40,w.height=40;const D=w.getContext("2d");if(!D)return w;const O=new Image;return O.crossOrigin="anonymous",O.src=k,O.onload=()=>{D.clearRect(0,0,w.width,w.height),D.beginPath(),D.arc(20,20,20,0,Math.PI*2),D.closePath(),D.clip(),D.drawImage(O,0,0,40,40),l.value[E]=!0},w});r.value=p}),e.watchEffect(()=>{const p=i?.length||0;if(p===0){a.value=[];return}const k=[],E=2/p,w=Math.PI*(3-Math.sqrt(5));for(let D=0;D<p;D++){const O=D*E-1+E/2,H=Math.sqrt(1-O*O),S=D*w,C=Math.cos(S)*H,T=Math.sin(S)*H;k.push({x:C*100,y:O*100,z:T*100,scale:1,opacity:1,id:D})}a.value=k});function v(p){const k=s.value;if(!k)return;const E=k.getBoundingClientRect(),w=p.clientX-E.left,D=p.clientY-E.top;k.getContext("2d")&&(a.value.forEach(H=>{const S=Math.cos(c.x),C=Math.sin(c.x),T=Math.cos(c.y),R=Math.sin(c.y),B=H.x*T-H.z*R,I=H.x*R+H.z*T,N=H.y*S+I*C,V=k.width/2+B,A=k.height/2+N,b=20*((I+200)/300),L=w-V,Y=D-A;if(L*L+Y*Y<b*b){const le=-Math.atan2(H.y,Math.sqrt(H.x*H.x+H.z*H.z)),Z=Math.atan2(H.x,H.z),W=c.x,se=c.y,ie=Math.sqrt((le-W)**2+(Z-se)**2),ce=Math.min(2e3,Math.max(800,ie*1e3));d.value={x:le,y:Z,startX:W,startY:se,distance:ie,startTime:performance.now(),duration:ce};return}}),u.value=!0,h.x=p.clientX,h.y=p.clientY)}function g(p){const k=s.value;if(!k)return;const E=k.getBoundingClientRect();if(f.x=p.clientX-E.left,f.y=p.clientY-E.top,u.value){const w=p.clientX-h.x,D=p.clientY-h.y;c.x+=D*.002,c.y+=w*.002,h.x=p.clientX,h.y=p.clientY}}function x(){u.value=!1}return e.onMounted(()=>{const p=s.value;if(!p)return;const k=p.getContext("2d");if(!k)return;function E(){if(!k||!p)return;k.clearRect(0,0,p.width,p.height);const w=p.width/2,D=p.height/2,O=f.x-w,H=f.y-D,S=Math.sqrt(w*w+D*D),T=.003+Math.sqrt(O*O+H*H)/S*.01;if(d.value){const{startX:R,startY:B,x:I,y:N,startTime:V,duration:A}=d.value,Q=performance.now()-V,b=Math.min(1,Q/A),L=m(b);c.x=R+(I-R)*L,c.y=B+(N-B)*L,b>=1&&(d.value=null)}else u.value||(c.x+=H/p.height*T,c.y+=O/p.width*T);a.value.forEach((R,B)=>{const I=Math.cos(c.x),N=Math.sin(c.x),V=Math.cos(c.y),A=Math.sin(c.y),Q=R.x*V-R.z*A,b=R.x*A+R.z*V,L=R.y*I+b*N,Y=(b+200)/300,le=Math.max(.2,Math.min(1,(b+150)/200));k.save(),k.translate(w+Q,D+L),k.scale(Y,Y),k.globalAlpha=le,r.value[B]&&l.value[B]&&k.drawImage(r.value[B],-20,-20,40,40),k.restore()}),n.value=requestAnimationFrame(E)}n.value=requestAnimationFrame(E)}),e.onBeforeUnmount(()=>{n.value&&cancelAnimationFrame(n.value)}),(p,k)=>(e.openBlock(),e.createElementBlock("canvas",{ref_key:"canvasRef",ref:s,width:"300",height:"300",class:e.normalizeClass(e.unref(J)("rounded-lg",p.$props.class)),role:"img","aria-label":"Interactive 3D Image Cloud",onMousedown:v,onMousemove:g,onMouseup:x,onMouseleave:x},null,34))}}),Mi=e.defineComponent({__name:"index",props:{slugs:{default:()=>["typescript","javascript","dart","java","react","flutter","android","html5","css3","nodedotjs","express","nextdotjs","prisma","amazonaws","postgresql","firebase","nginx","vercel","testinglibrary","jest","cypress","docker","git","jira","github","gitlab","visualstudiocode","androidstudio","sonarqube","figma"]},useColorSlugAsColor:{type:Boolean,default:!0},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>t.slugs.map(n=>n)),s=e.computed(()=>{const n=t.classList?.Location,r=[];return t.classList?.overallClass?r.push(t.classList.overallClass):r.push("grid place-content-center p-6"),n?.width&&r.push(n.width),n?.height&&r.push(n.height),n?.position&&r.push(n.position),n?.left&&r.push(n.left),n?.top&&r.push(n.top),r.join(" ")});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.createVNode(Ti,{images:i.value},null,8,["images"])],2))}}),_i=["placeholder"],Bi=100,Di=e.defineComponent({inheritAttrs:!1,__name:"index",props:{defaultValue:{},modelValue:{},placeholder:{},class:{},containerClass:{},classList:{}},emits:["update:modelValue"],setup(o,{emit:t}){const i=o,s=t,n=Ce.useVModel(i,"modelValue",s,{passive:!0,defaultValue:i.defaultValue}),r=e.ref(null),l=e.ref({x:0,y:0}),a=e.ref(!1),c=e.computed(()=>`
405
466
  radial-gradient(
406
- ${a.value?Ti+"px":"0px"} circle at ${l.value.x}px ${l.value.y}px,
467
+ ${a.value?Bi+"px":"0px"} circle at ${l.value.x}px ${l.value.y}px,
407
468
  rgba(59,130,246,0.45),
408
469
  transparent 80%
409
470
  )
410
- `);function u({clientX:m,clientY:h}){if(!r.value)return;const{left:f,top:x}=r.value.getBoundingClientRect();l.value={x:m-f,y:h-x}}const d=e.computed(()=>{const m=i.classList?.Location||{};return[m.position,m.width,m.height,m.left,m.top].filter(Boolean)});return(m,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"inputContainerRef",ref:r,class:e.normalizeClass(e.unref(J)("group/input rounded-lg p-[2px] transition duration-300",i.containerClass||i.classList?.containerClass,d.value)),style:e.normalizeStyle({background:c.value}),onMouseenter:h[1]||(h[1]=()=>a.value=!0),onMouseleave:h[2]||(h[2]=()=>a.value=!1),onMousemove:u},[e.withDirectives(e.createElementVNode("input",e.mergeProps(m.$attrs,{"onUpdate:modelValue":h[0]||(h[0]=f=>e.isRef(n)?n.value=f:null),placeholder:o.placeholder,class:e.unref(J)(`flex h-10 w-full border-none bg-gray-50 dark:bg-zinc-800 text-black dark:text-white shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
471
+ `);function u({clientX:f,clientY:d}){if(!r.value)return;const{left:m,top:v}=r.value.getBoundingClientRect();l.value={x:f-m,y:d-v}}const h=e.computed(()=>{const f=i.classList?.Location||{};return[f.position,f.width,f.height,f.left,f.top].filter(Boolean)});return(f,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"inputContainerRef",ref:r,class:e.normalizeClass(e.unref(J)("group/input rounded-lg p-[2px] transition duration-300",i.containerClass||i.classList?.containerClass,h.value)),style:e.normalizeStyle({background:c.value}),onMouseenter:d[1]||(d[1]=()=>a.value=!0),onMouseleave:d[2]||(d[2]=()=>a.value=!1),onMousemove:u},[e.withDirectives(e.createElementVNode("input",e.mergeProps(f.$attrs,{"onUpdate:modelValue":d[0]||(d[0]=m=>e.isRef(n)?n.value=m:null),placeholder:o.placeholder,class:e.unref(J)(`flex h-10 w-full border-none bg-gray-50 dark:bg-zinc-800 text-black dark:text-white shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
411
472
  file:text-sm file:font-medium placeholder:text-neutral-400 dark:placeholder-text-neutral-600
412
473
  focus-visible:outline-none focus-visible:ring-[2px] focus-visible:ring-neutral-400 dark:focus-visible:ring-neutral-600
413
474
  disabled:cursor-not-allowed disabled:opacity-50
414
475
  dark:shadow-[0px_0px_1px_1px_var(--neutral-700)]
415
- group-hover/input:shadow-none transition duration-400`,i.class||i.classList?.inputClass)}),null,16,_i),[[e.vModelDynamic,e.unref(n)]])],38))}}),ht=me(Bi,[["__scopeId","data-v-d4c55b97"]]);/*!
476
+ group-hover/input:shadow-none transition duration-400`,i.class||i.classList?.inputClass)}),null,16,_i),[[e.vModelDynamic,e.unref(n)]])],38))}}),ht=me(Di,[["__scopeId","data-v-d4c55b97"]]);/*!
416
477
  * VelocityTracker: 3.13.0
417
478
  * https://gsap.com
418
479
  *
419
480
  * Copyright 2008-2025, GreenSock. All rights reserved.
420
481
  * Subject to the terms at https://gsap.com/standard-license
421
482
  * @author: Jack Doyle, jack@greensock.com
422
- */var Me,mt,Je,Ht,Ye,We,ft,Gt,Yt=function(){return Me||typeof window<"u"&&(Me=window.gsap)},pt={},Mi=function(t){return Math.round(t*1e4)/1e4},vt=function(t){return Gt(t).id},Ke=function(t){return pt[vt(typeof t=="string"?Je(t)[0]:t)]},Bt=function(t){var i=Ye,s;if(t-ft>=.05)for(ft=t;i;)s=i.g(i.t,i.p),(s!==i.v1||t-i.t1>.2)&&(i.v2=i.v1,i.v1=s,i.t2=i.t1,i.t1=t),i=i._next},Di={deg:360,rad:Math.PI*2},ut=function(){Me=Yt(),Me&&(Je=Me.utils.toArray,Ht=Me.utils.getUnit,Gt=Me.core.getCache,We=Me.ticker,mt=1)},Ri=function(t,i,s,n){this.t=t,this.p=i,this.g=t._gsap.get,this.rCap=Di[s||Ht(this.g(t,i))],this.v1=this.v2=0,this.t1=this.t2=We.time,n&&(this._next=n,n._prev=this)},st=(function(){function o(i,s){mt||ut(),this.target=Je(i)[0],pt[vt(this.target)]=this,this._props={},s&&this.add(s)}o.register=function(s){Me=s,ut()};var t=o.prototype;return t.get=function(s,n){var r=this._props[s]||console.warn("Not tracking "+s+" velocity."),l,a,c;return l=parseFloat(n?r.v1:r.g(r.t,r.p)),a=l-parseFloat(r.v2),c=r.rCap,c&&(a=a%c,a!==a%(c/2)&&(a=a<0?a+c:a-c)),Mi(a/((n?r.t1:We.time)-r.t2))},t.getAll=function(){var s={},n=this._props,r;for(r in n)s[r]=this.get(r);return s},t.isTracking=function(s){return s in this._props},t.add=function(s,n){s in this._props||(Ye||(We.add(Bt),ft=We.time),Ye=this._props[s]=new Ri(this.target,s,n,Ye))},t.remove=function(s){var n=this._props[s],r,l;n&&(r=n._prev,l=n._next,r&&(r._next=l),l?l._prev=r:Ye===n&&(We.remove(Bt),Ye=0),delete this._props[s])},t.kill=function(s){for(var n in this._props)this.remove(n);s||delete pt[vt(this.target)]},o.track=function(s,n,r){mt||ut();for(var l=[],a=Je(s),c=n.split(","),u=(r||"").split(","),d=a.length,m,h;d--;){for(m=Ke(a[d])||new o(a[d]),h=c.length;h--;)m.add(c[h],u[h]||u[0]);l.push(m)}return l},o.untrack=function(s,n){var r=(n||"").split(",");Je(s).forEach(function(l){var a=Ke(l);a&&(r.length?r.forEach(function(c){return a.remove(c)}):a.kill(1))})},o.isTracking=function(s,n){var r=Ke(s);return r&&r.isTracking(n)},o.getVelocity=function(s,n){var r=Ke(s);return!r||!r.isTracking(n)?console.warn("Not tracking velocity of "+n):r.get(n)},o})();st.getByTarget=Ke;Yt()&&Me.registerPlugin(st);/*!
483
+ */var Be,mt,Je,Ht,Ye,We,ft,Gt,Yt=function(){return Be||typeof window<"u"&&(Be=window.gsap)},pt={},Ri=function(t){return Math.round(t*1e4)/1e4},gt=function(t){return Gt(t).id},Ke=function(t){return pt[gt(typeof t=="string"?Je(t)[0]:t)]},_t=function(t){var i=Ye,s;if(t-ft>=.05)for(ft=t;i;)s=i.g(i.t,i.p),(s!==i.v1||t-i.t1>.2)&&(i.v2=i.v1,i.v1=s,i.t2=i.t1,i.t1=t),i=i._next},Li={deg:360,rad:Math.PI*2},ut=function(){Be=Yt(),Be&&(Je=Be.utils.toArray,Ht=Be.utils.getUnit,Gt=Be.core.getCache,We=Be.ticker,mt=1)},Ii=function(t,i,s,n){this.t=t,this.p=i,this.g=t._gsap.get,this.rCap=Li[s||Ht(this.g(t,i))],this.v1=this.v2=0,this.t1=this.t2=We.time,n&&(this._next=n,n._prev=this)},st=(function(){function o(i,s){mt||ut(),this.target=Je(i)[0],pt[gt(this.target)]=this,this._props={},s&&this.add(s)}o.register=function(s){Be=s,ut()};var t=o.prototype;return t.get=function(s,n){var r=this._props[s]||console.warn("Not tracking "+s+" velocity."),l,a,c;return l=parseFloat(n?r.v1:r.g(r.t,r.p)),a=l-parseFloat(r.v2),c=r.rCap,c&&(a=a%c,a!==a%(c/2)&&(a=a<0?a+c:a-c)),Ri(a/((n?r.t1:We.time)-r.t2))},t.getAll=function(){var s={},n=this._props,r;for(r in n)s[r]=this.get(r);return s},t.isTracking=function(s){return s in this._props},t.add=function(s,n){s in this._props||(Ye||(We.add(_t),ft=We.time),Ye=this._props[s]=new Ii(this.target,s,n,Ye))},t.remove=function(s){var n=this._props[s],r,l;n&&(r=n._prev,l=n._next,r&&(r._next=l),l?l._prev=r:Ye===n&&(We.remove(_t),Ye=0),delete this._props[s])},t.kill=function(s){for(var n in this._props)this.remove(n);s||delete pt[gt(this.target)]},o.track=function(s,n,r){mt||ut();for(var l=[],a=Je(s),c=n.split(","),u=(r||"").split(","),h=a.length,f,d;h--;){for(f=Ke(a[h])||new o(a[h]),d=c.length;d--;)f.add(c[d],u[d]||u[0]);l.push(f)}return l},o.untrack=function(s,n){var r=(n||"").split(",");Je(s).forEach(function(l){var a=Ke(l);a&&(r.length?r.forEach(function(c){return a.remove(c)}):a.kill(1))})},o.isTracking=function(s,n){var r=Ke(s);return r&&r.isTracking(n)},o.getVelocity=function(s,n){var r=Ke(s);return!r||!r.isTracking(n)?console.warn("Not tracking velocity of "+n):r.get(n)},o})();st.getByTarget=Ke;Yt()&&Be.registerPlugin(st);/*!
423
484
  * InertiaPlugin 3.13.0
424
485
  * https://gsap.com
425
486
  *
426
487
  * @license Copyright 2008-2025, GreenSock. All rights reserved.
427
488
  * Subject to the terms at https://gsap.com/standard-license
428
489
  * @author: Jack Doyle, jack@greensock.com
429
- */var ye,Wt,Mt,jt,gt,Qe,Xt,qt,Zt,Ct,Kt,et,xt,Jt,at=st.getByTarget,Qt=function(){return ye||typeof window<"u"&&(ye=window.gsap)&&ye.registerPlugin&&ye},Li=function(t){return typeof t=="string"},tt=function(t){return typeof t=="number"},Ve=function(t){return typeof t=="object"},yt=function(t){return typeof t=="function"},Ii=1,es=Array.isArray,zi=function(t){return t},Ue=1e10,Dt=1/Ue,ts=.05,Ai=function(t){return Math.round(t*1e4)/1e4},Pi=function(t,i,s){for(var n in i)!(n in t)&&n!==s&&(t[n]=i[n]);return t},Ni=function o(t){var i={},s,n;for(s in t)i[s]=Ve(n=t[s])&&!es(n)?o(n):n;return i},Rt=function(t,i,s,n,r){var l=i.length,a=0,c=Ue,u,d,m,h;if(Ve(t)){for(;l--;){u=i[l],d=0;for(m in t)h=u[m]-t[m],d+=h*h;d<c&&(a=l,c=d)}if((r||Ue)<Ue&&r<Math.sqrt(c))return t}else for(;l--;)u=i[l],d=u-t,d<0&&(d=-d),d<c&&u>=n&&u<=s&&(a=l,c=d);return i[a]},ss=function(t,i,s,n,r,l,a){if(t.end==="auto")return t;var c=t.end,u,d;if(s=isNaN(s)?Ue:s,n=isNaN(n)?-Ue:n,Ve(i)){if(u=i.calculated?i:(yt(c)?c(i,a):Rt(i,c,s,n,l))||i,!i.calculated){for(d in u)i[d]=u[d];i.calculated=!0}u=u[r]}else u=yt(c)?c(i,a):es(c)?Rt(i,c,s,n,l):parseFloat(c);return u>s?u=s:u<n&&(u=n),{max:u,min:u,unitFactor:t.unitFactor}},rt=function(t,i,s){return isNaN(t[i])?s:+t[i]},Et=function(t,i){return i*ts*t/Ct},Lt=function(t,i,s){return Math.abs((i-t)*Ct/s/ts)},is={resistance:1,checkpoint:1,preventOvershoot:1,linkedProps:1,radius:1,duration:1},os=function(t,i,s,n){if(i.linkedProps){var r=i.linkedProps.split(","),l={},a,c,u,d,m,h;for(a=0;a<r.length;a++)c=r[a],u=i[c],u&&(tt(u.velocity)?d=u.velocity:(m=m||at(t),d=m&&m.isTracking(c)?m.get(c):0),h=Math.abs(d/rt(u,"resistance",n)),l[c]=parseFloat(s(t,c))+Et(d,h));return l}},Vi=function(t,i,s,n,r,l){if(s===void 0&&(s=10),n===void 0&&(n=.2),r===void 0&&(r=1),Li(t)&&(t=jt(t)[0]),!t)return 0;var a=0,c=Ue,u=i.inertia||i,d=Zt(t).get,m=rt(u,"resistance",Qe.resistance),h,f,x,v,y,p,E,k,b,L;L=os(t,u,d,m);for(h in u)is[h]||(f=u[h],Ve(f)||(k=k||at(t),k&&k.isTracking(h)?f=tt(f)?{velocity:f}:{velocity:k.get(h)}:(v=+f||0,x=Math.abs(v/m))),Ve(f)&&(tt(f.velocity)?v=f.velocity:(k=k||at(t),v=k&&k.isTracking(h)?k.get(h):0),x=Kt(n,s,Math.abs(v/rt(f,"resistance",m))),y=parseFloat(d(t,h))||0,p=y+Et(v,x),"end"in f&&(f=ss(f,L&&h in L?L:p,f.max,f.min,h,u.radius,v),et===i&&(et=u=Ni(i)),u[h]=Pi(f,u[h],"end")),"max"in f&&p>+f.max+Dt?(b=f.unitFactor||Qe.unitFactors[h]||1,E=y>f.max&&f.min!==f.max||v*b>-15&&v*b<45?n+(s-n)*.1:Lt(y,f.max,v),E+r<c&&(c=E+r)):"min"in f&&p<+f.min-Dt&&(b=f.unitFactor||Qe.unitFactors[h]||1,E=y<f.min&&f.min!==f.max||v*b>-45&&v*b<15?n+(s-n)*.1:Lt(y,f.min,v),E+r<c&&(c=E+r)),E>a&&(a=E)),x>a&&(a=x));return a>c&&(a=c),a>s?s:a<n?n:a},It=function(){ye=Qt(),ye&&(Mt=ye.parseEase,jt=ye.utils.toArray,Xt=ye.utils.getUnit,Zt=ye.core.getCache,Kt=ye.utils.clamp,xt=ye.core.getStyleSaver,Jt=ye.core.reverting||function(){},gt=Mt("power3"),Ct=gt(.05),qt=ye.core.PropTween,ye.config({resistance:100,unitFactors:{time:1e3,totalTime:1e3,progress:1e3,totalProgress:1e3}}),Qe=ye.config(),ye.registerPlugin(st),Wt=1)},lt={version:"3.13.0",name:"inertia",register:function(t){ye=t,It()},init:function(t,i,s,n,r){Wt||It();var l=at(t);if(i==="auto"){if(!l){console.warn("No inertia tracking on "+t+". InertiaPlugin.track(target) first.");return}i=l.getAll()}this.styles=xt&&typeof t.style=="object"&&xt(t),this.target=t,this.tween=s,et=i;var a=t._gsap,c=a.get,u=i.duration,d=Ve(u),m=i.preventOvershoot||d&&u.overshoot===0,h=rt(i,"resistance",Qe.resistance),f=tt(u)?u:Vi(t,i,d&&u.max||10,d&&u.min||.2,d&&"overshoot"in u?+u.overshoot:m?0:1),x,v,y,p,E,k,b,L,U;i=et,et=0,U=os(t,i,c,h);for(x in i)is[x]||(v=i[x],yt(v)&&(v=v(n,t,r)),tt(v)?E=v:Ve(v)&&!isNaN(v.velocity)?E=+v.velocity:l&&l.isTracking(x)?E=l.get(x):console.warn("ERROR: No velocity was defined for "+t+" property: "+x),k=Et(E,f),L=0,y=c(t,x),p=Xt(y),y=parseFloat(y),Ve(v)&&(b=y+k,"end"in v&&(v=ss(v,U&&x in U?U:b,v.max,v.min,x,i.radius,E)),"max"in v&&+v.max<b?m||v.preventOvershoot?k=v.max-y:L=v.max-y-k:"min"in v&&+v.min>b&&(m||v.preventOvershoot?k=v.min-y:L=v.min-y-k)),this._props.push(x),this.styles&&this.styles.save(x),this._pt=new qt(this._pt,t,x,y,0,zi,0,a.set(t,x,this)),this._pt.u=p||0,this._pt.c1=k,this._pt.c2=L);return s.duration(f),Ii},render:function(t,i){var s=i._pt;if(t=gt(i.tween._time/i.tween._dur),t||!Jt())for(;s;)s.set(s.t,s.p,Ai(s.s+s.c1*t+s.c2*t*t)+s.u,s.d,t),s=s._next;else i.styles.revert()}};"track,untrack,isTracking,getVelocity,getByTarget".split(",").forEach(function(o){return lt[o]=st[o]});Qt()&&ye.registerPlugin(lt);const Fi=`precision highp float;
490
+ */var ye,Wt,Bt,jt,vt,Qe,Xt,qt,Zt,Ct,Kt,et,xt,Jt,at=st.getByTarget,Qt=function(){return ye||typeof window<"u"&&(ye=window.gsap)&&ye.registerPlugin&&ye},zi=function(t){return typeof t=="string"},tt=function(t){return typeof t=="number"},Ve=function(t){return typeof t=="object"},yt=function(t){return typeof t=="function"},Ai=1,es=Array.isArray,Pi=function(t){return t},Ue=1e10,Dt=1/Ue,ts=.05,Ni=function(t){return Math.round(t*1e4)/1e4},Vi=function(t,i,s){for(var n in i)!(n in t)&&n!==s&&(t[n]=i[n]);return t},Fi=function o(t){var i={},s,n;for(s in t)i[s]=Ve(n=t[s])&&!es(n)?o(n):n;return i},Rt=function(t,i,s,n,r){var l=i.length,a=0,c=Ue,u,h,f,d;if(Ve(t)){for(;l--;){u=i[l],h=0;for(f in t)d=u[f]-t[f],h+=d*d;h<c&&(a=l,c=h)}if((r||Ue)<Ue&&r<Math.sqrt(c))return t}else for(;l--;)u=i[l],h=u-t,h<0&&(h=-h),h<c&&u>=n&&u<=s&&(a=l,c=h);return i[a]},ss=function(t,i,s,n,r,l,a){if(t.end==="auto")return t;var c=t.end,u,h;if(s=isNaN(s)?Ue:s,n=isNaN(n)?-Ue:n,Ve(i)){if(u=i.calculated?i:(yt(c)?c(i,a):Rt(i,c,s,n,l))||i,!i.calculated){for(h in u)i[h]=u[h];i.calculated=!0}u=u[r]}else u=yt(c)?c(i,a):es(c)?Rt(i,c,s,n,l):parseFloat(c);return u>s?u=s:u<n&&(u=n),{max:u,min:u,unitFactor:t.unitFactor}},rt=function(t,i,s){return isNaN(t[i])?s:+t[i]},Et=function(t,i){return i*ts*t/Ct},Lt=function(t,i,s){return Math.abs((i-t)*Ct/s/ts)},is={resistance:1,checkpoint:1,preventOvershoot:1,linkedProps:1,radius:1,duration:1},os=function(t,i,s,n){if(i.linkedProps){var r=i.linkedProps.split(","),l={},a,c,u,h,f,d;for(a=0;a<r.length;a++)c=r[a],u=i[c],u&&(tt(u.velocity)?h=u.velocity:(f=f||at(t),h=f&&f.isTracking(c)?f.get(c):0),d=Math.abs(h/rt(u,"resistance",n)),l[c]=parseFloat(s(t,c))+Et(h,d));return l}},Oi=function(t,i,s,n,r,l){if(s===void 0&&(s=10),n===void 0&&(n=.2),r===void 0&&(r=1),zi(t)&&(t=jt(t)[0]),!t)return 0;var a=0,c=Ue,u=i.inertia||i,h=Zt(t).get,f=rt(u,"resistance",Qe.resistance),d,m,v,g,x,p,k,E,w,D;D=os(t,u,h,f);for(d in u)is[d]||(m=u[d],Ve(m)||(E=E||at(t),E&&E.isTracking(d)?m=tt(m)?{velocity:m}:{velocity:E.get(d)}:(g=+m||0,v=Math.abs(g/f))),Ve(m)&&(tt(m.velocity)?g=m.velocity:(E=E||at(t),g=E&&E.isTracking(d)?E.get(d):0),v=Kt(n,s,Math.abs(g/rt(m,"resistance",f))),x=parseFloat(h(t,d))||0,p=x+Et(g,v),"end"in m&&(m=ss(m,D&&d in D?D:p,m.max,m.min,d,u.radius,g),et===i&&(et=u=Fi(i)),u[d]=Vi(m,u[d],"end")),"max"in m&&p>+m.max+Dt?(w=m.unitFactor||Qe.unitFactors[d]||1,k=x>m.max&&m.min!==m.max||g*w>-15&&g*w<45?n+(s-n)*.1:Lt(x,m.max,g),k+r<c&&(c=k+r)):"min"in m&&p<+m.min-Dt&&(w=m.unitFactor||Qe.unitFactors[d]||1,k=x<m.min&&m.min!==m.max||g*w>-45&&g*w<15?n+(s-n)*.1:Lt(x,m.min,g),k+r<c&&(c=k+r)),k>a&&(a=k)),v>a&&(a=v));return a>c&&(a=c),a>s?s:a<n?n:a},It=function(){ye=Qt(),ye&&(Bt=ye.parseEase,jt=ye.utils.toArray,Xt=ye.utils.getUnit,Zt=ye.core.getCache,Kt=ye.utils.clamp,xt=ye.core.getStyleSaver,Jt=ye.core.reverting||function(){},vt=Bt("power3"),Ct=vt(.05),qt=ye.core.PropTween,ye.config({resistance:100,unitFactors:{time:1e3,totalTime:1e3,progress:1e3,totalProgress:1e3}}),Qe=ye.config(),ye.registerPlugin(st),Wt=1)},lt={version:"3.13.0",name:"inertia",register:function(t){ye=t,It()},init:function(t,i,s,n,r){Wt||It();var l=at(t);if(i==="auto"){if(!l){console.warn("No inertia tracking on "+t+". InertiaPlugin.track(target) first.");return}i=l.getAll()}this.styles=xt&&typeof t.style=="object"&&xt(t),this.target=t,this.tween=s,et=i;var a=t._gsap,c=a.get,u=i.duration,h=Ve(u),f=i.preventOvershoot||h&&u.overshoot===0,d=rt(i,"resistance",Qe.resistance),m=tt(u)?u:Oi(t,i,h&&u.max||10,h&&u.min||.2,h&&"overshoot"in u?+u.overshoot:f?0:1),v,g,x,p,k,E,w,D,O;i=et,et=0,O=os(t,i,c,d);for(v in i)is[v]||(g=i[v],yt(g)&&(g=g(n,t,r)),tt(g)?k=g:Ve(g)&&!isNaN(g.velocity)?k=+g.velocity:l&&l.isTracking(v)?k=l.get(v):console.warn("ERROR: No velocity was defined for "+t+" property: "+v),E=Et(k,m),D=0,x=c(t,v),p=Xt(x),x=parseFloat(x),Ve(g)&&(w=x+E,"end"in g&&(g=ss(g,O&&v in O?O:w,g.max,g.min,v,i.radius,k)),"max"in g&&+g.max<w?f||g.preventOvershoot?E=g.max-x:D=g.max-x-E:"min"in g&&+g.min>w&&(f||g.preventOvershoot?E=g.min-x:D=g.min-x-E)),this._props.push(v),this.styles&&this.styles.save(v),this._pt=new qt(this._pt,t,v,x,0,Pi,0,a.set(t,v,this)),this._pt.u=p||0,this._pt.c1=E,this._pt.c2=D);return s.duration(m),Ai},render:function(t,i){var s=i._pt;if(t=vt(i.tween._time/i.tween._dur),t||!Jt())for(;s;)s.set(s.t,s.p,Ni(s.s+s.c1*t+s.c2*t*t)+s.u,s.d,t),s=s._next;else i.styles.revert()}};"track,untrack,isTracking,getVelocity,getByTarget".split(",").forEach(function(o){return lt[o]=st[o]});Qt()&&ye.registerPlugin(lt);const Ui=`precision highp float;
430
491
 
431
492
  uniform sampler2D map;
432
493
  // uniform float blurAmount; // Removed: Blur amount is now fixed
@@ -455,7 +516,7 @@ void main() {
455
516
 
456
517
  // Apply the opacity uniform to the alpha channel of the final color
457
518
  gl_FragColor = vec4(sum.rgb, sum.a * uOpacity); // sum.a is usually 1.0 from texture, so multiply by uOpacity
458
- }`,Oi=`
519
+ }`,$i=`
459
520
  attribute vec2 uv;
460
521
  attribute vec3 position;
461
522
 
@@ -469,7 +530,7 @@ void main() {
469
530
  vUv = vec2(uv.x, 1.0 - uv.y);
470
531
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
471
532
  }
472
- `,Ui=`precision highp float;
533
+ `,Hi=`precision highp float;
473
534
 
474
535
  uniform sampler2D tDiffuse;
475
536
  uniform vec2 distortion;
@@ -505,7 +566,7 @@ void main() {
505
566
  // The original '* vignetteIntensity' would brighten. Vignettes usually darken.
506
567
  // If you want a more subtle darkening, adjust the '(1.0 - vignetteIntensity)''.
507
568
  gl_FragColor = vec4(color, 1.);
508
- }`,$i=`
569
+ }`,Gi=`
509
570
  attribute vec2 uv;
510
571
  attribute vec3 position;
511
572
 
@@ -517,7 +578,7 @@ varying vec2 vUv;
517
578
  void main() {
518
579
  vUv = uv;
519
580
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
520
- }`;class Hi{gl;program;renderTarget;mesh;geometry;scene;camera;_distortionIntensity=0;_vignetteOffset=.8;_vignetteDarkness=1;constructor(t,i={}){this.gl=t,this._distortionIntensity=i.distortionIntensity??0,this._vignetteOffset=i.vignetteOffset??1.2,this._vignetteDarkness=i.vignetteDarkness??1.5,this.renderTarget=new X.RenderTarget(t,{width:t.canvas.width,height:t.canvas.height}),this.geometry=new X.Plane(t,{width:2,height:2}),this.program=new X.Program(t,{vertex:$i,fragment:Ui,uniforms:{tDiffuse:{value:null},distortion:{value:new X.Vec2(0,0)},vignetteOffset:{value:this._vignetteOffset},vignetteDarkness:{value:this._vignetteDarkness}},transparent:!1,cullFace:!1}),this.mesh=new X.Mesh(t,{geometry:this.geometry,program:this.program}),this.scene=new X.Transform,this.mesh.setParent(this.scene),this.camera=new X.Camera(t,{left:-1,right:1,bottom:-1,top:1,near:0,far:2}),this.camera.position.set(0,0,1),this.updateUniforms()}get distortionIntensity(){return this._distortionIntensity}set distortionIntensity(t){this._distortionIntensity=t,this.updateUniforms()}get vignetteOffset(){return this._vignetteOffset}set vignetteOffset(t){this._vignetteOffset=t,this.updateUniforms()}get vignetteDarkness(){return this._vignetteDarkness}set vignetteDarkness(t){this._vignetteDarkness=t,this.updateUniforms()}updateUniforms(){if(!this.program)return;const t=window.innerWidth/window.innerHeight;this.program.uniforms.distortion.value.set(this._distortionIntensity*t,this._distortionIntensity),this.program.uniforms.vignetteOffset.value=this._vignetteOffset,this.program.uniforms.vignetteDarkness.value=this._vignetteDarkness}animate(t,i,s,n=1,r=0,l="power2.out"){de.gsap.to(this,{distortionIntensity:t,vignetteOffset:i,vignetteDarkness:s,duration:n,delay:r,ease:l,onUpdate:()=>this.updateUniforms()})}setInputTexture(t){this.program&&(this.program.uniforms.tDiffuse.value=t)}render(t=null){if(!this.scene||!this.camera)return;const i=this.gl.renderer;t?i.render({scene:this.scene,camera:this.camera,target:t}):i.render({scene:this.scene,camera:this.camera})}resize(t,i){this.renderTarget&&(this.renderTarget.setSize(t,i),this.updateUniforms())}dispose(){this.renderTarget=null,this.geometry=null,this.program=null,this.mesh=null,this.scene=null,this.camera=null}}class Gi{host;isInitialized=!1;constructor(t){this.host=t,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onPointerOut=this.onPointerOut.bind(this),this.onWindowResize=this.onWindowResize.bind(this),this.handleMouseClick=this.handleMouseClick.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this)}initialize(){if(this.isInitialized){console.warn("EventHandler already initialized");return}this.addEventListeners(),this.isInitialized=!0}onPointerDown(t){t.preventDefault(),this.host.currentHoveredTileKey="",this.host.isDown=!0,this.host.hasMovedSignificantly=!1,this.host.scrollPosition.x=this.host.scroll.current.x,this.host.scrollPosition.y=this.host.scroll.current.y;const i="touches"in t?t.touches[0].clientX:t.clientX,s="touches"in t?t.touches[0].clientY:t.clientY;this.host.startPosition.x=i,this.host.startPosition.y=s,this.host.updatePointerCoordinates(i,s),this.host.camera&&de.gsap.to(this.host.camera.position,{z:this.host.options.baseCameraZ*1.3,duration:.3,ease:"power2.out",overwrite:!0})}onPointerMove(t){if(!this.host.isDown){this.handleHover(t);return}const i="touches"in t?t.touches[0].clientX:t.clientX,s="touches"in t?t.touches[0].clientY:t.clientY;Math.sqrt(Math.pow(i-this.host.startPosition.x,2)+Math.pow(s-this.host.startPosition.y,2))>this.host.maxClickMovement&&(this.host.hasMovedSignificantly=!0);const r=(this.host.startPosition.x-i)*this.host.scroll.scale,l=(this.host.startPosition.y-s)*this.host.scroll.scale;de.gsap.to(this.host.scroll.current,{x:this.host.scrollPosition.x-r,y:this.host.scrollPosition.y+l,duration:.1,ease:"power1.out",overwrite:!0,onUpdate:()=>this.host.updatePositions()}),this.host.scroll.last.x=this.host.scroll.current.x,this.host.scroll.last.y=this.host.scroll.current.y}onPointerUp(t){if(this.host.isDown=!1,this.host.currentHoveredTileKey){const n=this.host.backgroundMeshMap.get(this.host.currentHoveredTileKey);n&&this.host.fadeOutBackground(n),this.host.currentHoveredTileKey=""}this.host.camera&&de.gsap.to(this.host.camera.position,{z:this.host.options.baseCameraZ,duration:.3,ease:"power2.out",overwrite:!0});const i=this.host.scrollTracker.get("x"),s=this.host.scrollTracker.get("y");this.host.animateInertiaScroll(i,s)}onPointerOut(t){if(this.host.isHoveringCanvas=!1,this.host.currentHoveredTileKey){const i=this.host.backgroundMeshMap.get(this.host.currentHoveredTileKey);i&&this.host.fadeOutBackground(i),this.host.currentHoveredTileKey=""}}onWindowResize(){const t=this.host.container.clientWidth,i=this.host.container.clientHeight;this.host.camera&&(this.host.camera.aspect=t/i,this.host.camera.perspective({aspect:t/i})),this.host.renderer&&this.host.renderer.setSize(t,i),this.host.sceneRenderTarget&&this.host.sceneRenderTarget.setSize(t,i),this.host.postProcessShader&&this.host.postProcessShader.resize(t,i)}handleHover(t){const i="touches"in t?t.touches[0].clientX:t.clientX,s="touches"in t?t.touches[0].clientY:t.clientY;this.host.updatePointerCoordinates(i,s);const n=this.host.performRaycast(),r=n.length>0?this.host.getTileKeyFromMesh(n[0]):"";if(r!==this.host.currentHoveredTileKey){if(this.host.currentHoveredTileKey){const l=this.host.backgroundMeshMap.get(this.host.currentHoveredTileKey);l&&this.host.fadeOutBackground(l)}if(r){const l=this.host.backgroundMeshMap.get(r);l&&this.host.fadeInBackground(l)}this.host.currentHoveredTileKey=r}}handleMouseClick(t){this.host.hasMovedSignificantly||(this.host.updatePointerCoordinates(t.clientX,t.clientY),this.performTileClick())}handleTouchEnd(t){if(this.onPointerUp(t),!this.host.hasMovedSignificantly&&t.changedTouches&&t.changedTouches.length>0){const i=t.changedTouches[0];this.host.updatePointerCoordinates(i.clientX,i.clientY),this.performTileClick()}}performTileClick(){const t=this.host.performRaycast();if(t.length>0){const s=t[0].userData;if(s){const n=this.host.getCardDataForTile(s.groupIndex,s.tileIndex),r={groupIndex:s.groupIndex,tileIndex:s.tileIndex,cardData:n},l=new CustomEvent("tileClicked",{detail:r,bubbles:!0,cancelable:!0});this.host.container.dispatchEvent(l),window.alert("Tile clicked: "+JSON.stringify({title:n.title,groupIndex:s.groupIndex,tileIndex:s.tileIndex}))}}}addEventListeners(){this.host.container.addEventListener("mousedown",this.onPointerDown),this.host.container.addEventListener("mousemove",this.onPointerMove),this.host.container.addEventListener("mouseup",this.onPointerUp),this.host.container.addEventListener("mouseleave",this.onPointerOut),this.host.container.addEventListener("touchstart",this.onPointerDown,{passive:!1}),this.host.container.addEventListener("touchmove",this.onPointerMove,{passive:!1}),this.host.container.addEventListener("touchend",this.handleTouchEnd,{passive:!0}),this.host.container.addEventListener("click",this.handleMouseClick),window.addEventListener("resize",this.onWindowResize)}removeEventListeners(){this.isInitialized&&(this.host.container.removeEventListener("mousedown",this.onPointerDown),this.host.container.removeEventListener("mousemove",this.onPointerMove),this.host.container.removeEventListener("mouseup",this.onPointerUp),this.host.container.removeEventListener("mouseleave",this.onPointerOut),this.host.container.removeEventListener("touchstart",this.onPointerDown),this.host.container.removeEventListener("touchmove",this.onPointerMove),this.host.container.removeEventListener("touchend",this.handleTouchEnd),this.host.container.removeEventListener("click",this.handleMouseClick),window.removeEventListener("resize",this.onWindowResize),this.isInitialized=!1)}get initialized(){return this.isInitialized}}class Yi{host;constructor(t){this.host=t}dispose(){this.stopAnimationLoop(),this.cleanupEventListeners(),this.cleanupGridManager(),this.disposeSceneObjects(),this.disposePostProcessing(),this.disposeRenderer(),this.clearDataStructures(),this.cleanupAnimationSystems()}stopAnimationLoop(){this.host.animationFrameId&&(cancelAnimationFrame(this.host.animationFrameId),this.host.animationFrameId=null)}cleanupEventListeners(){this.host.eventHandler&&this.host.eventHandler.removeEventListeners()}cleanupGridManager(){this.host.gridManager&&this.host.gridManager.clear()}disposeSceneObjects(){this.host.groupObjects.forEach(t=>{this.disposeTransformAndChildren(t)}),this.disposeTransformAndChildren(this.host.scene),this.host.foregroundMeshMap.forEach(t=>{this.disposeMesh(t)}),this.host.backgroundMeshMap.forEach(t=>{this.disposeMesh(t)})}disposeTransformAndChildren(t){t&&(t.traverse(i=>{i instanceof X.Mesh&&this.disposeMesh(i)}),t.parent=null,t.children=[])}disposeMesh(t){t&&(t.geometry=null,t.program&&(t.program=null),t.userData=null,t.parent=null)}disposePostProcessing(){this.host.postProcessShader&&(this.host.postProcessShader.dispose(),this.host.postProcessShader=null),this.host.sceneRenderTarget&&(this.host.sceneRenderTarget=null)}disposeRenderer(){if(this.host.renderer){const t=this.host.renderer.gl.canvas;t.parentNode===this.host.container&&this.host.container.removeChild(t),this.host.renderer=null}this.host.camera=null}clearDataStructures(){this.host.cardTextures.forEach(t=>{t.foreground=null,t.background=null}),this.host.groupObjects=[],this.host.foregroundMeshMap.clear(),this.host.backgroundMeshMap.clear(),this.host.staticUniforms.clear(),this.host.cardTextures=[],this.host.tileGroupsData=[],this.host.raycast=null,this.host.pointer=null}cleanupAnimationSystems(){this.host.scrollTracker&&(this.host.scrollTracker.kill(),this.host.scrollTracker=null)}partialCleanup(){this.stopAnimationLoop(),this.host.cardTextures.forEach(t=>{t.foreground=null,t.background=null}),this.host.cardTextures=[],this.host.foregroundMeshMap.clear(),this.host.backgroundMeshMap.clear(),this.host.staticUniforms.clear()}validateDisposal(){const t=[];return this.host.animationFrameId!==null&&t.push("Animation frame still active"),this.host.renderer!==null&&t.push("Renderer not disposed"),this.host.camera!==null&&t.push("Camera not disposed"),this.host.postProcessShader!==null&&t.push("Post-process shader not disposed"),this.host.groupObjects.length>0&&t.push("Group objects not cleared"),this.host.foregroundMeshMap.size>0&&t.push("Foreground mesh map not cleared"),this.host.backgroundMeshMap.size>0&&t.push("Background mesh map not cleared"),this.host.cardTextures.length>0&&t.push("Card textures not cleared"),this.host.scrollTracker!==null&&t.push("Scroll tracker not disposed"),t.length>0?(console.warn("Disposal validation failed:",t),!1):!0}}const ze=512,Ae=512,Ie=30;function ns(){const o=document.createElement("canvas");o.width=ze,o.height=Ae;const t=o.getContext("2d");if(!t)throw new Error("Failed to get 2D context for canvas");return{canvas:o,ctx:t}}const dt=new Map;async function Wi(o,t){const i=`${o.title}-${o.tags?.join("-")}`;if(dt.has(i))return dt.get(i);const{canvas:s,ctx:n}=ns();n.fillStyle="white",n.strokeStyle="rgba(60, 60, 60, 1)",n.lineWidth=1,n.beginPath(),n.rect(0,0,ze,Ae),n.stroke();let r=Ie;n.font="24px Arial, sans-serif",n.fillStyle="white",n.textBaseline="top";const l=o.title,a=ze-Ie*2;let c=l,u=n.measureText(c);for(;u.width>a&&c.length>3;)c=c.substring(0,c.length-4)+"...",u=n.measureText(c);n.fillText(c,Ie,r),r+=24+30;const m=r,f=Ae-m-100,x=ze-Ie*2,v=new Image;v.crossOrigin="anonymous",v.src=o.image||"/photo.png",await new Promise(S=>{v.onload=()=>{let C=v.naturalWidth,_=v.naturalHeight;const D=C/_;(C>x||_>f)&&(x/D<=f?(C=x,_=x/D):(_=f,C=f*D));const M=Ie+(x-C)/2,I=m+(f-_)/2;n.drawImage(v,M,I,C,_),S()},v.onerror=()=>{console.error("Failed to load foreground image:",v.src),n.fillStyle="gray",n.font="30px Arial",n.textAlign="center",n.textBaseline="middle",n.fillText("Image Error",ze/2,Ae/2-50),S()}});let p=Ie;const E=16,k=15,b=8,L=10,U=Ae-Ie-E-b;o.tags.forEach(S=>{n.font=`${E}px Helvetica, Arial, sans-serif`,n.textBaseline="middle";const C=`#${S.toUpperCase()}`,M=n.measureText(C).width+k,I=E+b;n.fillStyle="rgba(248,250, 252, 0.15)",Xi(n,p,U,M,I,I/2),n.fill(),n.fillStyle="white",n.textAlign="center",n.fillText(C,p+M/2,U+I/2),p+=M+L}),n.font="20px Arial, sans-serif",n.fillStyle="rgba(255, 255, 255, 1)",n.textAlign="right",n.textBaseline="bottom",n.fillText(o.date,ze-Ie,Ae-Ie);const H=new X.Texture(t.gl,{image:s,generateMipmaps:!1,flipY:!1});return dt.set(i,H),H}async function ji(o,t){const{canvas:i,ctx:s}=ns(),n=new Image;return n.crossOrigin="Anonymous",n.src=o.image||"/photo.png",await new Promise(a=>{n.onload=()=>{const u=n.naturalWidth*2,d=n.naturalHeight*2;s.drawImage(n,(ze-u)/2,(Ae-d)/2,u,d),s.filter="blur(10px)",s.drawImage(i,0,0),s.filter="none",s.fillStyle="rgba(0,0,0,0.4)",s.fillRect(0,0,ze,Ae),a()},n.onerror=()=>{console.warn("Failed to load background image:",n.src),s.fillStyle="rgba(0,0,0,0.5)",s.fillRect(0,0,ze,Ae),a()}}),new X.Texture(t.gl,{image:i,generateMipmaps:!1,flipY:!1})}function Xi(o,t,i,s,n,r){o.beginPath(),o.moveTo(t+r,i),o.lineTo(t+s-r,i),o.quadraticCurveTo(t+s,i,t+s,i+r),o.lineTo(t+s,i+n-r),o.quadraticCurveTo(t+s,i+n,t+s-r,i+n),o.lineTo(t+r,i+n),o.quadraticCurveTo(t,i+n,t,i+n-r),o.lineTo(t,i+r),o.quadraticCurveTo(t,i,t+r,i),o.closePath()}class qi{host;isInitialized=!1;constructor(t){this.host=t}async initialize(){if(this.isInitialized){console.warn("GridManager already initialized");return}this.initializeTileGroups(),await this.generateTexturesForCardData(),this.createTiles(),this.isInitialized=!0}initializeTileGroups(){this.host.tileGroupsData=[];for(let t=-1;t<=1;t++)for(let i=-1;i<=1;i++)this.host.tileGroupsData.push({basePos:new X.Vec3(this.host.GRID_WIDTH*i,this.host.GRID_HEIGHT*t,0),offset:{x:0,y:0}})}createTiles(){if(!this.host.renderer)throw new Error("Renderer not available for tile creation");const t=this.host.renderer.gl;this.host.tileGroupsData.forEach((i,s)=>{const n=new X.Transform;n.position.set(i.basePos.x,i.basePos.y,i.basePos.z),n.setParent(this.host.scene),this.host.groupObjects[s]=n;const r=-((this.host.GRID_COLS-1)/2)*this.host.TILE_SPACE,l=(this.host.GRID_ROWS-1)/2*this.host.TILE_SPACE;for(let a=0;a<this.host.GRID_ROWS;a++)for(let c=0;c<this.host.GRID_COLS;c++){const u=r+c*this.host.TILE_SPACE,d=l-a*this.host.TILE_SPACE,m=a*this.host.GRID_COLS+c,h=this.getTileKey(s,m);this.createBackgroundMesh(t,n,s,m,h,u,d),this.createForegroundMesh(t,n,s,m,h,u,d)}})}createBackgroundMesh(t,i,s,n,r,l,a){const c=this.createBackgroundProgram(s,n),u=new X.Plane(t,{width:this.host.TILE_SIZE,height:this.host.TILE_SIZE}),d=new X.Mesh(t,{geometry:u,program:c});d.position.set(l,a,-.01),d.setParent(i),this.host.backgroundMeshMap.set(r,d)}createForegroundMesh(t,i,s,n,r,l,a){const c=this.createForegroundProgram(s,n),u=new X.Plane(t,{width:this.host.TILE_SIZE,height:this.host.TILE_SIZE}),d=new X.Mesh(t,{geometry:u,program:c});d.position.set(l,a,0),d.setParent(i),d.userData={groupIndex:s,tileIndex:n,tileKey:r},this.host.foregroundMeshMap.set(r,d)}getTileKey(t,i){return`${t}-${i}`}getCardTextureIndex(t,i){const s=this.host.GRID_COLS*this.host.GRID_ROWS;return(t*s+i)%this.host.cardData.length}getCardForegroundTexture(t,i){if(this.host.cardTextures.length===0)return null;const s=this.getCardTextureIndex(t,i);return this.host.cardTextures[s]?.foreground||null}getCardBackgroundTexture(t,i){if(this.host.cardTextures.length===0)return null;const s=this.getCardTextureIndex(t,i);return this.host.cardTextures[s]?.background||null}createBackgroundProgram(t,i){if(!this.host.renderer)throw new Error("Renderer not initialized");const s=this.host.renderer.gl,a={map:{value:this.getCardBackgroundTexture(t,i)},resolution:{value:[512,512]},uOpacity:{value:this.host.initialBackgroundOpacity}};return this.host.staticUniforms.set(this.getTileKey(t,i),a),new X.Program(s,{vertex:Oi,fragment:Fi,uniforms:a,transparent:!0,cullFace:!1})}createForegroundProgram(t,i){if(!this.host.renderer)throw new Error("Renderer not initialized");const s=this.host.renderer.gl,n=this.getCardForegroundTexture(t,i);return new X.Program(s,{vertex:`
581
+ }`;class Yi{gl;program;renderTarget;mesh;geometry;scene;camera;_distortionIntensity=0;_vignetteOffset=.8;_vignetteDarkness=1;constructor(t,i={}){this.gl=t,this._distortionIntensity=i.distortionIntensity??0,this._vignetteOffset=i.vignetteOffset??1.2,this._vignetteDarkness=i.vignetteDarkness??1.5,this.renderTarget=new G.RenderTarget(t,{width:t.canvas.width,height:t.canvas.height}),this.geometry=new G.Plane(t,{width:2,height:2}),this.program=new G.Program(t,{vertex:Gi,fragment:Hi,uniforms:{tDiffuse:{value:null},distortion:{value:new G.Vec2(0,0)},vignetteOffset:{value:this._vignetteOffset},vignetteDarkness:{value:this._vignetteDarkness}},transparent:!1,cullFace:!1}),this.mesh=new G.Mesh(t,{geometry:this.geometry,program:this.program}),this.scene=new G.Transform,this.mesh.setParent(this.scene),this.camera=new G.Camera(t,{left:-1,right:1,bottom:-1,top:1,near:0,far:2}),this.camera.position.set(0,0,1),this.updateUniforms()}get distortionIntensity(){return this._distortionIntensity}set distortionIntensity(t){this._distortionIntensity=t,this.updateUniforms()}get vignetteOffset(){return this._vignetteOffset}set vignetteOffset(t){this._vignetteOffset=t,this.updateUniforms()}get vignetteDarkness(){return this._vignetteDarkness}set vignetteDarkness(t){this._vignetteDarkness=t,this.updateUniforms()}updateUniforms(){if(!this.program)return;const t=window.innerWidth/window.innerHeight;this.program.uniforms.distortion.value.set(this._distortionIntensity*t,this._distortionIntensity),this.program.uniforms.vignetteOffset.value=this._vignetteOffset,this.program.uniforms.vignetteDarkness.value=this._vignetteDarkness}animate(t,i,s,n=1,r=0,l="power2.out"){de.gsap.to(this,{distortionIntensity:t,vignetteOffset:i,vignetteDarkness:s,duration:n,delay:r,ease:l,onUpdate:()=>this.updateUniforms()})}setInputTexture(t){this.program&&(this.program.uniforms.tDiffuse.value=t)}render(t=null){if(!this.scene||!this.camera)return;const i=this.gl.renderer;t?i.render({scene:this.scene,camera:this.camera,target:t}):i.render({scene:this.scene,camera:this.camera})}resize(t,i){this.renderTarget&&(this.renderTarget.setSize(t,i),this.updateUniforms())}dispose(){this.renderTarget=null,this.geometry=null,this.program=null,this.mesh=null,this.scene=null,this.camera=null}}class Wi{host;isInitialized=!1;constructor(t){this.host=t,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onPointerOut=this.onPointerOut.bind(this),this.onWindowResize=this.onWindowResize.bind(this),this.handleMouseClick=this.handleMouseClick.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this)}initialize(){if(this.isInitialized){console.warn("EventHandler already initialized");return}this.addEventListeners(),this.isInitialized=!0}onPointerDown(t){t.preventDefault(),this.host.currentHoveredTileKey="",this.host.isDown=!0,this.host.hasMovedSignificantly=!1,this.host.scrollPosition.x=this.host.scroll.current.x,this.host.scrollPosition.y=this.host.scroll.current.y;const i="touches"in t?t.touches[0].clientX:t.clientX,s="touches"in t?t.touches[0].clientY:t.clientY;this.host.startPosition.x=i,this.host.startPosition.y=s,this.host.updatePointerCoordinates(i,s),this.host.camera&&de.gsap.to(this.host.camera.position,{z:this.host.options.baseCameraZ*1.3,duration:.3,ease:"power2.out",overwrite:!0})}onPointerMove(t){if(!this.host.isDown){this.handleHover(t);return}const i="touches"in t?t.touches[0].clientX:t.clientX,s="touches"in t?t.touches[0].clientY:t.clientY;Math.sqrt(Math.pow(i-this.host.startPosition.x,2)+Math.pow(s-this.host.startPosition.y,2))>this.host.maxClickMovement&&(this.host.hasMovedSignificantly=!0);const r=(this.host.startPosition.x-i)*this.host.scroll.scale,l=(this.host.startPosition.y-s)*this.host.scroll.scale;de.gsap.to(this.host.scroll.current,{x:this.host.scrollPosition.x-r,y:this.host.scrollPosition.y+l,duration:.1,ease:"power1.out",overwrite:!0,onUpdate:()=>this.host.updatePositions()}),this.host.scroll.last.x=this.host.scroll.current.x,this.host.scroll.last.y=this.host.scroll.current.y}onPointerUp(t){if(this.host.isDown=!1,this.host.currentHoveredTileKey){const n=this.host.backgroundMeshMap.get(this.host.currentHoveredTileKey);n&&this.host.fadeOutBackground(n),this.host.currentHoveredTileKey=""}this.host.camera&&de.gsap.to(this.host.camera.position,{z:this.host.options.baseCameraZ,duration:.3,ease:"power2.out",overwrite:!0});const i=this.host.scrollTracker.get("x"),s=this.host.scrollTracker.get("y");this.host.animateInertiaScroll(i,s)}onPointerOut(t){if(this.host.isHoveringCanvas=!1,this.host.currentHoveredTileKey){const i=this.host.backgroundMeshMap.get(this.host.currentHoveredTileKey);i&&this.host.fadeOutBackground(i),this.host.currentHoveredTileKey=""}}onWindowResize(){const t=this.host.container.clientWidth,i=this.host.container.clientHeight;this.host.camera&&(this.host.camera.aspect=t/i,this.host.camera.perspective({aspect:t/i})),this.host.renderer&&this.host.renderer.setSize(t,i),this.host.sceneRenderTarget&&this.host.sceneRenderTarget.setSize(t,i),this.host.postProcessShader&&this.host.postProcessShader.resize(t,i)}handleHover(t){const i="touches"in t?t.touches[0].clientX:t.clientX,s="touches"in t?t.touches[0].clientY:t.clientY;this.host.updatePointerCoordinates(i,s);const n=this.host.performRaycast(),r=n.length>0?this.host.getTileKeyFromMesh(n[0]):"";if(r!==this.host.currentHoveredTileKey){if(this.host.currentHoveredTileKey){const l=this.host.backgroundMeshMap.get(this.host.currentHoveredTileKey);l&&this.host.fadeOutBackground(l)}if(r){const l=this.host.backgroundMeshMap.get(r);l&&this.host.fadeInBackground(l)}this.host.currentHoveredTileKey=r}}handleMouseClick(t){this.host.hasMovedSignificantly||(this.host.updatePointerCoordinates(t.clientX,t.clientY),this.performTileClick())}handleTouchEnd(t){if(this.onPointerUp(t),!this.host.hasMovedSignificantly&&t.changedTouches&&t.changedTouches.length>0){const i=t.changedTouches[0];this.host.updatePointerCoordinates(i.clientX,i.clientY),this.performTileClick()}}performTileClick(){const t=this.host.performRaycast();if(t.length>0){const s=t[0].userData;if(s){const n=this.host.getCardDataForTile(s.groupIndex,s.tileIndex),r={groupIndex:s.groupIndex,tileIndex:s.tileIndex,cardData:n},l=new CustomEvent("tileClicked",{detail:r,bubbles:!0,cancelable:!0});this.host.container.dispatchEvent(l),window.alert("Tile clicked: "+JSON.stringify({title:n.title,groupIndex:s.groupIndex,tileIndex:s.tileIndex}))}}}addEventListeners(){this.host.container.addEventListener("mousedown",this.onPointerDown),this.host.container.addEventListener("mousemove",this.onPointerMove),this.host.container.addEventListener("mouseup",this.onPointerUp),this.host.container.addEventListener("mouseleave",this.onPointerOut),this.host.container.addEventListener("touchstart",this.onPointerDown,{passive:!1}),this.host.container.addEventListener("touchmove",this.onPointerMove,{passive:!1}),this.host.container.addEventListener("touchend",this.handleTouchEnd,{passive:!0}),this.host.container.addEventListener("click",this.handleMouseClick),window.addEventListener("resize",this.onWindowResize)}removeEventListeners(){this.isInitialized&&(this.host.container.removeEventListener("mousedown",this.onPointerDown),this.host.container.removeEventListener("mousemove",this.onPointerMove),this.host.container.removeEventListener("mouseup",this.onPointerUp),this.host.container.removeEventListener("mouseleave",this.onPointerOut),this.host.container.removeEventListener("touchstart",this.onPointerDown),this.host.container.removeEventListener("touchmove",this.onPointerMove),this.host.container.removeEventListener("touchend",this.handleTouchEnd),this.host.container.removeEventListener("click",this.handleMouseClick),window.removeEventListener("resize",this.onWindowResize),this.isInitialized=!1)}get initialized(){return this.isInitialized}}class ji{host;constructor(t){this.host=t}dispose(){this.stopAnimationLoop(),this.cleanupEventListeners(),this.cleanupGridManager(),this.disposeSceneObjects(),this.disposePostProcessing(),this.disposeRenderer(),this.clearDataStructures(),this.cleanupAnimationSystems()}stopAnimationLoop(){this.host.animationFrameId&&(cancelAnimationFrame(this.host.animationFrameId),this.host.animationFrameId=null)}cleanupEventListeners(){this.host.eventHandler&&this.host.eventHandler.removeEventListeners()}cleanupGridManager(){this.host.gridManager&&this.host.gridManager.clear()}disposeSceneObjects(){this.host.groupObjects.forEach(t=>{this.disposeTransformAndChildren(t)}),this.disposeTransformAndChildren(this.host.scene),this.host.foregroundMeshMap.forEach(t=>{this.disposeMesh(t)}),this.host.backgroundMeshMap.forEach(t=>{this.disposeMesh(t)})}disposeTransformAndChildren(t){t&&(t.traverse(i=>{i instanceof G.Mesh&&this.disposeMesh(i)}),t.parent=null,t.children=[])}disposeMesh(t){t&&(t.geometry=null,t.program&&(t.program=null),t.userData=null,t.parent=null)}disposePostProcessing(){this.host.postProcessShader&&(this.host.postProcessShader.dispose(),this.host.postProcessShader=null),this.host.sceneRenderTarget&&(this.host.sceneRenderTarget=null)}disposeRenderer(){if(this.host.renderer){const t=this.host.renderer.gl.canvas;t.parentNode===this.host.container&&this.host.container.removeChild(t),this.host.renderer=null}this.host.camera=null}clearDataStructures(){this.host.cardTextures.forEach(t=>{t.foreground=null,t.background=null}),this.host.groupObjects=[],this.host.foregroundMeshMap.clear(),this.host.backgroundMeshMap.clear(),this.host.staticUniforms.clear(),this.host.cardTextures=[],this.host.tileGroupsData=[],this.host.raycast=null,this.host.pointer=null}cleanupAnimationSystems(){this.host.scrollTracker&&(this.host.scrollTracker.kill(),this.host.scrollTracker=null)}partialCleanup(){this.stopAnimationLoop(),this.host.cardTextures.forEach(t=>{t.foreground=null,t.background=null}),this.host.cardTextures=[],this.host.foregroundMeshMap.clear(),this.host.backgroundMeshMap.clear(),this.host.staticUniforms.clear()}validateDisposal(){const t=[];return this.host.animationFrameId!==null&&t.push("Animation frame still active"),this.host.renderer!==null&&t.push("Renderer not disposed"),this.host.camera!==null&&t.push("Camera not disposed"),this.host.postProcessShader!==null&&t.push("Post-process shader not disposed"),this.host.groupObjects.length>0&&t.push("Group objects not cleared"),this.host.foregroundMeshMap.size>0&&t.push("Foreground mesh map not cleared"),this.host.backgroundMeshMap.size>0&&t.push("Background mesh map not cleared"),this.host.cardTextures.length>0&&t.push("Card textures not cleared"),this.host.scrollTracker!==null&&t.push("Scroll tracker not disposed"),t.length>0?(console.warn("Disposal validation failed:",t),!1):!0}}const ze=512,Ae=512,Ie=30;function ns(){const o=document.createElement("canvas");o.width=ze,o.height=Ae;const t=o.getContext("2d");if(!t)throw new Error("Failed to get 2D context for canvas");return{canvas:o,ctx:t}}const dt=new Map;async function Xi(o,t){const i=`${o.title}-${o.tags?.join("-")}`;if(dt.has(i))return dt.get(i);const{canvas:s,ctx:n}=ns();n.fillStyle="white",n.strokeStyle="rgba(60, 60, 60, 1)",n.lineWidth=1,n.beginPath(),n.rect(0,0,ze,Ae),n.stroke();let r=Ie;n.font="24px Arial, sans-serif",n.fillStyle="white",n.textBaseline="top";const l=o.title,a=ze-Ie*2;let c=l,u=n.measureText(c);for(;u.width>a&&c.length>3;)c=c.substring(0,c.length-4)+"...",u=n.measureText(c);n.fillText(c,Ie,r),r+=24+30;const f=r,m=Ae-f-100,v=ze-Ie*2,g=new Image;g.crossOrigin="anonymous",g.src=o.image||"/photo.png",await new Promise(S=>{g.onload=()=>{let C=g.naturalWidth,T=g.naturalHeight;const R=C/T;(C>v||T>m)&&(v/R<=m?(C=v,T=v/R):(T=m,C=m*R));const B=Ie+(v-C)/2,I=f+(m-T)/2;n.drawImage(g,B,I,C,T),S()},g.onerror=()=>{console.error("Failed to load foreground image:",g.src),n.fillStyle="gray",n.font="30px Arial",n.textAlign="center",n.textBaseline="middle",n.fillText("Image Error",ze/2,Ae/2-50),S()}});let p=Ie;const k=16,E=15,w=8,D=10,O=Ae-Ie-k-w;o.tags.forEach(S=>{n.font=`${k}px Helvetica, Arial, sans-serif`,n.textBaseline="middle";const C=`#${S.toUpperCase()}`,B=n.measureText(C).width+E,I=k+w;n.fillStyle="rgba(248,250, 252, 0.15)",Zi(n,p,O,B,I,I/2),n.fill(),n.fillStyle="white",n.textAlign="center",n.fillText(C,p+B/2,O+I/2),p+=B+D}),n.font="20px Arial, sans-serif",n.fillStyle="rgba(255, 255, 255, 1)",n.textAlign="right",n.textBaseline="bottom",n.fillText(o.date,ze-Ie,Ae-Ie);const H=new G.Texture(t.gl,{image:s,generateMipmaps:!1,flipY:!1});return dt.set(i,H),H}async function qi(o,t){const{canvas:i,ctx:s}=ns(),n=new Image;return n.crossOrigin="Anonymous",n.src=o.image||"/photo.png",await new Promise(a=>{n.onload=()=>{const u=n.naturalWidth*2,h=n.naturalHeight*2;s.drawImage(n,(ze-u)/2,(Ae-h)/2,u,h),s.filter="blur(10px)",s.drawImage(i,0,0),s.filter="none",s.fillStyle="rgba(0,0,0,0.4)",s.fillRect(0,0,ze,Ae),a()},n.onerror=()=>{console.warn("Failed to load background image:",n.src),s.fillStyle="rgba(0,0,0,0.5)",s.fillRect(0,0,ze,Ae),a()}}),new G.Texture(t.gl,{image:i,generateMipmaps:!1,flipY:!1})}function Zi(o,t,i,s,n,r){o.beginPath(),o.moveTo(t+r,i),o.lineTo(t+s-r,i),o.quadraticCurveTo(t+s,i,t+s,i+r),o.lineTo(t+s,i+n-r),o.quadraticCurveTo(t+s,i+n,t+s-r,i+n),o.lineTo(t+r,i+n),o.quadraticCurveTo(t,i+n,t,i+n-r),o.lineTo(t,i+r),o.quadraticCurveTo(t,i,t+r,i),o.closePath()}class Ki{host;isInitialized=!1;constructor(t){this.host=t}async initialize(){if(this.isInitialized){console.warn("GridManager already initialized");return}this.initializeTileGroups(),await this.generateTexturesForCardData(),this.createTiles(),this.isInitialized=!0}initializeTileGroups(){this.host.tileGroupsData=[];for(let t=-1;t<=1;t++)for(let i=-1;i<=1;i++)this.host.tileGroupsData.push({basePos:new G.Vec3(this.host.GRID_WIDTH*i,this.host.GRID_HEIGHT*t,0),offset:{x:0,y:0}})}createTiles(){if(!this.host.renderer)throw new Error("Renderer not available for tile creation");const t=this.host.renderer.gl;this.host.tileGroupsData.forEach((i,s)=>{const n=new G.Transform;n.position.set(i.basePos.x,i.basePos.y,i.basePos.z),n.setParent(this.host.scene),this.host.groupObjects[s]=n;const r=-((this.host.GRID_COLS-1)/2)*this.host.TILE_SPACE,l=(this.host.GRID_ROWS-1)/2*this.host.TILE_SPACE;for(let a=0;a<this.host.GRID_ROWS;a++)for(let c=0;c<this.host.GRID_COLS;c++){const u=r+c*this.host.TILE_SPACE,h=l-a*this.host.TILE_SPACE,f=a*this.host.GRID_COLS+c,d=this.getTileKey(s,f);this.createBackgroundMesh(t,n,s,f,d,u,h),this.createForegroundMesh(t,n,s,f,d,u,h)}})}createBackgroundMesh(t,i,s,n,r,l,a){const c=this.createBackgroundProgram(s,n),u=new G.Plane(t,{width:this.host.TILE_SIZE,height:this.host.TILE_SIZE}),h=new G.Mesh(t,{geometry:u,program:c});h.position.set(l,a,-.01),h.setParent(i),this.host.backgroundMeshMap.set(r,h)}createForegroundMesh(t,i,s,n,r,l,a){const c=this.createForegroundProgram(s,n),u=new G.Plane(t,{width:this.host.TILE_SIZE,height:this.host.TILE_SIZE}),h=new G.Mesh(t,{geometry:u,program:c});h.position.set(l,a,0),h.setParent(i),h.userData={groupIndex:s,tileIndex:n,tileKey:r},this.host.foregroundMeshMap.set(r,h)}getTileKey(t,i){return`${t}-${i}`}getCardTextureIndex(t,i){const s=this.host.GRID_COLS*this.host.GRID_ROWS;return(t*s+i)%this.host.cardData.length}getCardForegroundTexture(t,i){if(this.host.cardTextures.length===0)return null;const s=this.getCardTextureIndex(t,i);return this.host.cardTextures[s]?.foreground||null}getCardBackgroundTexture(t,i){if(this.host.cardTextures.length===0)return null;const s=this.getCardTextureIndex(t,i);return this.host.cardTextures[s]?.background||null}createBackgroundProgram(t,i){if(!this.host.renderer)throw new Error("Renderer not initialized");const s=this.host.renderer.gl,a={map:{value:this.getCardBackgroundTexture(t,i)},resolution:{value:[512,512]},uOpacity:{value:this.host.initialBackgroundOpacity}};return this.host.staticUniforms.set(this.getTileKey(t,i),a),new G.Program(s,{vertex:$i,fragment:Ui,uniforms:a,transparent:!0,cullFace:!1})}createForegroundProgram(t,i){if(!this.host.renderer)throw new Error("Renderer not initialized");const s=this.host.renderer.gl,n=this.getCardForegroundTexture(t,i);return new G.Program(s,{vertex:`
521
582
  attribute vec2 uv;
522
583
  attribute vec3 position;
523
584
 
@@ -541,7 +602,7 @@ void main() {
541
602
  void main() {
542
603
  gl_FragColor = texture2D(map, vUv);
543
604
  }
544
- `,uniforms:{map:{value:n}},transparent:!0,cullFace:!1})}async generateTexturesForCardData(){if(!this.host.renderer)throw new Error("Renderer not initialized");if(this.host.cardData.length===0){this.host.cardTextures=[];return}const t=this.host.cardData.map(async i=>{const s=await Wi(i,this.host.renderer),n=await ji(i,this.host.renderer);return{foreground:s,background:n}});this.host.cardTextures=await Promise.all(t)}getTileKeyFromMesh(t){return t.userData?.tileKey||""}getCardDataForTile(t,i){const s=this.getCardTextureIndex(t,i);return this.host.cardData[s]||{title:"Default Card",badge:"",description:"No data available",tags:[],date:new Date().getFullYear().toString()}}async updateCardData(t){this.host.cardData=t,await this.generateTexturesForCardData(),this.updateTileTextures()}updateTileTextures(){this.host.tileGroupsData.forEach((t,i)=>{for(let s=0;s<this.host.GRID_ROWS;s++)for(let n=0;n<this.host.GRID_COLS;n++){const r=s*this.host.GRID_COLS+n,l=this.getTileKey(i,r),a=this.host.foregroundMeshMap.get(l);if(a&&a.program){const u=this.getCardForegroundTexture(i,r);u&&(a.program.uniforms.map.value=u)}const c=this.host.backgroundMeshMap.get(l);if(c&&c.program){const u=this.getCardBackgroundTexture(i,r);u&&(c.program.uniforms.map.value=u)}}})}getInteractiveMeshes(){return Array.from(this.host.foregroundMeshMap.values())}clear(){this.host.tileGroupsData=[],this.host.groupObjects.forEach(t=>{t&&t.parent&&t.parent.removeChild(t)}),this.host.groupObjects=[],this.host.foregroundMeshMap.clear(),this.host.backgroundMeshMap.clear(),this.host.staticUniforms.clear(),this.host.cardTextures=[],this.isInitialized=!1}get initialized(){return this.isInitialized}getGridStats(){const t=this.host.GRID_COLS*this.host.GRID_ROWS,i=this.host.tileGroupsData.length*t,s=this.host.cardTextures.length*2,n=512*512*4,l=(s*n/(1024*1024)).toFixed(2);return{totalGroups:this.host.tileGroupsData.length,tilesPerGroup:t,totalTiles:i,totalTextures:s,memoryEstimate:`${l} MB`}}}de.gsap.registerPlugin(lt);class zt{container;cardData;options;GRID_GAP;TILE_SIZE;TILE_SPACE;GRID_COLS;GRID_ROWS;GRID_WIDTH;GRID_HEIGHT;TOTAL_GRID_WIDTH;TOTAL_GRID_HEIGHT;scene;camera;renderer;pointer;raycast;postProcessShader;sceneRenderTarget;groupObjects;foregroundMeshMap;backgroundMeshMap;cardTextures;staticUniforms;currentHoveredTileKey;isDown;isHoveringCanvas;hasMovedSignificantly;startPosition;scrollPosition;scroll;direction;scrollTracker;hoverTransitionDuration;hoverEase;initialBackgroundOpacity;hoveredBackgroundOpacity;maxClickMovement;animationFrameId;tileGroupsData;eventHandler;gridManager;disposalManager;constructor(t,i=[],s={}){if(!t)throw console.error("InfiniteGridClass: Container element is required."),new Error("Container element is required");this.container=t,this.cardData=i,this.options={gridCols:3,gridRows:3,gridGap:0,tileSize:3,baseCameraZ:10,enablePostProcessing:!0,postProcessParams:{distortionIntensity:0,vignetteOffset:1.2,vignetteDarkness:1.5,...s.postProcessParams},...s},this.GRID_GAP=this.options.gridGap,this.TILE_SIZE=this.options.tileSize,this.TILE_SPACE=this.TILE_SIZE+this.GRID_GAP,this.GRID_COLS=this.options.gridCols,this.GRID_ROWS=this.options.gridRows,this.GRID_WIDTH=this.TILE_SPACE*this.GRID_COLS,this.GRID_HEIGHT=this.TILE_SPACE*this.GRID_ROWS,this.TOTAL_GRID_WIDTH=this.GRID_WIDTH*3,this.TOTAL_GRID_HEIGHT=this.GRID_HEIGHT*3,this.scene=new X.Transform,this.camera=null,this.renderer=null,this.pointer=new X.Vec2,this.raycast=new X.Raycast,this.postProcessShader=null,this.sceneRenderTarget=null,this.groupObjects=[],this.foregroundMeshMap=new Map,this.backgroundMeshMap=new Map,this.cardTextures=[],this.staticUniforms=new Map,this.currentHoveredTileKey="",this.isDown=!1,this.isHoveringCanvas=!1,this.hasMovedSignificantly=!1,this.startPosition={x:0,y:0},this.scrollPosition={x:0,y:0},this.scroll={scale:.012,current:{x:0,y:0},last:{x:0,y:0}},this.direction={x:0,y:0},this.scrollTracker=lt.track(this.scroll.current,"x,y")[0],this.hoverTransitionDuration=.6,this.hoverEase="power2.out",this.initialBackgroundOpacity=0,this.hoveredBackgroundOpacity=1,this.maxClickMovement=5,this.animationFrameId=null,this.tileGroupsData=[],this.eventHandler=new Gi(this),this.gridManager=new qi(this),this.disposalManager=new Yi(this),this.render=this.render.bind(this)}async init(){this.setupRenderer(),this.setupCamera(),this.setupPostProcessing(),await this.gridManager.initialize(),this.eventHandler&&this.eventHandler.initialize(),this.animateInertiaScroll(),this.animatePostProcessing(-.1,.3,1.25,1.5,1.5,"power3.out"),this.updatePositions(),this.render()}setupRenderer(){const t=this.container.ownerDocument.createElement("canvas").getContext("webgl2")||this.container.ownerDocument.createElement("canvas").getContext("webgl");if(!t)throw new Error("WebGL not supported");this.renderer=new X.Renderer({canvas:t.canvas,width:this.container.clientWidth,height:this.container.clientHeight,dpr:window.devicePixelRatio,alpha:!0,antialias:!0}),this.renderer.gl.canvas.style.width="100%",this.renderer.gl.canvas.style.height="100%",this.container.appendChild(this.renderer.gl.canvas)}setupCamera(){const t=this.container.clientWidth/this.container.clientHeight;this.camera=new X.Camera(this.renderer.gl,{fov:45,aspect:t,near:1,far:1e3}),this.camera.position.set(0,0,this.options.baseCameraZ)}setupPostProcessing(){!this.options.enablePostProcessing||!this.renderer||(this.sceneRenderTarget=new X.RenderTarget(this.renderer.gl,{width:this.container.clientWidth,height:this.container.clientHeight}),this.postProcessShader=new Hi(this.renderer.gl,this.options.postProcessParams))}get viewport(){if(!this.camera)return{width:0,height:0};const t=this.camera.fov*(Math.PI/180),i=2*Math.tan(t/2)*this.camera.position.z;return{width:i*this.camera.aspect,height:i}}updatePositions(){const t=this.scroll.current.x,i=this.scroll.current.y;this.scroll.current.y>this.scroll.last.y?this.direction.y=-1:this.scroll.current.y<this.scroll.last.y?this.direction.y=1:this.direction.y=0,this.scroll.current.x>this.scroll.last.x?this.direction.x=-1:this.scroll.current.x<this.scroll.last.x?this.direction.x=1:this.direction.x=0,this.tileGroupsData.forEach((s,n)=>{const r=this.groupObjects[n];if(r){const l=s.basePos.x+t+s.offset.x,a=s.basePos.y+i+s.offset.y,c=this.GRID_WIDTH/2,u=this.GRID_HEIGHT/2,d={x:this.viewport.width/2,y:this.viewport.height/2};this.direction.x<0&&l-c>d.x?s.offset.x-=this.TOTAL_GRID_WIDTH:this.direction.x>0&&l+c<-d.x&&(s.offset.x+=this.TOTAL_GRID_WIDTH),this.direction.y<0&&a-u>d.y?s.offset.y-=this.TOTAL_GRID_HEIGHT:this.direction.y>0&&a+u<-d.y&&(s.offset.y+=this.TOTAL_GRID_HEIGHT),r.position.x=s.basePos.x+t+s.offset.x,r.position.y=s.basePos.y+i+s.offset.y,r.position.z=s.basePos.z}})}animateInertiaScroll(t="auto",i="auto"){de.gsap.to(this.scroll.current,{inertia:{x:t,y:i,min:60,resistance:100},ease:"power2.out",onUpdate:()=>this.updatePositions(),onComplete:()=>{this.direction.x=0,this.direction.y=0}})}getInteractiveMeshes(){return this.gridManager.getInteractiveMeshes()}updatePointerCoordinates(t,i){if(!this.renderer)return;const s=this.renderer.gl.canvas.getBoundingClientRect(),n=(t-s.left)/s.width*2-1,r=-((i-s.top)/s.height*2-1);this.pointer.set(n,r)}performRaycast(){if(!this.camera||!this.renderer)return[];this.raycast.castMouse(this.camera,this.pointer);const t=this.getInteractiveMeshes();return this.raycast.intersectBounds(t)}getTileKeyFromMesh(t){return this.gridManager.getTileKeyFromMesh(t)}fadeInBackground(t){t.program&&t.program.uniforms.uOpacity&&de.gsap.to(t.program.uniforms.uOpacity,{value:this.hoveredBackgroundOpacity,duration:this.hoverTransitionDuration,ease:this.hoverEase,overwrite:!0})}fadeOutBackground(t){t.program&&t.program.uniforms.uOpacity&&de.gsap.to(t.program.uniforms.uOpacity,{value:this.initialBackgroundOpacity,duration:this.hoverTransitionDuration,ease:this.hoverEase,overwrite:!0})}getCardDataForTile(t,i){return this.gridManager.getCardDataForTile(t,i)}render(){this.scroll.last.x=this.scroll.current.x,this.scroll.last.y=this.scroll.current.y,this.updatePositions(),this.renderer&&this.camera&&(this.options.enablePostProcessing&&this.postProcessShader&&this.sceneRenderTarget?(this.renderer.render({scene:this.scene,camera:this.camera,target:this.sceneRenderTarget}),this.sceneRenderTarget.texture||console.error("PostProcessing: Render target has no texture"),this.postProcessShader.setInputTexture(this.sceneRenderTarget.texture),this.postProcessShader.render(null)):this.renderer.render({scene:this.scene,camera:this.camera})),this.animationFrameId=requestAnimationFrame(this.render)}animatePostProcessing(t,i,s,n=1,r=0,l="power2.out"){this.postProcessShader&&this.postProcessShader.animate(t,i,s,n,r,l)}setPostProcessingEnabled(t){this.options.enablePostProcessing=t}get distortionIntensity(){return this.postProcessShader?.distortionIntensity??0}set distortionIntensity(t){this.postProcessShader&&(this.postProcessShader.distortionIntensity=t)}get vignetteOffset(){return this.postProcessShader?.vignetteOffset??.8}set vignetteOffset(t){this.postProcessShader&&(this.postProcessShader.vignetteOffset=t)}get vignetteDarkness(){return this.postProcessShader?.vignetteDarkness??1}set vignetteDarkness(t){this.postProcessShader&&(this.postProcessShader.vignetteDarkness=t)}dispose(){this.disposalManager.dispose()}getEventHandler(){return this.eventHandler}getGridManager(){return this.gridManager}getDisposalManager(){return this.disposalManager}async updateCardData(t){this.cardData=t,await this.gridManager.updateCardData(t)}getGridStats(){return this.gridManager.getGridStats()}validateDisposal(){return this.disposalManager.validateDisposal()}partialCleanup(){this.disposalManager.partialCleanup()}}const Zi=e.defineComponent({__name:"InfiniteGrid",props:{cardData:{},options:{default:()=>({})},onTilesLoaded:{}},emits:["tileClicked"],setup(o,{emit:t}){const i=o,s=t,n={gridCols:4,gridRows:4,gridGap:0,tileSize:3,baseCameraZ:10,enablePostProcessing:!0,postProcessParams:{distortionIntensity:-.2,vignetteOffset:0,vignetteDarkness:0}},r=e.computed(()=>({...n,...i.options,postProcessParams:{...n.postProcessParams,...i.options?.postProcessParams}})),l=e.ref(null);let a=null;function c(u){s("tileClicked",u.detail)}return e.onMounted(async()=>{l.value&&(a=new zt(l.value,i.cardData,r.value),await a.init(),i.onTilesLoaded?.(),l.value.addEventListener("tileClicked",c))}),e.onBeforeUnmount(()=>{a&&(l.value&&l.value.removeEventListener("tileClicked",c),a.dispose(),a=null)}),e.watch(()=>[i.cardData,r.value],async([u,d])=>{a&&(a.dispose(),a=null),l.value&&(a=new zt(l.value,u,d),await a.init(),l.value.addEventListener("tileClicked",c))},{deep:!0}),(u,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"infiniteGridContainer",ref:l,class:"infinite-grid-container"},null,512))}}),Ki=me(Zi,[["__scopeId","data-v-c30aeea7"]]),Ji=e.defineComponent({__name:"index",props:{cardData:{default:()=>[{title:"Visionary Insights",badge:"New",image:"https://picsum.photos/1366/768",description:"Next-gen AI system delivering business intelligence in real-time",tags:["AI","Big Data","BI"],date:"2025"},{title:"UI Framework",badge:"Updated",image:"https://picsum.photos/1366/768",description:"Robust design framework featuring sleek and responsive components",tags:["UI","React","Toolkit"],date:"2025"},{title:"NextGen App",badge:"Beta",image:"https://picsum.photos/1366/768",description:"Progressive mobile-first app optimized for speed and usability",tags:["Mobile","Flutter","UX"],date:"2025"}]},loadingText:{default:"Loading Tiles"},buttonText:{default:"View Fullscreen"},classList:{default:()=>({})}},setup(o){const t=e.useTemplateRef("el"),{toggle:i}=Ce.useFullscreen(t),s=e.ref(!1);function n(){s.value=!0}return(r,l)=>{const a=e.resolveComponent("InteractiveHoverButton"),c=e.resolveComponent("ClientOnly");return e.openBlock(),e.createBlock(c,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.overallClass||"flex flex-col h-[28rem] w-full items-center justify-center relative")},[e.createElementVNode("div",{ref_key:"el",ref:t,class:e.normalizeClass(o.classList?.gridClass||"absolute inset-0 z-50 flex flex-col justify-center items-center")},[e.createVNode(Ki,{"card-data":o.cardData,onTilesLoaded:n},null,8,["card-data"])],2),s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(o.classList?.loadingClass||"text-lg font-semibold z-[51]")},e.toDisplayString(o.loadingText||"Loading Tiles"),3)),s.value?(e.openBlock(),e.createBlock(a,{key:1,text:o.buttonText||"View Fullscreen",class:e.normalizeClass(o.classList?.buttonClass||"absolute bottom-0 z-[52]"),onClick:e.unref(i)},null,8,["text","class","onClick"])):e.createCommentVNode("",!0)],2)]),_:1})}}}),Qi={class:"relative w-full h-full"},eo=`#version 300 es
605
+ `,uniforms:{map:{value:n}},transparent:!0,cullFace:!1})}async generateTexturesForCardData(){if(!this.host.renderer)throw new Error("Renderer not initialized");if(this.host.cardData.length===0){this.host.cardTextures=[];return}const t=this.host.cardData.map(async i=>{const s=await Xi(i,this.host.renderer),n=await qi(i,this.host.renderer);return{foreground:s,background:n}});this.host.cardTextures=await Promise.all(t)}getTileKeyFromMesh(t){return t.userData?.tileKey||""}getCardDataForTile(t,i){const s=this.getCardTextureIndex(t,i);return this.host.cardData[s]||{title:"Default Card",badge:"",description:"No data available",tags:[],date:new Date().getFullYear().toString()}}async updateCardData(t){this.host.cardData=t,await this.generateTexturesForCardData(),this.updateTileTextures()}updateTileTextures(){this.host.tileGroupsData.forEach((t,i)=>{for(let s=0;s<this.host.GRID_ROWS;s++)for(let n=0;n<this.host.GRID_COLS;n++){const r=s*this.host.GRID_COLS+n,l=this.getTileKey(i,r),a=this.host.foregroundMeshMap.get(l);if(a&&a.program){const u=this.getCardForegroundTexture(i,r);u&&(a.program.uniforms.map.value=u)}const c=this.host.backgroundMeshMap.get(l);if(c&&c.program){const u=this.getCardBackgroundTexture(i,r);u&&(c.program.uniforms.map.value=u)}}})}getInteractiveMeshes(){return Array.from(this.host.foregroundMeshMap.values())}clear(){this.host.tileGroupsData=[],this.host.groupObjects.forEach(t=>{t&&t.parent&&t.parent.removeChild(t)}),this.host.groupObjects=[],this.host.foregroundMeshMap.clear(),this.host.backgroundMeshMap.clear(),this.host.staticUniforms.clear(),this.host.cardTextures=[],this.isInitialized=!1}get initialized(){return this.isInitialized}getGridStats(){const t=this.host.GRID_COLS*this.host.GRID_ROWS,i=this.host.tileGroupsData.length*t,s=this.host.cardTextures.length*2,n=512*512*4,l=(s*n/(1024*1024)).toFixed(2);return{totalGroups:this.host.tileGroupsData.length,tilesPerGroup:t,totalTiles:i,totalTextures:s,memoryEstimate:`${l} MB`}}}de.gsap.registerPlugin(lt);class zt{container;cardData;options;GRID_GAP;TILE_SIZE;TILE_SPACE;GRID_COLS;GRID_ROWS;GRID_WIDTH;GRID_HEIGHT;TOTAL_GRID_WIDTH;TOTAL_GRID_HEIGHT;scene;camera;renderer;pointer;raycast;postProcessShader;sceneRenderTarget;groupObjects;foregroundMeshMap;backgroundMeshMap;cardTextures;staticUniforms;currentHoveredTileKey;isDown;isHoveringCanvas;hasMovedSignificantly;startPosition;scrollPosition;scroll;direction;scrollTracker;hoverTransitionDuration;hoverEase;initialBackgroundOpacity;hoveredBackgroundOpacity;maxClickMovement;animationFrameId;tileGroupsData;eventHandler;gridManager;disposalManager;constructor(t,i=[],s={}){if(!t)throw console.error("InfiniteGridClass: Container element is required."),new Error("Container element is required");this.container=t,this.cardData=i,this.options={gridCols:3,gridRows:3,gridGap:0,tileSize:3,baseCameraZ:10,enablePostProcessing:!0,postProcessParams:{distortionIntensity:0,vignetteOffset:1.2,vignetteDarkness:1.5,...s.postProcessParams},...s},this.GRID_GAP=this.options.gridGap,this.TILE_SIZE=this.options.tileSize,this.TILE_SPACE=this.TILE_SIZE+this.GRID_GAP,this.GRID_COLS=this.options.gridCols,this.GRID_ROWS=this.options.gridRows,this.GRID_WIDTH=this.TILE_SPACE*this.GRID_COLS,this.GRID_HEIGHT=this.TILE_SPACE*this.GRID_ROWS,this.TOTAL_GRID_WIDTH=this.GRID_WIDTH*3,this.TOTAL_GRID_HEIGHT=this.GRID_HEIGHT*3,this.scene=new G.Transform,this.camera=null,this.renderer=null,this.pointer=new G.Vec2,this.raycast=new G.Raycast,this.postProcessShader=null,this.sceneRenderTarget=null,this.groupObjects=[],this.foregroundMeshMap=new Map,this.backgroundMeshMap=new Map,this.cardTextures=[],this.staticUniforms=new Map,this.currentHoveredTileKey="",this.isDown=!1,this.isHoveringCanvas=!1,this.hasMovedSignificantly=!1,this.startPosition={x:0,y:0},this.scrollPosition={x:0,y:0},this.scroll={scale:.012,current:{x:0,y:0},last:{x:0,y:0}},this.direction={x:0,y:0},this.scrollTracker=lt.track(this.scroll.current,"x,y")[0],this.hoverTransitionDuration=.6,this.hoverEase="power2.out",this.initialBackgroundOpacity=0,this.hoveredBackgroundOpacity=1,this.maxClickMovement=5,this.animationFrameId=null,this.tileGroupsData=[],this.eventHandler=new Wi(this),this.gridManager=new Ki(this),this.disposalManager=new ji(this),this.render=this.render.bind(this)}async init(){this.setupRenderer(),this.setupCamera(),this.setupPostProcessing(),await this.gridManager.initialize(),this.eventHandler&&this.eventHandler.initialize(),this.animateInertiaScroll(),this.animatePostProcessing(-.1,.3,1.25,1.5,1.5,"power3.out"),this.updatePositions(),this.render()}setupRenderer(){const t=this.container.ownerDocument.createElement("canvas").getContext("webgl2")||this.container.ownerDocument.createElement("canvas").getContext("webgl");if(!t)throw new Error("WebGL not supported");this.renderer=new G.Renderer({canvas:t.canvas,width:this.container.clientWidth,height:this.container.clientHeight,dpr:window.devicePixelRatio,alpha:!0,antialias:!0}),this.renderer.gl.canvas.style.width="100%",this.renderer.gl.canvas.style.height="100%",this.container.appendChild(this.renderer.gl.canvas)}setupCamera(){const t=this.container.clientWidth/this.container.clientHeight;this.camera=new G.Camera(this.renderer.gl,{fov:45,aspect:t,near:1,far:1e3}),this.camera.position.set(0,0,this.options.baseCameraZ)}setupPostProcessing(){!this.options.enablePostProcessing||!this.renderer||(this.sceneRenderTarget=new G.RenderTarget(this.renderer.gl,{width:this.container.clientWidth,height:this.container.clientHeight}),this.postProcessShader=new Yi(this.renderer.gl,this.options.postProcessParams))}get viewport(){if(!this.camera)return{width:0,height:0};const t=this.camera.fov*(Math.PI/180),i=2*Math.tan(t/2)*this.camera.position.z;return{width:i*this.camera.aspect,height:i}}updatePositions(){const t=this.scroll.current.x,i=this.scroll.current.y;this.scroll.current.y>this.scroll.last.y?this.direction.y=-1:this.scroll.current.y<this.scroll.last.y?this.direction.y=1:this.direction.y=0,this.scroll.current.x>this.scroll.last.x?this.direction.x=-1:this.scroll.current.x<this.scroll.last.x?this.direction.x=1:this.direction.x=0,this.tileGroupsData.forEach((s,n)=>{const r=this.groupObjects[n];if(r){const l=s.basePos.x+t+s.offset.x,a=s.basePos.y+i+s.offset.y,c=this.GRID_WIDTH/2,u=this.GRID_HEIGHT/2,h={x:this.viewport.width/2,y:this.viewport.height/2};this.direction.x<0&&l-c>h.x?s.offset.x-=this.TOTAL_GRID_WIDTH:this.direction.x>0&&l+c<-h.x&&(s.offset.x+=this.TOTAL_GRID_WIDTH),this.direction.y<0&&a-u>h.y?s.offset.y-=this.TOTAL_GRID_HEIGHT:this.direction.y>0&&a+u<-h.y&&(s.offset.y+=this.TOTAL_GRID_HEIGHT),r.position.x=s.basePos.x+t+s.offset.x,r.position.y=s.basePos.y+i+s.offset.y,r.position.z=s.basePos.z}})}animateInertiaScroll(t="auto",i="auto"){de.gsap.to(this.scroll.current,{inertia:{x:t,y:i,min:60,resistance:100},ease:"power2.out",onUpdate:()=>this.updatePositions(),onComplete:()=>{this.direction.x=0,this.direction.y=0}})}getInteractiveMeshes(){return this.gridManager.getInteractiveMeshes()}updatePointerCoordinates(t,i){if(!this.renderer)return;const s=this.renderer.gl.canvas.getBoundingClientRect(),n=(t-s.left)/s.width*2-1,r=-((i-s.top)/s.height*2-1);this.pointer.set(n,r)}performRaycast(){if(!this.camera||!this.renderer)return[];this.raycast.castMouse(this.camera,this.pointer);const t=this.getInteractiveMeshes();return this.raycast.intersectBounds(t)}getTileKeyFromMesh(t){return this.gridManager.getTileKeyFromMesh(t)}fadeInBackground(t){t.program&&t.program.uniforms.uOpacity&&de.gsap.to(t.program.uniforms.uOpacity,{value:this.hoveredBackgroundOpacity,duration:this.hoverTransitionDuration,ease:this.hoverEase,overwrite:!0})}fadeOutBackground(t){t.program&&t.program.uniforms.uOpacity&&de.gsap.to(t.program.uniforms.uOpacity,{value:this.initialBackgroundOpacity,duration:this.hoverTransitionDuration,ease:this.hoverEase,overwrite:!0})}getCardDataForTile(t,i){return this.gridManager.getCardDataForTile(t,i)}render(){this.scroll.last.x=this.scroll.current.x,this.scroll.last.y=this.scroll.current.y,this.updatePositions(),this.renderer&&this.camera&&(this.options.enablePostProcessing&&this.postProcessShader&&this.sceneRenderTarget?(this.renderer.render({scene:this.scene,camera:this.camera,target:this.sceneRenderTarget}),this.sceneRenderTarget.texture||console.error("PostProcessing: Render target has no texture"),this.postProcessShader.setInputTexture(this.sceneRenderTarget.texture),this.postProcessShader.render(null)):this.renderer.render({scene:this.scene,camera:this.camera})),this.animationFrameId=requestAnimationFrame(this.render)}animatePostProcessing(t,i,s,n=1,r=0,l="power2.out"){this.postProcessShader&&this.postProcessShader.animate(t,i,s,n,r,l)}setPostProcessingEnabled(t){this.options.enablePostProcessing=t}get distortionIntensity(){return this.postProcessShader?.distortionIntensity??0}set distortionIntensity(t){this.postProcessShader&&(this.postProcessShader.distortionIntensity=t)}get vignetteOffset(){return this.postProcessShader?.vignetteOffset??.8}set vignetteOffset(t){this.postProcessShader&&(this.postProcessShader.vignetteOffset=t)}get vignetteDarkness(){return this.postProcessShader?.vignetteDarkness??1}set vignetteDarkness(t){this.postProcessShader&&(this.postProcessShader.vignetteDarkness=t)}dispose(){this.disposalManager.dispose()}getEventHandler(){return this.eventHandler}getGridManager(){return this.gridManager}getDisposalManager(){return this.disposalManager}async updateCardData(t){this.cardData=t,await this.gridManager.updateCardData(t)}getGridStats(){return this.gridManager.getGridStats()}validateDisposal(){return this.disposalManager.validateDisposal()}partialCleanup(){this.disposalManager.partialCleanup()}}const Ji=e.defineComponent({__name:"InfiniteGrid",props:{cardData:{},options:{default:()=>({})},onTilesLoaded:{}},emits:["tileClicked"],setup(o,{emit:t}){const i=o,s=t,n={gridCols:4,gridRows:4,gridGap:0,tileSize:3,baseCameraZ:10,enablePostProcessing:!0,postProcessParams:{distortionIntensity:-.2,vignetteOffset:0,vignetteDarkness:0}},r=e.computed(()=>({...n,...i.options,postProcessParams:{...n.postProcessParams,...i.options?.postProcessParams}})),l=e.ref(null);let a=null;function c(u){s("tileClicked",u.detail)}return e.onMounted(async()=>{l.value&&(a=new zt(l.value,i.cardData,r.value),await a.init(),i.onTilesLoaded?.(),l.value.addEventListener("tileClicked",c))}),e.onBeforeUnmount(()=>{a&&(l.value&&l.value.removeEventListener("tileClicked",c),a.dispose(),a=null)}),e.watch(()=>[i.cardData,r.value],async([u,h])=>{a&&(a.dispose(),a=null),l.value&&(a=new zt(l.value,u,h),await a.init(),l.value.addEventListener("tileClicked",c))},{deep:!0}),(u,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"infiniteGridContainer",ref:l,class:"infinite-grid-container"},null,512))}}),Qi=me(Ji,[["__scopeId","data-v-c30aeea7"]]),eo=e.defineComponent({__name:"index",props:{cardData:{default:()=>[{title:"Visionary Insights",badge:"New",image:"https://picsum.photos/1366/768",description:"Next-gen AI system delivering business intelligence in real-time",tags:["AI","Big Data","BI"],date:"2025"},{title:"UI Framework",badge:"Updated",image:"https://picsum.photos/1366/768",description:"Robust design framework featuring sleek and responsive components",tags:["UI","React","Toolkit"],date:"2025"},{title:"NextGen App",badge:"Beta",image:"https://picsum.photos/1366/768",description:"Progressive mobile-first app optimized for speed and usability",tags:["Mobile","Flutter","UX"],date:"2025"}]},loadingText:{default:"Loading Tiles"},buttonText:{default:"View Fullscreen"},classList:{default:()=>({})}},setup(o){const t=e.useTemplateRef("el"),{toggle:i}=Ce.useFullscreen(t),s=e.ref(!1);function n(){s.value=!0}return(r,l)=>{const a=e.resolveComponent("InteractiveHoverButton"),c=e.resolveComponent("ClientOnly");return e.openBlock(),e.createBlock(c,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.overallClass||"flex flex-col h-[28rem] w-full items-center justify-center relative")},[e.createElementVNode("div",{ref_key:"el",ref:t,class:e.normalizeClass(o.classList?.gridClass||"absolute inset-0 z-50 flex flex-col justify-center items-center")},[e.createVNode(Qi,{"card-data":o.cardData,onTilesLoaded:n},null,8,["card-data"])],2),s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(o.classList?.loadingClass||"text-lg font-semibold z-[51]")},e.toDisplayString(o.loadingText||"Loading Tiles"),3)),s.value?(e.openBlock(),e.createBlock(a,{key:1,text:o.buttonText||"View Fullscreen",class:e.normalizeClass(o.classList?.buttonClass||"absolute bottom-0 z-[52]"),onClick:e.unref(i)},null,8,["text","class","onClick"])):e.createCommentVNode("",!0)],2)]),_:1})}}}),to={class:"relative w-full h-full"},so=`#version 300 es
545
606
 
546
607
  uniform mat4 uWorldMatrix;
547
608
  uniform mat4 uViewMatrix;
@@ -585,7 +646,7 @@ void main() {
585
646
  vUvs = aModelUvs;
586
647
  vInstanceId = gl_InstanceID;
587
648
  }
588
- `,to=`#version 300 es
649
+ `,io=`#version 300 es
589
650
  precision highp float;
590
651
 
591
652
  uniform sampler2D uTex;
@@ -623,7 +684,7 @@ void main() {
623
684
  outColor = texture(uTex, st);
624
685
  outColor.a *= vAlpha;
625
686
  }
626
- `,so=e.defineComponent({__name:"InfiniteMenu",props:{items:{}},setup(o){const t=[{image:"https://picsum.photos/900/900?grayscale",link:"https://google.com/",title:"",description:""}],i=o,s=e.ref(),n=e.ref(null),r=e.ref(!1),l=e.computed(()=>i.items?.length?i.items:t);let a=null,c=null;class u{constructor(C,_,D){this.a=C,this.b=_,this.c=D}}class d{position;normal;uv;constructor(C,_,D){this.position=F.vec3.fromValues(C,_,D),this.normal=F.vec3.create(),this.uv=F.vec2.create()}}class m{vertices=[];faces=[];addVertex(...C){for(let _=0;_<C.length;_+=3)this.vertices.push(new d(C[_],C[_+1],C[_+2]));return this}addFace(...C){for(let _=0;_<C.length;_+=3)this.faces.push(new u(C[_],C[_+1],C[_+2]));return this}get lastVertex(){return this.vertices[this.vertices.length-1]}subdivide(C=1){const _={};let D=this.faces;for(let M=0;M<C;++M){const I=new Array(D.length*4);D.forEach((N,V)=>{const A=this.getMidPoint(N.a,N.b,_),Q=this.getMidPoint(N.b,N.c,_),w=this.getMidPoint(N.c,N.a,_),R=V*4;I[R+0]=new u(N.a,A,w),I[R+1]=new u(N.b,Q,A),I[R+2]=new u(N.c,w,Q),I[R+3]=new u(A,Q,w)}),D=I}return this.faces=D,this}spherize(C=1){return this.vertices.forEach(_=>{F.vec3.normalize(_.normal,_.position),F.vec3.scale(_.position,_.normal,C)}),this}get data(){return{vertices:this.vertexData,indices:this.indexData,normals:this.normalData,uvs:this.uvData}}get vertexData(){return new Float32Array(this.vertices.flatMap(C=>Array.from(C.position)))}get normalData(){return new Float32Array(this.vertices.flatMap(C=>Array.from(C.normal)))}get uvData(){return new Float32Array(this.vertices.flatMap(C=>Array.from(C.uv)))}get indexData(){return new Uint16Array(this.faces.flatMap(C=>[C.a,C.b,C.c]))}getMidPoint(C,_,D){const M=C<_?`k_${_}_${C}`:`k_${C}_${_}`;if(Object.prototype.hasOwnProperty.call(D,M))return D[M];const I=this.vertices[C].position,N=this.vertices[_].position,V=this.vertices.length;return D[M]=V,this.addVertex((I[0]+N[0])*.5,(I[1]+N[1])*.5,(I[2]+N[2])*.5),V}}class h extends m{constructor(){super();const C=Math.sqrt(5)*.5+.5;this.addVertex(-1,C,0,1,C,0,-1,-C,0,1,-C,0,0,-1,C,0,1,C,0,-1,-C,0,1,-C,C,0,-1,C,0,1,-C,0,-1,-C,0,1).addFace(0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1)}}class f extends m{constructor(C=4,_=1){super(),C=Math.max(4,C);const D=2*Math.PI/C;this.addVertex(0,0,0),this.lastVertex.uv[0]=.5,this.lastVertex.uv[1]=.5;for(let M=0;M<C;++M){const I=Math.cos(D*M),N=Math.sin(D*M);this.addVertex(_*I,_*N,0),this.lastVertex.uv[0]=I*.5+.5,this.lastVertex.uv[1]=N*.5+.5,M>0&&this.addFace(0,M,M+1)}this.addFace(0,C,1)}}function x(S,C,_){const D=S.createShader(C);return D?(S.shaderSource(D,_),S.compileShader(D),S.getShaderParameter(D,S.COMPILE_STATUS)?D:(console.error(S.getShaderInfoLog(D)),S.deleteShader(D),null)):null}function v(S,C,_,D){const M=S.createProgram();if(!M)return null;if([S.VERTEX_SHADER,S.FRAGMENT_SHADER].forEach((N,V)=>{const A=x(S,N,C[V]);A&&S.attachShader(M,A)}),D)for(const N in D)S.bindAttribLocation(M,D[N],N);return S.linkProgram(M),S.getProgramParameter(M,S.LINK_STATUS)?M:(console.error(S.getProgramInfoLog(M)),S.deleteProgram(M),null)}function y(S,C,_){const D=S.createVertexArray();if(!D)return null;S.bindVertexArray(D);for(const[M,I,N]of C)I!==-1&&(S.bindBuffer(S.ARRAY_BUFFER,M),S.enableVertexAttribArray(I),S.vertexAttribPointer(I,N,S.FLOAT,!1,0,0));if(_){const M=S.createBuffer();M&&(S.bindBuffer(S.ELEMENT_ARRAY_BUFFER,M),S.bufferData(S.ELEMENT_ARRAY_BUFFER,_,S.STATIC_DRAW))}return S.bindVertexArray(null),D}function p(S){const C=Math.min(2,window.devicePixelRatio||1),_=Math.round(S.clientWidth*C),D=Math.round(S.clientHeight*C),M=S.width!==_||S.height!==D;return M&&(S.width=_,S.height=D),M}function E(S,C,_){const D=S.createBuffer();return D?(S.bindBuffer(S.ARRAY_BUFFER,D),S.bufferData(S.ARRAY_BUFFER,C,_),S.bindBuffer(S.ARRAY_BUFFER,null),D):null}function k(S,C,_,D,M){const I=S.createTexture();return I?(S.bindTexture(S.TEXTURE_2D,I),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_WRAP_S,D),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_WRAP_T,M),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_MIN_FILTER,C),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_MAG_FILTER,_),I):null}class b{constructor(C,_){this.canvas=C,this.updateCallback=_,this.setupEventListeners()}isPointerDown=!1;orientation=F.quat.create();pointerRotation=F.quat.create();rotationVelocity=0;rotationAxis=F.vec3.fromValues(1,0,0);snapDirection=F.vec3.fromValues(0,0,-1);snapTargetDirection;EPSILON=.1;IDENTITY_QUAT=F.quat.create();pointerPos=F.vec2.create();previousPointerPos=F.vec2.create();_rotationVelocity=0;_combinedQuat=F.quat.create();setupEventListeners(){this.canvas.addEventListener("pointerdown",C=>{F.vec2.set(this.pointerPos,C.clientX,C.clientY),F.vec2.copy(this.previousPointerPos,this.pointerPos),this.isPointerDown=!0}),this.canvas.addEventListener("pointerup",()=>{this.isPointerDown=!1}),this.canvas.addEventListener("pointerleave",()=>{this.isPointerDown=!1}),this.canvas.addEventListener("pointermove",C=>{this.isPointerDown&&F.vec2.set(this.pointerPos,C.clientX,C.clientY)}),this.canvas.style.touchAction="none"}update(C,_=16){const D=C/_+1e-5;let M=D;const I=F.quat.create();if(this.isPointerDown){const G=.3*D,le=5/D,Z=F.vec2.sub(F.vec2.create(),this.pointerPos,this.previousPointerPos);if(F.vec2.scale(Z,Z,G),F.vec2.sqrLen(Z)>this.EPSILON){F.vec2.add(Z,this.previousPointerPos,Z);const Y=this.project(Z),se=this.project(this.previousPointerPos),ie=F.vec3.normalize(F.vec3.create(),Y),ce=F.vec3.normalize(F.vec3.create(),se);F.vec2.copy(this.previousPointerPos,Z),M*=le,this.quatFromVectors(ie,ce,this.pointerRotation,M)}else F.quat.slerp(this.pointerRotation,this.pointerRotation,this.IDENTITY_QUAT,G)}else{const G=.1*D;if(F.quat.slerp(this.pointerRotation,this.pointerRotation,this.IDENTITY_QUAT,G),this.snapTargetDirection){const Z=this.snapTargetDirection,Y=this.snapDirection,se=F.vec3.squaredDistance(Z,Y),ie=Math.max(.1,1-se*10);M*=.2*ie,this.quatFromVectors(Z,Y,I,M)}}const N=F.quat.multiply(F.quat.create(),I,this.pointerRotation);this.orientation=F.quat.multiply(F.quat.create(),N,this.orientation),F.quat.normalize(this.orientation,this.orientation);const V=.8*D;F.quat.slerp(this._combinedQuat,this._combinedQuat,N,V),F.quat.normalize(this._combinedQuat,this._combinedQuat);const A=Math.acos(this._combinedQuat[3])*2,Q=Math.sin(A/2);let w=0;Q>1e-6&&(w=A/(2*Math.PI),this.rotationAxis[0]=this._combinedQuat[0]/Q,this.rotationAxis[1]=this._combinedQuat[1]/Q,this.rotationAxis[2]=this._combinedQuat[2]/Q);const R=.5*D;this._rotationVelocity+=(w-this._rotationVelocity)*R,this.rotationVelocity=this._rotationVelocity/D,this.updateCallback?.(C)}quatFromVectors(C,_,D,M=1){const I=F.vec3.cross(F.vec3.create(),C,_);F.vec3.normalize(I,I);const N=Math.max(-1,Math.min(1,F.vec3.dot(C,_))),V=Math.acos(N)*M;return F.quat.setAxisAngle(D,I,V),{q:D,axis:I,angle:V}}project(C){const D=this.canvas.clientWidth,M=this.canvas.clientHeight,I=Math.max(D,M)-1,N=(2*C[0]-D-1)/I,V=(2*C[1]-M-1)/I;let A=0;const Q=N*N+V*V,w=4;return Q<=w/2?A=Math.sqrt(w-Q):A=w/Math.sqrt(Q),F.vec3.fromValues(-N,V,A)}}class L{constructor(C,_,D,M,I){this.canvas=C,this.items=_,this.onActiveItemChange=D,this.onMovementChange=M,this.onInit=I,this.init()}TARGET_FRAME_DURATION=1e3/60;SPHERE_RADIUS=2;time=0;deltaTime=0;deltaFrames=0;frames=0;camera={matrix:F.mat4.create(),near:.1,far:40,fov:Math.PI/4,aspect:1,position:F.vec3.fromValues(0,0,3),up:F.vec3.fromValues(0,1,0),matrices:{view:F.mat4.create(),projection:F.mat4.create(),inversProjection:F.mat4.create()}};nearestVertexIndex=null;smoothRotationVelocity=0;scaleFactor=1;movementActive=!1;discProgram=null;discLocations={};discGeo;discBuffers={};discVAO=null;icoGeo;instancePositions=[];DISC_INSTANCE_COUNT=0;discInstances={matricesArray:new Float32Array(0),matrices:[],buffer:null};worldMatrix=F.mat4.create();tex=null;atlasSize=0;control;viewportSize;init(){if(this.gl=this.canvas.getContext("webgl2",{antialias:!0,alpha:!1}),!this.gl)throw new Error("No WebGL 2 context!");if(this.viewportSize=F.vec2.fromValues(this.canvas.clientWidth,this.canvas.clientHeight),this.discProgram=v(this.gl,[eo,to],void 0,{aModelPosition:0,aModelNormal:1,aModelUvs:2,aInstanceMatrix:3}),!this.discProgram)throw new Error("Failed to create shader program");this.discLocations={aModelPosition:this.gl.getAttribLocation(this.discProgram,"aModelPosition"),aModelUvs:this.gl.getAttribLocation(this.discProgram,"aModelUvs"),aInstanceMatrix:this.gl.getAttribLocation(this.discProgram,"aInstanceMatrix"),uWorldMatrix:this.gl.getUniformLocation(this.discProgram,"uWorldMatrix"),uViewMatrix:this.gl.getUniformLocation(this.discProgram,"uViewMatrix"),uProjectionMatrix:this.gl.getUniformLocation(this.discProgram,"uProjectionMatrix"),uCameraPosition:this.gl.getUniformLocation(this.discProgram,"uCameraPosition"),uRotationAxisVelocity:this.gl.getUniformLocation(this.discProgram,"uRotationAxisVelocity"),uTex:this.gl.getUniformLocation(this.discProgram,"uTex"),uItemCount:this.gl.getUniformLocation(this.discProgram,"uItemCount"),uAtlasSize:this.gl.getUniformLocation(this.discProgram,"uAtlasSize"),uFrames:this.gl.getUniformLocation(this.discProgram,"uFrames"),uScaleFactor:this.gl.getUniformLocation(this.discProgram,"uScaleFactor")},this.discGeo=new f(56,1),this.discBuffers=this.discGeo.data,this.discVAO=y(this.gl,[[E(this.gl,this.discBuffers.vertices,this.gl.STATIC_DRAW),this.discLocations.aModelPosition,3],[E(this.gl,this.discBuffers.uvs,this.gl.STATIC_DRAW),this.discLocations.aModelUvs,2]],this.discBuffers.indices),this.icoGeo=new h,this.icoGeo.subdivide(1).spherize(this.SPHERE_RADIUS),this.instancePositions=this.icoGeo.vertices.map(C=>C.position),this.DISC_INSTANCE_COUNT=this.icoGeo.vertices.length,this.initDiscInstances(this.DISC_INSTANCE_COUNT),this.initTexture(),this.control=new b(this.canvas,C=>this.onControlUpdate(C)),this.updateCameraMatrix(),this.updateProjectionMatrix(),this.resize(),this.onInit?.(this)}initTexture(){if(!this.gl||(this.tex=k(this.gl,this.gl.LINEAR,this.gl.LINEAR,this.gl.CLAMP_TO_EDGE,this.gl.CLAMP_TO_EDGE),!this.tex))return;const C=Math.max(1,this.items.length);this.atlasSize=Math.ceil(Math.sqrt(C));const _=document.createElement("canvas"),D=_.getContext("2d");if(!D)return;const M=512;_.width=this.atlasSize*M,_.height=this.atlasSize*M,Promise.all(this.items.map(I=>new Promise(N=>{const V=new Image;V.crossOrigin="anonymous",V.onload=()=>N(V),V.onerror=()=>N(V),V.src=I.image}))).then(I=>{I.forEach((N,V)=>{const A=V%this.atlasSize*M,Q=Math.floor(V/this.atlasSize)*M;try{D.drawImage(N,A,Q,M,M)}catch{}}),this.gl&&this.tex&&(this.gl.bindTexture(this.gl.TEXTURE_2D,this.tex),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,_),this.gl.generateMipmap(this.gl.TEXTURE_2D))})}initDiscInstances(C){if(!this.gl)return;this.discInstances={matricesArray:new Float32Array(C*16),matrices:[],buffer:this.gl.createBuffer()};for(let M=0;M<C;++M){const I=new Float32Array(this.discInstances.matricesArray.buffer,M*16*4,16);I.set(F.mat4.create()),this.discInstances.matrices.push(I)}this.gl.bindVertexArray(this.discVAO),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.discInstances.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.discInstances.matricesArray.byteLength,this.gl.DYNAMIC_DRAW);const _=4,D=64;for(let M=0;M<_;++M){const I=this.discLocations.aInstanceMatrix+M;this.gl.enableVertexAttribArray(I),this.gl.vertexAttribPointer(I,4,this.gl.FLOAT,!1,D,M*4*4),this.gl.vertexAttribDivisor(I,1)}this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindVertexArray(null)}run(C=0){this.deltaTime=Math.min(32,C-this.time),this.time=C,this.deltaFrames=this.deltaTime/this.TARGET_FRAME_DURATION,this.frames+=this.deltaFrames,this.animate(),this.render(),a=requestAnimationFrame(_=>this.run(_))}resize(){if(this.viewportSize=F.vec2.set(this.viewportSize||F.vec2.create(),this.canvas.clientWidth,this.canvas.clientHeight),!this.gl)return;p(this.canvas)&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight),this.updateProjectionMatrix()}animate(){if(!this.gl)return;this.control.update(this.deltaTime,this.TARGET_FRAME_DURATION);const C=this.instancePositions.map(M=>F.vec3.transformQuat(F.vec3.create(),M,this.control.orientation)),_=.25,D=.6;C.forEach((M,I)=>{const V=(Math.abs(M[2])/this.SPHERE_RADIUS*D+(1-D))*_,A=F.mat4.create();F.mat4.multiply(A,A,F.mat4.fromTranslation(F.mat4.create(),F.vec3.negate(F.vec3.create(),M))),F.mat4.multiply(A,A,F.mat4.targetTo(F.mat4.create(),[0,0,0],M,[0,1,0])),F.mat4.multiply(A,A,F.mat4.fromScaling(F.mat4.create(),[V,V,V])),F.mat4.multiply(A,A,F.mat4.fromTranslation(F.mat4.create(),[0,0,-this.SPHERE_RADIUS])),F.mat4.copy(this.discInstances.matrices[I],A)}),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.discInstances.buffer),this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.discInstances.matricesArray),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.smoothRotationVelocity=this.control.rotationVelocity}render(){if(!this.gl)return;this.gl.useProgram(this.discProgram),this.gl.enable(this.gl.CULL_FACE),this.gl.enable(this.gl.DEPTH_TEST),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.clearColor(0,0,0,0),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT),this.gl.uniformMatrix4fv(this.discLocations.uWorldMatrix,!1,this.worldMatrix),this.gl.uniformMatrix4fv(this.discLocations.uViewMatrix,!1,this.camera.matrices.view),this.gl.uniformMatrix4fv(this.discLocations.uProjectionMatrix,!1,this.camera.matrices.projection),this.gl.uniform3f(this.discLocations.uCameraPosition,this.camera.position[0],this.camera.position[1],this.camera.position[2]),this.gl.uniform4f(this.discLocations.uRotationAxisVelocity,this.control.rotationAxis[0],this.control.rotationAxis[1],this.control.rotationAxis[2],this.smoothRotationVelocity*1.1);const C=this.discLocations.uItemCount;C!==null&&this.gl.uniform1i(C,this.items.length);const _=this.discLocations.uAtlasSize;_!==null&&this.gl.uniform1i(_,this.atlasSize);const D=this.discLocations.uFrames;D!==null&&this.gl.uniform1f(D,this.frames);const M=this.discLocations.uScaleFactor;M!==null&&this.gl.uniform1f(M,this.scaleFactor);const I=this.discLocations.uTex;I!==null&&this.gl.uniform1i(I,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.tex),this.gl.bindVertexArray(this.discVAO),this.gl.drawElementsInstanced(this.gl.TRIANGLES,this.discBuffers.indices.length,this.gl.UNSIGNED_SHORT,0,this.DISC_INSTANCE_COUNT)}updateCameraMatrix(){F.mat4.targetTo(this.camera.matrix,this.camera.position,[0,0,0],this.camera.up),F.mat4.invert(this.camera.matrices.view,this.camera.matrix)}updateProjectionMatrix(){if(!this.gl)return;this.camera.aspect=this.gl.canvas.width/this.gl.canvas.height;const C=this.SPHERE_RADIUS*.35,_=this.camera.position[2];this.camera.aspect>1?this.camera.fov=2*Math.atan(C/_):this.camera.fov=2*Math.atan(C/this.camera.aspect/_),F.mat4.perspective(this.camera.matrices.projection,this.camera.fov,this.camera.aspect,this.camera.near,this.camera.far),F.mat4.invert(this.camera.matrices.inversProjection,this.camera.matrices.projection)}onControlUpdate(C){const _=C/this.TARGET_FRAME_DURATION+1e-4;let D=5/_,M=3;const I=this.control.isPointerDown||Math.abs(this.smoothRotationVelocity)>.01;if(I!==this.movementActive&&(this.movementActive=I,this.onMovementChange(I)),this.control.isPointerDown)M+=this.control.rotationVelocity*80+2.5,D=7/_;else{const N=this.findNearestVertexIndex(),V=N%Math.max(1,this.items.length);this.onActiveItemChange(V);const A=F.vec3.normalize(F.vec3.create(),this.getVertexWorldPosition(N));this.control.snapTargetDirection=A}this.camera.position[2]+=(M-this.camera.position[2])/D,this.updateCameraMatrix()}findNearestVertexIndex(){const C=this.control.snapDirection,_=F.quat.conjugate(F.quat.create(),this.control.orientation),D=F.vec3.transformQuat(F.vec3.create(),C,_);let M=-1,I=0;for(let N=0;N<this.instancePositions.length;++N){const V=F.vec3.dot(D,this.instancePositions[N]);V>M&&(M=V,I=N)}return I}getVertexWorldPosition(C){const _=this.instancePositions[C];return F.vec3.transformQuat(F.vec3.create(),_,this.control.orientation)}destroy(){a&&(cancelAnimationFrame(a),a=null)}gl=null}const U=S=>{const C=l.value;if(!C.length)return;const _=S%C.length;n.value=C[_]},H=()=>{n.value?.link&&(n.value.link.startsWith("http")?window.open(n.value.link,"_blank"):console.log("Internal route:",n.value.link))};return e.onMounted(()=>{if(s.value)try{c=new L(s.value,l.value,U,C=>{r.value=C},C=>C.run());const S=()=>{c?.resize()};window.addEventListener("resize",S),S(),e.onBeforeUnmount(()=>{window.removeEventListener("resize",S),c?.destroy()})}catch(S){console.error("Failed to initialize InfiniteMenu:",S)}}),e.watch(()=>i.items,()=>{c&&s.value&&(c.destroy(),c=new L(s.value,l.value,U,S=>{r.value=S},S=>S.run()))},{deep:!0}),(S,C)=>(e.openBlock(),e.createElementBlock("div",Qi,[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,class:"w-full h-full cursor-grab active:cursor-grabbing outline-none overflow-hidden"},null,512),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("h2",{class:e.normalizeClass(["select-none absolute font-black text-6xl top-1/2 text-white transition-all duration-500 ease-in-out hidden xl:block",r.value?"pointer-events-none opacity-0 transition-all duration-100 ease-in-out":"opacity-100 pointer-events-auto"]),style:{left:"1.6em",transform:"translate(20%, -50%)"}},e.toDisplayString(n.value.title),3),e.createElementVNode("p",{class:e.normalizeClass(["select-none absolute top-1/2 text-2xl text-white/80 transition-all ease-in-out hidden xl:block",r.value?"pointer-events-none opacity-0 duration-100":"opacity-100 pointer-events-auto duration-500"]),style:e.normalizeStyle({right:"1%",maxWidth:"10ch",transform:r.value?"translate(-60%, -50%)":"translate(-90%, -50%)"})},e.toDisplayString(n.value.description),7),e.createElementVNode("div",{onClick:H,class:e.normalizeClass(["absolute left-1/2 z-10 grid place-items-center bg-purple-600 rounded-full cursor-pointer border-4 border-black transition-all ease-in-out",r.value?"pointer-events-none opacity-0 duration-100":"opacity-100 pointer-events-auto duration-500"]),style:e.normalizeStyle({width:"60px",height:"60px",bottom:r.value?"-80px":"61px",transform:r.value?"translateX(-50%) scale(0)":"translateX(-50%) scale(1)"})},[...C[0]||(C[0]=[e.createElementVNode("p",{class:"select-none relative text-white text-2xl",style:{top:"2px"}},"↗",-1)])],6)],64)):e.createCommentVNode("",!0)]))}}),io=e.defineComponent({__name:"index",props:{items:{default:()=>[{image:"https://images.unsplash.com/photo-1517180102446-f3ece451e9d8?w=800&h=800&fit=crop",title:"Sarah Chen",description:"UI/UX Designer",link:"https://dribbble.com/"},{image:"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&h=800&fit=crop",title:"Mike Johnson",description:"Frontend Developer",link:"https://github.com/"},{image:"https://images.unsplash.com/photo-1494790108755-2616b612b793?w=800&h=800&fit=crop",title:"Emma Wilson",description:"Product Designer",link:"https://behance.net/"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass,i.value])},[e.createVNode(so,{items:o.items},null,8,["items"])],2))}}),oo=()=>{const o=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(Q){setTimeout(Q,10)};let t,i,s,n,r,l,a,c,u,d,m,h,f,x,v,y,p,E,k,b,L,U,H,S,C,_,D,M,I,N=0,V=0;class A{constructor(w){let R={};w&&(w.nodeName?(R=JSON.parse(JSON.stringify(w.dataset)),w.nodeName==="IMG"?R.image=w:R.wrapperElement=w):R=w),this.state="stopped",this.touches=[],this.on("imageLoaded",this._onImageLoaded),this._initImage(R)}on(w,R){this.events=this.events||{},this.events[w]=this.events[w]||[],this.events[w].push(R)}emit(w,R){const G=this.events[w];if(G&&G.length)for(let le=0;le<G.length;le++)G[le].call(this,R)}get renderer(){return this._renderer}set renderer(w){this._renderer=w,this._draw=this["_"+w+"Renderer"];try{this["_"+w+"InitContext"]()}catch(R){console.log(R),w!=="default"&&(this.renderer="default")}}set color(w){this.colorArr=this._parseColor(w),this.colorArr&&(isNaN(this.colorArr[3])&&(this.colorArr[3]=255),0<this.colorArr[3]&&this.colorArr[3]<=1&&(this.colorArr[3]*=255))}start(w){const R=w||{};this.initPosition=R.initPosition||this.initPosition,this.initDirection=R.initDirection||this.initDirection,this.canvas&&(this.canvas.width=this.width,this.canvas.height=this.height,this.canvas.style.display=""),this._initOrigins(),this._initParticles(),this._webglSetAttributes(),this.state!=="running"&&(this.state="running",this.disableInteraction||("ontouchstart"in window||window.navigator.msPointerEnabled?(document.body.addEventListener("touchstart",this._touchHandler),document.body.addEventListener("touchmove",this._touchHandler),document.body.addEventListener("touchend",this._clearTouches),document.body.addEventListener("touchcancel",this._clearTouches)):(this.canvas.addEventListener("mousemove",this._mouseHandler),this.canvas.addEventListener("mouseout",this._clearTouches),this.canvas.addEventListener("click",this._clickHandler))),this._animate())}stop(w){const R=w||{};this.fadePosition=R.fadePosition||this.fadePosition,this.fadeDirection=R.fadeDirection||this.fadeDirection,this._fade(),document.body.removeEventListener("touchstart",this._touchHandler),document.body.removeEventListener("touchmove",this._touchHandler),document.body.removeEventListener("touchend",this._clearTouches),document.body.removeEventListener("touchcancel",this._clearTouches),this.canvas&&(this.canvas.removeEventListener("mousemove",this._mouseHandler),this.canvas.removeEventListener("mouseout",this._clearTouches),this.canvas.removeEventListener("click",this._clickHandler))}_animate(){this.state!=="stopped"?(this._calculate(),this._draw(),o(()=>this._animate())):this.emit("stopped")}get _mouseHandler(){return w=>{this.touches=[{x:w.offsetX,y:w.offsetY,z:49+(this.layerCount-1)*this.layerDistance,force:1}]}}get _clickHandler(){return w=>{const R=this.clickStrength;this.origins.map(G=>G.z-=R),setTimeout(()=>{this.origins.map(G=>G.z+=R)},100)}}get _touchHandler(){return w=>{for(this.touches=[],d=this.canvas.getBoundingClientRect(),u=0;u<w.changedTouches.length;u++)c=w.changedTouches[u],c.target===this.canvas&&(this.touches.push({x:c.pageX-d.left,y:c.pageY-d.top,z:49+(this.layerCount-1)*this.layerDistance,force:c.force||1}),w.preventDefault())}}get _clearTouches(){return w=>{this.touches=[]}}_onImageLoaded(w){this.imageWidth=this.image.naturalWidth||this.image.width,this.imageHeight=this.image.naturalHeight||this.image.height,this.imageRatio=this.imageWidth/this.imageHeight,this.width=this.width||this.imageWidth,this.height=this.height||this.imageHeight,this.renderSize=(this.width+this.height)/4,this.srcImage&&(this.srcImage.style.display="none"),this._initSettings(w),this._initContext(w),this._initResponsive(w),this.start()}_initImage(w){this.srcImage=w.image,!this.srcImage&&w.imageId&&(this.srcImage=document.getElementById(w.imageId)),this.imageUrl=w.imageUrl||this.srcImage.src,this.image=document.createElement("img"),this.wrapperElement=w.wrapperElement||this.srcImage.parentElement,this.image.onload=()=>this.emit("imageLoaded",w),this.image.crossOrigin="Anonymous",w.addTimestamp&&(/\?/.test(this.imageUrl)?this.imageUrl+="&d="+Date.now():this.imageUrl+="?d="+Date.now()),this.image.src=this.imageUrl}_initContext(w){this.canvas=w.canvas,!this.canvas&&!this.context&&this.wrapperElement&&(this.canvas=document.createElement("canvas"),this.wrapperElement.appendChild(this.canvas)),this.convas&&(this.convas.style.display="none"),this.context=w.context,this.renderer=w.renderer||"default"}_defaultInitContext(w){this.context=this.context||this.canvas.getContext("2d")}_webglInitContext(){this.context=this.context||this.canvas.getContext("webgl2")||this.canvas.getContext("experimental-webgl"),this.fragmentShaderScript=`#version 300 es
687
+ `,oo=e.defineComponent({__name:"InfiniteMenu",props:{items:{}},setup(o){const t=[{image:"https://picsum.photos/900/900?grayscale",link:"https://google.com/",title:"",description:""}],i=o,s=e.ref(),n=e.ref(null),r=e.ref(!1),l=e.computed(()=>i.items?.length?i.items:t);let a=null,c=null;class u{constructor(C,T,R){this.a=C,this.b=T,this.c=R}}class h{position;normal;uv;constructor(C,T,R){this.position=F.vec3.fromValues(C,T,R),this.normal=F.vec3.create(),this.uv=F.vec2.create()}}class f{vertices=[];faces=[];addVertex(...C){for(let T=0;T<C.length;T+=3)this.vertices.push(new h(C[T],C[T+1],C[T+2]));return this}addFace(...C){for(let T=0;T<C.length;T+=3)this.faces.push(new u(C[T],C[T+1],C[T+2]));return this}get lastVertex(){return this.vertices[this.vertices.length-1]}subdivide(C=1){const T={};let R=this.faces;for(let B=0;B<C;++B){const I=new Array(R.length*4);R.forEach((N,V)=>{const A=this.getMidPoint(N.a,N.b,T),Q=this.getMidPoint(N.b,N.c,T),b=this.getMidPoint(N.c,N.a,T),L=V*4;I[L+0]=new u(N.a,A,b),I[L+1]=new u(N.b,Q,A),I[L+2]=new u(N.c,b,Q),I[L+3]=new u(A,Q,b)}),R=I}return this.faces=R,this}spherize(C=1){return this.vertices.forEach(T=>{F.vec3.normalize(T.normal,T.position),F.vec3.scale(T.position,T.normal,C)}),this}get data(){return{vertices:this.vertexData,indices:this.indexData,normals:this.normalData,uvs:this.uvData}}get vertexData(){return new Float32Array(this.vertices.flatMap(C=>Array.from(C.position)))}get normalData(){return new Float32Array(this.vertices.flatMap(C=>Array.from(C.normal)))}get uvData(){return new Float32Array(this.vertices.flatMap(C=>Array.from(C.uv)))}get indexData(){return new Uint16Array(this.faces.flatMap(C=>[C.a,C.b,C.c]))}getMidPoint(C,T,R){const B=C<T?`k_${T}_${C}`:`k_${C}_${T}`;if(Object.prototype.hasOwnProperty.call(R,B))return R[B];const I=this.vertices[C].position,N=this.vertices[T].position,V=this.vertices.length;return R[B]=V,this.addVertex((I[0]+N[0])*.5,(I[1]+N[1])*.5,(I[2]+N[2])*.5),V}}class d extends f{constructor(){super();const C=Math.sqrt(5)*.5+.5;this.addVertex(-1,C,0,1,C,0,-1,-C,0,1,-C,0,0,-1,C,0,1,C,0,-1,-C,0,1,-C,C,0,-1,C,0,1,-C,0,-1,-C,0,1).addFace(0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1)}}class m extends f{constructor(C=4,T=1){super(),C=Math.max(4,C);const R=2*Math.PI/C;this.addVertex(0,0,0),this.lastVertex.uv[0]=.5,this.lastVertex.uv[1]=.5;for(let B=0;B<C;++B){const I=Math.cos(R*B),N=Math.sin(R*B);this.addVertex(T*I,T*N,0),this.lastVertex.uv[0]=I*.5+.5,this.lastVertex.uv[1]=N*.5+.5,B>0&&this.addFace(0,B,B+1)}this.addFace(0,C,1)}}function v(S,C,T){const R=S.createShader(C);return R?(S.shaderSource(R,T),S.compileShader(R),S.getShaderParameter(R,S.COMPILE_STATUS)?R:(console.error(S.getShaderInfoLog(R)),S.deleteShader(R),null)):null}function g(S,C,T,R){const B=S.createProgram();if(!B)return null;if([S.VERTEX_SHADER,S.FRAGMENT_SHADER].forEach((N,V)=>{const A=v(S,N,C[V]);A&&S.attachShader(B,A)}),R)for(const N in R)S.bindAttribLocation(B,R[N],N);return S.linkProgram(B),S.getProgramParameter(B,S.LINK_STATUS)?B:(console.error(S.getProgramInfoLog(B)),S.deleteProgram(B),null)}function x(S,C,T){const R=S.createVertexArray();if(!R)return null;S.bindVertexArray(R);for(const[B,I,N]of C)I!==-1&&(S.bindBuffer(S.ARRAY_BUFFER,B),S.enableVertexAttribArray(I),S.vertexAttribPointer(I,N,S.FLOAT,!1,0,0));if(T){const B=S.createBuffer();B&&(S.bindBuffer(S.ELEMENT_ARRAY_BUFFER,B),S.bufferData(S.ELEMENT_ARRAY_BUFFER,T,S.STATIC_DRAW))}return S.bindVertexArray(null),R}function p(S){const C=Math.min(2,window.devicePixelRatio||1),T=Math.round(S.clientWidth*C),R=Math.round(S.clientHeight*C),B=S.width!==T||S.height!==R;return B&&(S.width=T,S.height=R),B}function k(S,C,T){const R=S.createBuffer();return R?(S.bindBuffer(S.ARRAY_BUFFER,R),S.bufferData(S.ARRAY_BUFFER,C,T),S.bindBuffer(S.ARRAY_BUFFER,null),R):null}function E(S,C,T,R,B){const I=S.createTexture();return I?(S.bindTexture(S.TEXTURE_2D,I),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_WRAP_S,R),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_WRAP_T,B),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_MIN_FILTER,C),S.texParameteri(S.TEXTURE_2D,S.TEXTURE_MAG_FILTER,T),I):null}class w{constructor(C,T){this.canvas=C,this.updateCallback=T,this.setupEventListeners()}isPointerDown=!1;orientation=F.quat.create();pointerRotation=F.quat.create();rotationVelocity=0;rotationAxis=F.vec3.fromValues(1,0,0);snapDirection=F.vec3.fromValues(0,0,-1);snapTargetDirection;EPSILON=.1;IDENTITY_QUAT=F.quat.create();pointerPos=F.vec2.create();previousPointerPos=F.vec2.create();_rotationVelocity=0;_combinedQuat=F.quat.create();setupEventListeners(){this.canvas.addEventListener("pointerdown",C=>{F.vec2.set(this.pointerPos,C.clientX,C.clientY),F.vec2.copy(this.previousPointerPos,this.pointerPos),this.isPointerDown=!0}),this.canvas.addEventListener("pointerup",()=>{this.isPointerDown=!1}),this.canvas.addEventListener("pointerleave",()=>{this.isPointerDown=!1}),this.canvas.addEventListener("pointermove",C=>{this.isPointerDown&&F.vec2.set(this.pointerPos,C.clientX,C.clientY)}),this.canvas.style.touchAction="none"}update(C,T=16){const R=C/T+1e-5;let B=R;const I=F.quat.create();if(this.isPointerDown){const Y=.3*R,le=5/R,Z=F.vec2.sub(F.vec2.create(),this.pointerPos,this.previousPointerPos);if(F.vec2.scale(Z,Z,Y),F.vec2.sqrLen(Z)>this.EPSILON){F.vec2.add(Z,this.previousPointerPos,Z);const W=this.project(Z),se=this.project(this.previousPointerPos),ie=F.vec3.normalize(F.vec3.create(),W),ce=F.vec3.normalize(F.vec3.create(),se);F.vec2.copy(this.previousPointerPos,Z),B*=le,this.quatFromVectors(ie,ce,this.pointerRotation,B)}else F.quat.slerp(this.pointerRotation,this.pointerRotation,this.IDENTITY_QUAT,Y)}else{const Y=.1*R;if(F.quat.slerp(this.pointerRotation,this.pointerRotation,this.IDENTITY_QUAT,Y),this.snapTargetDirection){const Z=this.snapTargetDirection,W=this.snapDirection,se=F.vec3.squaredDistance(Z,W),ie=Math.max(.1,1-se*10);B*=.2*ie,this.quatFromVectors(Z,W,I,B)}}const N=F.quat.multiply(F.quat.create(),I,this.pointerRotation);this.orientation=F.quat.multiply(F.quat.create(),N,this.orientation),F.quat.normalize(this.orientation,this.orientation);const V=.8*R;F.quat.slerp(this._combinedQuat,this._combinedQuat,N,V),F.quat.normalize(this._combinedQuat,this._combinedQuat);const A=Math.acos(this._combinedQuat[3])*2,Q=Math.sin(A/2);let b=0;Q>1e-6&&(b=A/(2*Math.PI),this.rotationAxis[0]=this._combinedQuat[0]/Q,this.rotationAxis[1]=this._combinedQuat[1]/Q,this.rotationAxis[2]=this._combinedQuat[2]/Q);const L=.5*R;this._rotationVelocity+=(b-this._rotationVelocity)*L,this.rotationVelocity=this._rotationVelocity/R,this.updateCallback?.(C)}quatFromVectors(C,T,R,B=1){const I=F.vec3.cross(F.vec3.create(),C,T);F.vec3.normalize(I,I);const N=Math.max(-1,Math.min(1,F.vec3.dot(C,T))),V=Math.acos(N)*B;return F.quat.setAxisAngle(R,I,V),{q:R,axis:I,angle:V}}project(C){const R=this.canvas.clientWidth,B=this.canvas.clientHeight,I=Math.max(R,B)-1,N=(2*C[0]-R-1)/I,V=(2*C[1]-B-1)/I;let A=0;const Q=N*N+V*V,b=4;return Q<=b/2?A=Math.sqrt(b-Q):A=b/Math.sqrt(Q),F.vec3.fromValues(-N,V,A)}}class D{constructor(C,T,R,B,I){this.canvas=C,this.items=T,this.onActiveItemChange=R,this.onMovementChange=B,this.onInit=I,this.init()}TARGET_FRAME_DURATION=1e3/60;SPHERE_RADIUS=2;time=0;deltaTime=0;deltaFrames=0;frames=0;camera={matrix:F.mat4.create(),near:.1,far:40,fov:Math.PI/4,aspect:1,position:F.vec3.fromValues(0,0,3),up:F.vec3.fromValues(0,1,0),matrices:{view:F.mat4.create(),projection:F.mat4.create(),inversProjection:F.mat4.create()}};nearestVertexIndex=null;smoothRotationVelocity=0;scaleFactor=1;movementActive=!1;discProgram=null;discLocations={};discGeo;discBuffers={};discVAO=null;icoGeo;instancePositions=[];DISC_INSTANCE_COUNT=0;discInstances={matricesArray:new Float32Array(0),matrices:[],buffer:null};worldMatrix=F.mat4.create();tex=null;atlasSize=0;control;viewportSize;init(){if(this.gl=this.canvas.getContext("webgl2",{antialias:!0,alpha:!1}),!this.gl)throw new Error("No WebGL 2 context!");if(this.viewportSize=F.vec2.fromValues(this.canvas.clientWidth,this.canvas.clientHeight),this.discProgram=g(this.gl,[so,io],void 0,{aModelPosition:0,aModelNormal:1,aModelUvs:2,aInstanceMatrix:3}),!this.discProgram)throw new Error("Failed to create shader program");this.discLocations={aModelPosition:this.gl.getAttribLocation(this.discProgram,"aModelPosition"),aModelUvs:this.gl.getAttribLocation(this.discProgram,"aModelUvs"),aInstanceMatrix:this.gl.getAttribLocation(this.discProgram,"aInstanceMatrix"),uWorldMatrix:this.gl.getUniformLocation(this.discProgram,"uWorldMatrix"),uViewMatrix:this.gl.getUniformLocation(this.discProgram,"uViewMatrix"),uProjectionMatrix:this.gl.getUniformLocation(this.discProgram,"uProjectionMatrix"),uCameraPosition:this.gl.getUniformLocation(this.discProgram,"uCameraPosition"),uRotationAxisVelocity:this.gl.getUniformLocation(this.discProgram,"uRotationAxisVelocity"),uTex:this.gl.getUniformLocation(this.discProgram,"uTex"),uItemCount:this.gl.getUniformLocation(this.discProgram,"uItemCount"),uAtlasSize:this.gl.getUniformLocation(this.discProgram,"uAtlasSize"),uFrames:this.gl.getUniformLocation(this.discProgram,"uFrames"),uScaleFactor:this.gl.getUniformLocation(this.discProgram,"uScaleFactor")},this.discGeo=new m(56,1),this.discBuffers=this.discGeo.data,this.discVAO=x(this.gl,[[k(this.gl,this.discBuffers.vertices,this.gl.STATIC_DRAW),this.discLocations.aModelPosition,3],[k(this.gl,this.discBuffers.uvs,this.gl.STATIC_DRAW),this.discLocations.aModelUvs,2]],this.discBuffers.indices),this.icoGeo=new d,this.icoGeo.subdivide(1).spherize(this.SPHERE_RADIUS),this.instancePositions=this.icoGeo.vertices.map(C=>C.position),this.DISC_INSTANCE_COUNT=this.icoGeo.vertices.length,this.initDiscInstances(this.DISC_INSTANCE_COUNT),this.initTexture(),this.control=new w(this.canvas,C=>this.onControlUpdate(C)),this.updateCameraMatrix(),this.updateProjectionMatrix(),this.resize(),this.onInit?.(this)}initTexture(){if(!this.gl||(this.tex=E(this.gl,this.gl.LINEAR,this.gl.LINEAR,this.gl.CLAMP_TO_EDGE,this.gl.CLAMP_TO_EDGE),!this.tex))return;const C=Math.max(1,this.items.length);this.atlasSize=Math.ceil(Math.sqrt(C));const T=document.createElement("canvas"),R=T.getContext("2d");if(!R)return;const B=512;T.width=this.atlasSize*B,T.height=this.atlasSize*B,Promise.all(this.items.map(I=>new Promise(N=>{const V=new Image;V.crossOrigin="anonymous",V.onload=()=>N(V),V.onerror=()=>N(V),V.src=I.image}))).then(I=>{I.forEach((N,V)=>{const A=V%this.atlasSize*B,Q=Math.floor(V/this.atlasSize)*B;try{R.drawImage(N,A,Q,B,B)}catch{}}),this.gl&&this.tex&&(this.gl.bindTexture(this.gl.TEXTURE_2D,this.tex),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,T),this.gl.generateMipmap(this.gl.TEXTURE_2D))})}initDiscInstances(C){if(!this.gl)return;this.discInstances={matricesArray:new Float32Array(C*16),matrices:[],buffer:this.gl.createBuffer()};for(let B=0;B<C;++B){const I=new Float32Array(this.discInstances.matricesArray.buffer,B*16*4,16);I.set(F.mat4.create()),this.discInstances.matrices.push(I)}this.gl.bindVertexArray(this.discVAO),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.discInstances.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.discInstances.matricesArray.byteLength,this.gl.DYNAMIC_DRAW);const T=4,R=64;for(let B=0;B<T;++B){const I=this.discLocations.aInstanceMatrix+B;this.gl.enableVertexAttribArray(I),this.gl.vertexAttribPointer(I,4,this.gl.FLOAT,!1,R,B*4*4),this.gl.vertexAttribDivisor(I,1)}this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindVertexArray(null)}run(C=0){this.deltaTime=Math.min(32,C-this.time),this.time=C,this.deltaFrames=this.deltaTime/this.TARGET_FRAME_DURATION,this.frames+=this.deltaFrames,this.animate(),this.render(),a=requestAnimationFrame(T=>this.run(T))}resize(){if(this.viewportSize=F.vec2.set(this.viewportSize||F.vec2.create(),this.canvas.clientWidth,this.canvas.clientHeight),!this.gl)return;p(this.canvas)&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight),this.updateProjectionMatrix()}animate(){if(!this.gl)return;this.control.update(this.deltaTime,this.TARGET_FRAME_DURATION);const C=this.instancePositions.map(B=>F.vec3.transformQuat(F.vec3.create(),B,this.control.orientation)),T=.25,R=.6;C.forEach((B,I)=>{const V=(Math.abs(B[2])/this.SPHERE_RADIUS*R+(1-R))*T,A=F.mat4.create();F.mat4.multiply(A,A,F.mat4.fromTranslation(F.mat4.create(),F.vec3.negate(F.vec3.create(),B))),F.mat4.multiply(A,A,F.mat4.targetTo(F.mat4.create(),[0,0,0],B,[0,1,0])),F.mat4.multiply(A,A,F.mat4.fromScaling(F.mat4.create(),[V,V,V])),F.mat4.multiply(A,A,F.mat4.fromTranslation(F.mat4.create(),[0,0,-this.SPHERE_RADIUS])),F.mat4.copy(this.discInstances.matrices[I],A)}),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.discInstances.buffer),this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.discInstances.matricesArray),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.smoothRotationVelocity=this.control.rotationVelocity}render(){if(!this.gl)return;this.gl.useProgram(this.discProgram),this.gl.enable(this.gl.CULL_FACE),this.gl.enable(this.gl.DEPTH_TEST),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.clearColor(0,0,0,0),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT),this.gl.uniformMatrix4fv(this.discLocations.uWorldMatrix,!1,this.worldMatrix),this.gl.uniformMatrix4fv(this.discLocations.uViewMatrix,!1,this.camera.matrices.view),this.gl.uniformMatrix4fv(this.discLocations.uProjectionMatrix,!1,this.camera.matrices.projection),this.gl.uniform3f(this.discLocations.uCameraPosition,this.camera.position[0],this.camera.position[1],this.camera.position[2]),this.gl.uniform4f(this.discLocations.uRotationAxisVelocity,this.control.rotationAxis[0],this.control.rotationAxis[1],this.control.rotationAxis[2],this.smoothRotationVelocity*1.1);const C=this.discLocations.uItemCount;C!==null&&this.gl.uniform1i(C,this.items.length);const T=this.discLocations.uAtlasSize;T!==null&&this.gl.uniform1i(T,this.atlasSize);const R=this.discLocations.uFrames;R!==null&&this.gl.uniform1f(R,this.frames);const B=this.discLocations.uScaleFactor;B!==null&&this.gl.uniform1f(B,this.scaleFactor);const I=this.discLocations.uTex;I!==null&&this.gl.uniform1i(I,0),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.tex),this.gl.bindVertexArray(this.discVAO),this.gl.drawElementsInstanced(this.gl.TRIANGLES,this.discBuffers.indices.length,this.gl.UNSIGNED_SHORT,0,this.DISC_INSTANCE_COUNT)}updateCameraMatrix(){F.mat4.targetTo(this.camera.matrix,this.camera.position,[0,0,0],this.camera.up),F.mat4.invert(this.camera.matrices.view,this.camera.matrix)}updateProjectionMatrix(){if(!this.gl)return;this.camera.aspect=this.gl.canvas.width/this.gl.canvas.height;const C=this.SPHERE_RADIUS*.35,T=this.camera.position[2];this.camera.aspect>1?this.camera.fov=2*Math.atan(C/T):this.camera.fov=2*Math.atan(C/this.camera.aspect/T),F.mat4.perspective(this.camera.matrices.projection,this.camera.fov,this.camera.aspect,this.camera.near,this.camera.far),F.mat4.invert(this.camera.matrices.inversProjection,this.camera.matrices.projection)}onControlUpdate(C){const T=C/this.TARGET_FRAME_DURATION+1e-4;let R=5/T,B=3;const I=this.control.isPointerDown||Math.abs(this.smoothRotationVelocity)>.01;if(I!==this.movementActive&&(this.movementActive=I,this.onMovementChange(I)),this.control.isPointerDown)B+=this.control.rotationVelocity*80+2.5,R=7/T;else{const N=this.findNearestVertexIndex(),V=N%Math.max(1,this.items.length);this.onActiveItemChange(V);const A=F.vec3.normalize(F.vec3.create(),this.getVertexWorldPosition(N));this.control.snapTargetDirection=A}this.camera.position[2]+=(B-this.camera.position[2])/R,this.updateCameraMatrix()}findNearestVertexIndex(){const C=this.control.snapDirection,T=F.quat.conjugate(F.quat.create(),this.control.orientation),R=F.vec3.transformQuat(F.vec3.create(),C,T);let B=-1,I=0;for(let N=0;N<this.instancePositions.length;++N){const V=F.vec3.dot(R,this.instancePositions[N]);V>B&&(B=V,I=N)}return I}getVertexWorldPosition(C){const T=this.instancePositions[C];return F.vec3.transformQuat(F.vec3.create(),T,this.control.orientation)}destroy(){a&&(cancelAnimationFrame(a),a=null)}gl=null}const O=S=>{const C=l.value;if(!C.length)return;const T=S%C.length;n.value=C[T]},H=()=>{n.value?.link&&(n.value.link.startsWith("http")?window.open(n.value.link,"_blank"):console.log("Internal route:",n.value.link))};return e.onMounted(()=>{if(s.value)try{c=new D(s.value,l.value,O,C=>{r.value=C},C=>C.run());const S=()=>{c?.resize()};window.addEventListener("resize",S),S(),e.onBeforeUnmount(()=>{window.removeEventListener("resize",S),c?.destroy()})}catch(S){console.error("Failed to initialize InfiniteMenu:",S)}}),e.watch(()=>i.items,()=>{c&&s.value&&(c.destroy(),c=new D(s.value,l.value,O,S=>{r.value=S},S=>S.run()))},{deep:!0}),(S,C)=>(e.openBlock(),e.createElementBlock("div",to,[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,class:"w-full h-full cursor-grab active:cursor-grabbing outline-none overflow-hidden"},null,512),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("h2",{class:e.normalizeClass(["select-none absolute font-black text-6xl top-1/2 text-white transition-all duration-500 ease-in-out hidden xl:block",r.value?"pointer-events-none opacity-0 transition-all duration-100 ease-in-out":"opacity-100 pointer-events-auto"]),style:{left:"1.6em",transform:"translate(20%, -50%)"}},e.toDisplayString(n.value.title),3),e.createElementVNode("p",{class:e.normalizeClass(["select-none absolute top-1/2 text-2xl text-white/80 transition-all ease-in-out hidden xl:block",r.value?"pointer-events-none opacity-0 duration-100":"opacity-100 pointer-events-auto duration-500"]),style:e.normalizeStyle({right:"1%",maxWidth:"10ch",transform:r.value?"translate(-60%, -50%)":"translate(-90%, -50%)"})},e.toDisplayString(n.value.description),7),e.createElementVNode("div",{onClick:H,class:e.normalizeClass(["absolute left-1/2 z-10 grid place-items-center bg-purple-600 rounded-full cursor-pointer border-4 border-black transition-all ease-in-out",r.value?"pointer-events-none opacity-0 duration-100":"opacity-100 pointer-events-auto duration-500"]),style:e.normalizeStyle({width:"60px",height:"60px",bottom:r.value?"-80px":"61px",transform:r.value?"translateX(-50%) scale(0)":"translateX(-50%) scale(1)"})},[...C[0]||(C[0]=[e.createElementVNode("p",{class:"select-none relative text-white text-2xl",style:{top:"2px"}},"↗",-1)])],6)],64)):e.createCommentVNode("",!0)]))}}),no=e.defineComponent({__name:"index",props:{items:{default:()=>[{image:"https://images.unsplash.com/photo-1517180102446-f3ece451e9d8?w=800&h=800&fit=crop",title:"Sarah Chen",description:"UI/UX Designer",link:"https://dribbble.com/"},{image:"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=800&h=800&fit=crop",title:"Mike Johnson",description:"Frontend Developer",link:"https://github.com/"},{image:"https://images.unsplash.com/photo-1494790108755-2616b612b793?w=800&h=800&fit=crop",title:"Emma Wilson",description:"Product Designer",link:"https://behance.net/"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass,i.value])},[e.createVNode(oo,{items:o.items},null,8,["items"])],2))}}),ao=()=>{const o=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(Q){setTimeout(Q,10)};let t,i,s,n,r,l,a,c,u,h,f,d,m,v,g,x,p,k,E,w,D,O,H,S,C,T,R,B,I,N=0,V=0;class A{constructor(b){let L={};b&&(b.nodeName?(L=JSON.parse(JSON.stringify(b.dataset)),b.nodeName==="IMG"?L.image=b:L.wrapperElement=b):L=b),this.state="stopped",this.touches=[],this.on("imageLoaded",this._onImageLoaded),this._initImage(L)}on(b,L){this.events=this.events||{},this.events[b]=this.events[b]||[],this.events[b].push(L)}emit(b,L){const Y=this.events[b];if(Y&&Y.length)for(let le=0;le<Y.length;le++)Y[le].call(this,L)}get renderer(){return this._renderer}set renderer(b){this._renderer=b,this._draw=this["_"+b+"Renderer"];try{this["_"+b+"InitContext"]()}catch(L){console.log(L),b!=="default"&&(this.renderer="default")}}set color(b){this.colorArr=this._parseColor(b),this.colorArr&&(isNaN(this.colorArr[3])&&(this.colorArr[3]=255),0<this.colorArr[3]&&this.colorArr[3]<=1&&(this.colorArr[3]*=255))}start(b){const L=b||{};this.initPosition=L.initPosition||this.initPosition,this.initDirection=L.initDirection||this.initDirection,this.canvas&&(this.canvas.width=this.width,this.canvas.height=this.height,this.canvas.style.display=""),this._initOrigins(),this._initParticles(),this._webglSetAttributes(),this.state!=="running"&&(this.state="running",this.disableInteraction||("ontouchstart"in window||window.navigator.msPointerEnabled?(document.body.addEventListener("touchstart",this._touchHandler),document.body.addEventListener("touchmove",this._touchHandler),document.body.addEventListener("touchend",this._clearTouches),document.body.addEventListener("touchcancel",this._clearTouches)):(this.canvas.addEventListener("mousemove",this._mouseHandler),this.canvas.addEventListener("mouseout",this._clearTouches),this.canvas.addEventListener("click",this._clickHandler))),this._animate())}stop(b){const L=b||{};this.fadePosition=L.fadePosition||this.fadePosition,this.fadeDirection=L.fadeDirection||this.fadeDirection,this._fade(),document.body.removeEventListener("touchstart",this._touchHandler),document.body.removeEventListener("touchmove",this._touchHandler),document.body.removeEventListener("touchend",this._clearTouches),document.body.removeEventListener("touchcancel",this._clearTouches),this.canvas&&(this.canvas.removeEventListener("mousemove",this._mouseHandler),this.canvas.removeEventListener("mouseout",this._clearTouches),this.canvas.removeEventListener("click",this._clickHandler))}_animate(){this.state!=="stopped"?(this._calculate(),this._draw(),o(()=>this._animate())):this.emit("stopped")}get _mouseHandler(){return b=>{this.touches=[{x:b.offsetX,y:b.offsetY,z:49+(this.layerCount-1)*this.layerDistance,force:1}]}}get _clickHandler(){return b=>{const L=this.clickStrength;this.origins.map(Y=>Y.z-=L),setTimeout(()=>{this.origins.map(Y=>Y.z+=L)},100)}}get _touchHandler(){return b=>{for(this.touches=[],h=this.canvas.getBoundingClientRect(),u=0;u<b.changedTouches.length;u++)c=b.changedTouches[u],c.target===this.canvas&&(this.touches.push({x:c.pageX-h.left,y:c.pageY-h.top,z:49+(this.layerCount-1)*this.layerDistance,force:c.force||1}),b.preventDefault())}}get _clearTouches(){return b=>{this.touches=[]}}_onImageLoaded(b){this.imageWidth=this.image.naturalWidth||this.image.width,this.imageHeight=this.image.naturalHeight||this.image.height,this.imageRatio=this.imageWidth/this.imageHeight,this.width=this.width||this.imageWidth,this.height=this.height||this.imageHeight,this.renderSize=(this.width+this.height)/4,this.srcImage&&(this.srcImage.style.display="none"),this._initSettings(b),this._initContext(b),this._initResponsive(b),this.start()}_initImage(b){this.srcImage=b.image,!this.srcImage&&b.imageId&&(this.srcImage=document.getElementById(b.imageId)),this.imageUrl=b.imageUrl||this.srcImage.src,this.image=document.createElement("img"),this.wrapperElement=b.wrapperElement||this.srcImage.parentElement,this.image.onload=()=>this.emit("imageLoaded",b),this.image.crossOrigin="Anonymous",b.addTimestamp&&(/\?/.test(this.imageUrl)?this.imageUrl+="&d="+Date.now():this.imageUrl+="?d="+Date.now()),this.image.src=this.imageUrl}_initContext(b){this.canvas=b.canvas,!this.canvas&&!this.context&&this.wrapperElement&&(this.canvas=document.createElement("canvas"),this.wrapperElement.appendChild(this.canvas)),this.convas&&(this.convas.style.display="none"),this.context=b.context,this.renderer=b.renderer||"default"}_defaultInitContext(b){this.context=this.context||this.canvas.getContext("2d")}_webglInitContext(){this.context=this.context||this.canvas.getContext("webgl2")||this.canvas.getContext("experimental-webgl"),this.fragmentShaderScript=`#version 300 es
627
688
 
628
689
  precision highp float;
629
690
 
@@ -656,12 +717,12 @@ void main() {
656
717
  gl_PointSize = pointSize + max((log(vertexPosition.z) - 3.91) * depth, -pointSize + 1.0);
657
718
  vColor = vertexColor;
658
719
  }
659
- `,this.context.viewport(0,0,this.width,this.height);const w=this.context.createShader(this.context.VERTEX_SHADER);this.context.shaderSource(w,this.vertexShaderScript),this.context.compileShader(w),this.context.getShaderParameter(w,this.context.COMPILE_STATUS)||console.log(this.context.getShaderInfoLog(w));const R=this.context.createShader(this.context.FRAGMENT_SHADER);this.context.shaderSource(R,this.fragmentShaderScript),this.context.compileShader(R),this.context.getShaderParameter(R,this.context.COMPILE_STATUS)||console.log(this.context.getShaderInfoLog(R)),this.program=this.context.createProgram(),this.context.attachShader(this.program,w),this.context.attachShader(this.program,R),this.context.linkProgram(this.program),this.context.useProgram(this.program),this.vertexPosition=this.context.getAttribLocation(this.program,"vertexPosition"),this.context.enableVertexAttribArray(this.vertexPosition),this.vertexColor=this.context.getAttribLocation(this.program,"vertexColor"),this.context.enableVertexAttribArray(this.vertexColor),this.context.clearColor(0,0,0,0),this.context.enable(this.context.BLEND),this.context.disable(this.context.DEPTH_TEST),this.context.blendFunc(this.context.SRC_ALPHA,this.context.ONE),this.vertexBuffer=this.context.createBuffer(),this.context.bindBuffer(this.context.ARRAY_BUFFER,this.vertexBuffer),this.context.clear(this.context.COLOR_BUFFER_BIT|this.context.DEPTH_BUFFER_BIT),this.vertexOffset=this.context.getUniformLocation(this.program,"vertexOffset"),this.context.uniform3f(this.vertexOffset,0,0,1e3),this.context.vertexAttribPointer(this.vertexPosition,3,this.context.FLOAT,!1,28,0),this.context.vertexAttribPointer(this.vertexColor,4,this.context.FLOAT,!1,28,12),this.uModelViewMatrix=this.context.getUniformLocation(this.program,"modelViewMatrix"),this.uPerspectiveMatrix=this.context.getUniformLocation(this.program,"perspectiveMatrix"),this.uRotationMatrix=this.context.getUniformLocation(this.program,"rotationMatrix"),this.uPointSize=this.context.getUniformLocation(this.program,"pointSize"),this.uDepth=this.context.getUniformLocation(this.program,"depth"),this._webglSetAttributes()}_webglSetAttributes(){if(this.renderer==="webgl"){var w=1,R=this.canvas.width/this.canvas.height,G=10,le=100,Z=G*Math.tan(w*Math.PI/360),Y=-Z,se=Z*R,ie=-se,ce=(se+ie)/(se-ie),fe=(Z+Y)/(Z-Y),we=(le+G)/(le-G),be=2*le*G/(le-G),Ee=2*G/(se-ie),De=2*G/(Z-Y),Fe=[Ee,0,ce,0,0,De,fe,0,0,0,we,be,0,0,-1,0],z=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];this.context.viewport(0,0,this.width,this.height),this.context.uniformMatrix4fv(this.uModelViewMatrix,!1,new Float32Array(Fe)),this.context.uniformMatrix4fv(this.uPerspectiveMatrix,!1,new Float32Array(z)),this.context.uniform1f(this.uPointSize,this.particleSize),this.context.uniform1f(this.uDepth,this.depth),this._updateRotation()}}_updateRotation(){const w=Math.cos(N),R=Math.sin(N),G=Math.cos(V),le=Math.sin(V);var Z=[G,0,le,0,0,w,-R,0,-G,R,w,0,0,0,0,1];this.context.uniformMatrix4fv(this.uRotationMatrix,!1,new Float32Array(Z))}_webglRenderer(){L=new Float32Array(this.vertices),this.context.bufferData(this.context.ARRAY_BUFFER,L,this.context.STATIC_DRAW),this.context.clear(this.context.COLOR_BUFFER_BIT|this.context.DEPTH_BUFFER_BIT),this.context.drawArrays(this.context.POINTS,0,this.particles.length),this.context.flush()}_initSettings(w){this.width=w.width*1||this.width,this.height=w.height*1||this.height,this.maxWidth=w.maxWidth,this.maxHeight=w.maxHeight,this.minWidth=w.minWidth,this.minHeight=w.minHeight,this.maxWidth&&(/%$/.test(this.maxWidth)?this.maxWidth=this.width*this.maxWidth.replace("%","")/100:this.maxWidth*=1),this.maxHeight&&(/%$/.test(this.maxHeight)?this.maxHeight=this.height*this.maxHeight.replace("%","")/100:this.maxHeight*=1),this.minWidth&&(/%$/.test(this.minWidth)?this.minWidth=this.width*this.minWidth.replace("%","")/100:this.minWidth*=1),this.minHeight&&(/%$/.test(this.minHeight)?this.minHeight=this.height*this.minHeight.replace("%","")/100:this.minHeight*=1),this.alphaFade=.4,this.gravity=w.gravity*1||.08,this.particleGap=w.particleGap*1||3,this.particleSize=w.particleSize*1||1,this.layerCount=w.layerCount*1||1,this.depth=w.depth*1||1,this.rotationDuration=w.rotationDuration*1||0,this.growDuration=w.growDuration*1||200,this.waitDuration=w.waitDuration*1||200,this.shrinkDuration=w.shrinkDuration*1||200,this.shrinkDistance=w.shrinkDistance*1||50,this.threeDimensional=w.threeDimensional!==void 0&&w.threeDimensional!=="false"?!!w.threeDimensional:!1,this.lifeCycle=w.lifeCycle!==void 0&&w.lifeCycle!=="false"?!!w.lifeCycle:!1,this.layerDistance=w.layerDistance||this.particleGap,this.initPosition=w.initPosition||"random",this.initDirection=w.initDirection||"random",this.fadePosition=w.fadePosition||"none",this.fadeDirection=w.fadeDirection||"none",this.noise=isNaN(w.noise*1)?10:w.noise*1,this.disableInteraction=w.disableInteraction,this.mouseForce=w.mouseForce*1||30,this.clickStrength=w.clickStrength*1||0,this.color=w.color,this.colorArr=w.colorArr||this.colorArr}_initResponsive(w){this.responsiveWidth=this.wrapperElement&&w.responsiveWidth,this.responsiveWidth&&(this.on("stopped",()=>{this.width=this.wrapperElement.clientWidth,this.start()}),this.wrapperElement.addEventListener("resize",()=>{this.width!==this.wrapperElement.clientWidth&&this.stop()}),this.width=this.wrapperElement.clientWidth)}_calculate(){for(this.vertices=this.renderer==="webgl"?[]:!1,i=0,s=0;s<this.particles.length;s++){for(l=this.origins[s],a=this.particles[s],x=l.x-a.x+(Math.random()-.5)*this.noise,v=l.y-a.y+(Math.random()-.5)*this.noise,y=l.z-a.z+(Math.random()-.5)*this.noise/1e3,p=Math.sqrt(x*x+v*v+y*y),E=p*.01,a.vx+=E*(x/p)*this.speed,a.vy+=E*(v/p)*this.speed,a.vz+=E*(y/p)*this.speed,u=0;u<this.touches.length;u++)c=this.touches[u],x=a.x-c.x,v=a.y-c.y,y=a.z-c.z,p=Math.sqrt(x*x+v*v+y*y),E=this.mouseForce*c.force/p,a.vx+=E*(x/p)*this.speed,a.vy+=E*(v/p)*this.speed,a.vz+=E*(y/p)*this.speed;a.vx*=this.gravityFactor,a.vy*=this.gravityFactor,a.vz*=this.gravityFactor,a.x+=a.vx,a.y+=a.vy,a.z+=a.vz,0>a.x||a.x>=this.width||0>a.y||a.y>=this.height?(a.isHidden=!0,this.state==="stopping"&&(a.isDead=!0)):(this.state==="stopping"&&!a.isDead&&i++,a.isHidden=!1),this.vertices&&(m=a.x-this.width/2,h=a.y-this.height/2,f=a.z,M=l.vertexColors[3],this.lifeCycle&&(l.tick+=1,l.tick>=0?l.tick<this.growDuration?M=M*(l.tick/this.growDuration):(I=l.tick-this.growDuration-this.waitDuration,I>=0&&I<=this.shrinkDuration&&(c=this.touches[u],p=Math.sqrt(m*m+h*h+(f-50)*(f-50)),E=I/this.shrinkDuration,m+=this.shrinkDistance*(m/p)*E,h+=this.shrinkDistance*(h/p)*E,f+=this.shrinkDistance*((f-50)/p)*E,M*=1-E,I===this.shrinkDuration&&(l.tick=0))):M=0),this.vertices.push(m,h,f,l.vertexColors[0],l.vertexColors[1],l.vertexColors[2],M))}this.state==="stopping"&&i===0&&(this.state="stopped")}_defaultRenderer(){for(this.depth=Math.max(this.layerDistance*this.layerCount/2,this.mouseForce),this.minZ=-this.depth,this.maxZ=this.depth,t=this.context.createImageData(this.width,this.height),s=0;s<this.origins.length;s++)l=this.origins[s],a=this.particles[s],!a.isDead&&!a.isHidden&&(m=~~a.x,h=~~a.y,M=l.color[3],this.alphaFade>0&&this.layerCount>1&&(f=Math.max(Math.min(a.z,this.maxZ),this.minZ)-this.minZ,M=M*(1-this.alphaFade)+M*this.alphaFade*(f/(this.maxZ-this.minZ)),M=Math.max(Math.min(~~M,255),0)),n=(m+h*this.width)*4,t.data[n+0]=l.color[0],t.data[n+1]=l.color[1],t.data[n+2]=l.color[2],t.data[n+3]=M);this.context.putImageData(t,0,0)}_initParticles(){for(this.particles=void 0,this.particles=[],s=0;s<this.origins.length;s++)l=this.origins[s],a={},this._initParticlePosition(l,a),this._initParticleDirection(a),this.particles.push(a)}_initParticlePosition(w,R){switch(R.z=0,this.initPosition){case"random":{R.x=Math.random()*this.width,R.y=Math.random()*this.height;break}case"top":{R.x=Math.random()*this.width*3-this.width,R.y=-Math.random()*this.height;break}case"left":{R.x=-Math.random()*this.width,R.y=Math.random()*this.height*3-this.height;break}case"bottom":{R.x=Math.random()*this.width*3-this.width,R.y=this.height+Math.random()*this.height;break}case"right":{R.x=this.width+Math.random()*this.width,R.y=Math.random()*this.height*3-this.height;break}case"misplaced":{R.x=w.x+Math.random()*this.width*.3-this.width*.1,R.y=w.y+Math.random()*this.height*.3-this.height*.1;break}default:R.x=w.x,R.y=w.y}}_fade(){if(this.fadePosition==="explode"||this.fadePosition==="top"||this.fadePosition==="left"||this.fadePosition==="bottom"||this.fadePosition==="right"?this.state="stopping":this.state="stopped",this.origins)for(s=0;s<this.origins.length;s++)this._fadeOriginPosition(this.origins[s]),this._fadeOriginDirection(this.particles[s])}_fadeOriginPosition(w){switch(this.fadePosition){case"random":{w.x=Math.random()*this.width*2-this.width,w.y=Math.random()*this.height*2-this.height,w.x>0&&(w.x+=this.width),w.y>0&&(w.y+=this.height);break}case"top":{w.x=Math.random()*this.width*3-this.width,w.y=-Math.random()*this.height;break}case"left":{w.x=-Math.random()*this.width,w.y=Math.random()*this.height*3-this.height;break}case"bottom":{w.x=Math.random()*this.width*3-this.width,w.y=this.height+Math.random()*this.height;break}case"right":{w.x=this.width+Math.random()*this.width,w.y=Math.random()*this.height*3-this.height;break}}}_initParticleDirection(w){switch(w.vz=0,this.initDirection){case"random":{k=Math.random()*Math.PI*2,b=Math.random(),w.vx=this.width*b*Math.sin(k)*.1,w.vy=this.height*b*Math.cos(k)*.1;break}case"top":{k=Math.random()*Math.PI-Math.PI/2,b=Math.random(),w.vx=this.width*b*Math.sin(k)*.1,w.vy=this.height*b*Math.cos(k)*.1;break}case"left":{k=Math.random()*Math.PI+Math.PI,b=Math.random(),w.vx=this.width*b*Math.sin(k)*.1,w.vy=this.height*b*Math.cos(k)*.1;break}case"bottom":{k=Math.random()*Math.PI+Math.PI/2,b=Math.random(),w.vx=this.width*b*Math.sin(k)*.1,w.vy=this.height*b*Math.cos(k)*.1;break}case"right":{k=Math.random()*Math.PI,b=Math.random(),w.vx=this.width*b*Math.sin(k)*.1,w.vy=this.height*b*Math.cos(k)*.1;break}default:w.vx=0,w.vy=0}}_fadeOriginDirection(w){switch(this.fadeDirection){case"random":{k=Math.random()*Math.PI*2,b=Math.random(),w.vx+=this.width*b*Math.sin(k)*.1,w.vy+=this.height*b*Math.cos(k)*.1;break}case"top":{k=Math.random()*Math.PI-Math.PI/2,b=Math.random(),w.vx+=this.width*b*Math.sin(k)*.1,w.vy+=this.height*b*Math.cos(k)*.1;break}case"left":{k=Math.random()*Math.PI+Math.PI,b=Math.random(),w.vx+=this.width*b*Math.sin(k)*.1,w.vy+=this.height*b*Math.cos(k)*.1;break}case"bottom":{k=Math.random()*Math.PI+Math.PI/2,b=Math.random(),w.vx+=this.width*b*Math.sin(k)*.1,w.vy+=this.height*b*Math.cos(k)*.1;break}case"right":{k=Math.random()*Math.PI,b=Math.random(),w.vx+=this.width*b*Math.sin(k)*.1,w.vy+=this.height*b*Math.cos(k)*.1;break}default:w.vx=0,w.vy=0}}_initOrigins(){U=document.createElement("canvas"),this.responsiveWidth&&(this.width=this.wrapperElement.clientWidth),this.ratio=Math.min(this.width,this.maxWidth||Number.POSITIVE_INFINITY)/Math.min(this.height,this.maxHeight||Number.POSITIVE_INFINITY),this.ratio<this.imageRatio?(this.renderWidth=~~Math.min(this.width||Number.POSITIVE_INFINITY,this.minWidth||this.imageWidth||Number.POSITIVE_INFINITY,this.maxWidth||Number.POSITIVE_INFINITY),this.renderHeight=~~(this.renderWidth/this.imageRatio)):(this.renderHeight=~~Math.min(this.height||Number.POSITIVE_INFINITY,this.minHeight||this.imageHeight||Number.POSITIVE_INFINITY,this.maxHeight||Number.POSITIVE_INFINITY),this.renderWidth=~~(this.renderHeight*this.imageRatio)),this.offsetX=~~((this.width-this.renderWidth)/2),this.offsetY=~~((this.height-this.renderHeight)/2),U.width=this.renderWidth,U.height=this.renderHeight,H=U.getContext("2d"),H.drawImage(this.image,0,0,this.renderWidth,this.renderHeight),S=H.getImageData(0,0,this.renderWidth,this.renderHeight).data,this.origins=void 0,this.origins=[];const w=this.growDuration+this.waitDuration+this.shrinkDuration;for(m=0;m<this.renderWidth;m+=this.particleGap)for(h=0;h<this.renderHeight;h+=this.particleGap)if(s=(m+h*this.renderWidth)*4,M=S[s+3],M>0){const R=Math.random();if(I=-Math.floor(R*w),this.colorArr)for(r=0;r<this.layerCount;r++)this.origins.push({x:this.offsetX+m,y:this.offsetY+h,z:r*this.layerDistance+50,color:this.colorArr,tick:I,seed:R,vertexColors:this.colorArr.map(G=>G/255)});else for(C=S[s],_=S[s+1],D=S[s+2],r=0;r<this.layerCount;r++)this.origins.push({x:this.offsetX+m,y:this.offsetY+h,z:r*this.layerDistance+50,color:[C,_,D,M],tick:I,seed:R,vertexColors:[C/255,_/255,D/255,M/255]})}this.speed=Math.log(this.origins.length)/10,this.gravityFactor=1-this.gravity*this.speed}_parseColor(w){let R;if(typeof w!="string")return;const G=w.replace(" ","");if(R=/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/.exec(G))R=[parseInt(R[1],16),parseInt(R[2],16),parseInt(R[3],16)];else if(R=/^#([\da-fA-F])([\da-fA-F])([\da-fA-F])/.exec(G))R=[parseInt(R[1],16)*17,parseInt(R[2],16)*17,parseInt(R[3],16)*17];else if(R=/^rgba\(([\d]+),([\d]+),([\d]+),([\d]+|[\d]*.[\d]+)\)/.exec(G))R=[+R[1],+R[2],+R[3],+R[4]];else if(R=/^rgb\(([\d]+),([\d]+),([\d]+)\)/.exec(G))R=[+R[1],+R[2],+R[3]];else return;return R}}return{InspiraImageParticle:A}},no=["src","data-particle-gap","data-width","data-height","data-gravity","data-particle-size","data-mouse-force","data-renderer","data-color","data-color-arr","data-init-position","data-init-direction","data-fade-position","data-fade-direction","data-noise","data-responsive-width"],ao=e.defineComponent({__name:"index",props:{imageSrc:{},class:{},classList:{},canvasWidth:{},canvasHeight:{},gravity:{},particleSize:{},particleGap:{},mouseForce:{},renderer:{},color:{},colorArr:{},initPosition:{},initDirection:{},fadePosition:{},fadeDirection:{},noise:{},responsiveWidth:{type:Boolean}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList&&t.classList.Location||{};return[n.position,n.width,n.height,n.left,n.top].filter(Boolean)}),s=e.ref();return e.onMounted(()=>{const{InspiraImageParticle:n}=oo();new n(s.value)}),(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass,i.value])},[e.createElementVNode("img",{ref_key:"imageParticleRef",ref:s,src:o.imageSrc,class:e.normalizeClass(e.unref(J)(o.classList?.imageClass||"hidden w-32 h-32",n.$props.class)),"data-particle-gap":o.particleGap,"data-width":o.canvasWidth,"data-height":o.canvasHeight,"data-gravity":o.gravity,"data-particle-size":o.particleSize,"data-mouse-force":o.mouseForce,"data-renderer":o.renderer,"data-color":o.color,"data-color-arr":o.colorArr,"data-init-position":o.initPosition,"data-init-direction":o.initDirection,"data-fade-position":o.fadePosition,"data-fade-direction":o.fadeDirection,"data-noise":o.noise,"data-responsive-width":o.responsiveWidth},null,10,no)],2))}}),ro=["width","height"],lo=["x","y","width","height","onMouseenter"],co=e.defineComponent({__name:"InteractiveGridPattern",props:{className:{},squaresClassName:{},width:{default:40},height:{default:40},squares:{default:()=>[24,24]}},setup(o){const t=o,i=e.computed(()=>t.squares[0]),s=e.computed(()=>t.squares[1]),n=e.computed(()=>i.value*s.value),r=e.ref(null),l=e.computed(()=>t.width*i.value),a=e.computed(()=>t.height*s.value);function c(x){return x%i.value*t.width}function u(x){return Math.floor(x/i.value)*t.height}const d=e.computed(()=>J("absolute inset-0 h-full w-full border border-gray-400/30",t.className));function m(x){return J("stroke-gray-400/30 transition-all duration-100 ease-in-out [&:not(:hover)]:duration-1000",r.value===x?"fill-gray-300/30":"fill-transparent",t.squaresClassName)}function h(x){r.value=x}function f(){r.value=null}return(x,v)=>(e.openBlock(),e.createElementBlock("svg",{width:l.value,height:a.value,class:e.normalizeClass(d.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(y,p)=>(e.openBlock(),e.createElementBlock("rect",{key:p,x:c(p),y:u(p),width:o.width,height:o.height,class:e.normalizeClass(m(p)),onMouseenter:E=>h(p),onMouseleave:f},null,42,lo))),128))],10,ro))}}),uo=e.defineComponent({__name:"index",props:{classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const r=t.classList?.Location,l=["relative grid place-content-center overflow-hidden"];return t.classList?.overallClass?l.push(t.classList.overallClass):r?.height?l.push(r.height):l.push("h-[500px]"),r?.width&&l.push(r.width),r?.position&&l.push(r.position),r?.left&&l.push(r.left),r?.top&&l.push(r.top),l.join(" ")}),s=e.computed(()=>t.classList?.textClass||"z-10 whitespace-pre-wrap text-center text-5xl font-medium tracking-tighter text-black dark:text-white"),n=e.computed(()=>t.classList?.patternClass||"[mask-image:radial-gradient(350px_circle_at_center,white,transparent)] inset-0 h-[200%] skew-y-12");return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("p",{class:e.normalizeClass(s.value)}," Interactive Grid Pattern ",2),e.createVNode(co,{class:e.normalizeClass(n.value)},null,8,["class"])],2))}}),ho=`
720
+ `,this.context.viewport(0,0,this.width,this.height);const b=this.context.createShader(this.context.VERTEX_SHADER);this.context.shaderSource(b,this.vertexShaderScript),this.context.compileShader(b),this.context.getShaderParameter(b,this.context.COMPILE_STATUS)||console.log(this.context.getShaderInfoLog(b));const L=this.context.createShader(this.context.FRAGMENT_SHADER);this.context.shaderSource(L,this.fragmentShaderScript),this.context.compileShader(L),this.context.getShaderParameter(L,this.context.COMPILE_STATUS)||console.log(this.context.getShaderInfoLog(L)),this.program=this.context.createProgram(),this.context.attachShader(this.program,b),this.context.attachShader(this.program,L),this.context.linkProgram(this.program),this.context.useProgram(this.program),this.vertexPosition=this.context.getAttribLocation(this.program,"vertexPosition"),this.context.enableVertexAttribArray(this.vertexPosition),this.vertexColor=this.context.getAttribLocation(this.program,"vertexColor"),this.context.enableVertexAttribArray(this.vertexColor),this.context.clearColor(0,0,0,0),this.context.enable(this.context.BLEND),this.context.disable(this.context.DEPTH_TEST),this.context.blendFunc(this.context.SRC_ALPHA,this.context.ONE),this.vertexBuffer=this.context.createBuffer(),this.context.bindBuffer(this.context.ARRAY_BUFFER,this.vertexBuffer),this.context.clear(this.context.COLOR_BUFFER_BIT|this.context.DEPTH_BUFFER_BIT),this.vertexOffset=this.context.getUniformLocation(this.program,"vertexOffset"),this.context.uniform3f(this.vertexOffset,0,0,1e3),this.context.vertexAttribPointer(this.vertexPosition,3,this.context.FLOAT,!1,28,0),this.context.vertexAttribPointer(this.vertexColor,4,this.context.FLOAT,!1,28,12),this.uModelViewMatrix=this.context.getUniformLocation(this.program,"modelViewMatrix"),this.uPerspectiveMatrix=this.context.getUniformLocation(this.program,"perspectiveMatrix"),this.uRotationMatrix=this.context.getUniformLocation(this.program,"rotationMatrix"),this.uPointSize=this.context.getUniformLocation(this.program,"pointSize"),this.uDepth=this.context.getUniformLocation(this.program,"depth"),this._webglSetAttributes()}_webglSetAttributes(){if(this.renderer==="webgl"){var b=1,L=this.canvas.width/this.canvas.height,Y=10,le=100,Z=Y*Math.tan(b*Math.PI/360),W=-Z,se=Z*L,ie=-se,ce=(se+ie)/(se-ie),fe=(Z+W)/(Z-W),we=(le+Y)/(le-Y),be=2*le*Y/(le-Y),Ee=2*Y/(se-ie),De=2*Y/(Z-W),Fe=[Ee,0,ce,0,0,De,fe,0,0,0,we,be,0,0,-1,0],z=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];this.context.viewport(0,0,this.width,this.height),this.context.uniformMatrix4fv(this.uModelViewMatrix,!1,new Float32Array(Fe)),this.context.uniformMatrix4fv(this.uPerspectiveMatrix,!1,new Float32Array(z)),this.context.uniform1f(this.uPointSize,this.particleSize),this.context.uniform1f(this.uDepth,this.depth),this._updateRotation()}}_updateRotation(){const b=Math.cos(N),L=Math.sin(N),Y=Math.cos(V),le=Math.sin(V);var Z=[Y,0,le,0,0,b,-L,0,-Y,L,b,0,0,0,0,1];this.context.uniformMatrix4fv(this.uRotationMatrix,!1,new Float32Array(Z))}_webglRenderer(){D=new Float32Array(this.vertices),this.context.bufferData(this.context.ARRAY_BUFFER,D,this.context.STATIC_DRAW),this.context.clear(this.context.COLOR_BUFFER_BIT|this.context.DEPTH_BUFFER_BIT),this.context.drawArrays(this.context.POINTS,0,this.particles.length),this.context.flush()}_initSettings(b){this.width=b.width*1||this.width,this.height=b.height*1||this.height,this.maxWidth=b.maxWidth,this.maxHeight=b.maxHeight,this.minWidth=b.minWidth,this.minHeight=b.minHeight,this.maxWidth&&(/%$/.test(this.maxWidth)?this.maxWidth=this.width*this.maxWidth.replace("%","")/100:this.maxWidth*=1),this.maxHeight&&(/%$/.test(this.maxHeight)?this.maxHeight=this.height*this.maxHeight.replace("%","")/100:this.maxHeight*=1),this.minWidth&&(/%$/.test(this.minWidth)?this.minWidth=this.width*this.minWidth.replace("%","")/100:this.minWidth*=1),this.minHeight&&(/%$/.test(this.minHeight)?this.minHeight=this.height*this.minHeight.replace("%","")/100:this.minHeight*=1),this.alphaFade=.4,this.gravity=b.gravity*1||.08,this.particleGap=b.particleGap*1||3,this.particleSize=b.particleSize*1||1,this.layerCount=b.layerCount*1||1,this.depth=b.depth*1||1,this.rotationDuration=b.rotationDuration*1||0,this.growDuration=b.growDuration*1||200,this.waitDuration=b.waitDuration*1||200,this.shrinkDuration=b.shrinkDuration*1||200,this.shrinkDistance=b.shrinkDistance*1||50,this.threeDimensional=b.threeDimensional!==void 0&&b.threeDimensional!=="false"?!!b.threeDimensional:!1,this.lifeCycle=b.lifeCycle!==void 0&&b.lifeCycle!=="false"?!!b.lifeCycle:!1,this.layerDistance=b.layerDistance||this.particleGap,this.initPosition=b.initPosition||"random",this.initDirection=b.initDirection||"random",this.fadePosition=b.fadePosition||"none",this.fadeDirection=b.fadeDirection||"none",this.noise=isNaN(b.noise*1)?10:b.noise*1,this.disableInteraction=b.disableInteraction,this.mouseForce=b.mouseForce*1||30,this.clickStrength=b.clickStrength*1||0,this.color=b.color,this.colorArr=b.colorArr||this.colorArr}_initResponsive(b){this.responsiveWidth=this.wrapperElement&&b.responsiveWidth,this.responsiveWidth&&(this.on("stopped",()=>{this.width=this.wrapperElement.clientWidth,this.start()}),this.wrapperElement.addEventListener("resize",()=>{this.width!==this.wrapperElement.clientWidth&&this.stop()}),this.width=this.wrapperElement.clientWidth)}_calculate(){for(this.vertices=this.renderer==="webgl"?[]:!1,i=0,s=0;s<this.particles.length;s++){for(l=this.origins[s],a=this.particles[s],v=l.x-a.x+(Math.random()-.5)*this.noise,g=l.y-a.y+(Math.random()-.5)*this.noise,x=l.z-a.z+(Math.random()-.5)*this.noise/1e3,p=Math.sqrt(v*v+g*g+x*x),k=p*.01,a.vx+=k*(v/p)*this.speed,a.vy+=k*(g/p)*this.speed,a.vz+=k*(x/p)*this.speed,u=0;u<this.touches.length;u++)c=this.touches[u],v=a.x-c.x,g=a.y-c.y,x=a.z-c.z,p=Math.sqrt(v*v+g*g+x*x),k=this.mouseForce*c.force/p,a.vx+=k*(v/p)*this.speed,a.vy+=k*(g/p)*this.speed,a.vz+=k*(x/p)*this.speed;a.vx*=this.gravityFactor,a.vy*=this.gravityFactor,a.vz*=this.gravityFactor,a.x+=a.vx,a.y+=a.vy,a.z+=a.vz,0>a.x||a.x>=this.width||0>a.y||a.y>=this.height?(a.isHidden=!0,this.state==="stopping"&&(a.isDead=!0)):(this.state==="stopping"&&!a.isDead&&i++,a.isHidden=!1),this.vertices&&(f=a.x-this.width/2,d=a.y-this.height/2,m=a.z,B=l.vertexColors[3],this.lifeCycle&&(l.tick+=1,l.tick>=0?l.tick<this.growDuration?B=B*(l.tick/this.growDuration):(I=l.tick-this.growDuration-this.waitDuration,I>=0&&I<=this.shrinkDuration&&(c=this.touches[u],p=Math.sqrt(f*f+d*d+(m-50)*(m-50)),k=I/this.shrinkDuration,f+=this.shrinkDistance*(f/p)*k,d+=this.shrinkDistance*(d/p)*k,m+=this.shrinkDistance*((m-50)/p)*k,B*=1-k,I===this.shrinkDuration&&(l.tick=0))):B=0),this.vertices.push(f,d,m,l.vertexColors[0],l.vertexColors[1],l.vertexColors[2],B))}this.state==="stopping"&&i===0&&(this.state="stopped")}_defaultRenderer(){for(this.depth=Math.max(this.layerDistance*this.layerCount/2,this.mouseForce),this.minZ=-this.depth,this.maxZ=this.depth,t=this.context.createImageData(this.width,this.height),s=0;s<this.origins.length;s++)l=this.origins[s],a=this.particles[s],!a.isDead&&!a.isHidden&&(f=~~a.x,d=~~a.y,B=l.color[3],this.alphaFade>0&&this.layerCount>1&&(m=Math.max(Math.min(a.z,this.maxZ),this.minZ)-this.minZ,B=B*(1-this.alphaFade)+B*this.alphaFade*(m/(this.maxZ-this.minZ)),B=Math.max(Math.min(~~B,255),0)),n=(f+d*this.width)*4,t.data[n+0]=l.color[0],t.data[n+1]=l.color[1],t.data[n+2]=l.color[2],t.data[n+3]=B);this.context.putImageData(t,0,0)}_initParticles(){for(this.particles=void 0,this.particles=[],s=0;s<this.origins.length;s++)l=this.origins[s],a={},this._initParticlePosition(l,a),this._initParticleDirection(a),this.particles.push(a)}_initParticlePosition(b,L){switch(L.z=0,this.initPosition){case"random":{L.x=Math.random()*this.width,L.y=Math.random()*this.height;break}case"top":{L.x=Math.random()*this.width*3-this.width,L.y=-Math.random()*this.height;break}case"left":{L.x=-Math.random()*this.width,L.y=Math.random()*this.height*3-this.height;break}case"bottom":{L.x=Math.random()*this.width*3-this.width,L.y=this.height+Math.random()*this.height;break}case"right":{L.x=this.width+Math.random()*this.width,L.y=Math.random()*this.height*3-this.height;break}case"misplaced":{L.x=b.x+Math.random()*this.width*.3-this.width*.1,L.y=b.y+Math.random()*this.height*.3-this.height*.1;break}default:L.x=b.x,L.y=b.y}}_fade(){if(this.fadePosition==="explode"||this.fadePosition==="top"||this.fadePosition==="left"||this.fadePosition==="bottom"||this.fadePosition==="right"?this.state="stopping":this.state="stopped",this.origins)for(s=0;s<this.origins.length;s++)this._fadeOriginPosition(this.origins[s]),this._fadeOriginDirection(this.particles[s])}_fadeOriginPosition(b){switch(this.fadePosition){case"random":{b.x=Math.random()*this.width*2-this.width,b.y=Math.random()*this.height*2-this.height,b.x>0&&(b.x+=this.width),b.y>0&&(b.y+=this.height);break}case"top":{b.x=Math.random()*this.width*3-this.width,b.y=-Math.random()*this.height;break}case"left":{b.x=-Math.random()*this.width,b.y=Math.random()*this.height*3-this.height;break}case"bottom":{b.x=Math.random()*this.width*3-this.width,b.y=this.height+Math.random()*this.height;break}case"right":{b.x=this.width+Math.random()*this.width,b.y=Math.random()*this.height*3-this.height;break}}}_initParticleDirection(b){switch(b.vz=0,this.initDirection){case"random":{E=Math.random()*Math.PI*2,w=Math.random(),b.vx=this.width*w*Math.sin(E)*.1,b.vy=this.height*w*Math.cos(E)*.1;break}case"top":{E=Math.random()*Math.PI-Math.PI/2,w=Math.random(),b.vx=this.width*w*Math.sin(E)*.1,b.vy=this.height*w*Math.cos(E)*.1;break}case"left":{E=Math.random()*Math.PI+Math.PI,w=Math.random(),b.vx=this.width*w*Math.sin(E)*.1,b.vy=this.height*w*Math.cos(E)*.1;break}case"bottom":{E=Math.random()*Math.PI+Math.PI/2,w=Math.random(),b.vx=this.width*w*Math.sin(E)*.1,b.vy=this.height*w*Math.cos(E)*.1;break}case"right":{E=Math.random()*Math.PI,w=Math.random(),b.vx=this.width*w*Math.sin(E)*.1,b.vy=this.height*w*Math.cos(E)*.1;break}default:b.vx=0,b.vy=0}}_fadeOriginDirection(b){switch(this.fadeDirection){case"random":{E=Math.random()*Math.PI*2,w=Math.random(),b.vx+=this.width*w*Math.sin(E)*.1,b.vy+=this.height*w*Math.cos(E)*.1;break}case"top":{E=Math.random()*Math.PI-Math.PI/2,w=Math.random(),b.vx+=this.width*w*Math.sin(E)*.1,b.vy+=this.height*w*Math.cos(E)*.1;break}case"left":{E=Math.random()*Math.PI+Math.PI,w=Math.random(),b.vx+=this.width*w*Math.sin(E)*.1,b.vy+=this.height*w*Math.cos(E)*.1;break}case"bottom":{E=Math.random()*Math.PI+Math.PI/2,w=Math.random(),b.vx+=this.width*w*Math.sin(E)*.1,b.vy+=this.height*w*Math.cos(E)*.1;break}case"right":{E=Math.random()*Math.PI,w=Math.random(),b.vx+=this.width*w*Math.sin(E)*.1,b.vy+=this.height*w*Math.cos(E)*.1;break}default:b.vx=0,b.vy=0}}_initOrigins(){O=document.createElement("canvas"),this.responsiveWidth&&(this.width=this.wrapperElement.clientWidth),this.ratio=Math.min(this.width,this.maxWidth||Number.POSITIVE_INFINITY)/Math.min(this.height,this.maxHeight||Number.POSITIVE_INFINITY),this.ratio<this.imageRatio?(this.renderWidth=~~Math.min(this.width||Number.POSITIVE_INFINITY,this.minWidth||this.imageWidth||Number.POSITIVE_INFINITY,this.maxWidth||Number.POSITIVE_INFINITY),this.renderHeight=~~(this.renderWidth/this.imageRatio)):(this.renderHeight=~~Math.min(this.height||Number.POSITIVE_INFINITY,this.minHeight||this.imageHeight||Number.POSITIVE_INFINITY,this.maxHeight||Number.POSITIVE_INFINITY),this.renderWidth=~~(this.renderHeight*this.imageRatio)),this.offsetX=~~((this.width-this.renderWidth)/2),this.offsetY=~~((this.height-this.renderHeight)/2),O.width=this.renderWidth,O.height=this.renderHeight,H=O.getContext("2d"),H.drawImage(this.image,0,0,this.renderWidth,this.renderHeight),S=H.getImageData(0,0,this.renderWidth,this.renderHeight).data,this.origins=void 0,this.origins=[];const b=this.growDuration+this.waitDuration+this.shrinkDuration;for(f=0;f<this.renderWidth;f+=this.particleGap)for(d=0;d<this.renderHeight;d+=this.particleGap)if(s=(f+d*this.renderWidth)*4,B=S[s+3],B>0){const L=Math.random();if(I=-Math.floor(L*b),this.colorArr)for(r=0;r<this.layerCount;r++)this.origins.push({x:this.offsetX+f,y:this.offsetY+d,z:r*this.layerDistance+50,color:this.colorArr,tick:I,seed:L,vertexColors:this.colorArr.map(Y=>Y/255)});else for(C=S[s],T=S[s+1],R=S[s+2],r=0;r<this.layerCount;r++)this.origins.push({x:this.offsetX+f,y:this.offsetY+d,z:r*this.layerDistance+50,color:[C,T,R,B],tick:I,seed:L,vertexColors:[C/255,T/255,R/255,B/255]})}this.speed=Math.log(this.origins.length)/10,this.gravityFactor=1-this.gravity*this.speed}_parseColor(b){let L;if(typeof b!="string")return;const Y=b.replace(" ","");if(L=/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/.exec(Y))L=[parseInt(L[1],16),parseInt(L[2],16),parseInt(L[3],16)];else if(L=/^#([\da-fA-F])([\da-fA-F])([\da-fA-F])/.exec(Y))L=[parseInt(L[1],16)*17,parseInt(L[2],16)*17,parseInt(L[3],16)*17];else if(L=/^rgba\(([\d]+),([\d]+),([\d]+),([\d]+|[\d]*.[\d]+)\)/.exec(Y))L=[+L[1],+L[2],+L[3],+L[4]];else if(L=/^rgb\(([\d]+),([\d]+),([\d]+)\)/.exec(Y))L=[+L[1],+L[2],+L[3]];else return;return L}}return{InspiraImageParticle:A}},ro=["src","data-particle-gap","data-width","data-height","data-gravity","data-particle-size","data-mouse-force","data-renderer","data-color","data-color-arr","data-init-position","data-init-direction","data-fade-position","data-fade-direction","data-noise","data-responsive-width"],lo=e.defineComponent({__name:"index",props:{imageSrc:{},class:{},classList:{},canvasWidth:{},canvasHeight:{},gravity:{},particleSize:{},particleGap:{},mouseForce:{},renderer:{},color:{},colorArr:{},initPosition:{},initDirection:{},fadePosition:{},fadeDirection:{},noise:{},responsiveWidth:{type:Boolean}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList&&t.classList.Location||{};return[n.position,n.width,n.height,n.left,n.top].filter(Boolean)}),s=e.ref();return e.onMounted(()=>{const{InspiraImageParticle:n}=ao();new n(s.value)}),(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass,i.value])},[e.createElementVNode("img",{ref_key:"imageParticleRef",ref:s,src:o.imageSrc,class:e.normalizeClass(e.unref(J)(o.classList?.imageClass||"hidden w-32 h-32",n.$props.class)),"data-particle-gap":o.particleGap,"data-width":o.canvasWidth,"data-height":o.canvasHeight,"data-gravity":o.gravity,"data-particle-size":o.particleSize,"data-mouse-force":o.mouseForce,"data-renderer":o.renderer,"data-color":o.color,"data-color-arr":o.colorArr,"data-init-position":o.initPosition,"data-init-direction":o.initDirection,"data-fade-position":o.fadePosition,"data-fade-direction":o.fadeDirection,"data-noise":o.noise,"data-responsive-width":o.responsiveWidth},null,10,ro)],2))}}),co=["width","height"],uo=["x","y","width","height","onMouseenter"],ho=e.defineComponent({__name:"InteractiveGridPattern",props:{className:{},squaresClassName:{},width:{default:40},height:{default:40},squares:{default:()=>[24,24]}},setup(o){const t=o,i=e.computed(()=>t.squares[0]),s=e.computed(()=>t.squares[1]),n=e.computed(()=>i.value*s.value),r=e.ref(null),l=e.computed(()=>t.width*i.value),a=e.computed(()=>t.height*s.value);function c(v){return v%i.value*t.width}function u(v){return Math.floor(v/i.value)*t.height}const h=e.computed(()=>J("absolute inset-0 h-full w-full border border-gray-400/30",t.className));function f(v){return J("stroke-gray-400/30 transition-all duration-100 ease-in-out [&:not(:hover)]:duration-1000",r.value===v?"fill-gray-300/30":"fill-transparent",t.squaresClassName)}function d(v){r.value=v}function m(){r.value=null}return(v,g)=>(e.openBlock(),e.createElementBlock("svg",{width:l.value,height:a.value,class:e.normalizeClass(h.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(x,p)=>(e.openBlock(),e.createElementBlock("rect",{key:p,x:c(p),y:u(p),width:o.width,height:o.height,class:e.normalizeClass(f(p)),onMouseenter:k=>d(p),onMouseleave:m},null,42,uo))),128))],10,co))}}),mo=e.defineComponent({__name:"index",props:{classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const r=t.classList?.Location,l=["relative grid place-content-center overflow-hidden"];return t.classList?.overallClass?l.push(t.classList.overallClass):r?.height?l.push(r.height):l.push("h-[500px]"),r?.width&&l.push(r.width),r?.position&&l.push(r.position),r?.left&&l.push(r.left),r?.top&&l.push(r.top),l.join(" ")}),s=e.computed(()=>t.classList?.textClass||"z-10 whitespace-pre-wrap text-center text-5xl font-medium tracking-tighter text-black dark:text-white"),n=e.computed(()=>t.classList?.patternClass||"[mask-image:radial-gradient(350px_circle_at_center,white,transparent)] inset-0 h-[200%] skew-y-12");return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createElementVNode("p",{class:e.normalizeClass(s.value)}," Interactive Grid Pattern ",2),e.createVNode(ho,{class:e.normalizeClass(n.value)},null,8,["class"])],2))}}),fo=`
660
721
  attribute vec2 aPosition;
661
722
  void main() {
662
723
  gl_Position = vec4(aPosition, 0.0, 1.0);
663
724
  }
664
- `,mo=`
725
+ `,po=`
665
726
  precision mediump float;
666
727
  uniform vec2 iResolution;
667
728
  uniform float iTime;
@@ -739,12 +800,12 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
739
800
  void main() {
740
801
  mainImage(gl_FragColor, gl_FragCoord.xy);
741
802
  }
742
- `,fo=e.defineComponent({__name:"Lightning",props:{hue:{default:230},xOffset:{default:0},speed:{default:1},intensity:{default:1},size:{default:1}},setup(o){const t=o,i=e.useTemplateRef("canvasRef");let s=0,n=null,r=null,l=0;const a=(d,m)=>{if(!n)return null;const h=n.createShader(m);return h?(n.shaderSource(h,d),n.compileShader(h),n.getShaderParameter(h,n.COMPILE_STATUS)?h:(console.error("Shader compile error:",n.getShaderInfoLog(h)),n.deleteShader(h),null)):null},c=()=>{const d=i.value;if(!d)return;const m=()=>{const p=d.getBoundingClientRect(),E=window.devicePixelRatio||1;let k=p.width,b=p.height,L=d.parentElement;for(;L&&(!k||!b);){if(L.offsetWidth&&L.offsetHeight){k=L.offsetWidth,b=L.offsetHeight;break}L=L.parentElement}(!k||!b)&&(k=window.innerWidth,b=window.innerHeight),k=Math.max(k,300),b=Math.max(b,300),d.width=k*E,d.height=b*E,d.style.width="100%",d.style.height="100%",d.style.display="block",d.style.position="absolute",d.style.top="0",d.style.left="0"};if(m(),window.addEventListener("resize",m),n=d.getContext("webgl"),!n){console.error("WebGL not supported");return}const h=a(ho,n.VERTEX_SHADER),f=a(mo,n.FRAGMENT_SHADER);if(!h||!f||(r=n.createProgram(),!r))return;if(n.attachShader(r,h),n.attachShader(r,f),n.linkProgram(r),!n.getProgramParameter(r,n.LINK_STATUS)){console.error("Program linking error:",n.getProgramInfoLog(r));return}n.useProgram(r);const x=new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),v=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,v),n.bufferData(n.ARRAY_BUFFER,x,n.STATIC_DRAW);const y=n.getAttribLocation(r,"aPosition");return n.enableVertexAttribArray(y),n.vertexAttribPointer(y,2,n.FLOAT,!1,0,0),l=performance.now(),u(),()=>{window.removeEventListener("resize",m)}},u=()=>{if(!n||!r||!i.value)return;const d=i.value,m=d.getBoundingClientRect();(d.width!==m.width||d.height!==m.height)&&(d.width=m.width,d.height=m.height,d.style.width=m.width+"px",d.style.height=m.height+"px"),n.viewport(0,0,d.width,d.height);const h=n.getUniformLocation(r,"iResolution"),f=n.getUniformLocation(r,"iTime"),x=n.getUniformLocation(r,"uHue"),v=n.getUniformLocation(r,"uXOffset"),y=n.getUniformLocation(r,"uSpeed"),p=n.getUniformLocation(r,"uIntensity"),E=n.getUniformLocation(r,"uSize");n.uniform2f(h,d.width,d.height);const k=performance.now();n.uniform1f(f,(k-l)/1e3),n.uniform1f(x,t.hue),n.uniform1f(v,t.xOffset),n.uniform1f(y,t.speed),n.uniform1f(p,t.intensity),n.uniform1f(E,t.size),n.drawArrays(n.TRIANGLES,0,6),s=requestAnimationFrame(u)};return e.onMounted(()=>{c()}),e.onUnmounted(()=>{s&&cancelAnimationFrame(s)}),e.watch(()=>[t.hue,t.xOffset,t.speed,t.intensity,t.size],()=>{}),(d,m)=>(e.openBlock(),e.createElementBlock("canvas",{ref_key:"canvasRef",ref:i,class:"w-full h-full block mix-blend-screen relative"},null,512))}}),po=me(fo,[["__scopeId","data-v-89624a01"]]),vo=`#version 300 es
803
+ `,go=e.defineComponent({__name:"Lightning",props:{hue:{default:230},xOffset:{default:0},speed:{default:1},intensity:{default:1},size:{default:1}},setup(o){const t=o,i=e.useTemplateRef("canvasRef");let s=0,n=null,r=null,l=0;const a=(h,f)=>{if(!n)return null;const d=n.createShader(f);return d?(n.shaderSource(d,h),n.compileShader(d),n.getShaderParameter(d,n.COMPILE_STATUS)?d:(console.error("Shader compile error:",n.getShaderInfoLog(d)),n.deleteShader(d),null)):null},c=()=>{const h=i.value;if(!h)return;const f=()=>{const p=h.getBoundingClientRect(),k=window.devicePixelRatio||1;let E=p.width,w=p.height,D=h.parentElement;for(;D&&(!E||!w);){if(D.offsetWidth&&D.offsetHeight){E=D.offsetWidth,w=D.offsetHeight;break}D=D.parentElement}(!E||!w)&&(E=window.innerWidth,w=window.innerHeight),E=Math.max(E,300),w=Math.max(w,300),h.width=E*k,h.height=w*k,h.style.width="100%",h.style.height="100%",h.style.display="block",h.style.position="absolute",h.style.top="0",h.style.left="0"};if(f(),window.addEventListener("resize",f),n=h.getContext("webgl"),!n){console.error("WebGL not supported");return}const d=a(fo,n.VERTEX_SHADER),m=a(po,n.FRAGMENT_SHADER);if(!d||!m||(r=n.createProgram(),!r))return;if(n.attachShader(r,d),n.attachShader(r,m),n.linkProgram(r),!n.getProgramParameter(r,n.LINK_STATUS)){console.error("Program linking error:",n.getProgramInfoLog(r));return}n.useProgram(r);const v=new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),g=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,g),n.bufferData(n.ARRAY_BUFFER,v,n.STATIC_DRAW);const x=n.getAttribLocation(r,"aPosition");return n.enableVertexAttribArray(x),n.vertexAttribPointer(x,2,n.FLOAT,!1,0,0),l=performance.now(),u(),()=>{window.removeEventListener("resize",f)}},u=()=>{if(!n||!r||!i.value)return;const h=i.value,f=h.getBoundingClientRect();(h.width!==f.width||h.height!==f.height)&&(h.width=f.width,h.height=f.height,h.style.width=f.width+"px",h.style.height=f.height+"px"),n.viewport(0,0,h.width,h.height);const d=n.getUniformLocation(r,"iResolution"),m=n.getUniformLocation(r,"iTime"),v=n.getUniformLocation(r,"uHue"),g=n.getUniformLocation(r,"uXOffset"),x=n.getUniformLocation(r,"uSpeed"),p=n.getUniformLocation(r,"uIntensity"),k=n.getUniformLocation(r,"uSize");n.uniform2f(d,h.width,h.height);const E=performance.now();n.uniform1f(m,(E-l)/1e3),n.uniform1f(v,t.hue),n.uniform1f(g,t.xOffset),n.uniform1f(x,t.speed),n.uniform1f(p,t.intensity),n.uniform1f(k,t.size),n.drawArrays(n.TRIANGLES,0,6),s=requestAnimationFrame(u)};return e.onMounted(()=>{c()}),e.onUnmounted(()=>{s&&cancelAnimationFrame(s)}),e.watch(()=>[t.hue,t.xOffset,t.speed,t.intensity,t.size],()=>{}),(h,f)=>(e.openBlock(),e.createElementBlock("canvas",{ref_key:"canvasRef",ref:i,class:"w-full h-full block mix-blend-screen relative"},null,512))}}),vo=me(go,[["__scopeId","data-v-89624a01"]]),xo=`#version 300 es
743
804
  in vec2 position;
744
805
  void main() {
745
806
  gl_Position = vec4(position, 0.0, 1.0);
746
807
  }
747
- `,go=`#version 300 es
808
+ `,yo=`#version 300 es
748
809
  precision highp float;
749
810
 
750
811
  uniform float uTime;
@@ -832,4 +893,4 @@ void main() {
832
893
 
833
894
  fragColor = vec4(auroraColor * finalAlpha, finalAlpha);
834
895
  }
835
- `,xo=e.defineComponent({__name:"Aurora",props:{colorStops:{default:()=>["#7cff67","#171D22","#7cff67"]},amplitude:{default:1},blend:{default:.5},time:{},speed:{default:1},intensity:{default:1},className:{default:""},style:{default:()=>({})}},setup(o){const t=o,i=e.useTemplateRef("containerRef");let s=null,n=0;const r=()=>{const a=i.value;if(!a)return;s=new X.Renderer({alpha:!0,premultipliedAlpha:!0,antialias:!0});const c=s.gl;c.clearColor(0,0,0,0),c.enable(c.BLEND),c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.canvas.style.backgroundColor="transparent";let u;const d=()=>{if(!a)return;const v=a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,y=a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,p=Math.max(v,300),E=Math.max(y,300);s.setSize(p,E),u&&(u.uniforms.uResolution.value=[p,E])};window.addEventListener("resize",d);const m=new X.Triangle(c);m.attributes.uv&&delete m.attributes.uv;const h=t.colorStops.map(v=>{const y=new X.Color(v);return[y.r,y.g,y.b]});u=new X.Program(c,{vertex:vo,fragment:go,uniforms:{uTime:{value:0},uAmplitude:{value:t.amplitude},uColorStops:{value:h},uResolution:{value:[Math.max(a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,300),Math.max(a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,300)]},uBlend:{value:t.blend},uIntensity:{value:t.intensity}}});const f=new X.Mesh(c,{geometry:m,program:u});a.appendChild(c.canvas),c.canvas.style.width="100%",c.canvas.style.height="100%",c.canvas.style.display="block",c.canvas.style.position="absolute",c.canvas.style.top="0",c.canvas.style.left="0";const x=v=>{n=requestAnimationFrame(x);const y=t.time??v*.01,p=t.speed??1;if(u){u.uniforms.uTime.value=y*p*.1,u.uniforms.uAmplitude.value=t.amplitude??1,u.uniforms.uBlend.value=t.blend??.5,u.uniforms.uIntensity.value=t.intensity??1;const E=t.colorStops??["#27FF64","#7cff67","#27FF64"];u.uniforms.uColorStops.value=E.map(k=>{const b=new X.Color(k);return[b.r,b.g,b.b]}),s.render({scene:f})}};return n=requestAnimationFrame(x),d(),()=>{cancelAnimationFrame(n),window.removeEventListener("resize",d),a&&c.canvas.parentNode===a&&a.removeChild(c.canvas),c.getExtension("WEBGL_lose_context")?.loseContext()}},l=()=>{if(n&&cancelAnimationFrame(n),s){const a=s.gl,c=i.value;c&&a.canvas.parentNode===c&&c.removeChild(a.canvas),a.getExtension("WEBGL_lose_context")?.loseContext()}s=null};return e.onMounted(()=>{r()}),e.onUnmounted(()=>{l()}),e.watch(()=>[t.amplitude,t.intensity],()=>{l(),r()}),(a,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:e.normalizeClass([o.className,"relative"]),style:e.normalizeStyle(o.style)},null,6))}}),yo=me(xo,[["__scopeId","data-v-3f249df1"]]),wo=e.defineComponent({__name:"index",props:{hue:{default:230},xOffset:{default:0},speed:{default:1},intensity:{default:1},size:{default:1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList?.Location,r=["lightning-container"];return n?.width&&r.push(n.width),n?.height&&r.push(n.height),n?.position&&r.push(n.position),n?.left&&r.push(n.left),n?.top&&r.push(n.top),r.join(" ")}),s=e.computed(()=>{const n=t.classList?.Location,r={};return n?.position&&n.position==="absolute"?r.position="absolute":n?.position||(r.position="relative"),r});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value),style:e.normalizeStyle(s.value)},[e.createVNode(po,{hue:o.hue,"x-offset":o.xOffset,speed:o.speed,intensity:o.intensity,size:o.size,class:e.normalizeClass(o.classList?.overallClass||"w-full h-full")},null,8,["hue","x-offset","speed","intensity","size","class"]),e.createVNode(yo,{"color-stops":["#7cff67","#171D22","#7cff67"],amplitude:1,blend:.5,speed:1,intensity:1,class:"w-full h-full"})],6))}}),bo=me(wo,[["__scopeId","data-v-c26499e2"]]),Co=["href"],Eo={class:"block rounded-xl border-2 border-transparent bg-white p-1 shadow-lg dark:bg-gray-900"},ko=["src","width","height"],So=e.defineComponent({__name:"LinkPreview",props:{isStatic:{type:Boolean,default:!1},imageSrc:{default:""},url:{default:""},class:{},linkClass:{},width:{default:200},height:{default:125}},setup(o){const t=o,i=e.ref(!1),s=e.ref(!0),n=e.ref(null),r=e.ref(!1),l=e.computed(()=>t.isStatic?t.imageSrc:`https://api.microlink.io/?${new URLSearchParams({url:t.url,screenshot:"true",meta:"false",embed:"screenshot.url",colorScheme:"light","viewport.isMobile":"true","viewport.deviceScaleFactor":"1","viewport.width":String(t.width*3),"viewport.height":String(t.height*3)}).toString()}`),a=e.reactive({x:0,y:0}),c=e.computed(()=>{if(!n.value)return{};const v=20,y=t.width,p=t.height,E=window.innerWidth;let k=a.x-y/2;k=Math.min(Math.max(0,k),E-y);const b=n.value.parentElement?.getBoundingClientRect(),L=b?b.top-p-v:0;return{position:"fixed",left:`${k}px`,top:`${L}px`,width:`${y}px`,height:`${p}px`}}),u=e.computed(()=>({width:`${t.width}px`,height:`${t.height}px`})),d=e.computed(()=>r.value?"animate-pop":"");function m(v){a.x=v.clientX,a.y=v.clientY}function h(){i.value=!0,setTimeout(()=>{r.value=!0},50)}function f(){i.value=!1,r.value=!1}function x(){s.value=!1}return(v,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("relative inline-block",t.class))},[e.createElementVNode("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",class:e.normalizeClass(e.unref(J)("text-black dark:text-white",t.linkClass)),onMousemove:m,onMouseenter:h,onMouseleave:f},[e.renderSlot(v.$slots,"default",{},void 0,!0)],42,Co),i.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"preview",ref:n,class:"pointer-events-none absolute z-50",style:e.normalizeStyle(c.value)},[e.createElementVNode("div",{class:e.normalizeClass(["overflow-hidden rounded-xl shadow-xl",[d.value,{"transform-gpu":!t.isStatic}]])},[e.createElementVNode("div",Eo,[e.createElementVNode("img",{src:l.value,width:o.width,height:o.height,class:"size-full rounded-lg object-cover",style:e.normalizeStyle(u.value),alt:"preview",onLoad:x},null,44,ko)])],2)],4)):e.createCommentVNode("",!0)],2))}}),At=me(So,[["__scopeId","data-v-e01fc5b1"]]),_o={key:0},To={__name:"index",props:{firstParagraph:{type:Object,default:()=>({links:[{text:"Tailwind CSS",url:"https://tailwindcss.com",class:"font-bold",suffix:"and"},{text:"motion-v",url:"https://motion.unovue.com/",class:"font-bold",suffix:"are a great way to build modern websites."}]})},secondParagraph:{type:Object,default:()=>({prefix:"Visit",links:[{text:"Inspira UI",url:"https://inspira-ui.com",width:400,height:200,gradient:"bg-gradient-to-br from-purple-500 to-pink-500 bg-clip-text font-bold text-transparent"}],suffix:"for more cool components"})},classList:{type:Object,default:()=>({})}},setup(o){const t=o;console.log("LinkPreviewComp props:",t);const i=e.computed(()=>t.firstParagraph.links),s=e.computed(()=>t.secondParagraph.links),n=e.computed(()=>t.secondParagraph.prefix),r=e.computed(()=>t.secondParagraph.suffix),l=e.computed(()=>{const a=[];t.classList?.overallClass?a.push(t.classList.overallClass):a.push("flex h-[40rem] flex-col items-center justify-center px-4");const c=t.classList?.Location;return c?.position&&a.push(c.position),c?.width&&a.push(c.width),c?.height&&a.push(c.height),c?.left&&a.push(c.left),c?.top&&a.push(c.top),a.join(" ")});return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.createElementVNode("p",{class:e.normalizeClass(o.classList?.firstParagraphClass||"mx-auto mb-10 max-w-3xl text-xl text-neutral-500 md:text-3xl dark:text-neutral-400")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(u,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[e.createVNode(At,{url:u.url,class:e.normalizeClass(u.class),width:u.width,height:u.height},{default:e.withCtx(()=>[u.gradient?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(u.gradient)},e.toDisplayString(u.text),3)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(u.text),1)],64))]),_:2},1032,["url","class","width","height"]),u.suffix?(e.openBlock(),e.createElementBlock("span",_o,e.toDisplayString(u.suffix),1)):e.createCommentVNode("",!0)],64))),128))],2),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.secondParagraphClass||"mx-auto max-w-3xl text-xl text-neutral-500 md:text-3xl dark:text-neutral-400")},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(u,d)=>(e.openBlock(),e.createBlock(At,{key:d,url:u.url,class:e.normalizeClass(u.class),width:u.width,height:u.height},{default:e.withCtx(()=>[u.gradient?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(u.gradient)},e.toDisplayString(u.text),3)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(u.text),1)],64))]),_:2},1032,["url","class","width","height"]))),128)),e.createTextVNode(" "+e.toDisplayString(r.value),1)],2)],2))}},Bo=e.defineComponent({__name:"Rays",props:{class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("svg",{width:"380",height:"397",viewBox:"0 0 380 397",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(e.unref(J)("absolute left-0 top-0 pointer-events-none z-[1]",t.class))},[...s[0]||(s[0]=[e.createStaticVNode('<g filter="url(#filter0_f_120_7480)"><path d="M-37.4202 -76.0163L-18.6447 -90.7295L242.792 162.228L207.51 182.074L-37.4202 -76.0163Z" fill="url(#paint0_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" opacity="0.3" filter="url(#filter1_f_120_7480)"><path d="M-109.54 -36.9027L-84.2903 -58.0902L178.786 193.228L132.846 223.731L-109.54 -36.9027Z" fill="url(#paint1_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" opacity="0.86" filter="url(#filter2_f_120_7480)"><path d="M-100.647 -65.795L-69.7261 -92.654L194.786 157.229L139.51 197.068L-100.647 -65.795Z" fill="url(#paint2_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" opacity="0.31" filter="url(#filter3_f_120_7480)"><path d="M163.917 -89.0982C173.189 -72.1354 80.9618 2.11525 34.7334 30.1553C-11.495 58.1954 -106.505 97.514 -115.777 80.5512C-125.048 63.5885 -45.0708 -3.23233 1.15763 -31.2724C47.386 -59.3124 154.645 -106.061 163.917 -89.0982Z" fill="#8A50FF"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter4_f_120_7480)"><path d="M34.2031 13.2222L291.721 269.534" stroke="url(#paint3_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter5_f_120_7480)"><path d="M41 -40.9331L298.518 215.378" stroke="url(#paint4_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter6_f_120_7480)"><path d="M61.3691 3.8999L317.266 261.83" stroke="url(#paint5_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter7_f_120_7480)"><path d="M-1.46191 9.06348L129.458 145.868" stroke="url(#paint6_linear_120_7480)" stroke-width="2"></path></g>',8),e.createElementVNode("defs",null,[e.createElementVNode("filter",{id:"filter0_f_120_7480",x:"-49.4199",y:"-102.729",width:"304.212",height:"296.803",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"6",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter1_f_120_7480",x:"-115.54",y:"-64.0903",width:"300.326",height:"293.822",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"3",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter2_f_120_7480",x:"-111.647",y:"-103.654",width:"317.434",height:"311.722",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"5.5",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter3_f_120_7480",x:"-212.518",y:"-188.71",width:"473.085",height:"369.366",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"48",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter4_f_120_7480",x:"25.8447",y:"4.84521",width:"274.234",height:"273.065",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"4",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter5_f_120_7480",x:"32.6416",y:"-49.3101",width:"274.234",height:"273.065",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"4",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter6_f_120_7480",x:"54.0078",y:"-3.47461",width:"270.619",height:"272.68",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"3.5",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter7_f_120_7480",x:"-9.2002",y:"1.32812",width:"146.396",height:"152.275",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"3.5",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("linearGradient",{id:"paint0_linear_120_7480",x1:"-57.5042",y1:"-134.741",x2:"403.147",y2:"351.523",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{offset:"0.214779",stopColor:"#AF53FF"}),e.createElementVNode("stop",{offset:"0.781583",stopColor:"#B253FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint1_linear_120_7480",x1:"-122.154",y1:"-103.098",x2:"342.232",y2:"379.765",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{offset:"0.214779",stopColor:"#AF53FF"}),e.createElementVNode("stop",{offset:"0.781583",stopColor:"#9E53FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint2_linear_120_7480",x1:"-106.717",y1:"-138.534",x2:"359.545",y2:"342.58",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{offset:"0.214779",stopColor:"#9D53FF"}),e.createElementVNode("stop",{offset:"0.781583",stopColor:"#A953FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint3_linear_120_7480",x1:"72.701",y1:"54.347",x2:"217.209",y2:"187.221",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#AF81FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#C081FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint4_linear_120_7480",x1:"79.4978",y1:"0.191681",x2:"224.006",y2:"133.065",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#AF81FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#C081FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint5_linear_120_7480",x1:"79.6568",y1:"21.8377",x2:"234.515",y2:"174.189",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#B981FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#CF81FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint6_linear_120_7480",x1:"16.119",y1:"27.6966",x2:"165.979",y2:"184.983",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#A981FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#CB81FF",stopOpacity:"0"})])],-1)])],2))}}),Mo={},Do={width:"380",height:"315",viewBox:"0 0 380 315",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"pointer-events-none absolute left-1/2 top-0 w-full -translate-x-1/2"};function Ro(o,t){return e.openBlock(),e.createElementBlock("svg",Do,[...t[0]||(t[0]=[e.createStaticVNode('<g filter="url(#filter0_f_120_7473)"><circle cx="34" cy="52" r="114" fill="#6925E7"></circle></g><g filter="url(#filter1_f_120_7473)"><circle cx="332" cy="24" r="102" fill="#8A4BFF"></circle></g><g filter="url(#filter2_f_120_7473)"><circle cx="191" cy="53" r="102" fill="#802FE3"></circle></g><defs><filter id="filter0_f_120_7473" x="-192" y="-174" width="452" height="452" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="56" result="effect1_foregroundBlur_120_7473"></feGaussianBlur></filter><filter id="filter1_f_120_7473" x="70" y="-238" width="524" height="524" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="80" result="effect1_foregroundBlur_120_7473"></feGaussianBlur></filter><filter id="filter2_f_120_7473" x="-71" y="-209" width="524" height="524" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="80" result="effect1_foregroundBlur_120_7473"></feGaussianBlur></filter></defs>',4)])])}const Lo=me(Mo,[["render",Ro]]),Io={key:0},zo=e.defineComponent({__name:"Lens",props:{zoomFactor:{default:1.5},lensSize:{default:170},position:{default:()=>({x:200,y:150})},isStatic:{type:Boolean,default:!1},hovering:{type:Boolean,default:void 0}},emits:["hover-update"],setup(o,{emit:t}){const i=o,s=t,n=e.ref(null),r=e.ref(!1),l=e.ref({x:100,y:100}),a=e.computed(()=>i.hovering??r.value);function c(h){r.value=h,s("hover-update",h)}function u(h){const f=h.currentTarget.getBoundingClientRect();l.value={x:h.clientX-f.left,y:h.clientY-f.top}}const d=e.computed(()=>{const h=i.isStatic?i.position:l.value;return`circle ${i.lensSize/2}px at ${h.x}px ${h.y}px`}),m=e.computed(()=>{const h=i.isStatic?i.position:l.value;return`${h.x}px ${h.y}px`});return e.watchEffect(()=>{c(!1)}),(h,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:n,class:"relative z-20 overflow-hidden rounded-lg",onMouseenter:f[0]||(f[0]=x=>c(!0)),onMouseleave:f[1]||(f[1]=x=>c(!1)),onMousemove:u},[e.renderSlot(h.$slots,"default"),i.isStatic||a.value?(e.openBlock(),e.createElementBlock("div",Io,[e.createVNode(e.unref(xe.Motion),{initial:{opacity:0,scale:.58},animate:{opacity:1,scale:1},transition:{duration:.3,ease:"easeOut"},leave:{opacity:0,scale:.8},class:"absolute inset-0 overflow-hidden",style:e.normalizeStyle({maskImage:`radial-gradient(${d.value}, black 100%, transparent 100%)`,WebkitMaskImage:`radial-gradient(${d.value}, black 100%, transparent 100%)`,transformOrigin:m.value})},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"absolute inset-0",style:e.normalizeStyle({transform:`scale(${i.zoomFactor})`,transformOrigin:m.value})},[e.renderSlot(h.$slots,"default")],4)]),_:3},8,["style"])])):e.createCommentVNode("",!0)],544))}}),Ao=["src"],Po=e.defineComponent({__name:"index",props:{imageSrc:{default:""},title1:{default:""},title2:{default:""},classList:{default:()=>({})}},setup(o){const t=o,i=e.ref(!1);function s(r){i.value=r}const n=e.computed(()=>{const r=[];t.classList?.overallClass?r.push(t.classList.overallClass):r.push("relative mx-auto my-10 w-full max-w-md overflow-hidden rounded-3xl bg-gradient-to-r from-[#1D2235] to-[#121318] p-8");const l=t.classList?.Location;return l?.position&&r.push(l.position),l?.width&&r.push(l.width),l?.height&&r.push(l.height),l?.left&&r.push(l.left),l?.top&&r.push(l.top),r.join(" ")});return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value)},[e.createVNode(Bo),e.createVNode(Lo),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.innerContainerClass||"relative z-10")},[e.createVNode(zo,{hovering:i.value,onHoverUpdate:s},{default:e.withCtx(()=>[e.createElementVNode("img",{src:o.imageSrc,alt:"image",width:"500",height:"500",class:e.normalizeClass(o.classList?.imageClass||"rounded-2xl")},null,10,Ao)]),_:1},8,["hovering"]),e.createElementVNode("div",{style:e.normalizeStyle({filter:i.value?"blur(2px)":"blur(0px)"}),class:e.normalizeClass(o.classList?.textContainerClass||"relative z-20 py-4")},[e.createElementVNode("h2",{class:e.normalizeClass(o.classList?.title1Class||"text-left text-2xl font-bold text-white")},e.toDisplayString(o.title1),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.title2Class||"mt-4 text-left text-neutral-200")},e.toDisplayString(o.title2),3)],6)],2)],2))}}),No=e.defineComponent({__name:"Marquee",props:{class:{},reverse:{type:Boolean},pauseOnHover:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},repeat:{default:4}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("group flex overflow-hidden p-2 [--duration:40s] [--gap:1rem] [gap:var(--gap)]",o.vertical?"flex-col":"flex-row",t.$props.class))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.repeat,s=>(e.openBlock(),e.createElementBlock("div",{key:s,class:e.normalizeClass(e.unref(J)("flex shrink-0 justify-around [gap:var(--gap)]",o.vertical?"animate-marquee-vertical flex-col":"animate-marquee flex-row",o.pauseOnHover?"group-hover:[animation-play-state:paused]":"")),style:e.normalizeStyle({animationDirection:o.reverse?"reverse":"normal"})},[e.renderSlot(t.$slots,"default",{},void 0,!0)],6))),128))],2))}}),Pt=me(No,[["__scopeId","data-v-22c162eb"]]),Vo={class:"relative w-64 cursor-pointer overflow-hidden rounded-xl border border-gray-950/[.1] bg-gray-950/[.01] p-4 hover:bg-gray-950/[.05] dark:border-gray-50/[.1] dark:bg-gray-50/[.10] dark:hover:bg-gray-50/[.15]"},Fo={class:"flex flex-row items-center gap-2"},Oo=["src"],Uo={class:"flex flex-col"},$o={class:"text-sm font-medium dark:text-white"},Ho={class:"text-xs font-medium dark:text-white/40"},Go={class:"mt-2 text-sm"},Nt=e.defineComponent({__name:"ReviewCard",props:{img:{},name:{},username:{},body:{}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("figure",Vo,[e.createElementVNode("div",Fo,[e.createElementVNode("img",{src:o.img,class:"rounded-full",width:"32",height:"32",alt:""},null,8,Oo),e.createElementVNode("div",Uo,[e.createElementVNode("span",$o,e.toDisplayString(o.name),1),e.createElementVNode("p",Ho,e.toDisplayString(o.username),1)])]),e.createElementVNode("blockquote",Go,e.toDisplayString(o.body),1)]))}}),Yo=e.defineComponent({__name:"index",props:{reviews:{type:Array,default:()=>[]},classList:{type:Object,default:()=>({})}},setup(o){const t=o,i=[{name:"Jack",username:"@jack",body:"I've never seen anything like this before. It's amazing. I love it.",img:"https://avatar.vercel.sh/jack"},{name:"Jill",username:"@jill",body:"I don't know what to say. I'm speechless. This is amazing.",img:"https://avatar.vercel.sh/jill"},{name:"John",username:"@john",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/john"},{name:"Jane",username:"@jane",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/jane"},{name:"Jenny",username:"@jenny",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/jenny"},{name:"James",username:"@james",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/james"}],s=e.computed(()=>t.reviews||i),n=e.computed(()=>s.value.slice(0,s.value.length/2)),r=e.computed(()=>s.value.slice(s.value.length/2)),l=e.computed(()=>{const a=t.classList?.Location||{};return[a.position,a.width,a.height,a.left,a.top].filter(Boolean)});return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass||"relative flex h-[500px] w-full flex-col items-center justify-center overflow-hidden rounded-lg border bg-background md:shadow-xl",l.value])},[e.createVNode(Pt,{"pause-on-hover":"",class:e.normalizeClass(o.classList.marqueeClass||"[--duration:20s]")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,u=>(e.openBlock(),e.createBlock(Nt,{key:u.username,img:u.img,name:u.name,username:u.username,body:u.body},null,8,["img","name","username","body"]))),128))]),_:1},8,["class"]),e.createVNode(Pt,{reverse:"","pause-on-hover":"",class:e.normalizeClass(o.classList.marqueeClass||"[--duration:20s]")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createBlock(Nt,{key:u.username,img:u.img,name:u.name,username:u.username,body:u.body},null,8,["img","name","username","body"]))),128))]),_:1},8,["class"]),e.createElementVNode("div",{class:e.normalizeClass(o.classList.gradientLeftClass||"pointer-events-none absolute inset-y-0 left-0 w-1/3 bg-gradient-to-r from-white dark:from-background")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList.gradientRightClass||"pointer-events-none absolute inset-y-0 right-0 w-1/3 bg-gradient-to-l from-white dark:from-background")},null,2)],2))}}),Wo=e.defineComponent({__name:"Meteors",props:{count:{type:Number,default:20},class:String},setup(o){return(t,i)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.count,s=>(e.openBlock(),e.createElementBlock("span",{key:"meteor "+s,class:e.normalizeClass(e.unref(J)("animate-meteor-effect absolute h-0.5 w-0.5 rotate-[45deg] rounded-[9999px] bg-slate-500 shadow-[0_0_0_1px_#ffffff10]","before:absolute before:top-1/2 before:h-[1px] before:w-[50px] before:-translate-y-[50%] before:transform before:bg-gradient-to-r before:from-[#64748b] before:to-transparent before:content-['']",t.$props.class)),style:e.normalizeStyle({top:0,left:Math.floor(Math.random()*800+-400)+"px",animationDelay:Math.random()*(.8-.2)+.2+"s",animationDuration:Math.floor(Math.random()*8+2)+"s"})},null,6))),128))}}),jo=me(Wo,[["__scopeId","data-v-6c573ccf"]]),Xo=e.defineComponent({__name:"index",props:{title:{default:"Meteors because they're cool"},description:{default:"I don't know what to write so I'll just paste something cool here. One more sentence because lorem ipsum is just unacceptable. Won't ChatGPT the shit out of this."},buttonText:{default:"Explore"},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>{const r=e.resolveComponent("ClientOnly");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass([o.classList?.overallClass||"flex w-full flex-col items-center justify-center py-24",i.value])},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.containerClass||"relative w-full max-w-xs")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.gradientClass||"absolute inset-0 size-full scale-[0.80] rounded-full bg-red-500 bg-gradient-to-r from-blue-500 to-teal-500 blur-3xl")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.cardClass||"relative flex h-full flex-col items-start justify-end overflow-hidden rounded-2xl border border-gray-800 bg-gray-900 px-4 py-8 shadow-xl")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.iconClass||"mb-4 flex size-5 items-center justify-center rounded-full border border-gray-500")},[...n[0]||(n[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor",class:"size-2 text-gray-300"},[e.createElementVNode("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 4.5l15 15m0 0V8.25m0 11.25H8.25"})],-1)])],2),e.createElementVNode("h1",{class:e.normalizeClass(o.classList?.titleClass||"relative z-50 mb-4 text-xl font-bold text-white")},e.toDisplayString(o.title||"Meteors because they're cool"),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.descriptionClass||"relative z-50 mb-4 text-base font-normal text-slate-500")},e.toDisplayString(o.description||"I don't know what to write so I'll just paste something cool here. One more sentence because lorem ipsum is just unacceptable. Won't ChatGPT the shit out of this."),3),e.createElementVNode("button",{class:e.normalizeClass(o.classList?.buttonClass||"rounded-lg border border-gray-500 px-4 py-1 text-gray-300")},e.toDisplayString(o.buttonText||"Explore"),3),e.createVNode(jo)],2)],2)],2)]),_:1})}}}),qo=["src","alt"],Zo=e.defineComponent({__name:"PhotoGallery",props:{containerClass:{},class:{},items:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["gallery",e.unref(J)("mb-[var(--size)] grid grid-cols-6 gap-1",t.containerClass)])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,r)=>(e.openBlock(),e.createElementBlock("img",{key:r,src:n.src,alt:`image+${r}`,class:e.normalizeClass(["gallery-img",e.unref(J)("size-[calc(var(--size)*2)] rounded object-cover transition-[clip-path,filter] duration-75",t.class)])},null,10,qo))),128))],2))}}),Ko=me(Zo,[["__scopeId","data-v-aad0b94e"]]),Jo=e.defineComponent({__name:"index",props:{items:{type:Array,default:()=>[]},classList:{type:Object,default:()=>({})}},setup(o){const t=o,i=[{src:"https://images.pexels.com/photos/16834200/pexels-photo-16834200/free-photo-of-young-brunette-in-a-white-dress-sitting-on-a-bench-and-holding-flowers.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/16834202/pexels-photo-16834202/free-photo-of-young-woman-in-a-white-dress-posing-outdoors.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/16834194/pexels-photo-16834194/free-photo-of-woman-in-white-dress-posing-with-red-flowers-on-lap.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/17362900/pexels-photo-17362900/free-photo-of-pretty-young-model-in-chinese-retro-dress.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/19447919/pexels-photo-19447919/free-photo-of-model-in-a-pink-ao-dai-dress-with-a-bouquet-of-tulips-by-the-river.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/20332975/pexels-photo-20332975/free-photo-of-young-woman-posing-in-a-silk-slip-dress.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/19732643/pexels-photo-19732643/free-photo-of-woman-in-white-dress-sitting-and-reading-book.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/17347482/pexels-photo-17347482/free-photo-of-woman-in-dress-posing-with-bag.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"}],s=e.computed(()=>t.items||i),n=e.computed(()=>{const r=t.classList?.Location||{};return[r.position,r.width,r.height,r.left,r.top].filter(Boolean)});return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass||"flex items-center justify-center",n.value])},[e.createVNode(Ko,{items:s.value,class:e.normalizeClass(o.classList.galleryClass)},null,8,["items","class"])],2))}}),Qo=["for"],en=["for"],tn=["disabled"],sn={__name:"index",props:{classList:Object,formConfig:Object,title:String,submitText:String,layout:Object},setup(o){const t=o,i=e.reactive({}),s=e.reactive({});(()=>{t.formConfig&&Array.isArray(t.formConfig)&&t.formConfig.forEach((u,d)=>{const m=u.key||`field_${d}`;i[m]=u.defaultValue||"",s[m]=""}),console.log(i)})();const r=(u,d)=>{const m=t.formConfig?.find(f=>(f.key||`field_${t.formConfig.indexOf(f)}`)===u),h=m?.validation||{};return h.required&&(!d||d.trim().length===0)?h.requiredMessage||"此字段为必填项":h.minLength&&d&&d.length<h.minLength?h.minLengthMessage||`至少需要${h.minLength}个字符`:h.email&&m?.type==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(d)?h.emailMessage||"请输入有效的邮箱地址":""},l=()=>{let u=!0;return Object.keys(i).forEach(d=>{const m=r(d,i[d]);s[d]=m,m&&(u=!1)}),u},a=e.computed(()=>Object.values(s).every(u=>!u)),c=()=>{l()?(console.log("Form submitted:",i),t.formConfig?.onSubmit?t.formConfig.onSubmit(i):alert("表单提交成功!")):(console.log("Form validation failed:",s),alert("请检查表单中的错误"))};return(u,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass])},[o.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList.titleClass)},e.toDisplayString(o.title),3)):e.createCommentVNode("",!0),e.createElementVNode("form",{onSubmit:e.withModifiers(c,["prevent"]),class:e.normalizeClass(o.classList.formClass)},[o.layout?.rows?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.layout.rows,(m,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(m.class)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.fields,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.formConfig,(x,v)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:v},[x?.key===f&&x?.show!==!1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList.fieldClass)},[e.createElementVNode("label",{for:x?.id||`field_${v}`,class:e.normalizeClass(o.classList.labelClass)},e.toDisplayString(x?.label||"无"),11,Qo),e.createVNode(ht,{id:x?.id||`field_${v}`,modelValue:i[x.key||`field_${v}`],"onUpdate:modelValue":y=>i[x.key||`field_${v}`]=y,onBlur:y=>s[x.key||`field_${v}`]=r(x.key||`field_${v}`,i[x.key||`field_${v}`]),type:x?.type||"text",class:e.normalizeClass([o.classList.inputClass,s[x.key||`field_${v}`]?o.classList.errorInputClass:""]),"container-class":[o.classList.inputContainerClass,s[x.key||`field_${v}`]?o.classList.errorContainerClass:""],placeholder:x?.placeholder||"请输入"},null,8,["id","modelValue","onUpdate:modelValue","onBlur","type","class","container-class","placeholder"]),s[x.key||`field_${v}`]?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(o.classList.errorTextClass)},e.toDisplayString(s[x.key||`field_${v}`]),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],64))),128))],64))),128))],2))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(o.formConfig,(m,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:h},[m?.show!==!1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList.fieldClass)},[e.createElementVNode("label",{for:m?.id||`field_${h}`,class:e.normalizeClass(o.classList.labelClass)},e.toDisplayString(m?.label||"无"),11,en),e.createVNode(ht,{id:m?.id||`field_${h}`,modelValue:i[m.key||`field_${h}`],"onUpdate:modelValue":f=>i[m.key||`field_${h}`]=f,onBlur:f=>s[m.key||`field_${h}`]=r(m.key||`field_${h}`,i[m.key||`field_${h}`]),type:m?.type||"text",class:e.normalizeClass([o.classList.inputClass,s[m.key||`field_${h}`]?o.classList.errorInputClass:""]),"container-class":[o.classList.inputContainerClass,s[m.key||`field_${h}`]?o.classList.errorContainerClass:""],placeholder:m?.placeholder||"请输入"},null,8,["id","modelValue","onUpdate:modelValue","onBlur","type","class","container-class","placeholder"]),s[m.key||`field_${h}`]?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(o.classList.errorTextClass)},e.toDisplayString(s[m.key||`field_${h}`]),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("button",{type:"submit",disabled:!a.value,class:e.normalizeClass([o.classList.buttonClass,a.value?o.classList.buttonEnabledClass:o.classList.buttonDisabledClass])},[e.createElementVNode("span",null,e.toDisplayString(o.submitText||"Sign up"),1),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(o.classList.buttonIconClass),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[...d[0]||(d[0]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2))],10,tn)],34)],2))}},on=me(sn,[["__scopeId","data-v-48b871c2"]]),nn={class:"relative z-10"},an={class:"pointer-events-none absolute inset-0"},rn=e.defineComponent({__name:"RippleButton",props:{class:{},rippleColor:{default:"#ADD8E6"},duration:{default:600},backgroundImage:{}},emits:["click"],setup(o,{emit:t}){const i=o,s=t,n=e.ref(null),r=e.ref([]),l=e.computed(()=>{const u={"--duration":String(i.duration)+"ms"};return i.backgroundImage&&(u.backgroundImage=`url(${i.backgroundImage})`,u.backgroundSize="cover",u.backgroundPosition="center",u.backgroundRepeat="no-repeat"),u});function a(u){c(u),s("click",u)}function c(u){const d=n.value;if(!d)return;const m=d.getBoundingClientRect(),h=Math.max(m.width,m.height),f=u.clientX-m.left-h/2,x=u.clientY-m.top-h/2,v={x:f,y:x,size:h,key:Date.now()};r.value.push(v)}return e.watchEffect(()=>{if(r.value.length>0){const u=r.value[r.value.length-1];setTimeout(()=>{r.value=r.value.filter(d=>d.key!==u.key)},i.duration)}}),(u,d)=>(e.openBlock(),e.createElementBlock("button",{ref_key:"rippleButtonRef",ref:n,class:e.normalizeClass(e.unref(J)("relative flex cursor-pointer items-center justify-center overflow-hidden","rounded-lg border-2 bg-background px-4 py-2 text-center text-primary",u.$props.class)),style:e.normalizeStyle(l.value),onClick:a},[e.createElementVNode("div",nn,[e.renderSlot(u.$slots,"default",{},void 0,!0)]),e.createElementVNode("span",an,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,m=>(e.openBlock(),e.createElementBlock("span",{key:m.key,class:"ripple-animation absolute rounded-full bg-background opacity-30",style:e.normalizeStyle({width:m.size+"px",height:m.size+"px",top:m.y+"px",left:m.x+"px",backgroundColor:u.$props.rippleColor,transform:"scale(0)",animationDuration:u.$props.duration+"ms"})},null,4))),128))])],6))}}),ln=me(rn,[["__scopeId","data-v-c6dbfb1d"]]),cn=e.defineComponent({__name:"index",props:{backgroundImage:{default:"/assets/image2.png"},rippleColor:{default:"#0ea5e9"},duration:{default:800},buttonText:{default:"Click me!"},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"grid place-content-center p-8",i.value])},[e.createVNode(ln,{backgroundImage:o.backgroundImage,"ripple-color":o.rippleColor||"#0ea5e9",duration:o.duration||800,class:e.normalizeClass(o.classList?.buttonClass)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.buttonText||"Click me!"),1)]),_:1},8,["backgroundImage","ripple-color","duration","class"])],2))}}),un=["src"],dn=e.defineComponent({__name:"RollingGallery",props:{autoplay:{type:Boolean,default:!1},pauseOnHover:{type:Boolean,default:!1},images:{default:()=>[]},classList:{default:()=>({})}},setup(o){const t=o,i=e.shallowRef(["https://images.unsplash.com/photo-1528181304800-259b08848526?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1506665531195-3566af2b4dfa?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=3456&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1495103033382-fe343886b671?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1506781961370-37a89d6b3095?q=80&w=3264&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1599576838688-8a6c11263108?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1494094892896-7f14a4433b7a?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://plus.unsplash.com/premium_photo-1664910706524-e783eed89e71?q=80&w=3869&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1503788311183-fa3bf9c4bc32?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1585970480901-90d6bb2a48b5?q=80&w=3774&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"]),s=e.ref(!1),n=e.ref(0),r=e.ref(null),l=e.ref(null),a=e.ref(!1),c=e.ref(!1),u=e.ref(0),d=e.ref(0),m=e.computed(()=>{const Y=t.images.length>0?t.images:i.value,se=L;if(Y.length>=se)return Y;const ie=[],ce=Math.ceil(se/Y.length);for(let fe=0;fe<ce;fe++)ie.push(...Y);return ie.slice(0,se)}),h=e.computed(()=>s.value?1100:1800),f=e.computed(()=>h.value/U*1.5),x=e.computed(()=>h.value/(2*Math.PI)),v=Object.freeze(.15),y=Object.freeze(.05),p=Object.freeze(2e3),E=Object.freeze(1500),k=Object.freeze(100),b=Object.freeze(50),L=Object.freeze(10),U=Object.freeze(10),H=e.computed(()=>({width:`${h.value}px`,transformStyle:"preserve-3d"})),S=e.computed(()=>({rotateY:n.value})),C=e.computed(()=>a.value?{duration:0}:{duration:.8,ease:"easeOut"}),_=new Map,D=Y=>{const se=`${Y}-${f.value}-${x.value}`;if(_.has(se))return _.get(se);const ie={width:`${f.value}px`,transform:`rotateY(${Y*(360/L)}deg) translateZ(${x.value}px)`};return _.size>50&&_.clear(),_.set(se,ie),ie};let M=null,I=null;function N(){s.value=window.innerWidth<=640}function V(){M||(M=setTimeout(()=>{N(),M=null},100))}function A(Y){a.value=!0,u.value=Y.clientX,d.value=n.value,G(),document.addEventListener("mousemove",Q,{passive:!0}),document.addEventListener("mouseup",w,{passive:!0}),Y.preventDefault()}function Q(Y){if(!a.value)return;const ie=(Y.clientX-u.value)*v;n.value=d.value+ie}function w(Y){if(!a.value)return;a.value=!1;const ie=(Y.clientX-u.value)*y;if(n.value+=ie,document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",w),G(),t.autoplay){if(t.pauseOnHover&&c.value)return;l.value=setTimeout(()=>{!a.value&&(!t.pauseOnHover||!c.value)&&R()},E)}}function R(){!t.autoplay||a.value||t.pauseOnHover&&c.value||(G(),r.value=setInterval(()=>{!a.value&&(!t.pauseOnHover||!c.value)&&(n.value-=360/L)},p))}function G(){r.value&&(clearInterval(r.value),r.value=null),l.value&&(clearTimeout(l.value),l.value=null)}function le(){I&&(clearTimeout(I),I=null),I=setTimeout(()=>{c.value=!0,t.autoplay&&t.pauseOnHover&&!a.value&&G()},b)}function Z(){I&&(clearTimeout(I),I=null),I=setTimeout(()=>{c.value=!1,t.autoplay&&t.pauseOnHover&&!a.value&&(G(),l.value=setTimeout(()=>{t.autoplay&&!a.value&&!c.value&&R()},k))},b)}return e.onMounted(()=>{N(),window.addEventListener("resize",V,{passive:!0}),t.autoplay&&R()}),e.onUnmounted(()=>{window.removeEventListener("resize",V),document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",w),G(),M&&clearTimeout(M),I&&(clearTimeout(I),I=null)}),e.watch(()=>t.autoplay,Y=>{G(),Y&&!a.value&&(!t.pauseOnHover||!c.value)&&(l.value=setTimeout(()=>{!a.value&&(!t.pauseOnHover||!c.value)&&R()},k))}),e.watch(()=>t.pauseOnHover,()=>{t.autoplay&&(G(),!a.value&&(!t.pauseOnHover||!c.value)&&R())}),(Y,se)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.containerClass||"relative h-[500px] w-full overflow-hidden")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.leftGradientClass||"absolute top-0 left-0 h-full w-12 z-10 bg-gradient-to-l from-transparent to-[#0b0b0b]")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.rightGradientClass||"absolute top-0 right-0 h-full w-12 z-10 bg-gradient-to-r from-transparent to-[#0b0b0b]")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.perspectiveContainerClass||"flex h-full items-center justify-center [perspective:1000px] [transform-style:preserve-3d]")},[e.createVNode(e.unref(xe.Motion),{tag:"div",class:e.normalizeClass(o.classList?.motionContainerClass||"flex min-h-[200px] items-center justify-center w-full cursor-grab select-none will-change-transform [transform-style:preserve-3d] active:cursor-grabbing"),style:e.normalizeStyle(H.value),animate:S.value,transition:C.value,onMouseenter:le,onMouseleave:Z,onMousedown:A},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(ie,ce)=>(e.openBlock(),e.createElementBlock("div",{key:`gallery-${ce}`,style:e.normalizeStyle(D(ce)),class:e.normalizeClass(o.classList?.itemContainerClass||"absolute flex items-center justify-center px-[8%] [backface-visibility:hidden] will-change-transform pointer-events-none")},[e.createElementVNode("img",{src:ie,alt:"gallery",loading:"lazy",decoding:"async",class:e.normalizeClass(o.classList?.imageClass||"pointer-events-auto h-[120px] w-[300px] rounded-[15px] border-[3px] border-white object-cover transition-transform duration-300 ease-in-out will-change-transform hover:scale-105")},null,10,un)],6))),128))]),_:1},8,["class","style","animate","transition"])],2)],2))}}),hn=e.defineComponent({__name:"index",props:{images:{default:()=>["https://images.unsplash.com/photo-1528181304800-259b08848526?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1506665531195-3566af2b4dfa?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=3456&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1495103033382-fe343886b671?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"]},autoplay:{type:Boolean,default:!0},pauseOnHover:{type:Boolean,default:!0},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([i.value])},[e.createVNode(dn,{autoplay:o.autoplay,"pause-on-hover":o.pauseOnHover,images:o.images,"class-list":o.classList},null,8,["autoplay","pause-on-hover","images","class-list"])],2))}}),mn=["width","height"],fn="url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto",pn=e.defineComponent({__name:"ScratchToReveal",props:{class:{},width:{},height:{},minScratchPercentage:{default:50},gradientColors:{default:()=>["#A97CF8","#F38CB8","#FDCC92"]}},emits:["complete"],setup(o,{emit:t}){const i=e.ref(),s=o,n=e.computed(()=>s.width+"px"),r=e.computed(()=>s.height+"px"),l=e.ref(),a=t,c=e.ref(!1),u=e.ref(!1);function d(){c.value=!0}function m(){c.value=!0}const h=e.computed(()=>i.value?.width||s.width),f=e.computed(()=>i.value?.height||s.height);function x(_){l.value=_.value.getContext("2d"),l.value.fillStyle="#ccc",l.value.fillRect(0,0,h.value,f.value);const D=l.value.createLinearGradient(0,0,h.value,f.value);D.addColorStop(0,s.gradientColors[0]),D.addColorStop(.5,s.gradientColors[1]),D.addColorStop(1,s.gradientColors[2]),l.value.fillStyle=D,l.value.fillRect(0,0,h.value,f.value)}function v(_,D){if(i.value&&l.value){const M=i.value.getBoundingClientRect(),I=_-M.left+16,N=D-M.top+16;l.value.globalCompositeOperation="destination-out",l.value.beginPath(),l.value.arc(I,N,30,0,Math.PI*2),l.value.fill()}}function y(_){c.value&&v(_.clientX,_.clientY)}function p(_){if(!c.value)return;const D=_.touches[0];v(D.clientX,D.clientY)}function E(){c.value=!1,L()}function k(){c.value=!1,L()}function b(){document.addEventListener("mousedown",y),document.addEventListener("mousemove",y),document.addEventListener("touchstart",p),document.addEventListener("touchmove",p),document.addEventListener("mouseup",E),document.addEventListener("touchend",k),document.addEventListener("touchcancel",k)}function L(){if(!u.value&&i.value&&l.value){const D=l.value.getImageData(0,0,h.value,f.value).data,M=D.length/4;let I=0;for(let V=3;V<D.length;V+=4)D[V]===0&&I++;I/M*100>=s.minScratchPercentage?(u.value=!0,l.value.clearRect(0,0,h.value,f.value),S()):c.value=!1}}const[U,H]=xe.useAnimate();async function S(){U.value&&(H(U.value,{scale:1,rotate:[0,10,-10,10,-10,0]}),a("complete"))}e.onMounted(()=>{i.value&&(x(i),b())});function C(){document.removeEventListener("mousedown",y),document.removeEventListener("mousemove",y),document.removeEventListener("touchstart",p),document.removeEventListener("touchmove",p),document.removeEventListener("mouseup",E),document.removeEventListener("touchend",k),document.removeEventListener("touchcancel",k)}return e.onUnmounted(()=>{C()}),(_,D)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{ref_key:"containerRef",ref:U,class:e.normalizeClass(e.unref(J)("relative select-none",s.class)),style:e.normalizeStyle({width:n.value,height:r.value,cursor:fn}),initial:{scale:1,rotate:[0,10,-10,10,-10,0]},transition:{duration:.5}},{default:e.withCtx(()=>[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:i,width:o.width,height:o.height,class:"absolute left-0 top-0",onMousedown:d,onTouchstart:m},null,40,mn),e.renderSlot(_.$slots,"default")]),_:3},8,["class","style"]))}}),vn=e.defineComponent({__name:"index",props:{width:{default:250},height:{default:250},minScratchPercentage:{default:50},gradientColors:{default:()=>["#A97CF8","#F38CB8","#FDCC92"]},revealContent:{default:"🥳"},classList:{default:()=>({})}},setup(o){function t(){}return(i,s)=>(e.openBlock(),e.createBlock(pn,{width:o.width,height:o.height,"min-scratch-percentage":o.minScratchPercentage,class:e.normalizeClass(o.classList?.overallClass||"mx-auto flex items-center justify-center overflow-hidden rounded-2xl border-2 bg-gray-100"),"gradient-colors":o.gradientColors,onComplete:t},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.contentClass||"text-8xl")},e.toDisplayString(o.revealContent),3)]),_:1},8,["width","height","min-scratch-percentage","class","gradient-colors"]))}}),gn={fill:"none",class:"size-full","stroke-width":"2",viewBox:"0 0 100 100"},xn=["stroke-width"],yn=["stroke-width"],wn=["data-current-value"],bn=e.defineComponent({__name:"AnimatedCircularProgressBar",props:{max:{default:100},value:{default:0},min:{default:0},gaugePrimaryColor:{default:"rgb(79 70 229)"},gaugeSecondaryColor:{default:"rgba(0, 0, 0, 0.1)"},class:{},circleStrokeWidth:{default:10},showPercentage:{type:Boolean,default:!0},duration:{default:1}},setup(o){e.useCssVars(a=>({v1f048564:i,v16000b30:r.value,v17effbd9:a.gaugePrimaryColor,cf3a39a6:n.value,v11eaec25:l.value,v97340cb2:a.gaugeSecondaryColor}));const t=o,i=2*Math.PI*45,s=i/100,n=e.computed(()=>(t.value-t.min)/(t.max-t.min)*100),r=e.computed(()=>`${s}px`),l=e.computed(()=>`${t.duration}s`);return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["progress-circle-base",e.unref(J)("relative size-40 text-2xl font-semibold",t.class)])},[(e.openBlock(),e.createElementBlock("svg",gn,[n.value<=90&&n.value>=0?(e.openBlock(),e.createElementBlock("circle",{key:0,cx:"50",cy:"50",r:"45","stroke-width":o.circleStrokeWidth,"stroke-dashoffset":"0","stroke-linecap":"round","stroke-linejoin":"round",class:"gauge-secondary-stroke opacity-100"},null,8,xn)):e.createCommentVNode("",!0),e.createElementVNode("circle",{cx:"50",cy:"50",r:"45","stroke-width":o.circleStrokeWidth,"stroke-dashoffset":"0","stroke-linecap":"round","stroke-linejoin":"round",class:"gauge-primary-stroke opacity-100"},null,8,yn)])),o.showPercentage?(e.openBlock(),e.createElementBlock("span",{key:0,"data-current-value":n.value,class:"absolute inset-0 m-auto size-fit delay-0 duration-1000 ease-linear animate-in fade-in"},e.toDisplayString(n.value),9,wn)):e.createCommentVNode("",!0)],2))}}),Cn=me(bn,[["__scopeId","data-v-ea809044"]]),En={class:"gray- flex h-11 cursor-pointer items-center gap-2 px-4"},kn={class:"grow text-center font-bold"},Sn=e.defineComponent({__name:"ScrollIsland",props:{class:{default:""},title:{default:"Progress"},height:{default:44}},setup(o){e.useCssVars(u=>({v0566c004:a.value}));const t=o,i=e.ref(!1),s=e.useSlots(),n=e.ref(0),r=e.computed(()=>Ce.useColorMode().value=="dark"),l=e.computed(()=>!!s.default),a=e.computed(()=>`${t.height/2}px`);e.onMounted(()=>{window!==void 0&&(window.addEventListener("scroll",c),c())});function c(){n.value=window.scrollY/(document.body.scrollHeight-window.innerHeight)}return e.onUnmounted(()=>{window.removeEventListener("scroll",c)}),(u,d)=>(e.openBlock(),e.createBlock(e.unref(xe.MotionConfig),{transition:{duration:.7,type:"spring",bounce:.5}},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)("z-[999] -translate-x-1/2 bg-primary/90 backdrop-blur-lg border-radius",u.$props.class)),onClick:d[0]||(d[0]=()=>i.value=!i.value)},[e.createVNode(e.unref(xe.motion).div,{id:"motion-id",layout:"",initial:{height:t.height,width:0},animate:{height:i.value&&l.value?"auto":t.height,width:i.value&&l.value?320:260},class:"bg-natural-900 relative cursor-pointer overflow-hidden text-secondary"},{default:e.withCtx(()=>[e.createElementVNode("header",En,[e.createVNode(Cn,{value:n.value*100,min:0,max:100,"circle-stroke-width":10,class:"w-6","show-percentage":!1,duration:.3,"gauge-secondary-color":r.value?"#6b728055":"#6b728099","gauge-primary-color":r.value?"black":"white"},null,8,["value","gauge-secondary-color","gauge-primary-color"]),e.createElementVNode("h5",kn,e.toDisplayString(o.title),1),e.createVNode(e.unref(cs),{value:n.value,format:{style:"percent"},locales:"en-US"},null,8,["value"])]),l.value?(e.openBlock(),e.createBlock(e.unref(xe.motion).div,{key:0,class:"mb-2 flex h-full max-h-60 flex-col gap-1 overflow-y-auto px-4 text-sm"},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default",{},void 0,!0)]),_:3})):e.createCommentVNode("",!0)]),_:3},8,["initial","animate"])],2)]),_:3}))}}),_n=me(Sn,[["__scopeId","data-v-c0fd1974"]]),Tn=["href"],Bn=e.defineComponent({__name:"index",props:{title:{default:"Scroll Island"},description:{default:"See the scroll island in action on the top of this page"},links:{default:()=>[{text:"# Install using CLI",href:"#install-using-cli"},{text:"# Install Manually",href:"#install-manually"},{text:"# API",href:"#api"},{text:"# Features",href:"#features"},{text:"# Credits",href:"#credits"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=[],n=t.classList?.Location;return n?.position&&s.push(n.position),n?.width&&s.push(n.width),n?.height&&s.push(n.height),n?.left&&s.push(n.left),n?.top&&s.push(n.top),s.join(" ")});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"flex items-center justify-center p-8")},[e.createElementVNode("span",{class:e.normalizeClass(o.classList?.descriptionClass||"text-lg text-primary")},e.toDisplayString(o.description||"See the scroll island in action on the top of this page"),3),e.createVNode(_n,{title:o.title||"Scroll Island",class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.islandClass||"my-3 flex flex-col gap-2")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.links,(r,l)=>(e.openBlock(),e.createElementBlock("a",{key:l,href:r.href,class:e.normalizeClass(o.classList?.linkClass||"block")},e.toDisplayString(r.text),11,Tn))),128))],2)]),_:1},8,["title","class"])],2))}}),Mn=e.defineComponent({__name:"Sparkles",props:{background:{default:"#0d47a1"},particleColor:{default:"#ffffff"},minSize:{default:1},maxSize:{default:3},speed:{default:4},particleDensity:{default:120}},setup(o){const t=o,i=Ce.templateRef("containerRef"),s=Ce.templateRef("canvasRef"),n=e.ref([]),r=e.ref(null);function l(){if(!s.value||!i.value)return;const h=window.devicePixelRatio||1,f=i.value.getBoundingClientRect();s.value.width=f.width*h,s.value.height=f.height*h,r.value&&r.value.scale(h,h)}function a(){const h=[],f=t.particleDensity;for(let x=0;x<f;x++){const y=Math.random()*.3+.7;h.push({x:Math.random()*100,y:Math.random()*100,size:Math.random()*(t.maxSize-t.minSize)+t.minSize,opacity:Math.random()*.5+.3,vx:(Math.random()-.5)*.05*y*t.speed,vy:((Math.random()-.5)*.05-.05*.3)*y*t.speed,phase:Math.random()*Math.PI*2,phaseSpeed:.015})}n.value=h}function c(){if(!r.value||!s.value)return;const h=s.value;r.value.clearRect(0,0,h.width,h.height),n.value=n.value.map(f=>{let x=f.x+f.vx,v=f.y+f.vy;x<-2&&(x=102),x>102&&(x=-2),v<-2&&(v=102),v>102&&(v=-2);const y=(f.phase+f.phaseSpeed)%(Math.PI*2),p=.3+(Math.sin(y)*.3+.3);return r.value.beginPath(),r.value.arc(x*h.width/100,v*h.height/100,f.size,0,Math.PI*2),r.value.fillStyle=`${t.particleColor}${Math.floor(p*255).toString(16).padStart(2,"0")}`,r.value.fill(),{...f,x,y:v,phase:y,opacity:p}})}const{pause:u,resume:d}=Ce.useRafFn(c,{immediate:!1});let m;return e.onMounted(()=>{s.value&&(r.value=s.value.getContext("2d"),l(),a(),m=new ResizeObserver(l),i.value&&m.observe(i.value),d())}),e.onBeforeUnmount(()=>{u(),m&&i.value&&m.unobserve(i.value)}),(h,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:"relative size-full overflow-hidden will-change-transform",style:e.normalizeStyle({background:o.background})},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,class:"absolute inset-0 size-full"},null,512)],4))}}),Dn={class:"relative h-40 w-[40rem]"},Rn={__name:"index",props:{title:String,lightParticleColor:String,darkParticleColor:String,classList:Object},setup(o){const t=o;e.ref(0);const i=e.computed(()=>Ce.useColorMode().value==="dark"?t.darkParticleColor:t.lightParticleColor),s=e.computed(()=>{const n=t.classList.Location||{};return[n.position,n.width,n.height,n.left,n.top].filter(Boolean)});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass,s.value])},[e.createElementVNode("h1",{class:e.normalizeClass(o.classList.h1Class)},e.toDisplayString(o.title),3),e.createElementVNode("div",Dn,[r[0]||(r[0]=e.createElementVNode("div",{class:"absolute inset-x-20 top-0 h-[2px] w-3/4 bg-gradient-to-r from-transparent via-indigo-500 to-transparent blur-sm"},null,-1)),r[1]||(r[1]=e.createElementVNode("div",{class:"absolute inset-x-20 top-0 h-px w-3/4 bg-gradient-to-r from-transparent via-indigo-500 to-transparent"},null,-1)),r[2]||(r[2]=e.createElementVNode("div",{class:"absolute inset-x-60 top-0 h-[5px] w-1/4 bg-gradient-to-r from-transparent via-sky-500 to-transparent blur-sm"},null,-1)),r[3]||(r[3]=e.createElementVNode("div",{class:"absolute inset-x-60 top-0 h-px w-1/4 bg-gradient-to-r from-transparent via-sky-500 to-transparent"},null,-1)),e.createVNode(Mn,{background:"transparent","min-size":.4,"max-size":1.4,"particle-density":1200,class:"size-full","particle-color":i.value},null,8,["particle-color"]),e.createElementVNode("div",{class:e.normalizeClass(o.classList.SparklesClass)},null,2)])],2))}},Ln=me(Rn,[["__scopeId","data-v-f5700567"]]),In={class:"relative inline-block"},zn=["fill"],An=e.defineComponent({__name:"SparklesText",props:{text:{},sparklesCount:{default:10},colors:{default:()=>({first:"#9E7AFF",second:"#FE8BBB"})},class:{}},setup(o){const t=o,i=e.ref([]);function s(){const a=`${Math.random()*100}%`,c=`${Math.random()*100}%`,u=Math.random()>.5?t.colors.first:t.colors.second,d=Math.random()*2,m=Math.random()*1+.3,h=Math.random()*10+5;return{id:`${a}-${c}-${Date.now()}`,x:a,y:c,color:u,delay:d,scale:m,lifespan:h}}function n(){i.value=Array.from({length:t.sparklesCount},s)}function r(){i.value=i.value.map(a=>a.lifespan<=0?s():{...a,lifespan:a.lifespan-.1})}let l;return e.onMounted(()=>{n(),l=window.setInterval(r,100)}),e.onUnmounted(()=>{l&&clearInterval(l)}),(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.class)},[e.createElementVNode("span",In,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{key:u.id,initial:{opacity:0,scale:0,rotate:75},animate:{opacity:[0,1,0],scale:[0,u.scale,0],rotate:[75,120,150]},transition:{duration:.8,repeat:1/0,delay:u.delay},as:"svg",class:"pointer-events-none absolute z-20",style:e.normalizeStyle({left:u.x,top:u.y,opacity:0}),width:"21",height:"21",viewBox:"0 0 21 21"},{default:e.withCtx(()=>[e.createElementVNode("path",{d:"M9.82531 0.843845C10.0553 0.215178 10.9446 0.215178 11.1746 0.843845L11.8618 2.72026C12.4006 4.19229 12.3916 6.39157 13.5 7.5C14.6084 8.60843 16.8077 8.59935 18.2797 9.13822L20.1561 9.82534C20.7858 10.0553 20.7858 10.9447 20.1561 11.1747L18.2797 11.8618C16.8077 12.4007 14.6084 12.3916 13.5 13.5C12.3916 14.6084 12.4006 16.8077 11.8618 18.2798L11.1746 20.1562C10.9446 20.7858 10.0553 20.7858 9.82531 20.1562L9.13819 18.2798C8.59932 16.8077 8.60843 14.6084 7.5 13.5C6.39157 12.3916 4.19225 12.4007 2.72023 11.8618L0.843814 11.1747C0.215148 10.9447 0.215148 10.0553 0.843814 9.82534L2.72023 9.13822C4.19225 8.59935 6.39157 8.60843 7.5 7.5C8.60843 6.39157 8.59932 4.19229 9.13819 2.72026L9.82531 0.843845Z",fill:u.color},null,8,zn)]),_:2},1032,["animate","transition","style"]))),128)),e.createTextVNode(" "+e.toDisplayString(o.text),1)])],2))}}),Pn={__name:"index",props:{classList:Object,title:String,colors:{type:Object,default:()=>({first:"#9E7AFF",second:"#FE8BBB"})},sparklesCount:Number},setup(o){const t=o,i=e.computed(()=>{const s=t.classList.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass,i.value])},[e.createVNode(An,{text:o.title,colors:{first:`${o.colors.first}`,second:`${o.colors.second}`},"sparkles-count":o.sparklesCount,class:e.normalizeClass(o.classList.textClass)},null,8,["text","colors","sparkles-count","class"])],2))}},Nn=me(Pn,[["__scopeId","data-v-f74320d4"]]),Vn=e.defineComponent({__name:"ParentSize",props:{class:String,debounceTime:{type:Number,default:300},ignoreDimensions:{type:[Array,String],default:()=>[]},parentSizeStyles:Object,enableDebounceLeadingCall:{type:Boolean,default:!0}},setup(o){const t=o,i=e.useAttrs(),s=e.ref(null),n=e.reactive({width:0,height:0,top:0,left:0}),r=e.computed(()=>({...t.parentSizeStyles,...i.style}));e.computed(()=>["w-full h-full",t.class]);const l=e.computed(()=>{const{class:d,style:m,...h}=i;return h}),a=e.computed(()=>Array.isArray(t.ignoreDimensions)?t.ignoreDimensions:[t.ignoreDimensions]);function c(d){const{width:m,height:h,top:f,left:x}=d,v={width:m,height:h,top:f,left:x};if(!Object.keys(v).some(E=>n[E]!==v[E]))return;!Object.keys(v).every(E=>a.value.includes(E))&&Object.assign(n,v)}const u=Ce.useDebounceFn(c,t.debounceTime);return Ce.useResizeObserver(s,d=>{const m=d[0];m&&u(m.contentRect)}),(d,m)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({ref_key:"target",ref:s,style:r.value,class:e.unref(J)("w-full h-full",t.class)},l.value),[e.renderSlot(d.$slots,"default")],16))}}),Fn=e.defineComponent({__name:"Spline",props:{scene:{type:String,required:!0},onLoad:Function,renderOnDemand:{type:Boolean,default:!0},style:Object},emits:["error","spline-mouse-down","spline-mouse-up","spline-mouse-hover","spline-key-down","spline-key-up","spline-start","spline-look-at","spline-follow","spline-scroll"],setup(o,{emit:t}){const i=o,s=t,n=e.ref(null),r=e.ref(!1),l=e.ref(null),a=e.ref(!0);let c=()=>{};const u=e.computed(()=>({overflow:"hidden",...i.style})),d=e.computed(()=>({display:"block",width:"100%",height:"100%"})),{stop:m}=Ce.useIntersectionObserver(n,([{isIntersecting:v}])=>{a.value=v,v&&l.value&&e.nextTick(()=>{n.value&&l.value&&(l.value.requestRender(),l.value.setSize(n.value.clientWidth,n.value.clientHeight))})},{threshold:.1});function h(v,y){if(!y||!l.value)return;const p=Ce.useDebounceFn(y,50,{maxWait:100});return l.value.addEventListener(v,p),()=>l.value?.removeEventListener(v,p)}async function f(){if(n.value){r.value=!0;try{l.value&&(l.value.dispose(),l.value=null),l.value=new us.Application(n.value,{renderOnDemand:i.renderOnDemand}),await l.value.load(i.scene);const v=[h("mouseDown",y=>s("spline-mouse-down",y)),h("mouseUp",y=>s("spline-mouse-up",y)),h("mouseHover",y=>s("spline-mouse-hover",y)),h("keyDown",y=>s("spline-key-down",y)),h("keyUp",y=>s("spline-key-up",y)),h("start",y=>s("spline-start",y)),h("lookAt",y=>s("spline-look-at",y)),h("follow",y=>s("spline-follow",y)),h("scroll",y=>s("spline-scroll",y))].filter(Boolean);return r.value=!1,i.onLoad?.(l.value),()=>{v.forEach(y=>y?.())}}catch(v){return console.error("Spline initialization error:",v),s("error",v),r.value=!1,()=>{}}}}async function x(){c(),c=await f()??(()=>{})}return e.onMounted(async()=>{await x(),e.watch(a,v=>{v&&x()})}),e.onUnmounted(()=>{m(),l.value&&(l.value.dispose(),l.value=null)}),(v,y)=>(e.openBlock(),e.createBlock(Vn,e.mergeProps({"parent-size-styles":u.value,"debounce-time":50},v.$attrs),{default:e.withCtx(()=>[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:n,style:e.normalizeStyle(d.value)},null,4),r.value?e.renderSlot(v.$slots,"default",{key:0}):e.createCommentVNode("",!0)]),_:3},16,["parent-size-styles"]))}}),On={class:"flex"},Un=e.defineComponent({__name:"index",props:{sceneUrl:{default:"https://prod.spline.design/kZDDjO5HuC9GJUM2/scene.splinecode"},title:{default:"Inspira UI"},subtitle:{default:"Build spline animations with style."},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top,s.zIndex].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"relative w-full overflow-hidden rounded-lg bg-black/[0.96]",i.value])},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.textContainerClass||"absolute flex w-full flex-col items-center justify-center gap-2 p-8 text-center font-heading text-white")},[e.createElementVNode("span",{class:e.normalizeClass(o.classList?.titleClass||"text-4xl font-semibold")},e.toDisplayString(o.title),3),e.createElementVNode("span",{class:e.normalizeClass(o.classList?.subtitleClass||"font-sans font-light")},e.toDisplayString(o.subtitle),3)],2),e.createElementVNode("div",On,[e.createVNode(Fn,{scene:o.sceneUrl,class:e.normalizeClass(o.classList?.splineClass||"mt-24 size-full")},null,8,["scene","class"])])],2))}}),$n=["src","alt"],Hn=e.defineComponent({__name:"Stack",props:{className:{},randomRotation:{type:Boolean,default:!1},sensitivity:{default:200},cardDimensions:{default:()=>({width:208,height:208})},cardsData:{default:()=>[]},animationConfig:{default:()=>({stiffness:260,damping:20})},sendToBackOnClick:{type:Boolean,default:!1}},setup(o){const t=o,i=e.ref(t.cardsData.length?t.cardsData:[{id:1,img:"https://images.unsplash.com/photo-1480074568708-e7b720bb3f09?q=80&w=500&auto=format"},{id:2,img:"https://images.unsplash.com/photo-1449844908441-8829872d2607?q=80&w=500&auto=format"},{id:3,img:"https://images.unsplash.com/photo-1452626212852-811d58933cae?q=80&w=500&auto=format"},{id:4,img:"https://images.unsplash.com/photo-1572120360610-d971b9d7767c?q=80&w=500&auto=format"}]),s=new Map;function n(){const c=xe.useMotionValue(0),u=xe.useMotionValue(0),d=xe.useTransform(u,[-100,100],[60,-60]),m=xe.useTransform(c,[-100,100],[-60,60]);return{x:c,y:u,rotateX:d,rotateY:m,reset(){c.set(0),u.set(0)}}}e.onBeforeMount(()=>{i.value.forEach(c=>{s.has(c.id)||s.set(c.id,n())})});function r(c){let u=s.get(c);return u||(u=n(),s.set(c,u)),u}function l(c,u,d){Math.abs(u.offset.x)>t.sensitivity||Math.abs(u.offset.y)>t.sensitivity?a(d):r(d).reset()}const a=c=>{const u=[...i.value],d=u.findIndex(h=>h.id===c),[m]=u.splice(d,1);u.unshift(m),i.value=u};return(c,u)=>(e.openBlock(),e.createElementBlock("div",{class:"relative",style:e.normalizeStyle({width:o.cardDimensions.width+"px",height:o.cardDimensions.height+"px",perspective:600})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(d,m)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{key:d.id,as:"div",class:"absolute cursor-grab",style:e.normalizeStyle({x:e.unref(s).get(d.id)?.x,y:e.unref(s).get(d.id)?.y,rotateX:e.unref(s).get(d.id)?.rotateX,rotateY:e.unref(s).get(d.id)?.rotateY}),drag:"","drag-constraints":{top:0,right:0,bottom:0,left:0},dragElastic:.6,whileTap:{cursor:"grabbing",scale:1.02},onDragEnd:(h,f)=>l(h,f,d.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(xe.Motion),{as:"div",class:"rounded-2xl overflow-hidden border-4 border-white",onClick:h=>o.sendToBackOnClick&&a(d.id),animate:{rotateZ:(i.value.length-m-1)*4+(o.randomRotation?Math.random()*10-5:0),scale:1+m*.06-i.value.length*.06,transformOrigin:"90% 90%"},initial:!1,transition:{type:"spring",stiffness:o.animationConfig.stiffness,damping:o.animationConfig.damping},style:e.normalizeStyle({width:o.cardDimensions.width+"px",height:o.cardDimensions.height+"px"})},{default:e.withCtx(()=>[e.createElementVNode("img",{src:d.img,alt:`card-${d.id}`,className:"w-full h-full object-cover pointer-events-none"},null,8,$n)]),_:2},1032,["onClick","animate","transition","style"])]),_:2},1032,["style","onDragEnd"]))),128))],4))}}),Gn=e.defineComponent({__name:"index",props:{cardsData:{default:()=>[{id:1,img:"https://images.unsplash.com/photo-1480074568708-e7b720bb3f09?q=80&w=500&auto=format"},{id:2,img:"https://images.unsplash.com/photo-1449844908441-8829872d2607?q=80&w=500&auto=format"},{id:3,img:"https://images.unsplash.com/photo-1452626212852-811d58933cae?q=80&w=500&auto=format"},{id:4,img:"https://images.unsplash.com/photo-1572120360610-d971b9d7767c?q=80&w=500&auto=format"}]},cardDimensions:{default:()=>({width:200,height:200})},randomRotation:{type:Boolean,default:!0},sensitivity:{default:180},animationConfig:{default:()=>({stiffness:260,damping:20})},sendToBackOnClick:{type:Boolean,default:!1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return t.classList?.overallClass&&n.push(t.classList.overallClass),s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||"w-full h-[500px]"});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(Hn,{randomRotation:o.randomRotation,sensitivity:o.sensitivity,sendToBackOnClick:o.sendToBackOnClick,cardDimensions:o.cardDimensions,cardsData:o.cardsData,animationConfig:o.animationConfig},null,8,["randomRotation","sensitivity","sendToBackOnClick","cardDimensions","cardsData","animationConfig"])],2))}}),Yn=e.defineComponent({__name:"TargetCursor",props:{targetSelector:{default:".cursor-target"},spinDuration:{default:2},hideDefaultCursor:{type:Boolean,default:!0},cursorClass:{default:""}},setup(o){const t=o,i=e.useTemplateRef("cursorRef"),s=e.ref(null),n=e.ref(null),r={borderWidth:3,cornerSize:12,parallaxStrength:5e-5},l=(u,d)=>{i.value&&de.gsap.to(i.value,{x:u,y:d,duration:.1,ease:"power3.out"})};let a=()=>{};const c=()=>{if(!i.value)return;const u=document.body.style.cursor;t.hideDefaultCursor&&(document.body.style.cursor="none");const d=i.value;s.value=d.querySelectorAll(".target-cursor-corner");let m=null,h=null,f=null,x=!1,v=null;const y=b=>{h&&b.removeEventListener("mousemove",h),f&&b.removeEventListener("mouseleave",f),h=null,f=null};de.gsap.set(d,{xPercent:-50,yPercent:-50,x:window.innerWidth/2,y:window.innerHeight/2,opacity:1,display:"block"}),(()=>{n.value&&n.value.kill(),n.value=de.gsap.timeline({repeat:-1}).to(d,{rotation:"+=360",duration:t.spinDuration,ease:"none"})})();const E=b=>l(b.clientX,b.clientY);window.addEventListener("mousemove",E);const k=b=>{const L=b.target,U=[];let H=L;for(;H&&H!==document.body;)H.matches(t.targetSelector)&&U.push(H),H=H.parentElement;const S=U[0]||null;if(!S||!i.value||!s.value||m===S)return;m&&y(m),v&&(clearTimeout(v),v=null),m=S,Array.from(s.value).forEach(N=>{de.gsap.killTweensOf(N)}),de.gsap.killTweensOf(i.value,"rotation"),n.value?.pause(),de.gsap.set(i.value,{rotation:0});const _=(N,V)=>{const A=S.getBoundingClientRect(),Q=i.value.getBoundingClientRect(),w=Q.left+Q.width/2,R=Q.top+Q.height/2,[G,le,Z,Y]=Array.from(s.value),{borderWidth:se,cornerSize:ie,parallaxStrength:ce}=r,fe={x:A.left-w-se,y:A.top-R-se},we={x:A.right-w+se-ie,y:A.top-R-se},be={x:A.right-w+se-ie,y:A.bottom-R+se-ie},Ee={x:A.left-w-se,y:A.bottom-R+se-ie};if(N!==void 0&&V!==void 0){const $=A.left+A.width/2,W=A.top+A.height/2,te=(N-$)*ce,j=(V-W)*ce;fe.x+=te,fe.y+=j,we.x+=te,we.y+=j,be.x+=te,be.y+=j,Ee.x+=te,Ee.y+=j}const De=de.gsap.timeline(),Fe=[G,le,Z,Y],z=[fe,we,be,Ee];Fe.forEach(($,W)=>{De.to($,{x:z[W].x,y:z[W].y,duration:.2,ease:"power2.out"},0)})};x=!0,_(),setTimeout(()=>{x=!1},1);let D=null;const M=N=>{D||x||(D=requestAnimationFrame(()=>{const V=N;_(V.clientX,V.clientY),D=null}))},I=()=>{if(m=null,x=!1,s.value){const N=Array.from(s.value);de.gsap.killTweensOf(N);const{cornerSize:V}=r,A=[{x:-V*1.5,y:-V*1.5},{x:V*.5,y:-V*1.5},{x:V*.5,y:V*.5},{x:-V*1.5,y:V*.5}],Q=de.gsap.timeline();N.forEach((w,R)=>{Q.to(w,{x:A[R].x,y:A[R].y,duration:.3,ease:"power3.out"},0)})}v=setTimeout(()=>{if(!m&&i.value&&n.value){const V=de.gsap.getProperty(i.value,"rotation")%360;n.value.kill(),n.value=de.gsap.timeline({repeat:-1}).to(i.value,{rotation:"+=360",duration:t.spinDuration,ease:"none"}),de.gsap.to(i.value,{rotation:V+360,duration:t.spinDuration*(1-V/360),ease:"none",onComplete:()=>{n.value?.restart()}})}v=null},50),y(S)};h=M,f=I,S.addEventListener("mousemove",M),S.addEventListener("mouseleave",I)};window.addEventListener("mouseover",k,{passive:!0}),a=()=>{window.removeEventListener("mousemove",E),window.removeEventListener("mouseover",k),m&&y(m),v&&(clearTimeout(v),v=null),n.value?.kill(),n.value=null,i.value&&de.gsap.killTweensOf(i.value),s.value&&de.gsap.killTweensOf(Array.from(s.value)),i.value&&de.gsap.set(i.value,{x:0,y:0,rotation:0,opacity:0,display:"none"}),document.body.style.cursor=u,m=null}};return e.onMounted(()=>{c()}),e.onBeforeUnmount(()=>{a()}),e.watch(()=>[t.targetSelector,t.spinDuration,t.hideDefaultCursor],()=>{a(),c()}),e.watch(()=>t.spinDuration,()=>{!i.value||!n.value||n.value.isActive()&&(n.value.kill(),n.value=de.gsap.timeline({repeat:-1}).to(i.value,{rotation:"+=360",duration:t.spinDuration,ease:"none"}))},{immediate:!0}),(u,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"cursorRef",ref:i,class:e.normalizeClass(["top-0 left-0 z-[9999] fixed w-0 h-0 -translate-x-1/2 -translate-y-1/2 pointer-events-none mix-blend-difference transform opacity-0",t.cursorClass]),style:{willChange:"transform"}},[...d[0]||(d[0]=[e.createStaticVNode('<div class="top-1/2 left-1/2 absolute bg-white rounded-full w-1 h-1 -translate-x-1/2 -translate-y-1/2 transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-r-0 border-b-0 w-3 h-3 -translate-x-[150%] -translate-y-[150%] target-cursor-corner transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-b-0 border-l-0 w-3 h-3 -translate-y-[150%] translate-x-1/2 target-cursor-corner transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-t-0 border-l-0 w-3 h-3 translate-x-1/2 translate-y-1/2 target-cursor-corner transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-t-0 border-r-0 w-3 h-3 -translate-x-[150%] translate-y-1/2 target-cursor-corner transform" style="will-change:transform;"></div>',5)])],2))}}),Wn=e.defineComponent({__name:"index",props:{targetSelector:{default:".cursor-target"},spinDuration:{default:2},hideDefaultCursor:{type:Boolean,default:!0},showDemoContent:{type:Boolean,default:!1},demoItems:{default:void 0},classList:{default:()=>({})}},setup(o){const t=o,i=[{text:"THIS"},{text:"FEELS"},{text:"QUITE"},{text:"SNAPPY!",containerClass:"col-span-3"}],s=e.computed(()=>t.demoItems&&Array.isArray(t.demoItems)&&t.demoItems.length>0?t.demoItems:i),n=e.computed(()=>{const a=t.classList?.Location||{};return[a.position,a.width,a.height,a.left,a.top,a.zIndex].filter(Boolean)}),r=a=>[t.classList?.defaultItemContainerClass||"",a.containerClass].filter(Boolean).join(" "),l=a=>[t.classList?.defaultItemTextClass||"px-6 py-2 border border-[#aeffc5] border-dashed rounded-[15px] font-black text-[#aeffc5] text-[2rem] text-center cursor-target",a.textClass].filter(Boolean).join(" ");return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass,n.value])},[e.createVNode(Yn,{"target-selector":o.targetSelector||".cursor-target","spin-duration":o.spinDuration||2,"hide-default-cursor":o.hideDefaultCursor!==void 0?o.hideDefaultCursor:!0,"cursor-class":o.classList?.cursorClass},null,8,["target-selector","spin-duration","hide-default-cursor","cursor-class"]),o.showDemoContent&&s.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList?.demoContainerClass||"gap-4 grid grid-cols-3 mb-2")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(u,d)=>(e.openBlock(),e.createElementBlock("div",{key:d,class:e.normalizeClass(r(u))},[e.createElementVNode("p",{class:e.normalizeClass(l(u))},e.toDisplayString(u.text),3)],2))),128))],2)):e.createCommentVNode("",!0)],2))}}),jn={class:"mx-auto w-full max-w-3xl text-center"},Xn={class:"relative h-32"},qn={class:"pointer-events-none absolute left-1/2 top-0 size-[480px] -translate-x-1/2 before:absolute before:inset-0 before:-z-10 before:rounded-full before:bg-gradient-to-b before:from-zinc-500/25 before:via-zinc-500/5 before:via-25% before:to-zinc-500/0 before:to-75%"},Zn={class:"h-32 [mask-image:_linear-gradient(0deg,transparent,theme(colors.white)_20%,theme(colors.white))]"},Kn=["src","alt"],Jn={class:"mb-8 transition-all delay-300 duration-150 ease-in-out"},Qn={class:"text-2xl font-bold text-zinc-900 before:content-['\\201C'] after:content-['\\201D'] dark:text-zinc-100"},ea={class:"mt-4 flex w-full items-center justify-between gap-4 pt-12 md:pt-0"},ta={class:"flex flex-col items-center gap-1"},sa={class:"text-base italic"},ia={class:"text-sm italic"},oa=e.defineComponent({__name:"TestimonialSlider",props:{testimonials:{default:()=>[]},autoRotate:{type:Boolean,default:!0},duration:{default:5}},setup(o){const t=o,i=e.ref(0),s=e.ref(t.autoRotate),n=e.ref(null);let r=null;function l(){n.value&&n.value.parentElement&&(n.value.parentElement.style.height=`${n.value.clientHeight}px`)}function a(h){i.value=h,s.value=!1,u()}function c(){r=window.setInterval(()=>{i.value=i.value+1===t.testimonials.length?0:i.value+1,l()},t.duration*1e3)}function u(){r&&clearInterval(r),s.value&&c()}function d(){a((i.value+1)%t.testimonials.length)}function m(){a((i.value-1+t.testimonials.length)%t.testimonials.length)}return e.onMounted(()=>{l(),s.value&&c()}),e.onUnmounted(()=>{r&&clearInterval(r)}),(h,f)=>(e.openBlock(),e.createElementBlock("div",jn,[e.createElementVNode("div",Xn,[e.createElementVNode("div",qn,[e.createElementVNode("div",Zn,[e.createVNode(e.TransitionGroup,{name:"testimonial-image"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.testimonials,(x,v)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:`image-${v}`,class:"absolute inset-0 -z-10 flex h-full flex-col"},[e.createElementVNode("img",{class:"relative left-1/2 top-11 -translate-x-1/2 rounded-full",src:x.img,width:"60",height:"60",alt:x.name},null,8,Kn)])),[[e.vShow,i.value===v]])),128))]),_:1})])])]),e.createElementVNode("div",Jn,[e.createElementVNode("div",{ref_key:"testimonialsRef",ref:n,class:"relative flex flex-col"},[e.createVNode(e.TransitionGroup,{name:"testimonial-text"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.testimonials,(x,v)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:`text-${v}`,class:"w-full"},[e.createElementVNode("div",Qn,e.toDisplayString(x.quote),1)])),[[e.vShow,i.value===v]])),128))]),_:1})],512)]),e.createElementVNode("div",ea,[e.createElementVNode("button",{class:"group/button flex size-7 items-center justify-center rounded-full bg-gray-100 dark:bg-neutral-800",onClick:m},[e.createVNode(e.unref(St.ArrowLeft),{name:"lucide:arrow-left",class:"size-5 text-black transition-transform duration-300 group-hover/button:rotate-12 dark:text-neutral-400"})]),e.createElementVNode("div",ta,[e.createElementVNode("span",sa,e.toDisplayString(o.testimonials.at(i.value)?.name),1),e.createElementVNode("span",ia,e.toDisplayString(o.testimonials.at(i.value)?.role),1)]),e.createElementVNode("button",{class:"group/button flex size-7 items-center justify-center rounded-full bg-gray-100 dark:bg-neutral-800",onClick:d},[e.createVNode(e.unref(St.ArrowRight),{name:"lucide:arrow-right",class:"size-5 text-black transition-transform duration-300 group-hover/button:-rotate-12 dark:text-neutral-400"})])])]))}}),na=e.defineComponent({__name:"index",props:{testimonials:{default:()=>[{img:"https://randomuser.me/api/portraits/men/1.jpg",quote:"Inspira UI is sleeker than my star cruiser. Launch-ready in seconds. Zero crashes, zero gravity.",name:"Buzz Lightyear",role:"Intergalactic Interface Command"},{img:"https://randomuser.me/api/portraits/women/2.jpg",quote:"Clickin' around this thing feels like ridin' a horse with turbo boosters. Inspira's got giddyup!",name:"Jessie",role:"Yeehaw Engagement & Barnyard UX"},{img:"https://randomuser.me/api/portraits/men/3.jpg",quote:"I've seen some clunky UIs in my day... but this one? Smoother than a tumbleweed on Tuesday.",name:"Woody",role:"Sheriff"},{img:"https://randomuser.me/api/portraits/men/4.jpg",quote:"I was terrified. Then I clicked. Nothing exploded. Inspira UI is a safe space. I'm thriving.",name:"Rex",role:"Senior Panic Tester, Dinosaur Usability Lab"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"relative h-[500px] w-full overflow-hidden rounded-lg border bg-background",i.value])},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.sliderClass||"mt-[64px] flex justify-center px-12")},[e.createVNode(oa,{testimonials:o.testimonials},null,8,["testimonials"])],2)],2))}}),aa=e.defineComponent({__name:"Text3d",props:{textColor:{default:"white"},letterSpacing:{default:-.1},strokeColor:{default:"black"},shadowColor:{default:"yellow"},strokeSize:{default:20},shadow1Size:{default:7},shadow2Size:{default:10},class:{},animate:{type:Boolean,default:!0},animationDuration:{default:1500}},setup(o){e.useCssVars(a=>({v737795be:i.value,a152ef28:s.value,v50ecc536:a.strokeColor,v03dc9f8e:n.value,db53c18c:r.value,v07302b7d:a.shadowColor,v7e1d6e10:a.textColor,v3afa6846:l.value}));const t=o,i=e.computed(()=>`${t.letterSpacing}ch`),s=e.computed(()=>`${t.strokeSize}px`),n=e.computed(()=>`${t.shadow1Size}px`),r=e.computed(()=>`${t.shadow2Size}px`),l=e.computed(()=>`${t.animationDuration}ms`);return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("text-3d flex items-center justify-center",o.animate?"animate-text-3d":"",t.class))},[e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),ra=me(aa,[["__scopeId","data-v-8d20718d"]]),la=e.defineComponent({__name:"index",props:{texts:{default:()=>[{text:"3D",shadowColor:"red",animate:!0,class:"text-8xl font-bold max-md:text-7xl"},{text:"IS",shadowColor:"skyblue",animate:!1,class:"text-8xl font-black max-md:text-7xl"},{text:"AWESOME",shadowColor:"",animate:!0,class:"text-8xl font-bold max-md:text-7xl"}]},classList:{default:()=>({})}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"flex flex-col items-center justify-center overflow-hidden bg-black px-4 py-16 font-heading")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.texts,(s,n)=>(e.openBlock(),e.createBlock(ra,{key:n,class:e.normalizeClass(s.class||"text-8xl font-bold max-md:text-7xl"),"shadow-color":s.shadowColor,animate:s.animate},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.text),1)]),_:2},1032,["class","shadow-color","animate"]))),128))],2))}}),ca=e.defineComponent({__name:"TextGenerateEffect",props:{words:{},filter:{type:Boolean,default:!0},duration:{default:.7},delay:{default:0},class:{}},setup(o){const t=o,i=e.ref(null),s=e.computed(()=>t.words.split(" ")),n=e.computed(()=>({opacity:0,filter:t.filter?"blur(10px)":"none",transition:`opacity ${t.duration}s, filter ${t.duration}s`}));return e.onMounted(()=>{if(i.value){const r=i.value.querySelectorAll("span");setTimeout(()=>{r.forEach((l,a)=>{setTimeout(()=>{l.style.opacity="1",l.style.filter=t.filter?"blur(0px)":"none"},a*200)})},t.delay)}}),(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("leading-snug tracking-wide",t.class))},[e.createElementVNode("div",{ref_key:"scope",ref:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(a,c)=>(e.openBlock(),e.createElementBlock("span",{key:a+c,class:"inline-block",style:e.normalizeStyle(n.value)},e.toDisplayString(a)+"  ",5))),128))],512)],2))}}),ua=e.defineComponent({__name:"index",props:{words:{default:"Nuxt is an open source framework that makes web development intuitive and powerful.Create performant and production-grade full-stack web apps and websites with confidence."},classList:{default:()=>({})}},setup(o){return(t,i)=>{const s=e.resolveComponent("ClientOnly");return e.openBlock(),e.createBlock(s,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.overallClass||"flex h-64 items-center justify-center max-lg:w-full min-md:flex-1")},[e.createVNode(ca,{words:o.words,class:e.normalizeClass(o.classList?.textClass||"text-2xl font-bold")},null,8,["words","class"])],2)]),_:1})}}}),da=["src"],ha=e.defineComponent({__name:"Timeline",props:{containerClass:{},class:{},items:{default:()=>[]},classList:{},title:{},titleClass:{},description:{},animationDuration:{default:5e3}},setup(o){const t=o,i=e.ref(null),s=e.ref(null),n=e.ref(0),r=e.ref(0),l=e.reactive(new Set),a=e.ref([]),c=[];let u=null,d=null;const m=(v,y)=>{c[y]=v},h=()=>{if(!s.value)return;const v=s.value.getBoundingClientRect();a.value=c.map(y=>y?y.getBoundingClientRect().top-v.top:0)},f=()=>{const v=r.value,y=v+550;let p=-1,E=1/0;a.value.forEach((k,b)=>{if(k>=v&&k<=y){const L=Math.abs(y-k);L<E&&(E=L,p=b)}}),l.clear(),p>=0&&l.add(p)},x=v=>{d||(d=v);const p=(v-d)%t.animationDuration/t.animationDuration;r.value=-550+p*(n.value+550),f(),u=requestAnimationFrame(x)};return e.onMounted(async()=>{if(await e.nextTick(),s.value){const v=s.value.getBoundingClientRect();n.value=v.height}h(),u=requestAnimationFrame(x)}),e.onUnmounted(()=>{u&&cancelAnimationFrame(u)}),(v,y)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"timelineContainerRef",ref:i,class:e.normalizeClass(o.classList?.overallClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.headerClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.titleClass)},[e.createElementVNode("img",{src:o.title,alt:""},null,8,da)],2),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.headerDescriptionClass)},e.toDisplayString(o.description),3)],2),e.createElementVNode("div",{ref_key:"timelineRef",ref:s,class:e.normalizeClass(o.classList?.timelineRefClass)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(p,E)=>(e.openBlock(),e.createElementBlock("div",{key:p.id+E,ref_for:!0,ref:k=>m(k,E),class:e.normalizeClass(o.classList?.timelineItemClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.yearClass||"sticky top-40 z-40 flex flex-col items-center self-start")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.pointClass),style:e.normalizeStyle(l.has(E)?{backgroundColor:"#1e7ff0"}:{})},[e.createElementVNode("div",{class:e.normalizeClass(["size-4 rounded-full border p-2 transition-colors duration-300",l.has(E)?"border-white bg-white":"border-neutral-300 bg-neutral-200 dark:border-neutral-700 dark:bg-neutral-800"])},null,2)],6),e.createElementVNode("h3",{class:e.normalizeClass(o.classList?.labelClass)},e.toDisplayString(p.label),3)],2),e.renderSlot(v.$slots,p.id)],2))),128)),e.createElementVNode("div",{style:e.normalizeStyle({height:n.value+"px"}),class:"absolute left-[26px] top-0 w-[2px] overflow-hidden bg-[linear-gradient(to_bottom,var(--tw-gradient-stops))] from-transparent from-0% via-neutral-200 to-transparent to-[99%] [mask-image:linear-gradient(to_bottom,transparent_0%,black_10%,black_90%,transparent_100%)] dark:via-neutral-700"},[e.createElementVNode("div",{style:e.normalizeStyle({height:"550px",top:r.value+"px"}),class:"absolute inset-x-0 w-[2px] rounded-full bg-gradient-to-t from-purple-500 from-0% via-blue-500 via-10% to-transparent"},null,4)],4)],2)],2))}}),ma=["innerHTML"],fa=["src"],pa=["src"],va=["src"],ga=["src"],xa=e.defineComponent({__name:"index",props:{data:{default:()=>[]},title:{default:"Beam me up"},titleClass:{},imgList:{default:()=>[]},description:{},imgSpeed:{default:8},animationDuration:{},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList?.Location||{};return[n.position,n.width,n.height,n.left,n.top].filter(Boolean)}),s=e.computed(()=>t.imgList.length>2);return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([i.value,"flex"])},[e.createVNode(ha,{items:o.data,title:o.title,titleClass:o.titleClass,classList:o.classList,description:o.description,animationDuration:o.animationDuration},e.createSlots({_:2},[e.renderList(o.data,(l,a)=>({name:l.id,fn:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.sectionClass||"relative w-full pl-20 pr-4 md:pl-4")},[e.createElementVNode("h3",{class:e.normalizeClass([o.classList?.titleClass||"mb-4 block text-left text-2xl font-bold text-neutral-500 dark:text-neutral-500","whitespace-pre-wrap"]),innerHTML:l?.description},null,10,ma)],2),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.descriptionClass||"mb-8 text-xs font-normal text-neutral-800 md:text-sm dark:text-neutral-200")},null,2)])}))]),1032,["items","title","titleClass","classList","description","animationDuration"]),e.createElementVNode("div",{class:e.normalizeClass([o.classList?.imgContainerClass||"flex flex-col w-[700px] justify-center items-center mr-[90px] h-[100vh]","overflow-hidden"])},[s.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"scroll-container flex flex-col",style:e.normalizeStyle({animationDuration:o.imgSpeed+"s"})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[35px] mb-[35px]"),key:l,src:l,alt:""},null,10,pa))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[35px] mb-[35px]"),key:l+"-copy",src:l,alt:""},null,10,va))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[35px] mb-[35px]"),key:l+"-copy2",src:l,alt:""},null,10,ga))),128))],4)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[70px]"),key:l,src:l,alt:""},null,10,fa))),128))],2)],2))}}),ya=me(xa,[["__scopeId","data-v-c3ccd3ba"]]),wa={class:"absolute -left-4 top-3 md:-left-12"},ba=["viewBox","height"],Ca=["d"],Ea=["d"],ka=["y1","y2"],Sa=e.defineComponent({__name:"TracingBeam",props:{class:String},setup(o){const t=e.ref(),i=e.ref(),s=e.ref(0),n=e.ref(0),r=e.ref(0),l=e.computed(()=>m(s.value,0,.8,s.value,n.value)*(1.4-r.value)),a=e.computed(()=>m(s.value,0,1,s.value,n.value-500)*(1.4-r.value)),c=e.ref({y1:l.value,y2:a.value});e.watch(l,h=>{c.value.y1=h}),e.watch(a,h=>{c.value.y2=h});function u(){if(t.value){const h=t.value.getBoundingClientRect(),f=window.innerHeight,x=h.height;r.value=(f-h.top)/(f+x),s.value=h.y/f*-1}}e.onMounted(()=>{window.addEventListener("scroll",u),window.addEventListener("resize",u),u(),new ResizeObserver(function(){d()}).observe(i.value),d()}),e.onUnmounted(()=>{t.value?.removeEventListener("scroll",u),window.removeEventListener("resize",u)});function d(){i.value&&(n.value=i.value.offsetHeight)}function m(h,f,x,v,y){return(h-f)*(y-v)/(x-f)+v}return(h,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"tracingBeamRef",ref:t,class:e.normalizeClass(e.unref(J)("relative w-full max-w-4xl mx-auto h-full",h.$props.class))},[e.createElementVNode("div",wa,[e.createElementVNode("div",{style:e.normalizeStyle({boxShadow:s.value>0?"none":"rgba(0, 0, 0, 0.24) 0px 3px 8px"}),class:"border-netural-200 ml-[27px] flex size-4 items-center justify-center rounded-full border shadow-sm"},[e.createVNode(e.unref(xe.Motion),{animate:{backgroundColor:s.value>0?"white":"var(--emerald-500)",borderColor:s.value>0?"white":"var(--emerald-600)"},class:"size-2 rounded-full border border-neutral-300 bg-white"},null,8,["animate"])],4),(e.openBlock(),e.createElementBlock("svg",{viewBox:`0 0 20 ${n.value}`,width:"20",height:n.value,class:"ml-4 block","aria-hidden":"true"},[e.createElementVNode("path",{d:`M 1 0V -36 l 18 24 V ${n.value*.8} l -18 24V ${n.value}`,fill:"none",stroke:"#9091A0","stroke-opacity":"0.16"},null,8,Ca),e.createElementVNode("path",{d:`M 1 0V -36 l 18 24 V ${n.value*.8} l -18 24V ${n.value}`,fill:"none",stroke:"url(#gradient)","stroke-width":"1.25",class:"motion-reduce:hidden"},null,8,Ea),e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:"gradient",gradientUnits:"userSpaceOnUse",x1:"0",x2:"0",y1:c.value.y1,y2:c.value.y2},[...f[0]||(f[0]=[e.createElementVNode("stop",{"stop-color":"#18CCFC","stop-opacity":"0"},null,-1),e.createElementVNode("stop",{"stop-color":"#18CCFC"},null,-1),e.createElementVNode("stop",{offset:"0.325","stop-color":"#6344F5"},null,-1),e.createElementVNode("stop",{offset:"1","stop-color":"#AE48FF","stop-opacity":"0"},null,-1)])],8,ka)])],8,ba))]),e.createElementVNode("div",{ref_key:"tracingBeamContentRef",ref:i},[e.renderSlot(h.$slots,"default")],512)],2))}}),_a=["src"],Ta=e.defineComponent({__name:"index",props:{content:{default:()=>[{title:"Lorem Ipsum Dolor Sit Amet",description:["Sit duis est minim proident non nisi velit non consectetur. Esse adipisicing laboris consectetur enim ipsum reprehenderit eu deserunt Lorem ut aliqua anim do. Duis cupidatat qui irure cupidatat incididunt incididunt enim magna id est qui sunt fugiat. Laboris do duis pariatur fugiat Lorem aute sit ullamco. Qui deserunt non reprehenderit dolore nisi velit exercitation Lorem qui do enim culpa. Aliqua eiusmod in occaecat reprehenderit laborum nostrud fugiat voluptate do Lorem culpa officia sint labore. Tempor consectetur excepteur ut fugiat veniam commodo et labore dolore commodo pariatur.","Dolor minim irure ut Lorem proident. Ipsum do pariatur est ad ad veniam in commodo id reprehenderit adipisicing. Proident duis exercitation ad quis ex cupidatat cupidatat occaecat adipisicing.","Tempor quis dolor veniam quis dolor. Sit reprehenderit eiusmod reprehenderit deserunt amet laborum consequat adipisicing officia qui irure id sint adipisicing. Adipisicing fugiat aliqua nulla nostrud. Amet culpa officia aliquip deserunt veniam deserunt officia adipisicing aliquip proident officia sunt."],badge:"Vue",image:"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&q=80&w=3540&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{title:"Lorem Ipsum Dolor Sit Amet",description:["Ex irure dolore veniam ex velit non aute nisi labore ipsum occaecat deserunt cupidatat aute. Enim cillum dolor et nulla sunt exercitation non voluptate qui aliquip esse tempor. Ullamco ut sunt consectetur sint qui qui do do qui do. Labore laborum culpa magna reprehenderit ea velit id esse adipisicing deserunt amet dolore. Ipsum occaecat veniam commodo proident aliqua id ad deserunt dolor aliquip duis veniam sunt.","In dolore veniam excepteur eu est et sunt velit. Ipsum sint esse veniam fugiat esse qui sint ad sunt reprehenderit do qui proident reprehenderit. Laborum exercitation aliqua reprehenderit ea sint cillum ut mollit."],badge:"Nuxt",image:"https://images.unsplash.com/photo-1519681393784-d120267933ba?auto=format&fit=crop&q=80&w=3540&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{title:"Lorem Ipsum Dolor Sit Amet",description:["Ex irure dolore veniam ex velit non aute nisi labore ipsum occaecat deserunt cupidatat aute. Enim cillum dolor et nulla sunt exercitation non voluptate qui aliquip esse tempor. Ullamco ut sunt consectetur sint qui qui do do qui do. Labore laborum culpa magna reprehenderit ea velit id esse adipisicing deserunt amet dolore. Ipsum occaecat veniam commodo proident aliqua id ad deserunt dolor aliquip duis veniam sunt."],badge:"Inspira UI",image:"https://images.unsplash.com/photo-1469474968028-56623f02e42e?auto=format&fit=crop&q=80&w=3506&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"w-full items-center justify-center px-8",i.value])},[e.createVNode(Sa,{class:e.normalizeClass(o.classList?.beamClass||"px-6")},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.contentClass||"relative mx-auto max-w-2xl pt-4 antialiased")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.content,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:`content-${l}`,class:e.normalizeClass(o.classList?.itemClass||"mb-10")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.badgeClass||"mb-4 w-fit rounded-full bg-black px-2 text-sm text-white dark:bg-white dark:text-black")},e.toDisplayString(r.badge),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.titleClass||"mb-4 text-xl")},e.toDisplayString(r.title),3),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.descriptionClass||"prose prose-sm dark:prose-invert text-sm")},[r.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:r.image,alt:"blog thumbnail",class:e.normalizeClass(o.classList?.imageClass||"mb-10 rounded-lg object-cover")},null,10,_a)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.description,(a,c)=>(e.openBlock(),e.createElementBlock("p",{key:`desc-${c}`},e.toDisplayString(a),1))),128))])],2)],2))),128))],2)]),_:1},8,["class"])],2))}}),Ba={class:"navigation"},Ma={class:"nav-container"},Da={class:"nav-brand"},Ra={class:"nav-icon"},La={class:"nav-text"},Ia=["title"],za={class:"nav-icon"},Aa={class:"nav-text"},Pa={__name:"Navigation",setup(o){Vt.useRoute();const t=e.ref(!1),i=Ce.useColorMode(),s=()=>{i.value=i.value==="dark"?"light":"dark"},n=[{path:"/",name:"首页",icon:"🏠"},{path:"/page-1",name:"Demo 1",icon:"🎨"},{path:"/page-2",name:"Demo 2",icon:"✨"},{path:"/page-3",name:"Demo 3",icon:"🔲"},{path:"/page-4",name:"Demo 4",icon:"🌟"},{path:"/page-5",name:"Demo 5",icon:"🎯"},{path:"/page-6",name:"Demo 6",icon:"🍱"},{path:"/page-7",name:"Demo 7",icon:"📜"},{path:"/page-8",name:"Demo 8",icon:"📈"}],r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,c)=>{const u=e.resolveComponent("router-link");return e.openBlock(),e.createElementBlock("nav",Ba,[e.createElementVNode("div",Ma,[e.createElementVNode("div",Da,[e.createVNode(u,{to:"/",class:"brand-link"},{default:e.withCtx(()=>[...c[0]||(c[0]=[e.createElementVNode("span",{class:"brand-icon"},"🎨",-1),e.createElementVNode("span",{class:"brand-text"},"SensingPlatform Web UI",-1)])]),_:1})]),e.createElementVNode("div",{class:e.normalizeClass(["nav-menu",{"nav-menu-open":t.value}])},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,d=>e.createVNode(u,{key:d.path,to:d.path,class:e.normalizeClass(["nav-link",{"nav-link-active":a.$route.path===d.path}]),onClick:l},{default:e.withCtx(()=>[e.createElementVNode("span",Ra,e.toDisplayString(d.icon),1),e.createElementVNode("span",La,e.toDisplayString(d.name),1)]),_:2},1032,["to","class"])),64)),e.createElementVNode("button",{onClick:s,class:"nav-link dark-mode-toggle",title:e.unref(i)==="dark"?"切换到浅色模式":"切换到暗色模式"},[e.createElementVNode("span",za,e.toDisplayString(e.unref(i)==="dark"?"☀️":"🌙"),1),e.createElementVNode("span",Aa,e.toDisplayString(e.unref(i)==="dark"?"浅色":"暗色"),1)],8,Ia)],2),e.createElementVNode("div",{class:"nav-toggle",onClick:r},[e.createElementVNode("span",{class:e.normalizeClass(["hamburger",{"hamburger-open":t.value}])},[...c[1]||(c[1]=[e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1)])],2)])])])}}},Na=me(Pa,[["__scopeId","data-v-d47bcaa4"]]);exports.AnimatedTestimonials=ws;exports.Aurora=_s;exports.BendingGallery=Bs;exports.BentoGrid=Ns;exports.Card3D=vs;exports.Carousel3D=Gs;exports.ContainerScroll=Ks;exports.DirectionAwareHover=si;exports.Dock=ri;exports.DomeGallery=fi;exports.ExpandableGallery=gi;exports.FluidCursor=Ci;exports.IButton=Ei;exports.IInput=ht;exports.IconCloud=Si;exports.InfiniteGrid=Ji;exports.InfiniteMenu=io;exports.InspiraImageParticles=ao;exports.InteractiveGridPattern=uo;exports.Lightning=bo;exports.LinkPreview=To;exports.MagnifyingGlass=Po;exports.Marquee=Yo;exports.Meteors=Xo;exports.Navigation=Na;exports.PhotoGallery=Jo;exports.RegistrationForm=on;exports.RippleButton=cn;exports.RollingGallery=hn;exports.ScratchToReveal=vn;exports.ScrollIsland=Bn;exports.SparkElement=Ln;exports.SparklesText=Nn;exports.Spline=Un;exports.Stack=Gn;exports.TargetCursor=Wn;exports.TestimonialSlider=na;exports.Text3d=la;exports.TextGenerateEffect=ua;exports.Timeline=ya;exports.TracingBeam=Ta;
896
+ `,wo=e.defineComponent({__name:"Aurora",props:{colorStops:{default:()=>["#7cff67","#171D22","#7cff67"]},amplitude:{default:1},blend:{default:.5},time:{},speed:{default:1},intensity:{default:1},className:{default:""},style:{default:()=>({})}},setup(o){const t=o,i=e.useTemplateRef("containerRef");let s=null,n=0;const r=()=>{const a=i.value;if(!a)return;s=new G.Renderer({alpha:!0,premultipliedAlpha:!0,antialias:!0});const c=s.gl;c.clearColor(0,0,0,0),c.enable(c.BLEND),c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.canvas.style.backgroundColor="transparent";let u;const h=()=>{if(!a)return;const g=a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,x=a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,p=Math.max(g,300),k=Math.max(x,300);s.setSize(p,k),u&&(u.uniforms.uResolution.value=[p,k])};window.addEventListener("resize",h);const f=new G.Triangle(c);f.attributes.uv&&delete f.attributes.uv;const d=t.colorStops.map(g=>{const x=new G.Color(g);return[x.r,x.g,x.b]});u=new G.Program(c,{vertex:xo,fragment:yo,uniforms:{uTime:{value:0},uAmplitude:{value:t.amplitude},uColorStops:{value:d},uResolution:{value:[Math.max(a.parentElement?.offsetWidth||a.offsetWidth||window.innerWidth,300),Math.max(a.parentElement?.offsetHeight||a.offsetHeight||window.innerHeight,300)]},uBlend:{value:t.blend},uIntensity:{value:t.intensity}}});const m=new G.Mesh(c,{geometry:f,program:u});a.appendChild(c.canvas),c.canvas.style.width="100%",c.canvas.style.height="100%",c.canvas.style.display="block",c.canvas.style.position="absolute",c.canvas.style.top="0",c.canvas.style.left="0";const v=g=>{n=requestAnimationFrame(v);const x=t.time??g*.01,p=t.speed??1;if(u){u.uniforms.uTime.value=x*p*.1,u.uniforms.uAmplitude.value=t.amplitude??1,u.uniforms.uBlend.value=t.blend??.5,u.uniforms.uIntensity.value=t.intensity??1;const k=t.colorStops??["#27FF64","#7cff67","#27FF64"];u.uniforms.uColorStops.value=k.map(E=>{const w=new G.Color(E);return[w.r,w.g,w.b]}),s.render({scene:m})}};return n=requestAnimationFrame(v),h(),()=>{cancelAnimationFrame(n),window.removeEventListener("resize",h),a&&c.canvas.parentNode===a&&a.removeChild(c.canvas),c.getExtension("WEBGL_lose_context")?.loseContext()}},l=()=>{if(n&&cancelAnimationFrame(n),s){const a=s.gl,c=i.value;c&&a.canvas.parentNode===c&&c.removeChild(a.canvas),a.getExtension("WEBGL_lose_context")?.loseContext()}s=null};return e.onMounted(()=>{r()}),e.onUnmounted(()=>{l()}),e.watch(()=>[t.amplitude,t.intensity],()=>{l(),r()}),(a,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:e.normalizeClass([o.className,"relative"]),style:e.normalizeStyle(o.style)},null,6))}}),bo=me(wo,[["__scopeId","data-v-3f249df1"]]),Co=e.defineComponent({__name:"index",props:{hue:{default:230},xOffset:{default:0},speed:{default:1},intensity:{default:1},size:{default:1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList?.Location,r=["lightning-container"];return n?.width&&r.push(n.width),n?.height&&r.push(n.height),n?.position&&r.push(n.position),n?.left&&r.push(n.left),n?.top&&r.push(n.top),r.join(" ")}),s=e.computed(()=>{const n=t.classList?.Location,r={};return n?.position&&n.position==="absolute"?r.position="absolute":n?.position||(r.position="relative"),r});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value),style:e.normalizeStyle(s.value)},[e.createVNode(vo,{hue:o.hue,"x-offset":o.xOffset,speed:o.speed,intensity:o.intensity,size:o.size,class:e.normalizeClass(o.classList?.overallClass||"w-full h-full")},null,8,["hue","x-offset","speed","intensity","size","class"]),e.createVNode(bo,{"color-stops":["#7cff67","#171D22","#7cff67"],amplitude:1,blend:.5,speed:1,intensity:1,class:"w-full h-full"})],6))}}),Eo=me(Co,[["__scopeId","data-v-c26499e2"]]),ko=["href"],So={class:"block rounded-xl border-2 border-transparent bg-white p-1 shadow-lg dark:bg-gray-900"},To=["src","width","height"],Mo=e.defineComponent({__name:"LinkPreview",props:{isStatic:{type:Boolean,default:!1},imageSrc:{default:""},url:{default:""},class:{},linkClass:{},width:{default:200},height:{default:125}},setup(o){const t=o,i=e.ref(!1),s=e.ref(!0),n=e.ref(null),r=e.ref(!1),l=e.computed(()=>t.isStatic?t.imageSrc:`https://api.microlink.io/?${new URLSearchParams({url:t.url,screenshot:"true",meta:"false",embed:"screenshot.url",colorScheme:"light","viewport.isMobile":"true","viewport.deviceScaleFactor":"1","viewport.width":String(t.width*3),"viewport.height":String(t.height*3)}).toString()}`),a=e.reactive({x:0,y:0}),c=e.computed(()=>{if(!n.value)return{};const g=20,x=t.width,p=t.height,k=window.innerWidth;let E=a.x-x/2;E=Math.min(Math.max(0,E),k-x);const w=n.value.parentElement?.getBoundingClientRect(),D=w?w.top-p-g:0;return{position:"fixed",left:`${E}px`,top:`${D}px`,width:`${x}px`,height:`${p}px`}}),u=e.computed(()=>({width:`${t.width}px`,height:`${t.height}px`})),h=e.computed(()=>r.value?"animate-pop":"");function f(g){a.x=g.clientX,a.y=g.clientY}function d(){i.value=!0,setTimeout(()=>{r.value=!0},50)}function m(){i.value=!1,r.value=!1}function v(){s.value=!1}return(g,x)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("relative inline-block",t.class))},[e.createElementVNode("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",class:e.normalizeClass(e.unref(J)("text-black dark:text-white",t.linkClass)),onMousemove:f,onMouseenter:d,onMouseleave:m},[e.renderSlot(g.$slots,"default",{},void 0,!0)],42,ko),i.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"preview",ref:n,class:"pointer-events-none absolute z-50",style:e.normalizeStyle(c.value)},[e.createElementVNode("div",{class:e.normalizeClass(["overflow-hidden rounded-xl shadow-xl",[h.value,{"transform-gpu":!t.isStatic}]])},[e.createElementVNode("div",So,[e.createElementVNode("img",{src:l.value,width:o.width,height:o.height,class:"size-full rounded-lg object-cover",style:e.normalizeStyle(u.value),alt:"preview",onLoad:v},null,44,To)])],2)],4)):e.createCommentVNode("",!0)],2))}}),At=me(Mo,[["__scopeId","data-v-e01fc5b1"]]),_o={key:0},Bo={__name:"index",props:{firstParagraph:{type:Object,default:()=>({links:[{text:"Tailwind CSS",url:"https://tailwindcss.com",class:"font-bold",suffix:"and"},{text:"motion-v",url:"https://motion.unovue.com/",class:"font-bold",suffix:"are a great way to build modern websites."}]})},secondParagraph:{type:Object,default:()=>({prefix:"Visit",links:[{text:"Inspira UI",url:"https://inspira-ui.com",width:400,height:200,gradient:"bg-gradient-to-br from-purple-500 to-pink-500 bg-clip-text font-bold text-transparent"}],suffix:"for more cool components"})},classList:{type:Object,default:()=>({})}},setup(o){const t=o;console.log("LinkPreviewComp props:",t);const i=e.computed(()=>t.firstParagraph.links),s=e.computed(()=>t.secondParagraph.links),n=e.computed(()=>t.secondParagraph.prefix),r=e.computed(()=>t.secondParagraph.suffix),l=e.computed(()=>{const a=[];t.classList?.overallClass?a.push(t.classList.overallClass):a.push("flex h-[40rem] flex-col items-center justify-center px-4");const c=t.classList?.Location;return c?.position&&a.push(c.position),c?.width&&a.push(c.width),c?.height&&a.push(c.height),c?.left&&a.push(c.left),c?.top&&a.push(c.top),a.join(" ")});return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.createElementVNode("p",{class:e.normalizeClass(o.classList?.firstParagraphClass||"mx-auto mb-10 max-w-3xl text-xl text-neutral-500 md:text-3xl dark:text-neutral-400")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(u,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:h},[e.createVNode(At,{url:u.url,class:e.normalizeClass(u.class),width:u.width,height:u.height},{default:e.withCtx(()=>[u.gradient?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(u.gradient)},e.toDisplayString(u.text),3)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(u.text),1)],64))]),_:2},1032,["url","class","width","height"]),u.suffix?(e.openBlock(),e.createElementBlock("span",_o,e.toDisplayString(u.suffix),1)):e.createCommentVNode("",!0)],64))),128))],2),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.secondParagraphClass||"mx-auto max-w-3xl text-xl text-neutral-500 md:text-3xl dark:text-neutral-400")},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(u,h)=>(e.openBlock(),e.createBlock(At,{key:h,url:u.url,class:e.normalizeClass(u.class),width:u.width,height:u.height},{default:e.withCtx(()=>[u.gradient?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(u.gradient)},e.toDisplayString(u.text),3)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(u.text),1)],64))]),_:2},1032,["url","class","width","height"]))),128)),e.createTextVNode(" "+e.toDisplayString(r.value),1)],2)],2))}},Do=e.defineComponent({__name:"Rays",props:{class:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("svg",{width:"380",height:"397",viewBox:"0 0 380 397",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(e.unref(J)("absolute left-0 top-0 pointer-events-none z-[1]",t.class))},[...s[0]||(s[0]=[e.createStaticVNode('<g filter="url(#filter0_f_120_7480)"><path d="M-37.4202 -76.0163L-18.6447 -90.7295L242.792 162.228L207.51 182.074L-37.4202 -76.0163Z" fill="url(#paint0_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" opacity="0.3" filter="url(#filter1_f_120_7480)"><path d="M-109.54 -36.9027L-84.2903 -58.0902L178.786 193.228L132.846 223.731L-109.54 -36.9027Z" fill="url(#paint1_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" opacity="0.86" filter="url(#filter2_f_120_7480)"><path d="M-100.647 -65.795L-69.7261 -92.654L194.786 157.229L139.51 197.068L-100.647 -65.795Z" fill="url(#paint2_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" opacity="0.31" filter="url(#filter3_f_120_7480)"><path d="M163.917 -89.0982C173.189 -72.1354 80.9618 2.11525 34.7334 30.1553C-11.495 58.1954 -106.505 97.514 -115.777 80.5512C-125.048 63.5885 -45.0708 -3.23233 1.15763 -31.2724C47.386 -59.3124 154.645 -106.061 163.917 -89.0982Z" fill="#8A50FF"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter4_f_120_7480)"><path d="M34.2031 13.2222L291.721 269.534" stroke="url(#paint3_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter5_f_120_7480)"><path d="M41 -40.9331L298.518 215.378" stroke="url(#paint4_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter6_f_120_7480)"><path d="M61.3691 3.8999L317.266 261.83" stroke="url(#paint5_linear_120_7480)"></path></g><g style="mix-blend-mode:plus-lighter;" filter="url(#filter7_f_120_7480)"><path d="M-1.46191 9.06348L129.458 145.868" stroke="url(#paint6_linear_120_7480)" stroke-width="2"></path></g>',8),e.createElementVNode("defs",null,[e.createElementVNode("filter",{id:"filter0_f_120_7480",x:"-49.4199",y:"-102.729",width:"304.212",height:"296.803",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"6",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter1_f_120_7480",x:"-115.54",y:"-64.0903",width:"300.326",height:"293.822",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"3",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter2_f_120_7480",x:"-111.647",y:"-103.654",width:"317.434",height:"311.722",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"5.5",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter3_f_120_7480",x:"-212.518",y:"-188.71",width:"473.085",height:"369.366",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"48",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter4_f_120_7480",x:"25.8447",y:"4.84521",width:"274.234",height:"273.065",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"4",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter5_f_120_7480",x:"32.6416",y:"-49.3101",width:"274.234",height:"273.065",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"4",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter6_f_120_7480",x:"54.0078",y:"-3.47461",width:"270.619",height:"272.68",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"3.5",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("filter",{id:"filter7_f_120_7480",x:"-9.2002",y:"1.32812",width:"146.396",height:"152.275",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},[e.createElementVNode("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),e.createElementVNode("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElementVNode("feGaussianBlur",{stdDeviation:"3.5",result:"effect1_foregroundBlur_120_7480"})]),e.createElementVNode("linearGradient",{id:"paint0_linear_120_7480",x1:"-57.5042",y1:"-134.741",x2:"403.147",y2:"351.523",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{offset:"0.214779",stopColor:"#AF53FF"}),e.createElementVNode("stop",{offset:"0.781583",stopColor:"#B253FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint1_linear_120_7480",x1:"-122.154",y1:"-103.098",x2:"342.232",y2:"379.765",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{offset:"0.214779",stopColor:"#AF53FF"}),e.createElementVNode("stop",{offset:"0.781583",stopColor:"#9E53FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint2_linear_120_7480",x1:"-106.717",y1:"-138.534",x2:"359.545",y2:"342.58",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{offset:"0.214779",stopColor:"#9D53FF"}),e.createElementVNode("stop",{offset:"0.781583",stopColor:"#A953FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint3_linear_120_7480",x1:"72.701",y1:"54.347",x2:"217.209",y2:"187.221",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#AF81FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#C081FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint4_linear_120_7480",x1:"79.4978",y1:"0.191681",x2:"224.006",y2:"133.065",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#AF81FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#C081FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint5_linear_120_7480",x1:"79.6568",y1:"21.8377",x2:"234.515",y2:"174.189",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#B981FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#CF81FF",stopOpacity:"0"})]),e.createElementVNode("linearGradient",{id:"paint6_linear_120_7480",x1:"16.119",y1:"27.6966",x2:"165.979",y2:"184.983",gradientUnits:"userSpaceOnUse"},[e.createElementVNode("stop",{stopColor:"#A981FF"}),e.createElementVNode("stop",{offset:"1",stopColor:"#CB81FF",stopOpacity:"0"})])],-1)])],2))}}),Ro={},Lo={width:"380",height:"315",viewBox:"0 0 380 315",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"pointer-events-none absolute left-1/2 top-0 w-full -translate-x-1/2"};function Io(o,t){return e.openBlock(),e.createElementBlock("svg",Lo,[...t[0]||(t[0]=[e.createStaticVNode('<g filter="url(#filter0_f_120_7473)"><circle cx="34" cy="52" r="114" fill="#6925E7"></circle></g><g filter="url(#filter1_f_120_7473)"><circle cx="332" cy="24" r="102" fill="#8A4BFF"></circle></g><g filter="url(#filter2_f_120_7473)"><circle cx="191" cy="53" r="102" fill="#802FE3"></circle></g><defs><filter id="filter0_f_120_7473" x="-192" y="-174" width="452" height="452" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="56" result="effect1_foregroundBlur_120_7473"></feGaussianBlur></filter><filter id="filter1_f_120_7473" x="70" y="-238" width="524" height="524" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="80" result="effect1_foregroundBlur_120_7473"></feGaussianBlur></filter><filter id="filter2_f_120_7473" x="-71" y="-209" width="524" height="524" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="80" result="effect1_foregroundBlur_120_7473"></feGaussianBlur></filter></defs>',4)])])}const zo=me(Ro,[["render",Io]]),Ao={key:0},Po=e.defineComponent({__name:"Lens",props:{zoomFactor:{default:1.5},lensSize:{default:170},position:{default:()=>({x:200,y:150})},isStatic:{type:Boolean,default:!1},hovering:{type:Boolean,default:void 0}},emits:["hover-update"],setup(o,{emit:t}){const i=o,s=t,n=e.ref(null),r=e.ref(!1),l=e.ref({x:100,y:100}),a=e.computed(()=>i.hovering??r.value);function c(d){r.value=d,s("hover-update",d)}function u(d){const m=d.currentTarget.getBoundingClientRect();l.value={x:d.clientX-m.left,y:d.clientY-m.top}}const h=e.computed(()=>{const d=i.isStatic?i.position:l.value;return`circle ${i.lensSize/2}px at ${d.x}px ${d.y}px`}),f=e.computed(()=>{const d=i.isStatic?i.position:l.value;return`${d.x}px ${d.y}px`});return e.watchEffect(()=>{c(!1)}),(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:n,class:"relative z-20 overflow-hidden rounded-lg",onMouseenter:m[0]||(m[0]=v=>c(!0)),onMouseleave:m[1]||(m[1]=v=>c(!1)),onMousemove:u},[e.renderSlot(d.$slots,"default"),i.isStatic||a.value?(e.openBlock(),e.createElementBlock("div",Ao,[e.createVNode(e.unref(xe.Motion),{initial:{opacity:0,scale:.58},animate:{opacity:1,scale:1},transition:{duration:.3,ease:"easeOut"},leave:{opacity:0,scale:.8},class:"absolute inset-0 overflow-hidden",style:e.normalizeStyle({maskImage:`radial-gradient(${h.value}, black 100%, transparent 100%)`,WebkitMaskImage:`radial-gradient(${h.value}, black 100%, transparent 100%)`,transformOrigin:f.value})},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"absolute inset-0",style:e.normalizeStyle({transform:`scale(${i.zoomFactor})`,transformOrigin:f.value})},[e.renderSlot(d.$slots,"default")],4)]),_:3},8,["style"])])):e.createCommentVNode("",!0)],544))}}),No=["src"],Vo=e.defineComponent({__name:"index",props:{imageSrc:{default:""},title1:{default:""},title2:{default:""},classList:{default:()=>({})}},setup(o){const t=o,i=e.ref(!1);function s(r){i.value=r}const n=e.computed(()=>{const r=[];t.classList?.overallClass?r.push(t.classList.overallClass):r.push("relative mx-auto my-10 w-full max-w-md overflow-hidden rounded-3xl bg-gradient-to-r from-[#1D2235] to-[#121318] p-8");const l=t.classList?.Location;return l?.position&&r.push(l.position),l?.width&&r.push(l.width),l?.height&&r.push(l.height),l?.left&&r.push(l.left),l?.top&&r.push(l.top),r.join(" ")});return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value)},[e.createVNode(Do),e.createVNode(zo),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.innerContainerClass||"relative z-10")},[e.createVNode(Po,{hovering:i.value,onHoverUpdate:s},{default:e.withCtx(()=>[e.createElementVNode("img",{src:o.imageSrc,alt:"image",width:"500",height:"500",class:e.normalizeClass(o.classList?.imageClass||"rounded-2xl")},null,10,No)]),_:1},8,["hovering"]),e.createElementVNode("div",{style:e.normalizeStyle({filter:i.value?"blur(2px)":"blur(0px)"}),class:e.normalizeClass(o.classList?.textContainerClass||"relative z-20 py-4")},[e.createElementVNode("h2",{class:e.normalizeClass(o.classList?.title1Class||"text-left text-2xl font-bold text-white")},e.toDisplayString(o.title1),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.title2Class||"mt-4 text-left text-neutral-200")},e.toDisplayString(o.title2),3)],6)],2)],2))}}),Fo=e.defineComponent({__name:"Marquee",props:{class:{},reverse:{type:Boolean},pauseOnHover:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},repeat:{default:4}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("group flex overflow-hidden p-2 [--duration:40s] [--gap:1rem] [gap:var(--gap)]",o.vertical?"flex-col":"flex-row",t.$props.class))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.repeat,s=>(e.openBlock(),e.createElementBlock("div",{key:s,class:e.normalizeClass(e.unref(J)("flex shrink-0 justify-around [gap:var(--gap)]",o.vertical?"animate-marquee-vertical flex-col":"animate-marquee flex-row",o.pauseOnHover?"group-hover:[animation-play-state:paused]":"")),style:e.normalizeStyle({animationDirection:o.reverse?"reverse":"normal"})},[e.renderSlot(t.$slots,"default",{},void 0,!0)],6))),128))],2))}}),Pt=me(Fo,[["__scopeId","data-v-22c162eb"]]),Oo={class:"relative w-64 cursor-pointer overflow-hidden rounded-xl border border-gray-950/[.1] bg-gray-950/[.01] p-4 hover:bg-gray-950/[.05] dark:border-gray-50/[.1] dark:bg-gray-50/[.10] dark:hover:bg-gray-50/[.15]"},Uo={class:"flex flex-row items-center gap-2"},$o=["src"],Ho={class:"flex flex-col"},Go={class:"text-sm font-medium dark:text-white"},Yo={class:"text-xs font-medium dark:text-white/40"},Wo={class:"mt-2 text-sm"},Nt=e.defineComponent({__name:"ReviewCard",props:{img:{},name:{},username:{},body:{}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("figure",Oo,[e.createElementVNode("div",Uo,[e.createElementVNode("img",{src:o.img,class:"rounded-full",width:"32",height:"32",alt:""},null,8,$o),e.createElementVNode("div",Ho,[e.createElementVNode("span",Go,e.toDisplayString(o.name),1),e.createElementVNode("p",Yo,e.toDisplayString(o.username),1)])]),e.createElementVNode("blockquote",Wo,e.toDisplayString(o.body),1)]))}}),jo=e.defineComponent({__name:"index",props:{reviews:{type:Array,default:()=>[]},classList:{type:Object,default:()=>({})}},setup(o){const t=o,i=[{name:"Jack",username:"@jack",body:"I've never seen anything like this before. It's amazing. I love it.",img:"https://avatar.vercel.sh/jack"},{name:"Jill",username:"@jill",body:"I don't know what to say. I'm speechless. This is amazing.",img:"https://avatar.vercel.sh/jill"},{name:"John",username:"@john",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/john"},{name:"Jane",username:"@jane",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/jane"},{name:"Jenny",username:"@jenny",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/jenny"},{name:"James",username:"@james",body:"I'm at a loss for words. This is amazing. I love it.",img:"https://avatar.vercel.sh/james"}],s=e.computed(()=>t.reviews||i),n=e.computed(()=>s.value.slice(0,s.value.length/2)),r=e.computed(()=>s.value.slice(s.value.length/2)),l=e.computed(()=>{const a=t.classList?.Location||{};return[a.position,a.width,a.height,a.left,a.top].filter(Boolean)});return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass||"relative flex h-[500px] w-full flex-col items-center justify-center overflow-hidden rounded-lg border bg-background md:shadow-xl",l.value])},[e.createVNode(Pt,{"pause-on-hover":"",class:e.normalizeClass(o.classList.marqueeClass||"[--duration:20s]")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,u=>(e.openBlock(),e.createBlock(Nt,{key:u.username,img:u.img,name:u.name,username:u.username,body:u.body},null,8,["img","name","username","body"]))),128))]),_:1},8,["class"]),e.createVNode(Pt,{reverse:"","pause-on-hover":"",class:e.normalizeClass(o.classList.marqueeClass||"[--duration:20s]")},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createBlock(Nt,{key:u.username,img:u.img,name:u.name,username:u.username,body:u.body},null,8,["img","name","username","body"]))),128))]),_:1},8,["class"]),e.createElementVNode("div",{class:e.normalizeClass(o.classList.gradientLeftClass||"pointer-events-none absolute inset-y-0 left-0 w-1/3 bg-gradient-to-r from-white dark:from-background")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList.gradientRightClass||"pointer-events-none absolute inset-y-0 right-0 w-1/3 bg-gradient-to-l from-white dark:from-background")},null,2)],2))}}),Xo=e.defineComponent({__name:"Meteors",props:{count:{type:Number,default:20},class:String},setup(o){return(t,i)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.count,s=>(e.openBlock(),e.createElementBlock("span",{key:"meteor "+s,class:e.normalizeClass(e.unref(J)("animate-meteor-effect absolute h-0.5 w-0.5 rotate-[45deg] rounded-[9999px] bg-slate-500 shadow-[0_0_0_1px_#ffffff10]","before:absolute before:top-1/2 before:h-[1px] before:w-[50px] before:-translate-y-[50%] before:transform before:bg-gradient-to-r before:from-[#64748b] before:to-transparent before:content-['']",t.$props.class)),style:e.normalizeStyle({top:0,left:Math.floor(Math.random()*800+-400)+"px",animationDelay:Math.random()*(.8-.2)+.2+"s",animationDuration:Math.floor(Math.random()*8+2)+"s"})},null,6))),128))}}),qo=me(Xo,[["__scopeId","data-v-6c573ccf"]]),Zo=e.defineComponent({__name:"index",props:{title:{default:"Meteors because they're cool"},description:{default:"I don't know what to write so I'll just paste something cool here. One more sentence because lorem ipsum is just unacceptable. Won't ChatGPT the shit out of this."},buttonText:{default:"Explore"},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>{const r=e.resolveComponent("ClientOnly");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass([o.classList?.overallClass||"flex w-full flex-col items-center justify-center py-24",i.value])},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.containerClass||"relative w-full max-w-xs")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.gradientClass||"absolute inset-0 size-full scale-[0.80] rounded-full bg-red-500 bg-gradient-to-r from-blue-500 to-teal-500 blur-3xl")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.cardClass||"relative flex h-full flex-col items-start justify-end overflow-hidden rounded-2xl border border-gray-800 bg-gray-900 px-4 py-8 shadow-xl")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.iconClass||"mb-4 flex size-5 items-center justify-center rounded-full border border-gray-500")},[...n[0]||(n[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor",class:"size-2 text-gray-300"},[e.createElementVNode("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 4.5l15 15m0 0V8.25m0 11.25H8.25"})],-1)])],2),e.createElementVNode("h1",{class:e.normalizeClass(o.classList?.titleClass||"relative z-50 mb-4 text-xl font-bold text-white")},e.toDisplayString(o.title||"Meteors because they're cool"),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.descriptionClass||"relative z-50 mb-4 text-base font-normal text-slate-500")},e.toDisplayString(o.description||"I don't know what to write so I'll just paste something cool here. One more sentence because lorem ipsum is just unacceptable. Won't ChatGPT the shit out of this."),3),e.createElementVNode("button",{class:e.normalizeClass(o.classList?.buttonClass||"rounded-lg border border-gray-500 px-4 py-1 text-gray-300")},e.toDisplayString(o.buttonText||"Explore"),3),e.createVNode(qo)],2)],2)],2)]),_:1})}}}),Ko=["src","alt"],Jo=e.defineComponent({__name:"PhotoGallery",props:{containerClass:{},class:{},items:{}},setup(o){const t=o;return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["gallery",e.unref(J)("mb-[var(--size)] grid grid-cols-6 gap-1",t.containerClass)])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(n,r)=>(e.openBlock(),e.createElementBlock("img",{key:r,src:n.src,alt:`image+${r}`,class:e.normalizeClass(["gallery-img",e.unref(J)("size-[calc(var(--size)*2)] rounded object-cover transition-[clip-path,filter] duration-75",t.class)])},null,10,Ko))),128))],2))}}),Qo=me(Jo,[["__scopeId","data-v-aad0b94e"]]),en=e.defineComponent({__name:"index",props:{items:{type:Array,default:()=>[]},classList:{type:Object,default:()=>({})}},setup(o){const t=o,i=[{src:"https://images.pexels.com/photos/16834200/pexels-photo-16834200/free-photo-of-young-brunette-in-a-white-dress-sitting-on-a-bench-and-holding-flowers.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/16834202/pexels-photo-16834202/free-photo-of-young-woman-in-a-white-dress-posing-outdoors.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/16834194/pexels-photo-16834194/free-photo-of-woman-in-white-dress-posing-with-red-flowers-on-lap.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/17362900/pexels-photo-17362900/free-photo-of-pretty-young-model-in-chinese-retro-dress.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/19447919/pexels-photo-19447919/free-photo-of-model-in-a-pink-ao-dai-dress-with-a-bouquet-of-tulips-by-the-river.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/20332975/pexels-photo-20332975/free-photo-of-young-woman-posing-in-a-silk-slip-dress.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/19732643/pexels-photo-19732643/free-photo-of-woman-in-white-dress-sitting-and-reading-book.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"},{src:"https://images.pexels.com/photos/17347482/pexels-photo-17347482/free-photo-of-woman-in-dress-posing-with-bag.jpeg?auto=compress&cs=tinysrgb&w=600&lazy=load"}],s=e.computed(()=>t.items||i),n=e.computed(()=>{const r=t.classList?.Location||{};return[r.position,r.width,r.height,r.left,r.top].filter(Boolean)});return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass||"flex items-center justify-center",n.value])},[e.createVNode(Qo,{items:s.value,class:e.normalizeClass(o.classList.galleryClass)},null,8,["items","class"])],2))}}),tn=["for"],sn=["for"],on=["disabled"],nn={__name:"index",props:{classList:Object,formConfig:Object,title:String,submitText:String,layout:Object},setup(o){const t=o,i=e.reactive({}),s=e.reactive({});(()=>{t.formConfig&&Array.isArray(t.formConfig)&&t.formConfig.forEach((u,h)=>{const f=u.key||`field_${h}`;i[f]=u.defaultValue||"",s[f]=""}),console.log(i)})();const r=(u,h)=>{const f=t.formConfig?.find(m=>(m.key||`field_${t.formConfig.indexOf(m)}`)===u),d=f?.validation||{};return d.required&&(!h||h.trim().length===0)?d.requiredMessage||"此字段为必填项":d.minLength&&h&&h.length<d.minLength?d.minLengthMessage||`至少需要${d.minLength}个字符`:d.email&&f?.type==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(h)?d.emailMessage||"请输入有效的邮箱地址":""},l=()=>{let u=!0;return Object.keys(i).forEach(h=>{const f=r(h,i[h]);s[h]=f,f&&(u=!1)}),u},a=e.computed(()=>Object.values(s).every(u=>!u)),c=()=>{l()?(console.log("Form submitted:",i),t.formConfig?.onSubmit?t.formConfig.onSubmit(i):alert("表单提交成功!")):(console.log("Form validation failed:",s),alert("请检查表单中的错误"))};return(u,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass])},[o.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList.titleClass)},e.toDisplayString(o.title),3)):e.createCommentVNode("",!0),e.createElementVNode("form",{onSubmit:e.withModifiers(c,["prevent"]),class:e.normalizeClass(o.classList.formClass)},[o.layout?.rows?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.layout.rows,(f,d)=>(e.openBlock(),e.createElementBlock("div",{key:d,class:e.normalizeClass(f.class)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.fields,m=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:m},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.formConfig,(v,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[v?.key===m&&v?.show!==!1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList.fieldClass)},[e.createElementVNode("label",{for:v?.id||`field_${g}`,class:e.normalizeClass(o.classList.labelClass)},e.toDisplayString(v?.label||"无"),11,tn),e.createVNode(ht,{id:v?.id||`field_${g}`,modelValue:i[v.key||`field_${g}`],"onUpdate:modelValue":x=>i[v.key||`field_${g}`]=x,onBlur:x=>s[v.key||`field_${g}`]=r(v.key||`field_${g}`,i[v.key||`field_${g}`]),type:v?.type||"text",class:e.normalizeClass([o.classList.inputClass,s[v.key||`field_${g}`]?o.classList.errorInputClass:""]),"container-class":[o.classList.inputContainerClass,s[v.key||`field_${g}`]?o.classList.errorContainerClass:""],placeholder:v?.placeholder||"请输入"},null,8,["id","modelValue","onUpdate:modelValue","onBlur","type","class","container-class","placeholder"]),s[v.key||`field_${g}`]?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(o.classList.errorTextClass)},e.toDisplayString(s[v.key||`field_${g}`]),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],64))),128))],64))),128))],2))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(o.formConfig,(f,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[f?.show!==!1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList.fieldClass)},[e.createElementVNode("label",{for:f?.id||`field_${d}`,class:e.normalizeClass(o.classList.labelClass)},e.toDisplayString(f?.label||"无"),11,sn),e.createVNode(ht,{id:f?.id||`field_${d}`,modelValue:i[f.key||`field_${d}`],"onUpdate:modelValue":m=>i[f.key||`field_${d}`]=m,onBlur:m=>s[f.key||`field_${d}`]=r(f.key||`field_${d}`,i[f.key||`field_${d}`]),type:f?.type||"text",class:e.normalizeClass([o.classList.inputClass,s[f.key||`field_${d}`]?o.classList.errorInputClass:""]),"container-class":[o.classList.inputContainerClass,s[f.key||`field_${d}`]?o.classList.errorContainerClass:""],placeholder:f?.placeholder||"请输入"},null,8,["id","modelValue","onUpdate:modelValue","onBlur","type","class","container-class","placeholder"]),s[f.key||`field_${d}`]?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(o.classList.errorTextClass)},e.toDisplayString(s[f.key||`field_${d}`]),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("button",{type:"submit",disabled:!a.value,class:e.normalizeClass([o.classList.buttonClass,a.value?o.classList.buttonEnabledClass:o.classList.buttonDisabledClass])},[e.createElementVNode("span",null,e.toDisplayString(o.submitText||"Sign up"),1),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(o.classList.buttonIconClass),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[...h[0]||(h[0]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2))],10,on)],34)],2))}},an=me(nn,[["__scopeId","data-v-48b871c2"]]),rn={class:"relative z-10"},ln={class:"pointer-events-none absolute inset-0"},cn=e.defineComponent({__name:"RippleButton",props:{class:{},rippleColor:{default:"#ADD8E6"},duration:{default:600},backgroundImage:{}},emits:["click"],setup(o,{emit:t}){const i=o,s=t,n=e.ref(null),r=e.ref([]),l=e.computed(()=>{const u={"--duration":String(i.duration)+"ms"};return i.backgroundImage&&(u.backgroundImage=`url(${i.backgroundImage})`,u.backgroundSize="cover",u.backgroundPosition="center",u.backgroundRepeat="no-repeat"),u});function a(u){c(u),s("click",u)}function c(u){const h=n.value;if(!h)return;const f=h.getBoundingClientRect(),d=Math.max(f.width,f.height),m=u.clientX-f.left-d/2,v=u.clientY-f.top-d/2,g={x:m,y:v,size:d,key:Date.now()};r.value.push(g)}return e.watchEffect(()=>{if(r.value.length>0){const u=r.value[r.value.length-1];setTimeout(()=>{r.value=r.value.filter(h=>h.key!==u.key)},i.duration)}}),(u,h)=>(e.openBlock(),e.createElementBlock("button",{ref_key:"rippleButtonRef",ref:n,class:e.normalizeClass(e.unref(J)("relative flex cursor-pointer items-center justify-center overflow-hidden","rounded-lg border-2 bg-background px-4 py-2 text-center text-primary",u.$props.class)),style:e.normalizeStyle(l.value),onClick:a},[e.createElementVNode("div",rn,[e.renderSlot(u.$slots,"default",{},void 0,!0)]),e.createElementVNode("span",ln,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,f=>(e.openBlock(),e.createElementBlock("span",{key:f.key,class:"ripple-animation absolute rounded-full bg-background opacity-30",style:e.normalizeStyle({width:f.size+"px",height:f.size+"px",top:f.y+"px",left:f.x+"px",backgroundColor:u.$props.rippleColor,transform:"scale(0)",animationDuration:u.$props.duration+"ms"})},null,4))),128))])],6))}}),un=me(cn,[["__scopeId","data-v-c6dbfb1d"]]),dn=e.defineComponent({__name:"index",props:{backgroundImage:{default:"/assets/image2.png"},rippleColor:{default:"#0ea5e9"},duration:{default:800},buttonText:{default:"Click me!"},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"grid place-content-center p-8",i.value])},[e.createVNode(un,{backgroundImage:o.backgroundImage,"ripple-color":o.rippleColor||"#0ea5e9",duration:o.duration||800,class:e.normalizeClass(o.classList?.buttonClass)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.buttonText||"Click me!"),1)]),_:1},8,["backgroundImage","ripple-color","duration","class"])],2))}}),hn=["src"],mn=e.defineComponent({__name:"RollingGallery",props:{autoplay:{type:Boolean,default:!1},pauseOnHover:{type:Boolean,default:!1},images:{default:()=>[]},classList:{default:()=>({})}},setup(o){const t=o,i=e.shallowRef(["https://images.unsplash.com/photo-1528181304800-259b08848526?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1506665531195-3566af2b4dfa?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=3456&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1495103033382-fe343886b671?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1506781961370-37a89d6b3095?q=80&w=3264&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1599576838688-8a6c11263108?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1494094892896-7f14a4433b7a?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://plus.unsplash.com/premium_photo-1664910706524-e783eed89e71?q=80&w=3869&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1503788311183-fa3bf9c4bc32?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1585970480901-90d6bb2a48b5?q=80&w=3774&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"]),s=e.ref(!1),n=e.ref(0),r=e.ref(null),l=e.ref(null),a=e.ref(!1),c=e.ref(!1),u=e.ref(0),h=e.ref(0),f=e.computed(()=>{const W=t.images.length>0?t.images:i.value,se=D;if(W.length>=se)return W;const ie=[],ce=Math.ceil(se/W.length);for(let fe=0;fe<ce;fe++)ie.push(...W);return ie.slice(0,se)}),d=e.computed(()=>s.value?1100:1800),m=e.computed(()=>d.value/O*1.5),v=e.computed(()=>d.value/(2*Math.PI)),g=Object.freeze(.15),x=Object.freeze(.05),p=Object.freeze(2e3),k=Object.freeze(1500),E=Object.freeze(100),w=Object.freeze(50),D=Object.freeze(10),O=Object.freeze(10),H=e.computed(()=>({width:`${d.value}px`,transformStyle:"preserve-3d"})),S=e.computed(()=>({rotateY:n.value})),C=e.computed(()=>a.value?{duration:0}:{duration:.8,ease:"easeOut"}),T=new Map,R=W=>{const se=`${W}-${m.value}-${v.value}`;if(T.has(se))return T.get(se);const ie={width:`${m.value}px`,transform:`rotateY(${W*(360/D)}deg) translateZ(${v.value}px)`};return T.size>50&&T.clear(),T.set(se,ie),ie};let B=null,I=null;function N(){s.value=window.innerWidth<=640}function V(){B||(B=setTimeout(()=>{N(),B=null},100))}function A(W){a.value=!0,u.value=W.clientX,h.value=n.value,Y(),document.addEventListener("mousemove",Q,{passive:!0}),document.addEventListener("mouseup",b,{passive:!0}),W.preventDefault()}function Q(W){if(!a.value)return;const ie=(W.clientX-u.value)*g;n.value=h.value+ie}function b(W){if(!a.value)return;a.value=!1;const ie=(W.clientX-u.value)*x;if(n.value+=ie,document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",b),Y(),t.autoplay){if(t.pauseOnHover&&c.value)return;l.value=setTimeout(()=>{!a.value&&(!t.pauseOnHover||!c.value)&&L()},k)}}function L(){!t.autoplay||a.value||t.pauseOnHover&&c.value||(Y(),r.value=setInterval(()=>{!a.value&&(!t.pauseOnHover||!c.value)&&(n.value-=360/D)},p))}function Y(){r.value&&(clearInterval(r.value),r.value=null),l.value&&(clearTimeout(l.value),l.value=null)}function le(){I&&(clearTimeout(I),I=null),I=setTimeout(()=>{c.value=!0,t.autoplay&&t.pauseOnHover&&!a.value&&Y()},w)}function Z(){I&&(clearTimeout(I),I=null),I=setTimeout(()=>{c.value=!1,t.autoplay&&t.pauseOnHover&&!a.value&&(Y(),l.value=setTimeout(()=>{t.autoplay&&!a.value&&!c.value&&L()},E))},w)}return e.onMounted(()=>{N(),window.addEventListener("resize",V,{passive:!0}),t.autoplay&&L()}),e.onUnmounted(()=>{window.removeEventListener("resize",V),document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",b),Y(),B&&clearTimeout(B),I&&(clearTimeout(I),I=null)}),e.watch(()=>t.autoplay,W=>{Y(),W&&!a.value&&(!t.pauseOnHover||!c.value)&&(l.value=setTimeout(()=>{!a.value&&(!t.pauseOnHover||!c.value)&&L()},E))}),e.watch(()=>t.pauseOnHover,()=>{t.autoplay&&(Y(),!a.value&&(!t.pauseOnHover||!c.value)&&L())}),(W,se)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.containerClass||"relative h-[500px] w-full overflow-hidden")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.leftGradientClass||"absolute top-0 left-0 h-full w-12 z-10 bg-gradient-to-l from-transparent to-[#0b0b0b]")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.rightGradientClass||"absolute top-0 right-0 h-full w-12 z-10 bg-gradient-to-r from-transparent to-[#0b0b0b]")},null,2),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.perspectiveContainerClass||"flex h-full items-center justify-center [perspective:1000px] [transform-style:preserve-3d]")},[e.createVNode(e.unref(xe.Motion),{tag:"div",class:e.normalizeClass(o.classList?.motionContainerClass||"flex min-h-[200px] items-center justify-center w-full cursor-grab select-none will-change-transform [transform-style:preserve-3d] active:cursor-grabbing"),style:e.normalizeStyle(H.value),animate:S.value,transition:C.value,onMouseenter:le,onMouseleave:Z,onMousedown:A},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(ie,ce)=>(e.openBlock(),e.createElementBlock("div",{key:`gallery-${ce}`,style:e.normalizeStyle(R(ce)),class:e.normalizeClass(o.classList?.itemContainerClass||"absolute flex items-center justify-center px-[8%] [backface-visibility:hidden] will-change-transform pointer-events-none")},[e.createElementVNode("img",{src:ie,alt:"gallery",loading:"lazy",decoding:"async",class:e.normalizeClass(o.classList?.imageClass||"pointer-events-auto h-[120px] w-[300px] rounded-[15px] border-[3px] border-white object-cover transition-transform duration-300 ease-in-out will-change-transform hover:scale-105")},null,10,hn)],6))),128))]),_:1},8,["class","style","animate","transition"])],2)],2))}}),fn=e.defineComponent({__name:"index",props:{images:{default:()=>["https://images.unsplash.com/photo-1528181304800-259b08848526?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1506665531195-3566af2b4dfa?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=3456&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","https://images.unsplash.com/photo-1495103033382-fe343886b671?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"]},autoplay:{type:Boolean,default:!0},pauseOnHover:{type:Boolean,default:!0},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([i.value])},[e.createVNode(mn,{autoplay:o.autoplay,"pause-on-hover":o.pauseOnHover,images:o.images,"class-list":o.classList},null,8,["autoplay","pause-on-hover","images","class-list"])],2))}}),pn=["width","height"],gn="url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto",vn=e.defineComponent({__name:"ScratchToReveal",props:{class:{},width:{},height:{},minScratchPercentage:{default:50},gradientColors:{default:()=>["#A97CF8","#F38CB8","#FDCC92"]}},emits:["complete"],setup(o,{emit:t}){const i=e.ref(),s=o,n=e.computed(()=>s.width+"px"),r=e.computed(()=>s.height+"px"),l=e.ref(),a=t,c=e.ref(!1),u=e.ref(!1);function h(){c.value=!0}function f(){c.value=!0}const d=e.computed(()=>i.value?.width||s.width),m=e.computed(()=>i.value?.height||s.height);function v(T){l.value=T.value.getContext("2d"),l.value.fillStyle="#ccc",l.value.fillRect(0,0,d.value,m.value);const R=l.value.createLinearGradient(0,0,d.value,m.value);R.addColorStop(0,s.gradientColors[0]),R.addColorStop(.5,s.gradientColors[1]),R.addColorStop(1,s.gradientColors[2]),l.value.fillStyle=R,l.value.fillRect(0,0,d.value,m.value)}function g(T,R){if(i.value&&l.value){const B=i.value.getBoundingClientRect(),I=T-B.left+16,N=R-B.top+16;l.value.globalCompositeOperation="destination-out",l.value.beginPath(),l.value.arc(I,N,30,0,Math.PI*2),l.value.fill()}}function x(T){c.value&&g(T.clientX,T.clientY)}function p(T){if(!c.value)return;const R=T.touches[0];g(R.clientX,R.clientY)}function k(){c.value=!1,D()}function E(){c.value=!1,D()}function w(){document.addEventListener("mousedown",x),document.addEventListener("mousemove",x),document.addEventListener("touchstart",p),document.addEventListener("touchmove",p),document.addEventListener("mouseup",k),document.addEventListener("touchend",E),document.addEventListener("touchcancel",E)}function D(){if(!u.value&&i.value&&l.value){const R=l.value.getImageData(0,0,d.value,m.value).data,B=R.length/4;let I=0;for(let V=3;V<R.length;V+=4)R[V]===0&&I++;I/B*100>=s.minScratchPercentage?(u.value=!0,l.value.clearRect(0,0,d.value,m.value),S()):c.value=!1}}const[O,H]=xe.useAnimate();async function S(){O.value&&(H(O.value,{scale:1,rotate:[0,10,-10,10,-10,0]}),a("complete"))}e.onMounted(()=>{i.value&&(v(i),w())});function C(){document.removeEventListener("mousedown",x),document.removeEventListener("mousemove",x),document.removeEventListener("touchstart",p),document.removeEventListener("touchmove",p),document.removeEventListener("mouseup",k),document.removeEventListener("touchend",E),document.removeEventListener("touchcancel",E)}return e.onUnmounted(()=>{C()}),(T,R)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{ref_key:"containerRef",ref:O,class:e.normalizeClass(e.unref(J)("relative select-none",s.class)),style:e.normalizeStyle({width:n.value,height:r.value,cursor:gn}),initial:{scale:1,rotate:[0,10,-10,10,-10,0]},transition:{duration:.5}},{default:e.withCtx(()=>[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:i,width:o.width,height:o.height,class:"absolute left-0 top-0",onMousedown:h,onTouchstart:f},null,40,pn),e.renderSlot(T.$slots,"default")]),_:3},8,["class","style"]))}}),xn=e.defineComponent({__name:"index",props:{width:{default:250},height:{default:250},minScratchPercentage:{default:50},gradientColors:{default:()=>["#A97CF8","#F38CB8","#FDCC92"]},revealContent:{default:"🥳"},classList:{default:()=>({})}},setup(o){function t(){}return(i,s)=>(e.openBlock(),e.createBlock(vn,{width:o.width,height:o.height,"min-scratch-percentage":o.minScratchPercentage,class:e.normalizeClass(o.classList?.overallClass||"mx-auto flex items-center justify-center overflow-hidden rounded-2xl border-2 bg-gray-100"),"gradient-colors":o.gradientColors,onComplete:t},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.contentClass||"text-8xl")},e.toDisplayString(o.revealContent),3)]),_:1},8,["width","height","min-scratch-percentage","class","gradient-colors"]))}}),yn={fill:"none",class:"size-full","stroke-width":"2",viewBox:"0 0 100 100"},wn=["stroke-width"],bn=["stroke-width"],Cn=["data-current-value"],En=e.defineComponent({__name:"AnimatedCircularProgressBar",props:{max:{default:100},value:{default:0},min:{default:0},gaugePrimaryColor:{default:"rgb(79 70 229)"},gaugeSecondaryColor:{default:"rgba(0, 0, 0, 0.1)"},class:{},circleStrokeWidth:{default:10},showPercentage:{type:Boolean,default:!0},duration:{default:1}},setup(o){e.useCssVars(a=>({v1f048564:i,v16000b30:r.value,v17effbd9:a.gaugePrimaryColor,cf3a39a6:n.value,v11eaec25:l.value,v97340cb2:a.gaugeSecondaryColor}));const t=o,i=2*Math.PI*45,s=i/100,n=e.computed(()=>(t.value-t.min)/(t.max-t.min)*100),r=e.computed(()=>`${s}px`),l=e.computed(()=>`${t.duration}s`);return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["progress-circle-base",e.unref(J)("relative size-40 text-2xl font-semibold",t.class)])},[(e.openBlock(),e.createElementBlock("svg",yn,[n.value<=90&&n.value>=0?(e.openBlock(),e.createElementBlock("circle",{key:0,cx:"50",cy:"50",r:"45","stroke-width":o.circleStrokeWidth,"stroke-dashoffset":"0","stroke-linecap":"round","stroke-linejoin":"round",class:"gauge-secondary-stroke opacity-100"},null,8,wn)):e.createCommentVNode("",!0),e.createElementVNode("circle",{cx:"50",cy:"50",r:"45","stroke-width":o.circleStrokeWidth,"stroke-dashoffset":"0","stroke-linecap":"round","stroke-linejoin":"round",class:"gauge-primary-stroke opacity-100"},null,8,bn)])),o.showPercentage?(e.openBlock(),e.createElementBlock("span",{key:0,"data-current-value":n.value,class:"absolute inset-0 m-auto size-fit delay-0 duration-1000 ease-linear animate-in fade-in"},e.toDisplayString(n.value),9,Cn)):e.createCommentVNode("",!0)],2))}}),kn=me(En,[["__scopeId","data-v-ea809044"]]),Sn={class:"gray- flex h-11 cursor-pointer items-center gap-2 px-4"},Tn={class:"grow text-center font-bold"},Mn=e.defineComponent({__name:"ScrollIsland",props:{class:{default:""},title:{default:"Progress"},height:{default:44}},setup(o){e.useCssVars(u=>({v0566c004:a.value}));const t=o,i=e.ref(!1),s=e.useSlots(),n=e.ref(0),r=e.computed(()=>Ce.useColorMode().value=="dark"),l=e.computed(()=>!!s.default),a=e.computed(()=>`${t.height/2}px`);e.onMounted(()=>{window!==void 0&&(window.addEventListener("scroll",c),c())});function c(){n.value=window.scrollY/(document.body.scrollHeight-window.innerHeight)}return e.onUnmounted(()=>{window.removeEventListener("scroll",c)}),(u,h)=>(e.openBlock(),e.createBlock(e.unref(xe.MotionConfig),{transition:{duration:.7,type:"spring",bounce:.5}},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(J)("z-[999] -translate-x-1/2 bg-primary/90 backdrop-blur-lg border-radius",u.$props.class)),onClick:h[0]||(h[0]=()=>i.value=!i.value)},[e.createVNode(e.unref(xe.motion).div,{id:"motion-id",layout:"",initial:{height:t.height,width:0},animate:{height:i.value&&l.value?"auto":t.height,width:i.value&&l.value?320:260},class:"bg-natural-900 relative cursor-pointer overflow-hidden text-secondary"},{default:e.withCtx(()=>[e.createElementVNode("header",Sn,[e.createVNode(kn,{value:n.value*100,min:0,max:100,"circle-stroke-width":10,class:"w-6","show-percentage":!1,duration:.3,"gauge-secondary-color":r.value?"#6b728055":"#6b728099","gauge-primary-color":r.value?"black":"white"},null,8,["value","gauge-secondary-color","gauge-primary-color"]),e.createElementVNode("h5",Tn,e.toDisplayString(o.title),1),e.createVNode(e.unref(cs),{value:n.value,format:{style:"percent"},locales:"en-US"},null,8,["value"])]),l.value?(e.openBlock(),e.createBlock(e.unref(xe.motion).div,{key:0,class:"mb-2 flex h-full max-h-60 flex-col gap-1 overflow-y-auto px-4 text-sm"},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default",{},void 0,!0)]),_:3})):e.createCommentVNode("",!0)]),_:3},8,["initial","animate"])],2)]),_:3}))}}),_n=me(Mn,[["__scopeId","data-v-c0fd1974"]]),Bn=["href"],Dn=e.defineComponent({__name:"index",props:{title:{default:"Scroll Island"},description:{default:"See the scroll island in action on the top of this page"},links:{default:()=>[{text:"# Install using CLI",href:"#install-using-cli"},{text:"# Install Manually",href:"#install-manually"},{text:"# API",href:"#api"},{text:"# Features",href:"#features"},{text:"# Credits",href:"#credits"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=[],n=t.classList?.Location;return n?.position&&s.push(n.position),n?.width&&s.push(n.width),n?.height&&s.push(n.height),n?.left&&s.push(n.left),n?.top&&s.push(n.top),s.join(" ")});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"flex items-center justify-center p-8")},[e.createElementVNode("span",{class:e.normalizeClass(o.classList?.descriptionClass||"text-lg text-primary")},e.toDisplayString(o.description||"See the scroll island in action on the top of this page"),3),e.createVNode(_n,{title:o.title||"Scroll Island",class:e.normalizeClass(i.value)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.islandClass||"my-3 flex flex-col gap-2")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.links,(r,l)=>(e.openBlock(),e.createElementBlock("a",{key:l,href:r.href,class:e.normalizeClass(o.classList?.linkClass||"block")},e.toDisplayString(r.text),11,Bn))),128))],2)]),_:1},8,["title","class"])],2))}}),Rn=e.defineComponent({__name:"Sparkles",props:{background:{default:"#0d47a1"},particleColor:{default:"#ffffff"},minSize:{default:1},maxSize:{default:3},speed:{default:4},particleDensity:{default:120}},setup(o){const t=o,i=Ce.templateRef("containerRef"),s=Ce.templateRef("canvasRef"),n=e.ref([]),r=e.ref(null);function l(){if(!s.value||!i.value)return;const d=window.devicePixelRatio||1,m=i.value.getBoundingClientRect();s.value.width=m.width*d,s.value.height=m.height*d,r.value&&r.value.scale(d,d)}function a(){const d=[],m=t.particleDensity;for(let v=0;v<m;v++){const x=Math.random()*.3+.7;d.push({x:Math.random()*100,y:Math.random()*100,size:Math.random()*(t.maxSize-t.minSize)+t.minSize,opacity:Math.random()*.5+.3,vx:(Math.random()-.5)*.05*x*t.speed,vy:((Math.random()-.5)*.05-.05*.3)*x*t.speed,phase:Math.random()*Math.PI*2,phaseSpeed:.015})}n.value=d}function c(){if(!r.value||!s.value)return;const d=s.value;r.value.clearRect(0,0,d.width,d.height),n.value=n.value.map(m=>{let v=m.x+m.vx,g=m.y+m.vy;v<-2&&(v=102),v>102&&(v=-2),g<-2&&(g=102),g>102&&(g=-2);const x=(m.phase+m.phaseSpeed)%(Math.PI*2),p=.3+(Math.sin(x)*.3+.3);return r.value.beginPath(),r.value.arc(v*d.width/100,g*d.height/100,m.size,0,Math.PI*2),r.value.fillStyle=`${t.particleColor}${Math.floor(p*255).toString(16).padStart(2,"0")}`,r.value.fill(),{...m,x:v,y:g,phase:x,opacity:p}})}const{pause:u,resume:h}=Ce.useRafFn(c,{immediate:!1});let f;return e.onMounted(()=>{s.value&&(r.value=s.value.getContext("2d"),l(),a(),f=new ResizeObserver(l),i.value&&f.observe(i.value),h())}),e.onBeforeUnmount(()=>{u(),f&&i.value&&f.unobserve(i.value)}),(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:i,class:"relative size-full overflow-hidden will-change-transform",style:e.normalizeStyle({background:o.background})},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,class:"absolute inset-0 size-full"},null,512)],4))}}),Ln={class:"relative h-40 w-[40rem]"},In={__name:"index",props:{title:String,lightParticleColor:String,darkParticleColor:String,classList:Object},setup(o){const t=o;e.ref(0);const i=e.computed(()=>Ce.useColorMode().value==="dark"?t.darkParticleColor:t.lightParticleColor),s=e.computed(()=>{const n=t.classList.Location||{};return[n.position,n.width,n.height,n.left,n.top].filter(Boolean)});return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass,s.value])},[e.createElementVNode("h1",{class:e.normalizeClass(o.classList.h1Class)},e.toDisplayString(o.title),3),e.createElementVNode("div",Ln,[r[0]||(r[0]=e.createElementVNode("div",{class:"absolute inset-x-20 top-0 h-[2px] w-3/4 bg-gradient-to-r from-transparent via-indigo-500 to-transparent blur-sm"},null,-1)),r[1]||(r[1]=e.createElementVNode("div",{class:"absolute inset-x-20 top-0 h-px w-3/4 bg-gradient-to-r from-transparent via-indigo-500 to-transparent"},null,-1)),r[2]||(r[2]=e.createElementVNode("div",{class:"absolute inset-x-60 top-0 h-[5px] w-1/4 bg-gradient-to-r from-transparent via-sky-500 to-transparent blur-sm"},null,-1)),r[3]||(r[3]=e.createElementVNode("div",{class:"absolute inset-x-60 top-0 h-px w-1/4 bg-gradient-to-r from-transparent via-sky-500 to-transparent"},null,-1)),e.createVNode(Rn,{background:"transparent","min-size":.4,"max-size":1.4,"particle-density":1200,class:"size-full","particle-color":i.value},null,8,["particle-color"]),e.createElementVNode("div",{class:e.normalizeClass(o.classList.SparklesClass)},null,2)])],2))}},zn=me(In,[["__scopeId","data-v-f5700567"]]),An={class:"relative inline-block"},Pn=["fill"],Nn=e.defineComponent({__name:"SparklesText",props:{text:{},sparklesCount:{default:10},colors:{default:()=>({first:"#9E7AFF",second:"#FE8BBB"})},class:{}},setup(o){const t=o,i=e.ref([]);function s(){const a=`${Math.random()*100}%`,c=`${Math.random()*100}%`,u=Math.random()>.5?t.colors.first:t.colors.second,h=Math.random()*2,f=Math.random()*1+.3,d=Math.random()*10+5;return{id:`${a}-${c}-${Date.now()}`,x:a,y:c,color:u,delay:h,scale:f,lifespan:d}}function n(){i.value=Array.from({length:t.sparklesCount},s)}function r(){i.value=i.value.map(a=>a.lifespan<=0?s():{...a,lifespan:a.lifespan-.1})}let l;return e.onMounted(()=>{n(),l=window.setInterval(r,100)}),e.onUnmounted(()=>{l&&clearInterval(l)}),(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.class)},[e.createElementVNode("span",An,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{key:u.id,initial:{opacity:0,scale:0,rotate:75},animate:{opacity:[0,1,0],scale:[0,u.scale,0],rotate:[75,120,150]},transition:{duration:.8,repeat:1/0,delay:u.delay},as:"svg",class:"pointer-events-none absolute z-20",style:e.normalizeStyle({left:u.x,top:u.y,opacity:0}),width:"21",height:"21",viewBox:"0 0 21 21"},{default:e.withCtx(()=>[e.createElementVNode("path",{d:"M9.82531 0.843845C10.0553 0.215178 10.9446 0.215178 11.1746 0.843845L11.8618 2.72026C12.4006 4.19229 12.3916 6.39157 13.5 7.5C14.6084 8.60843 16.8077 8.59935 18.2797 9.13822L20.1561 9.82534C20.7858 10.0553 20.7858 10.9447 20.1561 11.1747L18.2797 11.8618C16.8077 12.4007 14.6084 12.3916 13.5 13.5C12.3916 14.6084 12.4006 16.8077 11.8618 18.2798L11.1746 20.1562C10.9446 20.7858 10.0553 20.7858 9.82531 20.1562L9.13819 18.2798C8.59932 16.8077 8.60843 14.6084 7.5 13.5C6.39157 12.3916 4.19225 12.4007 2.72023 11.8618L0.843814 11.1747C0.215148 10.9447 0.215148 10.0553 0.843814 9.82534L2.72023 9.13822C4.19225 8.59935 6.39157 8.60843 7.5 7.5C8.60843 6.39157 8.59932 4.19229 9.13819 2.72026L9.82531 0.843845Z",fill:u.color},null,8,Pn)]),_:2},1032,["animate","transition","style"]))),128)),e.createTextVNode(" "+e.toDisplayString(o.text),1)])],2))}}),Vn={__name:"index",props:{classList:Object,title:String,colors:{type:Object,default:()=>({first:"#9E7AFF",second:"#FE8BBB"})},sparklesCount:Number},setup(o){const t=o,i=e.computed(()=>{const s=t.classList.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList.overallClass,i.value])},[e.createVNode(Nn,{text:o.title,colors:{first:`${o.colors.first}`,second:`${o.colors.second}`},"sparkles-count":o.sparklesCount,class:e.normalizeClass(o.classList.textClass)},null,8,["text","colors","sparkles-count","class"])],2))}},Fn=me(Vn,[["__scopeId","data-v-f74320d4"]]),On=e.defineComponent({__name:"ParentSize",props:{class:String,debounceTime:{type:Number,default:300},ignoreDimensions:{type:[Array,String],default:()=>[]},parentSizeStyles:Object,enableDebounceLeadingCall:{type:Boolean,default:!0}},setup(o){const t=o,i=e.useAttrs(),s=e.ref(null),n=e.reactive({width:0,height:0,top:0,left:0}),r=e.computed(()=>({...t.parentSizeStyles,...i.style}));e.computed(()=>["w-full h-full",t.class]);const l=e.computed(()=>{const{class:h,style:f,...d}=i;return d}),a=e.computed(()=>Array.isArray(t.ignoreDimensions)?t.ignoreDimensions:[t.ignoreDimensions]);function c(h){const{width:f,height:d,top:m,left:v}=h,g={width:f,height:d,top:m,left:v};if(!Object.keys(g).some(k=>n[k]!==g[k]))return;!Object.keys(g).every(k=>a.value.includes(k))&&Object.assign(n,g)}const u=Ce.useDebounceFn(c,t.debounceTime);return Ce.useResizeObserver(s,h=>{const f=h[0];f&&u(f.contentRect)}),(h,f)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({ref_key:"target",ref:s,style:r.value,class:e.unref(J)("w-full h-full",t.class)},l.value),[e.renderSlot(h.$slots,"default")],16))}}),Un=e.defineComponent({__name:"Spline",props:{scene:{type:String,required:!0},onLoad:Function,renderOnDemand:{type:Boolean,default:!0},style:Object},emits:["error","spline-mouse-down","spline-mouse-up","spline-mouse-hover","spline-key-down","spline-key-up","spline-start","spline-look-at","spline-follow","spline-scroll"],setup(o,{emit:t}){const i=o,s=t,n=e.ref(null),r=e.ref(!1),l=e.ref(null),a=e.ref(!0);let c=()=>{};const u=e.computed(()=>({overflow:"hidden",...i.style})),h=e.computed(()=>({display:"block",width:"100%",height:"100%"})),{stop:f}=Ce.useIntersectionObserver(n,([{isIntersecting:g}])=>{a.value=g,g&&l.value&&e.nextTick(()=>{n.value&&l.value&&(l.value.requestRender(),l.value.setSize(n.value.clientWidth,n.value.clientHeight))})},{threshold:.1});function d(g,x){if(!x||!l.value)return;const p=Ce.useDebounceFn(x,50,{maxWait:100});return l.value.addEventListener(g,p),()=>l.value?.removeEventListener(g,p)}async function m(){if(n.value){r.value=!0;try{l.value&&(l.value.dispose(),l.value=null),l.value=new us.Application(n.value,{renderOnDemand:i.renderOnDemand}),await l.value.load(i.scene);const g=[d("mouseDown",x=>s("spline-mouse-down",x)),d("mouseUp",x=>s("spline-mouse-up",x)),d("mouseHover",x=>s("spline-mouse-hover",x)),d("keyDown",x=>s("spline-key-down",x)),d("keyUp",x=>s("spline-key-up",x)),d("start",x=>s("spline-start",x)),d("lookAt",x=>s("spline-look-at",x)),d("follow",x=>s("spline-follow",x)),d("scroll",x=>s("spline-scroll",x))].filter(Boolean);return r.value=!1,i.onLoad?.(l.value),()=>{g.forEach(x=>x?.())}}catch(g){return console.error("Spline initialization error:",g),s("error",g),r.value=!1,()=>{}}}}async function v(){c(),c=await m()??(()=>{})}return e.onMounted(async()=>{await v(),e.watch(a,g=>{g&&v()})}),e.onUnmounted(()=>{f(),l.value&&(l.value.dispose(),l.value=null)}),(g,x)=>(e.openBlock(),e.createBlock(On,e.mergeProps({"parent-size-styles":u.value,"debounce-time":50},g.$attrs),{default:e.withCtx(()=>[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:n,style:e.normalizeStyle(h.value)},null,4),r.value?e.renderSlot(g.$slots,"default",{key:0}):e.createCommentVNode("",!0)]),_:3},16,["parent-size-styles"]))}}),$n={class:"flex"},Hn=e.defineComponent({__name:"index",props:{sceneUrl:{default:"https://prod.spline.design/kZDDjO5HuC9GJUM2/scene.splinecode"},title:{default:"Inspira UI"},subtitle:{default:"Build spline animations with style."},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top,s.zIndex].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"relative w-full overflow-hidden rounded-lg bg-black/[0.96]",i.value])},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.textContainerClass||"absolute flex w-full flex-col items-center justify-center gap-2 p-8 text-center font-heading text-white")},[e.createElementVNode("span",{class:e.normalizeClass(o.classList?.titleClass||"text-4xl font-semibold")},e.toDisplayString(o.title),3),e.createElementVNode("span",{class:e.normalizeClass(o.classList?.subtitleClass||"font-sans font-light")},e.toDisplayString(o.subtitle),3)],2),e.createElementVNode("div",$n,[e.createVNode(Un,{scene:o.sceneUrl,class:e.normalizeClass(o.classList?.splineClass||"mt-24 size-full")},null,8,["scene","class"])])],2))}}),Gn=["src","alt"],Yn=e.defineComponent({__name:"Stack",props:{className:{},randomRotation:{type:Boolean,default:!1},sensitivity:{default:200},cardDimensions:{default:()=>({width:208,height:208})},cardsData:{default:()=>[]},animationConfig:{default:()=>({stiffness:260,damping:20})},sendToBackOnClick:{type:Boolean,default:!1}},setup(o){const t=o,i=e.ref(t.cardsData.length?t.cardsData:[{id:1,img:"https://images.unsplash.com/photo-1480074568708-e7b720bb3f09?q=80&w=500&auto=format"},{id:2,img:"https://images.unsplash.com/photo-1449844908441-8829872d2607?q=80&w=500&auto=format"},{id:3,img:"https://images.unsplash.com/photo-1452626212852-811d58933cae?q=80&w=500&auto=format"},{id:4,img:"https://images.unsplash.com/photo-1572120360610-d971b9d7767c?q=80&w=500&auto=format"}]),s=new Map;function n(){const c=xe.useMotionValue(0),u=xe.useMotionValue(0),h=xe.useTransform(u,[-100,100],[60,-60]),f=xe.useTransform(c,[-100,100],[-60,60]);return{x:c,y:u,rotateX:h,rotateY:f,reset(){c.set(0),u.set(0)}}}e.onBeforeMount(()=>{i.value.forEach(c=>{s.has(c.id)||s.set(c.id,n())})});function r(c){let u=s.get(c);return u||(u=n(),s.set(c,u)),u}function l(c,u,h){Math.abs(u.offset.x)>t.sensitivity||Math.abs(u.offset.y)>t.sensitivity?a(h):r(h).reset()}const a=c=>{const u=[...i.value],h=u.findIndex(d=>d.id===c),[f]=u.splice(h,1);u.unshift(f),i.value=u};return(c,u)=>(e.openBlock(),e.createElementBlock("div",{class:"relative",style:e.normalizeStyle({width:o.cardDimensions.width+"px",height:o.cardDimensions.height+"px",perspective:600})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(h,f)=>(e.openBlock(),e.createBlock(e.unref(xe.Motion),{key:h.id,as:"div",class:"absolute cursor-grab",style:e.normalizeStyle({x:e.unref(s).get(h.id)?.x,y:e.unref(s).get(h.id)?.y,rotateX:e.unref(s).get(h.id)?.rotateX,rotateY:e.unref(s).get(h.id)?.rotateY}),drag:"","drag-constraints":{top:0,right:0,bottom:0,left:0},dragElastic:.6,whileTap:{cursor:"grabbing",scale:1.02},onDragEnd:(d,m)=>l(d,m,h.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(xe.Motion),{as:"div",class:"rounded-2xl overflow-hidden border-4 border-white",onClick:d=>o.sendToBackOnClick&&a(h.id),animate:{rotateZ:(i.value.length-f-1)*4+(o.randomRotation?Math.random()*10-5:0),scale:1+f*.06-i.value.length*.06,transformOrigin:"90% 90%"},initial:!1,transition:{type:"spring",stiffness:o.animationConfig.stiffness,damping:o.animationConfig.damping},style:e.normalizeStyle({width:o.cardDimensions.width+"px",height:o.cardDimensions.height+"px"})},{default:e.withCtx(()=>[e.createElementVNode("img",{src:h.img,alt:`card-${h.id}`,className:"w-full h-full object-cover pointer-events-none"},null,8,Gn)]),_:2},1032,["onClick","animate","transition","style"])]),_:2},1032,["style","onDragEnd"]))),128))],4))}}),Wn=e.defineComponent({__name:"index",props:{cardsData:{default:()=>[{id:1,img:"https://images.unsplash.com/photo-1480074568708-e7b720bb3f09?q=80&w=500&auto=format"},{id:2,img:"https://images.unsplash.com/photo-1449844908441-8829872d2607?q=80&w=500&auto=format"},{id:3,img:"https://images.unsplash.com/photo-1452626212852-811d58933cae?q=80&w=500&auto=format"},{id:4,img:"https://images.unsplash.com/photo-1572120360610-d971b9d7767c?q=80&w=500&auto=format"}]},cardDimensions:{default:()=>({width:200,height:200})},randomRotation:{type:Boolean,default:!0},sensitivity:{default:180},animationConfig:{default:()=>({stiffness:260,damping:20})},sendToBackOnClick:{type:Boolean,default:!1},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location,n=[];return t.classList?.overallClass&&n.push(t.classList.overallClass),s?.width&&n.push(s.width),s?.height&&n.push(s.height),s?.position&&n.push(s.position),s?.left&&n.push(s.left),s?.top&&n.push(s.top),n.join(" ")||"w-full h-[500px]"});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[e.createVNode(Yn,{randomRotation:o.randomRotation,sensitivity:o.sensitivity,sendToBackOnClick:o.sendToBackOnClick,cardDimensions:o.cardDimensions,cardsData:o.cardsData,animationConfig:o.animationConfig},null,8,["randomRotation","sensitivity","sendToBackOnClick","cardDimensions","cardsData","animationConfig"])],2))}}),jn=e.defineComponent({__name:"TargetCursor",props:{targetSelector:{default:".cursor-target"},spinDuration:{default:2},hideDefaultCursor:{type:Boolean,default:!0},cursorClass:{default:""}},setup(o){const t=o,i=e.useTemplateRef("cursorRef"),s=e.ref(null),n=e.ref(null),r={borderWidth:3,cornerSize:12,parallaxStrength:5e-5},l=(u,h)=>{i.value&&de.gsap.to(i.value,{x:u,y:h,duration:.1,ease:"power3.out"})};let a=()=>{};const c=()=>{if(!i.value)return;const u=document.body.style.cursor;t.hideDefaultCursor&&(document.body.style.cursor="none");const h=i.value;s.value=h.querySelectorAll(".target-cursor-corner");let f=null,d=null,m=null,v=!1,g=null;const x=w=>{d&&w.removeEventListener("mousemove",d),m&&w.removeEventListener("mouseleave",m),d=null,m=null};de.gsap.set(h,{xPercent:-50,yPercent:-50,x:window.innerWidth/2,y:window.innerHeight/2,opacity:1,display:"block"}),(()=>{n.value&&n.value.kill(),n.value=de.gsap.timeline({repeat:-1}).to(h,{rotation:"+=360",duration:t.spinDuration,ease:"none"})})();const k=w=>l(w.clientX,w.clientY);window.addEventListener("mousemove",k);const E=w=>{const D=w.target,O=[];let H=D;for(;H&&H!==document.body;)H.matches(t.targetSelector)&&O.push(H),H=H.parentElement;const S=O[0]||null;if(!S||!i.value||!s.value||f===S)return;f&&x(f),g&&(clearTimeout(g),g=null),f=S,Array.from(s.value).forEach(N=>{de.gsap.killTweensOf(N)}),de.gsap.killTweensOf(i.value,"rotation"),n.value?.pause(),de.gsap.set(i.value,{rotation:0});const T=(N,V)=>{const A=S.getBoundingClientRect(),Q=i.value.getBoundingClientRect(),b=Q.left+Q.width/2,L=Q.top+Q.height/2,[Y,le,Z,W]=Array.from(s.value),{borderWidth:se,cornerSize:ie,parallaxStrength:ce}=r,fe={x:A.left-b-se,y:A.top-L-se},we={x:A.right-b+se-ie,y:A.top-L-se},be={x:A.right-b+se-ie,y:A.bottom-L+se-ie},Ee={x:A.left-b-se,y:A.bottom-L+se-ie};if(N!==void 0&&V!==void 0){const $=A.left+A.width/2,j=A.top+A.height/2,te=(N-$)*ce,X=(V-j)*ce;fe.x+=te,fe.y+=X,we.x+=te,we.y+=X,be.x+=te,be.y+=X,Ee.x+=te,Ee.y+=X}const De=de.gsap.timeline(),Fe=[Y,le,Z,W],z=[fe,we,be,Ee];Fe.forEach(($,j)=>{De.to($,{x:z[j].x,y:z[j].y,duration:.2,ease:"power2.out"},0)})};v=!0,T(),setTimeout(()=>{v=!1},1);let R=null;const B=N=>{R||v||(R=requestAnimationFrame(()=>{const V=N;T(V.clientX,V.clientY),R=null}))},I=()=>{if(f=null,v=!1,s.value){const N=Array.from(s.value);de.gsap.killTweensOf(N);const{cornerSize:V}=r,A=[{x:-V*1.5,y:-V*1.5},{x:V*.5,y:-V*1.5},{x:V*.5,y:V*.5},{x:-V*1.5,y:V*.5}],Q=de.gsap.timeline();N.forEach((b,L)=>{Q.to(b,{x:A[L].x,y:A[L].y,duration:.3,ease:"power3.out"},0)})}g=setTimeout(()=>{if(!f&&i.value&&n.value){const V=de.gsap.getProperty(i.value,"rotation")%360;n.value.kill(),n.value=de.gsap.timeline({repeat:-1}).to(i.value,{rotation:"+=360",duration:t.spinDuration,ease:"none"}),de.gsap.to(i.value,{rotation:V+360,duration:t.spinDuration*(1-V/360),ease:"none",onComplete:()=>{n.value?.restart()}})}g=null},50),x(S)};d=B,m=I,S.addEventListener("mousemove",B),S.addEventListener("mouseleave",I)};window.addEventListener("mouseover",E,{passive:!0}),a=()=>{window.removeEventListener("mousemove",k),window.removeEventListener("mouseover",E),f&&x(f),g&&(clearTimeout(g),g=null),n.value?.kill(),n.value=null,i.value&&de.gsap.killTweensOf(i.value),s.value&&de.gsap.killTweensOf(Array.from(s.value)),i.value&&de.gsap.set(i.value,{x:0,y:0,rotation:0,opacity:0,display:"none"}),document.body.style.cursor=u,f=null}};return e.onMounted(()=>{c()}),e.onBeforeUnmount(()=>{a()}),e.watch(()=>[t.targetSelector,t.spinDuration,t.hideDefaultCursor],()=>{a(),c()}),e.watch(()=>t.spinDuration,()=>{!i.value||!n.value||n.value.isActive()&&(n.value.kill(),n.value=de.gsap.timeline({repeat:-1}).to(i.value,{rotation:"+=360",duration:t.spinDuration,ease:"none"}))},{immediate:!0}),(u,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"cursorRef",ref:i,class:e.normalizeClass(["top-0 left-0 z-[9999] fixed w-0 h-0 -translate-x-1/2 -translate-y-1/2 pointer-events-none mix-blend-difference transform opacity-0",t.cursorClass]),style:{willChange:"transform"}},[...h[0]||(h[0]=[e.createStaticVNode('<div class="top-1/2 left-1/2 absolute bg-white rounded-full w-1 h-1 -translate-x-1/2 -translate-y-1/2 transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-r-0 border-b-0 w-3 h-3 -translate-x-[150%] -translate-y-[150%] target-cursor-corner transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-b-0 border-l-0 w-3 h-3 -translate-y-[150%] translate-x-1/2 target-cursor-corner transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-t-0 border-l-0 w-3 h-3 translate-x-1/2 translate-y-1/2 target-cursor-corner transform" style="will-change:transform;"></div><div class="top-1/2 left-1/2 absolute border-[3px] border-white border-t-0 border-r-0 w-3 h-3 -translate-x-[150%] translate-y-1/2 target-cursor-corner transform" style="will-change:transform;"></div>',5)])],2))}}),Xn=e.defineComponent({__name:"index",props:{targetSelector:{default:".cursor-target"},spinDuration:{default:2},hideDefaultCursor:{type:Boolean,default:!0},showDemoContent:{type:Boolean,default:!1},demoItems:{default:void 0},classList:{default:()=>({})}},setup(o){const t=o,i=[{text:"THIS"},{text:"FEELS"},{text:"QUITE"},{text:"SNAPPY!",containerClass:"col-span-3"}],s=e.computed(()=>t.demoItems&&Array.isArray(t.demoItems)&&t.demoItems.length>0?t.demoItems:i),n=e.computed(()=>{const a=t.classList?.Location||{};return[a.position,a.width,a.height,a.left,a.top,a.zIndex].filter(Boolean)}),r=a=>[t.classList?.defaultItemContainerClass||"",a.containerClass].filter(Boolean).join(" "),l=a=>[t.classList?.defaultItemTextClass||"px-6 py-2 border border-[#aeffc5] border-dashed rounded-[15px] font-black text-[#aeffc5] text-[2rem] text-center cursor-target",a.textClass].filter(Boolean).join(" ");return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass,n.value])},[e.createVNode(jn,{"target-selector":o.targetSelector||".cursor-target","spin-duration":o.spinDuration||2,"hide-default-cursor":o.hideDefaultCursor!==void 0?o.hideDefaultCursor:!0,"cursor-class":o.classList?.cursorClass},null,8,["target-selector","spin-duration","hide-default-cursor","cursor-class"]),o.showDemoContent&&s.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.classList?.demoContainerClass||"gap-4 grid grid-cols-3 mb-2")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(u,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(r(u))},[e.createElementVNode("p",{class:e.normalizeClass(l(u))},e.toDisplayString(u.text),3)],2))),128))],2)):e.createCommentVNode("",!0)],2))}}),qn={class:"mx-auto w-full max-w-3xl text-center"},Zn={class:"relative h-32"},Kn={class:"pointer-events-none absolute left-1/2 top-0 size-[480px] -translate-x-1/2 before:absolute before:inset-0 before:-z-10 before:rounded-full before:bg-gradient-to-b before:from-zinc-500/25 before:via-zinc-500/5 before:via-25% before:to-zinc-500/0 before:to-75%"},Jn={class:"h-32 [mask-image:_linear-gradient(0deg,transparent,theme(colors.white)_20%,theme(colors.white))]"},Qn=["src","alt"],ea={class:"mb-8 transition-all delay-300 duration-150 ease-in-out"},ta={class:"text-2xl font-bold text-zinc-900 before:content-['\\201C'] after:content-['\\201D'] dark:text-zinc-100"},sa={class:"mt-4 flex w-full items-center justify-between gap-4 pt-12 md:pt-0"},ia={class:"flex flex-col items-center gap-1"},oa={class:"text-base italic"},na={class:"text-sm italic"},aa=e.defineComponent({__name:"TestimonialSlider",props:{testimonials:{default:()=>[]},autoRotate:{type:Boolean,default:!0},duration:{default:5}},setup(o){const t=o,i=e.ref(0),s=e.ref(t.autoRotate),n=e.ref(null);let r=null;function l(){n.value&&n.value.parentElement&&(n.value.parentElement.style.height=`${n.value.clientHeight}px`)}function a(d){i.value=d,s.value=!1,u()}function c(){r=window.setInterval(()=>{i.value=i.value+1===t.testimonials.length?0:i.value+1,l()},t.duration*1e3)}function u(){r&&clearInterval(r),s.value&&c()}function h(){a((i.value+1)%t.testimonials.length)}function f(){a((i.value-1+t.testimonials.length)%t.testimonials.length)}return e.onMounted(()=>{l(),s.value&&c()}),e.onUnmounted(()=>{r&&clearInterval(r)}),(d,m)=>(e.openBlock(),e.createElementBlock("div",qn,[e.createElementVNode("div",Zn,[e.createElementVNode("div",Kn,[e.createElementVNode("div",Jn,[e.createVNode(e.TransitionGroup,{name:"testimonial-image"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.testimonials,(v,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:`image-${g}`,class:"absolute inset-0 -z-10 flex h-full flex-col"},[e.createElementVNode("img",{class:"relative left-1/2 top-11 -translate-x-1/2 rounded-full",src:v.img,width:"60",height:"60",alt:v.name},null,8,Qn)])),[[e.vShow,i.value===g]])),128))]),_:1})])])]),e.createElementVNode("div",ea,[e.createElementVNode("div",{ref_key:"testimonialsRef",ref:n,class:"relative flex flex-col"},[e.createVNode(e.TransitionGroup,{name:"testimonial-text"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.testimonials,(v,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:`text-${g}`,class:"w-full"},[e.createElementVNode("div",ta,e.toDisplayString(v.quote),1)])),[[e.vShow,i.value===g]])),128))]),_:1})],512)]),e.createElementVNode("div",sa,[e.createElementVNode("button",{class:"group/button flex size-7 items-center justify-center rounded-full bg-gray-100 dark:bg-neutral-800",onClick:f},[e.createVNode(e.unref(St.ArrowLeft),{name:"lucide:arrow-left",class:"size-5 text-black transition-transform duration-300 group-hover/button:rotate-12 dark:text-neutral-400"})]),e.createElementVNode("div",ia,[e.createElementVNode("span",oa,e.toDisplayString(o.testimonials.at(i.value)?.name),1),e.createElementVNode("span",na,e.toDisplayString(o.testimonials.at(i.value)?.role),1)]),e.createElementVNode("button",{class:"group/button flex size-7 items-center justify-center rounded-full bg-gray-100 dark:bg-neutral-800",onClick:h},[e.createVNode(e.unref(St.ArrowRight),{name:"lucide:arrow-right",class:"size-5 text-black transition-transform duration-300 group-hover/button:-rotate-12 dark:text-neutral-400"})])])]))}}),ra=e.defineComponent({__name:"index",props:{testimonials:{default:()=>[{img:"https://randomuser.me/api/portraits/men/1.jpg",quote:"Inspira UI is sleeker than my star cruiser. Launch-ready in seconds. Zero crashes, zero gravity.",name:"Buzz Lightyear",role:"Intergalactic Interface Command"},{img:"https://randomuser.me/api/portraits/women/2.jpg",quote:"Clickin' around this thing feels like ridin' a horse with turbo boosters. Inspira's got giddyup!",name:"Jessie",role:"Yeehaw Engagement & Barnyard UX"},{img:"https://randomuser.me/api/portraits/men/3.jpg",quote:"I've seen some clunky UIs in my day... but this one? Smoother than a tumbleweed on Tuesday.",name:"Woody",role:"Sheriff"},{img:"https://randomuser.me/api/portraits/men/4.jpg",quote:"I was terrified. Then I clicked. Nothing exploded. Inspira UI is a safe space. I'm thriving.",name:"Rex",role:"Senior Panic Tester, Dinosaur Usability Lab"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"relative h-[500px] w-full overflow-hidden rounded-lg border bg-background",i.value])},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.sliderClass||"mt-[64px] flex justify-center px-12")},[e.createVNode(aa,{testimonials:o.testimonials},null,8,["testimonials"])],2)],2))}}),la=e.defineComponent({__name:"Text3d",props:{textColor:{default:"white"},letterSpacing:{default:-.1},strokeColor:{default:"black"},shadowColor:{default:"yellow"},strokeSize:{default:20},shadow1Size:{default:7},shadow2Size:{default:10},class:{},animate:{type:Boolean,default:!0},animationDuration:{default:1500}},setup(o){e.useCssVars(a=>({v737795be:i.value,a152ef28:s.value,v50ecc536:a.strokeColor,v03dc9f8e:n.value,db53c18c:r.value,v07302b7d:a.shadowColor,v7e1d6e10:a.textColor,v3afa6846:l.value}));const t=o,i=e.computed(()=>`${t.letterSpacing}ch`),s=e.computed(()=>`${t.strokeSize}px`),n=e.computed(()=>`${t.shadow1Size}px`),r=e.computed(()=>`${t.shadow2Size}px`),l=e.computed(()=>`${t.animationDuration}ms`);return(a,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("text-3d flex items-center justify-center",o.animate?"animate-text-3d":"",t.class))},[e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),ca=me(la,[["__scopeId","data-v-8d20718d"]]),ua=e.defineComponent({__name:"index",props:{texts:{default:()=>[{text:"3D",shadowColor:"red",animate:!0,class:"text-8xl font-bold max-md:text-7xl"},{text:"IS",shadowColor:"skyblue",animate:!1,class:"text-8xl font-black max-md:text-7xl"},{text:"AWESOME",shadowColor:"",animate:!0,class:"text-8xl font-bold max-md:text-7xl"}]},classList:{default:()=>({})}},setup(o){return(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.classList?.overallClass||"flex flex-col items-center justify-center overflow-hidden bg-black px-4 py-16 font-heading")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.texts,(s,n)=>(e.openBlock(),e.createBlock(ca,{key:n,class:e.normalizeClass(s.class||"text-8xl font-bold max-md:text-7xl"),"shadow-color":s.shadowColor,animate:s.animate},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.text),1)]),_:2},1032,["class","shadow-color","animate"]))),128))],2))}}),da=e.defineComponent({__name:"TextGenerateEffect",props:{words:{},filter:{type:Boolean,default:!0},duration:{default:.7},delay:{default:0},class:{}},setup(o){const t=o,i=e.ref(null),s=e.computed(()=>t.words.split(" ")),n=e.computed(()=>({opacity:0,filter:t.filter?"blur(10px)":"none",transition:`opacity ${t.duration}s, filter ${t.duration}s`}));return e.onMounted(()=>{if(i.value){const r=i.value.querySelectorAll("span");setTimeout(()=>{r.forEach((l,a)=>{setTimeout(()=>{l.style.opacity="1",l.style.filter=t.filter?"blur(0px)":"none"},a*200)})},t.delay)}}),(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(J)("leading-snug tracking-wide",t.class))},[e.createElementVNode("div",{ref_key:"scope",ref:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(a,c)=>(e.openBlock(),e.createElementBlock("span",{key:a+c,class:"inline-block",style:e.normalizeStyle(n.value)},e.toDisplayString(a)+"  ",5))),128))],512)],2))}}),ha=e.defineComponent({__name:"index",props:{words:{default:"Nuxt is an open source framework that makes web development intuitive and powerful.Create performant and production-grade full-stack web apps and websites with confidence."},classList:{default:()=>({})}},setup(o){return(t,i)=>{const s=e.resolveComponent("ClientOnly");return e.openBlock(),e.createBlock(s,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.overallClass||"flex h-64 items-center justify-center max-lg:w-full min-md:flex-1")},[e.createVNode(da,{words:o.words,class:e.normalizeClass(o.classList?.textClass||"text-2xl font-bold")},null,8,["words","class"])],2)]),_:1})}}}),ma=["src"],fa=e.defineComponent({__name:"Timeline",props:{containerClass:{},class:{},items:{default:()=>[]},classList:{},title:{},titleClass:{},description:{},animationDuration:{default:5e3}},setup(o){const t=o,i=e.ref(null),s=e.ref(null),n=e.ref(0),r=e.ref(0),l=e.reactive(new Set),a=e.ref([]),c=[];let u=null,h=null;const f=(g,x)=>{c[x]=g},d=()=>{if(!s.value)return;const g=s.value.getBoundingClientRect();a.value=c.map(x=>x?x.getBoundingClientRect().top-g.top:0)},m=()=>{const g=r.value,x=g+550;let p=-1,k=1/0;a.value.forEach((E,w)=>{if(E>=g&&E<=x){const D=Math.abs(x-E);D<k&&(k=D,p=w)}}),l.clear(),p>=0&&l.add(p)},v=g=>{h||(h=g);const p=(g-h)%t.animationDuration/t.animationDuration;r.value=-550+p*(n.value+550),m(),u=requestAnimationFrame(v)};return e.onMounted(async()=>{if(await e.nextTick(),s.value){const g=s.value.getBoundingClientRect();n.value=g.height}d(),u=requestAnimationFrame(v)}),e.onUnmounted(()=>{u&&cancelAnimationFrame(u)}),(g,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"timelineContainerRef",ref:i,class:e.normalizeClass(o.classList?.overallClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.headerClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.titleClass)},[e.createElementVNode("img",{src:o.title,alt:""},null,8,ma)],2),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.headerDescriptionClass)},e.toDisplayString(o.description),3)],2),e.createElementVNode("div",{ref_key:"timelineRef",ref:s,class:e.normalizeClass(o.classList?.timelineRefClass)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(p,k)=>(e.openBlock(),e.createElementBlock("div",{key:p.id+k,ref_for:!0,ref:E=>f(E,k),class:e.normalizeClass(o.classList?.timelineItemClass)},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.yearClass||"sticky top-40 z-40 flex flex-col items-center self-start")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.pointClass),style:e.normalizeStyle(l.has(k)?{backgroundColor:"#1e7ff0"}:{})},[e.createElementVNode("div",{class:e.normalizeClass(["size-4 rounded-full border p-2 transition-colors duration-300",l.has(k)?"border-white bg-white":"border-neutral-300 bg-neutral-200 dark:border-neutral-700 dark:bg-neutral-800"])},null,2)],6),e.createElementVNode("h3",{class:e.normalizeClass(o.classList?.labelClass)},e.toDisplayString(p.label),3)],2),e.renderSlot(g.$slots,p.id)],2))),128)),e.createElementVNode("div",{style:e.normalizeStyle({height:n.value+"px"}),class:"absolute left-[26px] top-0 w-[2px] overflow-hidden bg-[linear-gradient(to_bottom,var(--tw-gradient-stops))] from-transparent from-0% via-neutral-200 to-transparent to-[99%] [mask-image:linear-gradient(to_bottom,transparent_0%,black_10%,black_90%,transparent_100%)] dark:via-neutral-700"},[e.createElementVNode("div",{style:e.normalizeStyle({height:"550px",top:r.value+"px"}),class:"absolute inset-x-0 w-[2px] rounded-full bg-gradient-to-t from-purple-500 from-0% via-blue-500 via-10% to-transparent"},null,4)],4)],2)],2))}}),pa=["innerHTML"],ga=["src"],va=["src"],xa=["src"],ya=["src"],wa=e.defineComponent({__name:"index",props:{data:{default:()=>[]},title:{default:"Beam me up"},titleClass:{},imgList:{default:()=>[]},description:{},imgSpeed:{default:8},animationDuration:{},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const n=t.classList?.Location||{};return[n.position,n.width,n.height,n.left,n.top].filter(Boolean)}),s=e.computed(()=>t.imgList.length>2);return(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([i.value,"flex"])},[e.createVNode(fa,{items:o.data,title:o.title,titleClass:o.titleClass,classList:o.classList,description:o.description,animationDuration:o.animationDuration},e.createSlots({_:2},[e.renderList(o.data,(l,a)=>({name:l.id,fn:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.sectionClass||"relative w-full pl-20 pr-4 md:pl-4")},[e.createElementVNode("h3",{class:e.normalizeClass([o.classList?.titleClass||"mb-4 block text-left text-2xl font-bold text-neutral-500 dark:text-neutral-500","whitespace-pre-wrap"]),innerHTML:l?.description},null,10,pa)],2),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.descriptionClass||"mb-8 text-xs font-normal text-neutral-800 md:text-sm dark:text-neutral-200")},null,2)])}))]),1032,["items","title","titleClass","classList","description","animationDuration"]),e.createElementVNode("div",{class:e.normalizeClass([o.classList?.imgContainerClass||"flex flex-col w-[700px] justify-center items-center mr-[90px] h-[100vh]","overflow-hidden"])},[s.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"scroll-container flex flex-col",style:e.normalizeStyle({animationDuration:o.imgSpeed+"s"})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[35px] mb-[35px]"),key:l,src:l,alt:""},null,10,va))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[35px] mb-[35px]"),key:l+"-copy",src:l,alt:""},null,10,xa))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[35px] mb-[35px]"),key:l+"-copy2",src:l,alt:""},null,10,ya))),128))],4)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.imgList,l=>(e.openBlock(),e.createElementBlock("img",{class:e.normalizeClass(o.classList?.imgClass||"mt-[70px]"),key:l,src:l,alt:""},null,10,ga))),128))],2)],2))}}),ba=me(wa,[["__scopeId","data-v-c3ccd3ba"]]),Ca={class:"absolute -left-4 top-3 md:-left-12"},Ea=["viewBox","height"],ka=["d"],Sa=["d"],Ta=["y1","y2"],Ma=e.defineComponent({__name:"TracingBeam",props:{class:String},setup(o){const t=e.ref(),i=e.ref(),s=e.ref(0),n=e.ref(0),r=e.ref(0),l=e.computed(()=>f(s.value,0,.8,s.value,n.value)*(1.4-r.value)),a=e.computed(()=>f(s.value,0,1,s.value,n.value-500)*(1.4-r.value)),c=e.ref({y1:l.value,y2:a.value});e.watch(l,d=>{c.value.y1=d}),e.watch(a,d=>{c.value.y2=d});function u(){if(t.value){const d=t.value.getBoundingClientRect(),m=window.innerHeight,v=d.height;r.value=(m-d.top)/(m+v),s.value=d.y/m*-1}}e.onMounted(()=>{window.addEventListener("scroll",u),window.addEventListener("resize",u),u(),new ResizeObserver(function(){h()}).observe(i.value),h()}),e.onUnmounted(()=>{t.value?.removeEventListener("scroll",u),window.removeEventListener("resize",u)});function h(){i.value&&(n.value=i.value.offsetHeight)}function f(d,m,v,g,x){return(d-m)*(x-g)/(v-m)+g}return(d,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"tracingBeamRef",ref:t,class:e.normalizeClass(e.unref(J)("relative w-full max-w-4xl mx-auto h-full",d.$props.class))},[e.createElementVNode("div",Ca,[e.createElementVNode("div",{style:e.normalizeStyle({boxShadow:s.value>0?"none":"rgba(0, 0, 0, 0.24) 0px 3px 8px"}),class:"border-netural-200 ml-[27px] flex size-4 items-center justify-center rounded-full border shadow-sm"},[e.createVNode(e.unref(xe.Motion),{animate:{backgroundColor:s.value>0?"white":"var(--emerald-500)",borderColor:s.value>0?"white":"var(--emerald-600)"},class:"size-2 rounded-full border border-neutral-300 bg-white"},null,8,["animate"])],4),(e.openBlock(),e.createElementBlock("svg",{viewBox:`0 0 20 ${n.value}`,width:"20",height:n.value,class:"ml-4 block","aria-hidden":"true"},[e.createElementVNode("path",{d:`M 1 0V -36 l 18 24 V ${n.value*.8} l -18 24V ${n.value}`,fill:"none",stroke:"#9091A0","stroke-opacity":"0.16"},null,8,ka),e.createElementVNode("path",{d:`M 1 0V -36 l 18 24 V ${n.value*.8} l -18 24V ${n.value}`,fill:"none",stroke:"url(#gradient)","stroke-width":"1.25",class:"motion-reduce:hidden"},null,8,Sa),e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:"gradient",gradientUnits:"userSpaceOnUse",x1:"0",x2:"0",y1:c.value.y1,y2:c.value.y2},[...m[0]||(m[0]=[e.createElementVNode("stop",{"stop-color":"#18CCFC","stop-opacity":"0"},null,-1),e.createElementVNode("stop",{"stop-color":"#18CCFC"},null,-1),e.createElementVNode("stop",{offset:"0.325","stop-color":"#6344F5"},null,-1),e.createElementVNode("stop",{offset:"1","stop-color":"#AE48FF","stop-opacity":"0"},null,-1)])],8,Ta)])],8,Ea))]),e.createElementVNode("div",{ref_key:"tracingBeamContentRef",ref:i},[e.renderSlot(d.$slots,"default")],512)],2))}}),_a=["src"],Ba=e.defineComponent({__name:"index",props:{content:{default:()=>[{title:"Lorem Ipsum Dolor Sit Amet",description:["Sit duis est minim proident non nisi velit non consectetur. Esse adipisicing laboris consectetur enim ipsum reprehenderit eu deserunt Lorem ut aliqua anim do. Duis cupidatat qui irure cupidatat incididunt incididunt enim magna id est qui sunt fugiat. Laboris do duis pariatur fugiat Lorem aute sit ullamco. Qui deserunt non reprehenderit dolore nisi velit exercitation Lorem qui do enim culpa. Aliqua eiusmod in occaecat reprehenderit laborum nostrud fugiat voluptate do Lorem culpa officia sint labore. Tempor consectetur excepteur ut fugiat veniam commodo et labore dolore commodo pariatur.","Dolor minim irure ut Lorem proident. Ipsum do pariatur est ad ad veniam in commodo id reprehenderit adipisicing. Proident duis exercitation ad quis ex cupidatat cupidatat occaecat adipisicing.","Tempor quis dolor veniam quis dolor. Sit reprehenderit eiusmod reprehenderit deserunt amet laborum consequat adipisicing officia qui irure id sint adipisicing. Adipisicing fugiat aliqua nulla nostrud. Amet culpa officia aliquip deserunt veniam deserunt officia adipisicing aliquip proident officia sunt."],badge:"Vue",image:"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&q=80&w=3540&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{title:"Lorem Ipsum Dolor Sit Amet",description:["Ex irure dolore veniam ex velit non aute nisi labore ipsum occaecat deserunt cupidatat aute. Enim cillum dolor et nulla sunt exercitation non voluptate qui aliquip esse tempor. Ullamco ut sunt consectetur sint qui qui do do qui do. Labore laborum culpa magna reprehenderit ea velit id esse adipisicing deserunt amet dolore. Ipsum occaecat veniam commodo proident aliqua id ad deserunt dolor aliquip duis veniam sunt.","In dolore veniam excepteur eu est et sunt velit. Ipsum sint esse veniam fugiat esse qui sint ad sunt reprehenderit do qui proident reprehenderit. Laborum exercitation aliqua reprehenderit ea sint cillum ut mollit."],badge:"Nuxt",image:"https://images.unsplash.com/photo-1519681393784-d120267933ba?auto=format&fit=crop&q=80&w=3540&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"},{title:"Lorem Ipsum Dolor Sit Amet",description:["Ex irure dolore veniam ex velit non aute nisi labore ipsum occaecat deserunt cupidatat aute. Enim cillum dolor et nulla sunt exercitation non voluptate qui aliquip esse tempor. Ullamco ut sunt consectetur sint qui qui do do qui do. Labore laborum culpa magna reprehenderit ea velit id esse adipisicing deserunt amet dolore. Ipsum occaecat veniam commodo proident aliqua id ad deserunt dolor aliquip duis veniam sunt."],badge:"Inspira UI",image:"https://images.unsplash.com/photo-1469474968028-56623f02e42e?auto=format&fit=crop&q=80&w=3506&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"}]},classList:{default:()=>({})}},setup(o){const t=o,i=e.computed(()=>{const s=t.classList?.Location||{};return[s.position,s.width,s.height,s.left,s.top].filter(Boolean)});return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([o.classList?.overallClass||"w-full items-center justify-center px-8",i.value])},[e.createVNode(Ma,{class:e.normalizeClass(o.classList?.beamClass||"px-6")},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.contentClass||"relative mx-auto max-w-2xl pt-4 antialiased")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.content,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:`content-${l}`,class:e.normalizeClass(o.classList?.itemClass||"mb-10")},[e.createElementVNode("div",{class:e.normalizeClass(o.classList?.badgeClass||"mb-4 w-fit rounded-full bg-black px-2 text-sm text-white dark:bg-white dark:text-black")},e.toDisplayString(r.badge),3),e.createElementVNode("p",{class:e.normalizeClass(o.classList?.titleClass||"mb-4 text-xl")},e.toDisplayString(r.title),3),e.createElementVNode("div",{class:e.normalizeClass(o.classList?.descriptionClass||"prose prose-sm dark:prose-invert text-sm")},[r.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:r.image,alt:"blog thumbnail",class:e.normalizeClass(o.classList?.imageClass||"mb-10 rounded-lg object-cover")},null,10,_a)):e.createCommentVNode("",!0),e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.description,(a,c)=>(e.openBlock(),e.createElementBlock("p",{key:`desc-${c}`},e.toDisplayString(a),1))),128))])],2)],2))),128))],2)]),_:1},8,["class"])],2))}}),Da={class:"navigation"},Ra={class:"nav-container"},La={class:"nav-brand"},Ia={class:"nav-icon"},za={class:"nav-text"},Aa=["title"],Pa={class:"nav-icon"},Na={class:"nav-text"},Va={__name:"Navigation",setup(o){Vt.useRoute();const t=e.ref(!1),i=Ce.useColorMode(),s=()=>{i.value=i.value==="dark"?"light":"dark"},n=[{path:"/",name:"首页",icon:"🏠"},{path:"/page-1",name:"Demo 1",icon:"🎨"},{path:"/page-2",name:"Demo 2",icon:"✨"},{path:"/page-3",name:"Demo 3",icon:"🔲"},{path:"/page-4",name:"Demo 4",icon:"🌟"},{path:"/page-5",name:"Demo 5",icon:"🎯"},{path:"/page-6",name:"Demo 6",icon:"🍱"},{path:"/page-7",name:"Demo 7",icon:"📜"},{path:"/page-8",name:"Demo 8",icon:"📈"}],r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,c)=>{const u=e.resolveComponent("router-link");return e.openBlock(),e.createElementBlock("nav",Da,[e.createElementVNode("div",Ra,[e.createElementVNode("div",La,[e.createVNode(u,{to:"/",class:"brand-link"},{default:e.withCtx(()=>[...c[0]||(c[0]=[e.createElementVNode("span",{class:"brand-icon"},"🎨",-1),e.createElementVNode("span",{class:"brand-text"},"SensingPlatform Web UI",-1)])]),_:1})]),e.createElementVNode("div",{class:e.normalizeClass(["nav-menu",{"nav-menu-open":t.value}])},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,h=>e.createVNode(u,{key:h.path,to:h.path,class:e.normalizeClass(["nav-link",{"nav-link-active":a.$route.path===h.path}]),onClick:l},{default:e.withCtx(()=>[e.createElementVNode("span",Ia,e.toDisplayString(h.icon),1),e.createElementVNode("span",za,e.toDisplayString(h.name),1)]),_:2},1032,["to","class"])),64)),e.createElementVNode("button",{onClick:s,class:"nav-link dark-mode-toggle",title:e.unref(i)==="dark"?"切换到浅色模式":"切换到暗色模式"},[e.createElementVNode("span",Pa,e.toDisplayString(e.unref(i)==="dark"?"☀️":"🌙"),1),e.createElementVNode("span",Na,e.toDisplayString(e.unref(i)==="dark"?"浅色":"暗色"),1)],8,Aa)],2),e.createElementVNode("div",{class:"nav-toggle",onClick:r},[e.createElementVNode("span",{class:e.normalizeClass(["hamburger",{"hamburger-open":t.value}])},[...c[1]||(c[1]=[e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1)])],2)])])])}}},Fa=me(Va,[["__scopeId","data-v-d47bcaa4"]]);exports.AnimatedTestimonials=ws;exports.Aurora=Ts;exports.BendingGallery=_s;exports.BentoGrid=Ns;exports.Card3D=gs;exports.Carousel3D=Gs;exports.CircularGallery=Ws;exports.ContainerScroll=Qs;exports.DirectionAwareHover=oi;exports.Dock=ci;exports.DomeGallery=gi;exports.ExpandableGallery=yi;exports.FluidCursor=ki;exports.IButton=Si;exports.IInput=ht;exports.IconCloud=Mi;exports.InfiniteGrid=eo;exports.InfiniteMenu=no;exports.InspiraImageParticles=lo;exports.InteractiveGridPattern=mo;exports.Lightning=Eo;exports.LinkPreview=Bo;exports.MagnifyingGlass=Vo;exports.Marquee=jo;exports.Meteors=Zo;exports.Navigation=Fa;exports.PhotoGallery=en;exports.RegistrationForm=an;exports.RippleButton=dn;exports.RollingGallery=fn;exports.ScratchToReveal=xn;exports.ScrollIsland=Dn;exports.SparkElement=zn;exports.SparklesText=Fn;exports.Spline=Hn;exports.Stack=Wn;exports.TargetCursor=Xn;exports.TestimonialSlider=ra;exports.Text3d=ua;exports.TextGenerateEffect=ha;exports.Timeline=ba;exports.TracingBeam=Ba;