@cuongtran001/kanna 1.63.2 → 1.63.3

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 (199) hide show
  1. package/README.md +5 -9
  2. package/dist/client/assets/{BoardsPage-BJalB-bc.js → BoardsPage-AckCuswi.js} +1 -1
  3. package/dist/client/assets/BoardsRoutePage-DzKwKy3f.js +1 -0
  4. package/dist/client/assets/ChatPage-DsaH8CTz.js +93 -0
  5. package/dist/client/assets/{CronJobRow-CPbO_jwU.js → CronJobRow-Bx9gRqKW.js} +1 -1
  6. package/dist/client/assets/{CronJobsPage-Ck3SNgGi.js → CronJobsPage-v0-2X1oX.js} +1 -1
  7. package/dist/client/assets/{FilePreviewSheet-XEuUtDPn.js → FilePreviewSheet-B6SDxSD0.js} +2 -2
  8. package/dist/client/assets/{FlowSurface-BCbeMTJe.js → FlowSurface-CLC-ZFar.js} +1 -1
  9. package/dist/client/assets/{GenUIBlock-BJy_dfs-.js → GenUIBlock-CC79Ujro.js} +2 -2
  10. package/dist/client/assets/{KannaSocketProvider-D7Lzlt35.js → KannaSocketProvider-B2sHsWP5.js} +1 -1
  11. package/dist/client/assets/{LocalProjectsPage-9LJkQjhT.js → LocalProjectsPage-DYBkcEAm.js} +1 -1
  12. package/dist/client/assets/SettingsPage-CZqMkMRW.js +9 -0
  13. package/dist/client/assets/{StackBoardsRoutePage-t_EaFNG4.js → StackBoardsRoutePage-Clviz0hX.js} +1 -1
  14. package/dist/client/assets/{ToolCallMessage-RbF9XT2B.js → ToolCallMessage-BfNbWGmc.js} +1 -1
  15. package/dist/client/assets/{VChartSurface-CKuPelsn.js → VChartSurface-CUbxyBo3.js} +1 -1
  16. package/dist/client/assets/{WorkflowsPage-B6qUmQA3.js → WorkflowsPage-rengzb97.js} +1 -1
  17. package/dist/client/assets/{WorkflowsSection-DxO0S4An.js → WorkflowsSection-DuXdLsMO.js} +1 -1
  18. package/dist/client/assets/{chart-renderer-DjYZvNxh.js → chart-renderer-D7ukB2wg.js} +1 -1
  19. package/dist/client/assets/{chatSounds-FD2DQzF6.js → chatSounds-BLg2xPDZ.js} +1 -1
  20. package/dist/client/assets/chevron-left-RbFvmeyK.js +1 -0
  21. package/dist/client/assets/{clipboard.adapter-GN9nnYak.js → clipboard.adapter-CgdNwn-1.js} +1 -1
  22. package/dist/client/assets/{columnStyle-DjA7hA9k.js → columnStyle-CMCF0ds6.js} +1 -1
  23. package/dist/client/assets/{createScopedStore-BoLB9Rhc.js → createScopedStore-BrD5NHWx.js} +1 -1
  24. package/dist/client/assets/{dist-CimtOoGK.js → dist-DNSTHlSo.js} +1 -1
  25. package/dist/client/assets/editor-icons-DY4uKeEY.js +1 -0
  26. package/dist/client/assets/{ellipsis-Cd7sO0LO.js → ellipsis-OHg0x_x1.js} +1 -1
  27. package/dist/client/assets/{flow-kinds-CW2TU_83.js → flow-kinds-Ki2DP9nP.js} +1 -1
  28. package/dist/client/assets/{folder-C7sXCaHj.js → folder-CnWzWIG5.js} +1 -1
  29. package/dist/client/assets/{formatters-wSVyvDFZ.js → formatters-BGORekd-.js} +1 -1
  30. package/dist/client/assets/{genui-EzBIAYFE.js → genui-C9i6j0XZ.js} +1 -1
  31. package/dist/client/assets/{globe-xmRpmpma.js → globe-BjR1tyE4.js} +1 -1
  32. package/dist/client/assets/{host-DCaA9W-Z.js → host-D9tJwZXl.js} +1 -1
  33. package/dist/client/assets/{index-CDqjh7nt.js → index-CesRxZ0X.js} +7 -7
  34. package/dist/client/assets/index-CxDE9VOy.css +1 -0
  35. package/dist/client/assets/{info-D4MMvZFe.js → info-DNYekoE-.js} +1 -1
  36. package/dist/client/assets/{input-C4fvDiQ4.js → input-DgW9uRZN.js} +1 -1
  37. package/dist/client/assets/{lexicalToReact-sPUyOWk6.js → lexicalToReact-CZvp9Pgz.js} +3 -3
  38. package/dist/client/assets/{log-aTaDVF_e.js → log-DnEvbp3E.js} +1 -1
  39. package/dist/client/assets/{monitor-_CRKcV1h.js → monitor-qbWfUdBG.js} +1 -1
  40. package/dist/client/assets/{pencil-fNBeUUCf.js → pencil-C965rrpd.js} +1 -1
  41. package/dist/client/assets/{pendingActionsStore-COTh4Ztq.js → pendingActionsStore-CxhI19V9.js} +1 -1
  42. package/dist/client/assets/{play-BAmkJfn6.js → play-uofLR7yT.js} +1 -1
  43. package/dist/client/assets/{plus-c75CkNEO.js → plus-D4CI6rj1.js} +1 -1
  44. package/dist/client/assets/{popover-CHM4skzh.js → popover-Bc646hKn.js} +1 -1
  45. package/dist/client/assets/{pushClient-BJH_ITRB.js → pushClient-CxnHu9h4.js} +1 -1
  46. package/dist/client/assets/runDetached-DfQXHAaY.js +1 -0
  47. package/dist/client/assets/{segmented-control-DNOwRupT.js → segmented-control-CKGX29Kl.js} +1 -1
  48. package/dist/client/assets/{select-dLHiAls6.js → select-BjeajpVt.js} +1 -1
  49. package/dist/client/assets/{settings-header-button-CGKCzFyk.js → settings-header-button-BYvHR6Xl.js} +1 -1
  50. package/dist/client/assets/{sidebarPendingActions-Dyp80Lv_.js → sidebarPendingActions-xgMTnfRY.js} +1 -1
  51. package/dist/client/assets/{square-pen-B1IxmScM.js → square-pen-DmppQdTd.js} +1 -1
  52. package/dist/client/assets/{state-mark-BhTZfcYe.js → state-mark-C3kEL1hX.js} +1 -1
  53. package/dist/client/assets/{status-pill-CwhJhaMy.js → status-pill-Bo1Nb6HX.js} +1 -1
  54. package/dist/client/assets/{terminal-Bnj7qFGw.js → terminal-DfCF-J4p.js} +1 -1
  55. package/dist/client/assets/{timer.adapter-DHt2zwsL.js → timer.adapter-C2RhP4d6.js} +1 -1
  56. package/dist/client/assets/{tools-3gJcj3hK.js → tools-t5T_3UBg.js} +1 -1
  57. package/dist/client/assets/{triangle-alert-CWrc0CIO.js → triangle-alert-CYQhobyY.js} +1 -1
  58. package/dist/client/assets/useAppGlobalState-DUa3pkCF.js +1 -0
  59. package/dist/client/assets/useKannaState-FcieR5qb.js +5 -0
  60. package/dist/client/assets/useTheme-D9sKDPEm.js +1 -0
  61. package/dist/client/index.html +35 -35
  62. package/package.json +2 -2
  63. package/src/server/agent-coordinator-types.ts +0 -6
  64. package/src/server/agent-coordinator.ts +6 -45
  65. package/src/server/agent.compaction.test.ts +1 -13
  66. package/src/server/agent.oauth-account-info.test.ts +0 -3
  67. package/src/server/agent.oauth-release.test.ts +0 -2
  68. package/src/server/agent.oauth-rotation.test.ts +0 -9
  69. package/src/server/agent.oauth-token-share-cap.test.ts +0 -1
  70. package/src/server/agent.openrouter-model.test.ts +0 -2
  71. package/src/server/agent.openrouter-watchdog.test.ts +0 -3
  72. package/src/server/agent.sdk-workflow-register.test.ts +2 -64
  73. package/src/server/agent.test.ts +1 -319
  74. package/src/server/app-settings.test.ts +14 -17
  75. package/src/server/app-settings.ts +22 -37
  76. package/src/server/auto-continue/e2e.test.ts +0 -1
  77. package/src/server/background-task-output-registry.test.ts +1 -1
  78. package/src/server/background-task-output-registry.ts +1 -1
  79. package/src/server/claude-cancel-handler.test.ts +0 -58
  80. package/src/server/claude-cancel-handler.ts +1 -17
  81. package/src/server/claude-harness-stream.test.ts +134 -0
  82. package/src/server/{claude-pty/jsonl-path.test.ts → claude-projects-path.adapter.test.ts} +1 -19
  83. package/src/server/{claude-pty/jsonl-path.adapter.ts → claude-projects-path.adapter.ts} +0 -11
  84. package/src/server/claude-send-command.test.ts +0 -1
  85. package/src/server/claude-session-config-helpers.test.ts +1 -90
  86. package/src/server/claude-session-config-helpers.ts +1 -38
  87. package/src/server/claude-session-error-handler.test.ts +0 -1
  88. package/src/server/claude-session-lifecycle.test.ts +2 -36
  89. package/src/server/claude-session-lifecycle.ts +2 -8
  90. package/src/server/claude-session-runner.test.ts +8 -36
  91. package/src/server/claude-session-runner.ts +1 -26
  92. package/src/server/claude-session-spawner.test.ts +5 -64
  93. package/src/server/claude-session-spawner.ts +49 -115
  94. package/src/server/claude-session-start.test.ts +1 -14
  95. package/src/server/claude-session-start.ts +0 -8
  96. package/src/server/claude-session-state-queries.test.ts +1 -2
  97. package/src/server/claude-session-state.test.ts +0 -1
  98. package/src/server/claude-session-state.ts +0 -4
  99. package/src/server/claude-subagent-wiring.test.ts +2 -68
  100. package/src/server/claude-subagent-wiring.ts +3 -50
  101. package/src/server/claude-turn-starter-types.ts +0 -3
  102. package/src/server/claude-turn-starter.test.ts +0 -28
  103. package/src/server/claude-turn-starter.ts +0 -5
  104. package/src/server/event-store.test.ts +0 -2
  105. package/src/server/events.ts +1 -2
  106. package/src/server/harness-types.ts +1 -2
  107. package/src/server/import-subagent-drill.e2e.test.ts +1 -1
  108. package/src/server/imported-subagents-dir.test.ts +1 -1
  109. package/src/server/imported-subagents-dir.ts +1 -1
  110. package/src/server/kanna-mcp.test.ts +0 -75
  111. package/src/server/kanna-mcp.ts +1 -47
  112. package/src/server/server.test.ts +5 -7
  113. package/src/server/server.ts +2 -18
  114. package/src/server/subagent-orchestrator.test.ts +0 -1
  115. package/src/server/subagent-provider-run.test.ts +48 -10
  116. package/src/server/subagent-provider-run.ts +12 -3
  117. package/src/server/tool-callback.test.ts +1 -1
  118. package/src/server/ws-router-agent-ctrl.test.ts +0 -45
  119. package/src/server/ws-router-agent-ctrl.ts +1 -31
  120. package/src/server/ws-router-broadcast.ts +0 -27
  121. package/src/server/ws-router-defaults.test.ts +2 -3
  122. package/src/server/ws-router-defaults.ts +2 -3
  123. package/src/server/ws-router-envelope.ts +0 -15
  124. package/src/server/ws-router-observability.test.ts +1 -1
  125. package/src/server/ws-router-settings.test.ts +2 -2
  126. package/src/server/ws-router.test.ts +2 -2
  127. package/src/server/ws-router.ts +0 -8
  128. package/src/shared/app-settings-types.ts +9 -20
  129. package/src/shared/claude-api-error-classification.ts +1 -1
  130. package/src/shared/protocol.ts +1 -11
  131. package/dist/client/assets/BoardsRoutePage-BTTjJX-Y.js +0 -1
  132. package/dist/client/assets/ChatPage-DH8wtQyD.js +0 -93
  133. package/dist/client/assets/SettingsPage-CKrZ6dGQ.js +0 -9
  134. package/dist/client/assets/chevron-left-CJ0qv9kF.js +0 -1
  135. package/dist/client/assets/editor-icons-CONDQZof.js +0 -1
  136. package/dist/client/assets/index-C-UYaDk6.css +0 -1
  137. package/dist/client/assets/runDetached-DqQ3k2ji.js +0 -1
  138. package/dist/client/assets/useAppGlobalState-DKOGrO5l.js +0 -1
  139. package/dist/client/assets/useKannaState-D7R_-dM6.js +0 -5
  140. package/dist/client/assets/useTheme-B57LIKyx.js +0 -1
  141. package/src/server/agent.pty-rotation.test.ts +0 -322
  142. package/src/server/claude-pty/auth.test.ts +0 -38
  143. package/src/server/claude-pty/auth.ts +0 -17
  144. package/src/server/claude-pty/claude-session-registry.adapter.ts +0 -68
  145. package/src/server/claude-pty/claude-session-registry.test.ts +0 -149
  146. package/src/server/claude-pty/driver.test.ts +0 -1153
  147. package/src/server/claude-pty/driver.ts +0 -829
  148. package/src/server/claude-pty/env.test.ts +0 -79
  149. package/src/server/claude-pty/env.ts +0 -20
  150. package/src/server/claude-pty/jsonl-to-event.test.ts +0 -882
  151. package/src/server/claude-pty/jsonl-to-event.ts +0 -357
  152. package/src/server/claude-pty/parity-matrix.test.ts +0 -437
  153. package/src/server/claude-pty/pid-registry.adapter.ts +0 -164
  154. package/src/server/claude-pty/pid-registry.test.ts +0 -178
  155. package/src/server/claude-pty/preflight/binary-fingerprint.adapter.ts +0 -20
  156. package/src/server/claude-pty/preflight/binary-fingerprint.test.ts +0 -32
  157. package/src/server/claude-pty/pty-instance-registry.test.ts +0 -208
  158. package/src/server/claude-pty/pty-instance-registry.ts +0 -172
  159. package/src/server/claude-pty/pty-memory-sampler.adapter.test.ts +0 -103
  160. package/src/server/claude-pty/pty-memory-sampler.adapter.ts +0 -86
  161. package/src/server/claude-pty/pty-process.adapter.ts +0 -60
  162. package/src/server/claude-pty/pty-process.test.ts +0 -49
  163. package/src/server/claude-pty/resolve-binary.adapter.ts +0 -106
  164. package/src/server/claude-pty/resolve-binary.test.ts +0 -118
  165. package/src/server/claude-pty/runtime-dir.adapter.ts +0 -19
  166. package/src/server/claude-pty/sandbox/detect.adapter.ts +0 -17
  167. package/src/server/claude-pty/sandbox/detect.test.ts +0 -17
  168. package/src/server/claude-pty/sandbox/platform.test.ts +0 -35
  169. package/src/server/claude-pty/sandbox/platform.ts +0 -27
  170. package/src/server/claude-pty/sandbox/preflight-io.adapter.ts +0 -14
  171. package/src/server/claude-pty/sandbox/preflight.test.ts +0 -69
  172. package/src/server/claude-pty/sandbox/preflight.ts +0 -44
  173. package/src/server/claude-pty/sandbox/profile-linux.adapter.ts +0 -63
  174. package/src/server/claude-pty/sandbox/profile-linux.test.ts +0 -90
  175. package/src/server/claude-pty/sandbox/profile-macos.adapter.ts +0 -72
  176. package/src/server/claude-pty/sandbox/profile-macos.test.ts +0 -68
  177. package/src/server/claude-pty/sandbox/wrap.adapter.ts +0 -58
  178. package/src/server/claude-pty/sandbox/wrap.test.ts +0 -82
  179. package/src/server/claude-pty/settings-writer.adapter.ts +0 -23
  180. package/src/server/claude-pty/settings-writer.test.ts +0 -22
  181. package/src/server/claude-pty/smoke-test-io.adapter.ts +0 -28
  182. package/src/server/claude-pty/smoke-test.test.ts +0 -199
  183. package/src/server/claude-pty/smoke-test.ts +0 -182
  184. package/src/server/claude-pty/tui-control.test.ts +0 -300
  185. package/src/server/claude-pty/tui-control.ts +0 -174
  186. package/src/server/claude-pty/tui-source.adapter.test.ts +0 -374
  187. package/src/server/claude-pty/tui-source.adapter.ts +0 -294
  188. package/src/server/http-server.adapter.test.ts +0 -18
  189. package/src/server/http-server.adapter.ts +0 -39
  190. package/src/server/kanna-mcp-http.test.ts +0 -274
  191. package/src/server/kanna-mcp-http.ts +0 -194
  192. package/src/server/kanna-mcp-tools/ask-user-question.test.ts +0 -108
  193. package/src/server/kanna-mcp-tools/ask-user-question.ts +0 -55
  194. package/src/server/kanna-mcp-tools/exit-plan-mode.test.ts +0 -61
  195. package/src/server/kanna-mcp-tools/exit-plan-mode.ts +0 -49
  196. package/src/server/mcp-zod-compat.adapter.ts +0 -20
  197. package/src/shared/pty-instance.ts +0 -43
  198. /package/src/server/{claude-pty/output-ring.test.ts → output-ring.test.ts} +0 -0
  199. /package/src/server/{claude-pty/output-ring.ts → output-ring.ts} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-DiVRNtpo.js";import{t as n}from"./jsx-runtime-BdxMnOeJ.js";import{f as r}from"./log-aTaDVF_e.js";import{a as i,c as a,f as o,n as s,r as c,s as l,t as u}from"./pendingActionsStore-COTh4Ztq.js";import{a as d,c as f,n as p,o as m,r as h,s as g}from"./KannaSocketProvider-D7Lzlt35.js";import{f as _,l as v,p as y}from"./pushClient-BJH_ITRB.js";import{t as b}from"./pencil-fNBeUUCf.js";import{t as x}from"./play-BAmkJfn6.js";import{a as S,g as C,i as w,n as T,o as E,r as D,u as O}from"./timer.adapter-DHt2zwsL.js";import{t as k}from"./segmented-control-DNOwRupT.js";import{t as A}from"./createScopedStore-BoLB9Rhc.js";import{t as j}from"./input-C4fvDiQ4.js";import{r as M,t as N}from"./formatDuration-BbWTR_M_.js";var P={name:`pause`,size:24,node:[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]};P.node;var ee=o(P),F=e(t(),1);function I(e){for(let t of e.recentRuns)if(t.status!==`skipped`)return t.status===`running`;return!1}var L={"@hourly":`0 * * * *`,"@daily":`0 0 * * *`,"@weekly":`0 0 * * 0`,"@monthly":`0 0 1 * *`},R=Object.keys(L),z=[{name:`minute`,min:0,max:59},{name:`hour`,min:0,max:23},{name:`day-of-month`,min:1,max:31},{name:`month`,min:1,max:12,names:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}},{name:`day-of-week`,min:0,max:7,names:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},normalize:e=>e===7?0:e}],B={name:`second`,min:0,max:59},V={s:1e3,m:6e4,h:36e5};function H(e){let t=e.trim();if(t===``)return{ok:!1,part:`schedule`,message:"missing schedule — expected 5- or 6-field cron, @shortcut, or `every <N>s|m|h`"};let n=t.split(/\s+/);return n[0].startsWith(`@`)?U(n):n[0].toLowerCase()===`every`?ne(n):W(n)}function U(e){let t=e[0].toLowerCase(),n=L[t];if(n===void 0){let n=te(t);return{ok:!1,part:`schedule`,message:`unknown shortcut "${e[0]}" — valid shortcuts are ${R.join(`, `)}`,correctedSchedule:n??void 0}}if(e.length>1)return{ok:!1,part:`schedule`,message:`${t} takes no extra tokens (got "${e.slice(1).join(` `)}")`,correctedSchedule:t};let r=W(n.split(` `));if(!r.ok)throw Error(`builtin shortcut ${t} failed to parse: ${r.message}`);return r}function te(e){let t=null,n=4;for(let r of R){let i=oe(e,r,n);i<n&&(t=r,n=i)}return t}function ne(e){if(e.length===1)return{ok:!1,part:`schedule`,message:"missing interval after `every` — expected e.g. `every 30s`, `every 5m`, or `every 2h`"};let t=e.length===3?e[1]+e[2]:e[1];if(e.length>3||e.length===3&&!re(t))return{ok:!1,part:`schedule`,message:`expected exactly \`every <N>s|m|h\`, got "${e.join(` `)}"`};let n=/^(\d+)(s|m|h)$/.exec(t);if(n){let r=Number.parseInt(n[1],10);if(r<1)return{ok:!1,part:`schedule`,message:`interval must be at least 1`,correctedSchedule:`every 1${n[2]}`};let i=V[n[2]],a=e.length===3?`every ${t}`:void 0;return a===void 0?{ok:!0,schedule:{type:`interval`,ms:r*i}}:{ok:!1,part:`schedule`,message:`interval "${e.slice(1).join(` `)}" has a stray space`,correctedSchedule:a}}let r=/^(\d+)\s*(min|mins|minute|minutes|m|hr|hrs|hour|hours|h|s|sec|secs|second|seconds|d|day|days)$/i.exec(t);if(r){let e=r[1],t=r[2].toLowerCase();if(t.startsWith(`d`))return{ok:!1,part:`schedule`,message:`use @daily instead of "every ${e}${t}"`,correctedSchedule:`@daily`};let n=t[0];return{ok:!1,part:`schedule`,message:`interval unit "${t}" is not valid — use \`s\`, \`m\`, or \`h\``,correctedSchedule:`every ${e}${n}`}}return{ok:!1,part:`schedule`,message:`interval "${t}" is not valid — expected e.g. \`every 30s\`, \`every 5m\`, or \`every 2h\``}}function re(e){return/^\d+\s*[a-z]+$/i.test(e)}function W(e){let t=e.length===6;if(e.length!==5&&!t){let t=e.length===1&&/^\d+(s|m|h)$/.test(e[0]);return{ok:!1,part:`schedule`,message:`cron schedule has ${e.length} field${e.length===1?``:`s`}, expected 5 (minute hour day-of-month month day-of-week) or 6 with a leading second`,correctedSchedule:t?`every ${e[0]}`:ie(e)}}let n=t?[B,...z]:z,r=[];for(let t=0;t<n.length;t++){let i=ae(n[t],e[t]);if(!i.ok)return{ok:!1,part:`schedule_field`,message:i.message};r.push(i.field)}let i=+!!t;return{ok:!0,schedule:{type:`cron`,expression:e.join(` `),...t?{second:r[0]}:{},minute:r[i],hour:r[i+1],dom:r[i+2],month:r[i+3],dow:r[i+4]}}}function ie(e){if(e.length>=2&&e.length<=4){let t=[...e,...Array(5-e.length).fill(`*`)];return W(t).ok?t.join(` `):void 0}if(e.length===7){let t=e.slice(0,6);return W(t).ok?t.join(` `):void 0}}function ae(e,t){if(t===`*`)return{ok:!0,field:{kind:`any`}};let n=new Set;for(let r of t.split(`,`)){if(r===``)return{ok:!1,message:`${e.name} field "${t}" has an empty list entry`};let i=/^(\*|[A-Za-z]+|\d+)(?:-([A-Za-z]+|\d+))?(?:\/(\d+))?$/.exec(r);if(!i)return{ok:!1,message:`${e.name} field "${r}" is not valid — expected \`*\`, \`N\`, \`N-M\`, \`*/S\`, or \`N-M/S\``};let[,a,o,s]=i,c,l;if(a===`*`){if(o!==void 0)return{ok:!1,message:`${e.name} field "${r}" is not valid — \`*\` cannot be a range start`};c=e.min,l=e.max}else{let t=G(e,a);if(t===null)return{ok:!1,message:K(e,a)};if(c=t,o!==void 0){let t=G(e,o);if(t===null)return{ok:!1,message:K(e,o)};l=t}else l=c}if(c<e.min||c>e.max||l<e.min||l>e.max)return{ok:!1,message:`${e.name} field "${r}" is out of range ${e.min}-${e.max}`};if(l<c)return{ok:!1,message:`${e.name} field "${r}" has a range end below its start`};let u=1;if(s!==void 0){if(u=Number.parseInt(s,10),u<1)return{ok:!1,message:`${e.name} field "${r}" has a step of 0 — steps start at 1`};if(a!==`*`&&o===void 0)return{ok:!1,message:`${e.name} field "${r}" applies a step to a single value — use \`*/S\` or \`N-M/S\``}}for(let t=c;t<=l;t+=u)n.add(e.normalize?e.normalize(t):t)}return{ok:!0,field:{kind:`values`,values:[...n].sort((e,t)=>e-t)}}}function G(e,t){return/^\d+$/.test(t)?Number.parseInt(t,10):e.names?.[t.toLowerCase()]??null}function K(e,t){return/^\d+$/.test(t)?`${e.name} field "${t}" is out of range ${e.min}-${e.max}`:e.names?`${e.name} field "${t}" is not a valid ${e.name} name (${Object.keys(e.names).join(`, `)})`:`${e.name} field "${t}" is not a number`}function oe(e,t,n){if(Math.abs(e.length-t.length)>n)return n+1;let r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i++){let a=[i],o=i;for(let n=1;n<=t.length;n++){let s=e[i-1]===t[n-1]?0:1,c=Math.min(r[n]+1,a[n-1]+1,r[n-1]+s);a.push(c),c<o&&(o=c)}if(o>n)return n+1;r=a}return r[t.length]}var q=A(`CronJobEditDialog`,e=>t=>({instruction:e.instruction,scheduleText:e.scheduleText,mode:e.mode,setInstruction:e=>t({instruction:e}),setScheduleText:e=>t({scheduleText:e}),setMode:e=>t({mode:e})})),J=e(n(),1),se=[{value:`inline`,label:`inline`},{value:`spawn`,label:`spawn`}];function ce({job:e,open:t,onOpenChange:n,onSave:r}){let a=u(`cron.update`,e.jobId),o=c(a),l=q.useScopedStore(e=>e.instruction),d=q.useScopedStore(e=>e.scheduleText),f=q.useScopedStore(e=>e.mode),p=q.useScopedStore(e=>e.setInstruction),h=q.useScopedStore(e=>e.setScheduleText),v=q.useScopedStore(e=>e.setMode),y=(0,F.useMemo)(()=>H(d.trim()),[d]),b=(0,F.useMemo)(()=>{let t={},n=l.trim();n&&n!==e.instruction&&(t.instruction=n),f!==e.mode&&(t.mode=f);let r=d.trim();return y.ok&&r!==e.scheduleText&&(t.schedule=y.schedule,t.scheduleText=r),t},[l,e.instruction,e.mode,e.scheduleText,f,y,d]),x=l.trim().length===0,C=!x&&y.ok&&Object.keys(b).length>0,A=(0,F.useCallback)(()=>{y.ok||y.correctedSchedule===void 0||h(y.correctedSchedule)},[y,h]),M=(0,F.useCallback)(()=>{C&&s(a,async()=>{await r(b),n(!1)})},[C,n,r,b,a]),N=(0,F.useCallback)(()=>{n(!1)},[n]);return(0,J.jsx)(T,{open:t,onOpenChange:n,children:(0,J.jsxs)(w,{size:`lg`,children:[(0,J.jsxs)(D,{className:`space-y-4`,children:[(0,J.jsx)(O,{children:`Edit cron job`}),(0,J.jsxs)(S,{children:[(0,J.jsx)(`span`,{className:`font-mono`,children:e.jobId}),` — saving re-arms the job, which clears its run history and resets its created age.`]}),(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`label`,{htmlFor:`cron-edit-instruction`,className:`text-sm font-medium text-foreground`,children:`Instruction`}),(0,J.jsx)(_,{id:`cron-edit-instruction`,rows:4,value:l,onChange:e=>p(e.target.value)}),x?(0,J.jsx)(`p`,{className:`text-xs text-destructive`,children:`An instruction is required.`}):null]}),(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`label`,{htmlFor:`cron-edit-schedule`,className:`text-sm font-medium text-foreground`,children:`Schedule`}),(0,J.jsx)(j,{id:`cron-edit-schedule`,value:d,onChange:e=>h(e.target.value),placeholder:`0 9 * * 1, @daily, or every 5m`,className:`font-mono`}),y.ok?(0,J.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:m(y.schedule,d.trim())}):(0,J.jsx)(`p`,{className:`text-xs text-destructive`,children:y.message}),!y.ok&&y.correctedSchedule!==void 0?(0,J.jsxs)(i,{variant:`secondary`,size:`sm`,onClick:A,children:[`Use `,(0,J.jsx)(`span`,{className:`ml-1 font-mono`,children:y.correctedSchedule})]}):null]}),(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`span`,{className:`block text-sm font-medium text-foreground`,children:`Mode`}),(0,J.jsx)(k,{value:f,onValueChange:v,options:se,size:`sm`}),(0,J.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:g(f)})]})]}),(0,J.jsxs)(E,{children:[(0,J.jsx)(i,{variant:`ghost`,size:`sm`,onClick:N,children:`Cancel`}),(0,J.jsx)(i,{size:`sm`,onClick:M,disabled:!C,pending:o,children:`Save`})]})]})})}function le(e){return(0,J.jsx)(q.Provider,{init:e.job,children:(0,J.jsx)(ce,{...e})})}var Y=A(`CronJobRow`,()=>e=>({editing:!1,openEditor:()=>e({editing:!0}),setEditing:t=>e({editing:t})})),X=`rounded-md p-1.5 text-muted-foreground hover:bg-muted/40 hover:text-foreground`,Z=`cannot edit while a run is in flight`;function Q(e,t,n){return u(e,t,n)}async function $(e,t){if(e)try{await e.command(t),v.getState().setCommandError(null)}catch(e){throw v.getState().setCommandError(r(e)),e}}function ue({job:e,chatId:t,trailing:n,divider:r}){let i=f(1e3),o=p(),u=Y.useScopedStore(e=>e.editing),g=Y.useScopedStore(e=>e.openEditor),_=Y.useScopedStore(e=>e.setEditing),v=Q(`cron.pause`,t,e.jobId),S=Q(`cron.resume`,t,e.jobId),w=Q(`cron.remove`,t,e.jobId),T=c(v),E=c(S),D=c(w),O=(0,F.useCallback)(e=>{s(Q(e.type,e.chatId,e.jobId),()=>$(o,e))},[o]),k=(0,F.useCallback)(()=>{O({type:`cron.pause`,chatId:t,jobId:e.jobId})},[t,e.jobId,O]),A=(0,F.useCallback)(()=>{O({type:`cron.resume`,chatId:t,jobId:e.jobId})},[t,e.jobId,O]),j=(0,F.useCallback)(()=>{O({type:`cron.remove`,chatId:t,jobId:e.jobId})},[t,e.jobId,O]),P=(0,F.useCallback)(()=>{I(e)||g()},[e,g]),L=(0,F.useCallback)(n=>$(o,{type:`cron.update`,chatId:t,jobId:e.jobId,patch:n}),[t,e.jobId,o]),R=i-e.armedAt,z=e.lastRun?.status===`running`?e.lastRun:null,B=I(e);return(0,J.jsxs)(`div`,{className:a(`flex items-center gap-3 bg-background px-4 py-2.5`,r&&`border-b border-border`),children:[(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`truncate text-sm text-foreground`,children:e.instruction}),e.paused?(0,J.jsx)(h,{}):null,!e.paused&&e.lastRun?(0,J.jsx)(d,{status:e.lastRun.status}):null]}),(0,J.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,J.jsx)(`span`,{className:`font-mono`,children:e.jobId}),(0,J.jsx)(`span`,{children:m(e.schedule,e.scheduleText)}),(0,J.jsxs)(`span`,{children:[`· `,e.mode]}),e.model?(0,J.jsx)(`span`,{className:`font-mono`,children:e.model}):null,(0,J.jsx)(y,{label:new Date(e.armedAt).toLocaleString(),side:`top`,children:(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`created `,N(R),` ago`]})}),z?(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`running for `,M(i-z.firedAt)]}):null,e.paused&&e.lastRun?(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`Last run: `,(0,J.jsx)(d,{status:e.lastRun.status})]}):null,!e.paused&&e.nextFireAt!==null?(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`next in `,M(Math.max(0,e.nextFireAt-i))]}):null,n]})]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,J.jsx)(y,{label:B?Z:`Edit cron job`,side:`top`,children:(0,J.jsx)(`button`,{type:`button`,"aria-label":`Edit cron job ${e.jobId}${B?` — ${Z}`:``}`,"aria-disabled":B,className:a(X,B&&`cursor-not-allowed opacity-40 hover:bg-transparent hover:text-muted-foreground`),onClick:P,children:(0,J.jsx)(b,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})})}),e.paused?(0,J.jsx)(`button`,{type:`button`,"aria-label":`Resume cron job ${e.jobId}`,className:X,disabled:E,"aria-busy":E||void 0,onClick:A,children:E?(0,J.jsx)(l,{}):(0,J.jsx)(x,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}):(0,J.jsx)(`button`,{type:`button`,"aria-label":`Pause cron job ${e.jobId}`,className:X,disabled:T,"aria-busy":T||void 0,onClick:k,children:T?(0,J.jsx)(l,{}):(0,J.jsx)(ee,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Remove cron job ${e.jobId}`,className:`rounded-md p-1.5 text-muted-foreground hover:bg-muted/40 hover:text-destructive`,disabled:D,"aria-busy":D||void 0,onClick:j,children:D?(0,J.jsx)(l,{}):(0,J.jsx)(C,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})})]}),u?(0,J.jsx)(le,{job:e,open:!0,onOpenChange:_,onSave:L},`${e.jobId} ${String(e.armedAt)}`):null]})}function de(e){return(0,J.jsx)(Y.Provider,{init:void 0,children:(0,J.jsx)(ue,{...e})})}export{de as t};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-DiVRNtpo.js";import{t as n}from"./jsx-runtime-BdxMnOeJ.js";import{f as r}from"./log-DnEvbp3E.js";import{a as i,c as a,f as o,n as s,r as c,s as l,t as u}from"./pendingActionsStore-CxhI19V9.js";import{a as d,c as f,n as p,o as m,r as h,s as g}from"./KannaSocketProvider-B2sHsWP5.js";import{f as _,l as v,p as y}from"./pushClient-CxnHu9h4.js";import{t as b}from"./pencil-C965rrpd.js";import{t as x}from"./play-uofLR7yT.js";import{a as S,g as C,i as w,n as T,o as E,r as D,u as O}from"./timer.adapter-C2RhP4d6.js";import{t as k}from"./segmented-control-CKGX29Kl.js";import{t as A}from"./createScopedStore-BrD5NHWx.js";import{t as j}from"./input-DgW9uRZN.js";import{r as M,t as N}from"./formatDuration-BbWTR_M_.js";var P={name:`pause`,size:24,node:[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]};P.node;var ee=o(P),F=e(t(),1);function I(e){for(let t of e.recentRuns)if(t.status!==`skipped`)return t.status===`running`;return!1}var L={"@hourly":`0 * * * *`,"@daily":`0 0 * * *`,"@weekly":`0 0 * * 0`,"@monthly":`0 0 1 * *`},R=Object.keys(L),z=[{name:`minute`,min:0,max:59},{name:`hour`,min:0,max:23},{name:`day-of-month`,min:1,max:31},{name:`month`,min:1,max:12,names:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}},{name:`day-of-week`,min:0,max:7,names:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},normalize:e=>e===7?0:e}],B={name:`second`,min:0,max:59},V={s:1e3,m:6e4,h:36e5};function H(e){let t=e.trim();if(t===``)return{ok:!1,part:`schedule`,message:"missing schedule — expected 5- or 6-field cron, @shortcut, or `every <N>s|m|h`"};let n=t.split(/\s+/);return n[0].startsWith(`@`)?U(n):n[0].toLowerCase()===`every`?ne(n):W(n)}function U(e){let t=e[0].toLowerCase(),n=L[t];if(n===void 0){let n=te(t);return{ok:!1,part:`schedule`,message:`unknown shortcut "${e[0]}" — valid shortcuts are ${R.join(`, `)}`,correctedSchedule:n??void 0}}if(e.length>1)return{ok:!1,part:`schedule`,message:`${t} takes no extra tokens (got "${e.slice(1).join(` `)}")`,correctedSchedule:t};let r=W(n.split(` `));if(!r.ok)throw Error(`builtin shortcut ${t} failed to parse: ${r.message}`);return r}function te(e){let t=null,n=4;for(let r of R){let i=oe(e,r,n);i<n&&(t=r,n=i)}return t}function ne(e){if(e.length===1)return{ok:!1,part:`schedule`,message:"missing interval after `every` — expected e.g. `every 30s`, `every 5m`, or `every 2h`"};let t=e.length===3?e[1]+e[2]:e[1];if(e.length>3||e.length===3&&!re(t))return{ok:!1,part:`schedule`,message:`expected exactly \`every <N>s|m|h\`, got "${e.join(` `)}"`};let n=/^(\d+)(s|m|h)$/.exec(t);if(n){let r=Number.parseInt(n[1],10);if(r<1)return{ok:!1,part:`schedule`,message:`interval must be at least 1`,correctedSchedule:`every 1${n[2]}`};let i=V[n[2]],a=e.length===3?`every ${t}`:void 0;return a===void 0?{ok:!0,schedule:{type:`interval`,ms:r*i}}:{ok:!1,part:`schedule`,message:`interval "${e.slice(1).join(` `)}" has a stray space`,correctedSchedule:a}}let r=/^(\d+)\s*(min|mins|minute|minutes|m|hr|hrs|hour|hours|h|s|sec|secs|second|seconds|d|day|days)$/i.exec(t);if(r){let e=r[1],t=r[2].toLowerCase();if(t.startsWith(`d`))return{ok:!1,part:`schedule`,message:`use @daily instead of "every ${e}${t}"`,correctedSchedule:`@daily`};let n=t[0];return{ok:!1,part:`schedule`,message:`interval unit "${t}" is not valid — use \`s\`, \`m\`, or \`h\``,correctedSchedule:`every ${e}${n}`}}return{ok:!1,part:`schedule`,message:`interval "${t}" is not valid — expected e.g. \`every 30s\`, \`every 5m\`, or \`every 2h\``}}function re(e){return/^\d+\s*[a-z]+$/i.test(e)}function W(e){let t=e.length===6;if(e.length!==5&&!t){let t=e.length===1&&/^\d+(s|m|h)$/.test(e[0]);return{ok:!1,part:`schedule`,message:`cron schedule has ${e.length} field${e.length===1?``:`s`}, expected 5 (minute hour day-of-month month day-of-week) or 6 with a leading second`,correctedSchedule:t?`every ${e[0]}`:ie(e)}}let n=t?[B,...z]:z,r=[];for(let t=0;t<n.length;t++){let i=ae(n[t],e[t]);if(!i.ok)return{ok:!1,part:`schedule_field`,message:i.message};r.push(i.field)}let i=+!!t;return{ok:!0,schedule:{type:`cron`,expression:e.join(` `),...t?{second:r[0]}:{},minute:r[i],hour:r[i+1],dom:r[i+2],month:r[i+3],dow:r[i+4]}}}function ie(e){if(e.length>=2&&e.length<=4){let t=[...e,...Array(5-e.length).fill(`*`)];return W(t).ok?t.join(` `):void 0}if(e.length===7){let t=e.slice(0,6);return W(t).ok?t.join(` `):void 0}}function ae(e,t){if(t===`*`)return{ok:!0,field:{kind:`any`}};let n=new Set;for(let r of t.split(`,`)){if(r===``)return{ok:!1,message:`${e.name} field "${t}" has an empty list entry`};let i=/^(\*|[A-Za-z]+|\d+)(?:-([A-Za-z]+|\d+))?(?:\/(\d+))?$/.exec(r);if(!i)return{ok:!1,message:`${e.name} field "${r}" is not valid — expected \`*\`, \`N\`, \`N-M\`, \`*/S\`, or \`N-M/S\``};let[,a,o,s]=i,c,l;if(a===`*`){if(o!==void 0)return{ok:!1,message:`${e.name} field "${r}" is not valid — \`*\` cannot be a range start`};c=e.min,l=e.max}else{let t=G(e,a);if(t===null)return{ok:!1,message:K(e,a)};if(c=t,o!==void 0){let t=G(e,o);if(t===null)return{ok:!1,message:K(e,o)};l=t}else l=c}if(c<e.min||c>e.max||l<e.min||l>e.max)return{ok:!1,message:`${e.name} field "${r}" is out of range ${e.min}-${e.max}`};if(l<c)return{ok:!1,message:`${e.name} field "${r}" has a range end below its start`};let u=1;if(s!==void 0){if(u=Number.parseInt(s,10),u<1)return{ok:!1,message:`${e.name} field "${r}" has a step of 0 — steps start at 1`};if(a!==`*`&&o===void 0)return{ok:!1,message:`${e.name} field "${r}" applies a step to a single value — use \`*/S\` or \`N-M/S\``}}for(let t=c;t<=l;t+=u)n.add(e.normalize?e.normalize(t):t)}return{ok:!0,field:{kind:`values`,values:[...n].sort((e,t)=>e-t)}}}function G(e,t){return/^\d+$/.test(t)?Number.parseInt(t,10):e.names?.[t.toLowerCase()]??null}function K(e,t){return/^\d+$/.test(t)?`${e.name} field "${t}" is out of range ${e.min}-${e.max}`:e.names?`${e.name} field "${t}" is not a valid ${e.name} name (${Object.keys(e.names).join(`, `)})`:`${e.name} field "${t}" is not a number`}function oe(e,t,n){if(Math.abs(e.length-t.length)>n)return n+1;let r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i++){let a=[i],o=i;for(let n=1;n<=t.length;n++){let s=e[i-1]===t[n-1]?0:1,c=Math.min(r[n]+1,a[n-1]+1,r[n-1]+s);a.push(c),c<o&&(o=c)}if(o>n)return n+1;r=a}return r[t.length]}var q=A(`CronJobEditDialog`,e=>t=>({instruction:e.instruction,scheduleText:e.scheduleText,mode:e.mode,setInstruction:e=>t({instruction:e}),setScheduleText:e=>t({scheduleText:e}),setMode:e=>t({mode:e})})),J=e(n(),1),se=[{value:`inline`,label:`inline`},{value:`spawn`,label:`spawn`}];function ce({job:e,open:t,onOpenChange:n,onSave:r}){let a=u(`cron.update`,e.jobId),o=c(a),l=q.useScopedStore(e=>e.instruction),d=q.useScopedStore(e=>e.scheduleText),f=q.useScopedStore(e=>e.mode),p=q.useScopedStore(e=>e.setInstruction),h=q.useScopedStore(e=>e.setScheduleText),v=q.useScopedStore(e=>e.setMode),y=(0,F.useMemo)(()=>H(d.trim()),[d]),b=(0,F.useMemo)(()=>{let t={},n=l.trim();n&&n!==e.instruction&&(t.instruction=n),f!==e.mode&&(t.mode=f);let r=d.trim();return y.ok&&r!==e.scheduleText&&(t.schedule=y.schedule,t.scheduleText=r),t},[l,e.instruction,e.mode,e.scheduleText,f,y,d]),x=l.trim().length===0,C=!x&&y.ok&&Object.keys(b).length>0,A=(0,F.useCallback)(()=>{y.ok||y.correctedSchedule===void 0||h(y.correctedSchedule)},[y,h]),M=(0,F.useCallback)(()=>{C&&s(a,async()=>{await r(b),n(!1)})},[C,n,r,b,a]),N=(0,F.useCallback)(()=>{n(!1)},[n]);return(0,J.jsx)(T,{open:t,onOpenChange:n,children:(0,J.jsxs)(w,{size:`lg`,children:[(0,J.jsxs)(D,{className:`space-y-4`,children:[(0,J.jsx)(O,{children:`Edit cron job`}),(0,J.jsxs)(S,{children:[(0,J.jsx)(`span`,{className:`font-mono`,children:e.jobId}),` — saving re-arms the job, which clears its run history and resets its created age.`]}),(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`label`,{htmlFor:`cron-edit-instruction`,className:`text-sm font-medium text-foreground`,children:`Instruction`}),(0,J.jsx)(_,{id:`cron-edit-instruction`,rows:4,value:l,onChange:e=>p(e.target.value)}),x?(0,J.jsx)(`p`,{className:`text-xs text-destructive`,children:`An instruction is required.`}):null]}),(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`label`,{htmlFor:`cron-edit-schedule`,className:`text-sm font-medium text-foreground`,children:`Schedule`}),(0,J.jsx)(j,{id:`cron-edit-schedule`,value:d,onChange:e=>h(e.target.value),placeholder:`0 9 * * 1, @daily, or every 5m`,className:`font-mono`}),y.ok?(0,J.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:m(y.schedule,d.trim())}):(0,J.jsx)(`p`,{className:`text-xs text-destructive`,children:y.message}),!y.ok&&y.correctedSchedule!==void 0?(0,J.jsxs)(i,{variant:`secondary`,size:`sm`,onClick:A,children:[`Use `,(0,J.jsx)(`span`,{className:`ml-1 font-mono`,children:y.correctedSchedule})]}):null]}),(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`span`,{className:`block text-sm font-medium text-foreground`,children:`Mode`}),(0,J.jsx)(k,{value:f,onValueChange:v,options:se,size:`sm`}),(0,J.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:g(f)})]})]}),(0,J.jsxs)(E,{children:[(0,J.jsx)(i,{variant:`ghost`,size:`sm`,onClick:N,children:`Cancel`}),(0,J.jsx)(i,{size:`sm`,onClick:M,disabled:!C,pending:o,children:`Save`})]})]})})}function le(e){return(0,J.jsx)(q.Provider,{init:e.job,children:(0,J.jsx)(ce,{...e})})}var Y=A(`CronJobRow`,()=>e=>({editing:!1,openEditor:()=>e({editing:!0}),setEditing:t=>e({editing:t})})),X=`rounded-md p-1.5 text-muted-foreground hover:bg-muted/40 hover:text-foreground`,Z=`cannot edit while a run is in flight`;function Q(e,t,n){return u(e,t,n)}async function $(e,t){if(e)try{await e.command(t),v.getState().setCommandError(null)}catch(e){throw v.getState().setCommandError(r(e)),e}}function ue({job:e,chatId:t,trailing:n,divider:r}){let i=f(1e3),o=p(),u=Y.useScopedStore(e=>e.editing),g=Y.useScopedStore(e=>e.openEditor),_=Y.useScopedStore(e=>e.setEditing),v=Q(`cron.pause`,t,e.jobId),S=Q(`cron.resume`,t,e.jobId),w=Q(`cron.remove`,t,e.jobId),T=c(v),E=c(S),D=c(w),O=(0,F.useCallback)(e=>{s(Q(e.type,e.chatId,e.jobId),()=>$(o,e))},[o]),k=(0,F.useCallback)(()=>{O({type:`cron.pause`,chatId:t,jobId:e.jobId})},[t,e.jobId,O]),A=(0,F.useCallback)(()=>{O({type:`cron.resume`,chatId:t,jobId:e.jobId})},[t,e.jobId,O]),j=(0,F.useCallback)(()=>{O({type:`cron.remove`,chatId:t,jobId:e.jobId})},[t,e.jobId,O]),P=(0,F.useCallback)(()=>{I(e)||g()},[e,g]),L=(0,F.useCallback)(n=>$(o,{type:`cron.update`,chatId:t,jobId:e.jobId,patch:n}),[t,e.jobId,o]),R=i-e.armedAt,z=e.lastRun?.status===`running`?e.lastRun:null,B=I(e);return(0,J.jsxs)(`div`,{className:a(`flex items-center gap-3 bg-background px-4 py-2.5`,r&&`border-b border-border`),children:[(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`truncate text-sm text-foreground`,children:e.instruction}),e.paused?(0,J.jsx)(h,{}):null,!e.paused&&e.lastRun?(0,J.jsx)(d,{status:e.lastRun.status}):null]}),(0,J.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,J.jsx)(`span`,{className:`font-mono`,children:e.jobId}),(0,J.jsx)(`span`,{children:m(e.schedule,e.scheduleText)}),(0,J.jsxs)(`span`,{children:[`· `,e.mode]}),e.model?(0,J.jsx)(`span`,{className:`font-mono`,children:e.model}):null,(0,J.jsx)(y,{label:new Date(e.armedAt).toLocaleString(),side:`top`,children:(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`created `,N(R),` ago`]})}),z?(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`running for `,M(i-z.firedAt)]}):null,e.paused&&e.lastRun?(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`Last run: `,(0,J.jsx)(d,{status:e.lastRun.status})]}):null,!e.paused&&e.nextFireAt!==null?(0,J.jsxs)(`span`,{className:`tabular-nums`,children:[`next in `,M(Math.max(0,e.nextFireAt-i))]}):null,n]})]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,J.jsx)(y,{label:B?Z:`Edit cron job`,side:`top`,children:(0,J.jsx)(`button`,{type:`button`,"aria-label":`Edit cron job ${e.jobId}${B?` — ${Z}`:``}`,"aria-disabled":B,className:a(X,B&&`cursor-not-allowed opacity-40 hover:bg-transparent hover:text-muted-foreground`),onClick:P,children:(0,J.jsx)(b,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})})}),e.paused?(0,J.jsx)(`button`,{type:`button`,"aria-label":`Resume cron job ${e.jobId}`,className:X,disabled:E,"aria-busy":E||void 0,onClick:A,children:E?(0,J.jsx)(l,{}):(0,J.jsx)(x,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}):(0,J.jsx)(`button`,{type:`button`,"aria-label":`Pause cron job ${e.jobId}`,className:X,disabled:T,"aria-busy":T||void 0,onClick:k,children:T?(0,J.jsx)(l,{}):(0,J.jsx)(ee,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Remove cron job ${e.jobId}`,className:`rounded-md p-1.5 text-muted-foreground hover:bg-muted/40 hover:text-destructive`,disabled:D,"aria-busy":D||void 0,onClick:j,children:D?(0,J.jsx)(l,{}):(0,J.jsx)(C,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})})]}),u?(0,J.jsx)(le,{job:e,open:!0,onOpenChange:_,onSave:L},`${e.jobId} ${String(e.armedAt)}`):null]})}function de(e){return(0,J.jsx)(Y.Provider,{init:void 0,children:(0,J.jsx)(ue,{...e})})}export{de as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-DiVRNtpo.js";import{n}from"./chunk-OB3PAWPO-mARpRU1A.js";import{t as r}from"./jsx-runtime-BdxMnOeJ.js";import{f as i,u as a}from"./KannaSocketProvider-D7Lzlt35.js";import{h as o,s}from"./pushClient-BJH_ITRB.js";import{t as c}from"./CronJobRow-CPbO_jwU.js";import{o as l}from"./formatters-wSVyvDFZ.js";var u=e(t(),1),d=e(r(),1);function f(){let e=s(e=>e.rows),t=(0,u.useMemo)(()=>{let t=new Map;for(let n of e){let e=t.get(n.projectId)??{projectPath:n.projectPath,rows:[]};e.rows.push(n),t.set(n.projectId,e)}return[...t.values()]},[e]);return(0,d.jsx)(`div`,{className:a,children:(0,d.jsxs)(`div`,{className:`mx-auto w-full max-w-[900px] px-4 py-8`,children:[(0,d.jsxs)(`h1`,{className:`flex items-center gap-2.5 text-lg font-semibold text-foreground`,children:[(0,d.jsx)(i,{className:`h-5 w-5 text-muted-foreground`,"aria-hidden":`true`}),`Cron jobs`,(0,d.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground tabular-nums`,children:[e.length,` armed`]})]}),e.length===0?(0,d.jsxs)(`p`,{className:`mt-6 text-sm text-muted-foreground`,children:[`No cron jobs armed anywhere. Arm one from any chat with`,` `,(0,d.jsx)(`code`,{className:`font-mono text-xs`,children:`/cron <instruction> inline|spawn <schedule>`}),`.`]}):(0,d.jsx)(`div`,{className:`mt-6 space-y-6`,children:t.map(e=>(0,d.jsxs)(`div`,{className:`rounded-2xl border border-border overflow-hidden`,children:[(0,d.jsxs)(`h2`,{className:`border-b border-border bg-card p-3 px-4 text-sm font-medium text-foreground`,children:[l(e.projectPath),(0,d.jsx)(`span`,{className:`ml-2 font-mono text-xs font-normal text-muted-foreground`,children:e.projectPath})]}),(0,d.jsx)(`div`,{children:e.rows.map((t,r)=>(0,d.jsx)(c,{job:t.job,chatId:t.chatId,divider:r<e.rows.length-1,trailing:(0,d.jsxs)(n,{to:`/chat/${t.chatId}`,className:`inline-flex items-center gap-1 text-primary hover:underline`,children:[(0,d.jsx)(o,{className:`h-3 w-3`,"aria-hidden":`true`}),t.chatTitle||`Open chat`]})},`${t.chatId} ${t.job.jobId}`))})]},e.projectPath))})]})})}export{f as CronJobsPage};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-DiVRNtpo.js";import{n}from"./chunk-OB3PAWPO-mARpRU1A.js";import{t as r}from"./jsx-runtime-BdxMnOeJ.js";import{f as i,u as a}from"./KannaSocketProvider-B2sHsWP5.js";import{h as o,s}from"./pushClient-CxnHu9h4.js";import{t as c}from"./CronJobRow-Bx9gRqKW.js";import{a as l}from"./formatters-BGORekd-.js";var u=e(t(),1),d=e(r(),1);function f(){let e=s(e=>e.rows),t=(0,u.useMemo)(()=>{let t=new Map;for(let n of e){let e=t.get(n.projectId)??{projectPath:n.projectPath,rows:[]};e.rows.push(n),t.set(n.projectId,e)}return[...t.values()]},[e]);return(0,d.jsx)(`div`,{className:a,children:(0,d.jsxs)(`div`,{className:`mx-auto w-full max-w-[900px] px-4 py-8`,children:[(0,d.jsxs)(`h1`,{className:`flex items-center gap-2.5 text-lg font-semibold text-foreground`,children:[(0,d.jsx)(i,{className:`h-5 w-5 text-muted-foreground`,"aria-hidden":`true`}),`Cron jobs`,(0,d.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground tabular-nums`,children:[e.length,` armed`]})]}),e.length===0?(0,d.jsxs)(`p`,{className:`mt-6 text-sm text-muted-foreground`,children:[`No cron jobs armed anywhere. Arm one from any chat with`,` `,(0,d.jsx)(`code`,{className:`font-mono text-xs`,children:`/cron <instruction> inline|spawn <schedule>`}),`.`]}):(0,d.jsx)(`div`,{className:`mt-6 space-y-6`,children:t.map(e=>(0,d.jsxs)(`div`,{className:`rounded-2xl border border-border overflow-hidden`,children:[(0,d.jsxs)(`h2`,{className:`border-b border-border bg-card p-3 px-4 text-sm font-medium text-foreground`,children:[l(e.projectPath),(0,d.jsx)(`span`,{className:`ml-2 font-mono text-xs font-normal text-muted-foreground`,children:e.projectPath})]}),(0,d.jsx)(`div`,{children:e.rows.map((t,r)=>(0,d.jsx)(c,{job:t.job,chatId:t.chatId,divider:r<e.rows.length-1,trailing:(0,d.jsxs)(n,{to:`/chat/${t.chatId}`,className:`inline-flex items-center gap-1 text-primary hover:underline`,children:[(0,d.jsx)(o,{className:`h-3 w-3`,"aria-hidden":`true`}),t.chatTitle||`Open chat`]})},`${t.chatId} ${t.job.jobId}`))})]},e.projectPath))})]})})}export{f as CronJobsPage};
