@likec4/diagram 1.23.1 → 1.24.1

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 (118) hide show
  1. package/dist/LikeC4Diagram.css.d.ts +5 -0
  2. package/dist/LikeC4Diagram.css.js +1 -0
  3. package/dist/LikeC4Diagram.d.ts +1 -1
  4. package/dist/LikeC4Diagram.js +6 -2
  5. package/dist/LikeC4Diagram.props.d.ts +6 -0
  6. package/dist/StaticLikeC4Diagram.js +2 -1
  7. package/dist/base/BaseXYFlow.d.ts +1 -1
  8. package/dist/base/BaseXYFlow.js +12 -3
  9. package/dist/base/const.d.ts +1 -1
  10. package/dist/base/const.js +1 -1
  11. package/dist/base/primitives/compound/CompoundActionButton.css.js +2 -0
  12. package/dist/base/primitives/compound/CompoundDetailsButton.css.js +2 -0
  13. package/dist/base/primitives/compound/CompoundNodeContainer.css.d.ts +0 -1
  14. package/dist/base/primitives/compound/CompoundNodeContainer.css.js +4 -4
  15. package/dist/base/primitives/compound/CompoundNodeContainer.js +35 -22
  16. package/dist/base/primitives/compound/CompoundTitle.css.js +3 -1
  17. package/dist/base/primitives/customNode.js +1 -1
  18. package/dist/base/primitives/edge/EdgeContainer.js +5 -4
  19. package/dist/base/primitives/edge/EdgeLabel.css.d.ts +0 -1
  20. package/dist/base/primitives/edge/EdgeLabel.css.js +2 -5
  21. package/dist/base/primitives/edge/EdgeLabel.js +5 -5
  22. package/dist/base/primitives/edge/edge.css.d.ts +1 -1
  23. package/dist/base/primitives/edge/edge.css.js +4 -5
  24. package/dist/base/primitives/element/ElementActionButtons.css.js +2 -0
  25. package/dist/base/primitives/element/ElementActionButtons.js +4 -3
  26. package/dist/base/primitives/element/ElementDetailsButton.css.js +2 -0
  27. package/dist/base/primitives/element/ElementNodeContainer.css.js +2 -0
  28. package/dist/base/primitives/element/ElementNodeContainer.js +3 -1
  29. package/dist/base/primitives/element/ElementShape.css.js +4 -2
  30. package/dist/base/primitives/element/ElementShape.js +2 -3
  31. package/dist/base/primitives/element/ElementTitle.css.js +2 -0
  32. package/dist/base/primitives/element/styles.css.js +2 -0
  33. package/dist/components/SearchControl.css.js +2 -0
  34. package/dist/context/FramerMotionConfig.d.ts +9 -1
  35. package/dist/context/FramerMotionConfig.js +5 -2
  36. package/dist/context/RootContainer.js +13 -1
  37. package/dist/diagram.css +1 -1
  38. package/dist/globals.css.d.ts +2 -0
  39. package/dist/hooks/safeContext.js +1 -0
  40. package/dist/hooks/useDiagram.d.ts +415 -693
  41. package/dist/hooks/useDiagram.js +1 -0
  42. package/dist/hooks/useIsReducedGraphics.d.ts +4 -0
  43. package/dist/hooks/useIsReducedGraphics.js +8 -0
  44. package/dist/hooks/useXYFlow.js +1 -1
  45. package/dist/likec4diagram/DiagramUI.d.ts +2 -1
  46. package/dist/likec4diagram/DiagramUI.js +5 -3
  47. package/dist/likec4diagram/custom/nodes/nodeTypes.js +2 -2
  48. package/dist/likec4diagram/ui/controls/styles.css.js +2 -0
  49. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.js +2 -0
  50. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +3 -4
  51. package/dist/likec4diagram/ui/search/LikeC4Search.css.js +2 -0
  52. package/dist/overlays/element-details/ElementDetailsCard.js +12 -8
  53. package/dist/overlays/element-details/actor.d.ts +9084 -2569
  54. package/dist/overlays/overlay/Overlay.js +6 -3
  55. package/dist/overlays/relationship-details/RelationshipDetails.js +31 -17
  56. package/dist/overlays/relationship-details/actor.d.ts +228 -3
  57. package/dist/overlays/relationship-details/actor.js +86 -14
  58. package/dist/overlays/relationship-details/hooks.d.ts +3 -0
  59. package/dist/overlays/relationship-details/hooks.js +6 -2
  60. package/dist/overlays/relationships-browser/-useRelationshipsView.js +12 -3
  61. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +12 -3
  62. package/dist/overlays/relationships-browser/actor.d.ts +271 -54
  63. package/dist/overlays/relationships-browser/actor.js +86 -23
  64. package/dist/state/DiagramActorProvider.js +12 -2
  65. package/dist/state/diagram-machine.d.ts +426 -694
  66. package/dist/state/diagram-machine.js +89 -68
  67. package/dist/state/persistence.d.ts +5 -0
  68. package/dist/state/persistence.js +23 -0
  69. package/package.json +9 -9
  70. package/src/LikeC4Diagram.css.ts +13 -5
  71. package/src/LikeC4Diagram.props.ts +7 -0
  72. package/src/LikeC4Diagram.tsx +33 -24
  73. package/src/StaticLikeC4Diagram.tsx +2 -1
  74. package/src/base/BaseXYFlow.tsx +14 -9
  75. package/src/base/const.ts +1 -1
  76. package/src/base/primitives/compound/CompoundActionButton.css.ts +6 -0
  77. package/src/base/primitives/compound/CompoundDetailsButton.css.ts +4 -0
  78. package/src/base/primitives/compound/CompoundNodeContainer.css.ts +41 -59
  79. package/src/base/primitives/compound/CompoundNodeContainer.tsx +42 -22
  80. package/src/base/primitives/compound/CompoundTitle.css.ts +14 -13
  81. package/src/base/primitives/customNode.ts +3 -2
  82. package/src/base/primitives/edge/EdgeContainer.tsx +4 -3
  83. package/src/base/primitives/edge/EdgeLabel.css.ts +17 -11
  84. package/src/base/primitives/edge/EdgeLabel.tsx +4 -4
  85. package/src/base/primitives/edge/edge.css.ts +47 -27
  86. package/src/base/primitives/element/ElementActionButtons.css.ts +4 -0
  87. package/src/base/primitives/element/ElementActionButtons.tsx +4 -2
  88. package/src/base/primitives/element/ElementDetailsButton.css.ts +6 -8
  89. package/src/base/primitives/element/ElementNodeContainer.css.ts +18 -21
  90. package/src/base/primitives/element/ElementNodeContainer.tsx +3 -1
  91. package/src/base/primitives/element/ElementShape.css.ts +10 -6
  92. package/src/base/primitives/element/ElementShape.tsx +2 -2
  93. package/src/components/SearchControl.css.ts +11 -4
  94. package/src/context/FramerMotionConfig.tsx +13 -2
  95. package/src/context/RootContainer.tsx +9 -2
  96. package/src/globals.css.ts +3 -0
  97. package/src/hooks/safeContext.tsx +2 -1
  98. package/src/hooks/useDiagram.ts +1 -0
  99. package/src/hooks/useIsReducedGraphics.ts +5 -0
  100. package/src/hooks/useXYFlow.ts +1 -1
  101. package/src/likec4diagram/DiagramUI.tsx +5 -3
  102. package/src/likec4diagram/custom/nodes/nodeTypes.tsx +2 -2
  103. package/src/likec4diagram/ui/controls/styles.css.ts +11 -1
  104. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.ts +10 -3
  105. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +6 -3
  106. package/src/likec4diagram/ui/search/LikeC4Search.css.ts +1 -0
  107. package/src/overlays/element-details/ElementDetailsCard.tsx +238 -231
  108. package/src/overlays/overlay/Overlay.css.ts +1 -9
  109. package/src/overlays/overlay/Overlay.tsx +6 -3
  110. package/src/overlays/relationship-details/RelationshipDetails.tsx +83 -66
  111. package/src/overlays/relationship-details/actor.ts +106 -13
  112. package/src/overlays/relationship-details/hooks.ts +6 -2
  113. package/src/overlays/relationships-browser/-useRelationshipsView.ts +10 -0
  114. package/src/overlays/relationships-browser/RelationshipsBrowser.tsx +16 -8
  115. package/src/overlays/relationships-browser/actor.ts +92 -22
  116. package/src/state/DiagramActorProvider.tsx +13 -2
  117. package/src/state/diagram-machine.ts +88 -65
  118. package/src/state/persistence.ts +22 -0
