create-harness-vibe-coding 0.8.18 → 0.8.19

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 (128) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -0
  3. package/package.json +5 -2
  4. package/src/index.js +383 -267
  5. package/src/ui/dist/assets/AgentsRoute-CuSKYmFu.js +17 -0
  6. package/src/ui/dist/assets/AgentsRoute-CuSKYmFu.js.map +1 -0
  7. package/src/ui/dist/assets/RolesRoute-DOzTYVRm.js +7 -0
  8. package/src/ui/dist/assets/RolesRoute-DOzTYVRm.js.map +1 -0
  9. package/src/ui/dist/assets/SettingsRoute-DPU7jSQm.js +12 -0
  10. package/src/ui/dist/assets/SettingsRoute-DPU7jSQm.js.map +1 -0
  11. package/src/ui/dist/assets/TaskList-BN4r8s1i.js +50 -0
  12. package/src/ui/dist/assets/TaskList-BN4r8s1i.js.map +1 -0
  13. package/src/ui/dist/assets/TerminalDrawer-6GBZ9nXN.css +32 -0
  14. package/src/ui/dist/assets/TerminalDrawer-Cej4PxsH.js +74 -0
  15. package/src/ui/dist/assets/TerminalDrawer-Cej4PxsH.js.map +1 -0
  16. package/src/ui/dist/assets/WorkflowRoute-BnuhLJ6X.css +1 -0
  17. package/src/ui/dist/assets/WorkflowRoute-C-clKe-j.js +39 -0
  18. package/src/ui/dist/assets/WorkflowRoute-C-clKe-j.js.map +1 -0
  19. package/src/ui/dist/assets/index-BOVYWntB.js +117 -0
  20. package/src/ui/dist/assets/index-BOVYWntB.js.map +1 -0
  21. package/src/ui/dist/assets/index-DaUObq0H.css +1 -0
  22. package/src/ui/dist/assets/maximize-2-LNrr_rKr.js +7 -0
  23. package/src/ui/dist/assets/maximize-2-LNrr_rKr.js.map +1 -0
  24. package/src/ui/dist/assets/plus-QuTJyoT3.js +7 -0
  25. package/src/ui/dist/assets/plus-QuTJyoT3.js.map +1 -0
  26. package/src/ui/dist/assets/proxy-D0vUbds5.js +2 -0
  27. package/src/ui/dist/assets/proxy-D0vUbds5.js.map +1 -0
  28. package/src/ui/dist/assets/refresh-cw-JNmExijd.js +7 -0
  29. package/src/ui/dist/assets/refresh-cw-JNmExijd.js.map +1 -0
  30. package/src/ui/dist/assets/terminal-BBQvnOAK.js +7 -0
  31. package/src/ui/dist/assets/terminal-BBQvnOAK.js.map +1 -0
  32. package/src/ui/dist/assets/useReducedMotion-BqmH0Tf7.js +7 -0
  33. package/src/ui/dist/assets/useReducedMotion-BqmH0Tf7.js.map +1 -0
  34. package/src/ui/dist/assets/x-DoIOGAJz.js +7 -0
  35. package/src/ui/dist/assets/x-DoIOGAJz.js.map +1 -0
  36. package/src/ui/dist/index.html +18 -0
  37. package/src/ui/index.html +17 -0
  38. package/src/ui/package.json +33 -0
  39. package/src/ui/pnpm-lock.yaml +1582 -0
  40. package/src/ui/pnpm-workspace.yaml +2 -0
  41. package/src/ui/src/App.tsx +86 -0
  42. package/src/ui/src/api.ts +93 -0
  43. package/src/ui/src/components/AgentsRoute.tsx +503 -0
  44. package/src/ui/src/components/Footer.tsx +69 -0
  45. package/src/ui/src/components/Header.tsx +175 -0
  46. package/src/ui/src/components/LoadingView.tsx +22 -0
  47. package/src/ui/src/components/RolesRoute.tsx +169 -0
  48. package/src/ui/src/components/SettingsRoute.tsx +166 -0
  49. package/src/ui/src/components/TaskList.tsx +388 -0
  50. package/src/ui/src/components/TerminalDrawer.tsx +611 -0
  51. package/src/ui/src/components/WorkflowRoute.tsx +670 -0
  52. package/src/ui/src/hooks/useReducedMotion.ts +17 -0
  53. package/src/ui/src/hooks/useServerConnection.ts +114 -0
  54. package/src/ui/src/index.css +281 -0
  55. package/src/ui/src/main.tsx +11 -0
  56. package/src/ui/src/types.ts +108 -0
  57. package/src/ui/tsconfig.json +21 -0
  58. package/src/ui/vite.config.ts +19 -0
  59. package/src/wf-ui-server/__tests__/a2a-store.test.mjs +79 -0
  60. package/src/wf-ui-server/__tests__/peer-capsule.test.mjs +268 -0
  61. package/src/wf-ui-server/__tests__/pty-adapter.test.mjs +70 -0
  62. package/src/wf-ui-server/__tests__/runtime-config.test.mjs +43 -0
  63. package/src/wf-ui-server/__tests__/runtime-detector.test.mjs +90 -0
  64. package/src/wf-ui-server/__tests__/security.test.mjs +59 -0
  65. package/src/wf-ui-server/__tests__/server.integration.test.mjs +150 -0
  66. package/src/wf-ui-server/__tests__/session-registry.test.mjs +238 -0
  67. package/src/wf-ui-server/__tests__/settings.test.mjs +135 -0
  68. package/src/wf-ui-server/__tests__/task-parser.test.mjs +200 -0
  69. package/src/wf-ui-server/__tests__/terminal-store.test.mjs +138 -0
  70. package/src/wf-ui-server/__tests__/token.test.mjs +48 -0
  71. package/src/wf-ui-server/__tests__/ws-events.integration.test.mjs +419 -0
  72. package/src/wf-ui-server/__tests__/ws-terminal.integration.test.mjs +383 -0
  73. package/src/wf-ui-server/a2a-store.mjs +296 -0
  74. package/src/wf-ui-server/peer-capsule.mjs +213 -0
  75. package/src/wf-ui-server/pty-adapter.mjs +155 -0
  76. package/src/wf-ui-server/runtime-config.mjs +153 -0
  77. package/src/wf-ui-server/runtime-detector.mjs +374 -0
  78. package/src/wf-ui-server/security.mjs +67 -0
  79. package/src/wf-ui-server/server.mjs +849 -0
  80. package/src/wf-ui-server/session-registry.mjs +204 -0
  81. package/src/wf-ui-server/settings.mjs +100 -0
  82. package/src/wf-ui-server/task-parser.mjs +133 -0
  83. package/src/wf-ui-server/terminal-store.mjs +225 -0
  84. package/src/wf-ui-server/token.mjs +41 -0
  85. package/src/wf-ui-server/ws-events.mjs +354 -0
  86. package/src/wf-ui-server/ws-terminal.mjs +473 -0
  87. package/templates/common/.claude/commands/wf-help.md +1 -0
  88. package/templates/common/.claude/commands/wf-task-list.md +2 -0
  89. package/templates/common/.claude/commands/wf-ui.md +26 -0
  90. package/templates/common/.claude/commands/wf-update.md +54 -9
  91. package/templates/common/.claude/rules/ecc/common.md +1 -1
  92. package/templates/common/.claude/skills/wf-auto/SKILL.md +3 -3
  93. package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +2 -2
  94. package/templates/common/.claude/skills/wf-ui/SKILL.md +78 -0
  95. package/templates/common/.claude/skills/wf-update/SKILL.md +55 -58
  96. package/templates/common/.harness-version +63 -39
  97. package/templates/common/.opencode/commands/wf-help.md +1 -0
  98. package/templates/common/.opencode/commands/wf-task-list.md +2 -0
  99. package/templates/common/.opencode/commands/wf-ui.md +26 -0
  100. package/templates/common/.opencode/commands/wf-update.md +54 -9
  101. package/templates/common/CLAUDE.md +1 -1
  102. package/templates/common/Harness/MEMORY.md +2 -0
  103. package/templates/common/Harness/README.md +6 -4
  104. package/templates/common/Harness/a2a/role-graph.json +79 -0
  105. package/templates/common/Harness/a2a/runtime-registry.json +5 -0
  106. package/templates/common/Harness/a2a/skills/terminal-control.json +15 -0
  107. package/templates/common/Harness/ownership.manifest.json +57 -2
  108. package/templates/common/Harness/scripts/README.md +134 -0
  109. package/templates/common/Harness/scripts/a2a-terminal.mjs +191 -0
  110. package/templates/common/Harness/scripts/context-budget.mjs +1 -1
  111. package/templates/common/Harness/scripts/sync-host-global.mjs +278 -0
  112. package/templates/common/Harness/scripts/task-state.mjs +556 -23
  113. package/templates/common/Harness/scripts/validate-harness.mjs +229 -19
  114. package/templates/common/Harness/scripts/wf-remove.mjs +8 -3
  115. package/templates/common/Harness/scripts/wf-update-check.mjs +37 -9
  116. package/templates/common/Harness/scripts/wf-update-runner.mjs +325 -0
  117. package/templates/common/Harness/settings.json +35 -0
  118. package/templates/common/Harness/specs/protocols/TASK_ARCHIVE.md +7 -2
  119. package/templates/common/Harness/specs/runtime/command-surface.json +14 -0
  120. package/templates/common/Harness/specs/workflows/WF-AUTO-SPARK.md +8 -8
  121. package/templates/common/Harness/specs/workflows/WF-AUTO.md +12 -12
  122. package/templates/common/Harness/tasks/_template/NAMING.md +16 -16
  123. package/templates/common/Harness/tasks/_template/PLAN.md +17 -60
  124. package/templates/common/Harness/tasks/_template/PROBLEM.md +18 -0
  125. package/templates/common/Harness/tasks/_template/PROGRESS.md +9 -14
  126. package/templates/common/Harness/tasks/_template/REFERENCES.md +26 -0
  127. package/templates/common/Harness/tasks/_template/ARTIFACTS.md +0 -3
  128. package/templates/common/Harness/tasks/_template/NOTES.md +0 -3
