blob: eaaaf708391eb36238becf822089c428fd9f0f42 [file] [log] [blame]
gio3fb133d2025-06-13 07:20:24 +00001import { Resources } from "./components/resources";
2import { Canvas } from "./components/canvas";
3import { Details } from "./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 />
gio3d0bf032025-06-05 06:57:26 +000036 <ResizablePanel defaultSize={20} className="!overflow-y-auto !overflow-x-hidden">
giod0026612025-05-08 13:00:36 +000037 <Details />
38 </ResizablePanel>
39 </ResizablePanelGroup>
40 );
gio5f2f1002025-03-20 18:38:48 +040041}