system-canvas-react 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/components/AlignmentGuidesLayer.d.ts +5 -0
  2. package/dist/components/AlignmentGuidesLayer.d.ts.map +1 -0
  3. package/dist/components/AlignmentGuidesLayer.js +7 -0
  4. package/dist/components/AlignmentGuidesLayer.js.map +1 -0
  5. package/dist/components/NodeToolbar.d.ts +6 -1
  6. package/dist/components/NodeToolbar.d.ts.map +1 -1
  7. package/dist/components/NodeToolbar.js +44 -4
  8. package/dist/components/NodeToolbar.js.map +1 -1
  9. package/dist/components/SystemCanvas.d.ts +12 -0
  10. package/dist/components/SystemCanvas.d.ts.map +1 -1
  11. package/dist/components/SystemCanvas.js +114 -11
  12. package/dist/components/SystemCanvas.js.map +1 -1
  13. package/dist/components/Viewport.d.ts +3 -0
  14. package/dist/components/Viewport.d.ts.map +1 -1
  15. package/dist/components/Viewport.js +3 -2
  16. package/dist/components/Viewport.js.map +1 -1
  17. package/dist/hooks/__tests__/alignment.test.d.ts +2 -0
  18. package/dist/hooks/__tests__/alignment.test.d.ts.map +1 -0
  19. package/dist/hooks/__tests__/alignment.test.js +200 -0
  20. package/dist/hooks/__tests__/alignment.test.js.map +1 -0
  21. package/dist/hooks/useAlignmentGuides.d.ts +11 -0
  22. package/dist/hooks/useAlignmentGuides.d.ts.map +1 -0
  23. package/dist/hooks/useAlignmentGuides.js +23 -0
  24. package/dist/hooks/useAlignmentGuides.js.map +1 -0
  25. package/dist/hooks/useNodeDrag.d.ts +5 -0
  26. package/dist/hooks/useNodeDrag.d.ts.map +1 -1
  27. package/dist/hooks/useNodeDrag.js +5 -3
  28. package/dist/hooks/useNodeDrag.js.map +1 -1
  29. package/dist/hooks/useNodeResize.d.ts +5 -0
  30. package/dist/hooks/useNodeResize.d.ts.map +1 -1
  31. package/dist/hooks/useNodeResize.js +11 -1
  32. package/dist/hooks/useNodeResize.js.map +1 -1
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/package.json +2 -2
@@ -0,0 +1,5 @@
1
+ import type { AlignmentGuide } from 'system-canvas';
2
+ export declare function AlignmentGuidesLayer({ guides }: {
3
+ guides: AlignmentGuide[];
4
+ }): import("react/jsx-runtime").JSX.Element | null;
5
+ //# sourceMappingURL=AlignmentGuidesLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlignmentGuidesLayer.d.ts","sourceRoot":"","sources":["../../src/components/AlignmentGuidesLayer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,kDAmB5E"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ export function AlignmentGuidesLayer({ guides }) {
3
+ if (guides.length === 0)
4
+ return null;
5
+ return (_jsx(_Fragment, { children: guides.map((g, i) => (_jsx("line", { x1: g.axis === 'x' ? g.position : g.span.start, y1: g.axis === 'y' ? g.position : g.span.start, x2: g.axis === 'x' ? g.position : g.span.end, y2: g.axis === 'y' ? g.position : g.span.end, stroke: "#38BDF8", strokeWidth: 1, strokeDasharray: "4 3", pointerEvents: "none" }, i))) }));
6
+ }
7
+ //# sourceMappingURL=AlignmentGuidesLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlignmentGuidesLayer.js","sourceRoot":"","sources":["../../src/components/AlignmentGuidesLayer.tsx"],"names":[],"mappings":";AAGA,MAAM,UAAU,oBAAoB,CAAC,EAAE,MAAM,EAAgC;IAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,CACL,4BACG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,eAEE,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAC9C,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAC9C,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAC5C,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAC5C,MAAM,EAAC,SAAS,EAChB,WAAW,EAAE,CAAC,EACd,eAAe,EAAC,KAAK,EACrB,aAAa,EAAC,MAAM,IARf,CAAC,CASN,CACH,CAAC,GACD,CACJ,CAAA;AACH,CAAC"}
@@ -31,6 +31,10 @@ interface NodeToolbarProps {
31
31
  * Called when a multi-select action fires — applied to every selected node.
32
32
  */
33
33
  onMultiPatch?: (patch: NodeUpdate) => void;
34
+ /** Called when an align action fires from the multi-select toolbar. */
35
+ onAlign?: (direction: AlignDirection) => void;
36
+ /** Called when a distribute action fires from the multi-select toolbar. */
37
+ onDistribute?: (axis: 'horizontal' | 'vertical') => void;
34
38
  }
