@shepai/cli 1.37.2 → 1.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/README.md +1 -1
  2. package/dist/packages/core/src/application/use-cases/features/get-feature-artifact.use-case.d.ts +19 -0
  3. package/dist/packages/core/src/application/use-cases/features/get-feature-artifact.use-case.d.ts.map +1 -0
  4. package/dist/packages/core/src/application/use-cases/features/get-feature-artifact.use-case.js +52 -0
  5. package/dist/packages/core/src/application/use-cases/features/get-research-artifact.use-case.d.ts +19 -0
  6. package/dist/packages/core/src/application/use-cases/features/get-research-artifact.use-case.d.ts.map +1 -0
  7. package/dist/packages/core/src/application/use-cases/features/get-research-artifact.use-case.js +52 -0
  8. package/dist/packages/core/src/domain/factories/spec-yaml-parser.d.ts.map +1 -1
  9. package/dist/packages/core/src/domain/factories/spec-yaml-parser.js +3 -1
  10. package/dist/packages/core/src/domain/generated/output.d.ts +84 -0
  11. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/di/container.js +14 -2
  14. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/requirements.prompt.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/requirements.prompt.js +27 -3
  16. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/research.prompt.d.ts.map +1 -1
  17. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/research.prompt.js +14 -1
  18. package/dist/packages/core/src/infrastructure/services/notifications/notification-bus.d.ts +2 -17
  19. package/dist/packages/core/src/infrastructure/services/notifications/notification-bus.d.ts.map +1 -1
  20. package/dist/packages/core/src/infrastructure/services/notifications/notification-bus.js +3 -27
  21. package/dist/src/presentation/cli/commands/feat/show.command.js +2 -2
  22. package/dist/src/presentation/web/app/actions/approve-feature.d.ts +5 -0
  23. package/dist/src/presentation/web/app/actions/approve-feature.d.ts.map +1 -0
  24. package/dist/src/presentation/web/app/actions/approve-feature.js +27 -0
  25. package/dist/src/presentation/web/app/actions/create-feature.d.ts +22 -0
  26. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -0
  27. package/dist/src/presentation/web/app/actions/create-feature.js +41 -0
  28. package/dist/src/presentation/web/app/actions/delete-feature.d.ts +6 -0
  29. package/dist/src/presentation/web/app/actions/delete-feature.d.ts.map +1 -0
  30. package/dist/src/presentation/web/app/actions/delete-feature.js +16 -0
  31. package/dist/src/presentation/web/app/actions/get-feature-artifact.d.ts +10 -0
  32. package/dist/src/presentation/web/app/actions/get-feature-artifact.d.ts.map +1 -0
  33. package/dist/src/presentation/web/app/actions/get-feature-artifact.js +43 -0
  34. package/dist/src/presentation/web/app/actions/get-research-artifact.d.ts +14 -0
  35. package/dist/src/presentation/web/app/actions/get-research-artifact.d.ts.map +1 -0
  36. package/dist/src/presentation/web/app/actions/get-research-artifact.js +25 -0
  37. package/dist/src/presentation/web/app/actions/open-folder.d.ts +6 -0
  38. package/dist/src/presentation/web/app/actions/open-folder.d.ts.map +1 -0
  39. package/dist/src/presentation/web/app/actions/open-folder.js +39 -0
  40. package/dist/src/presentation/web/app/actions/open-ide.d.ts +12 -0
  41. package/dist/src/presentation/web/app/actions/open-ide.d.ts.map +1 -0
  42. package/dist/src/presentation/web/app/actions/open-ide.js +22 -0
  43. package/dist/src/presentation/web/app/actions/open-shell.d.ts +12 -0
  44. package/dist/src/presentation/web/app/actions/open-shell.d.ts.map +1 -0
  45. package/dist/src/presentation/web/app/actions/open-shell.js +45 -0
  46. package/dist/src/presentation/web/app/actions/pick-folder.d.ts +5 -0
  47. package/dist/src/presentation/web/app/actions/pick-folder.d.ts.map +1 -0
  48. package/dist/src/presentation/web/app/actions/pick-folder.js +13 -0
  49. package/dist/src/presentation/web/app/api/agent-events/route.d.ts +1 -1
  50. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  51. package/dist/src/presentation/web/app/api/agent-events/route.js +2 -9
  52. package/dist/src/presentation/web/app/api/dialog/pick-files/route.d.ts +1 -9
  53. package/dist/src/presentation/web/app/api/dialog/pick-files/route.d.ts.map +1 -1
  54. package/dist/src/presentation/web/app/api/dialog/pick-files/route.js +3 -6
  55. package/dist/src/presentation/web/app/page.d.ts.map +1 -1
  56. package/dist/src/presentation/web/app/page.js +1 -0
  57. package/dist/src/presentation/web/components/common/add-repository-node/pick-folder.d.ts +1 -1
  58. package/dist/src/presentation/web/components/common/add-repository-node/pick-folder.d.ts.map +1 -1
  59. package/dist/src/presentation/web/components/common/add-repository-node/pick-folder.js +6 -7
  60. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
  61. package/dist/src/presentation/web/components/common/feature-create-drawer/pick-files.d.ts +1 -1
  62. package/dist/src/presentation/web/components/common/feature-create-drawer/pick-files.d.ts.map +1 -1
  63. package/dist/src/presentation/web/components/common/feature-create-drawer/pick-files.js +6 -7
  64. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -1
  65. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +7 -7
  66. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts +4 -0
  67. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.js +52 -14
  69. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +2 -2
  71. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -0
  72. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  73. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  74. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +33 -2
  75. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  76. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +10 -0
  77. package/dist/src/presentation/web/components/common/index.d.ts +3 -0
  78. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  79. package/dist/src/presentation/web/components/common/index.js +3 -0
  80. package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts +2 -0
  81. package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts.map +1 -0
  82. package/dist/src/presentation/web/components/common/notification-permission-banner/index.js +1 -0
  83. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts +2 -0
  84. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts.map +1 -0
  85. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.js +33 -0
  86. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts +6 -0
  87. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts.map +1 -0
  88. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.js +24 -0
  89. package/dist/src/presentation/web/components/common/open-action-menu/config.d.ts +10 -0
  90. package/dist/src/presentation/web/components/common/open-action-menu/config.d.ts.map +1 -0
  91. package/dist/src/presentation/web/components/common/open-action-menu/config.js +1 -0
  92. package/dist/src/presentation/web/components/common/open-action-menu/index.d.ts +3 -0
  93. package/dist/src/presentation/web/components/common/open-action-menu/index.d.ts.map +1 -0
  94. package/dist/src/presentation/web/components/common/open-action-menu/index.js +1 -0
  95. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.d.ts +3 -0
  96. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.d.ts.map +1 -0
  97. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.js +18 -0
  98. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.d.ts +14 -0
  99. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.d.ts.map +1 -0
  100. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.js +54 -0
  101. package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts +4 -0
  102. package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts.map +1 -0
  103. package/dist/src/presentation/web/components/common/prd-questionnaire/index.js +2 -0
  104. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-config.d.ts +41 -0
  105. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-config.d.ts.map +1 -0
  106. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-config.js +1 -0
  107. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts +3 -0
  108. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts.map +1 -0
  109. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.js +7 -0
  110. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.d.ts +3 -0
  111. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.d.ts.map +1 -0
  112. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +42 -0
  113. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +26 -0
  114. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -0
  115. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +267 -0
  116. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  117. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +2 -2
  118. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.d.ts +3 -0
  119. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.d.ts.map +1 -1
  120. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.js +51 -14
  121. package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts +3 -0
  122. package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts.map +1 -0
  123. package/dist/src/presentation/web/components/common/review-drawer-shell/index.js +1 -0
  124. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts +24 -0
  125. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts.map +1 -0
  126. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.js +1 -0
  127. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts +3 -0
  128. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts.map +1 -0
  129. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.js +17 -0
  130. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts +14 -0
  131. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts.map +1 -0
  132. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.js +33 -0
  133. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts +4 -0
  134. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts.map +1 -0
  135. package/dist/src/presentation/web/components/common/tech-decisions-review/index.js +2 -0
  136. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts +3 -0
  137. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts.map +1 -0
  138. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.js +7 -0
  139. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review-config.d.ts +39 -0
  140. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review-config.d.ts.map +1 -0
  141. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review-config.js +1 -0
  142. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.d.ts +3 -0
  143. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.d.ts.map +1 -0
  144. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.js +39 -0
  145. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +22 -0
  146. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -0
  147. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +108 -0
  148. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  149. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +133 -2
  150. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  151. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +28 -19
  152. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  153. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +6 -1
  154. package/dist/src/presentation/web/components/ui/drawer.d.ts.map +1 -1
  155. package/dist/src/presentation/web/components/ui/drawer.js +3 -1
  156. package/dist/src/presentation/web/components/ui/dropdown-menu.d.ts +28 -0
  157. package/dist/src/presentation/web/components/ui/dropdown-menu.d.ts.map +1 -0
  158. package/dist/src/presentation/web/components/ui/dropdown-menu.js +33 -0
  159. package/dist/src/presentation/web/hooks/agent-events-provider.d.ts +13 -0
  160. package/dist/src/presentation/web/hooks/agent-events-provider.d.ts.map +1 -0
  161. package/dist/src/presentation/web/hooks/agent-events-provider.js +20 -0
  162. package/dist/src/presentation/web/hooks/use-agent-events.d.ts.map +1 -1
  163. package/dist/src/presentation/web/hooks/use-agent-events.js +21 -1
  164. package/dist/src/presentation/web/hooks/use-notifications.d.ts +1 -5
  165. package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
  166. package/dist/src/presentation/web/hooks/use-notifications.js +5 -10
  167. package/dist/src/presentation/web/next.config.d.ts.map +1 -1
  168. package/dist/src/presentation/web/next.config.js +5 -0
  169. package/dist/tsconfig.build.tsbuildinfo +1 -1
  170. package/package.json +2 -1
  171. package/web/.next/BUILD_ID +1 -1
  172. package/web/.next/app-path-routes-manifest.json +0 -5
  173. package/web/.next/build-manifest.json +6 -6
  174. package/web/.next/cache/.previewinfo +1 -1
  175. package/web/.next/cache/.rscinfo +1 -1
  176. package/web/.next/cache/.tsbuildinfo +1 -1
  177. package/web/.next/cache/config.json +3 -3
  178. package/web/.next/fallback-build-manifest.json +2 -2
  179. package/web/.next/prerender-manifest.json +3 -3
  180. package/web/.next/required-server-files.js +4 -4
  181. package/web/.next/required-server-files.json +4 -4
  182. package/web/.next/routes-manifest.json +1 -34
  183. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  184. package/web/.next/server/app/_global-error/page.js +1 -1
  185. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  186. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  187. package/web/.next/server/app/_global-error.html +2 -2
  188. package/web/.next/server/app/_global-error.rsc +7 -7
  189. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  190. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  191. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  192. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  193. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  194. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  195. package/web/.next/server/app/_not-found/page.js +1 -1
  196. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  197. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  198. package/web/.next/server/app/api/agent-events/route.js +1 -1
  199. package/web/.next/server/app/api/agent-events/route.js.nft.json +1 -1
  200. package/web/.next/server/app/api/dialog/pick-files/route.js +2 -2
  201. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  202. package/web/.next/server/app/page/build-manifest.json +4 -4
  203. package/web/.next/server/app/page/server-reference-manifest.json +137 -1
  204. package/web/.next/server/app/page.js +2 -2
  205. package/web/.next/server/app/page.js.nft.json +1 -1
  206. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  207. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  208. package/web/.next/server/app/version/page.js +1 -1
  209. package/web/.next/server/app/version/page.js.nft.json +1 -1
  210. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  211. package/web/.next/server/app-paths-manifest.json +0 -5
  212. package/web/.next/server/chunks/{403f9_next_567de315._.js → 403f9_next_435614de._.js} +7 -6
  213. package/web/.next/server/chunks/403f9_next_435614de._.js.map +1 -0
  214. package/web/.next/server/chunks/[externals]__ba6223e5._.js +3 -0
  215. package/web/.next/server/chunks/[root-of-the-server]__7d5c8b74._.js +6 -0
  216. package/web/.next/server/chunks/[root-of-the-server]__7d5c8b74._.js.map +1 -0
  217. package/web/.next/server/chunks/ssr/[externals]_node:path_d28a9bfe._.js +3 -0
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js +12 -0
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js.map +1 -0
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__19354aea._.js +9 -0
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__19354aea._.js.map +1 -0
  222. package/web/.next/server/chunks/ssr/{[root-of-the-server]__685eaa45._.js → [root-of-the-server]__32472b89._.js} +2 -2
  223. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a21ef212._.js → [root-of-the-server]__d21f0894._.js} +2 -2
  224. package/web/.next/server/chunks/ssr/[root-of-the-server]__d21f0894._.js.map +1 -0
  225. package/web/.next/server/chunks/ssr/[root-of-the-server]__e1c44885._.js +3 -0
  226. package/web/.next/server/chunks/ssr/[root-of-the-server]__f12b60be._.js +1 -1
  227. package/web/.next/server/chunks/ssr/[root-of-the-server]__f47a461b._.js +3 -0
  228. package/web/.next/server/chunks/ssr/_285de9aa._.js +3 -0
  229. package/web/.next/server/chunks/ssr/_285de9aa._.js.map +1 -0
  230. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_94d22d37._.js → server/chunks/ssr/_b1f2507a._.js} +4 -4
  231. package/web/.next/server/chunks/ssr/_b1f2507a._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_version_version-page-client_tsx_fe9db753._.js +1 -1
  233. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_version_version-page-client_tsx_fe9db753._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  235. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_badge_tsx_964c2a3b._.js +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_badge_tsx_964c2a3b._.js.map +1 -1
  238. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
  239. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +1 -1
  240. package/web/.next/server/middleware-build-manifest.js +4 -4
  241. package/web/.next/server/pages/500.html +2 -2
  242. package/web/.next/server/server-reference-manifest.js +1 -1
  243. package/web/.next/server/server-reference-manifest.json +138 -2
  244. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  245. package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +0 -5
  246. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +6 -6
  247. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  248. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +4 -4
  249. package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +1 -34
  250. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  251. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js +1 -1
  252. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  253. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  254. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  255. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +7 -7
  256. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  257. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  258. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  259. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  260. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  261. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  262. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js +1 -1
  263. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  264. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  265. package/web/.next/standalone/src/presentation/web/.next/server/app/api/agent-events/route.js +1 -1
  266. package/web/.next/standalone/src/presentation/web/.next/server/app/api/agent-events/route.js.nft.json +1 -1
  267. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-files/route.js +2 -2
  268. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  269. package/web/.next/standalone/src/presentation/web/.next/server/app/page/build-manifest.json +4 -4
  270. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +137 -1
  271. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js +2 -2
  272. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +1 -1
  273. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  274. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +4 -4
  275. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js +1 -1
  276. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  277. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  278. package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +0 -5
  279. package/web/.next/standalone/src/presentation/web/.next/server/chunks/{403f9_next_567de315._.js → 403f9_next_435614de._.js} +7 -6
  280. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[externals]__ba6223e5._.js +3 -0
  281. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__7d5c8b74._.js +6 -0
  282. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[externals]_node:path_d28a9bfe._.js +3 -0
  283. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js +12 -0
  284. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__19354aea._.js +9 -0
  285. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__685eaa45._.js → [root-of-the-server]__32472b89._.js} +2 -2
  286. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__a21ef212._.js → [root-of-the-server]__d21f0894._.js} +2 -2
  287. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e1c44885._.js +3 -0
  288. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f12b60be._.js +1 -1
  289. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f47a461b._.js +3 -0
  290. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_285de9aa._.js +3 -0
  291. package/web/.next/{server/chunks/ssr/_94d22d37._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_b1f2507a._.js} +4 -4
  292. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_version_version-page-client_tsx_fe9db753._.js +1 -1
  293. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  294. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ui_badge_tsx_964c2a3b._.js +1 -1
  295. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
  296. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +4 -4
  297. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  298. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  299. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +138 -2
  300. package/web/.next/standalone/src/presentation/web/app/actions/approve-feature.ts +38 -0
  301. package/web/.next/standalone/src/presentation/web/app/actions/create-feature.ts +81 -0
  302. package/web/.next/standalone/src/presentation/web/app/actions/delete-feature.ts +22 -0
  303. package/web/.next/standalone/src/presentation/web/app/actions/get-feature-artifact.ts +55 -0
  304. package/web/.next/standalone/src/presentation/web/app/actions/get-research-artifact.ts +42 -0
  305. package/web/.next/standalone/src/presentation/web/app/actions/open-folder.ts +44 -0
  306. package/web/.next/standalone/src/presentation/web/app/actions/open-ide.ts +37 -0
  307. package/web/.next/standalone/src/presentation/web/app/{api/shell/open/route.ts → actions/open-shell.ts} +19 -27
  308. package/web/.next/standalone/src/presentation/web/app/{api/dialog/pick-folder/route.ts → actions/pick-folder.ts} +5 -9
  309. package/web/.next/standalone/src/presentation/web/app/api/agent-events/route.ts +2 -14
  310. package/web/.next/standalone/src/presentation/web/app/api/dialog/pick-files/route.ts +8 -10
  311. package/web/.next/standalone/src/presentation/web/app/globals.css +10 -0
  312. package/web/.next/standalone/src/presentation/web/app/page.tsx +1 -0
  313. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/pick-folder.ts +7 -7
  314. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +1 -1
  315. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/pick-files.ts +6 -7
  316. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.tsx +15 -19
  317. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/use-feature-actions.ts +61 -17
  318. package/web/.next/standalone/src/presentation/web/components/common/feature-node/agent-type-icons.tsx +10 -2
  319. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +2 -0
  320. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.stories.tsx +10 -0
  321. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx +38 -7
  322. package/web/.next/standalone/src/presentation/web/components/common/index.ts +18 -0
  323. package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/index.ts +1 -0
  324. package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.tsx +52 -0
  325. package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.tsx +55 -0
  326. package/web/.next/standalone/src/presentation/web/components/common/open-action-menu/config.ts +10 -0
  327. package/web/.next/standalone/src/presentation/web/components/common/open-action-menu/index.ts +2 -0
  328. package/web/.next/standalone/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.tsx +64 -0
  329. package/web/.next/standalone/src/presentation/web/components/common/open-action-menu/open-action-menu.tsx +111 -0
  330. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/index.ts +10 -0
  331. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-config.ts +48 -0
  332. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.tsx +34 -0
  333. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx +384 -0
  334. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.tsx +216 -0
  335. package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-node.tsx +20 -1
  336. package/web/.next/standalone/src/presentation/web/components/common/repository-node/use-repository-actions.ts +83 -20
  337. package/web/.next/standalone/src/presentation/web/components/common/review-drawer-shell/index.ts +2 -0
  338. package/web/.next/standalone/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.ts +24 -0
  339. package/web/.next/standalone/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.tsx +85 -0
  340. package/web/.next/standalone/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.tsx +139 -0
  341. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/index.ts +8 -0
  342. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.tsx +34 -0
  343. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review-config.ts +42 -0
  344. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.tsx +177 -0
  345. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.tsx +188 -0
  346. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +189 -2
  347. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +28 -19
  348. package/web/.next/standalone/src/presentation/web/components/layouts/app-shell/app-shell.tsx +11 -1
  349. package/web/.next/standalone/src/presentation/web/components/ui/drawer.tsx +4 -2
  350. package/web/.next/standalone/src/presentation/web/components/ui/dropdown-menu.tsx +187 -0
  351. package/web/.next/standalone/src/presentation/web/hooks/agent-events-provider.tsx +32 -0
  352. package/web/.next/standalone/src/presentation/web/hooks/use-agent-events.ts +23 -1
  353. package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +5 -16
  354. package/web/.next/standalone/src/presentation/web/next.config.ts +6 -0
  355. package/web/.next/standalone/src/presentation/web/package.json +2 -1
  356. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  357. package/web/.next/static/chunks/{70993ebedee7eab0.js → 084314470f2144d2.js} +1 -1
  358. package/web/.next/static/chunks/36bb03a0314fb990.css +2 -0
  359. package/web/.next/static/chunks/83ff3b6bbee54bce.js +1 -0
  360. package/web/.next/static/chunks/{fe5e04e707adb039.js → 8c0b96eb95dd31a9.js} +1 -1
  361. package/web/.next/static/chunks/{df7d29673e0ac11d.js → b13aa397579082e7.js} +1 -1
  362. package/web/.next/static/chunks/{f3b4460b1496ef52.js → cfe4dc9904fcfddb.js} +1 -1
  363. package/web/.next/static/chunks/e21d644e5a584136.js +1 -0
  364. package/web/.next/static/chunks/eca1959e083d0a45.js +10 -0
  365. package/web/.next/static/chunks/f9519a5c455143e6.js +1 -0
  366. package/web/.next/static/chunks/{c4b1e95eceaa36ca.js → fe6427c156bda6b0.js} +2 -2
  367. package/web/.next/static/chunks/{37bc3e283f734dca.js → fe70e73feb07bcfd.js} +1 -1
  368. package/web/.next/static/chunks/{turbopack-a5a88a85e7ac8e8d.js → turbopack-35ff53de4dab1e56.js} +2 -2
  369. package/web/.next/trace +1 -1
  370. package/web/.next/trace-build +1 -1
  371. package/web/.next/types/link.d.ts +1 -6
  372. package/web/.next/types/routes.d.ts +1 -6
  373. package/web/.next/types/validator.ts +0 -45
  374. package/web/package.json +2 -1
  375. package/dist/src/presentation/web/app/api/dialog/pick-folder/route.d.ts +0 -11
  376. package/dist/src/presentation/web/app/api/dialog/pick-folder/route.d.ts.map +0 -1
  377. package/dist/src/presentation/web/app/api/dialog/pick-folder/route.js +0 -16
  378. package/dist/src/presentation/web/app/api/features/[id]/route.d.ts +0 -11
  379. package/dist/src/presentation/web/app/api/features/[id]/route.d.ts.map +0 -1
  380. package/dist/src/presentation/web/app/api/features/[id]/route.js +0 -17
  381. package/dist/src/presentation/web/app/api/features/create/route.d.ts +0 -5
  382. package/dist/src/presentation/web/app/api/features/create/route.d.ts.map +0 -1
  383. package/dist/src/presentation/web/app/api/features/create/route.js +0 -65
  384. package/dist/src/presentation/web/app/api/ide/open/route.d.ts +0 -9
  385. package/dist/src/presentation/web/app/api/ide/open/route.d.ts.map +0 -1
  386. package/dist/src/presentation/web/app/api/ide/open/route.js +0 -36
  387. package/dist/src/presentation/web/app/api/shell/open/route.d.ts +0 -9
  388. package/dist/src/presentation/web/app/api/shell/open/route.d.ts.map +0 -1
  389. package/dist/src/presentation/web/app/api/shell/open/route.js +0 -57
  390. package/dist/src/presentation/web/app/api/validate-toolbar-input.d.ts +0 -18
  391. package/dist/src/presentation/web/app/api/validate-toolbar-input.d.ts.map +0 -1
  392. package/dist/src/presentation/web/app/api/validate-toolbar-input.js +0 -29
  393. package/web/.next/server/app/api/dialog/pick-folder/route/app-paths-manifest.json +0 -3
  394. package/web/.next/server/app/api/dialog/pick-folder/route/build-manifest.json +0 -11
  395. package/web/.next/server/app/api/dialog/pick-folder/route/server-reference-manifest.json +0 -4
  396. package/web/.next/server/app/api/dialog/pick-folder/route.js +0 -7
  397. package/web/.next/server/app/api/dialog/pick-folder/route.js.map +0 -5
  398. package/web/.next/server/app/api/dialog/pick-folder/route.js.nft.json +0 -1
  399. package/web/.next/server/app/api/dialog/pick-folder/route_client-reference-manifest.js +0 -2
  400. package/web/.next/server/app/api/features/[id]/route/app-paths-manifest.json +0 -3
  401. package/web/.next/server/app/api/features/[id]/route/build-manifest.json +0 -11
  402. package/web/.next/server/app/api/features/[id]/route/server-reference-manifest.json +0 -4
  403. package/web/.next/server/app/api/features/[id]/route.js +0 -7
  404. package/web/.next/server/app/api/features/[id]/route.js.map +0 -5
  405. package/web/.next/server/app/api/features/[id]/route.js.nft.json +0 -1
  406. package/web/.next/server/app/api/features/[id]/route_client-reference-manifest.js +0 -2
  407. package/web/.next/server/app/api/features/create/route/app-paths-manifest.json +0 -3
  408. package/web/.next/server/app/api/features/create/route/build-manifest.json +0 -11
  409. package/web/.next/server/app/api/features/create/route/server-reference-manifest.json +0 -4
  410. package/web/.next/server/app/api/features/create/route.js +0 -7
  411. package/web/.next/server/app/api/features/create/route.js.map +0 -5
  412. package/web/.next/server/app/api/features/create/route.js.nft.json +0 -1
  413. package/web/.next/server/app/api/features/create/route_client-reference-manifest.js +0 -2
  414. package/web/.next/server/app/api/ide/open/route/app-paths-manifest.json +0 -3
  415. package/web/.next/server/app/api/ide/open/route/build-manifest.json +0 -11
  416. package/web/.next/server/app/api/ide/open/route/server-reference-manifest.json +0 -4
  417. package/web/.next/server/app/api/ide/open/route.js +0 -7
  418. package/web/.next/server/app/api/ide/open/route.js.map +0 -5
  419. package/web/.next/server/app/api/ide/open/route.js.nft.json +0 -1
  420. package/web/.next/server/app/api/ide/open/route_client-reference-manifest.js +0 -2
  421. package/web/.next/server/app/api/shell/open/route/app-paths-manifest.json +0 -3
  422. package/web/.next/server/app/api/shell/open/route/build-manifest.json +0 -11
  423. package/web/.next/server/app/api/shell/open/route/server-reference-manifest.json +0 -4
  424. package/web/.next/server/app/api/shell/open/route.js +0 -7
  425. package/web/.next/server/app/api/shell/open/route.js.map +0 -5
  426. package/web/.next/server/app/api/shell/open/route.js.nft.json +0 -1
  427. package/web/.next/server/app/api/shell/open/route_client-reference-manifest.js +0 -2
  428. package/web/.next/server/chunks/403f9_next_567de315._.js.map +0 -1
  429. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_dialog_pick-folder_route_actions_375ed12f.js +0 -3
  430. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_[id]_route_actions_03b9a4b5.js +0 -3
  431. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_create_route_actions_de49a114.js +0 -3
  432. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_create_route_actions_de49a114.js.map +0 -1
  433. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_shell_open_route_actions_814dc5b6.js +0 -3
  434. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_shell_open_route_actions_814dc5b6.js.map +0 -1
  435. package/web/.next/server/chunks/[root-of-the-server]__04ae3a77._.js +0 -3
  436. package/web/.next/server/chunks/[root-of-the-server]__04ae3a77._.js.map +0 -1
  437. package/web/.next/server/chunks/[root-of-the-server]__3d63a020._.js +0 -8
  438. package/web/.next/server/chunks/[root-of-the-server]__3d63a020._.js.map +0 -1
  439. package/web/.next/server/chunks/[root-of-the-server]__a6bf88cc._.js +0 -4
  440. package/web/.next/server/chunks/[root-of-the-server]__a6bf88cc._.js.map +0 -1
  441. package/web/.next/server/chunks/[root-of-the-server]__acfd2769._.js +0 -3
  442. package/web/.next/server/chunks/[root-of-the-server]__acfd2769._.js.map +0 -1
  443. package/web/.next/server/chunks/[root-of-the-server]__ec87d735._.js +0 -3
  444. package/web/.next/server/chunks/[root-of-the-server]__ec87d735._.js.map +0 -1
  445. package/web/.next/server/chunks/[root-of-the-server]__ecaf05bc._.js +0 -3
  446. package/web/.next/server/chunks/[root-of-the-server]__ecaf05bc._.js.map +0 -1
  447. package/web/.next/server/chunks/[root-of-the-server]__f32c280c._.js +0 -3
  448. package/web/.next/server/chunks/[root-of-the-server]__f32c280c._.js.map +0 -1
  449. package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_ide_open_route_actions_9fe6e1cd.js +0 -3
  450. package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_ide_open_route_actions_9fe6e1cd.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__1eade43f._.js +0 -3
  452. package/web/.next/server/chunks/ssr/[root-of-the-server]__1eade43f._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__97377864._.js +0 -3
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__a21ef212._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/[root-of-the-server]__f285e474._.js +0 -3
  456. package/web/.next/server/chunks/ssr/_09afa42a._.js +0 -10
  457. package/web/.next/server/chunks/ssr/_09afa42a._.js.map +0 -1
  458. package/web/.next/server/chunks/ssr/_4676cf52._.js +0 -3
  459. package/web/.next/server/chunks/ssr/_4676cf52._.js.map +0 -1
  460. package/web/.next/server/chunks/ssr/_94d22d37._.js.map +0 -1
  461. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_a4e3cb6f.js +0 -3
  462. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_a4e3cb6f.js.map +0 -1
  463. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route/app-paths-manifest.json +0 -3
  464. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route/build-manifest.json +0 -11
  465. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route/server-reference-manifest.json +0 -4
  466. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route.js +0 -7
  467. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route.js.map +0 -5
  468. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route.js.nft.json +0 -1
  469. package/web/.next/standalone/src/presentation/web/.next/server/app/api/dialog/pick-folder/route_client-reference-manifest.js +0 -2
  470. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route/app-paths-manifest.json +0 -3
  471. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route/build-manifest.json +0 -11
  472. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route/server-reference-manifest.json +0 -4
  473. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route.js +0 -7
  474. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route.js.map +0 -5
  475. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route.js.nft.json +0 -1
  476. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/[id]/route_client-reference-manifest.js +0 -2
  477. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route/app-paths-manifest.json +0 -3
  478. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route/build-manifest.json +0 -11
  479. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route/server-reference-manifest.json +0 -4
  480. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route.js +0 -7
  481. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route.js.map +0 -5
  482. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route.js.nft.json +0 -1
  483. package/web/.next/standalone/src/presentation/web/.next/server/app/api/features/create/route_client-reference-manifest.js +0 -2
  484. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route/app-paths-manifest.json +0 -3
  485. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route/build-manifest.json +0 -11
  486. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route/server-reference-manifest.json +0 -4
  487. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route.js +0 -7
  488. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route.js.map +0 -5
  489. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route.js.nft.json +0 -1
  490. package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route_client-reference-manifest.js +0 -2
  491. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route/app-paths-manifest.json +0 -3
  492. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route/build-manifest.json +0 -11
  493. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route/server-reference-manifest.json +0 -4
  494. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route.js +0 -7
  495. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route.js.map +0 -5
  496. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route.js.nft.json +0 -1
  497. package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route_client-reference-manifest.js +0 -2
  498. package/web/.next/standalone/src/presentation/web/.next/server/chunks/744ca_web__next-internal_server_app_api_dialog_pick-folder_route_actions_375ed12f.js +0 -3
  499. package/web/.next/standalone/src/presentation/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_[id]_route_actions_03b9a4b5.js +0 -3
  500. package/web/.next/standalone/src/presentation/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_create_route_actions_de49a114.js +0 -3
  501. package/web/.next/standalone/src/presentation/web/.next/server/chunks/744ca_web__next-internal_server_app_api_shell_open_route_actions_814dc5b6.js +0 -3
  502. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__04ae3a77._.js +0 -3
  503. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__3d63a020._.js +0 -8
  504. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__a6bf88cc._.js +0 -4
  505. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__acfd2769._.js +0 -3
  506. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__ec87d735._.js +0 -3
  507. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__ecaf05bc._.js +0 -3
  508. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__f32c280c._.js +0 -3
  509. package/web/.next/standalone/src/presentation/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_ide_open_route_actions_9fe6e1cd.js +0 -3
  510. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__1eade43f._.js +0 -3
  511. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__97377864._.js +0 -3
  512. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f285e474._.js +0 -3
  513. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_09afa42a._.js +0 -10
  514. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_4676cf52._.js +0 -3
  515. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_a4e3cb6f.js +0 -3
  516. package/web/.next/standalone/src/presentation/web/app/api/features/[id]/route.ts +0 -20
  517. package/web/.next/standalone/src/presentation/web/app/api/features/create/route.ts +0 -103
  518. package/web/.next/standalone/src/presentation/web/app/api/ide/open/route.ts +0 -44
  519. package/web/.next/standalone/src/presentation/web/app/api/validate-toolbar-input.ts +0 -46
  520. package/web/.next/static/chunks/54743561bbaa307a.js +0 -8
  521. package/web/.next/static/chunks/74f27128e5fbfe52.css +0 -2
  522. package/web/.next/static/chunks/9993505b2a26c454.js +0 -1
  523. package/web/.next/static/chunks/c95b4cf170b7f301.js +0 -1
  524. package/web/.next/static/chunks/e78d1b265b8110c3.js +0 -1
  525. /package/web/.next/server/chunks/{744ca_web__next-internal_server_app_api_dialog_pick-folder_route_actions_375ed12f.js.map → [externals]__ba6223e5._.js.map} +0 -0
  526. /package/web/.next/server/chunks/{744ca_web__next-internal_server_app_api_features_[id]_route_actions_03b9a4b5.js.map → ssr/[externals]_node:path_d28a9bfe._.js.map} +0 -0
  527. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__685eaa45._.js.map → [root-of-the-server]__32472b89._.js.map} +0 -0
  528. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__f285e474._.js.map → [root-of-the-server]__e1c44885._.js.map} +0 -0
  529. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__97377864._.js.map → [root-of-the-server]__f47a461b._.js.map} +0 -0
  530. /package/web/.next/static/{AaXDy79mMK8ywoCbOquJB → yvV-GEMagQiZhZAF0YqQs}/_buildManifest.js +0 -0
  531. /package/web/.next/static/{AaXDy79mMK8ywoCbOquJB → yvV-GEMagQiZhZAF0YqQs}/_clientMiddlewareManifest.json +0 -0
  532. /package/web/.next/static/{AaXDy79mMK8ywoCbOquJB → yvV-GEMagQiZhZAF0YqQs}/_ssgManifest.js +0 -0
@@ -1,8 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25661,(e,t,n)=>{"use strict";var r=e.r(79054),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useState,a=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var d="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),o=r[0].inst,d=r[1];return s(function(){o.value=n,o.getSnapshot=t,u(o)&&d({inst:o})},[e,n,t]),a(function(){return u(o)&&d({inst:o}),e(function(){u(o)&&d({inst:o})})},[e]),l(n),n};n.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:d},56032,(e,t,n)=>{"use strict";t.exports=e.r(25661)},20206,(e,t,n)=>{"use strict";var r=e.r(79054),o=e.r(56032),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=o.useSyncExternalStore,s=r.useRef,l=r.useEffect,u=r.useMemo,d=r.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var c=s(null);if(null===c.current){var h={hasValue:!1,value:null};c.current=h}else h=c.current;var f=a(e,(c=u(function(){function e(e){if(!l){if(l=!0,a=e,e=r(e),void 0!==o&&h.hasValue){var t=h.value;if(o(t,e))return s=t}return s=e}if(t=s,i(a,e))return t;var n=r(e);return void 0!==o&&o(t,n)?(a=e,t):(a=e,s=n)}var a,s,l=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,r,o]))[0],c[1]);return l(function(){h.hasValue=!0,h.value=f},[f]),d(f),f}},96482,(e,t,n)=>{"use strict";t.exports=e.r(20206)},53271,92002,17840,e=>{"use strict";e.i(44172);var t,n,r,o,i,a,s,l,u,d,c,h,f,p,g,m,y,v=e.i(20314),x=e.i(79054);function w(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)""!==(r=w(e[n]))&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var b={value:()=>{}};function E(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw Error("illegal type: "+e);r[e]=[]}return new k(r)}function k(e){this._=e}function _(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=b,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}function C(){}function N(e){return null==e?C:function(){return this.querySelector(e)}}function j(){return[]}function S(e){return null==e?j:function(){return this.querySelectorAll(e)}}function M(e){return function(){return this.matches(e)}}function P(e){return function(t){return t.matches(e)}}k.prototype=E.prototype={constructor:k,on:function(e,t){var n,r=this._,o=(e+"").trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw Error("unknown type: "+e);return{type:e,name:t}}),i=-1,a=o.length;if(arguments.length<2){for(;++i<a;)if((n=(e=o[i]).type)&&(n=function(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}(r[n],e.name)))return n;return}if(null!=t&&"function"!=typeof t)throw Error("invalid callback: "+t);for(;++i<a;)if(n=(e=o[i]).type)r[n]=_(r[n],e.name,t);else if(null==t)for(n in r)r[n]=_(r[n],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new k(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw Error("unknown type: "+e);for(r=this._[e],i=0,n=r.length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};var O=Array.prototype.find;function R(){return this.firstElementChild}var A=Array.prototype.filter;function z(){return Array.from(this.children)}function D(e){return Array(e.length)}function T(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function $(e,t,n,r,o,i){for(var a,s=0,l=t.length,u=i.length;s<u;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new T(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function I(e,t,n,r,o,i,a){var s,l,u,d=new Map,c=t.length,h=i.length,f=Array(c);for(s=0;s<c;++s)(l=t[s])&&(f[s]=u=a.call(l,l.__data__,s,t)+"",d.has(u)?o[s]=l:d.set(u,l));for(s=0;s<h;++s)u=a.call(e,i[s],s,i)+"",(l=d.get(u))?(r[s]=l,l.__data__=i[s],d.delete(u)):n[s]=new T(e,i[s]);for(s=0;s<c;++s)(l=t[s])&&d.get(f[s])===l&&(o[s]=l)}function L(e){return e.__data__}function B(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}T.prototype={constructor:T,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var H="http://www.w3.org/1999/xhtml";let F={svg:"http://www.w3.org/2000/svg",xhtml:H,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function V(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),F.hasOwnProperty(t)?{space:F[t],local:e}:e}function X(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Y(e,t){return e.style.getPropertyValue(t)||X(e).getComputedStyle(e,null).getPropertyValue(t)}function W(e){return e.trim().split(/^|\s+/)}function q(e){return e.classList||new Z(e)}function Z(e){this._node=e,this._names=W(e.getAttribute("class")||"")}function G(e,t){for(var n=q(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function K(e,t){for(var n=q(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function U(){this.textContent=""}function Q(){this.innerHTML=""}function J(){this.nextSibling&&this.parentNode.appendChild(this)}function ee(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function et(e){var t=V(e);return(t.local?function(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}:function(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===H&&t.documentElement.namespaceURI===H?t.createElement(e):t.createElementNS(n,e)}})(t)}function en(){return null}function er(){var e=this.parentNode;e&&e.removeChild(this)}function eo(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ei(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ea(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)(n=t[r],e.type&&n.type!==e.type||n.name!==e.name)?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function es(e,t,n){return function(){var r,o=this.__on,i=function(e){t.call(this,e,this.__data__)};if(o){for(var a=0,s=o.length;a<s;++a)if((r=o[a]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function el(e,t,n){var r=X(e),o=r.CustomEvent;"function"==typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}Z.prototype={add:function(e){0>this._names.indexOf(e)&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var eu=[null];function ed(e,t){this._groups=e,this._parents=t}function ec(){return new ed([[document.documentElement]],eu)}function eh(e){return"string"==typeof e?new ed([[document.querySelector(e)]],[document.documentElement]):new ed([[e]],eu)}function ef(e,t){if(e=function(e){let t;for(;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}ed.prototype=ec.prototype={constructor:ed,select:function(e){"function"!=typeof e&&(e=N(e));for(var t=this._groups,n=t.length,r=Array(n),o=0;o<n;++o)for(var i,a,s=t[o],l=s.length,u=r[o]=Array(l),d=0;d<l;++d)(i=s[d])&&(a=e.call(i,i.__data__,d,s))&&("__data__"in i&&(a.__data__=i.__data__),u[d]=a);return new ed(r,this._parents)},selectAll:function(e){if("function"==typeof e){var t;t=e,e=function(){var e;return e=t.apply(this,arguments),null==e?[]:Array.isArray(e)?e:Array.from(e)}}else e=S(e);for(var n=this._groups,r=n.length,o=[],i=[],a=0;a<r;++a)for(var s,l=n[a],u=l.length,d=0;d<u;++d)(s=l[d])&&(o.push(e.call(s,s.__data__,d,l)),i.push(s));return new ed(o,i)},selectChild:function(e){var t;return this.select(null==e?R:(t="function"==typeof e?e:P(e),function(){return O.call(this.children,t)}))},selectChildren:function(e){var t;return this.selectAll(null==e?z:(t="function"==typeof e?e:P(e),function(){return A.call(this.children,t)}))},filter:function(e){"function"!=typeof e&&(e=M(e));for(var t=this._groups,n=t.length,r=Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],u=0;u<s;++u)(i=a[u])&&e.call(i,i.__data__,u,a)&&l.push(i);return new ed(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,L);var n=t?I:$,r=this._parents,o=this._groups;"function"!=typeof e&&(v=e,e=function(){return v});for(var i=o.length,a=Array(i),s=Array(i),l=Array(i),u=0;u<i;++u){var d=r[u],c=o[u],h=c.length,f="object"==typeof(y=e.call(d,d&&d.__data__,u,r))&&"length"in y?y:Array.from(y),p=f.length,g=s[u]=Array(p),m=a[u]=Array(p);n(d,c,g,m,l[u]=Array(h),f,t);for(var y,v,x,w,b=0,E=0;b<p;++b)if(x=g[b]){for(b>=E&&(E=b+1);!(w=m[E])&&++E<p;);x._next=w||null}}return(a=new ed(a,r))._enter=s,a._exit=l,a},enter:function(){return new ed(this._enter||this._groups.map(D),this._parents)},exit:function(){return new ed(this._exit||this._groups.map(D),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=Array(o),l=0;l<a;++l)for(var u,d=n[l],c=r[l],h=d.length,f=s[l]=Array(h),p=0;p<h;++p)(u=d[p]||c[p])&&(f[p]=u);for(;l<o;++l)s[l]=n[l];return new ed(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=B);for(var n=this._groups,r=n.length,o=Array(r),i=0;i<r;++i){for(var a,s=n[i],l=s.length,u=o[i]=Array(l),d=0;d<l;++d)(a=s[d])&&(u[d]=a);u.sort(t)}return new ed(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(let t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,s=i.length;a<s;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=V(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?function(e){return function(){this.removeAttributeNS(e.space,e.local)}}:function(e){return function(){this.removeAttribute(e)}}:"function"==typeof t?n.local?function(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}:function(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}:n.local?function(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}:function(e,t){return function(){this.setAttribute(e,t)}})(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?function(e){return function(){this.style.removeProperty(e)}}:"function"==typeof t?function(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}:function(e,t,n){return function(){this.style.setProperty(e,t,n)}})(e,t,null==n?"":n)):Y(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?function(e){return function(){delete this[e]}}:"function"==typeof t?function(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}:function(e,t){return function(){this[e]=t}})(e,t)):this.node()[e]},classed:function(e,t){var n=W(e+"");if(arguments.length<2){for(var r=q(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"==typeof t?function(e,t){return function(){(t.apply(this,arguments)?G:K)(this,e)}}:t?function(e){return function(){G(this,e)}}:function(e){return function(){K(this,e)}})(n,t))},text:function(e){return arguments.length?this.each(null==e?U:("function"==typeof e?function(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}:function(e){return function(){this.textContent=e}})(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?Q:("function"==typeof e?function(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}:function(e){return function(){this.innerHTML=e}})(e)):this.node().innerHTML},raise:function(){return this.each(J)},lower:function(){return this.each(ee)},append:function(e){var t="function"==typeof e?e:et(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})},insert:function(e,t){var n="function"==typeof e?e:et(e),r=null==t?en:"function"==typeof t?t:N(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(er)},clone:function(e){return this.select(e?ei:eo)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=(e+"").trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}),a=i.length;if(arguments.length<2){var s=this.node().__on;if(s){for(var l,u=0,d=s.length;u<d;++u)for(r=0,l=s[u];r<a;++r)if((o=i[r]).type===l.type&&o.name===l.name)return l.value}return}for(r=0,s=t?es:ea;r<a;++r)this.each(s(i[r],t,n));return this},dispatch:function(e,t){return this.each(("function"==typeof t?function(e,t){return function(){return el(this,e,t.apply(this,arguments))}}:function(e,t){return function(){return el(this,e,t)}})(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};let ep={passive:!1},eg={capture:!0,passive:!1};function em(e){e.stopImmediatePropagation()}function ey(e){e.preventDefault(),e.stopImmediatePropagation()}function ev(e){var t=e.document.documentElement,n=eh(e).on("dragstart.drag",ey,eg);"onselectstart"in t?n.on("selectstart.drag",ey,eg):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function ex(e,t){var n=e.document.documentElement,r=eh(e).on("dragstart.drag",null);t&&(r.on("click.drag",ey,eg),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}let ew=e=>()=>e;function eb(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:s,dx:l,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}function eE(e){return!e.ctrlKey&&!e.button}function ek(){return this.parentNode}function e_(e,t){return null==t?{x:e.x,y:e.y}:t}function eC(){return navigator.maxTouchPoints||"ontouchstart"in this}function eN(){var e,t,n,r,o=eE,i=ek,a=e_,s=eC,l={},u=E("start","drag","end"),d=0,c=0;function h(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,ep).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!r&&o.call(this,a,s)){var l=x(this,i.call(this,a,s),a,s,"mouse");l&&(eh(a.view).on("mousemove.drag",p,eg).on("mouseup.drag",g,eg),ev(a.view),em(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function p(r){if(ey(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>c}l.mouse("drag",r)}function g(e){eh(e.view).on("mousemove.drag mouseup.drag",null),ex(e.view,n),ey(e),l.mouse("end",e)}function m(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(r=x(this,s,e,t,a[n].identifier,a[n]))&&(em(e),r("start",e,a[n]))}}function y(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=l[r[t].identifier])&&(ey(e),n("drag",e,r[t]))}function v(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout(function(){r=null},500),t=0;t<i;++t)(n=l[o[t].identifier])&&(em(e),n("end",e,o[t]))}function x(e,t,n,r,o,i){var s,c,f,p=u.copy(),g=ef(i||n,t);if(null!=(f=a.call(e,new eb("beforestart",{sourceEvent:n,target:h,identifier:o,active:d,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),r)))return s=f.x-g[0]||0,c=f.y-g[1]||0,function n(i,a,u){var m,y=g;switch(i){case"start":l[o]=n,m=d++;break;case"end":delete l[o],--d;case"drag":g=ef(u||a,t),m=d}p.call(i,e,new eb(i,{sourceEvent:a,subject:f,target:h,identifier:o,active:m,x:g[0]+s,y:g[1]+c,dx:g[0]-y[0],dy:g[1]-y[1],dispatch:p}),r)}}return h.filter=function(e){return arguments.length?(o="function"==typeof e?e:ew(!!e),h):o},h.container=function(e){return arguments.length?(i="function"==typeof e?e:ew(e),h):i},h.subject=function(e){return arguments.length?(a="function"==typeof e?e:ew(e),h):a},h.touchable=function(e){return arguments.length?(s="function"==typeof e?e:ew(!!e),h):s},h.on=function(){var e=u.on.apply(u,arguments);return e===u?h:e},h.clickDistance=function(e){return arguments.length?(c=(e*=1)*e,h):Math.sqrt(c)},h}function ej(e){return((e=Math.exp(e))+1/e)/2}eb.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};let eS=function e(t,n,r){function o(e,o){var i,a,s=e[0],l=e[1],u=e[2],d=o[0],c=o[1],h=o[2],f=d-s,p=c-l,g=f*f+p*p;if(g<1e-12)a=Math.log(h/u)/t,i=function(e){return[s+e*f,l+e*p,u*Math.exp(t*e*a)]};else{var m=Math.sqrt(g),y=(h*h-u*u+r*g)/(2*u*n*m),v=(h*h-u*u-r*g)/(2*h*n*m),x=Math.log(Math.sqrt(y*y+1)-y);a=(Math.log(Math.sqrt(v*v+1)-v)-x)/t,i=function(e){var r,o,i=e*a,d=ej(x),c=u/(n*m)*(d*(((r=Math.exp(2*(r=t*i+x)))-1)/(r+1))-((o=Math.exp(o=x))-1/o)/2);return[s+c*f,l+c*p,u*d/ej(t*i+x)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4);var eM,eP,eO=0,eR=0,eA=0,ez=0,eD=0,eT=0,e$="object"==typeof performance&&performance.now?performance:Date,eI="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function eL(){return eD||(eI(eB),eD=e$.now()+eT)}function eB(){eD=0}function eH(){this._call=this._time=this._next=null}function eF(e,t,n){var r=new eH;return r.restart(e,t,n),r}function eV(){eD=(ez=e$.now())+eT,eO=eR=0;try{eL(),++eO;for(var e,t=eM;t;)(e=eD-t._time)>=0&&t._call.call(void 0,e),t=t._next;--eO}finally{eO=0,function(){for(var e,t,n=eM,r=1/0;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:eM=t);eP=e,eY(r)}(),eD=0}}function eX(){var e=e$.now(),t=e-ez;t>1e3&&(eT-=t,ez=e)}function eY(e){!eO&&(eR&&(eR=clearTimeout(eR)),e-eD>24?(e<1/0&&(eR=setTimeout(eV,e-e$.now()-eT)),eA&&(eA=clearInterval(eA))):(eA||(ez=e$.now(),eA=setInterval(eX,1e3)),eO=1,eI(eV)))}function eW(e,t,n){var r=new eH;return t=null==t?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}eH.prototype=eF.prototype={constructor:eH,restart:function(e,t,n){if("function"!=typeof e)throw TypeError("callback is not a function");n=(null==n?eL():+n)+(null==t?0:+t),this._next||eP===this||(eP?eP._next=this:eM=this,eP=this),this._call=e,this._time=n,eY()},stop:function(){this._call&&(this._call=null,this._time=1/0,eY())}};var eq=E("start","end","cancel","interrupt"),eZ=[];function eG(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(l){var u,d,c,h;if(1!==n.state)return s();for(u in o)if((h=o[u]).name===n.name){if(3===h.state)return eW(i);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete o[u]):+u<t&&(h.state=6,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete o[u])}if(eW(function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(u=0,n.state=3,r=Array(c=n.tween.length),d=-1;u<c;++u)(h=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(r[++d]=h);r.length=d+1}}function a(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(s),n.state=5,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),s())}function s(){for(var r in n.state=6,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=eF(function(e){n.state=1,n.timer.restart(i,n.delay,n.time),n.delay<=e&&i(e-n.delay)},0,n.time)}(e,n,{name:t,index:r,group:o,on:eq,tween:eZ,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function eK(e,t){var n=eQ(e,t);if(n.state>0)throw Error("too late; already scheduled");return n}function eU(e,t){var n=eQ(e,t);if(n.state>3)throw Error("too late; already running");return n}function eQ(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error("transition not found");return n}function eJ(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i){if((n=i[o]).name!==t){a=!1;continue}r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]}a&&delete e.__transition}}function e0(e,t){return e*=1,t*=1,function(n){return e*(1-n)+t*n}}var e1=180/Math.PI,e2={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function e5(e,t,n,r,o,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*e1,skewX:Math.atan(l)*e1,scaleX:a,scaleY:s}}function e3(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var s,l,u,d,c=[],h=[];return i=e(i),a=e(a),!function(e,r,o,i,a,s){if(e!==o||r!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:e0(e,o)},{i:l-2,x:e0(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,c,h),s=i.rotate,l=a.rotate,s!==l?(s-l>180?l+=360:l-s>180&&(s+=360),h.push({i:c.push(o(c)+"rotate(",null,r)-2,x:e0(s,l)})):l&&c.push(o(c)+"rotate("+l+r),u=i.skewX,d=a.skewX,u!==d?h.push({i:c.push(o(c)+"skewX(",null,r)-2,x:e0(u,d)}):d&&c.push(o(c)+"skewX("+d+r),!function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:e0(e,n)},{i:s-2,x:e0(t,r)})}else(1!==n||1!==r)&&i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,c,h),i=a=null,function(e){for(var t,n=-1,r=h.length;++n<r;)c[(t=h[n]).i]=t.x(e);return c.join("")}}}var e4=e3(function(e){let t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?e2:e5(t.a,t.b,t.c,t.d,t.e,t.f)},"px, ","px)","deg)"),e6=e3(function(e){return null==e?e2:(u||(u=document.createElementNS("http://www.w3.org/2000/svg","g")),u.setAttribute("transform",e),e=u.transform.baseVal.consolidate())?e5((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):e2},", ",")",")");function e8(e,t,n){var r=e._id;return e.each(function(){var e=eU(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)}),function(e){return eQ(e,r).value[t]}}function e7(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function e9(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function te(){}var tt="\\s*([+-]?\\d+)\\s*",tn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",tr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",to=/^#([0-9a-f]{3,8})$/,ti=RegExp(`^rgb\\(${tt},${tt},${tt}\\)$`),ta=RegExp(`^rgb\\(${tr},${tr},${tr}\\)$`),ts=RegExp(`^rgba\\(${tt},${tt},${tt},${tn}\\)$`),tl=RegExp(`^rgba\\(${tr},${tr},${tr},${tn}\\)$`),tu=RegExp(`^hsl\\(${tn},${tr},${tr}\\)$`),td=RegExp(`^hsla\\(${tn},${tr},${tr},${tn}\\)$`),tc={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function th(){return this.rgb().formatHex()}function tf(){return this.rgb().formatRgb()}function tp(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=to.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?tg(t):3===n?new tv(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?tm(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?tm(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=ti.exec(e))?new tv(t[1],t[2],t[3],1):(t=ta.exec(e))?new tv(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ts.exec(e))?tm(t[1],t[2],t[3],t[4]):(t=tl.exec(e))?tm(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=tu.exec(e))?t_(t[1],t[2]/100,t[3]/100,1):(t=td.exec(e))?t_(t[1],t[2]/100,t[3]/100,t[4]):tc.hasOwnProperty(e)?tg(tc[e]):"transparent"===e?new tv(NaN,NaN,NaN,0):null}function tg(e){return new tv(e>>16&255,e>>8&255,255&e,1)}function tm(e,t,n,r){return r<=0&&(e=t=n=NaN),new tv(e,t,n,r)}function ty(e,t,n,r){var o;return 1==arguments.length?((o=e)instanceof te||(o=tp(o)),o)?new tv((o=o.rgb()).r,o.g,o.b,o.opacity):new tv:new tv(e,t,n,null==r?1:r)}function tv(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function tx(){return`#${tk(this.r)}${tk(this.g)}${tk(this.b)}`}function tw(){let e=tb(this.opacity);return`${1===e?"rgb(":"rgba("}${tE(this.r)}, ${tE(this.g)}, ${tE(this.b)}${1===e?")":`, ${e})`}`}function tb(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function tE(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function tk(e){return((e=tE(e))<16?"0":"")+e.toString(16)}function t_(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new tN(e,t,n,r)}function tC(e){if(e instanceof tN)return new tN(e.h,e.s,e.l,e.opacity);if(e instanceof te||(e=tp(e)),!e)return new tN;if(e instanceof tN)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,l=(i+o)/2;return s?(a=t===i?(n-r)/s+(n<r)*6:n===i?(r-t)/s+2:(t-n)/s+4,s/=l<.5?i+o:2-i-o,a*=60):s=l>0&&l<1?0:a,new tN(a,s,l,e.opacity)}function tN(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function tj(e){return(e=(e||0)%360)<0?e+360:e}function tS(e){return Math.max(0,Math.min(1,e||0))}function tM(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function tP(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}e7(te,tp,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:th,formatHex:th,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return tC(this).formatHsl()},formatRgb:tf,toString:tf}),e7(tv,ty,e9(te,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new tv(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new tv(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new tv(tE(this.r),tE(this.g),tE(this.b),tb(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:tx,formatHex:tx,formatHex8:function(){return`#${tk(this.r)}${tk(this.g)}${tk(this.b)}${tk((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:tw,toString:tw})),e7(tN,function(e,t,n,r){return 1==arguments.length?tC(e):new tN(e,t,n,null==r?1:r)},e9(te,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new tN(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new tN(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new tv(tM(e>=240?e-240:e+120,o,r),tM(e,o,r),tM(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new tN(tj(this.h),tS(this.s),tS(this.l),tb(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=tb(this.opacity);return`${1===e?"hsl(":"hsla("}${tj(this.h)}, ${100*tS(this.s)}%, ${100*tS(this.l)}%${1===e?")":`, ${e})`}`}}));let tO=e=>()=>e;function tR(e,t){var n=t-e;return n?function(t){return e+t*n}:tO(isNaN(e)?t:e)}let tA=function e(t){var n,r=1==(n=+t)?tR:function(e,t){var r,o,i;return t-e?(r=e,o=t,r=Math.pow(r,i=n),o=Math.pow(o,i)-r,i=1/i,function(e){return Math.pow(r+e*o,i)}):tO(isNaN(e)?t:e)};function o(e,t){var n=r((e=ty(e)).r,(t=ty(t)).r),o=r(e.g,t.g),i=r(e.b,t.b),a=tR(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return o.gamma=e,o}(1);function tz(e){return function(t){var n,r,o=t.length,i=Array(o),a=Array(o),s=Array(o);for(n=0;n<o;++n)r=ty(t[n]),i[n]=r.r||0,a[n]=r.g||0,s[n]=r.b||0;return i=e(i),a=e(a),s=e(s),r.opacity=1,function(e){return r.r=i(e),r.g=a(e),r.b=s(e),r+""}}}tz(function(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,s=r<t-1?e[r+2]:2*i-o;return tP((n-r/t)*t,a,o,i,s)}}),tz(function(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),o=e[(r+t-1)%t],i=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return tP((n-r/t)*t,o,i,a,s)}});var tD=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tT=RegExp(tD.source,"g");function t$(e,t){var n,r,o,i,a,s=tD.lastIndex=tT.lastIndex=0,l=-1,u=[],d=[];for(e+="",t+="";(o=tD.exec(e))&&(i=tT.exec(t));)(a=i.index)>s&&(a=t.slice(s,a),u[l]?u[l]+=a:u[++l]=a),(o=o[0])===(i=i[0])?u[l]?u[l]+=i:u[++l]=i:(u[++l]=null,d.push({i:l,x:e0(o,i)})),s=tT.lastIndex;return s<t.length&&(a=t.slice(s),u[l]?u[l]+=a:u[++l]=a),u.length<2?d[0]?(n=d[0].x,function(e){return n(e)+""}):(r=t,function(){return r}):(t=d.length,function(e){for(var n,r=0;r<t;++r)u[(n=d[r]).i]=n.x(e);return u.join("")})}function tI(e,t){var n;return("number"==typeof t?e0:t instanceof tp?tA:(n=tp(t))?(t=n,tA):t$)(e,t)}var tL=ec.prototype.constructor;function tB(e){return function(){this.style.removeProperty(e)}}var tH=0;function tF(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}var tV=ec.prototype;tF.prototype=(function(e){return ec().transition(e)}).prototype={constructor:tF,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=N(e));for(var r=this._groups,o=r.length,i=Array(o),a=0;a<o;++a)for(var s,l,u=r[a],d=u.length,c=i[a]=Array(d),h=0;h<d;++h)(s=u[h])&&(l=e.call(s,s.__data__,h,u))&&("__data__"in s&&(l.__data__=s.__data__),c[h]=l,eG(c[h],t,n,h,c,eQ(s,n)));return new tF(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=S(e));for(var r=this._groups,o=r.length,i=[],a=[],s=0;s<o;++s)for(var l,u=r[s],d=u.length,c=0;c<d;++c)if(l=u[c]){for(var h,f=e.call(l,l.__data__,c,u),p=eQ(l,n),g=0,m=f.length;g<m;++g)(h=f[g])&&eG(h,t,n,g,f,p);i.push(f),a.push(l)}return new tF(i,a,t,n)},selectChild:tV.selectChild,selectChildren:tV.selectChildren,filter:function(e){"function"!=typeof e&&(e=M(e));for(var t=this._groups,n=t.length,r=Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],u=0;u<s;++u)(i=a[u])&&e.call(i,i.__data__,u,a)&&l.push(i);return new tF(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=Array(r),s=0;s<i;++s)for(var l,u=t[s],d=n[s],c=u.length,h=a[s]=Array(c),f=0;f<c;++f)(l=u[f]||d[f])&&(h[f]=l);for(;s<r;++s)a[s]=t[s];return new tF(a,this._parents,this._name,this._id)},selection:function(){return new tL(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=++tH,r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,u=0;u<l;++u)if(a=s[u]){var d=eQ(a,t);eG(a,e,n,u,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new tF(r,this._parents,e,n)},call:tV.call,nodes:tV.nodes,node:tV.node,size:tV.size,empty:tV.empty,each:tV.each,on:function(e,t){var n,r,o,i,a,s,l=this._id;return arguments.length<2?eQ(this.node(),l).on.on(e):this.each((n=l,r=e,o=t,s=(r+"").trim().split(/^|\s+/).every(function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e})?eK:eU,function(){var e=s(this,n),t=e.on;t!==i&&(a=(i=t).copy()).on(r,o),e.on=a}))},attr:function(e,t){var n=V(e),r="transform"===n?e6:tI;return this.attrTween(e,"function"==typeof t?(n.local?function(e,t,n){var r,o,i;return function(){var a,s,l=n(this);return null==l?void this.removeAttributeNS(e.space,e.local):(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l))}}:function(e,t,n){var r,o,i;return function(){var a,s,l=n(this);return null==l?void this.removeAttribute(e):(a=this.getAttribute(e))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l))}})(n,r,e8(this,"attr."+e,t)):null==t?(n.local?function(e){return function(){this.removeAttributeNS(e.space,e.local)}}:function(e){return function(){this.removeAttribute(e)}})(n):(n.local?function(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}:function(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}})(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw Error();var r=V(e);return this.tween(n,(r.local?function(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(t){this.setAttributeNS(e.space,e.local,o.call(this,t))}),n}return o._value=t,o}:function(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(t){this.setAttribute(e,o.call(this,t))}),n}return o._value=t,o})(r,t))},style:function(e,t,n){var r,o,i,a,s,l,u,d,c,h,f,p,g,m,y,v,x,w,b,E,k,_="transform"==(e+="")?e4:tI;return null==t?this.styleTween(e,(r=e,function(){var e=Y(this,r),t=(this.style.removeProperty(r),Y(this,r));return e===t?null:e===o&&t===i?a:a=_(o=e,i=t)})).on("end.style."+e,tB(e)):"function"==typeof t?this.styleTween(e,(s=e,l=e8(this,"style."+e,t),function(){var e=Y(this,s),t=l(this),n=t+"";return null==t&&(this.style.removeProperty(s),n=t=Y(this,s)),e===n?null:e===u&&n===d?c:(d=n,c=_(u=e,t))})).each((h=this._id,x="end."+(v="style."+(f=e)),function(){var e=eU(this,h),t=e.on,n=null==e.value[v]?y||(y=tB(f)):void 0;(t!==p||m!==n)&&(g=(p=t).copy()).on(x,m=n),e.on=g})):this.styleTween(e,(w=e,k=t+"",function(){var e=Y(this,w);return e===k?null:e===b?E:E=_(b=e,t)}),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw Error();return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(t){this.style.setProperty(e,i.call(this,t),n)}),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){var t,n;return this.tween("text","function"==typeof e?(t=e8(this,"text",e),function(){var e=t(this);this.textContent=null==e?"":e}):(n=null==e?"":e+"",function(){this.textContent=n}))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw Error();return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){this.textContent=r.call(this,e)}),t}return r._value=e,r}(e))},remove:function(){var e;return this.on("end.remove",(e=this._id,function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=eQ(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?function(e,t){var n,r;return function(){var o=eU(this,e),i=o.tween;if(i!==n){r=n=i;for(var a=0,s=r.length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}}o.tween=r}}:function(e,t,n){var r,o;if("function"!=typeof n)throw Error();return function(){var i=eU(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var s={name:t,value:n},l=0,u=o.length;l<u;++l)if(o[l].name===t){o[l]=s;break}l===u&&o.push(s)}i.tween=o}})(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?function(e,t){return function(){eK(this,e).delay=+t.apply(this,arguments)}}:function(e,t){return t*=1,function(){eK(this,e).delay=t}})(t,e)):eQ(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?function(e,t){return function(){eU(this,e).duration=+t.apply(this,arguments)}}:function(e,t){return t*=1,function(){eU(this,e).duration=t}})(t,e)):eQ(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!=typeof t)throw Error();return function(){eU(this,e).ease=t}}(t,e)):eQ(this.node(),t).ease},easeVarying:function(e){var t;if("function"!=typeof e)throw Error();return this.each((t=this._id,function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw Error();eU(this,t).ease=n}))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,a){var s={value:a},l={value:function(){0==--o&&i()}};n.each(function(){var n=eU(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t}),0===o&&i()})},[Symbol.iterator]:tV[Symbol.iterator]};var tX={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};ec.prototype.interrupt=function(e){return this.each(function(){eJ(this,e)})},ec.prototype.transition=function(e){var t,n;e instanceof tF?(t=e._id,e=e._name):(t=++tH,(n=tX).time=eL(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,u=0;u<l;++u)(a=s[u])&&eG(a,e,t,u,s,n||function(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}(a,t));return new tF(r,this._parents,e,t)};let tY=e=>()=>e;function tW(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function tq(e,t,n){this.k=e,this.x=t,this.y=n}tq.prototype={constructor:tq,scale:function(e){return 1===e?this:new tq(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new tq(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var tZ=new tq(1,0,0);function tG(e){for(;!e.__zoom;)if(!(e=e.parentNode))return tZ;return e.__zoom}function tK(e){e.stopImmediatePropagation()}function tU(e){e.preventDefault(),e.stopImmediatePropagation()}function tQ(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function tJ(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function t0(){return this.__zoom||tZ}function t1(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function t2(){return navigator.maxTouchPoints||"ontouchstart"in this}function t5(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function t3(){var e,t,n,r=tQ,o=tJ,i=t5,a=t1,s=t2,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],d=250,c=eS,h=E("start","zoom","end"),f=0,p=10;function g(e){e.property("__zoom",t0).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",_).on("dblclick.zoom",C).filter(s).on("touchstart.zoom",N).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",S).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new tq(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new tq(e.k,r,o)}function v(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,t,n,r){e.on("start.zoom",function(){w(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).event(r).end()}).tween("zoom",function(){var e=arguments,i=w(this,e).event(r),a=o.apply(this,e),s=null==n?v(a):"function"==typeof n?n.apply(this,e):n,l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),u=this.__zoom,d="function"==typeof t?t.apply(this,e):t,h=c(u.invert(s).concat(l/u.k),d.invert(s).concat(l/d.k));return function(e){if(1===e)e=d;else{var t=h(e),n=l/t[2];e=new tq(n,s[0]-t[0]*n,s[1]-t[1]*n)}i.zoom(null,e)}})}function w(e,t,n){return!n&&e.__zooming||new b(e,t)}function b(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function k(e,...t){if(r.apply(this,arguments)){var n=w(this,t).event(e),o=this.__zoom,s=Math.max(l[0],Math.min(l[1],o.k*Math.pow(2,a.apply(this,arguments)))),d=ef(e);if(n.wheel)(n.mouse[0][0]!==d[0]||n.mouse[0][1]!==d[1])&&(n.mouse[1]=o.invert(n.mouse[0]=d)),clearTimeout(n.wheel);else{if(o.k===s)return;n.mouse=[d,o.invert(d)],eJ(this),n.start()}tU(e),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",i(y(m(o,s),n.mouse[0],n.mouse[1]),n.extent,u))}}function _(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=w(this,t,!0).event(e),s=eh(e.view).on("mousemove.zoom",function(e){if(tU(e),!a.moved){var t=e.clientX-d,n=e.clientY-c;a.moved=t*t+n*n>f}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=ef(e,o),a.mouse[1]),a.extent,u))},!0).on("mouseup.zoom",function(e){s.on("mousemove.zoom mouseup.zoom",null),ex(e.view,a.moved),tU(e),a.event(e).end()},!0),l=ef(e,o),d=e.clientX,c=e.clientY;ev(e.view),tK(e),a.mouse=[l,this.__zoom.invert(l)],eJ(this),a.start()}}function C(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=ef(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),c=i(y(m(n,l),a,s),o.apply(this,t),u);tU(e),d>0?eh(this).transition().duration(d).call(x,c,a,e):eh(this).call(g.transform,c,a,e)}}function N(n,...o){if(r.apply(this,arguments)){var i,a,s,l,u=n.touches,d=u.length,c=w(this,o,n.changedTouches.length===d).event(n);for(tK(n),a=0;a<d;++a)l=[l=ef(s=u[a],this),this.__zoom.invert(l),s.identifier],c.touch0?c.touch1||c.touch0[2]===l[2]||(c.touch1=l,c.taps=0):(c.touch0=l,i=!0,c.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(c.taps<2&&(t=l[0],e=setTimeout(function(){e=null},500)),eJ(this),c.start())}}function j(e,...t){if(this.__zooming){var n,r,o,a,s=w(this,t).event(e),l=e.changedTouches,d=l.length;for(tU(e),n=0;n<d;++n)o=ef(r=l[n],this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=o:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=o);if(r=s.that.__zoom,s.touch1){var c=s.touch0[0],h=s.touch0[1],f=s.touch1[0],p=s.touch1[1],g=(g=f[0]-c[0])*g+(g=f[1]-c[1])*g,v=(v=p[0]-h[0])*v+(v=p[1]-h[1])*v;r=m(r,Math.sqrt(g/v)),o=[(c[0]+f[0])/2,(c[1]+f[1])/2],a=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!s.touch0)return;o=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(y(r,o,a),s.extent,u))}}function S(e,...r){if(this.__zooming){var o,i,a=w(this,r).event(e),s=e.changedTouches,l=s.length;for(tK(e),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),o=0;o<l;++o)i=s[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=ef(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<p)){var u=eh(this).on("dblclick.zoom");u&&u.apply(this,arguments)}}}return g.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",t0),e!==o?x(e,t,n,r):o.interrupt().each(function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()})},g.scaleBy=function(e,t,n,r){g.scaleTo(e,function(){var e=this.__zoom.k,n="function"==typeof t?t.apply(this,arguments):t;return e*n},n,r)},g.scaleTo=function(e,t,n,r){g.transform(e,function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?v(e):"function"==typeof n?n.apply(this,arguments):n,s=r.invert(a),l="function"==typeof t?t.apply(this,arguments):t;return i(y(m(r,l),a,s),e,u)},n,r)},g.translateBy=function(e,t,n,r){g.transform(e,function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),o.apply(this,arguments),u)},null,r)},g.translateTo=function(e,t,n,r,a){g.transform(e,function(){var e=o.apply(this,arguments),a=this.__zoom,s=null==r?v(e):"function"==typeof r?r.apply(this,arguments):r;return i(tZ.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,u)},r,a)},b.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=eh(this.that).datum();h.call(e,this.that,new tW(e,{sourceEvent:this.sourceEvent,target:g,type:e,transform:this.that.__zoom,dispatch:h}),t)}},g.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:tY(+e),g):a},g.filter=function(e){return arguments.length?(r="function"==typeof e?e:tY(!!e),g):r},g.touchable=function(e){return arguments.length?(s="function"==typeof e?e:tY(!!e),g):s},g.extent=function(e){return arguments.length?(o="function"==typeof e?e:tY([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),g):o},g.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],g):[l[0],l[1]]},g.translateExtent=function(e){return arguments.length?(u[0][0]=+e[0][0],u[1][0]=+e[1][0],u[0][1]=+e[0][1],u[1][1]=+e[1][1],g):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},g.constrain=function(e){return arguments.length?(i=e,g):i},g.duration=function(e){return arguments.length?(d=+e,g):d},g.interpolate=function(e){return arguments.length?(c=e,g):c},g.on=function(){var e=h.on.apply(h,arguments);return e===h?g:e},g.clickDistance=function(e){return arguments.length?(f=(e*=1)*e,g):Math.sqrt(f)},g.tapDistance=function(e){return arguments.length?(p=+e,g):p},g}function t4(e,t){var n,r,o=typeof t;return null==t||"boolean"===o?tO(t):("number"===o?e0:"string"===o?(r=tp(t))?(t=r,tA):t$:t instanceof tp?tA:t instanceof Date?function(e,t){var n=new Date;return e*=1,t*=1,function(r){return n.setTime(e*(1-r)+t*r),n}}:!ArrayBuffer.isView(n=t)||n instanceof DataView?Array.isArray(t)?function(e,t){var n,r=t?t.length:0,o=e?Math.min(r,e.length):0,i=Array(o),a=Array(r);for(n=0;n<o;++n)i[n]=t4(e[n],t[n]);for(;n<r;++n)a[n]=t[n];return function(e){for(n=0;n<o;++n)a[n]=i[n](e);return a}}:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?function(e,t){var n,r={},o={};for(n in(null===e||"object"!=typeof e)&&(e={}),(null===t||"object"!=typeof t)&&(t={}),t)n in e?r[n]=t4(e[n],t[n]):o[n]=t[n];return function(e){for(n in r)o[n]=r[n](e);return o}}:e0:function(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(i){for(n=0;n<r;++n)o[n]=e[n]*(1-i)+t[n]*i;return o}})(e,t)}tG.prototype=tq.prototype;let t6={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.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 React Flow 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: "${"source"===e?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."},t8=[[-1/0,-1/0],[1/0,1/0]],t7=["Enter"," ","Escape"],t9={"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"};(t=d||(d={})).Strict="strict",t.Loose="loose",(n=c||(c={})).Free="free",n.Vertical="vertical",n.Horizontal="horizontal",(r=h||(h={})).Partial="partial",r.Full="full";let ne={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(o=f||(f={})).Bezier="default",o.Straight="straight",o.Step="step",o.SmoothStep="smoothstep",o.SimpleBezier="simplebezier",(i=p||(p={})).Arrow="arrow",i.ArrowClosed="arrowclosed",(a=g||(g={})).Left="left",a.Top="top",a.Right="right",a.Bottom="bottom";let nt={[g.Left]:g.Right,[g.Right]:g.Left,[g.Top]:g.Bottom,[g.Bottom]:g.Top};function nn(e,t){if(!e&&!t)return!0;if(!e||!t||e.size!==t.size)return!1;if(!e.size&&!t.size)return!0;for(let n of e.keys())if(!t.has(n))return!1;return!0}function nr(e,t,n){if(!n)return;let r=[];e.forEach((e,n)=>{t?.has(n)||r.push(e)}),r.length&&n(r)}function no(e){return null===e?null:e?"valid":"invalid"}let ni=e=>"id"in e&&"source"in e&&"target"in e,na=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),ns=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),nl=(e,t=[0,0])=>{let{width:n,height:r}=n$(e),o=e.origin??t,i=n*o[0],a=r*o[1];return{x:e.position.x-i,y:e.position.y-a}},nu=(e,t={nodeOrigin:[0,0]})=>0===e.length?{x:0,y:0,width:0,height:0}:nE(e.reduce((e,n)=>{let r="string"==typeof n,o=t.nodeLookup||r?void 0:n;return t.nodeLookup&&(o=r?t.nodeLookup.get(n):ns(n)?n:t.nodeLookup.get(n.id)),nw(e,o?n_(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),nd=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(void 0===t.filter||t.filter(e))&&(n=nw(n,n_(e)),r=!0)}),r?nE(n):{x:0,y:0,width:0,height:0}},nc=(e,t,[n,r,o]=[0,0,1],i=!1,a=!1)=>{let s={...nO(t,[n,r,o]),width:t.width/o,height:t.height/o},l=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(a&&!n||r)continue;let o=e.width??t.width??t.initialWidth??null,u=e.height??t.height??t.initialHeight??null,d=nN(s,nk(t)),c=(o??0)*(u??0),h=i&&d>0;(!t.internals.handleBounds||h||d>=c||t.dragging)&&l.push(t)}return l};async function nh({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},a){let s,l;if(0===e.size)return Promise.resolve(!0);let u=nz(nd((s=new Map,l=a?.nodes?new Set(a.nodes.map(e=>e.id)):null,e.forEach(e=>{e.measured.width&&e.measured.height&&(a?.includeHiddenNodes||!e.hidden)&&(!l||l.has(e.id))&&s.set(e.id,e)}),s)),t,n,a?.minZoom??o,a?.maxZoom??i,a?.padding??.1);return await r.setViewport(u,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function nf({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){let a=n.get(e),s=a.parentId?n.get(a.parentId):void 0,{x:l,y:u}=s?s.internals.positionAbsolute:{x:0,y:0},d=a.origin??r,c=a.extent||o;if("parent"!==a.extent||a.expandParent)s&&nT(a.extent)&&(c=[[a.extent[0][0]+l,a.extent[0][1]+u],[a.extent[1][0]+l,a.extent[1][1]+u]]);else if(s){let e=s.measured.width,t=s.measured.height;e&&t&&(c=[[l,u],[l+e,u+t]])}else i?.("005",t6.error005());let h=nT(c)?nm(t,c,a.measured):t;return(void 0===a.measured.width||void 0===a.measured.height)&&i?.("015",t6.error015()),{position:{x:h.x-l+(a.measured.width??0)*d[0],y:h.y-u+(a.measured.height??0)*d[1]},positionAbsolute:h}}async function np({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){let i,a=new Set(e.map(e=>e.id)),s=[];for(let e of n){if(!1===e.deletable)continue;let t=a.has(e.id),n=!t&&e.parentId&&s.find(t=>t.id===e.parentId);(t||n)&&s.push(e)}let l=new Set(t.map(e=>e.id)),u=r.filter(e=>!1!==e.deletable),d=(i=new Set,s.forEach(e=>{i.add(e.id)}),u.filter(e=>i.has(e.source)||i.has(e.target)));for(let e of u)l.has(e.id)&&!d.find(t=>t.id===e.id)&&d.push(e);if(!o)return{edges:d,nodes:s};let c=await o({nodes:s,edges:d});return"boolean"==typeof c?c?{edges:d,nodes:s}:{edges:[],nodes:[]}:c}let ng=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),nm=(e={x:0,y:0},t,n)=>({x:ng(e.x,t[0][0],t[1][0]-(n?.width??0)),y:ng(e.y,t[0][1],t[1][1]-(n?.height??0))});function ny(e,t,n){let{width:r,height:o}=n$(n),{x:i,y:a}=n.internals.positionAbsolute;return nm(e,[[i,a],[i+r,a+o]],t)}let nv=(e,t,n)=>e<t?ng(Math.abs(e-t),1,t)/t:e>n?-ng(Math.abs(e-n),1,t)/t:0,nx=(e,t,n=15,r=40)=>[nv(e.x,r,t.width-r)*n,nv(e.y,r,t.height-r)*n],nw=(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)}),nb=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),nE=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),nk=(e,t=[0,0])=>{let{x:n,y:r}=ns(e)?e.internals.positionAbsolute:nl(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}},n_=(e,t=[0,0])=>{let{x:n,y:r}=ns(e)?e.internals.positionAbsolute:nl(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)}},nC=(e,t)=>nE(nw(nb(e),nb(t))),nN=(e,t)=>Math.ceil(Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))),nj=e=>nS(e.width)&&nS(e.height)&&nS(e.x)&&nS(e.y),nS=e=>!isNaN(e)&&isFinite(e),nM=(e,t)=>{},nP=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),nO=({x:e,y:t},[n,r,o],i=!1,a=[1,1])=>{let s={x:(e-n)/o,y:(t-r)/o};return i?nP(s,a):s},nR=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function nA(e,t){if("number"==typeof e)return Math.floor((t-t/(1+e))*.5);if("string"==typeof e&&e.endsWith("px")){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let nz=(e,t,n,r,o,i)=>{let a=function(e,t,n){if("string"==typeof e||"number"==typeof e){let r=nA(e,n),o=nA(e,t);return{top:r,right:o,bottom:r,left:o,x:2*o,y:2*r}}if("object"==typeof e){let r=nA(e.top??e.y??0,n),o=nA(e.bottom??e.y??0,n),i=nA(e.left??e.x??0,t),a=nA(e.right??e.x??0,t);return{top:r,right:a,bottom:o,left:i,x:i+a,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(i,t,n),s=ng(Math.min((t-a.x)/e.width,(n-a.y)/e.height),r,o),l=e.x+e.width/2,u=e.y+e.height/2,d=t/2-l*s,c=n/2-u*s,h=function(e,t,n,r,o,i){let{x:a,y:s}=nR(e,[t,n,r]),{x:l,y:u}=nR({x:e.x+e.width,y:e.y+e.height},[t,n,r]);return{left:Math.floor(a),top:Math.floor(s),right:Math.floor(o-l),bottom:Math.floor(i-u)}}(e,d,c,s,t,n),f={left:Math.min(h.left-a.left,0),top:Math.min(h.top-a.top,0),right:Math.min(h.right-a.right,0),bottom:Math.min(h.bottom-a.bottom,0)};return{x:d-f.left+f.right,y:c-f.top+f.bottom,zoom:s}},nD=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function nT(e){return null!=e&&"parent"!==e}function n$(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function nI(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function nL(e,t={width:0,height:0},n,r,o){let i={...e},a=r.get(n);if(a){let e=a.origin||o;i.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return i}function nB(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function nH(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function nF(e){return{...t9,...e||{}}}function nV(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){let{x:i,y:a}=nG(e),s=nO({x:i-(o?.left??0),y:a-(o?.top??0)},r),{x:l,y:u}=n?nP(s,t):s;return{xSnapped:l,ySnapped:u,...s}}let nX=e=>({width:e.offsetWidth,height:e.offsetHeight}),nY=e=>e?.getRootNode?.()||window?.document,nW=["INPUT","SELECT","TEXTAREA"];function nq(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1&&(nW.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey"))}let nZ=e=>"clientX"in e,nG=(e,t)=>{let n=nZ(e),r=n?e.clientX:e.touches?.[0].clientX,o=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:o-(t?.top??0)}},nK=(e,t,n,r,o)=>{let i=t.querySelectorAll(`.${e}`);return i&&i.length?Array.from(i).map(t=>{let i=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:o,position:t.getAttribute("data-handlepos"),x:(i.left-n.left)/r,y:(i.top-n.top)/r,...nX(t)}}):null};function nU({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:a,targetControlY:s}){let l=.125*e+.375*o+.375*a+.125*n,u=.125*t+.375*i+.375*s+.125*r,d=Math.abs(l-e),c=Math.abs(u-t);return[l,u,d,c]}function nQ(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function nJ({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case g.Left:return[t-nQ(t-r,i),n];case g.Right:return[t+nQ(r-t,i),n];case g.Top:return[t,n-nQ(n-o,i)];case g.Bottom:return[t,n+nQ(o-n,i)]}}function n0({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:r,targetY:o,targetPosition:i=g.Top,curvature:a=.25}){let[s,l]=nJ({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[u,d]=nJ({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[c,h,f,p]=nU({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:l,targetControlX:u,targetControlY:d});return[`M${e},${t} C${s},${l} ${u},${d} ${r},${o}`,c,h,f,p]}function n1({sourceX:e,sourceY:t,targetX:n,targetY:r}){let o=Math.abs(n-e)/2,i=Math.abs(r-t)/2;return[n<e?n+o:n-o,r<t?r+i:r-i,o,i]}function n2({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if("manual"===i)return r;let a=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return(o&&n?r+1e3:r)+a}function n5({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){let i=nw(n_(e),n_(t));return i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1),nN({x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]},nE(i))>0}let n3=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,n4=(e,t,n={})=>{let r,o;if(!e.source||!e.target)return nM("006",t6.error006()),t;let i=n.getEdgeId||n3;return(o=r=ni(e)?{...e}:{...e,id:i(e)},t.some(e=>e.source===o.source&&e.target===o.target&&(e.sourceHandle===o.sourceHandle||!e.sourceHandle&&!o.sourceHandle)&&(e.targetHandle===o.targetHandle||!e.targetHandle&&!o.targetHandle)))?t:(null===r.sourceHandle&&delete r.sourceHandle,null===r.targetHandle&&delete r.targetHandle,t.concat(r))};function n6({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[o,i,a,s]=n1({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,a,s]}let n8={[g.Left]:{x:-1,y:0},[g.Right]:{x:1,y:0},[g.Top]:{x:0,y:-1},[g.Bottom]:{x:0,y:1}},n7=({source:e,sourcePosition:t=g.Bottom,target:n})=>t===g.Left||t===g.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},n9=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function re({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:r,targetY:o,targetPosition:i=g.Top,borderRadius:a=5,centerX:s,centerY:l,offset:u=20,stepPosition:d=.5}){let[c,h,f,p,m]=function({source:e,sourcePosition:t=g.Bottom,target:n,targetPosition:r=g.Top,center:o,offset:i,stepPosition:a}){let s,l,u=n8[t],d=n8[r],c={x:e.x+u.x*i,y:e.y+u.y*i},h={x:n.x+d.x*i,y:n.y+d.y*i},f=n7({source:c,sourcePosition:t,target:h}),p=0!==f.x?"x":"y",m=f[p],y=[],v={x:0,y:0},x={x:0,y:0},[,,w,b]=n1({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(u[p]*d[p]==-1){"x"===p?(s=o.x??c.x+(h.x-c.x)*a,l=o.y??(c.y+h.y)/2):(s=o.x??(c.x+h.x)/2,l=o.y??c.y+(h.y-c.y)*a);let e=[{x:s,y:c.y},{x:s,y:h.y}],t=[{x:c.x,y:l},{x:h.x,y:l}];y=u[p]===m?"x"===p?e:t:"x"===p?t:e}else{let o=[{x:c.x,y:h.y}],a=[{x:h.x,y:c.y}];if(y="x"===p?u.x===m?a:o:u.y===m?o:a,t===r){let t=Math.abs(e[p]-n[p]);if(t<=i){let r=Math.min(i-1,i-t);u[p]===m?v[p]=(c[p]>e[p]?-1:1)*r:x[p]=(h[p]>n[p]?-1:1)*r}}if(t!==r){let e="x"===p?"y":"x",t=u[p]===d[e],n=c[e]>h[e],r=c[e]<h[e];(1===u[p]&&(!t&&n||t&&r)||1!==u[p]&&(!t&&r||t&&n))&&(y="x"===p?o:a)}let f={x:c.x+v.x,y:c.y+v.y},g={x:h.x+x.x,y:h.y+x.y};Math.max(Math.abs(f.x-y[0].x),Math.abs(g.x-y[0].x))>=Math.max(Math.abs(f.y-y[0].y),Math.abs(g.y-y[0].y))?(s=(f.x+g.x)/2,l=y[0].y):(s=y[0].x,l=(f.y+g.y)/2)}return[[e,{x:c.x+v.x,y:c.y+v.y},...y,{x:h.x+x.x,y:h.y+x.y},n],s,l,w,b]}({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:s,y:l},offset:u,stepPosition:d});return[c.reduce((e,t,n)=>e+(n>0&&n<c.length-1?function(e,t,n,r){let o=Math.min(n9(e,t)/2,n9(t,n)/2,r),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${i+o*t},${a}Q ${i},${a} ${i},${a+o*r}`}let s=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${a+o*l}Q ${i},${a} ${i+o*s},${a}`}(c[n-1],t,c[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`),""),h,f,p,m]}function rt(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function rn(e){let{sourceNode:t,targetNode:n}=e;if(!rt(t)||!rt(n))return null;let r=t.internals.handleBounds||rr(t.handles),o=n.internals.handleBounds||rr(n.handles),i=ri(r?.source??[],e.sourceHandle),a=ri(e.connectionMode===d.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),e.targetHandle);if(!i||!a)return e.onError?.("008",t6.error008(!i?"source":"target",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=i?.position||g.Bottom,l=a?.position||g.Top,u=ro(t,i,s),c=ro(n,a,l);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y,sourcePosition:s,targetPosition:l}}function rr(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,"source"===r.type?t.push(r):"target"===r.type&&n.push(r);return{source:t,target:n}}function ro(e,t,n=g.Left,r=!1){let o=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:a,height:s}=t??n$(e);if(r)return{x:o+a/2,y:i+s/2};switch(t?.position??n){case g.Top:return{x:o+a/2,y:i};case g.Right:return{x:o+a,y:i+s/2};case g.Bottom:return{x:o+a/2,y:i+s};case g.Left:return{x:o,y:i+s/2}}}function ri(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function ra(e,t){if(!e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}function rs(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){let i=new Set;return e.reduce((e,a)=>([a.markerStart||r,a.markerEnd||o].forEach(r=>{if(r&&"object"==typeof r){let o=ra(r,t);i.has(o)||(e.push({id:o,color:r.color||n,...r}),i.add(o))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}function rl(e,t,n,r,o){let i=.5;"start"===o?i=0:"end"===o&&(i=1);let a=[(e.x+e.width*i)*t.zoom+t.x,e.y*t.zoom+t.y-r],s=[-100*i,-100];switch(n){case g.Right:a=[(e.x+e.width)*t.zoom+t.x+r,(e.y+e.height*i)*t.zoom+t.y],s=[0,-100*i];break;case g.Bottom:a[1]=(e.y+e.height)*t.zoom+t.y+r,s[1]=0;break;case g.Left:a=[e.x*t.zoom+t.x-r,(e.y+e.height*i)*t.zoom+t.y],s=[-100,-100*i]}return`translate(${a[0]}px, ${a[1]}px) translate(${s[0]}%, ${s[1]}%)`}let ru={left:0,center:50,right:100},rd={top:0,center:50,bottom:100};function rc(e,t,n,r="center",o="center"){return`translate(${e}px, ${t}px) scale(${1/n}) translate(${-(ru[r]??50)}%, ${-(rd[o]??50)}%)`}let rh={nodeOrigin:[0,0],nodeExtent:t8,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},rf={...rh,checkEquality:!0};function rp(e,t){let n={...e};for(let e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function rg(e,t,n){let r=rp(rh,n);for(let n of e.values())if(n.parentId)rv(n,e,t,r);else{let e=nm(nl(n,r.nodeOrigin),nT(n.extent)?n.extent:r.nodeExtent,n$(n));n.internals.positionAbsolute=e}}function rm(e){return"manual"===e}function ry(e,t,n,r={}){let o=rp(rf,r),i={i:0},a=new Map(t),s=o?.elevateNodesOnSelect&&!rm(o.zIndexMode)?1e3:0,l=e.length>0;for(let u of(t.clear(),n.clear(),e)){let e=a.get(u.id);if(o.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=nm(nl(u,o.nodeOrigin),nT(u.extent)?u.extent:o.nodeExtent,n$(u));e={...o.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:function(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let o={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};"source"===t.type?n.push(o):"target"===t.type&&r.push(o)}return{source:n,target:r}}(u,e),z:rx(u,s,o.zIndexMode),userNode:u}},t.set(u.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(l=!1),u.parentId&&rv(e,t,n,r,i)}return l}function rv(e,t,n,r,o){let{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:s,zIndexMode:l}=rp(rh,r),u=e.parentId,d=t.get(u);if(!d)return void console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(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]]))}(e,n),o&&!d.parentId&&void 0===d.internals.rootParentIndex&&"auto"===l&&(d.internals.rootParentIndex=++o.i,d.internals.z=d.internals.z+10*o.i),o&&void 0!==d.internals.rootParentIndex&&(o.i=d.internals.rootParentIndex);let{x:c,y:h,z:f}=function(e,t,n,r,o,i){let{x:a,y:s}=t.internals.positionAbsolute,l=n$(e),u=nl(e,n),d=nT(e.extent)?nm(u,e.extent,l):u,c=nm({x:a+d.x,y:s+d.y},r,l);"parent"===e.extent&&(c=ny(c,l,t));let h=rx(e,o,i),f=t.internals.z??0;return{x:c.x,y:c.y,z:f>=h?f+1:h}}(e,d,a,s,i&&!rm(l)?1e3:0,l),{positionAbsolute:p}=e.internals,g=c!==p.x||h!==p.y;(g||f!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:g?{x:c,y:h}:p,z:f}})}function rx(e,t,n){let r=nS(e.zIndex)?e.zIndex:0;return rm(n)?r:r+(e.selected?t:0)}function rw(e,t,n,r=[0,0]){let o=[],i=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=nC(i.get(n.parentId)?.expandedRect??nk(e),n.rect);i.set(n.parentId,{expandedRect:r,parent:e})}return i.size>0&&i.forEach(({expandedRect:t,parent:i},a)=>{let s=i.internals.positionAbsolute,l=n$(i),u=i.origin??r,d=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,c=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,h=Math.max(l.width,Math.round(t.width)),f=Math.max(l.height,Math.round(t.height)),p=(h-l.width)*u[0],g=(f-l.height)*u[1];(d>0||c>0||p||g)&&(o.push({id:a,type:"position",position:{x:i.position.x-d+p,y:i.position.y-c+g}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||o.push({id:t.id,type:"position",position:{x:t.position.x+d,y:t.position.y+c}})})),(l.width<t.width||l.height<t.height||d||c)&&o.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:h+(d?u[0]*d-p:0),height:f+(c?u[1]*c-g:0)}})}),o}function rb(e,t,n,r,o,i,a){let s=r?.querySelector(".xyflow__viewport"),l=!1;if(!s)return{changes:[],updatedInternals:l};let u=[],d=window.getComputedStyle(s),{m22:c}=new window.DOMMatrixReadOnly(d.transform),h=[];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}}),l=!0;continue}let s=nX(r.nodeElement),d=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(d||!e.internals.handleBounds||r.force)){let f=r.nodeElement.getBoundingClientRect(),p=nT(e.extent)?e.extent:i,{positionAbsolute:g}=e.internals;e.parentId&&"parent"===e.extent?g=ny(g,s,t.get(e.parentId)):p&&(g=nm(g,p,s));let m={...e,measured:s,internals:{...e.internals,positionAbsolute:g,handleBounds:{source:nK("source",r.nodeElement,f,c,e.id),target:nK("target",r.nodeElement,f,c,e.id)}}};t.set(e.id,m),e.parentId&&rv(m,t,n,{nodeOrigin:o,zIndexMode:a}),l=!0,d&&(u.push({id:e.id,type:"dimensions",dimensions:s}),e.expandParent&&e.parentId&&h.push({id:e.id,parentId:e.parentId,rect:nk(m,o)}))}}if(h.length>0){let e=rw(h,t,n,o);u.push(...e)}return{changes:u,updatedInternals:l}}async function rE({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);let a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,i]],r);return Promise.resolve(!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]))}function rk(e,t,n,r,o,i){let a=o,s=r.get(a)||new Map;r.set(a,s.set(n,t)),a=`${o}-${e}`;let l=r.get(a)||new Map;if(r.set(a,l.set(n,t)),i){a=`${o}-${e}-${i}`;let s=r.get(a)||new Map;r.set(a,s.set(n,t))}}function r_(e,t,n){for(let r of(e.clear(),t.clear(),n)){let{source:n,target:o,sourceHandle:i=null,targetHandle:a=null}=r,s={edgeId:r.id,source:n,target:o,sourceHandle:i,targetHandle:a},l=`${n}-${i}--${o}-${a}`;rk("source",s,`${o}-${a}--${n}-${i}`,e,n,i),rk("target",s,l,e,o,a),t.set(r.id,r)}}function rC(e,t){if(null===e||null===t)return!1;let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t];if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e].id!==r[e].id||n[e].type!==r[e].type||!Object.is(n[e].data,r[e].data))return!1;return!0}function rN(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)break;r=r?.parentElement}while(r)return!1}function rj({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let o=[];for(let[e,i]of t){let t=n.get(e)?.internals.userNode;t&&o.push({...t,position:i.position,dragging:r})}if(!e)return[o[0],o];let i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:r}:o[0],o]}function rS({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},a=0,s=new Map,l=!1,u={x:0,y:0},d=null,c=!1,h=null,f=!1,p=!1,g=null;return{update:function({noDragClassName:m,handleSelector:y,domNode:v,isSelectable:x,nodeId:w,nodeClickDistance:b=0}){function E({x:e,y:n}){let{nodeLookup:o,nodeExtent:a,snapGrid:l,snapToGrid:u,nodeOrigin:d,onNodeDrag:c,onSelectionDrag:h,onError:f,updateNodePositions:m}=t();i={x:e,y:n};let y=!1,v=s.size>1,x=v&&a?nb(nd(s)):null,b=v&&u?function({dragItems:e,snapGrid:t,x:n,y:r}){let o=e.values().next().value;if(!o)return null;let i={x:n-o.distance.x,y:r-o.distance.y},a=nP(i,t);return{x:a.x-i.x,y:a.y-i.y}}({dragItems:s,snapGrid:l,x:e,y:n}):null;for(let[t,r]of s){if(!o.has(t))continue;let i={x:e-r.distance.x,y:n-r.distance.y};u&&(i=b?{x:Math.round(i.x+b.x),y:Math.round(i.y+b.y)}:nP(i,l));let s=null;if(v&&a&&!r.extent&&x){let{positionAbsolute:e}=r.internals,t=e.x-x.x+a[0][0],n=e.x+r.measured.width-x.x2+a[1][0];s=[[t,e.y-x.y+a[0][1]],[n,e.y+r.measured.height-x.y2+a[1][1]]]}let{position:c,positionAbsolute:h}=nf({nodeId:t,nextPosition:i,nodeLookup:o,nodeExtent:s||a,nodeOrigin:d,onError:f});y=y||r.position.x!==c.x||r.position.y!==c.y,r.position=c,r.internals.positionAbsolute=h}if(p=p||y,y&&(m(s,!0),g&&(r||c||!w&&h))){let[e,t]=rj({nodeId:w,dragItems:s,nodeLookup:o});r?.(g,s,e,t),c?.(g,e,t),w||h?.(g,t)}}async function k(){if(!d)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:o}=t();if(!o){l=!1,cancelAnimationFrame(a);return}let[s,c]=nx(u,d,r);(0!==s||0!==c)&&(i.x=(i.x??0)-s/e[2],i.y=(i.y??0)-c/e[2],await n({x:s,y:c})&&E(i)),a=requestAnimationFrame(k)}function _(r){let{nodeLookup:o,multiSelectionActive:a,nodesDraggable:l,transform:u,snapGrid:h,snapToGrid:f,selectNodesOnDrag:p,onNodeDragStart:g,onSelectionDragStart:m,unselectNodesAndEdges:y}=t();c=!0,p&&x||a||!w||o.get(w)?.selected||y(),x&&p&&w&&e?.(w);let v=nV(r.sourceEvent,{transform:u,snapGrid:h,snapToGrid:f,containerBounds:d});if(i=v,(s=function(e,t,n,r){let o=new Map;for(let[i,a]of e)if((a.selected||a.id===r)&&(!a.parentId||!function e(t,n){if(!t.parentId)return!1;let r=n.get(t.parentId);return!!r&&(!!r.selected||e(r,n))}(a,e))&&(a.draggable||t&&void 0===a.draggable)){let t=e.get(i);t&&o.set(i,{id:i,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 o}(o,l,v,w)).size>0&&(n||g||!w&&m)){let[e,t]=rj({nodeId:w,dragItems:s,nodeLookup:o});n?.(r.sourceEvent,s,e,t),g?.(r.sourceEvent,e,t),w||m?.(r.sourceEvent,t)}}h=eh(v);let C=eN().clickDistance(b).on("start",e=>{let{domNode:n,nodeDragThreshold:r,transform:o,snapGrid:a,snapToGrid:s}=t();d=n?.getBoundingClientRect()||null,f=!1,p=!1,g=e.sourceEvent,0===r&&_(e),i=nV(e.sourceEvent,{transform:o,snapGrid:a,snapToGrid:s,containerBounds:d}),u=nG(e.sourceEvent,d)}).on("drag",e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:o,snapToGrid:a,nodeDragThreshold:h,nodeLookup:p}=t(),m=nV(e.sourceEvent,{transform:r,snapGrid:o,snapToGrid:a,containerBounds:d});if(g=e.sourceEvent,("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||w&&!p.has(w))&&(f=!0),!f){if(!l&&n&&c&&(l=!0,k()),!c){let t=nG(e.sourceEvent,d),n=t.x-u.x,r=t.y-u.y;Math.sqrt(n*n+r*r)>h&&_(e)}(i.x!==m.xSnapped||i.y!==m.ySnapped)&&s&&c&&(u=nG(e.sourceEvent,d),E(m))}}).on("end",e=>{if(c&&!f&&(l=!1,c=!1,cancelAnimationFrame(a),s.size>0)){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:i,onSelectionDragStop:a}=t();if(p&&(r(s,!1),p=!1),o||i||!w&&a){let[t,r]=rj({nodeId:w,dragItems:s,nodeLookup:n,dragging:!1});o?.(e.sourceEvent,s,t,r),i?.(e.sourceEvent,t,r),w||a?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!m||!rN(t,`.${m}`,v))&&(!y||rN(t,y,v))});h.call(C)},destroy:function(){h?.on(".drag",null)}}}function rM(e,t,n,r,o,i=!1){let a=r.get(e);if(!a)return null;let s="strict"===o?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?s?.find(e=>e.id===n):s?.[0])??null;return l&&i?{...l,...ro(a,l,l.position,!0)}:l}function rP(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}let rO=()=>!0;function rR(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:a,lib:s,flowId:l,isValidConnection:u=rO,nodeLookup:c}){let h="target"===i,f=t?a.querySelector(`.${s}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:g}=nG(e),m=a.elementFromPoint(p,g),y=m?.classList.contains(`${s}-flow__handle`)?m:f,v={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){let e=rP(void 0,y),t=y.getAttribute("data-nodeid"),i=y.getAttribute("data-handleid"),a=y.classList.contains("connectable"),s=y.classList.contains("connectableend");if(!t||!e)return v;let l={source:h?t:r,sourceHandle:h?i:o,target:h?r:t,targetHandle:h?o:i};v.connection=l,v.isValid=a&&s&&(n===d.Strict?h&&"source"===e||!h&&"target"===e:t!==r||i!==o)&&u(l),v.toHandle=rM(t,e,i,c,n,!0)}return v}let rA={onPointerDown:function(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:a,domNode:s,nodeLookup:l,lib:u,autoPanOnConnect:d,flowId:c,panBy:h,cancelConnection:f,onConnectStart:p,onConnect:m,onConnectEnd:y,isValidConnection:v=rO,onReconnectEnd:x,updateConnection:w,getTransform:b,getFromHandle:E,autoPanSpeed:k,dragThreshold:_=1,handleDomNode:C}){let N,j=nY(e.target),S=0,{x:M,y:P}=nG(e),O=rP(i,C),R=s?.getBoundingClientRect(),A=!1;if(!R||!O)return;let z=rM(o,O,r,l,t);if(!z)return;let D=nG(e,R),T=!1,$=null,I=!1,L=null,B={...z,nodeId:o,type:O,position:z.position},H=l.get(o),F={inProgress:!0,isValid:null,from:ro(H,B,g.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:H,to:D,toHandle:null,toPosition:nt[B.position],toNode:null,pointer:D};function V(){A=!0,w(F),p?.(e,{nodeId:o,handleId:r,handleType:O})}function X(e){var i,s;let f;if(!A){let{x:t,y:n}=nG(e),r=t-M,o=n-P;if(!(r*r+o*o>_*_))return;V()}if(!E()||!B)return void Y(e);let p=b();N=function(e,t,n,r){let o=[],i=1/0;for(let a of function(e,t,n){let r=[],o={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(let e of t.values())nN(o,nk(e))>0&&r.push(e);return r}(e,n,t+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(r.nodeId===n.nodeId&&r.type===n.type&&r.id===n.id)continue;let{x:s,y:l}=ro(a,n,n.position,!0),u=Math.sqrt(Math.pow(s-e.x,2)+Math.pow(l-e.y,2));u>t||(u<i?(o=[{...n,x:s,y:l}],i=u):u===i&&o.push({...n,x:s,y:l}))}if(!o.length)return null;if(o.length>1){let e="source"===r.type?"target":"source";return o.find(t=>t.type===e)??o[0]}return o[0]}(nO(D=nG(e,R),p,!1,[1,1]),n,l,B),T||(!function e(){if(!d||!R)return;let[t,n]=nx(D,R,k);h({x:t,y:n}),S=requestAnimationFrame(e)}(),T=!0);let m=rR(e,{handle:N,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:a?"target":"source",isValidConnection:v,doc:j,lib:u,flowId:c,nodeLookup:l});L=m.handleDomNode,$=m.connection,i=!!N,s=m.isValid,f=null,s?f=!0:i&&!s&&(f=!1),I=f;let y=l.get(o),x=y?ro(y,B,g.Left,!0):F.from,C={...F,from:x,isValid:I,to:m.toHandle&&I?nR({x:m.toHandle.x,y:m.toHandle.y},p):D,toHandle:m.toHandle,toPosition:I&&m.toHandle?m.toHandle.position:nt[B.position],toNode:m.toHandle?l.get(m.toHandle.nodeId):null,pointer:D};w(C),F=C}function Y(e){if(!("touches"in e)||!(e.touches.length>0)){if(A){(N||L)&&$&&I&&m?.($);let{inProgress:t,...n}=F,r={...n,toPosition:F.toHandle?F.toPosition:null};y?.(e,r),i&&x?.(e,r)}f(),cancelAnimationFrame(S),T=!1,I=!1,$=null,L=null,j.removeEventListener("mousemove",X),j.removeEventListener("mouseup",Y),j.removeEventListener("touchmove",X),j.removeEventListener("touchend",Y)}}0===_&&V(),j.addEventListener("mousemove",X),j.addEventListener("mouseup",Y),j.addEventListener("touchmove",X),j.addEventListener("touchend",Y)},isValid:rR};function rz({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let o=eh(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=1,pannable:l=!0,zoomable:u=!0,inversePan:d=!1}){let c=[0,0],h=t3().on("start",e=>{("mousedown"===e.sourceEvent.type||"touchstart"===e.sourceEvent.type)&&(c=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",l?o=>{let s=n();if("mousemove"!==o.sourceEvent.type&&"touchmove"!==o.sourceEvent.type||!t)return;let l=[o.sourceEvent.clientX??o.sourceEvent.touches[0].clientX,o.sourceEvent.clientY??o.sourceEvent.touches[0].clientY],u=[l[0]-c[0],l[1]-c[1]];c=l;let h=r()*Math.max(s[2],Math.log(s[2]))*(d?-1:1),f={x:s[0]-u[0]*h,y:s[1]-u[1]*h};t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},[[0,0],[i,a]],e)}:null).on("zoom.wheel",u?e=>{if("wheel"!==e.sourceEvent.type||!t)return;let r=n(),o=e.sourceEvent.ctrlKey&&nD()?10:1,i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,a=r[2]*Math.pow(2,i*o);t.scaleTo(a)}:null);o.call(h,{})},destroy:function(){o.on("zoom",null)},pointer:ef}}let rD=e=>({x:e.x,y:e.y,zoom:e.k}),rT=({x:e,y:t,zoom:n})=>tZ.translate(e,t).scale(n),r$=(e,t)=>e.target.closest(`.${t}`),rI=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),rL=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,rB=(e,t=0,n=rL,r=()=>{})=>{let o="number"==typeof t&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},rH=e=>{let t=e.ctrlKey&&nD()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function rF({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:a,onPanZoomEnd:s,onDraggingChange:l}){let u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),h=t3().scaleExtent([t,n]).translateExtent(r),f=eh(e).call(h);v({x:o.x,y:o.y,zoom:ng(o.zoom,t,n)},[[0,0],[d.width,d.height]],r);let p=f.on("wheel.zoom"),g=f.on("dblclick.zoom");function m(e,t){return f?new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?t4:eS).transform(rB(f,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function y(){h.on("zoom",null)}async function v(e,t,n){let r=rT(e),o=h?.constrain()(r,t,n);return o&&await m(o),new Promise(e=>e(o))}return h.wheelDelta(rH),{update:function({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:o,panOnDrag:d,panOnScrollMode:m,panOnScrollSpeed:v,preventScrolling:x,zoomOnPinch:w,zoomOnScroll:b,zoomOnDoubleClick:E,zoomActivationKeyPressed:k,lib:_,onTransformChange:C,connectionInProgress:N,paneClickDistance:j,selectionOnDrag:S}){r&&!u.isZoomingOrPanning&&y();let M=o&&!k&&!r;h.clickDistance(S?1/0:!nS(j)||j<0?0:j);let P=M?function({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:a,onPanZoomStart:s,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(r$(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();let h=n.property("__zoom").k||1;if(d.ctrlKey&&a){let e=ef(d),t=h*Math.pow(2,rH(d));r.scaleTo(n,t,e,d);return}let f=1===d.deltaMode?20:1,p=o===c.Vertical?0:d.deltaX*f,g=o===c.Horizontal?0:d.deltaY*f;!nD()&&d.shiftKey&&o!==c.Vertical&&(p=d.deltaY*f,g=0),r.translateBy(n,-(p/h)*i,-(g/h)*i,{internal:!0});let m=rD(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(d,m),e.panScrollTimeout=setTimeout(()=>{u?.(d,m),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(d,m))}}({zoomPanValues:u,noWheelClassName:e,d3Selection:f,d3Zoom:h,panOnScrollMode:m,panOnScrollSpeed:v,zoomOnPinch:w,onPanZoomStart:a,onPanZoom:i,onPanZoomEnd:s}):function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){let i="wheel"===r.type,a=!t&&i&&!r.ctrlKey,s=r$(r,e);if(r.ctrlKey&&i&&s&&r.preventDefault(),a||s)return null;r.preventDefault(),n.call(this,r,o)}}({noWheelClassName:e,preventScrolling:x,d3ZoomHandler:p});if(f.on("wheel.zoom",P,{passive:!1}),!r){let e=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let o=rD(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=o,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,o)}}({zoomPanValues:u,onDraggingChange:l,onPanZoomStart:a});h.on("start",e);let t=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{e.usedRightMouseButton=!!(n&&rI(t,e.mouseButton??0)),i.sourceEvent?.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!i.sourceEvent?.internal&&o?.(i.sourceEvent,rD(i.transform))}}({zoomPanValues:u,panOnDrag:d,onPaneContextMenu:!!n,onPanZoom:i,onTransformChange:C});h.on("zoom",t);let r=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&rI(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){let t=rD(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o?.(a.sourceEvent,t)},150*!!n)}}}({zoomPanValues:u,panOnDrag:d,panOnScroll:o,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:l});h.on("end",r)}let O=function({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:s,noPanClassName:l,lib:u,connectionInProgress:d}){return c=>{let h=e||t,f=n&&c.ctrlKey,p="wheel"===c.type;if(1===c.button&&"mousedown"===c.type&&(r$(c,`${u}-flow__node`)||r$(c,`${u}-flow__edge`)))return!0;if(!r&&!h&&!o&&!i&&!n||a||d&&!p||r$(c,s)&&p||r$(c,l)&&(!p||o&&p&&!e)||!n&&c.ctrlKey&&p)return!1;if(!n&&"touchstart"===c.type&&c.touches?.length>1)return c.preventDefault(),!1;if(!h&&!o&&!f&&p||!r&&("mousedown"===c.type||"touchstart"===c.type)||Array.isArray(r)&&!r.includes(c.button)&&"mousedown"===c.type)return!1;let g=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||p)&&g}}({zoomActivationKeyPressed:k,panOnDrag:d,zoomOnScroll:b,panOnScroll:o,zoomOnDoubleClick:E,zoomOnPinch:w,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:_,connectionInProgress:N});h.filter(O),E?f.on("dblclick.zoom",g):f.on("dblclick.zoom",null)},destroy:y,setViewport:async function e(e,t){let n=rT(e);return await m(n,t),new Promise(e=>e(n))},setViewportConstrained:v,getViewport:function(){let e=f?tG(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:function(e,t){return f?new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?t4:eS).scaleTo(rB(f,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)},scaleBy:function(e,t){return f?new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?t4:eS).scaleBy(rB(f,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)},setScaleExtent:function(e){h?.scaleExtent(e)},setTranslateExtent:function(e){h?.translateExtent(e)},syncViewport:function(e){if(f){let t=rT(e),n=f.property("__zoom");(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&h?.transform(f,t,null,{sync:!0})}},setClickDistance:function(e){let t=!nS(e)||e<0?0:e;h?.clickDistance(t)}}}(s=m||(m={})).Line="line",s.Handle="handle";let rV=["top-left","top-right","bottom-left","bottom-right"],rX=["top","right","bottom","left"];function rY(e){let t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:e.includes("left"),affectsY:e.includes("top")}}function rW(e,t){return Math.max(0,t-e)}function rq(e,t){return Math.max(0,e-t)}function rZ(e,t,n){return Math.max(0,t-e,e-n)}let rG={width:0,height:0,x:0,y:0},rK={...rG,pointerX:0,pointerY:0,aspectRatio:1};function rU({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){let i=eh(e),a={controlDirection:rY("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:e,boundaries:s,keepAspectRatio:l,resizeDirection:u,onResizeStart:d,onResize:c,onResizeEnd:h,shouldResize:f}){let p,g,m,y,v={...rG},x={...rK};a={boundaries:s,resizeDirection:u,keepAspectRatio:l,controlDirection:rY(e)};let w=null,b=[],E=!1,k=eN().on("start",e=>{let{nodeLookup:r,transform:o,snapGrid:i,snapToGrid:a,nodeOrigin:s,paneDomNode:l}=n();if(!(p=r.get(t)))return;w=l?.getBoundingClientRect()??null;let{xSnapped:u,ySnapped:c}=nV(e.sourceEvent,{transform:o,snapGrid:i,snapToGrid:a,containerBounds:w});if(x={...v={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},pointerX:u,pointerY:c,aspectRatio:v.width/v.height},g=void 0,p.parentId&&("parent"===p.extent||p.expandParent)){var h;m=(g=r.get(p.parentId))&&"parent"===p.extent?[[0,0],[(h=g).measured.width,h.measured.height]]:void 0}for(let[e,n]of(b=[],y=void 0,r))if(n.parentId===t&&(b.push({id:e,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){let e=function(e,t,n){let r=t.position.x+e.position.x,o=t.position.y+e.position.y,i=e.measured.width??0,a=e.measured.height??0,s=n[0]*i,l=n[1]*a;return[[r-s,o-l],[r+i-s,o+a-l]]}(n,p,n.origin??s);y=y?[[Math.min(e[0][0],y[0][0]),Math.min(e[0][1],y[0][1])],[Math.max(e[1][0],y[1][0]),Math.max(e[1][1],y[1][1])]]:e}d?.(e,{...v})}).on("drag",e=>{let{transform:t,snapGrid:o,snapToGrid:i,nodeOrigin:s}=n(),l=nV(e.sourceEvent,{transform:t,snapGrid:o,snapToGrid:i,containerBounds:w}),u=[];if(!p)return;let{x:d,y:h,width:k,height:_}=v,C={},N=p.origin??s,{width:j,height:S,x:M,y:P}=function(e,t,n,r,o,i,a,s){var l,u,d,c;let{affectsX:h,affectsY:f}=t,{isHorizontal:p,isVertical:g}=t,m=p&&g,{xSnapped:y,ySnapped:v}=n,{minWidth:x,maxWidth:w,minHeight:b,maxHeight:E}=r,{x:k,y:_,width:C,height:N,aspectRatio:j}=e,S=Math.floor(p?y-e.pointerX:0),M=Math.floor(g?v-e.pointerY:0),P=C+(h?-S:S),O=N+(f?-M:M),R=-i[0]*C,A=-i[1]*N,z=rZ(P,x,w),D=rZ(O,b,E);if(a){let e=0,t=0;h&&S<0?e=rW(k+S+R,a[0][0]):!h&&S>0&&(e=rq(k+P+R,a[1][0])),f&&M<0?t=rW(_+M+A,a[0][1]):!f&&M>0&&(t=rq(_+O+A,a[1][1])),z=Math.max(z,e),D=Math.max(D,t)}if(s){let e=0,t=0;h&&S>0?e=rq(k+S,s[0][0]):!h&&S<0&&(e=rW(k+P,s[1][0])),f&&M>0?t=rq(_+M,s[0][1]):!f&&M<0&&(t=rW(_+O,s[1][1])),z=Math.max(z,e),D=Math.max(D,t)}if(o){if(p){(z=Math.max(z,rZ(P/j,b,E)*j),a)&&(z=Math.max(z,(h||f)&&(!h||f||!m)?rW(_+A+(h?S:-S)/j,a[0][1])*j:rq(_+A+P/j,a[1][1])*j));s&&(z=Math.max(z,(h||f)&&(!h||f||!m)?rq(_+(h?S:-S)/j,s[0][1])*j:rW(_+P/j,s[1][1])*j))}if(g){(D=Math.max(D,rZ(O*j,x,w)/j),a)&&(D=Math.max(D,(h||f)&&(!f||h||!m)?rW(k+(f?M:-M)*j+R,a[0][0])/j:rq(k+O*j+R,a[1][0])/j));s&&(D=Math.max(D,(h||f)&&(!f||h||!m)?rq(k+(f?M:-M)*j,s[0][0])/j:rW(k+O*j,s[1][0])/j))}}M+=M<0?D:-D,S+=S<0?z:-z,o&&(m?P>O*j?M=((l=h,u=f,l?!u:u)?-S:S)/j:S=((d=h,c=f,d?!c:c)?-M:M)*j:p?(M=S/j,f=h):(S=M*j,h=f));let T=h?k+S:k,$=f?_+M:_;return{width:C+(h?-S:S),height:N+(f?-M:M),x:i[0]*S*(h?-1:1)+T,y:i[1]*M*(f?-1:1)+$}}(x,a.controlDirection,l,a.boundaries,a.keepAspectRatio,N,m,y),O=j!==k,R=S!==_,A=M!==d&&O,z=P!==h&&R;if(!A&&!z&&!O&&!R)return;if((A||z||1===N[0]||1===N[1])&&(C.x=A?M:v.x,C.y=z?P:v.y,v.x=C.x,v.y=C.y,b.length>0)){let e=M-d,t=P-h;for(let n of b)n.position={x:n.position.x-e+N[0]*(j-k),y:n.position.y-t+N[1]*(S-_)},u.push(n)}if((O||R)&&(C.width=O&&(!a.resizeDirection||"horizontal"===a.resizeDirection)?j:v.width,C.height=R&&(!a.resizeDirection||"vertical"===a.resizeDirection)?S:v.height,v.width=C.width,v.height=C.height),g&&p.expandParent){let e=N[0]*(C.width??0);C.x&&C.x<e&&(v.x=e,x.x=x.x-(C.x-e));let t=N[1]*(C.height??0);C.y&&C.y<t&&(v.y=t,x.y=x.y-(C.y-t))}let D=function({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:i}){let a=e-t,s=n-r,l=[a>0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&o&&(l[0]=-1*l[0]),s&&i&&(l[1]=-1*l[1]),l}({width:v.width,prevWidth:k,height:v.height,prevHeight:_,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),T={...v,direction:D};!1!==f?.(e,T)&&(E=!0,c?.(e,T),r(C,u))}).on("end",e=>{E&&(h?.(e,{...v}),o?.({...v}),E=!1)});i.call(k)},destroy:function(){i.on(".drag",null)}}}e.s(["ConnectionLineType",()=>f,"ConnectionMode",()=>d,"MarkerType",()=>p,"PanOnScrollMode",()=>c,"Position",()=>g,"ResizeControlVariant",()=>m,"SelectionMode",()=>h,"XYDrag",()=>rS,"XYHandle",()=>rA,"XYMinimap",()=>rz,"XYPanZoom",()=>rF,"XYResizer",()=>rU,"XY_RESIZER_HANDLE_POSITIONS",()=>rV,"XY_RESIZER_LINE_POSITIONS",()=>rX,"addEdge",()=>n4,"adoptUserNodes",()=>ry,"areConnectionMapsEqual",()=>nn,"areSetsEqual",()=>nB,"calculateNodePosition",()=>nf,"createMarkerIds",()=>rs,"defaultAriaLabelConfig",()=>t9,"devWarn",()=>nM,"elementSelectionKeys",()=>t7,"errorMessages",()=>t6,"evaluateAbsolutePosition",()=>nL,"fitViewport",()=>nh,"getBezierEdgeCenter",()=>nU,"getBezierPath",()=>n0,"getBoundsOfRects",()=>nC,"getConnectionStatus",()=>no,"getDimensions",()=>nX,"getEdgePosition",()=>rn,"getEdgeToolbarTransform",()=>rc,"getElementsToRemove",()=>np,"getElevatedEdgeZIndex",()=>n2,"getEventPosition",()=>nG,"getHandlePosition",()=>ro,"getHostForElement",()=>nY,"getInternalNodesBounds",()=>nd,"getMarkerId",()=>ra,"getNodeDimensions",()=>n$,"getNodeToolbarTransform",()=>rl,"getNodesBounds",()=>nu,"getNodesInside",()=>nc,"getOverlappingArea",()=>nN,"getSmoothStepPath",()=>re,"getStraightPath",()=>n6,"getViewportForBounds",()=>nz,"handleConnectionChange",()=>nr,"handleExpandParent",()=>rw,"infiniteExtent",()=>t8,"initialConnection",()=>ne,"isEdgeBase",()=>ni,"isEdgeVisible",()=>n5,"isInputDOMNode",()=>nq,"isMacOs",()=>nD,"isMouseEvent",()=>nZ,"isNodeBase",()=>na,"isNumeric",()=>nS,"isRectObject",()=>nj,"mergeAriaLabelConfig",()=>nF,"nodeHasDimensions",()=>nI,"nodeToRect",()=>nk,"panBy",()=>rE,"pointToRendererPoint",()=>nO,"rendererPointToPoint",()=>nR,"shallowNodeData",()=>rC,"snapPosition",()=>nP,"updateAbsolutePositions",()=>rg,"updateConnectionLookup",()=>r_,"updateNodeInternals",()=>rb,"withResolvers",()=>nH],92002);var rQ=e.i(96482);let rJ={get url(){return`file://${e.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.10_react@19.2.4/node_modules/zustand/esm/vanilla.mjs")}`}},r0=e=>{let t,n=new Set,r=(e,r)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},o=()=>t,i={setState:r,getState:o,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{(rJ.env?rJ.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(r,o,i);return i},{useDebugValue:r1}=x.default,{useSyncExternalStoreWithSelector:r2}=rQ.default,r5=e=>e;function r3(e,t=r5,n){let r=r2(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return r1(r),r}let r4=(e,t)=>{let n=e?r0(e):r0,r=(e,r=t)=>r3(n,e,r);return Object.assign(r,n),r};function r6(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===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}e.i(26036);let r8=(0,x.createContext)(null),r7=r8.Provider,r9=t6.error001();function oe(e,t){let n=(0,x.useContext)(r8);if(null===n)throw Error(r9);return r3(n,e,t)}function ot(){let e=(0,x.useContext)(r8);if(null===e)throw Error(r9);return(0,x.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}let on={display:"none"},or={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},oo="react-flow__node-desc",oi="react-flow__edge-desc",oa=e=>e.ariaLiveMessage,os=e=>e.ariaLabelConfig;function ol({rfId:e}){let t=oe(oa);return(0,v.jsx)("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:or,children:t})}function ou({rfId:e,disableKeyboardA11y:t}){let n=oe(os);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("div",{id:`${oo}-${e}`,style:on,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,v.jsx)("div",{id:`${oi}-${e}`,style:on,children:n["edge.a11yDescription.default"]}),!t&&(0,v.jsx)(ol,{rfId:e})]})}let od=(0,x.forwardRef)(({position:e="top-left",children:t,className:n,style:r,...o},i)=>{let a=`${e}`.split("-");return(0,v.jsx)("div",{className:w(["react-flow__panel",n,...a]),style:r,ref:i,...o,children:t})});function oc({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:(0,v.jsx)(od,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:(0,v.jsx)("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}od.displayName="Panel";let oh=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}},of=e=>e.id;function op(e,t){return r6(e.selectedNodes.map(of),t.selectedNodes.map(of))&&r6(e.selectedEdges.map(of),t.selectedEdges.map(of))}function og({onSelectionChange:e}){let t=ot(),{selectedNodes:n,selectedEdges:r}=oe(oh,op);return(0,x.useEffect)(()=>{let o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChangeHandlers.forEach(e=>e(o))},[n,r,e]),null}let om=e=>!!e.onSelectionChangeHandlers;function oy({onSelectionChange:e}){let t=oe(om);return e||t?(0,v.jsx)(og,{onSelectionChange:e}):null}let ov=[0,0],ox={x:0,y:0,zoom:1},ow=["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","rfId"],ob=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}),oE={translateExtent:t8,nodeOrigin:ov,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function ok(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:a,reset:s,setDefaultNodesAndEdges:l}=oe(ob,r6),u=ot();(0,x.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=oE,s()}),[]);let d=(0,x.useRef)(oE);return(0,x.useEffect)(()=>{for(let s of ow){let l=e[s];l!==d.current[s]&&void 0!==e[s]&&("nodes"===s?t(l):"edges"===s?n(l):"minZoom"===s?r(l):"maxZoom"===s?o(l):"translateExtent"===s?i(l):"nodeExtent"===s?a(l):"ariaLabelConfig"===s?u.setState({ariaLabelConfig:nF(l)}):"fitView"===s?u.setState({fitViewQueued:l}):"fitViewOptions"===s?u.setState({fitViewOptions:l}):u.setState({[s]:l}))}d.current=e},ow.map(t=>e[t])),null}function o_(){return"u"<typeof window||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}let oC="u">typeof document?document:null;function oN(e=null,t={target:oC,actInsideInputWithModifier:!0}){let[n,r]=(0,x.useState)(!1),o=(0,x.useRef)(!1),i=(0,x.useRef)(new Set([])),[a,s]=(0,x.useMemo)(()=>{if(null!==e){let t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.replace("+","\n").replace("\n\n","\n+").split("\n")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return(0,x.useEffect)(()=>{let n=t?.target??oC,l=t?.actInsideInputWithModifier??!0;if(null!==e){let e=e=>{if(o.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!o.current||o.current&&!l)&&nq(e))return!1;let n=oS(e.code,s);if(i.current.add(e[n]),oj(a,i.current,!1)){let n=e.composedPath?.()?.[0]||e.target,i=n?.nodeName==="BUTTON"||n?.nodeName==="A";!1!==t.preventDefault&&(o.current||!i)&&e.preventDefault(),r(!0)}},u=e=>{let t=oS(e.code,s);oj(a,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(e[t]),"Meta"===e.key&&i.current.clear(),o.current=!1},d=()=>{i.current.clear(),r(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",u),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",u),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[e,r]),n}function oj(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function oS(e,t){return t.includes(e)?"code":"key"}function oM(e,t){let n=[],r=new Map,o=[];for(let t of e)if("add"===t.type){o.push(t);continue}else if("remove"===t.type||"replace"===t.type)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}let o={...e};for(let e of t){var i=e,a=o;switch(i.type){case"select":a.selected=i.selected;break;case"position":void 0!==i.position&&(a.position=i.position),void 0!==i.dragging&&(a.dragging=i.dragging);break;case"dimensions":void 0!==i.dimensions&&(a.measured={...i.dimensions},i.setAttributes&&((!0===i.setAttributes||"width"===i.setAttributes)&&(a.width=i.dimensions.width),(!0===i.setAttributes||"height"===i.setAttributes)&&(a.height=i.dimensions.height))),"boolean"==typeof i.resizing&&(a.resizing=i.resizing)}}n.push(o)}return o.length&&o.forEach(e=>{void 0!==e.index?n.splice(e.index,0,{...e.item}):n.push({...e.item})}),n}function oP(e,t){return oM(e,t)}function oO(e,t){return{id:e,type:"select",selected:t}}function oR(e,t=new Set,n=!1){let r=[];for(let[o,i]of e){let e=t.has(o);(void 0!==i.selected||e)&&i.selected!==e&&(n&&(i.selected=e),r.push(oO(i.id,e)))}return r}function oA({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,o]of e.entries()){let e=t.get(o.id),i=e?.internals?.userNode??e;void 0!==i&&i!==o&&n.push({id:o.id,item:o,type:"replace"}),void 0===i&&n.push({item:o,type:"add",index:r})}for(let[e]of t)void 0===r.get(e)&&n.push({id:e,type:"remove"});return n}function oz(e){return{id:e.id,type:"remove"}}function oD(e){return(0,x.forwardRef)(e)}let oT="u">typeof window?x.useLayoutEffect:x.useEffect;function o$(e){let[t,n]=(0,x.useState)(BigInt(0)),[r]=(0,x.useState)(()=>{var e;let t;return e=()=>n(e=>e+BigInt(1)),t=[],{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}});return oT(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}let oI=(0,x.createContext)(null);function oL({children:e}){let t=ot(),n=o$((0,x.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:o,onNodesChange:i,nodeLookup:a,fitViewQueued:s,onNodesChangeMiddlewareMap:l}=t.getState(),u=n;for(let t of e)u="function"==typeof t?t(u):t;let d=oA({items:u,lookup:a});for(let e of l.values())d=e(d);o&&r(u),d.length>0?i?.(d):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=o$((0,x.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:o,onEdgesChange:i,edgeLookup:a}=t.getState(),s=n;for(let t of e)s="function"==typeof t?t(s):t;o?r(s):i&&i(oA({items:s,lookup:a}))},[])),o=(0,x.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,v.jsx)(oI.Provider,{value:o,children:e})}let oB=e=>!!e.panZoom;function oH(){let e,t=(e=ot(),(0,x.useMemo)(()=>({zoomIn:t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t?.duration}):Promise.resolve(!1)},zoomOut:t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t?.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n?.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,o,i],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:o,minZoom:i,maxZoom:a,panZoom:s}=e.getState(),l=nz(t,r,o,i,a,n?.padding??.1);return s?(await s.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:o,snapToGrid:i,domNode:a}=e.getState();if(!a)return t;let{x:s,y:l}=a.getBoundingClientRect(),u={x:t.x-s,y:t.y-l},d=n.snapGrid??o;return nO(u,r,n.snapToGrid??i,d)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:o,y:i}=r.getBoundingClientRect(),a=nR(t,n);return{x:a.x+o,y:a.y+i}}}),[])),n=ot(),r=function(){let e=(0,x.useContext)(oI);if(!e)throw Error("useBatchContext must be used within a BatchProvider");return e}(),o=oe(oB),i=(0,x.useMemo)(()=>{let e=e=>n.getState().nodeLookup.get(e),t=e=>{r.nodeQueue.push(e)},o=e=>{r.edgeQueue.push(e)},i=e=>{let{nodeLookup:t,nodeOrigin:r}=n.getState(),o=na(e)?e:t.get(e.id),i=o.parentId?nL(o.position,o.measured,o.parentId,t,r):o.position;return nk({...o,position:i,width:o.measured?.width??o.width,height:o.measured?.height??o.height})},a=(e,n,r={replace:!1})=>{t(t=>t.map(t=>{if(t.id===e){let e="function"==typeof n?n(t):n;return r.replace&&na(e)?e:{...t,...e}}return t}))},s=(e,t,n={replace:!1})=>{o(r=>r.map(r=>{if(r.id===e){let e="function"==typeof t?t(r):t;return n.replace&&ni(e)?e:{...r,...e}}return r}))};return{getNodes:()=>n.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=n.getState();return e.map(e=>({...e}))},getEdge:e=>n.getState().edgeLookup.get(e),setNodes:t,setEdges:o,addNodes:e=>{let t=Array.isArray(e)?e:[e];r.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];r.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:t=[],transform:r}=n.getState(),[o,i,a]=r;return{nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),viewport:{x:o,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:t=[]})=>{let{nodes:r,edges:o,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:u,onBeforeDelete:d}=n.getState(),{nodes:c,edges:h}=await np({nodesToRemove:e,edgesToRemove:t,nodes:r,edges:o,onBeforeDelete:d}),f=h.length>0,p=c.length>0;if(f){let e=h.map(oz);a?.(h),l(e)}if(p){let e=c.map(oz);i?.(c),s(e)}return(p||f)&&u?.({nodes:c,edges:h}),{deletedNodes:c,deletedEdges:h}},getIntersectingNodes:(e,t=!0,r)=>{let o=nj(e),a=o?e:i(e),s=void 0!==r;return a?(r||n.getState().nodes).filter(r=>{let i=n.getState().nodeLookup.get(r.id);if(i&&!o&&(r.id===e.id||!i.internals.positionAbsolute))return!1;let l=nk(s?r:i),u=nN(l,a);return t&&u>0||u>=l.width*l.height||u>=a.width*a.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=nj(e)?e:i(e);if(!r)return!1;let o=nN(r,t);return n&&o>0||o>=t.width*t.height||o>=r.width*r.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,e=>{let r="function"==typeof t?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r="function"==typeof t?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:t,nodeOrigin:r}=n.getState();return nu(e,{nodeLookup:t,nodeOrigin:r})},getHandleConnections:({type:e,id:t,nodeId:r})=>Array.from(n.getState().connectionLookup.get(`${r}-${e}${t?`-${t}`:""}`)?.values()??[]),getNodeConnections:({type:e,handleId:t,nodeId:r})=>Array.from(n.getState().connectionLookup.get(`${r}${e?t?`-${e}-${t}`:`-${e}`:""}`)?.values()??[]),fitView:async e=>{let t=n.getState().fitViewResolver??nH();return n.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:t}),r.nodeQueue.push(e=>[...e]),t.promise}}},[]);return(0,x.useMemo)(()=>({...i,...t,viewportInitialized:o}),[o])}let oF=e=>e.selected,oV="u">typeof window?window:void 0,oX={position:"absolute",width:"100%",height:"100%",top:0,left:0},oY=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function oW({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=c.Free,zoomOnDoubleClick:a=!0,panOnDrag:s=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:h,zoomActivationKeyCode:f,preventScrolling:p=!0,children:g,noWheelClassName:m,noPanClassName:y,onViewportChange:w,isControlledViewport:b,paneClickDistance:E,selectionOnDrag:k}){let _,C=ot(),N=(0,x.useRef)(null),{userSelectionActive:j,lib:S,connectionInProgress:M}=oe(oY,r6),P=oN(f),O=(0,x.useRef)();_=ot(),(0,x.useEffect)(()=>{let e=()=>{if(!N.current||!(N.current.checkVisibility?.()??!0))return!1;let e=nX(N.current);(0===e.height||0===e.width)&&_.getState().onError?.("004",t6.error004()),_.setState({width:e.width||500,height:e.height||500})};if(N.current){e(),window.addEventListener("resize",e);let t=new ResizeObserver(()=>e());return t.observe(N.current),()=>{window.removeEventListener("resize",e),t&&N.current&&t.unobserve(N.current)}}},[]);let R=(0,x.useCallback)(e=>{w?.({x:e[0],y:e[1],zoom:e[2]}),b||C.setState({transform:e})},[w,b]);return(0,x.useEffect)(()=>{if(N.current){O.current=rF({domNode:N.current,minZoom:d,maxZoom:h,translateExtent:u,viewport:l,onDraggingChange:e=>C.setState({paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=O.current.getViewport();return C.setState({panZoom:O.current,transform:[e,t,n],domNode:N.current.closest(".react-flow")}),()=>{O.current?.destroy()}}},[]),(0,x.useEffect)(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:s,zoomActivationKeyPressed:P,preventScrolling:p,noPanClassName:y,userSelectionActive:j,noWheelClassName:m,lib:S,onTransformChange:R,connectionInProgress:M,selectionOnDrag:k,paneClickDistance:E})},[e,t,n,r,o,i,a,s,P,p,y,j,m,S,R,M,k,E]),(0,v.jsx)("div",{className:"react-flow__renderer",ref:N,style:oX,children:g})}let oq=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function oZ(){let{userSelectionActive:e,userSelectionRect:t}=oe(oq,r6);return e&&t?(0,v.jsx)("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}let oG=(e,t)=>n=>{n.target===t.current&&e?.(n)},oK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function oU({isSelecting:e,selectionKeyPressed:t,selectionMode:n=h.Full,panOnDrag:r,paneClickDistance:o,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:s,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:c,onPaneMouseMove:f,onPaneMouseLeave:p,children:g}){let m=ot(),{userSelectionActive:y,elementsSelectable:b,dragging:E,connectionInProgress:k}=oe(oK,r6),_=b&&(e||y),C=(0,x.useRef)(null),N=(0,x.useRef)(),j=(0,x.useRef)(new Set),S=(0,x.useRef)(new Set),M=(0,x.useRef)(!1),P=e=>{if(M.current||k){M.current=!1;return}l?.(e),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},O=!0===r||Array.isArray(r)&&r.includes(0);return(0,v.jsxs)("div",{className:w(["react-flow__pane",{draggable:O,dragging:E,selection:e}]),onClick:_?void 0:oG(P,C),onContextMenu:oG(e=>{Array.isArray(r)&&r?.includes(2)?e.preventDefault():u?.(e)},C),onWheel:oG(d?e=>d(e):void 0,C),onPointerEnter:_?void 0:c,onPointerMove:_?e=>{let{userSelectionRect:r,transform:i,nodeLookup:s,edgeLookup:l,connectionLookup:u,triggerNodeChanges:d,triggerEdgeChanges:c,defaultEdgeOptions:f,resetSelectedElements:p}=m.getState();if(!N.current||!r)return;let{x:g,y:y}=nG(e.nativeEvent,N.current),{startX:v,startY:x}=r;if(!M.current){if(Math.hypot(g-v,y-x)<=(t?0:o))return;p(),a?.(e)}M.current=!0;let w={startX:v,startY:x,x:g<v?g:v,y:y<x?y:x,width:Math.abs(g-v),height:Math.abs(y-x)},b=j.current,E=S.current;j.current=new Set(nc(s,w,i,n===h.Partial,!0).map(e=>e.id)),S.current=new Set;let k=f?.selectable??!0;for(let e of j.current){let t=u.get(e);if(t)for(let{edgeId:e}of t.values()){let t=l.get(e);t&&(t.selectable??k)&&S.current.add(e)}}nB(b,j.current)||d(oR(s,j.current,!0)),nB(E,S.current)||c(oR(l,S.current)),m.setState({userSelectionRect:w,userSelectionActive:!0,nodesSelectionActive:!1})}:f,onPointerUp:_?e=>{0===e.button&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===C.current&&m.getState().userSelectionRect&&P?.(e),m.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(s?.(e),m.setState({nodesSelectionActive:j.current.size>0})))}:void 0,onPointerDownCapture:_?n=>{let{domNode:r}=m.getState();if(N.current=r?.getBoundingClientRect(),!N.current)return;let o=n.target===C.current;if(!o&&n.target.closest(".nokey")||!e||!(i&&o||t)||0!==n.button||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),M.current=!1;let{x:a,y:s}=nG(n.nativeEvent,N.current);m.setState({userSelectionRect:{width:0,height:0,startX:a,startY:s,x:a,y:s}}),o||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:_?e=>{M.current&&(e.stopPropagation(),M.current=!1)}:void 0,onPointerLeave:p,ref:C,style:oX,children:[g,(0,v.jsx)(oZ,{})]})}function oQ({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:a,nodeLookup:s,onError:l}=t.getState(),u=s.get(e);u?(t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&a)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):o([e])):l?.("012",t6.error012(e))}function oJ({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:a}){let s=ot(),[l,u]=(0,x.useState)(!1),d=(0,x.useRef)();return(0,x.useEffect)(()=>{d.current=rS({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{oQ({id:t,store:s,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),(0,x.useEffect)(()=>{if(t)d.current?.destroy();else if(e.current)return d.current?.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:o,nodeClickDistance:a}),()=>{d.current?.destroy()}},[n,r,t,i,e,o]),l}function o0(){let e=ot();return(0,x.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:o,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:l,nodeOrigin:u}=e.getState(),d=new Map,c=e=>e.selected&&(e.draggable||i&&void 0===e.draggable),h=r?o[0]:5,f=r?o[1]:5,p=t.direction.x*h*t.factor,g=t.direction.y*f*t.factor;for(let[,e]of l){if(!c(e))continue;let t={x:e.internals.positionAbsolute.x+p,y:e.internals.positionAbsolute.y+g};r&&(t=nP(t,o));let{position:i,positionAbsolute:s}=nf({nodeId:e.id,nextPosition:t,nodeLookup:l,nodeExtent:n,nodeOrigin:u,onError:a});e.position=i,e.internals.positionAbsolute=s,d.set(e.id,e)}s(d)},[])}let o1=(0,x.createContext)(null),o2=o1.Provider;o1.Consumer;let o5=()=>(0,x.useContext)(o1),o3=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),o4=(0,x.memo)(oD(function({type:e="source",position:t=g.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:a,onConnect:s,children:l,className:u,onMouseDown:c,onTouchStart:h,...f},p){let m=a||null,y="target"===e,x=ot(),b=o5(),{connectOnClick:E,noPanClassName:k,rfId:_}=oe(o3,r6),{connectingFrom:C,connectingTo:N,clickConnecting:j,isPossibleEndHandle:S,connectionInProcess:M,clickConnectionInProcess:P,valid:O}=oe(t=>{let{connectionClickStartHandle:n,connectionMode:r,connection:o}=t,{fromHandle:i,toHandle:a,isValid:s}=o,l=a?.nodeId===b&&a?.id===m&&a?.type===e;return{connectingFrom:i?.nodeId===b&&i?.id===m&&i?.type===e,connectingTo:l,clickConnecting:n?.nodeId===b&&n?.id===m&&n?.type===e,isPossibleEndHandle:r===d.Strict?i?.type!==e:b!==i?.nodeId||m!==i?.id,connectionInProcess:!!i,clickConnectionInProcess:!!n,valid:l&&s}},r6);b||x.getState().onError?.("010",t6.error010());let R=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=x.getState(),o={...t,...e};if(r){let{edges:e,setEdges:t}=x.getState();t(n4(o,e))}n?.(o),s?.(o)},A=e=>{if(!b)return;let t=nZ(e.nativeEvent);if(o&&(t&&0===e.button||!t)){let t=x.getState();rA.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:y,handleId:m,nodeId:b,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:t.onConnectEnd,updateConnection:t.updateConnection,onConnect:R,isValidConnection:n||t.isValidConnection,getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?c?.(e):h?.(e)};return(0,v.jsx)("div",{"data-handleid":m,"data-nodeid":b,"data-handlepos":t,"data-id":`${_}-${b}-${m}-${e}`,className:w(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",k,u,{source:!y,target:y,connectable:r,connectablestart:o,connectableend:i,clickconnecting:j,connectingfrom:C,connectingto:N,valid:O,connectionindicator:r&&(!M||S)&&(M||P?i:o)}]),onMouseDown:A,onTouchStart:A,onClick:E?t=>{let{onClickConnectStart:r,onClickConnectEnd:i,connectionClickStartHandle:a,connectionMode:s,isValidConnection:l,lib:u,rfId:d,nodeLookup:c,connection:h}=x.getState();if(!b||!a&&!o)return;if(!a){r?.(t.nativeEvent,{nodeId:b,handleId:m,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:b,type:e,id:m}});return}let f=nY(t.target),p=n||l,{connection:g,isValid:y}=rA.isValid(t.nativeEvent,{handle:{nodeId:b,id:m,type:e},connectionMode:s,fromNodeId:a.nodeId,fromHandleId:a.id||null,fromType:a.type,isValidConnection:p,flowId:d,doc:f,lib:u,nodeLookup:c});y&&g&&R(g);let v=structuredClone(h);delete v.inProgress,v.toPosition=v.toHandle?v.toHandle.position:null,i?.(t,v),x.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:l})})),o6={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},o8={input:function({data:e,isConnectable:t,sourcePosition:n=g.Bottom}){return(0,v.jsxs)(v.Fragment,{children:[e?.label,(0,v.jsx)(o4,{type:"source",position:n,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:n=g.Top,sourcePosition:r=g.Bottom}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(o4,{type:"target",position:n,isConnectable:t}),e?.label,(0,v.jsx)(o4,{type:"source",position:r,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:n=g.Top}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(o4,{type:"target",position:n,isConnectable:t}),e?.label]})},group:function(){return null}},o7=e=>{let{width:t,height:n,x:r,y:o}=nd(e.nodeLookup,{filter:e=>!!e.selected});return{width:nS(t)?t:null,height:nS(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function o9({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=ot(),{width:o,height:i,transformString:a,userSelectionActive:s}=oe(o7,r6),l=o0(),u=(0,x.useRef)(null);if((0,x.useEffect)(()=>{n||u.current?.focus({preventScroll:!0})},[n]),oJ({nodeRef:u}),s||!o||!i)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,v.jsx)("div",{className:w(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:(0,v.jsx)("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(o6,e.key)&&(e.preventDefault(),l({direction:o6[e.key],factor:e.shiftKey?4:1}))},style:{width:o,height:i}})})}let ie="u">typeof window?window:void 0,it=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ir({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,paneClickDistance:s,deleteKeyCode:l,selectionKeyCode:u,selectionOnDrag:d,selectionMode:c,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:p,panActivationKeyCode:g,zoomActivationKeyCode:m,elementsSelectable:y,zoomOnScroll:w,zoomOnPinch:b,panOnScroll:E,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:N,defaultViewport:j,translateExtent:S,minZoom:M,maxZoom:P,preventScrolling:O,onSelectionContextMenu:R,noWheelClassName:A,noPanClassName:z,disableKeyboardA11y:D,onViewportChange:T,isControlledViewport:$}){let{nodesSelectionActive:I,userSelectionActive:L}=oe(it,r6),B=oN(u,{target:ie}),H=oN(g,{target:ie}),F=H||N,V=H||E,X=d&&!0!==F,Y=B||L||X;return!function({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=ot(),{deleteElements:r}=oH(),o=oN(e,{actInsideInputWithModifier:!1}),i=oN(t,{target:oV});(0,x.useEffect)(()=>{if(o){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(oF),edges:e.filter(oF)}),n.setState({nodesSelectionActive:!1})}},[o]),(0,x.useEffect)(()=>{n.setState({multiSelectionActive:i})},[i])}({deleteKeyCode:l,multiSelectionKeyCode:p}),(0,v.jsx)(oW,{onPaneContextMenu:i,elementsSelectable:y,zoomOnScroll:w,zoomOnPinch:b,panOnScroll:V,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!B&&F,defaultViewport:j,translateExtent:S,minZoom:M,maxZoom:P,zoomActivationKeyCode:m,preventScrolling:O,noWheelClassName:A,noPanClassName:z,onViewportChange:T,isControlledViewport:$,paneClickDistance:s,selectionOnDrag:X,children:(0,v.jsxs)(oU,{onSelectionStart:h,onSelectionEnd:f,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:F,isSelecting:!!Y,selectionMode:c,selectionKeyPressed:B,paneClickDistance:s,selectionOnDrag:X,children:[e,I&&(0,v.jsx)(o9,{onSelectionContextMenu:R,noPanClassName:z,disableKeyboardA11y:D})]})})}ir.displayName="FlowRenderer";let io=(0,x.memo)(ir),ii=e=>e.updateNodeInternals;var ia=(0,x.memo)(function({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:a,nodesDraggable:s,elementsSelectable:l,nodesConnectable:u,nodesFocusable:d,resizeObserver:c,noDragClassName:h,noPanClassName:f,disableKeyboardA11y:p,rfId:g,nodeTypes:m,nodeClickDistance:y,onError:b}){let{node:E,internals:k,isParent:_}=oe(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},r6),C=E.type||"default",N=m?.[C]||o8[C];void 0===N&&(b?.("003",t6.error003(C)),C="default",N=m?.default||o8.default);let j=!!(E.draggable||s&&void 0===E.draggable),S=!!(E.selectable||l&&void 0===E.selectable),M=!!(E.connectable||u&&void 0===E.connectable),P=!!(E.focusable||d&&void 0===E.focusable),O=ot(),R=nI(E),A=function({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let o=ot(),i=(0,x.useRef)(null),a=(0,x.useRef)(null),s=(0,x.useRef)(e.sourcePosition),l=(0,x.useRef)(e.targetPosition),u=(0,x.useRef)(t),d=n&&!!e.internals.handleBounds;return(0,x.useEffect)(()=>{!i.current||e.hidden||d&&a.current===i.current||(a.current&&r?.unobserve(a.current),r?.observe(i.current),a.current=i.current)},[d,e.hidden]),(0,x.useEffect)(()=>()=>{a.current&&(r?.unobserve(a.current),a.current=null)},[]),(0,x.useEffect)(()=>{if(i.current){let n=u.current!==t,r=s.current!==e.sourcePosition,a=l.current!==e.targetPosition;(n||r||a)&&(u.current=t,s.current=e.sourcePosition,l.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}({node:E,nodeType:C,hasDimensions:R,resizeObserver:c}),z=oJ({nodeRef:A,disabled:E.hidden||!j,noDragClassName:h,handleSelector:E.dragHandle,nodeId:e,isSelectable:S,nodeClickDistance:y}),D=o0();if(E.hidden)return null;let T=n$(E),$=void 0===E.internals.handleBounds?{width:E.width??E.initialWidth??E.style?.width,height:E.height??E.initialHeight??E.style?.height}:{width:E.width??E.style?.width,height:E.height??E.style?.height},I=S||j||t||n||r||o,L=n?e=>n(e,{...k.userNode}):void 0,B=r?e=>r(e,{...k.userNode}):void 0,H=o?e=>o(e,{...k.userNode}):void 0,F=i?e=>i(e,{...k.userNode}):void 0,V=a?e=>a(e,{...k.userNode}):void 0;return(0,v.jsx)("div",{className:w(["react-flow__node",`react-flow__node-${C}`,{[f]:j},E.className,{selected:E.selected,selectable:S,parent:_,draggable:j,dragging:z}]),ref:A,style:{zIndex:k.z,transform:`translate(${k.positionAbsolute.x}px,${k.positionAbsolute.y}px)`,pointerEvents:I?"all":"none",visibility:R?"visible":"hidden",...E.style,...$},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:B,onMouseLeave:H,onContextMenu:F,onClick:n=>{let{selectNodesOnDrag:r,nodeDragThreshold:o}=O.getState();S&&(!r||!j||o>0)&&oQ({id:e,store:O,nodeRef:A}),t&&t(n,{...k.userNode})},onDoubleClick:V,onKeyDown:P?t=>{if(!nq(t.nativeEvent)&&!p){if(t7.includes(t.key)&&S)oQ({id:e,store:O,unselect:"Escape"===t.key,nodeRef:A});else if(j&&E.selected&&Object.prototype.hasOwnProperty.call(o6,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:t.key.replace("Arrow","").toLowerCase(),x:~~k.positionAbsolute.x,y:~~k.positionAbsolute.y})}),D({direction:o6[t.key],factor:t.shiftKey?4:1})}}}:void 0,tabIndex:P?0:void 0,onFocus:P?()=>{if(p||!A.current?.matches(":focus-visible"))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:o,setCenter:i}=O.getState();!o||nc(new Map([[e,E]]),{x:0,y:0,width:n,height:r},t,!0).length>0||i(E.position.x+T.width/2,E.position.y+T.height/2,{zoom:t[2]})}:void 0,role:E.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${oo}-${g}`,"aria-label":E.ariaLabel,...E.domAttributes,children:(0,v.jsx)(o2,{value:e,children:(0,v.jsx)(N,{id:e,data:E.data,type:C,positionAbsoluteX:k.positionAbsolute.x,positionAbsoluteY:k.positionAbsolute.y,selected:E.selected??!1,selectable:S,draggable:j,deletable:E.deletable??!0,isConnectable:M,sourcePosition:E.sourcePosition,targetPosition:E.targetPosition,dragging:z,dragHandle:E.dragHandle,zIndex:k.z,parentId:E.parentId,...T})})})});let is=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function il(e){var t;let{nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,onError:a}=oe(is,r6),s=(t=e.onlyRenderVisibleElements,oe((0,x.useCallback)(e=>t?nc(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(e=>e.id):Array.from(e.nodeLookup.keys()),[t]),r6)),l=function(){let e=oe(ii),[t]=(0,x.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,x.useEffect)(()=>()=>{t?.disconnect()},[t]),t}();return(0,v.jsx)("div",{className:"react-flow__nodes",style:oX,children:s.map(t=>(0,v.jsx)(ia,{id:t,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:l,nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:a},t))})}il.displayName="NodeRenderer";let iu=(0,x.memo)(il),id={[p.Arrow]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,v.jsx)("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[p.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,v.jsx)("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},ic=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:s="auto-start-reverse"})=>{let l,u=(l=ot(),(0,x.useMemo)(()=>Object.prototype.hasOwnProperty.call(id,t)?id[t]:(l.getState().onError?.("009",t6.error009(t)),null),[t]));return u?(0,v.jsx)("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:(0,v.jsx)(u,{color:n,strokeWidth:a})}):null},ih=({defaultColor:e,rfId:t})=>{let n=oe(e=>e.edges),r=oe(e=>e.defaultEdgeOptions),o=(0,x.useMemo)(()=>rs(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return o.length?(0,v.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,v.jsx)("defs",{children:o.map(e=>(0,v.jsx)(ic,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};ih.displayName="MarkerDefinitions";var ip=(0,x.memo)(ih);function ig({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:a=[2,4],labelBgBorderRadius:s=2,children:l,className:u,...d}){let[c,h]=(0,x.useState)({x:1,y:0,width:0,height:0}),f=w(["react-flow__edge-textwrapper",u]),p=(0,x.useRef)(null);return((0,x.useEffect)(()=>{if(p.current){let e=p.current.getBBox();h({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n)?(0,v.jsxs)("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:f,visibility:c.width?"visible":"hidden",...d,children:[o&&(0,v.jsx)("rect",{width:c.width+2*a[0],x:-a[0],y:-a[1],height:c.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),(0,v.jsx)("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:p,style:r,children:n}),l]}):null}ig.displayName="EdgeText";let im=(0,x.memo)(ig);function iy({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l,interactionWidth:u=20,...d}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("path",{...d,d:e,fill:"none",className:w(["react-flow__edge-path",d.className])}),u?(0,v.jsx)("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,r&&nS(t)&&nS(n)?(0,v.jsx)(im,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l}):null]})}function iv({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===g.Left||e===g.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function ix({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:r,targetY:o,targetPosition:i=g.Top}){let[a,s]=iv({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,u]=iv({pos:i,x1:r,y1:o,x2:e,y2:t}),[d,c,h,f]=nU({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:u});return[`M${e},${t} C${a},${s} ${l},${u} ${r},${o}`,d,c,h,f]}function iw(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a,targetPosition:s,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:g,markerStart:m,interactionWidth:y})=>{let[x,w,b]=ix({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:s}),E=e.isInternal?void 0:t;return(0,v.jsx)(iy,{id:E,path:x,labelX:w,labelY:b,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:g,markerStart:m,interactionWidth:y})})}let ib=iw({isInternal:!1}),iE=iw({isInternal:!0});function ik(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:h,sourcePosition:f=g.Bottom,targetPosition:p=g.Top,markerEnd:m,markerStart:y,pathOptions:x,interactionWidth:w})=>{let[b,E,k]=re({sourceX:n,sourceY:r,sourcePosition:f,targetX:o,targetY:i,targetPosition:p,borderRadius:x?.borderRadius,offset:x?.offset,stepPosition:x?.stepPosition}),_=e.isInternal?void 0:t;return(0,v.jsx)(iy,{id:_,path:b,labelX:E,labelY:k,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:h,markerEnd:m,markerStart:y,interactionWidth:w})})}ib.displayName="SimpleBezierEdge",iE.displayName="SimpleBezierEdgeInternal";let i_=ik({isInternal:!1}),iC=ik({isInternal:!0});function iN(e){return(0,x.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,v.jsx)(i_,{...n,id:r,pathOptions:(0,x.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}i_.displayName="SmoothStepEdge",iC.displayName="SmoothStepEdgeInternal";let ij=iN({isInternal:!1}),iS=iN({isInternal:!0});function iM(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:h,markerEnd:f,markerStart:p,interactionWidth:g})=>{let[m,y,x]=n6({sourceX:n,sourceY:r,targetX:o,targetY:i}),w=e.isInternal?void 0:t;return(0,v.jsx)(iy,{id:w,path:m,labelX:y,labelY:x,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:h,markerEnd:f,markerStart:p,interactionWidth:g})})}ij.displayName="StepEdge",iS.displayName="StepEdgeInternal";let iP=iM({isInternal:!1}),iO=iM({isInternal:!0});function iR(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a=g.Bottom,targetPosition:s=g.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:y,pathOptions:x,interactionWidth:w})=>{let[b,E,k]=n0({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:s,curvature:x?.curvature}),_=e.isInternal?void 0:t;return(0,v.jsx)(iy,{id:_,path:b,labelX:E,labelY:k,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:y,interactionWidth:w})})}iP.displayName="StraightEdge",iO.displayName="StraightEdgeInternal";let iA=iR({isInternal:!1}),iz=iR({isInternal:!0});iA.displayName="BezierEdge",iz.displayName="BezierEdgeInternal";let iD={default:iz,straight:iO,step:iS,smoothstep:iC,simplebezier:iE},iT={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},i$="react-flow__edgeupdater";function iI({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:a,type:s}){return(0,v.jsx)("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:a,className:w([i$,`${i$}-${s}`]),cx:e===g.Left?t-r:e===g.Right?t+r:t,cy:e===g.Top?n-r:e===g.Bottom?n+r:n,r:r,stroke:"transparent",fill:"transparent"})}function iL({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:a,sourcePosition:s,targetPosition:l,onReconnect:u,onReconnectStart:d,onReconnectEnd:c,setReconnecting:h,setUpdateHover:f}){let p=ot(),g=(e,t)=>{if(0!==e.button)return;let{autoPanOnConnect:r,domNode:o,isValidConnection:i,connectionMode:a,connectionRadius:s,lib:l,onConnectStart:f,onConnectEnd:g,cancelConnection:m,nodeLookup:y,rfId:v,panBy:x,updateConnection:w}=p.getState(),b="target"===t.type;rA.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:s,domNode:o,handleId:t.id,nodeId:t.nodeId,nodeLookup:y,isTarget:b,edgeUpdaterType:t.type,lib:l,flowId:v,cancelConnection:m,panBy:x,isValidConnection:i,onConnect:e=>u?.(n,e),onConnectStart:(r,o)=>{h(!0),d?.(e,n,t.type),f?.(r,o)},onConnectEnd:g,onReconnectEnd:(e,r)=>{h(!1),c?.(e,n,t.type,r)},updateConnection:w,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},m=()=>f(!0),y=()=>f(!1);return(0,v.jsxs)(v.Fragment,{children:[(!0===e||"source"===e)&&(0,v.jsx)(iI,{position:s,centerX:r,centerY:o,radius:t,onMouseDown:e=>g(e,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),onMouseEnter:m,onMouseOut:y,type:"source"}),(!0===e||"target"===e)&&(0,v.jsx)(iI,{position:l,centerX:i,centerY:a,radius:t,onMouseDown:e=>g(e,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),onMouseEnter:m,onMouseOut:y,type:"target"})]})}var iB=(0,x.memo)(function({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:u,reconnectRadius:d,onReconnect:c,onReconnectStart:h,onReconnectEnd:f,rfId:p,edgeTypes:g,noPanClassName:m,onError:y,disableKeyboardA11y:b}){let E=oe(t=>t.edgeLookup.get(e)),k=oe(e=>e.defaultEdgeOptions),_=(E=k?{...k,...E}:E).type||"default",C=g?.[_]||iD[_];void 0===C&&(y?.("011",t6.error011(_)),_="default",C=g?.default||iD.default);let N=!!(E.focusable||t&&void 0===E.focusable),j=void 0!==c&&(E.reconnectable||n&&void 0===E.reconnectable),S=!!(E.selectable||r&&void 0===E.selectable),M=(0,x.useRef)(null),[P,O]=(0,x.useState)(!1),[R,A]=(0,x.useState)(!1),z=ot(),{zIndex:D,sourceX:T,sourceY:$,targetX:I,targetY:L,sourcePosition:B,targetPosition:H}=oe((0,x.useCallback)(t=>{let n=t.nodeLookup.get(E.source),r=t.nodeLookup.get(E.target);if(!n||!r)return{zIndex:E.zIndex,...iT};let o=rn({id:e,sourceNode:n,targetNode:r,sourceHandle:E.sourceHandle||null,targetHandle:E.targetHandle||null,connectionMode:t.connectionMode,onError:y});return{zIndex:n2({selected:E.selected,zIndex:E.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...o||iT}},[E.source,E.target,E.sourceHandle,E.targetHandle,E.selected,E.zIndex]),r6),F=(0,x.useMemo)(()=>E.markerStart?`url('#${ra(E.markerStart,p)}')`:void 0,[E.markerStart,p]),V=(0,x.useMemo)(()=>E.markerEnd?`url('#${ra(E.markerEnd,p)}')`:void 0,[E.markerEnd,p]);if(E.hidden||null===T||null===$||null===I||null===L)return null;let X=i?e=>{i(e,{...E})}:void 0,Y=a?e=>{a(e,{...E})}:void 0,W=s?e=>{s(e,{...E})}:void 0,q=l?e=>{l(e,{...E})}:void 0,Z=u?e=>{u(e,{...E})}:void 0;return(0,v.jsx)("svg",{style:{zIndex:D},children:(0,v.jsxs)("g",{className:w(["react-flow__edge",`react-flow__edge-${_}`,E.className,m,{selected:E.selected,animated:E.animated,inactive:!S&&!o,updating:P,selectable:S}]),onClick:t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:i}=z.getState();S&&(z.setState({nodesSelectionActive:!1}),E.selected&&i?(r({nodes:[],edges:[E]}),M.current?.blur()):n([e])),o&&o(t,E)},onDoubleClick:X,onContextMenu:Y,onMouseEnter:W,onMouseMove:q,onMouseLeave:Z,onKeyDown:N?t=>{if(!b&&t7.includes(t.key)&&S){let{unselectNodesAndEdges:n,addSelectedEdges:r}=z.getState();"Escape"===t.key?(M.current?.blur(),n({edges:[E]})):r([e])}}:void 0,tabIndex:N?0:void 0,role:E.ariaRole??(N?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":null===E.ariaLabel?void 0:E.ariaLabel||`Edge from ${E.source} to ${E.target}`,"aria-describedby":N?`${oi}-${p}`:void 0,ref:M,...E.domAttributes,children:[!R&&(0,v.jsx)(C,{id:e,source:E.source,target:E.target,type:E.type,selected:E.selected,animated:E.animated,selectable:S,deletable:E.deletable??!0,label:E.label,labelStyle:E.labelStyle,labelShowBg:E.labelShowBg,labelBgStyle:E.labelBgStyle,labelBgPadding:E.labelBgPadding,labelBgBorderRadius:E.labelBgBorderRadius,sourceX:T,sourceY:$,targetX:I,targetY:L,sourcePosition:B,targetPosition:H,data:E.data,style:E.style,sourceHandleId:E.sourceHandle,targetHandleId:E.targetHandle,markerStart:F,markerEnd:V,pathOptions:"pathOptions"in E?E.pathOptions:void 0,interactionWidth:E.interactionWidth}),j&&(0,v.jsx)(iL,{edge:E,isReconnectable:j,reconnectRadius:d,onReconnect:c,onReconnectStart:h,onReconnectEnd:f,sourceX:T,sourceY:$,targetX:I,targetY:L,sourcePosition:B,targetPosition:H,setUpdateHover:O,setReconnecting:A})]})})});let iH=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function iF({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:a,onEdgeMouseEnter:s,onEdgeMouseMove:l,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:c,onEdgeDoubleClick:h,onReconnectStart:f,onReconnectEnd:p,disableKeyboardA11y:g}){let{edgesFocusable:m,edgesReconnectable:y,elementsSelectable:w,onError:b}=oe(iH,r6),E=oe((0,x.useCallback)(e=>{if(!t)return e.edges.map(e=>e.id);let n=[];if(e.width&&e.height)for(let t of e.edges){let r=e.nodeLookup.get(t.source),o=e.nodeLookup.get(t.target);r&&o&&n5({sourceNode:r,targetNode:o,width:e.width,height:e.height,transform:e.transform})&&n.push(t.id)}return n},[t]),r6);return(0,v.jsxs)("div",{className:"react-flow__edges",children:[(0,v.jsx)(ip,{defaultColor:e,rfId:n}),E.map(e=>(0,v.jsx)(iB,{id:e,edgesFocusable:m,edgesReconnectable:y,elementsSelectable:w,noPanClassName:o,onReconnect:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:u,onClick:d,reconnectRadius:c,onDoubleClick:h,onReconnectStart:f,onReconnectEnd:p,rfId:n,onError:b,edgeTypes:r,disableKeyboardA11y:g},e))]})}iF.displayName="EdgeRenderer";let iV=(0,x.memo)(iF),iX=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function iY({children:e}){let t=oe(iX);return(0,v.jsx)("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}let iW=e=>e.panZoom?.syncViewport;function iq(e){return e.connection.inProgress?{...e.connection,to:nO(e.connection.to,e.transform)}:{...e.connection}}let iZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function iG({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:o,width:i,height:a,isValid:s,inProgress:l}=oe(iZ,r6);return i&&o&&l?(0,v.jsx)("svg",{style:e,width:i,height:a,className:"react-flow__connectionline react-flow__container",children:(0,v.jsx)("g",{className:w(["react-flow__connection",no(s)]),children:(0,v.jsx)(iK,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}let iK=({style:e,type:t=f.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:o,from:i,fromNode:a,fromHandle:s,fromPosition:l,to:u,toNode:d,toHandle:c,toPosition:h,pointer:p}=oe(iq,r6);if(!o)return;if(n)return(0,v.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:s,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:l,toPosition:h,connectionStatus:no(r),toNode:d,toHandle:c,pointer:p});let g="",m={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:u.x,targetY:u.y,targetPosition:h};switch(t){case f.Bezier:[g]=n0(m);break;case f.SimpleBezier:[g]=ix(m);break;case f.Step:[g]=re({...m,borderRadius:0});break;case f.SmoothStep:[g]=re(m);break;default:[g]=n6(m)}return(0,v.jsx)("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};iK.displayName="ConnectionLine";let iU={};function iQ(e=iU){(0,x.useRef)(e),ot(),(0,x.useEffect)(()=>{},[e])}function iJ({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:c,onSelectionStart:h,onSelectionEnd:f,connectionLineType:p,connectionLineStyle:g,connectionLineComponent:m,connectionLineContainerStyle:y,selectionKeyCode:w,selectionOnDrag:b,selectionMode:E,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:N,onlyRenderVisibleElements:j,elementsSelectable:S,defaultViewport:M,translateExtent:P,minZoom:O,maxZoom:R,preventScrolling:A,defaultMarkerColor:z,zoomOnScroll:D,zoomOnPinch:T,panOnScroll:$,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:B,panOnDrag:H,onPaneClick:F,onPaneMouseEnter:V,onPaneMouseMove:X,onPaneMouseLeave:Y,onPaneScroll:W,onPaneContextMenu:q,paneClickDistance:Z,nodeClickDistance:G,onEdgeContextMenu:K,onEdgeMouseEnter:U,onEdgeMouseMove:Q,onEdgeMouseLeave:J,reconnectRadius:ee,onReconnect:et,onReconnectStart:en,onReconnectEnd:er,noDragClassName:eo,noWheelClassName:ei,noPanClassName:ea,disableKeyboardA11y:es,nodeExtent:el,rfId:eu,viewport:ed,onViewportChange:ec}){let eh,ef,ep,eg;return iQ(e),iQ(t),ot(),(0,x.useRef)(!1),(0,x.useEffect)(()=>{},[]),eh=oH(),ef=(0,x.useRef)(!1),(0,x.useEffect)(()=>{!ef.current&&eh.viewportInitialized&&n&&(setTimeout(()=>n(eh),1),ef.current=!0)},[n,eh.viewportInitialized]),ep=oe(iW),eg=ot(),(0,x.useEffect)(()=>{ed&&(ep?.(ed),eg.setState({transform:[ed.x,ed.y,ed.zoom]}))},[ed,ep]),(0,v.jsx)(io,{onPaneClick:F,onPaneMouseEnter:V,onPaneMouseMove:X,onPaneMouseLeave:Y,onPaneContextMenu:q,onPaneScroll:W,paneClickDistance:Z,deleteKeyCode:N,selectionKeyCode:w,selectionOnDrag:b,selectionMode:E,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:S,zoomOnScroll:D,zoomOnPinch:T,zoomOnDoubleClick:B,panOnScroll:$,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:H,defaultViewport:M,translateExtent:P,minZoom:O,maxZoom:R,onSelectionContextMenu:c,preventScrolling:A,noDragClassName:eo,noWheelClassName:ei,noPanClassName:ea,disableKeyboardA11y:es,onViewportChange:ec,isControlledViewport:!!ed,children:(0,v.jsxs)(iY,{children:[(0,v.jsx)(iV,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:a,onReconnect:et,onReconnectStart:en,onReconnectEnd:er,onlyRenderVisibleElements:j,onEdgeContextMenu:K,onEdgeMouseEnter:U,onEdgeMouseMove:Q,onEdgeMouseLeave:J,reconnectRadius:ee,defaultMarkerColor:z,noPanClassName:ea,disableKeyboardA11y:es,rfId:eu}),(0,v.jsx)(iG,{style:g,type:p,component:m,containerStyle:y}),(0,v.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,v.jsx)(iu,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:G,onlyRenderVisibleElements:j,noPanClassName:ea,noDragClassName:eo,disableKeyboardA11y:es,nodeExtent:el,rfId:eu}),(0,v.jsx)("div",{className:"react-flow__viewport-portal"})]})})}iJ.displayName="GraphView";let i0=(0,x.memo)(iJ),i1=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:a,fitViewOptions:s,minZoom:l=.5,maxZoom:u=2,nodeOrigin:c,nodeExtent:h,zIndexMode:f="basic"}={})=>{let p=new Map,g=new Map,m=new Map,y=new Map,v=r??t??[],x=n??e??[],w=c??[0,0],b=h??t8;r_(m,y,v);let E=ry(x,p,g,{nodeOrigin:w,nodeExtent:b,zIndexMode:f}),k=[0,0,1];if(a&&o&&i){let{x:e,y:t,zoom:n}=nz(nd(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),o,i,l,u,s?.padding??.1);k=[e,t,n]}return{rfId:"1",width:o??0,height:i??0,transform:k,nodes:x,nodesInitialized:E,nodeLookup:p,parentLookup:g,edges:v,edgeLookup:y,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==n,hasDefaultEdges:void 0!==r,panZoom:null,minZoom:l,maxZoom:u,translateExtent:t8,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:d.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:w,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:a??!1,fitViewOptions:s,fitViewResolver:null,connection:{...ne},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:nM,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:t9,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}};function i2({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:a,initialMaxZoom:s,initialFitViewOptions:l,fitView:u,nodeOrigin:d,nodeExtent:c,zIndexMode:h,children:f}){let[p]=(0,x.useState)(()=>(({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:c,zIndexMode:h})=>{let f,p;return f=(f,p)=>{async function m(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:o,height:i,minZoom:a,maxZoom:s}=p();t&&(await nh({nodes:e,width:o,height:i,panZoom:t,minZoom:a,maxZoom:s},n),r?.resolve(!0),f({fitViewResolver:null}))}return{...i1({nodes:e,edges:t,width:o,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:c,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:o,fitViewQueued:i,zIndexMode:a}=p(),s=ry(e,t,n,{nodeOrigin:r,nodeExtent:c,elevateNodesOnSelect:o,checkEquality:!0,zIndexMode:a});i&&s?(m(),f({nodes:e,nodesInitialized:s,fitViewQueued:!1,fitViewOptions:void 0})):f({nodes:e,nodesInitialized:s})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=p();r_(t,n,e),f({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=p();t(e),f({hasDefaultNodes:!0})}if(t){let{setEdges:e}=p();e(t),f({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:o,nodeOrigin:i,nodeExtent:a,debug:s,fitViewQueued:l,zIndexMode:u}=p(),{changes:d,updatedInternals:c}=rb(e,n,r,o,i,a,u);c&&(rg(n,r,{nodeOrigin:i,nodeExtent:a,zIndexMode:u}),l?(m(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),d?.length>0&&(s&&console.log("React Flow: trigger node changes",d),t?.(d)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:o,triggerNodeChanges:i,connection:a,updateConnection:s,onNodesChangeMiddlewareMap:l}=p();for(let[i,l]of e){let e=o.get(i),u=!!(e?.expandParent&&e?.parentId&&l?.position),d={id:i,type:"position",position:u?{x:Math.max(0,l.position.x),y:Math.max(0,l.position.y)}:l.position,dragging:t};if(e&&a.inProgress&&a.fromNode.id===e.id){let t=ro(e,a.fromHandle,g.Left,!0);s({...a,from:t})}u&&e.parentId&&n.push({id:i,parentId:e.parentId,rect:{...l.internals.positionAbsolute,width:l.measured.width??0,height:l.measured.height??0}}),r.push(d)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=p(),i=rw(n,o,e,t);r.push(...i)}for(let e of l.values())r=e(r);i(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:o,debug:i}=p();e?.length&&(o&&n(oM(e,r)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:o,debug:i}=p();e?.length&&(o&&n(oM(e,r)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:o,triggerEdgeChanges:i}=p();t?o(e.map(e=>oO(e,!0))):(o(oR(r,new Set([...e]),!0)),i(oR(n)))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:o,triggerEdgeChanges:i}=p();t?i(e.map(e=>oO(e,!0))):(i(oR(n,new Set([...e]))),o(oR(r,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:o,triggerNodeChanges:i,triggerEdgeChanges:a}=p(),s=(e||r).map(e=>{let t=o.get(e.id);return t&&(t.selected=!1),oO(e.id,!1)}),l=(t||n).map(e=>oO(e.id,!1));i(s),a(l)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=p();t?.setScaleExtent([e,n]),f({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=p();t?.setScaleExtent([n,e]),f({maxZoom:e})},setTranslateExtent:e=>{p().panZoom?.setTranslateExtent(e),f({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:o}=p();if(!o)return;let i=t.reduce((e,t)=>t.selected?[...e,oO(t.id,!1)]:e,[]),a=e.reduce((e,t)=>t.selected?[...e,oO(t.id,!1)]:e,[]);n(i),r(a)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:o,elevateNodesOnSelect:i,nodeExtent:a,zIndexMode:s}=p();(e[0][0]!==a[0][0]||e[0][1]!==a[0][1]||e[1][0]!==a[1][0]||e[1][1]!==a[1][1])&&(ry(t,n,r,{nodeOrigin:o,nodeExtent:e,elevateNodesOnSelect:i,checkEquality:!1,zIndexMode:s}),f({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:o,translateExtent:i}=p();return rE({delta:e,panZoom:o,transform:t,translateExtent:i,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:o,maxZoom:i,panZoom:a}=p();if(!a)return Promise.resolve(!1);let s=void 0!==n?.zoom?n.zoom:i;return await a.setViewport({x:r/2-e*s,y:o/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{f({connection:{...ne}})},updateConnection:e=>{f({connection:e})},reset:()=>f({...i1()})}},p=Object.is,f?r4(f,p):r4})({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:u,minZoom:a,maxZoom:s,fitViewOptions:l,nodeOrigin:d,nodeExtent:c,zIndexMode:h}));return(0,v.jsx)(r7,{value:p,children:(0,v.jsx)(oL,{children:f})})}function i5({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:a,fitView:s,fitViewOptions:l,minZoom:u,maxZoom:d,nodeOrigin:c,nodeExtent:h,zIndexMode:f}){return(0,x.useContext)(r8)?(0,v.jsx)(v.Fragment,{children:e}):(0,v.jsx)(i2,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:a,fitView:s,initialFitViewOptions:l,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:c,nodeExtent:h,zIndexMode:f,children:e})}let i3={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var i4=oD(function({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:a,onNodeClick:s,onEdgeClick:l,onInit:u,onMove:d,onMoveStart:p,onMoveEnd:g,onConnect:m,onConnectStart:y,onConnectEnd:b,onClickConnectStart:E,onClickConnectEnd:k,onNodeMouseEnter:_,onNodeMouseMove:C,onNodeMouseLeave:N,onNodeContextMenu:j,onNodeDoubleClick:S,onNodeDragStart:M,onNodeDrag:P,onNodeDragStop:O,onNodesDelete:R,onEdgesDelete:A,onDelete:z,onSelectionChange:D,onSelectionDragStart:T,onSelectionDrag:$,onSelectionDragStop:I,onSelectionContextMenu:L,onSelectionStart:B,onSelectionEnd:H,onBeforeDelete:F,connectionMode:V,connectionLineType:X=f.Bezier,connectionLineStyle:Y,connectionLineComponent:W,connectionLineContainerStyle:q,deleteKeyCode:Z="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:K=!1,selectionMode:U=h.Full,panActivationKeyCode:Q="Space",multiSelectionKeyCode:J=nD()?"Meta":"Control",zoomActivationKeyCode:ee=nD()?"Meta":"Control",snapToGrid:et,snapGrid:en,onlyRenderVisibleElements:er=!1,selectNodesOnDrag:eo,nodesDraggable:ei,autoPanOnNodeFocus:ea,nodesConnectable:es,nodesFocusable:el,nodeOrigin:eu=ov,edgesFocusable:ed,edgesReconnectable:ec,elementsSelectable:eh=!0,defaultViewport:ef=ox,minZoom:ep=.5,maxZoom:eg=2,translateExtent:em=t8,preventScrolling:ey=!0,nodeExtent:ev,defaultMarkerColor:ex="#b1b1b7",zoomOnScroll:ew=!0,zoomOnPinch:eb=!0,panOnScroll:eE=!1,panOnScrollSpeed:ek=.5,panOnScrollMode:e_=c.Free,zoomOnDoubleClick:eC=!0,panOnDrag:eN=!0,onPaneClick:ej,onPaneMouseEnter:eS,onPaneMouseMove:eM,onPaneMouseLeave:eP,onPaneScroll:eO,onPaneContextMenu:eR,paneClickDistance:eA=1,nodeClickDistance:ez=0,children:eD,onReconnect:eT,onReconnectStart:e$,onReconnectEnd:eI,onEdgeContextMenu:eL,onEdgeDoubleClick:eB,onEdgeMouseEnter:eH,onEdgeMouseMove:eF,onEdgeMouseLeave:eV,reconnectRadius:eX=10,onNodesChange:eY,onEdgesChange:eW,noDragClassName:eq="nodrag",noWheelClassName:eZ="nowheel",noPanClassName:eG="nopan",fitView:eK,fitViewOptions:eU,connectOnClick:eQ,attributionPosition:eJ,proOptions:e0,defaultEdgeOptions:e1,elevateNodesOnSelect:e2=!0,elevateEdgesOnSelect:e5=!1,disableKeyboardA11y:e3=!1,autoPanOnConnect:e4,autoPanOnNodeDrag:e6,autoPanSpeed:e8,connectionRadius:e7,isValidConnection:e9,onError:te,style:tt,id:tn,nodeDragThreshold:tr,connectionDragThreshold:to,viewport:ti,onViewportChange:ta,width:ts,height:tl,colorMode:tu="light",debug:td,onScroll:tc,ariaLabelConfig:th,zIndexMode:tf="basic",...tp},tg){let tm=tn||"1",ty=function(e){let[t,n]=(0,x.useState)("system"===e?null:e);return(0,x.useEffect)(()=>{if("system"!==e)return void n(e);let t=o_(),r=()=>n(t?.matches?"dark":"light");return r(),t?.addEventListener("change",r),()=>{t?.removeEventListener("change",r)}},[e]),null!==t?t:o_()?.matches?"dark":"light"}(tu),tv=(0,x.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),tc?.(e)},[tc]);return(0,v.jsx)("div",{"data-testid":"rf__wrapper",...tp,onScroll:tv,style:{...tt,...i3},ref:tg,className:w(["react-flow",o,ty]),id:tn,role:"application",children:(0,v.jsxs)(i5,{nodes:e,edges:t,width:ts,height:tl,fitView:eK,fitViewOptions:eU,minZoom:ep,maxZoom:eg,nodeOrigin:eu,nodeExtent:ev,zIndexMode:tf,children:[(0,v.jsx)(i0,{onInit:u,onNodeClick:s,onEdgeClick:l,onNodeMouseEnter:_,onNodeMouseMove:C,onNodeMouseLeave:N,onNodeContextMenu:j,onNodeDoubleClick:S,nodeTypes:i,edgeTypes:a,connectionLineType:X,connectionLineStyle:Y,connectionLineComponent:W,connectionLineContainerStyle:q,selectionKeyCode:G,selectionOnDrag:K,selectionMode:U,deleteKeyCode:Z,multiSelectionKeyCode:J,panActivationKeyCode:Q,zoomActivationKeyCode:ee,onlyRenderVisibleElements:er,defaultViewport:ef,translateExtent:em,minZoom:ep,maxZoom:eg,preventScrolling:ey,zoomOnScroll:ew,zoomOnPinch:eb,zoomOnDoubleClick:eC,panOnScroll:eE,panOnScrollSpeed:ek,panOnScrollMode:e_,panOnDrag:eN,onPaneClick:ej,onPaneMouseEnter:eS,onPaneMouseMove:eM,onPaneMouseLeave:eP,onPaneScroll:eO,onPaneContextMenu:eR,paneClickDistance:eA,nodeClickDistance:ez,onSelectionContextMenu:L,onSelectionStart:B,onSelectionEnd:H,onReconnect:eT,onReconnectStart:e$,onReconnectEnd:eI,onEdgeContextMenu:eL,onEdgeDoubleClick:eB,onEdgeMouseEnter:eH,onEdgeMouseMove:eF,onEdgeMouseLeave:eV,reconnectRadius:eX,defaultMarkerColor:ex,noDragClassName:eq,noWheelClassName:eZ,noPanClassName:eG,rfId:tm,disableKeyboardA11y:e3,nodeExtent:ev,viewport:ti,onViewportChange:ta}),(0,v.jsx)(ok,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:m,onConnectStart:y,onConnectEnd:b,onClickConnectStart:E,onClickConnectEnd:k,nodesDraggable:ei,autoPanOnNodeFocus:ea,nodesConnectable:es,nodesFocusable:el,edgesFocusable:ed,edgesReconnectable:ec,elementsSelectable:eh,elevateNodesOnSelect:e2,elevateEdgesOnSelect:e5,minZoom:ep,maxZoom:eg,nodeExtent:ev,onNodesChange:eY,onEdgesChange:eW,snapToGrid:et,snapGrid:en,connectionMode:V,translateExtent:em,connectOnClick:eQ,defaultEdgeOptions:e1,fitView:eK,fitViewOptions:eU,onNodesDelete:R,onEdgesDelete:A,onDelete:z,onNodeDragStart:M,onNodeDrag:P,onNodeDragStop:O,onSelectionDrag:$,onSelectionDragStart:T,onSelectionDragStop:I,onMove:d,onMoveStart:p,onMoveEnd:g,noPanClassName:eG,nodeOrigin:eu,rfId:tm,autoPanOnConnect:e4,autoPanOnNodeDrag:e6,autoPanSpeed:e8,onError:te,connectionRadius:e7,isValidConnection:e9,selectNodesOnDrag:eo,nodeDragThreshold:tr,connectionDragThreshold:to,onBeforeDelete:F,debug:td,ariaLabelConfig:th,zIndexMode:tf}),(0,v.jsx)(oy,{onSelectionChange:D}),eD,(0,v.jsx)(oc,{proOptions:e0,position:eJ}),(0,v.jsx)(ou,{rfId:tm,disableKeyboardA11y:e3})]})})});function i6({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,v.jsx)("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:w(["react-flow__background-pattern",n,r])})}function i8({radius:e,className:t}){return(0,v.jsx)("circle",{cx:e,cy:e,r:e,className:w(["react-flow__background-pattern","dots",t])})}t6.error014(),(l=y||(y={})).Lines="lines",l.Dots="dots",l.Cross="cross";let i7={[y.Dots]:1,[y.Lines]:1,[y.Cross]:6},i9=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function ae({id:e,variant:t=y.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:a,bgColor:s,style:l,className:u,patternClassName:d}){let c=(0,x.useRef)(null),{transform:h,patternId:f}=oe(i9,r6),p=r||i7[t],g=t===y.Dots,m=t===y.Cross,b=Array.isArray(n)?n:[n,n],E=[b[0]*h[2]||1,b[1]*h[2]||1],k=p*h[2],_=Array.isArray(i)?i:[i,i],C=m?[k,k]:E,N=[_[0]*h[2]||1+C[0]/2,_[1]*h[2]||1+C[1]/2],j=`${f}${e||""}`;return(0,v.jsxs)("svg",{className:w(["react-flow__background",u]),style:{...l,...oX,"--xy-background-color-props":s,"--xy-background-pattern-color-props":a},ref:c,"data-testid":"rf__background",children:[(0,v.jsx)("pattern",{id:j,x:h[0]%E[0],y:h[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${N[0]},-${N[1]})`,children:g?(0,v.jsx)(i8,{radius:k/2,className:d}):(0,v.jsx)(i6,{dimensions:C,lineWidth:o,variant:t,className:d})}),(0,v.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${j})`})]})}ae.displayName="Background";let at=(0,x.memo)(ae);function an(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,v.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function ar(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,v.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function ao(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,v.jsx)("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function ai(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,v.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function aa(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,v.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function as({children:e,className:t,...n}){return(0,v.jsx)("button",{type:"button",className:w(["react-flow__controls-button",t]),...n,children:e})}let al=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function au({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:a,onFitView:s,onInteractiveChange:l,className:u,children:d,position:c="bottom-left",orientation:h="vertical","aria-label":f}){let p=ot(),{isInteractive:g,minZoomReached:m,maxZoomReached:y,ariaLabelConfig:x}=oe(al,r6),{zoomIn:b,zoomOut:E,fitView:k}=oH();return(0,v.jsxs)(od,{className:w(["react-flow__controls","horizontal"===h?"horizontal":"vertical",u]),position:c,style:e,"data-testid":"rf__controls","aria-label":f??x["controls.ariaLabel"],children:[t&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(as,{onClick:()=>{b(),i?.()},className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:y,children:(0,v.jsx)(an,{})}),(0,v.jsx)(as,{onClick:()=>{E(),a?.()},className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:m,children:(0,v.jsx)(ar,{})})]}),n&&(0,v.jsx)(as,{className:"react-flow__controls-fitview",onClick:()=>{k(o),s?.()},title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:(0,v.jsx)(ao,{})}),r&&(0,v.jsx)(as,{className:"react-flow__controls-interactive",onClick:()=>{p.setState({nodesDraggable:!g,nodesConnectable:!g,elementsSelectable:!g}),l?.(!g)},title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:g?(0,v.jsx)(aa,{}):(0,v.jsx)(ai,{})}),d]})}au.displayName="Controls";let ad=(0,x.memo)(au),ac=(0,x.memo)(function({id:e,x:t,y:n,width:r,height:o,style:i,color:a,strokeColor:s,strokeWidth:l,className:u,borderRadius:d,shapeRendering:c,selected:h,onClick:f}){let{background:p,backgroundColor:g}=i||{};return(0,v.jsx)("rect",{className:w(["react-flow__minimap-node",{selected:h},u]),x:t,y:n,rx:d,ry:d,width:r,height:o,style:{fill:a||p||g,stroke:s,strokeWidth:l},shapeRendering:c,onClick:f?t=>f(t,e):void 0})}),ah=e=>e.nodes.map(e=>e.id),af=e=>e instanceof Function?e:()=>e,ap=(0,x.memo)(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:a,NodeComponent:s,onClick:l}){let{node:u,x:d,y:c,width:h,height:f}=oe(t=>{let{internals:n}=t.nodeLookup.get(e),r=n.userNode,{x:o,y:i}=n.positionAbsolute,{width:a,height:s}=n$(r);return{node:r,x:o,y:i,width:a,height:s}},r6);return u&&!u.hidden&&nI(u)?(0,v.jsx)(s,{x:d,y:c,width:h,height:f,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:o,strokeColor:n(u),strokeWidth:i,shapeRendering:a,onClick:l,id:u.id}):null});var ag=(0,x.memo)(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=ac,onClick:a}){let s=oe(ah,r6),l=af(t),u=af(e),d=af(n),c="u"<typeof window||window.chrome?"crispEdges":"geometricPrecision";return(0,v.jsx)(v.Fragment,{children:s.map(e=>(0,v.jsx)(ap,{id:e,nodeColorFunc:l,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:a,shapeRendering:c},e))})});let am=e=>!e.hidden,ay=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?nC(nd(e.nodeLookup,{filter:am}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}};function av({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:a,nodeComponent:s,bgColor:l,maskColor:u,maskStrokeColor:d,maskStrokeWidth:c,position:h="bottom-right",onClick:f,onNodeClick:p,pannable:g=!1,zoomable:m=!1,ariaLabel:y,inversePan:b,zoomStep:E=1,offsetScale:k=5}){let _=ot(),C=(0,x.useRef)(null),{boundingRect:N,viewBB:j,rfId:S,panZoom:M,translateExtent:P,flowWidth:O,flowHeight:R,ariaLabelConfig:A}=oe(ay,r6),z=e?.width??200,D=e?.height??150,T=Math.max(N.width/z,N.height/D),$=T*z,I=T*D,L=k*T,B=N.x-($-N.width)/2-L,H=N.y-(I-N.height)/2-L,F=$+2*L,V=I+2*L,X=`react-flow__minimap-desc-${S}`,Y=(0,x.useRef)(0),W=(0,x.useRef)();Y.current=T,(0,x.useEffect)(()=>{if(C.current&&M)return W.current=rz({domNode:C.current,panZoom:M,getTransform:()=>_.getState().transform,getViewScale:()=>Y.current}),()=>{W.current?.destroy()}},[M]),(0,x.useEffect)(()=>{W.current?.update({translateExtent:P,width:O,height:R,inversePan:b,pannable:g,zoomStep:E,zoomable:m})},[g,m,b,E,P,O,R]);let q=f?e=>{let[t,n]=W.current?.pointer(e)||[0,0];f(e,{x:t,y:n})}:void 0,Z=p?(0,x.useCallback)((e,t)=>{p(e,_.getState().nodeLookup.get(t).internals.userNode)},[]):void 0,G=y??A["minimap.ariaLabel"];return(0,v.jsx)(od,{position:h,style:{...e,"--xy-minimap-background-color-props":"string"==typeof l?l:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof u?u:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof c?c*T:void 0,"--xy-minimap-node-background-color-props":"string"==typeof r?r:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof n?n:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof a?a:void 0},className:w(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:(0,v.jsxs)("svg",{width:z,height:D,viewBox:`${B} ${H} ${F} ${V}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":X,ref:C,onClick:q,children:[G&&(0,v.jsx)("title",{id:X,children:G}),(0,v.jsx)(ag,{onClick:Z,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:a,nodeComponent:s}),(0,v.jsx)("path",{className:"react-flow__minimap-mask",d:`M${B-L},${H-L}h${F+2*L}v${V+2*L}h${-F-2*L}z
2
- M${j.x},${j.y}h${j.width}v${j.height}h${-j.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}av.displayName="MiniMap",(0,x.memo)(av);let ax={[m.Line]:"right",[m.Handle]:"bottom-right"};(0,x.memo)(function({nodeId:e,position:t,variant:n=m.Handle,className:r,style:o,children:i,color:a,minWidth:s=10,minHeight:l=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:h,autoScale:f=!0,shouldResize:p,onResizeStart:g,onResize:y,onResizeEnd:b}){let E,k=o5(),_="string"==typeof e?e:k,C=ot(),N=(0,x.useRef)(null),j=n===m.Handle,S=oe((0,x.useCallback)((E=j&&f,e=>E?`${Math.max(1/e.transform[2],1)}`:void 0),[j,f]),r6),M=(0,x.useRef)(null),P=t??ax[n];(0,x.useEffect)(()=>{if(N.current&&_)return M.current||(M.current=rU({domNode:N.current,nodeId:_,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:o,domNode:i}=C.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:o,paneDomNode:i}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:o,nodeOrigin:i}=C.getState(),a=[],s={x:e.x,y:e.y},l=r.get(_);if(l&&l.expandParent&&l.parentId){let t=l.origin??i,n=e.width??l.measured.width??0,u=e.height??l.measured.height??0,d=rw([{id:l.id,parentId:l.parentId,rect:{width:n,height:u,...nL({x:e.x??l.position.x,y:e.y??l.position.y},{width:n,height:u},l.parentId,r,t)}}],r,o,i);a.push(...d),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*u,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){let e={id:_,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){let t={id:_,type:"dimensions",resizing:!0,setAttributes:!h||("horizontal"===h?"width":"height"),dimensions:{width:e.width,height:e.height}};a.push(t)}for(let e of t){let t={...e,type:"position"};a.push(t)}n(a)},onEnd:({width:e,height:t})=>{C.getState().triggerNodeChanges([{id:_,type:"dimensions",resizing:!1,dimensions:{width:e,height:t}}])}})),M.current.update({controlPosition:P,boundaries:{minWidth:s,minHeight:l,maxWidth:u,maxHeight:d},keepAspectRatio:c,resizeDirection:h,onResizeStart:g,onResize:y,onResizeEnd:b,shouldResize:p}),()=>{M.current?.destroy()}},[P,s,l,u,d,c,g,y,b,p]);let O=P.split("-");return(0,v.jsx)("div",{className:w(["react-flow__resize-control","nodrag",...O,n,r]),ref:N,style:{...o,scale:S,...a&&{[j?"backgroundColor":"borderColor"]:a}},children:i})}),e.s(["Background",()=>at,"Controls",()=>ad,"Handle",()=>o4,"ReactFlow",()=>i4,"ReactFlowProvider",()=>i2,"applyNodeChanges",()=>oP],53271);var aw=e.i(31406),ab=e.i(60112),aE=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ak=aE((e,t)=>{var n=Object.defineProperty,r=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),o=(e,t,r)=>{let o;return(o="symbol"!=typeof t?t+"":t)in e?n(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r},i=r((e,t)=>{function n(e,t){e[t]?e[t]++:e[t]=1}function r(e,t){--e[t]||delete e[t]}function i(e,t,n,r){var o=""+t,i=""+n;if(!e&&o>i){var a=o;o=i,i=a}return o+"\x01"+i+"\x01"+(void 0===r?"\0":r)}function a(e,t){return i(e,t.v,t.w,t.name)}t.exports=class{constructor(e){o(this,"_isDirected",!0),o(this,"_isMultigraph",!1),o(this,"_isCompound",!1),o(this,"_label"),o(this,"_defaultNodeLabelFn",()=>{}),o(this,"_defaultEdgeLabelFn",()=>{}),o(this,"_nodes",{}),o(this,"_in",{}),o(this,"_preds",{}),o(this,"_out",{}),o(this,"_sucs",{}),o(this,"_edgeObjs",{}),o(this,"_edgeLabels",{}),o(this,"_nodeCount",0),o(this,"_edgeCount",0),o(this,"_parent"),o(this,"_children"),e&&(this._isDirected=!Object.hasOwn(e,"directed")||e.directed,this._isMultigraph=!!Object.hasOwn(e,"multigraph")&&e.multigraph,this._isCompound=!!Object.hasOwn(e,"compound")&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return this._defaultNodeLabelFn=e,"function"!=typeof e&&(this._defaultNodeLabelFn=()=>e),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var e=this;return this.nodes().filter(t=>0===Object.keys(e._in[t]).length)}sinks(){var e=this;return this.nodes().filter(t=>0===Object.keys(e._out[t]).length)}setNodes(e,t){var n=arguments,r=this;return e.forEach(function(e){n.length>1?r.setNode(e,t):r.setNode(e)}),this}setNode(e,t){return Object.hasOwn(this._nodes,e)?arguments.length>1&&(this._nodes[e]=t):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount),this}node(e){return this._nodes[e]}hasNode(e){return Object.hasOwn(this._nodes,e)}removeNode(e){var t=this;if(Object.hasOwn(this._nodes,e)){var n=e=>t.removeEdge(t._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(function(e){t.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(n),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===t)t="\0";else{t+="";for(var n=t;void 0!==n;n=this.parent(n))if(n===e)throw Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if("\0"!==t)return t}}children(e="\0"){if(this._isCompound){var t=this._children[e];if(t)return Object.keys(t)}else{if("\0"===e)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return Object.keys(t)}successors(e){var t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){var t=this.predecessors(e);if(t){let r=new Set(t);for(var n of this.successors(e))r.add(n);return Array.from(r.values())}}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;Object.entries(this._nodes).forEach(function([n,r]){e(n)&&t.setNode(n,r)}),Object.values(this._edgeObjs).forEach(function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))});var r={};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,function e(o){var i=n.parent(o);return void 0===i||t.hasNode(i)?(r[o]=i,i):i in r?r[i]:e(i)}(e))),t}setDefaultEdgeLabel(e){return this._defaultEdgeLabelFn=e,"function"!=typeof e&&(this._defaultEdgeLabelFn=()=>e),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){var n=this,r=arguments;return e.reduce(function(e,o){return r.length>1?n.setEdge(e,o,t):n.setEdge(e,o),o}),this}setEdge(){var e,t,r,o,a=!1,s=arguments[0];"object"==typeof s&&null!==s&&"v"in s?(e=s.v,t=s.w,r=s.name,2==arguments.length&&(o=arguments[1],a=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(o=arguments[2],a=!0)),e=""+e,t=""+t,void 0!==r&&(r=""+r);var l=i(this._isDirected,e,t,r);if(Object.hasOwn(this._edgeLabels,l))return a&&(this._edgeLabels[l]=o),this;if(void 0!==r&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[l]=a?o:this._defaultEdgeLabelFn(e,t,r);var u=function(e,t,n,r){var o=""+t,i=""+n;if(!e&&o>i){var a=o;o=i,i=a}var s={v:o,w:i};return r&&(s.name=r),s}(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[l]=u,n(this._preds[t],e),n(this._sucs[e],t),this._in[t][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,t,n){var r=1==arguments.length?a(this._isDirected,arguments[0]):i(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(){let e=this.edge(...arguments);return"object"!=typeof e?{label:e}:e}hasEdge(e,t,n){var r=1==arguments.length?a(this._isDirected,arguments[0]):i(this._isDirected,e,t,n);return Object.hasOwn(this._edgeLabels,r)}removeEdge(e,t,n){var o=1==arguments.length?a(this._isDirected,arguments[0]):i(this._isDirected,e,t,n),s=this._edgeObjs[o];return s&&(e=s.v,t=s.w,delete this._edgeLabels[o],delete this._edgeObjs[o],r(this._preds[t],e),r(this._sucs[e],t),delete this._in[t][o],delete this._out[e][o],this._edgeCount--),this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}filterEdges(e,t,n){if(e){var r=Object.values(e);return n?r.filter(function(e){return e.v===t&&e.w===n||e.v===n&&e.w===t}):r}}}}),a=r((e,t)=>{t.exports="3.0.2"}),s=r((e,t)=>{t.exports={Graph:i(),version:a()}}),l=r((e,t)=>{var n=i();t.exports={write:function(e){var t,n,r={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:(t=e).nodes().map(function(e){var n=t.node(e),r=t.parent(e),o={v:e};return void 0!==n&&(o.value=n),void 0!==r&&(o.parent=r),o}),edges:(n=e).edges().map(function(e){var t=n.edge(e),r={v:e.v,w:e.w};return void 0!==e.name&&(r.name=e.name),void 0!==t&&(r.value=t),r})};return void 0!==e.graph()&&(r.value=structuredClone(e.graph())),r},read:function(e){var t=new n(e.options).setGraph(e.value);return e.nodes.forEach(function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}}}),u=r((e,t)=>{t.exports=function(e,t,r,o){return function(e,t,n,r){var o={},i=!0,a=0,s=e.nodes(),l=function(e){var t=n(e);o[e.v].distance+t<o[e.w].distance&&(o[e.w]={distance:o[e.v].distance+t,predecessor:e.v},i=!0)},u=function(){s.forEach(function(e){r(e).forEach(function(t){var n=t.v===e?t.v:t.w,r=n===t.v?t.w:t.v;l({v:n,w:r})})})};s.forEach(function(e){o[e]={distance:e===t?0:1/0}});for(var d=s.length,c=1;c<d&&(i=!1,a++,u(),i);c++);if(a===d-1&&(i=!1,u(),i))throw Error("The graph contains a negative weight cycle");return o}(e,String(t),r||n,o||function(t){return e.outEdges(t)})};var n=()=>1}),d=r((e,t)=>{t.exports=function(e){var t,n={},r=[];return e.nodes().forEach(function(o){t=[],function r(o){Object.hasOwn(n,o)||(n[o]=!0,t.push(o),e.successors(o).forEach(r),e.predecessors(o).forEach(r))}(o),t.length&&r.push(t)}),r}}),c=r((e,t)=>{t.exports=class{constructor(){o(this,"_arr",[]),o(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(e){return e.key})}has(e){return Object.hasOwn(this._keyIndices,e)}priority(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(e,t){var n=this._keyIndices;if(!Object.hasOwn(n,e=String(e))){var r=this._arr,o=r.length;return n[e]=o,r.push({key:e,priority:t}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[n].priority+" New: "+t);this._arr[n].priority=t,this._decrease(n)}_heapify(e){var t=this._arr,n=2*e,r=n+1,o=e;n<t.length&&(o=t[n].priority<t[o].priority?n:o,r<t.length&&(o=t[r].priority<t[o].priority?r:o),o!==e&&(this._swap(e,o),this._heapify(o)))}_decrease(e){for(var t,n=this._arr,r=n[e].priority;0!==e&&!(n[t=e>>1].priority<r);)this._swap(e,t),e=t}_swap(e,t){var n=this._arr,r=this._keyIndices,o=n[e],i=n[t];n[e]=i,n[t]=o,r[i.key]=e,r[o.key]=t}}}),h=r((e,t)=>{var n=c();t.exports=function(e,t,o,i){return function(e,t,r,o){var i,a,s={},l=new n,u=function(e){var t=e.v!==i?e.v:e.w,n=s[t],o=r(e),u=a.distance+o;if(o<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+o);u<n.distance&&(n.distance=u,n.predecessor=i,l.decrease(t,u))};for(e.nodes().forEach(function(e){var n=e===t?0:1/0;s[e]={distance:n},l.add(e,n)});l.size()>0&&(a=s[i=l.removeMin()]).distance!==1/0;)o(i).forEach(u);return s}(e,String(t),o||r,i||function(t){return e.outEdges(t)})};var r=()=>1}),f=r((e,t)=>{var n=h();t.exports=function(e,t,r){return e.nodes().reduce(function(o,i){return o[i]=n(e,i,t,r),o},{})}}),p=r((e,t)=>{t.exports=function(e,t,n){if(void 0!==e[t].predecessor)throw Error("Invalid source vertex");if(void 0===e[n].predecessor&&n!==t)throw Error("Invalid destination vertex");return{weight:e[n].distance,path:function(e,t,n){for(var r=[],o=n;o!==t;)r.push(o),o=e[o].predecessor;return r.push(t),r.reverse()}(e,t,n)}}}),g=r((e,t)=>{t.exports=function(e){var t=0,n=[],r={},o=[];return e.nodes().forEach(function(i){Object.hasOwn(r,i)||function i(a){var s=r[a]={onStack:!0,lowlink:t,index:t++};if(n.push(a),e.successors(a).forEach(function(e){Object.hasOwn(r,e)?r[e].onStack&&(s.lowlink=Math.min(s.lowlink,r[e].index)):(i(e),s.lowlink=Math.min(s.lowlink,r[e].lowlink))}),s.lowlink===s.index){var l,u=[];do r[l=n.pop()].onStack=!1,u.push(l);while(a!==l)o.push(u)}}(i)}),o}}),m=r((e,t)=>{var n=g();t.exports=function(e){return n(e).filter(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])})}}),y=r((e,t)=>{t.exports=function(e,t,r){var o,i,a,s,l;return o=e,i=t||n,a=r||function(t){return e.outEdges(t)},s={},(l=o.nodes()).forEach(function(e){s[e]={},s[e][e]={distance:0},l.forEach(function(t){e!==t&&(s[e][t]={distance:1/0})}),a(e).forEach(function(t){var n=t.v===e?t.w:t.v,r=i(t);s[e][n]={distance:r,predecessor:e}})}),l.forEach(function(e){var t=s[e];l.forEach(function(n){var r=s[n];l.forEach(function(n){var o=r[e],i=t[n],a=r[n],s=o.distance+i.distance;s<a.distance&&(a.distance=s,a.predecessor=i.predecessor)})})}),s};var n=()=>1}),v=r((e,t)=>{function n(e){var t={},n={},o=[];if(e.sinks().forEach(function i(a){if(Object.hasOwn(n,a))throw new r;Object.hasOwn(t,a)||(n[a]=!0,t[a]=!0,e.predecessors(a).forEach(i),delete n[a],o.push(a))}),Object.keys(t).length!==e.nodeCount())throw new r;return o}var r=class extends Error{constructor(){super(...arguments)}};t.exports=n,n.CycleException=r}),x=r((e,t)=>{var n=v();t.exports=function(e){try{n(e)}catch(e){if(e instanceof n.CycleException)return!1;throw e}return!0}}),w=r((e,t)=>{t.exports=function(e,t,n,r,o){Array.isArray(t)||(t=[t]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),a={};return t.forEach(function(t){if(!e.hasNode(t))throw Error("Graph does not have node: "+t);o=function e(t,n,r,o,i,a,s){return Object.hasOwn(o,n)||(o[n]=!0,r||(s=a(s,n)),i(n).forEach(function(n){s=e(t,n,r,o,i,a,s)}),r&&(s=a(s,n))),s}(e,t,"post"===n,a,i,r,o)}),o}}),b=r((e,t)=>{var n=w();t.exports=function(e,t,r){return n(e,t,r,function(e,t){return e.push(t),e},[])}}),E=r((e,t)=>{var n=b();t.exports=function(e,t){return n(e,t,"post")}}),k=r((e,t)=>{var n=b();t.exports=function(e,t){return n(e,t,"pre")}}),_=r((e,t)=>{var n=i(),r=c();t.exports=function(e,t){var o,i=new n,a={},s=new r;function l(e){var n=e.v===o?e.w:e.v,r=s.priority(n);if(void 0!==r){var i=t(e);i<r&&(a[n]=o,s.decrease(n,i))}}if(0===e.nodeCount())return i;e.nodes().forEach(function(e){s.add(e,1/0),i.setNode(e)}),s.decrease(e.nodes()[0],0);for(var u=!1;s.size()>0;){if(Object.hasOwn(a,o=s.removeMin()))i.setEdge(o,a[o]);else{if(u)throw Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(o).forEach(l)}return i}}),C=r((e,t)=>{var n=h(),r=u();t.exports=function(e,t,o,i){return function(e,t,o,i){if(void 0===o)return n(e,t,o,i);for(var a=!1,s=e.nodes(),l=0;l<s.length;l++){for(var u=i(s[l]),d=0;d<u.length;d++){var c=u[d],h=c.v===s[l]?c.v:c.w,f=h===c.v?c.w:c.v;0>o({v:h,w:f})&&(a=!0)}if(a)return r(e,t,o,i)}return n(e,t,o,i)}(e,t,o,i||function(t){return e.outEdges(t)})}}),N=r((e,t)=>{t.exports={bellmanFord:u(),components:d(),dijkstra:h(),dijkstraAll:f(),extractPath:p(),findCycles:m(),floydWarshall:y(),isAcyclic:x(),postorder:E(),preorder:k(),prim:_(),shortestPaths:C(),reduce:w(),tarjan:g(),topsort:v()}}),j=s();t.exports={Graph:j.Graph,json:l(),alg:N(),version:j.version}}),a_=aE((e,t)=>{function n(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function r(e,t){if("_next"!==e&&"_prev"!==e)return t}t.exports=class{constructor(){let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return n(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&n(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,r)),n=n._prev;return"["+e.join(", ")+"]"}}}),aC=aE((e,t)=>{var n=ak().Graph,r=a_();t.exports=function(e,t){var s,l;let u,d,c,h,f;if(1>=e.nodeCount())return[];let p=(s=e,l=t||o,u=new n,d=0,c=0,s.nodes().forEach(e=>{u.setNode(e,{v:e,in:0,out:0})}),s.edges().forEach(e=>{let t=u.edge(e.v,e.w)||0,n=l(e);u.setEdge(e.v,e.w,t+n),c=Math.max(c,u.node(e.v).out+=n),d=Math.max(d,u.node(e.w).in+=n)}),h=(function(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t})(c+d+3).map(()=>new r),f=d+1,u.nodes().forEach(e=>{a(h,f,u.node(e))}),{graph:u,buckets:h,zeroIdx:f});return(function(e,t,n){let r=[],o=t[t.length-1],a=t[0],s;for(;e.nodeCount();){for(;s=a.dequeue();)i(e,t,n,s);for(;s=o.dequeue();)i(e,t,n,s);if(e.nodeCount()){for(let o=t.length-2;o>0;--o)if(s=t[o].dequeue()){r=r.concat(i(e,t,n,s,!0));break}}}return r})(p.graph,p.buckets,p.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w))};var o=()=>1;function i(e,t,n,r,o){let i=o?[]:void 0;return e.inEdges(r.v).forEach(r=>{let s=e.edge(r),l=e.node(r.v);o&&i.push({v:r.v,w:r.w}),l.out-=s,a(t,n,l)}),e.outEdges(r.v).forEach(r=>{let o=e.edge(r),i=r.w,s=e.node(i);s.in-=o,a(t,n,s)}),e.removeNode(r.v),i}function a(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}}),aN=aE((e,t)=>{var n=ak().Graph;function r(e,t,n,r){for(var o=r;e.hasNode(o);)o=s(r);return n.dummy=t,e.setNode(o,n),o}t.exports={addBorderNode:function(e,t,n,o){let i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=o),r(e,"border",i,t)},addDummyNode:r,applyWithChunking:o,asNonCompoundGraph:function(e){let t=new n({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t},buildLayerMatrix:function(e){let t=l(i(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),o=r.rank;void 0!==o&&(t[o][r.order]=n)}),t},intersectRect:function(e,t){let n,r,o=e.x,i=e.y,a=t.x-o,s=t.y-i,l=e.width/2,u=e.height/2;if(!a&&!s)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*l>Math.abs(a)*u?(s<0&&(u=-u),n=u*a/s,r=u):(a<0&&(l=-l),n=l,r=l*s/a),{x:o+n,y:i+r}},mapValues:function(e,t){let n=t;return"string"==typeof t&&(n=e=>e[t]),Object.entries(e).reduce((e,[t,r])=>(e[t]=n(r,t),e),{})},maxRank:i,normalizeRanks:function(e){let t=o(Math.min,e.nodes().map(t=>{let n=e.node(t).rank;return void 0===n?Number.MAX_VALUE:n}));e.nodes().forEach(n=>{let r=e.node(n);Object.hasOwn(r,"rank")&&(r.rank-=t)})},notime:function(e,t){return t()},partition:function(e,t){let n={lhs:[],rhs:[]};return e.forEach(e=>{t(e)?n.lhs.push(e):n.rhs.push(e)}),n},pick:function(e,t){let n={};for(let r of t)void 0!==e[r]&&(n[r]=e[r]);return n},predecessorWeights:function(e){let t=e.nodes().map(t=>{let n={};return e.inEdges(t).forEach(t=>{n[t.v]=(n[t.v]||0)+e.edge(t).weight}),n});return u(e.nodes(),t)},range:l,removeEmptyRanks:function(e){let t=o(Math.min,e.nodes().map(t=>e.node(t).rank).filter(e=>void 0!==e)),n=[];e.nodes().forEach(r=>{let o=e.node(r).rank-t;n[o]||(n[o]=[]),n[o].push(r)});let r=0,i=e.graph().nodeRankFactor;Array.from(n).forEach((t,n)=>{void 0===t&&n%i!=0?--r:void 0!==t&&r&&t.forEach(t=>e.node(t).rank+=r)})},simplify:function(e){let t=new n().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t},successorWeights:function(e){let t=e.nodes().map(t=>{let n={};return e.outEdges(t).forEach(t=>{n[t.w]=(n[t.w]||0)+e.edge(t).weight}),n});return u(e.nodes(),t)},time:function(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}},uniqueId:s,zipObject:u};function o(e,t){if(!(t.length>65535))return e.apply(null,t);{let n=function(e,t=65535){let n=[];for(let r=0;r<e.length;r+=t){let o=e.slice(r,r+t);n.push(o)}return n}(t);return e.apply(null,n.map(t=>e.apply(null,t)))}}function i(e){return o(Math.max,e.nodes().map(t=>{let n=e.node(t).rank;return void 0===n?5e-324:n}))}var a=0;function s(e){return e+""+ ++a}function l(e,t,n=1){null==t&&(t=e,e=0);let r=e=>e<t;n<0&&(r=e=>t<e);let o=[];for(let t=e;r(t);t+=n)o.push(t);return o}function u(e,t){return e.reduce((e,n,r)=>(e[n]=t[r],e),{})}}),aj=aE((e,t)=>{var n=aC(),r=aN().uniqueId;t.exports={run:function(e){var t,o;let i,a,s;("greedy"===e.graph().acyclicer?n(e,(t=e,e=>t.edge(e).weight)):(i=[],a={},s={},(o=e).nodes().forEach(function e(t){Object.hasOwn(s,t)||(s[t]=!0,a[t]=!0,o.outEdges(t).forEach(t=>{Object.hasOwn(a,t.w)?i.push(t):e(t.w)}),delete a[t])}),i)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,r("rev"))})},undo:function(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}}}),aS=aE((e,t)=>{var n=aN();t.exports={run:function(e){e.graph().dummyChains=[],e.edges().forEach(t=>(function(e,t){let r,o,i,a=t.v,s=e.node(a).rank,l=t.w,u=e.node(l).rank,d=t.name,c=e.edge(t),h=c.labelRank;if(u!==s+1){for(e.removeEdge(t),i=0,++s;s<u;++i,++s)c.points=[],o={width:0,height:0,edgeLabel:c,edgeObj:t,rank:s},r=n.addDummyNode(e,"edge",o,"_d"),s===h&&(o.width=c.width,o.height=c.height,o.dummy="edge-label",o.labelpos=c.labelpos),e.setEdge(a,r,{weight:c.weight},d),0===i&&e.graph().dummyChains.push(r),a=r;e.setEdge(a,l,{weight:c.weight},d)}})(e,t))},undo:function(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,o;for(e.setEdge(n.edgeObj,r);n.dummy;)o=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=o,n=e.node(t)})}}}),aM=aE((e,t)=>{var{applyWithChunking:n}=aN();t.exports={longestPath:function(e){var t={};e.sources().forEach(function r(o){var i=e.node(o);if(Object.hasOwn(t,o))return i.rank;t[o]=!0;var a=n(Math.min,e.outEdges(o).map(t=>null==t?1/0:r(t.w)-e.edge(t).minlen));return a===1/0&&(a=0),i.rank=a})},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}}}),aP=aE((e,t)=>{var n=ak().Graph,r=aM().slack;t.exports=function(e){var t,o,i,a,s=new n({directed:!1}),l=e.nodes()[0],u=e.nodeCount();for(s.setNode(l,{});t=s,o=e,t.nodes().forEach(function e(n){o.nodeEdges(n).forEach(i=>{var a=i.v,s=n===a?i.w:a;t.hasNode(s)||r(o,i)||(t.setNode(s,{}),t.setEdge(n,s,{}),e(s))})}),t.nodeCount()<u;)i=function(e,t){return t.edges().reduce((n,o)=>{let i=1/0;return e.hasNode(o.v)!==e.hasNode(o.w)&&(i=r(t,o)),i<n[0]?[i,o]:n},[1/0,null])[1]}(s,e),a=s.hasNode(i.v)?r(e,i):-r(e,i),function(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}(s,e,a);return s}}),aO=aE((e,t)=>{var n=aP(),r=aM().slack,o=aM().longestPath,i=ak().alg.preorder,a=ak().alg.postorder,s=aN().simplify;function l(e){o(e=s(e));var t,r,i=n(e);for(c(i),u(i,e);t=h(i);)r=f(i,e,t),p(i,e,t,r)}function u(e,t){var n=a(e,e.nodes());(n=n.slice(0,n.length-1)).forEach(n=>{var r,o,i,a;return r=e,o=t,i=n,a=r.node(i).parent,void(r.edge(i,a).cutvalue=d(r,o,i))})}function d(e,t,n){var r=e.node(n).parent,o=!0,i=t.edge(n,r),a=0;return i||(o=!1,i=t.edge(r,n)),a=i.weight,t.nodeEdges(n).forEach(i=>{var s=i.v===n,l=s?i.w:i.v;if(l!==r){var u,d,c,h=s===o,f=t.edge(i).weight;if(a+=h?f:-f,u=e,d=n,c=l,u.hasEdge(d,c)){var p=e.edge(n,l).cutvalue;a+=h?-p:p}}}),a}function c(e,t){arguments.length<2&&(t=e.nodes()[0]),function e(t,n,r,o,i){var a=r,s=t.node(o);return n[o]=!0,t.neighbors(o).forEach(i=>{Object.hasOwn(n,i)||(r=e(t,n,r,i,o))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}(e,{},1,t)}function h(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function f(e,t,n){var o=n.v,i=n.w;t.hasEdge(o,i)||(o=n.w,i=n.v);var a=e.node(o),s=e.node(i),l=a,u=!1;return a.lim>s.lim&&(l=s,u=!0),t.edges().filter(t=>u===g(e,e.node(t.v),l)&&u!==g(e,e.node(t.w),l)).reduce((e,n)=>r(t,n)<r(t,e)?n:e)}function p(e,t,n,r){var o,a,s,l,d=n.v,h=n.w;e.removeEdge(d,h),e.setEdge(r.v,r.w,{}),c(e),u(e,t),o=e,a=t,s=o.nodes().find(e=>!a.node(e).parent),(l=(l=i(o,s)).slice(1)).forEach(e=>{var t=o.node(e).parent,n=a.edge(e,t),r=!1;n||(n=a.edge(t,e),r=!0),a.node(e).rank=a.node(t).rank+(r?n.minlen:-n.minlen)})}function g(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}t.exports=l,l.initLowLimValues=c,l.initCutValues=u,l.calcCutValue=d,l.leaveEdge=h,l.enterEdge=f,l.exchangeEdges=p}),aR=aE((e,t)=>{var n=aM().longestPath,r=aP(),o=aO();t.exports=function(e){var t,a=e.graph().ranker;if(a instanceof Function)return a(e);switch(e.graph().ranker){case"network-simplex":default:o(e);break;case"tight-tree":n(t=e),r(t);break;case"longest-path":i(e);case"none":}};var i=n}),aA=aE((e,t)=>{t.exports=function(e){var t;let n,r,o=(n={},r=0,(t=e).children().forEach(function e(o){let i=r;t.children(o).forEach(e),n[o]={low:i,lim:r++}}),n);e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeObj,i=function(e,t,n,r){let o=[],i=[],a=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),l,u;l=n;do o.push(l=e.parent(l));while(l&&(t[l].low>a||s>t[l].lim))for(u=l,l=r;(l=e.parent(l))!==u;)i.push(l);return{path:o.concat(i.reverse()),lca:u}}(e,o,r.v,r.w),a=i.path,s=i.lca,l=0,u=a[0],d=!0;for(;t!==r.w;){if(n=e.node(t),d){for(;(u=a[l])!==s&&e.node(u).maxRank<n.rank;)l++;u===s&&(d=!1)}if(!d){for(;l<a.length-1&&e.node(u=a[l+1]).minRank<=n.rank;)l++;u=a[l]}e.setParent(t,u),t=e.successors(t)[0]}})}}),az=aE((e,t)=>{var n=aN();t.exports={run:function(e){var t,r,o;let i=n.addDummyNode(e,"root",{},"_root"),a=(r={},(t=e).children().forEach(e=>(function e(n,o){var i=t.children(n);i&&i.length&&i.forEach(t=>e(t,o+1)),r[n]=o})(e,1)),r),s=Object.values(a),l=n.applyWithChunking(Math.max,s)-1,u=2*l+1;e.graph().nestingRoot=i,e.edges().forEach(t=>e.edge(t).minlen*=u);let d=(o=e).edges().reduce((e,t)=>e+o.edge(t).weight,0)+1;e.children().forEach(t=>(function e(t,r,o,i,a,s,l){let u=t.children(l);if(!u.length){l!==r&&t.setEdge(r,l,{weight:0,minlen:o});return}let d=n.addBorderNode(t,"_bt"),c=n.addBorderNode(t,"_bb"),h=t.node(l);t.setParent(d,l),h.borderTop=d,t.setParent(c,l),h.borderBottom=c,u.forEach(n=>{e(t,r,o,i,a,s,n);let u=t.node(n),h=u.borderTop?u.borderTop:n,f=u.borderBottom?u.borderBottom:n,p=u.borderTop?i:2*i,g=h!==f?1:a-s[l]+1;t.setEdge(d,h,{weight:p,minlen:g,nestingEdge:!0}),t.setEdge(f,c,{weight:p,minlen:g,nestingEdge:!0})}),t.parent(l)||t.setEdge(r,d,{weight:0,minlen:a+s[l]})})(e,i,u,d,l,a,t)),e.graph().nodeRankFactor=u},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}}}),aD=aE((e,t)=>{var n=aN();function r(e,t,r,o,i,a){let s=i[t][a-1],l=n.addDummyNode(e,"border",{width:0,height:0,rank:a,borderType:t},r);i[t][a]=l,e.setParent(l,o),s&&e.setEdge(s,l,{weight:1})}t.exports=function(e){e.children().forEach(function t(n){let o=e.children(n),i=e.node(n);if(o.length&&o.forEach(t),Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let t=i.minRank,o=i.maxRank+1;t<o;++t)r(e,"borderLeft","_bl",n,i,t),r(e,"borderRight","_br",n,i,t)}})}}),aT=aE((e,t)=>{function n(e){e.nodes().forEach(t=>r(e.node(t))),e.edges().forEach(t=>r(e.edge(t)))}function r(e){let t=e.width;e.width=e.height,e.height=t}function o(e){e.y=-e.y}function i(e){let t=e.x;e.x=e.y,e.y=t}t.exports={adjust:function(e){let t=e.graph().rankdir.toLowerCase();("lr"===t||"rl"===t)&&n(e)},undo:function(e){var t,r;let a=e.graph().rankdir.toLowerCase();("bt"===a||"rl"===a)&&((t=e).nodes().forEach(e=>o(t.node(e))),t.edges().forEach(e=>{let n=t.edge(e);n.points.forEach(o),Object.hasOwn(n,"y")&&o(n)})),("lr"===a||"rl"===a)&&((r=e).nodes().forEach(e=>i(r.node(e))),r.edges().forEach(e=>{let t=r.edge(e);t.points.forEach(i),Object.hasOwn(t,"x")&&i(t)}),n(e))}}}),a$=aE((e,t)=>{var n=aN();t.exports=function(e){let t={},r=e.nodes().filter(t=>!e.children(t).length),o=r.map(t=>e.node(t).rank),i=n.applyWithChunking(Math.max,o),a=n.range(i+1).map(()=>[]);return r.sort((t,n)=>e.node(t).rank-e.node(n).rank).forEach(function n(r){t[r]||(t[r]=!0,a[e.node(r).rank].push(r),e.successors(r).forEach(n))}),a}}),aI=aE((e,t)=>{var n=aN().zipObject;t.exports=function(e,t){let r=0;for(let o=1;o<t.length;++o)r+=function(e,t,r){let o=n(r,r.map((e,t)=>t)),i=t.flatMap(t=>e.outEdges(t).map(t=>({pos:o[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos)),a=1;for(;a<r.length;)a<<=1;let s=2*a-1;a-=1;let l=Array(s).fill(0),u=0;return i.forEach(e=>{let t=e.pos+a;l[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=l[t+1]),t=t-1>>1,l[t]+=e.weight;u+=e.weight*n}),u}(e,t[o-1],t[o]);return r}}),aL=aE((e,t)=>{t.exports=function(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(!n.length)return{v:t};{let r=n.reduce((t,n)=>{let r=e.edge(n),o=e.node(n.v);return{sum:t.sum+r.weight*o.order,weight:t.weight+r.weight}},{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}})}}),aB=aE((e,t)=>{var n=aN();t.exports=function(e,t){let r={};return e.forEach((e,t)=>{let n=r[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};void 0!==e.barycenter&&(n.barycenter=e.barycenter,n.weight=e.weight)}),t.edges().forEach(e=>{let t=r[e.v],n=r[e.w];void 0!==t&&void 0!==n&&(n.indegree++,t.out.push(r[e.w]))}),function(e){let t=[];for(;e.length;){let n=e.pop();t.push(n),n.in.reverse().forEach(function(e){return t=>{t.merged||(void 0===t.barycenter||void 0===e.barycenter||t.barycenter>=e.barycenter)&&function(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}(n)),n.out.forEach(function(t){return n=>{n.in.push(t),0==--n.indegree&&e.push(n)}}(n))}return t.filter(e=>!e.merged).map(e=>n.pick(e,["vs","i","barycenter","weight"]))}(Object.values(r).filter(e=>!e.indegree))}}),aH=aE((e,t)=>{var n=aN();function r(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}t.exports=function(e,t){var o;let i=n.partition(e,e=>Object.hasOwn(e,"barycenter")),a=i.lhs,s=i.rhs.sort((e,t)=>t.i-e.i),l=[],u=0,d=0,c=0;a.sort((o=!!t,(e,t)=>e.barycenter<t.barycenter?-1:e.barycenter>t.barycenter?1:o?t.i-e.i:e.i-t.i)),c=r(l,s,c),a.forEach(e=>{c+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,d+=e.weight,c=r(l,s,c)});let h={vs:l.flat(!0)};return d&&(h.barycenter=u/d,h.weight=d),h}}),aF=aE((e,t)=>{var n=aL(),r=aB(),o=aH();t.exports=function e(t,i,a,s){var l,u;let d=t.children(i),c=t.node(i),h=c?c.borderLeft:void 0,f=c?c.borderRight:void 0,p={};h&&(d=d.filter(e=>e!==h&&e!==f));let g=n(t,d);g.forEach(n=>{if(t.children(n.v).length){var r,o;let i=e(t,n.v,a,s);p[n.v]=i,Object.hasOwn(i,"barycenter")&&(r=n,o=i,void 0!==r.barycenter?(r.barycenter=(r.barycenter*r.weight+o.barycenter*o.weight)/(r.weight+o.weight),r.weight+=o.weight):(r.barycenter=o.barycenter,r.weight=o.weight))}});let m=r(g,a);l=m,u=p,l.forEach(e=>{e.vs=e.vs.flatMap(e=>u[e]?u[e].vs:e)});let y=o(m,s);if(h&&(y.vs=[h,y.vs,f].flat(!0),t.predecessors(h).length)){let e=t.node(t.predecessors(h)[0]),n=t.node(t.predecessors(f)[0]);Object.hasOwn(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+e.order+n.order)/(y.weight+2),y.weight+=2}return y}}),aV=aE((e,t)=>{var n=ak().Graph,r=aN();t.exports=function(e,t,o,i){i||(i=e.nodes());let a=function(e){for(var t;e.hasNode(t=r.uniqueId("_root")););return t}(e),s=new n({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(t=>e.node(t));return i.forEach(n=>{let r=e.node(n),i=e.parent(n);(r.rank===t||r.minRank<=t&&t<=r.maxRank)&&(s.setNode(n),s.setParent(n,i||a),e[o](n).forEach(t=>{let r=t.v===n?t.w:t.v,o=s.edge(r,n),i=void 0!==o?o.weight:0;s.setEdge(r,n,{weight:e.edge(t).weight+i})}),Object.hasOwn(r,"minRank")&&s.setNode(n,{borderLeft:r.borderLeft[t],borderRight:r.borderRight[t]}))}),s}}),aX=aE((e,t)=>{t.exports=function(e,t,n){let r={},o;n.forEach(n=>{let i=e.parent(n),a,s;for(;i;){if((a=e.parent(i))?(s=r[a],r[a]=i):(s=o,o=i),s&&s!==i)return void t.setEdge(s,i);i=a}})}}),aY=aE((e,t)=>{var n=a$(),r=aI(),o=aF(),i=aV(),a=aX(),s=ak().Graph,l=aN();function u(e,t,n){let r=new Map,o=(e,t)=>{r.has(e)||r.set(e,[]),r.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if("number"==typeof n.rank&&o(n.rank,t),"number"==typeof n.minRank&&"number"==typeof n.maxRank)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&o(e,t)}return t.map(function(t){return i(e,t,n,r.get(t)||[])})}function d(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}t.exports=function e(t,i={}){if("function"==typeof i.customOrder)return void i.customOrder(t,e);let c=l.maxRank(t),h=u(t,l.range(1,c+1),"inEdges"),f=u(t,l.range(c-1,-1,-1),"outEdges"),p=n(t);if(d(t,p),i.disableOptimalOrderHeuristic)return;let g=1/0,m,y=i.constraints||[];for(let e=0,n=0;n<4;++e,++n){(function(e,t,n){let r=new s;e.forEach(function(e){n.forEach(e=>r.setEdge(e.left,e.right));let i=e.graph().root,s=o(e,i,r,t);s.vs.forEach((t,n)=>e.node(t).order=n),a(e,r,s.vs)})})(e%2?h:f,e%4>=2,y),p=l.buildLayerMatrix(t);let i=r(t,p);i<g?(n=0,m=Object.assign({},p),g=i):i===g&&(m=structuredClone(p))}d(t,m)}}),aW=aE((e,t)=>{var n=ak().Graph,r=aN();function o(e,t){let n={};return t.length&&t.reduce(function(t,r){let o=0,i=0,s=t.length,l=r[r.length-1];return r.forEach((t,u)=>{let d=function(e,t){if(e.node(t).dummy)return e.predecessors(t).find(t=>e.node(t).dummy)}(e,t),c=d?e.node(d).order:s;(d||t===l)&&(r.slice(i,u+1).forEach(t=>{e.predecessors(t).forEach(r=>{let i=e.node(r),s=i.order;(s<o||c<s)&&!(i.dummy&&e.node(t).dummy)&&a(n,r,t)})}),i=u+1,o=c)}),r}),n}function i(e,t){let n={};function o(t,o,i,s,l){let u;r.range(o,i).forEach(r=>{u=t[r],e.node(u).dummy&&e.predecessors(u).forEach(t=>{let r=e.node(t);r.dummy&&(r.order<s||r.order>l)&&a(n,t,u)})})}return t.length&&t.reduce(function(t,n){let r=-1,i,a=0;return n.forEach((s,l)=>{if("border"===e.node(s).dummy){let t=e.predecessors(s);t.length&&(i=e.node(t[0]).order,o(n,a,l,r,i),a=l,r=i)}o(n,a,n.length,i,t.length)}),n}),n}function a(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];r||(e[t]=r={}),r[n]=!0}function s(e,t,n){if(t>n){let e=t;t=n,n=e}return!!e[t]&&Object.hasOwn(e[t],n)}function l(e,t,n,r){let o={},i={},a={};return t.forEach(e=>{e.forEach((e,t)=>{o[e]=e,i[e]=e,a[e]=t})}),t.forEach(e=>{let t=-1;e.forEach(e=>{let l=r(e);if(l.length){let r=((l=l.sort((e,t)=>a[e]-a[t])).length-1)/2;for(let u=Math.floor(r),d=Math.ceil(r);u<=d;++u){let r=l[u];i[e]===e&&t<a[r]&&!s(n,e,r)&&(i[r]=e,i[e]=o[e]=o[r],t=a[r])}}})}),{root:o,align:i}}function u(e,t,r,o,i){var a,s,l,u,d,c,h;let f,p,g,m={},y=(a=e,s=t,l=r,u=i,f=new n,g=(d=(p=a.graph()).nodesep,c=p.edgesep,h=u,(e,t,n)=>{let r=e.node(t),o=e.node(n),i,a;if(i=0+r.width/2,Object.hasOwn(r,"labelpos"))switch(r.labelpos.toLowerCase()){case"l":a=-r.width/2;break;case"r":a=r.width/2}if(a&&(i+=h?a:-a),a=0,i+=(r.dummy?c:d)/2,i+=(o.dummy?c:d)/2,i+=o.width/2,Object.hasOwn(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":a=o.width/2;break;case"r":a=-o.width/2}return a&&(i+=h?a:-a),a=0,i}),s.forEach(e=>{let t;e.forEach(e=>{let n=l[e];if(f.setNode(n),t){var r=l[t],o=f.edge(r,n);f.setEdge(r,n,Math.max(g(a,e,t),o||0))}t=e})}),f),v=i?"borderLeft":"borderRight";function x(e,t){let n=y.nodes().slice(),r={},o=n.pop();for(;o;){if(r[o])e(o);else for(let e of(r[o]=!0,n.push(o),t(o)))n.push(e);o=n.pop()}}return x(function(e){m[e]=y.inEdges(e).reduce((e,t)=>Math.max(e,m[t.v]+y.edge(t)),0)},y.predecessors.bind(y)),x(function(t){let n=y.outEdges(t).reduce((e,t)=>Math.min(e,m[t.w]-y.edge(t)),1/0),r=e.node(t);n!==1/0&&r.borderType!==v&&(m[t]=Math.max(m[t],n))},y.successors.bind(y)),Object.keys(o).forEach(e=>m[e]=m[r[e]]),m}function d(e,t){return Object.values(t).reduce((t,n)=>{let r=-1/0,o=1/0;Object.entries(n).forEach(([t,n])=>{var i,a;let s=(i=e,a=t,i.node(a).width/2);r=Math.max(n+s,r),o=Math.min(n-s,o)});let i=r-o;return i<t[0]&&(t=[i,n]),t},[1/0,null])[1]}function c(e,t){let n=Object.values(t),o=r.applyWithChunking(Math.min,n),i=r.applyWithChunking(Math.max,n);["u","d"].forEach(n=>{["l","r"].forEach(a=>{let s=n+a,l=e[s];if(l===t)return;let u=Object.values(l),d=o-r.applyWithChunking(Math.min,u);"l"!==a&&(d=i-r.applyWithChunking(Math.max,u)),d&&(e[s]=r.mapValues(l,e=>e+d))})})}function h(e,t){return r.mapValues(e.ul,(n,r)=>{if(t)return e[t.toLowerCase()][r];{let t=Object.values(e).map(e=>e[r]).sort((e,t)=>e-t);return(t[1]+t[2])/2}})}t.exports={positionX:function(e){let t=r.buildLayerMatrix(e),n=Object.assign(o(e,t),i(e,t)),a={},s;["u","d"].forEach(o=>{s="u"===o?t:Object.values(t).reverse(),["l","r"].forEach(t=>{"r"===t&&(s=s.map(e=>Object.values(e).reverse()));let i=("u"===o?e.predecessors:e.successors).bind(e),d=l(e,s,n,i),c=u(e,s,d.root,d.align,"r"===t);"r"===t&&(c=r.mapValues(c,e=>-e)),a[o+t]=c})});let f=d(e,a);return c(a,f),h(a,e.graph().align)},findType1Conflicts:o,findType2Conflicts:i,addConflict:a,hasConflict:s,verticalAlignment:l,horizontalCompaction:u,alignCoordinates:c,findSmallestWidthAlignment:d,balance:h}}),aq=aE((e,t)=>{var n=aN(),r=aW().positionX;t.exports=function(e){var t;let o,i,a,s;t=e=n.asNonCompoundGraph(e),o=n.buildLayerMatrix(t),i=t.graph().ranksep,a=t.graph().rankalign,s=0,o.forEach(e=>{let n=e.reduce((e,n)=>{let r=t.node(n).height;return e>r?e:r},0);e.forEach(e=>{let r=t.node(e);"top"===a?r.y=s+r.height/2:"bottom"===a?r.y=s+n-r.height/2:r.y=s+n/2}),s+=n+i}),Object.entries(r(e)).forEach(([t,n])=>e.node(t).x=n)}}),aZ=aE((e,t)=>{var n=aj(),r=aS(),o=aR(),i=aN().normalizeRanks,a=aA(),s=aN().removeEmptyRanks,l=az(),u=aD(),d=aT(),c=aY(),h=aq(),f=aN(),p=ak().Graph;t.exports=function(e,t={}){let C=t.debugTiming?f.time:f.notime;return C("layout",()=>{let N=C(" buildLayoutGraph",()=>{var t;let n,r;return t=e,n=new p({multigraph:!0,compound:!0}),r=_(t.graph()),n.setGraph(Object.assign({},m,k(r,g),f.pick(r,y))),t.nodes().forEach(e=>{let r=k(_(t.node(e)),v);Object.keys(x).forEach(e=>{void 0===r[e]&&(r[e]=x[e])}),n.setNode(e,r),n.setParent(e,t.parent(e))}),t.edges().forEach(e=>{let r=_(t.edge(e));n.setEdge(e,Object.assign({},b,k(r,w),f.pick(r,E)))}),n});return C(" runLayout",()=>{var e,p,g;return e=N,p=C,g=t,void(p(" makeSpaceForEdgeLabels",()=>{var t;let n;return n=(t=e).graph(),void(n.ranksep/=2,t.edges().forEach(e=>{let r=t.edge(e);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===n.rankdir||"BT"===n.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}),p(" removeSelfEdges",()=>{var t;(t=e).edges().forEach(e=>{if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}})}),p(" acyclic",()=>n.run(e)),p(" nestingGraph.run",()=>l.run(e)),p(" rank",()=>o(f.asNonCompoundGraph(e))),p(" injectEdgeLabelProxies",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);if(n.width&&n.height){let n=t.node(e.v),r={rank:(t.node(e.w).rank-n.rank)/2+n.rank,e:e};f.addDummyNode(t,"edge-proxy",r,"_ep")}})}),p(" removeEmptyRanks",()=>s(e)),p(" nestingGraph.cleanup",()=>l.cleanup(e)),p(" normalizeRanks",()=>i(e)),p(" assignRankMinMax",()=>{var t;let n;return n=0,void((t=e).nodes().forEach(e=>{let r=t.node(e);r.borderTop&&(r.minRank=t.node(r.borderTop).rank,r.maxRank=t.node(r.borderBottom).rank,n=Math.max(n,r.maxRank))}),t.graph().maxRank=n)}),p(" removeEdgeLabelProxies",()=>{var t;(t=e).nodes().forEach(e=>{let n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}),p(" normalize.run",()=>r.run(e)),p(" parentDummyChains",()=>a(e)),p(" addBorderSegments",()=>u(e)),p(" order",()=>c(e,g)),p(" insertSelfEdges",()=>{var t;return t=e,void f.buildLayerMatrix(t).forEach(e=>{var n=0;e.forEach((e,r)=>{var o=t.node(e);o.order=r+n,(o.selfEdges||[]).forEach(e=>{f.addDummyNode(t,"selfedge",{width:e.label.width,height:e.label.height,rank:o.rank,order:r+ ++n,e:e.e,label:e.label},"_se")}),delete o.selfEdges})})}),p(" adjustCoordinateSystem",()=>d.adjust(e)),p(" position",()=>h(e)),p(" positionSelfEdges",()=>{var t;(t=e).nodes().forEach(e=>{var n=t.node(e);if("selfedge"===n.dummy){var r=t.node(n.e.v),o=r.x+r.width/2,i=r.y,a=n.x-o,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:o+2*a/3,y:i-s},{x:o+5*a/6,y:i-s},{x:o+a,y:i},{x:o+5*a/6,y:i+s},{x:o+2*a/3,y:i+s}],n.label.x=n.x,n.label.y=n.y}})}),p(" removeBorderNodes",()=>{var t;(t=e).nodes().forEach(e=>{if(t.children(e).length){let n=t.node(e),r=t.node(n.borderTop),o=t.node(n.borderBottom),i=t.node(n.borderLeft[n.borderLeft.length-1]),a=t.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(a.x-i.x),n.height=Math.abs(o.y-r.y),n.x=i.x+n.width/2,n.y=r.y+n.height/2}}),t.nodes().forEach(e=>{"border"===t.node(e).dummy&&t.removeNode(e)})}),p(" normalize.undo",()=>r.undo(e)),p(" fixupEdgeLabelCoords",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);if(Object.hasOwn(n,"x"))switch(("l"===n.labelpos||"r"===n.labelpos)&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}),p(" undoCoordinateSystem",()=>d.undo(e)),p(" translateGraph",()=>(function(e){let t=1/0,n=0,r=1/0,o=0,i=e.graph(),a=i.marginx||0,s=i.marginy||0;function l(e){let i=e.x,a=e.y,s=e.width,l=e.height;t=Math.min(t,i-s/2),n=Math.max(n,i+s/2),r=Math.min(r,a-l/2),o=Math.max(o,a+l/2)}e.nodes().forEach(t=>l(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,"x")&&l(n)}),t-=a,r-=s,e.nodes().forEach(n=>{let o=e.node(n);o.x-=t,o.y-=r}),e.edges().forEach(n=>{let o=e.edge(n);o.points.forEach(e=>{e.x-=t,e.y-=r}),Object.hasOwn(o,"x")&&(o.x-=t),Object.hasOwn(o,"y")&&(o.y-=r)}),i.width=n-t+a,i.height=o-r+s})(e)),p(" assignNodeIntersects",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e),r=t.node(e.v),o=t.node(e.w),i,a;n.points?(i=n.points[0],a=n.points[n.points.length-1]):(n.points=[],i=o,a=r),n.points.unshift(f.intersectRect(r,i)),n.points.push(f.intersectRect(o,a))})}),p(" reversePoints",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);n.reversed&&n.points.reverse()})}),p(" acyclic.undo",()=>n.undo(e)))}),C(" updateInputGraph",()=>{var t,n;return t=e,n=N,void(t.nodes().forEach(e=>{let r=t.node(e),o=n.node(e);r&&(r.x=o.x,r.y=o.y,r.order=o.order,r.rank=o.rank,n.children(e).length&&(r.width=o.width,r.height=o.height))}),t.edges().forEach(e=>{let r=t.edge(e),o=n.edge(e);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height)}),N})};var g=["nodesep","edgesep","ranksep","marginx","marginy"],m={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},y=["acyclicer","ranker","rankdir","align","rankalign"],v=["width","height","rank"],x={width:0,height:0},w=["minlen","weight","width","height","labeloffset"],b={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function k(e,t){return f.mapValues(f.pick(e,t),Number)}function _(e){var t={};return e&&Object.entries(e).forEach(([e,n])=>{"string"==typeof e&&(e=e.toLowerCase()),t[e]=n}),t}}),aG=aE((e,t)=>{var n=aN(),r=ak().Graph;t.exports={debugOrdering:function(e){let t=n.buildLayerMatrix(e),o=new r({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{o.setNode(t,{label:t}),o.setParent(t,"layer"+e.node(t).rank)}),e.edges().forEach(e=>o.setEdge(e.v,e.w,{},e.name)),t.forEach((e,t)=>{o.setNode("layer"+t,{rank:"same"}),e.reduce((e,t)=>(o.setEdge(e,t,{style:"invis"}),t))}),o}}}),aK=aE((e,t)=>{t.exports="2.0.4"});let aU=aE((e,t)=>{t.exports={graphlib:ak(),layout:aZ(),debug:aG(),util:{time:aN().time,notime:aN().notime},version:aK()}})(),aQ={featureNode:{width:288,height:140},repositoryNode:{width:224,height:50},addRepositoryNode:{width:224,height:50}};function aJ(e,t){let n=e.data;return n&&"number"==typeof n.width&&"number"==typeof n.height?{width:n.width,height:n.height}:aQ[e.type??""]??t}let a0=0;function a1(e,t){let n=(0,aw.useRouter)(),[r,o]=(0,x.useState)(e),[i,a]=(0,x.useState)(t),[s,l]=(0,x.useState)(null),[u,d]=(0,x.useState)(!1),[c,h]=(0,x.useState)(!1),[f,p]=(0,x.useState)(null),g=e.map(e=>e.id).sort().join(","),m=t.map(e=>e.id).sort().join(",");(0,x.useEffect)(()=>{o(t=>{let n=new Map(t.map(e=>[e.id,e])),r=new Set(e.map(e=>e.id)),o=t.filter(e=>"featureNode"===e.type&&"creating"===e.data.state&&!r.has(e.id));return e.map(e=>{let t=n.get(e.id);if(t)return{...e,position:t.position};if("featureNode"===e.type&&o.length>0){let t=o.shift();return{...e,position:t.position}}return e})})},[g]),(0,x.useEffect)(()=>{a(t)},[m]);let y=(0,x.useCallback)(e=>{o(t=>oM(e,t))},[]),v=(0,x.useCallback)(()=>{l(null)},[]),w=(0,x.useCallback)((e,t)=>{if("featureNode"===t.type){let e=t.data;"creating"!==e.state&&(d(!1),l(e))}},[]);(0,x.useEffect)(()=>{let e=e=>{"Escape"===e.key&&v()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[v]);let b=(0,x.useCallback)(e=>{e.source&&e.target&&o(t=>{let n=t.find(t=>t.id===e.source);return n?.type!=="repositoryNode"||a(n=>n.some(n=>{let r=t.find(e=>e.id===n.source);return r?.type==="repositoryNode"&&n.target===e.target})?n:[...n,{id:`edge-${e.source}-${e.target}`,source:e.source,target:e.target,style:{strokeDasharray:"5 5"}}]),t})},[]),E=(0,x.useCallback)((e,t)=>{let n=`feature-${Date.now()}-${a0++}`,r={name:t?.name??"New Feature",description:t?.description??"Describe what this feature does",featureId:`#${n.slice(-4)}`,lifecycle:"requirements",state:t?.state??"running",progress:0,repositoryPath:t?.repositoryPath??"",branch:t?.branch??""};return o(t=>{let o,a=e?new Set(i.filter(t=>t.source===e).map(e=>e.target)):new Set,s=t.filter(e=>a.has(e.id));if(s.length>0){let e=s.map(e=>e.position.y).sort((e,t)=>e-t),t=e[e.length-1],n=e.length>1?e[1]-e[0]:160;o={x:s[0].position.x,y:t+n}}else if(e){let n=t.find(t=>t.id===e),r=n?.type==="featureNode"?344:280;o=n?{x:n.position.x+r,y:n.position.y}:{x:400,y:200}}else{let e=t.length>0?Math.max(...t.map(e=>e.position.y)):0;o={x:400,y:t.length>0?e+160:200}}let l=o.y+140,u=new Set([e,...a]),d=t.filter(e=>u.has(e.id)).reduce((e,t)=>{let n="featureNode"===t.type?140:50;return Math.max(e,t.position.y+n)},0),c=Math.max(0,l-d),h=c>0?t.map(e=>u.has(e.id)||a.has(e.id)?e:e.position.y>=d?{...e,position:{...e.position,y:e.position.y+c}}:e):t;return[...e?h.map(t=>{if(t.id!==e)return t;let n=[...s.map(e=>e.position.y),o.y],r=(Math.min(...n)+Math.max(...n)+140)/2,i="featureNode"===t.type?140:50;return{...t,position:{...t.position,y:r-i/2}}}):h,{id:n,type:"featureNode",position:o,data:r}]}),e&&a(t=>[...t,{id:`edge-${e}-${n}`,source:e,target:n,style:{strokeDasharray:"5 5"}}]),"creating"!==r.state&&l(r),n},[i]),k=(0,x.useCallback)(()=>{l(null),d(!0)},[]),_=(0,x.useCallback)(e=>{let t=E(f,{state:"creating",name:e.name,description:e.description,repositoryPath:e.repositoryPath});d(!1),p(null),fetch("/api/features/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(async e=>{if(!e.ok){let n=await e.json();o(e=>e.filter(e=>e.id!==t)),a(e=>e.filter(e=>e.target!==t)),ab.toast.error(n.error??"Failed to create feature");return}n.refresh()}).catch(()=>{o(e=>e.filter(e=>e.id!==t)),a(e=>e.filter(e=>e.target!==t)),ab.toast.error("Failed to create feature")})},[n,E,f]),C=(0,x.useCallback)(()=>{d(!1)},[]),N=(0,x.useCallback)(async e=>{h(!0);try{let t=await fetch(`/api/features/${e}`,{method:"DELETE"});if(!t.ok){let e=await t.json();ab.toast.error(e.error??"Failed to delete feature");return}l(null),o(t=>t.filter(t=>t.id!==e)),a(t=>t.filter(t=>t.source!==e&&t.target!==e)),ab.toast.success("Feature deleted successfully"),n.refresh()}catch{ab.toast.error("Failed to delete feature")}finally{h(!1)}},[n]),j=(0,x.useCallback)(e=>{l(null),p(e),d(!0)},[]),S=(0,x.useCallback)(e=>{E(e)},[E]),M=(0,x.useCallback)(e=>{o(t=>{let n=function(e,t,n={}){let{direction:r="TB",nodeSize:o={width:172,height:36},ranksep:i=80,nodesep:a=30}=n;if(0===e.length)return{nodes:[],edges:[]};let s=new aU.graphlib.Graph({multigraph:!0});s.setDefaultEdgeLabel(()=>({})),s.setGraph({rankdir:r,ranksep:i,nodesep:a});let l=new Set;for(let e of t)l.add(e.source),l.add(e.target);let u=e.filter(e=>l.has(e.id)),d=e.filter(e=>!l.has(e.id));for(let e of u){let t=aJ(e,o);s.setNode(e.id,{width:t.width,height:t.height})}for(let e of t)s.hasNode(e.source)&&s.hasNode(e.target)&&s.setEdge(e.source,e.target,{},e.id);aU.layout(s);let{targetPosition:c,sourcePosition:h}=function(e){switch(e){case"LR":return{targetPosition:"left",sourcePosition:"right"};case"RL":return{targetPosition:"right",sourcePosition:"left"};case"BT":return{targetPosition:"bottom",sourcePosition:"top"};default:return{targetPosition:"top",sourcePosition:"bottom"}}}(r),f=[];for(let e of u){let t=s.node(e.id),n=aJ(e,o);f.push({...e,targetPosition:c,sourcePosition:h,position:{x:t.x-n.width/2,y:t.y-n.height/2}})}if(d.length>0){let e=0,t=1/0;for(let n of f){let r=aJ(n,o);e=Math.max(e,n.position.y+r.height),t=Math.min(t,n.position.x)}for(let n=0;n<d.length;n++){let r=d[n],i=aJ(r,o);f.push({...r,targetPosition:c,sourcePosition:h,position:{x:t,y:e+30+n*(i.height+20)}})}}return{nodes:f,edges:[...t]}}(t,i,{direction:e,ranksep:60,nodesep:20});return a(n.edges),n.nodes})},[i]),P=(0,x.useCallback)(e=>{let t=`repo-${Date.now()}`;o(n=>{let r=n.find(e=>"addRepositoryNode"===e.type),o={id:t,type:"repositoryNode",position:r?{x:r.position.x,y:r.position.y}:{x:50,y:50},data:{name:e.replace(/[\\/]+$/,"").split(/[\\/]/).pop()??e}};return n.map(e=>"addRepositoryNode"===e.type?{...e,position:{...e.position,y:e.position.y+80}}:e).concat(o)})},[]);return{nodes:r,edges:i,selectedNode:s,isCreateDrawerOpen:u,pendingRepositoryPath:f?.replace(/^repo-/,"")??"",onNodesChange:y,handleConnect:b,clearSelection:v,handleNodeClick:w,handleAddFeature:k,handleAddFeatureToRepo:j,handleAddFeatureToFeature:S,handleAddRepository:P,handleLayout:M,handleCreateFeatureSubmit:_,closeCreateDrawer:C,handleDeleteFeature:N,isDeleting:c,createFeatureNode:E}}e.s(["useControlCenterState",()=>a1],17840)},48246,e=>{"use strict";let t;var n=e.i(20314),r=e.i(53271),o=e.i(79054),i=e.i(3214),a=e.i(35364),s=e.i(31777);function l({icon:e,title:t,description:r,action:o,className:i,...a}){return(0,n.jsxs)("div",{className:(0,s.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",i),...a,children:[e?(0,n.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,n.jsx)("h3",{className:"text-lg font-semibold",children:t}),r?(0,n.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:r}):null,o?(0,n.jsx)("div",{className:"mt-2",children:o}):null]})}var u=e.i(92002),d=e.i(3645);let c=(0,d.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var h=e.i(83428),f=e.i(51251),p=e.i(10942);let g=(0,d.default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),m=(0,d.default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),y={requirements:"REQUIREMENTS",research:"RESEARCH",implementation:"IMPLEMENTATION",review:"REVIEW",deploy:"DEPLOY & QA",maintain:"COMPLETED"},v={requirements:"Analyzing",research:"Researching",implementation:"Implementing",review:"Reviewing",deploy:"Deploying",maintain:"Maintaining"},x={creating:{icon:h.Loader2,borderClass:"border-l-blue-500",labelClass:"text-blue-500",progressClass:"bg-blue-500",badgeClass:"text-blue-700",badgeBgClass:"bg-blue-50",label:"Creating...",showProgressBar:!1},running:{icon:h.Loader2,borderClass:"border-l-blue-500",labelClass:"text-blue-500",progressClass:"bg-blue-500",badgeClass:"text-blue-700",badgeBgClass:"bg-blue-50",label:"Running",showProgressBar:!1},"action-required":{icon:f.CircleAlert,borderClass:"border-l-amber-500",labelClass:"text-amber-500",progressClass:"bg-amber-500",badgeClass:"text-amber-700",badgeBgClass:"bg-amber-50",label:"User action required",showProgressBar:!1},done:{icon:p.CircleCheck,borderClass:"border-l-emerald-500",labelClass:"text-emerald-500",progressClass:"bg-emerald-500",badgeClass:"text-emerald-700",badgeBgClass:"bg-emerald-50",label:"Done",showProgressBar:!1},blocked:{icon:g,borderClass:"border-l-gray-400",labelClass:"text-gray-400",progressClass:"bg-gray-400",badgeClass:"text-gray-600",badgeBgClass:"bg-gray-100",label:"Blocked",showProgressBar:!1},error:{icon:m,borderClass:"border-l-red-500",labelClass:"text-red-500",progressClass:"bg-red-500",badgeClass:"text-red-700",badgeBgClass:"bg-red-50",label:"Error",showProgressBar:!1}};function w(e,t){function r({className:r}){return(0,n.jsx)("img",{src:e,alt:t,className:(0,s.cn)("rounded-sm object-contain",r)})}return r.displayName=`BrandIcon(${t})`,r}function b(e){return(0,n.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}let E={"claude-code":w("/icons/agents/claude-ai-icon.svg","Claude Code"),cursor:w("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":w("/icons/agents/gemini-cli.jpeg","Gemini CLI"),aider:w("/icons/agents/aider.png","Aider"),continue:w("/icons/agents/continue.jpeg","Continue")};function k({agentType:e,className:t}){let r=e&&e in E?E[e]:b;return(0,n.jsx)(r,{className:t})}function _(e){let t=x[e.state];switch(e.state){case"creating":return"Creating...";case"running":return v[e.lifecycle];case"done":return e.runtime?`Completed in ${e.runtime}`:"Completed";case"blocked":return e.blockedBy?`Waiting on ${e.blockedBy}`:"Blocked";case"error":return e.errorMessage??"Something went wrong";default:return t.label}}function C({data:e,selected:t}){let o=x[e.state],a=o.icon;return(0,n.jsxs)("div",{className:"group relative",children:[e.showHandles?(0,n.jsx)(r.Handle,{type:"target",position:u.Position.Left,isConnectable:!1,className:"opacity-0!"}):null,(0,n.jsxs)("div",{"data-testid":"feature-node-card","aria-busy":"creating"===e.state?"true":void 0,className:(0,s.cn)("bg-card flex min-h-35 w-72 flex-col rounded-lg border p-3 shadow-sm",t&&"ring-primary ring-2"),children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{"data-testid":"feature-node-lifecycle-label",className:(0,s.cn)("text-[10px] font-semibold tracking-wider"),children:y[e.lifecycle]}),e.onSettings?(0,n.jsx)("button",{type:"button","aria-label":"Settings","data-testid":"feature-node-settings-button",onClick:t=>{t.stopPropagation(),e.onSettings?.()},className:"nodrag text-muted-foreground hover:text-foreground -mt-1 -mr-1 p-1",children:(0,n.jsx)(c,{className:"h-3.5 w-3.5"})}):null]}),(0,n.jsx)("h3",{className:"mt-1 truncate text-sm font-bold",children:e.name}),e.description?(0,n.jsx)("p",{"data-testid":"feature-node-description",className:"text-muted-foreground mt-0.5 truncate text-xs",children:e.description}):null,(0,n.jsx)("div",{className:"mt-auto pt-2",children:"creating"===e.state?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-xs",children:[(0,n.jsx)(a,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),(0,n.jsx)("span",{className:"text-muted-foreground",children:_(e)})]}),(0,n.jsx)("div",{"data-testid":"feature-node-progress-bar",className:"bg-muted mt-1.5 h-1 w-full overflow-hidden rounded-full",children:(0,n.jsx)("div",{className:"motion-safe:animate-indeterminate-progress bg-foreground/30 h-full w-1/3 rounded-full"})})]}):"running"===e.state?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5 text-xs",children:[(0,n.jsx)(k,{agentType:e.agentType,className:"h-3.5 w-3.5 shrink-0"}),(0,n.jsx)("span",{className:"text-muted-foreground",children:_(e)})]}),(0,n.jsx)("div",{"data-testid":"feature-node-progress-bar",className:"bg-muted mt-1.5 h-1 w-full overflow-hidden rounded-full",children:(0,n.jsx)("div",{className:"animate-indeterminate-progress bg-foreground/30 h-full w-1/3 rounded-full"})})]}):o.showProgressBar?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"text-muted-foreground flex items-center justify-end text-[10px]",children:(0,n.jsxs)("span",{children:[e.progress,"%"]})}),(0,n.jsx)("div",{"data-testid":"feature-node-progress-bar",className:"bg-muted mt-1.5 h-1 w-full overflow-hidden rounded-full",children:(0,n.jsx)("div",{className:(0,s.cn)("h-full rounded-full transition-all",o.progressClass),style:{width:`${e.progress}%`}})})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"text-muted-foreground text-[10px]",children:(0,n.jsx)("span",{children:e.featureId})}),(0,n.jsxs)("div",{"data-testid":"feature-node-badge",className:(0,s.cn)("mt-1.5 flex items-center justify-center gap-1.5 rounded-full px-2.5 py-1 text-[11px] font-medium",o.badgeBgClass,o.badgeClass),children:[(0,n.jsx)(a,{className:"h-3.5 w-3.5 shrink-0"}),(0,n.jsx)("span",{className:"truncate",children:_(e)})]})]})})]}),e.onAction?(0,n.jsx)(r.Handle,{type:"source",position:u.Position.Right,className:"h-0! w-0! border-0! bg-transparent!",children:(0,n.jsx)("button",{type:"button","aria-label":"Add","data-testid":"feature-node-action-button",onClick:t=>{t.stopPropagation(),e.onAction?.()},className:"nodrag absolute top-1/2 left-1/2 flex h-6 w-6 -translate-x-1/2 -translate-y-1/2 cursor-pointer items-center justify-center rounded-full bg-blue-500 text-white opacity-0 shadow-md transition-opacity group-hover:opacity-100 hover:bg-blue-600",children:(0,n.jsx)(i.Plus,{className:"h-3.5 w-3.5"})})}):e.showHandles?(0,n.jsx)(r.Handle,{type:"source",position:u.Position.Right,isConnectable:!1,className:"opacity-0!"}):null]})}let N=(0,d.default)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),j=(0,d.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]),S=(0,d.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);function M({label:e,onClick:t,loading:r,error:o,icon:i,iconOnly:l=!1,variant:u="outline",size:d="sm"}){return(0,n.jsxs)(a.Button,{variant:u,size:d,"aria-label":e,disabled:r,onClick:t,className:(0,s.cn)("gap-1.5",o&&"text-destructive hover:text-destructive",!o&&l&&"ghost"===u&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[r?(0,n.jsx)(h.Loader2,{className:"size-4 animate-spin"}):o?(0,n.jsx)(f.CircleAlert,{className:"size-4"}):(0,n.jsx)(i,{className:"size-4"}),l?null:e]})}var P=e.i(2828);function O({data:e}){let t=function(e){let[t,n]=(0,o.useState)(!1),[r,i]=(0,o.useState)(!1),[a,s]=(0,o.useState)(null),[l,u]=(0,o.useState)(null),d=(0,o.useRef)(null),c=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=d.current,t=c.current;return()=>{e&&clearTimeout(e),t&&clearTimeout(t)}},[]);let h=(0,o.useCallback)(async(t,n,r,o,i)=>{if(e&&!i){o.current&&clearTimeout(o.current),n(!0),r(null);try{let n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositoryPath:e.repositoryPath})});if(!n.ok){let e=(await n.json()).error??"An unexpected error occurred";r(e),o.current=setTimeout(()=>r(null),5e3)}}catch(e){r(e instanceof Error?e.message:"An unexpected error occurred"),o.current=setTimeout(()=>r(null),5e3)}finally{n(!1)}}},[e]);return{openInIde:(0,o.useCallback)(()=>h("/api/ide/open",n,s,d,t),[h,t]),openInShell:(0,o.useCallback)(()=>h("/api/shell/open",i,u,c,r),[h,r]),ideLoading:t,shellLoading:r,ideError:a,shellError:l}}(e.repositoryPath?{repositoryPath:e.repositoryPath}:null);return(0,n.jsxs)("div",{className:"group relative",children:[e.showHandles?(0,n.jsx)(r.Handle,{type:"target",position:u.Position.Left,isConnectable:!1,className:"opacity-0!"}):null,(0,n.jsxs)("div",{role:"button",tabIndex:0,"data-testid":"repository-node-card",onClick:t=>{t.stopPropagation(),e.onClick?.()},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),t.stopPropagation(),e.onClick?.())},className:"nodrag bg-card flex w-72 cursor-default items-center gap-3 rounded-full border px-4 py-3 shadow-sm",children:[(0,n.jsx)(N,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,n.jsx)("span",{"data-testid":"repository-node-name",className:"min-w-0 truncate text-sm font-medium",children:e.name}),(0,n.jsxs)("div",{className:(0,s.cn)("flex shrink-0 items-center gap-2",(e.repositoryPath??e.onAdd)&&"ml-auto"),onClick:e=>e.stopPropagation(),children:[e.repositoryPath?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.TooltipProvider,{children:(0,n.jsxs)(P.Tooltip,{children:[(0,n.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("span",{className:"flex items-center",children:(0,n.jsx)(M,{label:"Open in IDE",onClick:t.openInIde,loading:t.ideLoading,error:!!t.ideError,icon:j,iconOnly:!0,variant:"ghost",size:"icon-xs"})})}),(0,n.jsx)(P.TooltipContent,{children:"Open in IDE"})]})}),(0,n.jsx)(P.TooltipProvider,{children:(0,n.jsxs)(P.Tooltip,{children:[(0,n.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("span",{className:"flex items-center",children:(0,n.jsx)(M,{label:"Open in Shell",onClick:t.openInShell,loading:t.shellLoading,error:!!t.shellError,icon:S,iconOnly:!0,variant:"ghost",size:"icon-xs"})})}),(0,n.jsx)(P.TooltipContent,{children:"Open in Shell"})]})})]}):null,e.onAdd?(0,n.jsx)(P.TooltipProvider,{children:(0,n.jsxs)(P.Tooltip,{children:[(0,n.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("button",{"aria-label":"Add feature","data-testid":"repository-node-add-button",onClick:t=>{t.stopPropagation(),e.onAdd?.()},className:"text-muted-foreground hover:bg-accent dark:hover:bg-accent/50 flex h-6 w-6 shrink-0 cursor-pointer items-center justify-center rounded-full transition-colors hover:text-blue-500",children:(0,n.jsx)(i.Plus,{className:"h-3.5 w-3.5"})})}),(0,n.jsx)(P.TooltipContent,{children:"Add feature"})]})}):null]})]}),e.onAdd||e.showHandles?(0,n.jsx)(r.Handle,{type:"source",position:u.Position.Right,isConnectable:!e.showHandles,className:"opacity-0!"}):null]})}async function R(){let e=await fetch("/api/dialog/pick-folder",{method:"POST"});if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error??"Failed to open folder dialog")}return(await e.json()).path}function A({data:e}){let[t,r]=(0,o.useState)(!1);async function a(){if(!t){r(!0);try{let t=await R();t&&e.onSelect?.(t)}finally{r(!1)}}}return(0,n.jsx)("div",{className:"group",children:(0,n.jsxs)("button",{type:"button","data-testid":"add-repository-node-card",onClick:a,disabled:t,className:"nodrag border-muted-foreground/30 flex w-56 cursor-pointer items-center gap-3 rounded-full border-2 border-dashed px-4 py-3 transition-colors hover:border-blue-500 hover:text-blue-500 disabled:cursor-wait disabled:opacity-60",children:[t?(0,n.jsx)(h.Loader2,{className:"h-5 w-5 shrink-0 animate-spin"}):(0,n.jsx)(i.Plus,{className:"h-5 w-5 shrink-0"}),(0,n.jsx)("span",{"data-testid":"add-repository-node-label",className:"text-sm font-medium",children:t?"Opening...":"Add Repository"})]})})}function z({nodes:e,edges:t,onNodesChange:s,onAddFeature:u,onNodeAction:d,onNodeSettings:c,onConnect:h,onNodeClick:f,onPaneClick:p,onRepositoryAdd:g,onRepositorySelect:m,toolbar:y,emptyState:v}){let x=(0,o.useMemo)(()=>({featureNode:C,repositoryNode:O,addRepositoryNode:A}),[]),w=(0,o.useCallback)(n=>{let r=e.find(e=>e.id===n.source);return r?.type!=="repositoryNode"||!t.some(t=>{let r=e.find(e=>e.id===t.source);return r?.type==="repositoryNode"&&t.target===n.target})},[e,t]),b=(0,o.useMemo)(()=>e.map(e=>({...e,data:{...e.data,showHandles:t.length>0,..."featureNode"===e.type&&"creating"!==e.data.state&&{onAction:d?()=>d(e.id):void 0,onSettings:c?()=>c(e.id):void 0},..."repositoryNode"===e.type&&{onAdd:g?()=>g(e.id):void 0},..."addRepositoryNode"===e.type&&{onSelect:m?e=>m(e):void 0}}})),[e,t.length,d,c,g,m]);return 0===e.length?v?(0,n.jsx)("div",{"data-testid":"features-canvas-empty",className:"h-full w-full",children:v}):(0,n.jsx)("div",{"data-testid":"features-canvas-empty",children:(0,n.jsx)(l,{title:"No features yet",description:"Get started by creating your first feature.",action:(0,n.jsxs)(a.Button,{onClick:u,children:[(0,n.jsx)(i.Plus,{className:"mr-2 h-4 w-4"}),"New Feature"]})})}):(0,n.jsx)("div",{"data-testid":"features-canvas",className:"h-full w-full",children:(0,n.jsx)(r.ReactFlowProvider,{children:(0,n.jsxs)(r.ReactFlow,{nodes:b,edges:t,nodeTypes:x,isValidConnection:w,onConnect:h,onNodesChange:s,onNodeClick:f,onPaneClick:p,defaultViewport:{x:30,y:30,zoom:.85},nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,children:[(0,n.jsx)(r.Background,{}),(0,n.jsx)(r.Controls,{}),y]})})})}e.i(41589);var D=e.i(48249),T=e.i(91891),T=T;let $=(0,d.default)("file",[["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"}]]),I=(0,d.default)("file-text",[["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"}]]),L=(0,d.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),B=(0,d.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),H=(0,d.default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);var F=e.i(567);let V=o.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),X=()=>{let e=o.default.useContext(V);if(!e)throw Error("useDrawerContext must be used within a Drawer.Root");return e};function Y(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function W(){return q(/^iPhone/)||q(/^iPad/)||q(/^Mac/)&&navigator.maxTouchPoints>1}function q(e){return"u">typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let Z="u">typeof window?o.useLayoutEffect:o.useEffect;function G(...e){return(...t)=>{for(let n of e)"function"==typeof n&&n(...t)}}let K="u">typeof document&&window.visualViewport;function U(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}function Q(e){for(U(e)&&(e=e.parentElement);e&&!U(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}let J=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),ee=0;function et(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function en(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let t=Q(e);if(t!==document.documentElement&&t!==document.body&&t!==e){let n=t.getBoundingClientRect().top,r=e.getBoundingClientRect().top;e.getBoundingClientRect().bottom>t.getBoundingClientRect().bottom+24&&(t.scrollTop+=r-n)}e=t.parentElement}}function er(e){return e instanceof HTMLInputElement&&!J.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function eo(...e){return o.useCallback(function(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}(...e),e)}let ei=new WeakMap;function ea(e,t,n=!1){if(!e||!(e instanceof HTMLElement))return;let r={};Object.entries(t).forEach(([t,n])=>{t.startsWith("--")?e.style.setProperty(t,n):(r[t]=e.style[t],e.style[t]=n)}),n||ei.set(e,r)}let es=e=>{switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}};function el(e,t){if(!e)return null;let n=window.getComputedStyle(e),r=n.transform||n.webkitTransform||n.mozTransform,o=r.match(/^matrix3d\((.+)\)$/);return o?parseFloat(o[1].split(", ")[es(t)?13:12]):(o=r.match(/^matrix\((.+)\)$/))?parseFloat(o[1].split(", ")[es(t)?5:4]):null}function eu(e,t){if(!e)return()=>{};let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}let ed=[.32,.72,0,1],ec="vaul-dragging";function eh(e){let t=o.default.useRef(e);return o.default.useEffect(()=>{t.current=e}),o.default.useMemo(()=>(...e)=>null==t.current?void 0:t.current.call(t,...e),[])}function ef({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,i]=function({defaultProp:e,onChange:t}){let n=o.default.useState(e),[r]=n,i=o.default.useRef(r),a=eh(t);return o.default.useEffect(()=>{i.current!==r&&(a(r),i.current=r)},[r,i,a]),n}({defaultProp:t,onChange:n}),a=void 0!==e,s=a?e:r,l=eh(n);return[s,o.default.useCallback(t=>{if(a){let n="function"==typeof t?t(e):t;n!==e&&l(n)}else i(t)},[a,e,i,l])]}let ep=()=>()=>{},eg=null;function em({open:e,onOpenChange:n,children:r,onDrag:i,onRelease:a,snapPoints:s,shouldScaleBackground:l=!1,setBackgroundColorOnScale:u=!0,closeThreshold:d=.25,scrollLockTimeout:c=100,dismissible:h=!0,handleOnly:f=!1,fadeFromIndex:p=s&&s.length-1,activeSnapPoint:g,setActiveSnapPoint:m,fixed:y,modal:v=!0,onClose:x,nested:w,noBodyStyles:b=!1,direction:E="bottom",defaultOpen:k=!1,disablePreventScroll:_=!0,snapToSequentialPoint:C=!1,preventScrollRestoration:N=!1,repositionInputs:j=!0,onAnimationEnd:S,container:M,autoFocus:P=!1}){var O,R;let[A=!1,z]=ef({defaultProp:k,prop:e,onChange:e=>{null==n||n(e),e||w||eO(),setTimeout(()=>{null==S||S(e)},500),e&&!v&&"u">typeof window&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),e||(document.body.style.pointerEvents="auto")}}),[D,T]=o.default.useState(!1),[$,I]=o.default.useState(!1),[L,B]=o.default.useState(!1),H=o.default.useRef(null),X=o.default.useRef(null),q=o.default.useRef(null),U=o.default.useRef(null),J=o.default.useRef(null),eo=o.default.useRef(!1),eu=o.default.useRef(null),eh=o.default.useRef(0),ep=o.default.useRef(!1),em=o.default.useRef(!k),ey=o.default.useRef(0),ev=o.default.useRef(null),ex=o.default.useRef((null==(O=ev.current)?void 0:O.getBoundingClientRect().height)||0),ew=o.default.useRef((null==(R=ev.current)?void 0:R.getBoundingClientRect().width)||0),eb=o.default.useRef(0),eE=o.default.useCallback(e=>{s&&e===ej.length-1&&(X.current=new Date)},[]),{activeSnapPoint:ek,activeSnapPointIndex:e_,setActiveSnapPoint:eC,onRelease:eN,snapPointsOffset:ej,onDrag:eS,shouldFade:eM,getPercentageDragged:eP}=function({activeSnapPointProp:e,setActiveSnapPointProp:t,snapPoints:n,drawerRef:r,overlayRef:i,fadeFromIndex:a,onSnapPointChange:s,direction:l="bottom",container:u,snapToSequentialPoint:d}){let[c,h]=ef({prop:e,defaultProp:null==n?void 0:n[0],onChange:t}),[f,p]=o.default.useState("u">typeof window?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);o.default.useEffect(()=>{function e(){p({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let g=o.default.useMemo(()=>c===(null==n?void 0:n[n.length-1])||null,[n,c]),m=o.default.useMemo(()=>{var e;return null!=(e=null==n?void 0:n.findIndex(e=>e===c))?e:null},[n,c]),y=n&&n.length>0&&(a||0===a)&&!Number.isNaN(a)&&n[a]===c||!n,v=o.default.useMemo(()=>{var e;let t=u?{width:u.getBoundingClientRect().width,height:u.getBoundingClientRect().height}:"u">typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};return null!=(e=null==n?void 0:n.map(e=>{let n="string"==typeof e,r=0;if(n&&(r=parseInt(e,10)),es(l)){let o=n?r:f?e*t.height:0;return f?"bottom"===l?t.height-o:-t.height+o:o}let o=n?r:f?e*t.width:0;return f?"right"===l?t.width-o:-t.width+o:o}))?e:[]},[n,f,u]),x=o.default.useMemo(()=>null!==m?null==v?void 0:v[m]:null,[v,m]),w=o.default.useCallback(e=>{var t;let o=null!=(t=null==v?void 0:v.findIndex(t=>t===e))?t:null;s(o),ea(r.current,{transition:`transform 0.5s cubic-bezier(${ed.join(",")})`,transform:es(l)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`}),v&&o!==v.length-1&&void 0!==a&&o!==a&&o<a?ea(i.current,{transition:`opacity 0.5s cubic-bezier(${ed.join(",")})`,opacity:"0"}):ea(i.current,{transition:`opacity 0.5s cubic-bezier(${ed.join(",")})`,opacity:"1"}),h(null==n?void 0:n[Math.max(o,0)])},[r.current,n,v,a,i,h]);return o.default.useEffect(()=>{if(c||e){var t;let r=null!=(t=null==n?void 0:n.findIndex(t=>t===e||t===c))?t:-1;v&&-1!==r&&"number"==typeof v[r]&&w(v[r])}},[c,e,n,v,w]),{isLastSnapPoint:g,activeSnapPoint:c,shouldFade:y,getPercentageDragged:function(e,t){if(!n||"number"!=typeof m||!v||void 0===a)return null;let r=m===a-1;if(m>=a&&t)return 0;if(r&&!t)return 1;if(!y&&!r)return null;let o=r?m+1:m-1,i=e/Math.abs(r?v[o]-v[o-1]:v[o+1]-v[o]);return r?1-i:i},setActiveSnapPoint:h,activeSnapPointIndex:m,onRelease:function({draggedDistance:e,closeDrawer:t,velocity:r,dismissible:o}){if(void 0===a)return;let s="bottom"===l||"right"===l?(null!=x?x:0)-e:(null!=x?x:0)+e,u=m===a-1,c=0===m,h=e>0;if(u&&ea(i.current,{transition:`opacity 0.5s cubic-bezier(${ed.join(",")})`}),!d&&r>2&&!h)return void(o?t():w(v[0]));if(!d&&r>2&&h&&v&&n)return void w(v[n.length-1]);let f=null==v?void 0:v.reduce((e,t)=>"number"!=typeof e||"number"!=typeof t?e:Math.abs(t-s)<Math.abs(e-s)?t:e),p=es(l)?window.innerHeight:window.innerWidth;if(r>.4&&Math.abs(e)<.4*p){let e=h?1:-1;return e>0&&g&&n?void w(v[n.length-1]):void(c&&e<0&&o&&t(),null===m||w(v[m+e]))}w(f)},onDrag:function({draggedDistance:e}){if(null===x)return;let t="bottom"===l||"right"===l?x-e:x+e;("bottom"===l||"right"===l)&&t<v[v.length-1]||("top"===l||"left"===l)&&t>v[v.length-1]||ea(r.current,{transform:es(l)?`translate3d(0, ${t}px, 0)`:`translate3d(${t}px, 0, 0)`})},snapPointsOffset:v}}({snapPoints:s,activeSnapPointProp:g,setActiveSnapPointProp:m,drawerRef:ev,fadeFromIndex:p,overlayRef:H,onSnapPointChange:eE,direction:E,container:M,snapToSequentialPoint:C});!function(e={}){let{isDisabled:n}=e;Z(()=>{if(!n){var e,r,o;let n,i,a,s,l,u,d;return 1==++ee&&W()&&(a=0,s=window.pageXOffset,l=window.pageYOffset,u=G((e=document.documentElement,r="paddingRight",o=`${window.innerWidth-document.documentElement.clientWidth}px`,n=e.style[r],e.style[r]=o,()=>{e.style[r]=n})),window.scrollTo(0,0),d=G(et(document,"touchstart",e=>{((i=Q(e.target))!==document.documentElement||i!==document.body)&&(a=e.changedTouches[0].pageY)},{passive:!1,capture:!0}),et(document,"touchmove",e=>{if(!i||i===document.documentElement||i===document.body)return void e.preventDefault();let t=e.changedTouches[0].pageY,n=i.scrollTop,r=i.scrollHeight-i.clientHeight;0!==r&&((n<=0&&t>a||n>=r&&t<a)&&e.preventDefault(),a=t)},{passive:!1,capture:!0}),et(document,"touchend",e=>{let t=e.target;er(t)&&t!==document.activeElement&&(e.preventDefault(),t.style.transform="translateY(-2000px)",t.focus(),requestAnimationFrame(()=>{t.style.transform=""}))},{passive:!1,capture:!0}),et(document,"focus",e=>{let t=e.target;er(t)&&(t.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{t.style.transform="",K&&(K.height<window.innerHeight?requestAnimationFrame(()=>{en(t)}):K.addEventListener("resize",()=>en(t),{once:!0}))}))},!0),et(window,"scroll",()=>{window.scrollTo(0,0)})),t=()=>{u(),d(),window.scrollTo(s,l)}),()=>{0==--ee&&(null==t||t())}}},[n])}({isDisabled:!A||$||!v||L||!D||!j||!_});let{restorePositionSetting:eO}=function({isOpen:e,modal:t,nested:n,hasBeenOpened:r,preventScrollRestoration:i,noBodyStyles:a}){let[s,l]=o.default.useState(()=>"u">typeof window?window.location.href:""),u=o.default.useRef(0),d=o.default.useCallback(()=>{if(Y()&&null===eg&&e&&!a){eg={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:e,innerHeight:t}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-u.current}px`,left:`${-e}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let e=t-window.innerHeight;e&&u.current>=t&&(document.body.style.top=`${-(u.current+e)}px`)}),300)}},[e]),c=o.default.useCallback(()=>{if(Y()&&null!==eg&&!a){let e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);Object.assign(document.body.style,eg),window.requestAnimationFrame(()=>{i&&s!==window.location.href?l(window.location.href):window.scrollTo(t,e)}),eg=null}},[s]);return o.default.useEffect(()=>{function e(){u.current=window.scrollY}return e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]),o.default.useEffect(()=>{if(t)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||c()}},[t,c]),o.default.useEffect(()=>{!n&&r&&(e?(window.matchMedia("(display-mode: standalone)").matches||d(),t||window.setTimeout(()=>{c()},500)):c())},[e,r,s,t,n,d,c]),{restorePositionSetting:c}}({isOpen:A,modal:v,nested:null!=w&&w,hasBeenOpened:D,preventScrollRestoration:N,noBodyStyles:b});function eR(){return(window.innerWidth-26)/window.innerWidth}function eA(e,t){var n;let r=e,o=null==(n=window.getSelection())?void 0:n.toString(),i=ev.current?el(ev.current,E):null,a=new Date;if("SELECT"===r.tagName||r.hasAttribute("data-vaul-no-drag")||r.closest("[data-vaul-no-drag]"))return!1;if("right"===E||"left"===E)return!0;if(X.current&&a.getTime()-X.current.getTime()<500)return!1;if(null!==i&&("bottom"===E?i>0:i<0))return!0;if(o&&o.length>0)return!1;if(J.current&&a.getTime()-J.current.getTime()<c&&0===i||t)return J.current=a,!1;for(;r;){if(r.scrollHeight>r.clientHeight){if(0!==r.scrollTop)return J.current=new Date,!1;if("dialog"===r.getAttribute("role"))break}r=r.parentNode}return!0}function ez(e){$&&ev.current&&(ev.current.classList.remove(ec),eo.current=!1,I(!1),U.current=new Date),null==x||x(),e||z(!1),setTimeout(()=>{s&&eC(s[0])},500)}function eD(){if(!ev.current)return;let e=document.querySelector("[data-vaul-drawer-wrapper]"),t=el(ev.current,E);ea(ev.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${ed.join(",")})`}),ea(H.current,{transition:`opacity 0.5s cubic-bezier(${ed.join(",")})`,opacity:"1"}),l&&t&&t>0&&A&&ea(e,{borderRadius:"8px",overflow:"hidden",...es(E)?{transform:`scale(${eR()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${eR()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${ed.join(",")})`},!0)}return o.default.useEffect(()=>{window.requestAnimationFrame(()=>{em.current=!0})},[]),o.default.useEffect(()=>{var e;function t(){if(ev.current&&j&&(er(document.activeElement)||ep.current)){var e;let t=(null==(e=window.visualViewport)?void 0:e.height)||0,n=window.innerHeight,r=n-t,o=ev.current.getBoundingClientRect().height||0;eb.current||(eb.current=o);let i=ev.current.getBoundingClientRect().top;if(Math.abs(ey.current-r)>60&&(ep.current=!ep.current),s&&s.length>0&&ej&&e_&&(r+=ej[e_]||0),ey.current=r,o>t||ep.current){let e=ev.current.getBoundingClientRect().height,a=e;e>t&&(a=t-(o>.8*n?i:26)),y?ev.current.style.height=`${e-Math.max(r,0)}px`:ev.current.style.height=`${Math.max(a,t-i)}px`}else{let e;e=navigator.userAgent,"u">typeof window&&(/Firefox/.test(e)&&/Mobile/.test(e)||/FxiOS/.test(e))||(ev.current.style.height=`${eb.current}px`)}s&&s.length>0&&!ep.current?ev.current.style.bottom="0px":ev.current.style.bottom=`${Math.max(r,0)}px`}}return null==(e=window.visualViewport)||e.addEventListener("resize",t),()=>{var e;return null==(e=window.visualViewport)?void 0:e.removeEventListener("resize",t)}},[e_,s,ej]),o.default.useEffect(()=>(A&&(ea(document.documentElement,{scrollBehavior:"auto"}),X.current=new Date),()=>{!function(e,t){if(!e||!(e instanceof HTMLElement))return;let n=ei.get(e);n&&(e.style[t]=n[t])}(document.documentElement,"scrollBehavior")}),[A]),o.default.useEffect(()=>{v||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[v]),o.default.createElement(F.Root,{defaultOpen:k,onOpenChange:e=>{(h||e)&&(e?T(!0):ez(!0),z(e))},open:A},o.default.createElement(V.Provider,{value:{activeSnapPoint:ek,snapPoints:s,setActiveSnapPoint:eC,drawerRef:ev,overlayRef:H,onOpenChange:n,onPress:function(e){var t,n;!h&&!s||(!ev.current||ev.current.contains(e.target))&&(ex.current=(null==(t=ev.current)?void 0:t.getBoundingClientRect().height)||0,ew.current=(null==(n=ev.current)?void 0:n.getBoundingClientRect().width)||0,I(!0),q.current=new Date,W()&&window.addEventListener("touchend",()=>eo.current=!1,{once:!0}),e.target.setPointerCapture(e.pointerId),eh.current=es(E)?e.pageY:e.pageX)},onRelease:function(e){var t,n;if(!$||!ev.current)return;ev.current.classList.remove(ec),eo.current=!1,I(!1),U.current=new Date;let r=el(ev.current,E);if(!e||!eA(e.target,!1)||!r||Number.isNaN(r)||null===q.current)return;let o=U.current.getTime()-q.current.getTime(),i=eh.current-(es(E)?e.pageY:e.pageX),l=Math.abs(i)/o;if(l>.05&&(B(!0),setTimeout(()=>{B(!1)},200)),s){eN({draggedDistance:i*("bottom"===E||"right"===E?1:-1),closeDrawer:ez,velocity:l,dismissible:h}),null==a||a(e,!0);return}if("bottom"===E||"right"===E?i>0:i<0){eD(),null==a||a(e,!0);return}if(l>.4){ez(),null==a||a(e,!1);return}let u=Math.min(null!=(t=ev.current.getBoundingClientRect().height)?t:0,window.innerHeight),c=Math.min(null!=(n=ev.current.getBoundingClientRect().width)?n:0,window.innerWidth);if(Math.abs(r)>=("left"===E||"right"===E?c:u)*d){ez(),null==a||a(e,!1);return}null==a||a(e,!0),eD()},onDrag:function(e){if(ev.current&&$){let t="bottom"===E||"right"===E?1:-1,n=(eh.current-(es(E)?e.pageY:e.pageX))*t,r=n>0,o=s&&!h&&!r;if(o&&0===e_)return;let a=Math.abs(n),u=document.querySelector("[data-vaul-drawer-wrapper]"),d=a/("bottom"===E||"top"===E?ex.current:ew.current),c=eP(a,r);if(null!==c&&(d=c),o&&d>=1||!eo.current&&!eA(e.target,r))return;if(ev.current.classList.add(ec),eo.current=!0,ea(ev.current,{transition:"none"}),ea(H.current,{transition:"none"}),s&&eS({draggedDistance:n}),r&&!s){let e=Math.min(-(8*(Math.log(n+1)-2)*1),0)*t;ea(ev.current,{transform:es(E)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`});return}let f=1-d;if((eM||p&&e_===p-1)&&(null==i||i(e,d),ea(H.current,{opacity:`${f}`,transition:"none"},!0)),u&&H.current&&l){let e=Math.min(eR()+d*(1-eR()),1),t=8-8*d,n=Math.max(0,14-14*d);ea(u,{borderRadius:`${t}px`,transform:es(E)?`scale(${e}) translate3d(0, ${n}px, 0)`:`scale(${e}) translate3d(${n}px, 0, 0)`,transition:"none"},!0)}if(!s){let e=a*t;ea(ev.current,{transform:es(E)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})}}},dismissible:h,shouldAnimate:em,handleOnly:f,isOpen:A,isDragging:$,shouldFade:eM,closeDrawer:ez,onNestedDrag:function(e,t){if(t<0)return;let n=(window.innerWidth-16)/window.innerWidth,r=n+t*(1-n),o=-16+16*t;ea(ev.current,{transform:es(E)?`scale(${r}) translate3d(0, ${o}px, 0)`:`scale(${r}) translate3d(${o}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(e){let t=e?(window.innerWidth-16)/window.innerWidth:1,n=e?-16:0;eu.current&&window.clearTimeout(eu.current),ea(ev.current,{transition:`transform 0.5s cubic-bezier(${ed.join(",")})`,transform:es(E)?`scale(${t}) translate3d(0, ${n}px, 0)`:`scale(${t}) translate3d(${n}px, 0, 0)`}),!e&&ev.current&&(eu.current=setTimeout(()=>{let e=el(ev.current,E);ea(ev.current,{transition:"none",transform:es(E)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})},500))},onNestedRelease:function(e,t){let n=es(E)?window.innerHeight:window.innerWidth,r=t?(n-16)/n:1,o=t?-16:0;t&&ea(ev.current,{transition:`transform 0.5s cubic-bezier(${ed.join(",")})`,transform:es(E)?`scale(${r}) translate3d(0, ${o}px, 0)`:`scale(${r}) translate3d(${o}px, 0, 0)`})},keyboardIsOpen:ep,modal:v,snapPointsOffset:ej,activeSnapPointIndex:e_,direction:E,shouldScaleBackground:l,setBackgroundColorOnScale:u,noBodyStyles:b,container:M,autoFocus:P}},r))}let ey=o.default.forwardRef(function({...e},t){let{overlayRef:n,snapPoints:r,onRelease:i,shouldFade:a,isOpen:s,modal:l,shouldAnimate:u}=X(),d=eo(t,n),c=r&&r.length>0;if(!l)return null;let h=o.default.useCallback(e=>i(e),[i]);return o.default.createElement(F.Overlay,{onMouseUp:h,ref:d,"data-vaul-overlay":"","data-vaul-snap-points":s&&c?"true":"false","data-vaul-snap-points-overlay":s&&a?"true":"false","data-vaul-animate":(null==u?void 0:u.current)?"true":"false",...e})});ey.displayName="Drawer.Overlay";let ev=o.default.forwardRef(function({onPointerDownOutside:e,style:t,onOpenAutoFocus:n,...r},i){let{drawerRef:a,onPress:s,onRelease:l,onDrag:u,keyboardIsOpen:d,snapPointsOffset:c,activeSnapPointIndex:h,modal:f,isOpen:p,direction:g,snapPoints:m,container:y,handleOnly:v,shouldAnimate:x,autoFocus:w}=X(),[b,E]=o.default.useState(!1),k=eo(i,a),_=o.default.useRef(null),C=o.default.useRef(null),N=o.default.useRef(!1),j=m&&m.length>0;function S(e){_.current=null,N.current=!1,l(e)}return!function(){let{direction:e,isOpen:t,shouldScaleBackground:n,setBackgroundColorOnScale:r,noBodyStyles:i}=X(),a=o.default.useRef(null),s=(0,o.useMemo)(()=>document.body.style.backgroundColor,[]);function l(){return(window.innerWidth-26)/window.innerWidth}o.default.useEffect(()=>{if(t&&n){a.current&&clearTimeout(a.current);let t=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!t)return;!function(...e){}(r&&!i?eu(document.body,{background:"black"}):ep,eu(t,{transformOrigin:es(e)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${ed.join(",")})`}));let n=eu(t,{borderRadius:"8px",overflow:"hidden",...es(e)?{transform:`scale(${l()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${l()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{n(),a.current=window.setTimeout(()=>{s?document.body.style.background=s:document.body.style.removeProperty("background")},500)}}},[t,n,s])}(),o.default.useEffect(()=>{j&&window.requestAnimationFrame(()=>{E(!0)})},[]),o.default.createElement(F.Content,{"data-vaul-drawer-direction":g,"data-vaul-drawer":"","data-vaul-delayed-snap-points":b?"true":"false","data-vaul-snap-points":p&&j?"true":"false","data-vaul-custom-container":y?"true":"false","data-vaul-animate":(null==x?void 0:x.current)?"true":"false",...r,ref:k,style:c&&c.length>0?{"--snap-point-height":`${c[null!=h?h:0]}px`,...t}:t,onPointerDown:e=>{v||(null==r.onPointerDown||r.onPointerDown.call(r,e),_.current={x:e.pageX,y:e.pageY},s(e))},onOpenAutoFocus:e=>{null==n||n(e),w||e.preventDefault()},onPointerDownOutside:t=>{(null==e||e(t),!f||t.defaultPrevented)?t.preventDefault():d.current&&(d.current=!1)},onFocusOutside:e=>{if(!f)return void e.preventDefault()},onPointerMove:e=>{if(C.current=e,v||(null==r.onPointerMove||r.onPointerMove.call(r,e),!_.current))return;let t=e.pageY-_.current.y,n=e.pageX-_.current.x,o="touch"===e.pointerType?10:2;((e,t,n=0)=>{if(N.current)return!0;let r=Math.abs(e.y),o=Math.abs(e.x),i=o>r,a=["bottom","right"].includes(t)?1:-1;if("left"===t||"right"===t){if(!(e.x*a<0)&&o>=0&&o<=n)return i}else if(!(e.y*a<0)&&r>=0&&r<=n)return!i;return N.current=!0,!0})({x:n,y:t},g,o)?u(e):(Math.abs(n)>o||Math.abs(t)>o)&&(_.current=null)},onPointerUp:e=>{null==r.onPointerUp||r.onPointerUp.call(r,e),_.current=null,N.current=!1,l(e)},onPointerOut:e=>{null==r.onPointerOut||r.onPointerOut.call(r,e),S(C.current)},onContextMenu:e=>{null==r.onContextMenu||r.onContextMenu.call(r,e),C.current&&S(C.current)}})});ev.displayName="Drawer.Content";let ex=o.default.forwardRef(function({preventCycle:e=!1,children:t,...n},r){let{closeDrawer:i,isDragging:a,snapPoints:s,activeSnapPoint:l,setActiveSnapPoint:u,dismissible:d,handleOnly:c,isOpen:h,onPress:f,onDrag:p}=X(),g=o.default.useRef(null),m=o.default.useRef(!1);function y(){g.current&&window.clearTimeout(g.current),m.current=!1}return o.default.createElement("div",{onClick:function(){m.current?y():window.setTimeout(()=>{!function(){if(a||e||m.current)return y();if(y(),!s||0===s.length){d||i();return}if(l===s[s.length-1]&&d)return i();let t=s.findIndex(e=>e===l);-1===t||u(s[t+1])}()},120)},onPointerCancel:y,onPointerDown:e=>{c&&f(e),g.current=window.setTimeout(()=>{m.current=!0},250)},onPointerMove:e=>{c&&p(e)},ref:r,"data-vaul-drawer-visible":h?"true":"false","data-vaul-handle":"","aria-hidden":"true",...n},o.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},t))});ex.displayName="Drawer.Handle";let ew={Root:em,NestedRoot:function({onDrag:e,onOpenChange:t,open:n,...r}){let{onNestedDrag:i,onNestedOpenChange:a,onNestedRelease:s}=X();if(!i)throw Error("Drawer.NestedRoot must be placed in another drawer");return o.default.createElement(em,{nested:!0,open:n,onClose:()=>{a(!1)},onDrag:(t,n)=>{i(t,n),null==e||e(t,n)},onOpenChange:e=>{e&&a(e),null==t||t(e)},onRelease:s,...r})},Content:ev,Overlay:ey,Trigger:F.Trigger,Portal:function(e){let t=X(),{container:n=t.container,...r}=e;return o.default.createElement(F.Portal,{container:n,...r})},Handle:ex,Close:F.Close,Title:F.Title,Description:F.Description};function eb({...e}){return(0,n.jsx)(ew.Root,{"data-slot":"drawer",...e})}function eE({...e}){return(0,n.jsx)(ew.Portal,{"data-slot":"drawer-portal",...e})}function ek({className:e,children:t,direction:r="bottom",showCloseButton:o=!0,...i}){return(0,n.jsx)(eE,{children:(0,n.jsxs)(ew.Content,{"data-slot":"drawer-content",className:(0,s.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===r&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===r&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===r&&"inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===r&&"inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",e),style:{"--initial-transform":"right"===r?"calc(100% + 8px)":"left"===r||"top"===r?"calc(-100% - 8px)":"calc(100% + 8px)",...i.style??{}},...i,children:[t,o?(0,n.jsxs)(ew.Close,{className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,n.jsx)(D.XIcon,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function e_({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-header",className:(0,s.cn)("flex flex-col gap-1.5 p-4",e),...t})}function eC({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-footer",className:(0,s.cn)("mt-auto flex flex-col gap-2 p-4",e),...t})}function eN({className:e,...t}){return(0,n.jsx)(ew.Title,{"data-slot":"drawer-title",className:(0,s.cn)("text-foreground font-semibold",e),...t})}function ej({className:e,...t}){return(0,n.jsx)(ew.Description,{"data-slot":"drawer-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...t})}var eS=e.i(98127);function eM({className:e,...t}){return(0,n.jsx)("textarea",{"data-slot":"textarea",className:(0,s.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...t})}var eP=e.i(87620),eO=o.forwardRef((e,t)=>(0,n.jsx)(eP.Primitive.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));eO.displayName="Label",e.s(["Label",()=>eO,"Root",()=>eO],27572);var eR=e.i(27572),eR=eR,eA=e.i(94237);let ez=(0,eA.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),eD=o.forwardRef(({className:e,...t},r)=>(0,n.jsx)(eR.Root,{ref:r,className:(0,s.cn)(ez(),e),...t}));eD.displayName=eR.Root.displayName;let eT=(0,d.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),e$=(0,d.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var eI=e.i(5978),eL=e.i(22528),eB=e.i(91967),eH=e.i(36589),eF=e.i(77624),eV=e.i(85995),eX="Checkbox",[eY,eW]=(0,eL.createContextScope)(eX),[eq,eZ]=eY(eX);function eG(e){let{__scopeCheckbox:t,checked:r,children:i,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:c,value:h="on",internal_do_not_use_render:f}=e,[p,g]=(0,eH.useControllableState)({prop:r,defaultProp:a??!1,onChange:d,caller:eX}),[m,y]=o.useState(null),[v,x]=o.useState(null),w=o.useRef(!1),b=!m||!!l||!!m.closest("form"),E={checked:p,disabled:s,setChecked:g,control:m,setControl:y,name:u,form:l,value:h,hasConsumerStoppedPropagationRef:w,required:c,defaultChecked:!e5(a)&&a,isFormControl:b,bubbleInput:v,setBubbleInput:x};return(0,n.jsx)(eq,{scope:t,...E,children:"function"==typeof f?f(E):i})}var eK="CheckboxTrigger",eU=o.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:r,...i},a)=>{let{control:s,value:l,disabled:u,checked:d,required:c,setControl:h,setChecked:f,hasConsumerStoppedPropagationRef:p,isFormControl:g,bubbleInput:m}=eZ(eK,e),y=(0,eI.useComposedRefs)(a,h),v=o.useRef(d);return o.useEffect(()=>{let e=s?.form;if(e){let t=()=>f(v.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[s,f]),(0,n.jsx)(eP.Primitive.button,{type:"button",role:"checkbox","aria-checked":e5(d)?"mixed":d,"aria-required":c,"data-state":e3(d),"data-disabled":u?"":void 0,disabled:u,value:l,...i,ref:y,onKeyDown:(0,eB.composeEventHandlers)(t,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,eB.composeEventHandlers)(r,e=>{f(e=>!!e5(e)||!e),m&&g&&(p.current=e.isPropagationStopped(),p.current||e.stopPropagation())})})});eU.displayName=eK;var eQ=o.forwardRef((e,t)=>{let{__scopeCheckbox:r,name:o,checked:i,defaultChecked:a,required:s,disabled:l,value:u,onCheckedChange:d,form:c,...h}=e;return(0,n.jsx)(eG,{__scopeCheckbox:r,checked:i,defaultChecked:a,disabled:l,required:s,onCheckedChange:d,name:o,form:c,value:u,internal_do_not_use_render:({isFormControl:e})=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eU,{...h,ref:t,__scopeCheckbox:r}),e&&(0,n.jsx)(e2,{__scopeCheckbox:r})]})})});eQ.displayName=eX;var eJ="CheckboxIndicator",e0=o.forwardRef((e,t)=>{let{__scopeCheckbox:r,forceMount:o,...i}=e,a=eZ(eJ,r);return(0,n.jsx)(eV.Presence,{present:o||e5(a.checked)||!0===a.checked,children:(0,n.jsx)(eP.Primitive.span,{"data-state":e3(a.checked),"data-disabled":a.disabled?"":void 0,...i,ref:t,style:{pointerEvents:"none",...e.style}})})});e0.displayName=eJ;var e1="CheckboxBubbleInput",e2=o.forwardRef(({__scopeCheckbox:e,...t},r)=>{let i,{control:a,hasConsumerStoppedPropagationRef:s,checked:l,defaultChecked:u,required:d,disabled:c,name:h,value:f,form:p,bubbleInput:g,setBubbleInput:m}=eZ(e1,e),y=(0,eI.useComposedRefs)(r,m),v=(i=o.useRef({value:l,previous:l}),o.useMemo(()=>(i.current.value!==l&&(i.current.previous=i.current.value,i.current.value=l),i.current.previous),[l])),x=(0,eF.useSize)(a);o.useEffect(()=>{if(!g)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!s.current;if(v!==l&&e){let n=new Event("click",{bubbles:t});g.indeterminate=e5(l),e.call(g,!e5(l)&&l),g.dispatchEvent(n)}},[g,v,l,s]);let w=o.useRef(!e5(l)&&l);return(0,n.jsx)(eP.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:u??w.current,required:d,disabled:c,name:h,value:f,form:p,...t,tabIndex:-1,ref:y,style:{...t.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function e5(e){return"indeterminate"===e}function e3(e){return e5(e)?"indeterminate":e?"checked":"unchecked"}e2.displayName=e1,e.s(["Checkbox",()=>eQ,"CheckboxIndicator",()=>e0,"Indicator",()=>e0,"Root",()=>eQ,"createCheckboxScope",()=>eW,"unstable_BubbleInput",()=>e2,"unstable_CheckboxBubbleInput",()=>e2,"unstable_CheckboxProvider",()=>eG,"unstable_CheckboxTrigger",()=>eU,"unstable_Provider",()=>eG,"unstable_Trigger",()=>eU],57696);var e4=e.i(57696),e4=e4;function e6({className:e,...t}){return(0,n.jsx)(e4.Root,{"data-slot":"checkbox",className:(0,s.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:(0,n.jsx)(e4.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:"indeterminate"===t.checked?(0,n.jsx)(e$,{className:"size-3.5"}):(0,n.jsx)(eT,{className:"size-3.5"})})})}function e8({id:e,label:t,description:r,checked:o,onCheckedChange:i,disabled:a}){return(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[(0,n.jsx)(e6,{id:e,className:"mt-0.75",checked:o,onCheckedChange:e=>i(!0===e),disabled:a}),(0,n.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,n.jsx)(eD,{htmlFor:e,className:"cursor-pointer text-sm font-medium",children:t}),r?(0,n.jsx)(eD,{htmlFor:e,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:r}):null]})]})}function e7({label:e,description:t,parentAriaLabel:r,options:o,value:i,onValueChange:a,disabled:s}){let l=o.filter(e=>i[e.id]).length,u=l===o.length,d=l>0&&!u,c=`${e.toLowerCase().replace(/\s+/g,"-")}-group`;return(0,n.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[(0,n.jsx)(e6,{id:c,className:"mt-0.75",checked:d?"indeterminate":u,onCheckedChange:()=>{let e=l<o.length,t={};for(let n of o)t[n.id]=e;a(t)},disabled:s,"aria-label":r??`${e} select all`}),(0,n.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,n.jsx)(eD,{htmlFor:c,className:"cursor-pointer text-sm font-medium",children:e}),t?(0,n.jsx)(eD,{htmlFor:c,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:t}):null]})]}),(0,n.jsx)("div",{className:"flex flex-col gap-3 pl-6",children:o.map(e=>(0,n.jsx)(e8,{id:e.id,label:e.label,description:e.description,checked:i[e.id]??!1,onCheckedChange:t=>{var n;return n=e.id,void a({...i,[n]:t})},disabled:s},e.id))})]})}var e9=e.i(25235),te=e.i(81846);async function tt(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error??"Failed to open file dialog")}return(await e.json()).files}let tn=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],tr={allowPrd:!1,allowPlan:!1,allowMerge:!1};function to({open:e,onClose:t,onSubmit:r,repositoryPath:i,isSubmitting:s=!1}){let[l,u]=(0,o.useState)(""),[d,c]=(0,o.useState)(""),[h,f]=(0,o.useState)([]),[p,g]=(0,o.useState)({...tr}),m=(0,o.useCallback)(()=>{u(""),c(""),f([]),g({...tr})},[]),y=(0,o.useCallback)(e=>{e||(m(),t())},[t,m]),v=(0,o.useCallback)(e=>{if(e.preventDefault(),!l.trim())return;let t=d.trim()||void 0;r({name:l.trim(),description:t,attachments:h,repositoryPath:i,approvalGates:{allowPrd:p.allowPrd??!1,allowPlan:p.allowPlan??!1,allowMerge:p.allowMerge??!1}})},[l,d,h,p,i,r]),x=(0,o.useCallback)(async()=>{try{let e=await tt();e&&f(t=>[...t,...e])}catch{}},[]),w=(0,o.useCallback)(e=>{f(t=>t.filter(t=>t.path!==e))},[]);return(0,n.jsx)(eb,{direction:"right",modal:!1,open:e,onOpenChange:y,children:(0,n.jsxs)(ek,{direction:"right",className:"w-96",showCloseButton:!1,children:[(0,n.jsx)("button",{type:"button","aria-label":"Close",onClick:t,className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden",children:(0,n.jsx)(D.XIcon,{className:"size-4"})}),(0,n.jsxs)(e_,{children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,n.jsx)(eN,{children:"NEW FEATURE"})]}),(0,n.jsx)(ej,{asChild:!0,children:(0,n.jsx)("div",{children:(0,n.jsx)(te.Badge,{variant:"secondary",children:"Creating..."})})})]}),(0,n.jsx)(e9.Separator,{}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto p-4",children:(0,n.jsxs)("form",{id:"create-feature-form",onSubmit:v,className:"flex flex-col gap-4",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(eD,{htmlFor:"feature-name",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"FEATURE NAME"}),(0,n.jsx)(eS.Input,{id:"feature-name",placeholder:"e.g. GitHub OAuth Login",value:l,onChange:e=>u(e.target.value),required:!0,disabled:s})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(eD,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIPTION"}),(0,n.jsx)(eM,{id:"feature-description",placeholder:"Describe what this feature does...",value:d,onChange:e=>c(e.target.value),rows:4,disabled:s})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(eD,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"APPROVE"}),(0,n.jsx)(e7,{label:"Autonomous Mode",description:"YOLO!",parentAriaLabel:"Auto approve all",options:tn,value:p,onValueChange:g,disabled:s})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)(eD,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",h.length>0&&(0,n.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",h.length,")"]})]}),(0,n.jsxs)(a.Button,{type:"button",variant:"outline",size:"xs",onClick:x,disabled:s,children:[(0,n.jsx)(T.default,{className:"size-3"}),"Add Files"]})]}),h.length>0&&(0,n.jsx)("div",{className:"flex flex-col gap-2",children:h.map(e=>(0,n.jsx)(ti,{file:e,onRemove:()=>w(e.path),disabled:s},e.path))})]})]})}),(0,n.jsx)(e9.Separator,{}),(0,n.jsxs)(eC,{className:"flex-row justify-end gap-2",children:[(0,n.jsx)(a.Button,{variant:"outline",onClick:t,disabled:s,children:"Cancel"}),(0,n.jsx)(a.Button,{type:"submit",form:"create-feature-form",disabled:!l.trim()||s,children:s?"Creating...":"+ Create Feature"})]})]})})}function ti({file:e,onRemove:t,disabled:r}){var o,i,l;let u,d=(u=(o=e.name).lastIndexOf("."))>=0?o.slice(u).toLowerCase():"",c=(i=d,ta.has(i)?L:".pdf"===i?I:ts.has(i)?B:$),h=".pdf"===(l=d)?"bg-red-50 text-red-600":ta.has(l)?"bg-blue-50 text-blue-600":ts.has(l)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,n.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,n.jsx)("div",{className:(0,s.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",h),children:(0,n.jsx)(c,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,n.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,n.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,n.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,n.jsx)(a.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:t,disabled:r,"aria-label":`Remove ${e.name}`,children:(0,n.jsx)(H,{className:"h-3 w-3"})})]})}let ta=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),ts=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]),tl=(0,eA.cva)("inline-block shrink-0",{variants:{size:{sm:"size-5",md:"size-8",lg:"size-12"}},defaultVariants:{size:"md"}}),tu=[{r:9,spline:"0.12 0 0.04 1",opacity:1},{r:8.2,spline:"0.16 0 0.08 1",opacity:.95},{r:7.4,spline:"0.20 0 0.12 1",opacity:.9},{r:6.6,spline:"0.25 0 0.16 1",opacity:.84},{r:5.8,spline:"0.30 0 0.20 1",opacity:.76},{r:5,spline:"0.36 0 0.25 1",opacity:.67},{r:4.2,spline:"0.42 0 0.31 1",opacity:.56},{r:3.4,spline:"0.48 0 0.37 1",opacity:.44},{r:2.6,spline:"0.55 0 0.44 1",opacity:.32},{r:1.8,spline:"0.62 0 0.52 1",opacity:.2},{r:1,spline:"0.70 0 0.60 1",opacity:.1}];function td({className:e,size:t="md",duration:r=5,...o}){return(0,n.jsxs)("svg",{"data-slot":"comet-spinner",role:"status","aria-label":"Loading",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",className:(0,s.cn)(tl({size:t}),e),...o,children:[(0,n.jsx)("defs",{children:(0,n.jsxs)("filter",{id:"comet-gooey",x:"-100%",y:"-100%",width:"300%",height:"300%",colorInterpolationFilters:"sRGB",children:[(0,n.jsx)("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"2.5"}),(0,n.jsx)("feColorMatrix",{mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 50 -30",result:"goo"})]})}),(0,n.jsxs)("g",{filter:"url(#comet-gooey)",children:[(0,n.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:`${r}s`,repeatCount:"indefinite"}),tu.map(e=>(0,n.jsxs)("g",{children:[(0,n.jsx)("animateTransform",{attributeName:"transform",type:"rotate",calcMode:"spline",values:"0 50 50;360 50 50",keyTimes:"0;1",keySplines:e.spline,dur:"1s",repeatCount:"indefinite"}),(0,n.jsx)("circle",{cx:"50",cy:"18",r:e.r,fill:"currentColor",opacity:e.opacity})]},e.r)),(0,n.jsxs)("circle",{cx:"50",cy:"50",r:"4",fill:"currentColor",opacity:"0.15",children:[(0,n.jsx)("animate",{attributeName:"r",values:"3;5;3",dur:"2s",repeatCount:"indefinite"}),(0,n.jsx)("animate",{attributeName:"opacity",values:"0.1;0.25;0.1",dur:"2s",repeatCount:"indefinite"})]})]})]})}var tc=e.i(86874),th="AlertDialog",[tf,tp]=(0,eL.createContextScope)(th,[F.createDialogScope]),tg=(0,F.createDialogScope)(),tm=e=>{let{__scopeAlertDialog:t,...r}=e,o=tg(t);return(0,n.jsx)(F.Root,{...o,...r,modal:!0})};tm.displayName=th;var ty=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...o}=e,i=tg(r);return(0,n.jsx)(F.Trigger,{...i,...o,ref:t})});ty.displayName="AlertDialogTrigger";var tv=e=>{let{__scopeAlertDialog:t,...r}=e,o=tg(t);return(0,n.jsx)(F.Portal,{...o,...r})};tv.displayName="AlertDialogPortal";var tx=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...o}=e,i=tg(r);return(0,n.jsx)(F.Overlay,{...i,...o,ref:t})});tx.displayName="AlertDialogOverlay";var tw="AlertDialogContent",[tb,tE]=tf(tw),tk=(0,tc.createSlottable)("AlertDialogContent"),t_=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,children:i,...a}=e,s=tg(r),l=o.useRef(null),u=(0,eI.useComposedRefs)(t,l),d=o.useRef(null);return(0,n.jsx)(F.WarningProvider,{contentName:tw,titleName:tC,docsSlug:"alert-dialog",children:(0,n.jsx)(tb,{scope:r,cancelRef:d,children:(0,n.jsxs)(F.Content,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:(0,eB.composeEventHandlers)(a.onOpenAutoFocus,e=>{e.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,n.jsx)(tk,{children:i}),(0,n.jsx)(tR,{contentRef:l})]})})})});t_.displayName=tw;var tC="AlertDialogTitle",tN=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...o}=e,i=tg(r);return(0,n.jsx)(F.Title,{...i,...o,ref:t})});tN.displayName=tC;var tj="AlertDialogDescription",tS=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...o}=e,i=tg(r);return(0,n.jsx)(F.Description,{...i,...o,ref:t})});tS.displayName=tj;var tM=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...o}=e,i=tg(r);return(0,n.jsx)(F.Close,{...i,...o,ref:t})});tM.displayName="AlertDialogAction";var tP="AlertDialogCancel",tO=o.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...o}=e,{cancelRef:i}=tE(tP,r),a=tg(r),s=(0,eI.useComposedRefs)(t,i);return(0,n.jsx)(F.Close,{...a,...o,ref:s})});tO.displayName=tP;var tR=({contentRef:e})=>{let t=`\`${tw}\` requires a description for the component to be accessible for screen reader users.
3
-
4
- You can add a description to the \`${tw}\` by passing a \`${tj}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
5
-
6
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${tw}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
7
-
8
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return o.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null};e.s(["Action",()=>tM,"AlertDialog",()=>tm,"AlertDialogAction",()=>tM,"AlertDialogCancel",()=>tO,"AlertDialogContent",()=>t_,"AlertDialogDescription",()=>tS,"AlertDialogOverlay",()=>tx,"AlertDialogPortal",()=>tv,"AlertDialogTitle",()=>tN,"AlertDialogTrigger",()=>ty,"Cancel",()=>tO,"Content",()=>t_,"Description",()=>tS,"Overlay",()=>tx,"Portal",()=>tv,"Root",()=>tm,"Title",()=>tN,"Trigger",()=>ty,"createAlertDialogScope",()=>tp],28883);var tA=e.i(28883),tA=tA;function tz({...e}){return(0,n.jsx)(tA.Root,{"data-slot":"alert-dialog",...e})}function tD({...e}){return(0,n.jsx)(tA.Trigger,{"data-slot":"alert-dialog-trigger",...e})}function tT({...e}){return(0,n.jsx)(tA.Portal,{"data-slot":"alert-dialog-portal",...e})}function t$({className:e,...t}){return(0,n.jsx)(tA.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function tI({className:e,size:t="default",...r}){return(0,n.jsxs)(tT,{children:[(0,n.jsx)(t$,{}),(0,n.jsx)(tA.Content,{"data-slot":"alert-dialog-content","data-size":t,className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",e),...r})]})}function tL({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,s.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...t})}function tB({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,s.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...t})}function tH({className:e,...t}){return(0,n.jsx)(tA.Title,{"data-slot":"alert-dialog-title",className:(0,s.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...t})}function tF({className:e,...t}){return(0,n.jsx)(tA.Description,{"data-slot":"alert-dialog-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...t})}function tV({className:e,variant:t="default",size:r="default",...o}){return(0,n.jsx)(a.Button,{variant:t,size:r,asChild:!0,children:(0,n.jsx)(tA.Action,{"data-slot":"alert-dialog-action",className:(0,s.cn)(e),...o})})}function tX({className:e,variant:t="outline",size:r="default",...o}){return(0,n.jsx)(a.Button,{variant:t,size:r,asChild:!0,children:(0,n.jsx)(tA.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,s.cn)(e),...o})})}function tY({selectedNode:e,onClose:t,onDelete:r,isDeleting:o=!1}){return(0,n.jsx)(eb,{direction:"right",modal:!1,open:null!==e,onOpenChange:e=>{e||t()},children:(0,n.jsx)(ek,{direction:"right",className:"w-96",showCloseButton:!1,children:e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button","aria-label":"Close",onClick:t,className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden",children:(0,n.jsx)(D.XIcon,{className:"size-4"})}),(0,n.jsxs)(e_,{"data-testid":"feature-drawer-header",children:[(0,n.jsx)(eN,{children:e.name}),(0,n.jsx)(ej,{children:e.featureId})]}),e.repositoryPath&&e.branch?(0,n.jsx)(tG,{repositoryPath:e.repositoryPath,branch:e.branch}):null,(0,n.jsx)(e9.Separator,{}),(0,n.jsxs)("div",{"data-testid":"feature-drawer-status",className:"flex flex-col gap-3 p-4",children:[(0,n.jsx)("div",{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:y[e.lifecycle]}),(0,n.jsx)(tW,{data:e}),e.progress>0?(0,n.jsxs)("div",{"data-testid":"feature-drawer-progress",className:"flex flex-col gap-1",children:[(0,n.jsxs)("div",{className:"text-muted-foreground flex items-center justify-between text-xs",children:[(0,n.jsx)("span",{children:"Progress"}),(0,n.jsxs)("span",{children:[e.progress,"%"]})]}),(0,n.jsx)("div",{className:"bg-muted h-2 w-full overflow-hidden rounded-full",children:(0,n.jsx)("div",{className:(0,s.cn)("h-full rounded-full transition-all",x[e.state].progressClass),style:{width:`${e.progress}%`}})})]}):null]}),(0,n.jsx)(e9.Separator,{}),(0,n.jsx)(tq,{data:e}),r?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e9.Separator,{}),(0,n.jsx)("div",{"data-testid":"feature-drawer-delete",className:"p-4",children:(0,n.jsxs)(tz,{children:[(0,n.jsx)(tD,{asChild:!0,children:(0,n.jsxs)(a.Button,{variant:"destructive",className:"w-full",disabled:o,children:[(0,n.jsx)(H,{className:"mr-2 h-4 w-4"}),"Delete feature"]})}),(0,n.jsxs)(tI,{children:[(0,n.jsxs)(tL,{children:[(0,n.jsx)(tH,{children:"Delete feature?"}),(0,n.jsxs)(tF,{children:["This will permanently delete ",(0,n.jsx)("strong",{children:e.name})," (",e.featureId,"). This action cannot be undone.","running"===e.state?(0,n.jsx)(n.Fragment,{children:" This feature has a running agent that will be stopped."}):null]})]}),(0,n.jsxs)(tB,{children:[(0,n.jsx)(tX,{disabled:o,children:"Cancel"}),(0,n.jsx)(tV,{variant:"destructive",disabled:o,onClick:()=>r(e.featureId),children:o?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Deleting…"]}):"Delete"})]})]})]})})]}):null]}):null})})}function tW({data:e}){let t=x[e.state],r=t.icon;return(0,n.jsxs)("div",{className:(0,s.cn)("flex items-center gap-2 rounded-full px-3 py-1.5 text-sm font-medium",t.badgeBgClass,t.badgeClass),children:["running"===e.state?(0,n.jsx)(td,{size:"sm",className:"shrink-0"}):(0,n.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:t.label})]})}function tq({data:e}){return e.description??e.agentType??e.runtime??e.blockedBy??e.errorMessage?(0,n.jsxs)("div",{"data-testid":"feature-drawer-details",className:"flex flex-col gap-3 p-4",children:[e.description?(0,n.jsx)(tZ,{label:"Description",value:e.description}):null,e.agentType?(0,n.jsx)(tZ,{label:"Agent",value:e.agentType}):null,e.runtime?(0,n.jsx)(tZ,{label:"Runtime",value:e.runtime}):null,e.blockedBy?(0,n.jsx)(tZ,{label:"Blocked by",value:e.blockedBy}):null,e.errorMessage?(0,n.jsx)(tZ,{label:"Error",value:e.errorMessage}):null]}):null}function tZ({label:e,value:t}){return(0,n.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,n.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:e}),(0,n.jsx)("span",{className:"text-sm",children:t})]})}function tG({repositoryPath:e,branch:t}){let{openInIde:r,openInShell:i,ideLoading:a,shellLoading:s,ideError:l,shellError:u}=function(e){let[t,n]=(0,o.useState)(!1),[r,i]=(0,o.useState)(!1),[a,s]=(0,o.useState)(null),[l,u]=(0,o.useState)(null),d=(0,o.useRef)(null),c=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=d.current,t=c.current;return()=>{e&&clearTimeout(e),t&&clearTimeout(t)}},[]);let h=(0,o.useCallback)(async(t,n,r,o,i)=>{if(e&&!i){o.current&&clearTimeout(o.current),n(!0),r(null);try{let n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositoryPath:e.repositoryPath,branch:e.branch})});if(!n.ok){let e=(await n.json()).error??"An unexpected error occurred";r(e),o.current=setTimeout(()=>r(null),5e3)}}catch(e){r(e instanceof Error?e.message:"An unexpected error occurred"),o.current=setTimeout(()=>r(null),5e3)}finally{n(!1)}}},[e]);return{openInIde:(0,o.useCallback)(()=>h("/api/ide/open",n,s,d,t),[h,t]),openInShell:(0,o.useCallback)(()=>h("/api/shell/open",i,u,c,r),[h,r]),ideLoading:t,shellLoading:r,ideError:a,shellError:l}}({repositoryPath:e,branch:t});return(0,n.jsxs)("div",{className:"flex gap-2 px-4 pb-3",children:[(0,n.jsx)(M,{label:"Open in IDE",onClick:r,loading:a,error:!!l,icon:j}),(0,n.jsx)(M,{label:"Open in Shell",onClick:i,loading:s,error:!!u,icon:S})]})}e.i(8356),e.i(40327),e.i(78788),e.i(92233),e.i(85462),e.i(90491),e.i(72028),e.i(53777);let tK=(0,d.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),tU=(0,d.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),tQ=["cd ~/my-repo",'shep feat new "create modern, sleek dashboards"'];function tJ({onRepositorySelect:e,className:t}){let[r,a]=(0,o.useState)(!1),[l,u]=(0,o.useState)(!1);async function d(){if(!l){u(!0);try{let t=await R();t&&e?.(t)}finally{u(!1)}}}let c=(0,o.useCallback)(async()=>{await navigator.clipboard.writeText(tQ.join("\n")),a(!0),setTimeout(()=>a(!1),2e3)},[]);return(0,n.jsxs)("div",{"data-testid":"control-center-empty-state",className:(0,s.cn)("relative h-full w-full",t),children:[(0,n.jsx)("div",{className:"absolute inset-0 [background-image:radial-gradient(circle,_var(--color-border)_1px,_transparent_1px)] [background-size:24px_24px]"}),(0,n.jsxs)("div",{className:"absolute top-8 left-8 z-10",children:[(0,n.jsx)("h1",{className:"text-4xl font-bold tracking-tight",children:"Features"}),(0,n.jsx)("p",{className:"text-muted-foreground text-3xl font-light",children:"Control Center"})]}),(0,n.jsx)("div",{className:"relative z-10 flex h-full items-center justify-center",children:(0,n.jsxs)("div",{className:"flex max-w-lg flex-col items-center gap-6",children:[(0,n.jsxs)("div",{className:"text-muted-foreground flex items-center gap-2",children:[(0,n.jsx)(N,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"text-xs font-semibold tracking-widest uppercase",children:"Repositories"})]}),(0,n.jsxs)("button",{type:"button","data-testid":"empty-state-add-repository",onClick:d,disabled:l,className:"border-muted-foreground/30 hover:border-primary hover:text-primary flex cursor-pointer items-center gap-3 rounded-lg border-2 border-dashed px-8 py-4 transition-colors disabled:cursor-wait disabled:opacity-60",children:[l?(0,n.jsx)(h.Loader2,{className:"h-5 w-5 animate-spin"}):(0,n.jsx)(i.Plus,{className:"h-5 w-5"}),(0,n.jsx)("span",{className:"text-sm font-medium",children:l?"Opening...":"Add Repository"})]}),(0,n.jsxs)("div",{className:"text-muted-foreground flex items-center gap-3",children:[(0,n.jsx)("div",{className:"bg-border h-px w-16"}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)(tK,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{className:"text-xs font-semibold tracking-widest uppercase",children:"Or start from the command line"})]}),(0,n.jsx)("div",{className:"bg-border h-px w-16"})]}),(0,n.jsxs)("div",{"data-testid":"cli-code-block",className:"relative w-full rounded-lg bg-zinc-900 px-5 py-4 font-mono text-sm text-zinc-100",children:[(0,n.jsx)("button",{type:"button","data-testid":"cli-code-block-copy",onClick:c,className:"absolute top-3 right-3 cursor-pointer rounded p-1.5 text-zinc-400 transition-colors hover:bg-zinc-800 hover:text-zinc-200","aria-label":"Copy commands",children:r?(0,n.jsx)(eT,{className:"h-4 w-4"}):(0,n.jsx)(tU,{className:"h-4 w-4"})}),(0,n.jsx)("div",{className:"space-y-1",children:tQ.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-zinc-500 select-none",children:"$ "}),(0,n.jsx)("span",{children:e})]},e))})]}),(0,n.jsx)("p",{className:"text-muted-foreground text-sm",children:"Feature will appear on canvas once created"})]})})]})}var t0=e.i(17840);function t1({initialNodes:e,initialEdges:t}){let{nodes:r,edges:i,selectedNode:a,isCreateDrawerOpen:s,isDeleting:l,pendingRepositoryPath:u,onNodesChange:d,handleConnect:c,handleAddFeature:h,handleAddFeatureToRepo:f,handleAddFeatureToFeature:p,handleAddRepository:g,handleNodeClick:m,clearSelection:y,handleCreateFeatureSubmit:v,handleDeleteFeature:x,closeCreateDrawer:w}=(0,t0.useControlCenterState)(e,t);return(0,o.useEffect)(()=>{let e=()=>h();return window.addEventListener("shep:open-create-drawer",e),()=>window.removeEventListener("shep:open-create-drawer",e)},[h]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(z,{nodes:r,edges:i,onNodesChange:d,onConnect:c,onAddFeature:h,onNodeAction:p,onNodeClick:m,onPaneClick:y,onRepositoryAdd:f,onRepositorySelect:g,emptyState:(0,n.jsx)(tJ,{onRepositorySelect:g})}),(0,n.jsx)(tY,{selectedNode:a,onClose:y,onDelete:x,isDeleting:l}),(0,n.jsx)(to,{open:s,onClose:w,onSubmit:v,repositoryPath:u})]})}function t2({initialNodes:e,initialEdges:t}){return(0,n.jsx)("div",{"data-testid":"control-center",className:"h-full w-full",children:(0,n.jsx)(r.ReactFlowProvider,{children:(0,n.jsx)(t1,{initialNodes:e,initialEdges:t})})})}e.s(["ControlCenter",()=>t2],48246)}]);