UNPKG

aura-glass

Version:

A comprehensive glassmorphism design system for React applications with 142+ production-ready components

154 lines (151 loc) 6.48 kB
'use client'; import { jsxs, jsx } from 'react/jsx-runtime'; import { useState, useMemo, useEffect } from 'react'; import { cn } from '../../lib/utilsComprehensive.js'; import '../../primitives/GlassCore.js'; import '../../primitives/glass/GlassAdvanced.js'; import { OptimizedGlassCore } from '../../primitives/OptimizedGlassCore.js'; import '../../primitives/glass/OptimizedGlassAdvanced.js'; import '../../primitives/MotionNative.js'; import '../../primitives/motion/MotionFramer.js'; const DEFAULT_SIGNALS = [{ channel: "sensory", weights: [0.42, -0.31, 0.57, -0.12, 0.25], phase: 0.6 }, { channel: "cognitive", weights: [0.63, -0.44, 0.18, 0.27, -0.35], phase: 0.52 }, { channel: "motor", weights: [0.29, -0.17, 0.41, -0.22, 0.33], phase: 0.47 }]; const clamp = (value, min, max) => Math.min(max, Math.max(min, value)); const computeMetrics = signals => { if (signals.length === 0) { return { energyUsage: 0, coherence: 0, plasticity: 0, stability: 0, timestamp: Date.now() }; } const allWeights = signals.flatMap(signal => signal.weights); const mean = allWeights.reduce((sum, weight) => sum + weight, 0) / allWeights.length; const variance = allWeights.reduce((sum, weight) => sum + (weight - mean) ** 2, 0) / allWeights.length; const stdDeviation = Math.sqrt(variance); const averageMagnitude = allWeights.reduce((sum, weight) => sum + Math.abs(weight), 0) / allWeights.length; const phaseVariance = signals.reduce((sum, signal) => sum + Math.pow((signal.phase ?? 0.5) - 0.5, 2), 0) / signals.length; return { energyUsage: clamp(averageMagnitude, 0, 1), coherence: clamp(1 - stdDeviation, 0, 1), plasticity: clamp(variance * 2, 0, 1), stability: clamp(1 - phaseVariance * 4, 0, 1), timestamp: Date.now() }; }; function NeuromorphicLearningNetwork({ className, signals = DEFAULT_SIGNALS, onSnapshot, autoSampleInterval }) { const [snapshot, setSnapshot] = useState(() => computeMetrics(signals)); const normalizedSignals = useMemo(() => { return signals.length > 0 ? signals : DEFAULT_SIGNALS; }, [signals]); useEffect(() => { setSnapshot(computeMetrics(normalizedSignals)); }, [normalizedSignals]); useEffect(() => { if (!autoSampleInterval) return; const timer = setInterval(() => { const latest = computeMetrics(normalizedSignals); setSnapshot(latest); onSnapshot?.(latest); }, clamp(autoSampleInterval, 500, 10000)); return () => clearInterval(timer); }, [autoSampleInterval, normalizedSignals, onSnapshot]); useEffect(() => { onSnapshot?.(snapshot); }, [snapshot, onSnapshot]); return jsxs(OptimizedGlassCore, { role: "article", "aria-label": "Neuromorphic learning network", className: cn("glass-radius-3xl glass-border glass-border-soft glass-p-6 space-y-6", "bg-gradient-to-br from-indigo-950/80 via-slate-900/60 to-slate-900/30", className), children: [jsxs("header", { children: [jsx("h2", { className: 'glass-text-xl font-semibold text-primary', children: "Neuromorphic Learning Network" }), jsx("p", { className: 'glass-text-sm text-primary/70', children: "Monitor coherence between quantum-inspired spikes and adaptive plasticity feedback." })] }), jsx("div", { className: 'glass-grid glass-gap-4 sm:grid-cols-2 lg:grid-cols-4', children: [["Energy Usage", snapshot.energyUsage], ["Coherence", snapshot.coherence], ["Plasticity", snapshot.plasticity], ["Stability", snapshot.stability]].map(([label, value]) => jsxs("div", { className: 'glass-radius-2xl glass-border glass-border-white/10 glass-surface-subtle/5 glass-p-4 text-primary', children: [jsxs("div", { className: 'glass-flex glass-items-center glass-justify-between glass-text-xs uppercase tracking-wide text-primary/60', children: [jsx("span", { children: label }), jsxs("span", { children: [(value * 100).toFixed(0), "%"] })] }), jsx("div", { className: 'mt-3 h-2 glass-w-full overflow-hidden glass-radius-full glass-surface-subtle/10', children: jsx("div", { className: 'glass-h-full glass-radius-full bg-gradient-to-r from-sky-400/70 to-cyan-500/80', style: { width: `${value * 100}%` } }) })] }, label)) }), jsxs("section", { className: 'space-y-3', children: [jsx("h3", { className: 'glass-text-sm font-semibold uppercase tracking-wide text-primary/60', children: "Signal channels" }), jsx("div", { className: 'glass-grid glass-gap-3 sm:grid-cols-2 lg:grid-cols-3', children: normalizedSignals.map(signal => jsxs("div", { className: 'glass-radius-2xl glass-border glass-border-white/10 glass-surface-subtle/5 glass-p-4 text-primary/80', children: [jsxs("div", { className: 'glass-flex glass-items-center glass-justify-between glass-text-sm text-primary', children: [jsx("span", { className: 'font-semibold', children: signal.channel }), jsxs("span", { className: 'glass-text-xs text-primary/60', children: ["Weights ", signal.weights.length] })] }), jsxs("div", { className: 'mt-3 space-y-2 glass-text-xs', children: [jsxs("div", { className: 'glass-flex glass-items-center glass-justify-between text-primary/60', children: [jsx("span", { children: "Avg Weight" }), jsx("span", { className: 'font-semibold text-primary/80', children: (signal.weights.reduce((sum, weight) => sum + weight, 0) / signal.weights.length).toFixed(2) })] }), jsxs("div", { className: 'glass-flex glass-items-center glass-justify-between text-primary/60', children: [jsx("span", { children: "Phase Alignment" }), jsxs("span", { className: 'font-semibold text-primary/80', children: [((signal.phase ?? 0.5) * 100).toFixed(0), "%"] })] })] })] }, signal.channel)) })] })] }); } export { NeuromorphicLearningNetwork, NeuromorphicLearningNetwork as default }; //# sourceMappingURL=NeuromorphicLearningNetwork.js.map