35
39
  /**
36
40
  * A floating toolbar that appears above the selected node in editable mode.
@@ -46,6 +50,7 @@ interface NodeToolbarProps {
46
50
  * - Fully replaceable via the `render` prop, in which case the library
47
51
  * only positions the container and the consumer draws its contents.
48
52
  */
49
- export declare function NodeToolbar({ node, theme, onPatch, onDelete, getViewport, containerWidth, containerHeight, render, selectedNodes, onMultiPatch, }: NodeToolbarProps): import("react/jsx-runtime").JSX.Element;
53
+ export declare function NodeToolbar({ node, theme, onPatch, onDelete, getViewport, containerWidth, containerHeight, render, selectedNodes, onMultiPatch, onAlign, onDistribute, }: NodeToolbarProps): import("react/jsx-runtime").JSX.Element;
54
+ export type AlignDirection = 'left' | 'right' | 'top' | 'bottom' | 'centerH' | 'centerV';
50
55
  export {};
51
56
  //# sourceMappingURL=NodeToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeToolbar.d.ts","sourceRoot":"","sources":["../../src/components/NodeToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AACnE,OAAO,KAAK,EACV,WAAW,EAGX,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,eAAe,CAAA;AAuBtB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,kEAAkE;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,uBAAuB;IACvB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,+DAA+D;IAC/D,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,aAAa,CAAA;IAChC,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAA;IAC3D;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAC3C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,MAAM,EACN,aAAa,EACb,YAAY,GACb,EAAE,gBAAgB,2CAkKlB"}
1
+ {"version":3,"file":"NodeToolbar.d.ts","sourceRoot":"","sources":["../../src/components/NodeToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AACnE,OAAO,KAAK,EACV,WAAW,EAGX,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,eAAe,CAAA;AAuBtB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,kEAAkE;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,uBAAuB;IACvB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,+DAA+D;IAC/D,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,aAAa,CAAA;IAChC,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAA;IAC3D;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1C,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAC7C,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,KAAK,IAAI,CAAA;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,MAAM,EACN,aAAa,EACb,YAAY,EACZ,OAAO,EACP,YAAY,GACb,EAAE,gBAAgB,2CAoKlB;AAMD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA"}
@@ -29,7 +29,7 @@ const DELETE_SIZE = 14;
29
29
  * - Fully replaceable via the `render` prop, in which case the library
30
30
  * only positions the container and the consumer draws its contents.
31
31
  */
32
- export function NodeToolbar({ node, theme, onPatch, onDelete, getViewport, containerWidth, containerHeight, render, selectedNodes, onMultiPatch, }) {
32
+ export function NodeToolbar({ node, theme, onPatch, onDelete, getViewport, containerWidth, containerHeight, render, selectedNodes, onMultiPatch, onAlign, onDistribute, }) {
33
33
  const [viewport, setViewport] = useState(() => getViewport());
34
34
  useEffect(() => {
35
35
  let raf = 0;
@@ -152,9 +152,9 @@ export function NodeToolbar({ node, theme, onPatch, onDelete, getViewport, conta
152
152
  pointerEvents: 'auto',
153
153
  userSelect: 'none',
154
154
  whiteSpace: 'nowrap',
155
- }, children: isMulti && selectedNodes && onMultiPatch ? (_jsx(MultiToolbarContent, { selectedNodes: selectedNodes, theme: theme, onMultiPatch: onMultiPatch, onDelete: deleteNode })) : render ? (render({ node, theme, patch, deleteNode })) : (_jsx(DefaultToolbarContent, { node: node, theme: theme, onPatch: patch, onDelete: deleteNode })) }));
155
+ }, children: isMulti && selectedNodes && onMultiPatch ? (_jsx(MultiToolbarContent, { selectedNodes: selectedNodes, theme: theme, onMultiPatch: onMultiPatch, onDelete: deleteNode, onAlign: onAlign, onDistribute: onDistribute })) : render ? (render({ node, theme, patch, deleteNode })) : (_jsx(DefaultToolbarContent, { node: node, theme: theme, onPatch: patch, onDelete: deleteNode })) }));
156
156
  }
