- Implement WebView2-based HMI frontend with React + TypeScript + Vite - Add C# .NET backend with WebSocket communication layer - Separate UI components into modular structure: * RecipePanel: Recipe selection and management * IOPanel: I/O monitoring and control (32 inputs/outputs) * MotionPanel: Servo control for X/Y/Z axes * CameraPanel: Vision system feed with HUD overlay * SettingsModal: System configuration management - Create reusable UI components (CyberPanel, TechButton, PanelHeader) - Implement dual-mode communication (WebView2 native + WebSocket fallback) - Add 3D visualization with Three.js/React Three Fiber - Fix JSON parsing bug in configuration save handler - Include comprehensive .gitignore for .NET and Node.js projects 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
20 lines
675 B
TypeScript
20 lines
675 B
TypeScript
import React from 'react';
|
|
import { LucideIcon } from 'lucide-react';
|
|
|
|
interface PanelHeaderProps {
|
|
title: string;
|
|
icon: LucideIcon;
|
|
}
|
|
|
|
export const PanelHeader: React.FC<PanelHeaderProps> = ({ title, icon: Icon }) => (
|
|
<div className="flex items-center gap-3 mb-6 border-b border-white/10 pb-2">
|
|
<div className="text-neon-blue animate-pulse">
|
|
<Icon className="w-5 h-5" />
|
|
</div>
|
|
<h2 className="text-lg font-tech font-bold text-white tracking-[0.1em] uppercase text-shadow-glow-blue">
|
|
{title}
|
|
</h2>
|
|
<div className="flex-1 h-px bg-gradient-to-r from-neon-blue/50 to-transparent"></div>
|
|
</div>
|
|
);
|