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.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
+
import react__default from 'react';
|
|
2
3
|
|
|
3
4
|
type MaterialTheme = "gold" | "neon" | "emerald" | "crimson" | "obsidian" | "glass";
|
|
4
5
|
interface AnimatedLetterProps {
|
|
@@ -12,57 +13,193 @@ interface AnimatedLetterProps {
|
|
|
12
13
|
}
|
|
13
14
|
declare function AnimatedLetter({ char, index, totalLetters, position, phase, theme, fontUrl, }: AnimatedLetterProps): react.JSX.Element | null;
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
type SingleEffectType = "fire" | "flames" | "crystal-flames" | "fluid-flames" | "blobs" | "energy-blobs" | "plasma-blobs" | "inferno" | "sparks" | "shockwave" | "wave" | "plasma" | "electric" | "embers" | "supernova" | "all";
|
|
17
|
+
type EffectType = SingleEffectType | SingleEffectType[] | string;
|
|
18
|
+
interface AnimatedBackgroundProps {
|
|
19
|
+
/** View template or component to display ("lhome", "home", or custom React component) */
|
|
20
|
+
containerToDisplay?: string | react__default.ReactNode;
|
|
21
|
+
/** DOM element ID/class or container target to attach as background (e.g. "home", "#main-hero", "lhome") */
|
|
22
|
+
containerSelector?: string;
|
|
23
|
+
/** 3D Effect type or multiple effects (e.g. "blobs,onda" or ["flames", "shockwave"]) */
|
|
24
|
+
effect?: EffectType;
|
|
25
|
+
/** 3D Title rendered in world space (omit or pass "" for blank pure background effects) */
|
|
26
|
+
title?: string;
|
|
27
|
+
/** Background color or gradient (supports Spanish names like "rojo", "azul", "verde", "dorado" or #HEX / CSS colors) */
|
|
28
|
+
backgroundColor?: string;
|
|
29
|
+
/** Custom color for ALL 3D WebGL effects (e.g. "azul", "verde", "magenta", "#00e5ff", "#ff0055") */
|
|
30
|
+
effectColor?: string;
|
|
31
|
+
/** Speed multiplier for 3D motion & animation (default 0.5 for smooth relaxing motion) */
|
|
32
|
+
effectSpeed?: number;
|
|
33
|
+
/** Density / quantity of flame & WebGL particles (range 0.1 to 1.0, default 0.3 for clean elegant flames) */
|
|
34
|
+
effectDensity?: number;
|
|
35
|
+
/** Automatically scale 3D text to fit parent container perfectly (default true) */
|
|
36
|
+
autoFitText?: boolean;
|
|
37
|
+
/** Optional duration in seconds when used as a Loader / Splash screen animation */
|
|
38
|
+
loaderDuration?: number;
|
|
39
|
+
/** Optional URL to redirect to automatically when loaderDuration timer reaches 0 */
|
|
40
|
+
redirectUrl?: string;
|
|
41
|
+
/** Optional callback triggered when loaderDuration timer finishes */
|
|
42
|
+
onComplete?: () => void;
|
|
43
|
+
/** 3D Font Family ("cinema", "helvetiker", "gentilis", "optimer" or custom font URL) */
|
|
44
|
+
fontFamily?: "cinema" | "helvetiker" | "gentilis" | "optimer" | string;
|
|
45
|
+
/** Custom 3D Typeface JSON URL */
|
|
46
|
+
fontUrl?: string;
|
|
47
|
+
/** 3D Material theme */
|
|
48
|
+
theme?: MaterialTheme;
|
|
49
|
+
/** Letter spacing multiplier (default 0.85 to prevent text overlaps) */
|
|
50
|
+
letterSpacing?: number;
|
|
51
|
+
/** Container CSS class name */
|
|
52
|
+
className?: string;
|
|
53
|
+
/** Inline CSS styles */
|
|
54
|
+
style?: react__default.CSSProperties;
|
|
55
|
+
/** Custom children overlay */
|
|
56
|
+
children?: react__default.ReactNode;
|
|
17
57
|
}
|
|
18
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Main Animated Background Component for 3d-effect-cinema.
|
|
60
|
+
* Supports permanent 3D background mode OR cinematic Splash Screen / Loader mode (with loaderDuration & redirectUrl).
|
|
61
|
+
* Can be targeted to a DOM container via `containerSelector` (e.g. containerSelector="home").
|
|
62
|
+
*/
|
|
63
|
+
declare function AnimatedBackground({ containerToDisplay, containerSelector, effect, title, backgroundColor, effectColor, effectSpeed, effectDensity, autoFitText, loaderDuration, redirectUrl, onComplete, fontFamily, fontUrl, theme, letterSpacing, className, style, children, }: AnimatedBackgroundProps): react__default.JSX.Element;
|
|
64
|
+
|
|
65
|
+
interface CinemaBackgroundProps {
|
|
66
|
+
/** 3D Text rendered in world space */
|
|
67
|
+
text?: string;
|
|
68
|
+
/** Active material & lighting theme */
|
|
69
|
+
theme?: MaterialTheme;
|
|
70
|
+
/** Custom CSS gradient or solid color */
|
|
71
|
+
customBackground?: string;
|
|
72
|
+
/** Enable/disable 3D fire sparks on click */
|
|
73
|
+
interactiveSparks?: boolean;
|
|
74
|
+
/** Enable/disable 3D shockwave rings on click */
|
|
75
|
+
interactiveShockwave?: boolean;
|
|
76
|
+
/** Enable/disable electric plasma arcs */
|
|
77
|
+
interactivePlasma?: boolean;
|
|
78
|
+
/** Enable/disable ambient floating particle embers */
|
|
79
|
+
showParticles?: boolean;
|
|
80
|
+
/** Enable bloom glow effect */
|
|
81
|
+
enableBloom?: boolean;
|
|
82
|
+
/** Optional container CSS class name */
|
|
83
|
+
className?: string;
|
|
84
|
+
/** Optional inline container styles */
|
|
85
|
+
style?: React.CSSProperties;
|
|
86
|
+
/** Children React nodes rendered on top of the 3D canvas */
|
|
87
|
+
children?: React.ReactNode;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Highly customizable 3D Cinema WebGL Background Component.
|
|
91
|
+
* Fits dynamically into any HTML parent container (div, header, section, card).
|
|
92
|
+
*/
|
|
93
|
+
declare function CinemaBackground({ text, theme, customBackground, interactiveSparks, interactiveShockwave, interactivePlasma, showParticles, enableBloom, className, style, children, }: CinemaBackgroundProps): react.JSX.Element;
|
|
94
|
+
|
|
95
|
+
interface WithCinema3DOptions extends Omit<CinemaBackgroundProps, "children"> {
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Higher-Order Component (HOC) that wraps any React component with the 3D WebGL Cinema background.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* const HeroWith3D = withCinema3D(MyHeroComponent, {
|
|
102
|
+
* text: "UNITED OF WEB",
|
|
103
|
+
* theme: "emerald",
|
|
104
|
+
* interactiveSparks: true,
|
|
105
|
+
* interactiveShockwave: true,
|
|
106
|
+
* });
|
|
107
|
+
*/
|
|
108
|
+
declare function withCinema3D<P extends object>(WrappedComponent: react__default.ComponentType<P>, hocOptions?: WithCinema3DOptions): {
|
|
109
|
+
(props: P): react__default.JSX.Element;
|
|
110
|
+
displayName: string;
|
|
111
|
+
};
|
|
19
112
|
|
|
20
113
|
interface CinemaLoaderProps {
|
|
21
114
|
cinemaName?: string;
|
|
22
115
|
defaultTheme?: MaterialTheme;
|
|
23
116
|
customBackground?: string;
|
|
24
|
-
onEnterCinema
|
|
117
|
+
onEnterCinema?: () => void;
|
|
25
118
|
}
|
|
26
119
|
declare function CinemaLoader({ cinemaName, defaultTheme, customBackground, onEnterCinema, }: CinemaLoaderProps): react.JSX.Element;
|
|
27
120
|
|
|
28
|
-
|
|
121
|
+
interface FireFlamesProps {
|
|
122
|
+
theme?: MaterialTheme;
|
|
123
|
+
effectColor?: string;
|
|
124
|
+
effectSpeed?: number;
|
|
125
|
+
effectDensity?: number;
|
|
126
|
+
mode?: "fluid" | "crystal" | "all";
|
|
127
|
+
enabled?: boolean;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Dual-Engine Fire Flames Component:
|
|
131
|
+
* Offers both Organic Liquid Energy Flame Clouds (mode="fluid") and 3D Crystal Flame Geometries (mode="crystal" or mode="all")
|
|
132
|
+
*/
|
|
133
|
+
declare function FireFlames({ theme, effectColor, effectSpeed, effectDensity, mode, enabled, }: FireFlamesProps): react.JSX.Element | null;
|
|
134
|
+
|
|
135
|
+
interface PlasmaBlobsProps {
|
|
136
|
+
theme?: MaterialTheme;
|
|
137
|
+
effectColor?: string;
|
|
138
|
+
effectSpeed?: number;
|
|
139
|
+
effectDensity?: number;
|
|
140
|
+
enabled?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Exact Bioluminescent Liquid Energy Blobs Effect (matching user screenshot)
|
|
144
|
+
*/
|
|
145
|
+
declare function PlasmaBlobs({ theme, effectColor, effectSpeed, effectDensity, enabled, }: PlasmaBlobsProps): react.JSX.Element | null;
|
|
146
|
+
|
|
147
|
+
declare function ClickFireSparks({ theme, effectColor, effectSpeed, enabled, }: {
|
|
29
148
|
theme?: MaterialTheme;
|
|
149
|
+
effectColor?: string;
|
|
150
|
+
effectSpeed?: number;
|
|
151
|
+
enabled?: boolean;
|
|
30
152
|
}): react.JSX.Element;
|
|
31
153
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
154
|
+
declare function ClickShockwave({ theme, effectColor, effectSpeed, enabled, }: {
|
|
155
|
+
theme?: MaterialTheme;
|
|
156
|
+
effectColor?: string;
|
|
157
|
+
effectSpeed?: number;
|
|
158
|
+
enabled?: boolean;
|
|
159
|
+
}): react.JSX.Element | null;
|
|
160
|
+
|
|
161
|
+
interface ElectricPlasmaProps {
|
|
162
|
+
theme?: MaterialTheme;
|
|
163
|
+
effectColor?: string;
|
|
164
|
+
effectSpeed?: number;
|
|
165
|
+
enabled?: boolean;
|
|
38
166
|
}
|
|
39
|
-
declare function
|
|
167
|
+
declare function ElectricPlasma({ theme, effectColor, effectSpeed, enabled, }: ElectricPlasmaProps): react.JSX.Element | null;
|
|
40
168
|
|
|
41
169
|
interface SceneParticlesProps {
|
|
42
170
|
theme: MaterialTheme;
|
|
171
|
+
effectColor?: string;
|
|
172
|
+
effectSpeed?: number;
|
|
43
173
|
visible: boolean;
|
|
44
174
|
}
|
|
45
|
-
declare function SceneParticles({ theme, visible }: SceneParticlesProps): react.JSX.Element | null;
|
|
175
|
+
declare function SceneParticles({ theme, effectColor, effectSpeed, visible }: SceneParticlesProps): react.JSX.Element | null;
|
|
46
176
|
|
|
47
|
-
interface
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
customBackground?: string;
|
|
51
|
-
interactiveSparks?: boolean;
|
|
52
|
-
showParticles?: boolean;
|
|
53
|
-
className?: string;
|
|
54
|
-
style?: React.CSSProperties;
|
|
55
|
-
children?: React.ReactNode;
|
|
177
|
+
interface CameraRigProps {
|
|
178
|
+
phase: "loading" | "entering" | "idle" | "exiting";
|
|
179
|
+
effectSpeed?: number;
|
|
56
180
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
181
|
+
declare function CameraRig({ phase, effectSpeed }: CameraRigProps): null;
|
|
182
|
+
|
|
183
|
+
interface EffectState {
|
|
184
|
+
sparks: boolean;
|
|
185
|
+
shockwave: boolean;
|
|
186
|
+
plasma: boolean;
|
|
187
|
+
embers: boolean;
|
|
188
|
+
}
|
|
189
|
+
interface LoaderOverlayProps {
|
|
190
|
+
phase: "loading" | "entering" | "idle" | "exiting";
|
|
191
|
+
cinemaName: string;
|
|
192
|
+
theme: MaterialTheme;
|
|
193
|
+
effects: EffectState;
|
|
194
|
+
onTitleChange: (newTitle: string) => void;
|
|
195
|
+
onThemeChange: (theme: MaterialTheme) => void;
|
|
196
|
+
onToggleEffect: (effectName: keyof EffectState) => void;
|
|
197
|
+
}
|
|
198
|
+
declare function LoaderOverlay({ phase, cinemaName, theme, effects, onTitleChange, onThemeChange, onToggleEffect, }: LoaderOverlayProps): react.JSX.Element;
|
|
62
199
|
|
|
63
200
|
declare function CinemaHome({ cinemaName, webTheme }: {
|
|
64
201
|
cinemaName?: string;
|
|
65
202
|
webTheme?: string;
|
|
66
203
|
}): react.JSX.Element;
|
|
67
204
|
|
|
68
|
-
export { AnimatedLetter, CameraRig, CinemaBackground, type CinemaBackgroundProps, CinemaHome, CinemaLoader, ClickFireSparks, LoaderOverlay, type MaterialTheme, SceneParticles };
|
|
205
|
+
export { AnimatedBackground, type AnimatedBackgroundProps, AnimatedLetter, CameraRig, CinemaBackground, type CinemaBackgroundProps, CinemaHome, CinemaLoader, ClickFireSparks, ClickShockwave, type EffectState, type EffectType, ElectricPlasma, FireFlames, LoaderOverlay, type MaterialTheme, PlasmaBlobs, SceneParticles, type WithCinema3DOptions, AnimatedBackground as default, withCinema3D };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
"use strict";var Le=Object.create;var F=Object.defineProperty,Se=Object.defineProperties,Pe=Object.getOwnPropertyDescriptor,Fe=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertyNames,U=Object.getOwnPropertySymbols,Be=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var te=(t,e,r)=>e in t?F(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,k=(t,e)=>{for(var r in e||(e={}))W.call(e,r)&&te(t,r,e[r]);if(U)for(var r of U(e))ne.call(e,r)&&te(t,r,e[r]);return t},j=(t,e)=>Se(t,Fe(e));var re=(t,e)=>{var r={};for(var o in t)W.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&U)for(var o of U(t))e.indexOf(o)<0&&ne.call(t,o)&&(r[o]=t[o]);return r};var Ie=(t,e)=>{for(var r in e)F(t,r,{get:e[r],enumerable:!0})},oe=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of He(e))!W.call(t,a)&&a!==r&&F(t,a,{get:()=>e[a],enumerable:!(o=Pe(e,a))||o.enumerable});return t};var H=(t,e,r)=>(r=t!=null?Le(Be(t)):{},oe(e||!t||!t.__esModule?F(r,"default",{value:t,enumerable:!0}):r,t)),Ae=t=>oe(F({},"__esModule",{value:!0}),t);var je={};Ie(je,{AnimatedLetter:()=>E,CameraRig:()=>T,CinemaBackground:()=>q,CinemaHome:()=>Q,CinemaLoader:()=>Z,ClickFireSparks:()=>N,LoaderOverlay:()=>A,SceneParticles:()=>C});module.exports=Ae(je);var B=require("react"),ie=require("@react-three/fiber"),ae=require("@react-three/drei"),R=H(require("three")),ze={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 E({char:t,index:e,totalLetters:r,position:o,phase:a,theme:c,fontUrl:l}){let s=(0,B.useRef)(null),n=(0,B.useRef)(null),i=(0,B.useMemo)(()=>{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=ze[c];return(0,ie.useFrame)(d=>{if(!s.current)return;let p=d.clock.getElapsedTime();n.current===null&&(n.current=p);let f=p-n.current,h=e*.12;if(a==="loading"){s.current.position.set(o[0]+i.x,o[1]+i.y,o[2]+i.z),s.current.rotation.set(i.rotX,i.rotY,0),s.current.scale.setScalar(0);return}if(a==="entering"){let u=Math.max(0,f-h),g=1-Math.exp(-u*3),y=1+Math.sin(u*8)*Math.max(0,.15-u*.1);s.current.position.set(R.MathUtils.lerp(o[0]+i.x,o[0],g),R.MathUtils.lerp(o[1]+i.y,o[1],g),R.MathUtils.lerp(o[2]+i.z,o[2],g)),s.current.rotation.set(R.MathUtils.lerp(i.rotX,0,g),R.MathUtils.lerp(i.rotY,0,g),0),s.current.scale.setScalar(Math.min(g*y,1.05));return}if(a==="idle"){let u=Math.sin(p*1.2+e*.5)*.015,g=Math.sin(p*.8+e*.3)*.008;s.current.position.set(o[0]+g,o[1]+u,o[2]),s.current.rotation.set(Math.sin(p*.5+e)*.01,Math.sin(p*.3+e*.7)*.01,0),s.current.scale.setScalar(1);return}if(a==="exiting"){let u=Math.max(0,f-h*.5),g=Math.min(u*2,1),y=g*g;s.current.position.set(o[0]+i.x*y*.5,o[1],o[2]-y*8),s.current.scale.setScalar(Math.max(1-y,0)),s.current.rotation.y+=.05}}),t===" "?null:React.createElement("group",{ref:s,position:o},React.createElement(ae.Text3D,{font:l,size:.8,height:.35,bevelEnabled:!0,bevelSize:.02,bevelThickness:.01,bevelSegments:3,curveSegments:12},t,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:c!=="neon"})))}var G=require("react"),O=require("@react-three/fiber"),w=H(require("three"));function T({phase:t}){let{camera:e,pointer:r}=(0,O.useThree)(),o=(0,G.useRef)(null),a=(0,G.useRef)(t);return a.current!==t&&(a.current=t,o.current=null),(0,O.useFrame)(c=>{let l=c.clock.getElapsedTime();o.current===null&&(o.current=l);let s=l-o.current;if(t==="loading"){e.position.set(0,0,14),e.lookAt(0,0,0);return}if(t==="entering"){let n=Math.min(s/3,1),i=1-Math.pow(1-n,3),m=w.MathUtils.lerp(14,6,i),d=w.MathUtils.lerp(1,.2,i);e.position.set(0,d,m),e.lookAt(0,0,0);return}if(t==="idle"){let n=Math.sin(l*.15)*.3,i=Math.cos(l*.1)*.15+.2,m=r.x*.3,d=r.y*.15;e.position.x=w.MathUtils.damp(e.position.x,n+m,3,.016),e.position.y=w.MathUtils.damp(e.position.y,i+d,3,.016),e.position.z=w.MathUtils.damp(e.position.z,6,3,.016),e.lookAt(0,0,0);return}if(t==="exiting"){let n=Math.min(s/1.5,1),i=n*n*n,m=w.MathUtils.lerp(6,-8,i);e.position.set(0,0,m),e.lookAt(0,0,0)}}),null}var b=require("react"),de=require("@react-three/fiber"),_=require("@react-three/drei"),M=require("@react-three/postprocessing");var I=require("react"),se=require("@react-three/fiber"),K=require("@react-three/drei"),le=H(require("three")),Ue={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"};function Oe({color:t,count:e=60}){let r=(0,I.useRef)(null),o=(0,I.useRef)(new le.Object3D),a=(0,I.useRef)(null),c=(0,I.useRef)(null);if(!a.current){a.current=new Float32Array(e),c.current=new Float32Array(e*3);for(let l=0;l<e;l++)a.current[l]=.1+Math.random()*.3,c.current[l*3]=(Math.random()-.5)*16,c.current[l*3+1]=(Math.random()-.5)*10,c.current[l*3+2]=(Math.random()-.5)*12}return(0,se.useFrame)(l=>{if(!r.current||!a.current||!c.current)return;let s=l.clock.getElapsedTime();for(let n=0;n<e;n++){let i=a.current[n],m=c.current[n*3],d=c.current[n*3+1],p=c.current[n*3+2];o.current.position.set(m+Math.sin(s*i+n)*2,d+Math.cos(s*i*.7+n*.5)*1.5,p+Math.sin(s*i*.5+n*.3)*2),o.current.scale.setScalar(.015+Math.sin(s+n)*.005),o.current.updateMatrix(),r.current.setMatrixAt(n,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:t,transparent:!0,opacity:.3,toneMapped:!1}))}function C({theme:t,visible:e}){let r=Ue[t];return e?React.createElement("group",null,React.createElement(K.Sparkles,{count:150,scale:10,size:4,speed:.3,opacity:.8,color:r,noise:.6}),React.createElement(K.Sparkles,{count:80,scale:16,size:2,speed:.15,opacity:.4,color:"#ffffff",noise:.8}),React.createElement(Oe,{color:r,count:50})):null}var Ve=[{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 A({phase:t,cinemaName:e,theme:r,onEnter:o,onThemeChange:a}){let c=t==="idle";return React.createElement("div",{className:"absolute inset-0 pointer-events-none z-10 flex flex-col items-center justify-between",style:{opacity:t==="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:t==="idle"||t==="entering"?1:0,transform:t==="idle"||t==="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")),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-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:c?1:0,transform:c?"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:c?"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:t==="idle"||t==="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"},Ve.map(n=>{let i=r===n.key;return React.createElement("button",{key:n.key,onClick:()=>a(n.key),className:"group relative flex flex-col items-center gap-2 cursor-pointer outline-none",id:`theme-selector-${n.key}`,"aria-label":`Switch to ${n.label} theme`},React.createElement("div",{className:"relative w-14 h-9 rounded-md overflow-hidden transition-all duration-500",style:{border:i?`2px solid ${n.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 ${n.color}40`:"0 2px 10px rgba(0,0,0,0.5)"}},React.createElement("div",{className:"absolute inset-0 opacity-80",style:{backgroundColor:n.color}}),React.createElement("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-300",style:{background:n.key==="gold"?"conic-gradient(from 0deg, transparent, rgba(255,255,255,0.5), transparent)":n.key==="neon"?"radial-gradient(circle at center, rgba(255,255,255,0.8) 0%, transparent 70%)":n.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:n.key==="gold"?"spin-slow 3s linear infinite":n.key==="neon"?"pulse-glow 2s ease-in-out infinite":n.key==="obsidian"?"shimmer 2s linear infinite":"shimmer 3s linear infinite",backgroundSize:n.key==="obsidian"||n.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"}},n.label))})))))}var v=require("react"),V=require("@react-three/fiber"),x=H(require("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"]};function N({theme:t="gold"}){let{camera:e,raycaster:r,pointer:o}=(0,V.useThree)(),[a,c]=(0,v.useState)([]),l=(0,v.useRef)(0),s=(0,v.useCallback)(n=>{let i=0,m=0;if("touches"in n&&n.touches.length>0)i=n.touches[0].clientX,m=n.touches[0].clientY;else if("clientX"in n)i=n.clientX,m=n.clientY;else return;let d=new x.Vector2(i/window.innerWidth*2-1,-(m/window.innerHeight)*2+1);r.setFromCamera(d,e);let p=new x.Plane(new x.Vector3(0,0,1),0),f=new x.Vector3;if(r.ray.intersectPlane(p,f),!f)return;let h=ce[t]||ce.gold,u=35,g=[];for(let P=0;P<u;P++){let ee=Math.random()*Math.PI*2,$=1.5+Math.random()*4.5,Ce=(Math.random()-.3)*3,Ne=new x.Vector3(Math.cos(ee)*$,Math.sin(ee)*$+Ce,(Math.random()-.5)*$*.8),Re=h[Math.floor(Math.random()*h.length)];g.push({id:P,position:f.clone(),velocity:Ne,color:new x.Color(Re),size:.08+Math.random()*.12,life:1,maxLife:.6+Math.random()*.8})}let y={id:l.current++,origin:f.clone(),sparks:g,color:h[0],lightIntensity:4,time:0};c(P=>[...P.slice(-4),y])},[e,r,t]);return(0,v.useEffect)(()=>(window.addEventListener("pointerdown",s),()=>{window.removeEventListener("pointerdown",s)}),[s]),(0,V.useFrame)((n,i)=>{a.length!==0&&c(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 y=u.position.clone().addScaledVector(u.velocity,i);return u.velocity.y-=i*3.5,u.velocity.multiplyScalar(.96),j(k({},u),{position:y,life:g})}).filter(Boolean);return h.length===0&&f<=0?null:j(k({},d),{time:p,lightIntensity:f,sparks:h})}).filter(Boolean))}),React.createElement("group",null,a.map(n=>React.createElement("group",{key:n.id},n.lightIntensity>.05&&React.createElement("pointLight",{position:n.origin,intensity:n.lightIntensity*3,distance:6,color:n.color}),n.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 _e="/fonts/cinema_display.typeface.json",me={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 Ye(t){let o=-(t.length*.65)/2;return t.split("").map((a,c)=>[o+c*.65,0,0])}function Z({cinemaName:t="CINEMULTIPLEX",defaultTheme:e="gold",customBackground:r,onEnterCinema:o}){let[a,c]=(0,b.useState)("loading"),[l,s]=(0,b.useState)(e),n=t.toUpperCase(),i=n.split(""),m=(0,b.useMemo)(()=>Ye(n),[n]);(0,b.useEffect)(()=>{let f=setTimeout(()=>c("entering"),800),h=i.length*120+1500,u=setTimeout(()=>c("idle"),800+h);return()=>{clearTimeout(f),clearTimeout(u)}},[i.length]);let d=(0,b.useCallback)(()=>{c("exiting"),setTimeout(()=>{o()},1800)},[o]),p=r||me[l]||me.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(de.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(b.Suspense,{fallback:null},React.createElement(_.Environment,{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:l==="emerald"?"#10b981":l==="crimson"?"#ff1744":l==="neon"?"#00ffff":l==="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(T,{phase:a}),React.createElement(N,{theme:l}),React.createElement(_.Center,{disableY:!0,disableZ:!0},React.createElement("group",null,i.map((f,h)=>React.createElement(E,{key:`${f}-${h}`,char:f,index:h,totalLetters:i.length,position:m[h],phase:a,theme:l,fontUrl:_e})))),React.createElement(C,{theme:l,visible:a!=="loading"}),React.createElement(M.EffectComposer,null,React.createElement(M.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:l==="neon"||l==="emerald"||l==="crimson"?1.4:.7,mipmapBlur:!0}),React.createElement(M.Vignette,{offset:.3,darkness:.85}),React.createElement(M.Noise,{opacity:.025})))),React.createElement(A,{phase:a,cinemaName:t,theme:l,onEnter:d,onThemeChange:s}))}var Y=require("react"),ue=require("@react-three/fiber"),D=require("@react-three/drei"),L=require("@react-three/postprocessing");var fe={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%)"},De="/fonts/cinema_display.typeface.json";function Xe(t){let o=-(t.length*.65)/2;return t.split("").map((a,c)=>[o+c*.65,0,0])}function q({text:t="CINEMA",theme:e="emerald",customBackground:r,interactiveSparks:o=!0,showParticles:a=!0,className:c="",style:l,children:s}){let n=t.toUpperCase(),i=n.split(""),m=(0,Y.useMemo)(()=>Xe(n),[n]),d=r||fe[e]||fe.emerald;return React.createElement("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none ${c}`,style:k({background:d},l)},React.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},React.createElement(ue.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(Y.Suspense,{fallback:null},React.createElement(D.Environment,{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(T,{phase:"idle"}),o&&React.createElement(N,{theme:e}),React.createElement(D.Center,{disableY:!0,disableZ:!0},React.createElement("group",null,i.map((p,f)=>React.createElement(E,{key:`${p}-${f}`,char:p,index:f,totalLetters:i.length,position:m[f],phase:"idle",theme:e,fontUrl:De})))),a&&React.createElement(C,{theme:e,visible:!0}),React.createElement(L.EffectComposer,null,React.createElement(L.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:.8,mipmapBlur:!0}),React.createElement(L.Vignette,{offset:.3,darkness:.85}))))),s&&React.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},s))}var Te=require("next-intl");var pe=require("next-intl/routing"),ge=require("next-intl/navigation"),$e=(0,pe.defineRouting)({locales:["en","es"],defaultLocale:"en"}),{Link:S,redirect:ut,usePathname:he,useRouter:be}=(0,ge.createNavigation)($e);var xe=require("next-intl");var ye=require("lucide-react");function J(){let t=(0,xe.useLocale)(),e=be(),r=he();return React.createElement("button",{onClick:()=>{let a=t==="en"?"es":"en";e.replace(r,{locale:a})},className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-white transition-colors uppercase tracking-wider"},React.createElement(ye.Globe,{className:"w-4 h-4"}),t==="en"?"ES":"EN")}var X=H(require("react")),Ee=require("@radix-ui/react-slot"),we=require("class-variance-authority");var ve=require("clsx"),Me=require("tailwind-merge");function ke(...t){return(0,Me.twMerge)((0,ve.clsx)(t))}var We=(0,we.cva)("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=X.forwardRef((l,c)=>{var s=l,{className:t,variant:e,size:r,asChild:o=!1}=s,a=re(s,["className","variant","size","asChild"]);return X.createElement(o?Ee.Slot:"button",k({className:ke(We({variant:e,size:r,className:t})),ref:c},a))});z.displayName="Button";function Q({cinemaName:t="NOVA",webTheme:e="neon"}){let r=(0,Te.useTranslations)(),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(S,{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(S,{href:"/schedule",className:"hover:text-white transition-colors"},r("nav.schedule")),React.createElement(S,{href:"/experiences",className:"hover:text-white transition-colors"},r("nav.experiences")),React.createElement(S,{href:"/membership",className:"hover:text-white transition-colors"},r("nav.membership")))),React.createElement("div",{className:"flex items-center gap-6"},React.createElement(J,null),React.createElement("div",{className:"hidden sm:flex items-center gap-4"},React.createElement(S,{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 ${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(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"))))))}0&&(module.exports={AnimatedLetter,CameraRig,CinemaBackground,CinemaHome,CinemaLoader,ClickFireSparks,LoaderOverlay,SceneParticles});
|
|
2
|
+
"use strict";var Tt=Object.create;var ae=Object.defineProperty,kt=Object.defineProperties,Ct=Object.getOwnPropertyDescriptor,St=Object.getOwnPropertyDescriptors,Rt=Object.getOwnPropertyNames,pe=Object.getOwnPropertySymbols,Lt=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var Ie=(t,e,r)=>e in t?ae(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,S=(t,e)=>{for(var r in e||(e={}))Re.call(e,r)&&Ie(t,r,e[r]);if(pe)for(var r of pe(e))_e.call(e,r)&&Ie(t,r,e[r]);return t},K=(t,e)=>kt(t,St(e));var Oe=(t,e)=>{var r={};for(var n in t)Re.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&pe)for(var n of pe(t))e.indexOf(n)<0&&_e.call(t,n)&&(r[n]=t[n]);return r};var Pt=(t,e)=>{for(var r in e)ae(t,r,{get:e[r],enumerable:!0})},De=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Rt(e))!Re.call(t,i)&&i!==r&&ae(t,i,{get:()=>e[i],enumerable:!(n=Ct(e,i))||n.enumerable});return t};var F=(t,e,r)=>(r=t!=null?Tt(Lt(t)):{},De(e||!t||!t.__esModule?ae(r,"default",{value:t,enumerable:!0}):r,t)),Nt=t=>De(ae({},"__esModule",{value:!0}),t);var Vt={};Pt(Vt,{AnimatedBackground:()=>Te,AnimatedLetter:()=>D,CameraRig:()=>U,CinemaBackground:()=>ue,CinemaHome:()=>de,CinemaLoader:()=>Be,ClickFireSparks:()=>W,ClickShockwave:()=>j,ElectricPlasma:()=>Y,FireFlames:()=>le,LoaderOverlay:()=>fe,PlasmaBlobs:()=>ce,SceneParticles:()=>X,default:()=>Te,withCinema3D:()=>vt});module.exports=Nt(Vt);var b=F(require("react")),gt=require("@react-three/fiber"),we=require("@react-three/drei"),G=require("@react-three/postprocessing");var ie=require("react"),Xe=require("@react-three/fiber"),Ue=require("@react-three/drei"),re=F(require("three")),Ht={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 D({char:t,index:e,totalLetters:r,position:n,phase:i,theme:d,fontUrl:m}){let c=(0,ie.useRef)(null),g=(0,ie.useRef)(null),a=(0,ie.useMemo)(()=>{let s=e/r*Math.PI*2;return{x:Math.cos(s)*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=Ht[d];return(0,Xe.useFrame)(s=>{if(!c.current)return;let l=s.clock.getElapsedTime();g.current===null&&(g.current=l);let y=l-g.current,u=e*.12;if(i==="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(i==="entering"){let M=Math.max(0,y-u),f=1-Math.exp(-M*3),T=1+Math.sin(M*8)*Math.max(0,.15-M*.1);c.current.position.set(re.MathUtils.lerp(n[0]+a.x,n[0],f),re.MathUtils.lerp(n[1]+a.y,n[1],f),re.MathUtils.lerp(n[2]+a.z,n[2],f)),c.current.rotation.set(re.MathUtils.lerp(a.rotX,0,f),re.MathUtils.lerp(a.rotY,0,f),0),c.current.scale.setScalar(Math.min(f*T,1.05));return}if(i==="idle"){let M=Math.sin(l*1.2+e*.5)*.015,f=Math.sin(l*.8+e*.3)*.008;c.current.position.set(n[0]+f,n[1]+M,n[2]),c.current.rotation.set(Math.sin(l*.5+e)*.01,Math.sin(l*.3+e*.7)*.01,0),c.current.scale.setScalar(1);return}if(i==="exiting"){let M=Math.max(0,y-u*.5),f=Math.min(M*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(Ue.Text3D,{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"})))}var J=require("react"),Ye=require("@react-three/fiber"),Le=require("@react-three/drei"),Ve=F(require("three")),We={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},je={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Bt({color:t,speedMultiplier:e=.5,count:r=60}){let n=(0,J.useRef)(null),i=(0,J.useRef)(new Ve.Object3D),d=(0,J.useRef)(null),m=(0,J.useRef)(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(0,Ye.useFrame)(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],s=m.current[a*3],l=m.current[a*3+1],y=m.current[a*3+2];i.current.position.set(s+Math.sin(g*o+a)*2,l+Math.cos(g*o*.7+a*.5)*1.5,y+Math.sin(g*o*.5+a*.3)*2),i.current.scale.setScalar(.015+Math.sin(g+a)*.005),i.current.updateMatrix(),n.current.setMatrixAt(a,i.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 X({theme:t,effectColor:e,effectSpeed:r=.5,visible:n}){let i=(0,J.useMemo)(()=>{if(!e)return We[t]||We.gold;let d=e.toLowerCase().trim();return je[d]?je[d]:e},[e,t]);return n?React.createElement("group",null,React.createElement(Le.Sparkles,{count:150,scale:10,size:4,speed:.3*r,opacity:.8,color:i,noise:.6}),React.createElement(Le.Sparkles,{count:80,scale:16,size:2,speed:.15*r,opacity:.4,color:"#ffffff",noise:.8}),React.createElement(Bt,{color:i,speedMultiplier:r,count:50})):null}var Pe=require("react"),he=require("@react-three/fiber"),Q=F(require("three"));function U({phase:t,effectSpeed:e=.5}){let{camera:r,pointer:n}=(0,he.useThree)(),i=(0,Pe.useRef)(null),d=(0,Pe.useRef)(t);return d.current!==t&&(d.current=t,i.current=null),(0,he.useFrame)(m=>{let c=m.clock.getElapsedTime()*e;i.current===null&&(i.current=c);let g=c-i.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),s=Q.MathUtils.lerp(14,6,o),l=Q.MathUtils.lerp(1,.2,o);r.position.set(0,l,s),r.lookAt(0,0,0);return}if(t==="idle"){let a=Math.sin(c*.1)*.2,o=Math.cos(c*.08)*.1+.2,s=n.x*.2,l=n.y*.1;r.position.x=Q.MathUtils.damp(r.position.x,a+s,3,.016),r.position.y=Q.MathUtils.damp(r.position.y,o+l,3,.016),r.position.z=Q.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,s=Q.MathUtils.lerp(6,-8,o);r.position.set(0,0,s),r.lookAt(0,0,0)}}),null}var I=require("react"),ge=require("@react-three/fiber"),z=F(require("three"));var $e={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"]},Ft={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function W({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:i,raycaster:d}=(0,ge.useThree)(),[m,c]=(0,I.useState)([]),g=(0,I.useRef)(0),a=(0,I.useMemo)(()=>{if(!e)return $e[t]||$e.gold;let s=e.toLowerCase().trim(),l=Ft[s]||e;return[l,"#ffffff",l]},[e,t]),o=(0,I.useCallback)(s=>{if(!n)return;let l=0,y=0;if("touches"in s&&s.touches.length>0)l=s.touches[0].clientX,y=s.touches[0].clientY;else if("clientX"in s)l=s.clientX,y=s.clientY;else return;let u=new z.Vector2(l/window.innerWidth*2-1,-(y/window.innerHeight)*2+1);d.setFromCamera(u,i);let M=new z.Plane(new z.Vector3(0,0,1),0),f=new z.Vector3;if(d.ray.intersectPlane(M,f),!f)return;let T=35,p=[];for(let x=0;x<T;x++){let v=Math.random()*Math.PI*2,w=(1.5+Math.random()*4.5)*r,h=(Math.random()-.3)*3*r,k=new z.Vector3(Math.cos(v)*w,Math.sin(v)*w+h,(Math.random()-.5)*w*.8),C=a[Math.floor(Math.random()*a.length)];p.push({id:x,position:f.clone(),velocity:k,color:new z.Color(C),size:.08+Math.random()*.12,life:1,maxLife:(.6+Math.random()*.8)/Math.max(.2,r)})}let E={id:g.current++,origin:f.clone(),sparks:p,color:a[0],lightIntensity:4,time:0};c(x=>[...x.slice(-4),E])},[i,d,a,r,n]);return(0,I.useEffect)(()=>(window.addEventListener("pointerdown",o),()=>{window.removeEventListener("pointerdown",o)}),[o]),(0,ge.useFrame)((s,l)=>{m.length!==0&&c(y=>y.map(u=>{let M=u.time+l*r,f=Math.max(0,u.lightIntensity-l*8*r),T=u.sparks.map(p=>{let E=p.life-l*r/p.maxLife;if(E<=0)return null;let x=p.position.clone().addScaledVector(p.velocity,l*r);return p.velocity.y-=l*3.5*r,p.velocity.multiplyScalar(.96),K(S({},p),{position:x,life:E})}).filter(Boolean);return T.length===0&&f<=0?null:K(S({},u),{time:M,lightIntensity:f,sparks:T})}).filter(Boolean))}),React.createElement("group",null,m.map(s=>React.createElement("group",{key:s.id},s.lightIntensity>.05&&React.createElement("pointLight",{position:s.origin,intensity:s.lightIntensity*3,distance:6,color:s.color}),s.sparks.map(l=>React.createElement("mesh",{key:l.id,position:l.position},React.createElement("sphereGeometry",{args:[l.size*l.life,6,6]}),React.createElement("meshBasicMaterial",{color:l.color,transparent:!0,opacity:l.life,toneMapped:!1}))))))}var _=require("react"),be=require("@react-three/fiber"),A=F(require("three"));var Ge={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},qe={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function j({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:i,raycaster:d}=(0,be.useThree)(),[m,c]=(0,_.useState)([]),g=(0,_.useRef)(0),a=(0,_.useMemo)(()=>{if(!e)return Ge[t]||Ge.gold;let s=e.toLowerCase().trim();return qe[s]?qe[s]:e},[e,t]),o=(0,_.useCallback)(s=>{if(!n)return;let l=0,y=0;if("touches"in s&&s.touches.length>0)l=s.touches[0].clientX,y=s.touches[0].clientY;else if("clientX"in s)l=s.clientX,y=s.clientY;else return;let u=new A.Vector2(l/window.innerWidth*2-1,-(y/window.innerHeight)*2+1);d.setFromCamera(u,i);let M=new A.Plane(new A.Vector3(0,0,1),0),f=new A.Vector3;if(d.ray.intersectPlane(M,f),!f)return;let T={id:g.current++,origin:f.clone(),radius:.1,maxRadius:3.5,life:1,color:new A.Color(a)};c(p=>[...p.slice(-4),T])},[i,d,a,n]);return(0,_.useEffect)(()=>(window.addEventListener("pointerdown",o),()=>{window.removeEventListener("pointerdown",o)}),[o]),(0,be.useFrame)((s,l)=>{m.length!==0&&c(y=>y.map(u=>{let M=u.life-l*1.8*r;if(M<=0)return null;let f=u.radius+l*5*r;return K(S({},u),{life:M,radius:f})}).filter(Boolean))}),n?React.createElement("group",null,m.map(s=>React.createElement("mesh",{key:s.id,position:s.origin,rotation:[0,0,0]},React.createElement("ringGeometry",{args:[s.radius*.9,s.radius,48]}),React.createElement("meshBasicMaterial",{color:s.color,transparent:!0,opacity:s.life*.75,side:A.DoubleSide,toneMapped:!1})))):null}var se=require("react"),xe=require("@react-three/fiber"),ve=F(require("three")),Ze={gold:"#ffaa00",neon:"#00ffff",emerald:"#00ffaa",crimson:"#ff0055",obsidian:"#9900ff",glass:"#88ccff"},Ke={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Y({theme:t="neon",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{pointer:i}=(0,xe.useThree)(),d=(0,se.useRef)(null),m=(0,se.useMemo)(()=>{if(!e)return Ze[t]||Ze.neon;let a=e.toLowerCase().trim();return Ke[a]?Ke[a]:e},[e,t]),c=30,g=(0,se.useMemo)(()=>{let a=new ve.BufferGeometry,o=new Float32Array(c*2*3);return a.setAttribute("position",new ve.BufferAttribute(o,3)),a},[c]);return(0,xe.useFrame)(a=>{if(!d.current||!n)return;let o=a.clock.getElapsedTime()*r,s=d.current.geometry.attributes.position,l=s.array,y=i.x*6,u=i.y*3;for(let M=0;M<c;M++){let f=M*6,T=M/c*Math.PI*2+o*1.5,p=2.5+Math.sin(o*3+M)*.5,E=Math.cos(T)*p,x=Math.sin(T)*p,v=(Math.random()-.5)*1.5,w=E+(y-E)*.3+(Math.random()-.5)*.8,h=x+(u-x)*.3+(Math.random()-.5)*.8,k=v+(Math.random()-.5)*.8;l[f]=E,l[f+1]=x,l[f+2]=v,l[f+3]=w,l[f+4]=h,l[f+5]=k}s.needsUpdate=!0}),n?React.createElement("lineSegments",{ref:d,geometry:g},React.createElement("lineBasicMaterial",{color:m,transparent:!0,opacity:.75,linewidth:2,toneMapped:!1})):null}var R=require("react"),ye=require("@react-three/fiber"),V=F(require("three")),Je={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"}},Qe={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function At(){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 V.CanvasTexture(t);return r.needsUpdate=!0,r}function le({theme:t="crimson",effectColor:e,effectSpeed:r=.5,effectDensity:n=.3,mode:i="fluid",enabled:d=!0}){let{pointer:m}=(0,ye.useThree)(),c=(0,R.useRef)(null),g=(0,R.useRef)(null),a=(0,R.useRef)(null),o=(0,R.useRef)(new V.Object3D),s=(0,R.useRef)(!1),l=(0,R.useRef)([]),y=Math.max(.1,Math.min(1,n)),u=Math.round(110*y),M=(0,R.useMemo)(()=>At(),[]),f=(0,R.useMemo)(()=>{if(!e)return(Je[t]||Je.crimson).color1;let x=e.toLowerCase().trim();return Qe[x]?Qe[x]:e},[e,t]),T=(0,R.useMemo)(()=>{let x=[],v=.4+Math.sqrt(y)*.55;for(let w=0;w<u;w++)x.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)*v,phase:Math.random()*Math.PI*2,life:Math.random()});return x},[u,y]),p=(0,R.useCallback)(()=>{s.current=!0},[]),E=(0,R.useCallback)(()=>{s.current=!1},[]);return(0,R.useEffect)(()=>(window.addEventListener("pointerdown",p),window.addEventListener("pointerup",E),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("pointerup",E)}),[p,E]),(0,ye.useFrame)((x,v)=>{if(!d)return;let w=x.clock.getElapsedTime()*r;if(s.current){let h=m.x*7,k=m.y*4;l.current.length<25&&l.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(y)})}l.current=l.current.map(h=>(h.life-=v*1.8*r,h.y+=v*1.2*r,h)).filter(h=>h.life>0),a.current&&(a.current.intensity=2.2+Math.sin(w*10)*.6+Math.cos(w*15)*.3,a.current.position.y=-1+Math.sin(w*3)*.2),(i==="fluid"||i==="all")&&c.current&&(T.forEach((h,k)=>{h.life+=v*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,B=h.y+C*3.8,oe=h.x+Math.sin(w*2.5+h.phase)*.5+h.speedX*C,N=h.z+Math.cos(w*1.8+h.phase)*.2,O=Math.sin(C*Math.PI)*h.size*(1.2-C*.3);o.current.position.set(oe,B,N),o.current.rotation.set(0,0,Math.sin(w*1.5+k)*.2),o.current.scale.set(O,O*1.3,O),o.current.updateMatrix(),c.current.setMatrixAt(k,o.current.matrix)}),l.current.forEach((h,k)=>{let C=(u-1-k+u)%u,B=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(w*3+k)*.3),o.current.scale.set(B,B*1.4,B),o.current.updateMatrix(),c.current.setMatrixAt(C,o.current.matrix)}),c.current.instanceMatrix.needsUpdate=!0),(i==="crystal"||i==="all")&&g.current&&(T.forEach((h,k)=>{let C=h.life,B=h.y+C*3.8,oe=h.x+Math.sin(w*2.8+h.phase)*.5+h.speedX*C,N=h.z+Math.cos(w*2+h.phase)*.3,O=Math.sin(C*Math.PI)*h.size*.6;o.current.position.set(oe,B,N),o.current.rotation.set(w*1.5+k,w*2,k),o.current.scale.set(O,O*2,O),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}),(i==="fluid"||i==="all")&&React.createElement("instancedMesh",{ref:c,args:[void 0,void 0,u]},React.createElement("planeGeometry",{args:[1.2,1.2]}),React.createElement("meshBasicMaterial",{map:M,color:f,transparent:!0,blending:V.AdditiveBlending,depthWrite:!1,side:V.DoubleSide})),(i==="crystal"||i==="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:V.AdditiveBlending,depthWrite:!1}))):null}var P=require("react"),Me=require("@react-three/fiber"),$=F(require("three")),et={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function zt(){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 $.CanvasTexture(t);return r.needsUpdate=!0,r}function ce({theme:t="emerald",effectColor:e="#00e676",effectSpeed:r=.5,effectDensity:n=.5,enabled:i=!0}){let{pointer:d}=(0,Me.useThree)(),m=(0,P.useRef)(null),c=(0,P.useRef)(null),g=(0,P.useRef)(new $.Object3D),a=(0,P.useRef)(!1),o=(0,P.useRef)([]),s=Math.max(.1,Math.min(1,n)),l=Math.round(60*s),y=(0,P.useMemo)(()=>zt(),[]),u=(0,P.useMemo)(()=>{if(!e)return"#00e676";let p=e.toLowerCase().trim();return et[p]?et[p]:e},[e]),M=(0,P.useMemo)(()=>{let p=[],E=1+Math.sqrt(s)*.8;for(let x=0;x<l;x++)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)*E,phase:Math.random()*Math.PI*2,life:Math.random()});return p},[l,s]),f=(0,P.useCallback)(()=>{a.current=!0},[]),T=(0,P.useCallback)(()=>{a.current=!1},[]);return(0,P.useEffect)(()=>(window.addEventListener("pointerdown",f),window.addEventListener("pointerup",T),()=>{window.removeEventListener("pointerdown",f),window.removeEventListener("pointerup",T)}),[f,T]),(0,Me.useFrame)((p,E)=>{if(!m.current||!i)return;let x=p.clock.getElapsedTime()*r;if(a.current){let v=d.x*7,w=d.y*4;o.current.length<15&&o.current.push({x:v+(Math.random()-.5)*.5,y:w+(Math.random()-.5)*.5,z:(Math.random()-.5)*1,life:1,size:(1.2+Math.random()*.8)*Math.sqrt(s)})}o.current=o.current.map(v=>(v.life-=E*1.2*r,v)).filter(v=>v.life>0),c.current&&(c.current.intensity=2.5+Math.sin(x*6)*.5),M.forEach((v,w)=>{let h=v.x+Math.sin(x*1.2+v.phase)*1.5,k=v.y+Math.cos(x*.9+v.phase*1.3)*1.2,C=v.z+Math.sin(x*.7+v.phase*.8)*.8,B=v.size*(1+Math.sin(x*2+w)*.25);g.current.position.set(h,k,C),g.current.scale.set(B,B,B),g.current.updateMatrix(),m.current.setMatrixAt(w,g.current.matrix)}),o.current.forEach((v,w)=>{let h=(l-1-w+l)%l,k=Math.sin(v.life*Math.PI)*v.size;g.current.position.set(v.x,v.y,v.z),g.current.scale.set(k,k,k),g.current.updateMatrix(),m.current.setMatrixAt(h,g.current.matrix)}),m.current.instanceMatrix.needsUpdate=!0}),i?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,l]},React.createElement("planeGeometry",{args:[1.8,1.8]}),React.createElement("meshBasicMaterial",{map:y,color:u,transparent:!0,opacity:.85,blending:$.NormalBlending,depthWrite:!1,side:$.DoubleSide}))):null}var ut=require("next-intl");var tt=require("next-intl/routing"),rt=require("next-intl/navigation"),It=(0,tt.defineRouting)({locales:["en","es"],defaultLocale:"en"}),{Link:ne,redirect:or,usePathname:nt,useRouter:ot}=(0,rt.createNavigation)(It);var at=require("next-intl");var it=require("lucide-react");function Ne(){let t=(0,at.useLocale)(),e=ot(),r=nt();return React.createElement("button",{onClick:()=>{let i=t==="en"?"es":"en";e.replace(r,{locale:i})},className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-white transition-colors uppercase tracking-wider"},React.createElement(it.Globe,{className:"w-4 h-4"}),t==="en"?"ES":"EN")}var Ee=F(require("react")),mt=require("@radix-ui/react-slot"),dt=require("class-variance-authority");var st=require("clsx"),lt=require("tailwind-merge");function ct(...t){return(0,lt.twMerge)((0,st.clsx)(t))}var _t=(0,dt.cva)("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"}}),me=Ee.forwardRef((m,d)=>{var c=m,{className:t,variant:e,size:r,asChild:n=!1}=c,i=Oe(c,["className","variant","size","asChild"]);return Ee.createElement(n?mt.Slot:"button",S({className:ct(_t({variant:e,size:r,className:t})),ref:d},i))});me.displayName="Button";function de({cinemaName:t="NOVA",webTheme:e="neon"}){let r=(0,ut.useTranslations)(),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(ne,{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(ne,{href:"/schedule",className:"hover:text-white transition-colors"},r("nav.schedule")),React.createElement(ne,{href:"/experiences",className:"hover:text-white transition-colors"},r("nav.experiences")),React.createElement(ne,{href:"/membership",className:"hover:text-white transition-colors"},r("nav.membership")))),React.createElement("div",{className:"flex items-center gap-6"},React.createElement(Ne,null),React.createElement("div",{className:"hidden sm:flex items-center gap-4"},React.createElement(ne,{href:"/login",className:"text-sm font-semibold tracking-widest text-white/70 hover:text-white transition-colors"},r("nav.login")),React.createElement(me,{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(me,{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(me,{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 ft={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"},pt={rojo:"#3b0712",azul:"#021a38",verde:"#032117",esmeralda:"#032117",dorado:"#1c1503",negro:"#07080c",purpura:"#21032a"},ht={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 Ot(t,e=.85){let n=-(t.length*e)/2+e/2;return t.split("").map((i,d)=>[n+d*e,0,0])}function Dt(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"),i=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||i||d;return{enableFluidFlames:n,enableCrystalFlames:i,enableBlobs:d,enableSparks:m,enableShockwave:c,enablePlasma:g,enableEmbers:a}}function Te({containerToDisplay:t,containerSelector:e,effect:r="flames",title:n,backgroundColor:i,effectColor:d,effectSpeed:m=.5,effectDensity:c=.3,autoFitText:g=!0,loaderDuration:a,redirectUrl:o,onComplete:s,fontFamily:l="cinema",fontUrl:y,theme:u="crimson",letterSpacing:M=.85,className:f="",style:T,children:p}){let E=n!=null?n.trim().toUpperCase():"",x=E?E.split(""):[],v=(0,b.useMemo)(()=>Ot(E,M),[E,M]),w=!!(a&&a>0&&(o||s)),[h,k]=(0,b.useState)(0);(0,b.useEffect)(()=>{if(!w||!a)return;let L=a*1e3,te=50,Se=0,ze=setInterval(()=>{Se+=te;let wt=Math.min(100,Se/L*100);k(wt),Se>=L&&(clearInterval(ze),s==null||s(),o&&(window.location.href=o))},te);return()=>clearInterval(ze)},[w,a,o,s]);let C=(0,b.useMemo)(()=>{if(y)return y;let L=String(l).toLowerCase().trim();return ft[L]||ft.cinema},[l,y]),B=(0,b.useMemo)(()=>{if(!g||!x.length)return 1;let L=x.length;return L<=4?1:L<=7?.85:L<=10?.7:L<=14?.55:.45},[g,x.length]),oe=(0,b.useMemo)(()=>{if(!i)return ht[u]||ht.gold;let L=i.toLowerCase().trim();return pt[L]?pt[L]:(i.startsWith("#")||i.startsWith("rgb")||i.includes("gradient"),i)},[i,u]),N=(0,b.useMemo)(()=>Dt(r),[r]),O=N.enableFluidFlames&&N.enableCrystalFlames?"all":N.enableCrystalFlames?"crystal":"fluid",Et=N.enableFluidFlames||N.enableCrystalFlames,Fe=e||(typeof t=="string"?t:void 0),Ae=()=>Fe==="lhome"||Fe==="home"||t==="lhome"||t==="home"?b.default.createElement(de,{cinemaName:E||"NOVA",webTheme:u}):typeof t=="string"&&t!=="lhome"&&t!=="home"?b.default.createElement("div",{className:"text-center text-white p-8 bg-black/40 backdrop-blur-md rounded-2xl border border-white/10"},b.default.createElement("h2",{className:"text-3xl font-bold tracking-widest uppercase mb-2"},t),b.default.createElement("p",{className:"text-sm text-white/60"},"3D Interactive WebGL Background")):t&&typeof t!="string"?t:p;return b.default.createElement("div",{id:e,"data-container-selector":e,className:`relative w-full h-full overflow-hidden select-none ${f}`,style:S({background:oe},T)},w&&b.default.createElement("div",{className:"absolute top-0 left-0 right-0 z-30 h-1 bg-white/10 pointer-events-none"},b.default.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}%`}})),b.default.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},b.default.createElement(gt.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},b.default.createElement(b.Suspense,{fallback:null},b.default.createElement(we.Environment,{preset:"studio"}),b.default.createElement("ambientLight",{intensity:.3}),b.default.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),b.default.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:u==="emerald"?"#10b981":u==="crimson"?"#ff1744":u==="neon"?"#00ffff":"#FFD700"}),b.default.createElement(U,{phase:w?"entering":"idle",effectSpeed:m}),b.default.createElement(le,{enabled:Et,theme:u,effectColor:d,effectSpeed:m,effectDensity:c,mode:O}),b.default.createElement(ce,{enabled:N.enableBlobs,theme:u,effectColor:d,effectSpeed:m,effectDensity:c}),b.default.createElement(W,{enabled:N.enableSparks,theme:u,effectColor:d,effectSpeed:m}),b.default.createElement(j,{enabled:N.enableShockwave,theme:u,effectColor:d,effectSpeed:m}),b.default.createElement(Y,{enabled:N.enablePlasma,theme:u,effectColor:d,effectSpeed:m}),x.length>0&&b.default.createElement(we.Center,{disableY:!0,disableZ:!0},b.default.createElement("group",{scale:B},x.map((L,te)=>b.default.createElement(D,{key:`${L}-${te}`,char:L,index:te,totalLetters:x.length,position:v[te],phase:w?"entering":"idle",theme:u,fontUrl:C})))),b.default.createElement(X,{theme:u,effectColor:d,effectSpeed:m,visible:N.enableEmbers}),b.default.createElement(G.EffectComposer,null,b.default.createElement(G.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:u==="neon"||u==="crimson"?1.4:.9,mipmapBlur:!0}),b.default.createElement(G.Vignette,{offset:.3,darkness:.85}),b.default.createElement(G.Noise,{opacity:.025}))))),Ae()&&b.default.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},b.default.createElement("div",{className:"pointer-events-auto w-full h-full"},Ae())))}var He=F(require("react"));var ee=require("react"),xt=require("@react-three/fiber"),ke=require("@react-three/drei"),q=require("@react-three/postprocessing");var bt={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%)"},Xt="/fonts/cinema_display.typeface.json";function Ut(t){let n=-(t.length*.65)/2;return t.split("").map((i,d)=>[n+d*.65,0,0])}function ue({text:t="CINEMA",theme:e="emerald",customBackground:r,interactiveSparks:n=!0,interactiveShockwave:i=!0,interactivePlasma:d=!0,showParticles:m=!0,enableBloom:c=!0,className:g="",style:a,children:o}){let[s,l]=(0,ee.useState)(t),[y,u]=(0,ee.useState)(e),M=(s||t||"CINEMA").toUpperCase(),f=M.split(""),T=(0,ee.useMemo)(()=>Ut(M),[M]),p=y||e||"emerald",E=r||bt[p]||bt.emerald;return React.createElement("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none ${g}`,style:S({background:E},a)},React.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},React.createElement(xt.Canvas,{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.Suspense,{fallback:null},React.createElement(ke.Environment,{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(U,{phase:"idle"}),React.createElement(W,{enabled:n,theme:p}),React.createElement(j,{enabled:i,theme:p}),React.createElement(Y,{enabled:d,theme:p}),React.createElement(ke.Center,{disableY:!0,disableZ:!0},React.createElement("group",null,f.map((x,v)=>React.createElement(D,{key:`${x}-${v}`,char:x,index:v,totalLetters:f.length,position:T[v],phase:"idle",theme:p,fontUrl:Xt})))),m&&React.createElement(X,{theme:p,visible:!0}),React.createElement(q.EffectComposer,null,React.createElement(q.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:c?.9:0,mipmapBlur:!0}),React.createElement(q.Vignette,{offset:.3,darkness:.85}),React.createElement(q.Noise,{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 vt(t,e={}){let r=n=>He.default.createElement(ue,S({},e),He.default.createElement(t,S({},n)));return r.displayName=`WithCinema3D(${t.displayName||t.name||"Component"})`,r}var H=require("react"),Mt=require("@react-three/fiber"),Ce=require("@react-three/drei"),Z=require("@react-three/postprocessing");var Wt=[{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 fe({phase:t,cinemaName:e,theme:r,effects:n,onTitleChange:i,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=>i(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"},Wt.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 jt="/fonts/cinema_display.typeface.json",yt={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 Yt(t){let n=-(t.length*.65)/2;return t.split("").map((i,d)=>[n+d*.65,0,0])}function Be({cinemaName:t="CINEMULTIPLEX",defaultTheme:e="emerald",customBackground:r,onEnterCinema:n}){let[i,d]=(0,H.useState)("loading"),[m,c]=(0,H.useState)(e),[g,a]=(0,H.useState)(t),[o,s]=(0,H.useState)({sparks:!0,shockwave:!0,plasma:!0,embers:!0}),l=(g||"CINEMA").toUpperCase(),y=l.split(""),u=(0,H.useMemo)(()=>Yt(l),[l]);(0,H.useEffect)(()=>{let p=setTimeout(()=>d("entering"),800),E=y.length*120+1500,x=setTimeout(()=>d("idle"),800+E);return()=>{clearTimeout(p),clearTimeout(x)}},[y.length]);let M=(0,H.useCallback)(()=>{d("exiting"),setTimeout(()=>{n&&n()},1800)},[n]),f=(0,H.useCallback)(p=>{s(E=>K(S({},E),{[p]:!E[p]}))},[]),T=r||yt[m]||yt.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(Mt.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(H.Suspense,{fallback:null},React.createElement(Ce.Environment,{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(U,{phase:i}),o.sparks&&React.createElement(W,{theme:m}),React.createElement(j,{theme:m,enabled:o.shockwave}),React.createElement(Y,{theme:m,enabled:o.plasma}),React.createElement(Ce.Center,{disableY:!0,disableZ:!0},React.createElement("group",null,y.map((p,E)=>React.createElement(D,{key:`${p}-${E}`,char:p,index:E,totalLetters:y.length,position:u[E],phase:i,theme:m,fontUrl:jt})))),React.createElement(X,{theme:m,visible:i!=="loading"&&o.embers}),React.createElement(Z.EffectComposer,null,React.createElement(Z.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:m==="neon"||m==="emerald"||m==="crimson"?1.4:.7,mipmapBlur:!0}),React.createElement(Z.Vignette,{offset:.3,darkness:.85}),React.createElement(Z.Noise,{opacity:.025})))),React.createElement(fe,{phase:i,cinemaName:g,theme:m,effects:o,onTitleChange:a,onThemeChange:c,onToggleEffect:f}))}0&&(module.exports={AnimatedBackground,AnimatedLetter,CameraRig,CinemaBackground,CinemaHome,CinemaLoader,ClickFireSparks,ClickShockwave,ElectricPlasma,FireFlames,LoaderOverlay,PlasmaBlobs,SceneParticles,withCinema3D});
|
|
3
3
|
//# sourceMappingURL=index.js.map
|