@multiplatform.one/node-graph 7.7.4 → 7.8.0

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 (49) hide show
  1. package/dist/cjs/model/history.cjs +8 -4
  2. package/dist/cjs/model/history.native.js +8 -4
  3. package/dist/cjs/model/history.native.js.map +1 -1
  4. package/dist/cjs/native/GraphToolbar.cjs +21 -7
  5. package/dist/cjs/native/GraphToolbar.native.js +21 -7
  6. package/dist/cjs/native/GraphToolbar.native.js.map +1 -1
  7. package/dist/cjs/react-flow/useGraphController.cjs +9 -17
  8. package/dist/cjs/react-flow/useGraphController.native.js +10 -18
  9. package/dist/cjs/react-flow/useGraphController.native.js.map +1 -1
  10. package/dist/esm/model/history.mjs +8 -4
  11. package/dist/esm/model/history.mjs.map +1 -1
  12. package/dist/esm/model/history.native.js +8 -4
  13. package/dist/esm/model/history.native.js.map +1 -1
  14. package/dist/esm/native/GraphToolbar.mjs +18 -4
  15. package/dist/esm/native/GraphToolbar.mjs.map +1 -1
  16. package/dist/esm/native/GraphToolbar.native.js +18 -4
  17. package/dist/esm/native/GraphToolbar.native.js.map +1 -1
  18. package/dist/esm/react-flow/useGraphController.mjs +9 -17
  19. package/dist/esm/react-flow/useGraphController.mjs.map +1 -1
  20. package/dist/esm/react-flow/useGraphController.native.js +10 -18
  21. package/dist/esm/react-flow/useGraphController.native.js.map +1 -1
  22. package/dist/jsx/model/history.mjs +8 -4
  23. package/dist/jsx/model/history.mjs.map +1 -1
  24. package/dist/jsx/model/history.native.js +8 -4
  25. package/dist/jsx/model/history.native.js.map +1 -1
  26. package/dist/jsx/native/GraphToolbar.mjs +18 -4
  27. package/dist/jsx/native/GraphToolbar.mjs.map +1 -1
  28. package/dist/jsx/native/GraphToolbar.native.js +21 -7
  29. package/dist/jsx/native/GraphToolbar.native.js.map +1 -1
  30. package/dist/jsx/react-flow/useGraphController.mjs +9 -17
  31. package/dist/jsx/react-flow/useGraphController.mjs.map +1 -1
  32. package/dist/jsx/react-flow/useGraphController.native.js +10 -18
  33. package/dist/jsx/react-flow/useGraphController.native.js.map +1 -1
  34. package/package.json +7 -6
  35. package/src/NodeGraph.historyBridge.spec.tsx +87 -0
  36. package/src/bench/Perf200.stories.tsx +43 -11
  37. package/src/interaction/Lasso.stories.tsx +22 -7
  38. package/src/layout/AutoLayout.stories.spec.tsx +26 -0
  39. package/src/layout/AutoLayout.stories.tsx +22 -12
  40. package/src/model/history.spec.ts +19 -0
  41. package/src/model/history.ts +17 -6
  42. package/src/native/GraphToolbar.spec.tsx +53 -0
  43. package/src/native/GraphToolbar.tsx +18 -14
  44. package/src/react-flow/useGraphController.ts +14 -12
  45. package/types/model/history.d.ts +3 -2
  46. package/types/model/history.d.ts.map +1 -1
  47. package/types/native/GraphToolbar.d.ts +4 -10
  48. package/types/native/GraphToolbar.d.ts.map +1 -1
  49. package/types/react-flow/useGraphController.d.ts.map +1 -1