157
- function MultiToolbarContent({ selectedNodes, theme, onMultiPatch, onDelete, }) {
157
+ function MultiToolbarContent({ selectedNodes, theme, onMultiPatch, onDelete, onAlign, onDistribute, }) {
158
158
  // Use the first node as the representative for action resolution.
159
159
  const representativeNode = selectedNodes[0];
160
160
  const groups = useMemo(() => getNodeActionsForNode(representativeNode, theme), [representativeNode, theme]);
@@ -192,7 +192,47 @@ function MultiToolbarContent({ selectedNodes, theme, onMultiPatch, onDelete, })
192
192
  };
193
193
  return (_jsx(IconButton, { action: action, active: active, theme: theme, onClick: handleClick }, action.id));
194
194
  }) })] }, group.id));
195
- }), showDelete && (_jsxs(_Fragment, { children: [_jsx(Divider, { theme: theme }), _jsx(DeleteButton, { theme: theme, onDelete: onDelete })] }))] }));
195
+ }), onAlign && (_jsxs(_Fragment, { children: [_jsx(Divider, { theme: theme }), _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: BUTTON_GAP }, children: [
196
+ { dir: 'left', label: 'Align Left', path: 'M 3 3 L 3 13 M 5 6 L 13 6 M 5 10 L 11 10' },
197
+ { dir: 'right', label: 'Align Right', path: 'M 13 3 L 13 13 M 3 6 L 11 6 M 5 10 L 11 10' },
198
+ { dir: 'top', label: 'Align Top', path: 'M 3 3 L 13 3 M 6 5 L 6 13 M 10 5 L 10 11' },
199
+ { dir: 'bottom', label: 'Align Bottom', path: 'M 3 13 L 13 13 M 6 3 L 6 11 M 10 5 L 10 11' },
200
+ { dir: 'centerH', label: 'Center Horizontally', path: 'M 8 3 L 8 13 M 5 6 L 11 6 M 4 10 L 12 10' },
201
+ { dir: 'centerV', label: 'Center Vertically', path: 'M 3 8 L 13 8 M 6 5 L 6 11 M 10 4 L 10 12' },
202
+ ].map(({ dir, label, path }) => (_jsx("button", { type: "button", title: label, onClick: () => onAlign(dir), onMouseDown: (e) => e.preventDefault(), style: {
203
+ width: BUTTON_SIZE,
204
+ height: BUTTON_SIZE,
205
+ display: 'inline-flex',
206
+ alignItems: 'center',
207
+ justifyContent: 'center',
208
+ background: 'transparent',
209
+ border: `1px solid ${theme.breadcrumbs.separatorColor}`,
210
+ borderRadius: 6,
211
+ color: theme.breadcrumbs.textColor,
212
+ cursor: 'pointer',
213
+ padding: 0,
214
+ outline: 'none',
215
+ }, children: _jsx("svg", { width: 16, height: 16, viewBox: "0 0 16 16", children: _jsx("path", { d: path, fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }) }) }, dir))) })] })), onDistribute && (_jsxs(_Fragment, { children: [_jsx(Divider, { theme: theme }), _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: BUTTON_GAP }, children: ([
216
+ { axis: 'horizontal', label: 'Distribute Horizontally', path: 'M 3 3 L 3 13 M 13 3 L 13 13 M 7 6 L 7 10 M 9 6 L 9 10' },
217
+ { axis: 'vertical', label: 'Distribute Vertically', path: 'M 3 3 L 13 3 M 3 13 L 13 13 M 6 7 L 10 7 M 6 9 L 10 9' },
218
+ ]).map(({ axis, label, path }) => {
219
+ const disabled = selectedNodes.length < 3;
220
+ return (_jsx("button", { type: "button", title: label, disabled: disabled, onClick: () => !disabled && onDistribute(axis), onMouseDown: (e) => e.preventDefault(), style: {
221
+ width: BUTTON_SIZE,
222
+ height: BUTTON_SIZE,
223
+ display: 'inline-flex',
224
+ alignItems: 'center',
225
+ justifyContent: 'center',
226
+ background: 'transparent',
227
+ border: `1px solid ${theme.breadcrumbs.separatorColor}`,
228
+ borderRadius: 6,
229
+ color: disabled ? theme.breadcrumbs.separatorColor : theme.breadcrumbs.textColor,
230
+ cursor: disabled ? 'not-allowed' : 'pointer',
231
+ opacity: disabled ? 0.4 : 1,
232
+ padding: 0,
233
+ outline: 'none',
234
+ }, children: _jsx("svg", { width: 16, height: 16, viewBox: "0 0 16 16", children: _jsx("path", { d: path, fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }) }) }, axis));
235
+ }) })] })), showDelete && (_jsxs(_Fragment, { children: [_jsx(Divider, { theme: theme }), _jsx(DeleteButton, { theme: theme, onDelete: onDelete })] }))] }));
196
236
  }