@@ -4,7 +4,7 @@ import { FeatureName } from '../context/DiagramFeatures';
4
4
  import { OpenSourceParams } from '../LikeC4Diagram.props';
5
5
  import { Types } from '../likec4diagram/types';
6
6
  import { AlignmentMode } from '../state/aligners';
7
- import { DiagramActorSnapshot, DiagramContext, SyncLayoutActorSnapshot } from '../state/types';
7
+ import { DiagramActorSnapshot, DiagramContext, SyncLayoutActorSnapshot, DiagramActorRef } from '../state/types';
8
8
  import { useDiagramActorRef } from './safeContext';
9
9
  import { Events, Input, ActionArg } from '../state/diagram-machine';
10
10
  import { MachineSnapshot, ActorRefFromLogic, StateMachine, NonReducibleUnknown, EventObject, MetaObject, AnyActorLogic, ConditionalRequired, InputFrom, RequiredLogicInput, IsNotNever, ActorRef, AnyActorRef, StateValue, AnyEventObject, ActionFunction, CallbackActorLogic, Values, RequiredActorOptions, GetConcreteByKey, CancelAction, StopAction } from 'xstate';
@@ -12,12 +12,14 @@ import { Input, Events } from '../state/syncManualLayoutActor';
12
12
  import { HotKeyEvent } from '../state/hotkeyActor';
13
13
  import { OverlaysContext, OverlayActorEvent, OverlayActorEmitedEvent } from '../overlays/overlaysActor';
14
14
  import { ElementDetailsLogic } from '../overlays/element-details/actor';
15
+ import { EnabledFeatures } from '../context';
15
16
  import { ReactFlowState, ReactFlowInstance } from '@xyflow/react';
16
17
  import { EdgeMarkerType, HandleType, XYPosition, Viewport, NodeChange, EdgeChange } from '@xyflow/system';
17
18
  import { ReactNode, CSSProperties } from 'react';
18
19
  import { focusedBounds } from '../state/utils';
19
20
  export { useDiagramActorRef };
20
21
  export declare function useDiagram(): {
22
+ actor: DiagramActorRef;
21
23
  send: (event: Events) => void;
22
24
  navigateTo: (viewId: ViewId, fromNode?: NodeId) => void;
23
25
  navigate: (direction: "back" | "forward") => void;
@@ -284,9 +286,7 @@ export declare function useDiagram(): {
284
286
  };
285
287
  readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
286
288
  }>>;
