@moltenagentic/human-elements 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -665,7 +665,7 @@ var ExpandedMenu = forwardRef(
665
665
  ref,
666
666
  className: "fixed top-0 left-0 right-0 backdrop-blur-xl",
667
667
  style: { transform: "translateY(-100%)", visibility: "hidden", zIndex: 40, background: "rgba(0, 0, 0, 0.95)" },
668
- children: /* @__PURE__ */ jsxs4("div", { className: "menu-content p-8 pt-20 max-w-2xl mx-auto", children: [
668
+ children: /* @__PURE__ */ jsxs4("div", { className: "menu-content p-8 pt-20 mx-auto", style: { maxWidth: colCount >= 3 ? "48rem" : "42rem" }, children: [
669
669
  /* @__PURE__ */ jsx11(
670
670
  "div",
671
671
  {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TechGrid.tsx","../src/components/GridMesh.tsx","../src/components/LavaScene.tsx","../src/components/EmberField.tsx","../src/components/Vignette.tsx","../src/components/SphereGlow.tsx","../src/components/MoltenButton.tsx","../src/components/GlassCard.tsx","../src/components/MoltenText.tsx","../src/components/Page.tsx","../src/components/ProductNav.tsx","../src/theme/MoltenThemeProvider.tsx","../src/components/HalfHero.tsx","../src/components/ProductShell.tsx","../src/components/ThemeToggle.tsx","../src/components/LangButton.tsx","../src/components/HeroCard.tsx","../src/hooks/usePulseLabels.ts"],"sourcesContent":["'use client';\n\nconst GRID = 160;\nconst HALF = GRID / 2;\nconst ARM = 10;\n\nexport type TechGridTone = 'molten' | 'dark';\n\nconst TONES = {\n molten: {\n line: 'rgba(200,70,35,0.14)',\n cross: 'rgba(200,70,35,0.45)',\n dot: 'rgba(200,70,35,0.25)',\n },\n dark: {\n line: 'rgba(0,0,0,0.18)',\n cross: 'rgba(0,0,0,0.4)',\n dot: 'rgba(0,0,0,0.22)',\n },\n} as const;\n\nexport interface TechGridProps {\n className?: string;\n zIndex?: number;\n tone?: TechGridTone;\n /** Unique id suffix — required when rendering multiple grids on the same page */\n id?: string;\n style?: React.CSSProperties;\n}\n\nexport function TechGrid({\n className = '',\n zIndex = 3,\n tone = 'molten',\n id = '',\n style,\n}: TechGridProps) {\n const { line, cross, dot } = TONES[tone];\n const gridId = `tech-grid${id ? `-${id}` : ''}`;\n const crossId = `crosshairs${id ? `-${id}` : ''}`;\n\n return (\n <svg\n className={`pointer-events-none ${className}`}\n style={{ zIndex, ...style }}\n >\n <defs>\n <pattern\n id={gridId}\n width={GRID}\n height={GRID}\n patternUnits=\"userSpaceOnUse\"\n >\n <line x1=\"0\" y1=\"0\" x2={GRID} y2=\"0\" stroke={line} strokeWidth=\"0.5\" />\n <line x1=\"0\" y1=\"0\" x2=\"0\" y2={GRID} stroke={line} strokeWidth=\"0.5\" />\n <circle cx={HALF} cy={0} r=\"1.5\" fill={dot} />\n <circle cx={0} cy={HALF} r=\"1.5\" fill={dot} />\n <circle cx={HALF} cy={HALF} r=\"1.5\" fill={dot} />\n </pattern>\n\n <pattern\n id={crossId}\n width={GRID}\n height={GRID}\n patternUnits=\"userSpaceOnUse\"\n patternTransform={`translate(${-HALF},${-HALF})`}\n >\n <line\n x1={HALF - ARM} y1={HALF} x2={HALF + ARM} y2={HALF}\n stroke={cross} strokeWidth=\"1\"\n />\n <line\n x1={HALF} y1={HALF - ARM} x2={HALF} y2={HALF + ARM}\n stroke={cross} strokeWidth=\"1\"\n />\n </pattern>\n </defs>\n\n <rect width=\"100%\" height=\"100%\" fill={`url(#${gridId})`} />\n <rect width=\"100%\" height=\"100%\" fill={`url(#${crossId})`} />\n </svg>\n );\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport interface GridMeshProps {\n className?: string;\n opacity?: number;\n gridSize?: number;\n strokeColor?: string;\n}\n\nexport function GridMesh({\n className = '',\n opacity = 0.6,\n gridSize = 50,\n strokeColor = 'rgba(255, 255, 255, 0.03)',\n}: GridMeshProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n let animationFrameId: number;\n let time = 0;\n\n const resize = () => {\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n };\n\n resize();\n window.addEventListener('resize', resize);\n\n const draw = () => {\n if (!ctx || !canvas) return;\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n const cols = Math.ceil(canvas.width / gridSize) + 1;\n const rows = Math.ceil(canvas.height / gridSize) + 1;\n\n time += 0.005;\n\n ctx.strokeStyle = strokeColor;\n ctx.lineWidth = 1;\n\n for (let i = 0; i < rows; i++) {\n ctx.beginPath();\n for (let j = 0; j < cols; j++) {\n const x = j * gridSize;\n const y =\n i * gridSize +\n Math.sin(time + j * 0.1) * 10 +\n Math.cos(time * 0.5 + i * 0.1) * 8;\n\n if (j === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.stroke();\n }\n\n for (let j = 0; j < cols; j++) {\n ctx.beginPath();\n for (let i = 0; i < rows; i++) {\n const x =\n j * gridSize +\n Math.sin(time + i * 0.1) * 10 +\n Math.cos(time * 0.7 + j * 0.1) * 8;\n const y = i * gridSize;\n\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.stroke();\n }\n\n animationFrameId = requestAnimationFrame(draw);\n };\n\n draw();\n\n return () => {\n window.removeEventListener('resize', resize);\n cancelAnimationFrame(animationFrameId);\n };\n }, [gridSize, strokeColor]);\n\n return (\n <canvas\n ref={canvasRef}\n className={`absolute inset-0 w-full h-full pointer-events-none ${className}`}\n style={{ opacity }}\n />\n );\n}\n","'use client';\n\nimport { useRef, useMemo, useEffect } from 'react';\nimport { Canvas, useFrame } from '@react-three/fiber';\nimport * as THREE from 'three';\n\nconst noiseGLSL = /* glsl */ `\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}\nvec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}\nvec4 permute(vec4 x){return mod289(((x*34.0)+10.0)*x);}\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}\n\nfloat snoise(vec3 v){\n const vec2 C=vec2(1.0/6.0,1.0/3.0);\n const vec4 D=vec4(0.0,0.5,1.0,2.0);\n vec3 i=floor(v+dot(v,C.yyy));\n vec3 x0=v-i+dot(i,C.xxx);\n vec3 g=step(x0.yzx,x0.xyz);\n vec3 l=1.0-g;\n vec3 i1=min(g.xyz,l.zxy);\n vec3 i2=max(g.xyz,l.zxy);\n vec3 x1=x0-i1+C.xxx;\n vec3 x2=x0-i2+C.yyy;\n vec3 x3=x0-D.yyy;\n i=mod289(i);\n vec4 p=permute(permute(permute(\n i.z+vec4(0.0,i1.z,i2.z,1.0))\n +i.y+vec4(0.0,i1.y,i2.y,1.0))\n +i.x+vec4(0.0,i1.x,i2.x,1.0));\n float n_=0.142857142857;\n vec3 ns=n_*D.wyz-D.xzx;\n vec4 j=p-49.0*floor(p*ns.z*ns.z);\n vec4 x_=floor(j*ns.z);\n vec4 y_=floor(j-7.0*x_);\n vec4 x=x_*ns.x+ns.yyyy;\n vec4 y=y_*ns.x+ns.yyyy;\n vec4 h=1.0-abs(x)-abs(y);\n vec4 b0=vec4(x.xy,y.xy);\n vec4 b1=vec4(x.zw,y.zw);\n vec4 s0=floor(b0)*2.0+1.0;\n vec4 s1=floor(b1)*2.0+1.0;\n vec4 sh=-step(h,vec4(0.0));\n vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;\n vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;\n vec3 p0=vec3(a0.xy,h.x);\n vec3 p1=vec3(a0.zw,h.y);\n vec3 p2=vec3(a1.xy,h.z);\n vec3 p3=vec3(a1.zw,h.w);\n vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));\n p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;\n vec4 m=max(0.5-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);\n m=m*m;\n return 105.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));\n}\n`;\n\nconst vertexShader = /* glsl */ `\nuniform float uTime;\n${noiseGLSL}\nvarying float vDisplacement;\nvarying vec3 vNormal;\nvarying vec3 vWorldPosition;\n\nvoid main() {\n float n1 = snoise(position * 1.5 + uTime * 0.15) * 0.4;\n float n2 = snoise(position * 3.0 + uTime * 0.3) * 0.2;\n float n3 = snoise(position * 6.0 - uTime * 0.2) * 0.1;\n float displacement = n1 + n2 + n3;\n\n vec3 newPos = position + normal * displacement;\n vDisplacement = displacement;\n vNormal = normalize(normalMatrix * normal);\n vWorldPosition = (modelMatrix * vec4(newPos, 1.0)).xyz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPos, 1.0);\n}\n`;\n\nconst fragmentShader = /* glsl */ `\nuniform float uTime;\nvarying float vDisplacement;\nvarying vec3 vNormal;\nvarying vec3 vWorldPosition;\n\nvoid main() {\n float d = smoothstep(-0.5, 0.7, vDisplacement);\n\n vec3 c0 = vec3(0.337, 0.055, 0.141);\n vec3 c1 = vec3(0.671, 0.106, 0.114);\n vec3 c2 = vec3(0.855, 0.220, 0.086);\n vec3 c3 = vec3(0.969, 0.500, 0.055);\n vec3 c4 = vec3(0.984, 0.624, 0.051);\n vec3 c5 = vec3(1.0, 0.95, 0.85);\n\n vec3 color;\n if (d < 0.15) color = mix(c0, c1, d / 0.15);\n else if (d < 0.35) color = mix(c1, c2, (d - 0.15) / 0.2);\n else if (d < 0.55) color = mix(c2, c3, (d - 0.35) / 0.2);\n else if (d < 0.75) color = mix(c3, c4, (d - 0.55) / 0.2);\n else color = mix(c4, c5, (d - 0.75) / 0.25);\n\n vec3 viewDir = normalize(cameraPosition - vWorldPosition);\n float fresnel = pow(1.0 - max(dot(vNormal, viewDir), 0.0), 3.0);\n color += c4 * fresnel * 0.5;\n\n color *= 1.0 + 0.06 * sin(uTime * 0.7);\n\n gl_FragColor = vec4(color, 1.0);\n}\n`;\n\nfunction LavaSphere({ yOffset = 0.6 }: { yOffset?: number }) {\n const meshRef = useRef<THREE.Mesh>(null);\n const matRef = useRef<THREE.ShaderMaterial>(null);\n const mouse = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n const onMove = (e: MouseEvent) => {\n mouse.current.x = (e.clientX / window.innerWidth - 0.5) * 2;\n mouse.current.y = -(e.clientY / window.innerHeight - 0.5) * 2;\n };\n window.addEventListener('mousemove', onMove);\n return () => window.removeEventListener('mousemove', onMove);\n }, []);\n\n const uniforms = useMemo(() => ({ uTime: { value: 0 } }), []);\n\n useFrame(({ clock }) => {\n if (matRef.current) matRef.current.uniforms.uTime.value = clock.elapsedTime;\n if (meshRef.current) {\n const m = meshRef.current;\n m.rotation.x = THREE.MathUtils.lerp(m.rotation.x, mouse.current.y * 0.15, 0.02);\n m.rotation.y = THREE.MathUtils.lerp(\n m.rotation.y,\n mouse.current.x * 0.25 + clock.elapsedTime * 0.06,\n 0.02,\n );\n }\n });\n\n return (\n <mesh ref={meshRef} position={[0, yOffset, 0]}>\n <icosahedronGeometry args={[1.5, 64]} />\n <shaderMaterial\n ref={matRef}\n vertexShader={vertexShader}\n fragmentShader={fragmentShader}\n uniforms={uniforms}\n />\n </mesh>\n );\n}\n\nfunction EmberParticles() {\n const ref = useRef<THREE.Points>(null);\n const count = 180;\n\n const { positions, velocities } = useMemo(() => {\n const pos = new Float32Array(count * 3);\n const vel = new Float32Array(count * 3);\n for (let i = 0; i < count; i++) {\n const i3 = i * 3;\n pos[i3] = (Math.random() - 0.5) * 10;\n pos[i3 + 1] = Math.random() * 8 - 4;\n pos[i3 + 2] = (Math.random() - 0.5) * 6;\n vel[i3] = (Math.random() - 0.5) * 0.003;\n vel[i3 + 1] = Math.random() * 0.006 + 0.002;\n vel[i3 + 2] = (Math.random() - 0.5) * 0.002;\n }\n return { positions: pos, velocities: vel };\n }, []);\n\n const sizes = useMemo(() => {\n const s = new Float32Array(count);\n for (let i = 0; i < count; i++) s[i] = Math.random() * 0.04 + 0.01;\n return s;\n }, []);\n\n useFrame(() => {\n if (!ref.current) return;\n const arr = ref.current.geometry.attributes.position.array as Float32Array;\n for (let i = 0; i < count; i++) {\n const i3 = i * 3;\n arr[i3] += velocities[i3];\n arr[i3 + 1] += velocities[i3 + 1];\n arr[i3 + 2] += velocities[i3 + 2];\n if (arr[i3 + 1] > 5) {\n arr[i3] = (Math.random() - 0.5) * 10;\n arr[i3 + 1] = -5;\n arr[i3 + 2] = (Math.random() - 0.5) * 6;\n }\n }\n ref.current.geometry.attributes.position.needsUpdate = true;\n });\n\n return (\n <points ref={ref}>\n <bufferGeometry>\n <bufferAttribute attach=\"attributes-position\" args={[positions, 3]} />\n <bufferAttribute attach=\"attributes-size\" args={[sizes, 1]} />\n </bufferGeometry>\n <pointsMaterial size={0.035} color=\"#fb9f0d\" transparent opacity={0.5} sizeAttenuation />\n </points>\n );\n}\n\nexport interface LavaSceneProps {\n centered?: boolean;\n}\n\nexport function LavaScene({ centered = false }: LavaSceneProps) {\n const yOffset = centered ? 0 : 0.6;\n\n return (\n <Canvas\n camera={{ position: [0, 0, 5], fov: 45 }}\n gl={{ antialias: true, alpha: true }}\n style={{ background: 'transparent' }}\n >\n <ambientLight intensity={0.08} />\n <pointLight position={[5, 5, 5]} intensity={0.5} color=\"#fb9f0d\" />\n <pointLight position={[-5, -3, 3]} intensity={0.3} color=\"#ab1b1d\" />\n <LavaSphere yOffset={yOffset} />\n <EmberParticles />\n </Canvas>\n );\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport type EmberTone = 'molten' | 'dark';\n\nexport interface EmberFieldProps {\n tone?: EmberTone;\n count?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\ninterface Particle {\n x: number;\n y: number;\n vx: number;\n vy: number;\n size: number;\n opacity: number;\n drift: number;\n}\n\nconst COLORS = {\n molten: [\n [251, 159, 13],\n [247, 128, 14],\n [237, 99, 20],\n [218, 56, 22],\n ],\n dark: [\n [0, 0, 0],\n [20, 8, 2],\n [40, 16, 4],\n [10, 4, 1],\n ],\n} as const;\n\nfunction randomColor(tone: EmberTone): [number, number, number] {\n const palette = COLORS[tone];\n return [...palette[Math.floor(Math.random() * palette.length)]] as [number, number, number];\n}\n\nfunction createParticle(w: number, h: number, tone: EmberTone, fromBottom = false): Particle {\n return {\n x: Math.random() * w,\n y: fromBottom ? h + Math.random() * 40 : Math.random() * h,\n vx: (Math.random() - 0.5) * 0.3,\n vy: -(Math.random() * 0.6 + 0.2),\n size: Math.random() * 2.5 + 0.8,\n opacity: Math.random() * 0.5 + 0.2,\n drift: (Math.random() - 0.5) * 0.002,\n };\n}\n\nexport function EmberField({\n tone = 'molten',\n count = 60,\n className = '',\n style,\n}: EmberFieldProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n let animId: number;\n let particles: (Particle & { color: [number, number, number] })[] = [];\n\n const resize = () => {\n canvas.width = canvas.offsetWidth * window.devicePixelRatio;\n canvas.height = canvas.offsetHeight * window.devicePixelRatio;\n ctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n };\n\n const init = () => {\n resize();\n const w = canvas.offsetWidth;\n const h = canvas.offsetHeight;\n particles = Array.from({ length: count }, () => ({\n ...createParticle(w, h, tone),\n color: randomColor(tone),\n }));\n };\n\n init();\n window.addEventListener('resize', init);\n\n const draw = () => {\n const w = canvas.offsetWidth;\n const h = canvas.offsetHeight;\n ctx.clearRect(0, 0, w, h);\n\n for (const p of particles) {\n p.x += p.vx;\n p.y += p.vy;\n p.vx += p.drift;\n\n if (p.y < -10 || p.x < -10 || p.x > w + 10) {\n Object.assign(p, createParticle(w, h, tone, true));\n p.color = randomColor(tone);\n }\n\n const [r, g, b] = p.color;\n ctx.beginPath();\n ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\n ctx.fillStyle = `rgba(${r},${g},${b},${p.opacity})`;\n ctx.fill();\n }\n\n animId = requestAnimationFrame(draw);\n };\n\n draw();\n\n return () => {\n window.removeEventListener('resize', init);\n cancelAnimationFrame(animId);\n };\n }, [tone, count]);\n\n return (\n <canvas\n ref={canvasRef}\n className={`absolute inset-0 w-full h-full pointer-events-none ${className}`}\n style={style}\n />\n );\n}\n","'use client';\n\nexport interface VignetteProps {\n className?: string;\n zIndex?: number;\n}\n\nexport function Vignette({ className = '', zIndex = 2 }: VignetteProps) {\n return (\n <div\n className={`fixed inset-0 pointer-events-none vignette ${className}`}\n style={{ zIndex }}\n />\n );\n}\n","'use client';\n\nexport interface SphereGlowProps {\n className?: string;\n zIndex?: number;\n}\n\nexport function SphereGlow({ className = '', zIndex = 1 }: SphereGlowProps) {\n return (\n <div\n className={`fixed inset-0 pointer-events-none ${className}`}\n style={{ zIndex }}\n >\n <div className=\"sphere-glow\" />\n </div>\n );\n}\n","'use client';\n\nimport type { ReactNode, ButtonHTMLAttributes } from 'react';\n\nexport interface MoltenButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n children: ReactNode;\n href?: string;\n variant?: 'molten' | 'outline' | 'ghost';\n size?: 'xs' | 'sm' | 'md' | 'lg';\n fullWidth?: boolean;\n}\n\nconst sizeClasses = {\n xs: 'px-2.5 py-1 text-[10px]',\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-8 py-4 text-sm',\n} as const;\n\nconst variantClasses = {\n molten: 'bg-black text-white hover:bg-zinc-900 rainbow-border-button',\n outline: 'bg-transparent border border-zinc-700 text-white hover:bg-zinc-800',\n ghost: 'bg-transparent text-white hover:bg-zinc-800/50',\n} as const;\n\nexport function MoltenButton({\n children,\n href,\n variant = 'molten',\n size = 'sm',\n fullWidth = false,\n disabled = false,\n className = '',\n ...props\n}: MoltenButtonProps) {\n const classes = [\n 'relative inline-flex items-center justify-center gap-1.5',\n 'rounded-lg font-medium transition-all cursor-pointer',\n sizeClasses[size],\n fullWidth ? 'w-full' : '',\n disabled\n ? 'bg-zinc-800 text-zinc-500 cursor-not-allowed'\n : variantClasses[variant],\n className,\n ].filter(Boolean).join(' ');\n\n if (href && !disabled) {\n return (\n <a href={href} className={classes}>\n {children}\n </a>\n );\n }\n\n return (\n <button disabled={disabled} className={classes} {...props}>\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ReactNode, HTMLAttributes } from 'react';\n\nexport interface GlassCardProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n variant?: 'default' | 'subtle' | 'minimal';\n glow?: boolean;\n wave?: boolean;\n cornerFrame?: boolean;\n}\n\nconst variantClasses = {\n default: 'glass-card',\n subtle: 'glass-card-subtle',\n minimal: 'glass-card-minimal',\n} as const;\n\nexport function GlassCard({\n children,\n variant = 'default',\n glow = false,\n wave = false,\n cornerFrame = false,\n className = '',\n ...props\n}: GlassCardProps) {\n const classes = [\n variantClasses[variant],\n 'rounded-2xl',\n glow ? 'molten-card-glow' : '',\n wave ? 'molten-wave-card' : '',\n cornerFrame ? 'corner-frame' : '',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ReactNode, HTMLAttributes } from 'react';\n\nexport interface MoltenTextProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n as?: 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'p';\n animated?: boolean;\n}\n\nexport function MoltenText({\n children,\n as: Tag = 'span',\n animated = false,\n className = '',\n ...props\n}: MoltenTextProps) {\n const classes = [\n animated ? 'rainbow-text-animated' : 'molten-text',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { GridMesh } from './GridMesh';\n\nexport interface PageProps {\n children: ReactNode;\n ptMobile?: number;\n ptDesktop?: number;\n pb?: number;\n px?: number;\n maxWidth?: string;\n centered?: boolean;\n showGrid?: boolean;\n nav?: ReactNode;\n overlay?: ReactNode;\n}\n\nexport function Page({\n children,\n ptMobile = 20,\n ptDesktop = 24,\n pb = 6,\n px = 6,\n maxWidth = 'max-w-6xl',\n centered = true,\n showGrid = true,\n nav,\n overlay,\n}: PageProps) {\n const [isDesktop, setIsDesktop] = useState(false);\n\n useEffect(() => {\n const handleResize = () => setIsDesktop(window.innerWidth >= 1024);\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toRem = (units: number) => `${(units * 4) / 16}rem`;\n const paddingTop = isDesktop ? toRem(ptDesktop) : toRem(ptMobile);\n\n return (\n <main className=\"relative min-h-screen bg-black overflow-hidden\">\n {showGrid && (\n <div className=\"fixed inset-0 z-0\">\n <GridMesh />\n </div>\n )}\n\n <div className=\"relative z-10\">\n {nav}\n\n <div\n style={{\n paddingTop,\n paddingBottom: toRem(pb),\n paddingLeft: toRem(px),\n paddingRight: toRem(px),\n }}\n className={`min-h-screen ${centered ? 'flex flex-col justify-center' : ''}`}\n >\n <div className={`${maxWidth} mx-auto w-full`}>\n {children}\n </div>\n </div>\n </div>\n\n {overlay}\n\n <div className=\"fixed inset-0 pointer-events-none bg-gradient-radial from-transparent via-transparent to-black/40\" />\n </main>\n );\n}\n","'use client';\n\nimport { useState, useRef, useEffect, useCallback, forwardRef, type ReactNode } from 'react';\nimport gsap from 'gsap';\n\nexport interface NavLink {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface NavLinkGroup {\n title: string;\n links: NavLink[];\n}\n\nexport interface NavAction {\n icon: ReactNode;\n onClick?: () => void;\n href?: string;\n label?: string;\n}\n\nexport interface ProductNavProps {\n logo?: ReactNode;\n logoHref?: string;\n menuGroups?: NavLinkGroup[];\n leftExtra?: ReactNode;\n leftPanel?: ReactNode | ((onClose: () => void) => ReactNode);\n leftPanelOpen?: boolean;\n onLeftPanelChange?: (open: boolean) => void;\n rightAction?: NavAction;\n rightExtra?: ReactNode;\n xUrl?: string;\n communityLabel?: string;\n menuFooter?: ReactNode;\n className?: string;\n}\n\nconst BTN_SIZE = 40;\nconst BTN_BG = 'rgba(24, 24, 27, 0.9)';\n\nfunction NavIconButton({\n children,\n onClick,\n className = '',\n}: {\n children: ReactNode;\n onClick?: (e: React.MouseEvent) => void;\n className?: string;\n}) {\n return (\n <button\n onClick={onClick}\n className={`relative flex items-center justify-center rounded-xl transition-all cursor-pointer rainbow-border-button text-white ${className}`}\n style={{\n width: BTN_SIZE,\n height: Math.round(BTN_SIZE * 1.1),\n background: BTN_BG,\n backdropFilter: 'blur(24px)',\n }}\n >\n {children}\n </button>\n );\n}\n\ninterface ExpandedMenuProps {\n menuGroups: NavLinkGroup[];\n xUrl: string;\n communityLabel: string;\n menuFooter?: ReactNode;\n onClose: () => void;\n}\n\nconst ExpandedMenu = forwardRef<HTMLDivElement, ExpandedMenuProps>(\n ({ menuGroups, xUrl, communityLabel, menuFooter, onClose }, ref) => {\n const colCount = menuGroups.length;\n\n return (\n <div\n ref={ref}\n className=\"fixed top-0 left-0 right-0 backdrop-blur-xl\"\n style={{ transform: 'translateY(-100%)', visibility: 'hidden', zIndex: 40, background: 'rgba(0, 0, 0, 0.95)' }}\n >\n <div className=\"menu-content p-8 pt-20 max-w-2xl mx-auto\">\n <div\n className=\"grid gap-8\"\n style={{ gridTemplateColumns: `repeat(${colCount}, 1fr)` }}\n >\n {menuGroups.map((group) => (\n <div key={group.title} className=\"space-y-1\">\n <span className=\"text-[10px] tracking-[0.2em] text-zinc-500 uppercase font-medium block mb-4\">\n {group.title}\n </span>\n {group.links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n target={link.external ? '_blank' : undefined}\n rel={link.external ? 'noopener noreferrer' : undefined}\n onClick={onClose}\n className=\"block text-2xl font-light text-white hover:text-zinc-300 transition-colors py-1\"\n >\n {link.label}\n </a>\n ))}\n </div>\n ))}\n\n </div>\n <div className=\"mt-6 pt-6 flex items-center justify-between\" style={{ borderTop: '1px solid rgba(255,255,255,0.06)' }}>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-[10px] tracking-[0.2em] text-zinc-500 uppercase font-medium\">\n {communityLabel}\n </span>\n <a\n href={xUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"w-8 h-8 rounded-full bg-zinc-800 flex items-center justify-center text-white hover:bg-zinc-700 transition-colors\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n </a>\n </div>\n {menuFooter && (\n <div>{menuFooter}</div>\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\nExpandedMenu.displayName = 'ExpandedMenu';\n\nexport function ProductNav({\n logo,\n logoHref = '/',\n menuGroups = [],\n leftExtra,\n leftPanel,\n leftPanelOpen = false,\n onLeftPanelChange,\n rightAction,\n rightExtra,\n xUrl = 'https://x.com/moltenagentic',\n communityLabel = 'Community',\n menuFooter,\n className = '',\n}: ProductNavProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [leftPanelVisible, setLeftPanelVisible] = useState(false);\n const isLeftOpen = leftPanelOpen;\n const setIsLeftOpen = useCallback((v: boolean | ((prev: boolean) => boolean)) => {\n const next = typeof v === 'function' ? v(leftPanelOpen) : v;\n onLeftPanelChange?.(next);\n }, [leftPanelOpen, onLeftPanelChange]);\n const navBarRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const leftPanelRef = useRef<HTMLDivElement>(null);\n const isAnimating = useRef(false);\n\n const hasMenu = menuGroups.length > 0;\n\n const slideOpen = useCallback((panelRef: React.RefObject<HTMLDivElement | null>) => {\n if (isAnimating.current || !navBarRef.current || !panelRef.current) return;\n isAnimating.current = true;\n\n const tl = gsap.timeline({\n onComplete: () => { isAnimating.current = false; },\n });\n\n gsap.set(panelRef.current, { visibility: 'visible' });\n\n tl.to(navBarRef.current.querySelectorAll('.nav-content'), {\n opacity: 0, duration: 0.15,\n });\n\n tl.to(panelRef.current, {\n y: 0, duration: 0.4, ease: 'power3.out',\n }, '-=0.1');\n\n tl.to(panelRef.current.querySelectorAll('.menu-content > div'), {\n opacity: 1, y: 0, duration: 0.3, stagger: 0.05,\n }, '-=0.2');\n }, []);\n\n const slideClose = useCallback((panelRef: React.RefObject<HTMLDivElement | null>, onDone?: () => void) => {\n if (isAnimating.current || !navBarRef.current || !panelRef.current) return;\n isAnimating.current = true;\n\n const panel = panelRef.current;\n const tl = gsap.timeline({\n onComplete: () => {\n isAnimating.current = false;\n gsap.set(panel, { visibility: 'hidden', y: '-100%' });\n onDone?.();\n },\n });\n\n tl.to(panel.querySelectorAll('.menu-content > div'), {\n opacity: 0, y: -10, duration: 0.2, stagger: 0.03,\n });\n\n tl.to(panel, {\n y: '-100%', duration: 0.35, ease: 'power3.in',\n }, '-=0.1');\n\n tl.to(navBarRef.current.querySelectorAll('.nav-content'), {\n opacity: 1, duration: 0.2,\n }, '-=0.15');\n }, []);\n\n useEffect(() => {\n if (isOpen) slideOpen(menuRef);\n else slideClose(menuRef);\n }, [isOpen, slideOpen, slideClose]);\n\n useEffect(() => {\n if (isLeftOpen) {\n setLeftPanelVisible(true);\n if (isOpen) setIsOpen(false);\n slideOpen(leftPanelRef);\n } else {\n slideClose(leftPanelRef, () => setLeftPanelVisible(false));\n }\n }, [isLeftOpen, slideOpen, slideClose]);\n\n const toggleMenu = useCallback(() => {\n if (isLeftOpen) setIsLeftOpen(false);\n setIsOpen(v => !v);\n }, [isLeftOpen]);\n\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n if (isOpen) setIsOpen(false);\n if (isLeftOpen) setIsLeftOpen(false);\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [isOpen, isLeftOpen]);\n\n const anyOpen = isOpen || isLeftOpen;\n\n return (\n <nav className={`relative z-50 w-full max-w-2xl mx-auto px-4 ${className}`}>\n <div className=\"relative\">\n <div style={{ position: 'absolute', left: '8px', top: '50%', transform: 'translateY(-50%)', display: 'flex', alignItems: 'center', gap: '20px', zIndex: leftPanelVisible ? 30 : 60 }}>\n {leftExtra}\n {hasMenu && (\n <NavIconButton onClick={toggleMenu}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '5px' }}>\n <span style={{\n display: 'block', width: '16px', height: '2px', background: 'currentColor',\n transition: 'all 0.2s', transformOrigin: 'center',\n transform: isOpen ? 'translateY(7px) rotate(45deg)' : 'none',\n }} />\n <span style={{\n display: 'block', width: '16px', height: '2px', background: 'currentColor',\n transition: 'all 0.2s',\n opacity: isOpen ? 0 : 1,\n }} />\n <span style={{\n display: 'block', width: '16px', height: '2px', background: 'currentColor',\n transition: 'all 0.2s', transformOrigin: 'center',\n transform: isOpen ? 'translateY(-7px) rotate(-45deg)' : 'none',\n }} />\n </div>\n </NavIconButton>\n )}\n </div>\n\n <div\n ref={navBarRef}\n className=\"relative px-2 flex items-center justify-between\"\n >\n <div className=\"nav-content\" style={{ width: '56px' }} />\n\n <div className=\"nav-content absolute left-1/2 -translate-x-1/2\">\n <a href={logoHref} className=\"block hover:opacity-80 transition-opacity\">\n {logo ?? (\n <span style={{ fontSize: '18px', fontWeight: 900, color: '#fff' }}>M</span>\n )}\n </a>\n </div>\n\n <div className=\"nav-content\" style={{ display: 'flex', alignItems: 'center', gap: '20px' }}>\n {rightAction && (\n rightAction.href ? (\n <a href={rightAction.href} title={rightAction.label}>\n <NavIconButton>\n {rightAction.icon}\n </NavIconButton>\n </a>\n ) : (\n <NavIconButton onClick={rightAction.onClick}>\n {rightAction.icon}\n </NavIconButton>\n )\n )}\n {rightExtra}\n </div>\n </div>\n\n {hasMenu && (\n <ExpandedMenu\n ref={menuRef}\n menuGroups={menuGroups}\n xUrl={xUrl}\n communityLabel={communityLabel}\n menuFooter={menuFooter}\n onClose={() => setIsOpen(false)}\n />\n )}\n\n {leftPanel && (\n <div\n ref={leftPanelRef}\n className=\"fixed top-0 left-0 right-0 backdrop-blur-xl\"\n style={{ transform: 'translateY(-100%)', visibility: 'hidden', zIndex: 40, background: 'rgba(0, 0, 0, 0.95)' }}\n >\n <div className=\"menu-content p-8 pt-20 max-w-2xl mx-auto\">\n {typeof leftPanel === 'function' ? leftPanel(() => setIsLeftOpen(false)) : leftPanel}\n </div>\n </div>\n )}\n </div>\n\n {anyOpen && (\n <div\n className=\"fixed inset-0\"\n style={{ background: 'rgba(0, 0, 0, 0.5)', zIndex: 30 }}\n onClick={() => { setIsOpen(false); setIsLeftOpen(false); }}\n />\n )}\n </nav>\n );\n}\n","'use client';\n\nimport { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from 'react';\n\nexport type MoltenTheme = 'day' | 'night';\n\ninterface MoltenThemeContextValue {\n theme: MoltenTheme;\n setTheme: (theme: MoltenTheme) => void;\n toggle: () => void;\n}\n\nconst MoltenThemeContext = createContext<MoltenThemeContextValue>({\n theme: 'day',\n setTheme: () => {},\n toggle: () => {},\n});\n\nconst STORAGE_KEY = 'molten-theme';\n\nexport function MoltenThemeProvider({ children, defaultTheme = 'day' }: { children: ReactNode; defaultTheme?: MoltenTheme }) {\n const [theme, setThemeState] = useState<MoltenTheme>(defaultTheme);\n\n useEffect(() => {\n const stored = localStorage.getItem(STORAGE_KEY) as MoltenTheme | null;\n if (stored === 'day' || stored === 'night') {\n setThemeState(stored);\n document.documentElement.dataset.theme = stored;\n } else {\n document.documentElement.dataset.theme = defaultTheme;\n }\n }, [defaultTheme]);\n\n const setTheme = useCallback((next: MoltenTheme) => {\n setThemeState(next);\n document.documentElement.dataset.theme = next;\n localStorage.setItem(STORAGE_KEY, next);\n }, []);\n\n const toggle = useCallback(() => {\n setTheme(theme === 'day' ? 'night' : 'day');\n }, [theme, setTheme]);\n\n return (\n <MoltenThemeContext.Provider value={{ theme, setTheme, toggle }}>\n {children}\n </MoltenThemeContext.Provider>\n );\n}\n\nexport function useMoltenTheme() {\n return useContext(MoltenThemeContext);\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\nimport { TechGrid } from './TechGrid';\nimport { EmberField } from './EmberField';\nimport { useMoltenTheme } from '../theme';\n\nexport interface HalfHeroProps {\n children: ReactNode;\n nav?: ReactNode;\n className?: string;\n height?: string;\n fieldVariant?: 'default' | 'intense' | 'subtle' | 'vignette';\n showEmbers?: boolean;\n emberCount?: number;\n showGrid?: boolean;\n}\n\nconst fieldClasses = {\n default: 'molten-field',\n intense: 'molten-field-intense',\n subtle: 'molten-field-subtle',\n vignette: 'molten-field-vignette',\n} as const;\n\nexport function HalfHero({\n children,\n nav,\n className = '',\n height = '50vh',\n fieldVariant = 'default',\n showEmbers = true,\n emberCount = 40,\n showGrid = true,\n}: HalfHeroProps) {\n const { theme } = useMoltenTheme();\n const isNight = theme === 'night';\n const gridTone = isNight ? 'molten' : 'dark';\n const emberTone = isNight ? 'molten' : 'dark';\n\n return (\n <div\n className={`relative overflow-hidden flex flex-col ${fieldClasses[fieldVariant]} ${className}`}\n style={{ minHeight: height, color: isNight ? '#fff' : '#000' }}\n >\n {showGrid && (\n <TechGrid tone={gridTone} id=\"hero\" className=\"absolute inset-0 w-full h-full\" style={{ zIndex: 3 }} />\n )}\n {showEmbers && (\n <EmberField tone={emberTone} count={emberCount} style={{ zIndex: 5 }} />\n )}\n\n {nav && <div className=\"relative pt-4 he-nav-spacing\" style={{ zIndex: 30 }}>{nav}</div>}\n\n <div className=\"relative flex-1 flex flex-col items-center px-4 he-content-spacing\" style={{ zIndex: 10 }}>\n <div style={{ flex: 1 }} />\n {children}\n <div style={{ flex: 1 }} />\n </div>\n </div>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\n\nexport interface ProductShellProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function ProductShell({\n children,\n className = '',\n}: ProductShellProps) {\n return (\n <main className={`relative min-h-screen bg-black text-white ${className}`}>\n {children}\n </main>\n );\n}\n","'use client';\n\nimport { useMoltenTheme } from '../theme';\n\nexport function ThemeToggle() {\n const { theme, toggle } = useMoltenTheme();\n const isNight = theme === 'night';\n const color = isNight ? '#71717a' : '#fff';\n\n return (\n <button\n onClick={toggle}\n className=\"relative flex items-center justify-center rounded-xl cursor-pointer rainbow-border-button text-white\"\n style={{\n width: 40,\n height: 44,\n background: 'rgba(24, 24, 27, 0.9)',\n backdropFilter: 'blur(24px)',\n }}\n >\n {isNight ? (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n </svg>\n ) : (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v3M12 19v3M4.22 4.22l2.12 2.12M17.66 17.66l2.12 2.12M2 12h3M19 12h3M4.22 19.78l2.12-2.12M17.66 6.34l2.12-2.12\" />\n </svg>\n )}\n </button>\n );\n}\n","'use client';\n\nimport { useMoltenTheme } from '../theme';\n\nexport interface LangButtonProps {\n locale: string;\n onClick?: () => void;\n isOpen?: boolean;\n}\n\nexport function LangButton({ locale, onClick, isOpen = false }: LangButtonProps) {\n const { theme } = useMoltenTheme();\n const color = theme === 'night' ? '#71717a' : '#fff';\n\n return (\n <button\n onClick={onClick}\n className=\"relative flex items-center justify-center rounded-xl cursor-pointer rainbow-border-button text-white\"\n style={{\n width: 40,\n height: 44,\n background: 'rgba(24, 24, 27, 0.9)',\n backdropFilter: 'blur(24px)',\n }}\n >\n {isOpen ? (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '5px' }}>\n <span style={{ display: 'block', width: '16px', height: '2px', background: color, transformOrigin: 'center', transform: 'translateY(7px) rotate(45deg)' }} />\n <span style={{ display: 'block', width: '16px', height: '2px', background: color, opacity: 0 }} />\n <span style={{ display: 'block', width: '16px', height: '2px', background: color, transformOrigin: 'center', transform: 'translateY(-7px) rotate(-45deg)' }} />\n </div>\n ) : (\n <span style={{ fontSize: '13px', fontWeight: 700, color, letterSpacing: '0.05em' }}>\n {locale === 'zh' ? 'CN' : locale.toUpperCase()}\n </span>\n )}\n </button>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\n\nexport interface HeroCardProps {\n label: string;\n title: string;\n code?: string;\n description?: string;\n accentColor?: string;\n actionText?: string;\n onClick?: () => void;\n children?: ReactNode;\n}\n\nexport function HeroCard({\n label,\n title,\n code,\n description,\n accentColor = '#00e5ff',\n actionText,\n onClick,\n children,\n}: HeroCardProps) {\n return (\n <div\n onClick={onClick}\n className={`group relative p-5 sm:p-6 rounded-2xl glass-card molten-wave-card corner-frame w-full max-w-lg ${onClick ? 'cursor-pointer' : ''}`}\n >\n <span className=\"portal-label font-mono text-[11px] tracking-widest\" style={{ color: accentColor }}>\n // {label}\n </span>\n <h2 className=\"text-xl sm:text-2xl font-bold mt-2 text-white molten-wave-text\">\n {title}\n </h2>\n {code && (\n <div\n className=\"mt-4 rounded-lg p-3\"\n style={{\n background: 'rgba(0, 0, 0, 0.4)',\n border: '1px solid rgba(255, 255, 255, 0.06)',\n }}\n >\n <code className=\"text-xs sm:text-sm font-mono break-all\" style={{ color: accentColor }}>\n {code}\n </code>\n </div>\n )}\n {description && (\n <p className=\"text-xs text-zinc-500 mt-3 font-light leading-relaxed\">\n {description}\n </p>\n )}\n {children}\n {actionText && (\n <div className=\"mt-4 flex items-center justify-between\">\n <span className=\"text-xs text-zinc-500 molten-wave-text transition-all duration-300\">\n {actionText}\n </span>\n <span className=\"text-zinc-600 group-hover:translate-x-1.5 transition-all duration-300 text-lg molten-wave-text\">\n &rarr;\n </span>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, type RefObject } from 'react';\nimport gsap from 'gsap';\n\nexport function usePulseLabels(ref: RefObject<HTMLElement | null>, selector = '.portal-label', delay = 2.2) {\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n\n const labels = el.querySelectorAll(selector);\n if (!labels.length) return;\n\n const pulse = gsap.timeline({ repeat: -1, delay });\n labels.forEach((label) => {\n pulse\n .to(label, { opacity: 0.15, duration: 0.8, ease: 'power1.inOut' })\n .to(label, { opacity: 1, duration: 0.8, ease: 'power1.inOut' });\n });\n\n return () => { pulse.kill(); };\n }, [ref, selector, delay]);\n}\n"],"mappings":"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","names":["jsx","useRef","useEffect","jsx","jsxs","useEffect","useRef","jsx","jsx","jsx","jsx","jsx","variantClasses","jsx","useEffect","jsx","jsxs","useEffect","useState","useRef","useEffect","jsx","jsxs","useState","useEffect","useCallback","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","useEffect","gsap"]}
1
+ {"version":3,"sources":["../src/components/TechGrid.tsx","../src/components/GridMesh.tsx","../src/components/LavaScene.tsx","../src/components/EmberField.tsx","../src/components/Vignette.tsx","../src/components/SphereGlow.tsx","../src/components/MoltenButton.tsx","../src/components/GlassCard.tsx","../src/components/MoltenText.tsx","../src/components/Page.tsx","../src/components/ProductNav.tsx","../src/theme/MoltenThemeProvider.tsx","../src/components/HalfHero.tsx","../src/components/ProductShell.tsx","../src/components/ThemeToggle.tsx","../src/components/LangButton.tsx","../src/components/HeroCard.tsx","../src/hooks/usePulseLabels.ts"],"sourcesContent":["'use client';\n\nconst GRID = 160;\nconst HALF = GRID / 2;\nconst ARM = 10;\n\nexport type TechGridTone = 'molten' | 'dark';\n\nconst TONES = {\n molten: {\n line: 'rgba(200,70,35,0.14)',\n cross: 'rgba(200,70,35,0.45)',\n dot: 'rgba(200,70,35,0.25)',\n },\n dark: {\n line: 'rgba(0,0,0,0.18)',\n cross: 'rgba(0,0,0,0.4)',\n dot: 'rgba(0,0,0,0.22)',\n },\n} as const;\n\nexport interface TechGridProps {\n className?: string;\n zIndex?: number;\n tone?: TechGridTone;\n /** Unique id suffix — required when rendering multiple grids on the same page */\n id?: string;\n style?: React.CSSProperties;\n}\n\nexport function TechGrid({\n className = '',\n zIndex = 3,\n tone = 'molten',\n id = '',\n style,\n}: TechGridProps) {\n const { line, cross, dot } = TONES[tone];\n const gridId = `tech-grid${id ? `-${id}` : ''}`;\n const crossId = `crosshairs${id ? `-${id}` : ''}`;\n\n return (\n <svg\n className={`pointer-events-none ${className}`}\n style={{ zIndex, ...style }}\n >\n <defs>\n <pattern\n id={gridId}\n width={GRID}\n height={GRID}\n patternUnits=\"userSpaceOnUse\"\n >\n <line x1=\"0\" y1=\"0\" x2={GRID} y2=\"0\" stroke={line} strokeWidth=\"0.5\" />\n <line x1=\"0\" y1=\"0\" x2=\"0\" y2={GRID} stroke={line} strokeWidth=\"0.5\" />\n <circle cx={HALF} cy={0} r=\"1.5\" fill={dot} />\n <circle cx={0} cy={HALF} r=\"1.5\" fill={dot} />\n <circle cx={HALF} cy={HALF} r=\"1.5\" fill={dot} />\n </pattern>\n\n <pattern\n id={crossId}\n width={GRID}\n height={GRID}\n patternUnits=\"userSpaceOnUse\"\n patternTransform={`translate(${-HALF},${-HALF})`}\n >\n <line\n x1={HALF - ARM} y1={HALF} x2={HALF + ARM} y2={HALF}\n stroke={cross} strokeWidth=\"1\"\n />\n <line\n x1={HALF} y1={HALF - ARM} x2={HALF} y2={HALF + ARM}\n stroke={cross} strokeWidth=\"1\"\n />\n </pattern>\n </defs>\n\n <rect width=\"100%\" height=\"100%\" fill={`url(#${gridId})`} />\n <rect width=\"100%\" height=\"100%\" fill={`url(#${crossId})`} />\n </svg>\n );\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport interface GridMeshProps {\n className?: string;\n opacity?: number;\n gridSize?: number;\n strokeColor?: string;\n}\n\nexport function GridMesh({\n className = '',\n opacity = 0.6,\n gridSize = 50,\n strokeColor = 'rgba(255, 255, 255, 0.03)',\n}: GridMeshProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n let animationFrameId: number;\n let time = 0;\n\n const resize = () => {\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n };\n\n resize();\n window.addEventListener('resize', resize);\n\n const draw = () => {\n if (!ctx || !canvas) return;\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n const cols = Math.ceil(canvas.width / gridSize) + 1;\n const rows = Math.ceil(canvas.height / gridSize) + 1;\n\n time += 0.005;\n\n ctx.strokeStyle = strokeColor;\n ctx.lineWidth = 1;\n\n for (let i = 0; i < rows; i++) {\n ctx.beginPath();\n for (let j = 0; j < cols; j++) {\n const x = j * gridSize;\n const y =\n i * gridSize +\n Math.sin(time + j * 0.1) * 10 +\n Math.cos(time * 0.5 + i * 0.1) * 8;\n\n if (j === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.stroke();\n }\n\n for (let j = 0; j < cols; j++) {\n ctx.beginPath();\n for (let i = 0; i < rows; i++) {\n const x =\n j * gridSize +\n Math.sin(time + i * 0.1) * 10 +\n Math.cos(time * 0.7 + j * 0.1) * 8;\n const y = i * gridSize;\n\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.stroke();\n }\n\n animationFrameId = requestAnimationFrame(draw);\n };\n\n draw();\n\n return () => {\n window.removeEventListener('resize', resize);\n cancelAnimationFrame(animationFrameId);\n };\n }, [gridSize, strokeColor]);\n\n return (\n <canvas\n ref={canvasRef}\n className={`absolute inset-0 w-full h-full pointer-events-none ${className}`}\n style={{ opacity }}\n />\n );\n}\n","'use client';\n\nimport { useRef, useMemo, useEffect } from 'react';\nimport { Canvas, useFrame } from '@react-three/fiber';\nimport * as THREE from 'three';\n\nconst noiseGLSL = /* glsl */ `\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}\nvec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}\nvec4 permute(vec4 x){return mod289(((x*34.0)+10.0)*x);}\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}\n\nfloat snoise(vec3 v){\n const vec2 C=vec2(1.0/6.0,1.0/3.0);\n const vec4 D=vec4(0.0,0.5,1.0,2.0);\n vec3 i=floor(v+dot(v,C.yyy));\n vec3 x0=v-i+dot(i,C.xxx);\n vec3 g=step(x0.yzx,x0.xyz);\n vec3 l=1.0-g;\n vec3 i1=min(g.xyz,l.zxy);\n vec3 i2=max(g.xyz,l.zxy);\n vec3 x1=x0-i1+C.xxx;\n vec3 x2=x0-i2+C.yyy;\n vec3 x3=x0-D.yyy;\n i=mod289(i);\n vec4 p=permute(permute(permute(\n i.z+vec4(0.0,i1.z,i2.z,1.0))\n +i.y+vec4(0.0,i1.y,i2.y,1.0))\n +i.x+vec4(0.0,i1.x,i2.x,1.0));\n float n_=0.142857142857;\n vec3 ns=n_*D.wyz-D.xzx;\n vec4 j=p-49.0*floor(p*ns.z*ns.z);\n vec4 x_=floor(j*ns.z);\n vec4 y_=floor(j-7.0*x_);\n vec4 x=x_*ns.x+ns.yyyy;\n vec4 y=y_*ns.x+ns.yyyy;\n vec4 h=1.0-abs(x)-abs(y);\n vec4 b0=vec4(x.xy,y.xy);\n vec4 b1=vec4(x.zw,y.zw);\n vec4 s0=floor(b0)*2.0+1.0;\n vec4 s1=floor(b1)*2.0+1.0;\n vec4 sh=-step(h,vec4(0.0));\n vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;\n vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;\n vec3 p0=vec3(a0.xy,h.x);\n vec3 p1=vec3(a0.zw,h.y);\n vec3 p2=vec3(a1.xy,h.z);\n vec3 p3=vec3(a1.zw,h.w);\n vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));\n p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;\n vec4 m=max(0.5-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);\n m=m*m;\n return 105.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));\n}\n`;\n\nconst vertexShader = /* glsl */ `\nuniform float uTime;\n${noiseGLSL}\nvarying float vDisplacement;\nvarying vec3 vNormal;\nvarying vec3 vWorldPosition;\n\nvoid main() {\n float n1 = snoise(position * 1.5 + uTime * 0.15) * 0.4;\n float n2 = snoise(position * 3.0 + uTime * 0.3) * 0.2;\n float n3 = snoise(position * 6.0 - uTime * 0.2) * 0.1;\n float displacement = n1 + n2 + n3;\n\n vec3 newPos = position + normal * displacement;\n vDisplacement = displacement;\n vNormal = normalize(normalMatrix * normal);\n vWorldPosition = (modelMatrix * vec4(newPos, 1.0)).xyz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPos, 1.0);\n}\n`;\n\nconst fragmentShader = /* glsl */ `\nuniform float uTime;\nvarying float vDisplacement;\nvarying vec3 vNormal;\nvarying vec3 vWorldPosition;\n\nvoid main() {\n float d = smoothstep(-0.5, 0.7, vDisplacement);\n\n vec3 c0 = vec3(0.337, 0.055, 0.141);\n vec3 c1 = vec3(0.671, 0.106, 0.114);\n vec3 c2 = vec3(0.855, 0.220, 0.086);\n vec3 c3 = vec3(0.969, 0.500, 0.055);\n vec3 c4 = vec3(0.984, 0.624, 0.051);\n vec3 c5 = vec3(1.0, 0.95, 0.85);\n\n vec3 color;\n if (d < 0.15) color = mix(c0, c1, d / 0.15);\n else if (d < 0.35) color = mix(c1, c2, (d - 0.15) / 0.2);\n else if (d < 0.55) color = mix(c2, c3, (d - 0.35) / 0.2);\n else if (d < 0.75) color = mix(c3, c4, (d - 0.55) / 0.2);\n else color = mix(c4, c5, (d - 0.75) / 0.25);\n\n vec3 viewDir = normalize(cameraPosition - vWorldPosition);\n float fresnel = pow(1.0 - max(dot(vNormal, viewDir), 0.0), 3.0);\n color += c4 * fresnel * 0.5;\n\n color *= 1.0 + 0.06 * sin(uTime * 0.7);\n\n gl_FragColor = vec4(color, 1.0);\n}\n`;\n\nfunction LavaSphere({ yOffset = 0.6 }: { yOffset?: number }) {\n const meshRef = useRef<THREE.Mesh>(null);\n const matRef = useRef<THREE.ShaderMaterial>(null);\n const mouse = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n const onMove = (e: MouseEvent) => {\n mouse.current.x = (e.clientX / window.innerWidth - 0.5) * 2;\n mouse.current.y = -(e.clientY / window.innerHeight - 0.5) * 2;\n };\n window.addEventListener('mousemove', onMove);\n return () => window.removeEventListener('mousemove', onMove);\n }, []);\n\n const uniforms = useMemo(() => ({ uTime: { value: 0 } }), []);\n\n useFrame(({ clock }) => {\n if (matRef.current) matRef.current.uniforms.uTime.value = clock.elapsedTime;\n if (meshRef.current) {\n const m = meshRef.current;\n m.rotation.x = THREE.MathUtils.lerp(m.rotation.x, mouse.current.y * 0.15, 0.02);\n m.rotation.y = THREE.MathUtils.lerp(\n m.rotation.y,\n mouse.current.x * 0.25 + clock.elapsedTime * 0.06,\n 0.02,\n );\n }\n });\n\n return (\n <mesh ref={meshRef} position={[0, yOffset, 0]}>\n <icosahedronGeometry args={[1.5, 64]} />\n <shaderMaterial\n ref={matRef}\n vertexShader={vertexShader}\n fragmentShader={fragmentShader}\n uniforms={uniforms}\n />\n </mesh>\n );\n}\n\nfunction EmberParticles() {\n const ref = useRef<THREE.Points>(null);\n const count = 180;\n\n const { positions, velocities } = useMemo(() => {\n const pos = new Float32Array(count * 3);\n const vel = new Float32Array(count * 3);\n for (let i = 0; i < count; i++) {\n const i3 = i * 3;\n pos[i3] = (Math.random() - 0.5) * 10;\n pos[i3 + 1] = Math.random() * 8 - 4;\n pos[i3 + 2] = (Math.random() - 0.5) * 6;\n vel[i3] = (Math.random() - 0.5) * 0.003;\n vel[i3 + 1] = Math.random() * 0.006 + 0.002;\n vel[i3 + 2] = (Math.random() - 0.5) * 0.002;\n }\n return { positions: pos, velocities: vel };\n }, []);\n\n const sizes = useMemo(() => {\n const s = new Float32Array(count);\n for (let i = 0; i < count; i++) s[i] = Math.random() * 0.04 + 0.01;\n return s;\n }, []);\n\n useFrame(() => {\n if (!ref.current) return;\n const arr = ref.current.geometry.attributes.position.array as Float32Array;\n for (let i = 0; i < count; i++) {\n const i3 = i * 3;\n arr[i3] += velocities[i3];\n arr[i3 + 1] += velocities[i3 + 1];\n arr[i3 + 2] += velocities[i3 + 2];\n if (arr[i3 + 1] > 5) {\n arr[i3] = (Math.random() - 0.5) * 10;\n arr[i3 + 1] = -5;\n arr[i3 + 2] = (Math.random() - 0.5) * 6;\n }\n }\n ref.current.geometry.attributes.position.needsUpdate = true;\n });\n\n return (\n <points ref={ref}>\n <bufferGeometry>\n <bufferAttribute attach=\"attributes-position\" args={[positions, 3]} />\n <bufferAttribute attach=\"attributes-size\" args={[sizes, 1]} />\n </bufferGeometry>\n <pointsMaterial size={0.035} color=\"#fb9f0d\" transparent opacity={0.5} sizeAttenuation />\n </points>\n );\n}\n\nexport interface LavaSceneProps {\n centered?: boolean;\n}\n\nexport function LavaScene({ centered = false }: LavaSceneProps) {\n const yOffset = centered ? 0 : 0.6;\n\n return (\n <Canvas\n camera={{ position: [0, 0, 5], fov: 45 }}\n gl={{ antialias: true, alpha: true }}\n style={{ background: 'transparent' }}\n >\n <ambientLight intensity={0.08} />\n <pointLight position={[5, 5, 5]} intensity={0.5} color=\"#fb9f0d\" />\n <pointLight position={[-5, -3, 3]} intensity={0.3} color=\"#ab1b1d\" />\n <LavaSphere yOffset={yOffset} />\n <EmberParticles />\n </Canvas>\n );\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport type EmberTone = 'molten' | 'dark';\n\nexport interface EmberFieldProps {\n tone?: EmberTone;\n count?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\ninterface Particle {\n x: number;\n y: number;\n vx: number;\n vy: number;\n size: number;\n opacity: number;\n drift: number;\n}\n\nconst COLORS = {\n molten: [\n [251, 159, 13],\n [247, 128, 14],\n [237, 99, 20],\n [218, 56, 22],\n ],\n dark: [\n [0, 0, 0],\n [20, 8, 2],\n [40, 16, 4],\n [10, 4, 1],\n ],\n} as const;\n\nfunction randomColor(tone: EmberTone): [number, number, number] {\n const palette = COLORS[tone];\n return [...palette[Math.floor(Math.random() * palette.length)]] as [number, number, number];\n}\n\nfunction createParticle(w: number, h: number, tone: EmberTone, fromBottom = false): Particle {\n return {\n x: Math.random() * w,\n y: fromBottom ? h + Math.random() * 40 : Math.random() * h,\n vx: (Math.random() - 0.5) * 0.3,\n vy: -(Math.random() * 0.6 + 0.2),\n size: Math.random() * 2.5 + 0.8,\n opacity: Math.random() * 0.5 + 0.2,\n drift: (Math.random() - 0.5) * 0.002,\n };\n}\n\nexport function EmberField({\n tone = 'molten',\n count = 60,\n className = '',\n style,\n}: EmberFieldProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n let animId: number;\n let particles: (Particle & { color: [number, number, number] })[] = [];\n\n const resize = () => {\n canvas.width = canvas.offsetWidth * window.devicePixelRatio;\n canvas.height = canvas.offsetHeight * window.devicePixelRatio;\n ctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n };\n\n const init = () => {\n resize();\n const w = canvas.offsetWidth;\n const h = canvas.offsetHeight;\n particles = Array.from({ length: count }, () => ({\n ...createParticle(w, h, tone),\n color: randomColor(tone),\n }));\n };\n\n init();\n window.addEventListener('resize', init);\n\n const draw = () => {\n const w = canvas.offsetWidth;\n const h = canvas.offsetHeight;\n ctx.clearRect(0, 0, w, h);\n\n for (const p of particles) {\n p.x += p.vx;\n p.y += p.vy;\n p.vx += p.drift;\n\n if (p.y < -10 || p.x < -10 || p.x > w + 10) {\n Object.assign(p, createParticle(w, h, tone, true));\n p.color = randomColor(tone);\n }\n\n const [r, g, b] = p.color;\n ctx.beginPath();\n ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\n ctx.fillStyle = `rgba(${r},${g},${b},${p.opacity})`;\n ctx.fill();\n }\n\n animId = requestAnimationFrame(draw);\n };\n\n draw();\n\n return () => {\n window.removeEventListener('resize', init);\n cancelAnimationFrame(animId);\n };\n }, [tone, count]);\n\n return (\n <canvas\n ref={canvasRef}\n className={`absolute inset-0 w-full h-full pointer-events-none ${className}`}\n style={style}\n />\n );\n}\n","'use client';\n\nexport interface VignetteProps {\n className?: string;\n zIndex?: number;\n}\n\nexport function Vignette({ className = '', zIndex = 2 }: VignetteProps) {\n return (\n <div\n className={`fixed inset-0 pointer-events-none vignette ${className}`}\n style={{ zIndex }}\n />\n );\n}\n","'use client';\n\nexport interface SphereGlowProps {\n className?: string;\n zIndex?: number;\n}\n\nexport function SphereGlow({ className = '', zIndex = 1 }: SphereGlowProps) {\n return (\n <div\n className={`fixed inset-0 pointer-events-none ${className}`}\n style={{ zIndex }}\n >\n <div className=\"sphere-glow\" />\n </div>\n );\n}\n","'use client';\n\nimport type { ReactNode, ButtonHTMLAttributes } from 'react';\n\nexport interface MoltenButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n children: ReactNode;\n href?: string;\n variant?: 'molten' | 'outline' | 'ghost';\n size?: 'xs' | 'sm' | 'md' | 'lg';\n fullWidth?: boolean;\n}\n\nconst sizeClasses = {\n xs: 'px-2.5 py-1 text-[10px]',\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-8 py-4 text-sm',\n} as const;\n\nconst variantClasses = {\n molten: 'bg-black text-white hover:bg-zinc-900 rainbow-border-button',\n outline: 'bg-transparent border border-zinc-700 text-white hover:bg-zinc-800',\n ghost: 'bg-transparent text-white hover:bg-zinc-800/50',\n} as const;\n\nexport function MoltenButton({\n children,\n href,\n variant = 'molten',\n size = 'sm',\n fullWidth = false,\n disabled = false,\n className = '',\n ...props\n}: MoltenButtonProps) {\n const classes = [\n 'relative inline-flex items-center justify-center gap-1.5',\n 'rounded-lg font-medium transition-all cursor-pointer',\n sizeClasses[size],\n fullWidth ? 'w-full' : '',\n disabled\n ? 'bg-zinc-800 text-zinc-500 cursor-not-allowed'\n : variantClasses[variant],\n className,\n ].filter(Boolean).join(' ');\n\n if (href && !disabled) {\n return (\n <a href={href} className={classes}>\n {children}\n </a>\n );\n }\n\n return (\n <button disabled={disabled} className={classes} {...props}>\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ReactNode, HTMLAttributes } from 'react';\n\nexport interface GlassCardProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n variant?: 'default' | 'subtle' | 'minimal';\n glow?: boolean;\n wave?: boolean;\n cornerFrame?: boolean;\n}\n\nconst variantClasses = {\n default: 'glass-card',\n subtle: 'glass-card-subtle',\n minimal: 'glass-card-minimal',\n} as const;\n\nexport function GlassCard({\n children,\n variant = 'default',\n glow = false,\n wave = false,\n cornerFrame = false,\n className = '',\n ...props\n}: GlassCardProps) {\n const classes = [\n variantClasses[variant],\n 'rounded-2xl',\n glow ? 'molten-card-glow' : '',\n wave ? 'molten-wave-card' : '',\n cornerFrame ? 'corner-frame' : '',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ReactNode, HTMLAttributes } from 'react';\n\nexport interface MoltenTextProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n as?: 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'p';\n animated?: boolean;\n}\n\nexport function MoltenText({\n children,\n as: Tag = 'span',\n animated = false,\n className = '',\n ...props\n}: MoltenTextProps) {\n const classes = [\n animated ? 'rainbow-text-animated' : 'molten-text',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { GridMesh } from './GridMesh';\n\nexport interface PageProps {\n children: ReactNode;\n ptMobile?: number;\n ptDesktop?: number;\n pb?: number;\n px?: number;\n maxWidth?: string;\n centered?: boolean;\n showGrid?: boolean;\n nav?: ReactNode;\n overlay?: ReactNode;\n}\n\nexport function Page({\n children,\n ptMobile = 20,\n ptDesktop = 24,\n pb = 6,\n px = 6,\n maxWidth = 'max-w-6xl',\n centered = true,\n showGrid = true,\n nav,\n overlay,\n}: PageProps) {\n const [isDesktop, setIsDesktop] = useState(false);\n\n useEffect(() => {\n const handleResize = () => setIsDesktop(window.innerWidth >= 1024);\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toRem = (units: number) => `${(units * 4) / 16}rem`;\n const paddingTop = isDesktop ? toRem(ptDesktop) : toRem(ptMobile);\n\n return (\n <main className=\"relative min-h-screen bg-black overflow-hidden\">\n {showGrid && (\n <div className=\"fixed inset-0 z-0\">\n <GridMesh />\n </div>\n )}\n\n <div className=\"relative z-10\">\n {nav}\n\n <div\n style={{\n paddingTop,\n paddingBottom: toRem(pb),\n paddingLeft: toRem(px),\n paddingRight: toRem(px),\n }}\n className={`min-h-screen ${centered ? 'flex flex-col justify-center' : ''}`}\n >\n <div className={`${maxWidth} mx-auto w-full`}>\n {children}\n </div>\n </div>\n </div>\n\n {overlay}\n\n <div className=\"fixed inset-0 pointer-events-none bg-gradient-radial from-transparent via-transparent to-black/40\" />\n </main>\n );\n}\n","'use client';\n\nimport { useState, useRef, useEffect, useCallback, forwardRef, type ReactNode } from 'react';\nimport gsap from 'gsap';\n\nexport interface NavLink {\n label: string;\n href: string;\n external?: boolean;\n}\n\nexport interface NavLinkGroup {\n title: string;\n links: NavLink[];\n}\n\nexport interface NavAction {\n icon: ReactNode;\n onClick?: () => void;\n href?: string;\n label?: string;\n}\n\nexport interface ProductNavProps {\n logo?: ReactNode;\n logoHref?: string;\n menuGroups?: NavLinkGroup[];\n leftExtra?: ReactNode;\n leftPanel?: ReactNode | ((onClose: () => void) => ReactNode);\n leftPanelOpen?: boolean;\n onLeftPanelChange?: (open: boolean) => void;\n rightAction?: NavAction;\n rightExtra?: ReactNode;\n xUrl?: string;\n communityLabel?: string;\n menuFooter?: ReactNode;\n className?: string;\n}\n\nconst BTN_SIZE = 40;\nconst BTN_BG = 'rgba(24, 24, 27, 0.9)';\n\nfunction NavIconButton({\n children,\n onClick,\n className = '',\n}: {\n children: ReactNode;\n onClick?: (e: React.MouseEvent) => void;\n className?: string;\n}) {\n return (\n <button\n onClick={onClick}\n className={`relative flex items-center justify-center rounded-xl transition-all cursor-pointer rainbow-border-button text-white ${className}`}\n style={{\n width: BTN_SIZE,\n height: Math.round(BTN_SIZE * 1.1),\n background: BTN_BG,\n backdropFilter: 'blur(24px)',\n }}\n >\n {children}\n </button>\n );\n}\n\ninterface ExpandedMenuProps {\n menuGroups: NavLinkGroup[];\n xUrl: string;\n communityLabel: string;\n menuFooter?: ReactNode;\n onClose: () => void;\n}\n\nconst ExpandedMenu = forwardRef<HTMLDivElement, ExpandedMenuProps>(\n ({ menuGroups, xUrl, communityLabel, menuFooter, onClose }, ref) => {\n const colCount = menuGroups.length;\n\n return (\n <div\n ref={ref}\n className=\"fixed top-0 left-0 right-0 backdrop-blur-xl\"\n style={{ transform: 'translateY(-100%)', visibility: 'hidden', zIndex: 40, background: 'rgba(0, 0, 0, 0.95)' }}\n >\n <div className=\"menu-content p-8 pt-20 mx-auto\" style={{ maxWidth: colCount >= 3 ? '48rem' : '42rem' }}>\n <div\n className=\"grid gap-8\"\n style={{ gridTemplateColumns: `repeat(${colCount}, 1fr)` }}\n >\n {menuGroups.map((group) => (\n <div key={group.title} className=\"space-y-1\">\n <span className=\"text-[10px] tracking-[0.2em] text-zinc-500 uppercase font-medium block mb-4\">\n {group.title}\n </span>\n {group.links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n target={link.external ? '_blank' : undefined}\n rel={link.external ? 'noopener noreferrer' : undefined}\n onClick={onClose}\n className=\"block text-2xl font-light text-white hover:text-zinc-300 transition-colors py-1\"\n >\n {link.label}\n </a>\n ))}\n </div>\n ))}\n\n </div>\n <div className=\"mt-6 pt-6 flex items-center justify-between\" style={{ borderTop: '1px solid rgba(255,255,255,0.06)' }}>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-[10px] tracking-[0.2em] text-zinc-500 uppercase font-medium\">\n {communityLabel}\n </span>\n <a\n href={xUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"w-8 h-8 rounded-full bg-zinc-800 flex items-center justify-center text-white hover:bg-zinc-700 transition-colors\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\n </svg>\n </a>\n </div>\n {menuFooter && (\n <div>{menuFooter}</div>\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\nExpandedMenu.displayName = 'ExpandedMenu';\n\nexport function ProductNav({\n logo,\n logoHref = '/',\n menuGroups = [],\n leftExtra,\n leftPanel,\n leftPanelOpen = false,\n onLeftPanelChange,\n rightAction,\n rightExtra,\n xUrl = 'https://x.com/moltenagentic',\n communityLabel = 'Community',\n menuFooter,\n className = '',\n}: ProductNavProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [leftPanelVisible, setLeftPanelVisible] = useState(false);\n const isLeftOpen = leftPanelOpen;\n const setIsLeftOpen = useCallback((v: boolean | ((prev: boolean) => boolean)) => {\n const next = typeof v === 'function' ? v(leftPanelOpen) : v;\n onLeftPanelChange?.(next);\n }, [leftPanelOpen, onLeftPanelChange]);\n const navBarRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const leftPanelRef = useRef<HTMLDivElement>(null);\n const isAnimating = useRef(false);\n\n const hasMenu = menuGroups.length > 0;\n\n const slideOpen = useCallback((panelRef: React.RefObject<HTMLDivElement | null>) => {\n if (isAnimating.current || !navBarRef.current || !panelRef.current) return;\n isAnimating.current = true;\n\n const tl = gsap.timeline({\n onComplete: () => { isAnimating.current = false; },\n });\n\n gsap.set(panelRef.current, { visibility: 'visible' });\n\n tl.to(navBarRef.current.querySelectorAll('.nav-content'), {\n opacity: 0, duration: 0.15,\n });\n\n tl.to(panelRef.current, {\n y: 0, duration: 0.4, ease: 'power3.out',\n }, '-=0.1');\n\n tl.to(panelRef.current.querySelectorAll('.menu-content > div'), {\n opacity: 1, y: 0, duration: 0.3, stagger: 0.05,\n }, '-=0.2');\n }, []);\n\n const slideClose = useCallback((panelRef: React.RefObject<HTMLDivElement | null>, onDone?: () => void) => {\n if (isAnimating.current || !navBarRef.current || !panelRef.current) return;\n isAnimating.current = true;\n\n const panel = panelRef.current;\n const tl = gsap.timeline({\n onComplete: () => {\n isAnimating.current = false;\n gsap.set(panel, { visibility: 'hidden', y: '-100%' });\n onDone?.();\n },\n });\n\n tl.to(panel.querySelectorAll('.menu-content > div'), {\n opacity: 0, y: -10, duration: 0.2, stagger: 0.03,\n });\n\n tl.to(panel, {\n y: '-100%', duration: 0.35, ease: 'power3.in',\n }, '-=0.1');\n\n tl.to(navBarRef.current.querySelectorAll('.nav-content'), {\n opacity: 1, duration: 0.2,\n }, '-=0.15');\n }, []);\n\n useEffect(() => {\n if (isOpen) slideOpen(menuRef);\n else slideClose(menuRef);\n }, [isOpen, slideOpen, slideClose]);\n\n useEffect(() => {\n if (isLeftOpen) {\n setLeftPanelVisible(true);\n if (isOpen) setIsOpen(false);\n slideOpen(leftPanelRef);\n } else {\n slideClose(leftPanelRef, () => setLeftPanelVisible(false));\n }\n }, [isLeftOpen, slideOpen, slideClose]);\n\n const toggleMenu = useCallback(() => {\n if (isLeftOpen) setIsLeftOpen(false);\n setIsOpen(v => !v);\n }, [isLeftOpen]);\n\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n if (isOpen) setIsOpen(false);\n if (isLeftOpen) setIsLeftOpen(false);\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [isOpen, isLeftOpen]);\n\n const anyOpen = isOpen || isLeftOpen;\n\n return (\n <nav className={`relative z-50 w-full max-w-2xl mx-auto px-4 ${className}`}>\n <div className=\"relative\">\n <div style={{ position: 'absolute', left: '8px', top: '50%', transform: 'translateY(-50%)', display: 'flex', alignItems: 'center', gap: '20px', zIndex: leftPanelVisible ? 30 : 60 }}>\n {leftExtra}\n {hasMenu && (\n <NavIconButton onClick={toggleMenu}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '5px' }}>\n <span style={{\n display: 'block', width: '16px', height: '2px', background: 'currentColor',\n transition: 'all 0.2s', transformOrigin: 'center',\n transform: isOpen ? 'translateY(7px) rotate(45deg)' : 'none',\n }} />\n <span style={{\n display: 'block', width: '16px', height: '2px', background: 'currentColor',\n transition: 'all 0.2s',\n opacity: isOpen ? 0 : 1,\n }} />\n <span style={{\n display: 'block', width: '16px', height: '2px', background: 'currentColor',\n transition: 'all 0.2s', transformOrigin: 'center',\n transform: isOpen ? 'translateY(-7px) rotate(-45deg)' : 'none',\n }} />\n </div>\n </NavIconButton>\n )}\n </div>\n\n <div\n ref={navBarRef}\n className=\"relative px-2 flex items-center justify-between\"\n >\n <div className=\"nav-content\" style={{ width: '56px' }} />\n\n <div className=\"nav-content absolute left-1/2 -translate-x-1/2\">\n <a href={logoHref} className=\"block hover:opacity-80 transition-opacity\">\n {logo ?? (\n <span style={{ fontSize: '18px', fontWeight: 900, color: '#fff' }}>M</span>\n )}\n </a>\n </div>\n\n <div className=\"nav-content\" style={{ display: 'flex', alignItems: 'center', gap: '20px' }}>\n {rightAction && (\n rightAction.href ? (\n <a href={rightAction.href} title={rightAction.label}>\n <NavIconButton>\n {rightAction.icon}\n </NavIconButton>\n </a>\n ) : (\n <NavIconButton onClick={rightAction.onClick}>\n {rightAction.icon}\n </NavIconButton>\n )\n )}\n {rightExtra}\n </div>\n </div>\n\n {hasMenu && (\n <ExpandedMenu\n ref={menuRef}\n menuGroups={menuGroups}\n xUrl={xUrl}\n communityLabel={communityLabel}\n menuFooter={menuFooter}\n onClose={() => setIsOpen(false)}\n />\n )}\n\n {leftPanel && (\n <div\n ref={leftPanelRef}\n className=\"fixed top-0 left-0 right-0 backdrop-blur-xl\"\n style={{ transform: 'translateY(-100%)', visibility: 'hidden', zIndex: 40, background: 'rgba(0, 0, 0, 0.95)' }}\n >\n <div className=\"menu-content p-8 pt-20 max-w-2xl mx-auto\">\n {typeof leftPanel === 'function' ? leftPanel(() => setIsLeftOpen(false)) : leftPanel}\n </div>\n </div>\n )}\n </div>\n\n {anyOpen && (\n <div\n className=\"fixed inset-0\"\n style={{ background: 'rgba(0, 0, 0, 0.5)', zIndex: 30 }}\n onClick={() => { setIsOpen(false); setIsLeftOpen(false); }}\n />\n )}\n </nav>\n );\n}\n","'use client';\n\nimport { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from 'react';\n\nexport type MoltenTheme = 'day' | 'night';\n\ninterface MoltenThemeContextValue {\n theme: MoltenTheme;\n setTheme: (theme: MoltenTheme) => void;\n toggle: () => void;\n}\n\nconst MoltenThemeContext = createContext<MoltenThemeContextValue>({\n theme: 'day',\n setTheme: () => {},\n toggle: () => {},\n});\n\nconst STORAGE_KEY = 'molten-theme';\n\nexport function MoltenThemeProvider({ children, defaultTheme = 'day' }: { children: ReactNode; defaultTheme?: MoltenTheme }) {\n const [theme, setThemeState] = useState<MoltenTheme>(defaultTheme);\n\n useEffect(() => {\n const stored = localStorage.getItem(STORAGE_KEY) as MoltenTheme | null;\n if (stored === 'day' || stored === 'night') {\n setThemeState(stored);\n document.documentElement.dataset.theme = stored;\n } else {\n document.documentElement.dataset.theme = defaultTheme;\n }\n }, [defaultTheme]);\n\n const setTheme = useCallback((next: MoltenTheme) => {\n setThemeState(next);\n document.documentElement.dataset.theme = next;\n localStorage.setItem(STORAGE_KEY, next);\n }, []);\n\n const toggle = useCallback(() => {\n setTheme(theme === 'day' ? 'night' : 'day');\n }, [theme, setTheme]);\n\n return (\n <MoltenThemeContext.Provider value={{ theme, setTheme, toggle }}>\n {children}\n </MoltenThemeContext.Provider>\n );\n}\n\nexport function useMoltenTheme() {\n return useContext(MoltenThemeContext);\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\nimport { TechGrid } from './TechGrid';\nimport { EmberField } from './EmberField';\nimport { useMoltenTheme } from '../theme';\n\nexport interface HalfHeroProps {\n children: ReactNode;\n nav?: ReactNode;\n className?: string;\n height?: string;\n fieldVariant?: 'default' | 'intense' | 'subtle' | 'vignette';\n showEmbers?: boolean;\n emberCount?: number;\n showGrid?: boolean;\n}\n\nconst fieldClasses = {\n default: 'molten-field',\n intense: 'molten-field-intense',\n subtle: 'molten-field-subtle',\n vignette: 'molten-field-vignette',\n} as const;\n\nexport function HalfHero({\n children,\n nav,\n className = '',\n height = '50vh',\n fieldVariant = 'default',\n showEmbers = true,\n emberCount = 40,\n showGrid = true,\n}: HalfHeroProps) {\n const { theme } = useMoltenTheme();\n const isNight = theme === 'night';\n const gridTone = isNight ? 'molten' : 'dark';\n const emberTone = isNight ? 'molten' : 'dark';\n\n return (\n <div\n className={`relative overflow-hidden flex flex-col ${fieldClasses[fieldVariant]} ${className}`}\n style={{ minHeight: height, color: isNight ? '#fff' : '#000' }}\n >\n {showGrid && (\n <TechGrid tone={gridTone} id=\"hero\" className=\"absolute inset-0 w-full h-full\" style={{ zIndex: 3 }} />\n )}\n {showEmbers && (\n <EmberField tone={emberTone} count={emberCount} style={{ zIndex: 5 }} />\n )}\n\n {nav && <div className=\"relative pt-4 he-nav-spacing\" style={{ zIndex: 30 }}>{nav}</div>}\n\n <div className=\"relative flex-1 flex flex-col items-center px-4 he-content-spacing\" style={{ zIndex: 10 }}>\n <div style={{ flex: 1 }} />\n {children}\n <div style={{ flex: 1 }} />\n </div>\n </div>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\n\nexport interface ProductShellProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function ProductShell({\n children,\n className = '',\n}: ProductShellProps) {\n return (\n <main className={`relative min-h-screen bg-black text-white ${className}`}>\n {children}\n </main>\n );\n}\n","'use client';\n\nimport { useMoltenTheme } from '../theme';\n\nexport function ThemeToggle() {\n const { theme, toggle } = useMoltenTheme();\n const isNight = theme === 'night';\n const color = isNight ? '#71717a' : '#fff';\n\n return (\n <button\n onClick={toggle}\n className=\"relative flex items-center justify-center rounded-xl cursor-pointer rainbow-border-button text-white\"\n style={{\n width: 40,\n height: 44,\n background: 'rgba(24, 24, 27, 0.9)',\n backdropFilter: 'blur(24px)',\n }}\n >\n {isNight ? (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n </svg>\n ) : (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v3M12 19v3M4.22 4.22l2.12 2.12M17.66 17.66l2.12 2.12M2 12h3M19 12h3M4.22 19.78l2.12-2.12M17.66 6.34l2.12-2.12\" />\n </svg>\n )}\n </button>\n );\n}\n","'use client';\n\nimport { useMoltenTheme } from '../theme';\n\nexport interface LangButtonProps {\n locale: string;\n onClick?: () => void;\n isOpen?: boolean;\n}\n\nexport function LangButton({ locale, onClick, isOpen = false }: LangButtonProps) {\n const { theme } = useMoltenTheme();\n const color = theme === 'night' ? '#71717a' : '#fff';\n\n return (\n <button\n onClick={onClick}\n className=\"relative flex items-center justify-center rounded-xl cursor-pointer rainbow-border-button text-white\"\n style={{\n width: 40,\n height: 44,\n background: 'rgba(24, 24, 27, 0.9)',\n backdropFilter: 'blur(24px)',\n }}\n >\n {isOpen ? (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '5px' }}>\n <span style={{ display: 'block', width: '16px', height: '2px', background: color, transformOrigin: 'center', transform: 'translateY(7px) rotate(45deg)' }} />\n <span style={{ display: 'block', width: '16px', height: '2px', background: color, opacity: 0 }} />\n <span style={{ display: 'block', width: '16px', height: '2px', background: color, transformOrigin: 'center', transform: 'translateY(-7px) rotate(-45deg)' }} />\n </div>\n ) : (\n <span style={{ fontSize: '13px', fontWeight: 700, color, letterSpacing: '0.05em' }}>\n {locale === 'zh' ? 'CN' : locale.toUpperCase()}\n </span>\n )}\n </button>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\n\nexport interface HeroCardProps {\n label: string;\n title: string;\n code?: string;\n description?: string;\n accentColor?: string;\n actionText?: string;\n onClick?: () => void;\n children?: ReactNode;\n}\n\nexport function HeroCard({\n label,\n title,\n code,\n description,\n accentColor = '#00e5ff',\n actionText,\n onClick,\n children,\n}: HeroCardProps) {\n return (\n <div\n onClick={onClick}\n className={`group relative p-5 sm:p-6 rounded-2xl glass-card molten-wave-card corner-frame w-full max-w-lg ${onClick ? 'cursor-pointer' : ''}`}\n >\n <span className=\"portal-label font-mono text-[11px] tracking-widest\" style={{ color: accentColor }}>\n // {label}\n </span>\n <h2 className=\"text-xl sm:text-2xl font-bold mt-2 text-white molten-wave-text\">\n {title}\n </h2>\n {code && (\n <div\n className=\"mt-4 rounded-lg p-3\"\n style={{\n background: 'rgba(0, 0, 0, 0.4)',\n border: '1px solid rgba(255, 255, 255, 0.06)',\n }}\n >\n <code className=\"text-xs sm:text-sm font-mono break-all\" style={{ color: accentColor }}>\n {code}\n </code>\n </div>\n )}\n {description && (\n <p className=\"text-xs text-zinc-500 mt-3 font-light leading-relaxed\">\n {description}\n </p>\n )}\n {children}\n {actionText && (\n <div className=\"mt-4 flex items-center justify-between\">\n <span className=\"text-xs text-zinc-500 molten-wave-text transition-all duration-300\">\n {actionText}\n </span>\n <span className=\"text-zinc-600 group-hover:translate-x-1.5 transition-all duration-300 text-lg molten-wave-text\">\n &rarr;\n </span>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, type RefObject } from 'react';\nimport gsap from 'gsap';\n\nexport function usePulseLabels(ref: RefObject<HTMLElement | null>, selector = '.portal-label', delay = 2.2) {\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n\n const labels = el.querySelectorAll(selector);\n if (!labels.length) return;\n\n const pulse = gsap.timeline({ repeat: -1, delay });\n labels.forEach((label) => {\n pulse\n .to(label, { opacity: 0.15, duration: 0.8, ease: 'power1.inOut' })\n .to(label, { opacity: 1, duration: 0.8, ease: 'power1.inOut' });\n });\n\n return () => { pulse.kill(); };\n }, [ref, selector, delay]);\n}\n"],"mappings":"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","names":["jsx","useRef","useEffect","jsx","jsxs","useEffect","useRef","jsx","jsx","jsx","jsx","jsx","variantClasses","jsx","useEffect","jsx","jsxs","useEffect","useState","useRef","useEffect","jsx","jsxs","useState","useEffect","useCallback","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","useEffect","gsap"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moltenagentic/human-elements",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Shared design system and UI components for Molten's human-facing interfaces",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@9.15.0",