@@ -0,0 +1,53 @@
1
+ import { cleanup, fireEvent, screen } from "@testing-library/react";
2
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
3
+ import { afterEach, describe, expect, it, vi } from "vitest";
4
+ import { GraphToolbar } from "./GraphToolbar";
5
+
6
+ afterEach(cleanup);
7
+
8
+ describe("GraphToolbar actions", () => {
9
+ it("keeps every action independently reachable with the selected mode exposed", () => {
10
+ const onModeChange = vi.fn();
11
+ const callbacks = { onFitView: vi.fn(), onTidy: vi.fn(), onUndo: vi.fn(), onRedo: vi.fn() };
12
+ renderWithProviders(<GraphToolbar mode="pan" onModeChange={onModeChange} {...callbacks} />);
13
+ expect(screen.getByRole("button", { name: "Pan mode" }).getAttribute("aria-pressed")).toBe(
14
+ "true",
15
+ );
16
+ fireEvent.click(screen.getByRole("button", { name: "Select mode" }));
17
+ expect(onModeChange).toHaveBeenCalledExactlyOnceWith("select");
18
+ for (const [name, callback] of [
19
+ ["Fit the graph to the view", callbacks.onFitView],
20
+ ["Tidy the graph", callbacks.onTidy],
21
+ ["Undo", callbacks.onUndo],
22
+ ["Redo", callbacks.onRedo],
23
+ ] as const) {
24
+ fireEvent.click(screen.getByRole("button", { name }));
25
+ expect(callback).toHaveBeenCalledOnce();
26
+ }
27
+ });
28
+
29
+ it("keeps busy/history-disabled actions inert and optional actions absent", () => {
30
+ const onModeChange = vi.fn();
31
+ const onTidy = vi.fn();
32
+ const onUndo = vi.fn();
33
+ renderWithProviders(
34
+ <GraphToolbar
35
+ mode="select"
36
+ onModeChange={onModeChange}
37
+ onTidy={onTidy}
38
+ onUndo={onUndo}
39
+ busy
40
+ canUndo={false}
41
+ />,
42
+ );
43
+ for (const name of ["Tidy the graph", "Undo"]) {
44
+ const button = screen.getByRole("button", { name });
45
+ expect(button.getAttribute("aria-disabled")).toBe("true");
46
+ fireEvent.click(button);
47
+ }
48
+ expect(onTidy).not.toHaveBeenCalled();
49
+ expect(onUndo).not.toHaveBeenCalled();
50
+ expect(screen.queryByRole("button", { name: "Redo" })).toBeNull();
51
+ expect(screen.queryByRole("button", { name: "Fit the graph to the view" })).toBeNull();
52
+ });
53
+ });
@@ -23,17 +23,11 @@
23
23
  * that fights the platform's own double-tap zoom is worse than a visible
24
24
  * control. It renders only when a handler is given, so a read-only canvas
25
25
  * does not grow a dead button.
26
- * - selection is shown by DROPPING `chromeless` on the active button and
27
- * spreading the `textWeight` fragment onto it, never by a colour. Both are
28
- * Tamagui's own, so the active stop follows whatever theme the envelope
29
- * resolved and there is no literal here to drift from it. (`themeInverse`
30
- * would have been the obvious choice and is not a prop in Tamagui 2.7.6;
31
- * `ThemeProps` carries no `inverse` either, so the pressed state is
32
- * fill-and-weight rather than a theme flip.)
26
+ * - selection is exposed explicitly to the shared house Button, which owns
27
+ * selected paint and the control recipes on both platforms.
33
28
  *
34
- * Every style comes from a whole `knobProps.*` fragment spread (AGENTS.md).
35
- * Built from `tamagui` rather than `@multiplatform.one/components`, which is an
36
- * optional peer of this package.
29
+ * The toolbar surface resolves its own layout fragments. Its controls use the
30
+ * canonical forms Button so radius, type and interaction states keep one owner.
37
31
  *
38
32
  * A11y is expressed with `role` / `aria-*` and not with the React Native