197
237
  function DefaultToolbarContent({ node, theme, onPatch, onDelete, }) {
198
238
  // Per-node resolver: category.toolbar wins when present, else the
@@ -1 +1 @@
1
- {"version":3,"file":"NodeToolbar.js","sourceRoot":"","sources":["../../src/components/NodeToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeToolbar.js","sourceRoot":"","sources":["../../src/components/NodeToolbar.tsx"],"names":[],"mappings":"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"}
@@ -239,6 +239,18 @@ export interface SystemCanvasProps {
239
239
  * threshold.
240
240
  */
241
241
  zoomNavigation?: boolean | ZoomNavigationConfig;
242
+ /**
243
+ * Enable snap-to-grid during drag and resize.
244
+ * `true` = inherit `theme.grid.size`; `number` = explicit grid size in canvas px; falsy = off.
245
+ */
246
+ snapGrid?: boolean | number;
247
+ /** Alignment guide detection radius in canvas units. Default 4. */
248
+ guideThreshold?: number;
249
+ /**
250
+ * When true and 2+ nodes are selected, inject built-in align/distribute items into the
251
+ * right-click context menu for the selected group.
252
+ */
253
+ alignDistributeMenu?: boolean;
242
254
  /** Maximum undo/redo history depth. Defaults to 50. Only active when editable=true. */
243
255
  historyDepth?: number;
244
256
  /** Called after an undo step. Receives the canvasRef that was affected. */
@@ -1 +1 @@
1
- {"version":3,"file":"SystemCanvas.d.ts","sourceRoot":"","sources":["../../src/components/SystemCanvas.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SystemCanvas.d.ts","sourceRoot":"","sources":["../../src/components/SystemCanvas.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useRef, useCallback, useState, useEffect, useImperativeHandle, forwardRef, } from 'react';
3
- import { resolveTheme, resolveCanvas, buildNodeMap, darkTheme, themes, getNodeMenuOptions, createNodeFromOption, filterContextMenuItems, screenToCanvas, snapToLane, } from 'system-canvas';
3
+ import { resolveTheme, resolveCanvas, buildNodeMap, darkTheme, themes, getNodeMenuOptions, createNodeFromOption, filterContextMenuItems, screenToCanvas, snapToLane, alignNodes, distributeNodes, } from 'system-canvas';
4
4
  import { useNavigation } from '../hooks/useNavigation.js';
5
5
  import { useKeyboardShortcuts } from '../hooks/useKeyboardShortcuts.js';
6
6
  import { useCanvasInteraction } from '../hooks/useCanvasInteraction.js';
@@ -16,10 +16,11 @@ import { Breadcrumbs } from './Breadcrumbs.js';
16
16
  import { AddNodeButton } from './AddNodeButton.js';
17
17
  import { LaneHeaders } from './LaneHeaders.js';
18
18
  import { NodeToolbar } from './NodeToolbar.js';
19
+ import { useAlignmentGuides } from '../hooks/useAlignmentGuides.js';
19
20
  import { NodeContextMenuOverlay, } from './NodeContextMenuOverlay.js';
20
21
  const CASCADE_WINDOW_MS = 1500;
21
22
  const CASCADE_OFFSET = 20;
22
- export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolveCanvas, canvases, rootLabel = 'Home', onNavigate, onBreadcrumbClick, onBreadcrumbsChange, onNodeClick, onNodeDoubleClick, onEdgeClick, onEdgeDoubleClick, onContextMenu, onSelectionChange, nodeContextMenu, editable = false, onNodeAdd, onNodeUpdate, onNodesUpdate, onNodeDelete, onNodesDelete, onEdgeUpdate, onEdgeDelete, onEdgeAdd, canDropNodeOn, onNodeDrop, renderAddNodeButton, showNodeToolbar = true, renderNodeToolbar, theme: themeProp, themes: customThemes, edgeStyle = 'bezier', defaultViewport, minZoom: minZoomProp, maxZoom, onViewportChange, autoFit = 'canvas-change', laneHeaders = 'pinned', snapToLanes = false, zoomNavigation = false, historyDepth, onUndo, onRedo, className, style, }, forwardedRef) {
23
+ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolveCanvas, canvases, rootLabel = 'Home', onNavigate, onBreadcrumbClick, onBreadcrumbsChange, onNodeClick, onNodeDoubleClick, onEdgeClick, onEdgeDoubleClick, onContextMenu, onSelectionChange, nodeContextMenu, editable = false, onNodeAdd, onNodeUpdate, onNodesUpdate, onNodeDelete, onNodesDelete, onEdgeUpdate, onEdgeDelete, onEdgeAdd, canDropNodeOn, onNodeDrop, renderAddNodeButton, showNodeToolbar = true, renderNodeToolbar, theme: themeProp, themes: customThemes, edgeStyle = 'bezier', defaultViewport, minZoom: minZoomProp, maxZoom, onViewportChange, autoFit = 'canvas-change', laneHeaders = 'pinned', snapToLanes = false, zoomNavigation = false, snapGrid, guideThreshold, alignDistributeMenu, historyDepth, onUndo, onRedo, className, style, }, forwardedRef) {
23
24
  // Resolve zoom-nav config
24
25
  const zoomNavConfig = useMemo(() => {
25
26
  const defaults = {
@@ -125,6 +126,12 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
125
126
  resolveByName(canvas.theme?.base) ??
126
127
  darkTheme);
127
128
  }, [themeProp, customThemes, currentCanvas.theme?.base, canvas.theme?.base]);
129
+ // Snap-to-grid size (canvas units). 0 = off.
130
+ const snapGridSize = snapGrid === true
131
+ ? theme.grid.size
132
+ : typeof snapGrid === 'number'
133
+ ? snapGrid
134
+ : 0;
128
135
  // Resolve canvas data (apply theme, categories, defaults)
129
136
  const { nodes, edges, nodeMap } = useMemo(() => {
130
137
  const resolved = resolveCanvas(currentCanvas, theme);
@@ -431,7 +438,7 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
431
438
  const handleNodeDrop = useCallback((sources, target) => {
432
439
  onNodeDrop?.(sources, target, { canvasRef: currentCanvasRef });
433
440
  }, [onNodeDrop, currentCanvasRef]);
434
- const { dragOverrides, dropTargetId, onPointerDown: onNodePointerDown, cancelDrag, } = useNodeDrag({
441
+ const { dragOverrides, dropTargetId, onPointerDown: onNodePointerDown, cancelDrag, isDragging, } = useNodeDrag({
435
442
  viewport: viewportStateRef,
436
443
  nodesRef,
437
444
  onCommit: commitDragBatch,
@@ -439,10 +446,19 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
439
446
  canDropNodeOn,
440
447
  onNodeDrop: handleNodeDrop,
441
448
  selectedIdsRef,
449
+ snapGridSize,
442
450
  });
443
451
  const { resizeOverrides, onHandlePointerDown: onResizeHandlePointerDown } = useNodeResize({
444
452
  viewport: viewportStateRef,
445
453
  onCommit: commitResize,
454
+ snapGridSize,
455
+ });
456
+ // Alignment guides — live during drag, empty at rest.
457
+ const alignmentGuides = useAlignmentGuides({
458
+ dragOverrides,
459
+ nodesRef,
460
+ isDragging,
461
+ threshold: guideThreshold ?? 4,
446
462
  });
447
463
  // Selected node with live drag/resize overrides applied — used to position
448
464
  // the floating single-node toolbar and resize handles.
@@ -591,6 +607,24 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
591
607
  const handleBeginEditEdge = useCallback((edge) => {
592
608
  setEditingEdgeId(edge.id);
593
609
  }, []);
610
+ // Align / distribute callbacks — used by the multi-select toolbar and
611
+ // (optionally) injected into the right-click context menu.
612
+ const handleAlign = useCallback((direction) => {
613
+ const selectedNodes = Array.from(selectedIds)
614
+ .map((id) => nodesRef.current.find((n) => n.id === id))
615
+ .filter((n) => n != null);
616
+ const updates = alignNodes(selectedNodes, direction);
617
+ if (updates.length > 0)
618
+ wrappedOnNodesUpdate(updates, currentCanvasRef);
619
+ }, [selectedIds, nodesRef, wrappedOnNodesUpdate, currentCanvasRef]);
620
+ const handleDistribute = useCallback((axis) => {
621
+ const selectedNodes = Array.from(selectedIds)
622
+ .map((id) => nodesRef.current.find((n) => n.id === id))
623
+ .filter((n) => n != null);
624
+ const updates = distributeNodes(selectedNodes, axis);
625
+ if (updates.length > 0)
626
+ wrappedOnNodesUpdate(updates, currentCanvasRef);
627
+ }, [selectedIds, nodesRef, wrappedOnNodesUpdate, currentCanvasRef]);
594
628
  // Declarative node context menu state. `null` = closed; non-null is the
595
629
  // open menu's data (filtered items, target node, screen position, the
596
630
  // canvas ref the node lives on). Lives here rather than inside
@@ -614,16 +648,41 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
614
648
  */
615
649
  const handleContextMenu = useCallback((event) => {
616
650
  onContextMenu?.(event);
617
- if (!nodeContextMenu)
651
+ if (!nodeContextMenu && !alignDistributeMenu)
618
652
  return;
619
653
  if (event.type !== 'node')
620
654
  return;
621
655
  const node = event.target;
622
656
  if (!node)
623
657
  return;
624
- const matched = filterContextMenuItems(nodeContextMenu.items, node, {
625
- canvasRef: currentCanvasRef ?? null,
626
- });
658
+ const matchCtx = { canvasRef: currentCanvasRef ?? null };
659
+ const matched = nodeContextMenu
660
+ ? filterContextMenuItems(nodeContextMenu.items, node, matchCtx)
661
+ : [];
662
+ // Inject built-in align/distribute items when the right-clicked node
663
+ // is part of the current multi-selection (2+ nodes).
664
+ if (alignDistributeMenu && selectedIds.size >= 2 && selectedIds.has(node.id)) {
665
+ const canDistribute = selectedIds.size >= 3;
666
+ const builtins = [
667
+ { id: '__sys_align_left__', label: 'Align Left' },
668
+ { id: '__sys_align_right__', label: 'Align Right' },
669
+ { id: '__sys_align_top__', label: 'Align Top' },
670
+ { id: '__sys_align_bottom__', label: 'Align Bottom' },
671
+ { id: '__sys_align_centerH__', label: 'Align Center Horizontal' },
672
+ { id: '__sys_align_centerV__', label: 'Align Center Vertical' },
673
+ {
674
+ id: '__sys_distribute_h__',
675
+ label: 'Distribute Horizontally',
676
+ disabled: canDistribute ? undefined : () => !canDistribute,
677
+ },
678
+ {
679
+ id: '__sys_distribute_v__',
680
+ label: 'Distribute Vertically',
681
+ disabled: canDistribute ? undefined : () => !canDistribute,
682
+ },
683
+ ];
684
+ matched.push(...builtins);
685
+ }
627
686
  if (matched.length === 0) {
628
687
  // No items applied to this node — close any stale menu and let
629
688
  // the right-click be a no-op (the browser default is already
@@ -637,7 +696,51 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
637
696
  screenPosition: event.screenPosition,
638
697
  canvasRef: currentCanvasRef ?? null,
639
698
  });
640
- }, [onContextMenu, nodeContextMenu, currentCanvasRef]);
699
+ }, [onContextMenu, nodeContextMenu, currentCanvasRef, alignDistributeMenu, selectedIds]);
700
+ // Effective context menu config — wraps the consumer's config (if any) and
701
+ // intercepts built-in align/distribute IDs before delegating to the consumer.
702
+ const effectiveNodeContextMenu = useMemo(() => {
703
+ if (!nodeContextMenu && !alignDistributeMenu)
704
+ return null;
705
+ const baseItems = nodeContextMenu?.items ?? [];
706
+ const wrappedOnSelect = (itemId, node, ctx) => {
707
+ // Intercept built-in IDs.
708
+ if (itemId === '__sys_align_left__') {
709
+ handleAlign('left');
710
+ return;
711
+ }
712
+ if (itemId === '__sys_align_right__') {
713
+ handleAlign('right');
714
+ return;
715
+ }
716
+ if (itemId === '__sys_align_top__') {
717
+ handleAlign('top');
718
+ return;
719
+ }
720
+ if (itemId === '__sys_align_bottom__') {
721
+ handleAlign('bottom');
722
+ return;
723
+ }
724
+ if (itemId === '__sys_align_centerH__') {
725
+ handleAlign('centerH');
726
+ return;
727
+ }
728
+ if (itemId === '__sys_align_centerV__') {
729
+ handleAlign('centerV');
730
+ return;
731
+ }
732
+ if (itemId === '__sys_distribute_h__') {
733
+ handleDistribute('horizontal');
734
+ return;
735
+ }
736
+ if (itemId === '__sys_distribute_v__') {
737
+ handleDistribute('vertical');
738
+ return;
739
+ }
740
+ nodeContextMenu?.onSelect(itemId, node, ctx);
741
+ };
742
+ return { items: baseItems, onSelect: wrappedOnSelect };
743
+ }, [nodeContextMenu, alignDistributeMenu, handleAlign, handleDistribute]);
641
744
  // Interaction handlers
642
745
  const { handleNodeClick, handleNodeDoubleClick, handleNodeNavigate, handleEdgeClick, handleEdgeDoubleClick, handleCanvasClick, handleCanvasContextMenu, handleNodeContextMenu, handleEdgeContextMenu, } = useCanvasInteraction({
643
746
  onNodeClick,
@@ -774,7 +877,7 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
774
877
  fontFamily: theme.node.fontFamily,
775
878
  fontSize: 12,
776
879
  backdropFilter: 'blur(8px)',
777
- }, children: "Loading..." })), _jsx(Viewport, { ref: viewportHandleRef, nodes: nodes, edges: edges, nodeMap: nodeMap, theme: theme, edgeStyle: edgeStyle, columns: currentCanvas.columns, rows: currentCanvas.rows, canvases: canvases, minZoom: effectiveMinZoom, maxZoom: effectiveMaxZoom, defaultViewport: defaultViewport, autoFit: autoFit, canvasRef: currentCanvasRef, handoffTransform: pendingHandoff, onHandoffApplied: handleHandoffApplied, handoffFadeMs: zoomNavConfig.fadeDuration, onViewportChange: handleViewportChange, onNodeClick: handleNodeClick, onNodeDoubleClick: handleNodeDoubleClick, onNodeNavigate: handleNodeNavigate, onEdgeClick: handleEdgeClick, onEdgeDoubleClick: handleEdgeDoubleClick, onCanvasClick: editable ? handleCanvasClick : undefined, onCanvasContextMenu: handleCanvasContextMenu, onNodeContextMenu: handleNodeContextMenu, onEdgeContextMenu: handleEdgeContextMenu, onNodePointerDown: editable ? onNodePointerDown : undefined, selectedIds: editable ? selectedIds : undefined, marqueeRect: editable ? marqueeRect : null, marqueeActiveRef: editable ? marqueeActiveRef : undefined, editingId: editable ? editingId : null, selectedEdgeId: editable ? selectedEdgeId : null, editingEdgeId: editable ? editingEdgeId : null, dragOverrides: dragOverrides, dropTargetId: dropTargetId, resizeOverrides: resizeOverrides, onResizeHandlePointerDown: editable ? onResizeHandlePointerDown : undefined, onEditorCommit: handleEditorCommit, onEditorCancel: handleEditorCancel, onEdgeEditorCommit: handleEdgeEditorCommit, onEdgeEditorCancel: handleEdgeEditorCancel, pendingEdge: editable ? pendingEdge : null, onConnectionHandlePointerDown: editable ? onConnectionHandlePointerDown : undefined, edgeCreateEnabled: editable }), showLaneHeaders && (_jsx(LaneHeaders, { columns: currentCanvas.columns, rows: currentCanvas.rows, theme: theme, getViewport: getViewportState, width: containerSize.width, height: containerSize.height, pinned: laneHeaders === 'pinned' })), editable && showNodeToolbar && selectedIds.size === 1 && selectedResolvedNode && !editingId && (_jsx(NodeToolbar, { node: selectedResolvedNode, theme: theme, onPatch: (update) => {
880
+ }, children: "Loading..." })), _jsx(Viewport, { ref: viewportHandleRef, nodes: nodes, edges: edges, nodeMap: nodeMap, theme: theme, edgeStyle: edgeStyle, columns: currentCanvas.columns, rows: currentCanvas.rows, canvases: canvases, minZoom: effectiveMinZoom, maxZoom: effectiveMaxZoom, defaultViewport: defaultViewport, autoFit: autoFit, canvasRef: currentCanvasRef, handoffTransform: pendingHandoff, onHandoffApplied: handleHandoffApplied, handoffFadeMs: zoomNavConfig.fadeDuration, onViewportChange: handleViewportChange, onNodeClick: handleNodeClick, onNodeDoubleClick: handleNodeDoubleClick, onNodeNavigate: handleNodeNavigate, onEdgeClick: handleEdgeClick, onEdgeDoubleClick: handleEdgeDoubleClick, onCanvasClick: editable ? handleCanvasClick : undefined, onCanvasContextMenu: handleCanvasContextMenu, onNodeContextMenu: handleNodeContextMenu, onEdgeContextMenu: handleEdgeContextMenu, onNodePointerDown: editable ? onNodePointerDown : undefined, selectedIds: editable ? selectedIds : undefined, marqueeRect: editable ? marqueeRect : null, marqueeActiveRef: editable ? marqueeActiveRef : undefined, editingId: editable ? editingId : null, selectedEdgeId: editable ? selectedEdgeId : null, editingEdgeId: editable ? editingEdgeId : null, dragOverrides: dragOverrides, dropTargetId: dropTargetId, resizeOverrides: resizeOverrides, onResizeHandlePointerDown: editable ? onResizeHandlePointerDown : undefined, onEditorCommit: handleEditorCommit, onEditorCancel: handleEditorCancel, onEdgeEditorCommit: handleEdgeEditorCommit, onEdgeEditorCancel: handleEdgeEditorCancel, pendingEdge: editable ? pendingEdge : null, onConnectionHandlePointerDown: editable ? onConnectionHandlePointerDown : undefined, edgeCreateEnabled: editable, alignmentGuides: editable ? alignmentGuides : undefined }), showLaneHeaders && (_jsx(LaneHeaders, { columns: currentCanvas.columns, rows: currentCanvas.rows, theme: theme, getViewport: getViewportState, width: containerSize.width, height: containerSize.height, pinned: laneHeaders === 'pinned' })), editable && showNodeToolbar && selectedIds.size === 1 && selectedResolvedNode && !editingId && (_jsx(NodeToolbar, { node: selectedResolvedNode, theme: theme, onPatch: (update) => {
778
881
  wrappedOnNodeUpdate(selectedResolvedNode.id, update, currentCanvasRef);
779
882
  }, onDelete: () => {
780
883
  wrappedOnNodeDelete(selectedResolvedNode.id, currentCanvasRef);
@@ -793,10 +896,10 @@ export const SystemCanvas = forwardRef(function SystemCanvas({ canvas, onResolve
793
896
  }, onDelete: () => {
794
897
  wrappedOnNodesDelete(Array.from(selectedIds), currentCanvasRef);
795
898
  clearSelection();
796
- }, getViewport: getViewportState, containerWidth: containerSize.width, containerHeight: containerSize.height }));
899
+ }, getViewport: getViewportState, containerWidth: containerSize.width, containerHeight: containerSize.height, onAlign: handleAlign, onDistribute: handleDistribute }));
797
900
  })(), editable &&
798
901
  (renderAddNodeButton
799
902
  ? renderAddNodeButton(renderProps)
800
- : _jsx(AddNodeButton, { ...renderProps })), nodeContextMenu && (_jsx(NodeContextMenuOverlay, { state: contextMenuState, config: nodeContextMenu, theme: theme, onClose: () => setContextMenuState(null) }))] }));
903
+ : _jsx(AddNodeButton, { ...renderProps })), effectiveNodeContextMenu && (_jsx(NodeContextMenuOverlay, { state: contextMenuState, config: effectiveNodeContextMenu, theme: theme, onClose: () => setContextMenuState(null) }))] }));
801
904
  });
802
905
  //# sourceMappingURL=SystemCanvas.js.map