/**
* @file Examples demonstrating various grid layout configurations for the node editor
*/
import * as React from "react";
import { NodeEditor, type GridLayoutConfig, type LayerDefinition } from "../../../../index";
import { InspectorPanel } from "../../../../components/inspector/InspectorPanel";
import { NodeCanvas } from "../../../../components/canvas/NodeCanvas";
import classes from "./ColumnLayoutExample.module.css";
// Example: Default layout (canvas + inspector)
export const DefaultLayoutExample: React.FC = () => {
return (
{/* No gridConfig/gridLayers specified - uses default canvas + inspector (300px, resizable) */}
);
};
// Example: Custom inspector width (wider, resizable)
export const CustomInspectorWidthExample: React.FC = () => {
const gridConfig: GridLayoutConfig = {
areas: [["canvas", "inspector"]],
rows: [{ size: "1fr" }],
columns: [
{ size: "1fr" },
{ size: "400px", resizable: true, minSize: 300, maxSize: 600 }, // Wider resizable inspector
],
gap: "0",
};
const gridLayers: LayerDefinition[] = [
{
id: "canvas",
component: ,
gridArea: "canvas",
},
{
id: "inspector",
component: ,
gridArea: "inspector",
},
];
return (
);
};
// Example: Canvas only (no inspector)
export const CanvasOnlyExample: React.FC = () => {
const gridConfig: GridLayoutConfig = {
areas: [["canvas"]],
rows: [{ size: "1fr" }],
columns: [{ size: "1fr" }],
gap: "0",
};
const gridLayers: LayerDefinition[] = [
{
id: "canvas",
component: ,
gridArea: "canvas",
},
];
return (
);
};
// Example: With custom toolbar
export const WithToolbarExample: React.FC = () => {
const toolbar = (
);
const gridConfig: GridLayoutConfig = {
areas: [
["toolbar", "toolbar"],
["canvas", "inspector"],
],
rows: [{ size: "auto" }, { size: "1fr" }],
columns: [{ size: "1fr" }, { size: "300px", resizable: true, minSize: 200, maxSize: 500 }],
gap: "0",
};
const gridLayers: LayerDefinition[] = [
{
id: "toolbar",
component: toolbar,
gridArea: "toolbar",
zIndex: 2,
},
{
id: "canvas",
component: ,
gridArea: "canvas",
zIndex: 0,
},
{
id: "inspector",
component: ,
gridArea: "inspector",
zIndex: 1,
},
];
return (
);
};