39
33
  * `accessibility*` names, matching the house count (113 `aria-label` against 15
@@ -45,8 +39,9 @@
45
39
  * correct on both platforms rather than a web-only concession.
46
40
  */
47
41
 
48
- import { useResolvedKnobs } from "@multiplatform.one/theme";
49
- import { Button, XStack } from "tamagui";
42
+ import { pressTargetStyle, useResolvedKnobs } from "@multiplatform.one/theme";
43
+ import { Button } from "@multiplatform.one/forms";
44
+ import { XStack, isWeb } from "tamagui";
50
45
  import type { GraphInteractionMode } from "../interaction/useLassoSelect";
51
46
 
52
47
  export interface GraphToolbarProps {
@@ -104,6 +99,10 @@ export function GraphToolbar({
104
99
  {...knobProps.gap}
105
100
  {...knobProps.panelPadding}
106
101
  {...knobProps.elevatedSurface}
102
+ flexWrap="wrap"
103
+ maxWidth="100%"
104
+ minWidth={0}
105
+ flexShrink={1}
107
106
  >
108
107
  {modes.map((candidate) => {
109
108
  const active = candidate === mode;
@@ -111,12 +110,13 @@ export function GraphToolbar({
111
110
  <Button
112
111
  key={candidate}
113
112
  aria-label={`${modeLabels[candidate]} mode`}
114
- aria-pressed={active}
113
+ {...(isWeb ? { "aria-pressed": active } : { "aria-selected": active })}
114
+ selected={active}
115
115
  chromeless={!active}
116
116
  disabled={disabled}
117
117
  onPress={() => onModeChange(candidate)}
118
118
  size={knobProps.sizeToken}
119
- {...(active ? knobProps.textWeight : {})}
119
+ {...pressTargetStyle()}
120
120
  >
121
121
  {modeLabels[candidate]}
122
122
  </Button>
@@ -129,6 +129,7 @@ export function GraphToolbar({
129
129
  disabled={disabled}
130
130
  onPress={onFitView}
131
131
  size={knobProps.sizeToken}
132
+ {...pressTargetStyle()}
132
133
  >
133
134
  Fit
134
135
  </Button>
@@ -140,6 +141,7 @@ export function GraphToolbar({
140
141
  disabled={disabled || busy}
141
142
  onPress={onTidy}
142
143
  size={knobProps.sizeToken}
144
+ {...pressTargetStyle()}
143
145
  >
144
146
  {busy ? "Tidying…" : "Tidy"}
145
147
  </Button>
@@ -151,6 +153,7 @@ export function GraphToolbar({
151
153
  disabled={disabled || !canUndo}
152
154
  onPress={onUndo}
153
155
  size={knobProps.sizeToken}
156
+ {...pressTargetStyle()}
154
157
  >
155
158
  Undo
156
159
  </Button>
@@ -162,6 +165,7 @@ export function GraphToolbar({
162
165
  disabled={disabled || !canRedo}
163
166
  onPress={onRedo}
164
167
  size={knobProps.sizeToken}
168
+ {...pressTargetStyle()}
165
169
  >
166
170
  Redo
167
171
  </Button>
@@ -410,23 +410,25 @@ export function useGraphController<N extends NodeKindDefs, E extends EdgeKindDef
410
410
  [coarsePointer, commit, readOnly, size],
411
411
  );
412
412
 
413
+ const publishHistoryChange = useCallback(
414
+ (next: GraphDocument<N, E>, command: GraphCommand<N, E>) => {
415
+ if (next === documentRef.current) return;
416
+ if (!controlled) setOwnDocument(next);
417
+ documentRef.current = next;
418
+ onDocumentChange?.(next, command);
419
+ },
420
+ [controlled, onDocumentChange],
421
+ );
422
+
413
423
  const undo = useCallback(() => {
414
- const next = history.undo(documentRef.current);
424
+ history.undo(documentRef.current, publishHistoryChange);
415
425
  setHistoryVersion((version) => version + 1);
416
- if (next === documentRef.current) return;
417
- if (!controlled) setOwnDocument(next);
418
- documentRef.current = next;
419
- onDocumentChange?.(next, { t: "batch", commands: [] });
420
- }, [controlled, history, onDocumentChange]);
426
+ }, [history, publishHistoryChange]);
421
427
 
422
428
  const redo = useCallback(() => {
423
- const next = history.redo(documentRef.current);
429
+ history.redo(documentRef.current, publishHistoryChange);
424
430
  setHistoryVersion((version) => version + 1);
425
- if (next === documentRef.current) return;
426
- if (!controlled) setOwnDocument(next);
427
- documentRef.current = next;
428
- onDocumentChange?.(next, { t: "batch", commands: [] });
429
- }, [controlled, history, onDocumentChange]);
431
+ }, [history, publishHistoryChange]);
430
432
 
431
433
  return {
432
434
  document,
@@ -28,8 +28,9 @@ export interface HistoryOptions {
28
28
  export interface GraphHistory<N extends NodeKindDefs, E extends EdgeKindDefs> {
29
29
  /** Apply the command, record it, return the new document. */
30
30
  readonly commit: (doc: GraphDocument<N, E>, command: GraphCommand<N, E>) => GraphDocument<N, E>;
31
- readonly undo: (doc: GraphDocument<N, E>) => GraphDocument<N, E>;
32
- readonly redo: (doc: GraphDocument<N, E>) => GraphDocument<N, E>;
31
+ /** Notify command transports with the journal entry that produced the document. */
32
+ readonly undo: (doc: GraphDocument<N, E>, onApplied?: (next: GraphDocument<N, E>, command: GraphCommand<N, E>) => void) => GraphDocument<N, E>;
33
+ readonly redo: (doc: GraphDocument<N, E>, onApplied?: (next: GraphDocument<N, E>, command: GraphCommand<N, E>) => void) => GraphDocument<N, E>;
33
34
  readonly canUndo: () => boolean;
34
35
  readonly canRedo: () => boolean;
35
36
  readonly depth: () => number;
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/model/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY;IAC1E,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY;IAC1E,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChG,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAuBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAC1E,OAAO,GAAE,cAAmB,GAC3B,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAqFpB"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/model/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY;IAC1E,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY;IAC1E,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChG,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,KACzE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,KACzE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAuBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAC1E,OAAO,GAAE,cAAmB,GAC3B,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAyFpB"}
@@ -23,17 +23,11 @@
23
23
  * that fights the platform's own double-tap zoom is worse than a visible
24
24
  * control. It renders only when a handler is given, so a read-only canvas
25
25
  * does not grow a dead button.
26
- * - selection is shown by DROPPING `chromeless` on the active button and
27
- * spreading the `textWeight` fragment onto it, never by a colour. Both are
28
- * Tamagui's own, so the active stop follows whatever theme the envelope
29
- * resolved and there is no literal here to drift from it. (`themeInverse`
30
- * would have been the obvious choice and is not a prop in Tamagui 2.7.6;
31
- * `ThemeProps` carries no `inverse` either, so the pressed state is
32
- * fill-and-weight rather than a theme flip.)
26
+ * - selection is exposed explicitly to the shared house Button, which owns
27
+ * selected paint and the control recipes on both platforms.
33
28
  *
34
- * Every style comes from a whole `knobProps.*` fragment spread (AGENTS.md).
35
- * Built from `tamagui` rather than `@multiplatform.one/components`, which is an
36
- * optional peer of this package.
29
+ * The toolbar surface resolves its own layout fragments. Its controls use the
30
+ * canonical forms Button so radius, type and interaction states keep one owner.
37
31
  *
38
32
  * A11y is expressed with `role` / `aria-*` and not with the React Native
39
33
  * `accessibility*` names, matching the house count (113 `aria-label` against 15
@@ -1 +1 @@
1
- {"version":3,"file":"GraphToolbar.d.ts","sourceRoot":"","sources":["../../src/native/GraphToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC5D,wDAAwD;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,wBAAgB,YAAY,CAAC,EAC3B,IAAY,EACZ,OAAc,EACd,OAAc,EACd,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,GACP,EAAE,iBAAiB,2CA0EnB"}
1
+ {"version":3,"file":"GraphToolbar.d.ts","sourceRoot":"","sources":["../../src/native/GraphToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC5D,wDAAwD;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,wBAAgB,YAAY,CAAC,EAC3B,IAAY,EACZ,OAAc,EACd,OAAc,EACd,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,GACP,EAAE,iBAAiB,2CAmFnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGraphController.d.ts","sourceRoot":"","sources":["../../src/react-flow/useGraphController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGraphController.d.ts","sourceRoot":"","sources":["../../src/react-flow/useGraphController.ts"],"names":[],"mappings":"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"}