@@ -1,7 +1,7 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-gRh-26W4.js","assets/preload-helper-DjzSQ1t3.js","assets/chunk-Y2CYZVJY-DsF7k-Jl.js","assets/src-DEuepP9r.js","assets/rolldown-runtime-C0FnF6B9.js","assets/src-B-DeWB10.js","assets/chunk-VPRB5NB3-DdvbFm4G.js","assets/chunk-3YJQHVM4-BD0QjGHE.js","assets/dist-Cz2MTljl.js","assets/chunk-Z6ETV63D-CJv8Kmac.js","assets/chunk-HJ2JQQFS-DHgNY4oe.js","assets/chunk-E2ZNV5FY-CWsTozRZ.js","assets/chunk-4EA7E6EY-C-3QyPC4.js","assets/chunk-XC4XBNZT-C7Gta1hk.js","assets/chunk-J5ZVWO5B-oDCd-gWO.js","assets/rough.esm-Dy-Kn_BL.js","assets/chunk-DBDB3WZW-BuRZXbw3.js","assets/chunk-2BW5OAIV-CAk9x6ti.js","assets/line-Bu0kN2MJ.js","assets/path-fybaL0A-.js","assets/array-BifhSqXX.js","assets/chunk-NTY3LDVX-Bvl8xsuC.js","assets/chunk-SVEVUXB4-Csc8k5gP.js","assets/chunk-DUW6YSOI-Dgx8z5s3.js","assets/chunk-LNGE3PJU-5-SxdO55.js","assets/dist-BdNQvasR.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-DiVRNtpo.js";import{t as n}from"./react-dom-CvX0TCLz.js";import{t as r}from"./preload-helper-DjzSQ1t3.js";import{t as i}from"./jsx-runtime-BdxMnOeJ.js";import{d as a,h as o,m as s,t as c}from"./log-aTaDVF_e.js";import{a as l,c as u,f as d,n as f,r as p,t as m}from"./pendingActionsStore-COTh4Ztq.js";import{$ as h,A as g,Bt as _,C as v,D as y,E as b,F as ee,Ht as te,I as ne,K as re,M as ie,N as ae,O as oe,P as se,Pt as x,S as ce,T as le,Tt as ue,Ut as de,V as fe,Vt as pe,_ as me,a as he,b as ge,c as _e,d as ve,f as ye,g as be,h as xe,i as Se,j as Ce,k as we,l as Te,m as Ee,n as De,o as Oe,p as ke,q as S,r as Ae,s as je,t as Me,u as Ne,v as Pe,vt as Fe,wt as Ie,x as Le,y as Re,zt as ze}from"./lexicalToReact-sPUyOWk6.js";import{n as Be,r as C,t as w}from"./clipboard.adapter-GN9nnYak.js";import{n as Ve,r as He,t as Ue}from"./terminal-Bnj7qFGw.js";import{n as We,t as Ge}from"./triangle-alert-CWrc0CIO.js";import{t as Ke}from"./pencil-fNBeUUCf.js";import{t as qe}from"./plus-c75CkNEO.js";import{a as Je,g as Ye,i as Xe,n as Ze,t as T,u as Qe}from"./timer.adapter-DHt2zwsL.js";import{t as E}from"./createScopedStore-BoLB9Rhc.js";import{r as $e}from"./useTheme-B57LIKyx.js";import{t as D}from"./runDetached-DqQ3k2ji.js";var et={name:`arrow-down-to-line`,size:24,node:[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]};et.node;var tt=d(et),nt={name:`check-line`,size:24,node:[[`path`,{d:`M20 4L9 15`,key:`1qkx8z`}],[`path`,{d:`M21 19L3 19`,key:`100sma`}],[`path`,{d:`M9 15L4 10`,key:`9zxff7`}]]};nt.node;var O=d(nt),rt={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};rt.node;var it=d(rt),at={name:`file-archive`,size:24,node:[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]};at.node;var ot=d(at),st={name:`file-braces`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]],aliases:[`file-json`]};st.node;var ct=d(st),lt={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};lt.node;var ut=d(lt),dt={name:`file-headphone`,size:24,node:[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]],aliases:[`file-audio`,`file-audio-2`]};dt.node;var ft=d(dt),pt={name:`file-image`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]};pt.node;var mt=d(pt),ht={name:`file-pen`,size:24,node:[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]],aliases:[`file-edit`]};ht.node;var gt=d(ht),_t={name:`file-plus-corner`,size:24,node:[[`path`,{d:`M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35`,key:`17jvcc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 19h6`,key:`bvotb8`}],[`path`,{d:`M17 16v6`,key:`18yu1i`}]],aliases:[`file-plus-2`]};_t.node;var vt=d(_t),yt={name:`file-spreadsheet`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]};yt.node;var bt=d(yt),xt={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};xt.node;var St=d(xt),Ct={name:`file-video-camera`,size:24,node:[[`path`,{d:`M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2`,key:`jrl274`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m10 17.843 3.033-1.755a.64.64 0 0 1 .967.56v4.704a.65.65 0 0 1-.967.56L10 20.157`,key:`17aeo9`}],[`rect`,{width:`7`,height:`6`,x:`3`,y:`16`,rx:`1`,key:`s27ndx`}]],aliases:[`file-video-2`]};Ct.node;var wt=d(Ct),Tt={name:`file-x`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m14.5 12.5-5 5`,key:`b62r18`}],[`path`,{d:`m9.5 12.5 5 5`,key:`1rk7el`}]]};Tt.node;var Et=d(Tt),Dt={name:`file`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]};Dt.node;var Ot=d(Dt),kt={name:`map`,size:24,node:[[`path`,{d:`M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z`,key:`169xi5`}],[`path`,{d:`M15 5.764v15`,key:`1pn4in`}],[`path`,{d:`M9 3.236v15`,key:`1uimfh`}]]};kt.node;var At=d(kt),jt={name:`maximize-2`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]};jt.node;var Mt=d(jt),Nt={name:`message-circle-question-mark`,size:24,node:[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`message-circle-question`]};Nt.node;var Pt=d(Nt),Ft={name:`receipt-text`,size:24,node:[[`path`,{d:`M13 16H8`,key:`wsln4y`}],[`path`,{d:`M14 8H8`,key:`1l3xfs`}],[`path`,{d:`M16 12H8`,key:`1fr5h0`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]};Ft.node;var It=d(Ft),Lt={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};Lt.node;var Rt=d(Lt),zt={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};zt.node;var Bt=d(zt),Vt={name:`share-2`,size:24,node:[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]};Vt.node;var Ht=d(Vt),Ut={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};Ut.node;var Wt=d(Ut),Gt={name:`square-x`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-square`]};Gt.node;var Kt=d(Gt),qt={name:`toy-brick`,size:24,node:[[`rect`,{width:`18`,height:`12`,x:`3`,y:`8`,rx:`1`,key:`158fvp`}],[`path`,{d:`M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3`,key:`s0042v`}],[`path`,{d:`M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3`,key:`9wmeh2`}]]};qt.node;var Jt=d(qt),Yt={name:`wrench`,size:24,node:[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]};Yt.node;var Xt=d(Yt);async function Zt(e,t={}){let n=t.http??ze;try{let r=await n.head(e,{signal:t.signal});return r.ok?{kind:`ready`,mimeType:r.headers[`content-type`]?.split(`;`)[0]?.trim()??`application/octet-stream`,size:Number.parseInt(r.headers[`content-length`]??`0`,10)||0}:r.status===404?{kind:`missing`}:{kind:`error`}}catch{return{kind:`error`}}}async function Qt(e,t={}){let n=t.http??ze,r=e.replace(/\/content$/,``),i=await n.del(r);if(!i.ok&&i.status!==404)throw Error(`Delete request failed with status ${i.status}`)}async function $t(e,t,n={}){let{body:r,ok:i,status:a}=await(n.http??ze).streamBytes(e,{signal:n.signal,headers:{Accept:`text/plain, text/markdown, application/json, text/csv, text/tab-separated-values, */*`}});if(!i)throw Error(`Preview request failed with status ${a}`);if(!r)return{content:``,truncated:!1};let o=r.getReader(),s=[],c=0,l=!1;for(;;){let{done:e,value:n}=await o.read();if(e)break;if(!n)continue;let r=t-c;if(r<=0){l=!0,await o.cancel();break}if(n.byteLength>r){s.push(n.slice(0,r)),c+=r,l=!0,await o.cancel();break}s.push(n),c+=n.byteLength}let u=new Uint8Array(c),d=0;for(let e of s)u.set(e,d),d+=e.byteLength;return{content:new TextDecoder().decode(u),truncated:l}}var en=1048576,tn=new Set(`.c,.cc,.cfg,.conf,.cpp,.cs,.css,.env,.go,.graphql,.h,.hpp,.html,.ini,.java,.js,.jsonc,.jsx,.kt,.lua,.mjs,.php,.pl,.properties,.py,.rb,.rs,.scss,.sh,.sql,.swift,.toml,.ts,.tsx,.txt,.vue,.xml,.yaml,.yml,.zsh`.split(`,`)),nn=new Set([`.7z`,`.bz2`,`.gz`,`.rar`,`.tar`,`.tgz`,`.xz`,`.zip`]),rn=new Set([`.aac`,`.flac`,`.m4a`,`.mp3`,`.ogg`,`.wav`]),an=new Set([`.avi`,`.m4v`,`.mov`,`.mp4`,`.mkv`,`.webm`]);function on(e){let t=e.mimeType.toLowerCase(),n=A(e.displayName);return t.startsWith(`image/`)?{kind:`image`,openInNewTab:!1}:t===`application/pdf`?{kind:`pdf`,openInNewTab:!1}:t===`application/json`?e.size<=262144?{kind:`json`,openInNewTab:!1}:{kind:`external`,openInNewTab:!0}:hn(e)?{kind:`markdown`,openInNewTab:!1}:t===`text/csv`||t===`text/tab-separated-values`?{kind:`table`,openInNewTab:!1}:t.startsWith(`audio/`)||rn.has(n)?{kind:`audio`,openInNewTab:!1}:t.startsWith(`video/`)||an.has(n)?{kind:`video`,openInNewTab:!1}:t.startsWith(`text/`)||tn.has(n)?{kind:`text`,openInNewTab:!1}:{kind:`external`,openInNewTab:!0}}var sn={image:`Image`,pdf:`PDF`,markdown:`Markdown`,json:`JSON`,table:`Table`,code:`Source`,text:`Text`,archive:`Archive`,audio:`Audio`,video:`Video`,file:`File`,mermaid:`Diagram`};function cn(e,t){if(e===`archive`&&t){if(t.includes(`zip`))return`ZIP archive`;if(t.includes(`gzip`))return`Gzip archive`;if(t.includes(`x-tar`))return`Tar archive`}if(e===`image`&&t){let e=t.split(`/`)[1]?.split(`;`)[0]?.toUpperCase();if(e)return`${e} image`}return sn[e]}function k(e){let t=e.mimeType.toLowerCase(),n=A(e.displayName);return t.startsWith(`image/`)?`image`:t===`application/pdf`||n===`.pdf`?`pdf`:t===`application/json`||n===`.json`||n===`.jsonc`?`json`:hn(e)?`markdown`:t===`text/csv`||t===`text/tab-separated-values`||n===`.csv`||n===`.tsv`?`table`:t.startsWith(`audio/`)||rn.has(n)?`audio`:t.startsWith(`video/`)||an.has(n)?`video`:t.includes(`zip`)||t.includes(`archive`)||nn.has(n)?`archive`:_n(e)?`mermaid`:tn.has(n)?n===`.txt`?`text`:`code`:t.startsWith(`text/`)?`text`:`file`}async function ln(e,t,n={}){let r=n.dom??a,i=n.timer??T,s=typeof AbortController<`u`?new AbortController:null,c=s?i.setTimeout(()=>s.abort(`preview-timeout`),15e3):null;try{return await $t(vn(e,r),t,{signal:s?.signal,http:n.http})}catch(e){throw yn(o(e))?Error(`Preview request timed out`,{cause:e}):e}finally{c!==null&&i.clearTimeout(c)}}function un(e){try{return`${JSON.stringify(JSON.parse(e),null,2)}\n`}catch{return e}}function dn(e,t){let n=bn(e,t),r=n.length,i=n.reduce((e,t)=>Math.max(e,t.length),0),a=r>200,o=i>20;return{rows:n.slice(0,200).map(e=>e.slice(0,20)),rowCount:r,columnCount:i,truncatedRows:a,truncatedColumns:o}}function A(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t).toLowerCase():``}function fn(e){return e.split(`;`)[0]?.trim().toLowerCase()??``}function pn(e){return[A(e.displayName),A(e.relativePath)]}var mn=new Set([`text/markdown`,`text/x-markdown`]);function hn(e){return mn.has(fn(e.mimeType))?!0:pn(e).includes(`.md`)}var gn=new Set([`.mmd`,`.mermaid`]);function _n(e){return fn(e.mimeType)===`text/vnd.mermaid`||pn(e).some(e=>gn.has(e))}function vn(e,t){return new URL(e,t.getBaseURI()||t.getHref()).toString()}function yn(e){return e instanceof DOMException&&e.name===`AbortError`||e.message===`preview-timeout`}function bn(e,t){let n=[],r=[],i=``,a=!1;for(let o=0;o<e.length;o+=1){let s=e[o],c=e[o+1];if(s===`"`){a&&c===`"`?(i+=`"`,o+=1):a=!a;continue}if(!a&&s===t){r.push(i),i=``;continue}if(!a&&(s===`
2
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-DiVRNtpo.js";import{t as n}from"./react-dom-CvX0TCLz.js";import{t as r}from"./preload-helper-DjzSQ1t3.js";import{t as i}from"./jsx-runtime-BdxMnOeJ.js";import{d as a,h as o,m as s,t as c}from"./log-DnEvbp3E.js";import{a as l,c as u,f as d,n as f,r as p,t as m}from"./pendingActionsStore-CxhI19V9.js";import{$ as h,A as g,Bt as _,C as v,D as y,E as b,F as ee,Ht as te,I as ne,K as re,M as ie,N as ae,O as oe,P as se,Pt as x,S as ce,T as le,Tt as ue,Ut as de,V as fe,Vt as pe,_ as me,a as he,b as ge,c as _e,d as ve,f as ye,g as be,h as xe,i as Se,j as Ce,k as we,l as Te,m as Ee,n as De,o as Oe,p as ke,q as S,r as Ae,s as je,t as Me,u as Ne,v as Pe,vt as Fe,wt as Ie,x as Le,y as Re,zt as ze}from"./lexicalToReact-CZvp9Pgz.js";import{n as Be,r as C,t as w}from"./clipboard.adapter-CgdNwn-1.js";import{n as Ve,r as He,t as Ue}from"./terminal-DfCF-J4p.js";import{n as We,t as Ge}from"./triangle-alert-CYQhobyY.js";import{t as Ke}from"./pencil-C965rrpd.js";import{t as qe}from"./plus-D4CI6rj1.js";import{a as Je,g as Ye,i as Xe,n as Ze,t as T,u as Qe}from"./timer.adapter-C2RhP4d6.js";import{t as E}from"./createScopedStore-BrD5NHWx.js";import{r as $e}from"./useTheme-D9sKDPEm.js";import{t as D}from"./runDetached-DfQXHAaY.js";var et={name:`arrow-down-to-line`,size:24,node:[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]};et.node;var tt=d(et),nt={name:`check-line`,size:24,node:[[`path`,{d:`M20 4L9 15`,key:`1qkx8z`}],[`path`,{d:`M21 19L3 19`,key:`100sma`}],[`path`,{d:`M9 15L4 10`,key:`9zxff7`}]]};nt.node;var O=d(nt),rt={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};rt.node;var it=d(rt),at={name:`file-archive`,size:24,node:[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]};at.node;var ot=d(at),st={name:`file-braces`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]],aliases:[`file-json`]};st.node;var ct=d(st),lt={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};lt.node;var ut=d(lt),dt={name:`file-headphone`,size:24,node:[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]],aliases:[`file-audio`,`file-audio-2`]};dt.node;var ft=d(dt),pt={name:`file-image`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]};pt.node;var mt=d(pt),ht={name:`file-plus-corner`,size:24,node:[[`path`,{d:`M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35`,key:`17jvcc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 19h6`,key:`bvotb8`}],[`path`,{d:`M17 16v6`,key:`18yu1i`}]],aliases:[`file-plus-2`]};ht.node;var gt=d(ht),_t={name:`file-pen`,size:24,node:[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]],aliases:[`file-edit`]};_t.node;var vt=d(_t),yt={name:`file-spreadsheet`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]};yt.node;var bt=d(yt),xt={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};xt.node;var St=d(xt),Ct={name:`file-video-camera`,size:24,node:[[`path`,{d:`M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2`,key:`jrl274`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m10 17.843 3.033-1.755a.64.64 0 0 1 .967.56v4.704a.65.65 0 0 1-.967.56L10 20.157`,key:`17aeo9`}],[`rect`,{width:`7`,height:`6`,x:`3`,y:`16`,rx:`1`,key:`s27ndx`}]],aliases:[`file-video-2`]};Ct.node;var wt=d(Ct),Tt={name:`file-x`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m14.5 12.5-5 5`,key:`b62r18`}],[`path`,{d:`m9.5 12.5 5 5`,key:`1rk7el`}]]};Tt.node;var Et=d(Tt),Dt={name:`file`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]};Dt.node;var Ot=d(Dt),kt={name:`map`,size:24,node:[[`path`,{d:`M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z`,key:`169xi5`}],[`path`,{d:`M15 5.764v15`,key:`1pn4in`}],[`path`,{d:`M9 3.236v15`,key:`1uimfh`}]]};kt.node;var At=d(kt),jt={name:`maximize-2`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]};jt.node;var Mt=d(jt),Nt={name:`message-circle-question-mark`,size:24,node:[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`message-circle-question`]};Nt.node;var Pt=d(Nt),Ft={name:`receipt-text`,size:24,node:[[`path`,{d:`M13 16H8`,key:`wsln4y`}],[`path`,{d:`M14 8H8`,key:`1l3xfs`}],[`path`,{d:`M16 12H8`,key:`1fr5h0`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]};Ft.node;var It=d(Ft),Lt={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};Lt.node;var Rt=d(Lt),zt={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};zt.node;var Bt=d(zt),Vt={name:`share-2`,size:24,node:[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]};Vt.node;var Ht=d(Vt),Ut={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};Ut.node;var Wt=d(Ut),Gt={name:`square-x`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-square`]};Gt.node;var Kt=d(Gt),qt={name:`toy-brick`,size:24,node:[[`rect`,{width:`18`,height:`12`,x:`3`,y:`8`,rx:`1`,key:`158fvp`}],[`path`,{d:`M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3`,key:`s0042v`}],[`path`,{d:`M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3`,key:`9wmeh2`}]]};qt.node;var Jt=d(qt),Yt={name:`wrench`,size:24,node:[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]};Yt.node;var Xt=d(Yt);async function Zt(e,t={}){let n=t.http??ze;try{let r=await n.head(e,{signal:t.signal});return r.ok?{kind:`ready`,mimeType:r.headers[`content-type`]?.split(`;`)[0]?.trim()??`application/octet-stream`,size:Number.parseInt(r.headers[`content-length`]??`0`,10)||0}:r.status===404?{kind:`missing`}:{kind:`error`}}catch{return{kind:`error`}}}async function Qt(e,t={}){let n=t.http??ze,r=e.replace(/\/content$/,``),i=await n.del(r);if(!i.ok&&i.status!==404)throw Error(`Delete request failed with status ${i.status}`)}async function $t(e,t,n={}){let{body:r,ok:i,status:a}=await(n.http??ze).streamBytes(e,{signal:n.signal,headers:{Accept:`text/plain, text/markdown, application/json, text/csv, text/tab-separated-values, */*`}});if(!i)throw Error(`Preview request failed with status ${a}`);if(!r)return{content:``,truncated:!1};let o=r.getReader(),s=[],c=0,l=!1;for(;;){let{done:e,value:n}=await o.read();if(e)break;if(!n)continue;let r=t-c;if(r<=0){l=!0,await o.cancel();break}if(n.byteLength>r){s.push(n.slice(0,r)),c+=r,l=!0,await o.cancel();break}s.push(n),c+=n.byteLength}let u=new Uint8Array(c),d=0;for(let e of s)u.set(e,d),d+=e.byteLength;return{content:new TextDecoder().decode(u),truncated:l}}var en=1048576,tn=new Set(`.c,.cc,.cfg,.conf,.cpp,.cs,.css,.env,.go,.graphql,.h,.hpp,.html,.ini,.java,.js,.jsonc,.jsx,.kt,.lua,.mjs,.php,.pl,.properties,.py,.rb,.rs,.scss,.sh,.sql,.swift,.toml,.ts,.tsx,.txt,.vue,.xml,.yaml,.yml,.zsh`.split(`,`)),nn=new Set([`.7z`,`.bz2`,`.gz`,`.rar`,`.tar`,`.tgz`,`.xz`,`.zip`]),rn=new Set([`.aac`,`.flac`,`.m4a`,`.mp3`,`.ogg`,`.wav`]),an=new Set([`.avi`,`.m4v`,`.mov`,`.mp4`,`.mkv`,`.webm`]);function on(e){let t=e.mimeType.toLowerCase(),n=A(e.displayName);return t.startsWith(`image/`)?{kind:`image`,openInNewTab:!1}:t===`application/pdf`?{kind:`pdf`,openInNewTab:!1}:t===`application/json`?e.size<=262144?{kind:`json`,openInNewTab:!1}:{kind:`external`,openInNewTab:!0}:hn(e)?{kind:`markdown`,openInNewTab:!1}:t===`text/csv`||t===`text/tab-separated-values`?{kind:`table`,openInNewTab:!1}:t.startsWith(`audio/`)||rn.has(n)?{kind:`audio`,openInNewTab:!1}:t.startsWith(`video/`)||an.has(n)?{kind:`video`,openInNewTab:!1}:t.startsWith(`text/`)||tn.has(n)?{kind:`text`,openInNewTab:!1}:{kind:`external`,openInNewTab:!0}}var sn={image:`Image`,pdf:`PDF`,markdown:`Markdown`,json:`JSON`,table:`Table`,code:`Source`,text:`Text`,archive:`Archive`,audio:`Audio`,video:`Video`,file:`File`,mermaid:`Diagram`};function cn(e,t){if(e===`archive`&&t){if(t.includes(`zip`))return`ZIP archive`;if(t.includes(`gzip`))return`Gzip archive`;if(t.includes(`x-tar`))return`Tar archive`}if(e===`image`&&t){let e=t.split(`/`)[1]?.split(`;`)[0]?.toUpperCase();if(e)return`${e} image`}return sn[e]}function k(e){let t=e.mimeType.toLowerCase(),n=A(e.displayName);return t.startsWith(`image/`)?`image`:t===`application/pdf`||n===`.pdf`?`pdf`:t===`application/json`||n===`.json`||n===`.jsonc`?`json`:hn(e)?`markdown`:t===`text/csv`||t===`text/tab-separated-values`||n===`.csv`||n===`.tsv`?`table`:t.startsWith(`audio/`)||rn.has(n)?`audio`:t.startsWith(`video/`)||an.has(n)?`video`:t.includes(`zip`)||t.includes(`archive`)||nn.has(n)?`archive`:_n(e)?`mermaid`:tn.has(n)?n===`.txt`?`text`:`code`:t.startsWith(`text/`)?`text`:`file`}async function ln(e,t,n={}){let r=n.dom??a,i=n.timer??T,s=typeof AbortController<`u`?new AbortController:null,c=s?i.setTimeout(()=>s.abort(`preview-timeout`),15e3):null;try{return await $t(vn(e,r),t,{signal:s?.signal,http:n.http})}catch(e){throw yn(o(e))?Error(`Preview request timed out`,{cause:e}):e}finally{c!==null&&i.clearTimeout(c)}}function un(e){try{return`${JSON.stringify(JSON.parse(e),null,2)}\n`}catch{return e}}function dn(e,t){let n=bn(e,t),r=n.length,i=n.reduce((e,t)=>Math.max(e,t.length),0),a=r>200,o=i>20;return{rows:n.slice(0,200).map(e=>e.slice(0,20)),rowCount:r,columnCount:i,truncatedRows:a,truncatedColumns:o}}function A(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t).toLowerCase():``}function fn(e){return e.split(`;`)[0]?.trim().toLowerCase()??``}function pn(e){return[A(e.displayName),A(e.relativePath)]}var mn=new Set([`text/markdown`,`text/x-markdown`]);function hn(e){return mn.has(fn(e.mimeType))?!0:pn(e).includes(`.md`)}var gn=new Set([`.mmd`,`.mermaid`]);function _n(e){return fn(e.mimeType)===`text/vnd.mermaid`||pn(e).some(e=>gn.has(e))}function vn(e,t){return new URL(e,t.getBaseURI()||t.getHref()).toString()}function yn(e){return e instanceof DOMException&&e.name===`AbortError`||e.message===`preview-timeout`}function bn(e,t){let n=[],r=[],i=``,a=!1;for(let o=0;o<e.length;o+=1){let s=e[o],c=e[o+1];if(s===`"`){a&&c===`"`?(i+=`"`,o+=1):a=!a;continue}if(!a&&s===t){r.push(i),i=``;continue}if(!a&&(s===`
3
3
  `||s===`\r`)){s===`\r`&&c===`
