Spaces:
Running
Running
Update components/CustomNode.tsx
Browse files- components/CustomNode.tsx +51 -2
components/CustomNode.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
|
|
|
|
| 2 |
import React, { memo } from 'react';
|
| 3 |
import { Handle, Position, NodeProps } from 'reactflow';
|
| 4 |
import {
|
|
@@ -7,7 +8,9 @@ import {
|
|
| 7 |
ArrowUpCircle, Sliders, RefreshCcw, Brain, Crosshair, Network, Clock, Eye, Workflow,
|
| 8 |
Terminal, MinusCircle, Scaling, BoxSelect, Wifi,
|
| 9 |
Mic, Speaker, Radio, Cuboid, Target, Scan,
|
| 10 |
-
AudioLines, FileAudio, Hexagon, Component
|
|
|
|
|
|
|
| 11 |
} from 'lucide-react';
|
| 12 |
import { NodeData, LayerType } from '../types';
|
| 13 |
|
|
@@ -78,6 +81,29 @@ const getIcon = (type: LayerType) => {
|
|
| 78 |
case LayerType.POINTNET_BLOCK:
|
| 79 |
case LayerType.POINT_TRANSFORMER: return <Scan className="w-4 h-4" />;
|
| 80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
case LayerType.LSTM:
|
| 82 |
case LayerType.GRU: return <GitBranch className="w-4 h-4" />;
|
| 83 |
case LayerType.EMBEDDING: return <Database className="w-4 h-4" />;
|
|
@@ -171,6 +197,29 @@ const getColor = (type: LayerType) => {
|
|
| 171 |
case LayerType.TRIPLANE_ENC:
|
| 172 |
case LayerType.GAUSSIAN_SPLAT: return 'border-teal-500 shadow-teal-500/20';
|
| 173 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 174 |
case LayerType.CONCAT:
|
| 175 |
case LayerType.ADD: return 'border-pink-500 shadow-pink-500/20';
|
| 176 |
|
|
@@ -258,4 +307,4 @@ const CustomNode = ({ data, selected }: NodeProps<NodeData>) => {
|
|
| 258 |
);
|
| 259 |
};
|
| 260 |
|
| 261 |
-
export default memo(CustomNode);
|
|
|
|
| 1 |
|
| 2 |
+
|
| 3 |
import React, { memo } from 'react';
|
| 4 |
import { Handle, Position, NodeProps } from 'reactflow';
|
| 5 |
import {
|
|
|
|
| 8 |
ArrowUpCircle, Sliders, RefreshCcw, Brain, Crosshair, Network, Clock, Eye, Workflow,
|
| 9 |
Terminal, MinusCircle, Scaling, BoxSelect, Wifi,
|
| 10 |
Mic, Speaker, Radio, Cuboid, Target, Scan,
|
| 11 |
+
AudioLines, FileAudio, Hexagon, Component,
|
| 12 |
+
ScanText, Mountain, Move, Radar, Map, Orbit, Wind,
|
| 13 |
+
Film, Video, FastForward, Timer, Clapperboard, Merge
|
| 14 |
} from 'lucide-react';
|
| 15 |
import { NodeData, LayerType } from '../types';
|
| 16 |
|
|
|
|
| 81 |
case LayerType.POINTNET_BLOCK:
|
| 82 |
case LayerType.POINT_TRANSFORMER: return <Scan className="w-4 h-4" />;
|
| 83 |
|
| 84 |
+
// OCR
|
| 85 |
+
case LayerType.TPS_TRANSFORM:
|
| 86 |
+
case LayerType.CRNN_BLOCK:
|
| 87 |
+
case LayerType.CTC_DECODER: return <ScanText className="w-4 h-4" />;
|
| 88 |
+
|
| 89 |
+
// Robotics / Motion
|
| 90 |
+
case LayerType.DEPTH_DECODER:
|
| 91 |
+
case LayerType.DISPARITY_HEAD: return <Mountain className="w-4 h-4" />;
|
| 92 |
+
case LayerType.OPTICAL_FLOW:
|
| 93 |
+
case LayerType.VELOCITY_HEAD: return <Wind className="w-4 h-4" />;
|
| 94 |
+
case LayerType.KALMAN_FILTER: return <Orbit className="w-4 h-4" />;
|
| 95 |
+
case LayerType.BEV_TRANSFORM: return <Map className="w-4 h-4" />;
|
| 96 |
+
case LayerType.RADAR_ENCODER: return <Radar className="w-4 h-4" />;
|
| 97 |
+
|
| 98 |
+
// Video / Generation
|
| 99 |
+
case LayerType.VIDEO_DIFFUSION_BLOCK: return <Film className="w-4 h-4" />;
|
| 100 |
+
case LayerType.SPATIO_TEMPORAL_ATTN: return <Timer className="w-4 h-4" />;
|
| 101 |
+
case LayerType.VIDEO_TOKENIZER: return <Video className="w-4 h-4" />;
|
| 102 |
+
case LayerType.FRAME_INTERPOLATOR: return <FastForward className="w-4 h-4" />;
|
| 103 |
+
case LayerType.TEMPORAL_SHIFT: return <Move className="w-4 h-4" />;
|
| 104 |
+
case LayerType.NON_LOCAL_BLOCK: return <Clapperboard className="w-4 h-4" />;
|
| 105 |
+
case LayerType.MULTIMODAL_FUSION: return <Merge className="w-4 h-4" />;
|
| 106 |
+
|
| 107 |
case LayerType.LSTM:
|
| 108 |
case LayerType.GRU: return <GitBranch className="w-4 h-4" />;
|
| 109 |
case LayerType.EMBEDDING: return <Database className="w-4 h-4" />;
|
|
|
|
| 197 |
case LayerType.TRIPLANE_ENC:
|
| 198 |
case LayerType.GAUSSIAN_SPLAT: return 'border-teal-500 shadow-teal-500/20';
|
| 199 |
|
| 200 |
+
// OCR - Yellow/Lime
|
| 201 |
+
case LayerType.TPS_TRANSFORM:
|
| 202 |
+
case LayerType.CRNN_BLOCK:
|
| 203 |
+
case LayerType.CTC_DECODER: return 'border-yellow-500 shadow-yellow-500/20';
|
| 204 |
+
|
| 205 |
+
// Robotics/Motion - Cyan/Sky
|
| 206 |
+
case LayerType.DEPTH_DECODER:
|
| 207 |
+
case LayerType.DISPARITY_HEAD:
|
| 208 |
+
case LayerType.OPTICAL_FLOW:
|
| 209 |
+
case LayerType.VELOCITY_HEAD:
|
| 210 |
+
case LayerType.KALMAN_FILTER:
|
| 211 |
+
case LayerType.BEV_TRANSFORM:
|
| 212 |
+
case LayerType.RADAR_ENCODER: return 'border-sky-500 shadow-sky-500/20';
|
| 213 |
+
|
| 214 |
+
// Video - Fuchsia
|
| 215 |
+
case LayerType.VIDEO_DIFFUSION_BLOCK:
|
| 216 |
+
case LayerType.SPATIO_TEMPORAL_ATTN:
|
| 217 |
+
case LayerType.VIDEO_TOKENIZER:
|
| 218 |
+
case LayerType.FRAME_INTERPOLATOR:
|
| 219 |
+
case LayerType.TEMPORAL_SHIFT:
|
| 220 |
+
case LayerType.NON_LOCAL_BLOCK:
|
| 221 |
+
case LayerType.MULTIMODAL_FUSION: return 'border-fuchsia-500 shadow-fuchsia-500/20';
|
| 222 |
+
|
| 223 |
case LayerType.CONCAT:
|
| 224 |
case LayerType.ADD: return 'border-pink-500 shadow-pink-500/20';
|
| 225 |
|
|
|
|
| 307 |
);
|
| 308 |
};
|
| 309 |
|
| 310 |
+
export default memo(CustomNode);
|