diff --git a/frontend/src/components/layout-editor/LayoutEditor.tsx b/frontend/src/components/layout-editor/LayoutEditor.tsx index 0708b9e..bf732b1 100644 --- a/frontend/src/components/layout-editor/LayoutEditor.tsx +++ b/frontend/src/components/layout-editor/LayoutEditor.tsx @@ -206,44 +206,50 @@ export function LayoutEditor({ floorId, className }: LayoutEditorProps) { {/* Selected Slot Panel */} {selectedSlot && ( + // Panel container - kept existing glassmorphism but ensured semantic borders

Slot Details

-
-
- Position: - R{selectedSlot.row} C{selectedSlot.column} +
+
+ Position: + R{selectedSlot.row} C{selectedSlot.column}
-
- Status: +
+ Status: {selectedSlot.status}
{selectedSlot.plantType && ( <> -
- Plant: - {selectedSlot.plantType.name} +
+ Plant: +
+ {selectedSlot.plantType.name} + {selectedSlot.plantType.strain && ( + {selectedSlot.plantType.strain} + )} +
{selectedSlot.tagNumber && ( -
- Tag: - {selectedSlot.tagNumber} +
+ Tag: + {selectedSlot.tagNumber}
)} @@ -251,18 +257,18 @@ export function LayoutEditor({ floorId, className }: LayoutEditorProps) {
{/* Actions */} -
+
{selectedSlot.status === 'EMPTY' && ( - )} {selectedSlot.status === 'OCCUPIED' && ( <> - - diff --git a/frontend/src/components/layout-editor/RackConfigModal.tsx b/frontend/src/components/layout-editor/RackConfigModal.tsx index 02802bf..74f11f6 100644 --- a/frontend/src/components/layout-editor/RackConfigModal.tsx +++ b/frontend/src/components/layout-editor/RackConfigModal.tsx @@ -70,13 +70,13 @@ export function RackConfigModal({ rack, isOpen, onClose, onSave }: RackConfigMod
{/* Modal */} -
+
{/* Header */} -
-

Configure Section

+
+

Configure Section

@@ -87,22 +87,22 @@ export function RackConfigModal({ rack, isOpen, onClose, onSave }: RackConfigMod {/* Name & Code */}
- + setName(e.target.value)} - className="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded text-white focus:outline-none focus:border-emerald-500" + className="w-full px-3 py-2 bg-secondary/50 border border-input rounded text-foreground focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary/20 transition-all font-sans" placeholder="e.g., Table 1" />
- + setCode(e.target.value)} - className="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded text-white focus:outline-none focus:border-emerald-500" + className="w-full px-3 py-2 bg-secondary/50 border border-input rounded text-foreground focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary/20 transition-all font-mono" placeholder="e.g., T1" />
@@ -110,7 +110,7 @@ export function RackConfigModal({ rack, isOpen, onClose, onSave }: RackConfigMod {/* Section Type */}
- +
{SUBTYPE_OPTIONS.map((opt) => ( diff --git a/frontend/src/components/layout-editor/RackVisualizer.tsx b/frontend/src/components/layout-editor/RackVisualizer.tsx index 05daa0c..b8109fd 100644 --- a/frontend/src/components/layout-editor/RackVisualizer.tsx +++ b/frontend/src/components/layout-editor/RackVisualizer.tsx @@ -45,11 +45,11 @@ const TIER_TAB_HEIGHT = 24; // Subtype visual styles const SUBTYPE_STYLES = { - TABLE: { bg: 'bg-amber-900/20', border: 'border-amber-700', Icon: Table }, - RACK: { bg: 'bg-slate-800/50', border: 'border-slate-600', Icon: Server }, - TRAY: { bg: 'bg-emerald-900/20', border: 'border-emerald-700', Icon: Box }, - HANGER: { bg: 'bg-purple-900/20', border: 'border-purple-700', Icon: GripVertical }, - FLOOR: { bg: 'bg-stone-900/20', border: 'border-stone-600', Icon: Square }, + TABLE: { bg: 'bg-yellow-500/10', border: 'border-yellow-500/20', Icon: Table }, + RACK: { bg: 'bg-secondary/30', border: 'border-border', Icon: Server }, + TRAY: { bg: 'bg-primary/10', border: 'border-primary/20', Icon: Box }, + HANGER: { bg: 'bg-purple-500/10', border: 'border-purple-500/20', Icon: GripVertical }, + FLOOR: { bg: 'bg-muted/50', border: 'border-border', Icon: Square }, }; export function RackVisualizer({ @@ -96,21 +96,21 @@ export function RackVisualizer({ return (
{/* Rack header */} -
- - {rack.name} - ({rack.code}) +
+ + {rack.name} + ({rack.code})
{rack.tiers > 1 && ( - Tier {selectedTier}/{rack.tiers} + T{selectedTier}/{rack.tiers} )} {onConfigClick && ( )}
@@ -118,15 +118,15 @@ export function RackVisualizer({ {/* Tier tabs (if multi-tier) */} {rack.tiers > 1 && ( -
+
{Array.from({ length: rack.tiers }, (_, i) => i + 1).map(tier => (