4
- `&&(o+=1),r.push(i),n.push(r),r=[],i=``;continue}i+=s}return(i.length>0||r.length>0)&&(r.push(i),n.push(r)),n}var j=e(i(),1),xn=18,Sn=3,Cn=2*Math.PI*xn,M=42;function wn({progress:e,onCancel:t,size:n=`md`,className:r,cancelLabel:i=`Cancel upload`}){let a=e==null,o=a?0:Math.min(1,Math.max(0,e)),s=a?null:Math.round(o*100),c=Cn*(1-o),l=n===`sm`?36:48;return(0,j.jsx)(`div`,{className:u(`pointer-events-auto absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-background/85`,r),role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":s??void 0,"aria-label":a?`Uploading`:`Uploading, ${s}%`,children:(0,j.jsxs)(`div`,{className:u(`group/overlay relative inline-flex items-center justify-center`,a&&`motion-safe:animate-spin`),style:{width:l,height:l},children:[(0,j.jsxs)(`svg`,{viewBox:`0 0 ${M} ${M}`,width:l,height:l,className:`absolute inset-0 -rotate-90`,"aria-hidden":`true`,children:[(0,j.jsx)(`circle`,{cx:M/2,cy:M/2,r:xn,stroke:`currentColor`,strokeWidth:Sn,fill:`none`,className:`text-border`}),(0,j.jsx)(`circle`,{cx:M/2,cy:M/2,r:xn,stroke:`currentColor`,strokeWidth:Sn,fill:`none`,strokeLinecap:`round`,strokeDasharray:Cn,strokeDashoffset:a?Cn*.75:c,className:u(`motion-safe:transition-[stroke-dashoffset] motion-safe:duration-150 motion-safe:ease-out`,t?`text-foreground group-hover/overlay:text-destructive`:`text-foreground`)})]}),s===null?null:(0,j.jsxs)(`span`,{className:u(`pointer-events-none select-none font-mono tabular-nums text-foreground transition-opacity`,`text-xs`,t&&`group-hover/overlay:opacity-0`),children:[s,`%`]}),t?(0,j.jsx)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),t()},className:u(`absolute inset-0 flex items-center justify-center rounded-full text-destructive transition-opacity`,s===null?``:`opacity-0 group-hover/overlay:opacity-100`,`focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-destructive`),"aria-label":i,children:(0,j.jsx)(Ye,{className:n===`sm`?`h-3.5 w-3.5`:`h-4 w-4`})}):null]})})}var Tn=E(`ExpandableRow`,({defaultExpanded:e})=>t=>({expanded:e,setExpanded:e=>t({expanded:e})})),N=E(`CopyState`,()=>e=>({copied:!1,setCopied:t=>e({copied:t})})),P=e(t(),1),En=()=>{},Dn=(0,P.createContext)(En);function On({children:e,onOpenLocalLink:t}){return(0,j.jsx)(Dn.Provider,{value:t??En,children:e})}var kn={Task:te,TaskOutput:te,Bash:Ue,Glob:_,Grep:_,ExitPlanMode:At,Read:Ot,Edit:gt,Write:vt,Delete:Et,NotebookEdit:Ke,WebFetch:tt,TodoWrite:O,TaskCreate:O,TaskUpdate:O,TaskGet:O,TaskList:O,WebSearch:_,KillShell:Kt,TaskStop:Kt,AskUserQuestion:Pt,Skill:Wt,EnterPlanMode:At},An=Jt;function jn(e){return kn[e]?kn[e]:An}function Mn({icon:e,className:t}){return(0,j.jsx)(e,{className:t})}function Nn({children:e,className:t}){return(0,j.jsx)(`div`,{className:u(`flex gap-3 justify-start items-center`,t),children:e})}function Pn({children:e,className:t}){return(0,j.jsx)(`div`,{className:u(`flex items-center gap-1.5 text-xs`,t),children:e})}function Fn({children:e,className:t}){return(0,j.jsx)(`span`,{className:u(`font-medium text-foreground/80`,t),children:e})}function In({children:e}){return(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:e})}function Ln({children:e,className:t}){return(0,j.jsxs)(Nn,{className:u(`px-0.5 text-xs tracking-wide`,t),children:[(0,j.jsx)(`div`,{className:`w-full h-[1px] bg-border`}),(0,j.jsx)(Fn,{className:`whitespace-nowrap text-xs tracking-widest text-muted-foreground/60 flex-shrink-0`,children:e}),(0,j.jsx)(`div`,{className:`w-full h-[1px] bg-border`})]})}function Rn({children:e,expandedContent:t}){let n=Tn.useScopedStore(e=>e.expanded),r=Tn.useScopedStore(e=>e.setExpanded);return(0,j.jsxs)(`div`,{className:`flex flex-col w-full`,children:[(0,j.jsxs)(`button`,{onClick:()=>r(!n),className:`group/expandable-row cursor-pointer grid grid-cols-[auto_1fr] items-center gap-1 text-sm ${n?``:`hover:opacity-60 transition-opacity`}`,children:[(0,j.jsx)(`div`,{className:`grid grid-cols-[auto_1fr] items-center gap-1.5`,children:e}),(0,j.jsx)(He,{className:`h-4.5 w-4.5 text-muted-icon translate-y-[0.5px] transition-[transform,opacity] motion-reduce:transition-none duration-200 opacity-0 group-hover/expandable-row:opacity-100 ${n?`rotate-90 opacity-100`:``}`})]}),n&&t]})}function zn({children:e,expandedContent:t,defaultExpanded:n=!1}){return(0,j.jsx)(Tn.Provider,{init:{defaultExpanded:n},children:(0,j.jsx)(Rn,{expandedContent:t,children:e})})}function Bn({label:e,children:t,copyText:n,ports:r={}}){let i=N.useScopedStore(e=>e.copied),a=N.useScopedStore(e=>e.setCopied),o=n??F(t),s=r.clipboard??w,c=r.timer??T,d=(0,P.useCallback)(async()=>{await s.writeText(o),a(!0),c.setTimeout(()=>a(!1),2e3)},[o,a,s,c]),f=(0,P.useCallback)(()=>{D(`copy code`,d())},[d]);return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:e}),(0,j.jsxs)(`div`,{className:`relative group/codeblock`,children:[(0,j.jsx)(`pre`,{className:`my-1 text-xs font-mono whitespace-no-wrap break-all bg-muted border border-border rounded-lg p-2 max-h-64 overflow-auto w-full`,children:t}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":i?`Copied`:`Copy code`,className:u(`absolute top-[4px] right-[4px] z-10 h-11 w-11 md:h-6.5 md:w-6.5 rounded-sm text-muted-foreground opacity-100 md:opacity-0 md:group-hover/codeblock:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100`,!i&&`hover:text-foreground`,i&&`hover:!bg-transparent hover:!border-transparent`),onClick:f,children:i?(0,j.jsx)(C,{className:`h-3.5 w-3.5 text-success-text`}):(0,j.jsx)(Be,{className:`h-4 w-4`})})]})]})}function Vn({label:e,children:t,copyText:n,ports:r}){return(0,j.jsx)(N.Provider,{init:void 0,children:(0,j.jsx)(Bn,{label:e,copyText:n,ports:r,children:t})})}function Hn({children:e,icon:t,className:n}){return(0,j.jsxs)(`span`,{className:u(`inline-flex items-center gap-1 px-2 py-1 bg-muted border border-border rounded-full`,n),children:[t&&(0,j.jsx)(t,{className:`h-3 w-3 text-muted-foreground`}),e]})}function Un({children:e,className:t}){return(0,j.jsxs)(`div`,{className:u(`grid grid-cols-[auto_1fr] gap-2 min-w-0`,t),children:[(0,j.jsx)(`div`,{className:` min-w-5 flex flex-col relative items-center justify-center`,children:(0,j.jsx)(`div`,{className:`min-h-full w-[1px] bg-muted-foreground/20`})}),(0,j.jsx)(`div`,{className:`-ml-[1px] min-w-0 overflow-hidden`,children:e})]})}function Wn(e){return typeof e==`object`&&!!e&&`props`in e}function F(e){return typeof e==`string`?e:typeof e==`number`?String(e):Array.isArray(e)?e.map(F).join(``):Wn(e)?F(e.props.children):``}function Gn({children:e,ports:t={},copyText:n,...r}){let i=N.useScopedStore(e=>e.copied),a=N.useScopedStore(e=>e.setCopied),o=n??F(e),s=t.clipboard??w,c=t.timer??T,d=async()=>{await s.writeText(o),a(!0),c.setTimeout(()=>a(!1),2e3)},f=()=>{D(`copy code`,d())};return(0,j.jsxs)(`div`,{className:`relative overflow-x-auto max-w-full min-w-0 no-code-highlight group/pre`,children:[(0,j.jsx)(`pre`,{className:`min-w-0 rounded-xl py-2.5 px-3.5 [.no-pre-highlight_&]:bg-background`,...r,children:e}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":i?`Copied`:`Copy code`,className:u(`absolute top-[35px] -translate-y-[50%] -translate-x-[1px] rounded-md right-1.5 h-11 w-11 md:h-8 md:w-8 text-muted-foreground opacity-100 md:opacity-0 md:group-hover/pre:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100`,!i&&`hover:text-foreground`,i&&`hover:!bg-transparent hover:!border-transparent`),onClick:f,children:i?(0,j.jsx)(C,{className:`h-4 w-4 text-success-text`}):(0,j.jsx)(Be,{className:`h-4 w-4`})})]})}function Kn({children:e,ports:t,copyText:n,...r}){return(0,j.jsx)(N.Provider,{init:void 0,children:(0,j.jsx)(Gn,{ports:t,copyText:n,...r,children:e})})}function I({source:e,ports:t,highlightLine:n}){return n===void 0?(0,j.jsx)(Kn,{ports:t,children:(0,j.jsx)(`code`,{className:`block text-xs whitespace-pre language-mermaid`,children:e})}):(0,j.jsx)(Kn,{ports:t,copyText:e,children:(0,j.jsx)(`code`,{className:`grid grid-cols-[auto_1fr] text-xs language-mermaid`,children:e.split(`
4
+ `&&(o+=1),r.push(i),n.push(r),r=[],i=``;continue}i+=s}return(i.length>0||r.length>0)&&(r.push(i),n.push(r)),n}var j=e(i(),1),xn=18,Sn=3,Cn=2*Math.PI*xn,M=42;function wn({progress:e,onCancel:t,size:n=`md`,className:r,cancelLabel:i=`Cancel upload`}){let a=e==null,o=a?0:Math.min(1,Math.max(0,e)),s=a?null:Math.round(o*100),c=Cn*(1-o),l=n===`sm`?36:48;return(0,j.jsx)(`div`,{className:u(`pointer-events-auto absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-background/85`,r),role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":s??void 0,"aria-label":a?`Uploading`:`Uploading, ${s}%`,children:(0,j.jsxs)(`div`,{className:u(`group/overlay relative inline-flex items-center justify-center`,a&&`motion-safe:animate-spin`),style:{width:l,height:l},children:[(0,j.jsxs)(`svg`,{viewBox:`0 0 ${M} ${M}`,width:l,height:l,className:`absolute inset-0 -rotate-90`,"aria-hidden":`true`,children:[(0,j.jsx)(`circle`,{cx:M/2,cy:M/2,r:xn,stroke:`currentColor`,strokeWidth:Sn,fill:`none`,className:`text-border`}),(0,j.jsx)(`circle`,{cx:M/2,cy:M/2,r:xn,stroke:`currentColor`,strokeWidth:Sn,fill:`none`,strokeLinecap:`round`,strokeDasharray:Cn,strokeDashoffset:a?Cn*.75:c,className:u(`motion-safe:transition-[stroke-dashoffset] motion-safe:duration-150 motion-safe:ease-out`,t?`text-foreground group-hover/overlay:text-destructive`:`text-foreground`)})]}),s===null?null:(0,j.jsxs)(`span`,{className:u(`pointer-events-none select-none font-mono tabular-nums text-foreground transition-opacity`,`text-xs`,t&&`group-hover/overlay:opacity-0`),children:[s,`%`]}),t?(0,j.jsx)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),t()},className:u(`absolute inset-0 flex items-center justify-center rounded-full text-destructive transition-opacity`,s===null?``:`opacity-0 group-hover/overlay:opacity-100`,`focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-destructive`),"aria-label":i,children:(0,j.jsx)(Ye,{className:n===`sm`?`h-3.5 w-3.5`:`h-4 w-4`})}):null]})})}var Tn=E(`ExpandableRow`,({defaultExpanded:e})=>t=>({expanded:e,setExpanded:e=>t({expanded:e})})),N=E(`CopyState`,()=>e=>({copied:!1,setCopied:t=>e({copied:t})})),P=e(t(),1),En=()=>{},Dn=(0,P.createContext)(En);function On({children:e,onOpenLocalLink:t}){return(0,j.jsx)(Dn.Provider,{value:t??En,children:e})}var kn={Task:te,TaskOutput:te,Bash:Ue,Glob:_,Grep:_,ExitPlanMode:At,Read:Ot,Edit:vt,Write:gt,Delete:Et,NotebookEdit:Ke,WebFetch:tt,TodoWrite:O,TaskCreate:O,TaskUpdate:O,TaskGet:O,TaskList:O,WebSearch:_,KillShell:Kt,TaskStop:Kt,AskUserQuestion:Pt,Skill:Wt,EnterPlanMode:At},An=Jt;function jn(e){return kn[e]?kn[e]:An}function Mn({icon:e,className:t}){return(0,j.jsx)(e,{className:t})}function Nn({children:e,className:t}){return(0,j.jsx)(`div`,{className:u(`flex gap-3 justify-start items-center`,t),children:e})}function Pn({children:e,className:t}){return(0,j.jsx)(`div`,{className:u(`flex items-center gap-1.5 text-xs`,t),children:e})}function Fn({children:e,className:t}){return(0,j.jsx)(`span`,{className:u(`font-medium text-foreground/80`,t),children:e})}function In({children:e}){return(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:e})}function Ln({children:e,className:t}){return(0,j.jsxs)(Nn,{className:u(`px-0.5 text-xs tracking-wide`,t),children:[(0,j.jsx)(`div`,{className:`w-full h-[1px] bg-border`}),(0,j.jsx)(Fn,{className:`whitespace-nowrap text-xs tracking-widest text-muted-foreground/60 flex-shrink-0`,children:e}),(0,j.jsx)(`div`,{className:`w-full h-[1px] bg-border`})]})}function Rn({children:e,expandedContent:t}){let n=Tn.useScopedStore(e=>e.expanded),r=Tn.useScopedStore(e=>e.setExpanded);return(0,j.jsxs)(`div`,{className:`flex flex-col w-full`,children:[(0,j.jsxs)(`button`,{onClick:()=>r(!n),className:`group/expandable-row cursor-pointer grid grid-cols-[auto_1fr] items-center gap-1 text-sm ${n?``:`hover:opacity-60 transition-opacity`}`,children:[(0,j.jsx)(`div`,{className:`grid grid-cols-[auto_1fr] items-center gap-1.5`,children:e}),(0,j.jsx)(He,{className:`h-4.5 w-4.5 text-muted-icon translate-y-[0.5px] transition-[transform,opacity] motion-reduce:transition-none duration-200 opacity-0 group-hover/expandable-row:opacity-100 ${n?`rotate-90 opacity-100`:``}`})]}),n&&t]})}function zn({children:e,expandedContent:t,defaultExpanded:n=!1}){return(0,j.jsx)(Tn.Provider,{init:{defaultExpanded:n},children:(0,j.jsx)(Rn,{expandedContent:t,children:e})})}function Bn({label:e,children:t,copyText:n,ports:r={}}){let i=N.useScopedStore(e=>e.copied),a=N.useScopedStore(e=>e.setCopied),o=n??F(t),s=r.clipboard??w,c=r.timer??T,d=(0,P.useCallback)(async()=>{await s.writeText(o),a(!0),c.setTimeout(()=>a(!1),2e3)},[o,a,s,c]),f=(0,P.useCallback)(()=>{D(`copy code`,d())},[d]);return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:e}),(0,j.jsxs)(`div`,{className:`relative group/codeblock`,children:[(0,j.jsx)(`pre`,{className:`my-1 text-xs font-mono whitespace-no-wrap break-all bg-muted border border-border rounded-lg p-2 max-h-64 overflow-auto w-full`,children:t}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":i?`Copied`:`Copy code`,className:u(`absolute top-[4px] right-[4px] z-10 h-11 w-11 md:h-6.5 md:w-6.5 rounded-sm text-muted-foreground opacity-100 md:opacity-0 md:group-hover/codeblock:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100`,!i&&`hover:text-foreground`,i&&`hover:!bg-transparent hover:!border-transparent`),onClick:f,children:i?(0,j.jsx)(C,{className:`h-3.5 w-3.5 text-success-text`}):(0,j.jsx)(Be,{className:`h-4 w-4`})})]})]})}function Vn({label:e,children:t,copyText:n,ports:r}){return(0,j.jsx)(N.Provider,{init:void 0,children:(0,j.jsx)(Bn,{label:e,copyText:n,ports:r,children:t})})}function Hn({children:e,icon:t,className:n}){return(0,j.jsxs)(`span`,{className:u(`inline-flex items-center gap-1 px-2 py-1 bg-muted border border-border rounded-full`,n),children:[t&&(0,j.jsx)(t,{className:`h-3 w-3 text-muted-foreground`}),e]})}function Un({children:e,className:t}){return(0,j.jsxs)(`div`,{className:u(`grid grid-cols-[auto_1fr] gap-2 min-w-0`,t),children:[(0,j.jsx)(`div`,{className:` min-w-5 flex flex-col relative items-center justify-center`,children:(0,j.jsx)(`div`,{className:`min-h-full w-[1px] bg-muted-foreground/20`})}),(0,j.jsx)(`div`,{className:`-ml-[1px] min-w-0 overflow-hidden`,children:e})]})}function Wn(e){return typeof e==`object`&&!!e&&`props`in e}function F(e){return typeof e==`string`?e:typeof e==`number`?String(e):Array.isArray(e)?e.map(F).join(``):Wn(e)?F(e.props.children):``}function Gn({children:e,ports:t={},copyText:n,...r}){let i=N.useScopedStore(e=>e.copied),a=N.useScopedStore(e=>e.setCopied),o=n??F(e),s=t.clipboard??w,c=t.timer??T,d=async()=>{await s.writeText(o),a(!0),c.setTimeout(()=>a(!1),2e3)},f=()=>{D(`copy code`,d())};return(0,j.jsxs)(`div`,{className:`relative overflow-x-auto max-w-full min-w-0 no-code-highlight group/pre`,children:[(0,j.jsx)(`pre`,{className:`min-w-0 rounded-xl py-2.5 px-3.5 [.no-pre-highlight_&]:bg-background`,...r,children:e}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":i?`Copied`:`Copy code`,className:u(`absolute top-[35px] -translate-y-[50%] -translate-x-[1px] rounded-md right-1.5 h-11 w-11 md:h-8 md:w-8 text-muted-foreground opacity-100 md:opacity-0 md:group-hover/pre:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100`,!i&&`hover:text-foreground`,i&&`hover:!bg-transparent hover:!border-transparent`),onClick:f,children:i?(0,j.jsx)(C,{className:`h-4 w-4 text-success-text`}):(0,j.jsx)(Be,{className:`h-4 w-4`})})]})}function Kn({children:e,ports:t,copyText:n,...r}){return(0,j.jsx)(N.Provider,{init:void 0,children:(0,j.jsx)(Gn,{ports:t,copyText:n,...r,children:e})})}function I({source:e,ports:t,highlightLine:n}){return n===void 0?(0,j.jsx)(Kn,{ports:t,children:(0,j.jsx)(`code`,{className:`block text-xs whitespace-pre language-mermaid`,children:e})}):(0,j.jsx)(Kn,{ports:t,copyText:e,children:(0,j.jsx)(`code`,{className:`grid grid-cols-[auto_1fr] text-xs language-mermaid`,children:e.split(`
5
5
  `).flatMap((e,t)=>{let r=t+1,i=r===n;return[(0,j.jsx)(`span`,{"aria-hidden":`true`,className:u(`select-none pr-3 text-right tabular-nums`,i?`bg-muted font-medium text-destructive`:`text-muted-foreground/60`),children:r},`gutter-${r}`),(0,j.jsx)(`span`,{className:u(`whitespace-pre`,i&&`bg-muted text-destructive`),children:e.length>0?e:` `},`line-${r}`)]})})})}function qn({attachment:e,previewUrl:t,onClick:n,onRemove:r,className:i,size:a=`transcript`,uploadProgress:o,onCancelUpload:s}){let c=e.contentUrl||t,l=a===`composer`,d=o!==void 0;return(0,j.jsxs)(`div`,{className:u(`group relative flex flex-row items-end`,i),children:[(0,j.jsxs)(`button`,{type:`button`,onClick:n,className:u(`group/image relative overflow-hidden rounded-xl border border-border/80 bg-background shadow-sm`,l?`min-w-[80px]`:`min-w-[200px]`),children:[c?(0,j.jsx)(`img`,{src:c,alt:e.displayName,className:u(`rounded-xl object-contain bg-muted`,l?`min-h-[50px] min-w-[80px] max-h-[120px] max-w-[200px]`:`min-h-[100px] min-w-[200px] max-h-[300px] max-w-[300px]`)}):(0,j.jsx)(`div`,{className:u(`flex items-center justify-center rounded-xl bg-muted text-muted-foreground`,l?`min-h-[64px] min-w-[80px]`:`min-h-[160px] min-w-[200px]`),children:(0,j.jsx)(mt,{className:u(l?`size-6`:`size-8`)})}),(0,j.jsxs)(`div`,{className:u(`pointer-events-none absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/75 via-black/30 to-transparent text-left opacity-0 transition-opacity duration-200 group-hover/image:opacity-100`,l?`px-2.5 pb-2 pt-6`:`px-4 pb-3 pt-10`),children:[(0,j.jsx)(`div`,{className:u(`truncate font-medium text-white`,l?`text-xs`:`text-sm`),children:e.displayName}),(0,j.jsxs)(`div`,{className:`truncate text-xs text-white/80`,children:[e.mimeType,` · `,R(e.size)]})]})]}),d?(0,j.jsx)(wn,{progress:o??null,onCancel:s,size:l?`sm`:`md`,cancelLabel:`Cancel upload of ${e.displayName}`}):null,r&&!d?(0,j.jsx)(Xn,{displayName:e.displayName,onRemove:r}):null]})}function L({attachment:e,onClick:t,onRemove:n,className:r,uploadProgress:i,onCancelUpload:a,href:o,download:s,meta:c,ariaLabel:l,disabledReason:d}){let f=Zn(e.kind===`mention`?`text`:k(e)),p=e.kind===`mention`,m=p?Jn(e.displayName):e.displayName,h=p?Yn(e.displayName):``,g=i!==void 0,_=!!d,v=u(`flex w-[200px] items-center gap-2 rounded-xl border border-border bg-background p-1 pr-3 text-left transition-colors`,_?`cursor-not-allowed opacity-60`:`hover:bg-accent/50`),y;y=p?(0,j.jsx)(`div`,{className:`max-w-[150px] truncate text-xs text-muted-foreground`,children:h?`@${h}`:`@mention`}):d?(0,j.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:d}):c===void 0?(0,j.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[e.mimeType,` · `,R(e.size)]}):(0,j.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:c});let b=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`flex min-h-10 min-w-10 items-center justify-center rounded-lg border border-border bg-muted text-muted-foreground`,children:(0,j.jsx)(Mn,{icon:f,className:`size-5`})}),(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:u(`max-w-[150px] truncate text-13 font-medium`,_?`text-muted-foreground line-through`:`text-foreground`),children:m}),y]})]});return(0,j.jsxs)(`div`,{className:u(`group relative`,r),children:[o&&!_?(0,j.jsx)(`a`,{href:o,download:s,rel:`noopener`,"aria-label":l,className:v,children:b}):(0,j.jsx)(`button`,{type:`button`,onClick:_?void 0:t,"aria-label":l,"aria-disabled":_||void 0,disabled:_,className:v,children:b}),g?(0,j.jsx)(wn,{progress:i??null,onCancel:a,size:`sm`,cancelLabel:`Cancel upload of ${e.displayName}`}):null,n&&!g?(0,j.jsx)(Xn,{displayName:e.displayName,onRemove:n}):null]})}function Jn(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n>=0?t.slice(n+1):t}function Yn(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n):``}function Xn({displayName:e,onRemove:t}){return(0,j.jsx)(`button`,{type:`button`,className:`absolute right-2 top-2 rounded-full bg-background/90 p-1 text-muted-foreground shadow-sm transition hover:bg-muted hover:text-foreground`,onClick:e=>{e.preventDefault(),e.stopPropagation(),t()},"aria-label":`Remove ${e}`,children:(0,j.jsx)(Ye,{className:`h-3.5 w-3.5`})})}function Zn(e){switch(e){case`image`:return mt;case`pdf`:return It;case`markdown`:return Bt;case`json`:return ct;case`table`:return bt;case`code`:return ut;case`text`:return St;case`archive`:return ot;case`audio`:return ft;case`video`:return wt;default:return Ot}}function R(e){return e<1024?`${e} B`:e<1048576?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/1048576).toFixed(1)} MB`}function Qn({source:e}){return(0,j.jsx)(`div`,{className:`flex h-full items-center justify-center overflow-auto`,children:(0,j.jsx)(`img`,{src:e.contentUrl,alt:e.altText??e.displayName,className:`max-h-[80dvh] w-auto max-w-full rounded-2xl object-contain`,style:{touchAction:`pinch-zoom`}})})}function $n({source:e}){return(0,j.jsxs)(`div`,{className:`flex h-full flex-col gap-2`,children:[(0,j.jsx)(`iframe`,{src:e.contentUrl,title:e.displayName,sandbox:``,className:`hidden md:block h-[75dvh] w-full rounded-xl border border-border bg-background`}),(0,j.jsx)(`a`,{href:e.contentUrl,target:`_blank`,rel:`noopener noreferrer`,className:`md:hidden inline-flex items-center justify-center rounded-xl border border-border bg-muted px-3 py-2 text-sm`,children:`Open PDF externally`})]})}var er=/<thinking>([\s\S]*?)<\/thinking>/gi;function tr(e){let t=[],n=0;er.lastIndex=0;let r;for(;(r=er.exec(e))!==null;){if(r.index>n){let i=e.slice(n,r.index);i.length>0&&t.push({kind:`text`,content:i})}t.push({kind:`thinking`,content:r[1]??``}),n=r.index+r[0].length}let i=e.slice(n),a=i.search(/<thinking>/i);if(a!==-1){let e=i.slice(0,a);e.length>0&&t.push({kind:`text`,content:e});let n=i.slice(a+10);t.push({kind:`thinking`,content:n})}else i.length>0&&t.push({kind:`text`,content:i});return nr(t)}function nr(e){let t=[];for(let n of e){let e=t[t.length-1];n.kind===`text`&&e&&e.kind===`text`?e.content+=n.content:t.push(n)}return t}var rr=/^[ \t]*(`{3,}|~{3,})/,ir=/https?:\/\/[^\s<>)\]'"]+/g,ar=/(?<![a-zA-Z0-9_])((?:PR|pull\s+request|merge\s+request|MR|issue|fix(?:es|ed)?|close[sd]?|resolve[sd]?|bug|task|ticket|story)\s+)?#(\d+)/gi,or=/[.,;:!?)\]]+$/;function sr(e){if(!e.includes(`#`)||!e.includes(`http`))return e;let t=e.split(`
6
6
  `),n=!1,r=!1,i=[];for(let e of t){if(rr.test(e)){n=!n,i.push(e);continue}if(n){i.push(e);continue}let t=cr(e);t!==e&&(r=!0),i.push(t)}return r?i.join(`
7
7
  `):e}function cr(e){if(!e.includes(`#`)||!e.includes(`http`))return e;let t=[],n=new RegExp(ir.source,`g`),r;for(;(r=n.exec(e))!==null;){let e=r[0],n=e.match(or);n&&(e=e.slice(0,-n[0].length)),t.push({start:r.index,end:r.index+e.length,url:e})}if(t.length===0)return e;let i=[],a=new RegExp(ar.source,`gi`);for(;(r=a.exec(e))!==null;){let t=e.slice(0,r.index);t.lastIndexOf(`[`)>t.lastIndexOf(`]`)||i.push({start:r.index,end:r.index+r[0].length,full:r[0],num:r[2]??``})}if(i.length===0)return e;let o=new Map;for(let n of i){let r=t.find(e=>{try{let{pathname:t,search:r}=new URL(e.url),i=t+r;return RegExp(`(?:/|\\.|-|=)${n.num}(?:[/?&#]|$)`).test(i)}catch{return!1}});if(r){o.set(n.start,r.url);continue}let i=t.find(e=>e.start>n.end);if(i){let t=e.slice(n.end,i.start);!/[.!?]\s/.test(t)&&t.length<200&&o.set(n.start,i.url)}}if(o.size===0)return e;let s=i.filter(e=>o.has(e.start)).sort((e,t)=>t.start-e.start),c=e;for(let e of s){let t=o.get(e.start);c=`${c.slice(0,e.start)}[${e.full}](${t})${c.slice(e.end)}`}return c}var lr=E(`ThinkingBlock`,()=>e=>({expanded:!1,setExpanded:t=>e({expanded:t})}));function ur({content:e}){let t=lr.useScopedStore(e=>e.expanded),n=lr.useScopedStore(e=>e.setExpanded),r=e.trim();return r.length===0?null:(0,j.jsxs)(`div`,{className:`my-3 first:mt-0 last:mb-0`,children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>n(!t),"aria-expanded":t,className:`group/thinking flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer`,children:[(0,j.jsx)(de,{className:`h-3.5 w-3.5`}),(0,j.jsx)(`span`,{className:`font-medium tracking-wider`,children:`Thinking`}),(0,j.jsx)(He,{className:u(`h-3.5 w-3.5 transition-transform duration-200`,t&&`rotate-90`)})]}),t&&(0,j.jsx)(`div`,{className:`mt-2 border-l-2 border-muted-foreground/20 pl-3 text-sm text-muted-foreground italic prose prose-sm dark:prose-invert max-w-[70ch]`,children:Me(r)})]})}var dr=(0,P.memo)(({content:e})=>(0,j.jsx)(lr.Provider,{init:void 0,children:(0,j.jsx)(ur,{content:e})})),fr=class e extends x{__mentionKind;__value;__label;__dom;constructor(e,t,n,r,i=a){super(r),this.__mentionKind=e,this.__value=t,this.__label=n,this.__dom=i}static getType(){return`kanna-mention`}static clone(t){return new e(t.__mentionKind,t.__value,t.__label,t.__key,t.__dom)}static importJSON(e){return pr({mentionKind:e.mentionKind,value:e.value,label:e.label})}exportJSON(){return{type:e.getType(),version:1,mentionKind:this.__mentionKind,value:this.__value,label:this.__label}}createDOM(e,t){let n=this.__dom.createElement(`span`);return n.dataset.lexicalDecorator=`true`,n}updateDOM(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}getTextContent(){return this.__mentionKind===`agent`?`@agent/${this.__value}`:this.__mentionKind===`project`?`@project/${this.__value}`:`@${this.__value}`}decorate(e,t){let n=this.__label;return this.__mentionKind===`agent`?(0,j.jsx)(`span`,{className:u(`inline-flex items-center rounded px-1 text-sm`,`bg-primary/10 text-primary border border-primary/20`),children:n}):this.__mentionKind===`project`?(0,j.jsx)(`span`,{className:u(`inline-flex items-center rounded px-1 text-sm font-mono`,`bg-accent text-accent-foreground border border-border`),children:n}):(0,j.jsx)(`span`,{className:u(`inline-flex items-center rounded px-1 text-sm`,`bg-muted text-muted-foreground border border-border`),children:n})}};function pr(e){return S(new fr(e.mentionKind,e.value,e.label))}var mr=class e extends x{__commandName;__hasArgument;__dom;constructor(e,t,n,r=a){super(n),this.__commandName=e,this.__hasArgument=t,this.__dom=r}static getType(){return`kanna-slash-command`}static clone(t){return new e(t.__commandName,t.__hasArgument,t.__key,t.__dom)}static importJSON(e){return hr({commandName:e.commandName,hasArgument:e.hasArgument})}exportJSON(){return{type:e.getType(),version:1,commandName:this.__commandName,hasArgument:this.__hasArgument}}createDOM(e,t){let n=this.__dom.createElement(`span`);return n.dataset.lexicalDecorator=`true`,n}updateDOM(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}getTextContent(){return this.__hasArgument?`/${this.__commandName} `:`/${this.__commandName}`}decorate(e,t){return(0,j.jsx)(`span`,{className:u(`inline-flex items-center rounded px-1 text-sm font-mono`,`bg-muted text-muted-foreground border border-border`),children:`/${this.__commandName}`})}};function hr(e){return S(new mr(e.commandName,e.hasArgument))}var gr=class e extends x{__attachment;__dom;static getType(){return`kanna-attachment`}static clone(t){return new e(t.__attachment,t.__key,t.__dom)}static importJSON(e){return _r(e.attachment)}constructor(e,t,n=a){super(t),this.__attachment=e,this.__dom=n}getAttachment(){return this.getLatest().__attachment}isInline(){return!0}isKeyboardSelectable(){return!0}getTextContent(){return``}createDOM(e,t){return this.__dom.createElement(`span`)}updateDOM(){return!1}exportJSON(){return{type:e.getType(),version:1,attachment:this.__attachment}}decorate(e,t){let n=this.getLatest().__attachment;return n.kind===`image`&&n.contentUrl?(0,j.jsx)(qn,{attachment:n,size:`composer`}):(0,j.jsx)(L,{attachment:n})}};function _r(e){return S(new gr(e))}function vr(){return h(gr)}var yr=.25,br=8,xr=.25;function Sr(e){return Math.min(br,Math.max(yr,e))}function Cr(){return e=>({scale:1,offset:{x:0,y:0},drag:null,zoomIn:()=>e(e=>{let t=Sr(e.scale+xr);return t===e.scale?e:{scale:t}}),zoomOut:()=>e(e=>{let t=Sr(e.scale-xr);return t===e.scale?e:{scale:t}}),resetView:()=>e({scale:1,offset:{x:0,y:0}}),beginDrag:(t,n)=>e(e=>({drag:{x:t-e.offset.x,y:n-e.offset.y}})),dragTo:(t,n)=>e(e=>e.drag?{offset:{x:t-e.drag.x,y:n-e.drag.y}}:e),endDrag:()=>e({drag:null})})}var z=E(`MermaidZoomModal`,Cr),wr=e(n(),1);function Tr({svg:e,onClose:t,ports:n}){let r=n?.dom??a,i=z.useScopedStore(e=>e.scale),o=z.useScopedStore(e=>e.offset),s=z.useScopedStore(e=>e.zoomIn),c=z.useScopedStore(e=>e.zoomOut),u=z.useScopedStore(e=>e.resetView),d=z.useScopedStore(e=>e.beginDrag),f=z.useScopedStore(e=>e.dragTo),p=z.useScopedStore(e=>e.endDrag);return(0,P.useEffect)(()=>r.addWindowListener(`keydown`,e=>{e.key===`Escape`&&t()}),[t,r]),(0,wr.createPortal)((0,j.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex flex-col bg-background/95`,role:`dialog`,"aria-modal":`true`,"aria-label":`Diagram zoom view`,children:[(0,j.jsxs)(`div`,{className:`flex justify-end gap-1 p-2`,children:[(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":`Zoom out`,className:`h-9 w-9`,onClick:c,children:(0,j.jsx)(We,{className:`h-4 w-4`})}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":`Zoom in`,className:`h-9 w-9`,onClick:s,children:(0,j.jsx)(qe,{className:`h-4 w-4`})}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":`Reset view`,className:`h-9 w-9`,onClick:u,children:(0,j.jsx)(Rt,{className:`h-4 w-4`})}),(0,j.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":`Close`,className:`h-9 w-9`,onClick:t,children:(0,j.jsx)(Ye,{className:`h-4 w-4`})})]}),(0,j.jsx)(`div`,{className:`flex-1 overflow-hidden touch-none cursor-grab active:cursor-grabbing`,onPointerDown:e=>d(e.clientX,e.clientY),onPointerMove:e=>f(e.clientX,e.clientY),onPointerUp:p,onPointerLeave:p,children:(0,j.jsx)(`div`,{"data-mermaid-stage":!0,className:`w-full h-full flex items-center justify-center`,style:{transform:`translate(${o.x}px, ${o.y}px) scale(${i})`},dangerouslySetInnerHTML:{__html:e}})})]}),r.getBodyElement())}function Er({svg:e,onClose:t,ports:n}){return(0,j.jsx)(z.Provider,{init:void 0,children:(0,j.jsx)(Tr,{svg:e,onClose:t,ports:n})})}var B=E(`MermaidDiagram`,()=>e=>({renderState:{status:`loading`},showSource:!1,zoomOpen:!1,copied:!1,setRenderState:t=>e({renderState:t}),setShowSource:t=>e({showSource:t}),setZoomOpen:t=>e({zoomOpen:t}),setCopied:t=>e({copied:t})})),Dr=/error on line (\d+)\s*[.:]?\s*(.*)$/i,Or=/^[\s-]*\^\s*$/;function kr(e){return e.map(e=>e.trim()).filter(e=>e.length>0).join(` `)}function Ar(e){let t=e.trim();if(t.length===0)return{line:null,summary:`Unknown error`,excerpt:null};let n=t.split(`
@@ -1,4 +1,4 @@
1
- import{o as e,t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-DiVRNtpo.js";import{t as r}from"./react-dom-CvX0TCLz.js";import{t as i}from"./jsx-runtime-BdxMnOeJ.js";import{c as a}from"./pendingActionsStore-COTh4Ztq.js";import{i as o,n as s,r as c,v as l}from"./flow-kinds-CW2TU_83.js";import{n as u}from"./useTheme-B57LIKyx.js";import"./genui-EzBIAYFE.js";import{C as d,S as f,T as p,_ as m,b as h,i as g,n as _,r as v,t as y,v as b,w as x,x as S,y as C}from"./src-B-DeWB10.js";import{t as w}from"./value-DcGlvoTp.js";import{t as T}from"./shim-DTZXyK8i.js";var E=e=>()=>e;function D(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){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:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}D.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function O(e){return!e.ctrlKey&&!e.button}function k(){return this.parentNode}function A(e,t){return t??{x:e.x,y:e.y}}function j(){return navigator.maxTouchPoints||`ontouchstart`in this}function M(){var e=O,t=k,n=A,r=j,i={},a=p(`start`,`drag`,`end`),o=0,s,c,l,u,g=0;function _(e){e.on(`mousedown.drag`,v).filter(r).on(`touchstart.drag`,T).on(`touchmove.drag`,M,h).on(`touchend.drag touchcancel.drag`,N).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function v(n,r){if(!u&&e.call(this,n,r)){var i=P(this,t.call(this,n,r),n,r,`mouse`);i&&(x(n.view).on(`mousemove.drag`,y,S).on(`mouseup.drag`,w,S),m(n.view),f(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function y(e){if(C(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>g}i.mouse(`drag`,e)}function w(e){x(e.view).on(`mousemove.drag mouseup.drag`,null),b(e.view,l),C(e),i.mouse(`end`,e)}function T(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s<o;++s)(c=P(this,a,n,r,i[s].identifier,i[s]))&&(f(n),c(`start`,n,i[s]))}function M(e){for(var t=e.changedTouches,n=t.length,r=0,a;r<n;++r)(a=i[t[r].identifier])&&(C(e),a(`drag`,e,t[r]))}function N(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(f(e),a(`end`,e,t[r]))}function P(e,t,r,s,c,l){var u=a.copy(),f=d(l||r,t),p,m,h;if((h=n.call(e,new D(`beforestart`,{sourceEvent:r,target:_,identifier:c,active:o,x:f[0],y:f[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-f[0]||0,m=h.y-f[1]||0,function n(r,a,l){var g=f,v;switch(r){case`start`:i[c]=n,v=o++;break;case`end`:delete i[c],--o;case`drag`:f=d(l||a,t),v=o}u.call(r,e,new D(r,{sourceEvent:a,subject:h,target:_,identifier:c,active:v,x:f[0]+p,y:f[1]+m,dx:f[0]-g[0],dy:f[1]-g[1],dispatch:u}),s)}}return _.filter=function(t){return arguments.length?(e=typeof t==`function`?t:E(!!t),_):e},_.container=function(e){return arguments.length?(t=typeof e==`function`?e:E(e),_):t},_.subject=function(e){return arguments.length?(n=typeof e==`function`?e:E(e),_):n},_.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:E(!!e),_):r},_.on=function(){var e=a.on.apply(a,arguments);return e===a?_:e},_.clickDistance=function(e){return arguments.length?(g=(e=+e)*e,_):Math.sqrt(g)},_}var N=e(n(),1),P=e(i());function F(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=F(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var I={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.`},L=[[-1/0,-1/0],[1/0,1/0]],R=[`Enter`,` `,`Escape`],z={"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`},B;(function(e){e.Strict=`strict`,e.Loose=`loose`})(B||={});var V;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(V||={});var H;(function(e){e.Partial=`partial`,e.Full=`full`})(H||={});var U={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},W;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(W||={});var G;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(G||={});var K;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(K||={});var ee={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top},te=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,ne=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),re=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),ie=(e,t=[0,0])=>{let{width:n,height:r}=Y(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},ae=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):re(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,_e(e,xe(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?ye(r):{x:0,y:0,width:0,height:0}},oe=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=_e(n,xe(e)),r=!0)}),r?ye(n):{x:0,y:0,width:0,height:0}},se=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=Ce(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},ce=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function le(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=Y(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function ue({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Ne(oe(le(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function de({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,I.error005());else{let{width:e,height:t}=Y(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&Fe(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Fe(d)?pe(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,I.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function fe({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=ce(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var q=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),pe=(e={x:0,y:0},t,n)=>({x:q(e.x,t[0][0],t[1][0]-(n?.width??0)),y:q(e.y,t[0][1],t[1][1]-(n?.height??0))});function me(e,t,n){let{width:r,height:i}=Y(n),{x:a,y:o}=n.internals.positionAbsolute;return pe(e,[[a,o],[a+r,o+i]],t)}var he=(e,t,n)=>e<t?q(Math.abs(e-t),1,t)/t:e>n?-q(Math.abs(e-n),1,t)/t:0,ge=(e,t,n=15,r=40)=>[he(e.x,r,t.width-r)*n,he(e.y,r,t.height-r)*n],_e=(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)}),ve=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),ye=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),be=(e,t=[0,0])=>{let{x:n,y:r}=re(e)?e.internals.positionAbsolute:ie(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},xe=(e,t=[0,0])=>{let{x:n,y:r}=re(e)?e.internals.positionAbsolute:ie(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},Se=(e,t)=>ye(_e(ve(e),ve(t))),Ce=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},we=(e,t)=>Ce(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Te=e=>J(e.width)&&J(e.height)&&J(e.x)&&J(e.y),J=e=>!isNaN(e)&&isFinite(e),Ee=(e,t)=>(e,t)=>{},De=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Oe=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?De(s,o):s},ke=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Ae(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let 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 je(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Ae(e,n),i=Ae(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Ae(e.top??e.y??0,n),i=Ae(e.bottom??e.y??0,n),a=Ae(e.left??e.x??0,t),o=Ae(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Me(e,t,n,r,i,a){let{x:o,y:s}=ke(e,[t,n,r]),{x:c,y:l}=ke({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Ne=(e,t,n,r,i,a)=>{let o=je(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=q(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Me(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},Pe=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Fe(e){return e!=null&&e!==`parent`}function Y(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Ie(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Le(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Re(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function ze(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Be(e){return{...z,...e||{}}}function Ve(e){return e===null?null:e?`valid`:`invalid`}function He(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=X(e),s=Oe({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?De(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Ue=e=>({width:e.offsetWidth,height:e.offsetHeight}),We=e=>e?.getRootNode?.()||window?.document,Ge=[`INPUT`,`SELECT`,`TEXTAREA`];function Ke(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ge.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var qe=e=>`clientX`in e,X=(e,t)=>{let n=qe(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Je=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Ue(t)}})};function Ye({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Xe(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ze({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case K.Left:return[t-Xe(t-r,a),n];case K.Right:return[t+Xe(r-t,a),n];case K.Top:return[t,n-Xe(n-i,a)];case K.Bottom:return[t,n+Xe(i-n,a)]}}function Qe({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:a=K.Top,curvature:o=.25}){let[s,c]=Ze({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Ze({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ye({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function $e({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function et({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function tt({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=_e(xe(e),xe(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),we({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},ye(a))>0}var nt=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,rt=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),it=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,I.error006()),t;let r=n.getEdgeId||nt,i;return i=te(e)?{...e}:{...e,id:r(e)},rt(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function at({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=$e({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var ot={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},st=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.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},ct=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function lt({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:r=K.Top,center:i,offset:a,stepPosition:o}){let s=ot[t],c=ot[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=st({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=$e({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function ut(e,t,n,r){let i=Math.min(ct(e,t)/2,ct(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function dt({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:a=K.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=lt({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=ut(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function ft(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function pt(e){let{sourceNode:t,targetNode:n}=e;if(!ft(t)||!ft(n))return null;let r=t.internals.handleBounds||mt(t.handles),i=n.internals.handleBounds||mt(n.handles),a=gt(r?.source??[],e.sourceHandle),o=gt(e.connectionMode===B.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,I.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||K.Bottom,c=o?.position||K.Top,l=ht(t,a,s),u=ht(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function mt(e){if(!e)return null;let t=[],n=[];for(let 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 ht(e,t,n=K.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??Y(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case K.Top:return{x:i+o/2,y:a};case K.Right:return{x:i+o,y:a+s/2};case K.Bottom:return{x:i+o/2,y:a+s};case K.Left:return{x:i,y:a+s/2}}}function gt(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function _t(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function vt(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=_t(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var yt=1e3,bt=10,xt={nodeOrigin:[0,0],nodeExtent:L,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},St={...xt,checkEquality:!0};function Ct(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function wt(e,t,n){let r=Ct(xt,n);for(let n of e.values())if(n.parentId)kt(n,e,t,r);else{let e=pe(ie(n,r.nodeOrigin),Fe(n.extent)?n.extent:r.nodeExtent,Y(n));n.internals.positionAbsolute=e}}function Tt(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Et(e){return e===`manual`}function Dt(e,t,n,r={}){let i=Ct(St,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Et(i.zIndexMode)?yt:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=pe(ie(u,i.nodeOrigin),Fe(u.extent)?u.extent:i.nodeExtent,Y(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:Tt(u,e),z:At(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&kt(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function Ot(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function kt(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=Ct(xt,r),l=e.parentId,u=t.get(l);if(!u){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}Ot(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*bt),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=jt(e,u,o,s,a&&!Et(c)?yt:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function At(e,t,n){let r=J(e.zIndex)?e.zIndex:0;return Et(n)?r:r+(e.selected?t:0)}function jt(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=Y(e),l=ie(e,n),u=Fe(e.extent)?pe(l,e.extent,c):l,d=pe({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=me(d,c,t));let f=At(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Mt(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=Se(a.get(n.parentId)?.expandedRect??be(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=Y(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Nt(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=Ue(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=Fe(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=me(h,s,n))}else m&&(h=pe(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Je(`source`,r.nodeElement,p,d,e.id),target:Je(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&kt(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:be(g,i)}))}}if(f.length>0){let e=Mt(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Pt({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Ft(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function It(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Ft(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Ft(`target`,s,c,e,i,o),t.set(r.id,r)}}function Lt(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Lt(n,t):!1}function Rt(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function zt(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Lt(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Bt({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Vt({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=De(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ht({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:S=0}){f=x(v);function C({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?ve(oe(s)):null,x=v&&l?Vt({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:De(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=de({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Bt({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function w(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=ge(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&C(a)),o=requestAnimationFrame(w)}function T(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=He(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=zt(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Bt({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let E=M().clickDistance(S).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&T(e),a=He(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=X(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=He(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,w()),!d){let t=X(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&T(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=X(e.sourceEvent,u),C(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Bt({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Rt(t,`.${g}`,v))&&(!_||Rt(t,_,v))});f.call(E)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Ut(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())we(i,be(e))>0&&r.push(e);return r}var Wt=250;function Gt(e,t,n,r){let i=[],a=1/0,o=Ut(e,n,t+Wt);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=ht(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Kt(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...ht(o,c,c.position,!0)}:c}function qt(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Jt(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Yt=()=>!0;function Xt(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Yt,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=We(e.target),E=0,D,{x:O,y:k}=X(e),A=qt(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Kt(i,A,r,c,t);if(!N)return;let P=X(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=ge(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:ht(V,B,K.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:ee[B.position],toNode:null,pointer:P};function U(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&U();function W(e){if(!M){let{x:t,y:n}=X(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;U()}if(!x()||!B){G(e);return}let a=b();P=X(e,j),D=Gt(Oe(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=Zt(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Jt(!!D,s.isValid);let u=c.get(i),f=u?ht(u,B,K.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?ke({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:ee[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function G(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,W),T.removeEventListener(`mouseup`,G),T.removeEventListener(`touchmove`,W),T.removeEventListener(`touchend`,G)}}T.addEventListener(`mousemove`,W),T.addEventListener(`mouseup`,G),T.addEventListener(`touchmove`,W),T.addEventListener(`touchend`,G)}function Zt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Yt,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=X(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=qt(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===B.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Kt(t,e,a,u,n,!0)}return _}var Qt={onPointerDown:Xt,isValid:Zt};function $t({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=x(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&Pe()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=y().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:d}}var en=e=>({x:e.x,y:e.y,zoom:e.k}),tn=({x:e,y:t,zoom:n})=>_.translate(e,t).scale(n),nn=(e,t)=>e.target.closest(`.${t}`),rn=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),an=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,on=(e,t=0,n=an,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},sn=e=>{let t=e.ctrlKey&&Pe()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function cn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(nn(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let f=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=d(u),t=f*2**sn(u);r.scaleTo(n,t,e,u);return}let p=u.deltaMode===1?20:1,m=i===V.Vertical?0:u.deltaX*p,h=i===V.Horizontal?0:u.deltaY*p;!Pe()&&u.shiftKey&&i!==V.Vertical&&(m=u.deltaY*p,h=0),r.translateBy(n,-(m/f)*a,-(h/f)*a,{internal:!0});let g=en(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,g):(e.isPanScrolling=!0,s?.(u,g)),e.panScrollTimeout=setTimeout(()=>{l?.(u,g),e.isPanScrolling=!1},150)}}function ln({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=nn(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function un({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=en(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function dn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&rn(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,en(a.transform))}}function fn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&rn(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=en(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function pn({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(nn(f,`${u}-flow__node`)||nn(f,`${u}-flow__edge`)||nn(f,`${u}-flow__selection`)||nn(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||nn(f,c)&&h||nn(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function mn({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=y().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=x(e).call(f);C({x:i.x,y:i.y,zoom:q(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(sn);async function _(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?w:g).transform(on(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function b({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:v,zoomOnScroll:y,zoomOnDoubleClick:b,panActivationKeyPressed:x=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&S();let k=i&&!C&&!r;f.clickDistance(O?1/0:!J(D)||D<0?0:D);let A=k?cn({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:v,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ln({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=un({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=dn({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=fn({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=pn({panActivationKeyPressed:x,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:y,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:v,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),b?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function S(){f.on(`zoom`,null)}async function C(e,t,n){let r=tn(e),i=f?.constrain()(r,t,n);return i&&await _(i),i}async function T(e,t){let n=tn(e);return await _(n,t),n}function E(e){if(p){let t=tn(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function D(){let e=p?v(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function O(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?w:g).scaleTo(on(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function k(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?w:g).scaleBy(on(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function A(e){f?.scaleExtent(e)}function j(e){f?.translateExtent(e)}function M(e){let t=!J(e)||e<0?0:e;f?.clickDistance(t)}return{update:b,destroy:S,setViewport:T,setViewportConstrained:C,getViewport:D,scaleTo:O,scaleBy:k,setScaleExtent:A,setTranslateExtent:j,syncViewport:E,setClickDistance:M}}var hn;(function(e){e.Line=`line`,e.Handle=`handle`})(hn||={});function gn({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function _n(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function vn(e,t){return Math.max(0,t-e)}function yn(e,t){return Math.max(0,e-t)}function bn(e,t,n){return Math.max(0,t-e,e-n)}function xn(e,t){return e?!t:t}function Sn(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=bn(E,h,g),j=bn(D,_,v);if(o){let e=0,t=0;c&&w<0?e=vn(y+w+O,o[0][0]):!c&&w>0&&(e=yn(y+E+O,o[1][0])),l&&T<0?t=vn(b+T+k,o[0][1]):!l&&T>0&&(t=yn(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=yn(y+w,s[0][0]):!c&&w<0&&(e=vn(y+E,s[1][0])),l&&T>0?t=yn(b+T,s[0][1]):!l&&T<0&&(t=vn(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=bn(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?yn(b+k+E/C,o[1][1])*C:vn(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?vn(b+E/C,s[1][1])*C:yn(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=bn(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?yn(y+D*C+O,o[1][0])/C:vn(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?vn(y+D*C,s[1][0])/C:yn(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(xn(c,l)?-w:w)/C:w=(xn(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var Cn={width:0,height:0,x:0,y:0},wn={...Cn,pointerX:0,pointerY:0,aspectRatio:1};function Tn(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function En({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=x(e),o={controlDirection:_n(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...Cn},h={...wn};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:_n(e)};let g,_=null,v=[],y,b,x,S=M().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=He(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=Fe(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=Tn(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=He(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:S,height:C}=m,w={},T=g.origin??s,{width:E,height:D,x:O,y:k}=Sn(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,T,b,x),A=E!==S,j=D!==C,M=O!==u&&A,N=k!==f&&j;if(!M&&!N&&!A&&!j)return;let P={prevValues:{...m},startX:h.x,startY:h.y,childNodes:v.map(e=>({...e,position:{...e.position}}))};if((M||N||T[0]===1||T[1]===1)&&(w.x=M?O:m.x,w.y=N?k:m.y,m.x=w.x,m.y=w.y,v.length>0)){let e=O-u,t=k-f;for(let n of v)n.position={x:n.position.x-e+T[0]*(E-S),y:n.position.y-t+T[1]*(D-C)},l.push(n)}if((A||j)&&(w.width=A&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?E:m.width,w.height=j&&(!o.resizeDirection||o.resizeDirection===`vertical`)?D:m.height,m.width=w.width,m.height=w.height),y&&g.expandParent){let e=T[0]*(w.width??0);w.x&&w.x<e&&(m.x=e,h.x-=w.x-e);let t=T[1]*(w.height??0);w.y&&w.y<t&&(m.y=t,h.y-=w.y-t)}let F=gn({width:m.width,prevWidth:S,height:m.height,prevHeight:C,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};if(p?.(e,I)===!1){m=P.prevValues,h.x=P.startX,h.y=P.startY,v.forEach((e,t)=>{e.position=P.childNodes[t].position});return}d?.(e,I),r(w,l)}).on(`end`,e=>{f?.(e,{...m}),i?.({...m})});a.call(S)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Dn=t((e=>{var t=n(),r=T();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=r.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),On=e(t(((e,t)=>{t.exports=Dn()}))(),1),kn=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},An=e=>e?kn(e):kn,{useDebugValue:jn}=N.default,{useSyncExternalStoreWithSelector:Mn}=On.default,Nn=e=>e;function Pn(e,t=Nn,n){let r=Mn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return jn(r),r}var Fn=(e,t)=>{let n=An(e),r=(e,r=t)=>Pn(n,e,r);return Object.assign(r,n),r},In=(e,t)=>e?Fn(e,t):Fn;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Ln=e(r()),Rn=(0,N.createContext)(null),zn=Rn.Provider,Bn=I.error001(`react`);function Q(e,t){let n=(0,N.useContext)(Rn);if(n===null)throw Error(Bn);return Pn(n,e,t)}function $(){let e=(0,N.useContext)(Rn);if(e===null)throw Error(Bn);return(0,N.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Vn={display:`none`},Hn={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Un=`react-flow__node-desc`,Wn=`react-flow__edge-desc`,Gn=`react-flow__aria-live`,Kn=e=>e.ariaLiveMessage,qn=e=>e.ariaLabelConfig;function Jn({rfId:e}){let t=Q(Kn);return(0,P.jsx)(`div`,{id:`${Gn}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Hn,children:t})}function Yn({rfId:e,disableKeyboardA11y:t}){let n=Q(qn);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{id:`${Un}-${e}`,style:Vn,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,P.jsx)(`div`,{id:`${Wn}-${e}`,style:Vn,children:n[`edge.a11yDescription.default`]}),!t&&(0,P.jsx)(Jn,{rfId:e})]})}var Xn=(0,N.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,P.jsx)(`div`,{className:F([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Xn.displayName=`Panel`;var Zn=`https://reactflow.dev?utm_source=attribution`;function Qn({proOptions:e,position:t=`bottom-right`}){return(0,N.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,P.jsx)(Xn,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Zn}`,children:(0,P.jsx)(`a`,{href:Zn,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var $n=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},er=e=>e.id;function tr(e,t){return Z(e.selectedNodes.map(er),t.selectedNodes.map(er))&&Z(e.selectedEdges.map(er),t.selectedEdges.map(er))}function nr({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q($n,tr);return(0,N.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var rr=e=>!!e.onSelectionChangeHandlers;function ir({onSelectionChange:e}){let t=Q(rr);return e||t?(0,P.jsx)(nr,{onSelectionChange:e}):null}var ar=[0,0],or={x:0,y:0,zoom:1},sr=[...`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`.split(`.`),`rfId`],cr=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}),lr={translateExtent:L,nodeOrigin:ar,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function ur(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(cr,Z),l=$();(0,N.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=lr,s()}),[]);let u=(0,N.useRef)(lr);return(0,N.useEffect)(()=>{for(let s of sr){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Be(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},sr.map(t=>e[t])),null}function dr(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function fr(e){let[t,n]=(0,N.useState)(e===`system`?null:e);return(0,N.useEffect)(()=>{if(e!==`system`){n(e);return}let t=dr(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?dr()?.matches?`dark`:`light`:t}var pr=typeof document<`u`?document:null;function mr(e=null,t={target:pr,actInsideInputWithModifier:!0}){let[n,r]=(0,N.useState)(!1),i=(0,N.useRef)(!1),a=(0,N.useRef)(new Set([])),[o,s]=(0,N.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,`
1
+ import{o as e,t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-DiVRNtpo.js";import{t as r}from"./react-dom-CvX0TCLz.js";import{t as i}from"./jsx-runtime-BdxMnOeJ.js";import{c as a}from"./pendingActionsStore-CxhI19V9.js";import{i as o,n as s,r as c,v as l}from"./flow-kinds-Ki2DP9nP.js";import{n as u}from"./useTheme-D9sKDPEm.js";import"./genui-C9i6j0XZ.js";import{C as d,S as f,T as p,_ as m,b as h,i as g,n as _,r as v,t as y,v as b,w as x,x as S,y as C}from"./src-B-DeWB10.js";import{t as w}from"./value-DcGlvoTp.js";import{t as T}from"./shim-DTZXyK8i.js";var E=e=>()=>e;function D(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){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:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}D.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function O(e){return!e.ctrlKey&&!e.button}function k(){return this.parentNode}function A(e,t){return t??{x:e.x,y:e.y}}function j(){return navigator.maxTouchPoints||`ontouchstart`in this}function M(){var e=O,t=k,n=A,r=j,i={},a=p(`start`,`drag`,`end`),o=0,s,c,l,u,g=0;function _(e){e.on(`mousedown.drag`,v).filter(r).on(`touchstart.drag`,T).on(`touchmove.drag`,M,h).on(`touchend.drag touchcancel.drag`,N).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function v(n,r){if(!u&&e.call(this,n,r)){var i=P(this,t.call(this,n,r),n,r,`mouse`);i&&(x(n.view).on(`mousemove.drag`,y,S).on(`mouseup.drag`,w,S),m(n.view),f(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function y(e){if(C(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>g}i.mouse(`drag`,e)}function w(e){x(e.view).on(`mousemove.drag mouseup.drag`,null),b(e.view,l),C(e),i.mouse(`end`,e)}function T(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s<o;++s)(c=P(this,a,n,r,i[s].identifier,i[s]))&&(f(n),c(`start`,n,i[s]))}function M(e){for(var t=e.changedTouches,n=t.length,r=0,a;r<n;++r)(a=i[t[r].identifier])&&(C(e),a(`drag`,e,t[r]))}function N(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(f(e),a(`end`,e,t[r]))}function P(e,t,r,s,c,l){var u=a.copy(),f=d(l||r,t),p,m,h;if((h=n.call(e,new D(`beforestart`,{sourceEvent:r,target:_,identifier:c,active:o,x:f[0],y:f[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-f[0]||0,m=h.y-f[1]||0,function n(r,a,l){var g=f,v;switch(r){case`start`:i[c]=n,v=o++;break;case`end`:delete i[c],--o;case`drag`:f=d(l||a,t),v=o}u.call(r,e,new D(r,{sourceEvent:a,subject:h,target:_,identifier:c,active:v,x:f[0]+p,y:f[1]+m,dx:f[0]-g[0],dy:f[1]-g[1],dispatch:u}),s)}}return _.filter=function(t){return arguments.length?(e=typeof t==`function`?t:E(!!t),_):e},_.container=function(e){return arguments.length?(t=typeof e==`function`?e:E(e),_):t},_.subject=function(e){return arguments.length?(n=typeof e==`function`?e:E(e),_):n},_.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:E(!!e),_):r},_.on=function(){var e=a.on.apply(a,arguments);return e===a?_:e},_.clickDistance=function(e){return arguments.length?(g=(e=+e)*e,_):Math.sqrt(g)},_}var N=e(n(),1),P=e(i());function F(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=F(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var I={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.`},L=[[-1/0,-1/0],[1/0,1/0]],R=[`Enter`,` `,`Escape`],z={"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`},B;(function(e){e.Strict=`strict`,e.Loose=`loose`})(B||={});var V;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(V||={});var H;(function(e){e.Partial=`partial`,e.Full=`full`})(H||={});var U={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},W;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(W||={});var G;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(G||={});var K;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(K||={});var ee={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top},te=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,ne=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),re=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),ie=(e,t=[0,0])=>{let{width:n,height:r}=Y(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},ae=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):re(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,_e(e,xe(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?ye(r):{x:0,y:0,width:0,height:0}},oe=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=_e(n,xe(e)),r=!0)}),r?ye(n):{x:0,y:0,width:0,height:0}},se=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=Ce(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},ce=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function le(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=Y(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function ue({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Ne(oe(le(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function de({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,I.error005());else{let{width:e,height:t}=Y(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&Fe(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Fe(d)?pe(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,I.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function fe({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=ce(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var q=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),pe=(e={x:0,y:0},t,n)=>({x:q(e.x,t[0][0],t[1][0]-(n?.width??0)),y:q(e.y,t[0][1],t[1][1]-(n?.height??0))});function me(e,t,n){let{width:r,height:i}=Y(n),{x:a,y:o}=n.internals.positionAbsolute;return pe(e,[[a,o],[a+r,o+i]],t)}var he=(e,t,n)=>e<t?q(Math.abs(e-t),1,t)/t:e>n?-q(Math.abs(e-n),1,t)/t:0,ge=(e,t,n=15,r=40)=>[he(e.x,r,t.width-r)*n,he(e.y,r,t.height-r)*n],_e=(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)}),ve=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),ye=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),be=(e,t=[0,0])=>{let{x:n,y:r}=re(e)?e.internals.positionAbsolute:ie(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},xe=(e,t=[0,0])=>{let{x:n,y:r}=re(e)?e.internals.positionAbsolute:ie(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},Se=(e,t)=>ye(_e(ve(e),ve(t))),Ce=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},we=(e,t)=>Ce(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Te=e=>J(e.width)&&J(e.height)&&J(e.x)&&J(e.y),J=e=>!isNaN(e)&&isFinite(e),Ee=(e,t)=>(e,t)=>{},De=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Oe=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?De(s,o):s},ke=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Ae(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let 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 je(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Ae(e,n),i=Ae(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Ae(e.top??e.y??0,n),i=Ae(e.bottom??e.y??0,n),a=Ae(e.left??e.x??0,t),o=Ae(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Me(e,t,n,r,i,a){let{x:o,y:s}=ke(e,[t,n,r]),{x:c,y:l}=ke({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Ne=(e,t,n,r,i,a)=>{let o=je(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=q(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Me(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},Pe=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Fe(e){return e!=null&&e!==`parent`}function Y(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Ie(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Le(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Re(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function ze(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Be(e){return{...z,...e||{}}}function Ve(e){return e===null?null:e?`valid`:`invalid`}function He(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=X(e),s=Oe({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?De(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Ue=e=>({width:e.offsetWidth,height:e.offsetHeight}),We=e=>e?.getRootNode?.()||window?.document,Ge=[`INPUT`,`SELECT`,`TEXTAREA`];function Ke(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ge.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var qe=e=>`clientX`in e,X=(e,t)=>{let n=qe(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Je=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Ue(t)}})};function Ye({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Xe(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ze({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case K.Left:return[t-Xe(t-r,a),n];case K.Right:return[t+Xe(r-t,a),n];case K.Top:return[t,n-Xe(n-i,a)];case K.Bottom:return[t,n+Xe(i-n,a)]}}function Qe({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:a=K.Top,curvature:o=.25}){let[s,c]=Ze({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Ze({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ye({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function $e({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function et({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function tt({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=_e(xe(e),xe(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),we({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},ye(a))>0}var nt=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,rt=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),it=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,I.error006()),t;let r=n.getEdgeId||nt,i;return i=te(e)?{...e}:{...e,id:r(e)},rt(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function at({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=$e({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var ot={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},st=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.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},ct=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function lt({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:r=K.Top,center:i,offset:a,stepPosition:o}){let s=ot[t],c=ot[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=st({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=$e({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function ut(e,t,n,r){let i=Math.min(ct(e,t)/2,ct(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function dt({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:a=K.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=lt({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=ut(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function ft(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function pt(e){let{sourceNode:t,targetNode:n}=e;if(!ft(t)||!ft(n))return null;let r=t.internals.handleBounds||mt(t.handles),i=n.internals.handleBounds||mt(n.handles),a=gt(r?.source??[],e.sourceHandle),o=gt(e.connectionMode===B.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,I.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||K.Bottom,c=o?.position||K.Top,l=ht(t,a,s),u=ht(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function mt(e){if(!e)return null;let t=[],n=[];for(let 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 ht(e,t,n=K.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??Y(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case K.Top:return{x:i+o/2,y:a};case K.Right:return{x:i+o,y:a+s/2};case K.Bottom:return{x:i+o/2,y:a+s};case K.Left:return{x:i,y:a+s/2}}}function gt(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function _t(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function vt(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=_t(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var yt=1e3,bt=10,xt={nodeOrigin:[0,0],nodeExtent:L,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},St={...xt,checkEquality:!0};function Ct(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function wt(e,t,n){let r=Ct(xt,n);for(let n of e.values())if(n.parentId)kt(n,e,t,r);else{let e=pe(ie(n,r.nodeOrigin),Fe(n.extent)?n.extent:r.nodeExtent,Y(n));n.internals.positionAbsolute=e}}function Tt(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Et(e){return e===`manual`}function Dt(e,t,n,r={}){let i=Ct(St,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Et(i.zIndexMode)?yt:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=pe(ie(u,i.nodeOrigin),Fe(u.extent)?u.extent:i.nodeExtent,Y(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:Tt(u,e),z:At(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&kt(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function Ot(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function kt(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=Ct(xt,r),l=e.parentId,u=t.get(l);if(!u){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}Ot(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*bt),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=jt(e,u,o,s,a&&!Et(c)?yt:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function At(e,t,n){let r=J(e.zIndex)?e.zIndex:0;return Et(n)?r:r+(e.selected?t:0)}function jt(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=Y(e),l=ie(e,n),u=Fe(e.extent)?pe(l,e.extent,c):l,d=pe({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=me(d,c,t));let f=At(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Mt(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=Se(a.get(n.parentId)?.expandedRect??be(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=Y(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Nt(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=Ue(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=Fe(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=me(h,s,n))}else m&&(h=pe(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Je(`source`,r.nodeElement,p,d,e.id),target:Je(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&kt(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:be(g,i)}))}}if(f.length>0){let e=Mt(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Pt({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Ft(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function It(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Ft(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Ft(`target`,s,c,e,i,o),t.set(r.id,r)}}function Lt(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Lt(n,t):!1}function Rt(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function zt(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Lt(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Bt({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Vt({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=De(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ht({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:S=0}){f=x(v);function C({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?ve(oe(s)):null,x=v&&l?Vt({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:De(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=de({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Bt({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function w(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=ge(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&C(a)),o=requestAnimationFrame(w)}function T(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=He(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=zt(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Bt({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let E=M().clickDistance(S).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&T(e),a=He(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=X(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=He(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,w()),!d){let t=X(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&T(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=X(e.sourceEvent,u),C(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Bt({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Rt(t,`.${g}`,v))&&(!_||Rt(t,_,v))});f.call(E)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Ut(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())we(i,be(e))>0&&r.push(e);return r}var Wt=250;function Gt(e,t,n,r){let i=[],a=1/0,o=Ut(e,n,t+Wt);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=ht(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Kt(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...ht(o,c,c.position,!0)}:c}function qt(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Jt(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Yt=()=>!0;function Xt(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Yt,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=We(e.target),E=0,D,{x:O,y:k}=X(e),A=qt(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Kt(i,A,r,c,t);if(!N)return;let P=X(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=ge(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:ht(V,B,K.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:ee[B.position],toNode:null,pointer:P};function U(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&U();function W(e){if(!M){let{x:t,y:n}=X(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;U()}if(!x()||!B){G(e);return}let a=b();P=X(e,j),D=Gt(Oe(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=Zt(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Jt(!!D,s.isValid);let u=c.get(i),f=u?ht(u,B,K.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?ke({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:ee[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function G(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,W),T.removeEventListener(`mouseup`,G),T.removeEventListener(`touchmove`,W),T.removeEventListener(`touchend`,G)}}T.addEventListener(`mousemove`,W),T.addEventListener(`mouseup`,G),T.addEventListener(`touchmove`,W),T.addEventListener(`touchend`,G)}function Zt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Yt,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=X(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=qt(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===B.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Kt(t,e,a,u,n,!0)}return _}var Qt={onPointerDown:Xt,isValid:Zt};function $t({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=x(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&Pe()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=y().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:d}}var en=e=>({x:e.x,y:e.y,zoom:e.k}),tn=({x:e,y:t,zoom:n})=>_.translate(e,t).scale(n),nn=(e,t)=>e.target.closest(`.${t}`),rn=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),an=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,on=(e,t=0,n=an,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},sn=e=>{let t=e.ctrlKey&&Pe()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function cn({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(nn(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let f=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=d(u),t=f*2**sn(u);r.scaleTo(n,t,e,u);return}let p=u.deltaMode===1?20:1,m=i===V.Vertical?0:u.deltaX*p,h=i===V.Horizontal?0:u.deltaY*p;!Pe()&&u.shiftKey&&i!==V.Vertical&&(m=u.deltaY*p,h=0),r.translateBy(n,-(m/f)*a,-(h/f)*a,{internal:!0});let g=en(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,g):(e.isPanScrolling=!0,s?.(u,g)),e.panScrollTimeout=setTimeout(()=>{l?.(u,g),e.isPanScrolling=!1},150)}}function ln({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=nn(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function un({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=en(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function dn({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&rn(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,en(a.transform))}}function fn({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&rn(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=en(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function pn({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(nn(f,`${u}-flow__node`)||nn(f,`${u}-flow__edge`)||nn(f,`${u}-flow__selection`)||nn(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||nn(f,c)&&h||nn(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function mn({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=y().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=x(e).call(f);C({x:i.x,y:i.y,zoom:q(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(sn);async function _(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?w:g).transform(on(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function b({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:v,zoomOnScroll:y,zoomOnDoubleClick:b,panActivationKeyPressed:x=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&S();let k=i&&!C&&!r;f.clickDistance(O?1/0:!J(D)||D<0?0:D);let A=k?cn({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:v,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ln({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=un({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=dn({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=fn({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=pn({panActivationKeyPressed:x,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:y,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:v,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),b?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function S(){f.on(`zoom`,null)}async function C(e,t,n){let r=tn(e),i=f?.constrain()(r,t,n);return i&&await _(i),i}async function T(e,t){let n=tn(e);return await _(n,t),n}function E(e){if(p){let t=tn(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function D(){let e=p?v(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function O(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?w:g).scaleTo(on(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function k(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?w:g).scaleBy(on(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function A(e){f?.scaleExtent(e)}function j(e){f?.translateExtent(e)}function M(e){let t=!J(e)||e<0?0:e;f?.clickDistance(t)}return{update:b,destroy:S,setViewport:T,setViewportConstrained:C,getViewport:D,scaleTo:O,scaleBy:k,setScaleExtent:A,setTranslateExtent:j,syncViewport:E,setClickDistance:M}}var hn;(function(e){e.Line=`line`,e.Handle=`handle`})(hn||={});function gn({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function _n(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function vn(e,t){return Math.max(0,t-e)}function yn(e,t){return Math.max(0,e-t)}function bn(e,t,n){return Math.max(0,t-e,e-n)}function xn(e,t){return e?!t:t}function Sn(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=bn(E,h,g),j=bn(D,_,v);if(o){let e=0,t=0;c&&w<0?e=vn(y+w+O,o[0][0]):!c&&w>0&&(e=yn(y+E+O,o[1][0])),l&&T<0?t=vn(b+T+k,o[0][1]):!l&&T>0&&(t=yn(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=yn(y+w,s[0][0]):!c&&w<0&&(e=vn(y+E,s[1][0])),l&&T>0?t=yn(b+T,s[0][1]):!l&&T<0&&(t=vn(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=bn(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?yn(b+k+E/C,o[1][1])*C:vn(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?vn(b+E/C,s[1][1])*C:yn(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=bn(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?yn(y+D*C+O,o[1][0])/C:vn(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?vn(y+D*C,s[1][0])/C:yn(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(xn(c,l)?-w:w)/C:w=(xn(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var Cn={width:0,height:0,x:0,y:0},wn={...Cn,pointerX:0,pointerY:0,aspectRatio:1};function Tn(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function En({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=x(e),o={controlDirection:_n(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...Cn},h={...wn};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:_n(e)};let g,_=null,v=[],y,b,x,S=M().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=He(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=Fe(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=Tn(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=He(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:S,height:C}=m,w={},T=g.origin??s,{width:E,height:D,x:O,y:k}=Sn(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,T,b,x),A=E!==S,j=D!==C,M=O!==u&&A,N=k!==f&&j;if(!M&&!N&&!A&&!j)return;let P={prevValues:{...m},startX:h.x,startY:h.y,childNodes:v.map(e=>({...e,position:{...e.position}}))};if((M||N||T[0]===1||T[1]===1)&&(w.x=M?O:m.x,w.y=N?k:m.y,m.x=w.x,m.y=w.y,v.length>0)){let e=O-u,t=k-f;for(let n of v)n.position={x:n.position.x-e+T[0]*(E-S),y:n.position.y-t+T[1]*(D-C)},l.push(n)}if((A||j)&&(w.width=A&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?E:m.width,w.height=j&&(!o.resizeDirection||o.resizeDirection===`vertical`)?D:m.height,m.width=w.width,m.height=w.height),y&&g.expandParent){let e=T[0]*(w.width??0);w.x&&w.x<e&&(m.x=e,h.x-=w.x-e);let t=T[1]*(w.height??0);w.y&&w.y<t&&(m.y=t,h.y-=w.y-t)}let F=gn({width:m.width,prevWidth:S,height:m.height,prevHeight:C,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};if(p?.(e,I)===!1){m=P.prevValues,h.x=P.startX,h.y=P.startY,v.forEach((e,t)=>{e.position=P.childNodes[t].position});return}d?.(e,I),r(w,l)}).on(`end`,e=>{f?.(e,{...m}),i?.({...m})});a.call(S)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Dn=t((e=>{var t=n(),r=T();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=r.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),On=e(t(((e,t)=>{t.exports=Dn()}))(),1),kn=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},An=e=>e?kn(e):kn,{useDebugValue:jn}=N.default,{useSyncExternalStoreWithSelector:Mn}=On.default,Nn=e=>e;function Pn(e,t=Nn,n){let r=Mn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return jn(r),r}var Fn=(e,t)=>{let n=An(e),r=(e,r=t)=>Pn(n,e,r);return Object.assign(r,n),r},In=(e,t)=>e?Fn(e,t):Fn;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Ln=e(r()),Rn=(0,N.createContext)(null),zn=Rn.Provider,Bn=I.error001(`react`);function Q(e,t){let n=(0,N.useContext)(Rn);if(n===null)throw Error(Bn);return Pn(n,e,t)}function $(){let e=(0,N.useContext)(Rn);if(e===null)throw Error(Bn);return(0,N.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Vn={display:`none`},Hn={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Un=`react-flow__node-desc`,Wn=`react-flow__edge-desc`,Gn=`react-flow__aria-live`,Kn=e=>e.ariaLiveMessage,qn=e=>e.ariaLabelConfig;function Jn({rfId:e}){let t=Q(Kn);return(0,P.jsx)(`div`,{id:`${Gn}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Hn,children:t})}function Yn({rfId:e,disableKeyboardA11y:t}){let n=Q(qn);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{id:`${Un}-${e}`,style:Vn,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,P.jsx)(`div`,{id:`${Wn}-${e}`,style:Vn,children:n[`edge.a11yDescription.default`]}),!t&&(0,P.jsx)(Jn,{rfId:e})]})}var Xn=(0,N.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,P.jsx)(`div`,{className:F([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Xn.displayName=`Panel`;var Zn=`https://reactflow.dev?utm_source=attribution`;function Qn({proOptions:e,position:t=`bottom-right`}){return(0,N.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,P.jsx)(Xn,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Zn}`,children:(0,P.jsx)(`a`,{href:Zn,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var $n=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},er=e=>e.id;function tr(e,t){return Z(e.selectedNodes.map(er),t.selectedNodes.map(er))&&Z(e.selectedEdges.map(er),t.selectedEdges.map(er))}function nr({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q($n,tr);return(0,N.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var rr=e=>!!e.onSelectionChangeHandlers;function ir({onSelectionChange:e}){let t=Q(rr);return e||t?(0,P.jsx)(nr,{onSelectionChange:e}):null}var ar=[0,0],or={x:0,y:0,zoom:1},sr=[...`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`.split(`.`),`rfId`],cr=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}),lr={translateExtent:L,nodeOrigin:ar,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function ur(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(cr,Z),l=$();(0,N.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=lr,s()}),[]);let u=(0,N.useRef)(lr);return(0,N.useEffect)(()=>{for(let s of sr){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Be(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},sr.map(t=>e[t])),null}function dr(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function fr(e){let[t,n]=(0,N.useState)(e===`system`?null:e);return(0,N.useEffect)(()=>{if(e!==`system`){n(e);return}let t=dr(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?dr()?.matches?`dark`:`light`:t}var pr=typeof document<`u`?document:null;function mr(e=null,t={target:pr,actInsideInputWithModifier:!0}){let[n,r]=(0,N.useState)(!1),i=(0,N.useRef)(!1),a=(0,N.useRef)(new Set([])),[o,s]=(0,N.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,`
2
2
  `).replace(`
3
3
 
4
4
  `,`