287
- }, "initializing" | "idle" | "walkthrough" | "focused" | {
288
- navigating: "done" | "pending";
289
- }, string, NonReducibleUnknown, MetaObject, {
289
+ }, "initializing" | "idle" | "walkthrough" | "focused" | "navigating", string, NonReducibleUnknown, MetaObject, {
290
290
  readonly initial: "initializing";
291
291
  readonly context: ({ input, self, spawn }: {
292
292
  spawn: {
@@ -1091,9 +1091,7 @@ export declare function useDiagram(): {
1091
1091
  enableLikeC4Model: boolean;
1092
1092
  enableVscode: boolean;
1093
1093
  };
1094
- toggledFeatures: {
1095
- enableReadOnly: true;
1096
- };
1094
+ toggledFeatures: Partial< EnabledFeatures>;
1097
1095
  initialized: false;
1098
1096
  viewportChangedManually: false;
1099
1097
  lastOnNavigate: null;
@@ -1880,6 +1878,14 @@ export declare function useDiagram(): {
1880
1878
  type: "trigger:OpenSource";
1881
1879
  params: OpenSourceParams;
1882
1880
  };
1881
+ "assign lastClickedNode": {
1882
+ type: "assign lastClickedNode";
1883
+ params: NonReducibleUnknown;
1884
+ };
1885
+ "open source of focused or last clicked node": {
1886
+ type: "open source of focused or last clicked node";
1887
+ params: NonReducibleUnknown;
1888
+ };
1883
1889
  "xyflow:setViewportCenter": {
1884
1890
  type: "xyflow:setViewportCenter";
1885
1891
  params: {
@@ -1934,8 +1940,8 @@ export declare function useDiagram(): {
1934
1940
  type: "is another view";
1935
1941
  params: unknown;
1936
1942
  };
1937
- "click: selected node ": {
1938
- type: "click: selected node ";
1943
+ "click: selected node": {
1944
+ type: "click: selected node";
1939
1945
  params: unknown;
1940
1946
  };
1941
1947
  "click: same node": {
@@ -1946,6 +1952,10 @@ export declare function useDiagram(): {
1946
1952
  type: "click: focused node";
1947
1953
  params: unknown;
1948
1954
  };
1955
+ "click: node has connections": {
1956
+ type: "click: node has connections";
1957
+ params: unknown;
1958
+ };
1949
1959
  }>, never, EventObject>;
1950
1960
  readonly target: "idle";
1951
1961
  };
@@ -2215,263 +2225,7 @@ export declare function useDiagram(): {
2215
2225
  }>, never, never, never, never>];
2216
2226
  readonly target: "focused";
2217
2227
  }, {
2218
- readonly actions: ActionFunction<DiagramContext, {
2219
- type: "xyflow.nodeClick";
2220
- node: Types.Node;
2221
- }, Events, undefined, Values<{
2222
- syncManualLayoutActorLogic: {
2223
- src: "syncManualLayoutActorLogic";
2224
- logic: StateMachine<Readonly< Input>, Events, {}, never, {
2225
- type: "trigger:OnChange";
2226
- params: {
2227
- change: ViewChange;
2228
- };
2229
- }, {
2230
- type: "same view";
2231
- params: unknown;
2232
- }, "timeout", "paused" | "stopped" | "idle" | "synced" | "pending", "pending" | "ready", Input, NonReducibleUnknown, EventObject, MetaObject, {
2233
- readonly initial: "idle";
2234
- readonly context: ({ input }: {
2235
- spawn: {
2236
- <TSrc extends never>(logic: TSrc, ...[options]: never): ActorRefFromLogic<never>;
2237
- <TLogic extends AnyActorLogic>(src: TLogic, ...[options]: ConditionalRequired<[options?: {
2238
- id?: never;
2239
- systemId?: string;
2240
- input?: InputFrom<TLogic>;
2241
- syncSnapshot?: boolean;
2242
- } & { [K in RequiredLogicInput<TLogic>]: unknown; }], IsNotNever<RequiredLogicInput<TLogic>>>): ActorRefFromLogic<TLogic>;
2243
- };
2244
- input: Input;
2245
- self: ActorRef<MachineSnapshot<Readonly< Input>, Events, Record<string, AnyActorRef | undefined>, StateValue, string, unknown, any, any>, Events, AnyEventObject>;
2246
- }) => {
2247
- parent: ActorRef<MachineSnapshot<DiagramContext, Events, any, any, any, any, any, any>, Events, any>;
2248
- viewId: ViewId;
2249
- };
2250
- readonly states: {
2251
- readonly idle: {
2252
- readonly tags: "ready";
2253
- readonly on: {
2254
- readonly sync: {
2255
- readonly target: "pending";
2256
- };
2257
- };
2258
- };
2259
- readonly paused: {
2260
- readonly tags: "pending";
2261
- readonly on: {
2262
- readonly sync: {
2263
- readonly target: "pending";
2264
- };
2265
- };
2266
- };
2267
- readonly pending: {
2268
- readonly tags: "pending";
2269
- readonly on: {
2270
- readonly sync: {
2271
- readonly target: "pending";
2272
- readonly reenter: true;
2273
- };
2274
- readonly cancel: {
2275
- readonly target: "paused";
2276
- };
2277
- };
2278
- readonly after: {
2279
- readonly timeout: readonly [{
2280
- readonly guard: "same view";
2281
- readonly actions: {
2282
- readonly type: "trigger:OnChange";
2283
- readonly params: ({ context }: {
2284
- context: Readonly< Input>;
2285
- event: Events;
2286
- }) => {
2287
- change: import("@likec4/core").ViewChange.SaveManualLayout;
2288
- };
2289
- };
2290
- readonly target: "synced";
2291
- }, {
2292
- readonly target: "stopped";
2293
- }];
2294
- };
2295
- };
2296
- readonly synced: {
2297
- readonly tags: "ready";
2298
- readonly on: {
2299
- readonly sync: {
2300
- readonly target: "pending";
2301
- };
2302
- };
2303
- };
2304
- readonly stopped: {
2305
- readonly entry: ActionFunction<Readonly< Input>, Events, Events, undefined, never, never, never, never, never>;
2306
- readonly type: "final";
2307
- };
2308
- };
2309
- readonly on: {
2310
- readonly synced: {
2311
- readonly target: ".synced";
2312
- };
2313
- readonly stop: {
2314
- readonly target: ".stopped";
2315
- };
2316
- };
2317
- }>;
2318
- id: "syncLayout";
2319
- };
2320
- hotkeyActorLogic: {
2321
- src: "hotkeyActorLogic";
2322
- logic: CallbackActorLogic<AnyEventObject, NonReducibleUnknown, HotKeyEvent>;
2323
- id: "hotkey";
2324
- };
2325
- overlaysActorLogic: {
2326
- src: "overlaysActorLogic";
2327
- logic: StateMachine<OverlaysContext, OverlayActorEvent, {
2328
- [x: `elementDetails-${number}`]: ActorRefFromLogic<ElementDetailsLogic> | undefined;
2329
- [x: `relationshipDetails-${number}`]: ActorRefFromLogic<import("../overlays/types").Overlays.RelationshipDetails.Logic> | undefined;
2330
- [x: `relationshipsBrowser-${number}`]: ActorRefFromLogic<import("../overlays/types").Overlays.RelationshipsBrowser.Logic> | undefined;
2331
- hotkey?: ActorRefFromLogic<CallbackActorLogic<EventObject, NonReducibleUnknown, EventObject>>;
2332
- }, Values<{
2333
- elementDetails: {
2334
- src: "elementDetails";
2335
- logic: ElementDetailsLogic;
2336
- id: `elementDetails-${number}`;
2337
- };
2338
- relationshipDetails: {
2339
- src: "relationshipDetails";
2340
- logic: import("../overlays/types").Overlays.RelationshipDetails.Logic;
2341
- id: `relationshipDetails-${number}`;
2342
- };
2343
- relationshipsBrowser: {
2344
- src: "relationshipsBrowser";
2345
- logic: import("../overlays/types").Overlays.RelationshipsBrowser.Logic;
2346
- id: `relationshipsBrowser-${number}`;
2347
- };
2348
- hotkey: {
2349
- src: "hotkey";
2350
- logic: CallbackActorLogic<EventObject, NonReducibleUnknown, EventObject>;
2351
- id: "hotkey";
2352
- };
2353
- }>, Values<{
2354
- closeLastOverlay: {
2355
- type: "closeLastOverlay";
2356
- params: NonReducibleUnknown;
2357
- };
2358
- closeSpecificOverlay: {
2359
- type: "closeSpecificOverlay";
2360
- params: {
2361
- actorId: string;
2362
- };
2363
- };
2364
- closeAllOverlays: {
2365
- type: "closeAllOverlays";
2366
- params: NonReducibleUnknown;
2367
- };
2368
- openElementDetails: {
2369
- type: "openElementDetails";
2370
- params: NonReducibleUnknown;
2371
- };
2372
- openRelationshipDetails: {
2373
- type: "openRelationshipDetails";
2374
- params: NonReducibleUnknown;
2375
- };
2376
- openRelationshipsBrowser: {
2377
- type: "openRelationshipsBrowser";
2378
- params: NonReducibleUnknown;
2379
- };
2380
- listenToEsc: {
2381
- type: "listenToEsc";
2382
- params: NonReducibleUnknown;
2383
- };
2384
- stopListeningToEsc: {
2385
- type: "stopListeningToEsc";
2386
- params: NonReducibleUnknown;
2387
- };
2388
- }>, Values<{
2389
- "has overlays?": {
2390
- type: "has overlays?";
2391
- params: unknown;
2392
- };
2393
- "close specific overlay?": {
2394
- type: "close specific overlay?";
2395
- params: unknown;
2396
- };
2397
- "last: is relationshipDetails?": {
2398
- type: "last: is relationshipDetails?";
2399
- params: unknown;
2400
- };
2401
- "last: is relationshipsBrowser?": {
2402
- type: "last: is relationshipsBrowser?";
2403
- params: unknown;
2404
- };
2405
- }>, never, "active" | "idle" | "closing", string, NonReducibleUnknown, NonReducibleUnknown, OverlayActorEmitedEvent, MetaObject, {
2406
- readonly id: "overlays";
2407
- readonly context: () => {
2408
- seq: number;
2409
- overlays: never[];
2410
- };
2411
- readonly initial: "idle";
2412
- readonly on: {
2413
- readonly 'open.elementDetails': {
2414
- readonly actions: "openElementDetails";
2415
- readonly target: ".active";
2416
- readonly reenter: false;
2417
- };
2418
- readonly 'open.relationshipDetails': {
2419
- readonly actions: "openRelationshipDetails";
2420
- readonly target: ".active";
2421
- readonly reenter: false;
2422
- };
2423
- readonly 'open.relationshipsBrowser': {
2424
- readonly actions: "openRelationshipsBrowser";
2425
- readonly target: ".active";
2426
- readonly reenter: false;
2427
- };
2428
- };
2429
- readonly states: {
2430
- readonly idle: {};
2431
- readonly active: {
2432
- readonly entry: "listenToEsc";
2433
- readonly exit: "stopListeningToEsc";
2434
- readonly on: {
2435
- readonly close: readonly [{
2436
- readonly guard: "close specific overlay?";
2437
- readonly actions: {
2438
- readonly type: "closeSpecificOverlay";
2439
- readonly params: ({ event }: {
2440
- context: OverlaysContext;
2441
- event: {
2442
- type: "close";
2443
- actorId?: string | undefined;
2444
- };
2445
- }) => {
2446
- actorId: string;
2447
- };
2448
- };
2449
- readonly target: "closing";
2450
- }, {
2451
- readonly actions: "closeLastOverlay";
2452
- readonly target: "closing";
2453
- }];
2454
- readonly 'close.all': {
2455
- readonly actions: readonly ["closeAllOverlays", "stopListeningToEsc"];
2456
- readonly target: "idle";
2457
- };
2458
- };
2459
- };
2460
- readonly closing: {
2461
- readonly always: readonly [{
2462
- readonly guard: "has overlays?";
2463
- readonly target: "active";
2464
- }, {
2465
- readonly actions: "stopListeningToEsc";
2466
- readonly target: "idle";
2467
- }];
2468
- };
2469
- };
2470
- readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
2471
- }>;
2472
- id: "overlays";
2473
- };
2474
- }>, never, never, never, never>;
2228
+ readonly actions: readonly ["assign lastClickedNode", "open source of focused or last clicked node"];
2475
2229
  }];
2476
2230
  readonly 'xyflow.paneClick': {
2477
2231
  readonly actions: readonly [ ActionFunction<DiagramContext, {
@@ -3271,7 +3025,7 @@ export declare function useDiagram(): {
3271
3025
  }>;
3272
3026
  id: "overlays";
3273
3027
  };
3274
- }>, never, never, never, never>, ActionFunction<DiagramContext, Events, Events, undefined, Values<{
3028
+ }>, never, never, never, never>, "open source of focused or last clicked node", ActionFunction<DiagramContext, Events, Events, undefined, Values<{
3275
3029
  syncManualLayoutActorLogic: {
3276
3030
  src: "syncManualLayoutActorLogic";
3277
3031
  logic: StateMachine<Readonly< Input>, Events, {}, never, {
@@ -3815,6 +3569,14 @@ export declare function useDiagram(): {
3815
3569
  type: "trigger:OpenSource";
3816
3570
  params: OpenSourceParams;
3817
3571
  };
3572
+ "assign lastClickedNode": {
3573
+ type: "assign lastClickedNode";
3574
+ params: NonReducibleUnknown;
3575
+ };
3576
+ "open source of focused or last clicked node": {
3577
+ type: "open source of focused or last clicked node";
3578
+ params: NonReducibleUnknown;
3579
+ };
3818
3580
  "xyflow:setViewportCenter": {
3819
3581
  type: "xyflow:setViewportCenter";
3820
3582
  params: {
@@ -3869,8 +3631,8 @@ export declare function useDiagram(): {
3869
3631
  type: "is another view";
3870
3632
  params: unknown;
3871
3633
  };
3872
- "click: selected node ": {
3873
- type: "click: selected node ";
3634
+ "click: selected node": {
3635
+ type: "click: selected node";
3874
3636
  params: unknown;
3875
3637
  };
3876
3638
  "click: same node": {
@@ -3881,6 +3643,10 @@ export declare function useDiagram(): {
3881
3643
  type: "click: focused node";
3882
3644
  params: unknown;
3883
3645
  };
3646
+ "click: node has connections": {
3647
+ type: "click: node has connections";
3648
+ params: unknown;
3649
+ };
3884
3650
  }>, never, EventObject>;
3885
3651
  readonly on: {
3886
3652
  readonly 'xyflow.nodeClick': readonly [{
@@ -4396,7 +4162,7 @@ export declare function useDiagram(): {
4396
4162
  }>;
4397
4163
  id: "overlays";
4398
4164
  };
4399
- }>, never, never, never, never>, {
4165
+ }>, never, never, never, never>, "open source of focused or last clicked node", {
4400
4166
  readonly type: "xyflow:fitDiagram";
4401
4167
  readonly params: focusedBounds;
4402
4168
  }];
@@ -4911,7 +4677,7 @@ export declare function useDiagram(): {
4911
4677
  }>;
4912
4678
  id: "overlays";
4913
4679
  };
4914
- }>, never, never, never, never>, {
4680
+ }>, never, never, never, never>, "open source of focused or last clicked node", {
4915
4681
  readonly type: "xyflow:fitDiagram";
4916
4682
  readonly params: focusedBounds;
4917
4683
  }];
@@ -5150,50 +4916,316 @@ export declare function useDiagram(): {
5150
4916
  actorId: string;
5151
4917
  };
5152
4918
  };
5153
- readonly target: "closing";
5154
- }, {
5155
- readonly actions: "closeLastOverlay";
5156
- readonly target: "closing";
5157
- }];
5158
- readonly 'close.all': {
5159
- readonly actions: readonly ["closeAllOverlays", "stopListeningToEsc"];
5160
- readonly target: "idle";
4919
+ readonly target: "closing";
4920
+ }, {
4921
+ readonly actions: "closeLastOverlay";
4922
+ readonly target: "closing";
4923
+ }];
4924
+ readonly 'close.all': {
4925
+ readonly actions: readonly ["closeAllOverlays", "stopListeningToEsc"];
4926
+ readonly target: "idle";
4927
+ };
4928
+ };
4929
+ };
4930
+ readonly closing: {
4931
+ readonly always: readonly [{
4932
+ readonly guard: "has overlays?";
4933
+ readonly target: "active";
4934
+ }, {
4935
+ readonly actions: "stopListeningToEsc";
4936
+ readonly target: "idle";
4937
+ }];
4938
+ };
4939
+ };
4940
+ readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
4941
+ }>;
4942
+ id: "overlays";
4943
+ };
4944
+ }>, never, never, never, never>;
4945
+ readonly target: "idle";
4946
+ };
4947
+ readonly 'saveManualLayout.*': {
4948
+ readonly guard: "not readonly";
4949
+ readonly actions: ActionFunction<DiagramContext, {
4950
+ type: "saveManualLayout.schedule";
4951
+ } | {
4952
+ type: "saveManualLayout.cancel";
4953
+ }, Events, undefined, never, never, never, never, never>;
4954
+ };
4955
+ };
4956
+ };
4957
+ readonly navigating: {
4958
+ readonly entry: readonly ["closeAllOverlays", "stopSyncLayout", {
4959
+ readonly type: "trigger:NavigateTo";
4960
+ readonly params: ({ context }: {
4961
+ context: DiagramContext;
4962
+ event: Events;
4963
+ }) => {
4964
+ viewId: ViewId;
4965
+ };
4966
+ }];
4967
+ readonly exit: ActionFunction<DiagramContext, Events, Events, undefined, Values<{
4968
+ syncManualLayoutActorLogic: {
4969
+ src: "syncManualLayoutActorLogic";
4970
+ logic: StateMachine<Readonly< Input>, Events, {}, never, {
4971
+ type: "trigger:OnChange";
4972
+ params: {
4973
+ change: ViewChange;
4974
+ };
4975
+ }, {
4976
+ type: "same view";
4977
+ params: unknown;
4978
+ }, "timeout", "paused" | "stopped" | "idle" | "synced" | "pending", "pending" | "ready", Input, NonReducibleUnknown, EventObject, MetaObject, {
4979
+ readonly initial: "idle";
4980
+ readonly context: ({ input }: {
4981
+ spawn: {
4982
+ <TSrc extends never>(logic: TSrc, ...[options]: never): ActorRefFromLogic<never>;
4983
+ <TLogic extends AnyActorLogic>(src: TLogic, ...[options]: ConditionalRequired<[options?: {
4984
+ id?: never;
4985
+ systemId?: string;
4986
+ input?: InputFrom<TLogic>;
4987
+ syncSnapshot?: boolean;
4988
+ } & { [K in RequiredLogicInput<TLogic>]: unknown; }], IsNotNever<RequiredLogicInput<TLogic>>>): ActorRefFromLogic<TLogic>;
4989
+ };
4990
+ input: Input;
4991
+ self: ActorRef<MachineSnapshot<Readonly< Input>, Events, Record<string, AnyActorRef | undefined>, StateValue, string, unknown, any, any>, Events, AnyEventObject>;
4992
+ }) => {
4993
+ parent: ActorRef<MachineSnapshot<DiagramContext, Events, any, any, any, any, any, any>, Events, any>;
4994
+ viewId: ViewId;
4995
+ };
4996
+ readonly states: {
4997
+ readonly idle: {
4998
+ readonly tags: "ready";
4999
+ readonly on: {
5000
+ readonly sync: {
5001
+ readonly target: "pending";
5002
+ };
5003
+ };
5004
+ };
5005
+ readonly paused: {
5006
+ readonly tags: "pending";
5007
+ readonly on: {
5008
+ readonly sync: {
5009
+ readonly target: "pending";
5010
+ };
5011
+ };
5012
+ };
5013
+ readonly pending: {
5014
+ readonly tags: "pending";
5015
+ readonly on: {
5016
+ readonly sync: {
5017
+ readonly target: "pending";
5018
+ readonly reenter: true;
5019
+ };
5020
+ readonly cancel: {
5021
+ readonly target: "paused";
5022
+ };
5023
+ };
5024
+ readonly after: {
5025
+ readonly timeout: readonly [{
5026
+ readonly guard: "same view";
5027
+ readonly actions: {
5028
+ readonly type: "trigger:OnChange";
5029
+ readonly params: ({ context }: {
5030
+ context: Readonly< Input>;
5031
+ event: Events;
5032
+ }) => {
5033
+ change: import("@likec4/core").ViewChange.SaveManualLayout;
5034
+ };
5035
+ };
5036
+ readonly target: "synced";
5037
+ }, {
5038
+ readonly target: "stopped";
5039
+ }];
5040
+ };
5041
+ };
5042
+ readonly synced: {
5043
+ readonly tags: "ready";
5044
+ readonly on: {
5045
+ readonly sync: {
5046
+ readonly target: "pending";
5047
+ };
5048
+ };
5049
+ };
5050
+ readonly stopped: {
5051
+ readonly entry: ActionFunction<Readonly< Input>, Events, Events, undefined, never, never, never, never, never>;
5052
+ readonly type: "final";
5053
+ };
5054
+ };
5055
+ readonly on: {
5056
+ readonly synced: {
5057
+ readonly target: ".synced";
5058
+ };
5059
+ readonly stop: {
5060
+ readonly target: ".stopped";
5061
+ };
5062
+ };
5063
+ }>;
5064
+ id: "syncLayout";
5065
+ };
5066
+ hotkeyActorLogic: {
5067
+ src: "hotkeyActorLogic";
5068
+ logic: CallbackActorLogic<AnyEventObject, NonReducibleUnknown, HotKeyEvent>;
5069
+ id: "hotkey";
5070
+ };
5071
+ overlaysActorLogic: {
5072
+ src: "overlaysActorLogic";
5073
+ logic: StateMachine<OverlaysContext, OverlayActorEvent, {
5074
+ [x: `elementDetails-${number}`]: ActorRefFromLogic<ElementDetailsLogic> | undefined;
5075
+ [x: `relationshipDetails-${number}`]: ActorRefFromLogic<import("../overlays/types").Overlays.RelationshipDetails.Logic> | undefined;
5076
+ [x: `relationshipsBrowser-${number}`]: ActorRefFromLogic<import("../overlays/types").Overlays.RelationshipsBrowser.Logic> | undefined;
5077
+ hotkey?: ActorRefFromLogic<CallbackActorLogic<EventObject, NonReducibleUnknown, EventObject>>;
5078
+ }, Values<{
5079
+ elementDetails: {
5080
+ src: "elementDetails";
5081
+ logic: ElementDetailsLogic;
5082
+ id: `elementDetails-${number}`;
5083
+ };
5084
+ relationshipDetails: {
5085
+ src: "relationshipDetails";
5086
+ logic: import("../overlays/types").Overlays.RelationshipDetails.Logic;
5087
+ id: `relationshipDetails-${number}`;
5088
+ };
5089
+ relationshipsBrowser: {
5090
+ src: "relationshipsBrowser";
5091
+ logic: import("../overlays/types").Overlays.RelationshipsBrowser.Logic;
5092
+ id: `relationshipsBrowser-${number}`;
5093
+ };
5094
+ hotkey: {
5095
+ src: "hotkey";
5096
+ logic: CallbackActorLogic<EventObject, NonReducibleUnknown, EventObject>;
5097
+ id: "hotkey";
5098
+ };
5099
+ }>, Values<{
5100
+ closeLastOverlay: {
5101
+ type: "closeLastOverlay";
5102
+ params: NonReducibleUnknown;
5103
+ };
5104
+ closeSpecificOverlay: {
5105
+ type: "closeSpecificOverlay";
5106
+ params: {
5107
+ actorId: string;
5108
+ };
5109
+ };
5110
+ closeAllOverlays: {
5111
+ type: "closeAllOverlays";
5112
+ params: NonReducibleUnknown;
5113
+ };
5114
+ openElementDetails: {
5115
+ type: "openElementDetails";
5116
+ params: NonReducibleUnknown;
5117
+ };
5118
+ openRelationshipDetails: {
5119
+ type: "openRelationshipDetails";
5120
+ params: NonReducibleUnknown;
5121
+ };
5122
+ openRelationshipsBrowser: {
5123
+ type: "openRelationshipsBrowser";
5124
+ params: NonReducibleUnknown;
5125
+ };
5126
+ listenToEsc: {
5127
+ type: "listenToEsc";
5128
+ params: NonReducibleUnknown;
5129
+ };
5130
+ stopListeningToEsc: {
5131
+ type: "stopListeningToEsc";
5132
+ params: NonReducibleUnknown;
5133
+ };
5134
+ }>, Values<{
5135
+ "has overlays?": {
5136
+ type: "has overlays?";
5137
+ params: unknown;
5138
+ };
5139
+ "close specific overlay?": {
5140
+ type: "close specific overlay?";
5141
+ params: unknown;
5142
+ };
5143
+ "last: is relationshipDetails?": {
5144
+ type: "last: is relationshipDetails?";
5145
+ params: unknown;
5146
+ };
5147
+ "last: is relationshipsBrowser?": {
5148
+ type: "last: is relationshipsBrowser?";
5149
+ params: unknown;
5150
+ };
5151
+ }>, never, "active" | "idle" | "closing", string, NonReducibleUnknown, NonReducibleUnknown, OverlayActorEmitedEvent, MetaObject, {
5152
+ readonly id: "overlays";
5153
+ readonly context: () => {
5154
+ seq: number;
5155
+ overlays: never[];
5156
+ };
5157
+ readonly initial: "idle";
5158
+ readonly on: {
5159
+ readonly 'open.elementDetails': {
5160
+ readonly actions: "openElementDetails";
5161
+ readonly target: ".active";
5162
+ readonly reenter: false;
5163
+ };
5164
+ readonly 'open.relationshipDetails': {
5165
+ readonly actions: "openRelationshipDetails";
5166
+ readonly target: ".active";
5167
+ readonly reenter: false;
5168
+ };
5169
+ readonly 'open.relationshipsBrowser': {
5170
+ readonly actions: "openRelationshipsBrowser";
5171
+ readonly target: ".active";
5172
+ readonly reenter: false;
5173
+ };
5174
+ };
5175
+ readonly states: {
5176
+ readonly idle: {};
5177
+ readonly active: {
5178
+ readonly entry: "listenToEsc";
5179
+ readonly exit: "stopListeningToEsc";
5180
+ readonly on: {
5181
+ readonly close: readonly [{
5182
+ readonly guard: "close specific overlay?";
5183
+ readonly actions: {
5184
+ readonly type: "closeSpecificOverlay";
5185
+ readonly params: ({ event }: {
5186
+ context: OverlaysContext;
5187
+ event: {
5188
+ type: "close";
5189
+ actorId?: string | undefined;
5190
+ };
5191
+ }) => {
5192
+ actorId: string;
5161
5193
  };
5162
5194
  };
5163
- };
5164
- readonly closing: {
5165
- readonly always: readonly [{
5166
- readonly guard: "has overlays?";
5167
- readonly target: "active";
5168
- }, {
5169
- readonly actions: "stopListeningToEsc";
5170
- readonly target: "idle";
5171
- }];
5195
+ readonly target: "closing";
5196
+ }, {
5197
+ readonly actions: "closeLastOverlay";
5198
+ readonly target: "closing";
5199
+ }];
5200
+ readonly 'close.all': {
5201
+ readonly actions: readonly ["closeAllOverlays", "stopListeningToEsc"];
5202
+ readonly target: "idle";
5172
5203
  };
5173
5204
  };
5174
- readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
5175
- }>;
5176
- id: "overlays";
5205
+ };
5206
+ readonly closing: {
5207
+ readonly always: readonly [{
5208
+ readonly guard: "has overlays?";
5209
+ readonly target: "active";
5210
+ }, {
5211
+ readonly actions: "stopListeningToEsc";
5212
+ readonly target: "idle";
5213
+ }];
5214
+ };
5177
5215
  };
5178
- }>, never, never, never, never>;
5179
- readonly target: "idle";
5216
+ readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
5217
+ }>;
5218
+ id: "overlays";
5180
5219
  };
