system-canvas-react 0.2.6 → 0.2.8
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.
- package/dist/components/AlignmentGuidesLayer.d.ts +5 -0
- package/dist/components/AlignmentGuidesLayer.d.ts.map +1 -0
- package/dist/components/AlignmentGuidesLayer.js +7 -0
- package/dist/components/AlignmentGuidesLayer.js.map +1 -0
- package/dist/components/NodeToolbar.d.ts +6 -1
- package/dist/components/NodeToolbar.d.ts.map +1 -1
- package/dist/components/NodeToolbar.js +44 -4
- package/dist/components/NodeToolbar.js.map +1 -1
- package/dist/components/SystemCanvas.d.ts +12 -0
- package/dist/components/SystemCanvas.d.ts.map +1 -1
- package/dist/components/SystemCanvas.js +114 -11
- package/dist/components/SystemCanvas.js.map +1 -1
- package/dist/components/Viewport.d.ts +3 -0
- package/dist/components/Viewport.d.ts.map +1 -1
- package/dist/components/Viewport.js +3 -2
- package/dist/components/Viewport.js.map +1 -1
- package/dist/hooks/__tests__/search.test.d.ts +2 -0
- package/dist/hooks/__tests__/search.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/search.test.js +121 -0
- package/dist/hooks/__tests__/search.test.js.map +1 -0
- package/dist/hooks/useAlignmentGuides.d.ts +11 -0
- package/dist/hooks/useAlignmentGuides.d.ts.map +1 -0
- package/dist/hooks/useAlignmentGuides.js +23 -0
- package/dist/hooks/useAlignmentGuides.js.map +1 -0
- package/dist/hooks/useNodeDrag.d.ts +5 -0
- package/dist/hooks/useNodeDrag.d.ts.map +1 -1
- package/dist/hooks/useNodeDrag.js +5 -3
- package/dist/hooks/useNodeDrag.js.map +1 -1
- package/dist/hooks/useNodeResize.d.ts +5 -0
- package/dist/hooks/useNodeResize.d.ts.map +1 -1
- package/dist/hooks/useNodeResize.js +11 -1
- package/dist/hooks/useNodeResize.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -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;
|
|
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
|
-
}),
|
|
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":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EAErB,UAAU,EACV,UAAU,EAEX,MAAM,eAAe,CAAA;
|
|
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
|
|
625
|
-
|
|
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 })),
|
|
903
|
+
: _jsx(AddNodeButton, { ...renderProps })), effectiveNodeContextMenu && (_jsx(NodeContextMenuOverlay, { state: contextMenuState, config: effectiveNodeContextMenu, theme: theme, onClose: () => setContextMenuState(null) }))] }));
|
|
801
904
|
});
|
|
802
905
|
//# sourceMappingURL=SystemCanvas.js.map
|