blob: ae7e137a8256042a82513c694c6483d6539c6709 [file] [log] [blame]
gio5f2f1002025-03-20 18:38:48 +04001import { Resources } from "@/components/resources";
2import { Canvas } from "@/components/canvas";
3import { Details } from "@/components/details";
giod0026612025-05-08 13:00:36 +00004import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./components/ui/resizable";
giob77cb932025-05-19 09:37:14 +00005import { Tools } from "./Tools";
gio818da4e2025-05-12 14:45:35 +00006import { useStateStore } from "./lib/state";
gio5f2f1002025-03-20 18:38:48 +04007
8export function CanvasBuilder() {
gio818da4e2025-05-12 14:45:35 +00009 const store = useStateStore();
giod0026612025-05-08 13:00:36 +000010 return (
giobc47f9f2025-05-12 08:31:07 +000011 <ResizablePanelGroup direction="horizontal" className="w-full h-full">
giod0026612025-05-08 13:00:36 +000012 <ResizablePanel defaultSize={80}>
13 <ResizablePanelGroup direction="vertical">
14 <ResizablePanel defaultSize={80}>
15 <ResizablePanelGroup direction="horizontal">
gio818da4e2025-05-12 14:45:35 +000016 {store.mode === "edit" && (
17 <>
18 <ResizablePanel defaultSize={15}>
19 <Resources />
20 </ResizablePanel>
21 <ResizableHandle withHandle />
22 </>
23 )}
24 <ResizablePanel defaultSize={store.mode === "edit" ? 85 : 100}>
giod0026612025-05-08 13:00:36 +000025 <Canvas />
26 </ResizablePanel>
27 </ResizablePanelGroup>
28 </ResizablePanel>
29 <ResizableHandle withHandle />
30 <ResizablePanel defaultSize={20}>
31 <Tools />
32 </ResizablePanel>
33 </ResizablePanelGroup>
34 </ResizablePanel>
35 <ResizableHandle withHandle />
gio8cadbc72025-05-16 07:51:02 +000036 <ResizablePanel defaultSize={20} className="!overflow-y-auto">
giod0026612025-05-08 13:00:36 +000037 <Details />
38 </ResizablePanel>
39 </ResizablePanelGroup>
40 );
gio5f2f1002025-03-20 18:38:48 +040041}