+
+ setDropped(`Dragging: ${(data as { tool: string }).tool}`)
+ }
+ >
+
+
+
+
+
+
+
{ event.preventDefault(); setIsDragOver(true); }}
+ onDragLeave={() => setIsDragOver(false)}
+ onDrop={(event) => {
+ event.preventDefault();
+ setIsDragOver(false);
+ const raw = event.dataTransfer.getData('application/json');
+ const data = JSON.parse(raw) as { tool: string } | null;
+ setDropped(data ? `Dropped: ${data.tool}` : 'Dropped: (no data)');
+ }}
+ className='flex items-center justify-center rounded-xl border-2 border-dashed transition-colors'
+ style={{
+ width: 240,
+ height: 180,
+ borderColor: isDragOver ? 'var(--primary-color)' : 'var(--surface-border)',
+ background: isDragOver ? 'var(--highlight-bg)' : 'var(--surface-card)',
+ color: 'var(--text-color-secondary)',
+ fontSize: '0.875rem',
+ }}
+ >
+ {dropped ?? 'Drop a tool here'}
+
+
+ );
+ };
+
+ return