From 2f67ad2fe33db63eda87898445d6612386e146be Mon Sep 17 00:00:00 2001
From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com>
Date: Sat, 27 Dec 2025 15:06:47 -0800
Subject: [PATCH] fix: Restore RoomLayoutWizard with native select/slider and
add Tabs component
---
.../components/layout/RoomLayoutWizard.tsx | 37 ++++-----
frontend/src/components/ui/tabs.tsx | 81 +++++++++++++++++++
2 files changed, 98 insertions(+), 20 deletions(-)
create mode 100644 frontend/src/components/ui/tabs.tsx
diff --git a/frontend/src/components/layout/RoomLayoutWizard.tsx b/frontend/src/components/layout/RoomLayoutWizard.tsx
index 29f4e61..cf30aea 100644
--- a/frontend/src/components/layout/RoomLayoutWizard.tsx
+++ b/frontend/src/components/layout/RoomLayoutWizard.tsx
@@ -3,10 +3,8 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '
import { Button } from '../ui/button';
import { Input } from '../ui/input';
import { Label } from '../ui/label';
-import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select';
-import { Slider } from '../ui/slider';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '../ui/tabs';
-import { api } from '../../lib/api';
+import api from '../../lib/api';
import { layoutApi } from '../../lib/layoutApi';
import { Loader2, Wand2, Box, Layers, Grid } from 'lucide-react';
@@ -84,20 +82,16 @@ export function RoomLayoutWizard({ isOpen, onClose, onSuccess, floorId }: RoomLa
-
+
+
+
+
+
@@ -129,11 +123,14 @@ export function RoomLayoutWizard({ isOpen, onClose, onSuccess, floorId }: RoomLa
{formData.racksCount}
- setFormData({ ...formData, racksCount: val })}
- min={1} max={20} step={1}
- className="py-4"
+ setFormData({ ...formData, racksCount: parseInt(e.target.value) })}
+ className="w-full h-2 bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-emerald-500"
/>
diff --git a/frontend/src/components/ui/tabs.tsx b/frontend/src/components/ui/tabs.tsx
new file mode 100644
index 0000000..ca21711
--- /dev/null
+++ b/frontend/src/components/ui/tabs.tsx
@@ -0,0 +1,81 @@
+import * as React from "react"
+import { cn } from "../../lib/utils"
+
+const TabsContext = React.createContext<{ value: string; onValueChange?: (v: string) => void } | null>(null)
+
+const Tabs = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes & { value: string; onValueChange?: (value: string) => void }
+>(({ className, value, onValueChange, ...props }, ref) => (
+
+
+
+))
+Tabs.displayName = "Tabs"
+
+const TabsList = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+TabsList.displayName = "TabsList"
+
+const TabsTrigger = React.forwardRef<
+ HTMLButtonElement,
+ React.ButtonHTMLAttributes & { value: string }
+>(({ className, value, onClick, ...props }, ref) => {
+ const context = React.useContext(TabsContext)
+ const isActive = context?.value === value
+
+ return (
+