3d-effect-cinema 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -88
- package/dist/index.d.mts +165 -28
- package/dist/index.d.ts +165 -28
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
var oe=Object.defineProperty,ie=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var L=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var z=(n,e,r)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[e]=r,y=(n,e)=>{for(var r in e||(e={}))U.call(e,r)&&z(n,r,e[r]);if(L)for(var r of L(e))O.call(e,r)&&z(n,r,e[r]);return n},B=(n,e)=>ie(n,ae(e));var V=(n,e)=>{var r={};for(var o in n)U.call(n,o)&&e.indexOf(o)<0&&(r[o]=n[o]);if(n!=null&&L)for(var o of L(n))e.indexOf(o)<0&&O.call(n,o)&&(r[o]=n[o]);return r};import{useRef as _,useMemo as se}from"react";import{useFrame as le}from"@react-three/fiber";import{Text3D as ce}from"@react-three/drei";import*as M from"three";var me={gold:{color:"#FFD700",metalness:1,roughness:.15,clearcoat:1,emissive:"#1a0f00",emissiveIntensity:.3,envMapIntensity:2},neon:{color:"#00ffff",metalness:0,roughness:1,clearcoat:0,emissive:"#00ffff",emissiveIntensity:2.5,envMapIntensity:.5},emerald:{color:"#10b981",metalness:.9,roughness:.1,clearcoat:1,emissive:"#065f46",emissiveIntensity:1.2,envMapIntensity:2.5},crimson:{color:"#ff1744",metalness:.8,roughness:.15,clearcoat:1,emissive:"#880e4f",emissiveIntensity:1.8,envMapIntensity:2},obsidian:{color:"#1a1a2e",metalness:1,roughness:.05,clearcoat:1,emissive:"#0a0a1a",emissiveIntensity:.1,envMapIntensity:3},glass:{color:"#ffffff",metalness:0,roughness:0,clearcoat:0,emissive:"#000000",emissiveIntensity:0,envMapIntensity:1.5,transmission:.95,ior:1.5,thickness:.5,transparent:!0}};function k({char:n,index:e,totalLetters:r,position:o,phase:c,theme:l,fontUrl:s}){let a=_(null),t=_(null),i=se(()=>{let d=e/r*Math.PI*2;return{x:Math.cos(d)*4+(Math.random()-.5)*2,y:-3+Math.random()*-3,z:-5+Math.random()*-3,rotX:(Math.random()-.5)*Math.PI*2,rotY:(Math.random()-.5)*Math.PI*2}},[e,r]),m=me[l];return le(d=>{if(!a.current)return;let p=d.clock.getElapsedTime();t.current===null&&(t.current=p);let f=p-t.current,h=e*.12;if(c==="loading"){a.current.position.set(o[0]+i.x,o[1]+i.y,o[2]+i.z),a.current.rotation.set(i.rotX,i.rotY,0),a.current.scale.setScalar(0);return}if(c==="entering"){let u=Math.max(0,f-h),g=1-Math.exp(-u*3),x=1+Math.sin(u*8)*Math.max(0,.15-u*.1);a.current.position.set(M.MathUtils.lerp(o[0]+i.x,o[0],g),M.MathUtils.lerp(o[1]+i.y,o[1],g),M.MathUtils.lerp(o[2]+i.z,o[2],g)),a.current.rotation.set(M.MathUtils.lerp(i.rotX,0,g),M.MathUtils.lerp(i.rotY,0,g),0),a.current.scale.setScalar(Math.min(g*x,1.05));return}if(c==="idle"){let u=Math.sin(p*1.2+e*.5)*.015,g=Math.sin(p*.8+e*.3)*.008;a.current.position.set(o[0]+g,o[1]+u,o[2]),a.current.rotation.set(Math.sin(p*.5+e)*.01,Math.sin(p*.3+e*.7)*.01,0),a.current.scale.setScalar(1);return}if(c==="exiting"){let u=Math.max(0,f-h*.5),g=Math.min(u*2,1),x=g*g;a.current.position.set(o[0]+i.x*x*.5,o[1],o[2]-x*8),a.current.scale.setScalar(Math.max(1-x,0)),a.current.rotation.y+=.05}}),n===" "?null:React.createElement("group",{ref:a,position:o},React.createElement(ce,{font:s,size:.8,height:.35,bevelEnabled:!0,bevelSize:.02,bevelThickness:.01,bevelSegments:3,curveSegments:12},n,React.createElement("meshPhysicalMaterial",{color:m.color,metalness:m.metalness,roughness:m.roughness,clearcoat:m.clearcoat,emissive:m.emissive,emissiveIntensity:m.emissiveIntensity,envMapIntensity:m.envMapIntensity,transmission:m.transmission,ior:m.ior,thickness:m.thickness,transparent:m.transparent,toneMapped:l!=="neon"})))}import{useRef as Y}from"react";import{useFrame as de,useThree as fe}from"@react-three/fiber";import*as v from"three";function E({phase:n}){let{camera:e,pointer:r}=fe(),o=Y(null),c=Y(n);return c.current!==n&&(c.current=n,o.current=null),de(l=>{let s=l.clock.getElapsedTime();o.current===null&&(o.current=s);let a=s-o.current;if(n==="loading"){e.position.set(0,0,14),e.lookAt(0,0,0);return}if(n==="entering"){let t=Math.min(a/3,1),i=1-Math.pow(1-t,3),m=v.MathUtils.lerp(14,6,i),d=v.MathUtils.lerp(1,.2,i);e.position.set(0,d,m),e.lookAt(0,0,0);return}if(n==="idle"){let t=Math.sin(s*.15)*.3,i=Math.cos(s*.1)*.15+.2,m=r.x*.3,d=r.y*.15;e.position.x=v.MathUtils.damp(e.position.x,t+m,3,.016),e.position.y=v.MathUtils.damp(e.position.y,i+d,3,.016),e.position.z=v.MathUtils.damp(e.position.z,6,3,.016),e.lookAt(0,0,0);return}if(n==="exiting"){let t=Math.min(a/1.5,1),i=t*t*t,m=v.MathUtils.lerp(6,-8,i);e.position.set(0,0,m),e.lookAt(0,0,0)}}),null}import{Suspense as Ee,useState as W,useEffect as we,useCallback as Te,useMemo as Ce}from"react";import{Canvas as Ne}from"@react-three/fiber";import{Environment as Re,Center as Le}from"@react-three/drei";import{EffectComposer as Se,Bloom as Pe,Vignette as Fe,Noise as He}from"@react-three/postprocessing";import{useRef as S}from"react";import{useFrame as ue}from"@react-three/fiber";import{Sparkles as D}from"@react-three/drei";import*as X from"three";var pe={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"};function ge({color:n,count:e=60}){let r=S(null),o=S(new X.Object3D),c=S(null),l=S(null);if(!c.current){c.current=new Float32Array(e),l.current=new Float32Array(e*3);for(let s=0;s<e;s++)c.current[s]=.1+Math.random()*.3,l.current[s*3]=(Math.random()-.5)*16,l.current[s*3+1]=(Math.random()-.5)*10,l.current[s*3+2]=(Math.random()-.5)*12}return ue(s=>{if(!r.current||!c.current||!l.current)return;let a=s.clock.getElapsedTime();for(let t=0;t<e;t++){let i=c.current[t],m=l.current[t*3],d=l.current[t*3+1],p=l.current[t*3+2];o.current.position.set(m+Math.sin(a*i+t)*2,d+Math.cos(a*i*.7+t*.5)*1.5,p+Math.sin(a*i*.5+t*.3)*2),o.current.scale.setScalar(.015+Math.sin(a+t)*.005),o.current.updateMatrix(),r.current.setMatrixAt(t,o.current.matrix)}r.current.instanceMatrix.needsUpdate=!0}),React.createElement("instancedMesh",{ref:r,args:[void 0,void 0,e]},React.createElement("sphereGeometry",{args:[1,6,6]}),React.createElement("meshBasicMaterial",{color:n,transparent:!0,opacity:.3,toneMapped:!1}))}function w({theme:n,visible:e}){let r=pe[n];return e?React.createElement("group",null,React.createElement(D,{count:150,scale:10,size:4,speed:.3,opacity:.8,color:r,noise:.6}),React.createElement(D,{count:80,scale:16,size:2,speed:.15,opacity:.4,color:"#ffffff",noise:.8}),React.createElement(ge,{color:r,count:50})):null}var he=[{key:"gold",label:"Gold",color:"#FFD700"},{key:"neon",label:"Neon",color:"#00ffff"},{key:"emerald",label:"Emerald",color:"#10b981"},{key:"crimson",label:"Crimson",color:"#ff1744"},{key:"obsidian",label:"Obsidian",color:"#a855f7"},{key:"glass",label:"Glass",color:"#ffffff"}];function P({phase:n,cinemaName:e,theme:r,onEnter:o,onThemeChange:c}){let l=n==="idle";return React.createElement("div",{className:"absolute inset-0 pointer-events-none z-10 flex flex-col items-center justify-between",style:{opacity:n==="exiting"?0:1,transition:"opacity 0.8s ease-out"}},React.createElement("div",{className:"pt-12 text-center flex flex-col items-center gap-1",style:{opacity:n==="idle"||n==="entering"?1:0,transform:n==="idle"||n==="entering"?"translateY(0)":"translateY(-20px)",transition:"all 1s ease-out 0.5s"}},React.createElement("p",{className:"text-xs tracking-[0.4em] uppercase font-bold",style:{color:"rgba(255, 255, 255, 0.6)",fontFamily:"var(--font-syne), sans-serif",textShadow:"0 2px 10px rgba(0,0,0,0.8)"}},"Premium Cinema Experience"),React.createElement("p",{className:"text-[10px] tracking-[0.25em] uppercase",style:{color:"rgba(255, 255, 255, 0.4)",fontFamily:"sans-serif"}},"\u2726 Click anywhere for fire sparks \u2726")),n==="loading"&&React.createElement("div",{className:"absolute inset-0 flex items-center justify-center"},React.createElement("div",{className:"w-16 h-16 rounded-full border-2 animate-spin-slow",style:{borderColor:"transparent",borderTopColor:"rgba(255, 215, 0, 0.6)",borderRightColor:"rgba(255, 215, 0, 0.2)"}})),React.createElement("div",{className:"pb-12 flex flex-col items-center gap-6"},React.createElement("button",{onClick:o,className:"pointer-events-auto px-10 py-3.5 rounded-full text-sm font-semibold tracking-widest uppercase transition-all duration-500 cursor-pointer",style:{opacity:l?1:0,transform:l?"translateY(0) scale(1)":"translateY(20px) scale(0.95)",transition:"all 0.8s cubic-bezier(0.16, 1, 0.3, 1)",fontFamily:"var(--font-syne), sans-serif",background:"rgba(255, 255, 255, 0.06)",backdropFilter:"blur(20px)",border:"1px solid rgba(255, 255, 255, 0.1)",color:"#f0f0f0",boxShadow:"0 0 30px rgba(255, 215, 0, 0.15)",pointerEvents:l?"auto":"none"},id:"enter-cinema-button","aria-label":`Enter ${e}`},"Enter ",e),React.createElement("div",{className:"flex items-center gap-3 pointer-events-auto",style:{opacity:n==="idle"||n==="entering"?1:0,transition:"opacity 1s ease-out 1.5s"}},React.createElement("span",{className:"text-[10px] uppercase tracking-[0.3em] mr-4",style:{color:"rgba(255, 255, 255, 0.4)",fontFamily:"var(--font-syne), sans-serif"}},"Theme"),React.createElement("div",{className:"flex items-center gap-3"},he.map(t=>{let i=r===t.key;return React.createElement("button",{key:t.key,onClick:()=>c(t.key),className:"group relative flex flex-col items-center gap-2 cursor-pointer outline-none",id:`theme-selector-${t.key}`,"aria-label":`Switch to ${t.label} theme`},React.createElement("div",{className:"relative w-14 h-9 rounded-md overflow-hidden transition-all duration-500",style:{border:i?`2px solid ${t.color}`:"1px solid rgba(255, 255, 255, 0.15)",transform:i?"scale(1.1) translateY(-2px)":"scale(1) translateY(0)",boxShadow:i?`0 4px 20px ${t.color}40`:"0 2px 10px rgba(0,0,0,0.5)"}},React.createElement("div",{className:"absolute inset-0 opacity-80",style:{backgroundColor:t.color}}),React.createElement("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-300",style:{background:t.key==="gold"?"conic-gradient(from 0deg, transparent, rgba(255,255,255,0.5), transparent)":t.key==="neon"?"radial-gradient(circle at center, rgba(255,255,255,0.8) 0%, transparent 70%)":t.key==="obsidian"?"linear-gradient(45deg, transparent 40%, rgba(255,255,255,0.3) 50%, transparent 60%)":"linear-gradient(to right, rgba(255,255,255,0.1), rgba(255,255,255,0.5), rgba(255,255,255,0.1))",animation:t.key==="gold"?"spin-slow 3s linear infinite":t.key==="neon"?"pulse-glow 2s ease-in-out infinite":t.key==="obsidian"?"shimmer 2s linear infinite":"shimmer 3s linear infinite",backgroundSize:t.key==="obsidian"||t.key==="glass"?"200% 100%":"auto"}})),React.createElement("span",{className:"text-[9px] uppercase tracking-widest transition-colors duration-300",style:{color:i?"#ffffff":"rgba(255, 255, 255, 0.4)",fontFamily:"var(--font-inter), sans-serif"}},t.label))})))))}import{useState as be,useRef as xe,useCallback as ye,useEffect as ve}from"react";import{useFrame as Me,useThree as ke}from"@react-three/fiber";import*as b from"three";var $={gold:["#FFD700","#FF8C00","#FF4500","#FFF8DC"],neon:["#00ffff","#0088ff","#ff00ff","#ffffff"],emerald:["#00ff88","#10b981","#059669","#a7f3d0"],crimson:["#ff1744","#d50000","#ff5252","#ffb74d"],obsidian:["#a855f7","#6366f1","#3b82f6","#ffffff"],glass:["#ffffff","#e0e7ff","#93c5fd","#60a5fa"]};function T({theme:n="gold"}){let{camera:e,raycaster:r,pointer:o}=ke(),[c,l]=be([]),s=xe(0),a=ye(t=>{let i=0,m=0;if("touches"in t&&t.touches.length>0)i=t.touches[0].clientX,m=t.touches[0].clientY;else if("clientX"in t)i=t.clientX,m=t.clientY;else return;let d=new b.Vector2(i/window.innerWidth*2-1,-(m/window.innerHeight)*2+1);r.setFromCamera(d,e);let p=new b.Plane(new b.Vector3(0,0,1),0),f=new b.Vector3;if(r.ray.intersectPlane(p,f),!f)return;let h=$[n]||$.gold,u=35,g=[];for(let N=0;N<u;N++){let A=Math.random()*Math.PI*2,H=1.5+Math.random()*4.5,te=(Math.random()-.3)*3,ne=new b.Vector3(Math.cos(A)*H,Math.sin(A)*H+te,(Math.random()-.5)*H*.8),re=h[Math.floor(Math.random()*h.length)];g.push({id:N,position:f.clone(),velocity:ne,color:new b.Color(re),size:.08+Math.random()*.12,life:1,maxLife:.6+Math.random()*.8})}let x={id:s.current++,origin:f.clone(),sparks:g,color:h[0],lightIntensity:4,time:0};l(N=>[...N.slice(-4),x])},[e,r,n]);return ve(()=>(window.addEventListener("pointerdown",a),()=>{window.removeEventListener("pointerdown",a)}),[a]),Me((t,i)=>{c.length!==0&&l(m=>m.map(d=>{let p=d.time+i,f=Math.max(0,d.lightIntensity-i*8),h=d.sparks.map(u=>{let g=u.life-i/u.maxLife;if(g<=0)return null;let x=u.position.clone().addScaledVector(u.velocity,i);return u.velocity.y-=i*3.5,u.velocity.multiplyScalar(.96),B(y({},u),{position:x,life:g})}).filter(Boolean);return h.length===0&&f<=0?null:B(y({},d),{time:p,lightIntensity:f,sparks:h})}).filter(Boolean))}),React.createElement("group",null,c.map(t=>React.createElement("group",{key:t.id},t.lightIntensity>.05&&React.createElement("pointLight",{position:t.origin,intensity:t.lightIntensity*3,distance:6,color:t.color}),t.sparks.map(i=>React.createElement("mesh",{key:i.id,position:i.position},React.createElement("sphereGeometry",{args:[i.size*i.life,6,6]}),React.createElement("meshBasicMaterial",{color:i.color,transparent:!0,opacity:i.life,toneMapped:!1}))))))}var Be="/fonts/cinema_display.typeface.json",j={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020408 100%)"};function Ie(n){let o=-(n.length*.65)/2;return n.split("").map((c,l)=>[o+l*.65,0,0])}function G({cinemaName:n="CINEMULTIPLEX",defaultTheme:e="gold",customBackground:r,onEnterCinema:o}){let[c,l]=W("loading"),[s,a]=W(e),t=n.toUpperCase(),i=t.split(""),m=Ce(()=>Ie(t),[t]);we(()=>{let f=setTimeout(()=>l("entering"),800),h=i.length*120+1500,u=setTimeout(()=>l("idle"),800+h);return()=>{clearTimeout(f),clearTimeout(u)}},[i.length]);let d=Te(()=>{l("exiting"),setTimeout(()=>{o()},1800)},[o]),p=r||j[s]||j.gold;return React.createElement("div",{className:"fixed inset-0 w-screen h-screen transition-all duration-1000 select-none overflow-hidden",style:{background:p}},React.createElement(Ne,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(Ee,{fallback:null},React.createElement(Re,{preset:"studio"}),React.createElement("ambientLight",{intensity:.2}),React.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),React.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:s==="emerald"?"#10b981":s==="crimson"?"#ff1744":s==="neon"?"#00ffff":s==="obsidian"?"#a855f7":"#FFD700"}),React.createElement("spotLight",{position:[0,10,0],angle:.4,penumbra:.8,intensity:.9,color:"#ffffff"}),React.createElement("pointLight",{position:[0,0,-5],intensity:.4,color:"#ffffff"}),React.createElement(E,{phase:c}),React.createElement(T,{theme:s}),React.createElement(Le,{disableY:!0,disableZ:!0},React.createElement("group",null,i.map((f,h)=>React.createElement(k,{key:`${f}-${h}`,char:f,index:h,totalLetters:i.length,position:m[h],phase:c,theme:s,fontUrl:Be})))),React.createElement(w,{theme:s,visible:c!=="loading"}),React.createElement(Se,null,React.createElement(Pe,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:s==="neon"||s==="emerald"||s==="crimson"?1.4:.7,mipmapBlur:!0}),React.createElement(Fe,{offset:.3,darkness:.85}),React.createElement(He,{opacity:.025})))),React.createElement(P,{phase:c,cinemaName:n,theme:s,onEnter:d,onThemeChange:a}))}import{Suspense as Ae,useMemo as ze}from"react";import{Canvas as Ue}from"@react-three/fiber";import{Environment as Oe,Center as Ve}from"@react-three/drei";import{EffectComposer as _e,Bloom as Ye,Vignette as De}from"@react-three/postprocessing";var K={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020408 100%)"},Xe="/fonts/cinema_display.typeface.json";function $e(n){let o=-(n.length*.65)/2;return n.split("").map((c,l)=>[o+l*.65,0,0])}function Z({text:n="CINEMA",theme:e="emerald",customBackground:r,interactiveSparks:o=!0,showParticles:c=!0,className:l="",style:s,children:a}){let t=n.toUpperCase(),i=t.split(""),m=ze(()=>$e(t),[t]),d=r||K[e]||K.emerald;return React.createElement("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none ${l}`,style:y({background:d},s)},React.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},React.createElement(Ue,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(Ae,{fallback:null},React.createElement(Oe,{preset:"studio"}),React.createElement("ambientLight",{intensity:.3}),React.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),React.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:e==="emerald"?"#10b981":e==="crimson"?"#ff1744":e==="neon"?"#00ffff":"#FFD700"}),React.createElement(E,{phase:"idle"}),o&&React.createElement(T,{theme:e}),React.createElement(Ve,{disableY:!0,disableZ:!0},React.createElement("group",null,i.map((p,f)=>React.createElement(k,{key:`${p}-${f}`,char:p,index:f,totalLetters:i.length,position:m[f],phase:"idle",theme:e,fontUrl:Xe})))),c&&React.createElement(w,{theme:e,visible:!0}),React.createElement(_e,null,React.createElement(Ye,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:.8,mipmapBlur:!0}),React.createElement(De,{offset:.3,darkness:.85}))))),a&&React.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},a))}import{useTranslations as nt}from"next-intl";import{defineRouting as We}from"next-intl/routing";import{createNavigation as je}from"next-intl/navigation";var Ge=We({locales:["en","es"],defaultLocale:"en"}),{Link:C,redirect:Yt,usePathname:q,useRouter:J}=je(Ge);import{useLocale as Ke}from"next-intl";import{Globe as Ze}from"lucide-react";function I(){let n=Ke(),e=J(),r=q();return React.createElement("button",{onClick:()=>{let c=n==="en"?"es":"en";e.replace(r,{locale:c})},className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-white transition-colors uppercase tracking-wider"},React.createElement(Ze,{className:"w-4 h-4"}),n==="en"?"ES":"EN")}import*as F from"react";import{Slot as Qe}from"@radix-ui/react-slot";import{cva as et}from"class-variance-authority";import{clsx as qe}from"clsx";import{twMerge as Je}from"tailwind-merge";function Q(...n){return Je(qe(n))}var tt=et("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),R=F.forwardRef((s,l)=>{var a=s,{className:n,variant:e,size:r,asChild:o=!1}=a,c=V(a,["className","variant","size","asChild"]);return F.createElement(o?Qe:"button",y({className:Q(tt({variant:e,size:r,className:n})),ref:l},c))});R.displayName="Button";function ee({cinemaName:n="NOVA",webTheme:e="neon"}){let r=nt(),o=e==="noir"?"bg-slate-900/40 mix-blend-color":e==="crimson"?"bg-red-900/30 mix-blend-color":"bg-blue-900/20 mix-blend-color";return React.createElement("div",{className:`min-h-screen bg-black text-white selection:bg-white/30 font-sans transition-colors duration-1000 group theme-${e}`},React.createElement("nav",{className:"absolute top-0 left-0 right-0 z-50 flex items-center justify-between px-8 py-6 mix-blend-difference"},React.createElement("div",{className:"flex items-center gap-12"},React.createElement(C,{href:"/",className:"text-3xl font-bold tracking-tighter uppercase font-display"},n,"."),React.createElement("div",{className:"hidden md:flex items-center gap-8 text-sm font-semibold tracking-widest text-white/70"},React.createElement(C,{href:"/schedule",className:"hover:text-white transition-colors"},r("nav.schedule")),React.createElement(C,{href:"/experiences",className:"hover:text-white transition-colors"},r("nav.experiences")),React.createElement(C,{href:"/membership",className:"hover:text-white transition-colors"},r("nav.membership")))),React.createElement("div",{className:"flex items-center gap-6"},React.createElement(I,null),React.createElement("div",{className:"hidden sm:flex items-center gap-4"},React.createElement(C,{href:"/login",className:"text-sm font-semibold tracking-widest text-white/70 hover:text-white transition-colors"},r("nav.login")),React.createElement(R,{variant:"outline",className:"rounded-none border-white/40 text-white bg-transparent hover:bg-white hover:text-black transition-colors font-semibold tracking-widest text-xs px-6 py-5 uppercase"},r("nav.bookTickets"))))),React.createElement("div",{className:"relative h-screen w-full flex flex-col justify-end pb-24 px-8 md:px-16 overflow-hidden"},React.createElement("div",{className:"absolute inset-0 z-0"},React.createElement("div",{className:"absolute inset-0 bg-[url('https://images.unsplash.com/photo-1605810230434-7631ac76ec81?q=80&w=2560&auto=format&fit=crop')] bg-cover bg-center"}),React.createElement("div",{className:"absolute inset-0 bg-gradient-to-t from-black via-black/50 to-transparent z-10"}),React.createElement("div",{className:`absolute inset-0 ${o} z-10`})),React.createElement("div",{className:"relative z-20 max-w-5xl"},React.createElement("div",{className:"flex items-center gap-3 mb-6"},React.createElement("span",{className:"bg-blue-600 text-white text-[10px] font-bold px-3 py-1 tracking-widest"},r("hero.genreImax")),React.createElement("span",{className:"border border-white/20 text-white/80 text-[10px] font-bold px-3 py-1 tracking-widest"},r("hero.genreAction"))),React.createElement("h1",{className:"text-6xl md:text-[8rem] leading-[0.85] font-display font-black tracking-tighter mb-6 uppercase drop-shadow-2xl"},r("hero.title")),React.createElement("p",{className:"max-w-2xl text-lg md:text-xl text-white/70 font-medium mb-10 leading-relaxed drop-shadow-md"},r("hero.synopsis")),React.createElement("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-4"},React.createElement(R,{className:"rounded-none bg-white text-black hover:bg-white/90 font-bold tracking-widest text-xs px-8 py-6 uppercase transition-transform hover:scale-105 active:scale-95"},r("hero.getTickets")),React.createElement(R,{variant:"outline",className:"rounded-none border-white/30 text-white bg-black/20 backdrop-blur-md hover:bg-white/10 transition-colors font-bold tracking-widest text-xs px-8 py-6 uppercase"},r("hero.watchTrailer"))))))}export{k as AnimatedLetter,E as CameraRig,Z as CinemaBackground,ee as CinemaHome,G as CinemaLoader,T as ClickFireSparks,P as LoaderOverlay,w as SceneParticles};
|
|
2
|
+
var Ke=Object.defineProperty,Je=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var ge=(t,e,r)=>e in t?Ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,S=(t,e)=>{for(var r in e||(e={}))be.call(e,r)&&ge(t,r,e[r]);if(J)for(var r of J(e))xe.call(e,r)&&ge(t,r,e[r]);return t},U=(t,e)=>Je(t,Qe(e));var ve=(t,e)=>{var r={};for(var n in t)be.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&J)for(var n of J(t))e.indexOf(n)<0&&xe.call(t,n)&&(r[n]=t[n]);return r};import w,{Suspense as Vt,useMemo as K,useState as $t,useEffect as Gt}from"react";import{Canvas as qt}from"@react-three/fiber";import{Environment as Zt,Center as Kt}from"@react-three/drei";import{EffectComposer as Jt,Bloom as Qt,Vignette as er,Noise as tr}from"@react-three/postprocessing";import{useRef as ye,useMemo as et}from"react";import{useFrame as tt}from"@react-three/fiber";import{Text3D as rt}from"@react-three/drei";import*as Y from"three";var nt={gold:{color:"#FFD700",metalness:1,roughness:.15,clearcoat:1,emissive:"#1a0f00",emissiveIntensity:.3,envMapIntensity:2},neon:{color:"#00ffff",metalness:0,roughness:1,clearcoat:0,emissive:"#00ffff",emissiveIntensity:2.5,envMapIntensity:.5},emerald:{color:"#10b981",metalness:.9,roughness:.1,clearcoat:1,emissive:"#065f46",emissiveIntensity:1.2,envMapIntensity:2.5},crimson:{color:"#ff1744",metalness:.8,roughness:.15,clearcoat:1,emissive:"#880e4f",emissiveIntensity:1.8,envMapIntensity:2},obsidian:{color:"#1a1a2e",metalness:1,roughness:.05,clearcoat:1,emissive:"#0a0a1a",emissiveIntensity:.1,envMapIntensity:3},glass:{color:"#ffffff",metalness:0,roughness:0,clearcoat:0,emissive:"#000000",emissiveIntensity:0,envMapIntensity:1.5,transmission:.95,ior:1.5,thickness:.5,transparent:!0}};function A({char:t,index:e,totalLetters:r,position:n,phase:l,theme:d,fontUrl:m}){let c=ye(null),g=ye(null),a=et(()=>{let i=e/r*Math.PI*2;return{x:Math.cos(i)*4+(Math.random()-.5)*2,y:-3+Math.random()*-3,z:-5+Math.random()*-3,rotX:(Math.random()-.5)*Math.PI*2,rotY:(Math.random()-.5)*Math.PI*2}},[e,r]),o=nt[d];return tt(i=>{if(!c.current)return;let s=i.clock.getElapsedTime();g.current===null&&(g.current=s);let v=s-g.current,u=e*.12;if(l==="loading"){c.current.position.set(n[0]+a.x,n[1]+a.y,n[2]+a.z),c.current.rotation.set(a.rotX,a.rotY,0),c.current.scale.setScalar(0);return}if(l==="entering"){let y=Math.max(0,v-u),f=1-Math.exp(-y*3),T=1+Math.sin(y*8)*Math.max(0,.15-y*.1);c.current.position.set(Y.MathUtils.lerp(n[0]+a.x,n[0],f),Y.MathUtils.lerp(n[1]+a.y,n[1],f),Y.MathUtils.lerp(n[2]+a.z,n[2],f)),c.current.rotation.set(Y.MathUtils.lerp(a.rotX,0,f),Y.MathUtils.lerp(a.rotY,0,f),0),c.current.scale.setScalar(Math.min(f*T,1.05));return}if(l==="idle"){let y=Math.sin(s*1.2+e*.5)*.015,f=Math.sin(s*.8+e*.3)*.008;c.current.position.set(n[0]+f,n[1]+y,n[2]),c.current.rotation.set(Math.sin(s*.5+e)*.01,Math.sin(s*.3+e*.7)*.01,0),c.current.scale.setScalar(1);return}if(l==="exiting"){let y=Math.max(0,v-u*.5),f=Math.min(y*2,1),T=f*f;c.current.position.set(n[0]+a.x*T*.5,n[1],n[2]-T*8),c.current.scale.setScalar(Math.max(1-T,0)),c.current.rotation.y+=.05}}),t===" "?null:React.createElement("group",{ref:c,position:n},React.createElement(rt,{font:m,size:.8,height:.35,bevelEnabled:!0,bevelSize:.02,bevelThickness:.01,bevelSegments:3,curveSegments:12},t,React.createElement("meshPhysicalMaterial",{color:o.color,metalness:o.metalness,roughness:o.roughness,clearcoat:o.clearcoat,emissive:o.emissive,emissiveIntensity:o.emissiveIntensity,envMapIntensity:o.envMapIntensity,transmission:o.transmission,ior:o.ior,thickness:o.thickness,transparent:o.transparent,toneMapped:d!=="neon"})))}import{useRef as Q,useMemo as ot}from"react";import{useFrame as at}from"@react-three/fiber";import{Sparkles as Me}from"@react-three/drei";import*as Te from"three";var Ee={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},we={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function it({color:t,speedMultiplier:e=.5,count:r=60}){let n=Q(null),l=Q(new Te.Object3D),d=Q(null),m=Q(null);if(!d.current){d.current=new Float32Array(r),m.current=new Float32Array(r*3);for(let c=0;c<r;c++)d.current[c]=.1+Math.random()*.3,m.current[c*3]=(Math.random()-.5)*16,m.current[c*3+1]=(Math.random()-.5)*10,m.current[c*3+2]=(Math.random()-.5)*12}return at(c=>{if(!n.current||!d.current||!m.current)return;let g=c.clock.getElapsedTime()*e;for(let a=0;a<r;a++){let o=d.current[a],i=m.current[a*3],s=m.current[a*3+1],v=m.current[a*3+2];l.current.position.set(i+Math.sin(g*o+a)*2,s+Math.cos(g*o*.7+a*.5)*1.5,v+Math.sin(g*o*.5+a*.3)*2),l.current.scale.setScalar(.015+Math.sin(g+a)*.005),l.current.updateMatrix(),n.current.setMatrixAt(a,l.current.matrix)}n.current.instanceMatrix.needsUpdate=!0}),React.createElement("instancedMesh",{ref:n,args:[void 0,void 0,r]},React.createElement("sphereGeometry",{args:[1,6,6]}),React.createElement("meshBasicMaterial",{color:t,transparent:!0,opacity:.3,toneMapped:!1}))}function z({theme:t,effectColor:e,effectSpeed:r=.5,visible:n}){let l=ot(()=>{if(!e)return Ee[t]||Ee.gold;let d=e.toLowerCase().trim();return we[d]?we[d]:e},[e,t]);return n?React.createElement("group",null,React.createElement(Me,{count:150,scale:10,size:4,speed:.3*r,opacity:.8,color:l,noise:.6}),React.createElement(Me,{count:80,scale:16,size:2,speed:.15*r,opacity:.4,color:"#ffffff",noise:.8}),React.createElement(it,{color:l,speedMultiplier:r,count:50})):null}import{useRef as ke}from"react";import{useFrame as st,useThree as lt}from"@react-three/fiber";import*as W from"three";function I({phase:t,effectSpeed:e=.5}){let{camera:r,pointer:n}=lt(),l=ke(null),d=ke(t);return d.current!==t&&(d.current=t,l.current=null),st(m=>{let c=m.clock.getElapsedTime()*e;l.current===null&&(l.current=c);let g=c-l.current;if(t==="loading"){r.position.set(0,0,14),r.lookAt(0,0,0);return}if(t==="entering"){let a=Math.min(g/3,1),o=1-Math.pow(1-a,3),i=W.MathUtils.lerp(14,6,o),s=W.MathUtils.lerp(1,.2,o);r.position.set(0,s,i),r.lookAt(0,0,0);return}if(t==="idle"){let a=Math.sin(c*.1)*.2,o=Math.cos(c*.08)*.1+.2,i=n.x*.2,s=n.y*.1;r.position.x=W.MathUtils.damp(r.position.x,a+i,3,.016),r.position.y=W.MathUtils.damp(r.position.y,o+s,3,.016),r.position.z=W.MathUtils.damp(r.position.z,6,3,.016),r.lookAt(0,0,0);return}if(t==="exiting"){let a=Math.min(g/1.5,1),o=a*a*a,i=W.MathUtils.lerp(6,-8,o);r.position.set(0,0,i),r.lookAt(0,0,0)}}),null}import{useState as ct,useRef as mt,useCallback as dt,useEffect as ut,useMemo as ft}from"react";import{useFrame as pt,useThree as ht}from"@react-three/fiber";import*as H from"three";var Ce={gold:["#FFD700","#FF8C00","#FF4500","#FFF8DC"],neon:["#00ffff","#0088ff","#ff00ff","#ffffff"],emerald:["#00ff88","#10b981","#059669","#a7f3d0"],crimson:["#ff1744","#d50000","#ff5252","#ffb74d"],obsidian:["#a855f7","#6366f1","#3b82f6","#ffffff"],glass:["#ffffff","#e0e7ff","#93c5fd","#60a5fa"]},gt={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function _({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:l,raycaster:d}=ht(),[m,c]=ct([]),g=mt(0),a=ft(()=>{if(!e)return Ce[t]||Ce.gold;let i=e.toLowerCase().trim(),s=gt[i]||e;return[s,"#ffffff",s]},[e,t]),o=dt(i=>{if(!n)return;let s=0,v=0;if("touches"in i&&i.touches.length>0)s=i.touches[0].clientX,v=i.touches[0].clientY;else if("clientX"in i)s=i.clientX,v=i.clientY;else return;let u=new H.Vector2(s/window.innerWidth*2-1,-(v/window.innerHeight)*2+1);d.setFromCamera(u,l);let y=new H.Plane(new H.Vector3(0,0,1),0),f=new H.Vector3;if(d.ray.intersectPlane(y,f),!f)return;let T=35,p=[];for(let b=0;b<T;b++){let x=Math.random()*Math.PI*2,E=(1.5+Math.random()*4.5)*r,h=(Math.random()-.3)*3*r,k=new H.Vector3(Math.cos(x)*E,Math.sin(x)*E+h,(Math.random()-.5)*E*.8),C=a[Math.floor(Math.random()*a.length)];p.push({id:b,position:f.clone(),velocity:k,color:new H.Color(C),size:.08+Math.random()*.12,life:1,maxLife:(.6+Math.random()*.8)/Math.max(.2,r)})}let M={id:g.current++,origin:f.clone(),sparks:p,color:a[0],lightIntensity:4,time:0};c(b=>[...b.slice(-4),M])},[l,d,a,r,n]);return ut(()=>(window.addEventListener("pointerdown",o),()=>{window.removeEventListener("pointerdown",o)}),[o]),pt((i,s)=>{m.length!==0&&c(v=>v.map(u=>{let y=u.time+s*r,f=Math.max(0,u.lightIntensity-s*8*r),T=u.sparks.map(p=>{let M=p.life-s*r/p.maxLife;if(M<=0)return null;let b=p.position.clone().addScaledVector(p.velocity,s*r);return p.velocity.y-=s*3.5*r,p.velocity.multiplyScalar(.96),U(S({},p),{position:b,life:M})}).filter(Boolean);return T.length===0&&f<=0?null:U(S({},u),{time:y,lightIntensity:f,sparks:T})}).filter(Boolean))}),React.createElement("group",null,m.map(i=>React.createElement("group",{key:i.id},i.lightIntensity>.05&&React.createElement("pointLight",{position:i.origin,intensity:i.lightIntensity*3,distance:6,color:i.color}),i.sparks.map(s=>React.createElement("mesh",{key:s.id,position:s.position},React.createElement("sphereGeometry",{args:[s.size*s.life,6,6]}),React.createElement("meshBasicMaterial",{color:s.color,transparent:!0,opacity:s.life,toneMapped:!1}))))))}import{useState as bt,useRef as xt,useCallback as vt,useEffect as yt,useMemo as Mt}from"react";import{useFrame as Et,useThree as wt}from"@react-three/fiber";import*as N from"three";var Se={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},Re={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function O({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:l,raycaster:d}=wt(),[m,c]=bt([]),g=xt(0),a=Mt(()=>{if(!e)return Se[t]||Se.gold;let i=e.toLowerCase().trim();return Re[i]?Re[i]:e},[e,t]),o=vt(i=>{if(!n)return;let s=0,v=0;if("touches"in i&&i.touches.length>0)s=i.touches[0].clientX,v=i.touches[0].clientY;else if("clientX"in i)s=i.clientX,v=i.clientY;else return;let u=new N.Vector2(s/window.innerWidth*2-1,-(v/window.innerHeight)*2+1);d.setFromCamera(u,l);let y=new N.Plane(new N.Vector3(0,0,1),0),f=new N.Vector3;if(d.ray.intersectPlane(y,f),!f)return;let T={id:g.current++,origin:f.clone(),radius:.1,maxRadius:3.5,life:1,color:new N.Color(a)};c(p=>[...p.slice(-4),T])},[l,d,a,n]);return yt(()=>(window.addEventListener("pointerdown",o),()=>{window.removeEventListener("pointerdown",o)}),[o]),Et((i,s)=>{m.length!==0&&c(v=>v.map(u=>{let y=u.life-s*1.8*r;if(y<=0)return null;let f=u.radius+s*5*r;return U(S({},u),{life:y,radius:f})}).filter(Boolean))}),n?React.createElement("group",null,m.map(i=>React.createElement("mesh",{key:i.id,position:i.origin,rotation:[0,0,0]},React.createElement("ringGeometry",{args:[i.radius*.9,i.radius,48]}),React.createElement("meshBasicMaterial",{color:i.color,transparent:!0,opacity:i.life*.75,side:N.DoubleSide,toneMapped:!1})))):null}import{useRef as Tt,useMemo as Le}from"react";import{useFrame as kt,useThree as Ct}from"@react-three/fiber";import*as ee from"three";var Pe={gold:"#ffaa00",neon:"#00ffff",emerald:"#00ffaa",crimson:"#ff0055",obsidian:"#9900ff",glass:"#88ccff"},Ne={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function D({theme:t="neon",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{pointer:l}=Ct(),d=Tt(null),m=Le(()=>{if(!e)return Pe[t]||Pe.neon;let a=e.toLowerCase().trim();return Ne[a]?Ne[a]:e},[e,t]),c=30,g=Le(()=>{let a=new ee.BufferGeometry,o=new Float32Array(c*2*3);return a.setAttribute("position",new ee.BufferAttribute(o,3)),a},[c]);return kt(a=>{if(!d.current||!n)return;let o=a.clock.getElapsedTime()*r,i=d.current.geometry.attributes.position,s=i.array,v=l.x*6,u=l.y*3;for(let y=0;y<c;y++){let f=y*6,T=y/c*Math.PI*2+o*1.5,p=2.5+Math.sin(o*3+y)*.5,M=Math.cos(T)*p,b=Math.sin(T)*p,x=(Math.random()-.5)*1.5,E=M+(v-M)*.3+(Math.random()-.5)*.8,h=b+(u-b)*.3+(Math.random()-.5)*.8,k=x+(Math.random()-.5)*.8;s[f]=M,s[f+1]=b,s[f+2]=x,s[f+3]=E,s[f+4]=h,s[f+5]=k}i.needsUpdate=!0}),n?React.createElement("lineSegments",{ref:d,geometry:g},React.createElement("lineBasicMaterial",{color:m,transparent:!0,opacity:.75,linewidth:2,toneMapped:!1})):null}import{useRef as V,useMemo as ce,useEffect as St,useCallback as He}from"react";import{useFrame as Rt,useThree as Lt}from"@react-three/fiber";import*as F from"three";var Be={crimson:{color1:"#ff3d00",color2:"#ff9100",light:"#ff1744"},gold:{color1:"#ffb300",color2:"#ffe082",light:"#FFD700"},emerald:{color1:"#00e676",color2:"#a7f3d0",light:"#10b981"},neon:{color1:"#00e5ff",color2:"#80d8ff",light:"#00ffff"},obsidian:{color1:"#d500f9",color2:"#ea80fc",light:"#a855f7"},glass:{color1:"#80d8ff",color2:"#ffffff",light:"#60a5fa"}},Fe={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Pt(){let t=document.createElement("canvas");t.width=128,t.height=128;let e=t.getContext("2d");if(e){let n=e.createRadialGradient(64,64,0,64,64,64);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.3,"rgba(255, 255, 255, 0.9)"),n.addColorStop(.65,"rgba(255, 255, 255, 0.35)"),n.addColorStop(1,"rgba(0, 0, 0, 0)"),e.fillStyle=n,e.fillRect(0,0,128,128)}let r=new F.CanvasTexture(t);return r.needsUpdate=!0,r}function te({theme:t="crimson",effectColor:e,effectSpeed:r=.5,effectDensity:n=.3,mode:l="fluid",enabled:d=!0}){let{pointer:m}=Lt(),c=V(null),g=V(null),a=V(null),o=V(new F.Object3D),i=V(!1),s=V([]),v=Math.max(.1,Math.min(1,n)),u=Math.round(110*v),y=ce(()=>Pt(),[]),f=ce(()=>{if(!e)return(Be[t]||Be.crimson).color1;let b=e.toLowerCase().trim();return Fe[b]?Fe[b]:e},[e,t]),T=ce(()=>{let b=[],x=.4+Math.sqrt(v)*.55;for(let E=0;E<u;E++)b.push({x:(Math.random()-.5)*10,y:-2+Math.random()*.4,z:(Math.random()-.5)*2-.5,speedY:.8+Math.random()*1.8,speedX:(Math.random()-.5)*.5,size:(.4+Math.random()*.6)*x,phase:Math.random()*Math.PI*2,life:Math.random()});return b},[u,v]),p=He(()=>{i.current=!0},[]),M=He(()=>{i.current=!1},[]);return St(()=>(window.addEventListener("pointerdown",p),window.addEventListener("pointerup",M),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("pointerup",M)}),[p,M]),Rt((b,x)=>{if(!d)return;let E=b.clock.getElapsedTime()*r;if(i.current){let h=m.x*7,k=m.y*4;s.current.length<25&&s.current.push({x:h+(Math.random()-.5)*.8,y:k+(Math.random()-.5)*.8,z:(Math.random()-.5)*1.5,life:1,size:(.5+Math.random()*.6)*Math.sqrt(v)})}s.current=s.current.map(h=>(h.life-=x*1.8*r,h.y+=x*1.2*r,h)).filter(h=>h.life>0),a.current&&(a.current.intensity=2.2+Math.sin(E*10)*.6+Math.cos(E*15)*.3,a.current.position.y=-1+Math.sin(E*3)*.2),(l==="fluid"||l==="all")&&c.current&&(T.forEach((h,k)=>{h.life+=x*h.speedY*.35*r,h.life>1&&(h.life=0,h.x=(Math.random()-.5)*10,h.y=-2+Math.random()*.4);let C=h.life,P=h.y+C*3.8,G=h.x+Math.sin(E*2.5+h.phase)*.5+h.speedX*C,L=h.z+Math.cos(E*1.8+h.phase)*.2,B=Math.sin(C*Math.PI)*h.size*(1.2-C*.3);o.current.position.set(G,P,L),o.current.rotation.set(0,0,Math.sin(E*1.5+k)*.2),o.current.scale.set(B,B*1.3,B),o.current.updateMatrix(),c.current.setMatrixAt(k,o.current.matrix)}),s.current.forEach((h,k)=>{let C=(u-1-k+u)%u,P=Math.sin(h.life*Math.PI)*h.size;o.current.position.set(h.x,h.y,h.z),o.current.rotation.set(0,0,Math.sin(E*3+k)*.3),o.current.scale.set(P,P*1.4,P),o.current.updateMatrix(),c.current.setMatrixAt(C,o.current.matrix)}),c.current.instanceMatrix.needsUpdate=!0),(l==="crystal"||l==="all")&&g.current&&(T.forEach((h,k)=>{let C=h.life,P=h.y+C*3.8,G=h.x+Math.sin(E*2.8+h.phase)*.5+h.speedX*C,L=h.z+Math.cos(E*2+h.phase)*.3,B=Math.sin(C*Math.PI)*h.size*.6;o.current.position.set(G,P,L),o.current.rotation.set(E*1.5+k,E*2,k),o.current.scale.set(B,B*2,B),o.current.updateMatrix(),g.current.setMatrixAt(k,o.current.matrix)}),g.current.instanceMatrix.needsUpdate=!0)}),d?React.createElement("group",null,React.createElement("pointLight",{ref:a,position:[0,-1,1.5],color:f,intensity:2.5,distance:10}),(l==="fluid"||l==="all")&&React.createElement("instancedMesh",{ref:c,args:[void 0,void 0,u]},React.createElement("planeGeometry",{args:[1.2,1.2]}),React.createElement("meshBasicMaterial",{map:y,color:f,transparent:!0,blending:F.AdditiveBlending,depthWrite:!1,side:F.DoubleSide})),(l==="crystal"||l==="all")&&React.createElement("instancedMesh",{ref:g,args:[void 0,void 0,u]},React.createElement("coneGeometry",{args:[.3,1.2,5]}),React.createElement("meshBasicMaterial",{color:f,transparent:!0,opacity:.65,blending:F.AdditiveBlending,depthWrite:!1}))):null}import{useRef as q,useMemo as me,useEffect as Nt,useCallback as Ae}from"react";import{useFrame as Ht,useThree as Bt}from"@react-three/fiber";import*as X from"three";var ze={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Ft(){let t=document.createElement("canvas");t.width=256,t.height=256;let e=t.getContext("2d");if(e){let n=e.createRadialGradient(128,128,0,128,128,128);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.2,"rgba(0, 240, 200, 0.95)"),n.addColorStop(.5,"rgba(0, 200, 140, 0.6)"),n.addColorStop(.8,"rgba(0, 150, 100, 0.2)"),n.addColorStop(1,"rgba(0, 0, 0, 0)"),e.fillStyle=n,e.fillRect(0,0,256,256)}let r=new X.CanvasTexture(t);return r.needsUpdate=!0,r}function re({theme:t="emerald",effectColor:e="#00e676",effectSpeed:r=.5,effectDensity:n=.5,enabled:l=!0}){let{pointer:d}=Bt(),m=q(null),c=q(null),g=q(new X.Object3D),a=q(!1),o=q([]),i=Math.max(.1,Math.min(1,n)),s=Math.round(60*i),v=me(()=>Ft(),[]),u=me(()=>{if(!e)return"#00e676";let p=e.toLowerCase().trim();return ze[p]?ze[p]:e},[e]),y=me(()=>{let p=[],M=1+Math.sqrt(i)*.8;for(let b=0;b<s;b++)p.push({x:(Math.random()-.5)*12,y:(Math.random()-.5)*6,z:(Math.random()-.5)*3,speedY:(Math.random()-.5)*.8,speedX:(Math.random()-.5)*.8,size:(.8+Math.random()*1.2)*M,phase:Math.random()*Math.PI*2,life:Math.random()});return p},[s,i]),f=Ae(()=>{a.current=!0},[]),T=Ae(()=>{a.current=!1},[]);return Nt(()=>(window.addEventListener("pointerdown",f),window.addEventListener("pointerup",T),()=>{window.removeEventListener("pointerdown",f),window.removeEventListener("pointerup",T)}),[f,T]),Ht((p,M)=>{if(!m.current||!l)return;let b=p.clock.getElapsedTime()*r;if(a.current){let x=d.x*7,E=d.y*4;o.current.length<15&&o.current.push({x:x+(Math.random()-.5)*.5,y:E+(Math.random()-.5)*.5,z:(Math.random()-.5)*1,life:1,size:(1.2+Math.random()*.8)*Math.sqrt(i)})}o.current=o.current.map(x=>(x.life-=M*1.2*r,x)).filter(x=>x.life>0),c.current&&(c.current.intensity=2.5+Math.sin(b*6)*.5),y.forEach((x,E)=>{let h=x.x+Math.sin(b*1.2+x.phase)*1.5,k=x.y+Math.cos(b*.9+x.phase*1.3)*1.2,C=x.z+Math.sin(b*.7+x.phase*.8)*.8,P=x.size*(1+Math.sin(b*2+E)*.25);g.current.position.set(h,k,C),g.current.scale.set(P,P,P),g.current.updateMatrix(),m.current.setMatrixAt(E,g.current.matrix)}),o.current.forEach((x,E)=>{let h=(s-1-E+s)%s,k=Math.sin(x.life*Math.PI)*x.size;g.current.position.set(x.x,x.y,x.z),g.current.scale.set(k,k,k),g.current.updateMatrix(),m.current.setMatrixAt(h,g.current.matrix)}),m.current.instanceMatrix.needsUpdate=!0}),l?React.createElement("group",null,React.createElement("pointLight",{ref:c,position:[0,0,2],color:u,intensity:3,distance:12}),React.createElement("instancedMesh",{ref:m,args:[void 0,void 0,s]},React.createElement("planeGeometry",{args:[1.8,1.8]}),React.createElement("meshBasicMaterial",{map:v,color:u,transparent:!0,opacity:.85,blending:X.NormalBlending,depthWrite:!1,side:X.DoubleSide}))):null}import{useTranslations as Yt}from"next-intl";import{defineRouting as At}from"next-intl/routing";import{createNavigation as zt}from"next-intl/navigation";var It=At({locales:["en","es"],defaultLocale:"en"}),{Link:$,redirect:sn,usePathname:Ie,useRouter:_e}=zt(It);import{useLocale as _t}from"next-intl";import{Globe as Ot}from"lucide-react";function de(){let t=_t(),e=_e(),r=Ie();return React.createElement("button",{onClick:()=>{let l=t==="en"?"es":"en";e.replace(r,{locale:l})},className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-white transition-colors uppercase tracking-wider"},React.createElement(Ot,{className:"w-4 h-4"}),t==="en"?"ES":"EN")}import*as ne from"react";import{Slot as Ut}from"@radix-ui/react-slot";import{cva as Wt}from"class-variance-authority";import{clsx as Dt}from"clsx";import{twMerge as Xt}from"tailwind-merge";function Oe(...t){return Xt(Dt(t))}var jt=Wt("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Z=ne.forwardRef((m,d)=>{var c=m,{className:t,variant:e,size:r,asChild:n=!1}=c,l=ve(c,["className","variant","size","asChild"]);return ne.createElement(n?Ut:"button",S({className:Oe(jt({variant:e,size:r,className:t})),ref:d},l))});Z.displayName="Button";function oe({cinemaName:t="NOVA",webTheme:e="neon"}){let r=Yt(),n=e==="noir"?"bg-slate-900/40 mix-blend-color":e==="crimson"?"bg-red-900/30 mix-blend-color":"bg-blue-900/20 mix-blend-color";return React.createElement("div",{className:`min-h-screen bg-black text-white selection:bg-white/30 font-sans transition-colors duration-1000 group theme-${e}`},React.createElement("nav",{className:"absolute top-0 left-0 right-0 z-50 flex items-center justify-between px-8 py-6 mix-blend-difference"},React.createElement("div",{className:"flex items-center gap-12"},React.createElement($,{href:"/",className:"text-3xl font-bold tracking-tighter uppercase font-display"},t,"."),React.createElement("div",{className:"hidden md:flex items-center gap-8 text-sm font-semibold tracking-widest text-white/70"},React.createElement($,{href:"/schedule",className:"hover:text-white transition-colors"},r("nav.schedule")),React.createElement($,{href:"/experiences",className:"hover:text-white transition-colors"},r("nav.experiences")),React.createElement($,{href:"/membership",className:"hover:text-white transition-colors"},r("nav.membership")))),React.createElement("div",{className:"flex items-center gap-6"},React.createElement(de,null),React.createElement("div",{className:"hidden sm:flex items-center gap-4"},React.createElement($,{href:"/login",className:"text-sm font-semibold tracking-widest text-white/70 hover:text-white transition-colors"},r("nav.login")),React.createElement(Z,{variant:"outline",className:"rounded-none border-white/40 text-white bg-transparent hover:bg-white hover:text-black transition-colors font-semibold tracking-widest text-xs px-6 py-5 uppercase"},r("nav.bookTickets"))))),React.createElement("div",{className:"relative h-screen w-full flex flex-col justify-end pb-24 px-8 md:px-16 overflow-hidden"},React.createElement("div",{className:"absolute inset-0 z-0"},React.createElement("div",{className:"absolute inset-0 bg-[url('https://images.unsplash.com/photo-1605810230434-7631ac76ec81?q=80&w=2560&auto=format&fit=crop')] bg-cover bg-center"}),React.createElement("div",{className:"absolute inset-0 bg-gradient-to-t from-black via-black/50 to-transparent z-10"}),React.createElement("div",{className:`absolute inset-0 ${n} z-10`})),React.createElement("div",{className:"relative z-20 max-w-5xl"},React.createElement("div",{className:"flex items-center gap-3 mb-6"},React.createElement("span",{className:"bg-blue-600 text-white text-[10px] font-bold px-3 py-1 tracking-widest"},r("hero.genreImax")),React.createElement("span",{className:"border border-white/20 text-white/80 text-[10px] font-bold px-3 py-1 tracking-widest"},r("hero.genreAction"))),React.createElement("h1",{className:"text-6xl md:text-[8rem] leading-[0.85] font-display font-black tracking-tighter mb-6 uppercase drop-shadow-2xl"},r("hero.title")),React.createElement("p",{className:"max-w-2xl text-lg md:text-xl text-white/70 font-medium mb-10 leading-relaxed drop-shadow-md"},r("hero.synopsis")),React.createElement("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-4"},React.createElement(Z,{className:"rounded-none bg-white text-black hover:bg-white/90 font-bold tracking-widest text-xs px-8 py-6 uppercase transition-transform hover:scale-105 active:scale-95"},r("hero.getTickets")),React.createElement(Z,{variant:"outline",className:"rounded-none border-white/30 text-white bg-black/20 backdrop-blur-md hover:bg-white/10 transition-colors font-bold tracking-widest text-xs px-8 py-6 uppercase"},r("hero.watchTrailer"))))))}var De={cinema:"/fonts/cinema_display.typeface.json",helvetiker:"https://threejs.org/examples/fonts/helvetiker_bold.typeface.json",gentilis:"https://threejs.org/examples/fonts/gentilis_bold.typeface.json",optimer:"https://threejs.org/examples/fonts/optimer_bold.typeface.json"},Xe={rojo:"#3b0712",azul:"#021a38",verde:"#032117",esmeralda:"#032117",dorado:"#1c1503",negro:"#07080c",purpura:"#21032a"},Ue={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"};function rr(t,e=.85){let n=-(t.length*e)/2+e/2;return t.split("").map((l,d)=>[n+d*e,0,0])}function nr(t){let e=[];t?Array.isArray(t)?e=t.map(o=>String(o).toLowerCase().trim()):typeof t=="string"&&(e=t.toLowerCase().split(",").map(o=>o.trim())):e=["flames"];let r=e.includes("all")||e.includes("todos")||e.includes("supernova")||e.includes("inferno"),n=r||e.includes("flames")||e.includes("fluid-flames")||e.includes("llamas")||e.includes("llamas-organicas"),l=r||e.includes("fire")||e.includes("crystal-flames")||e.includes("cristales")||e.includes("fuego"),d=r||e.includes("blobs")||e.includes("energy-blobs")||e.includes("plasma-blobs")||e.includes("nubes"),m=r||e.includes("sparks")||e.includes("chispas"),c=r||e.includes("shockwave")||e.includes("wave")||e.includes("onda")||e.includes("onda-3d"),g=r||e.includes("plasma")||e.includes("electric"),a=r||e.includes("embers")||e.includes("ascuas")||n||l||d;return{enableFluidFlames:n,enableCrystalFlames:l,enableBlobs:d,enableSparks:m,enableShockwave:c,enablePlasma:g,enableEmbers:a}}function ue({containerToDisplay:t,containerSelector:e,effect:r="flames",title:n,backgroundColor:l,effectColor:d,effectSpeed:m=.5,effectDensity:c=.3,autoFitText:g=!0,loaderDuration:a,redirectUrl:o,onComplete:i,fontFamily:s="cinema",fontUrl:v,theme:u="crimson",letterSpacing:y=.85,className:f="",style:T,children:p}){let M=n!=null?n.trim().toUpperCase():"",b=M?M.split(""):[],x=K(()=>rr(M,y),[M,y]),E=!!(a&&a>0&&(o||i)),[h,k]=$t(0);Gt(()=>{if(!E||!a)return;let R=a*1e3,j=50,le=0,he=setInterval(()=>{le+=j;let Ze=Math.min(100,le/R*100);k(Ze),le>=R&&(clearInterval(he),i==null||i(),o&&(window.location.href=o))},j);return()=>clearInterval(he)},[E,a,o,i]);let C=K(()=>{if(v)return v;let R=String(s).toLowerCase().trim();return De[R]||De.cinema},[s,v]),P=K(()=>{if(!g||!b.length)return 1;let R=b.length;return R<=4?1:R<=7?.85:R<=10?.7:R<=14?.55:.45},[g,b.length]),G=K(()=>{if(!l)return Ue[u]||Ue.gold;let R=l.toLowerCase().trim();return Xe[R]?Xe[R]:(l.startsWith("#")||l.startsWith("rgb")||l.includes("gradient"),l)},[l,u]),L=K(()=>nr(r),[r]),B=L.enableFluidFlames&&L.enableCrystalFlames?"all":L.enableCrystalFlames?"crystal":"fluid",qe=L.enableFluidFlames||L.enableCrystalFlames,fe=e||(typeof t=="string"?t:void 0),pe=()=>fe==="lhome"||fe==="home"||t==="lhome"||t==="home"?w.createElement(oe,{cinemaName:M||"NOVA",webTheme:u}):typeof t=="string"&&t!=="lhome"&&t!=="home"?w.createElement("div",{className:"text-center text-white p-8 bg-black/40 backdrop-blur-md rounded-2xl border border-white/10"},w.createElement("h2",{className:"text-3xl font-bold tracking-widest uppercase mb-2"},t),w.createElement("p",{className:"text-sm text-white/60"},"3D Interactive WebGL Background")):t&&typeof t!="string"?t:p;return w.createElement("div",{id:e,"data-container-selector":e,className:`relative w-full h-full overflow-hidden select-none ${f}`,style:S({background:G},T)},E&&w.createElement("div",{className:"absolute top-0 left-0 right-0 z-30 h-1 bg-white/10 pointer-events-none"},w.createElement("div",{className:"h-full bg-gradient-to-r from-amber-400 via-rose-500 to-cyan-400 transition-all duration-75",style:{width:`${h}%`}})),w.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},w.createElement(qt,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},w.createElement(Vt,{fallback:null},w.createElement(Zt,{preset:"studio"}),w.createElement("ambientLight",{intensity:.3}),w.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),w.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:u==="emerald"?"#10b981":u==="crimson"?"#ff1744":u==="neon"?"#00ffff":"#FFD700"}),w.createElement(I,{phase:E?"entering":"idle",effectSpeed:m}),w.createElement(te,{enabled:qe,theme:u,effectColor:d,effectSpeed:m,effectDensity:c,mode:B}),w.createElement(re,{enabled:L.enableBlobs,theme:u,effectColor:d,effectSpeed:m,effectDensity:c}),w.createElement(_,{enabled:L.enableSparks,theme:u,effectColor:d,effectSpeed:m}),w.createElement(O,{enabled:L.enableShockwave,theme:u,effectColor:d,effectSpeed:m}),w.createElement(D,{enabled:L.enablePlasma,theme:u,effectColor:d,effectSpeed:m}),b.length>0&&w.createElement(Kt,{disableY:!0,disableZ:!0},w.createElement("group",{scale:P},b.map((R,j)=>w.createElement(A,{key:`${R}-${j}`,char:R,index:j,totalLetters:b.length,position:x[j],phase:E?"entering":"idle",theme:u,fontUrl:C})))),w.createElement(z,{theme:u,effectColor:d,effectSpeed:m,visible:L.enableEmbers}),w.createElement(Jt,null,w.createElement(Qt,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:u==="neon"||u==="crimson"?1.4:.9,mipmapBlur:!0}),w.createElement(er,{offset:.3,darkness:.85}),w.createElement(tr,{opacity:.025}))))),pe()&&w.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},w.createElement("div",{className:"pointer-events-auto w-full h-full"},pe())))}import Ye from"react";import{Suspense as or,useMemo as ar,useState as We}from"react";import{Canvas as ir}from"@react-three/fiber";import{Environment as sr,Center as lr}from"@react-three/drei";import{EffectComposer as cr,Bloom as mr,Vignette as dr,Noise as ur}from"@react-three/postprocessing";var je={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"},fr="/fonts/cinema_display.typeface.json";function pr(t){let n=-(t.length*.65)/2;return t.split("").map((l,d)=>[n+d*.65,0,0])}function ae({text:t="CINEMA",theme:e="emerald",customBackground:r,interactiveSparks:n=!0,interactiveShockwave:l=!0,interactivePlasma:d=!0,showParticles:m=!0,enableBloom:c=!0,className:g="",style:a,children:o}){let[i,s]=We(t),[v,u]=We(e),y=(i||t||"CINEMA").toUpperCase(),f=y.split(""),T=ar(()=>pr(y),[y]),p=v||e||"emerald",M=r||je[p]||je.emerald;return React.createElement("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none ${g}`,style:S({background:M},a)},React.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},React.createElement(ir,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(or,{fallback:null},React.createElement(sr,{preset:"studio"}),React.createElement("ambientLight",{intensity:.3}),React.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),React.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:p==="emerald"?"#10b981":p==="crimson"?"#ff1744":p==="neon"?"#00ffff":"#FFD700"}),React.createElement(I,{phase:"idle"}),React.createElement(_,{enabled:n,theme:p}),React.createElement(O,{enabled:l,theme:p}),React.createElement(D,{enabled:d,theme:p}),React.createElement(lr,{disableY:!0,disableZ:!0},React.createElement("group",null,f.map((b,x)=>React.createElement(A,{key:`${b}-${x}`,char:b,index:x,totalLetters:f.length,position:T[x],phase:"idle",theme:p,fontUrl:fr})))),m&&React.createElement(z,{theme:p,visible:!0}),React.createElement(cr,null,React.createElement(mr,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:c?.9:0,mipmapBlur:!0}),React.createElement(dr,{offset:.3,darkness:.85}),React.createElement(ur,{opacity:.025}))))),o&&React.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},o))}function hr(t,e={}){let r=n=>Ye.createElement(ae,S({},e),Ye.createElement(t,S({},n)));return r.displayName=`WithCinema3D(${t.displayName||t.name||"Component"})`,r}import{Suspense as br,useState as se,useEffect as xr,useCallback as Ve,useMemo as vr}from"react";import{Canvas as yr}from"@react-three/fiber";import{Environment as Mr,Center as Er}from"@react-three/drei";import{EffectComposer as wr,Bloom as Tr,Vignette as kr,Noise as Cr}from"@react-three/postprocessing";var gr=[{key:"gold",label:"Gold",color:"#FFD700"},{key:"neon",label:"Neon",color:"#00ffff"},{key:"emerald",label:"Emerald",color:"#10b981"},{key:"crimson",label:"Crimson",color:"#ff1744"},{key:"obsidian",label:"Obsidian",color:"#a855f7"},{key:"glass",label:"Glass",color:"#ffffff"}];function ie({phase:t,cinemaName:e,theme:r,effects:n,onTitleChange:l,onThemeChange:d,onToggleEffect:m}){return React.createElement("div",{className:"absolute inset-0 pointer-events-none z-10 flex flex-col items-center justify-between p-6 md:p-10",style:{opacity:t==="exiting"?0:1,transition:"opacity 0.8s ease-out"}},React.createElement("div",{className:"w-full max-w-xl flex flex-col items-center gap-2 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transform:t==="idle"||t==="entering"?"translateY(0)":"translateY(-20px)",transition:"all 1s ease-out 0.3s"}},React.createElement("label",{className:"text-[10px] tracking-[0.3em] uppercase text-white/50 font-bold"},"Live 3D Title Control"),React.createElement("div",{className:"relative w-full"},React.createElement("input",{type:"text",value:e,onChange:a=>l(a.target.value),maxLength:18,placeholder:"Type any title...",className:"w-full px-6 py-3 rounded-full text-center text-sm md:text-base font-bold tracking-widest uppercase outline-none transition-all duration-300",style:{background:"rgba(255, 255, 255, 0.08)",backdropFilter:"blur(16px)",border:"1px solid rgba(255, 255, 255, 0.2)",color:"#ffffff",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.37)"}}))),t==="loading"&&React.createElement("div",{className:"absolute inset-0 flex items-center justify-center"},React.createElement("div",{className:"w-16 h-16 rounded-full border-2 animate-spin",style:{borderColor:"transparent",borderTopColor:"rgba(255, 215, 0, 0.8)",borderRightColor:"rgba(255, 215, 0, 0.3)"}})),React.createElement("div",{className:"w-full max-w-3xl flex flex-col items-center gap-5"},React.createElement("div",{className:"flex flex-wrap items-center justify-center gap-2 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transition:"opacity 1s ease-out 0.8s"}},React.createElement("span",{className:"text-[9px] uppercase tracking-[0.25em] text-white/40 mr-2 font-bold"},"Effects"),React.createElement("button",{onClick:()=>m("sparks"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.sparks?"bg-amber-500/30 text-amber-200 border-amber-400/60 shadow-[0_0_15px_rgba(245,158,11,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u{1F525} Sparks"),React.createElement("button",{onClick:()=>m("shockwave"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.shockwave?"bg-cyan-500/30 text-cyan-200 border-cyan-400/60 shadow-[0_0_15px_rgba(6,182,212,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u{1F30A} Wave"),React.createElement("button",{onClick:()=>m("plasma"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.plasma?"bg-purple-500/30 text-purple-200 border-purple-400/60 shadow-[0_0_15px_rgba(168,85,247,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u26A1 Plasma"),React.createElement("button",{onClick:()=>m("embers"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.embers?"bg-emerald-500/30 text-emerald-200 border-emerald-400/60 shadow-[0_0_15px_rgba(16,185,129,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u2728 Embers")),React.createElement("div",{className:"flex items-center gap-3 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transition:"opacity 1s ease-out 1.2s"}},React.createElement("span",{className:"text-[10px] uppercase tracking-[0.3em] text-white/40 mr-2 font-bold"},"Theme"),React.createElement("div",{className:"flex items-center gap-2 md:gap-3"},gr.map(a=>{let o=r===a.key;return React.createElement("button",{key:a.key,onClick:()=>d(a.key),className:"group relative flex flex-col items-center gap-1.5 cursor-pointer outline-none","aria-label":`Switch to ${a.label} theme`},React.createElement("div",{className:"relative w-11 h-7 md:w-14 md:h-9 rounded-md overflow-hidden transition-all duration-300",style:{border:o?`2px solid ${a.color}`:"1px solid rgba(255, 255, 255, 0.15)",transform:o?"scale(1.1) translateY(-2px)":"scale(1) translateY(0)",boxShadow:o?`0 4px 20px ${a.color}60`:"0 2px 10px rgba(0,0,0,0.5)"}},React.createElement("div",{className:"absolute inset-0 opacity-80",style:{backgroundColor:a.color}})),React.createElement("span",{className:"text-[9px] uppercase tracking-widest font-semibold transition-colors duration-300",style:{color:o?"#ffffff":"rgba(255, 255, 255, 0.4)"}},a.label))})))))}var Sr="/fonts/cinema_display.typeface.json",$e={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"};function Rr(t){let n=-(t.length*.65)/2;return t.split("").map((l,d)=>[n+d*.65,0,0])}function Ge({cinemaName:t="CINEMULTIPLEX",defaultTheme:e="emerald",customBackground:r,onEnterCinema:n}){let[l,d]=se("loading"),[m,c]=se(e),[g,a]=se(t),[o,i]=se({sparks:!0,shockwave:!0,plasma:!0,embers:!0}),s=(g||"CINEMA").toUpperCase(),v=s.split(""),u=vr(()=>Rr(s),[s]);xr(()=>{let p=setTimeout(()=>d("entering"),800),M=v.length*120+1500,b=setTimeout(()=>d("idle"),800+M);return()=>{clearTimeout(p),clearTimeout(b)}},[v.length]);let y=Ve(()=>{d("exiting"),setTimeout(()=>{n&&n()},1800)},[n]),f=Ve(p=>{i(M=>U(S({},M),{[p]:!M[p]}))},[]),T=r||$e[m]||$e.emerald;return React.createElement("div",{className:"fixed inset-0 w-screen h-screen transition-all duration-1000 select-none overflow-hidden",style:{background:T}},React.createElement(yr,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(br,{fallback:null},React.createElement(Mr,{preset:"studio"}),React.createElement("ambientLight",{intensity:.3}),React.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),React.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:m==="emerald"?"#10b981":m==="crimson"?"#ff1744":m==="neon"?"#00ffff":"#FFD700"}),React.createElement("spotLight",{position:[0,10,0],angle:.4,penumbra:.8,intensity:.9,color:"#ffffff"}),React.createElement("pointLight",{position:[0,0,-5],intensity:.4,color:"#ffffff"}),React.createElement(I,{phase:l}),o.sparks&&React.createElement(_,{theme:m}),React.createElement(O,{theme:m,enabled:o.shockwave}),React.createElement(D,{theme:m,enabled:o.plasma}),React.createElement(Er,{disableY:!0,disableZ:!0},React.createElement("group",null,v.map((p,M)=>React.createElement(A,{key:`${p}-${M}`,char:p,index:M,totalLetters:v.length,position:u[M],phase:l,theme:m,fontUrl:Sr})))),React.createElement(z,{theme:m,visible:l!=="loading"&&o.embers}),React.createElement(wr,null,React.createElement(Tr,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:m==="neon"||m==="emerald"||m==="crimson"?1.4:.7,mipmapBlur:!0}),React.createElement(kr,{offset:.3,darkness:.85}),React.createElement(Cr,{opacity:.025})))),React.createElement(ie,{phase:l,cinemaName:g,theme:m,effects:o,onTitleChange:a,onThemeChange:c,onToggleEffect:f}))}export{ue as AnimatedBackground,A as AnimatedLetter,I as CameraRig,ae as CinemaBackground,oe as CinemaHome,Ge as CinemaLoader,_ as ClickFireSparks,O as ClickShockwave,D as ElectricPlasma,te as FireFlames,ie as LoaderOverlay,re as PlasmaBlobs,z as SceneParticles,ue as default,hr as withCinema3D};
|
|
3
3
|
//# sourceMappingURL=index.mjs.map
|