5181
- readonly 'saveManualLayout.*': {
5182
- readonly guard: "not readonly";
5220
+ }>, never, never, never, never>;
5221
+ readonly on: {
5222
+ readonly 'update.view': {
5183
5223
  readonly actions: ActionFunction<DiagramContext, {
5184
- type: "saveManualLayout.schedule";
5185
- } | {
5186
- type: "saveManualLayout.cancel";
5187
- }, Events, undefined, never, never, never, never, never>;
5188
- };
5189
- };
5190
- };
5191
- readonly navigating: {
5192
- readonly initial: "pending";
5193
- readonly type: "compound";
5194
- readonly states: {
5195
- readonly pending: {
5196
- readonly entry: ActionFunction<DiagramContext, Events, Events, undefined, Values<{
5224
+ type: "update.view";
5225
+ view: DiagramView;
5226
+ xynodes: Types.Node[];
5227
+ xyedges: Types.Edge[];
5228
+ }, Events, undefined, Values<{
5197
5229
  syncManualLayoutActorLogic: {
5198
5230
  src: "syncManualLayoutActorLogic";
5199
5231
  logic: StateMachine<Readonly< Input>, Events, {}, never, {
@@ -5480,6 +5512,14 @@ export declare function useDiagram(): {
5480
5512
  type: "trigger:OpenSource";
5481
5513
  params: OpenSourceParams;
5482
5514
  };
5515
+ "assign lastClickedNode": {
5516
+ type: "assign lastClickedNode";
5517
+ params: NonReducibleUnknown;
5518
+ };
5519
+ "open source of focused or last clicked node": {
5520
+ type: "open source of focused or last clicked node";
5521
+ params: NonReducibleUnknown;
5522
+ };
5483
5523
  "xyflow:setViewportCenter": {
5484
5524
  type: "xyflow:setViewportCenter";
5485
5525
  params: {
@@ -5534,8 +5574,8 @@ export declare function useDiagram(): {
5534
5574
  type: "is another view";
5535
5575
  params: unknown;
5536
5576
  };
5537
- "click: selected node ": {
5538
- type: "click: selected node ";
5577
+ "click: selected node": {
5578
+ type: "click: selected node";
5539
5579
  params: unknown;
5540
5580
  };
5541
5581
  "click: same node": {
@@ -5546,380 +5586,17 @@ export declare function useDiagram(): {
5546
5586
  type: "click: focused node";
5547
5587
  params: unknown;
5548
5588
  };
5549
- }>, never, EventObject>;
5550
- readonly on: {
5551
- readonly 'update.view': {
5552
- readonly actions: ActionFunction<DiagramContext, {
5553
- type: "update.view";
5554
- view: DiagramView;
5555
- xynodes: Types.Node[];
5556
- xyedges: Types.Edge[];
5557
- }, Events, undefined, Values<{
5558
- syncManualLayoutActorLogic: {
5559
- src: "syncManualLayoutActorLogic";
5560
- logic: StateMachine<Readonly< Input>, Events, {}, never, {
5561
- type: "trigger:OnChange";
5562
- params: {
5563
- change: ViewChange;
5564
- };
5565
- }, {
5566
- type: "same view";
5567
- params: unknown;
5568
- }, "timeout", "paused" | "stopped" | "idle" | "synced" | "pending", "pending" | "ready", Input, NonReducibleUnknown, EventObject, MetaObject, {
5569
- readonly initial: "idle";
5570
- readonly context: ({ input }: {
5571
- spawn: {
5572
- <TSrc extends never>(logic: TSrc, ...[options]: never): ActorRefFromLogic<never>;
5573
- <TLogic extends AnyActorLogic>(src: TLogic, ...[options]: ConditionalRequired<[options?: {
5574
- id?: never;
5575
- systemId?: string;
5576
- input?: InputFrom<TLogic>;
5577
- syncSnapshot?: boolean;
5578
- } & { [K in RequiredLogicInput<TLogic>]: unknown; }], IsNotNever<RequiredLogicInput<TLogic>>>): ActorRefFromLogic<TLogic>;
5579
- };
5580
- input: Input;
5581
- self: ActorRef<MachineSnapshot<Readonly< Input>, Events, Record<string, AnyActorRef | undefined>, StateValue, string, unknown, any, any>, Events, AnyEventObject>;
5582
- }) => {
5583
- parent: ActorRef<MachineSnapshot<DiagramContext, Events, any, any, any, any, any, any>, Events, any>;
5584
- viewId: ViewId;
5585
- };
5586
- readonly states: {
5587
- readonly idle: {
5588
- readonly tags: "ready";
5589
- readonly on: {
5590
- readonly sync: {
5591
- readonly target: "pending";
5592
- };
5593
- };
5594
- };
5595
- readonly paused: {
5596
- readonly tags: "pending";
5597
- readonly on: {
5598
- readonly sync: {
5599
- readonly target: "pending";
5600
- };
5601
- };
5602
- };
5603
- readonly pending: {
5604
- readonly tags: "pending";
5605
- readonly on: {
5606
- readonly sync: {
5607
- readonly target: "pending";
5608
- readonly reenter: true;
5609
- };
5610
- readonly cancel: {
5611
- readonly target: "paused";
5612
- };
5613
- };
5614
- readonly after: {
5615
- readonly timeout: readonly [{
5616
- readonly guard: "same view";
5617
- readonly actions: {
5618
- readonly type: "trigger:OnChange";
5619
- readonly params: ({ context }: {
5620
- context: Readonly< Input>;
5621
- event: Events;
5622
- }) => {
5623
- change: import("@likec4/core").ViewChange.SaveManualLayout;
5624
- };
5625
- };
5626
- readonly target: "synced";
5627
- }, {
5628
- readonly target: "stopped";
5629
- }];
5630
- };
5631
- };
5632
- readonly synced: {
5633
- readonly tags: "ready";
5634
- readonly on: {
5635
- readonly sync: {
5636
- readonly target: "pending";
5637
- };
5638
- };
5639
- };
5640
- readonly stopped: {
5641
- readonly entry: ActionFunction<Readonly< Input>, Events, Events, undefined, never, never, never, never, never>;
5642
- readonly type: "final";
5643
- };
5644
- };
5645
- readonly on: {
5646
- readonly synced: {
5647
- readonly target: ".synced";
5648
- };
5649
- readonly stop: {
5650
- readonly target: ".stopped";
5651
- };
5652
- };
5653
- }>;
5654
- id: "syncLayout";
5655
- };
5656
- hotkeyActorLogic: {
5657
- src: "hotkeyActorLogic";
5658
- logic: CallbackActorLogic<AnyEventObject, NonReducibleUnknown, HotKeyEvent>;
5659
- id: "hotkey";
5660
- };
5661
- overlaysActorLogic: {
5662
- src: "overlaysActorLogic";
5663
- logic: StateMachine<OverlaysContext, OverlayActorEvent, {
5664
- [x: `elementDetails-${number}`]: ActorRefFromLogic<ElementDetailsLogic> | undefined;
5665
- [x: `relationshipDetails-${number}`]: ActorRefFromLogic<import("../overlays/types").Overlays.RelationshipDetails.Logic> | undefined;
5666
- [x: `relationshipsBrowser-${number}`]: ActorRefFromLogic<import("../overlays/types").Overlays.RelationshipsBrowser.Logic> | undefined;
5667
- hotkey?: ActorRefFromLogic<CallbackActorLogic<EventObject, NonReducibleUnknown, EventObject>>;
5668
- }, Values<{
5669
- elementDetails: {
5670
- src: "elementDetails";
5671
- logic: ElementDetailsLogic;
5672
- id: `elementDetails-${number}`;
5673
- };
5674
- relationshipDetails: {
5675
- src: "relationshipDetails";
5676
- logic: import("../overlays/types").Overlays.RelationshipDetails.Logic;
5677
- id: `relationshipDetails-${number}`;
5678
- };
5679
- relationshipsBrowser: {
5680
- src: "relationshipsBrowser";
5681
- logic: import("../overlays/types").Overlays.RelationshipsBrowser.Logic;
5682
- id: `relationshipsBrowser-${number}`;
5683
- };
5684
- hotkey: {
5685
- src: "hotkey";
5686
- logic: CallbackActorLogic<EventObject, NonReducibleUnknown, EventObject>;
5687
- id: "hotkey";
5688
- };
5689
- }>, Values<{
5690
- closeLastOverlay: {
5691
- type: "closeLastOverlay";
5692
- params: NonReducibleUnknown;
5693
- };
5694
- closeSpecificOverlay: {
5695
- type: "closeSpecificOverlay";
5696
- params: {
5697
- actorId: string;
5698
- };
5699
- };
5700
- closeAllOverlays: {
5701
- type: "closeAllOverlays";
5702
- params: NonReducibleUnknown;
5703
- };
5704
- openElementDetails: {
5705
- type: "openElementDetails";
5706
- params: NonReducibleUnknown;
5707
- };
5708
- openRelationshipDetails: {
5709
- type: "openRelationshipDetails";
5710
- params: NonReducibleUnknown;
5711
- };
5712
- openRelationshipsBrowser: {
5713
- type: "openRelationshipsBrowser";
5714
- params: NonReducibleUnknown;
5715
- };
5716
- listenToEsc: {
5717
- type: "listenToEsc";
5718
- params: NonReducibleUnknown;
5719
- };
5720
- stopListeningToEsc: {
5721
- type: "stopListeningToEsc";
5722
- params: NonReducibleUnknown;
5723
- };
5724
- }>, Values<{
5725
- "has overlays?": {
5726
- type: "has overlays?";
5727
- params: unknown;
5728
- };
5729
- "close specific overlay?": {
5730
- type: "close specific overlay?";
5731
- params: unknown;
5732
- };
5733
- "last: is relationshipDetails?": {
5734
- type: "last: is relationshipDetails?";
5735
- params: unknown;
5736
- };
5737
- "last: is relationshipsBrowser?": {
5738
- type: "last: is relationshipsBrowser?";
5739
- params: unknown;
5740
- };
5741
- }>, never, "active" | "idle" | "closing", string, NonReducibleUnknown, NonReducibleUnknown, OverlayActorEmitedEvent, MetaObject, {
5742
- readonly id: "overlays";
5743
- readonly context: () => {
5744
- seq: number;
5745
- overlays: never[];
5746
- };
5747
- readonly initial: "idle";
5748
- readonly on: {
5749
- readonly 'open.elementDetails': {
5750
- readonly actions: "openElementDetails";
5751
- readonly target: ".active";
5752
- readonly reenter: false;
5753
- };
5754
- readonly 'open.relationshipDetails': {
5755
- readonly actions: "openRelationshipDetails";
5756
- readonly target: ".active";
5757
- readonly reenter: false;
5758
- };
5759
- readonly 'open.relationshipsBrowser': {
5760
- readonly actions: "openRelationshipsBrowser";
5761
- readonly target: ".active";
5762
- readonly reenter: false;
5763
- };
5764
- };
5765
- readonly states: {
5766
- readonly idle: {};
5767
- readonly active: {
5768
- readonly entry: "listenToEsc";
5769
- readonly exit: "stopListeningToEsc";
5770
- readonly on: {
5771
- readonly close: readonly [{
5772
- readonly guard: "close specific overlay?";
5773
- readonly actions: {
5774
- readonly type: "closeSpecificOverlay";
5775
- readonly params: ({ event }: {
5776
- context: OverlaysContext;
5777
- event: {
5778
- type: "close";
5779
- actorId?: string | undefined;
5780
- };
5781
- }) => {
5782
- actorId: string;
5783
- };
5784
- };
5785
- readonly target: "closing";
5786
- }, {
5787
- readonly actions: "closeLastOverlay";
5788
- readonly target: "closing";
5789
- }];
5790
- readonly 'close.all': {
5791
- readonly actions: readonly ["closeAllOverlays", "stopListeningToEsc"];
5792
- readonly target: "idle";
5793
- };
5794
- };
5795
- };
5796
- readonly closing: {
5797
- readonly always: readonly [{
5798
- readonly guard: "has overlays?";
5799
- readonly target: "active";
5800
- }, {
5801
- readonly actions: "stopListeningToEsc";
5802
- readonly target: "idle";
5803
- }];
5804
- };
5805
- };
5806
- readonly exit: readonly ["stopListeningToEsc", "closeAllOverlays"];
5807
- }>;
5808
- id: "overlays";
5809
- };
5810
- }>, Values<{
5811
- "xyflow:fitDiagram": {
5812
- type: "xyflow:fitDiagram";
5813
- params: {
5814
- duration?: number;
5815
- bounds?: BBox;
5816
- } | undefined;
5817
- };
5818
- closeAllOverlays: {
5819
- type: "closeAllOverlays";
5820
- params: NonReducibleUnknown;
5821
- };
5822
- "layout.align": {
5823
- type: "layout.align";
5824
- params: {
5825
- mode: AlignmentMode;
5826
- };
5827
- };
5828
- "trigger:OnChange": {
5829
- type: "trigger:OnChange";
5830
- params: {
5831
- change: ViewChange;
5832
- };
5833
- };
5834
- "trigger:NavigateTo": {
5835
- type: "trigger:NavigateTo";
5836
- params: {
5837
- viewId: ViewId;
5838
- };
5839
- };
5840
- "trigger:OpenSource": {
5841
- type: "trigger:OpenSource";
5842
- params: OpenSourceParams;
5843
- };
5844
- "xyflow:setViewportCenter": {
5845
- type: "xyflow:setViewportCenter";
5846
- params: {
5847
- x: number;
5848
- y: number;
5849
- };
5850
- };
5851
- "xyflow:setViewport": {
5852
- type: "xyflow:setViewport";
5853
- params: {
5854
- viewport: Viewport;
5855
- duration?: number;
5856
- };
5857
- };
5858
- "xyflow:alignNodeFromToAfterNavigate": {
5859
- type: "xyflow:alignNodeFromToAfterNavigate";
5860
- params: {
5861
- fromNode: NodeId;
5862
- toPosition: XYPoint;
5863
- };
5864
- };
5865
- updateFeatures: {
5866
- type: "updateFeatures";
5867
- params: NonReducibleUnknown;
5868
- };
5869
- stopSyncLayout: {
5870
- type: "stopSyncLayout";
5871
- params: NonReducibleUnknown;
5872
- };
5873
- }>, Values<{
5874
- "enabled: FitView": {
5875
- type: "enabled: FitView";
5876
- params: unknown;
5877
- };
5878
- "enabled: FocusMode": {
5879
- type: "enabled: FocusMode";
5880
- params: unknown;
5881
- };
5882
- "enabled: Readonly": {
5883
- type: "enabled: Readonly";
5884
- params: unknown;
5885
- };
5886
- "not readonly": {
5887
- type: "not readonly";
5888
- params: unknown;
5889
- };
5890
- "is dynamic view": {
5891
- type: "is dynamic view";
5892
- params: unknown;
5893
- };
5894
- "is another view": {
5895
- type: "is another view";
5896
- params: unknown;
5897
- };
5898
- "click: selected node ": {
5899
- type: "click: selected node ";
5900
- params: unknown;
5901
- };
5902
- "click: same node": {
5903
- type: "click: same node";
5904
- params: unknown;
5905
- };
5906
- "click: focused node": {
5907
- type: "click: focused node";
5908
- params: unknown;
5909
- };
5910
- }>, never, EventObject>;
5911
- readonly target: "done";
5589
+ "click: node has connections": {
5590
+ type: "click: node has connections";
5591
+ params: unknown;
5912
5592
  };
5913
- };
5914
- };
5915
- readonly done: {
5916
- readonly type: "final";
5593
+ }>, never, EventObject>;
5594
+ readonly target: "#idle";
5917
5595
  };
5918
5596
  };
5919
- readonly onDone: {
5920
- readonly target: "idle";
5921
- };
5922
- readonly exit: ActionFunction<DiagramContext, Events, Events, undefined, Values<{
5597
+ };
5598
+ readonly walkthrough: {
5599
+ readonly entry: readonly [ ActionFunction<DiagramContext, Events, Events, undefined, Values<{
5923
5600
  syncManualLayoutActorLogic: {
5924
5601
  src: "syncManualLayoutActorLogic";
5925
5602
  logic: StateMachine<Readonly< Input>, Events, {}, never, {
@@ -6172,10 +5849,7 @@ export declare function useDiagram(): {
6172
5849
  }>;
6173
5850
  id: "overlays";
6174
5851
  };
6175
- }>, never, never, never, never>;
6176
- };
6177
- readonly walkthrough: {
6178
- readonly entry: readonly [ ActionFunction<DiagramContext, Events, Events, undefined, Values<{
5852
+ }>, never, never, never, never>, ActionFunction<DiagramContext, Events, Events, undefined, Values<{
6179
5853
  syncManualLayoutActorLogic: {
6180
5854
  src: "syncManualLayoutActorLogic";
6181
5855
  logic: StateMachine<Readonly< Input>, Events, {}, never, {
@@ -6986,6 +6660,14 @@ export declare function useDiagram(): {
6986
6660
  type: "trigger:OpenSource";
6987
6661
  params: OpenSourceParams;
6988
6662
  };
6663
+ "assign lastClickedNode": {
6664
+ type: "assign lastClickedNode";
6665
+ params: NonReducibleUnknown;
6666
+ };
6667
+ "open source of focused or last clicked node": {
6668
+ type: "open source of focused or last clicked node";
6669
+ params: NonReducibleUnknown;
6670
+ };
6989
6671
  "xyflow:setViewportCenter": {
6990
6672
  type: "xyflow:setViewportCenter";
6991
6673
  params: {
@@ -7040,8 +6722,8 @@ export declare function useDiagram(): {
7040
6722
  type: "is another view";
7041
6723
  params: unknown;
7042
6724
  };
7043
- "click: selected node ": {
7044
- type: "click: selected node ";
6725
+ "click: selected node": {
6726
+ type: "click: selected node";
7045
6727
  params: unknown;
7046
6728
  };
7047
6729
  "click: same node": {
@@ -7052,6 +6734,10 @@ export declare function useDiagram(): {
7052
6734
  type: "click: focused node";
7053
6735
  params: unknown;
7054
6736
  };
6737
+ "click: node has connections": {
6738
+ type: "click: node has connections";
6739
+ params: unknown;
6740
+ };
7055
6741
  }>, never, EventObject>;
7056
6742
  };
7057
6743
  readonly 'walkthrough.end': {
@@ -7355,6 +7041,14 @@ export declare function useDiagram(): {
7355
7041
  type: "trigger:OpenSource";
7356
7042
  params: OpenSourceParams;
7357
7043
  };
7044
+ "assign lastClickedNode": {
7045
+ type: "assign lastClickedNode";
7046
+ params: NonReducibleUnknown;
7047
+ };
7048
+ "open source of focused or last clicked node": {
7049
+ type: "open source of focused or last clicked node";
7050
+ params: NonReducibleUnknown;
7051
+ };
7358
7052
  "xyflow:setViewportCenter": {
7359
7053
  type: "xyflow:setViewportCenter";
7360
7054
  params: {
@@ -7409,8 +7103,8 @@ export declare function useDiagram(): {
7409
7103
  type: "is another view";
7410
7104
  params: unknown;
7411
7105
  };
7412
- "click: selected node ": {
7413
- type: "click: selected node ";
7106
+ "click: selected node": {
7107
+ type: "click: selected node";
7414
7108
  params: unknown;
7415
7109
  };
7416
7110
  "click: same node": {
@@ -7421,6 +7115,10 @@ export declare function useDiagram(): {
7421
7115
  type: "click: focused node";
7422
7116
  params: unknown;
7423
7117
  };
7118
+ "click: node has connections": {
7119
+ type: "click: node has connections";
7120
+ params: unknown;
7121
+ };
7424
7122
  }>, never, EventObject>;
7425
7123
  };
7426
7124
  };
@@ -9545,6 +9243,14 @@ export declare function useDiagram(): {
9545
9243
  type: "trigger:OpenSource";
9546
9244
  params: OpenSourceParams;
9547
9245
  };
9246
+ "assign lastClickedNode": {
9247
+ type: "assign lastClickedNode";
9248
+ params: NonReducibleUnknown;
9249
+ };
9250
+ "open source of focused or last clicked node": {
9251
+ type: "open source of focused or last clicked node";
9252
+ params: NonReducibleUnknown;
9253
+ };
9548
9254
  "xyflow:setViewportCenter": {
9549
9255
  type: "xyflow:setViewportCenter";
9550
9256
  params: {
@@ -9599,8 +9305,8 @@ export declare function useDiagram(): {
9599
9305
  type: "is another view";
9600
9306
  params: unknown;
9601
9307
  };
9602
- "click: selected node ": {
9603
- type: "click: selected node ";
9308
+ "click: selected node": {
9309
+ type: "click: selected node";
9604
9310
  params: unknown;
9605
9311
  };
9606
9312
  "click: same node": {
@@ -9611,6 +9317,10 @@ export declare function useDiagram(): {
9611
9317
  type: "click: focused node";
9612
9318
  params: unknown;
9613
9319
  };
9320
+ "click: node has connections": {
9321
+ type: "click: node has connections";
9322
+ params: unknown;
9323
+ };
9614
9324
  }>, never, EventObject>];
9615
9325
  };
9616
9326
  readonly 'update.inputs': {
@@ -10966,6 +10676,14 @@ export declare function useDiagram(): {
10966
10676
  type: "trigger:OpenSource";
10967
10677
  params: OpenSourceParams;
10968
10678
  };
10679
+ "assign lastClickedNode": {
10680
+ type: "assign lastClickedNode";
10681
+ params: NonReducibleUnknown;
10682
+ };
10683
+ "open source of focused or last clicked node": {
10684
+ type: "open source of focused or last clicked node";
10685
+ params: NonReducibleUnknown;
10686
+ };
10969
10687
  "xyflow:setViewportCenter": {
10970
10688
  type: "xyflow:setViewportCenter";
10971
10689
  params: {
@@ -11020,8 +10738,8 @@ export declare function useDiagram(): {
11020
10738
  type: "is another view";
11021
10739
  params: unknown;
11022
10740
  };
11023
- "click: selected node ": {
11024
- type: "click: selected node ";
10741
+ "click: selected node": {
10742
+ type: "click: selected node";
11025
10743
  params: unknown;
11026
10744
  };
11027
10745
  "click: same node": {
@@ -11032,6 +10750,10 @@ export declare function useDiagram(): {
11032
10750
  type: "click: focused node";
11033
10751
  params: unknown;
11034
10752
  };
10753
+ "click: node has connections": {
10754
+ type: "click: node has connections";
10755
+ params: unknown;
10756
+ };
11035
10757
  }>, never, EventObject>;
11036
10758
  };
11037
10759
  readonly 'open.relationshipsBrowser': {