@@ -0,0 +1 @@
1
+ .react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
@@ -0,0 +1,39 @@
1
+ import{d as Aa,c as qn,e as To,g as $a,R as za,r as C,j as b,L as Pa,G as Ta,b as vr,i as Be,a as xn,B as Ra}from"./index-BOVYWntB.js";import{P as br}from"./plus-QuTJyoT3.js";import{R as ja}from"./refresh-cw-JNmExijd.js";import{M as _r}from"./maximize-2-LNrr_rKr.js";import{T as Ro}from"./terminal-BBQvnOAK.js";Aa();/**
2
+ * @license lucide-react v0.400.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Da=qn("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/**
7
+ * @license lucide-react v0.400.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const La=qn("Route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);/**
12
+ * @license lucide-react v0.400.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const Ha=qn("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);function ce(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=ce(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var Ba={value:()=>{}};function rn(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Ft(n)}function Ft(e){this._=e}function Va(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Ft.prototype=rn.prototype={constructor:Ft,on:function(e,t){var n=this._,r=Va(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=Fa(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(o=(e=r[i]).type)n[o]=Sr(n[o],e.name,t);else if(t==null)for(o in n)n[o]=Sr(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Ft(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function Fa(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function Sr(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=Ba,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var zn="http://www.w3.org/1999/xhtml";const Er={svg:"http://www.w3.org/2000/svg",xhtml:zn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function on(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Er.hasOwnProperty(t)?{space:Er[t],local:e}:e}function Oa(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===zn&&t.documentElement.namespaceURI===zn?t.createElement(e):t.createElementNS(n,e)}}function Wa(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function jo(e){var t=on(e);return(t.local?Wa:Oa)(t)}function Xa(){}function Gn(e){return e==null?Xa:function(){return this.querySelector(e)}}function Ya(e){typeof e!="function"&&(e=Gn(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=new Array(s),c,l,f=0;f<s;++f)(c=i[f])&&(l=e.call(c,c.__data__,f,i))&&("__data__"in c&&(l.__data__=c.__data__),a[f]=l);return new ge(r,this._parents)}function qa(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ga(){return[]}function Do(e){return e==null?Ga:function(){return this.querySelectorAll(e)}}function Za(e){return function(){return qa(e.apply(this,arguments))}}function Ua(e){typeof e=="function"?e=Za(e):e=Do(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var s=t[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&(r.push(e.call(c,c.__data__,l,s)),o.push(c));return new ge(r,o)}function Lo(e){return function(){return this.matches(e)}}function Ho(e){return function(t){return t.matches(e)}}var Ka=Array.prototype.find;function Qa(e){return function(){return Ka.call(this.children,e)}}function Ja(){return this.firstElementChild}function ec(e){return this.select(e==null?Ja:Qa(typeof e=="function"?e:Ho(e)))}var tc=Array.prototype.filter;function nc(){return Array.from(this.children)}function rc(e){return function(){return tc.call(this.children,e)}}function oc(e){return this.selectAll(e==null?nc:rc(typeof e=="function"?e:Ho(e)))}function ic(e){typeof e!="function"&&(e=Lo(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new ge(r,this._parents)}function Bo(e){return new Array(e.length)}function sc(){return new ge(this._enter||this._groups.map(Bo),this._parents)}function qt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}qt.prototype={constructor:qt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function ac(e){return function(){return e}}function cc(e,t,n,r,o,i){for(var s=0,a,c=t.length,l=i.length;s<l;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new qt(e,i[s]);for(;s<c;++s)(a=t[s])&&(o[s]=a)}function lc(e,t,n,r,o,i,s){var a,c,l=new Map,f=t.length,u=i.length,d=new Array(f),h;for(a=0;a<f;++a)(c=t[a])&&(d[a]=h=s.call(c,c.__data__,a,t)+"",l.has(h)?o[a]=c:l.set(h,c));for(a=0;a<u;++a)h=s.call(e,i[a],a,i)+"",(c=l.get(h))?(r[a]=c,c.__data__=i[a],l.delete(h)):n[a]=new qt(e,i[a]);for(a=0;a<f;++a)(c=t[a])&&l.get(d[a])===c&&(o[a]=c)}function uc(e){return e.__data__}function dc(e,t){if(!arguments.length)return Array.from(this,uc);var n=t?lc:cc,r=this._parents,o=this._groups;typeof e!="function"&&(e=ac(e));for(var i=o.length,s=new Array(i),a=new Array(i),c=new Array(i),l=0;l<i;++l){var f=r[l],u=o[l],d=u.length,h=fc(e.call(f,f&&f.__data__,l,r)),g=h.length,w=a[l]=new Array(g),x=s[l]=new Array(g),m=c[l]=new Array(d);n(f,u,w,x,m,h,t);for(var _=0,p=0,v,N;_<g;++_)if(v=w[_]){for(_>=p&&(p=_+1);!(N=x[p])&&++p<g;);v._next=N||null}}return s=new ge(s,r),s._enter=a,s._exit=c,s}function fc(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function hc(){return new ge(this._exit||this._groups.map(Bo),this._parents)}function gc(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function pc(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,s=Math.min(o,i),a=new Array(o),c=0;c<s;++c)for(var l=n[c],f=r[c],u=l.length,d=a[c]=new Array(u),h,g=0;g<u;++g)(h=l[g]||f[g])&&(d[g]=h);for(;c<o;++c)a[c]=n[c];return new ge(a,this._parents)}function mc(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function yc(e){e||(e=xc);function t(u,d){return u&&d?e(u.__data__,d.__data__):!u-!d}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],a=s.length,c=o[i]=new Array(a),l,f=0;f<a;++f)(l=s[f])&&(c[f]=l);c.sort(t)}return new ge(o,this._parents).order()}function xc(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function wc(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function vc(){return Array.from(this)}function bc(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function _c(){let e=0;for(const t of this)++e;return e}function Sc(){return!this.node()}function Ec(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,s=o.length,a;i<s;++i)(a=o[i])&&e.call(a,a.__data__,i,o);return this}function Nc(e){return function(){this.removeAttribute(e)}}function Cc(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Mc(e,t){return function(){this.setAttribute(e,t)}}function kc(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Ic(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ac(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function $c(e,t){var n=on(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Cc:Nc:typeof t=="function"?n.local?Ac:Ic:n.local?kc:Mc)(n,t))}function Vo(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function zc(e){return function(){this.style.removeProperty(e)}}function Pc(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Tc(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Rc(e,t,n){return arguments.length>1?this.each((t==null?zc:typeof t=="function"?Tc:Pc)(e,t,n??"")):tt(this.node(),e)}function tt(e,t){return e.style.getPropertyValue(t)||Vo(e).getComputedStyle(e,null).getPropertyValue(t)}function jc(e){return function(){delete this[e]}}function Dc(e,t){return function(){this[e]=t}}function Lc(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Hc(e,t){return arguments.length>1?this.each((t==null?jc:typeof t=="function"?Lc:Dc)(e,t)):this.node()[e]}function Fo(e){return e.trim().split(/^|\s+/)}function Zn(e){return e.classList||new Oo(e)}function Oo(e){this._node=e,this._names=Fo(e.getAttribute("class")||"")}Oo.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Wo(e,t){for(var n=Zn(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function Xo(e,t){for(var n=Zn(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Bc(e){return function(){Wo(this,e)}}function Vc(e){return function(){Xo(this,e)}}function Fc(e,t){return function(){(t.apply(this,arguments)?Wo:Xo)(this,e)}}function Oc(e,t){var n=Fo(e+"");if(arguments.length<2){for(var r=Zn(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Fc:t?Bc:Vc)(n,t))}function Wc(){this.textContent=""}function Xc(e){return function(){this.textContent=e}}function Yc(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function qc(e){return arguments.length?this.each(e==null?Wc:(typeof e=="function"?Yc:Xc)(e)):this.node().textContent}function Gc(){this.innerHTML=""}function Zc(e){return function(){this.innerHTML=e}}function Uc(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Kc(e){return arguments.length?this.each(e==null?Gc:(typeof e=="function"?Uc:Zc)(e)):this.node().innerHTML}function Qc(){this.nextSibling&&this.parentNode.appendChild(this)}function Jc(){return this.each(Qc)}function el(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function tl(){return this.each(el)}function nl(e){var t=typeof e=="function"?e:jo(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function rl(){return null}function ol(e,t){var n=typeof e=="function"?e:jo(e),r=t==null?rl:typeof t=="function"?t:Gn(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function il(){var e=this.parentNode;e&&e.removeChild(this)}function sl(){return this.each(il)}function al(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function cl(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ll(e){return this.select(e?cl:al)}function ul(e){return arguments.length?this.property("__data__",e):this.node().__data__}function dl(e){return function(t){e.call(this,t,this.__data__)}}function fl(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function hl(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function gl(e,t,n){return function(){var r=this.__on,o,i=dl(t);if(r){for(var s=0,a=r.length;s<a;++s)if((o=r[s]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function pl(e,t,n){var r=fl(e+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,l=a.length,f;c<l;++c)for(o=0,f=a[c];o<i;++o)if((s=r[o]).type===f.type&&s.name===f.name)return f.value}return}for(a=t?gl:hl,o=0;o<i;++o)this.each(a(r[o],t,n));return this}function Yo(e,t,n){var r=Vo(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function ml(e,t){return function(){return Yo(this,e,t)}}function yl(e,t){return function(){return Yo(this,e,t.apply(this,arguments))}}function xl(e,t){return this.each((typeof t=="function"?yl:ml)(e,t))}function*wl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var qo=[null];function ge(e,t){this._groups=e,this._parents=t}function Nt(){return new ge([[document.documentElement]],qo)}function vl(){return this}ge.prototype=Nt.prototype={constructor:ge,select:Ya,selectAll:Ua,selectChild:ec,selectChildren:oc,filter:ic,data:dc,enter:sc,exit:hc,join:gc,merge:pc,selection:vl,order:mc,sort:yc,call:wc,nodes:vc,node:bc,size:_c,empty:Sc,each:Ec,attr:$c,style:Rc,property:Hc,classed:Oc,text:qc,html:Kc,raise:Jc,lower:tl,append:nl,insert:ol,remove:sl,clone:ll,datum:ul,on:pl,dispatch:xl,[Symbol.iterator]:wl};function he(e){return typeof e=="string"?new ge([[document.querySelector(e)]],[document.documentElement]):new ge([[e]],qo)}function bl(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ye(e,t){if(e=bl(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const _l={passive:!1},mt={capture:!0,passive:!1};function wn(e){e.stopImmediatePropagation()}function Je(e){e.preventDefault(),e.stopImmediatePropagation()}function Go(e){var t=e.document.documentElement,n=he(e).on("dragstart.drag",Je,mt);"onselectstart"in t?n.on("selectstart.drag",Je,mt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Zo(e,t){var n=e.document.documentElement,r=he(e).on("dragstart.drag",null);t&&(r.on("click.drag",Je,mt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const zt=e=>()=>e;function Pn(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}Pn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Sl(e){return!e.ctrlKey&&!e.button}function El(){return this.parentNode}function Nl(e,t){return t??{x:e.x,y:e.y}}function Cl(){return navigator.maxTouchPoints||"ontouchstart"in this}function Uo(){var e=Sl,t=El,n=Nl,r=Cl,o={},i=rn("start","drag","end"),s=0,a,c,l,f,u=0;function d(v){v.on("mousedown.drag",h).filter(r).on("touchstart.drag",x).on("touchmove.drag",m,_l).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(v,N){if(!(f||!e.call(this,v,N))){var S=p(this,t.call(this,v,N),v,N,"mouse");S&&(he(v.view).on("mousemove.drag",g,mt).on("mouseup.drag",w,mt),Go(v.view),wn(v),l=!1,a=v.clientX,c=v.clientY,S("start",v))}}function g(v){if(Je(v),!l){var N=v.clientX-a,S=v.clientY-c;l=N*N+S*S>u}o.mouse("drag",v)}function w(v){he(v.view).on("mousemove.drag mouseup.drag",null),Zo(v.view,l),Je(v),o.mouse("end",v)}function x(v,N){if(e.call(this,v,N)){var S=v.changedTouches,I=t.call(this,v,N),$=S.length,z,F;for(z=0;z<$;++z)(F=p(this,I,v,N,S[z].identifier,S[z]))&&(wn(v),F("start",v,S[z]))}}function m(v){var N=v.changedTouches,S=N.length,I,$;for(I=0;I<S;++I)($=o[N[I].identifier])&&(Je(v),$("drag",v,N[I]))}function _(v){var N=v.changedTouches,S=N.length,I,$;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),I=0;I<S;++I)($=o[N[I].identifier])&&(wn(v),$("end",v,N[I]))}function p(v,N,S,I,$,z){var F=i.copy(),T=ye(z||S,N),B,R,y;if((y=n.call(v,new Pn("beforestart",{sourceEvent:S,target:d,identifier:$,active:s,x:T[0],y:T[1],dx:0,dy:0,dispatch:F}),I))!=null)return B=y.x-T[0]||0,R=y.y-T[1]||0,function M(E,A,P){var k=T,L;switch(E){case"start":o[$]=M,L=s++;break;case"end":delete o[$],--s;case"drag":T=ye(P||A,N),L=s;break}F.call(E,v,new Pn(E,{sourceEvent:A,subject:y,target:d,identifier:$,active:L,x:T[0]+B,y:T[1]+R,dx:T[0]-k[0],dy:T[1]-k[1],dispatch:F}),I)}}return d.filter=function(v){return arguments.length?(e=typeof v=="function"?v:zt(!!v),d):e},d.container=function(v){return arguments.length?(t=typeof v=="function"?v:zt(v),d):t},d.subject=function(v){return arguments.length?(n=typeof v=="function"?v:zt(v),d):n},d.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:zt(!!v),d):r},d.on=function(){var v=i.on.apply(i,arguments);return v===i?d:v},d.clickDistance=function(v){return arguments.length?(u=(v=+v)*v,d):Math.sqrt(u)},d}function Un(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ko(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ct(){}var yt=.7,Gt=1/yt,et="\\s*([+-]?\\d+)\\s*",xt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ee="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ml=/^#([0-9a-f]{3,8})$/,kl=new RegExp(`^rgb\\(${et},${et},${et}\\)$`),Il=new RegExp(`^rgb\\(${Ee},${Ee},${Ee}\\)$`),Al=new RegExp(`^rgba\\(${et},${et},${et},${xt}\\)$`),$l=new RegExp(`^rgba\\(${Ee},${Ee},${Ee},${xt}\\)$`),zl=new RegExp(`^hsl\\(${xt},${Ee},${Ee}\\)$`),Pl=new RegExp(`^hsla\\(${xt},${Ee},${Ee},${xt}\\)$`),Nr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Un(Ct,We,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Cr,formatHex:Cr,formatHex8:Tl,formatHsl:Rl,formatRgb:Mr,toString:Mr});function Cr(){return this.rgb().formatHex()}function Tl(){return this.rgb().formatHex8()}function Rl(){return Qo(this).formatHsl()}function Mr(){return this.rgb().formatRgb()}function We(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Ml.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?kr(t):n===3?new de(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Pt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Pt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=kl.exec(e))?new de(t[1],t[2],t[3],1):(t=Il.exec(e))?new de(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Al.exec(e))?Pt(t[1],t[2],t[3],t[4]):(t=$l.exec(e))?Pt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=zl.exec(e))?$r(t[1],t[2]/100,t[3]/100,1):(t=Pl.exec(e))?$r(t[1],t[2]/100,t[3]/100,t[4]):Nr.hasOwnProperty(e)?kr(Nr[e]):e==="transparent"?new de(NaN,NaN,NaN,0):null}function kr(e){return new de(e>>16&255,e>>8&255,e&255,1)}function Pt(e,t,n,r){return r<=0&&(e=t=n=NaN),new de(e,t,n,r)}function jl(e){return e instanceof Ct||(e=We(e)),e?(e=e.rgb(),new de(e.r,e.g,e.b,e.opacity)):new de}function Tn(e,t,n,r){return arguments.length===1?jl(e):new de(e,t,n,r??1)}function de(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Un(de,Tn,Ko(Ct,{brighter(e){return e=e==null?Gt:Math.pow(Gt,e),new de(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?yt:Math.pow(yt,e),new de(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new de(Fe(this.r),Fe(this.g),Fe(this.b),Zt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ir,formatHex:Ir,formatHex8:Dl,formatRgb:Ar,toString:Ar}));function Ir(){return`#${Ve(this.r)}${Ve(this.g)}${Ve(this.b)}`}function Dl(){return`#${Ve(this.r)}${Ve(this.g)}${Ve(this.b)}${Ve((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ar(){const e=Zt(this.opacity);return`${e===1?"rgb(":"rgba("}${Fe(this.r)}, ${Fe(this.g)}, ${Fe(this.b)}${e===1?")":`, ${e})`}`}function Zt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Fe(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ve(e){return e=Fe(e),(e<16?"0":"")+e.toString(16)}function $r(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new xe(e,t,n,r)}function Qo(e){if(e instanceof xe)return new xe(e.h,e.s,e.l,e.opacity);if(e instanceof Ct||(e=We(e)),!e)return new xe;if(e instanceof xe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),s=NaN,a=i-o,c=(i+o)/2;return a?(t===i?s=(n-r)/a+(n<r)*6:n===i?s=(r-t)/a+2:s=(t-n)/a+4,a/=c<.5?i+o:2-i-o,s*=60):a=c>0&&c<1?0:s,new xe(s,a,c,e.opacity)}function Ll(e,t,n,r){return arguments.length===1?Qo(e):new xe(e,t,n,r??1)}function xe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Un(xe,Ll,Ko(Ct,{brighter(e){return e=e==null?Gt:Math.pow(Gt,e),new xe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?yt:Math.pow(yt,e),new xe(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new de(vn(e>=240?e-240:e+120,o,r),vn(e,o,r),vn(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new xe(zr(this.h),Tt(this.s),Tt(this.l),Zt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Zt(this.opacity);return`${e===1?"hsl(":"hsla("}${zr(this.h)}, ${Tt(this.s)*100}%, ${Tt(this.l)*100}%${e===1?")":`, ${e})`}`}}));function zr(e){return e=(e||0)%360,e<0?e+360:e}function Tt(e){return Math.max(0,Math.min(1,e||0))}function vn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Kn=e=>()=>e;function Hl(e,t){return function(n){return e+n*t}}function Bl(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Vl(e){return(e=+e)==1?Jo:function(t,n){return n-t?Bl(t,n,e):Kn(isNaN(t)?n:t)}}function Jo(e,t){var n=t-e;return n?Hl(e,n):Kn(isNaN(e)?t:e)}const Ut=(function e(t){var n=Vl(t);function r(o,i){var s=n((o=Tn(o)).r,(i=Tn(i)).r),a=n(o.g,i.g),c=n(o.b,i.b),l=Jo(o.opacity,i.opacity);return function(f){return o.r=s(f),o.g=a(f),o.b=c(f),o.opacity=l(f),o+""}}return r.gamma=e,r})(1);function Fl(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=e[o]*(1-i)+t[o]*i;return r}}function Ol(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Wl(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),i=new Array(n),s;for(s=0;s<r;++s)o[s]=gt(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(a){for(s=0;s<r;++s)i[s]=o[s](a);return i}}function Xl(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Se(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Yl(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=gt(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Rn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,bn=new RegExp(Rn.source,"g");function ql(e){return function(){return e}}function Gl(e){return function(t){return e(t)+""}}function ei(e,t){var n=Rn.lastIndex=bn.lastIndex=0,r,o,i,s=-1,a=[],c=[];for(e=e+"",t=t+"";(r=Rn.exec(e))&&(o=bn.exec(t));)(i=o.index)>n&&(i=t.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(r=r[0])===(o=o[0])?a[s]?a[s]+=o:a[++s]=o:(a[++s]=null,c.push({i:s,x:Se(r,o)})),n=bn.lastIndex;return n<t.length&&(i=t.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?c[0]?Gl(c[0].x):ql(t):(t=c.length,function(l){for(var f=0,u;f<t;++f)a[(u=c[f]).i]=u.x(l);return a.join("")})}function gt(e,t){var n=typeof t,r;return t==null||n==="boolean"?Kn(t):(n==="number"?Se:n==="string"?(r=We(t))?(t=r,Ut):ei:t instanceof We?Ut:t instanceof Date?Xl:Ol(t)?Fl:Array.isArray(t)?Wl:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Yl:Se)(e,t)}var Pr=180/Math.PI,jn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ti(e,t,n,r,o,i){var s,a,c;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,c/=a),e*r<t*n&&(e=-e,t=-t,c=-c,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Pr,skewX:Math.atan(c)*Pr,scaleX:s,scaleY:a}}var Rt;function Zl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?jn:ti(t.a,t.b,t.c,t.d,t.e,t.f)}function Ul(e){return e==null||(Rt||(Rt=document.createElementNS("http://www.w3.org/2000/svg","g")),Rt.setAttribute("transform",e),!(e=Rt.transform.baseVal.consolidate()))?jn:(e=e.matrix,ti(e.a,e.b,e.c,e.d,e.e,e.f))}function ni(e,t,n,r){function o(l){return l.length?l.pop()+" ":""}function i(l,f,u,d,h,g){if(l!==u||f!==d){var w=h.push("translate(",null,t,null,n);g.push({i:w-4,x:Se(l,u)},{i:w-2,x:Se(f,d)})}else(u||d)&&h.push("translate("+u+t+d+n)}function s(l,f,u,d){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),d.push({i:u.push(o(u)+"rotate(",null,r)-2,x:Se(l,f)})):f&&u.push(o(u)+"rotate("+f+r)}function a(l,f,u,d){l!==f?d.push({i:u.push(o(u)+"skewX(",null,r)-2,x:Se(l,f)}):f&&u.push(o(u)+"skewX("+f+r)}function c(l,f,u,d,h,g){if(l!==u||f!==d){var w=h.push(o(h)+"scale(",null,",",null,")");g.push({i:w-4,x:Se(l,u)},{i:w-2,x:Se(f,d)})}else(u!==1||d!==1)&&h.push(o(h)+"scale("+u+","+d+")")}return function(l,f){var u=[],d=[];return l=e(l),f=e(f),i(l.translateX,l.translateY,f.translateX,f.translateY,u,d),s(l.rotate,f.rotate,u,d),a(l.skewX,f.skewX,u,d),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,u,d),l=f=null,function(h){for(var g=-1,w=d.length,x;++g<w;)u[(x=d[g]).i]=x.x(h);return u.join("")}}}var Kl=ni(Zl,"px, ","px)","deg)"),Ql=ni(Ul,", ",")",")"),Jl=1e-12;function Tr(e){return((e=Math.exp(e))+1/e)/2}function eu(e){return((e=Math.exp(e))-1/e)/2}function tu(e){return((e=Math.exp(2*e))-1)/(e+1)}const Ot=(function e(t,n,r){function o(i,s){var a=i[0],c=i[1],l=i[2],f=s[0],u=s[1],d=s[2],h=f-a,g=u-c,w=h*h+g*g,x,m;if(w<Jl)m=Math.log(d/l)/t,x=function(I){return[a+I*h,c+I*g,l*Math.exp(t*I*m)]};else{var _=Math.sqrt(w),p=(d*d-l*l+r*w)/(2*l*n*_),v=(d*d-l*l-r*w)/(2*d*n*_),N=Math.log(Math.sqrt(p*p+1)-p),S=Math.log(Math.sqrt(v*v+1)-v);m=(S-N)/t,x=function(I){var $=I*m,z=Tr(N),F=l/(n*_)*(z*tu(t*$+N)-eu(N));return[a+F*h,c+F*g,l*z/Tr(t*$+N)]}}return x.duration=m*1e3*t/Math.SQRT2,x}return o.rho=function(i){var s=Math.max(.001,+i),a=s*s,c=a*a;return e(s,a,c)},o})(Math.SQRT2,2,4);var nt=0,dt=0,lt=0,ri=1e3,Kt,ft,Qt=0,Xe=0,sn=0,wt=typeof performance=="object"&&performance.now?performance:Date,oi=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Qn(){return Xe||(oi(nu),Xe=wt.now()+sn)}function nu(){Xe=0}function Jt(){this._call=this._time=this._next=null}Jt.prototype=ii.prototype={constructor:Jt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Qn():+n)+(t==null?0:+t),!this._next&&ft!==this&&(ft?ft._next=this:Kt=this,ft=this),this._call=e,this._time=n,Dn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Dn())}};function ii(e,t,n){var r=new Jt;return r.restart(e,t,n),r}function ru(){Qn(),++nt;for(var e=Kt,t;e;)(t=Xe-e._time)>=0&&e._call.call(void 0,t),e=e._next;--nt}function Rr(){Xe=(Qt=wt.now())+sn,nt=dt=0;try{ru()}finally{nt=0,iu(),Xe=0}}function ou(){var e=wt.now(),t=e-Qt;t>ri&&(sn-=t,Qt=e)}function iu(){for(var e,t=Kt,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Kt=n);ft=e,Dn(r)}function Dn(e){if(!nt){dt&&(dt=clearTimeout(dt));var t=e-Xe;t>24?(e<1/0&&(dt=setTimeout(Rr,e-wt.now()-sn)),lt&&(lt=clearInterval(lt))):(lt||(Qt=wt.now(),lt=setInterval(ou,ri)),nt=1,oi(Rr))}}function jr(e,t,n){var r=new Jt;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var su=rn("start","end","cancel","interrupt"),au=[],si=0,Dr=1,Ln=2,Wt=3,Lr=4,Hn=5,Xt=6;function an(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;cu(e,n,{name:t,index:r,group:o,on:su,tween:au,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:si})}function Jn(e,t){var n=_e(e,t);if(n.state>si)throw new Error("too late; already scheduled");return n}function Ne(e,t){var n=_e(e,t);if(n.state>Wt)throw new Error("too late; already running");return n}function _e(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function cu(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=ii(i,0,n.time);function i(l){n.state=Dr,n.timer.restart(s,n.delay,n.time),n.delay<=l&&s(l-n.delay)}function s(l){var f,u,d,h;if(n.state!==Dr)return c();for(f in r)if(h=r[f],h.name===n.name){if(h.state===Wt)return jr(s);h.state===Lr?(h.state=Xt,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[f]):+f<t&&(h.state=Xt,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[f])}if(jr(function(){n.state===Wt&&(n.state=Lr,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=Ln,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Ln){for(n.state=Wt,o=new Array(d=n.tween.length),f=0,u=-1;f<d;++f)(h=n.tween[f].value.call(e,e.__data__,n.index,n.group))&&(o[++u]=h);o.length=u+1}}function a(l){for(var f=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=Hn,1),u=-1,d=o.length;++u<d;)o[u].call(e,f);n.state===Hn&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=Xt,n.timer.stop(),delete r[t];for(var l in r)return;delete e.__transition}}function Yt(e,t){var n=e.__transition,r,o,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((r=n[s]).name!==t){i=!1;continue}o=r.state>Ln&&r.state<Hn,r.state=Xt,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function lu(e){return this.each(function(){Yt(this,e)})}function uu(e,t){var n,r;return function(){var o=Ne(this,e),i=o.tween;if(i!==n){r=n=i;for(var s=0,a=r.length;s<a;++s)if(r[s].name===t){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function du(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=Ne(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:t,value:n},c=0,l=o.length;c<l;++c)if(o[c].name===t){o[c]=a;break}c===l&&o.push(a)}i.tween=o}}function fu(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=_e(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===e)return s.value;return null}return this.each((t==null?uu:du)(n,e,t))}function er(e,t,n){var r=e._id;return e.each(function(){var o=Ne(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return _e(o,r).value[t]}}function ai(e,t){var n;return(typeof t=="number"?Se:t instanceof We?Ut:(n=We(t))?(t=n,Ut):ei)(e,t)}function hu(e){return function(){this.removeAttribute(e)}}function gu(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pu(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttribute(e);return s===o?null:s===r?i:i=t(r=s,n)}}function mu(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===o?null:s===r?i:i=t(r=s,n)}}function yu(e,t,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a)))}}function xu(e,t,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a)))}}function wu(e,t){var n=on(e),r=n==="transform"?Ql:ai;return this.attrTween(e,typeof t=="function"?(n.local?xu:yu)(n,r,er(this,"attr."+e,t)):t==null?(n.local?gu:hu)(n):(n.local?mu:pu)(n,r,t))}function vu(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function bu(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function _u(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&bu(e,i)),n}return o._value=t,o}function Su(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&vu(e,i)),n}return o._value=t,o}function Eu(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=on(e);return this.tween(n,(r.local?_u:Su)(r,t))}function Nu(e,t){return function(){Jn(this,e).delay=+t.apply(this,arguments)}}function Cu(e,t){return t=+t,function(){Jn(this,e).delay=t}}function Mu(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Nu:Cu)(t,e)):_e(this.node(),t).delay}function ku(e,t){return function(){Ne(this,e).duration=+t.apply(this,arguments)}}function Iu(e,t){return t=+t,function(){Ne(this,e).duration=t}}function Au(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ku:Iu)(t,e)):_e(this.node(),t).duration}function $u(e,t){if(typeof t!="function")throw new Error;return function(){Ne(this,e).ease=t}}function zu(e){var t=this._id;return arguments.length?this.each($u(t,e)):_e(this.node(),t).ease}function Pu(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ne(this,e).ease=n}}function Tu(e){if(typeof e!="function")throw new Error;return this.each(Pu(this._id,e))}function Ru(e){typeof e!="function"&&(e=Lo(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new $e(r,this._parents,this._name,this._id)}function ju(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),s=new Array(r),a=0;a<i;++a)for(var c=t[a],l=n[a],f=c.length,u=s[a]=new Array(f),d,h=0;h<f;++h)(d=c[h]||l[h])&&(u[h]=d);for(;a<r;++a)s[a]=t[a];return new $e(s,this._parents,this._name,this._id)}function Du(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Lu(e,t,n){var r,o,i=Du(t)?Jn:Ne;return function(){var s=i(this,e),a=s.on;a!==r&&(o=(r=a).copy()).on(t,n),s.on=o}}function Hu(e,t){var n=this._id;return arguments.length<2?_e(this.node(),n).on.on(e):this.each(Lu(n,e,t))}function Bu(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Vu(){return this.on("end.remove",Bu(this._id))}function Fu(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Gn(e));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var a=r[s],c=a.length,l=i[s]=new Array(c),f,u,d=0;d<c;++d)(f=a[d])&&(u=e.call(f,f.__data__,d,a))&&("__data__"in f&&(u.__data__=f.__data__),l[d]=u,an(l[d],t,n,d,l,_e(f,n)));return new $e(i,this._parents,t,n)}function Ou(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Do(e));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var c=r[a],l=c.length,f,u=0;u<l;++u)if(f=c[u]){for(var d=e.call(f,f.__data__,u,c),h,g=_e(f,n),w=0,x=d.length;w<x;++w)(h=d[w])&&an(h,t,n,w,d,g);i.push(d),s.push(f)}return new $e(i,s,t,n)}var Wu=Nt.prototype.constructor;function Xu(){return new Wu(this._groups,this._parents)}function Yu(e,t){var n,r,o;return function(){var i=tt(this,e),s=(this.style.removeProperty(e),tt(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function ci(e){return function(){this.style.removeProperty(e)}}function qu(e,t,n){var r,o=n+"",i;return function(){var s=tt(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function Gu(e,t,n){var r,o,i;return function(){var s=tt(this,e),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(e),tt(this,e))),s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a))}}function Zu(e,t){var n,r,o,i="style."+t,s="end."+i,a;return function(){var c=Ne(this,e),l=c.on,f=c.value[i]==null?a||(a=ci(t)):void 0;(l!==n||o!==f)&&(r=(n=l).copy()).on(s,o=f),c.on=r}}function Uu(e,t,n){var r=(e+="")=="transform"?Kl:ai;return t==null?this.styleTween(e,Yu(e,r)).on("end.style."+e,ci(e)):typeof t=="function"?this.styleTween(e,Gu(e,r,er(this,"style."+e,t))).each(Zu(this._id,e)):this.styleTween(e,qu(e,r,t),n).on("end.style."+e,null)}function Ku(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Qu(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&Ku(e,s,n)),r}return i._value=t,i}function Ju(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Qu(e,t,n??""))}function ed(e){return function(){this.textContent=e}}function td(e){return function(){var t=e(this);this.textContent=t??""}}function nd(e){return this.tween("text",typeof e=="function"?td(er(this,"text",e)):ed(e==null?"":e+""))}function rd(e){return function(t){this.textContent=e.call(this,t)}}function od(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&rd(o)),t}return r._value=e,r}function id(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,od(e))}function sd(){for(var e=this._name,t=this._id,n=li(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,l=0;l<a;++l)if(c=s[l]){var f=_e(c,t);an(c,e,n,l,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new $e(r,this._parents,e,n)}function ad(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var a={value:s},c={value:function(){--o===0&&i()}};n.each(function(){var l=Ne(this,r),f=l.on;f!==e&&(t=(e=f).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(c)),l.on=t}),o===0&&i()})}var cd=0;function $e(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function li(){return++cd}var Ie=Nt.prototype;$e.prototype={constructor:$e,select:Fu,selectAll:Ou,selectChild:Ie.selectChild,selectChildren:Ie.selectChildren,filter:Ru,merge:ju,selection:Xu,transition:sd,call:Ie.call,nodes:Ie.nodes,node:Ie.node,size:Ie.size,empty:Ie.empty,each:Ie.each,on:Hu,attr:wu,attrTween:Eu,style:Uu,styleTween:Ju,text:nd,textTween:id,remove:Vu,tween:fu,delay:Mu,duration:Au,ease:zu,easeVarying:Tu,end:ad,[Symbol.iterator]:Ie[Symbol.iterator]};function ld(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var ud={time:null,delay:0,duration:250,ease:ld};function dd(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function fd(e){var t,n;e instanceof $e?(t=e._id,e=e._name):(t=li(),(n=ud).time=Qn(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&an(c,e,t,l,s,n||dd(c,t));return new $e(r,this._parents,e,t)}Nt.prototype.interrupt=lu;Nt.prototype.transition=fd;const jt=e=>()=>e;function hd(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Ae(e,t,n){this.k=e,this.x=t,this.y=n}Ae.prototype={constructor:Ae,scale:function(e){return e===1?this:new Ae(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ae(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var cn=new Ae(1,0,0);ui.prototype=Ae.prototype;function ui(e){for(;!e.__zoom;)if(!(e=e.parentNode))return cn;return e.__zoom}function _n(e){e.stopImmediatePropagation()}function ut(e){e.preventDefault(),e.stopImmediatePropagation()}function gd(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function pd(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Hr(){return this.__zoom||cn}function md(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function yd(){return navigator.maxTouchPoints||"ontouchstart"in this}function xd(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function di(){var e=gd,t=pd,n=xd,r=md,o=yd,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,c=Ot,l=rn("start","zoom","end"),f,u,d,h=500,g=150,w=0,x=10;function m(y){y.property("__zoom",Hr).on("wheel.zoom",$,{passive:!1}).on("mousedown.zoom",z).on("dblclick.zoom",F).filter(o).on("touchstart.zoom",T).on("touchmove.zoom",B).on("touchend.zoom touchcancel.zoom",R).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(y,M,E,A){var P=y.selection?y.selection():y;P.property("__zoom",Hr),y!==P?N(y,M,E,A):P.interrupt().each(function(){S(this,arguments).event(A).start().zoom(null,typeof M=="function"?M.apply(this,arguments):M).end()})},m.scaleBy=function(y,M,E,A){m.scaleTo(y,function(){var P=this.__zoom.k,k=typeof M=="function"?M.apply(this,arguments):M;return P*k},E,A)},m.scaleTo=function(y,M,E,A){m.transform(y,function(){var P=t.apply(this,arguments),k=this.__zoom,L=E==null?v(P):typeof E=="function"?E.apply(this,arguments):E,H=k.invert(L),D=typeof M=="function"?M.apply(this,arguments):M;return n(p(_(k,D),L,H),P,s)},E,A)},m.translateBy=function(y,M,E,A){m.transform(y,function(){return n(this.__zoom.translate(typeof M=="function"?M.apply(this,arguments):M,typeof E=="function"?E.apply(this,arguments):E),t.apply(this,arguments),s)},null,A)},m.translateTo=function(y,M,E,A,P){m.transform(y,function(){var k=t.apply(this,arguments),L=this.__zoom,H=A==null?v(k):typeof A=="function"?A.apply(this,arguments):A;return n(cn.translate(H[0],H[1]).scale(L.k).translate(typeof M=="function"?-M.apply(this,arguments):-M,typeof E=="function"?-E.apply(this,arguments):-E),k,s)},A,P)};function _(y,M){return M=Math.max(i[0],Math.min(i[1],M)),M===y.k?y:new Ae(M,y.x,y.y)}function p(y,M,E){var A=M[0]-E[0]*y.k,P=M[1]-E[1]*y.k;return A===y.x&&P===y.y?y:new Ae(y.k,A,P)}function v(y){return[(+y[0][0]+ +y[1][0])/2,(+y[0][1]+ +y[1][1])/2]}function N(y,M,E,A){y.on("start.zoom",function(){S(this,arguments).event(A).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(A).end()}).tween("zoom",function(){var P=this,k=arguments,L=S(P,k).event(A),H=t.apply(P,k),D=E==null?v(H):typeof E=="function"?E.apply(P,k):E,X=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),Y=P.__zoom,U=typeof M=="function"?M.apply(P,k):M,J=c(Y.invert(D).concat(X/Y.k),U.invert(D).concat(X/U.k));return function(K){if(K===1)K=U;else{var j=J(K),O=X/j[2];K=new Ae(O,D[0]-j[0]*O,D[1]-j[1]*O)}L.zoom(null,K)}})}function S(y,M,E){return!E&&y.__zooming||new I(y,M)}function I(y,M){this.that=y,this.args=M,this.active=0,this.sourceEvent=null,this.extent=t.apply(y,M),this.taps=0}I.prototype={event:function(y){return y&&(this.sourceEvent=y),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(y,M){return this.mouse&&y!=="mouse"&&(this.mouse[1]=M.invert(this.mouse[0])),this.touch0&&y!=="touch"&&(this.touch0[1]=M.invert(this.touch0[0])),this.touch1&&y!=="touch"&&(this.touch1[1]=M.invert(this.touch1[0])),this.that.__zoom=M,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(y){var M=he(this.that).datum();l.call(y,this.that,new hd(y,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:l}),M)}};function $(y,...M){if(!e.apply(this,arguments))return;var E=S(this,M).event(y),A=this.__zoom,P=Math.max(i[0],Math.min(i[1],A.k*Math.pow(2,r.apply(this,arguments)))),k=ye(y);if(E.wheel)(E.mouse[0][0]!==k[0]||E.mouse[0][1]!==k[1])&&(E.mouse[1]=A.invert(E.mouse[0]=k)),clearTimeout(E.wheel);else{if(A.k===P)return;E.mouse=[k,A.invert(k)],Yt(this),E.start()}ut(y),E.wheel=setTimeout(L,g),E.zoom("mouse",n(p(_(A,P),E.mouse[0],E.mouse[1]),E.extent,s));function L(){E.wheel=null,E.end()}}function z(y,...M){if(d||!e.apply(this,arguments))return;var E=y.currentTarget,A=S(this,M,!0).event(y),P=he(y.view).on("mousemove.zoom",D,!0).on("mouseup.zoom",X,!0),k=ye(y,E),L=y.clientX,H=y.clientY;Go(y.view),_n(y),A.mouse=[k,this.__zoom.invert(k)],Yt(this),A.start();function D(Y){if(ut(Y),!A.moved){var U=Y.clientX-L,J=Y.clientY-H;A.moved=U*U+J*J>w}A.event(Y).zoom("mouse",n(p(A.that.__zoom,A.mouse[0]=ye(Y,E),A.mouse[1]),A.extent,s))}function X(Y){P.on("mousemove.zoom mouseup.zoom",null),Zo(Y.view,A.moved),ut(Y),A.event(Y).end()}}function F(y,...M){if(e.apply(this,arguments)){var E=this.__zoom,A=ye(y.changedTouches?y.changedTouches[0]:y,this),P=E.invert(A),k=E.k*(y.shiftKey?.5:2),L=n(p(_(E,k),A,P),t.apply(this,M),s);ut(y),a>0?he(this).transition().duration(a).call(N,L,A,y):he(this).call(m.transform,L,A,y)}}function T(y,...M){if(e.apply(this,arguments)){var E=y.touches,A=E.length,P=S(this,M,y.changedTouches.length===A).event(y),k,L,H,D;for(_n(y),L=0;L<A;++L)H=E[L],D=ye(H,this),D=[D,this.__zoom.invert(D),H.identifier],P.touch0?!P.touch1&&P.touch0[2]!==D[2]&&(P.touch1=D,P.taps=0):(P.touch0=D,k=!0,P.taps=1+!!f);f&&(f=clearTimeout(f)),k&&(P.taps<2&&(u=D[0],f=setTimeout(function(){f=null},h)),Yt(this),P.start())}}function B(y,...M){if(this.__zooming){var E=S(this,M).event(y),A=y.changedTouches,P=A.length,k,L,H,D;for(ut(y),k=0;k<P;++k)L=A[k],H=ye(L,this),E.touch0&&E.touch0[2]===L.identifier?E.touch0[0]=H:E.touch1&&E.touch1[2]===L.identifier&&(E.touch1[0]=H);if(L=E.that.__zoom,E.touch1){var X=E.touch0[0],Y=E.touch0[1],U=E.touch1[0],J=E.touch1[1],K=(K=U[0]-X[0])*K+(K=U[1]-X[1])*K,j=(j=J[0]-Y[0])*j+(j=J[1]-Y[1])*j;L=_(L,Math.sqrt(K/j)),H=[(X[0]+U[0])/2,(X[1]+U[1])/2],D=[(Y[0]+J[0])/2,(Y[1]+J[1])/2]}else if(E.touch0)H=E.touch0[0],D=E.touch0[1];else return;E.zoom("touch",n(p(L,H,D),E.extent,s))}}function R(y,...M){if(this.__zooming){var E=S(this,M).event(y),A=y.changedTouches,P=A.length,k,L;for(_n(y),d&&clearTimeout(d),d=setTimeout(function(){d=null},h),k=0;k<P;++k)L=A[k],E.touch0&&E.touch0[2]===L.identifier?delete E.touch0:E.touch1&&E.touch1[2]===L.identifier&&delete E.touch1;if(E.touch1&&!E.touch0&&(E.touch0=E.touch1,delete E.touch1),E.touch0)E.touch0[1]=this.__zoom.invert(E.touch0[0]);else if(E.end(),E.taps===2&&(L=ye(L,this),Math.hypot(u[0]-L[0],u[1]-L[1])<x)){var H=he(this).on("dblclick.zoom");H&&H.apply(this,arguments)}}}return m.wheelDelta=function(y){return arguments.length?(r=typeof y=="function"?y:jt(+y),m):r},m.filter=function(y){return arguments.length?(e=typeof y=="function"?y:jt(!!y),m):e},m.touchable=function(y){return arguments.length?(o=typeof y=="function"?y:jt(!!y),m):o},m.extent=function(y){return arguments.length?(t=typeof y=="function"?y:jt([[+y[0][0],+y[0][1]],[+y[1][0],+y[1][1]]]),m):t},m.scaleExtent=function(y){return arguments.length?(i[0]=+y[0],i[1]=+y[1],m):[i[0],i[1]]},m.translateExtent=function(y){return arguments.length?(s[0][0]=+y[0][0],s[1][0]=+y[1][0],s[0][1]=+y[0][1],s[1][1]=+y[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(y){return arguments.length?(n=y,m):n},m.duration=function(y){return arguments.length?(a=+y,m):a},m.interpolate=function(y){return arguments.length?(c=y,m):c},m.on=function(){var y=l.on.apply(l,arguments);return y===l?m:y},m.clickDistance=function(y){return arguments.length?(w=(y=+y)*y,m):Math.sqrt(w)},m.tapDistance=function(y){return arguments.length?(x=+y,m):x},m}const be={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},vt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],fi=["Enter"," ","Escape"],hi={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var rt;(function(e){e.Strict="strict",e.Loose="loose"})(rt||(rt={}));var Oe;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Oe||(Oe={}));var bt;(function(e){e.Partial="partial",e.Full="full"})(bt||(bt={}));const gi={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Re;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Re||(Re={}));var ot;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(ot||(ot={}));var G;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(G||(G={}));const Br={[G.Left]:G.Right,[G.Right]:G.Left,[G.Top]:G.Bottom,[G.Bottom]:G.Top};function pi(e){return e===null?null:e?"valid":"invalid"}const mi=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,wd=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),tr=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Mt=(e,t=[0,0])=>{const{width:n,height:r}=Ce(e),o=e.origin??t,i=n*o[0],s=r*o[1];return{x:e.position.x-i,y:e.position.y-s}},vd=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const i=typeof o=="string";let s=!t.nodeLookup&&!i?o:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(o):tr(o)?o:t.nodeLookup.get(o.id));const a=s?en(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return ln(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return un(n)},kt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(o=>{(t.filter===void 0||t.filter(o))&&(n=ln(n,en(o)),r=!0)}),r?un(n):{x:0,y:0,width:0,height:0}},nr=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1)=>{const a=(t.x-n)/o,c=(t.y-r)/o,l=t.width/o,f=t.height/o,u=[];for(const d of e.values()){const{measured:h,selectable:g=!0,hidden:w=!1}=d;if(s&&!g||w)continue;const x=h.width??d.width??d.initialWidth??0,m=h.height??d.height??d.initialHeight??0,{x:_,y:p}=d.internals.positionAbsolute,v=vi(a,c,l,f,_,p,x,m),N=x*m,S=i&&v>0;(!d.internals.handleBounds||S||v>=N||d.dragging)&&u.push(d)}return u},bd=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function _d(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{let i;if(t!=null&&t.includeHiddenNodes){const{width:s,height:a}=Ce(o);i=s>0&&a>0}else i=!!(o.measured.width&&o.measured.height&&!o.hidden);i&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function Sd({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},s){if(e.size===0)return!0;const a=_d(e,s),c=kt(a),l=or(c,t,n,(s==null?void 0:s.minZoom)??o,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await r.setViewport(l,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),!0}function yi({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const s=n.get(e),a=s.parentId?n.get(s.parentId):void 0,{x:c,y:l}=a?a.internals.positionAbsolute:{x:0,y:0},f=s.origin??r;let u=s.extent||o;if(s.extent==="parent"&&!s.expandParent)if(!a)i==null||i("005",be.error005());else{const h=a.measured.width,g=a.measured.height;h&&g&&(u=[[c,l],[c+h,l+g]])}else a&&qe(s.extent)&&(u=[[s.extent[0][0]+c,s.extent[0][1]+l],[s.extent[1][0]+c,s.extent[1][1]+l]]);const d=qe(u)?Ye(t,u,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",be.error015())),{position:{x:d.x-c+(s.measured.width??0)*f[0],y:d.y-l+(s.measured.height??0)*f[1]},positionAbsolute:d}}async function Ed({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(e.map(d=>d.id)),s=[];for(const d of n){if(d.deletable===!1)continue;const h=i.has(d.id),g=!h&&d.parentId&&s.find(w=>w.id===d.parentId);(h||g)&&s.push(d)}const a=new Set(t.map(d=>d.id)),c=r.filter(d=>d.deletable!==!1),f=bd(s,c);for(const d of c)a.has(d.id)&&!f.find(g=>g.id===d.id)&&f.push(d);if(!o)return{edges:f,nodes:s};const u=await o({nodes:s,edges:f});return typeof u=="boolean"?u?{edges:f,nodes:s}:{edges:[],nodes:[]}:u}const it=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ye=(e={x:0,y:0},t,n)=>({x:it(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:it(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function xi(e,t,n){const{width:r,height:o}=Ce(n),{x:i,y:s}=n.internals.positionAbsolute;return Ye(e,[[i,s],[i+r,s+o]],t)}const Vr=(e,t,n)=>e<t?it(Math.abs(e-t),1,t)/t:e>n?-it(Math.abs(e-n),1,t)/t:0,rr=(e,t,n=15,r=40)=>{const o=Vr(e.x,r,t.width-r)*n,i=Vr(e.y,r,t.height-r)*n;return[o,i]},ln=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Bn=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),un=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),_t=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=tr(e)?e.internals.positionAbsolute:Mt(e,t);return{x:n,y:r,width:((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},en=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=tr(e)?e.internals.positionAbsolute:Mt(e,t);return{x:n,y:r,x2:n+(((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},wi=(e,t)=>un(ln(Bn(e),Bn(t))),vi=(e,t,n,r,o,i,s,a)=>{const c=Math.max(0,Math.min(e+n,o+s)-Math.max(e,o)),l=Math.max(0,Math.min(t+r,i+a)-Math.max(t,i));return Math.ceil(c*l)},tn=(e,t)=>vi(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Fr=e=>we(e.width)&&we(e.height)&&we(e.x)&&we(e.y),we=e=>!isNaN(e)&&isFinite(e),bi=(e,t)=>(n,r)=>{},It=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),At=({x:e,y:t},[n,r,o],i=!1,s=[1,1])=>{const a={x:(e-n)/o,y:(t-r)/o};return i?It(a,s):a},st=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function Ze(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Nd(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Ze(e,n),o=Ze(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=Ze(e.top??e.y??0,n),o=Ze(e.bottom??e.y??0,n),i=Ze(e.left??e.x??0,t),s=Ze(e.right??e.x??0,t);return{top:r,right:s,bottom:o,left:i,x:i+s,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Cd(e,t,n,r,o,i){const{x:s,y:a}=st(e,[t,n,r]),{x:c,y:l}=st({x:e.x+e.width,y:e.y+e.height},[t,n,r]),f=o-c,u=i-l;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(f),bottom:Math.floor(u)}}const or=(e,t,n,r,o,i)=>{const s=Nd(i,t,n),a=(t-s.x)/e.width,c=(n-s.y)/e.height,l=Math.min(a,c),f=it(l,r,o),u=e.x+e.width/2,d=e.y+e.height/2,h=t/2-u*f,g=n/2-d*f,w=Cd(e,h,g,f,t,n),x={left:Math.min(w.left-s.left,0),top:Math.min(w.top-s.top,0),right:Math.min(w.right-s.right,0),bottom:Math.min(w.bottom-s.bottom,0)};return{x:h-x.left+x.right,y:g-x.top+x.bottom,zoom:f}},St=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function qe(e){return e!=null&&e!=="parent"}function Ce(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function _i(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function Si(e,t={width:0,height:0},n,r,o){const i={...e},s=r.get(n);if(s){const a=s.origin||o;i.x+=s.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function Or(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Md(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function kd(e){return{...hi,...e||{}}}function pt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:s}=ve(e),a=At({x:i-((o==null?void 0:o.left)??0),y:s-((o==null?void 0:o.top)??0)},r),{x:c,y:l}=n?It(a,t):a;return{xSnapped:c,ySnapped:l,...a}}const ir=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ei=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Id=["INPUT","SELECT","TEXTAREA"];function Ni(e){var r,o;const t=((o=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:o[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:Id.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Ci=e=>"clientX"in e,ve=(e,t)=>{var i,s;const n=Ci(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,o=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},Wr=(e,t,n,r,o)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:o,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...ir(s)}})};function Mi({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:a}){const c=e*.125+o*.375+s*.375+n*.125,l=t*.125+i*.375+a*.375+r*.125,f=Math.abs(c-e),u=Math.abs(l-t);return[c,l,f,u]}function Dt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Xr({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case G.Left:return[t-Dt(t-r,i),n];case G.Right:return[t+Dt(r-t,i),n];case G.Top:return[t,n-Dt(n-o,i)];case G.Bottom:return[t,n+Dt(o-n,i)]}}function ki({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:o,targetPosition:i=G.Top,curvature:s=.25}){const[a,c]=Xr({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[l,f]=Xr({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[u,d,h,g]=Mi({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:c,targetControlX:l,targetControlY:f});return[`M${e},${t} C${a},${c} ${l},${f} ${r},${o}`,u,d,h,g]}function Ii({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,s=Math.abs(r-t)/2,a=r<t?r+s:r-s;return[i,a,o,s]}function Ad({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const s=o&&n?r+1e3:r,a=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return s+a}function $d({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const i=ln(en(e),en(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return tn(s,un(i))>0}const zd=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,Pd=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Td=(e,t,n={})=>{var i;if(!e.source||!e.target)return(i=n.onError)==null||i.call(n,"006",be.error006()),t;const r=n.getEdgeId||zd;let o;return mi(e)?o={...e}:o={...e,id:r(e)},Pd(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function Ai({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,a]=Ii({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,a]}const Yr={[G.Left]:{x:-1,y:0},[G.Right]:{x:1,y:0},[G.Top]:{x:0,y:-1},[G.Bottom]:{x:0,y:1}},Rd=({source:e,sourcePosition:t=G.Bottom,target:n})=>t===G.Left||t===G.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},qr=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function jd({source:e,sourcePosition:t=G.Bottom,target:n,targetPosition:r=G.Top,center:o,offset:i,stepPosition:s}){const a=Yr[t],c=Yr[r],l={x:e.x+a.x*i,y:e.y+a.y*i},f={x:n.x+c.x*i,y:n.y+c.y*i},u=Rd({source:l,sourcePosition:t,target:f}),d=u.x!==0?"x":"y",h=u[d];let g=[],w,x;const m={x:0,y:0},_={x:0,y:0},[,,p,v]=Ii({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*c[d]===-1){d==="x"?(w=o.x??l.x+(f.x-l.x)*s,x=o.y??(l.y+f.y)/2):(w=o.x??(l.x+f.x)/2,x=o.y??l.y+(f.y-l.y)*s);const $=[{x:w,y:l.y},{x:w,y:f.y}],z=[{x:l.x,y:x},{x:f.x,y:x}];a[d]===h?g=d==="x"?$:z:g=d==="x"?z:$}else{const $=[{x:l.x,y:f.y}],z=[{x:f.x,y:l.y}];if(d==="x"?g=a.x===h?z:$:g=a.y===h?$:z,t===r){const y=Math.abs(e[d]-n[d]);if(y<=i){const M=Math.min(i-1,i-y);a[d]===h?m[d]=(l[d]>e[d]?-1:1)*M:_[d]=(f[d]>n[d]?-1:1)*M}}if(t!==r){const y=d==="x"?"y":"x",M=a[d]===c[y],E=l[y]>f[y],A=l[y]<f[y];(a[d]===1&&(!M&&E||M&&A)||a[d]!==1&&(!M&&A||M&&E))&&(g=d==="x"?$:z)}const F={x:l.x+m.x,y:l.y+m.y},T={x:f.x+_.x,y:f.y+_.y},B=Math.max(Math.abs(F.x-g[0].x),Math.abs(T.x-g[0].x)),R=Math.max(Math.abs(F.y-g[0].y),Math.abs(T.y-g[0].y));B>=R?(w=(F.x+T.x)/2,x=g[0].y):(w=g[0].x,x=(F.y+T.y)/2)}const N={x:l.x+m.x,y:l.y+m.y},S={x:f.x+_.x,y:f.y+_.y};return[[e,...N.x!==g[0].x||N.y!==g[0].y?[N]:[],...g,...S.x!==g[g.length-1].x||S.y!==g[g.length-1].y?[S]:[],n],w,x,p,v]}function Dd(e,t,n,r){const o=Math.min(qr(e,t)/2,qr(t,n)/2,r),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const l=e.x<n.x?-1:1,f=e.y<n.y?1:-1;return`L ${i+o*l},${s}Q ${i},${s} ${i},${s+o*f}`}const a=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${i},${s+o*c}Q ${i},${s} ${i+o*a},${s}`}function Vn({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:o,targetPosition:i=G.Top,borderRadius:s=5,centerX:a,centerY:c,offset:l=20,stepPosition:f=.5}){const[u,d,h,g,w]=jd({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:c},offset:l,stepPosition:f});let x=`M${u[0].x} ${u[0].y}`;for(let m=1;m<u.length-1;m++)x+=Dd(u[m-1],u[m],u[m+1],s);return x+=`L${u[u.length-1].x} ${u[u.length-1].y}`,[x,d,h,g,w]}function Gr(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Ld(e){var u;const{sourceNode:t,targetNode:n}=e;if(!Gr(t)||!Gr(n))return null;const r=t.internals.handleBounds||Zr(t.handles),o=n.internals.handleBounds||Zr(n.handles),i=Ur((r==null?void 0:r.source)??[],e.sourceHandle),s=Ur(e.connectionMode===rt.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),e.targetHandle);if(!i||!s)return(u=e.onError)==null||u.call(e,"008",be.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(i==null?void 0:i.position)||G.Bottom,c=(s==null?void 0:s.position)||G.Top,l=Ge(t,i,a),f=Ge(n,s,c);return{sourceX:l.x,sourceY:l.y,targetX:f.x,targetY:f.y,sourcePosition:a,targetPosition:c}}function Zr(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function Ge(e,t,n=G.Left,r=!1){const o=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:s,height:a}=t??Ce(e);if(r)return{x:o+s/2,y:i+a/2};switch((t==null?void 0:t.position)??n){case G.Top:return{x:o+s/2,y:i};case G.Right:return{x:o+s,y:i+a/2};case G.Bottom:return{x:o+s/2,y:i+a};case G.Left:return{x:o,y:i+a/2}}}function Ur(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Fn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function Hd(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return e.reduce((s,a)=>([a.markerStart||r,a.markerEnd||o].forEach(c=>{if(c&&typeof c=="object"){const l=Fn(c,t);i.has(l)||(s.push({id:l,color:c.color||n,...c}),i.add(l))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const $i=1e3,Bd=10,sr={nodeOrigin:[0,0],nodeExtent:vt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Vd={...sr,checkEquality:!0};function ar(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Fd(e,t,n){const r=ar(sr,n);for(const o of e.values())if(o.parentId)lr(o,e,t,r);else{const i=Mt(o,r.nodeOrigin),s=qe(o.extent)?o.extent:r.nodeExtent,a=Ye(i,s,Ce(o));o.internals.positionAbsolute=a}}function Od(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const o of e.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:e.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function cr(e){return e==="manual"}function On(e,t,n,r={}){var f,u;const o=ar(Vd,r),i={i:0},s=new Map(t),a=o!=null&&o.elevateNodesOnSelect&&!cr(o.zIndexMode)?$i:0;let c=e.length>0,l=!1;t.clear(),n.clear();for(const d of e){let h=s.get(d.id);if(o.checkEquality&&d===(h==null?void 0:h.internals.userNode))t.set(d.id,h);else{const g=Mt(d,o.nodeOrigin),w=qe(d.extent)?d.extent:o.nodeExtent,x=Ye(g,w,Ce(d));h={...o.defaults,...d,measured:{width:(f=d.measured)==null?void 0:f.width,height:(u=d.measured)==null?void 0:u.height},internals:{positionAbsolute:x,handleBounds:Od(d,h),z:zi(d,a,o.zIndexMode),userNode:d}},t.set(d.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(c=!1),d.parentId&&lr(h,t,n,r,i),l||(l=d.selected??!1)}return{nodesInitialized:c,hasSelectedNodes:l}}function Wd(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function lr(e,t,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a,zIndexMode:c}=ar(sr,r),l=e.parentId,f=t.get(l);if(!f){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Wd(e,n),o&&!f.parentId&&f.internals.rootParentIndex===void 0&&c==="auto"&&(f.internals.rootParentIndex=++o.i,f.internals.z=f.internals.z+o.i*Bd),o&&f.internals.rootParentIndex!==void 0&&(o.i=f.internals.rootParentIndex);const u=i&&!cr(c)?$i:0,{x:d,y:h,z:g}=Xd(e,f,s,a,u,c),{positionAbsolute:w}=e.internals,x=d!==w.x||h!==w.y;(x||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:d,y:h}:w,z:g}})}function zi(e,t,n){const r=we(e.zIndex)?e.zIndex:0;return cr(n)?r:r+(e.selected?t:0)}function Xd(e,t,n,r,o,i){const{x:s,y:a}=t.internals.positionAbsolute,c=Ce(e),l=Mt(e,n),f=qe(e.extent)?Ye(l,e.extent,c):l;let u=Ye({x:s+f.x,y:a+f.y},r,c);e.extent==="parent"&&(u=xi(u,c,t));const d=zi(e,o,i),h=t.internals.z??0;return{x:u.x,y:u.y,z:h>=d?h+1:d}}function ur(e,t,n,r=[0,0]){var s;const o=[],i=new Map;for(const a of e){const c=t.get(a.parentId);if(!c)continue;const l=((s=i.get(a.parentId))==null?void 0:s.expandedRect)??_t(c),f=wi(l,a.rect);i.set(a.parentId,{expandedRect:f,parent:c})}return i.size>0&&i.forEach(({expandedRect:a,parent:c},l)=>{var p;const f=c.internals.positionAbsolute,u=Ce(c),d=c.origin??r,h=a.x<f.x?Math.round(Math.abs(f.x-a.x)):0,g=a.y<f.y?Math.round(Math.abs(f.y-a.y)):0,w=Math.max(u.width,Math.round(a.width)),x=Math.max(u.height,Math.round(a.height)),m=(w-u.width)*d[0],_=(x-u.height)*d[1];(h>0||g>0||m||_)&&(o.push({id:l,type:"position",position:{x:c.position.x-h+m,y:c.position.y-g+_}}),(p=n.get(l))==null||p.forEach(v=>{e.some(N=>N.id===v.id)||o.push({id:v.id,type:"position",position:{x:v.position.x+h,y:v.position.y+g}})})),(u.width<a.width||u.height<a.height||h||g)&&o.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:w+(h?d[0]*h-m:0),height:x+(g?d[1]*g-_:0)}})}),o}function Yd(e,t,n,r,o,i,s){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let c=!1;if(!a)return{changes:[],updatedInternals:c};const l=[],f=window.getComputedStyle(a),{m22:u}=new window.DOMMatrixReadOnly(f.transform),d=[];for(const h of e.values()){const g=t.get(h.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),c=!0;continue}const w=ir(h.nodeElement),x=g.measured.width!==w.width||g.measured.height!==w.height;if(!!(w.width&&w.height&&(x||!g.internals.handleBounds||h.force))){const _=h.nodeElement.getBoundingClientRect(),p=qe(g.extent)?g.extent:i;let{positionAbsolute:v}=g.internals;if(g.parentId&&g.extent==="parent"){const S=t.get(g.parentId);S&&(v=xi(v,w,S))}else p&&(v=Ye(v,p,w));const N={...g,measured:w,internals:{...g.internals,positionAbsolute:v,handleBounds:{source:Wr("source",h.nodeElement,_,u,g.id),target:Wr("target",h.nodeElement,_,u,g.id)}}};t.set(g.id,N),g.parentId&&lr(N,t,n,{nodeOrigin:o,zIndexMode:s}),c=!0,x&&(l.push({id:g.id,type:"dimensions",dimensions:w}),g.expandParent&&g.parentId&&d.push({id:g.id,parentId:g.parentId,rect:_t(N,o)}))}}if(d.length>0){const h=ur(d,t,n,o);l.push(...h)}return{changes:l,updatedInternals:c}}async function qd({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:i}){if(!t||!e.x&&!e.y)return!1;const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,i]],r);return!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2])}function Kr(e,t,n,r,o,i){let s=o;const a=r.get(s)||new Map;r.set(s,a.set(n,t)),s=`${o}-${e}`;const c=r.get(s)||new Map;if(r.set(s,c.set(n,t)),i){s=`${o}-${e}-${i}`;const l=r.get(s)||new Map;r.set(s,l.set(n,t))}}function Pi(e,t,n){e.clear(),t.clear();for(const r of n){const{source:o,target:i,sourceHandle:s=null,targetHandle:a=null}=r,c={edgeId:r.id,source:o,target:i,sourceHandle:s,targetHandle:a},l=`${o}-${s}--${i}-${a}`,f=`${i}-${a}--${o}-${s}`;Kr("source",c,f,e,o,s),Kr("target",c,l,e,i,a),t.set(r.id,r)}}function Ti(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Ti(n,t):!1}function Qr(e,t,n){var o;let r=e;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Gd(e,t,n,r){const o=new Map;for(const[i,s]of e)if((s.selected||s.id===r)&&(!s.parentId||!Ti(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const a=e.get(i);a&&o.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return o}function Sn({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var s,a,c;const o=[];for(const[l,f]of t){const u=(s=n.get(l))==null?void 0:s.internals.userNode;u&&o.push({...u,position:f.position,dragging:r})}if(!e)return[o[0],o];const i=(a=n.get(e))==null?void 0:a.internals.userNode;return[i?{...i,position:((c=t.get(e))==null?void 0:c.position)||i.position,dragging:r}:o[0],o]}function Zd({dragItems:e,snapGrid:t,x:n,y:r}){const o=e.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},s=It(i,t);return{x:s.x-i.x,y:s.y-i.y}}function Ud({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},s=0,a=new Map,c=!1,l={x:0,y:0},f=null,u=!1,d=null,h=!1,g=!1,w=null;function x({noDragClassName:_,handleSelector:p,domNode:v,isSelectable:N,nodeId:S,nodeClickDistance:I=0}){d=he(v);function $({x:B,y:R}){const{nodeLookup:y,nodeExtent:M,snapGrid:E,snapToGrid:A,nodeOrigin:P,onNodeDrag:k,onSelectionDrag:L,onError:H,updateNodePositions:D}=t();i={x:B,y:R};let X=!1;const Y=a.size>1,U=Y&&M?Bn(kt(a)):null,J=Y&&A?Zd({dragItems:a,snapGrid:E,x:B,y:R}):null;for(const[K,j]of a){if(!y.has(K))continue;let O={x:B-j.distance.x,y:R-j.distance.y};A&&(O=J?{x:Math.round(O.x+J.x),y:Math.round(O.y+J.y)}:It(O,E));let Q=null;if(Y&&M&&!j.extent&&U){const{positionAbsolute:q}=j.internals,ee=q.x-U.x+M[0][0],te=q.x+j.measured.width-U.x2+M[1][0],ne=q.y-U.y+M[0][1],se=q.y+j.measured.height-U.y2+M[1][1];Q=[[ee,ne],[te,se]]}const{position:Z,positionAbsolute:W}=yi({nodeId:K,nextPosition:O,nodeLookup:y,nodeExtent:Q||M,nodeOrigin:P,onError:H});X=X||j.position.x!==Z.x||j.position.y!==Z.y,j.position=Z,j.internals.positionAbsolute=W}if(g=g||X,!!X&&(D(a,!0),w&&(r||k||!S&&L))){const[K,j]=Sn({nodeId:S,dragItems:a,nodeLookup:y});r==null||r(w,a,K,j),k==null||k(w,K,j),S||L==null||L(w,j)}}async function z(){if(!f)return;const{transform:B,panBy:R,autoPanSpeed:y,autoPanOnNodeDrag:M}=t();if(!M){c=!1,cancelAnimationFrame(s);return}const[E,A]=rr(l,f,y);(E!==0||A!==0)&&(i.x=(i.x??0)-E/B[2],i.y=(i.y??0)-A/B[2],await R({x:E,y:A})&&$(i)),s=requestAnimationFrame(z)}function F(B){var Y;const{nodeLookup:R,multiSelectionActive:y,nodesDraggable:M,transform:E,snapGrid:A,snapToGrid:P,selectNodesOnDrag:k,onNodeDragStart:L,onSelectionDragStart:H,unselectNodesAndEdges:D}=t();u=!0,(!k||!N)&&!y&&S&&((Y=R.get(S))!=null&&Y.selected||D()),N&&k&&S&&(e==null||e(S));const X=pt(B.sourceEvent,{transform:E,snapGrid:A,snapToGrid:P,containerBounds:f});if(i=X,a=Gd(R,M,X,S),a.size>0&&(n||L||!S&&H)){const[U,J]=Sn({nodeId:S,dragItems:a,nodeLookup:R});n==null||n(B.sourceEvent,a,U,J),L==null||L(B.sourceEvent,U,J),S||H==null||H(B.sourceEvent,J)}}const T=Uo().clickDistance(I).on("start",B=>{const{domNode:R,nodeDragThreshold:y,transform:M,snapGrid:E,snapToGrid:A}=t();f=(R==null?void 0:R.getBoundingClientRect())||null,h=!1,g=!1,w=B.sourceEvent,y===0&&F(B),i=pt(B.sourceEvent,{transform:M,snapGrid:E,snapToGrid:A,containerBounds:f}),l=ve(B.sourceEvent,f)}).on("drag",B=>{const{autoPanOnNodeDrag:R,transform:y,snapGrid:M,snapToGrid:E,nodeDragThreshold:A,nodeLookup:P}=t(),k=pt(B.sourceEvent,{transform:y,snapGrid:M,snapToGrid:E,containerBounds:f});if(w=B.sourceEvent,(B.sourceEvent.type==="touchmove"&&B.sourceEvent.touches.length>1||S&&!P.has(S))&&(h=!0),!h){if(!c&&R&&u&&(c=!0,z()),!u){const L=ve(B.sourceEvent,f),H=L.x-l.x,D=L.y-l.y;Math.sqrt(H*H+D*D)>A&&F(B)}(i.x!==k.xSnapped||i.y!==k.ySnapped)&&a&&u&&(l=ve(B.sourceEvent,f),$(k))}}).on("end",B=>{if(!u||h){h&&a.size>0&&t().updateNodePositions(a,!1);return}if(c=!1,u=!1,cancelAnimationFrame(s),a.size>0){const{nodeLookup:R,updateNodePositions:y,onNodeDragStop:M,onSelectionDragStop:E}=t();if(g&&(y(a,!1),g=!1),o||M||!S&&E){const[A,P]=Sn({nodeId:S,dragItems:a,nodeLookup:R,dragging:!1});o==null||o(B.sourceEvent,a,A,P),M==null||M(B.sourceEvent,A,P),S||E==null||E(B.sourceEvent,P)}}}).filter(B=>{const R=B.target;return!B.button&&(!_||!Qr(R,`.${_}`,v))&&(!p||Qr(R,p,v))});d.call(T)}function m(){d==null||d.on(".drag",null)}return{update:x,destroy:m}}function Kd(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())tn(o,_t(i))>0&&r.push(i);return r}const Qd=250;function Jd(e,t,n,r){var a,c;let o=[],i=1/0;const s=Kd(e,n,t+Qd);for(const l of s){const f=[...((a=l.internals.handleBounds)==null?void 0:a.source)??[],...((c=l.internals.handleBounds)==null?void 0:c.target)??[]];for(const u of f){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:h}=Ge(l,u,u.position,!0),g=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(h-e.y,2));g>t||(g<i?(o=[{...u,x:d,y:h}],i=g):g===i&&o.push({...u,x:d,y:h}))}}if(!o.length)return null;if(o.length>1){const l=r.type==="source"?"target":"source";return o.find(f=>f.type===l)??o[0]}return o[0]}function Ri(e,t,n,r,o,i=!1){var l,f,u;const s=r.get(e);if(!s)return null;const a=o==="strict"?(l=s.internals.handleBounds)==null?void 0:l[t]:[...((f=s.internals.handleBounds)==null?void 0:f.source)??[],...((u=s.internals.handleBounds)==null?void 0:u.target)??[]],c=(n?a==null?void 0:a.find(d=>d.id===n):a==null?void 0:a[0])??null;return c&&i?{...c,...Ge(s,c,c.position,!0)}:c}function ji(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function ef(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Di=()=>!0;function tf(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:c,lib:l,autoPanOnConnect:f,flowId:u,panBy:d,cancelConnection:h,onConnectStart:g,onConnect:w,onConnectEnd:x,isValidConnection:m=Di,onReconnectEnd:_,updateConnection:p,getTransform:v,getFromHandle:N,autoPanSpeed:S,dragThreshold:I=1,handleDomNode:$}){const z=Ei(e.target);let F=0,T;const{x:B,y:R}=ve(e),y=ji(i,$),M=a==null?void 0:a.getBoundingClientRect();let E=!1;if(!M||!y)return;const A=Ri(o,y,r,c,t);if(!A)return;let P=ve(e,M),k=!1,L=null,H=!1,D=null;function X(){if(!f||!M)return;const[Z,W]=rr(P,M,S);d({x:Z,y:W}),F=requestAnimationFrame(X)}const Y={...A,nodeId:o,type:y,position:A.position},U=c.get(o);let K={inProgress:!0,isValid:null,from:Ge(U,Y,G.Left,!0),fromHandle:Y,fromPosition:Y.position,fromNode:U,to:P,toHandle:null,toPosition:Br[Y.position],toNode:null,pointer:P};function j(){E=!0,p(K),g==null||g(e,{nodeId:o,handleId:r,handleType:y})}I===0&&j();function O(Z){if(!E){const{x:se,y:ue}=ve(Z),fe=se-B,pe=ue-R;if(!(fe*fe+pe*pe>I*I))return;j()}if(!N()||!Y){Q(Z);return}const W=v();P=ve(Z,M),T=Jd(At(P,W,!1,[1,1]),n,c,Y),k||(X(),k=!0);const q=Li(Z,{handle:T,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:s?"target":"source",isValidConnection:m,doc:z,lib:l,flowId:u,nodeLookup:c});D=q.handleDomNode,L=q.connection,H=ef(!!T,q.isValid);const ee=c.get(o),te=ee?Ge(ee,Y,G.Left,!0):K.from,ne={...K,from:te,isValid:H,to:q.toHandle&&H?st({x:q.toHandle.x,y:q.toHandle.y},W):P,toHandle:q.toHandle,toPosition:H&&q.toHandle?q.toHandle.position:Br[Y.position],toNode:q.toHandle?c.get(q.toHandle.nodeId):null,pointer:P};p(ne),K=ne}function Q(Z){if(!("touches"in Z&&Z.touches.length>0)){if(E){(T||D)&&L&&H&&(w==null||w(L));const{inProgress:W,...q}=K,ee={...q,toPosition:K.toHandle?K.toPosition:null};x==null||x(Z,ee),i&&(_==null||_(Z,ee))}h(),cancelAnimationFrame(F),k=!1,H=!1,L=null,D=null,z.removeEventListener("mousemove",O),z.removeEventListener("mouseup",Q),z.removeEventListener("touchmove",O),z.removeEventListener("touchend",Q)}}z.addEventListener("mousemove",O),z.addEventListener("mouseup",Q),z.addEventListener("touchmove",O),z.addEventListener("touchend",Q)}function Li(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:s,lib:a,flowId:c,isValidConnection:l=Di,nodeLookup:f}){const u=i==="target",d=t?s.querySelector(`.${a}-flow__handle[data-id="${c}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:h,y:g}=ve(e),w=s.elementFromPoint(h,g),x=w!=null&&w.classList.contains(`${a}-flow__handle`)?w:d,m={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const _=ji(void 0,x),p=x.getAttribute("data-nodeid"),v=x.getAttribute("data-handleid"),N=x.classList.contains("connectable"),S=x.classList.contains("connectableend");if(!p||!_)return m;const I={source:u?p:r,sourceHandle:u?v:o,target:u?r:p,targetHandle:u?o:v};m.connection=I;const z=N&&S&&(n===rt.Strict?u&&_==="source"||!u&&_==="target":p!==r||v!==o);m.isValid=z&&l(I),m.toHandle=Ri(p,_,v,f,n,!0)}return m}const Wn={onPointerDown:tf,isValid:Li};function nf({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=he(e);function i({translateExtent:a,width:c,height:l,zoomStep:f=1,pannable:u=!0,zoomable:d=!0,inversePan:h=!1}){const g=p=>{if(p.sourceEvent.type!=="wheel"||!t)return;const v=n(),N=p.sourceEvent.ctrlKey&&St()?10:1,S=-p.sourceEvent.deltaY*(p.sourceEvent.deltaMode===1?.05:p.sourceEvent.deltaMode?1:.002)*f,I=v[2]*Math.pow(2,S*N);t.scaleTo(I)};let w=[0,0];const x=p=>{(p.sourceEvent.type==="mousedown"||p.sourceEvent.type==="touchstart")&&(w=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY])},m=p=>{const v=n();if(p.sourceEvent.type!=="mousemove"&&p.sourceEvent.type!=="touchmove"||!t)return;const N=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY],S=[N[0]-w[0],N[1]-w[1]];w=N;const I=r()*Math.max(v[2],Math.log(v[2]))*(h?-1:1),$={x:v[0]-S[0]*I,y:v[1]-S[1]*I},z=[[0,0],[c,l]];t.setViewportConstrained({x:$.x,y:$.y,zoom:v[2]},z,a)},_=di().on("start",x).on("zoom",u?m:null).on("zoom.wheel",d?g:null);o.call(_,{})}function s(){o.on("zoom",null)}return{update:i,destroy:s,pointer:ye}}const dn=e=>({x:e.x,y:e.y,zoom:e.k}),En=({x:e,y:t,zoom:n})=>cn.translate(e,t).scale(n),Ke=(e,t)=>e.target.closest(`.${t}`),Hi=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),rf=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Nn=(e,t=0,n=rf,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},Bi=e=>{const t=e.ctrlKey&&St()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function of({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:c,onPanZoomEnd:l}){return f=>{if(Ke(f,t))return f.ctrlKey&&f.preventDefault(),!1;f.preventDefault(),f.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(f.ctrlKey&&s){const x=ye(f),m=Bi(f),_=u*Math.pow(2,m);r.scaleTo(n,_,x,f);return}const d=f.deltaMode===1?20:1;let h=o===Oe.Vertical?0:f.deltaX*d,g=o===Oe.Horizontal?0:f.deltaY*d;!St()&&f.shiftKey&&o!==Oe.Vertical&&(h=f.deltaY*d,g=0),r.translateBy(n,-(h/u)*i,-(g/u)*i,{internal:!0});const w=dn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c==null||c(f,w):(e.isPanScrolling=!0,a==null||a(f,w)),e.panScrollTimeout=setTimeout(()=>{l==null||l(f,w),e.isPanScrolling=!1},150)}}function sf({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",s=!t&&i&&!r.ctrlKey,a=Ke(r,e);if(r.ctrlKey&&i&&a&&r.preventDefault(),s||a)return null;r.preventDefault(),n.call(this,r,o)}}function af({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,s,a;if((i=r.sourceEvent)!=null&&i.internal)return;const o=dn(r.transform);e.mouseButton=((s=r.sourceEvent)==null?void 0:s.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=o,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,o))}}function cf({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var s,a;e.usedRightMouseButton=!!(n&&Hi(t,e.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((a=i.sourceEvent)!=null&&a.internal)&&(o==null||o(i.sourceEvent,dn(i.transform)))}}function lf({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return s=>{var a;if(!((a=s.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,i&&Hi(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const c=dn(s.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(s.sourceEvent,c)},n?150:0)}}}function uf({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:c,lib:l,connectionInProgress:f}){return u=>{var x;const d=e||t,h=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(Ke(u,`${l}-flow__node`)||Ke(u,`${l}-flow__edge`)))return!0;if(!r&&!d&&!o&&!i&&!n||s||f&&!g||Ke(u,a)&&g||Ke(u,c)&&(!g||o&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((x=u.touches)==null?void 0:x.length)>1)return u.preventDefault(),!1;if(!d&&!o&&!h&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const w=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&w}}function df({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:c}){const l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect();let u=[[0,0],[f.width,f.height]];const d=typeof ResizeObserver<"u"?new ResizeObserver(R=>{const y=R[0];y&&(u=[[0,0],[y.contentRect.width,y.contentRect.height]])}):null;d==null||d.observe(e);const h=di().extent(()=>u).scaleExtent([t,n]).translateExtent(r),g=he(e).call(h);v({x:o.x,y:o.y,zoom:it(o.zoom,t,n)},[[0,0],[f.width,f.height]],r);const w=g.on("wheel.zoom"),x=g.on("dblclick.zoom");h.wheelDelta(Bi);async function m(R,y){return g?new Promise(M=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?gt:Ot).transform(Nn(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>M(!0)),R)}):!1}function _({noWheelClassName:R,noPanClassName:y,onPaneContextMenu:M,userSelectionActive:E,panOnScroll:A,panOnDrag:P,panOnScrollMode:k,panOnScrollSpeed:L,preventScrolling:H,zoomOnPinch:D,zoomOnScroll:X,zoomOnDoubleClick:Y,zoomActivationKeyPressed:U,lib:J,onTransformChange:K,connectionInProgress:j,paneClickDistance:O,selectionOnDrag:Q}){E&&!l.isZoomingOrPanning&&p();const Z=A&&!U&&!E;h.clickDistance(Q?1/0:!we(O)||O<0?0:O);const W=Z?of({zoomPanValues:l,noWheelClassName:R,d3Selection:g,d3Zoom:h,panOnScrollMode:k,panOnScrollSpeed:L,zoomOnPinch:D,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):sf({noWheelClassName:R,preventScrolling:H,d3ZoomHandler:w});g.on("wheel.zoom",W,{passive:!1});const q=af({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:s});h.on("start",q);const ee=cf({zoomPanValues:l,panOnDrag:P,onPaneContextMenu:!!M,onPanZoom:i,onTransformChange:K});h.on("zoom",ee);const te=lf({zoomPanValues:l,panOnDrag:P,panOnScroll:A,onPaneContextMenu:M,onPanZoomEnd:a,onDraggingChange:c});h.on("end",te);const ne=uf({zoomActivationKeyPressed:U,panOnDrag:P,zoomOnScroll:X,panOnScroll:A,zoomOnDoubleClick:Y,zoomOnPinch:D,userSelectionActive:E,noPanClassName:y,noWheelClassName:R,lib:J,connectionInProgress:j});h.filter(ne),Y?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function p(){h.on("zoom",null)}async function v(R,y,M){const E=En(R),A=h==null?void 0:h.constrain()(E,y,M);return A&&await m(A),A}async function N(R,y){const M=En(R);return await m(M,y),M}function S(R){if(g){const y=En(R),M=g.property("__zoom");(M.k!==R.zoom||M.x!==R.x||M.y!==R.y)&&(h==null||h.transform(g,y,null,{sync:!0}))}}function I(){const R=g?ui(g.node()):{x:0,y:0,k:1};return{x:R.x,y:R.y,zoom:R.k}}async function $(R,y){return g?new Promise(M=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?gt:Ot).scaleTo(Nn(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>M(!0)),R)}):!1}async function z(R,y){return g?new Promise(M=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?gt:Ot).scaleBy(Nn(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>M(!0)),R)}):!1}function F(R){h==null||h.scaleExtent(R)}function T(R){h==null||h.translateExtent(R)}function B(R){const y=!we(R)||R<0?0:R;h==null||h.clickDistance(y)}return{update:_,destroy:p,setViewport:N,setViewportConstrained:v,getViewport:I,scaleTo:$,scaleBy:z,setScaleExtent:F,setTranslateExtent:T,syncViewport:S,setClickDistance:B}}var at;(function(e){e.Line="line",e.Handle="handle"})(at||(at={}));function ff({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:i}){const s=e-t,a=n-r,c=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&o&&(c[0]=c[0]*-1),a&&i&&(c[1]=c[1]*-1),c}function Jr(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),o=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:o}}function Pe(e,t){return Math.max(0,t-e)}function Te(e,t){return Math.max(0,e-t)}function Lt(e,t,n){return Math.max(0,t-e,e-n)}function eo(e,t){return e?!t:t}function hf(e,t,n,r,o,i,s,a){let{affectsX:c,affectsY:l}=t;const{isHorizontal:f,isVertical:u}=t,d=f&&u,{xSnapped:h,ySnapped:g}=n,{minWidth:w,maxWidth:x,minHeight:m,maxHeight:_}=r,{x:p,y:v,width:N,height:S,aspectRatio:I}=e;let $=Math.floor(f?h-e.pointerX:0),z=Math.floor(u?g-e.pointerY:0);const F=N+(c?-$:$),T=S+(l?-z:z),B=-i[0]*N,R=-i[1]*S;let y=Lt(F,w,x),M=Lt(T,m,_);if(s){let P=0,k=0;c&&$<0?P=Pe(p+$+B,s[0][0]):!c&&$>0&&(P=Te(p+F+B,s[1][0])),l&&z<0?k=Pe(v+z+R,s[0][1]):!l&&z>0&&(k=Te(v+T+R,s[1][1])),y=Math.max(y,P),M=Math.max(M,k)}if(a){let P=0,k=0;c&&$>0?P=Te(p+$,a[0][0]):!c&&$<0&&(P=Pe(p+F,a[1][0])),l&&z>0?k=Te(v+z,a[0][1]):!l&&z<0&&(k=Pe(v+T,a[1][1])),y=Math.max(y,P),M=Math.max(M,k)}if(o){if(f){const P=Lt(F/I,m,_)*I;if(y=Math.max(y,P),s){let k=0;!c&&!l||c&&!l&&d?k=Te(v+R+F/I,s[1][1])*I:k=Pe(v+R+(c?$:-$)/I,s[0][1])*I,y=Math.max(y,k)}if(a){let k=0;!c&&!l||c&&!l&&d?k=Pe(v+F/I,a[1][1])*I:k=Te(v+(c?$:-$)/I,a[0][1])*I,y=Math.max(y,k)}}if(u){const P=Lt(T*I,w,x)/I;if(M=Math.max(M,P),s){let k=0;!c&&!l||l&&!c&&d?k=Te(p+T*I+B,s[1][0])/I:k=Pe(p+(l?z:-z)*I+B,s[0][0])/I,M=Math.max(M,k)}if(a){let k=0;!c&&!l||l&&!c&&d?k=Pe(p+T*I,a[1][0])/I:k=Te(p+(l?z:-z)*I,a[0][0])/I,M=Math.max(M,k)}}}z=z+(z<0?M:-M),$=$+($<0?y:-y),o&&(d?F>T*I?z=(eo(c,l)?-$:$)/I:$=(eo(c,l)?-z:z)*I:f?(z=$/I,l=c):($=z*I,c=l));const E=c?p+$:p,A=l?v+z:v;return{width:N+(c?-$:$),height:S+(l?-z:z),x:i[0]*$*(c?-1:1)+E,y:i[1]*z*(l?-1:1)+A}}const Vi={width:0,height:0,x:0,y:0},gf={...Vi,pointerX:0,pointerY:0,aspectRatio:1};function pf(e,t,n){const r=t.position.x+e.position.x,o=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,a=n[0]*i,c=n[1]*s;return[[r-a,o-c],[r+i-a,o+s-c]]}function mf({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const i=he(e);let s={controlDirection:Jr("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:l,boundaries:f,keepAspectRatio:u,resizeDirection:d,onResizeStart:h,onResize:g,onResizeEnd:w,shouldResize:x}){let m={...Vi},_={...gf};s={boundaries:f,resizeDirection:d,keepAspectRatio:u,controlDirection:Jr(l)};let p,v=null,N=[],S,I,$,z=!1;const F=Uo().on("start",T=>{const{nodeLookup:B,transform:R,snapGrid:y,snapToGrid:M,nodeOrigin:E,paneDomNode:A}=n();if(p=B.get(t),!p)return;v=(A==null?void 0:A.getBoundingClientRect())??null;const{xSnapped:P,ySnapped:k}=pt(T.sourceEvent,{transform:R,snapGrid:y,snapToGrid:M,containerBounds:v});m={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},_={...m,pointerX:P,pointerY:k,aspectRatio:m.width/m.height},S=void 0,I=qe(p.extent)?p.extent:void 0,p.parentId&&(p.extent==="parent"||p.expandParent)&&(S=B.get(p.parentId)),S&&p.extent==="parent"&&(I=[[0,0],[S.measured.width,S.measured.height]]),N=[],$=void 0;for(const[L,H]of B)if(H.parentId===t&&(N.push({id:L,position:{...H.position},extent:H.extent}),H.extent==="parent"||H.expandParent)){const D=pf(H,p,H.origin??E);$?$=[[Math.min(D[0][0],$[0][0]),Math.min(D[0][1],$[0][1])],[Math.max(D[1][0],$[1][0]),Math.max(D[1][1],$[1][1])]]:$=D}h==null||h(T,{...m})}).on("drag",T=>{const{transform:B,snapGrid:R,snapToGrid:y,nodeOrigin:M}=n(),E=pt(T.sourceEvent,{transform:B,snapGrid:R,snapToGrid:y,containerBounds:v}),A=[];if(!p)return;const{x:P,y:k,width:L,height:H}=m,D={},X=p.origin??M,{width:Y,height:U,x:J,y:K}=hf(_,s.controlDirection,E,s.boundaries,s.keepAspectRatio,X,I,$),j=Y!==L,O=U!==H,Q=J!==P&&j,Z=K!==k&&O;if(!Q&&!Z&&!j&&!O)return;if((Q||Z||X[0]===1||X[1]===1)&&(D.x=Q?J:m.x,D.y=Z?K:m.y,m.x=D.x,m.y=D.y,N.length>0)){const te=J-P,ne=K-k;for(const se of N)se.position={x:se.position.x-te+X[0]*(Y-L),y:se.position.y-ne+X[1]*(U-H)},A.push(se)}if((j||O)&&(D.width=j&&(!s.resizeDirection||s.resizeDirection==="horizontal")?Y:m.width,D.height=O&&(!s.resizeDirection||s.resizeDirection==="vertical")?U:m.height,m.width=D.width,m.height=D.height),S&&p.expandParent){const te=X[0]*(D.width??0);D.x&&D.x<te&&(m.x=te,_.x=_.x-(D.x-te));const ne=X[1]*(D.height??0);D.y&&D.y<ne&&(m.y=ne,_.y=_.y-(D.y-ne))}const W=ff({width:m.width,prevWidth:L,height:m.height,prevHeight:H,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),q={...m,direction:W};(x==null?void 0:x(T,q))!==!1&&(z=!0,g==null||g(T,q),r(D,A))}).on("end",T=>{z&&(w==null||w(T,{...m}),o==null||o({...m}),z=!1)});i.call(F)}function c(){i.on(".drag",null)}return{update:a,destroy:c}}var Cn={exports:{}},Mn={},kn={exports:{}},In={};/**
17
+ * @license React
18
+ * use-sync-external-store-shim.production.js
19
+ *
20
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
21
+ *
22
+ * This source code is licensed under the MIT license found in the
23
+ * LICENSE file in the root directory of this source tree.
24
+ */var to;function yf(){if(to)return In;to=1;var e=To();function t(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,o=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function a(u,d){var h=d(),g=r({inst:{value:h,getSnapshot:d}}),w=g[0].inst,x=g[1];return i(function(){w.value=h,w.getSnapshot=d,c(w)&&x({inst:w})},[u,h,d]),o(function(){return c(w)&&x({inst:w}),u(function(){c(w)&&x({inst:w})})},[u]),s(h),h}function c(u){var d=u.getSnapshot;u=u.value;try{var h=d();return!n(u,h)}catch{return!0}}function l(u,d){return d()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?l:a;return In.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,In}var no;function xf(){return no||(no=1,kn.exports=yf()),kn.exports}/**
25
+ * @license React
26
+ * use-sync-external-store-shim/with-selector.production.js
27
+ *
28
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
29
+ *
30
+ * This source code is licensed under the MIT license found in the
31
+ * LICENSE file in the root directory of this source tree.
32
+ */var ro;function wf(){if(ro)return Mn;ro=1;var e=To(),t=xf();function n(l,f){return l===f&&(l!==0||1/l===1/f)||l!==l&&f!==f}var r=typeof Object.is=="function"?Object.is:n,o=t.useSyncExternalStore,i=e.useRef,s=e.useEffect,a=e.useMemo,c=e.useDebugValue;return Mn.useSyncExternalStoreWithSelector=function(l,f,u,d,h){var g=i(null);if(g.current===null){var w={hasValue:!1,value:null};g.current=w}else w=g.current;g=a(function(){function m(S){if(!_){if(_=!0,p=S,S=d(S),h!==void 0&&w.hasValue){var I=w.value;if(h(I,S))return v=I}return v=S}if(I=v,r(p,S))return I;var $=d(S);return h!==void 0&&h(I,$)?(p=S,I):(p=S,v=$)}var _=!1,p,v,N=u===void 0?null:u;return[function(){return m(f())},N===null?void 0:function(){return m(N())}]},[f,u,d,h]);var x=o(l,g[0],g[1]);return s(function(){w.hasValue=!0,w.value=x},[x]),c(x),x},Mn}var oo;function vf(){return oo||(oo=1,Cn.exports=wf()),Cn.exports}var bf=vf();const _f=$a(bf),Sf={},io=e=>{let t;const n=new Set,r=(f,u)=>{const d=typeof f=="function"?f(t):f;if(!Object.is(d,t)){const h=t;t=u??(typeof d!="object"||d===null)?d:Object.assign({},t,d),n.forEach(g=>g(t,h))}},o=()=>t,c={setState:r,getState:o,getInitialState:()=>l,subscribe:f=>(n.add(f),()=>n.delete(f)),destroy:()=>{(Sf?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=t=e(r,o,c);return c},Ef=e=>e?io(e):io,{useDebugValue:Nf}=za,{useSyncExternalStoreWithSelector:Cf}=_f,Mf=e=>e;function Fi(e,t=Mf,n){const r=Cf(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Nf(r),r}const so=(e,t)=>{const n=Ef(e),r=(o,i=t)=>Fi(n,o,i);return Object.assign(r,n),r},kf=(e,t)=>e?so(e,t):so;function ae(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,o]of e)if(!Object.is(o,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const fn=C.createContext(null),If=fn.Provider,Oi=be.error001("react");function re(e,t){const n=C.useContext(fn);if(n===null)throw new Error(Oi);return Fi(n,e,t)}function ie(){const e=C.useContext(fn);if(e===null)throw new Error(Oi);return C.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const ao={display:"none"},Af={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Wi="react-flow__node-desc",Xi="react-flow__edge-desc",$f="react-flow__aria-live",zf=e=>e.ariaLiveMessage,Pf=e=>e.ariaLabelConfig;function Tf({rfId:e}){const t=re(zf);return b.jsx("div",{id:`${$f}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Af,children:t})}function Rf({rfId:e,disableKeyboardA11y:t}){const n=re(Pf);return b.jsxs(b.Fragment,{children:[b.jsx("div",{id:`${Wi}-${e}`,style:ao,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),b.jsx("div",{id:`${Xi}-${e}`,style:ao,children:n["edge.a11yDescription.default"]}),!t&&b.jsx(Tf,{rfId:e})]})}const je=C.forwardRef(({position:e="top-left",children:t,className:n,style:r,...o},i)=>{const s=`${e}`.split("-");return b.jsx("div",{className:ce(["react-flow__panel",n,...s]),style:r,ref:i,...o,children:t})});je.displayName="Panel";const co="https://reactflow.dev?utm_source=attribution";function jf({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:b.jsx(je,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${co}`,children:b.jsx("a",{href:co,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Df=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Ht=e=>e.id;function Lf(e,t){return ae(e.selectedNodes.map(Ht),t.selectedNodes.map(Ht))&&ae(e.selectedEdges.map(Ht),t.selectedEdges.map(Ht))}function Hf({onSelectionChange:e}){const t=ie(),{selectedNodes:n,selectedEdges:r}=re(Df,Lf);return C.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChangeHandlers.forEach(i=>i(o))},[n,r,e]),null}const Bf=e=>!!e.onSelectionChangeHandlers;function Vf({onSelectionChange:e}){const t=re(Bf);return e||t?b.jsx(Hf,{onSelectionChange:e}):null}const Yi=[0,0],Ff={x:0,y:0,zoom:1},Of=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],lo=[...Of,"rfId"],Wf=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),uo={translateExtent:vt,nodeOrigin:Yi,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Xf(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:s,reset:a,setDefaultNodesAndEdges:c}=re(Wf,ae),l=ie();C.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{f.current=uo,a()}),[]);const f=C.useRef(uo);return C.useEffect(()=>{for(const u of lo){const d=e[u],h=f.current[u];d!==h&&(typeof e[u]>"u"||(u==="nodes"?t(d):u==="edges"?n(d):u==="minZoom"?r(d):u==="maxZoom"?o(d):u==="translateExtent"?i(d):u==="nodeExtent"?s(d):u==="ariaLabelConfig"?l.setState({ariaLabelConfig:kd(d)}):u==="fitView"?l.setState({fitViewQueued:d}):u==="fitViewOptions"?l.setState({fitViewOptions:d}):l.setState({[u]:d})))}f.current=e},lo.map(u=>e[u])),null}function fo(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Yf(e){var r;const[t,n]=C.useState(e==="system"?null:e);return C.useEffect(()=>{if(e!=="system"){n(e);return}const o=fo(),i=()=>n(o!=null&&o.matches?"dark":"light");return i(),o==null||o.addEventListener("change",i),()=>{o==null||o.removeEventListener("change",i)}},[e]),t!==null?t:(r=fo())!=null&&r.matches?"dark":"light"}const ho=typeof document<"u"?document:null;function Et(e=null,t={target:ho,actInsideInputWithModifier:!0}){const[n,r]=C.useState(!1),o=C.useRef(!1),i=C.useRef(new Set([])),[s,a]=C.useMemo(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",`
33
+ `).replace(`
34
+
35
+ `,`
36
+ +`).split(`
37
+ `)),f=l.reduce((u,d)=>u.concat(...d),[]);return[l,f]}return[[],[]]},[e]);return C.useEffect(()=>{const c=(t==null?void 0:t.target)??ho,l=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const f=h=>{var x,m;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!l)&&Ni(h))return!1;const w=po(h.code,a);if(i.current.add(h[w]),go(s,i.current,!1)){const _=((m=(x=h.composedPath)==null?void 0:x.call(h))==null?void 0:m[0])||h.target,p=(_==null?void 0:_.nodeName)==="BUTTON"||(_==null?void 0:_.nodeName)==="A";t.preventDefault!==!1&&(o.current||!p)&&h.preventDefault(),r(!0)}},u=h=>{const g=po(h.code,a);go(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),o.current=!1},d=()=>{i.current.clear(),r(!1)};return c==null||c.addEventListener("keydown",f),c==null||c.addEventListener("keyup",u),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{c==null||c.removeEventListener("keydown",f),c==null||c.removeEventListener("keyup",u),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[e,r]),n}function go(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function po(e,t){return t.includes(e)?"code":"key"}const qf=()=>{const e=ie();return C.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,o,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??i},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:o,minZoom:i,maxZoom:s,panZoom:a}=e.getState(),c=or(t,r,o,i,s,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(c,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:a,y:c}=s.getBoundingClientRect(),l={x:t.x-a,y:t.y-c},f=n.snapGrid??o,u=n.snapToGrid??i;return At(l,r,u,f)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),s=st(t,n);return{x:s.x+o,y:s.y+i}}}),[])};function qi(e,t){const n=[],r=new Map,o=[];for(const i of e)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const s=r.get(i.id);s?s.push(i):r.set(i.id,[i])}for(const i of t){const s=r.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const c of s)Gf(c,a);n.push(a)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Gf(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Gi(e,t){return qi(e,t)}function Zi(e,t){return qi(e,t)}function He(e,t){return{id:e,type:"select",selected:t}}function Qe(e,t=new Set,n=!1){const r=[];for(const[o,i]of e){const s=t.has(o);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),r.push(He(i.id,s)))}return r}function mo({items:e=[],lookup:t}){var o;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,s]of e.entries()){const a=t.get(s.id),c=((o=a==null?void 0:a.internals)==null?void 0:o.userNode)??a;c!==void 0&&c!==s&&n.push({id:s.id,item:s,type:"replace"}),c===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function yo(e){return{id:e.id,type:"remove"}}const Zf=bi();function Ui(e,t,n={}){return Td(e,t,{...n,onError:n.onError??Zf})}const xo=e=>wd(e),Uf=e=>mi(e);function Ki(e){return C.forwardRef(e)}const Qi=typeof window<"u"?C.useLayoutEffect:C.useEffect;function wo(e){const[t,n]=C.useState(BigInt(0)),[r]=C.useState(()=>Kf(()=>n(o=>o+BigInt(1))));return Qi(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function Kf(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Ji=C.createContext(null);function Qf({children:e}){const t=ie(),n=C.useCallback(a=>{const{nodes:c=[],setNodes:l,hasDefaultNodes:f,onNodesChange:u,nodeLookup:d,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=t.getState();let w=c;for(const m of a)w=typeof m=="function"?m(w):m;let x=mo({items:w,lookup:d});for(const m of g.values())x=m(x);f&&l(w),x.length>0?u==null||u(x):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:_,setNodes:p}=t.getState();m&&p(_)})},[]),r=wo(n),o=C.useCallback(a=>{const{edges:c=[],setEdges:l,hasDefaultEdges:f,onEdgesChange:u,edgeLookup:d}=t.getState();let h=c;for(const g of a)h=typeof g=="function"?g(h):g;f?l(h):u&&u(mo({items:h,lookup:d}))},[]),i=wo(o),s=C.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return b.jsx(Ji.Provider,{value:s,children:e})}function Jf(){const e=C.useContext(Ji);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const eh=e=>!!e.panZoom;function dr(){const e=qf(),t=ie(),n=Jf(),r=re(eh),o=C.useMemo(()=>{const i=u=>t.getState().nodeLookup.get(u),s=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},c=u=>{var m,_;const{nodeLookup:d,nodeOrigin:h}=t.getState(),g=xo(u)?u:d.get(u.id),w=g.parentId?Si(g.position,g.measured,g.parentId,d,h):g.position,x={...g,position:w,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((_=g.measured)==null?void 0:_.height)??g.height};return _t(x)},l=(u,d,h={replace:!1})=>{s(g=>g.map(w=>{if(w.id===u){const x=typeof d=="function"?d(w):d;return h.replace&&xo(x)?x:{...w,...x}}return w}))},f=(u,d,h={replace:!1})=>{a(g=>g.map(w=>{if(w.id===u){const x=typeof d=="function"?d(w):d;return h.replace&&Uf(x)?x:{...w,...x}}return w}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var d;return(d=i(u))==null?void 0:d.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(d=>({...d}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:s,setEdges:a,addNodes:u=>{const d=Array.isArray(u)?u:[u];n.nodeQueue.push(h=>[...h,...d])},addEdges:u=>{const d=Array.isArray(u)?u:[u];n.edgeQueue.push(h=>[...h,...d])},toObject:()=>{const{nodes:u=[],edges:d=[],transform:h}=t.getState(),[g,w,x]=h;return{nodes:u.map(m=>({...m})),edges:d.map(m=>({...m})),viewport:{x:g,y:w,zoom:x}}},deleteElements:async({nodes:u=[],edges:d=[]})=>{const{nodes:h,edges:g,onNodesDelete:w,onEdgesDelete:x,triggerNodeChanges:m,triggerEdgeChanges:_,onDelete:p,onBeforeDelete:v}=t.getState(),{nodes:N,edges:S}=await Ed({nodesToRemove:u,edgesToRemove:d,nodes:h,edges:g,onBeforeDelete:v}),I=S.length>0,$=N.length>0;if(I){const z=S.map(yo);x==null||x(S),_(z)}if($){const z=N.map(yo);w==null||w(N),m(z)}return($||I)&&(p==null||p({nodes:N,edges:S})),{deletedNodes:N,deletedEdges:S}},getIntersectingNodes:(u,d=!0,h)=>{const g=Fr(u),w=g?u:c(u),x=h!==void 0;return w?(h||t.getState().nodes).filter(m=>{const _=t.getState().nodeLookup.get(m.id);if(_&&!g&&(m.id===u.id||!_.internals.positionAbsolute))return!1;const p=_t(x?m:_),v=tn(p,w);return d&&v>0||v>=p.width*p.height||v>=w.width*w.height}):[]},isNodeIntersecting:(u,d,h=!0)=>{const w=Fr(u)?u:c(u);if(!w)return!1;const x=tn(w,d);return h&&x>0||x>=d.width*d.height||x>=w.width*w.height},updateNode:l,updateNodeData:(u,d,h={replace:!1})=>{l(u,g=>{const w=typeof d=="function"?d(g):d;return h.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},h)},updateEdge:f,updateEdgeData:(u,d,h={replace:!1})=>{f(u,g=>{const w=typeof d=="function"?d(g):d;return h.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},h)},getNodesBounds:u=>{const{nodeLookup:d,nodeOrigin:h}=t.getState();return vd(u,{nodeLookup:d,nodeOrigin:h})},getHandleConnections:({type:u,id:d,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}-${u}${d?`-${d}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:d,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}${u?d?`-${u}-${d}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const d=t.getState().fitViewResolver??Md();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:d}),n.nodeQueue.push(h=>[...h]),d.promise}}},[]);return C.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const vo=e=>e.selected,th=typeof window<"u"?window:void 0;function nh({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ie(),{deleteElements:r}=dr(),o=Et(e,{actInsideInputWithModifier:!1}),i=Et(t,{target:th});C.useEffect(()=>{if(o){const{edges:s,nodes:a}=n.getState();r({nodes:a.filter(vo),edges:s.filter(vo)}),n.setState({nodesSelectionActive:!1})}},[o]),C.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function rh(e){const t=ie();C.useEffect(()=>{const n=()=>{var o,i,s,a;if(!e.current||!(((i=(o=e.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=ir(e.current);(r.height===0||r.width===0)&&((a=(s=t.getState()).onError)==null||a.call(s,"004",be.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const hn={position:"absolute",width:"100%",height:"100%",top:0,left:0},oh=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function ih({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=Oe.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:c,translateExtent:l,minZoom:f,maxZoom:u,zoomActivationKeyCode:d,preventScrolling:h=!0,children:g,noWheelClassName:w,noPanClassName:x,onViewportChange:m,isControlledViewport:_,paneClickDistance:p,selectionOnDrag:v}){const N=ie(),S=C.useRef(null),{userSelectionActive:I,lib:$,connectionInProgress:z}=re(oh,ae),F=Et(d),T=C.useRef();rh(S);const B=C.useCallback(R=>{m==null||m({x:R[0],y:R[1],zoom:R[2]}),_||N.setState({transform:R})},[m,_]);return C.useEffect(()=>{if(S.current){T.current=df({domNode:S.current,minZoom:f,maxZoom:u,translateExtent:l,viewport:c,onDraggingChange:E=>N.setState(A=>A.paneDragging===E?A:{paneDragging:E}),onPanZoomStart:(E,A)=>{const{onViewportChangeStart:P,onMoveStart:k}=N.getState();k==null||k(E,A),P==null||P(A)},onPanZoom:(E,A)=>{const{onViewportChange:P,onMove:k}=N.getState();k==null||k(E,A),P==null||P(A)},onPanZoomEnd:(E,A)=>{const{onViewportChangeEnd:P,onMoveEnd:k}=N.getState();k==null||k(E,A),P==null||P(A)}});const{x:R,y,zoom:M}=T.current.getViewport();return N.setState({panZoom:T.current,transform:[R,y,M],domNode:S.current.closest(".react-flow")}),()=>{var E;(E=T.current)==null||E.destroy()}}},[]),C.useEffect(()=>{var R;(R=T.current)==null||R.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:F,preventScrolling:h,noPanClassName:x,userSelectionActive:I,noWheelClassName:w,lib:$,onTransformChange:B,connectionInProgress:z,selectionOnDrag:v,paneClickDistance:p})},[e,t,n,r,o,i,s,a,F,h,x,I,w,$,B,z,v,p]),b.jsx("div",{className:"react-flow__renderer",ref:S,style:hn,children:g})}const sh=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ah(){const{userSelectionActive:e,userSelectionRect:t}=re(sh,ae);return e&&t?b.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const An=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},ch=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function lh({isSelecting:e,selectionKeyPressed:t,selectionMode:n=bt.Full,panOnDrag:r,autoPanOnSelection:o,paneClickDistance:i,selectionOnDrag:s,onSelectionStart:a,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:f,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:h,onPaneMouseLeave:g,children:w}){const x=C.useRef(0),m=ie(),{userSelectionActive:_,elementsSelectable:p,dragging:v,panBy:N,autoPanSpeed:S}=re(ch,ae),I=p&&(e||_),$=C.useRef(null),z=C.useRef(),F=C.useRef(new Set),T=C.useRef(new Set),B=C.useRef(!1),R=C.useRef(!1),y=C.useRef({x:0,y:0}),M=C.useRef(!1),E=j=>{if(R.current||B.current||m.getState().connection.inProgress){R.current=!1,B.current=!1;return}l==null||l(j),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},A=j=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){j.preventDefault();return}f==null||f(j)},P=u?j=>u(j):void 0,k=j=>{R.current&&(j.stopPropagation(),R.current=!1)},L=j=>{var se,ue;const{domNode:O,transform:Q}=m.getState();if(z.current=O==null?void 0:O.getBoundingClientRect(),!z.current)return;const Z=j.target===$.current;if(!Z&&!!j.target.closest(".nokey")||!e||!(s&&Z||t)||j.button!==0||!j.isPrimary)return;(ue=(se=j.target)==null?void 0:se.setPointerCapture)==null||ue.call(se,j.pointerId),R.current=!1;const{x:ee,y:te}=ve(j.nativeEvent,z.current),ne=At({x:ee,y:te},Q);m.setState({userSelectionRect:{width:0,height:0,startX:ne.x,startY:ne.y,x:ee,y:te}}),Z||(j.stopPropagation(),j.preventDefault())};function H(j,O){const{userSelectionRect:Q}=m.getState();if(!Q)return;const{transform:Z,nodeLookup:W,edgeLookup:q,connectionLookup:ee,triggerNodeChanges:te,triggerEdgeChanges:ne,defaultEdgeOptions:se}=m.getState(),ue={x:Q.startX,y:Q.startY},{x:fe,y:pe}=st(ue,Z),me={startX:ue.x,startY:ue.y,x:j<fe?j:fe,y:O<pe?O:pe,width:Math.abs(j-fe),height:Math.abs(O-pe)},ze=F.current,V=T.current;F.current=new Set(nr(W,me,Z,n===bt.Partial,!0).map(le=>le.id)),T.current=new Set;const oe=(se==null?void 0:se.selectable)??!0;for(const le of F.current){const Me=ee.get(le);if(Me)for(const{edgeId:ke}of Me.values()){const Le=q.get(ke);Le&&(Le.selectable??oe)&&T.current.add(ke)}}if(!Or(ze,F.current)){const le=Qe(W,F.current,!0);te(le)}if(!Or(V,T.current)){const le=Qe(q,T.current);ne(le)}m.setState({userSelectionRect:me,userSelectionActive:!0,nodesSelectionActive:!1})}function D(){if(!o||!z.current)return;const[j,O]=rr(y.current,z.current,S);N({x:j,y:O}).then(Q=>{if(!R.current||!Q){x.current=requestAnimationFrame(D);return}const{x:Z,y:W}=y.current;H(Z,W),x.current=requestAnimationFrame(D)})}const X=()=>{cancelAnimationFrame(x.current),x.current=0,M.current=!1};C.useEffect(()=>()=>X(),[]);const Y=j=>{const{userSelectionRect:O,transform:Q,resetSelectedElements:Z}=m.getState();if(!z.current||!O)return;const{x:W,y:q}=ve(j.nativeEvent,z.current);y.current={x:W,y:q};const ee=st({x:O.startX,y:O.startY},Q);if(!R.current){const te=t?0:i;if(Math.hypot(W-ee.x,q-ee.y)<=te)return;Z(),a==null||a(j)}R.current=!0,M.current||(D(),M.current=!0),H(W,q)},U=j=>{var O,Q;if(!I){j.target===$.current&&m.getState().connection.inProgress&&(B.current=!0);return}j.button===0&&((Q=(O=j.target)==null?void 0:O.releasePointerCapture)==null||Q.call(O,j.pointerId),!_&&j.target===$.current&&m.getState().userSelectionRect&&(E==null||E(j)),m.setState({userSelectionActive:!1,userSelectionRect:null}),R.current&&(c==null||c(j),m.setState({nodesSelectionActive:F.current.size>0})),X())},J=j=>{var O,Q;(Q=(O=j.target)==null?void 0:O.releasePointerCapture)==null||Q.call(O,j.pointerId),X()},K=r===!0||Array.isArray(r)&&r.includes(0);return b.jsxs("div",{className:ce(["react-flow__pane",{draggable:K,dragging:v,selection:e}]),onClick:I?void 0:An(E,$),onContextMenu:An(A,$),onWheel:An(P,$),onPointerEnter:I?void 0:d,onPointerMove:I?Y:h,onPointerUp:U,onPointerCancel:I?J:void 0,onPointerDownCapture:I?L:void 0,onClickCapture:I?k:void 0,onPointerLeave:g,ref:$,style:hn,children:[w,b.jsx(ah,{})]})}function Xn({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:c}=t.getState(),l=a.get(e);if(!l){c==null||c("012",be.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&s)&&(i({nodes:[l],edges:[]}),requestAnimationFrame(()=>{var f;return(f=r==null?void 0:r.current)==null?void 0:f.blur()})):o([e])}function es({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:s}){const a=ie(),[c,l]=C.useState(!1),f=C.useRef();return C.useEffect(()=>{if(!t)return f.current=Ud({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{Xn({id:u,store:a,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{var u;(u=f.current)==null||u.destroy(),f.current=void 0}},[t,a,e]),C.useEffect(()=>{t||!e.current||!f.current||f.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:o,nodeClickDistance:s})},[n,r,t,i,e,o,s]),c}const uh=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function ts(){const e=ie();return C.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:c,nodeLookup:l,nodeOrigin:f}=e.getState(),u=new Map,d=uh(s),h=o?i[0]:5,g=o?i[1]:5,w=n.direction.x*h*n.factor,x=n.direction.y*g*n.factor;for(const[,m]of l){if(!d(m))continue;let _={x:m.internals.positionAbsolute.x+w,y:m.internals.positionAbsolute.y+x};o&&(_=It(_,i));const{position:p,positionAbsolute:v}=yi({nodeId:m.id,nextPosition:_,nodeLookup:l,nodeExtent:r,nodeOrigin:f,onError:a});m.position=p,m.internals.positionAbsolute=v,u.set(m.id,m)}c(u)},[])}const fr=C.createContext(null),dh=fr.Provider;fr.Consumer;const ns=()=>C.useContext(fr),fh=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),rs=C.createContext(null);function hh({children:e}){const t=re(fh,ae);return b.jsx(rs.Provider,{value:t,children:e})}function gh(){const e=C.useContext(rs);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const ph={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},mh=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:s}=r,{fromHandle:a,toHandle:c,isValid:l}=s;if(!a&&!o)return ph;const f=(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.id)===t&&(c==null?void 0:c.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:f,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===rt.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!o,valid:f&&l}};function yh({type:e="source",position:t=G.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:c,className:l,onMouseDown:f,onTouchStart:u,...d},h){var M,E;const g=s||null,w=e==="target",x=ie(),m=ns(),{connectOnClick:_,noPanClassName:p,rfId:v}=gh(),{connectingFrom:N,connectingTo:S,clickConnecting:I,isPossibleEndHandle:$,connectionInProcess:z,clickConnectionInProcess:F,valid:T}=re(mh(m,g,e),ae);m||(E=(M=x.getState()).onError)==null||E.call(M,"010",be.error010());const B=A=>{const{defaultEdgeOptions:P,onConnect:k,hasDefaultEdges:L}=x.getState(),H={...P,...A};if(L){const{edges:D,setEdges:X,onError:Y}=x.getState();X(Ui(H,D,{onError:Y}))}k==null||k(H),a==null||a(H)},R=A=>{if(!m)return;const P=Ci(A.nativeEvent);if(o&&(P&&A.button===0||!P)){const k=x.getState();Wn.onPointerDown(A.nativeEvent,{handleDomNode:A.currentTarget,autoPanOnConnect:k.autoPanOnConnect,connectionMode:k.connectionMode,connectionRadius:k.connectionRadius,domNode:k.domNode,nodeLookup:k.nodeLookup,lib:k.lib,isTarget:w,handleId:g,nodeId:m,flowId:k.rfId,panBy:k.panBy,cancelConnection:k.cancelConnection,onConnectStart:k.onConnectStart,onConnectEnd:(...L)=>{var H,D;return(D=(H=x.getState()).onConnectEnd)==null?void 0:D.call(H,...L)},updateConnection:k.updateConnection,onConnect:B,isValidConnection:n||((...L)=>{var H,D;return((D=(H=x.getState()).isValidConnection)==null?void 0:D.call(H,...L))??!0}),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:k.autoPanSpeed,dragThreshold:k.connectionDragThreshold})}P?f==null||f(A):u==null||u(A)},y=A=>{const{onClickConnectStart:P,onClickConnectEnd:k,connectionClickStartHandle:L,connectionMode:H,isValidConnection:D,lib:X,rfId:Y,nodeLookup:U,connection:J}=x.getState();if(!m||!L&&!o)return;if(!L){P==null||P(A.nativeEvent,{nodeId:m,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const K=Ei(A.target),j=n||D,{connection:O,isValid:Q}=Wn.isValid(A.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:H,fromNodeId:L.nodeId,fromHandleId:L.id||null,fromType:L.type,isValidConnection:j,flowId:Y,doc:K,lib:X,nodeLookup:U});Q&&O&&B(O);const Z=structuredClone(J);delete Z.inProgress,Z.toPosition=Z.toHandle?Z.toHandle.position:null,k==null||k(A,Z),x.setState({connectionClickStartHandle:null})};return b.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:ce(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",p,l,{source:!w,target:w,connectable:r,connectablestart:o,connectableend:i,clickconnecting:I,connectingfrom:N,connectingto:S,valid:T,connectionindicator:r&&(!z||$)&&(z||F?i:o)}]),onMouseDown:R,onTouchStart:R,onClick:_?y:void 0,ref:h,...d,children:c})}const ct=C.memo(Ki(yh));function xh({data:e,isConnectable:t,sourcePosition:n=G.Bottom}){return b.jsxs(b.Fragment,{children:[e==null?void 0:e.label,b.jsx(ct,{type:"source",position:n,isConnectable:t})]})}function wh({data:e,isConnectable:t,targetPosition:n=G.Top,sourcePosition:r=G.Bottom}){return b.jsxs(b.Fragment,{children:[b.jsx(ct,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,b.jsx(ct,{type:"source",position:r,isConnectable:t})]})}function vh(){return null}function bh({data:e,isConnectable:t,targetPosition:n=G.Top}){return b.jsxs(b.Fragment,{children:[b.jsx(ct,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const nn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},bo={input:xh,default:wh,output:bh,group:vh};function _h(e){var t,n,r,o;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((o=e.style)==null?void 0:o.height)}}const Sh=e=>{const{width:t,height:n,x:r,y:o}=kt(e.nodeLookup,{filter:i=>!!i.selected});return{width:we(t)?t:null,height:we(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function Eh({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ie(),{width:o,height:i,transformString:s,userSelectionActive:a}=re(Sh,ae),c=ts(),l=C.useRef(null);C.useEffect(()=>{var h;n||(h=l.current)==null||h.focus({preventScroll:!0})},[n]);const f=!a&&o!==null&&i!==null;if(es({nodeRef:l,disabled:!f}),!f)return null;const u=e?h=>{const g=r.getState().nodes.filter(w=>w.selected);e(h,g)}:void 0,d=h=>{Object.prototype.hasOwnProperty.call(nn,h.key)&&(h.preventDefault(),c({direction:nn[h.key],factor:h.shiftKey?4:1}))};return b.jsx("div",{className:ce(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:b.jsx("div",{ref:l,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:d,style:{width:o,height:i}})})}const _o=typeof window<"u"?window:void 0,Nh=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function os({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:f,selectionMode:u,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:w,zoomActivationKeyCode:x,elementsSelectable:m,zoomOnScroll:_,zoomOnPinch:p,panOnScroll:v,panOnScrollSpeed:N,panOnScrollMode:S,zoomOnDoubleClick:I,panOnDrag:$,autoPanOnSelection:z,defaultViewport:F,translateExtent:T,minZoom:B,maxZoom:R,preventScrolling:y,onSelectionContextMenu:M,noWheelClassName:E,noPanClassName:A,disableKeyboardA11y:P,onViewportChange:k,isControlledViewport:L}){const{nodesSelectionActive:H,userSelectionActive:D}=re(Nh,ae),X=Et(l,{target:_o}),Y=Et(w,{target:_o}),U=Y||$,J=Y||v,K=f&&U!==!0,j=X||D||K;return nh({deleteKeyCode:c,multiSelectionKeyCode:g}),b.jsx(ih,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:_,zoomOnPinch:p,panOnScroll:J,panOnScrollSpeed:N,panOnScrollMode:S,zoomOnDoubleClick:I,panOnDrag:!X&&U,defaultViewport:F,translateExtent:T,minZoom:B,maxZoom:R,zoomActivationKeyCode:x,preventScrolling:y,noWheelClassName:E,noPanClassName:A,onViewportChange:k,isControlledViewport:L,paneClickDistance:a,selectionOnDrag:K,children:b.jsxs(lh,{onSelectionStart:d,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:U,autoPanOnSelection:z,isSelecting:!!j,selectionMode:u,selectionKeyPressed:X,paneClickDistance:a,selectionOnDrag:K,children:[e,H&&b.jsx(Eh,{onSelectionContextMenu:M,noPanClassName:A,disableKeyboardA11y:P})]})})}os.displayName="FlowRenderer";const Ch=C.memo(os),Mh=e=>t=>e?nr(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function kh(e){return re(C.useCallback(Mh(e),[e]),ae)}const Ih=e=>e.updateNodeInternals;function Ah(){const e=re(Ih),[t]=C.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),e(r)}));return C.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function $h({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=ie(),i=C.useRef(null),s=C.useRef(null),a=C.useRef(e.sourcePosition),c=C.useRef(e.targetPosition),l=C.useRef(t),f=n&&!!e.internals.handleBounds;return C.useEffect(()=>{i.current&&!e.hidden&&(!f||s.current!==i.current)&&(s.current&&(r==null||r.unobserve(s.current)),r==null||r.observe(i.current),s.current=i.current)},[f,e.hidden]),C.useEffect(()=>()=>{s.current&&(r==null||r.unobserve(s.current),s.current=null)},[]),C.useEffect(()=>{if(i.current){const u=l.current!==t,d=a.current!==e.sourcePosition,h=c.current!==e.targetPosition;(u||d||h)&&(l.current=t,a.current=e.sourcePosition,c.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function zh({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:c,nodesConnectable:l,nodesFocusable:f,resizeObserver:u,noDragClassName:d,noPanClassName:h,disableKeyboardA11y:g,rfId:w,nodeTypes:x,nodeClickDistance:m,onError:_}){const{node:p,internals:v,isParent:N}=re(j=>{const O=j.nodeLookup.get(e),Q=j.parentLookup.has(e);return{node:O,internals:O.internals,isParent:Q}},ae);let S=p.type||"default",I=(x==null?void 0:x[S])||bo[S];I===void 0&&(_==null||_("003",be.error003(S)),S="default",I=(x==null?void 0:x.default)||bo.default);const $=!!(p.draggable||a&&typeof p.draggable>"u"),z=!!(p.selectable||c&&typeof p.selectable>"u"),F=!!(p.connectable||l&&typeof p.connectable>"u"),T=!!(p.focusable||f&&typeof p.focusable>"u"),B=ie(),R=_i(p),y=$h({node:p,nodeType:S,hasDimensions:R,resizeObserver:u}),M=es({nodeRef:y,disabled:p.hidden||!$,noDragClassName:d,handleSelector:p.dragHandle,nodeId:e,isSelectable:z,nodeClickDistance:m}),E=ts();if(p.hidden)return null;const A=Ce(p),P=_h(p),k=z||$||t||n||r||o,L=n?j=>n(j,{...v.userNode}):void 0,H=r?j=>r(j,{...v.userNode}):void 0,D=o?j=>o(j,{...v.userNode}):void 0,X=i?j=>i(j,{...v.userNode}):void 0,Y=s?j=>s(j,{...v.userNode}):void 0,U=j=>{const{selectNodesOnDrag:O,nodeDragThreshold:Q}=B.getState();z&&(!O||!$||Q>0)&&Xn({id:e,store:B,nodeRef:y}),t&&t(j,{...v.userNode})},J=j=>{if(!(Ni(j.nativeEvent)||g)){if(fi.includes(j.key)&&z){const O=j.key==="Escape";Xn({id:e,store:B,unselect:O,nodeRef:y})}else if($&&p.selected&&Object.prototype.hasOwnProperty.call(nn,j.key)){j.preventDefault();const{ariaLabelConfig:O}=B.getState();B.setState({ariaLiveMessage:O["node.a11yDescription.ariaLiveMessage"]({direction:j.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),E({direction:nn[j.key],factor:j.shiftKey?4:1})}}},K=()=>{var ee;if(g||!((ee=y.current)!=null&&ee.matches(":focus-visible")))return;const{transform:j,width:O,height:Q,autoPanOnNodeFocus:Z,setCenter:W}=B.getState();if(!Z)return;nr(new Map([[e,p]]),{x:0,y:0,width:O,height:Q},j,!0).length>0||W(p.position.x+A.width/2,p.position.y+A.height/2,{zoom:j[2]})};return b.jsx("div",{className:ce(["react-flow__node",`react-flow__node-${S}`,{[h]:$},p.className,{selected:p.selected,selectable:z,parent:N,draggable:$,dragging:M}]),ref:y,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:k?"all":"none",visibility:R?"visible":"hidden",...p.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:H,onMouseLeave:D,onContextMenu:X,onClick:U,onDoubleClick:Y,onKeyDown:T?J:void 0,tabIndex:T?0:void 0,onFocus:T?K:void 0,role:p.ariaRole??(T?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Wi}-${w}`,"aria-label":p.ariaLabel,...p.domAttributes,children:b.jsx(dh,{value:e,children:b.jsx(I,{id:e,data:p.data,type:S,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:p.selected??!1,selectable:z,draggable:$,deletable:p.deletable??!0,isConnectable:F,sourcePosition:p.sourcePosition,targetPosition:p.targetPosition,dragging:M,dragHandle:p.dragHandle,zIndex:v.z,parentId:p.parentId,...A})})})}var Ph=C.memo(zh);const Th=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function is(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:o}=re(Th,ae),i=kh(e.onlyRenderVisibleElements),s=Ah();return b.jsx("div",{className:"react-flow__nodes",style:hn,children:i.map(a=>b.jsx(Ph,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:s,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},a))})}is.displayName="NodeRenderer";const Rh=C.memo(is);function jh(e){return re(C.useCallback(n=>{if(!e)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),s=n.nodeLookup.get(o.target);i&&s&&$d({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),ae)}const Dh=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return b.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Lh=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return b.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},So={[ot.Arrow]:Dh,[ot.ArrowClosed]:Lh};function Hh(e){const t=ie();return C.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(So,e)?So[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",be.error009(e)),null)},[e])}const Bh=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const c=Hh(t);return c?b.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:b.jsx(c,{color:n,strokeWidth:s})}):null},ss=({defaultColor:e,rfId:t})=>{const n=re(i=>i.edges),r=re(i=>i.defaultEdgeOptions),o=C.useMemo(()=>Hd(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return o.length?b.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:b.jsx("defs",{children:o.map(i=>b.jsx(Bh,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};ss.displayName="MarkerDefinitions";var Vh=C.memo(ss);function as({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:c,className:l,...f}){const[u,d]=C.useState({x:1,y:0,width:0,height:0}),h=ce(["react-flow__edge-textwrapper",l]),g=C.useRef(null);return C.useEffect(()=>{if(g.current){const w=g.current.getBBox();d({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?b.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:h,visibility:u.width?"visible":"hidden",...f,children:[o&&b.jsx("rect",{width:u.width+2*s[0],x:-s[0],y:-s[1],height:u.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),b.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),c]}):null}as.displayName="EdgeText";const Fh=C.memo(as);function gn({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c,interactionWidth:l=20,...f}){return b.jsxs(b.Fragment,{children:[b.jsx("path",{...f,d:e,fill:"none",className:ce(["react-flow__edge-path",f.className])}),l?b.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:l,className:"react-flow__edge-interaction"}):null,r&&we(t)&&we(n)?b.jsx(Fh,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c}):null]})}function Eo({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===G.Left||e===G.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function cs({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:o,targetPosition:i=G.Top}){const[s,a]=Eo({pos:n,x1:e,y1:t,x2:r,y2:o}),[c,l]=Eo({pos:i,x1:r,y1:o,x2:e,y2:t}),[f,u,d,h]=Mi({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:c,targetControlY:l});return[`M${e},${t} C${s},${a} ${c},${l} ${r},${o}`,f,u,d,h]}function ls(e){return C.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s,targetPosition:a,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:m})=>{const[_,p,v]=cs({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a}),N=e.isInternal?void 0:t;return b.jsx(gn,{id:N,path:_,labelX:p,labelY:v,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:m})})}const Oh=ls({isInternal:!1}),us=ls({isInternal:!0});Oh.displayName="SimpleBezierEdge";us.displayName="SimpleBezierEdgeInternal";function ds(e){return C.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:u,style:d,sourcePosition:h=G.Bottom,targetPosition:g=G.Top,markerEnd:w,markerStart:x,pathOptions:m,interactionWidth:_})=>{const[p,v,N]=Vn({sourceX:n,sourceY:r,sourcePosition:h,targetX:o,targetY:i,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),S=e.isInternal?void 0:t;return b.jsx(gn,{id:S,path:p,labelX:v,labelY:N,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:u,style:d,markerEnd:w,markerStart:x,interactionWidth:_})})}const fs=ds({isInternal:!1}),hs=ds({isInternal:!0});fs.displayName="SmoothStepEdge";hs.displayName="SmoothStepEdgeInternal";function gs(e){return C.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return b.jsx(fs,{...n,id:r,pathOptions:C.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Wh=gs({isInternal:!1}),ps=gs({isInternal:!0});Wh.displayName="StepEdge";ps.displayName="StepEdgeInternal";function ms(e){return C.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:g,interactionWidth:w})=>{const[x,m,_]=Ai({sourceX:n,sourceY:r,targetX:o,targetY:i}),p=e.isInternal?void 0:t;return b.jsx(gn,{id:p,path:x,labelX:m,labelY:_,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:g,interactionWidth:w})})}const Xh=ms({isInternal:!1}),ys=ms({isInternal:!0});Xh.displayName="StraightEdge";ys.displayName="StraightEdgeInternal";function xs(e){return C.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s=G.Bottom,targetPosition:a=G.Top,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,pathOptions:m,interactionWidth:_})=>{const[p,v,N]=ki({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a,curvature:m==null?void 0:m.curvature}),S=e.isInternal?void 0:t;return b.jsx(gn,{id:S,path:p,labelX:v,labelY:N,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:_})})}const Yh=xs({isInternal:!1}),ws=xs({isInternal:!0});Yh.displayName="BezierEdge";ws.displayName="BezierEdgeInternal";const No={default:ws,straight:ys,step:ps,smoothstep:hs,simplebezier:us},Co={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},qh=(e,t,n)=>n===G.Left?e-t:n===G.Right?e+t:e,Gh=(e,t,n)=>n===G.Top?e-t:n===G.Bottom?e+t:e,Mo="react-flow__edgeupdater";function ko({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a}){return b.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:ce([Mo,`${Mo}-${a}`]),cx:qh(t,r,e),cy:Gh(n,r,e),r,stroke:"transparent",fill:"transparent"})}function Zh({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:s,sourcePosition:a,targetPosition:c,onReconnect:l,onReconnectStart:f,onReconnectEnd:u,setReconnecting:d,setUpdateHover:h}){const g=ie(),w=(v,N)=>{if(v.button!==0)return;const{autoPanOnConnect:S,domNode:I,connectionMode:$,connectionRadius:z,lib:F,onConnectStart:T,cancelConnection:B,nodeLookup:R,rfId:y,panBy:M,updateConnection:E}=g.getState(),A=N.type==="target",P=(H,D)=>{d(!1),u==null||u(H,n,N.type,D)},k=H=>l==null?void 0:l(n,H),L=(H,D)=>{d(!0),f==null||f(v,n,N.type),T==null||T(H,D)};Wn.onPointerDown(v.nativeEvent,{autoPanOnConnect:S,connectionMode:$,connectionRadius:z,domNode:I,handleId:N.id,nodeId:N.nodeId,nodeLookup:R,isTarget:A,edgeUpdaterType:N.type,lib:F,flowId:y,cancelConnection:B,panBy:M,isValidConnection:(...H)=>{var D,X;return((X=(D=g.getState()).isValidConnection)==null?void 0:X.call(D,...H))??!0},onConnect:k,onConnectStart:L,onConnectEnd:(...H)=>{var D,X;return(X=(D=g.getState()).onConnectEnd)==null?void 0:X.call(D,...H)},onReconnectEnd:P,updateConnection:E,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},x=v=>w(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>w(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),_=()=>h(!0),p=()=>h(!1);return b.jsxs(b.Fragment,{children:[(e===!0||e==="source")&&b.jsx(ko,{position:a,centerX:r,centerY:o,radius:t,onMouseDown:x,onMouseEnter:_,onMouseOut:p,type:"source"}),(e===!0||e==="target")&&b.jsx(ko,{position:c,centerX:i,centerY:s,radius:t,onMouseDown:m,onMouseEnter:_,onMouseOut:p,type:"target"})]})}function Uh({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,reconnectRadius:f,onReconnect:u,onReconnectStart:d,onReconnectEnd:h,rfId:g,edgeTypes:w,noPanClassName:x,onError:m,disableKeyboardA11y:_}){let p=re(W=>W.edgeLookup.get(e));const v=re(W=>W.defaultEdgeOptions);p=v?{...v,...p}:p;let N=p.type||"default",S=(w==null?void 0:w[N])||No[N];S===void 0&&(m==null||m("011",be.error011(N)),N="default",S=(w==null?void 0:w.default)||No.default);const I=!!(p.focusable||t&&typeof p.focusable>"u"),$=typeof u<"u"&&(p.reconnectable||n&&typeof p.reconnectable>"u"),z=!!(p.selectable||r&&typeof p.selectable>"u"),F=C.useRef(null),[T,B]=C.useState(!1),[R,y]=C.useState(!1),M=ie(),{zIndex:E=p.zIndex,sourceX:A,sourceY:P,targetX:k,targetY:L,sourcePosition:H,targetPosition:D}=re(C.useCallback(W=>{const q=W.nodeLookup.get(p.source),ee=W.nodeLookup.get(p.target);if(!q||!ee)return Co;const te=Ld({id:e,sourceNode:q,targetNode:ee,sourceHandle:p.sourceHandle||null,targetHandle:p.targetHandle||null,connectionMode:W.connectionMode,onError:m}),ne=Ad({selected:p.selected,zIndex:p.zIndex,sourceNode:q,targetNode:ee,elevateOnSelect:W.elevateEdgesOnSelect,zIndexMode:W.zIndexMode});return{...te||Co,zIndex:ne}},[p.source,p.target,p.sourceHandle,p.targetHandle,p.selected,p.zIndex]),ae),X=C.useMemo(()=>p.markerStart?`url('#${Fn(p.markerStart,g)}')`:void 0,[p.markerStart,g]),Y=C.useMemo(()=>p.markerEnd?`url('#${Fn(p.markerEnd,g)}')`:void 0,[p.markerEnd,g]);if(p.hidden||A===null||P===null||k===null||L===null)return null;const U=W=>{var ne;const{addSelectedEdges:q,unselectNodesAndEdges:ee,multiSelectionActive:te}=M.getState();z&&(M.setState({nodesSelectionActive:!1}),p.selected&&te?(ee({nodes:[],edges:[p]}),(ne=F.current)==null||ne.blur()):q([e])),o&&o(W,p)},J=i?W=>{i(W,{...p})}:void 0,K=s?W=>{s(W,{...p})}:void 0,j=a?W=>{a(W,{...p})}:void 0,O=c?W=>{c(W,{...p})}:void 0,Q=l?W=>{l(W,{...p})}:void 0,Z=W=>{var q;if(!_&&fi.includes(W.key)&&z){const{unselectNodesAndEdges:ee,addSelectedEdges:te}=M.getState();W.key==="Escape"?((q=F.current)==null||q.blur(),ee({edges:[p]})):te([e])}};return b.jsx("svg",{style:{zIndex:E},children:b.jsxs("g",{className:ce(["react-flow__edge",`react-flow__edge-${N}`,p.className,x,{selected:p.selected,animated:p.animated,inactive:!z&&!o,updating:T,selectable:z}]),onClick:U,onDoubleClick:J,onContextMenu:K,onMouseEnter:j,onMouseMove:O,onMouseLeave:Q,onKeyDown:I?Z:void 0,tabIndex:I?0:void 0,role:p.ariaRole??(I?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":p.ariaLabel===null?void 0:p.ariaLabel||`Edge from ${p.source} to ${p.target}`,"aria-describedby":I?`${Xi}-${g}`:void 0,ref:F,...p.domAttributes,children:[!R&&b.jsx(S,{id:e,source:p.source,target:p.target,type:p.type,selected:p.selected,animated:p.animated,selectable:z,deletable:p.deletable??!0,label:p.label,labelStyle:p.labelStyle,labelShowBg:p.labelShowBg,labelBgStyle:p.labelBgStyle,labelBgPadding:p.labelBgPadding,labelBgBorderRadius:p.labelBgBorderRadius,sourceX:A,sourceY:P,targetX:k,targetY:L,sourcePosition:H,targetPosition:D,data:p.data,style:p.style,sourceHandleId:p.sourceHandle,targetHandleId:p.targetHandle,markerStart:X,markerEnd:Y,pathOptions:"pathOptions"in p?p.pathOptions:void 0,interactionWidth:p.interactionWidth}),$&&b.jsx(Zh,{edge:p,isReconnectable:$,reconnectRadius:f,onReconnect:u,onReconnectStart:d,onReconnectEnd:h,sourceX:A,sourceY:P,targetX:k,targetY:L,sourcePosition:H,targetPosition:D,setUpdateHover:B,setReconnecting:y})]})})}var Kh=C.memo(Uh);const Qh=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function vs({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:f,reconnectRadius:u,onEdgeDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:w}){const{edgesFocusable:x,edgesReconnectable:m,elementsSelectable:_,onError:p}=re(Qh,ae),v=jh(t);return b.jsxs("div",{className:"react-flow__edges",children:[b.jsx(Vh,{defaultColor:e,rfId:n}),v.map(N=>b.jsx(Kh,{id:N,edgesFocusable:x,edgesReconnectable:m,elementsSelectable:_,noPanClassName:o,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,onClick:f,reconnectRadius:u,onDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:p,edgeTypes:r,disableKeyboardA11y:w},N))]})}vs.displayName="EdgeRenderer";const Jh=C.memo(vs),Io=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function eg({children:e}){const t=ie(),n=C.useRef(null),[r]=C.useState(()=>t.getState().transform);return Qi(()=>{let o=null;const i=()=>{const s=t.getState().transform;o&&s[0]===o[0]&&s[1]===o[1]&&s[2]===o[2]||(o=s,n.current&&(n.current.style.transform=Io(s)))};return i(),t.subscribe(i)},[t]),b.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:Io(r)},children:e})}function tg(e){const t=dr(),n=C.useRef(!1);C.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const ng=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function rg(e){const t=re(ng),n=ie();return C.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function og(e){return e.connection.inProgress?{...e.connection,to:At(e.connection.to,e.transform)}:{...e.connection}}function ig(e){return og}function sg(e){const t=ig();return re(t,ae)}const ag=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function cg({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:i,height:s,isValid:a,inProgress:c}=re(ag,ae);return!(i&&o&&c)?null:b.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:b.jsx("g",{className:ce(["react-flow__connection",pi(a)]),children:b.jsx(bs,{style:t,type:n,CustomComponent:r,isValid:a})})})}const bs=({style:e,type:t=Re.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:s,fromHandle:a,fromPosition:c,to:l,toNode:f,toHandle:u,toPosition:d,pointer:h}=sg();if(!o)return;if(n)return b.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:d,connectionStatus:pi(r),toNode:f,toHandle:u,pointer:h});let g="";const w={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:d};switch(t){case Re.Bezier:[g]=ki(w);break;case Re.SimpleBezier:[g]=cs(w);break;case Re.Step:[g]=Vn({...w,borderRadius:0});break;case Re.SmoothStep:[g]=Vn(w);break;default:[g]=Ai(w)}return b.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};bs.displayName="ConnectionLine";const lg={};function Ao(e=lg){C.useRef(e),ie(),C.useEffect(()=>{},[e])}function ug(){ie(),C.useRef(!1),C.useEffect(()=>{},[])}function _s({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:f,onSelectionContextMenu:u,onSelectionStart:d,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:w,connectionLineComponent:x,connectionLineContainerStyle:m,selectionKeyCode:_,selectionOnDrag:p,selectionMode:v,multiSelectionKeyCode:N,panActivationKeyCode:S,zoomActivationKeyCode:I,deleteKeyCode:$,onlyRenderVisibleElements:z,elementsSelectable:F,defaultViewport:T,translateExtent:B,minZoom:R,maxZoom:y,preventScrolling:M,defaultMarkerColor:E,zoomOnScroll:A,zoomOnPinch:P,panOnScroll:k,panOnScrollSpeed:L,panOnScrollMode:H,zoomOnDoubleClick:D,panOnDrag:X,autoPanOnSelection:Y,onPaneClick:U,onPaneMouseEnter:J,onPaneMouseMove:K,onPaneMouseLeave:j,onPaneScroll:O,onPaneContextMenu:Q,paneClickDistance:Z,nodeClickDistance:W,onEdgeContextMenu:q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,reconnectRadius:se,onReconnect:ue,onReconnectStart:fe,onReconnectEnd:pe,noDragClassName:me,noWheelClassName:ze,noPanClassName:V,disableKeyboardA11y:oe,nodeExtent:le,rfId:Me,viewport:ke,onViewportChange:Le,nodesDraggable:pn}){return Ao(e),Ao(t),ug(),tg(n),rg(ke),b.jsx(Ch,{onPaneClick:U,onPaneMouseEnter:J,onPaneMouseMove:K,onPaneMouseLeave:j,onPaneContextMenu:Q,onPaneScroll:O,paneClickDistance:Z,deleteKeyCode:$,selectionKeyCode:_,selectionOnDrag:p,selectionMode:v,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:N,panActivationKeyCode:S,zoomActivationKeyCode:I,elementsSelectable:F,zoomOnScroll:A,zoomOnPinch:P,zoomOnDoubleClick:D,panOnScroll:k,panOnScrollSpeed:L,panOnScrollMode:H,panOnDrag:X,autoPanOnSelection:Y,defaultViewport:T,translateExtent:B,minZoom:R,maxZoom:y,onSelectionContextMenu:u,preventScrolling:M,noDragClassName:me,noWheelClassName:ze,noPanClassName:V,disableKeyboardA11y:oe,onViewportChange:Le,isControlledViewport:!!ke,children:b.jsxs(eg,{children:[b.jsx(Jh,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:s,onReconnect:ue,onReconnectStart:fe,onReconnectEnd:pe,onlyRenderVisibleElements:z,onEdgeContextMenu:q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,reconnectRadius:se,defaultMarkerColor:E,noPanClassName:V,disableKeyboardA11y:oe,rfId:Me}),b.jsx(cg,{style:w,type:g,component:x,containerStyle:m}),b.jsx("div",{className:"react-flow__edgelabel-renderer"}),b.jsx(Rh,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:f,nodeClickDistance:W,onlyRenderVisibleElements:z,noPanClassName:V,noDragClassName:me,disableKeyboardA11y:oe,nodeExtent:le,rfId:Me,nodesDraggable:pn}),b.jsx("div",{className:"react-flow__viewport-portal"})]})})}_s.displayName="GraphView";const dg=C.memo(_s),fg=bi(),$o=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c=.5,maxZoom:l=2,nodeOrigin:f,nodeExtent:u,zIndexMode:d="basic"}={})=>{const h=new Map,g=new Map,w=new Map,x=new Map,m=r??t??[],_=n??e??[],p=f??[0,0],v=u??vt;Pi(w,x,m);const{nodesInitialized:N}=On(_,h,g,{nodeOrigin:p,nodeExtent:v,zIndexMode:d});let S=[0,0,1];if(s&&o&&i){const I=kt(h,{filter:T=>!!((T.width||T.initialWidth)&&(T.height||T.initialHeight))}),{x:$,y:z,zoom:F}=or(I,o,i,c,l,(a==null?void 0:a.padding)??.1);S=[$,z,F]}return{rfId:"1",width:o??0,height:i??0,transform:S,nodes:_,nodesInitialized:N,nodeLookup:h,parentLookup:g,edges:m,edgeLookup:x,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:vt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:rt.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:p,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...gi},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:fg,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:hi,zIndexMode:d,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},hg=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:f,nodeExtent:u,zIndexMode:d})=>kf((h,g)=>{async function w(){const{nodeLookup:x,panZoom:m,fitViewOptions:_,fitViewResolver:p,width:v,height:N,minZoom:S,maxZoom:I}=g();m&&(await Sd({nodes:x,width:v,height:N,panZoom:m,minZoom:S,maxZoom:I},_),p==null||p.resolve(!0),h({fitViewResolver:null}))}return{...$o({nodes:e,edges:t,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:f,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:d}),setNodes:x=>{const{nodeLookup:m,parentLookup:_,nodeOrigin:p,elevateNodesOnSelect:v,fitViewQueued:N,zIndexMode:S,nodesSelectionActive:I}=g(),{nodesInitialized:$,hasSelectedNodes:z}=On(x,m,_,{nodeOrigin:p,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:S}),F=I&&z;N&&$?(w(),h({nodes:x,nodesInitialized:$,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:F})):h({nodes:x,nodesInitialized:$,nodesSelectionActive:F})},setEdges:x=>{const{connectionLookup:m,edgeLookup:_}=g();Pi(m,_,x),h({edges:x})},setDefaultNodesAndEdges:(x,m)=>{if(x){const{setNodes:_}=g();_(x),h({hasDefaultNodes:!0})}if(m){const{setEdges:_}=g();_(m),h({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:m,nodeLookup:_,parentLookup:p,domNode:v,nodeOrigin:N,nodeExtent:S,debug:I,fitViewQueued:$,zIndexMode:z}=g(),{changes:F,updatedInternals:T}=Yd(x,_,p,v,N,S,z);T&&(Fd(_,p,{nodeOrigin:N,nodeExtent:S,zIndexMode:z}),$?(w(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(F==null?void 0:F.length)>0&&(I&&console.log("React Flow: trigger node changes",F),m==null||m(F)))},updateNodePositions:(x,m=!1)=>{const _=[];let p=[];const{nodeLookup:v,triggerNodeChanges:N,connection:S,updateConnection:I,onNodesChangeMiddlewareMap:$}=g();for(const[z,F]of x){const T=v.get(z),B=!!(T!=null&&T.expandParent&&(T!=null&&T.parentId)&&(F!=null&&F.position)),R={id:z,type:"position",position:B?{x:Math.max(0,F.position.x),y:Math.max(0,F.position.y)}:F.position,dragging:m};if(T&&S.inProgress&&S.fromNode.id===T.id){const y=Ge(T,S.fromHandle,G.Left,!0);I({...S,from:y})}B&&T.parentId&&_.push({id:z,parentId:T.parentId,rect:{...F.internals.positionAbsolute,width:F.measured.width??0,height:F.measured.height??0}}),p.push(R)}if(_.length>0){const{parentLookup:z,nodeOrigin:F}=g(),T=ur(_,v,z,F);p.push(...T)}for(const z of $.values())p=z(p);N(p)},triggerNodeChanges:x=>{const{onNodesChange:m,setNodes:_,nodes:p,hasDefaultNodes:v,debug:N}=g();if(x!=null&&x.length){if(v){const S=Gi(x,p);_(S)}N&&console.log("React Flow: trigger node changes",x),m==null||m(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:m,setEdges:_,edges:p,hasDefaultEdges:v,debug:N}=g();if(x!=null&&x.length){if(v){const S=Zi(x,p);_(S)}N&&console.log("React Flow: trigger edge changes",x),m==null||m(x)}},addSelectedNodes:x=>{const{multiSelectionActive:m,edgeLookup:_,nodeLookup:p,triggerNodeChanges:v,triggerEdgeChanges:N}=g();if(m){const S=x.map(I=>He(I,!0));v(S);return}v(Qe(p,new Set([...x]),!0)),N(Qe(_))},addSelectedEdges:x=>{const{multiSelectionActive:m,edgeLookup:_,nodeLookup:p,triggerNodeChanges:v,triggerEdgeChanges:N}=g();if(m){const S=x.map(I=>He(I,!0));N(S);return}N(Qe(_,new Set([...x]))),v(Qe(p,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:m}={})=>{const{edges:_,nodes:p,nodeLookup:v,triggerNodeChanges:N,triggerEdgeChanges:S}=g(),I=x||p,$=m||_,z=[];for(const T of I){if(!T.selected)continue;const B=v.get(T.id);B&&(B.selected=!1),z.push(He(T.id,!1))}const F=[];for(const T of $)T.selected&&F.push(He(T.id,!1));N(z),S(F)},setMinZoom:x=>{const{panZoom:m,maxZoom:_}=g();m==null||m.setScaleExtent([x,_]),h({minZoom:x})},setMaxZoom:x=>{const{panZoom:m,minZoom:_}=g();m==null||m.setScaleExtent([_,x]),h({maxZoom:x})},setTranslateExtent:x=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(x),h({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:m,triggerNodeChanges:_,triggerEdgeChanges:p,elementsSelectable:v}=g();if(!v)return;const N=m.reduce((I,$)=>$.selected?[...I,He($.id,!1)]:I,[]),S=x.reduce((I,$)=>$.selected?[...I,He($.id,!1)]:I,[]);_(N),p(S)},setNodeExtent:x=>{const{nodes:m,nodeLookup:_,parentLookup:p,nodeOrigin:v,elevateNodesOnSelect:N,nodeExtent:S,zIndexMode:I}=g();x[0][0]===S[0][0]&&x[0][1]===S[0][1]&&x[1][0]===S[1][0]&&x[1][1]===S[1][1]||(On(m,_,p,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:N,checkEquality:!1,zIndexMode:I}),h({nodeExtent:x}))},panBy:x=>{const{transform:m,width:_,height:p,panZoom:v,translateExtent:N}=g();return qd({delta:x,panZoom:v,transform:m,translateExtent:N,width:_,height:p})},setCenter:async(x,m,_)=>{const{width:p,height:v,maxZoom:N,panZoom:S}=g();if(!S)return!1;const I=typeof(_==null?void 0:_.zoom)<"u"?_.zoom:N;return await S.setViewport({x:p/2-x*I,y:v/2-m*I,zoom:I},{duration:_==null?void 0:_.duration,ease:_==null?void 0:_.ease,interpolate:_==null?void 0:_.interpolate}),!0},cancelConnection:()=>{h({connection:{...gi}})},updateConnection:x=>{h({connection:x})},reset:()=>h({...$o()})}},Object.is);function Ss({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:c,fitView:l,nodeOrigin:f,nodeExtent:u,zIndexMode:d,children:h}){const[g]=C.useState(()=>hg({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:l,minZoom:s,maxZoom:a,fitViewOptions:c,nodeOrigin:f,nodeExtent:u,zIndexMode:d}));return b.jsx(If,{value:g,children:b.jsx(Qf,{children:b.jsx(hh,{children:h})})})}function gg({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:s,fitView:a,fitViewOptions:c,minZoom:l,maxZoom:f,nodeOrigin:u,nodeExtent:d,zIndexMode:h}){return C.useContext(fn)?b.jsx(b.Fragment,{children:e}):b.jsx(Ss,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:f,nodeOrigin:u,nodeExtent:d,zIndexMode:h,children:e})}const pg={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function mg({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:f,onMoveStart:u,onMoveEnd:d,onConnect:h,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:m,onNodeMouseEnter:_,onNodeMouseMove:p,onNodeMouseLeave:v,onNodeContextMenu:N,onNodeDoubleClick:S,onNodeDragStart:I,onNodeDrag:$,onNodeDragStop:z,onNodesDelete:F,onEdgesDelete:T,onDelete:B,onSelectionChange:R,onSelectionDragStart:y,onSelectionDrag:M,onSelectionDragStop:E,onSelectionContextMenu:A,onSelectionStart:P,onSelectionEnd:k,onBeforeDelete:L,connectionMode:H,connectionLineType:D=Re.Bezier,connectionLineStyle:X,connectionLineComponent:Y,connectionLineContainerStyle:U,deleteKeyCode:J="Backspace",selectionKeyCode:K="Shift",selectionOnDrag:j=!1,selectionMode:O=bt.Full,panActivationKeyCode:Q="Space",multiSelectionKeyCode:Z=St()?"Meta":"Control",zoomActivationKeyCode:W=St()?"Meta":"Control",snapToGrid:q,snapGrid:ee,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:ne,nodesDraggable:se,autoPanOnNodeFocus:ue,nodesConnectable:fe,nodesFocusable:pe,nodeOrigin:me=Yi,edgesFocusable:ze,edgesReconnectable:V,elementsSelectable:oe=!0,defaultViewport:le=Ff,minZoom:Me=.5,maxZoom:ke=2,translateExtent:Le=vt,preventScrolling:pn=!0,nodeExtent:mn,defaultMarkerColor:Ms="#b1b1b7",zoomOnScroll:ks=!0,zoomOnPinch:Is=!0,panOnScroll:As=!1,panOnScrollSpeed:$s=.5,panOnScrollMode:zs=Oe.Free,zoomOnDoubleClick:Ps=!0,panOnDrag:Ts=!0,onPaneClick:Rs,onPaneMouseEnter:js,onPaneMouseMove:Ds,onPaneMouseLeave:Ls,onPaneScroll:Hs,onPaneContextMenu:Bs,paneClickDistance:Vs=1,nodeClickDistance:Fs=0,children:Os,onReconnect:Ws,onReconnectStart:Xs,onReconnectEnd:Ys,onEdgeContextMenu:qs,onEdgeDoubleClick:Gs,onEdgeMouseEnter:Zs,onEdgeMouseMove:Us,onEdgeMouseLeave:Ks,reconnectRadius:Qs=10,onNodesChange:Js,onEdgesChange:ea,noDragClassName:ta="nodrag",noWheelClassName:na="nowheel",noPanClassName:hr="nopan",fitView:gr,fitViewOptions:pr,connectOnClick:ra,attributionPosition:oa,proOptions:ia,defaultEdgeOptions:sa,elevateNodesOnSelect:aa=!0,elevateEdgesOnSelect:ca=!1,disableKeyboardA11y:mr=!1,autoPanOnConnect:la,autoPanOnNodeDrag:ua,autoPanOnSelection:da=!0,autoPanSpeed:fa,connectionRadius:ha,isValidConnection:ga,onError:pa,style:ma,id:yr,nodeDragThreshold:ya,connectionDragThreshold:xa,viewport:wa,onViewportChange:va,width:ba,height:_a,colorMode:Sa="light",debug:Ea,onScroll:$t,ariaLabelConfig:Na,zIndexMode:xr="basic",...Ca},Ma){const yn=yr||"1",ka=Yf(Sa),Ia=C.useCallback(wr=>{wr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),$t==null||$t(wr)},[$t]);return b.jsx("div",{"data-testid":"rf__wrapper",...Ca,onScroll:Ia,style:{...ma,...pg},ref:Ma,className:ce(["react-flow",o,ka]),id:yr,role:"application",children:b.jsxs(gg,{nodes:e,edges:t,width:ba,height:_a,fitView:gr,fitViewOptions:pr,minZoom:Me,maxZoom:ke,nodeOrigin:me,nodeExtent:mn,zIndexMode:xr,children:[b.jsx(Xf,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:m,nodesDraggable:se,autoPanOnNodeFocus:ue,nodesConnectable:fe,nodesFocusable:pe,edgesFocusable:ze,edgesReconnectable:V,elementsSelectable:oe,elevateNodesOnSelect:aa,elevateEdgesOnSelect:ca,minZoom:Me,maxZoom:ke,nodeExtent:mn,onNodesChange:Js,onEdgesChange:ea,snapToGrid:q,snapGrid:ee,connectionMode:H,translateExtent:Le,connectOnClick:ra,defaultEdgeOptions:sa,fitView:gr,fitViewOptions:pr,onNodesDelete:F,onEdgesDelete:T,onDelete:B,onNodeDragStart:I,onNodeDrag:$,onNodeDragStop:z,onSelectionDrag:M,onSelectionDragStart:y,onSelectionDragStop:E,onMove:f,onMoveStart:u,onMoveEnd:d,noPanClassName:hr,nodeOrigin:me,rfId:yn,autoPanOnConnect:la,autoPanOnNodeDrag:ua,autoPanSpeed:fa,onError:pa,connectionRadius:ha,isValidConnection:ga,selectNodesOnDrag:ne,nodeDragThreshold:ya,connectionDragThreshold:xa,onBeforeDelete:L,debug:Ea,ariaLabelConfig:Na,zIndexMode:xr}),b.jsx(dg,{onInit:l,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:_,onNodeMouseMove:p,onNodeMouseLeave:v,onNodeContextMenu:N,onNodeDoubleClick:S,nodeTypes:i,edgeTypes:s,connectionLineType:D,connectionLineStyle:X,connectionLineComponent:Y,connectionLineContainerStyle:U,selectionKeyCode:K,selectionOnDrag:j,selectionMode:O,deleteKeyCode:J,multiSelectionKeyCode:Z,panActivationKeyCode:Q,zoomActivationKeyCode:W,onlyRenderVisibleElements:te,defaultViewport:le,translateExtent:Le,minZoom:Me,maxZoom:ke,preventScrolling:pn,zoomOnScroll:ks,zoomOnPinch:Is,zoomOnDoubleClick:Ps,panOnScroll:As,panOnScrollSpeed:$s,panOnScrollMode:zs,panOnDrag:Ts,autoPanOnSelection:da,onPaneClick:Rs,onPaneMouseEnter:js,onPaneMouseMove:Ds,onPaneMouseLeave:Ls,onPaneScroll:Hs,onPaneContextMenu:Bs,paneClickDistance:Vs,nodeClickDistance:Fs,onSelectionContextMenu:A,onSelectionStart:P,onSelectionEnd:k,onReconnect:Ws,onReconnectStart:Xs,onReconnectEnd:Ys,onEdgeContextMenu:qs,onEdgeDoubleClick:Gs,onEdgeMouseEnter:Zs,onEdgeMouseMove:Us,onEdgeMouseLeave:Ks,reconnectRadius:Qs,defaultMarkerColor:Ms,noDragClassName:ta,noWheelClassName:na,noPanClassName:hr,rfId:yn,disableKeyboardA11y:mr,nodeExtent:mn,viewport:wa,onViewportChange:va,nodesDraggable:se}),b.jsx(Vf,{onSelectionChange:R}),Os,b.jsx(jf,{proOptions:ia,position:oa}),b.jsx(Rf,{rfId:yn,disableKeyboardA11y:mr})]})})}var yg=Ki(mg);function xg(e){const[t,n]=C.useState(e),r=C.useCallback(o=>n(i=>Gi(o,i)),[]);return[t,n,r]}function wg(e){const[t,n]=C.useState(e),r=C.useCallback(o=>n(i=>Zi(o,i)),[]);return[t,n,r]}function vg({dimensions:e,lineWidth:t,variant:n,className:r}){return b.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ce(["react-flow__background-pattern",n,r])})}function bg({radius:e,className:t}){return b.jsx("circle",{cx:e,cy:e,r:e,className:ce(["react-flow__background-pattern","dots",t])})}var De;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(De||(De={}));const _g={[De.Dots]:1,[De.Lines]:1,[De.Cross]:6},Sg=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Es({id:e,variant:t=De.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:s,bgColor:a,style:c,className:l,patternClassName:f}){const u=C.useRef(null),{transform:d,patternId:h}=re(Sg,ae),g=r||_g[t],w=t===De.Dots,x=t===De.Cross,m=Array.isArray(n)?n:[n,n],_=[m[0]*d[2]||1,m[1]*d[2]||1],p=g*d[2],v=Array.isArray(i)?i:[i,i],N=x?[p,p]:_,S=[v[0]*d[2]||1+N[0]/2,v[1]*d[2]||1+N[1]/2],I=`${h}${e||""}`;return b.jsxs("svg",{className:ce(["react-flow__background",l]),style:{...c,...hn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:u,"data-testid":"rf__background",children:[b.jsx("pattern",{id:I,x:d[0]%_[0],y:d[1]%_[1],width:_[0],height:_[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:w?b.jsx(bg,{radius:p/2,className:f}):b.jsx(vg,{dimensions:N,lineWidth:o,variant:t,className:f})}),b.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${I})`})]})}Es.displayName="Background";const Eg=C.memo(Es);function Ng(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:b.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Cg(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:b.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Mg(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:b.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function kg(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:b.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function Ig(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:b.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Bt({children:e,className:t,...n}){return b.jsx("button",{type:"button",className:ce(["react-flow__controls-button",t]),...n,children:e})}const Ag=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Ns({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:c,className:l,children:f,position:u="bottom-left",orientation:d="vertical","aria-label":h}){const g=ie(),{isInteractive:w,minZoomReached:x,maxZoomReached:m,ariaLabelConfig:_}=re(Ag,ae),{zoomIn:p,zoomOut:v,fitView:N}=dr(),S=()=>{p(),i==null||i()},I=()=>{v(),s==null||s()},$=()=>{N(o),a==null||a()},z=()=>{g.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),c==null||c(!w)},F=d==="horizontal"?"horizontal":"vertical";return b.jsxs(je,{className:ce(["react-flow__controls",F,l]),position:u,style:e,"data-testid":"rf__controls","aria-label":h??_["controls.ariaLabel"],children:[t&&b.jsxs(b.Fragment,{children:[b.jsx(Bt,{onClick:S,className:"react-flow__controls-zoomin",title:_["controls.zoomIn.ariaLabel"],"aria-label":_["controls.zoomIn.ariaLabel"],disabled:m,children:b.jsx(Ng,{})}),b.jsx(Bt,{onClick:I,className:"react-flow__controls-zoomout",title:_["controls.zoomOut.ariaLabel"],"aria-label":_["controls.zoomOut.ariaLabel"],disabled:x,children:b.jsx(Cg,{})})]}),n&&b.jsx(Bt,{className:"react-flow__controls-fitview",onClick:$,title:_["controls.fitView.ariaLabel"],"aria-label":_["controls.fitView.ariaLabel"],children:b.jsx(Mg,{})}),r&&b.jsx(Bt,{className:"react-flow__controls-interactive",onClick:z,title:_["controls.interactive.ariaLabel"],"aria-label":_["controls.interactive.ariaLabel"],children:w?b.jsx(Ig,{}):b.jsx(kg,{})}),f]})}Ns.displayName="Controls";const $g=C.memo(Ns);function zg({id:e,x:t,y:n,width:r,height:o,style:i,color:s,strokeColor:a,strokeWidth:c,className:l,borderRadius:f,shapeRendering:u,selected:d,onClick:h}){const{background:g,backgroundColor:w}=i||{},x=s||g||w;return b.jsx("rect",{className:ce(["react-flow__minimap-node",{selected:d},l]),x:t,y:n,rx:f,ry:f,width:r,height:o,style:{fill:x,stroke:a,strokeWidth:c},shapeRendering:u,onClick:h?m=>h(m,e):void 0})}const Pg=C.memo(zg),Tg=e=>e.nodes.map(t=>t.id),$n=e=>e instanceof Function?e:()=>e;function Rg({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=Pg,onClick:s}){const a=re(Tg,ae),c=$n(t),l=$n(e),f=$n(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return b.jsx(b.Fragment,{children:a.map(d=>b.jsx(Dg,{id:d,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:f,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:s,shapeRendering:u},d))})}function jg({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:c}){const{node:l,x:f,y:u,width:d,height:h}=re(g=>{const w=g.nodeLookup.get(e);if(!w)return{node:void 0,x:0,y:0,width:0,height:0};const x=w.internals.userNode,{x:m,y:_}=w.internals.positionAbsolute,{width:p,height:v}=Ce(x);return{node:x,x:m,y:_,width:p,height:v}},ae);return!l||l.hidden||!_i(l)?null:b.jsx(a,{x:f,y:u,width:d,height:h,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:o,strokeColor:n(l),strokeWidth:i,shapeRendering:s,onClick:c,id:l.id})}const Dg=C.memo(jg);var Lg=C.memo(Rg);const Hg=200,Bg=150,Vg=e=>!e.hidden,Fg=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?wi(kt(e.nodeLookup,{filter:Vg}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},zo=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Og=(e,t)=>zo(e.viewBB,t.viewBB)&&zo(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,Wg="react-flow__minimap-desc";function Cs({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:c,maskColor:l,maskStrokeColor:f,maskStrokeWidth:u,position:d="bottom-right",onClick:h,onNodeClick:g,pannable:w=!1,zoomable:x=!1,ariaLabel:m,inversePan:_,zoomStep:p=1,offsetScale:v=5}){const N=ie(),S=C.useRef(null),{boundingRect:I,viewBB:$,rfId:z,panZoom:F,translateExtent:T,flowWidth:B,flowHeight:R,ariaLabelConfig:y}=re(Fg,Og),M=(e==null?void 0:e.width)??Hg,E=(e==null?void 0:e.height)??Bg,A=I.width/M,P=I.height/E,k=Math.max(A,P),L=k*M,H=k*E,D=v*k,X=I.x-(L-I.width)/2-D,Y=I.y-(H-I.height)/2-D,U=L+D*2,J=H+D*2,K=`${Wg}-${z}`,j=C.useRef(0),O=C.useRef();j.current=k,C.useEffect(()=>{if(S.current&&F)return O.current=nf({domNode:S.current,panZoom:F,getTransform:()=>N.getState().transform,getViewScale:()=>j.current}),()=>{var q;(q=O.current)==null||q.destroy()}},[F]),C.useEffect(()=>{var q;(q=O.current)==null||q.update({translateExtent:T,width:B,height:R,inversePan:_,pannable:w,zoomStep:p,zoomable:x})},[w,x,_,p,T,B,R]);const Q=h?q=>{var ne;const[ee,te]=((ne=O.current)==null?void 0:ne.pointer(q))||[0,0];h(q,{x:ee,y:te})}:void 0,Z=g?C.useCallback((q,ee)=>{const te=N.getState().nodeLookup.get(ee).internals.userNode;g(q,te)},[]):void 0,W=m??y["minimap.ariaLabel"];return b.jsx(je,{position:d,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*k:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:ce(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:b.jsxs("svg",{width:M,height:E,viewBox:`${X} ${Y} ${U} ${J}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":K,ref:S,onClick:Q,children:[W&&b.jsx("title",{id:K,children:W}),b.jsx(Lg,{onClick:Z,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:a}),b.jsx("path",{className:"react-flow__minimap-mask",d:`M${X-D},${Y-D}h${U+D*2}v${J+D*2}h${-U-D*2}z
38
+ M${$.x},${$.y}h${$.width}v${$.height}h${-$.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Cs.displayName="MiniMap";const Xg=C.memo(Cs),Yg=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,qg={[at.Line]:"right",[at.Handle]:"bottom-right"};function Gg({nodeId:e,position:t,variant:n=at.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:a=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:d,autoScale:h=!0,shouldResize:g,onResizeStart:w,onResize:x,onResizeEnd:m}){const _=ns(),p=typeof e=="string"?e:_,v=ie(),N=C.useRef(null),S=n===at.Handle,I=re(C.useCallback(Yg(S&&h),[S,h]),ae),$=C.useRef(null),z=t??qg[n];C.useEffect(()=>{if(!(!N.current||!p))return $.current||($.current=mf({domNode:N.current,nodeId:p,getStoreItems:()=>{const{nodeLookup:T,transform:B,snapGrid:R,snapToGrid:y,nodeOrigin:M,domNode:E}=v.getState();return{nodeLookup:T,transform:B,snapGrid:R,snapToGrid:y,nodeOrigin:M,paneDomNode:E}},onChange:(T,B)=>{const{triggerNodeChanges:R,nodeLookup:y,parentLookup:M,nodeOrigin:E}=v.getState(),A=[],P={x:T.x,y:T.y},k=y.get(p);if(k&&k.expandParent&&k.parentId){const L=k.origin??E,H=T.width??k.measured.width??0,D=T.height??k.measured.height??0,X={id:k.id,parentId:k.parentId,rect:{width:H,height:D,...Si({x:T.x??k.position.x,y:T.y??k.position.y},{width:H,height:D},k.parentId,y,L)}},Y=ur([X],y,M,E);A.push(...Y),P.x=T.x?Math.max(L[0]*H,T.x):void 0,P.y=T.y?Math.max(L[1]*D,T.y):void 0}if(P.x!==void 0&&P.y!==void 0){const L={id:p,type:"position",position:{...P}};A.push(L)}if(T.width!==void 0&&T.height!==void 0){const H={id:p,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:T.width,height:T.height}};A.push(H)}for(const L of B){const H={...L,type:"position"};A.push(H)}R(A)},onEnd:({width:T,height:B})=>{const R={id:p,type:"dimensions",resizing:!1,dimensions:{width:T,height:B}};v.getState().triggerNodeChanges([R])}})),$.current.update({controlPosition:z,boundaries:{minWidth:a,minHeight:c,maxWidth:l,maxHeight:f},keepAspectRatio:u,resizeDirection:d,onResizeStart:w,onResize:x,onResizeEnd:m,shouldResize:g}),()=>{var T;(T=$.current)==null||T.destroy()}},[z,a,c,l,f,u,w,x,m,g]);const F=z.split("-");return b.jsx("div",{className:ce(["react-flow__resize-control","nodrag",...F,n,r]),ref:N,style:{...o,scale:I,...s&&{[S?"backgroundColor":"borderColor"]:s}},children:i})}C.memo(Gg);const Ue=188,ht=86,Vt={border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"rgba(255,255,255,0.92)",boxShadow:"0 12px 38px rgba(0,0,0,0.08)",backdropFilter:"blur(16px)"};function Yn(e){return e==="running"||e==="active"||e==="ready"?"#166534":e==="blocked"||e==="exited"?"#991b1b":e==="starting"||e==="idle"?"#d97706":"#6b7280"}function Zg(e){return e?e.length>14?`${e.slice(0,8)}...${e.slice(-4)}`:e:""}function Po(e,t){const n=e.find(r=>r.id===t)||e[0];return(n==null?void 0:n.defaultCeoPrompt)||"Act as the Harness /wf CEO. Coordinate terminal agents through Harness A2A evidence."}function Ug(e){return e==="terminal-session"?Ro:e==="terminal-controller"||e==="runtime"?La:Ra}function Kg(e){const t=(e==null?void 0:e.nodes)||[],n=t.filter(c=>c.kind==="terminal-session").filter(c=>c.status==="running"||c.status==="starting").map(c=>({...c,label:c.runtime?`${c.runtime} Worker`:c.label,level:2})),r=t.find(c=>c.id==="ceo")||{id:"ceo",label:"Harness CEO",kind:"controller",level:0,status:(e==null?void 0:e.phase)||"idle",skills:["wf"],permissions:["dispatch"]},o=t.find(c=>c.id==="terminal-controller")||{id:"terminal-controller",label:"Agent Manager",kind:"terminal-controller",level:1,status:"ready",skills:["terminal-control"],permissions:["read-terminals","send-terminal-input"]},i=[{...r,x:420,y:72,width:Ue,height:ht},{...o,label:"Agent Manager",x:420,y:238,width:Ue,height:ht}];if(n.length===0)return i.push({id:"wf-subagents-pool",label:"WF Subagent Pool",kind:"terminal-session",level:2,status:"idle",skills:["new-terminal"],permissions:["create-node"],x:420,y:406,width:Ue,height:ht}),i;const s=252,a=420-n.length*s/2+s/2-Ue/2;return n.forEach((c,l)=>{i.push({...c,x:a+l*s,y:406,width:Ue,height:ht})}),i}function Qg(e,t){const n=new Map(((e==null?void 0:e.edges)||[]).map(i=>[`${i.from}->${i.to}`,i.relation])),r=[];t.has("ceo")&&t.has("terminal-controller")&&r.push({from:"ceo",to:"terminal-controller",relation:n.get("ceo->terminal-controller")||"delegates"});const o=[...t].filter(i=>i!=="ceo"&&i!=="terminal-controller");for(const i of o)r.push({from:"terminal-controller",to:i,relation:n.get(`terminal-controller->${i}`)||(i==="wf-subagents-pool"?"creates":"owns-worker")});return r}function Jg(e,t,n){const r=new Map(n.map(o=>[o.id,o.position]));return e.map(o=>({id:o.id,type:"wfNode",position:r.get(o.id)||{x:o.x,y:o.y},width:o.width,height:o.height,sourcePosition:G.Bottom,targetPosition:G.Top,data:{workflowNode:o,onOpenSession:t},draggable:!0}))}function ep(e){return e.map((t,n)=>({id:`${t.from}-${t.to}-${n}`,source:t.from,target:t.to,type:"smoothstep",label:t.relation,markerEnd:{type:ot.ArrowClosed,color:"#9ca3af"},style:{stroke:"#9ca3af",strokeWidth:1.5},labelStyle:{fill:"#6b7280",fontSize:10,fontWeight:500},labelBgStyle:{fill:"rgba(255,255,255,0.72)"},labelBgPadding:[4,2],labelBgBorderRadius:4}))}function tp(){const[e,t]=C.useState(null),[n,r]=C.useState([]),[o,i]=C.useState([]),[s,a]=C.useState(!0),[c,l]=C.useState(null),f=async(u=!1)=>{try{u&&(Be("/api/workflow"),Be("/api/runtimes"),Be("/api/tasks"));const[d,h,g]=await Promise.all([xn("/api/workflow",{ttlMs:u?0:1200,refresh:u}),xn(u?"/api/runtimes?refresh=1":"/api/runtimes",{ttlMs:12e3,refresh:u}),xn("/api/tasks",{ttlMs:8e3,refresh:u}).catch(()=>[])]);t(d),r(h),i(g),l(null)}catch(d){l((d==null?void 0:d.message)||"Failed to load workflow")}finally{a(!1)}};return C.useEffect(()=>{f();const u=setInterval(()=>f(!1),5e3);return()=>clearInterval(u)},[]),{workflow:e,runtimes:n,tasks:o,loading:s,error:c,setError:l,reload:f}}function lp({onSelectSession:e}){return b.jsx(Ss,{children:b.jsx(np,{onSelectSession:e})})}function np({onSelectSession:e}){var ze;const{workflow:t,runtimes:n,tasks:r,loading:o,error:i,setError:s,reload:a}=tp(),c=(t==null?void 0:t.availableWorkflows)||[],[l,f]=C.useState(""),[u,d]=C.useState(""),[h,g]=C.useState("wf-subagents"),[w,x]=C.useState(""),[m,_]=C.useState(!1),[p,v]=C.useState(""),[N,S]=C.useState(""),[I,$]=C.useState("WF terminal subagent"),[z,F]=C.useState("ceo"),[T,B]=C.useState(!1),[R,y]=C.useState(!1),[M,E]=C.useState(!1),[A,P]=C.useState(null),[k,L,H]=xg([]),[D,X,Y]=wg([]),U=C.useRef(null),J=C.useRef(null),K=C.useRef(!1);C.useEffect(()=>{c.length>0&&(f(V=>V||c[0].id),d(V=>V||Po(c,c[0].id)))},[c]),C.useEffect(()=>{x(V=>{var oe;return V&&n.some(le=>le.id===V)?V:((oe=n[0])==null?void 0:oe.id)||""})},[n]),C.useEffect(()=>{v(V=>{var oe;return V&&r.some(le=>le.taskId===V)?V:((oe=r[0])==null?void 0:oe.taskId)||""})},[r]);const j=C.useMemo(()=>Kg(t),[t]),O=C.useMemo(()=>new Set(j.map(V=>V.id)),[j]),Q=C.useMemo(()=>Qg(t,O),[t,O]),Z=n.find(V=>V.id===w)||null,W=((ze=k.find(V=>V.id===z))==null?void 0:ze.data.workflowNode)||j[0]||null;C.useEffect(()=>{L(V=>Jg(j,e,V))},[j,e,L]),C.useEffect(()=>{X(ep(Q))},[Q,X]),C.useEffect(()=>{!K.current&&k.length>0&&J.current&&(K.current=!0,requestAnimationFrame(()=>{var V;return(V=J.current)==null?void 0:V.fitView({padding:.28,duration:220})}))},[k.length]);const q=C.useMemo(()=>({wfNode:rp}),[]),ee=V=>{f(V),d(Po(c,V))},te=async()=>{if(w){B(!0),s(null);try{const V=await vr("/api/workflow/run",{method:"POST",body:JSON.stringify({workflowId:l,runtime:w,subagentMode:h,ceoPrompt:u,model:N,taskId:m?p:null})});Be("/api/workflow"),Be("/api/sessions"),await a(!0),e(V.sessionId)}catch(V){s((V==null?void 0:V.message)||"Failed to run workflow")}finally{B(!1)}}},ne=async()=>{if(!(!w||h!=="wf-subagents")){y(!0),s(null);try{const V=await vr("/api/sessions",{method:"POST",body:JSON.stringify({runtime:w,model:N,taskId:m?p:null,role:"wf-subagent",objective:I,subagentMode:"wf-subagents",workflowMode:"wf"})});Be("/api/workflow"),Be("/api/sessions"),await a(!0),e(V.sessionId)}catch(V){s((V==null?void 0:V.message)||"Failed to create agent node")}finally{y(!1)}}},se=C.useCallback(V=>{X(oe=>Ui({...V,id:`manual-${V.source}-${V.target}-${Date.now()}`,type:"smoothstep",label:"manual",markerEnd:{type:ot.ArrowClosed,color:"#111"},style:{stroke:"#111",strokeWidth:1.6},labelStyle:{fill:"#111",fontSize:10,fontWeight:600},labelBgStyle:{fill:"rgba(255,255,255,0.82)"}},oe))},[X]),ue=V=>{var le;V.preventDefault();const oe=(le=U.current)==null?void 0:le.getBoundingClientRect();oe&&P({x:Math.max(8,Math.min(V.clientX-oe.left,oe.width-190)),y:Math.max(8,Math.min(V.clientY-oe.top,oe.height-116))})},fe=(V,oe)=>{V.preventDefault(),P(null),F(oe.id),E(!0)},pe=(V,oe)=>{P(null),F(oe.id)},me=()=>{var V;P(null),(V=J.current)==null||V.fitView({padding:.28,duration:220})};return o?b.jsx(Pa,{label:"Loading workflow canvas",fullCanvas:!0}):b.jsx("div",{ref:U,className:"wf-canvas-shell",style:{height:"100%",minHeight:0},children:b.jsxs(yg,{className:"wf-flow","data-testid":"workflow-canvas",nodes:k,edges:D,nodeTypes:q,onNodesChange:H,onEdgesChange:Y,onConnect:se,onInit:V=>{J.current=V},onPaneClick:()=>P(null),onPaneContextMenu:ue,onNodeClick:pe,onNodeDoubleClick:fe,onNodeContextMenu:fe,fitView:!0,minZoom:.3,maxZoom:1.7,panOnDrag:!0,panOnScroll:!0,selectionOnDrag:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!1,edgesFocusable:!1,defaultEdgeOptions:{type:"smoothstep"},proOptions:{hideAttribution:!0},children:[b.jsx(Eg,{color:"#e5e7eb",gap:32,size:1}),b.jsx($g,{position:"bottom-right",showInteractive:!1}),b.jsx(Xg,{position:"bottom-left",pannable:!0,zoomable:!0,nodeStrokeWidth:3,nodeColor:V=>Yn(V.data.workflowNode.status),style:{width:142,height:96,borderRadius:6,border:"1px solid var(--border)",background:"rgba(255,255,255,0.84)"}}),i&&b.jsx(je,{position:"top-center",children:b.jsx("div",{"data-canvas-control":"true",style:{fontSize:11,color:"#991b1b",padding:"6px 8px",background:"#fef2f2",borderRadius:"var(--radius)",border:"1px solid #fecaca"},children:i})}),b.jsx(je,{position:"top-left",children:b.jsxs("aside",{"data-canvas-control":"true",className:"nodrag nopan nowheel",style:{...Vt,width:292,maxHeight:"calc(100vh - var(--header-h) - 32px)",overflow:"auto",padding:12},children:[b.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:10},children:[b.jsx(Da,{size:14}),b.jsxs("div",{children:[b.jsx("div",{style:{fontSize:12,fontWeight:700},children:"Built-in Workflows"}),b.jsx("div",{style:{fontSize:10,color:"var(--muted)"},children:(t==null?void 0:t.workflowId)||"workflow-none"})]})]}),b.jsx("div",{style:{display:"grid",gap:5,marginBottom:10},children:c.map(V=>b.jsxs("button",{onClick:()=>ee(V.id),style:{textAlign:"left",border:`1px solid ${l===V.id?"#111":"var(--border)"}`,borderRadius:"var(--radius)",padding:8,background:l===V.id?"var(--surface)":"var(--bg)"},children:[b.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:8},children:[b.jsx("span",{style:{fontSize:11,fontWeight:700},children:V.label}),b.jsx("span",{style:{fontSize:9,color:"var(--muted)"},children:V.command})]}),b.jsx("div",{style:{fontSize:10,color:"var(--muted)",marginTop:2},children:V.description})]},V.id))}),b.jsxs("label",{style:{fontSize:10,color:"var(--muted)",display:"grid",gap:4,marginBottom:10},children:["CEO Prompt",b.jsx("textarea",{value:u,onChange:V=>d(V.target.value),style:{minHeight:112,resize:"vertical",padding:8,fontSize:11,lineHeight:1.45,border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg)"}})]}),b.jsx("div",{style:{fontSize:10,color:"var(--muted)",fontWeight:700,textTransform:"uppercase",marginBottom:5},children:"Subagents"}),b.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",border:"1px solid var(--border)",borderRadius:"var(--radius)",overflow:"hidden",marginBottom:10},children:((t==null?void 0:t.subagentModes)||[{id:"built-in-subagents",label:"Built-in"},{id:"wf-subagents",label:"WF Terminals"}]).map(V=>b.jsx("button",{onClick:()=>g(V.id),style:{padding:"6px 4px",fontSize:10,fontWeight:h===V.id?700:500,background:h===V.id?"#111":"var(--bg)",color:h===V.id?"#fff":"var(--muted)"},children:V.label},V.id))}),b.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:7,marginBottom:10},children:[b.jsxs("label",{style:{fontSize:10,color:"var(--muted)",display:"grid",gap:3},children:["Runtime",b.jsx("select",{value:w,onChange:V=>x(V.target.value),style:{minWidth:0,padding:"6px 7px",fontSize:11,border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg)"},children:n.map(V=>b.jsx("option",{value:V.id,children:V.label},V.id))})]}),b.jsxs("label",{style:{fontSize:10,color:"var(--muted)",display:"grid",gap:3},children:["Model",b.jsx("input",{value:N,onChange:V=>S(V.target.value),placeholder:"optional",style:{minWidth:0,padding:"6px 7px",fontSize:11,border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg)"}})]})]}),b.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:10,color:"var(--muted)",marginBottom:8},children:[b.jsx("input",{type:"checkbox",checked:m,onChange:V=>_(V.target.checked)}),"Bind a task"]}),m&&b.jsx("select",{value:p,onChange:V=>v(V.target.value),style:{width:"100%",padding:"6px 7px",fontSize:11,border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg)",marginBottom:10},children:r.map(V=>b.jsx("option",{value:V.taskId,children:V.taskId},V.taskId))}),b.jsxs("button",{onClick:te,disabled:!Z||T,style:{width:"100%",padding:"8px 10px",borderRadius:"var(--radius)",background:"#111",color:"#fff",fontSize:11,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",gap:5,opacity:!Z||T?.5:1},children:[b.jsx(Ta,{size:12})," Run /wf"]}),h==="wf-subagents"&&b.jsxs("div",{style:{borderTop:"1px solid var(--border)",marginTop:12,paddingTop:12},children:[b.jsxs("label",{style:{fontSize:10,color:"var(--muted)",display:"grid",gap:3,marginBottom:7},children:["New Agent Objective",b.jsx("input",{value:I,onChange:V=>$(V.target.value),style:{padding:"6px 7px",fontSize:11,border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg)"}})]}),b.jsxs("button",{onClick:ne,disabled:!Z||R,style:{width:"100%",padding:"7px 10px",borderRadius:"var(--radius)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--fg)",fontSize:11,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",gap:5,opacity:!Z||R?.5:1},children:[b.jsx(br,{size:12})," Agent Node"]})]})]})}),b.jsx(je,{position:"top-right",children:b.jsxs("div",{"data-canvas-control":"true",className:"nodrag nopan",style:{display:"flex",gap:8,alignItems:"center"},children:[b.jsxs("div",{style:{...Vt,padding:"6px 10px",fontSize:11,fontWeight:700,color:"var(--muted)",display:"flex",alignItems:"center",gap:5},children:[b.jsx(Ha,{size:13})," WF Canvas"]}),b.jsx("button",{onClick:()=>a(!0),title:"Refresh workflow",style:{width:30,height:30,display:"grid",placeItems:"center",border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"rgba(255,255,255,0.9)",color:"var(--muted)"},children:b.jsx(ja,{size:13})}),b.jsx("button",{title:"Fit view",onClick:me,style:{width:30,height:30,display:"grid",placeItems:"center",border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"rgba(255,255,255,0.9)",color:"var(--muted)"},children:b.jsx(_r,{size:13})})]})}),A&&b.jsxs("div",{"data-canvas-control":"true","data-testid":"workflow-context-menu",className:"nodrag nopan",style:{...Vt,position:"absolute",zIndex:12,left:A.x,top:A.y,width:178,padding:6,cursor:"default"},children:[b.jsxs("button",{onClick:()=>{P(null),ne()},disabled:!Z||h!=="wf-subagents"||R,style:{width:"100%",padding:"7px 8px",borderRadius:"var(--radius)",display:"flex",alignItems:"center",gap:7,color:"var(--fg)",fontSize:11,fontWeight:600,opacity:!Z||h!=="wf-subagents"||R?.5:1},children:[b.jsx(br,{size:12})," New Agent Node"]}),b.jsxs("button",{onClick:me,style:{width:"100%",padding:"7px 8px",borderRadius:"var(--radius)",display:"flex",alignItems:"center",gap:7,color:"var(--muted)",fontSize:11},children:[b.jsx(_r,{size:12})," Fit View"]})]}),M&&W&&b.jsx(je,{position:"bottom-right",children:b.jsxs("aside",{"data-canvas-control":"true",className:"nodrag nopan nowheel",style:{...Vt,width:292,padding:12,cursor:"default"},children:[b.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,marginBottom:8},children:[b.jsxs("div",{children:[b.jsx("div",{style:{fontSize:12,fontWeight:700},children:W.label}),b.jsx("div",{style:{fontSize:10,color:"var(--muted)"},children:W.id})]}),b.jsx("button",{onClick:()=>E(!1),style:{fontSize:10,color:"var(--muted)",border:"1px solid var(--border)",borderRadius:"var(--radius)",padding:"3px 8px"},children:"Close"})]}),b.jsxs("dl",{style:{display:"grid",gridTemplateColumns:"76px 1fr",gap:"5px 8px",fontSize:10,marginBottom:10},children:[b.jsx("dt",{style:{color:"var(--muted)"},children:"Kind"}),b.jsx("dd",{children:W.kind}),b.jsx("dt",{style:{color:"var(--muted)"},children:"Status"}),b.jsx("dd",{style:{color:Yn(W.status)},children:W.status||"unknown"}),W.runtime&&b.jsxs(b.Fragment,{children:[b.jsx("dt",{style:{color:"var(--muted)"},children:"Runtime"}),b.jsx("dd",{children:W.runtime})]}),W.model&&b.jsxs(b.Fragment,{children:[b.jsx("dt",{style:{color:"var(--muted)"},children:"Model"}),b.jsx("dd",{children:W.model})]}),W.taskId&&b.jsxs(b.Fragment,{children:[b.jsx("dt",{style:{color:"var(--muted)"},children:"Task"}),b.jsx("dd",{children:W.taskId})]}),W.peerId&&b.jsxs(b.Fragment,{children:[b.jsx("dt",{style:{color:"var(--muted)"},children:"Peer"}),b.jsx("dd",{children:Zg(W.peerId)})]})]}),W.sessionId?b.jsxs("button",{onClick:()=>e(W.sessionId),style:{width:"100%",padding:"7px 10px",borderRadius:"var(--radius)",background:"#111",color:"#fff",fontSize:11,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",gap:5},children:[b.jsx(Ro,{size:12})," Open Terminal"]}):b.jsx("div",{style:{fontSize:10,color:"var(--muted)"},children:"Use the left panel or right-click canvas to create a WF terminal node."})]})})]})})}function rp({data:e,selected:t}){const n=e.workflowNode,r=Ug(n.kind),o=Yn(n.status);return b.jsxs("div",{"data-testid":"workflow-node",style:{width:Ue,minHeight:ht,border:`1px solid ${t?o:"var(--border)"}`,borderLeft:`3px solid ${o}`,borderRadius:"var(--radius)",background:t?"#fff":"rgba(255,255,255,0.92)",boxShadow:t?"0 10px 24px rgba(0,0,0,0.10)":"0 4px 14px rgba(0,0,0,0.06)",textAlign:"left",padding:9,display:"grid",alignContent:"start",gap:4,color:"var(--fg)"},children:[b.jsx(ct,{className:"wf-flow-handle",type:"target",position:G.Top}),b.jsx(ct,{className:"wf-flow-handle",type:"source",position:G.Bottom}),b.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[b.jsx(r,{size:14}),b.jsx("span",{style:{fontSize:12,fontWeight:700,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.label})]}),b.jsx("div",{style:{fontSize:10,color:o},children:n.status||"unknown"}),b.jsxs("div",{style:{fontSize:10,color:"var(--muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[n.runtime||n.kind,n.model?` / ${n.model}`:""]}),n.sessionId&&b.jsx("button",{className:"nodrag nopan",onClick:i=>{i.stopPropagation(),e.onOpenSession(n.sessionId)},style:{fontSize:10,color:"var(--fg)",textDecoration:"underline",justifySelf:"start",alignSelf:"end"},children:"terminal"})]})}export{lp as default};
39
+ //# sourceMappingURL=WorkflowRoute-C-clKe-j.js.map