@astrale-os/cli 1.0.0-beta.32 → 1.0.0-beta.43
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.
- package/CHANGELOG.md +928 -0
- package/README.md +53 -43
- package/THIRD-PARTY-NOTICES.md +37 -1
- package/dist/astrale.js +349631 -83669
- package/dist/public/connect-core.js +16 -47
- package/dist/public/keys/index.js +1 -1
- package/dist/types/admin/contract.d.ts +11 -0
- package/dist/types/admin/graph/index.d.ts +1 -0
- package/dist/types/admin/graph/nodes.d.ts +12 -0
- package/dist/types/admin/instance/client.d.ts +2 -0
- package/dist/types/connection/lifetime.d.ts +1 -1
- package/dist/types/errors.d.ts +3 -0
- package/dist/types/lib/proc.d.ts +1 -0
- package/dist/types/lib/update.d.ts +15 -7
- package/package.json +8 -6
- package/studio/client/dist/assets/index-5C1uT6ML.css +2 -0
- package/studio/client/dist/assets/index-C4kNlvwF.js +80 -0
- package/studio/client/dist/assets/schema-studio-BR9d0faB.js +8 -0
- package/studio/client/dist/index.html +13 -2
- package/studio/package.json +2 -1
- package/studio/server/agent/ask.test.ts +7 -1
- package/studio/server/agent/bridge/grant.ts +15 -3
- package/studio/server/agent/prompts/system.test.ts +5 -0
- package/studio/server/agent/prompts/system.ts +19 -4
- package/studio/server/agent/routes.test.ts +39 -1
- package/studio/server/agent/routes.ts +3 -0
- package/studio/server/agent/run/coordinator.test.ts +7 -1
- package/studio/server/agent/run/preparation.ts +1 -0
- package/studio/server/agent/run/transcript.test.ts +47 -2
- package/studio/server/agent/run/transcript.ts +32 -3
- package/studio/server/api/documents.test.ts +31 -0
- package/studio/server/api/documents.ts +35 -1
- package/studio/server/api-agent-loadout.test.ts +7 -1
- package/studio/server/api.test.ts +7 -1
- package/studio/server/cache.ts +4 -4
- package/studio/server/detect.ts +9 -12
- package/studio/server/domain.test.ts +83 -3
- package/studio/server/domain.ts +205 -27
- package/studio/server/handoff/service.ts +1 -1
- package/studio/server/index.ts +5 -8
- package/studio/server/introspect/extractor.ts +111 -17
- package/studio/server/introspect/overlay-tsmorph.test.ts +9 -9
- package/studio/server/introspect/overlay.ts +1 -1
- package/studio/server/introspect/runtime.ts +9 -1
- package/studio/server/introspect/source-overlay/spans.ts +2 -5
- package/studio/server/lifecycle.ts +1 -1
- package/studio/server/state/baseline.test.ts +14 -0
- package/studio/server/state/baseline.ts +16 -2
- package/studio/server/watch.test.ts +2 -1
- package/studio/server/watch.ts +5 -2
- package/studio/server/workspace/create.ts +9 -8
- package/studio/server/workspace-state.ts +4 -6
- package/studio/server/workspace-watch.ts +33 -22
- package/studio/shared/contracts/agent.ts +3 -0
- package/viewer/dist/main.js +12 -12
- package/src/__tests__/fixtures/publication.ts +0 -20
- package/src/admin/.spec/api.d.ts +0 -3
- package/src/admin/.spec/architecture.md +0 -22
- package/src/admin/.spec/icon.svg +0 -3
- package/src/admin/.spec/layout.ts +0 -6
- package/src/admin/__tests__/fixture.ts +0 -25
- package/src/admin/catalog/.spec/api.d.ts +0 -63
- package/src/admin/catalog/.spec/architecture.md +0 -7
- package/src/admin/catalog/.spec/icon.svg +0 -3
- package/src/admin/catalog/.spec/layout.ts +0 -6
- package/src/admin/catalog/__tests__/client.test.ts +0 -245
- package/src/admin/catalog/client.ts +0 -195
- package/src/admin/catalog/index.ts +0 -13
- package/src/admin/catalog/model.ts +0 -41
- package/src/admin/catalog/tsconfig.json +0 -8
- package/src/admin/contract.ts +0 -47
- package/src/admin/graph/.spec/api.d.ts +0 -22
- package/src/admin/graph/.spec/architecture.md +0 -5
- package/src/admin/graph/.spec/icon.svg +0 -3
- package/src/admin/graph/.spec/layout.ts +0 -3
- package/src/admin/graph/index.ts +0 -6
- package/src/admin/graph/nodes.ts +0 -56
- package/src/admin/index.ts +0 -2
- package/src/admin/instance/.spec/api.d.ts +0 -62
- package/src/admin/instance/.spec/architecture.md +0 -10
- package/src/admin/instance/.spec/icon.svg +0 -3
- package/src/admin/instance/.spec/layout.ts +0 -6
- package/src/admin/instance/__tests__/client.test.ts +0 -273
- package/src/admin/instance/client.ts +0 -191
- package/src/admin/instance/index.ts +0 -15
- package/src/admin/instance/model.ts +0 -59
- package/src/admin/instance/tsconfig.json +0 -8
- package/src/commands/__tests__/admin-instance.test.ts +0 -91
- package/src/commands/__tests__/auth-login.test.ts +0 -231
- package/src/commands/__tests__/auth-token.test.ts +0 -223
- package/src/commands/__tests__/call-describe.test.ts +0 -80
- package/src/commands/__tests__/call.test.ts +0 -63
- package/src/commands/__tests__/domain-install-operation.test.ts +0 -145
- package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
- package/src/commands/__tests__/domain-list.test.ts +0 -133
- package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
- package/src/commands/__tests__/install-direct.test.ts +0 -128
- package/src/commands/__tests__/install-identity-override.test.ts +0 -76
- package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
- package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
- package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
- package/src/commands/__tests__/instance-status.test.ts +0 -139
- package/src/commands/__tests__/instance-use.test.ts +0 -67
- package/src/commands/__tests__/introspect-parse.test.ts +0 -100
- package/src/commands/__tests__/logs.test.ts +0 -345
- package/src/commands/__tests__/read-commands.test.ts +0 -377
- package/src/commands/__tests__/setup-plan.test.ts +0 -61
- package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
- package/src/commands/__tests__/token-ttl.test.ts +0 -66
- package/src/commands/__tests__/update.test.ts +0 -95
- package/src/commands/__tests__/view-build.test.ts +0 -58
- package/src/commands/__tests__/view.test.ts +0 -197
- package/src/commands/admin/status.ts +0 -61
- package/src/commands/admin/use.ts +0 -100
- package/src/commands/auth/login.ts +0 -82
- package/src/commands/auth/logout.ts +0 -53
- package/src/commands/auth/status.ts +0 -86
- package/src/commands/auth/token.ts +0 -174
- package/src/commands/browser.ts +0 -236
- package/src/commands/call-describe.ts +0 -123
- package/src/commands/call.ts +0 -230
- package/src/commands/domain/install.ts +0 -575
- package/src/commands/domain/list.ts +0 -155
- package/src/commands/domain/publish.ts +0 -136
- package/src/commands/domain/uninstall.ts +0 -128
- package/src/commands/get.ts +0 -69
- package/src/commands/identity/__tests__/register.test.ts +0 -93
- package/src/commands/identity/create.ts +0 -35
- package/src/commands/identity/delete.ts +0 -24
- package/src/commands/identity/export.ts +0 -46
- package/src/commands/identity/import.ts +0 -61
- package/src/commands/identity/list.ts +0 -56
- package/src/commands/identity/register.ts +0 -195
- package/src/commands/identity/sync.ts +0 -38
- package/src/commands/identity/unsync.ts +0 -34
- package/src/commands/identity/use.ts +0 -24
- package/src/commands/identity/whoami.ts +0 -34
- package/src/commands/idp/add.ts +0 -150
- package/src/commands/idp/list.ts +0 -57
- package/src/commands/idp/refresh.ts +0 -38
- package/src/commands/idp/remove.ts +0 -36
- package/src/commands/idp/show.ts +0 -29
- package/src/commands/instance/active.ts +0 -73
- package/src/commands/instance/bookmark.ts +0 -101
- package/src/commands/instance/create.ts +0 -61
- package/src/commands/instance/delete.ts +0 -69
- package/src/commands/instance/forget.ts +0 -26
- package/src/commands/instance/list.ts +0 -197
- package/src/commands/instance/status.ts +0 -92
- package/src/commands/instance/use.ts +0 -263
- package/src/commands/introspect.ts +0 -129
- package/src/commands/logs.ts +0 -371
- package/src/commands/mutate.ts +0 -122
- package/src/commands/query.ts +0 -142
- package/src/commands/session/analyze.ts +0 -72
- package/src/commands/session/list.ts +0 -36
- package/src/commands/setup.ts +0 -54
- package/src/commands/status.ts +0 -60
- package/src/commands/studio.ts +0 -434
- package/src/commands/token.ts +0 -121
- package/src/commands/ui/__tests__/commands.test.ts +0 -152
- package/src/commands/ui/add.ts +0 -51
- package/src/commands/ui/doctor.ts +0 -21
- package/src/commands/ui/init.ts +0 -38
- package/src/commands/ui/list.ts +0 -26
- package/src/commands/ui/preset-apply.ts +0 -19
- package/src/commands/ui/preset-list.ts +0 -12
- package/src/commands/ui/shared.ts +0 -25
- package/src/commands/update.ts +0 -356
- package/src/commands/use.ts +0 -86
- package/src/commands/view-serve.ts +0 -26
- package/src/commands/view.ts +0 -658
- package/src/connect-core.test.ts +0 -38
- package/src/connect-core.ts +0 -42
- package/src/connection/.spec/api.d.ts +0 -110
- package/src/connection/.spec/architecture.md +0 -58
- package/src/connection/.spec/capabilities/connection.ts +0 -13
- package/src/connection/.spec/examples/call.ts +0 -7
- package/src/connection/.spec/flows/command.ts +0 -20
- package/src/connection/.spec/flows/session.ts +0 -62
- package/src/connection/.spec/laws/connection.ts +0 -213
- package/src/connection/.spec/layout.ts +0 -22
- package/src/connection/__tests__/auth.test.ts +0 -129
- package/src/connection/__tests__/ca-fetch.test.ts +0 -60
- package/src/connection/__tests__/call.test.ts +0 -17
- package/src/connection/__tests__/credential.test.ts +0 -254
- package/src/connection/__tests__/errors.test.ts +0 -577
- package/src/connection/__tests__/exchange.test.ts +0 -404
- package/src/connection/__tests__/failure-fixtures.ts +0 -39
- package/src/connection/__tests__/failure-safety.test.ts +0 -75
- package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
- package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
- package/src/connection/__tests__/managed.test.ts +0 -39
- package/src/connection/__tests__/reasons.test.ts +0 -78
- package/src/connection/__tests__/self.test.ts +0 -71
- package/src/connection/__tests__/session.test.ts +0 -144
- package/src/connection/__tests__/target.test.ts +0 -95
- package/src/connection/auth.ts +0 -265
- package/src/connection/call.ts +0 -7
- package/src/connection/command.ts +0 -67
- package/src/connection/credential.ts +0 -138
- package/src/connection/errors.ts +0 -1
- package/src/connection/exchange.ts +0 -394
- package/src/connection/failure/classify.ts +0 -110
- package/src/connection/failure/index.ts +0 -18
- package/src/connection/failure/model.ts +0 -28
- package/src/connection/failure/render.ts +0 -116
- package/src/connection/index.ts +0 -8
- package/src/connection/lifetime.ts +0 -25
- package/src/connection/reasons.ts +0 -209
- package/src/connection/self.ts +0 -138
- package/src/connection/session.ts +0 -203
- package/src/connection/target.ts +0 -112
- package/src/connection/tsconfig.json +0 -6
- package/src/errors.ts +0 -66
- package/src/graph/.spec/api.d.ts +0 -41
- package/src/graph/.spec/laws/documents.ts +0 -24
- package/src/graph/.spec/laws/projection.ts +0 -13
- package/src/graph/.spec/layout.ts +0 -14
- package/src/graph/__tests__/mutation.test.ts +0 -51
- package/src/graph/__tests__/projection.test.ts +0 -22
- package/src/graph/__tests__/query.test.ts +0 -180
- package/src/graph/class.ts +0 -30
- package/src/graph/index.ts +0 -4
- package/src/graph/mutation.ts +0 -46
- package/src/graph/projection.ts +0 -21
- package/src/graph/query.ts +0 -95
- package/src/graph/tsconfig.json +0 -6
- package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
- package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
- package/src/identity/.spec/api.d.ts +0 -124
- package/src/identity/.spec/architecture.md +0 -33
- package/src/identity/.spec/capabilities/identity.ts +0 -7
- package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
- package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
- package/src/identity/.spec/flows/import.ts +0 -29
- package/src/identity/.spec/laws/identity.ts +0 -56
- package/src/identity/.spec/layout.ts +0 -13
- package/src/identity/__tests__/fixtures/registry-journey.ts +0 -65
- package/src/identity/__tests__/registration.test.ts +0 -64
- package/src/identity/__tests__/registry.test.ts +0 -74
- package/src/identity/__tests__/transfer.test.ts +0 -198
- package/src/identity/index.ts +0 -23
- package/src/identity/registration.ts +0 -72
- package/src/identity/registry.ts +0 -181
- package/src/identity/transfer.ts +0 -187
- package/src/identity/tsconfig.json +0 -6
- package/src/index.ts +0 -1
- package/src/keys/.spec/api.d.ts +0 -74
- package/src/keys/.spec/architecture.md +0 -13
- package/src/keys/.spec/laws/keys.ts +0 -43
- package/src/keys/.spec/layout.ts +0 -6
- package/src/keys/__tests__/algorithm.test.ts +0 -39
- package/src/keys/__tests__/keys.test.ts +0 -172
- package/src/keys/algorithm.ts +0 -33
- package/src/keys/credential.ts +0 -113
- package/src/keys/index.ts +0 -14
- package/src/keys/pair.ts +0 -219
- package/src/keys/tsconfig.json +0 -6
- package/src/lib/__tests__/admin-target.test.ts +0 -184
- package/src/lib/__tests__/binary.test.ts +0 -70
- package/src/lib/__tests__/browser-retention.test.ts +0 -212
- package/src/lib/__tests__/command-dx.test.ts +0 -102
- package/src/lib/__tests__/concurrency.test.ts +0 -62
- package/src/lib/__tests__/config.test.ts +0 -81
- package/src/lib/__tests__/design.test.ts +0 -99
- package/src/lib/__tests__/domain-publication.test.ts +0 -138
- package/src/lib/__tests__/format.test.ts +0 -22
- package/src/lib/__tests__/idp-session.driver.ts +0 -60
- package/src/lib/__tests__/idp-session.test.ts +0 -404
- package/src/lib/__tests__/idp.test.ts +0 -415
- package/src/lib/__tests__/instance-candidates.test.ts +0 -146
- package/src/lib/__tests__/instance-target.test.ts +0 -213
- package/src/lib/__tests__/instance.test.ts +0 -192
- package/src/lib/__tests__/local-status.test.ts +0 -202
- package/src/lib/__tests__/log-errors.test.ts +0 -64
- package/src/lib/__tests__/log.test.ts +0 -31
- package/src/lib/__tests__/meta.test.ts +0 -55
- package/src/lib/__tests__/output.test.ts +0 -162
- package/src/lib/__tests__/panel.test.ts +0 -40
- package/src/lib/__tests__/port.test.ts +0 -44
- package/src/lib/__tests__/prompt.test.ts +0 -25
- package/src/lib/__tests__/sdk-deps.test.ts +0 -68
- package/src/lib/__tests__/self.test.ts +0 -50
- package/src/lib/__tests__/skills.test.ts +0 -834
- package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
- package/src/lib/__tests__/table.test.ts +0 -53
- package/src/lib/__tests__/update.test.ts +0 -511
- package/src/lib/__tests__/use-target.test.ts +0 -56
- package/src/lib/__tests__/validation.test.ts +0 -34
- package/src/lib/__tests__/view-assets.test.ts +0 -171
- package/src/lib/__tests__/view-external-open-intent.test.ts +0 -150
- package/src/lib/__tests__/view-external-open-origins.test.ts +0 -27
- package/src/lib/__tests__/view-open-intent.test.ts +0 -280
- package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
- package/src/lib/__tests__/view-server.test.ts +0 -91
- package/src/lib/__tests__/view-session.test.ts +0 -100
- package/src/lib/__tests__/view-snapshot.test.ts +0 -77
- package/src/lib/admin-domain.ts +0 -43
- package/src/lib/admin-instance.ts +0 -56
- package/src/lib/admin-target.ts +0 -290
- package/src/lib/binary.ts +0 -127
- package/src/lib/browser-retention.ts +0 -210
- package/src/lib/browser.ts +0 -150
- package/src/lib/ca-fetch.ts +0 -133
- package/src/lib/command-dx.ts +0 -191
- package/src/lib/concurrency.ts +0 -31
- package/src/lib/config.ts +0 -57
- package/src/lib/credential-lifetime.ts +0 -24
- package/src/lib/domain-publication.ts +0 -104
- package/src/lib/failure-debug.ts +0 -26
- package/src/lib/format.ts +0 -4
- package/src/lib/idp-session.ts +0 -156
- package/src/lib/idp.ts +0 -926
- package/src/lib/instance-candidates.ts +0 -49
- package/src/lib/instance-target.ts +0 -197
- package/src/lib/instance.ts +0 -468
- package/src/lib/invocation.ts +0 -11
- package/src/lib/local-status.ts +0 -152
- package/src/lib/log.ts +0 -143
- package/src/lib/login-flow.ts +0 -201
- package/src/lib/meta.ts +0 -90
- package/src/lib/output.ts +0 -238
- package/src/lib/panel.ts +0 -61
- package/src/lib/port.ts +0 -41
- package/src/lib/proc.ts +0 -87
- package/src/lib/prompt.ts +0 -136
- package/src/lib/provision-instance.ts +0 -139
- package/src/lib/sdk-deps.ts +0 -104
- package/src/lib/self.ts +0 -22
- package/src/lib/skills/lock.ts +0 -117
- package/src/lib/skills/sync.ts +0 -878
- package/src/lib/skills.ts +0 -120
- package/src/lib/table.ts +0 -62
- package/src/lib/update.ts +0 -568
- package/src/lib/use-target.ts +0 -24
- package/src/lib/validation.ts +0 -59
- package/src/lib/view/assets.ts +0 -87
- package/src/lib/view/external-open-intent.ts +0 -41
- package/src/lib/view/external-open-origins.ts +0 -37
- package/src/lib/view/host-capabilities.ts +0 -17
- package/src/lib/view/open-intent.ts +0 -67
- package/src/lib/view/port-allocation.ts +0 -19
- package/src/lib/view/resolve.ts +0 -111
- package/src/lib/view/server.ts +0 -259
- package/src/lib/view/session.ts +0 -154
- package/src/lib/view/snapshot.ts +0 -101
- package/src/paths/.spec/api.d.ts +0 -13
- package/src/paths/.spec/architecture.md +0 -5
- package/src/paths/.spec/layout.ts +0 -3
- package/src/paths/index.ts +0 -13
- package/src/program/.spec/api.d.ts +0 -43
- package/src/program/.spec/architecture.md +0 -18
- package/src/program/.spec/laws/program.ts +0 -29
- package/src/program/.spec/layout.ts +0 -14
- package/src/program/__tests__/program.test.ts +0 -556
- package/src/program/argv.ts +0 -14
- package/src/program/build.ts +0 -205
- package/src/program/command.ts +0 -43
- package/src/program/index.ts +0 -3
- package/src/program/options.ts +0 -41
- package/src/program/registry.ts +0 -64
- package/src/program/tsconfig.json +0 -6
- package/src/setup/__tests__/instance-step.test.ts +0 -256
- package/src/setup/__tests__/util.test.ts +0 -29
- package/src/setup/engine.ts +0 -83
- package/src/setup/render.ts +0 -107
- package/src/setup/steps/admin.ts +0 -93
- package/src/setup/steps/agent-browser.ts +0 -81
- package/src/setup/steps/auth.ts +0 -54
- package/src/setup/steps/domain.ts +0 -68
- package/src/setup/steps/index.ts +0 -18
- package/src/setup/steps/instance.ts +0 -206
- package/src/setup/steps/skills-bridge.ts +0 -70
- package/src/setup/steps/skills.ts +0 -61
- package/src/setup/types.ts +0 -61
- package/src/setup/util.ts +0 -34
- package/src/state/.spec/api.d.ts +0 -152
- package/src/state/.spec/architecture.md +0 -45
- package/src/state/.spec/capabilities/state.ts +0 -7
- package/src/state/.spec/flows/identity-update.ts +0 -22
- package/src/state/.spec/laws/state.ts +0 -73
- package/src/state/.spec/layout.ts +0 -15
- package/src/state/__tests__/exchange-credentials.test.ts +0 -341
- package/src/state/__tests__/files.test.ts +0 -136
- package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
- package/src/state/__tests__/fixtures/session-route-process.ts +0 -93
- package/src/state/__tests__/identities.test.ts +0 -142
- package/src/state/__tests__/paths.test.ts +0 -28
- package/src/state/__tests__/session-routes.test.ts +0 -138
- package/src/state/exchange-credentials.ts +0 -250
- package/src/state/files.ts +0 -170
- package/src/state/identities.ts +0 -229
- package/src/state/index.ts +0 -31
- package/src/state/paths.ts +0 -64
- package/src/state/session-routes.ts +0 -34
- package/src/state/tsconfig.json +0 -6
- package/src/telemetry/__tests__/analyze-log.test.ts +0 -38
- package/src/telemetry/__tests__/gate.test.ts +0 -63
- package/src/telemetry/__tests__/recorder.test.ts +0 -111
- package/src/telemetry/__tests__/redact.test.ts +0 -79
- package/src/telemetry/__tests__/retention.test.ts +0 -267
- package/src/telemetry/__tests__/session.test.ts +0 -166
- package/src/telemetry/__tests__/settings.test.ts +0 -102
- package/src/telemetry/__tests__/store-scan.test.ts +0 -128
- package/src/telemetry/__tests__/trigger.test.ts +0 -78
- package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
- package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
- package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
- package/src/telemetry/adapters/claude-code.ts +0 -90
- package/src/telemetry/adapters/codex.ts +0 -160
- package/src/telemetry/adapters/index.ts +0 -45
- package/src/telemetry/adapters/types.ts +0 -21
- package/src/telemetry/analyze.ts +0 -249
- package/src/telemetry/gate.ts +0 -79
- package/src/telemetry/recorder.ts +0 -68
- package/src/telemetry/redact.ts +0 -53
- package/src/telemetry/retention.ts +0 -176
- package/src/telemetry/session.ts +0 -94
- package/src/telemetry/settings.ts +0 -79
- package/src/telemetry/store.ts +0 -174
- package/src/telemetry/trigger.ts +0 -107
- package/src/telemetry/types.ts +0 -64
- package/src/test-utils.ts +0 -18
- package/src/ui/.spec/api.d.ts +0 -14
- package/src/ui/.spec/architecture.md +0 -14
- package/src/ui/.spec/laws.ts +0 -50
- package/src/ui/.spec/layout.ts +0 -16
- package/src/ui/__tests__/ui.test.ts +0 -1742
- package/src/ui/index.ts +0 -13
- package/src/ui/lock.ts +0 -89
- package/src/ui/model.ts +0 -83
- package/src/ui/operations.ts +0 -1044
- package/src/ui/project.ts +0 -333
- package/src/ui/release.ts +0 -398
- package/src/ui/runner.ts +0 -18
- package/studio/client/dist/assets/index-BFVFs_8x.js +0 -81
- package/studio/client/dist/assets/index-DuB9iUdu.css +0 -2
- package/studio/client/dist/assets/schema-studio-DH6oEWME.js +0 -8
- package/studio/tsconfig.json +0 -24
- package/viewer/tsconfig.json +0 -13
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/elk-api-DjmKsHXc.js","assets/rolldown-runtime-Dd_uD5pT.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,t}from"./rolldown-runtime-Dd_uD5pT.js";import{$ as n,$t as r,A as i,At as a,B as o,Bt as s,C as c,Ct as l,D as u,Dt as d,E as f,Et as p,F as m,Ft as h,G as g,Gt as _,H as v,Ht as y,I as b,It as x,J as S,Jt as C,K as w,Kt as T,L as E,Lt as D,M as O,Mt as k,N as A,Nt as j,O as M,Ot as N,P,Pt as F,Q as I,Qt as L,R,Rt as z,S as B,St as V,T as H,Tt as U,U as W,Ut as ee,V as te,Vt as ne,W as G,Wt as re,X as ie,Xt as ae,Y as oe,Yt as se,Z as ce,Zt as le,_ as ue,_t as de,a as fe,at as pe,b as me,bt as he,c as ge,ct as _e,d as ve,dt as ye,en as be,et as xe,f as Se,ft as Ce,g as we,gt as Te,h as K,ht as Ee,i as De,it as Oe,j as ke,jt as Ae,k as je,kt as Me,l as Ne,lt as Pe,m as Fe,mt as Ie,n as Le,nt as Re,o as ze,ot as Be,p as Ve,pt as He,q as Ue,qt as We,r as Ge,rt as Ke,s as qe,st as Je,t as Ye,tn as Xe,tt as Ze,u as Qe,ut as $e,v as et,vt as tt,w as nt,wt as rt,x as it,xt as at,y as ot,yt as st,z as ct,zt as lt}from"./index-C4kNlvwF.js";function ut(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function dt(e,t,n){let r=e.slice(0);return r[t]=n,r}var ft=class extends Xe{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,le.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!be(e,n)});!o&&!s||(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(ut(e,n).forEach(e=>{e.destroy()}),ut(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let i=this.#c,a=n!==void 0&&i!==void 0&&(i.length!==n.length||n.some((e,t)=>e!==i[t]));return(!this.#a||this.#t!==this.#s||a||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=r(this.#a,t(e))),this.#a}return e}#f(){return this.#r?.combine!==void 0&&this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new ae(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=dt(this.#t,n,t),this.#h())}#h(){if(this.hasListeners()){let e=this.#u(this.#t,this.#l),t=this.#f(),n=this.#a,r=t?n:this.#d(e,this.#r?.combine);(t||n!==r)&&le.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},q=e(se(),1);function pt({queries:e,...t},n){let r=We(n),i=T(),a=_(),o=q.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);o.forEach(e=>{lt(e);let t=r.getQueryCache().get(e.queryHash);y(e,a,t)}),re(a);let[c]=q.useState(()=>new ft(r,o,t)),[l,u,d]=c.getOptimisticResult(o,t.combine),f=!i&&t.subscribed!==!1;q.useSyncExternalStore(q.useCallback(e=>f?c.subscribe(le.batchCalls(e)):L,[c,f]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),q.useEffect(()=>{c.setQueries(o,t)},[o,t,c]);let p=l.some((e,t)=>ne(o[t],e))?l.flatMap((e,t)=>{let n=o[t];if(n&&ne(n,e)){let e=new ae(r,n);return s(n,e,a)}return[]}):[];if(p.length>0)throw Promise.all(p);let m=l.find((e,t)=>{let n=o[t];return n&&ee({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(m?.error)throw m.error;return u(d())}var mt=x(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),ht=x(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),gt=x(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),_t=x(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),vt=x(`folder-closed`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M2 10h20`,key:`1ir3d8`}]]),yt=x(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),bt=x(`folder-tree`,[[`path`,{d:`M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`hod4my`}],[`path`,{d:`M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`w4yl2u`}],[`path`,{d:`M3 5a2 2 0 0 0 2 2h3`,key:`f2jnh7`}],[`path`,{d:`M3 3v13a2 2 0 0 0 2 2h3`,key:`k8epm1`}]]),xt=x(`hexagon`,[[`path`,{d:`M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z`,key:`yt0hxn`}]]),St=x(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),Ct=x(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),wt=x(`monitor-play`,[[`path`,{d:`M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z`,key:`vbtd3f`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`,key:`x3v2xh`}]]),Tt=x(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),Et=x(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Dt=x(`sigma`,[[`path`,{d:`M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2`,key:`wuwx1p`}]]),Ot=x(`unplug`,[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]),J=C();function Y(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Y(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var kt={value:()=>{}};function At(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new jt(n)}function jt(e){this._=e}function Mt(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}jt.prototype=At.prototype={constructor:jt,on:function(e,t){var n=this._,r=Mt(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Nt(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=Pt(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Pt(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new jt(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Nt(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Pt(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=kt,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Ft={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function It(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Ft.hasOwnProperty(t)?{space:Ft[t],local:e}:e}function Lt(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Rt(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function zt(e){var t=It(e);return(t.local?Rt:Lt)(t)}function Bt(){}function Vt(e){return e==null?Bt:function(){return this.querySelector(e)}}function Ht(e){typeof e!=`function`&&(e=Vt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new jr(r,this._parents)}function Ut(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Wt(){return[]}function Gt(e){return e==null?Wt:function(){return this.querySelectorAll(e)}}function Kt(e){return function(){return Ut(e.apply(this,arguments))}}function qt(e){e=typeof e==`function`?Kt(e):Gt(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new jr(r,i)}function Jt(e){return function(){return this.matches(e)}}function Yt(e){return function(t){return t.matches(e)}}var Xt=Array.prototype.find;function Zt(e){return function(){return Xt.call(this.children,e)}}function Qt(){return this.firstElementChild}function $t(e){return this.select(e==null?Qt:Zt(typeof e==`function`?e:Yt(e)))}var en=Array.prototype.filter;function tn(){return Array.from(this.children)}function nn(e){return function(){return en.call(this.children,e)}}function rn(e){return this.selectAll(e==null?tn:nn(typeof e==`function`?e:Yt(e)))}function an(e){typeof e!=`function`&&(e=Jt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new jr(r,this._parents)}function on(e){return Array(e.length)}function sn(){return new jr(this._enter||this._groups.map(on),this._parents)}function cn(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}cn.prototype={constructor:cn,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function ln(e){return function(){return e}}function un(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new cn(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function dn(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new cn(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function fn(e){return e.__data__}function pn(e,t){if(!arguments.length)return Array.from(this,fn);var n=t?dn:un,r=this._parents,i=this._groups;typeof e!=`function`&&(e=ln(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=mn(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new jr(o,r),o._enter=s,o._exit=c,o}function mn(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function hn(){return new jr(this._exit||this._groups.map(on),this._parents)}function gn(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function _n(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new jr(s,this._parents)}function vn(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function yn(e){e||=bn;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new jr(i,this._parents).order()}function bn(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function xn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Sn(){return Array.from(this)}function Cn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function wn(){let e=0;for(let t of this)++e;return e}function Tn(){return!this.node()}function En(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Dn(e){return function(){this.removeAttribute(e)}}function On(e){return function(){this.removeAttributeNS(e.space,e.local)}}function kn(e,t){return function(){this.setAttribute(e,t)}}function An(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function jn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Mn(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Nn(e,t){var n=It(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?On:Dn:typeof t==`function`?n.local?Mn:jn:n.local?An:kn)(n,t))}function Pn(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Fn(e){return function(){this.style.removeProperty(e)}}function In(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ln(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Rn(e,t,n){return arguments.length>1?this.each((t==null?Fn:typeof t==`function`?Ln:In)(e,t,n??``)):zn(this.node(),e)}function zn(e,t){return e.style.getPropertyValue(t)||Pn(e).getComputedStyle(e,null).getPropertyValue(t)}function Bn(e){return function(){delete this[e]}}function Vn(e,t){return function(){this[e]=t}}function Hn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Un(e,t){return arguments.length>1?this.each((t==null?Bn:typeof t==`function`?Hn:Vn)(e,t)):this.node()[e]}function Wn(e){return e.trim().split(/^|\s+/)}function Gn(e){return e.classList||new Kn(e)}function Kn(e){this._node=e,this._names=Wn(e.getAttribute(`class`)||``)}Kn.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function qn(e,t){for(var n=Gn(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Jn(e,t){for(var n=Gn(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Yn(e){return function(){qn(this,e)}}function Xn(e){return function(){Jn(this,e)}}function Zn(e,t){return function(){(t.apply(this,arguments)?qn:Jn)(this,e)}}function Qn(e,t){var n=Wn(e+``);if(arguments.length<2){for(var r=Gn(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Zn:t?Yn:Xn)(n,t))}function $n(){this.textContent=``}function er(e){return function(){this.textContent=e}}function tr(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function nr(e){return arguments.length?this.each(e==null?$n:(typeof e==`function`?tr:er)(e)):this.node().textContent}function rr(){this.innerHTML=``}function ir(e){return function(){this.innerHTML=e}}function ar(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function or(e){return arguments.length?this.each(e==null?rr:(typeof e==`function`?ar:ir)(e)):this.node().innerHTML}function sr(){this.nextSibling&&this.parentNode.appendChild(this)}function cr(){return this.each(sr)}function lr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ur(){return this.each(lr)}function dr(e){var t=typeof e==`function`?e:zt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function fr(){return null}function pr(e,t){var n=typeof e==`function`?e:zt(e),r=t==null?fr:typeof t==`function`?t:Vt(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function mr(){var e=this.parentNode;e&&e.removeChild(this)}function hr(){return this.each(mr)}function gr(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function _r(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function vr(e){return this.select(e?_r:gr)}function yr(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function br(e){return function(t){e.call(this,t,this.__data__)}}function xr(e){return 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}})}function Sr(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function Cr(e,t,n){return function(){var r=this.__on,i,a=br(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function wr(e,t,n){var r=xr(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?Cr:Sr,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Tr(e,t,n){var r=Pn(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Er(e,t){return function(){return Tr(this,e,t)}}function Dr(e,t){return function(){return Tr(this,e,t.apply(this,arguments))}}function Or(e,t){return this.each((typeof t==`function`?Dr:Er)(e,t))}function*kr(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Ar=[null];function jr(e,t){this._groups=e,this._parents=t}function Mr(){return new jr([[document.documentElement]],Ar)}function Nr(){return this}jr.prototype=Mr.prototype={constructor:jr,select:Ht,selectAll:qt,selectChild:$t,selectChildren:rn,filter:an,data:pn,enter:sn,exit:hn,join:gn,merge:_n,selection:Nr,order:vn,sort:yn,call:xn,nodes:Sn,node:Cn,size:wn,empty:Tn,each:En,attr:Nn,style:Rn,property:Un,classed:Qn,text:nr,html:or,raise:cr,lower:ur,append:dr,insert:pr,remove:hr,clone:vr,datum:yr,on:wr,dispatch:Or,[Symbol.iterator]:kr};function Pr(e){return typeof e==`string`?new jr([[document.querySelector(e)]],[document.documentElement]):new jr([[e]],Ar)}function Fr(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ir(e,t){if(e=Fr(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Lr={passive:!1},Rr={capture:!0,passive:!1};function zr(e){e.stopImmediatePropagation()}function Br(e){e.preventDefault(),e.stopImmediatePropagation()}function Vr(e){var t=e.document.documentElement,n=Pr(e).on(`dragstart.drag`,Br,Rr);`onselectstart`in t?n.on(`selectstart.drag`,Br,Rr):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Hr(e,t){var n=e.document.documentElement,r=Pr(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Br,Rr),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Ur=e=>()=>e;function Wr(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Wr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Gr(e){return!e.ctrlKey&&!e.button}function Kr(){return this.parentNode}function qr(e,t){return t??{x:e.x,y:e.y}}function Jr(){return navigator.maxTouchPoints||`ontouchstart`in this}function Yr(){var e=Gr,t=Kr,n=qr,r=Jr,i={},a=At(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Lr).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Pr(n.view).on(`mousemove.drag`,m,Rr).on(`mouseup.drag`,h,Rr),Vr(n.view),zr(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Br(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Pr(e.view).on(`mousemove.drag mouseup.drag`,null),Hr(e.view,l),Br(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(zr(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(Br(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(zr(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Ir(l||r,t),p,m,h;if((h=n.call(e,new Wr(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=Ir(l||a,t),_=o}u.call(r,e,new Wr(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Ur(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Ur(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Ur(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Ur(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function Xr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Zr(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Qr(){}var $r=.7,ei=1/$r,ti=`\\s*([+-]?\\d+)\\s*`,ni=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,ri=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,ii=/^#([0-9a-f]{3,8})$/,ai=RegExp(`^rgb\\(${ti},${ti},${ti}\\)$`),oi=RegExp(`^rgb\\(${ri},${ri},${ri}\\)$`),si=RegExp(`^rgba\\(${ti},${ti},${ti},${ni}\\)$`),ci=RegExp(`^rgba\\(${ri},${ri},${ri},${ni}\\)$`),li=RegExp(`^hsl\\(${ni},${ri},${ri}\\)$`),ui=RegExp(`^hsla\\(${ni},${ri},${ri},${ni}\\)$`),di={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Xr(Qr,gi,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:fi,formatHex:fi,formatHex8:pi,formatHsl:mi,formatRgb:hi,toString:hi});function fi(){return this.rgb().formatHex()}function pi(){return this.rgb().formatHex8()}function mi(){return ki(this).formatHsl()}function hi(){return this.rgb().formatRgb()}function gi(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=ii.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?_i(t):n===3?new xi(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?vi(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?vi(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=ai.exec(e))?new xi(t[1],t[2],t[3],1):(t=oi.exec(e))?new xi(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=si.exec(e))?vi(t[1],t[2],t[3],t[4]):(t=ci.exec(e))?vi(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=li.exec(e))?Oi(t[1],t[2]/100,t[3]/100,1):(t=ui.exec(e))?Oi(t[1],t[2]/100,t[3]/100,t[4]):di.hasOwnProperty(e)?_i(di[e]):e===`transparent`?new xi(NaN,NaN,NaN,0):null}function _i(e){return new xi(e>>16&255,e>>8&255,e&255,1)}function vi(e,t,n,r){return r<=0&&(e=t=n=NaN),new xi(e,t,n,r)}function yi(e){return e instanceof Qr||(e=gi(e)),e?(e=e.rgb(),new xi(e.r,e.g,e.b,e.opacity)):new xi}function bi(e,t,n,r){return arguments.length===1?yi(e):new xi(e,t,n,r??1)}function xi(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Xr(xi,bi,Zr(Qr,{brighter(e){return e=e==null?ei:ei**+e,new xi(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?$r:$r**+e,new xi(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new xi(Ei(this.r),Ei(this.g),Ei(this.b),Ti(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:Si,formatHex:Si,formatHex8:Ci,formatRgb:wi,toString:wi}));function Si(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function Ci(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function wi(){let e=Ti(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Ei(this.r)}, ${Ei(this.g)}, ${Ei(this.b)}${e===1?`)`:`, ${e})`}`}function Ti(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ei(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Ei(e),(e<16?`0`:``)+e.toString(16)}function Oi(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ji(e,t,n,r)}function ki(e){if(e instanceof ji)return new ji(e.h,e.s,e.l,e.opacity);if(e instanceof Qr||(e=gi(e)),!e)return new ji;if(e instanceof ji)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new ji(o,s,c,e.opacity)}function Ai(e,t,n,r){return arguments.length===1?ki(e):new ji(e,t,n,r??1)}function ji(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Xr(ji,Ai,Zr(Qr,{brighter(e){return e=e==null?ei:ei**+e,new ji(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?$r:$r**+e,new ji(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,i=2*n-r;return new xi(Pi(e>=240?e-240:e+120,i,r),Pi(e,i,r),Pi(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ji(Mi(this.h),Ni(this.s),Ni(this.l),Ti(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=Ti(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Mi(this.h)}, ${Ni(this.s)*100}%, ${Ni(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Mi(e){return e=(e||0)%360,e<0?e+360:e}function Ni(e){return Math.max(0,Math.min(1,e||0))}function Pi(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Fi=e=>()=>e;function Ii(e,t){return function(n){return e+n*t}}function Li(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Ri(e){return(e=+e)==1?zi:function(t,n){return n-t?Li(t,n,e):Fi(isNaN(t)?n:t)}}function zi(e,t){var n=t-e;return n?Ii(e,n):Fi(isNaN(e)?t:e)}var Bi=(function e(t){var n=Ri(t);function r(e,t){var r=n((e=bi(e)).r,(t=bi(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=zi(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function Vi(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Hi(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ui(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=Qi(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function Wi(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Gi(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Ki(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Qi(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var qi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ji=new RegExp(qi.source,`g`);function Yi(e){return function(){return e}}function Xi(e){return function(t){return e(t)+``}}function Zi(e,t){var n=qi.lastIndex=Ji.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=qi.exec(e))&&(i=Ji.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Gi(r,i)})),n=Ji.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Xi(c[0].x):Yi(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Qi(e,t){var n=typeof t,r;return t==null||n===`boolean`?Fi(t):(n===`number`?Gi:n===`string`?(r=gi(t))?(t=r,Bi):Zi:t instanceof gi?Bi:t instanceof Date?Wi:Hi(t)?Vi:Array.isArray(t)?Ui:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Ki:Gi)(e,t)}var $i=180/Math.PI,ea={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ta(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*$i,skewX:Math.atan(c)*$i,scaleX:o,scaleY:s}}var na;function ra(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?ea:ta(t.a,t.b,t.c,t.d,t.e,t.f)}function ia(e){return e==null||(na||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),na.setAttribute(`transform`,e),!(e=na.transform.baseVal.consolidate()))?ea:(e=e.matrix,ta(e.a,e.b,e.c,e.d,e.e,e.f))}function aa(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Gi(e,i)},{i:c-2,x:Gi(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Gi(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Gi(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Gi(e,n)},{i:s-2,x:Gi(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var oa=aa(ra,`px, `,`px)`,`deg)`),sa=aa(ia,`, `,`)`,`)`),ca=1e-12;function la(e){return((e=Math.exp(e))+1/e)/2}function ua(e){return((e=Math.exp(e))-1/e)/2}function da(e){return((e=Math.exp(2*e))-1)/(e+1)}var fa=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<ca)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=la(y),c=s/(n*g)*(i*da(t*r+y)-ua(y));return[a+c*d,o+c*f,s*i/la(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),pa=0,ma=0,ha=0,ga=1e3,_a,va,ya=0,ba=0,xa=0,Sa=typeof performance==`object`&&performance.now?performance:Date,Ca=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function wa(){return ba||=(Ca(Ta),Sa.now()+xa)}function Ta(){ba=0}function Ea(){this._call=this._time=this._next=null}Ea.prototype=Da.prototype={constructor:Ea,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?wa():+n)+(t==null?0:+t),!this._next&&va!==this&&(va?va._next=this:_a=this,va=this),this._call=e,this._time=n,Ma()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ma())}};function Da(e,t,n){var r=new Ea;return r.restart(e,t,n),r}function Oa(){wa(),++pa;for(var e=_a,t;e;)(t=ba-e._time)>=0&&e._call.call(void 0,t),e=e._next;--pa}function ka(){ba=(ya=Sa.now())+xa,pa=ma=0;try{Oa()}finally{pa=0,ja(),ba=0}}function Aa(){var e=Sa.now(),t=e-ya;t>ga&&(xa-=t,ya=e)}function ja(){for(var e,t=_a,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_a=n);va=e,Ma(r)}function Ma(e){pa||(ma&&=clearTimeout(ma),e-ba>24?(e<1/0&&(ma=setTimeout(ka,e-Sa.now()-xa)),ha&&=clearInterval(ha)):(ha||=(ya=Sa.now(),setInterval(Aa,ga)),pa=1,Ca(ka)))}function Na(e,t,n){var r=new Ea;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Pa=At(`start`,`end`,`cancel`,`interrupt`),Fa=[];function Ia(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Ba(e,n,{name:t,index:r,group:i,on:Pa,tween:Fa,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function La(e,t){var n=za(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Ra(e,t){var n=za(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function za(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Ba(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Da(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Na(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Na(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Va(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Ha(e){return this.each(function(){Va(this,e)})}function Ua(e,t){var n,r;return function(){var i=Ra(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Wa(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Ra(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function Ga(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=za(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Ua:Wa)(n,e,t))}function Ka(e,t,n){var r=e._id;return e.each(function(){var e=Ra(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return za(e,r).value[t]}}function qa(e,t){var n;return(typeof t==`number`?Gi:t instanceof gi?Bi:(n=gi(t))?(t=n,Bi):Zi)(e,t)}function Ja(e){return function(){this.removeAttribute(e)}}function Ya(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Xa(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function Za(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function Qa(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function $a(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function eo(e,t){var n=It(e),r=n===`transform`?sa:qa;return this.attrTween(e,typeof t==`function`?(n.local?$a:Qa)(n,r,Ka(this,`attr.`+e,t)):t==null?(n.local?Ya:Ja)(n):(n.local?Za:Xa)(n,r,t))}function to(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function no(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function ro(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&no(e,i)),n}return i._value=t,i}function io(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&to(e,i)),n}return i._value=t,i}function ao(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=It(e);return this.tween(n,(r.local?ro:io)(r,t))}function oo(e,t){return function(){La(this,e).delay=+t.apply(this,arguments)}}function so(e,t){return t=+t,function(){La(this,e).delay=t}}function co(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?oo:so)(t,e)):za(this.node(),t).delay}function lo(e,t){return function(){Ra(this,e).duration=+t.apply(this,arguments)}}function uo(e,t){return t=+t,function(){Ra(this,e).duration=t}}function fo(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?lo:uo)(t,e)):za(this.node(),t).duration}function po(e,t){if(typeof t!=`function`)throw Error();return function(){Ra(this,e).ease=t}}function mo(e){var t=this._id;return arguments.length?this.each(po(t,e)):za(this.node(),t).ease}function ho(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Ra(this,e).ease=n}}function go(e){if(typeof e!=`function`)throw Error();return this.each(ho(this._id,e))}function _o(e){typeof e!=`function`&&(e=Jt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new Ko(r,this._parents,this._name,this._id)}function vo(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new Ko(o,this._parents,this._name,this._id)}function yo(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function bo(e,t,n){var r,i,a=yo(t)?La:Ra;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function xo(e,t){var n=this._id;return arguments.length<2?za(this.node(),n).on.on(e):this.each(bo(n,e,t))}function So(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Co(){return this.on(`end.remove`,So(this._id))}function wo(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Vt(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Ia(l[f],t,n,f,l,za(u,n)));return new Ko(a,this._parents,t,n)}function To(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Gt(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=za(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Ia(p,t,n,h,f,m);a.push(f),o.push(u)}return new Ko(a,o,t,n)}var Eo=Mr.prototype.constructor;function Do(){return new Eo(this._groups,this._parents)}function Oo(e,t){var n,r,i;return function(){var a=zn(this,e),o=(this.style.removeProperty(e),zn(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function ko(e){return function(){this.style.removeProperty(e)}}function Ao(e,t,n){var r,i=n+``,a;return function(){var o=zn(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function jo(e,t,n){var r,i,a;return function(){var o=zn(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),zn(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Mo(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Ra(this,e),l=c.on,u=c.value[a]==null?s||=ko(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function No(e,t,n){var r=(e+=``)==`transform`?oa:qa;return t==null?this.styleTween(e,Oo(e,r)).on(`end.style.`+e,ko(e)):typeof t==`function`?this.styleTween(e,jo(e,r,Ka(this,`style.`+e,t))).each(Mo(this._id,e)):this.styleTween(e,Ao(e,r,t),n).on(`end.style.`+e,null)}function Po(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Fo(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Po(e,a,n)),r}return a._value=t,a}function Io(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,Fo(e,t,n??``))}function Lo(e){return function(){this.textContent=e}}function Ro(e){return function(){var t=e(this);this.textContent=t??``}}function zo(e){return this.tween(`text`,typeof e==`function`?Ro(Ka(this,`text`,e)):Lo(e==null?``:e+``))}function Bo(e){return function(t){this.textContent=e.call(this,t)}}function Vo(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Bo(r)),t}return r._value=e,r}function Ho(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Vo(e))}function Uo(){for(var e=this._name,t=this._id,n=qo(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=za(c,t);Ia(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Ko(r,this._parents,e,n)}function Wo(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=Ra(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Go=0;function Ko(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function qo(){return++Go}var Jo=Mr.prototype;Ko.prototype={constructor:Ko,select:wo,selectAll:To,selectChild:Jo.selectChild,selectChildren:Jo.selectChildren,filter:_o,merge:vo,selection:Do,transition:Uo,call:Jo.call,nodes:Jo.nodes,node:Jo.node,size:Jo.size,empty:Jo.empty,each:Jo.each,on:xo,attr:eo,attrTween:ao,style:No,styleTween:Io,text:zo,textTween:Ho,remove:Co,tween:Ga,delay:co,duration:fo,ease:mo,easeVarying:go,end:Wo,[Symbol.iterator]:Jo[Symbol.iterator]};function Yo(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Xo={time:null,delay:0,duration:250,ease:Yo};function Zo(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Qo(e){var t,n;e instanceof Ko?(t=e._id,e=e._name):(t=qo(),(n=Xo).time=wa(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Ia(c,e,t,l,o,n||Zo(c,t));return new Ko(r,this._parents,e,t)}Mr.prototype.interrupt=Ha,Mr.prototype.transition=Qo;var $o=e=>()=>e;function es(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){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:i}})}function ts(e,t,n){this.k=e,this.x=t,this.y=n}ts.prototype={constructor:ts,scale:function(e){return e===1?this:new ts(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ts(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 ns=new ts(1,0,0);rs.prototype=ts.prototype;function rs(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ns;return e.__zoom}function is(e){e.stopImmediatePropagation()}function as(e){e.preventDefault(),e.stopImmediatePropagation()}function os(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function ss(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function cs(){return this.__zoom||ns}function ls(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function us(){return navigator.maxTouchPoints||`ontouchstart`in this}function ds(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function fs(){var e=os,t=ss,n=ds,r=ls,i=us,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=fa,l=At(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,cs).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,cs),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(ns.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new ts(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new ts(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new ts(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Pr(this.that).datum();l.call(e,this.that,new es(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Ir(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Va(this),s.start();as(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Pr(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Ir(t,i),l=t.clientX,u=t.clientY;Vr(t.view),is(t),a.mouse=[c,this.__zoom.invert(c)],Va(this),a.start();function d(e){if(as(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Ir(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Hr(e.view,a.moved),as(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Ir(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);as(r),s>0?Pr(this).transition().duration(s).call(x,d,c,r):Pr(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(is(t),s=0;s<i;++s)c=r[s],l=Ir(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),Va(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(as(e),s=0;s<a;++s)c=i[s],l=Ir(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(is(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=Ir(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Pr(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:$o(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:$o(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:$o(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:$o([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var ps={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},ms=[[-1/0,-1/0],[1/0,1/0]],hs=[`Enter`,` `,`Escape`],gs={"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`},_s;(function(e){e.Strict=`strict`,e.Loose=`loose`})(_s||={});var vs;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(vs||={});var ys;(function(e){e.Partial=`partial`,e.Full=`full`})(ys||={});var bs={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},xs;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(xs||={});var Ss;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Ss||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var Cs={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function ws(e){return e===null?null:e?`valid`:`invalid`}var Ts=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Es=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Ds=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Os=(e,t=[0,0])=>{let{width:n,height:r}=cc(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},ks=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):Ds(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,Hs(e,Ks(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Ws(r):{x:0,y:0,width:0,height:0}},As=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=Hs(n,Ks(e)),r=!0)}),r?Ws(n):{x:0,y:0,width:0,height:0}},js=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=Js(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Ms=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function Ns(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=cc(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function Ps({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=ac(As(Ns(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function Fs({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,ps.error005());else{let{width:e,height:t}=cc(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&sc(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=sc(d)?Rs(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,ps.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function Is({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Ms(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var Ls=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Rs=(e={x:0,y:0},t,n)=>({x:Ls(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ls(e.y,t[0][1],t[1][1]-(n?.height??0))});function zs(e,t,n){let{width:r,height:i}=cc(n),{x:a,y:o}=n.internals.positionAbsolute;return Rs(e,[[a,o],[a+r,o+i]],t)}var Bs=(e,t,n)=>e<t?Ls(Math.abs(e-t),1,t)/t:e>n?-Ls(Math.abs(e-n),1,t)/t:0,Vs=(e,t,n=15,r=40)=>[Bs(e.x,r,t.width-r)*n,Bs(e.y,r,t.height-r)*n],Hs=(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)}),Us=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Ws=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Gs=(e,t=[0,0])=>{let{x:n,y:r}=Ds(e)?e.internals.positionAbsolute:Os(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}},Ks=(e,t=[0,0])=>{let{x:n,y:r}=Ds(e)?e.internals.positionAbsolute:Os(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)}},qs=(e,t)=>Ws(Hs(Us(e),Us(t))),Js=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},Ys=(e,t)=>Js(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Xs=e=>Zs(e.width)&&Zs(e.height)&&Zs(e.x)&&Zs(e.y),Zs=e=>!isNaN(e)&&isFinite(e),Qs=(e,t)=>(e,t)=>{},$s=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ec=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?$s(s,o):s},tc=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function nc(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function rc(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=nc(e,n),i=nc(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=nc(e.top??e.y??0,n),i=nc(e.bottom??e.y??0,n),a=nc(e.left??e.x??0,t),o=nc(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function ic(e,t,n,r,i,a){let{x:o,y:s}=tc(e,[t,n,r]),{x:c,y:l}=tc({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var ac=(e,t,n,r,i,a)=>{let o=rc(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Ls(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=ic(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},oc=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function sc(e){return e!=null&&e!==`parent`}function cc(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function lc(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function uc(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function dc(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function fc(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function pc(e){return{...gs,...e||{}}}function mc(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=bc(e),s=ec({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?$s(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var hc=e=>({width:e.offsetWidth,height:e.offsetHeight}),gc=e=>e?.getRootNode?.()||window?.document,_c=[`INPUT`,`SELECT`,`TEXTAREA`];function vc(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?_c.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var yc=e=>`clientX`in e,bc=(e,t)=>{let n=yc(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},xc=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...hc(t)}})};function Sc({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Cc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function wc({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-Cc(t-r,a),n];case X.Right:return[t+Cc(r-t,a),n];case X.Top:return[t,n-Cc(n-i,a)];case X.Bottom:return[t,n+Cc(i-n,a)]}}function Tc({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=wc({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=wc({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Sc({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Ec({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Dc({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Oc({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=Hs(Ks(e),Ks(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),Ys({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},Ws(a))>0}var kc=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Ac=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),jc=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,ps.error006()),t;let r=n.getEdgeId||kc,i;return i=Ts(e)?{...e}:{...e,id:r(e)},Ac(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Mc({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Ec({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Nc={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},Pc=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.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},Fc=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Ic({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=Nc[t],c=Nc[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Pc({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Ec({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function Lc(e,t,n,r){let i=Math.min(Fc(e,t)/2,Fc(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function Rc({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=Ic({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=Lc(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function zc(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Bc(e){let{sourceNode:t,targetNode:n}=e;if(!zc(t)||!zc(n))return null;let r=t.internals.handleBounds||Vc(t.handles),i=n.internals.handleBounds||Vc(n.handles),a=Uc(r?.source??[],e.sourceHandle),o=Uc(e.connectionMode===_s.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,ps.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||X.Bottom,c=o?.position||X.Top,l=Hc(t,a,s),u=Hc(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Vc(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function Hc(e,t,n=X.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??cc(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case X.Top:return{x:i+o/2,y:a};case X.Right:return{x:i+o,y:a+s/2};case X.Bottom:return{x:i+o/2,y:a+s};case X.Left:return{x:i,y:a+s/2}}}function Uc(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function Wc(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function Gc(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=Wc(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var Kc=1e3,qc=10,Jc={nodeOrigin:[0,0],nodeExtent:ms,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},Yc={...Jc,checkEquality:!0};function Xc(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function Zc(e,t,n){let r=Xc(Jc,n);for(let n of e.values())if(n.parentId)nl(n,e,t,r);else{let e=Rs(Os(n,r.nodeOrigin),sc(n.extent)?n.extent:r.nodeExtent,cc(n));n.internals.positionAbsolute=e}}function Qc(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function $c(e){return e===`manual`}function el(e,t,n,r={}){let i=Xc(Yc,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!$c(i.zIndexMode)?Kc:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=Rs(Os(u,i.nodeOrigin),sc(u.extent)?u.extent:i.nodeExtent,cc(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:Qc(u,e),z:rl(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&nl(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function tl(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function nl(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=Xc(Jc,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}tl(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*qc),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=il(e,u,o,s,a&&!$c(c)?Kc:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function rl(e,t,n){let r=Zs(e.zIndex)?e.zIndex:0;return $c(n)?r:r+(e.selected?t:0)}function il(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=cc(e),l=Os(e,n),u=sc(e.extent)?Rs(l,e.extent,c):l,d=Rs({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=zs(d,c,t));let f=rl(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function al(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=qs(a.get(n.parentId)?.expandedRect??Gs(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=cc(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function ol(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=hc(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=sc(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=zs(h,s,n))}else m&&(h=Rs(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:xc(`source`,r.nodeElement,p,d,e.id),target:xc(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&nl(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:Gs(g,i)}))}}if(f.length>0){let e=al(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function sl({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function cl(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function ll(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;cl(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),cl(`target`,s,c,e,i,o),t.set(r.id,r)}}function ul(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:ul(n,t):!1}function dl(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function fl(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!ul(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function pl({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function ml({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=$s(a,t);return{x:o.x-a.x,y:o.y-a.y}}function hl({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=Pr(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?Us(As(s)):null,x=v&&l?ml({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:$s(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=Fs({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=pl({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=Vs(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=mc(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=fl(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=pl({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=Yr().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=mc(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=bc(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=mc(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=bc(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=bc(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=pl({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!dl(t,`.${g}`,v))&&(!_||dl(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function gl(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())Ys(i,Gs(e))>0&&r.push(e);return r}var _l=250;function vl(e,t,n,r){let i=[],a=1/0,o=gl(e,n,t+_l);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Hc(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function yl(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Hc(o,c,c.position,!0)}:c}function bl(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function xl(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Sl=()=>!0;function Cl(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Sl,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=gc(e.target),E=0,D,{x:O,y:k}=bc(e),A=bl(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=yl(i,A,r,c,t);if(!N)return;let P=bc(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=Vs(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:Hc(V,B,X.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:Cs[B.position],toNode:null,pointer:P};function U(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&U();function W(e){if(!M){let{x:t,y:n}=bc(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;U()}if(!x()||!B){ee(e);return}let a=b();P=bc(e,j),D=vl(ec(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=wl(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=xl(!!D,s.isValid);let u=c.get(i),f=u?Hc(u,B,X.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?tc({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:Cs[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function ee(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,W),T.removeEventListener(`mouseup`,ee),T.removeEventListener(`touchmove`,W),T.removeEventListener(`touchend`,ee)}}T.addEventListener(`mousemove`,W),T.addEventListener(`mouseup`,ee),T.addEventListener(`touchmove`,W),T.addEventListener(`touchend`,ee)}function wl(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Sl,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=bc(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=bl(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===_s.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=yl(t,e,a,u,n,!0)}return _}var Tl={onPointerDown:Cl,isValid:wl};function El({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Pr(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&oc()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=fs().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:Ir}}var Dl=e=>({x:e.x,y:e.y,zoom:e.k}),Ol=({x:e,y:t,zoom:n})=>ns.translate(e,t).scale(n),kl=(e,t)=>e.target.closest(`.${t}`),Al=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),jl=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Ml=(e,t=0,n=jl,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Nl=e=>{let t=e.ctrlKey&&oc()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Pl({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(kl(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=Ir(u),t=d*2**Nl(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===vs.Vertical?0:u.deltaX*f,m=i===vs.Horizontal?0:u.deltaY*f;!oc()&&u.shiftKey&&i!==vs.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Dl(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function Fl({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=kl(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Il({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Dl(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function Ll({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Al(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Dl(a.transform))}}function Rl({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Al(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Dl(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function zl({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(kl(f,`${u}-flow__node`)||kl(f,`${u}-flow__edge`)||kl(f,`${u}-flow__selection`)||kl(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||kl(f,c)&&h||kl(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function Bl({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=fs().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=Pr(e).call(f);y({x:i.x,y:i.y,zoom:Ls(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Nl);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Qi:fa).transform(Ml(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!Zs(D)||D<0?0:D);let A=k?Pl({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):Fl({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=Il({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=Ll({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=Rl({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=zl({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Ol(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Ol(e);return await g(n,t),n}function x(e){if(p){let t=Ol(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?rs(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Qi:fa).scaleTo(Ml(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Qi:fa).scaleBy(Ml(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!Zs(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var Vl;(function(e){e.Line=`line`,e.Handle=`handle`})(Vl||={});function Hl({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function Ul(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function Wl(e,t){return Math.max(0,t-e)}function Gl(e,t){return Math.max(0,e-t)}function Kl(e,t,n){return Math.max(0,t-e,e-n)}function ql(e,t){return e?!t:t}function Jl(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=Kl(E,h,g),j=Kl(D,_,v);if(o){let e=0,t=0;c&&w<0?e=Wl(y+w+O,o[0][0]):!c&&w>0&&(e=Gl(y+E+O,o[1][0])),l&&T<0?t=Wl(b+T+k,o[0][1]):!l&&T>0&&(t=Gl(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=Gl(y+w,s[0][0]):!c&&w<0&&(e=Wl(y+E,s[1][0])),l&&T>0?t=Gl(b+T,s[0][1]):!l&&T<0&&(t=Wl(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=Kl(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?Gl(b+k+E/C,o[1][1])*C:Wl(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?Wl(b+E/C,s[1][1])*C:Gl(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=Kl(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?Gl(y+D*C+O,o[1][0])/C:Wl(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?Wl(y+D*C,s[1][0])/C:Gl(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(ql(c,l)?-w:w)/C:w=(ql(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var Yl={width:0,height:0,x:0,y:0},Xl={...Yl,pointerX:0,pointerY:0,aspectRatio:1};function Zl(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function Ql({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Pr(e),o={controlDirection:Ul(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...Yl},h={...Xl};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:Ul(e)};let g,_=null,v=[],y,b,x,S=!1,C=Yr().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=mc(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=sc(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=Zl(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=mc(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=Jl(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let F=Hl({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(S=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var $l=t((e=>{var t=se();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),eu=t(((e,t)=>{t.exports=$l()})),tu=t((e=>{var t=se(),n=eu();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),nu=e(t(((e,t)=>{t.exports=tu()}))(),1),ru=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},iu=e=>e?ru(e):ru,{useDebugValue:au}=q.default,{useSyncExternalStoreWithSelector:ou}=nu.default,su=e=>e;function cu(e,t=su,n){let r=ou(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return au(r),r}var lu=(e,t)=>{let n=iu(e),r=(e,r=t)=>cu(n,e,r);return Object.assign(r,n),r},uu=(e,t)=>e?lu(e,t):lu;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}z();var du=(0,q.createContext)(null),fu=du.Provider,pu=ps.error001(`react`);function Q(e,t){let n=(0,q.useContext)(du);if(n===null)throw Error(pu);return cu(n,e,t)}function $(){let e=(0,q.useContext)(du);if(e===null)throw Error(pu);return(0,q.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var mu={display:`none`},hu={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},gu=`react-flow__node-desc`,_u=`react-flow__edge-desc`,vu=`react-flow__aria-live`,yu=e=>e.ariaLiveMessage,bu=e=>e.ariaLabelConfig;function xu({rfId:e}){let t=Q(yu);return(0,J.jsx)(`div`,{id:`${vu}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:hu,children:t})}function Su({rfId:e,disableKeyboardA11y:t}){let n=Q(bu);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{id:`${gu}-${e}`,style:mu,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,J.jsx)(`div`,{id:`${_u}-${e}`,style:mu,children:n[`edge.a11yDescription.default`]}),!t&&(0,J.jsx)(xu,{rfId:e})]})}var Cu=(0,q.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,J.jsx)(`div`,{className:Y([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Cu.displayName=`Panel`;var wu=`https://reactflow.dev?utm_source=attribution`;function Tu({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,J.jsx)(Cu,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${wu}`,children:(0,J.jsx)(`a`,{href:wu,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Eu=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}},Du=e=>e.id;function Ou(e,t){return Z(e.selectedNodes.map(Du),t.selectedNodes.map(Du))&&Z(e.selectedEdges.map(Du),t.selectedEdges.map(Du))}function ku({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(Eu,Ou);return(0,q.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Au=e=>!!e.onSelectionChangeHandlers;function ju({onSelectionChange:e}){let t=Q(Au);return e||t?(0,J.jsx)(ku,{onSelectionChange:e}):null}var Mu=[0,0],Nu={x:0,y:0,zoom:1},Pu=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],Fu=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}),Iu={translateExtent:ms,nodeOrigin:Mu,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Lu(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(Fu,Z),l=$();(0,q.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Iu,s()}),[]);let u=(0,q.useRef)(Iu);return(0,q.useEffect)(()=>{for(let s of Pu){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:pc(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Pu.map(t=>e[t])),null}function Ru(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function zu(e){let[t,n]=(0,q.useState)(e===`system`?null:e);return(0,q.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Ru(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Ru()?.matches?`dark`:`light`:t}var Bu=typeof document<`u`?document:null;function Vu(e=null,t={target:Bu,actInsideInputWithModifier:!0}){let[n,r]=(0,q.useState)(!1),i=(0,q.useRef)(!1),a=(0,q.useRef)(new Set([])),[o,s]=(0,q.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,`
|
|
3
|
+
`).replace(`
|
|
4
|
+
|
|
5
|
+
`,`
|
|
6
|
+
+`).split(`
|
|
7
|
+
`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,q.useEffect)(()=>{let n=t?.target??Bu,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&vc(e))return!1;let n=Uu(e.code,s);if(a.current.add(e[n]),Hu(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=Uu(e.code,s);Hu(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function Hu(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Uu(e,t){return t.includes(e)?`code`:`key`}var Wu=()=>{let e=$();return(0,q.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!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:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=ac(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return ec(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=tc(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Gu(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)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(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)Ku(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function Ku(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function qu(e,t){return Gu(e,t)}function Ju(e,t){return Gu(e,t)}function Yu(e,t){return{id:e,type:`select`,selected:t}}function Xu(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(Yu(a.id,e)))}return r}function Zu({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Qu(e){return{id:e.id,type:`remove`}}var $u=Qs(`React Flow`,`https://reactflow.dev/`);function ed(e,t,n={}){return jc(e,t,{...n,onError:n.onError??$u})}var td=e=>Es(e),nd=e=>Ts(e);function rd(e){return(0,q.forwardRef)(e)}var id=typeof window<`u`?q.useLayoutEffect:q.useEffect;function ad(e){let[t,n]=(0,q.useState)(BigInt(0)),[r]=(0,q.useState)(()=>od(()=>n(e=>e+BigInt(1))));return id(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function od(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var sd=(0,q.createContext)(null);function cd({children:e}){let t=$(),n=ad((0,q.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=Zu({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=ad((0,q.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(Zu({items:s,lookup:o}))},[])),i=(0,q.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,J.jsx)(sd.Provider,{value:i,children:e})}function ld(){let e=(0,q.useContext)(sd);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var ud=e=>!!e.panZoom;function dd(){let e=Wu(),t=$(),n=ld(),r=Q(ud),i=(0,q.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=td(e)?e:n.get(e.id),a=i.parentId?uc(i.position,i.measured,i.parentId,n,r):i.position;return Gs({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&td(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&nd(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await Is({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Qu);o?.(f),c(e)}if(m){let e=d.map(Qu);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=Xs(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=Gs(s?r:a),l=Ys(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=Xs(e)?e:a(e);if(!r)return!1;let i=Ys(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?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=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return ks(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??fc();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,q.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var fd=e=>e.selected,pd=typeof window<`u`?window:void 0;function md({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=$(),{deleteElements:r}=dd(),i=Vu(e,{actInsideInputWithModifier:!1}),a=Vu(t,{target:pd});(0,q.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(fd),edges:e.filter(fd)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,q.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function hd(e){let t=$();(0,q.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=hc(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,ps.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var gd={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},_d=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function vd({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=vs.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:y,paneClickDistance:b,selectionOnDrag:x}){let S=$(),C=(0,q.useRef)(null),{userSelectionActive:w,lib:T,connectionInProgress:E}=Q(_d,Z),D=Vu(p),O=(0,q.useRef)();hd(C);let k=(0,q.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),y||S.setState({transform:e})},[v,y]);return(0,q.useEffect)(()=>{if(C.current){O.current=Bl({domNode:C.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>S.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=S.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=S.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=S.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=O.current.getViewport();return S.setState({panZoom:O.current,transform:[e,t,n],domNode:C.current.closest(`.react-flow`)}),()=>{O.current?.destroy()}}},[]),(0,q.useEffect)(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:D,preventScrolling:m,noPanClassName:_,userSelectionActive:w,noWheelClassName:g,lib:T,onTransformChange:k,connectionInProgress:E,selectionOnDrag:x,paneClickDistance:b})},[e,t,n,r,i,a,o,s,c,D,m,_,w,g,T,k,E,x,b]),(0,J.jsx)(`div`,{className:`react-flow__renderer`,ref:C,style:gd,children:h})}var yd=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function bd(){let{userSelectionActive:e,userSelectionRect:t}=Q(yd,Z);return e&&t?(0,J.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}var xd=(e,t)=>n=>{n.target===t.current&&e?.(n)},Sd=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Cd({isSelecting:e,selectionKeyPressed:t,selectionMode:n=ys.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,q.useRef)(0),_=$(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=Q(Sd,Z),C=y&&(e||v),w=(0,q.useRef)(null),T=(0,q.useRef)(),E=(0,q.useRef)(new Set),D=(0,q.useRef)(new Set),O=(0,q.useRef)(!1),k=(0,q.useRef)(!1),A=(0,q.useRef)({x:0,y:0}),j=(0,q.useRef)(!1),M=e=>{if(k.current||O.current||_.getState().connection.inProgress){k.current=!1,O.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},N=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},P=d?e=>d(e):void 0,F=e=>{k.current&&=(e.stopPropagation(),!1)},I=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(T.current=i?.getBoundingClientRect(),!T.current)return;let s=n.target===w.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),k.current=!1;let{x:c,y:l}=bc(n.nativeEvent,T.current),u=ec({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function L(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=tc(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=E.current,g=D.current;E.current=new Set(js(a,m,i,n===ys.Partial,!0).map(e=>e.id)),D.current=new Set;let v=u?.selectable??!0;for(let e of E.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&D.current.add(e)}}dc(h,E.current)||c(Xu(a,E.current,!0)),dc(g,D.current)||l(Xu(o,D.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function R(){if(!i||!T.current)return;let[e,t]=Vs(A.current,T.current,S);x({x:e,y:t}).then(e=>{if(!k.current||!e){g.current=requestAnimationFrame(R);return}let{x:t,y:n}=A.current;L(t,n),g.current=requestAnimationFrame(R)})}let z=()=>{cancelAnimationFrame(g.current),g.current=0,j.current=!1};(0,q.useEffect)(()=>()=>z(),[]);let B=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!T.current||!n)return;let{x:o,y:c}=bc(e.nativeEvent,T.current);A.current={x:o,y:c};let l=tc({x:n.startX,y:n.startY},r);if(!k.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}k.current=!0,j.current||=(R(),!0),L(o,c)},V=e=>{if(!C){e.target===w.current&&_.getState().connection.inProgress&&(O.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===w.current&&_.getState().userSelectionRect&&M?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),k.current&&(c?.(e),_.setState({nodesSelectionActive:E.current.size>0})),z())},H=e=>{e.target?.releasePointerCapture?.(e.pointerId),z()},U=r===!0||Array.isArray(r)&&r.includes(0);return(0,J.jsxs)(`div`,{className:Y([`react-flow__pane`,{draggable:U,dragging:b,selection:e}]),onClick:C?void 0:xd(M,w),onContextMenu:xd(N,w),onWheel:xd(P,w),onPointerEnter:C?void 0:f,onPointerMove:C?B:p,onPointerUp:V,onPointerCancel:C?H:void 0,onPointerDownCapture:C?I:void 0,onClickCapture:C?F:void 0,onPointerLeave:m,ref:w,style:gd,children:[h,(0,J.jsx)(bd,{})]})}function wd({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,ps.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Td({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=$(),[c,l]=(0,q.useState)(!1),u=(0,q.useRef)();return(0,q.useEffect)(()=>{if(!t)return u.current=hl({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{wd({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,q.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var Ed=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Dd(){let e=$();return(0,q.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Ed(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=$s(t,i));let{position:a,positionAbsolute:s}=Fs({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Od=(0,q.createContext)(null),kd=Od.Provider;Od.Consumer;var Ad=()=>(0,q.useContext)(Od),jd=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Md=(0,q.createContext)(null);function Nd({children:e}){let t=Q(jd,Z);return(0,J.jsx)(Md.Provider,{value:t,children:e})}function Pd(){let e=(0,q.useContext)(Md);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var Fd={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},Id=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return Fd;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===_s.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Ld({type:e=`source`,position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=$(),_=Ad(),{connectOnClick:v,noPanClassName:y,rfId:b}=Pd(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=Q(Id(_,m,e),Z);_||g.getState().onError?.(`010`,ps.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(ed(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=yc(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Tl.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:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,J.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:Y([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=gc(t.target),h=n||c,{connection:v,isValid:y}=Tl.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var Rd=(0,q.memo)(rd(Ld));function zd({data:e,isConnectable:t,sourcePosition:n=X.Bottom}){return(0,J.jsxs)(J.Fragment,{children:[e?.label,(0,J.jsx)(Rd,{type:`source`,position:n,isConnectable:t})]})}function Bd({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom}){return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Rd,{type:`target`,position:n,isConnectable:t}),e?.label,(0,J.jsx)(Rd,{type:`source`,position:r,isConnectable:t})]})}function Vd(){return null}function Hd({data:e,isConnectable:t,targetPosition:n=X.Top}){return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Rd,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Ud={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Wd={input:zd,default:Bd,output:Hd,group:Vd};function Gd(e){return e.internals.handleBounds===void 0?{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}}var Kd=e=>{let{width:t,height:n,x:r,y:i}=As(e.nodeLookup,{filter:e=>!!e.selected});return{width:Zs(t)?t:null,height:Zs(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function qd({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=$(),{width:i,height:a,transformString:o,userSelectionActive:s}=Q(Kd,Z),c=Dd(),l=(0,q.useRef)(null);(0,q.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Td({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,J.jsx)(`div`,{className:Y([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,J.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(Ud,e.key)&&(e.preventDefault(),c({direction:Ud[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var Jd=typeof window<`u`?window:void 0,Yd=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Xd({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=Q(Yd,Z),z=Vu(l,{target:Jd}),B=Vu(h,{target:Jd}),V=B||w,H=B||b,U=u&&V!==!0,W=z||R||U;return md({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,J.jsx)(vd,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:H,panActivationKeyPressed:B,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&V,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:U,children:(0,J.jsxs)(Cd,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:V,autoPanOnSelection:T,isSelecting:!!W,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:U,children:[e,L&&(0,J.jsx)(qd,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}Xd.displayName=`FlowRenderer`;var Zd=(0,q.memo)(Xd),Qd=e=>t=>e?js(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function $d(e){return Q((0,q.useCallback)(Qd(e),[e]),Z)}var ef=e=>e.updateNodeInternals;function tf(){let e=Q(ef),[t]=(0,q.useState)(()=>typeof ResizeObserver>`u`?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,q.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function nf({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=$(),a=(0,q.useRef)(null),o=(0,q.useRef)(null),s=(0,q.useRef)(e.sourcePosition),c=(0,q.useRef)(e.targetPosition),l=(0,q.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,q.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,q.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,q.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function rf({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=Q(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Z),S=y.type||`default`,C=g?.[S]||Wd[S];C===void 0&&(v?.(`003`,ps.error003(S)),S=`default`,C=g?.default||Wd.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=$(),k=lc(y),A=nf({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Td({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=Dd();if(y.hidden)return null;let N=cc(y),P=Gd(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&wd({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},H=t=>{if(!(vc(t.nativeEvent)||m)){if(hs.includes(t.key)&&T){let n=t.key===`Escape`;wd({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(Ud,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:Ud[t.key],factor:t.shiftKey?4:1})}}},U=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(js(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,J.jsx)(`div`,{className:Y([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:V,onDoubleClick:B,onKeyDown:D?H:void 0,tabIndex:D?0:void 0,onFocus:D?U:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${gu}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,J.jsx)(kd,{value:e,children:(0,J.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var af=(0,q.memo)(rf),of=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function sf(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=Q(of,Z),a=$d(e.onlyRenderVisibleElements),o=tf();return(0,J.jsx)(`div`,{className:`react-flow__nodes`,style:gd,children:a.map(a=>(0,J.jsx)(af,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}sf.displayName=`NodeRenderer`;var cf=(0,q.memo)(sf);function lf(e){return Q((0,q.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Oc({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Z)}var uf=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,J.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},df=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,J.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},ff={[Ss.Arrow]:uf,[Ss.ArrowClosed]:df};function pf(e){let t=$();return(0,q.useMemo)(()=>Object.prototype.hasOwnProperty.call(ff,e)?ff[e]:(t.getState().onError?.(`009`,ps.error009(e)),null),[e])}var mf=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=pf(t);return c?(0,J.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,J.jsx)(c,{color:n,strokeWidth:o})}):null},hf=({defaultColor:e,rfId:t})=>{let n=Q(e=>e.edges),r=Q(e=>e.defaultEdgeOptions),i=(0,q.useMemo)(()=>Gc(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,J.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,J.jsx)(`defs`,{children:i.map(e=>(0,J.jsx)(mf,{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};hf.displayName=`MarkerDefinitions`;var gf=(0,q.memo)(hf);function _f({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,q.useState)({x:1,y:0,width:0,height:0}),p=Y([`react-flow__edge-textwrapper`,l]),m=(0,q.useRef)(null);return(0,q.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,J.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,J.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,J.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}_f.displayName=`EdgeText`;var vf=(0,q.memo)(_f);function yf({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`path`,{...u,d:e,fill:`none`,className:Y([`react-flow__edge-path`,u.className])}),l?(0,J.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&Zs(t)&&Zs(n)?(0,J.jsx)(vf,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function bf({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function xf({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top}){let[o,s]=bf({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=bf({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Sc({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Sf(e){return(0,q.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=xf({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,J.jsx)(yf,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Cf=Sf({isInternal:!1}),wf=Sf({isInternal:!0});Cf.displayName=`SimpleBezierEdge`,wf.displayName=`SimpleBezierEdgeInternal`;function Tf(e){return(0,q.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=X.Bottom,targetPosition:m=X.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Rc({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,J.jsx)(yf,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Ef=Tf({isInternal:!1}),Df=Tf({isInternal:!0});Ef.displayName=`SmoothStepEdge`,Df.displayName=`SmoothStepEdgeInternal`;function Of(e){return(0,q.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,J.jsx)(Ef,{...n,id:r,pathOptions:(0,q.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var kf=Of({isInternal:!1}),Af=Of({isInternal:!0});kf.displayName=`StepEdge`,Af.displayName=`StepEdgeInternal`;function jf(e){return(0,q.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Mc({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,J.jsx)(yf,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Mf=jf({isInternal:!1}),Nf=jf({isInternal:!0});Mf.displayName=`StraightEdge`,Nf.displayName=`StraightEdgeInternal`;function Pf(e){return(0,q.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=X.Bottom,targetPosition:s=X.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Tc({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,J.jsx)(yf,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Ff=Pf({isInternal:!1}),If=Pf({isInternal:!0});Ff.displayName=`BezierEdge`,If.displayName=`BezierEdgeInternal`;var Lf={default:If,straight:Nf,step:Af,smoothstep:Df,simplebezier:wf},Rf={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},zf=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,Bf=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,Vf=`react-flow__edgeupdater`;function Hf({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,J.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:Y([Vf,`${Vf}-${s}`]),cx:zf(t,r,e),cy:Bf(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Uf({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=$(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Tl.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,J.jsxs)(J.Fragment,{children:[(e===!0||e===`source`)&&(0,J.jsx)(Hf,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,J.jsx)(Hf,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Wf({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=Q(t=>t.edgeLookup.get(e)),b=Q(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||Lf[x];S===void 0&&(_?.(`011`,ps.error011(x)),x=`default`,S=h?.default||Lf.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),E=(0,q.useRef)(null),[D,O]=(0,q.useState)(!1),[k,A]=(0,q.useState)(!1),j=$(),{zIndex:M=y.zIndex,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R}=Q((0,q.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return Rf;let i=Bc({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=Dc({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Rf,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex,_]),Z),z=(0,q.useMemo)(()=>y.markerStart?`url('#${Wc(y.markerStart,m)}')`:void 0,[y.markerStart,m]),B=(0,q.useMemo)(()=>y.markerEnd?`url('#${Wc(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||N===null||P===null||F===null||I===null)return null;let V=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=j.getState();T&&(j.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),E.current?.blur()):n([e])),i&&i(t,y)},H=a?e=>{a(e,{...y})}:void 0,U=o?e=>{o(e,{...y})}:void 0,W=s?e=>{s(e,{...y})}:void 0,ee=c?e=>{c(e,{...y})}:void 0,te=l?e=>{l(e,{...y})}:void 0;return(0,J.jsx)(`svg`,{style:{zIndex:M},children:(0,J.jsxs)(`g`,{className:Y([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:D,selectable:T}]),onClick:V,onDoubleClick:H,onContextMenu:U,onMouseEnter:W,onMouseMove:ee,onMouseLeave:te,onKeyDown:C?t=>{if(!v&&hs.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=j.getState();t.key===`Escape`?(E.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${_u}-${m}`:void 0,ref:E,...y.domAttributes,children:[!k&&(0,J.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:z,markerEnd:B,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,J.jsx)(Uf,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R,setUpdateHover:O,setReconnecting:A})]})})}var Gf=(0,q.memo)(Wf),Kf=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function qf({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=Q(Kf,Z),b=lf(t);return(0,J.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,J.jsx)(gf,{defaultColor:e,rfId:n}),b.map(e=>(0,J.jsx)(Gf,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}qf.displayName=`EdgeRenderer`;var Jf=(0,q.memo)(qf),Yf=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function Xf({children:e}){let t=$(),n=(0,q.useRef)(null),[r]=(0,q.useState)(()=>t.getState().transform);return id(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=Yf(r)))};return r(),t.subscribe(r)},[t]),(0,J.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:Yf(r)},children:e})}function Zf(e){let t=dd(),n=(0,q.useRef)(!1);(0,q.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var Qf=e=>e.panZoom?.syncViewport;function $f(e){let t=Q(Qf),n=$();return(0,q.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function ep(e){return e.connection.inProgress?{...e.connection,to:ec(e.connection.to,e.transform)}:{...e.connection}}function tp(e){return e?t=>e(ep(t)):ep}function np(e){return Q(tp(e),Z)}var rp=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ip({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=Q(rp,Z);return a&&i&&c?(0,J.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,J.jsx)(`g`,{className:Y([`react-flow__connection`,ws(s)]),children:(0,J.jsx)(ap,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var ap=({style:e,type:t=xs.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=np();if(!i)return;if(n)return(0,J.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:ws(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case xs.Bezier:[m]=Tc(h);break;case xs.SimpleBezier:[m]=xf(h);break;case xs.Step:[m]=Rc({...h,borderRadius:0});break;case xs.SmoothStep:[m]=Rc(h);break;default:[m]=Mc(h)}return(0,J.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};ap.displayName=`ConnectionLine`;var op={};function sp(e=op){(0,q.useRef)(e),$(),(0,q.useEffect)(()=>{},[e])}function cp(){$(),(0,q.useRef)(!1),(0,q.useEffect)(()=>{},[])}function lp({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:U,onPaneMouseLeave:W,onPaneScroll:ee,onPaneContextMenu:te,paneClickDistance:ne,nodeClickDistance:G,onEdgeContextMenu:re,onEdgeMouseEnter:ie,onEdgeMouseMove:ae,onEdgeMouseLeave:oe,reconnectRadius:se,onReconnect:ce,onReconnectStart:le,onReconnectEnd:ue,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,viewport:_e,onViewportChange:ve,nodesDraggable:ye}){return sp(e),sp(t),cp(),Zf(n),$f(_e),(0,J.jsx)(Zd,{onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:U,onPaneMouseLeave:W,onPaneContextMenu:te,onPaneScroll:ee,paneClickDistance:ne,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,autoPanOnSelection:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,onViewportChange:ve,isControlledViewport:!!_e,children:(0,J.jsxs)(Xf,{children:[(0,J.jsx)(Jf,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ce,onReconnectStart:le,onReconnectEnd:ue,onlyRenderVisibleElements:T,onEdgeContextMenu:re,onEdgeMouseEnter:ie,onEdgeMouseMove:ae,onEdgeMouseLeave:oe,reconnectRadius:se,defaultMarkerColor:M,noPanClassName:pe,disableKeyboardA11y:me,rfId:ge}),(0,J.jsx)(ip,{style:h,type:m,component:g,containerStyle:_}),(0,J.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,J.jsx)(cf,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:G,onlyRenderVisibleElements:T,noPanClassName:pe,noDragClassName:de,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,nodesDraggable:ye}),(0,J.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}lp.displayName=`GraphView`;var up=(0,q.memo)(lp),dp=Qs(`React Flow`,`https://reactflow.dev/`),fp=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??ms;ll(h,g,_);let{nodesInitialized:x}=el(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=ac(As(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:ms,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:_s.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,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:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...bs},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:dp,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:gs,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},pp=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>uu((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await Ps({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...fp({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=el(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();ll(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=ol(e,n,r,i,a,o,l);d&&(Zc(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=Hc(e,o.fromHandle,X.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=al(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(qu(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(Ju(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>Yu(e,!0)));return}i(Xu(r,new Set([...e]),!0)),a(Xu(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>Yu(e,!0)));return}a(Xu(n,new Set([...e]))),i(Xu(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(Yu(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(Yu(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,Yu(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,Yu(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(el(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return sl({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...bs}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...fp()})}},Object.is);function mp({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,q.useState)(()=>pp({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,J.jsx)(fu,{value:m,children:(0,J.jsx)(cd,{children:(0,J.jsx)(Nd,{children:p})})})}function hp({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,q.useContext)(du)?(0,J.jsx)(J.Fragment,{children:e}):(0,J.jsx)(mp,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var gp={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function _p({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onSelectionChange:k,onSelectionDragStart:A,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:F,onBeforeDelete:I,connectionMode:L,connectionLineType:R=xs.Bezier,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:V,deleteKeyCode:H=`Backspace`,selectionKeyCode:U=`Shift`,selectionOnDrag:W=!1,selectionMode:ee=ys.Full,panActivationKeyCode:te=`Space`,multiSelectionKeyCode:ne=oc()?`Meta`:`Control`,zoomActivationKeyCode:G=oc()?`Meta`:`Control`,snapToGrid:re,snapGrid:ie,onlyRenderVisibleElements:ae=!1,selectNodesOnDrag:oe,nodesDraggable:se,autoPanOnNodeFocus:ce,nodesConnectable:le,nodesFocusable:ue,nodeOrigin:de=Mu,edgesFocusable:fe,edgesReconnectable:pe,elementsSelectable:me=!0,defaultViewport:he=Nu,minZoom:ge=.5,maxZoom:_e=2,translateExtent:ve=ms,preventScrolling:ye=!0,nodeExtent:be,defaultMarkerColor:xe=`#b1b1b7`,zoomOnScroll:Se=!0,zoomOnPinch:Ce=!0,panOnScroll:we=!1,panOnScrollSpeed:Te=.5,panOnScrollMode:K=vs.Free,zoomOnDoubleClick:Ee=!0,panOnDrag:De=!0,onPaneClick:Oe,onPaneMouseEnter:ke,onPaneMouseMove:Ae,onPaneMouseLeave:je,onPaneScroll:Me,onPaneContextMenu:Ne,paneClickDistance:Pe=1,nodeClickDistance:Fe=0,children:Ie,onReconnect:Le,onReconnectStart:Re,onReconnectEnd:ze,onEdgeContextMenu:Be,onEdgeDoubleClick:Ve,onEdgeMouseEnter:He,onEdgeMouseMove:Ue,onEdgeMouseLeave:We,reconnectRadius:Ge=10,onNodesChange:Ke,onEdgesChange:qe,noDragClassName:Je=`nodrag`,noWheelClassName:Ye=`nowheel`,noPanClassName:Xe=`nopan`,fitView:Ze,fitViewOptions:Qe,connectOnClick:$e,attributionPosition:et,proOptions:tt,defaultEdgeOptions:nt,elevateNodesOnSelect:rt=!0,elevateEdgesOnSelect:it=!1,disableKeyboardA11y:at=!1,autoPanOnConnect:ot,autoPanOnNodeDrag:st,autoPanOnSelection:ct=!0,autoPanSpeed:lt,connectionRadius:ut,isValidConnection:dt,onError:ft,style:pt,id:mt,nodeDragThreshold:ht,connectionDragThreshold:gt,viewport:_t,onViewportChange:vt,width:yt,height:bt,colorMode:xt=`light`,debug:St,onScroll:Ct,ariaLabelConfig:wt,zIndexMode:Tt=`basic`,...Et},Dt){let Ot=mt||`1`,kt=zu(xt),At=(0,q.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Ct?.(e)},[Ct]);return(0,J.jsx)(`div`,{"data-testid":`rf__wrapper`,...Et,onScroll:At,style:{...pt,...gp},ref:Dt,className:Y([`react-flow`,i,kt]),id:mt,role:`application`,children:(0,J.jsxs)(hp,{nodes:e,edges:t,width:yt,height:bt,fitView:Ze,fitViewOptions:Qe,minZoom:ge,maxZoom:_e,nodeOrigin:de,nodeExtent:be,zIndexMode:Tt,children:[(0,J.jsx)(Lu,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:se,autoPanOnNodeFocus:ce,nodesConnectable:le,nodesFocusable:ue,edgesFocusable:fe,edgesReconnectable:pe,elementsSelectable:me,elevateNodesOnSelect:rt,elevateEdgesOnSelect:it,minZoom:ge,maxZoom:_e,nodeExtent:be,onNodesChange:Ke,onEdgesChange:qe,snapToGrid:re,snapGrid:ie,connectionMode:L,translateExtent:ve,connectOnClick:$e,defaultEdgeOptions:nt,fitView:Ze,fitViewOptions:Qe,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:j,onSelectionDragStart:A,onSelectionDragStop:M,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:Xe,nodeOrigin:de,rfId:Ot,autoPanOnConnect:ot,autoPanOnNodeDrag:st,autoPanSpeed:lt,onError:ft,connectionRadius:ut,isValidConnection:dt,selectNodesOnDrag:oe,nodeDragThreshold:ht,connectionDragThreshold:gt,onBeforeDelete:I,debug:St,ariaLabelConfig:wt,zIndexMode:Tt}),(0,J.jsx)(up,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:R,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:V,selectionKeyCode:U,selectionOnDrag:W,selectionMode:ee,deleteKeyCode:H,multiSelectionKeyCode:ne,panActivationKeyCode:te,zoomActivationKeyCode:G,onlyRenderVisibleElements:ae,defaultViewport:he,translateExtent:ve,minZoom:ge,maxZoom:_e,preventScrolling:ye,zoomOnScroll:Se,zoomOnPinch:Ce,zoomOnDoubleClick:Ee,panOnScroll:we,panOnScrollSpeed:Te,panOnScrollMode:K,panOnDrag:De,autoPanOnSelection:ct,onPaneClick:Oe,onPaneMouseEnter:ke,onPaneMouseMove:Ae,onPaneMouseLeave:je,onPaneScroll:Me,onPaneContextMenu:Ne,paneClickDistance:Pe,nodeClickDistance:Fe,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:F,onReconnect:Le,onReconnectStart:Re,onReconnectEnd:ze,onEdgeContextMenu:Be,onEdgeDoubleClick:Ve,onEdgeMouseEnter:He,onEdgeMouseMove:Ue,onEdgeMouseLeave:We,reconnectRadius:Ge,defaultMarkerColor:xe,noDragClassName:Je,noWheelClassName:Ye,noPanClassName:Xe,rfId:Ot,disableKeyboardA11y:at,nodeExtent:be,viewport:_t,onViewportChange:vt,nodesDraggable:se}),(0,J.jsx)(ju,{onSelectionChange:k}),Ie,(0,J.jsx)(Tu,{proOptions:tt,position:et}),(0,J.jsx)(Su,{rfId:Ot,disableKeyboardA11y:at})]})})}var vp=rd(_p);ps.error014();function yp(e){return Q((0,q.useCallback)(t=>t.nodeLookup.get(e),[e]),Z)}function bp({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,J.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Y([`react-flow__background-pattern`,n,r])})}function xp({radius:e,className:t}){return(0,J.jsx)(`circle`,{cx:e,cy:e,r:e,className:Y([`react-flow__background-pattern`,`dots`,t])})}var Sp;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Sp||={});var Cp={[Sp.Dots]:1,[Sp.Lines]:1,[Sp.Cross]:6},wp=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Tp({id:e,variant:t=Sp.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,q.useRef)(null),{transform:f,patternId:p}=Q(wp,Z),m=r||Cp[t],h=t===Sp.Dots,g=t===Sp.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]+x[0]/2,b[1]*f[2]+x[1]/2],C=`${p}${e||``}`;return(0,J.jsxs)(`svg`,{className:Y([`react-flow__background`,l]),style:{...c,...gd,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,J.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,J.jsx)(xp,{radius:y/2,className:u}):(0,J.jsx)(bp,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,J.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}Tp.displayName=`Background`;var Ep=(0,q.memo)(Tp);function Dp(){return(0,J.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,J.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Op(){return(0,J.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,J.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function kp(){return(0,J.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,J.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 Ap(){return(0,J.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,J.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 jp(){return(0,J.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,J.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 Mp({children:e,className:t,...n}){return(0,J.jsx)(`button`,{type:`button`,className:Y([`react-flow__controls-button`,t]),...n,children:e})}var Np=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Pp({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=$(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=Q(Np,Z),{zoomIn:y,zoomOut:b,fitView:x}=dd();return(0,J.jsxs)(Cu,{className:Y([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Mp,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,J.jsx)(Dp,{})}),(0,J.jsx)(Mp,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,J.jsx)(Op,{})})]}),n&&(0,J.jsx)(Mp,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,J.jsx)(kp,{})}),r&&(0,J.jsx)(Mp,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,J.jsx)(jp,{}):(0,J.jsx)(Ap,{})}),u]})}Pp.displayName=`Controls`;var Fp=(0,q.memo)(Pp);function Ip({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,J.jsx)(`rect`,{className:Y([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var Lp=(0,q.memo)(Ip),Rp=e=>e.nodes.map(e=>e.id),zp=e=>e instanceof Function?e:()=>e;function Bp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Lp,onClick:o}){let s=Q(Rp,Z),c=zp(t),l=zp(e),u=zp(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,J.jsx)(J.Fragment,{children:s.map(e=>(0,J.jsx)(Hp,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Vp({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=Q(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=cc(r);return{node:r,x:i,y:a,width:o,height:s}},Z);return!l||l.hidden||!lc(l)?null:(0,J.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var Hp=(0,q.memo)(Vp),Up=(0,q.memo)(Bp),Wp=200,Gp=150,Kp=e=>!e.hidden,qp=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?qs(As(e.nodeLookup,{filter:Kp}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Jp=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Yp=(e,t)=>Jp(e.viewBB,t.viewBB)&&Jp(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,Xp=`react-flow__minimap-desc`;function Zp({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=$(),S=(0,q.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:E,translateExtent:D,flowWidth:O,flowHeight:k,ariaLabelConfig:A}=Q(qp,Yp),j=e?.width??Wp,M=e?.height??Gp,N=C.width/j,P=C.height/M,F=Math.max(N,P),I=F*j,L=F*M,R=b*F,z=C.x-(I-C.width)/2-R,B=C.y-(L-C.height)/2-R,V=I+R*2,H=L+R*2,U=`${Xp}-${T}`,W=(0,q.useRef)(0),ee=(0,q.useRef)();W.current=F,(0,q.useEffect)(()=>{if(S.current&&E)return ee.current=El({domNode:S.current,panZoom:E,getTransform:()=>x.getState().transform,getViewScale:()=>W.current}),()=>{ee.current?.destroy()}},[E]),(0,q.useEffect)(()=>{ee.current?.update({translateExtent:D,width:O,height:k,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,D,O,k]);let te=p?e=>{let[t,n]=ee.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ne=m?(0,q.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,G=_??A[`minimap.ariaLabel`];return(0,J.jsx)(Cu,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*F:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:Y([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,J.jsxs)(`svg`,{width:j,height:M,viewBox:`${z} ${B} ${V} ${H}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":U,ref:S,onClick:te,children:[G&&(0,J.jsx)(`title`,{id:U,children:G}),(0,J.jsx)(Up,{onClick:ne,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,J.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${z-R},${B-R}h${V+R*2}v${H+R*2}h${-V-R*2}z
|
|
8
|
+
M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}Zp.displayName=`MiniMap`;var Qp=(0,q.memo)(Zp),$p=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,em={[Vl.Line]:`right`,[Vl.Handle]:`bottom-right`};function tm({nodeId:e,position:t,variant:n=Vl.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=Ad(),y=typeof e==`string`?e:v,b=$(),x=(0,q.useRef)(null),S=n===Vl.Handle,C=Q((0,q.useCallback)($p(S&&p),[S,p]),Z),w=(0,q.useRef)(null),T=t??em[n];(0,q.useEffect)(()=>{if(!(!x.current||!y))return w.current||=Ql({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=al([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...uc({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]);let E=T.split(`-`);return(0,J.jsx)(`div`,{className:Y([`react-flow__resize-control`,`nodrag`,...E,n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}var nm=(0,q.memo)(tm),rm=(0,q.createContext)(null),im={},am=(e={})=>({preset:e.preset??`bezier`,gridRatio:e.gridRatio??10,nodePadding:e.nodePadding??10,avoidAreas:e.avoidAreas??[],borderRadius:e.borderRadius,routeOnlyWhenBlocked:e.routeOnlyWhenBlocked??!0,routeWhileDragging:e.routeWhileDragging??!1,dragFallbackStyle:e.dragFallbackStyle??im,debounceMs:e.debounceMs??16,cacheSize:e.cacheSize??500}),om=e=>JSON.stringify({gridRatio:e.gridRatio,nodePadding:e.nodePadding,avoidAreas:e.avoidAreas,routeOnlyWhenBlocked:e.routeOnlyWhenBlocked,routeWhileDragging:e.routeWhileDragging,cacheSize:e.cacheSize,borderRadius:e.borderRadius,preset:e.preset}),sm=e=>JSON.stringify({debounceMs:e.debounceMs,dragFallbackStyle:e.dragFallbackStyle}),cm=(e,t)=>{let n=om(e)!==om(t),r=sm(e)!==sm(t);return{any:n||r,routing:n}},lm=()=>{},um=()=>null,dm=()=>!1,fm=e=>{let t=(0,q.useContext)(rm),{id:n,source:r,target:i,sourceX:a,sourceY:o,targetX:s,targetY:c,sourcePosition:l,targetPosition:u,preset:d,options:f,waypoints:p}=e,m=t?{id:n,source:r,target:i,sourceX:a,sourceY:o,targetX:s,targetY:c,sourcePosition:l,targetPosition:u,preset:d??t.options.preset,options:f,waypoints:p}:null,h=m?JSON.stringify(m):``,g=(0,q.useRef)(m);(0,q.useEffect)(()=>{g.current=m});let _=t?.registerEdge;(0,q.useEffect)(()=>{let e=g.current;if(!(!_||!e))return _(e)},[_,h]);let v=t?.store;return{route:(0,q.useSyncExternalStore)((0,q.useCallback)(e=>v?v.subscribeEdge(n,e):lm,[v,n]),()=>v?.getRoute(n)??null,um),isDragging:(0,q.useSyncExternalStore)((0,q.useCallback)(e=>v?v.subscribeNodeState(e):lm,[v]),()=>{if(!v)return!1;let e=v.getDraggingNodeIds();return e.has(r)||e.has(i)},dm),hasProvider:t!==null}},pm=`[@tisoap/react-flow-smart-edge] A smart edge rendered without a <SmartEdgeProvider> ancestor, so routing is disabled and the edge falls back to its non-routed variant. Wrap your flow in <SmartEdgeProvider> to enable routing. Migration guide: https://tisoap.github.io/react-flow-smart-edge/docs/migration/v5`,mm=!1,hm=e=>typeof e==`object`&&!!e,gm=()=>{let e=Reflect.get(globalThis,`process`),t=hm(e)?e.env:void 0;return hm(t)&&t.NODE_ENV===`production`},_m=()=>{mm||gm()||(mm=!0,console.warn(pm))},vm=()=>{},ym=()=>!1,bm=(e,t,n)=>(0,q.useSyncExternalStore)((0,q.useCallback)(t=>e?e.subscribeNodeState(t):vm,[e]),()=>{if(!e)return!1;let r=e.getSelectedNodeIds();return r.has(t)||r.has(n)},ym),xm=(e,t)=>{let n=Math.max(e.measured?.width??0,1),r=Math.max(e.measured?.height??0,1);return{id:e.id,xMin:e.position.x-t,yMin:e.position.y-t,xMax:e.position.x+n+t,yMax:e.position.y+r+t}},Sm=(e,t,n)=>{let r=Math.max(e.width,1),i=Math.max(e.height,1);return{id:`avoid-${String(t)}`,xMin:e.x-n,yMin:e.y-n,xMax:e.x+r+n,yMax:e.y+i+n}},Cm=(e,t,n=[])=>[...e.map(e=>xm(e,t)),...n.map((e,n)=>Sm(e,n,t))],wm=(e,t,n,r,i)=>e<i.xMax&&n>i.xMin&&t<i.yMax&&r>i.yMin,Tm=(e,t,n,r,i)=>{let a=n-e,o=r-t,s=0,c=1,l=(e,t)=>{if(e===0)return t>=0;let n=t/e;if(e<0){if(n>c)return!1;n>s&&(s=n)}else{if(n<s)return!1;n<c&&(c=n)}return!0};return l(-a,e-i.xMin)&&l(a,i.xMax-e)&&l(-o,t-i.yMin)&&l(o,i.yMax-t)},Em=(e,t,n)=>{for(let r=0;r<e.length-1;r+=1){let i=e[r],a=e[r+1];for(let e of t)if(!n?.has(e.id)&&Tm(i.x,i.y,a.x,a.y,e))return!0}return!1},Dm=e=>e===`left`||e===`right`,Om=(e,t,n,r,i,a)=>{let o={x:e,y:t},s={x:r,y:i},c=Dm(n),l=Dm(a);if(c&&l){let n=(e+r)/2;return[o,{x:n,y:t},{x:n,y:i},s]}if(!c&&!l){let n=(t+i)/2;return[o,{x:e,y:n},{x:r,y:n},s]}return[o,c?{x:r,y:t}:{x:e,y:i},s]},km=e=>e===`top`||e===`bottom`?0:1,Am=(e,t,n)=>{if(n.length===0)return n;let r=n.map(([e,t])=>[e,t]),i=km(e.position),a=i===0?e.x:e.y,o=r[0][i],s=0;for(;s<r.length&&r[s][i]===o;)s++;for(let e=0;e<s;e++)r[e][i]=a;let c=km(t.position),l=c===0?t.x:t.y,u=n[n.length-1][c],d=r.length;for(;d>s&&n[d-1][c]===u;)d--;for(let e=d;e<r.length;e++)r[e][c]=l;return r},jm=(e,t)=>({width:e,height:t,blocked:new Uint8Array(e*t)}),Mm=e=>({width:e.width,height:e.height,blocked:e.blocked.slice()}),Nm=(e,t,n)=>t>=0&&t<e.width&&n>=0&&n<e.height,Pm=(e,t,n)=>Nm(e,t,n)&&e.blocked[n*e.width+t]===0,Fm=(e,t,n,r)=>{Nm(e,t,n)&&(e.blocked[n*e.width+t]=+!!r)},Im=(e,t)=>{switch(t){case`top`:return{x:e.x,y:e.y-1};case`bottom`:return{x:e.x,y:e.y+1};case`left`:return{x:e.x-1,y:e.y};case`right`:return{x:e.x+1,y:e.y}}},Lm=(e,t,n)=>{let r={x:t.x,y:t.y};for(;Nm(e,r.x,r.y)&&!Pm(e,r.x,r.y);)Fm(e,r.x,r.y,!1),r=Im(r,n)},Rm=(e,t,n,r)=>({x:(e.x-t)/r+1,y:(e.y-n)/r+1}),zm=(e,t,n,r)=>({x:(e.x-1)*r+t,y:(e.y-1)*r+n}),Bm=(e,t=10)=>Math.round(e/t)*t,Vm=(e,t=10)=>Math.floor(e/t)*t,Hm=(e,t=10)=>Math.ceil(e/t)*t,Um=(e,t=0)=>{let n=Math.max(Math.round(e),t);return n=Number.isInteger(n)?n:t,n=n>=t?n:t,n},Wm=(e,t)=>({mapColumns:Hm(e.width,t)/t+1,mapRows:Hm(e.height,t)/t+1}),Gm=(e,t,n,r,i)=>{e.forEach(e=>{let a=Rm(e.topLeft,t,n,r),o=Rm(e.bottomRight,t,n,r);for(let e=a.x;e<o.x;e++)for(let t=a.y;t<o.y;t++)i(e,t)})},Km=(e,t,n)=>{let{xMin:r,yMin:i}=e,{mapColumns:a,mapRows:o}=Wm(e,n),s=jm(a,o);return Gm(t,r,i,n,(e,t)=>{Fm(s,e,t,!0)}),s},qm=(e,t,n,r,i=2,a)=>{let{xMin:o,yMin:s}=e,c=a?Mm(a):Km(e,t,i),l=Rm({x:Bm(n.x,i),y:Bm(n.y,i)},o,s,i),u=Rm({x:Bm(r.x,i),y:Bm(r.y,i)},o,s,i);return Lm(c,l,n.position),Lm(c,u,r.position),{grid:c,start:Im(l,n.position),end:Im(u,r.position)}},Jm=.5,Ym=(e,t,n)=>{let r=[{x:e.x,y:e.y},...n.map(([e,t])=>({x:e,y:t})),{x:t.x,y:t.y}],i=r.filter((e,t)=>t===0||e.x!==r[t-1].x||e.y!==r[t-1].y),a=[];for(let e=0;e<i.length;e++){let t=i[e];if(e>0&&e<i.length-1){let n=a[a.length-1],r=i[e+1],o=n.x===t.x&&t.x===r.x,s=n.y===t.y&&t.y===r.y;if(o||s)continue}a.push(t)}return a},Xm=(e,t,n,r)=>{let i=Math.min(t,n),a=Math.max(t,n);return e>i+r&&e<a-r},Zm=(e,t,n,r,i,a)=>{let o=n.x,s=e.y;return Xm(o,e.x,t.x,i)&&Xm(s,n.y,r.y,i)?{segmentIndex:a,at:Math.abs(o-e.x)}:null},Qm=(e,t,n,r,i,a)=>{let o=n.y,s=e.x;return Xm(o,e.y,t.y,i)&&Xm(s,n.x,r.x,i)?{segmentIndex:a,at:Math.abs(o-e.y)}:null},$m=(e,t,n,r)=>{let i=Math.abs(t.y-n.y)<r,a=Math.abs(t.x-n.x)<r;return e.isHorizontal&&a&&!i?Zm(e.start,e.end,t,n,r,e.index):e.isVertical&&i&&!a?Qm(e.start,e.end,t,n,r,e.index):null},eh=(e,t,n)=>{let r=[];for(let i=0;i<t.length-1;i++){let a=$m(e,t[i],t[i+1],n);a&&r.push(a)}return r},th=(e,t,n=Jm)=>{let r=[];for(let i=0;i<e.length-1;i++){let a=e[i],o=e[i+1],s={start:a,end:o,index:i,isHorizontal:Math.abs(a.y-o.y)<n,isVertical:Math.abs(a.x-o.x)<n};if(!(!s.isHorizontal&&!s.isVertical))for(let e of t)r.push(...eh(s,e,n))}return r},nh=e=>e===`left`||e===`right`,rh=(e,t,n,r,i)=>nh(e)?[.5*(t+r),n]:[t,.5*(n+i)],ih=(e,t)=>{let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>=Math.abs(r)?n>=0?`right`:`left`:r>=0?`bottom`:`top`},ah=(e,t,n)=>({x:e.x,y:e.y,position:ih(t,n)}),oh=(e,t,n)=>{let r=[e,...n.map(([e,t])=>({x:e,y:t})),t],i=r.map((n,i)=>i===0?e:i===r.length-1?t:ah(n,r[i-1],r[i+1])),a=`M${String(i[0].x)},${String(i[0].y)}`;for(let e=0;e<i.length-1;e++){let t=i[e],n=i[e+1],[r,o]=rh(t.position,t.x,t.y,n.x,n.y),[s,c]=rh(n.position,n.x,n.y,t.x,t.y);a+=` C${String(r)},${String(o)} ${String(s)},${String(c)} ${String(n.x)},${String(n.y)}`}return a},sh=(e,t,n)=>{let r=`M ${String(e.x)}, ${String(e.y)} `;return n.forEach(e=>{let[t,n]=e;r+=`L ${String(t)}, ${String(n)} `}),r+=`L ${String(t.x)}, ${String(t.y)} `,r},ch=(e,t,n)=>lh([[e.x,e.y],...n,[t.x,t.y]]),lh=e=>{let t=e[0],n=e[0],r=`M${String(n[0])},${String(n[1])}M`;for(let n of e){let e=uh(t[0],t[1],n[0],n[1]);r+=` ${String(e[0])},${String(e[1])}`,r+=`Q${String(n[0])},${String(n[1])}`,t=n}let i=e[e.length-1];return r+=` ${String(i[0])},${String(i[1])}`,r},uh=(e,t,n,r)=>[(e-n)/2+n,(t-r)/2+r],dh=(e={})=>{let{borderRadius:t=5}=e;return(e,n,r)=>{let i=ph([{x:e.x,y:e.y},...r.map(([e,t])=>({x:e,y:t})),{x:n.x,y:n.y}]);return i.reduce((e,n,r)=>r>0&&r<i.length-1?e+mh(i[r-1],n,i[r+1],t):e+`${r===0?`M`:`L`} ${String(n.x)},${String(n.y)} `,``)}},fh=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),ph=e=>e.filter((t,n)=>n===0||t.x!==e[n-1].x||t.y!==e[n-1].y),mh=(e,t,n,r)=>{let i=Math.min(fh(e,t)/2,fh(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L ${String(a)},${String(o)} `;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${String(a+i*t)},${String(o)}Q ${String(a)},${String(o)} ${String(a)},${String(o+i*r)} `}let s=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${String(a)},${String(o+i*c)}Q ${String(a)},${String(o)} ${String(a+i*s)},${String(o)} `},hh=6,gh=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),_h=(e,t,n,r)=>e.x===t.x&&t.x===n.x||e.y===t.y&&t.y===n.y?0:Math.min(gh(e,t)/2,gh(t,n)/2,r),vh=(e,t,n)=>{let r=n/gh(e,t);return{x:e.x+(t.x-e.x)*r,y:e.y+(t.y-e.y)*r}},yh=(e,t)=>e===`horizontal`?+(t===1):t===1?0:1,bh=(e,t,n,r,i,a)=>{let o=e.end>=e.start?1:-1,s=e.start+o*r,c=e.end-o*i,l=t=>a===`horizontal`?`${String(t)},${String(e.fixed)}`:`${String(e.fixed)},${String(t)}`,u=``;for(let r of t){let t=e.start+o*r.at,i=t-o*n,d=t+o*n;o*(i-s)>0&&o*(c-d)>0&&(u+=`L ${l(i)} `,u+=`A ${String(n)} ${String(n)} 0 0 ${String(yh(a,o))} ${l(d)} `)}return u+=`L ${l(c)} `,u},xh=(e,t,n={})=>{let{hopRadius:r=hh,borderRadius:i=0}=n;if(e.length===0)return``;let a=`M ${String(e[0].x)},${String(e[0].y)} `;for(let n=0;n<e.length-1;n++){let o=e[n],s=e[n+1],c=i>0&&n>0?_h(e[n-1],o,s,i):0,l=i>0&&n<e.length-2?_h(o,s,e[n+2],i):0,u=t.filter(e=>e.segmentIndex===n).sort((e,t)=>e.at-t.at),d=Math.abs(s.y-o.y)<=Math.abs(s.x-o.x),f=d?{fixed:o.y,start:o.x,end:s.x}:{fixed:o.x,start:o.y,end:s.y};if(a+=bh(f,u,r,c,l,d?`horizontal`:`vertical`),l>0){let t=vh(s,e[n+2],l);a+=`Q ${String(s.x)},${String(s.y)} ${String(t.x)},${String(t.y)} `}}return a},Sh=()=>{let e=[],t=[],n=(n,r)=>{let i=e[n];e[n]=e[r],e[r]=i;let a=t[n];t[n]=t[r],t[r]=a},r=e=>{let r=e;for(;r>0;){let e=r-1>>1;if(t[e]<=t[r])break;n(e,r),r=e}},i=r=>{let i=r;for(;;){let r=i*2+1,a=r+1,o=i;if(r<e.length&&t[r]<t[o]&&(o=r),a<e.length&&t[a]<t[o]&&(o=a),o===i)break;n(o,i),i=o}};return{push:(n,i)=>{e.push(n),t.push(i),r(e.length-1)},pop:()=>{if(e.length===0)return-1;let n=e[0],r=e[e.length-1],a=t[e.length-1];return--e.length,--t.length,e.length>0&&(e[0]=r,t[0]=a,i(0)),n},get size(){return e.length}}},Ch={g:new Float64Array,parent:new Int32Array,state:new Uint8Array,mark:new Int32Array,generation:0},wh=e=>(Ch.g.length<e&&(Ch={g:new Float64Array(e),parent:new Int32Array(e),state:new Uint8Array(e),mark:new Int32Array(e),generation:Ch.generation}),Ch.generation+=1,Ch),Th=(e,t)=>{e.mark[t]!==e.generation&&(e.mark[t]=e.generation,e.g[t]=1/0,e.parent[t]=-1,e.state[t]=0)},Eh=(e,t,n)=>{let r=[],i=t;for(;i!==-1;)r.push([i%n,Math.floor(i/n)]),i=e.parent[i];return r.reverse()},Dh=(e,t)=>e+t,Oh=(e,t)=>{let n=Math.SQRT2-1;return e<t?n*e+t:n*t+e},kh=[[0,-1,1],[1,0,1],[0,1,1],[-1,0,1],[1,-1,Math.SQRT2],[1,1,Math.SQRT2],[-1,1,Math.SQRT2],[-1,-1,Math.SQRT2]],Ah=(e,t,n,r,i)=>{let{scratch:a,grid:o,endX:s,endY:c,width:l,heuristic:u,open:d}=e,[f,p,m]=kh[n],h=r+f,g=i+p;if(!Pm(o,h,g))return;let _=g*l+h;if(Th(a,_),a.state[_]===2)return;let v=a.g[t]+m;if(v>=a.g[_])return;a.g[_]=v,a.parent[_]=t,a.state[_]=1;let y=v+u(Math.abs(h-s),Math.abs(g-c));d.push(_,y)},jh=(e,t,n,r,i,a)=>{if(!Pm(e,t,n)||!Pm(e,r,i))return[];let{width:o}=e,s=wh(o*e.height),c=a?Oh:Dh,l=a?8:4,u=n*o+t,d=i*o+r,f=Sh();Th(s,u),s.g[u]=0,s.state[u]=1,f.push(u,0);let p={scratch:s,grid:e,endX:r,endY:i,width:o,heuristic:c,open:f};for(;f.size>0;){let e=f.pop();if(s.state[e]===2)continue;if(s.state[e]=2,e===d)return Eh(s,d,o);let t=e%o,n=Math.floor(e/o);for(let r=0;r<l;r++)Ah(p,e,r,t,n)}return[]},Mh=(e,t)=>e+t,Nh=(e,t,n,r)=>{Pm(e,n,r)&&t.push([n,r])},Ph=(e,t,n)=>{let r=e.width,i=n%r,a=Math.floor(n/r),o=t.parent[n],s=[];if(o===-1)return Nh(e,s,i,a-1),Nh(e,s,i+1,a),Nh(e,s,i,a+1),Nh(e,s,i-1,a),s;let c=o%r,l=Math.floor(o/r),u=(i-c)/Math.max(Math.abs(i-c),1),d=(a-l)/Math.max(Math.abs(a-l),1);return u===0?(Nh(e,s,i-1,a),Nh(e,s,i+1,a),Nh(e,s,i,a+d)):(Nh(e,s,i,a-1),Nh(e,s,i,a+1),Nh(e,s,i+u,a)),s},Fh=(e,t,n,r)=>Pm(e,t,n-1)&&!Pm(e,t-r,n-1)||Pm(e,t,n+1)&&!Pm(e,t-r,n+1),Ih=(e,t,n,r)=>Pm(e,t-1,n)&&!Pm(e,t-1,n-r)||Pm(e,t+1,n)&&!Pm(e,t+1,n-r),Lh=(e,t,n)=>{let r=(i,a,o,s)=>{if(!Pm(e,i,a))return null;if(i===t&&a===n)return[i,a];let c=i-o,l=a-s;return c!==0&&Fh(e,i,a,c)||l!==0&&(Ih(e,i,a,l)||(r(i+1,a,i,a)??r(i-1,a,i,a)))?[i,a]:r(i+c,a+l,i,a)};return r},Rh=(e,t,n,r,i,a)=>{let{scratch:o,endColumn:s,endRow:c,width:l,jump:u,open:d}=e,f=u(n,r,i,a);if(!f)return;let[p,m]=f,h=m*l+p;if(Th(o,h),o.state[h]===2)return;let g=Mh(Math.abs(p-i),Math.abs(m-a)),_=o.g[t]+g;_>=o.g[h]||(o.g[h]=_,o.parent[h]=t,o.state[h]=1,d.push(h,_+Mh(Math.abs(p-s),Math.abs(m-c))))},zh=(e,t,n,r,i)=>{if(!Pm(e,t,n)||!Pm(e,r,i))return[];let a=e.width,o=wh(a*e.height),s=n*a+t,c=i*a+r,l=Sh(),u=Lh(e,r,i);Th(o,s),o.g[s]=0,o.state[s]=1,l.push(s,0);let d={scratch:o,endColumn:r,endRow:i,width:a,jump:u,open:l};for(;l.size>0;){let t=l.pop();if(o.state[t]===2)continue;if(o.state[t]=2,t===c)return Eh(o,c,a);let n=t%a,r=Math.floor(t/a);for(let[i,a]of Ph(e,o,t))Rh(d,t,i,a,n,r)}return[]},Bh=`No path found`,Vh=(e,t,n)=>{let r=jh(e,t.x,t.y,n.x,n.y,!0);if(r.length===0)throw Error(Bh);return r},Hh=(e,t,n)=>{let r=zh(e,t.x,t.y,n.x,n.y);if(r.length===0)throw Error(Bh);return r},Uh=(e,t,n,r,i,a)=>{let o={x:e-i,y:t-i},s={x:e-i,y:t+r+i},c={x:e+n+i,y:t-i},l={x:e+n+i,y:t+r+i};return a>0&&(o.x=Vm(o.x,a),o.y=Vm(o.y,a),s.x=Vm(s.x,a),s.y=Hm(s.y,a),c.x=Hm(c.x,a),c.y=Vm(c.y,a),l.x=Hm(l.x,a),l.y=Hm(l.y,a)),{topLeft:o,bottomLeft:s,topRight:c,bottomRight:l}},Wh=(e,t=2,n=2,r=[],i=[])=>{let a=-(2**53-1),o=-(2**53-1),s=2**53-1,c=2**53-1,l=(e,t)=>{e.y<c&&(c=e.y),e.x<s&&(s=e.x),t.y>o&&(o=t.y),t.x>a&&(a=t.x)},u=e.map(e=>{let r=Math.max(e.measured?.width??0,1),i=Math.max(e.measured?.height??0,1),{topLeft:a,bottomLeft:o,topRight:s,bottomRight:c}=Uh(e.position.x,e.position.y,r,i,t,n);return l(a,c),{id:e.id,width:r,height:i,topLeft:a,bottomLeft:o,topRight:s,bottomRight:c}}),d=r.map((e,r)=>{let i=Math.max(e.width,1),a=Math.max(e.height,1),{topLeft:o,bottomLeft:s,topRight:c,bottomRight:u}=Uh(e.x,e.y,i,a,t,n);return l(o,u),{id:`avoid-${String(r)}`,width:i,height:a,topLeft:o,bottomLeft:s,topRight:c,bottomRight:u}});i.forEach(e=>{l(e,e)});let f=t*2;a=Hm(a+f,n),o=Hm(o+f,n),s=Vm(s-f,n),c=Vm(c-f,n);let p={x:s,y:c},m={x:s,y:o},h={x:a,y:c};return{nodeBoxes:u,graphBox:{topLeft:p,bottomLeft:m,topRight:h,bottomRight:{x:a,y:o},width:Math.abs(p.x-h.x),height:Math.abs(p.y-m.y),xMax:a,yMax:o,xMin:s,yMin:c},avoidBoxes:d}},Gh=e=>{let t=Math.max(e.measured?.width??0,1),n=Math.max(e.measured?.height??0,1);return{x:e.position.x,y:e.position.y,width:t,height:n}},Kh=(e,t)=>{let n=Gh(e),r=Gh(t),i=n.width/2,a=n.height/2,o=n.x+i,s=n.y+a,c=r.x+r.width/2,l=r.y+r.height/2,u=(c-o)/(2*i)-(l-s)/(2*a),d=(c-o)/(2*i)+(l-s)/(2*a),f=1/(Math.abs(u)+Math.abs(d)||1),p=f*u,m=f*d;return{x:i*(p+m)+o,y:a*(-p+m)+s}},qh=(e,t)=>{let{x:n,y:r,width:i,height:a}=Gh(e),o=Math.round(n),s=Math.round(r),c=Math.round(t.x),l=Math.round(t.y);return c<=o+1?X.Left:c>=o+i-1?X.Right:l<=s+1?X.Top:l>=s+a-1?X.Bottom:X.Top},Jh=(e,t)=>{let n=Kh(e,t),r=Kh(t,e),i=qh(e,n),a=qh(t,r);return{sx:n.x,sy:n.y,tx:r.x,ty:r.y,sourcePos:i,targetPos:a}},Yh=e=>{let t=new Map;for(let n of e)t.set(n.id,n);return t},Xh=(e,t)=>{let n=e.position.x,r=e.position.y,i=e.parentId,a=new Set([e.id]);for(;i&&!a.has(i);){a.add(i);let e=t.get(i);if(!e)break;n+=e.position.x,r+=e.position.y,i=e.parentId}return{x:n,y:r}},Zh=e=>{let t=Yh(e);return e.map(e=>e.parentId?{...e,position:Xh(e,t)}:e)},Qh=(e,t)=>{let n=new Set,r=t.get(e)?.parentId;for(;r&&!n.has(r);)n.add(r),r=t.get(r)?.parentId;return n},$h=(e,t,n)=>{let r=Yh(e),i=Qh(t,r);for(let e of Qh(n,r))i.add(e);return i.size===0?e:e.filter(e=>!i.has(e.id))},eg=e=>e===`step`||e===`smoothstep`,tg=e=>{let t=e[e.length-1],n=e.slice(1,-1).map(e=>[e.x,e.y]);return Ym(e[0],t,n)},ng=(e,t,n)=>tg(Om(e.x,e.y,n.sourcePosition,t.x,t.y,n.targetPosition)),rg={radius:6,borderRadius:0,epsilon:.5},ig=e=>!e||e===!0?rg:{radius:e.radius??rg.radius,borderRadius:e.borderRadius??rg.borderRadius,epsilon:e.epsilon??rg.epsilon},ag=e=>{let t=ig(e.hops),n=th(e.ownPolyline,e.underneathPolylines,t.epsilon);return xh(e.ownPolyline,n,{hopRadius:t.radius,borderRadius:t.borderRadius})},og=(e,t,n,r)=>r?.kind===`routed`?Ym(e,t,r.points):r?.kind===`clear`&&eg(n.preset)?ng(e,t,n):null,sg=(e,t)=>{if(t===void 0)return null;let n={x:e.sourceX,y:e.sourceY},r={x:e.targetX,y:e.targetY};return t.kind===`routed`?Ym(n,r,t.points):ng(n,r,e)},cg=(e,t,n,r)=>e.filter(e=>e.order<t&&e.preset===n).map(e=>sg(e,r(e.id))).filter(e=>e!==null),lg=()=>{},ug=()=>0,dg=e=>{let t=(0,q.useContext)(rm),n=!!e.hops&&!e.editable&&!e.checkpoints,r=n&&t!==null?t.store:void 0;if((0,q.useSyncExternalStore)((0,q.useCallback)(e=>r?r.subscribeAllRoutes(e):lg,[r]),(0,q.useCallback)(()=>r?.getRoutesVersion()??0,[r]),ug),!n||t===null)return null;let i=t.getRegistrationsInOrder(),a=i.find(t=>t.id===e.edgeId);if(!a)return null;let o=og({x:e.sourceX,y:e.sourceY},{x:e.targetX,y:e.targetY},a,t.store.getRoute(e.edgeId));return o?ag({ownPolyline:o,underneathPolylines:cg(i,a.order,a.preset,e=>t.store.getRoute(e)),hops:e.hops}):null},fg=(e,t)=>{if(e.length<2){let[t,n]=e[0]??[0,0];return{x:t,y:n}}let n=0;for(let t=1;t<e.length;t++)n+=Math.hypot(e[t][0]-e[t-1][0],e[t][1]-e[t-1][1]);let r=n*t,i=0;for(let t=1;t<e.length;t++){let n=Math.hypot(e[t][0]-e[t-1][0],e[t][1]-e[t-1][1]);if(i+n>=r){let a=r-i,o=n===0?0:a/n;return{x:e[t-1][0]+(e[t][0]-e[t-1][0])*o,y:e[t-1][1]+(e[t][1]-e[t-1][1])*o}}i+=n}let[a,o]=e[e.length-1];return{x:a,y:o}},pg=(e,t,n)=>{let r=n,i=1/0;for(let a=n;a<e.length-1;a++){let n=(e[a][0]-t.x)**2+(e[a][1]-t.y)**2;n<i&&(i=n,r=a)}return r},mg=(e,t)=>{if(e.length===0)return[[]];if(t.length===0)return[e];let n=[],r=0,i=1;for(let a of t){let t=pg(e,a,i);n.push(e.slice(r,t+1)),r=t,i=t+1}return n.push(e.slice(r)),n},hg=(e,t,n,r)=>{let i=mg([[e.x,e.y],...r,[t.x,t.y]],n),a=[];return i.forEach((e,t)=>{let r=fg(e,.5);a.push({id:`__inactive-${String(t)}`,x:r.x,y:r.y,active:!1}),t<n.length&&a.push(n[t])}),a},gg=5;function _g({id:e,index:t,x:n,y:r,color:i,active:a,setControlPoints:o}){let s=Q(e=>e.domNode),{screenToFlowPosition:c}=dd(),[l,u]=(0,q.useState)(!1),d=(0,q.useRef)(null),f=(0,q.useCallback)(n=>{o(r=>{if(!a){let e={...n,id:crypto.randomUUID(),active:!0};if(t!==0){let n=t*.5-1;return r.flatMap((t,r)=>r===n?[t,e]:[t])}return[e,...r]}return r.map(t=>t.id===e?{...t,...n}:t)})},[e,a,t,o]),p=(0,q.useCallback)(()=>{o(t=>t.filter(t=>t.id!==e))},[e,o]),m=(0,q.useCallback)(e=>{switch(e.key){case`Enter`:case` `:a||e.preventDefault(),f({x:n,y:r});break;case`Backspace`:case`Delete`:e.stopPropagation(),p();break;case`ArrowLeft`:f({x:n-gg,y:r});break;case`ArrowRight`:f({x:n+gg,y:r});break;case`ArrowUp`:f({x:n,y:r-gg});break;case`ArrowDown`:f({x:n,y:r+gg})}},[n,r,a,f,p]);return(0,q.useEffect)(()=>{if(!s||!l)return;let e=e=>{f(c({x:e.clientX,y:e.clientY}))},t=e=>{u(!1),f(c({x:e.clientX,y:e.clientY}))};return s.addEventListener(`pointermove`,e),s.addEventListener(`pointerup`,t,{once:!0}),s.addEventListener(`pointerleave`,t,{once:!0}),()=>{s.removeEventListener(`pointermove`,e),s.removeEventListener(`pointerup`,t),s.removeEventListener(`pointerleave`,t)}},[s,l,c,f]),(0,J.jsx)(`circle`,{ref:d,tabIndex:0,"data-testid":`smart-edge-control-point`,className:`nopan nodrag${a?` active`:``}`,cx:n,cy:r,r:a?4:3,strokeWidth:1,strokeOpacity:a?1:.3,stroke:i,fill:a?i:`white`,style:{pointerEvents:`all`,cursor:`pointer`},onContextMenu:e=>{e.preventDefault(),a&&p()},onPointerDown:e=>{e.button!==2&&(f({x:n,y:r}),a&&u(!0))},onKeyDown:m,onPointerUp:()=>{u(!1)}})}var vg=e=>typeof e==`object`&&!!e,yg=(e,t)=>t in e&&typeof e[t]==`string`,bg=(e,t)=>t in e&&typeof e[t]==`number`,xg=e=>vg(e)&&yg(e,`id`)&&bg(e,`x`)&&bg(e,`y`),Sg=e=>Array.isArray(e)&&e.every(xg),Cg=e=>vg(e)&&bg(e,`x`)&&bg(e,`y`),wg=e=>vg(e)&&`points`in e&&Sg(e.points)?e.points:[],Tg=e=>vg(e)&&`checkpoints`in e&&Array.isArray(e.checkpoints)?e.checkpoints.filter(Cg):[],Eg=({floating:e,sourceNodeId:t,targetNodeId:n,absoluteNodes:r,sourceX:i,sourceY:a,targetX:o,targetY:s,sourcePosition:c,targetPosition:l})=>{if(!e||t===n)return{sourceX:i,sourceY:a,targetX:o,targetY:s,sourcePosition:c,targetPosition:l};let u=r.find(e=>e.id===t),d=r.find(e=>e.id===n);if(!u?.measured||!d?.measured)return{sourceX:i,sourceY:a,targetX:o,targetY:s,sourcePosition:c,targetPosition:l};let{sx:f,sy:p,tx:m,ty:h,sourcePos:g,targetPos:_}=Jh(u,d);return{sourceX:f,sourceY:p,targetX:m,targetY:h,sourcePosition:g,targetPosition:_}},Dg=(e,t,n)=>e.editable?n.map(e=>({x:e.x,y:e.y})):e.checkpoints?Tg(t):[],Og=`#3367d9`,kg=[],Ag=(e,t)=>e??t,jg=(e,t)=>({kind:`routed`,wasRouted:!0,svgPathString:e,edgeCenterX:(t.sourceX+t.targetX)/2,edgeCenterY:(t.sourceY+t.targetY)/2,points:[]}),Mg=`5 5`;function Ng({FallbackEdge:e,edgeProps:t,dragFallbackStyle:n,animated:r}){let i={...r?{}:{strokeDasharray:Mg},...t.style,...n};return(0,J.jsx)(`g`,{className:r?`react-flow__edge animated`:void 0,"data-smart-edge-placeholder":``,children:(0,J.jsx)(e,{...t,style:i})})}var Pg=(e,t,n)=>e.map(e=>{if(e.id!==t)return e;let r=wg(e.data);return{...e,data:{...e.data,points:n(r)}}}),Fg=(e,t,n)=>{let r=e?e.getNodesSnapshot():kg,i=Eg({floating:e?t.floating:!1,sourceNodeId:n.source,targetNodeId:n.target,absoluteNodes:r,sourceX:n.sourceX,sourceY:n.sourceY,targetX:n.targetX,targetY:n.targetY,sourcePosition:n.sourcePosition,targetPosition:n.targetPosition}),a=t.editable?wg(n.data):[];return{endpoints:i,activePoints:a,waypoints:Dg(t,n.data,a)}};function Ig({edgeProps:e,route:t,endpoints:n,hoppedPathString:r,options:i,activePoints:a,showControlPoints:o}){let{id:s}=e,{setEdges:c}=dd(),l=(0,q.useCallback)(e=>{c(t=>Pg(t,s,e))},[s,c]),u=(0,J.jsx)(yf,{path:Ag(r,t.svgPathString),labelX:t.edgeCenterX,labelY:t.edgeCenterY,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,markerStart:e.markerStart,markerEnd:e.markerEnd,interactionWidth:e.interactionWidth});if(!i.editable)return u;let d=hg({x:n.sourceX,y:n.sourceY},{x:n.targetX,y:n.targetY},a,t.points),f=i.controlPointColor??Og;return(0,J.jsxs)(J.Fragment,{children:[u,o&&d.map((e,t)=>(0,J.jsx)(_g,{index:t,x:e.x,y:e.y,id:e.id,active:e.active,color:f,setControlPoints:l},e.id))]})}var Lg=e=>({gridRatio:e.gridRatio,nodePadding:e.nodePadding,avoidAreas:e.avoidAreas,borderRadius:e.borderRadius});function Rg({preset:e,options:t,...n}){let{id:r,source:i,target:a}=n,o=(0,q.useContext)(rm),{endpoints:s,activePoints:c,waypoints:l}=Fg(o,t,n),{route:u,isDragging:d}=fm({id:r,source:i,target:a,sourceX:s.sourceX,sourceY:s.sourceY,targetX:s.targetX,targetY:s.targetY,sourcePosition:s.sourcePosition,targetPosition:s.targetPosition,preset:e,options:Lg(t),waypoints:l}),f=dg({edgeId:r,sourceX:s.sourceX,sourceY:s.sourceY,targetX:s.targetX,targetY:s.targetY,hops:t.hops,editable:t.editable,checkpoints:t.checkpoints}),p=bm(o?.store,i,a),m=t.fallback??Ff;if(o===null)return _m(),(0,J.jsx)(m,{...n});let h=d&&!o.options.routeWhileDragging;return h||u===null?(0,J.jsx)(Ng,{FallbackEdge:m,edgeProps:n,dragFallbackStyle:o.options.dragFallbackStyle,animated:h}):u.kind===`clear`?f===null?(0,J.jsx)(m,{...n}):(0,J.jsx)(Ig,{edgeProps:n,route:jg(f,s),endpoints:s,hoppedPathString:f,options:t,activePoints:c,showControlPoints:!!n.selected||p}):(0,J.jsx)(Ig,{edgeProps:n,route:u,endpoints:s,hoppedPathString:f,options:t,activePoints:c,showControlPoints:!!n.selected||p})}var zg={bezier:{drawEdge:ch,generatePath:Vh,fallback:Ff},straight:{drawEdge:sh,generatePath:Vh,fallback:Mf},step:{drawEdge:sh,generatePath:Hh,fallback:kf},smoothstep:{drawEdge:dh(),generatePath:Hh,fallback:Ef},simplebezier:{drawEdge:oh,generatePath:Vh,fallback:Cf}};function Bg(e,t){let n={...zg[e],...t};function r(t){return(0,J.jsx)(Rg,{...t,preset:e,options:n})}return r.displayName=`SmartEdge(${e})`,r}Bg(`bezier`),Bg(`straight`),Bg(`step`),Bg(`smoothstep`),Bg(`simplebezier`),Bg(`bezier`,{floating:!0}),Bg(`bezier`,{editable:!0}),Bg(`bezier`,{checkpoints:!0});var Vg=[8,16,32],Hg=(e,t,n,r,i)=>{let a=i*r+n;return{xMin:Math.min(e.x,t.x)-a,yMin:Math.min(e.y,t.y)-a,xMax:Math.max(e.x,t.x)+a,yMax:Math.max(e.y,t.y)+a}},Ug=(e,t)=>{let n=[];return e.forEach((e,r)=>{wm(t.xMin,t.yMin,t.xMax,t.yMax,e)&&n.push(r)}),n},Wg=(e,t,n,r,i,a,o,s)=>{let{graphBox:c,nodeBoxes:l,avoidBoxes:u}=Wh(n.map(t=>e[t]),i,a,r.map(e=>t[e]),[{x:o.x,y:o.y},{x:s.x,y:s.y}]);return{graphBox:c,nodeBoxes:l,avoidBoxes:u}},Gg=(e,t,n,r)=>n.length===e&&r.length===t,Kg=(e,t,n,r,i,a,o)=>{let s=Hg(e,t,r,i,o),c=Cm(n,r),l=Cm([],r,a),u=Ug(c,s),d=Ug(l,s);for(;;){let o=Wg(n,a,u,d,r,i,e,t),s=Ug(c,o.graphBox),f=Ug(l,o.graphBox);if(Gg(u.length,d.length,s,f))return o;u=s,d=f}},qg=e=>e instanceof Error&&e.message===`No path found`,Jg=(e,t,n,r,i,a,o)=>{let{grid:s,start:c,end:l}=qm(e,[...t,...n],r,i,a);return{graphBox:e,fullPath:o(s,c,l)}},Yg=(e,t,n,r,i,a,o)=>{let{graphBox:s,nodeBoxes:c,avoidBoxes:l}=Wh(e,t,n,r,[{x:i.x,y:i.y},{x:a.x,y:a.y}]);return Jg(s,c,l,i,a,n,o)},Xg=(e,t,n,r,i,a,o)=>{for(let s of Vg){let{graphBox:c,nodeBoxes:l,avoidBoxes:u}=Kg(i,a,e,t,n,r,s);try{return Jg(c,l,u,i,a,n,o)}catch(e){if(!qg(e))throw e}}return Yg(e,t,n,r,i,a,o)},Zg=({options:e={},nodes:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s})=>{try{let{drawEdge:c=ch,generatePath:l=Vh,avoidAreas:u=[]}=e,{gridRatio:d=10,nodePadding:f=10}=e;d=Um(d),f=Um(f);let p={x:n,y:r,position:o},m={x:i,y:a,position:s},{graphBox:h,fullPath:g}=Xg(t,f,d,u,p,m,l),_=Am(p,m,g.map(e=>{let[t,n]=e,r=zm({x:t,y:n},h.xMin,h.yMin,d);return[r.x,r.y]})),v=c(p,m,_),[y,b]=g[Math.floor(g.length/2)],{x,y:S}=zm({x:y,y:b},h.xMin,h.yMin,d);return{svgPathString:v,edgeCenterX:x,edgeCenterY:S,points:_,wasRouted:!0}}catch(e){return e instanceof Error?e:Error(`Unknown error: ${String(e)}`)}},Qg=(e,t)=>{let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>=Math.abs(r)?n>=0?`right`:`left`:r>=0?`bottom`:`top`},$g=e=>{let t=[];for(let n of e){let e=t.length-1;e>=0&&t[e].x===n.x&&t[e].y===n.y?t[e].waypoint=t[e].waypoint||n.waypoint:t.push({...n})}return t},e_=(e,t,n,r,i)=>{let a=e.length-1,o=[];for(let s=0;s<a;s++){let c=e[s],l=e[s+1],u=s===0?t:Qg(c,l),d=s+1===a?n:Qg(l,c),f=Zg({sourceX:c.x,sourceY:c.y,sourcePosition:u,targetX:l.x,targetY:l.y,targetPosition:d,nodes:r,options:i});if(!(f instanceof Error))for(let[e,t]of f.points)o.push({x:e,y:t,waypoint:!1});s+1<a&&o.push({x:l.x,y:l.y,waypoint:!0})}return o},t_=.5,n_=e=>e.map(e=>[e.x,e.y]),r_=(e,t,n)=>{let r=n.x-t.x,i=n.y-t.y,a=Math.hypot(r,i);if(a===0)return[[e.x,e.y]];let o=r/a,s=i/a,c=Math.hypot(e.x-t.x,e.y-t.y),l=Math.hypot(e.x-n.x,e.y-n.y),u=Math.min(c,l)*t_;return[[e.x-o*u,e.y-s*u],[e.x+o*u,e.y+s*u]]},i_=(e,t,n)=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i];if(!a.waypoint){r.push([a.x,a.y]);continue}let o=i>0?e[i-1]:t,s=i<e.length-1?e[i+1]:n;r.push(...r_(a,o,s))}return r},a_=e=>{let{waypoints:t,options:n={},nodes:r,sourceX:i,sourceY:a,targetX:o,targetY:s,sourcePosition:c,targetPosition:l}=e;if(t.length===0)return Zg(e);try{let{drawEdge:e=ch}=n,u=Math.max(Um(n.gridRatio??10),1),d={x:i,y:a},f={x:o,y:s},p=$g(e_([d,...t.map(e=>({x:Bm(e.x,u),y:Bm(e.y,u)})),f],c,l,r,n)),m=n_(p),h=e({x:i,y:a,position:c},{x:o,y:s,position:l},i_(p,d,f)),g=[[d.x,d.y],...m,[f.x,f.y]],[_,v]=g[Math.floor(g.length/2)];return{svgPathString:h,edgeCenterX:_,edgeCenterY:v,points:m,wasRouted:!0}}catch(e){return e instanceof Error?e:Error(`Unknown error: ${String(e)}`)}},o_="(function(){let e=e=>e===`top`||e===`bottom`?0:1,t=(t,n,r)=>{if(r.length===0)return r;let i=r.map(([e,t])=>[e,t]),a=e(t.position),o=a===0?t.x:t.y,s=i[0][a],c=0;for(;c<i.length&&i[c][a]===s;)c++;for(let e=0;e<c;e++)i[e][a]=o;let l=e(n.position),u=l===0?n.x:n.y,d=r[r.length-1][l],f=i.length;for(;f>c&&r[f-1][l]===d;)f--;for(let e=f;e<i.length;e++)i[e][l]=u;return i},n=(e,t)=>({width:e,height:t,blocked:new Uint8Array(e*t)}),r=e=>({width:e.width,height:e.height,blocked:e.blocked.slice()}),i=(e,t,n)=>t>=0&&t<e.width&&n>=0&&n<e.height,a=(e,t,n)=>i(e,t,n)&&e.blocked[n*e.width+t]===0,o=(e,t,n,r)=>{i(e,t,n)&&(e.blocked[n*e.width+t]=+!!r)},s=(e,t)=>{switch(t){case`top`:return{x:e.x,y:e.y-1};case`bottom`:return{x:e.x,y:e.y+1};case`left`:return{x:e.x-1,y:e.y};case`right`:return{x:e.x+1,y:e.y}}},c=(e,t,n)=>{let r={x:t.x,y:t.y};for(;i(e,r.x,r.y)&&!a(e,r.x,r.y);)o(e,r.x,r.y,!1),r=s(r,n)},l=(e,t,n,r)=>({x:(e.x-t)/r+1,y:(e.y-n)/r+1}),u=(e,t,n,r)=>({x:(e.x-1)*r+t,y:(e.y-1)*r+n}),d=(e,t=10)=>Math.round(e/t)*t,f=(e,t=10)=>Math.floor(e/t)*t,p=(e,t=10)=>Math.ceil(e/t)*t,m=(e,t=0)=>{let n=Math.max(Math.round(e),t);return n=Number.isInteger(n)?n:t,n=n>=t?n:t,n},h=(e,t)=>({mapColumns:p(e.width,t)/t+1,mapRows:p(e.height,t)/t+1}),g=(e,t,n,r,i)=>{e.forEach(e=>{let a=l(e.topLeft,t,n,r),o=l(e.bottomRight,t,n,r);for(let e=a.x;e<o.x;e++)for(let t=a.y;t<o.y;t++)i(e,t)})},_=(e,t,r)=>{let{xMin:i,yMin:a}=e,{mapColumns:s,mapRows:c}=h(e,r),l=n(s,c);return g(t,i,a,r,(e,t)=>{o(l,e,t,!0)}),l},v=(e,t,n,i,a=2,o)=>{let{xMin:u,yMin:f}=e,p=o?r(o):_(e,t,a),m=l({x:d(n.x,a),y:d(n.y,a)},u,f,a),h=l({x:d(i.x,a),y:d(i.y,a)},u,f,a);return c(p,m,n.position),c(p,h,i.position),{grid:p,start:s(m,n.position),end:s(h,i.position)}},y=e=>e===`left`||e===`right`,b=(e,t,n,r,i)=>y(e)?[.5*(t+r),n]:[t,.5*(n+i)],x=(e,t)=>{let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>=Math.abs(r)?n>=0?`right`:`left`:r>=0?`bottom`:`top`},S=(e,t,n)=>({x:e.x,y:e.y,position:x(t,n)}),C=(e,t,n)=>{let r=[e,...n.map(([e,t])=>({x:e,y:t})),t],i=r.map((n,i)=>i===0?e:i===r.length-1?t:S(n,r[i-1],r[i+1])),a=`M${String(i[0].x)},${String(i[0].y)}`;for(let e=0;e<i.length-1;e++){let t=i[e],n=i[e+1],[r,o]=b(t.position,t.x,t.y,n.x,n.y),[s,c]=b(n.position,n.x,n.y,t.x,t.y);a+=` C${String(r)},${String(o)} ${String(s)},${String(c)} ${String(n.x)},${String(n.y)}`}return a},w=(e,t,n)=>{let r=`M ${String(e.x)}, ${String(e.y)} `;return n.forEach(e=>{let[t,n]=e;r+=`L ${String(t)}, ${String(n)} `}),r+=`L ${String(t.x)}, ${String(t.y)} `,r},T=(e,t,n)=>E([[e.x,e.y],...n,[t.x,t.y]]),E=e=>{let t=e[0],n=e[0],r=`M${String(n[0])},${String(n[1])}M`;for(let n of e){let e=ee(t[0],t[1],n[0],n[1]);r+=` ${String(e[0])},${String(e[1])}`,r+=`Q${String(n[0])},${String(n[1])}`,t=n}let i=e[e.length-1];return r+=` ${String(i[0])},${String(i[1])}`,r},ee=(e,t,n,r)=>[(e-n)/2+n,(t-r)/2+r],D=(e={})=>{let{borderRadius:t=5}=e;return(e,n,r)=>{let i=te([{x:e.x,y:e.y},...r.map(([e,t])=>({x:e,y:t})),{x:n.x,y:n.y}]);return i.reduce((e,n,r)=>r>0&&r<i.length-1?e+k(i[r-1],n,i[r+1],t):e+`${r===0?`M`:`L`} ${String(n.x)},${String(n.y)} `,``)}},O=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),te=e=>e.filter((t,n)=>n===0||t.x!==e[n-1].x||t.y!==e[n-1].y),k=(e,t,n,r)=>{let i=Math.min(O(e,t)/2,O(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L ${String(a)},${String(o)} `;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${String(a+i*t)},${String(o)}Q ${String(a)},${String(o)} ${String(a)},${String(o+i*r)} `}let s=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${String(a)},${String(o+i*c)}Q ${String(a)},${String(o)} ${String(a+i*s)},${String(o)} `},A=()=>{let e=[],t=[],n=(n,r)=>{let i=e[n];e[n]=e[r],e[r]=i;let a=t[n];t[n]=t[r],t[r]=a},r=e=>{let r=e;for(;r>0;){let e=r-1>>1;if(t[e]<=t[r])break;n(e,r),r=e}},i=r=>{let i=r;for(;;){let r=i*2+1,a=r+1,o=i;if(r<e.length&&t[r]<t[o]&&(o=r),a<e.length&&t[a]<t[o]&&(o=a),o===i)break;n(o,i),i=o}};return{push:(n,i)=>{e.push(n),t.push(i),r(e.length-1)},pop:()=>{if(e.length===0)return-1;let n=e[0],r=e[e.length-1],a=t[e.length-1];return--e.length,--t.length,e.length>0&&(e[0]=r,t[0]=a,i(0)),n},get size(){return e.length}}},j={g:new Float64Array,parent:new Int32Array,state:new Uint8Array,mark:new Int32Array,generation:0},M=e=>(j.g.length<e&&(j={g:new Float64Array(e),parent:new Int32Array(e),state:new Uint8Array(e),mark:new Int32Array(e),generation:j.generation}),j.generation+=1,j),N=(e,t)=>{e.mark[t]!==e.generation&&(e.mark[t]=e.generation,e.g[t]=1/0,e.parent[t]=-1,e.state[t]=0)},P=(e,t,n)=>{let r=[],i=t;for(;i!==-1;)r.push([i%n,Math.floor(i/n)]),i=e.parent[i];return r.reverse()},F=(e,t)=>e+t,I=(e,t)=>{let n=Math.SQRT2-1;return e<t?n*e+t:n*t+e},L=[[0,-1,1],[1,0,1],[0,1,1],[-1,0,1],[1,-1,Math.SQRT2],[1,1,Math.SQRT2],[-1,1,Math.SQRT2],[-1,-1,Math.SQRT2]],ne=(e,t,n,r,i)=>{let{scratch:o,grid:s,endX:c,endY:l,width:u,heuristic:d,open:f}=e,[p,m,h]=L[n],g=r+p,_=i+m;if(!a(s,g,_))return;let v=_*u+g;if(N(o,v),o.state[v]===2)return;let y=o.g[t]+h;if(y>=o.g[v])return;o.g[v]=y,o.parent[v]=t,o.state[v]=1;let b=y+d(Math.abs(g-c),Math.abs(_-l));f.push(v,b)},re=(e,t,n,r,i,o)=>{if(!a(e,t,n)||!a(e,r,i))return[];let{width:s}=e,c=M(s*e.height),l=o?I:F,u=o?8:4,d=n*s+t,f=i*s+r,p=A();N(c,d),c.g[d]=0,c.state[d]=1,p.push(d,0);let m={scratch:c,grid:e,endX:r,endY:i,width:s,heuristic:l,open:p};for(;p.size>0;){let e=p.pop();if(c.state[e]===2)continue;if(c.state[e]=2,e===f)return P(c,f,s);let t=e%s,n=Math.floor(e/s);for(let r=0;r<u;r++)ne(m,e,r,t,n)}return[]},R=(e,t)=>e+t,z=(e,t,n,r)=>{a(e,n,r)&&t.push([n,r])},ie=(e,t,n)=>{let r=e.width,i=n%r,a=Math.floor(n/r),o=t.parent[n],s=[];if(o===-1)return z(e,s,i,a-1),z(e,s,i+1,a),z(e,s,i,a+1),z(e,s,i-1,a),s;let c=o%r,l=Math.floor(o/r),u=(i-c)/Math.max(Math.abs(i-c),1),d=(a-l)/Math.max(Math.abs(a-l),1);return u===0?(z(e,s,i-1,a),z(e,s,i+1,a),z(e,s,i,a+d)):(z(e,s,i,a-1),z(e,s,i,a+1),z(e,s,i+u,a)),s},ae=(e,t,n,r)=>a(e,t,n-1)&&!a(e,t-r,n-1)||a(e,t,n+1)&&!a(e,t-r,n+1),oe=(e,t,n,r)=>a(e,t-1,n)&&!a(e,t-1,n-r)||a(e,t+1,n)&&!a(e,t+1,n-r),se=(e,t,n)=>{let r=(i,o,s,c)=>{if(!a(e,i,o))return null;if(i===t&&o===n)return[i,o];let l=i-s,u=o-c;return l!==0&&ae(e,i,o,l)||u!==0&&(oe(e,i,o,u)||(r(i+1,o,i,o)??r(i-1,o,i,o)))?[i,o]:r(i+l,o+u,i,o)};return r},ce=(e,t,n,r,i,a)=>{let{scratch:o,endColumn:s,endRow:c,width:l,jump:u,open:d}=e,f=u(n,r,i,a);if(!f)return;let[p,m]=f,h=m*l+p;if(N(o,h),o.state[h]===2)return;let g=R(Math.abs(p-i),Math.abs(m-a)),_=o.g[t]+g;_>=o.g[h]||(o.g[h]=_,o.parent[h]=t,o.state[h]=1,d.push(h,_+R(Math.abs(p-s),Math.abs(m-c))))},B=(e,t,n,r,i)=>{if(!a(e,t,n)||!a(e,r,i))return[];let o=e.width,s=M(o*e.height),c=n*o+t,l=i*o+r,u=A(),d=se(e,r,i);N(s,c),s.g[c]=0,s.state[c]=1,u.push(c,0);let f={scratch:s,endColumn:r,endRow:i,width:o,jump:d,open:u};for(;u.size>0;){let t=u.pop();if(s.state[t]===2)continue;if(s.state[t]=2,t===l)return P(s,l,o);let n=t%o,r=Math.floor(t/o);for(let[i,a]of ie(e,s,t))ce(f,t,i,a,n,r)}return[]},V=`No path found`,H=(e,t,n)=>{let r=re(e,t.x,t.y,n.x,n.y,!0);if(r.length===0)throw Error(V);return r},U=(e,t,n)=>{let r=B(e,t.x,t.y,n.x,n.y);if(r.length===0)throw Error(V);return r},W=(e,t,n,r,i,a)=>{let o={x:e-i,y:t-i},s={x:e-i,y:t+r+i},c={x:e+n+i,y:t-i},l={x:e+n+i,y:t+r+i};return a>0&&(o.x=f(o.x,a),o.y=f(o.y,a),s.x=f(s.x,a),s.y=p(s.y,a),c.x=p(c.x,a),c.y=f(c.y,a),l.x=p(l.x,a),l.y=p(l.y,a)),{topLeft:o,bottomLeft:s,topRight:c,bottomRight:l}},G=(e,t=2,n=2,r=[],i=[])=>{let a=-(2**53-1),o=-(2**53-1),s=2**53-1,c=2**53-1,l=(e,t)=>{e.y<c&&(c=e.y),e.x<s&&(s=e.x),t.y>o&&(o=t.y),t.x>a&&(a=t.x)},u=e.map(e=>{let r=Math.max(e.measured?.width??0,1),i=Math.max(e.measured?.height??0,1),{topLeft:a,bottomLeft:o,topRight:s,bottomRight:c}=W(e.position.x,e.position.y,r,i,t,n);return l(a,c),{id:e.id,width:r,height:i,topLeft:a,bottomLeft:o,topRight:s,bottomRight:c}}),d=r.map((e,r)=>{let i=Math.max(e.width,1),a=Math.max(e.height,1),{topLeft:o,bottomLeft:s,topRight:c,bottomRight:u}=W(e.x,e.y,i,a,t,n);return l(o,u),{id:`avoid-${String(r)}`,width:i,height:a,topLeft:o,bottomLeft:s,topRight:c,bottomRight:u}});i.forEach(e=>{l(e,e)});let m=t*2;a=p(a+m,n),o=p(o+m,n),s=f(s-m,n),c=f(c-m,n);let h={x:s,y:c},g={x:s,y:o},_={x:a,y:c};return{nodeBoxes:u,graphBox:{topLeft:h,bottomLeft:g,topRight:_,bottomRight:{x:a,y:o},width:Math.abs(h.x-_.x),height:Math.abs(h.y-g.y),xMax:a,yMax:o,xMin:s,yMin:c},avoidBoxes:d}},K=e=>{let t=new Map;for(let n of e)t.set(n.id,n);return t},le=(e,t)=>{let n=e.position.x,r=e.position.y,i=e.parentId,a=new Set([e.id]);for(;i&&!a.has(i);){a.add(i);let e=t.get(i);if(!e)break;n+=e.position.x,r+=e.position.y,i=e.parentId}return{x:n,y:r}},ue=e=>{let t=K(e);return e.map(e=>e.parentId?{...e,position:le(e,t)}:e)},q=(e,t)=>{let n=new Set,r=t.get(e)?.parentId;for(;r&&!n.has(r);)n.add(r),r=t.get(r)?.parentId;return n},de=(e,t,n)=>{let r=K(e),i=q(t,r);for(let e of q(n,r))i.add(e);return i.size===0?e:e.filter(e=>!i.has(e.id))},fe=(e,t)=>{let n=Math.max(e.measured?.width??0,1),r=Math.max(e.measured?.height??0,1);return{id:e.id,xMin:e.position.x-t,yMin:e.position.y-t,xMax:e.position.x+n+t,yMax:e.position.y+r+t}},pe=(e,t,n)=>{let r=Math.max(e.width,1),i=Math.max(e.height,1);return{id:`avoid-${String(t)}`,xMin:e.x-n,yMin:e.y-n,xMax:e.x+r+n,yMax:e.y+i+n}},J=(e,t,n=[])=>[...e.map(e=>fe(e,t)),...n.map((e,n)=>pe(e,n,t))],me=(e,t,n,r,i)=>e<i.xMax&&n>i.xMin&&t<i.yMax&&r>i.yMin,he=[8,16,32],ge=(e,t,n,r,i)=>{let a=i*r+n;return{xMin:Math.min(e.x,t.x)-a,yMin:Math.min(e.y,t.y)-a,xMax:Math.max(e.x,t.x)+a,yMax:Math.max(e.y,t.y)+a}},Y=(e,t)=>{let n=[];return e.forEach((e,r)=>{me(t.xMin,t.yMin,t.xMax,t.yMax,e)&&n.push(r)}),n},_e=(e,t,n,r,i,a,o,s)=>{let{graphBox:c,nodeBoxes:l,avoidBoxes:u}=G(n.map(t=>e[t]),i,a,r.map(e=>t[e]),[{x:o.x,y:o.y},{x:s.x,y:s.y}]);return{graphBox:c,nodeBoxes:l,avoidBoxes:u}},ve=(e,t,n,r)=>n.length===e&&r.length===t,ye=(e,t,n,r,i,a,o)=>{let s=ge(e,t,r,i,o),c=J(n,r),l=J([],r,a),u=Y(c,s),d=Y(l,s);for(;;){let o=_e(n,a,u,d,r,i,e,t),s=Y(c,o.graphBox),f=Y(l,o.graphBox);if(ve(u.length,d.length,s,f))return o;u=s,d=f}},be=e=>e instanceof Error&&e.message===`No path found`,X=(e,t,n,r,i,a,o)=>{let{grid:s,start:c,end:l}=v(e,[...t,...n],r,i,a);return{graphBox:e,fullPath:o(s,c,l)}},xe=(e,t,n,r,i,a,o)=>{let{graphBox:s,nodeBoxes:c,avoidBoxes:l}=G(e,t,n,r,[{x:i.x,y:i.y},{x:a.x,y:a.y}]);return X(s,c,l,i,a,n,o)},Se=(e,t,n,r,i,a,o)=>{for(let s of he){let{graphBox:c,nodeBoxes:l,avoidBoxes:u}=ye(i,a,e,t,n,r,s);try{return X(c,l,u,i,a,n,o)}catch(e){if(!be(e))throw e}}return xe(e,t,n,r,i,a,o)},Z=({options:e={},nodes:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c})=>{try{let{drawEdge:l=T,generatePath:d=H,avoidAreas:f=[]}=e,{gridRatio:p=10,nodePadding:h=10}=e;p=m(p),h=m(h);let g={x:r,y:i,position:s},_={x:a,y:o,position:c},{graphBox:v,fullPath:y}=Se(n,h,p,f,g,_,d),b=t(g,_,y.map(e=>{let[t,n]=e,r=u({x:t,y:n},v.xMin,v.yMin,p);return[r.x,r.y]})),x=l(g,_,b),[S,C]=y[Math.floor(y.length/2)],{x:w,y:E}=u({x:S,y:C},v.xMin,v.yMin,p);return{svgPathString:x,edgeCenterX:w,edgeCenterY:E,points:b,wasRouted:!0}}catch(e){return e instanceof Error?e:Error(`Unknown error: ${String(e)}`)}},Q=(e,t)=>{let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>=Math.abs(r)?n>=0?`right`:`left`:r>=0?`bottom`:`top`},Ce=e=>{let t=[];for(let n of e){let e=t.length-1;e>=0&&t[e].x===n.x&&t[e].y===n.y?t[e].waypoint=t[e].waypoint||n.waypoint:t.push({...n})}return t},$=(e,t,n,r,i)=>{let a=e.length-1,o=[];for(let s=0;s<a;s++){let c=e[s],l=e[s+1],u=s===0?t:Q(c,l),d=s+1===a?n:Q(l,c),f=Z({sourceX:c.x,sourceY:c.y,sourcePosition:u,targetX:l.x,targetY:l.y,targetPosition:d,nodes:r,options:i});if(!(f instanceof Error))for(let[e,t]of f.points)o.push({x:e,y:t,waypoint:!1});s+1<a&&o.push({x:l.x,y:l.y,waypoint:!0})}return o},we=e=>e.map(e=>[e.x,e.y]),Te=(e,t,n)=>{let r=n.x-t.x,i=n.y-t.y,a=Math.hypot(r,i);if(a===0)return[[e.x,e.y]];let o=r/a,s=i/a,c=Math.hypot(e.x-t.x,e.y-t.y),l=Math.hypot(e.x-n.x,e.y-n.y),u=Math.min(c,l)*.5;return[[e.x-o*u,e.y-s*u],[e.x+o*u,e.y+s*u]]},Ee=(e,t,n)=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i];if(!a.waypoint){r.push([a.x,a.y]);continue}let o=i>0?e[i-1]:t,s=i<e.length-1?e[i+1]:n;r.push(...Te(a,o,s))}return r},De=e=>{let{waypoints:t,options:n={},nodes:r,sourceX:i,sourceY:a,targetX:o,targetY:s,sourcePosition:c,targetPosition:l}=e;if(t.length===0)return Z(e);try{let{drawEdge:e=T}=n,u=Math.max(m(n.gridRatio??10),1),f={x:i,y:a},p={x:o,y:s},h=Ce($([f,...t.map(e=>({x:d(e.x,u),y:d(e.y,u)})),p],c,l,r,n)),g=we(h),_=e({x:i,y:a,position:c},{x:o,y:s,position:l},Ee(h,f,p)),v=[[f.x,f.y],...g,[p.x,p.y]],[y,b]=v[Math.floor(v.length/2)];return{svgPathString:_,edgeCenterX:y,edgeCenterY:b,points:g,wasRouted:!0}}catch(e){return e instanceof Error?e:Error(`Unknown error: ${String(e)}`)}},Oe=(e,t)=>{switch(e){case`bezier`:return{drawEdge:T,generatePath:H};case`straight`:return{drawEdge:w,generatePath:H};case`step`:return{drawEdge:w,generatePath:U};case`smoothstep`:return{drawEdge:D({borderRadius:t}),generatePath:U};case`simplebezier`:return{drawEdge:C,generatePath:H}}},ke=(e,t)=>{let n=ue(e),r={};for(let e of t){let t=de(n,e.source,e.target),{drawEdge:i,generatePath:a}=Oe(e.preset,e.options?.borderRadius),o={sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,nodes:t,options:{drawEdge:i,generatePath:a,gridRatio:e.options?.gridRatio,nodePadding:e.options?.nodePadding,avoidAreas:e.options?.avoidAreas}},s=e.waypoints?.length?De({...o,waypoints:e.waypoints}):Z(o);s instanceof Error||(r[e.id]={...s,kind:`routed`,wasRouted:!0})}return r},Ae=e=>typeof e!=`object`||!e||!(`requestId`in e)||!(`nodes`in e)||!(`edges`in e)?!1:typeof e.requestId==`number`&&Array.isArray(e.nodes)&&Array.isArray(e.edges),je=e=>{let t=Date.now(),n=ke(e.nodes,e.edges);return{requestId:e.requestId,results:n,durationMs:Date.now()-t}};addEventListener(`message`,e=>{Ae(e.data)&&postMessage(je(e.data))})})();\n//# sourceMappingURL=routing.worker-MsdsVz8l.js.map",s_=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,o_],{type:`text/javascript;charset=utf-8`});function c_(e){let t;try{if(t=s_&&(self.URL||self.webkitURL).createObjectURL(s_),!t)throw``;let n=new Worker(t,{name:e?.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(o_),{name:e?.name})}}var l_=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},u_=e=>{e!==void 0&&e.forEach(e=>{e()})},d_=()=>{let e=new Map,t=new Map,n=new Set,r=new Set,i=new Set,a=new Set,o=0,s=()=>{o+=1,u_(n)};return{subscribeEdge(e,n){let r=t.get(e);return r===void 0&&(r=new Set,t.set(e,r)),r.add(n),()=>{r.delete(n),r.size===0&&t.delete(e)}},getRoute(t){return e.get(t)},mergeRoutes(n){let r=!1;for(let[i,a]of Object.entries(n))e.get(i)!==a&&(e.set(i,a),u_(t.get(i)),r=!0);r&&s()},removeRoutes(n){let r=!1;for(let i of n)e.has(i)&&(r=!0),e.delete(i),u_(t.get(i));r&&s()},subscribeAllRoutes(e){return n.add(e),()=>{n.delete(e)}},getRoutesVersion(){return o},subscribeNodeState(e){return r.add(e),()=>{r.delete(e)}},getDraggingNodeIds(){return i},getSelectedNodeIds(){return a},setNodeState(e,t){let n=!1;l_(i,e)||(i=e,n=!0),l_(a,t)||(a=t,n=!0),n&&u_(r)}}},f_=500,p_=(e=f_)=>{let t=new Map;return{get(e){let n=t.get(e);if(n!==void 0)return t.delete(e),t.set(e,n),n},set(n,r){if(t.delete(n),t.set(n,r),t.size<=e)return;let[i]=t.keys();t.delete(i)},clear(){t.clear()},get size(){return t.size}}},m_=e=>{let t=5381;for(let n=0;n<e.length;n+=1)t=t*33+e.charCodeAt(n)|0;return(t>>>0).toString(36)},h_=e=>Math.round(e),g_=e=>[e.id,e.xMin,e.yMin,e.xMax,e.yMax].join(`,`),__=e=>`${String(h_(e.x))}:${String(h_(e.y))}`,v_=(e,t,n)=>{let r=(e.waypoints??[]).map(__).join(`;`),i=m_(n.map(g_).join(`|`));return[h_(e.sourceX),h_(e.sourceY),h_(e.targetX),h_(e.targetY),e.sourcePosition,e.targetPosition,e.preset,r,t,JSON.stringify(e.options??null),i].join(`|`)},y_=e=>e.map(e=>({id:e.id,x:e.position.x,y:e.position.y,width:Math.max(e.measured?.width??0,1),height:Math.max(e.measured?.height??0,1),dragging:e.dragging??!1,selected:e.selected??!1})),b_=(e,t)=>({xMin:e.x-t,yMin:e.y-t,xMax:e.x+e.width+t,yMax:e.y+e.height+t}),x_=(e,t)=>e.x!==t.x||e.y!==t.y||e.width!==t.width||e.height!==t.height,S_=(e,t,n,r)=>t===void 0?(r.push(b_(e,n)),!0):x_(e,t)?(r.push(b_(e,n)),r.push(b_(t,n)),!0):!1,C_=(e,t,n)=>{let r=new Map(e.map(e=>[e.id,e])),i=new Map(t.map(e=>[e.id,e])),a=[],o=!1;r.forEach((e,t)=>{S_(e,i.get(t),n,a)&&(o=!0)}),i.forEach((e,t)=>{r.has(t)||(a.push(b_(e,n)),o=!0)});let s=new Set,c=new Set;return t.forEach(e=>{e.dragging&&s.add(e.id),e.selected&&c.add(e.id)}),{changed:o,changedRects:a,draggingNodeIds:s,selectedNodeIds:c}},w_=(e,t)=>t.some(t=>e.xMin<t.xMax&&e.xMax>t.xMin&&e.yMin<t.yMax&&e.yMax>t.yMin),T_=(e,t)=>{let n=e.map(e=>e.x),r=e.map(e=>e.y);return{xMin:Math.min(...n)-t,yMin:Math.min(...r)-t,xMax:Math.max(...n)+t,yMax:Math.max(...r)+t}},E_=(e,t)=>t.filter(t=>wm(e.xMin,e.yMin,e.xMax,e.yMax,t)),D_=e=>e.map(e=>[e.id,e.xMin,e.yMin,e.xMax,e.yMax].join(`,`)).join(`|`),O_=new Set([`step`,`smoothstep`]),k_=e=>JSON.stringify({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,preset:e.preset,options:e.options,waypoints:e.waypoints}),A_=(e,t)=>{let n=Vg[0]*t;return{xMin:Math.min(e.sourceX,e.targetX)-n,yMin:Math.min(e.sourceY,e.targetY)-n,xMax:Math.max(e.sourceX,e.targetX)+n,yMax:Math.max(e.sourceY,e.targetY)+n}},j_=(e,t)=>T_(e,t.options.nodePadding+t.options.gridRatio),M_=(e,t)=>{let n=E_(A_(e,t.options.gridRatio),t.obstacleBoxes);return v_(e,t.optionsKey,n)},N_=(e,t)=>{let n=t.cache.get(M_(e,t));if(n===void 0)return;let r=E_(n.corridor,t.obstacleBoxes);return n.obstaclesSignature===D_(r)?n:void 0},P_=(e,t)=>t.has(e.source)||t.has(e.target),F_=(e,t,n)=>{let r=n.pathCorridors.get(e);return r!==void 0&&!n.forcedEdgeIds.has(e)&&n.signatures.get(e)===t&&!w_(r,n.changedRects)},I_=e=>O_.has(e.preset)?Om(e.sourceX,e.sourceY,e.sourcePosition,e.targetX,e.targetY,e.targetPosition):[{x:e.sourceX,y:e.sourceY},{x:e.targetX,y:e.targetY}],L_=(e,t,n)=>{if(P_(e,t.draggingNodeIds)&&!t.options.routeWhileDragging){n.counts.deferred+=1,n.nextDeferredIds.add(e.id);return}let r=k_(e);if(F_(e.id,r,t)){n.counts.unchanged+=1;return}t.signatures.set(e.id,r);let i=N_(e,t);if(i){n.counts.cacheHits+=1,n.routeMerges[e.id]=i.result,t.pathCorridors.set(e.id,i.corridor);return}if(t.options.routeOnlyWhenBlocked){let r=I_(e),i=new Set([e.source,e.target]);if(!Em(r,t.obstacleBoxes,i)){n.counts.clear+=1,n.routeMerges[e.id]={kind:`clear`,wasRouted:!1},t.pathCorridors.set(e.id,j_(r,t));return}}n.counts.routed+=1,n.dispatchItems.push(e)},R_=(e,t)=>{let n=C_(t.flushedSnapshot,t.snapshot,e.options.nodePadding),r=n.draggingNodeIds.size>0,i=t.draggingWasActive&&!r;return t.draggingWasActive=r,{draggingNodeIds:n.draggingNodeIds,changedRects:n.changedRects,forcedEdgeIds:i?t.deferredEdgeIds:new Set,obstacleBoxes:Cm(t.absoluteNodes,e.options.nodePadding,e.options.avoidAreas),optionsKey:JSON.stringify({nodePadding:e.options.nodePadding,gridRatio:e.options.gridRatio,avoidAreas:e.options.avoidAreas}),options:e.options,cache:t.cache,signatures:t.signatures,pathCorridors:t.pathCorridors}},z_=(e,t,n,r,i,a)=>{e.onMetrics?.({batchId:t,executedOn:n,batchLatencyMs:r,mainThreadBlockingMs:i,...a})},B_=async(e,t,n,r,i)=>{if(Object.keys(r.routeMerges).length>0&&e.store.mergeRoutes(r.routeMerges),r.dispatchItems.length===0){z_(e,i,`main`,0,0,r.counts);return}let a=await e.dispatch(t.rawNodes,r.dispatchItems);if(t.disposed||i!==t.batchId)return;let o={};Object.entries(a.results).forEach(([e,r])=>{o[e]=r;let i=t.edges.get(e);if(!i||r.kind!==`routed`)return;let a=j_(r.points.map(([e,t])=>({x:e,y:t})),n);t.pathCorridors.set(e,a),t.cache.set(M_(i,n),{result:r,corridor:a,obstaclesSignature:D_(E_(a,n.obstacleBoxes))})}),Object.keys(o).length>0&&e.store.mergeRoutes(o),z_(e,i,a.executedOn,a.durationMs,a.executedOn===`main`?a.durationMs:0,r.counts)},V_=async(e,t)=>{if(t.disposed)return;let n=R_(e,t),r={nextDeferredIds:new Set,dispatchItems:[],routeMerges:{},counts:{routed:0,cacheHits:0,clear:0,deferred:0,unchanged:0}};t.edges.forEach(e=>{L_(e,n,r)}),t.deferredEdgeIds=r.nextDeferredIds,t.flushedSnapshot=t.snapshot,t.batchId+=1,await B_(e,t,n,r,t.batchId)},H_=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},U_=e=>{e.flushScheduled=!1,e.timerHandle!==null&&(clearTimeout(e.timerHandle),e.timerHandle=null),e.frameHandle!==null&&(cancelAnimationFrame(e.frameHandle),e.frameHandle=null)},W_=(e,t)=>{t.timerHandle=setTimeout(()=>{t.timerHandle=null,t.flushScheduled=!1,V_(e,t)},e.options.debounceMs)},G_=(e,t)=>{t.disposed||t.flushScheduled||(t.flushScheduled=!0,Promise.resolve().then(()=>{if(t.flushScheduled){if(typeof requestAnimationFrame>`u`){W_(e,t);return}t.frameHandle=requestAnimationFrame(()=>{t.frameHandle=null,W_(e,t)})}}))},K_=(e,t,n)=>(t.edges.set(n.id,n),G_(e,t),()=>{t.edges.delete(n.id),t.signatures.delete(n.id),t.pathCorridors.delete(n.id),t.deferredEdgeIds.delete(n.id)}),q_=(e,t,n)=>{if(t.disposed)return;let r=new Set(t.snapshot.filter(e=>e.dragging).map(e=>e.id)),i=Zh(n),a=y_(i),o=C_(t.flushedSnapshot,a,e.options.nodePadding);t.rawNodes=n,t.absoluteNodes=i,t.snapshot=a,e.store.setNodeState(o.draggingNodeIds,o.selectedNodeIds),!(!o.changed&&H_(r,o.draggingNodeIds))&&G_(e,t)},J_=(e,t)=>{t.disposed||(t.cache=p_(e.options.cacheSize),t.signatures.clear(),t.pathCorridors.clear(),G_(e,t))},Y_=e=>{let t={edges:new Map,signatures:new Map,pathCorridors:new Map,cache:p_(e.options.cacheSize),deferredEdgeIds:new Set,draggingWasActive:!1,rawNodes:[],absoluteNodes:[],snapshot:[],flushedSnapshot:[],batchId:0,disposed:!1,flushScheduled:!1,timerHandle:null,frameHandle:null};return{registerEdge:n=>K_(e,t,n),setNodes:n=>{q_(e,t,n)},invalidateRoutes:()=>{J_(e,t)},flush:()=>(U_(t),V_(e,t)),dispose:()=>{t.disposed=!0,U_(t)}}},X_=(e,t)=>{switch(e){case`bezier`:return{drawEdge:ch,generatePath:Vh};case`straight`:return{drawEdge:sh,generatePath:Vh};case`step`:return{drawEdge:sh,generatePath:Hh};case`smoothstep`:return{drawEdge:dh({borderRadius:t}),generatePath:Hh};case`simplebezier`:return{drawEdge:oh,generatePath:Vh}}},Z_=(e,t)=>{let n=Zh(e),r={};for(let e of t){let t=$h(n,e.source,e.target),{drawEdge:i,generatePath:a}=X_(e.preset,e.options?.borderRadius),o={sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,nodes:t,options:{drawEdge:i,generatePath:a,gridRatio:e.options?.gridRatio,nodePadding:e.options?.nodePadding,avoidAreas:e.options?.avoidAreas}},s=e.waypoints?.length?a_({...o,waypoints:e.waypoints}):Zg(o);s instanceof Error||(r[e.id]={...s,kind:`routed`,wasRouted:!0})}return r},Q_=e=>{let t=Date.now(),n=Z_(e.nodes,e.edges);return{requestId:e.requestId,results:n,durationMs:Date.now()-t}},$_=(e,t)=>{let n=Q_({requestId:0,nodes:e,edges:t});return{results:n.results,executedOn:`main`,durationMs:n.durationMs}},ev=e=>{let t=new Map,n=0,r=!1;return e.onmessage=e=>{let n=t.get(e.data.requestId);n&&(t.delete(e.data.requestId),n.resolve({results:e.data.results,executedOn:`worker`,durationMs:e.data.durationMs}))},e.onerror=()=>{r=!0,e.terminate(),t.forEach(e=>{e.resolve($_(e.nodes,e.edges))}),t.clear()},{dispatch:(i,a)=>{if(r)return Promise.resolve($_(i,a));let o=n+=1;return new Promise(n=>{t.set(o,{nodes:i,edges:a,resolve:n}),e.postMessage({requestId:o,nodes:i,edges:a})})}}},tv=e=>e.map(e=>({id:e.id,position:e.position,measured:e.measured,parentId:e.parentId,dragging:e.dragging,selected:e.selected,data:{}})),nv=(e,t)=>Promise.resolve($_(e,t)),rv=e=>{let t=nv,n,r=[],i=[],a=0,o=null,s={...e},c=new Set,l=new Map,u=new Map,d=new Map,f=d_(),p=e=>{o&&u.set(e.id,o.registerEdge(e))},m=e=>{let t=d.get(e);return t===void 0?(a+=1,d.set(e,a),a):t};return{store:f,options:e,registerEdge:e=>{let t={...e,order:m(e.id)};return l.set(t.id,t),p(t),()=>{l.delete(t.id),u.get(t.id)?.(),u.delete(t.id)}},getRegistrationsInOrder:()=>[...l.values()].sort((e,t)=>e.order-t.order),getNodesSnapshot:()=>r,activateScheduler:()=>{let r=Y_({store:f,options:e,dispatch:(e,n)=>t(e,n),onMetrics:e=>{n?.(e)}});return o=r,u.clear(),l.forEach(p),r.setNodes(i),r},deactivateScheduler:e=>{e.dispose(),o=null},setRoutingNodes:e=>{i=e,o?.setNodes(e)},setDispatch:e=>{t=e},setOnMetrics:e=>{n=e},setAbsoluteNodes:e=>{r=e},setOptions:t=>{let n=cm(e,t);return n.any?(Object.assign(e,t),n.routing&&o?.invalidateRoutes(),s={...e},c.forEach(e=>{e()}),!0):!1},subscribeOptions:e=>(c.add(e),()=>{c.delete(e)}),getOptionsSnapshot:()=>s}};function iv({nodes:e,options:t,onMetrics:n,children:r}){let[i]=(0,q.useState)(()=>rv(am(t)));(0,q.useEffect)(()=>{i.setOnMetrics(n)},[i,n]),(0,q.useEffect)(()=>{i.setOptions(am(t))},[i,t]);let a=(0,q.useSyncExternalStore)(i.subscribeOptions,i.getOptionsSnapshot,i.getOptionsSnapshot);(0,q.useEffect)(()=>{i.setAbsoluteNodes(Zh(e)),i.setRoutingNodes(tv(e))},[i,e]),(0,q.useEffect)(()=>{let e=i.activateScheduler();return()=>{i.deactivateScheduler(e)}},[i]),(0,q.useEffect)(()=>{if(typeof Worker>`u`)return;let e;try{e=new c_}catch{return}return i.setDispatch(ev(e).dispatch),()=>{i.setDispatch(nv),e.terminate()}},[i]);let o=(0,q.useMemo)(()=>({store:i.store,options:a,registerEdge:i.registerEdge,getRegistrationsInOrder:i.getRegistrationsInOrder,getNodesSnapshot:i.getNodesSnapshot}),[i,a]);return(0,J.jsx)(rm.Provider,{value:o,children:r})}function av({children:e}){return(0,J.jsx)(`div`,{className:`flex items-center gap-0.5 rounded-lg border bg-card p-0.5 shadow-[0_1px_2px_rgb(0_0_0/0.04)]`,children:e})}function ov({icon:e,label:t,count:n,pressed:r,title:i,onClick:a}){return(0,J.jsxs)(`button`,{type:`button`,"aria-pressed":r,title:i,onClick:a,className:g(`inline-flex h-7 items-center gap-1.5 rounded-md px-2 text-[13px] font-medium transition-colors [&_svg]:h-3.5 [&_svg]:w-3.5`,r?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-accent hover:text-foreground`),children:[e,t,n!==void 0&&(0,J.jsx)(`span`,{className:g(`tabular-nums`,r?`text-primary/70`:`text-muted-foreground`),children:n})]})}function sv(e){let t=e.target;t?.closest(`.react-flow`)&&(t.closest(`.nodrag, .nopan`)||setTimeout(()=>{document.body.dispatchEvent(new PointerEvent(`pointerdown`,{bubbles:!0,cancelable:!0,composed:!0,button:0,pointerId:1,isPrimary:!0}))},0))}var cv=`edge-arrow`,lv=`edge-dot`;function uv(e){return e===`undirected`?{markerStart:lv,markerEnd:lv}:{markerEnd:cv}}function dv(e){if(!e)return`0..*`;let{min:t,max:n}=e;return n===null?`${t}..*`:t===n?`${n}`:`${t}..${n}`}function fv(){return(0,J.jsx)(`svg`,{width:`0`,height:`0`,"aria-hidden":!0,className:`absolute`,style:{position:`absolute`},children:(0,J.jsxs)(`defs`,{children:[(0,J.jsx)(`marker`,{id:cv,viewBox:`0 0 16 12`,refX:13,refY:6,markerWidth:16,markerHeight:12,markerUnits:`userSpaceOnUse`,orient:`auto-start-reverse`,children:(0,J.jsx)(`path`,{d:`M4 2.5 L10.5 6 L4 9.5`,fill:`none`,stroke:`context-stroke`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,J.jsx)(`marker`,{id:lv,viewBox:`0 0 12 12`,refX:9,refY:6,markerWidth:12,markerHeight:12,markerUnits:`userSpaceOnUse`,orient:`auto-start-reverse`,children:(0,J.jsx)(`circle`,{cx:6,cy:6,r:2.4,fill:`context-stroke`,stroke:`none`})})]})})}var pv={light:{surface:[.977,.014],border:[.875,.04],text:[.46,.09],mark:[.58,.12]},dark:{surface:[.245,.022],border:[.345,.04],text:[.8,.07],mark:[.74,.11]}},mv=[`surface`,`border`,`text`,`mark`],hv=([e,t],n)=>`oklch(${e} ${t} ${n})`;function gv(e,t){let n=n=>t?hv(pv[t][n],e):`light-dark(${hv(pv.light[n],e)}, ${hv(pv.dark[n],e)})`;return Object.fromEntries(mv.map(e=>[e,n(e)]))}var _v=8,vv=8,yv=48;function bv(e){let t=5381;for(let n=0;n<e.length;n+=1)t=t*33^e.charCodeAt(n);return t>>>0&1}var xv={preset:`smoothstep`,gridRatio:8,nodePadding:10,borderRadius:8,routeOnlyWhenBlocked:!1,routeWhileDragging:!1,debounceMs:16,cacheSize:1e3},Sv={borderRadius:8,hops:{radius:5,borderRadius:8}};function Cv(e,t){let n=e.measured?.[t];if(typeof n==`number`&&n>0)return n;let r=e.style?.[t];return typeof r==`number`&&r>0?r:t===`width`?184:40}function wv(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map,r=new Set,i=e=>{let a=n.get(e.id);if(a)return a;if(r.has(e.id))return{x:e.position.x,y:e.position.y,width:Cv(e,`width`),height:Cv(e,`height`)};r.add(e.id);let o=e.parentId?t.get(e.parentId):void 0,s=o?i(o):void 0,c={x:e.position.x+(s?.x??0),y:e.position.y+(s?.y??0),width:Cv(e,`width`),height:Cv(e,`height`)};return r.delete(e.id),n.set(e.id,c),c};for(let t of e)i(t);return n}var Tv=(e,t)=>t===X.Left||t===X.Right?e.height:e.width;function Ev(e,t){let n=Math.max(0,Tv(e,t)-16);return Math.max(1,Math.floor(n/vv)+1)}function Dv(e,t,n){let r=e.x+e.width/2,i=e.y+e.height/2,a=t.x+t.width/2,o=t.y+t.height/2,s=a-r,c=o-i,l=Math.abs(s),u=Math.abs(c),d=s>=0?X.Right:X.Left,f=Math.abs(c)<.5?bv(n)===0?X.Top:X.Bottom:c>=0?X.Bottom:X.Top,p=d===X.Left?X.Right:X.Left,m=f===X.Top?X.Bottom:X.Top;return l>=u?{primary:d,secondary:f,tertiary:m,dominance:l-u}:{primary:f,secondary:d,tertiary:p,dominance:u-l}}function Ov(e,t){return e.x<=t.x&&e.y<=t.y&&e.x+e.width>=t.x+t.width&&e.y+e.height>=t.y+t.height}function kv(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Av(e,t,n,r,i){let a=Math.min(_v,Tv(e,t)/4),o=t===X.Left?{x:e.x-yv,y:e.y+a,width:yv,height:e.height-a*2}:t===X.Right?{x:e.x+e.width,y:e.y+a,width:yv,height:e.height-a*2}:t===X.Top?{x:e.x+a,y:e.y-yv,width:e.width-a*2,height:yv}:{x:e.x+a,y:e.y+e.height,width:e.width-a*2,height:yv};for(let[t,a]of n)if(t!==r&&t!==i&&!(Ov(a,e)||Ov(e,a))&&kv(o,a))return!0;return!1}function jv(e,t,n){let r=[X.Left,X.Right,X.Top,X.Bottom],i=e=>t.filter(t=>t.assigned===e).length;for(let a=0;a<t.length*4;a+=1){let a=r.find(t=>i(t)>Ev(e,t));if(!a)return;let o=t.filter(t=>t.assigned===a&&[t.secondary,t.tertiary].some(t=>t!==a&&i(t)<Ev(e,t))).flatMap(t=>[t.secondary,t.tertiary].filter(t=>t!==a&&i(t)<Ev(e,t)).map(r=>({item:t,side:r,blocked:Av(e,r,n,t.nodeId,t.otherNodeId)}))).sort((e,t)=>Number(e.blocked)-Number(t.blocked)||i(e.side)-i(t.side)||e.item.dominance-t.item.dominance||e.item.edge.id.localeCompare(t.item.edge.id)||e.item.end.localeCompare(t.item.end))[0];if(!o)return;o.item.assigned=o.side}}function Mv(e,t){let n=e.assigned===X.Left||e.assigned===X.Right,r=n?e.other.y+e.other.height/2:e.other.x+e.other.width/2,i=n?t.other.y+t.other.height/2:t.other.x+t.other.width/2,a=String(e.edge.data?.label??e.edge.data?.edgeClass??``),o=String(t.edge.data?.label??t.edge.data?.edgeClass??``);return r-i||a.localeCompare(o)||e.edge.id.localeCompare(t.edge.id)||e.end.localeCompare(t.end)}function Nv(e,t){if(e<=1)return[.5];let n=Math.min(.35,_v/Math.max(t,1)),r=1-n*2;return Array.from({length:e},(t,i)=>Number((n+r*i/(e-1)).toFixed(4)))}function Pv(e,t){if(e.length===0||t.length===0)return t;let n=wv(e),r=new Map;for(let e of t){if(e.type!==`floating`||e.source===e.target)continue;let t=n.get(e.source),i=n.get(e.target);if(!t||!i)continue;let a=Dv(t,i,`${e.id}:source`),o=Dv(i,t,`${e.id}:target`),s={edge:e,end:`source`,nodeId:e.source,otherNodeId:e.target,other:i,...a,assigned:a.primary},c={edge:e,end:`target`,nodeId:e.target,otherNodeId:e.source,other:t,...o,assigned:o.primary};r.set(e.source,[...r.get(e.source)??[],s]),r.set(e.target,[...r.get(e.target)??[],c])}let i=new Map;for(let[e,t]of r){let r=n.get(e);if(r){jv(r,t,n);for(let e of[X.Left,X.Right,X.Top,X.Bottom]){let n=t.filter(t=>t.assigned===e).sort(Mv),a=Nv(n.length,Tv(r,e));n.forEach((t,n)=>{let r=i.get(t.edge.id)??{};r[t.end===`source`?`sourcePort`:`targetPort`]={position:e,offset:a[n]??.5},i.set(t.edge.id,r)})}}}return t.map(e=>{let t=i.get(e.id);return t?{...e,data:{...e.data,...t}}:e})}var Fv=`/assets/elk-worker.min-C9JGDOE-.js`,Iv;function Lv(){return Iv??=Ye(async()=>{let{default:t}=await import(`./elk-api-DjmKsHXc.js`).then(t=>e(t.default,1));return{default:t}},__vite__mapDeps([0,1])).then(({default:e})=>new e({workerUrl:Fv})),Iv}var Rv={"elk.algorithm":`layered`,"elk.direction":`RIGHT`,"elk.edgeRouting":`ORTHOGONAL`,"elk.hierarchyHandling":`INCLUDE_CHILDREN`,"elk.layered.spacing.nodeNodeBetweenLayers":`96`,"elk.spacing.nodeNode":`28`,"elk.spacing.componentComponent":`64`,"elk.spacing.edgeNode":`24`,"elk.spacing.edgeEdge":`16`,"elk.layered.crossingMinimization.strategy":`LAYER_SWEEP`,"elk.layered.crossingMinimization.greedySwitchHierarchical.type":`TWO_SIDED`,"elk.layered.nodePlacement.strategy":`NETWORK_SIMPLEX`,"elk.layered.nodePlacement.favorStraightEdges":`true`,"elk.padding":`[top=38,left=18,bottom=18,right=18]`};async function zv(e,t){if(e.length===0)return e;let n=new Map,r=new Set;for(let t of e)t.parentId&&r.add(t.parentId);for(let t of e){let e=t.type===`classNode`||t.type===`coreNode`||t.type===`moduleNode`||t.type===`group`&&!r.has(t.id),i=typeof t.style?.width==`number`?t.style.width:void 0,a=typeof t.style?.height==`number`?t.style.height:void 0;n.set(t.id,{id:t.id,...e?{width:i??t.measured?.width??184,height:a??t.measured?.height??40}:{layoutOptions:Rv},children:[]})}let i=[];for(let t of e){let e=n.get(t.id);t.parentId&&n.has(t.parentId)?n.get(t.parentId).children.push(e):i.push(e)}let a={id:`root`,layoutOptions:Rv,children:i,edges:t.map(e=>({id:e.id,sources:[e.source],targets:[e.target]}))},o;try{o=await(await Lv()).layout(a)}catch{return e}let s=new Map,c=e=>{s.set(e.id,{x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0}),e.children?.forEach(c)};return o.children?.forEach(c),e.map(e=>{let t=s.get(e.id);if(!t)return e;let n={...e,position:{x:t.x,y:t.y}};return e.type===`group`&&(n.style={...e.style,width:t.w,height:t.h}),n})}var Bv=.15,Vv=1;function Hv(e,t,n){if(!t||!n)return null;let r=1/0,i=1/0,a=-1/0,o=-1/0;for(let t of e){if(t.parentId)continue;let e=t.measured?.width??(typeof t.style?.width==`number`?t.style.width:184),n=t.measured?.height??(typeof t.style?.height==`number`?t.style.height:40);r=Math.min(r,t.position.x),i=Math.min(i,t.position.y),a=Math.max(a,t.position.x+e),o=Math.max(o,t.position.y+n)}if(!Number.isFinite(r)||a<=r||o<=i)return null;let s=Math.min(Vv,Math.max(Bv,Math.min(t/((a-r)*1.12),n/((o-i)*1.12))));return{zoom:s,x:t/2-(r+a)/2*s,y:n/2-(i+o)/2*s}}function Uv(e,t){let n=(e.measured.width??0)/2,r=(e.measured.height??0)/2,i=e.internals.positionAbsolute,a=t.internals.positionAbsolute,o=i.x+n,s=i.y+r,c=a.x+(t.measured.width??0)/2,l=a.y+(t.measured.height??0)/2,u=(c-o)/(2*n)-(l-s)/(2*r),d=(c-o)/(2*n)+(l-s)/(2*r),f=1/(Math.abs(u)+Math.abs(d)||1),p=f*u,m=f*d;return{x:n*(p+m)+o,y:r*(-p+m)+s}}function Wv(e,t){let n=e.internals.positionAbsolute,r=Math.round(n.x),i=Math.round(n.y),a=Math.round(t.x),o=Math.round(t.y);return a<=r+1?X.Left:a>=r+(e.measured.width??0)-1?X.Right:o<=i+1?X.Top:X.Bottom}function Gv(e,t){let n=Uv(e,t),r=Uv(t,e);return{sx:n.x,sy:n.y,tx:r.x,ty:r.y,sourcePos:Wv(e,n),targetPos:Wv(t,r)}}function Kv(e,t){if(!t)return null;let n=e.internals.positionAbsolute,r=e.measured.width??0,i=e.measured.height??0;if(r<=0||i<=0)return null;let a=Math.min(1,Math.max(0,t.offset));switch(t.position){case X.Left:return{x:n.x,y:n.y+i*a,position:t.position};case X.Right:return{x:n.x+r,y:n.y+i*a,position:t.position};case X.Top:return{x:n.x+r*a,y:n.y,position:t.position};case X.Bottom:return{x:n.x+r*a,y:n.y+i,position:t.position}}}function qv(e,t,n){if(Math.hypot(n.x-e.x,n.y-e.y)<110)return null;switch(t){case X.Left:return{x:e.x-25,y:e.y};case X.Right:return{x:e.x+25,y:e.y};case X.Top:return{x:e.x,y:e.y-25};case X.Bottom:return{x:e.x,y:e.y+25}}}function Jv(e){let{id:t,source:n,target:r,style:i,data:a}=e,o=w(e=>e.showCardinality),s=yp(n),c=yp(r);if(!s||!c)return null;let l=a,u=Kv(s,l?.sourcePort),d=Kv(c,l?.targetPort),f=Gv(s,c),p=u?.x??f.sx,m=u?.y??f.sy,h=d?.x??f.tx,g=d?.y??f.ty,_=u?.position??f.sourcePos,v=d?.position??f.targetPos,y=l?.kind===`extends`?void 0:l?.label,b=l?.selected===!0,x=b?`var(--color-primary)`:i?.stroke??`var(--color-muted-foreground)`,S=b?{...i,stroke:x,strokeWidth:3}:i,C={fill:`var(--color-muted-foreground)`},T={fill:`var(--color-card)`,stroke:`var(--color-border)`},E=o?l?.sourceEnd:void 0,D=o?l?.targetEnd:void 0,O=E?qv({x:p,y:m},_,{x:h,y:g}):null,k=D?qv({x:h,y:g},v,{x:p,y:m}):null;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Rg,{...e,sourceX:p,sourceY:m,targetX:h,targetY:g,sourcePosition:_,targetPosition:v,preset:`smoothstep`,options:Sv,style:S,label:y,labelStyle:b?{fill:x,fontWeight:600}:C,labelShowBg:!0,labelBgStyle:T,labelBgPadding:[6,2],labelBgBorderRadius:4,interactionWidth:18}),E&&O&&(0,J.jsxs)(`g`,{children:[(0,J.jsx)(`title`,{children:Yv(E,l?.label)}),(0,J.jsx)(vf,{x:O.x,y:O.y,label:E.cardinality,labelStyle:C,labelShowBg:!0,labelBgStyle:T,labelBgPadding:[5,1],labelBgBorderRadius:4})]}),D&&k&&(0,J.jsxs)(`g`,{children:[(0,J.jsx)(`title`,{children:Yv(D,l?.label)}),(0,J.jsx)(vf,{x:k.x,y:k.y,label:D.cardinality,labelStyle:C,labelShowBg:!0,labelBgStyle:T,labelBgPadding:[5,1],labelBgBorderRadius:4})]})]})}function Yv(e,t){return`${e.role??t??`this end`}: ${e.cardinality}`}function Xv({id:e,source:t,target:n,style:r}){let i=yp(t),a=yp(n);if(!i||!a)return null;let o=i.internals.positionAbsolute,s=a.internals.positionAbsolute,c=i.measured.width??0,l=i.measured.height??0,u=a.measured.width??0,d=a.measured.height??0,f=s.x>=o.x,[p]=Rc({sourceX:f?o.x+c:o.x,sourceY:o.y+l/2,sourcePosition:f?X.Right:X.Left,targetX:f?s.x:s.x+u,targetY:s.y+d/2,targetPosition:f?X.Left:X.Right,borderRadius:16});return(0,J.jsx)(yf,{id:e,path:p,style:r,interactionWidth:18})}var Zv={floating:Jv,tree:Xv};function Qv({domainId:e,anchorRef:t,kind:n,excerpt:r,className:i}){let{threads:a,status:o,orphaned:s}=Qe(t,e),c=(0,q.useId)(),l=w(e=>e.openAnchorRef),u=w(e=>e.openAnchorId),d=e?`${e}::${t}`:t,f=l===d&&(u===null||u===c),p=w(e=>e.setOpenAnchor);return a.length===0?null:(0,J.jsxs)(m,{modal:!1,open:f,onOpenChange:e=>p(e?d:null,e?c:null),children:[(0,J.jsx)(b,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,title:`View comments`,onClick:e=>{e.stopPropagation(),p(f?null:d,c)},className:g(`nodrag nopan absolute -right-1.5 -top-1.5 z-30 flex h-[18px] min-w-[18px] items-center justify-center gap-0.5 rounded-full px-1 text-[10px] font-semibold ring-2 ring-card`,s?`bg-destructive text-white hover:bg-destructive/90`:o===`open`?`bg-primary text-primary-foreground hover:bg-primary/90`:`bg-muted text-muted-foreground hover:bg-accent`,i),children:[(0,J.jsx)(he,{className:`h-2.5 w-2.5`}),a.length]})}),(0,J.jsx)(E,{side:`top`,align:`end`,className:`w-80`,onInteractOutside:e=>{nt(t,a)&&e.preventDefault()},children:(0,J.jsx)(ve,{domainId:e,anchor:{ref:t,kind:n},excerpt:r,threads:a,onClose:()=>p(null)})})]})}function $v(e){let t=e.trim();if(!t.startsWith(`<svg`))return null;let n=t;return n=n.replace(/<script[\s\S]*?<\/script>/gi,``),n=n.replace(/<foreignObject[\s\S]*?<\/foreignObject>/gi,``),n=n.replace(/\son\w+\s*=\s*"[^"]*"/gi,``),n=n.replace(/\son\w+\s*=\s*'[^']*'/gi,``),n=n.replace(/(href|xlink:href)\s*=\s*"(?!#)[^"]*"/gi,``),n=n.replace(/<!--[\s\S]*?-->/g,``),n=n.replace(/<svg\b([^>]*)>/i,(e,t)=>{let n=t.replace(/\swidth\s*=\s*"[^"]*"/i,``).replace(/\sheight\s*=\s*"[^"]*"/i,``);return/viewBox=/i.test(n)||(n+=` viewBox="0 0 24 24"`),`<svg${n} width="100%" height="100%" preserveAspectRatio="xMidYMid meet">`}),n}function ey({svg:e,className:t,style:n}){let r=(0,q.useMemo)(()=>e?$v(e):null,[e]);return r?(0,J.jsx)(`span`,{style:n,className:g(`inline-flex shrink-0 items-center justify-center [&>svg]:h-full [&>svg]:w-full`,t),dangerouslySetInnerHTML:{__html:r}}):null}var ty=e=>`core.node.${e}`,ny=e=>e.split(`/`).filter(Boolean).pop()??e,ry=/^.+:class\.[A-Za-z][A-Za-z0-9_]*\.property\.([A-Za-z][A-Za-z0-9_]*)$/;function iy(e){let t=Object.entries(e).map(([e,t])=>({key:e,shortName:ry.exec(e)?.[1]??e,value:t})),n=new Map;for(let e of t)n.set(e.shortName,(n.get(e.shortName)??0)+1);return t.map(({key:e,shortName:t,value:r})=>({key:e,label:n.get(t)===1?t:e,value:r}))}function ay(e,t){let n=iy(e);return t.flatMap(e=>n.filter(t=>t.label===e))[0]}function oy(e){let t=ay(e.data,[`name`,`title`])?.value;return typeof t==`string`&&t?t:ny(e.path)}function sy(e){let t=[...new Set(e.nodes.map(e=>e.className))].sort();return new Map(t.map((e,t)=>[e,O(t)]))}var cy=e=>e==null?`—`:typeof e==`string`?e:Array.isArray(e)?e.map(cy).join(`, `):JSON.stringify(e);function ly(e,t=2){let n=ay(e.data,[`name`,`title`]);return iy(e.data).filter(e=>e.key!==n?.key).slice(0,t).map(({label:e,value:t})=>[e,cy(t)])}function uy(e,t){return e.ir?.classes?.[t]?.icon}function dy(e,t,n){let r=new Set(e.nodes.map(e=>ty(e.path))),i=e.nodes.map(e=>{let r=ly(e);return{id:ty(e.path),type:`coreNode`,position:{x:0,y:0},data:{path:e.path,className:e.className,title:oy(e),hue:n.get(e.className)??264,icon:uy(t,e.className),fields:r,selected:!1},style:{width:184,height:50+r.length*15}}}),a=`/:${e.domain}`;for(let t of new Set(e.edges.flatMap(e=>[e.from,e.to]))){let n=ty(t);if(r.has(n))continue;let o=t===a;i.push({id:n,type:`coreNode`,position:{x:0,y:0},selectable:!1,focusable:!1,data:{path:t,className:o?`Domain`:`External`,title:o?e.domain:ny(t),hue:o?210:264,fields:[],selected:!1,virtual:!0},style:{width:184,height:50}}),r.add(n)}let o=[];for(let t of e.nodes){if(!t.parent)continue;let e=ty(t.parent),n=ty(t.path);!r.has(e)||!r.has(n)||o.push({id:`core.struct.${t.path}`,source:e,target:n,type:`tree`,data:{structural:!0},style:{stroke:`var(--edge-soft)`,strokeWidth:1.4,strokeDasharray:`4 4`}})}for(let t of e.edges){let e=ty(t.from),n=ty(t.to);if(!r.has(e)||!r.has(n))continue;let i=`oklch(0.6 0.12 35)`;o.push({id:`core.edge.${t.from}__${t.edgeName}__${t.to}`,source:e,target:n,type:`floating`,data:{label:t.edgeName},markerEnd:{type:Ss.ArrowClosed,color:i,width:16,height:16},style:{stroke:i,strokeWidth:2}})}return{nodes:i,edges:o}}function fy({count:e}){let t=w(e=>e.canvasMode),n=w(e=>e.setCanvasMode),r=t===`core`;return(0,J.jsx)(ov,{icon:r?(0,J.jsx)(tt,{}):(0,J.jsx)(k,{}),label:r?`Schema`:`Core`,count:r?void 0:e,pressed:r,title:r?`Back to the schema graph`:`Show core (genesis) data`,onClick:()=>n(r?`schema`:`core`)})}function py({data:e}){let t=e,n=t.className===`Folder`;return(0,J.jsxs)(`div`,{className:g(`relative w-[200px] overflow-hidden rounded-md border bg-card transition-[border-color,box-shadow]`,t.selected?`border-primary shadow-[0_0_0_3px_color-mix(in_oklch,var(--color-primary)_16%,transparent)]`:`hover:border-muted-foreground/40`),children:[(0,J.jsx)(`span`,{className:`absolute inset-y-0 left-0 w-[3px]`,style:{background:gv(t.hue).mark}}),!t.virtual&&(0,J.jsx)(Qv,{anchorRef:ty(t.path),kind:`section`,excerpt:`${t.title} (${t.className})`}),(0,J.jsx)(Rd,{type:`target`,position:X.Top,className:`!opacity-0`}),(0,J.jsxs)(`div`,{className:`px-2.5 py-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{style:{color:gv(t.hue).mark},className:`shrink-0`,children:t.icon?(0,J.jsx)(ey,{svg:t.icon,className:`h-5 w-5`}):n?(0,J.jsx)(vt,{className:`h-5 w-5`}):(0,J.jsx)(j,{className:`h-5 w-5`})}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:t.title}),(0,J.jsx)(`div`,{className:`truncate font-mono text-[10px] leading-tight text-muted-foreground`,children:t.className})]})]}),t.fields.length>0&&(0,J.jsx)(`div`,{className:`mt-1.5 flex flex-col gap-0.5`,children:t.fields.map(([e,t])=>(0,J.jsxs)(`div`,{className:`flex items-baseline gap-1 text-[10px] leading-tight`,children:[(0,J.jsx)(`span`,{className:`shrink-0 font-mono text-muted-foreground`,children:e}),(0,J.jsx)(`span`,{className:`truncate text-foreground/80`,children:t})]},e))})]}),(0,J.jsx)(Rd,{type:`source`,position:X.Bottom,className:`!opacity-0`})]})}var my={coreNode:py};function hy({core:e,bundle:t,selectedPath:n,onSelect:r}){let{setViewport:i}=dd(),a=Q(e=>e.width),o=Q(e=>e.height),s=Q(e=>e.panZoom!==null),l=w(e=>e.setOpenAnchor),u=(0,q.useMemo)(()=>sy(e),[e]),d=(0,q.useMemo)(()=>dy(e,t,u),[e,t,u]),[f,p]=(0,q.useState)([]),[m,h]=(0,q.useState)([]),[g,_]=(0,q.useState)(0);(0,q.useEffect)(()=>{let e=!1;return zv(d.nodes,d.edges).then(t=>{e||(p(t),h(d.edges),_(e=>e+1))}),()=>{e=!0}},[d]);let v=(0,q.useRef)(f);v.current=f;let y=(0,q.useRef)(0);(0,q.useEffect)(()=>{if(g===0||g===y.current||!s)return;let e=Hv(v.current,a,o);e&&(y.current=g,i(e))},[g,a,o,s,i]);let b=(0,q.useCallback)(e=>p(t=>qu(e,t)),[]),x=(0,q.useCallback)(e=>h(t=>Ju(e,t)),[]),[S,C]=(0,q.useState)(!0),[T,E]=(0,q.useState)(!0),D=(0,q.useMemo)(()=>f.filter(e=>{let t=e.data;return!(!S&&t.className===`Folder`||!T&&t.virtual)}),[f,T,S]),O=(0,q.useMemo)(()=>new Set(D.map(e=>e.id)),[D]),k=(0,q.useMemo)(()=>D.map(e=>{let t=e.data.path===n;return e.data.selected===t?e:{...e,data:{...e.data,selected:t}}}),[D,n]),A=(0,q.useMemo)(()=>m.filter(e=>!O.has(e.source)||!O.has(e.target)?!1:e.type===`tree`?S:T),[m,O,S,T]),j=(0,q.useMemo)(()=>Pv(k,A),[k,A]);return(0,J.jsx)(iv,{nodes:k,options:xv,children:(0,J.jsxs)(vp,{onPointerDownCapture:sv,nodes:k,edges:j,nodeTypes:my,edgeTypes:Zv,onNodesChange:b,onEdgesChange:x,onNodeClick:(e,t)=>{let n=t.data;n.virtual||r(n.path)},onPaneClick:()=>{r(null),c()||l(null)},minZoom:.15,nodesConnectable:!1,proOptions:{hideAttribution:!0},children:[(0,J.jsx)(Ep,{gap:20,size:1,color:`var(--color-input)`}),(0,J.jsx)(fv,{}),(0,J.jsx)(Fp,{showInteractive:!1,position:`bottom-left`}),(0,J.jsx)(Qp,{pannable:!0,zoomable:!0,style:{width:168,height:112},nodeColor:e=>gv(e.data.hue).mark,nodeStrokeWidth:0}),(0,J.jsx)(Cu,{position:`top-right`,children:(0,J.jsxs)(av,{children:[(0,J.jsx)(ov,{icon:(0,J.jsx)(bt,{}),label:`Structure`,pressed:S,title:`Folders and the parent→child tree`,onClick:()=>C(e=>!e)}),(0,J.jsx)(ov,{icon:(0,J.jsx)(Ie,{}),label:`Semantics`,pressed:T,title:`Typed edges between core nodes`,onClick:()=>E(e=>!e)}),(0,J.jsx)(`span`,{className:`mx-0.5 h-4 w-px bg-border`}),(0,J.jsx)(fy,{})]})})]})})}function gy({anchor:e,excerpt:t,children:n,className:r}){let i=(0,q.useId)(),a=w(e=>e.openAnchorRef),o=w(e=>e.openAnchorId),s=a===e.ref&&(o===null||o===i),c=w(e=>e.setOpenAnchor),{threads:l,status:u,orphaned:d}=Qe(e.ref);return(0,J.jsxs)(m,{modal:!1,open:s,onOpenChange:t=>c(t?e.ref:null,t?i:null),children:[(0,J.jsx)(b,{asChild:!0,children:(0,J.jsxs)(`span`,{"data-anchor-ref":e.ref,"data-commentable":``,className:g(`group relative block`,r),children:[n,(0,J.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),c(s?null:e.ref,i)},title:`Comment on ${e.ref}`,className:g(`absolute right-1 top-1 z-10 inline-flex h-5 w-5 items-center justify-center rounded-md border bg-card text-muted-foreground shadow-sm transition-opacity hover:text-primary`,s?`opacity-100`:`opacity-40 group-hover:opacity-100`),children:(0,J.jsx)(Ct,{className:`h-3 w-3`})}),l.length>0&&(0,J.jsx)(M,{count:l.length,status:u,orphaned:d,onClick:()=>c(s?null:e.ref,i),className:`absolute -right-1.5 -top-1.5 z-10`})]})}),(0,J.jsx)(E,{onInteractOutside:t=>{nt(e.ref,l)&&t.preventDefault()},className:`max-h-[var(--radix-popover-content-available-height)] overflow-y-auto`,children:(0,J.jsx)(ve,{anchor:e,excerpt:t,threads:l,onClose:()=>c(null)})})]})}function _y({core:e,bundle:t,selectedPath:n}){let r=(0,q.useMemo)(()=>e.nodes.find(e=>e.path===n)??null,[e,n]),i=(0,q.useMemo)(()=>sy(e),[e]);if(!r)return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center p-6 text-center text-sm text-muted-foreground`,children:`Select a core node to see what's set on it.`});let a=i.get(r.className)??264,o=uy(t,r.className),s=r.className===`Folder`,c=iy(r.data),l=e.edges.filter(e=>e.from===r.path||e.to===r.path);return(0,J.jsxs)(`div`,{className:`h-full overflow-y-auto`,children:[(0,J.jsx)(gy,{anchor:{ref:ty(r.path),kind:`section`},excerpt:`${oy(r)} (${r.className})`,className:`block`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2.5 border-b px-4 py-3`,children:[(0,J.jsx)(`span`,{style:{color:gv(a).mark},className:`shrink-0`,children:o?(0,J.jsx)(ey,{svg:o,className:`h-7 w-7`}):s?(0,J.jsx)(vt,{className:`h-6 w-6`}):(0,J.jsx)(j,{className:`h-6 w-6`})}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:`truncate text-[15px] font-semibold`,children:oy(r)}),(0,J.jsx)(`div`,{className:`text-[11px] font-mono text-muted-foreground`,children:r.className})]})]})}),(0,J.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,J.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Path`}),(0,J.jsx)(`div`,{className:`mt-1 break-all font-mono text-[11px] text-foreground/80`,children:r.path})]}),(0,J.jsxs)(`div`,{className:`px-4 pb-3`,children:[(0,J.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Data`}),c.length===0?(0,J.jsx)(`p`,{className:`mt-1 text-[12px] text-muted-foreground`,children:`No fields set.`}):(0,J.jsx)(`div`,{className:`mt-1.5 flex flex-col gap-1.5`,children:c.map(({key:e,label:t,value:n})=>(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5 rounded-md border bg-card px-2.5 py-1.5`,children:[(0,J.jsx)(`span`,{className:`font-mono text-[11px] text-muted-foreground`,title:t===e?void 0:e,children:t}),(0,J.jsx)(`span`,{className:`break-words text-[13px] text-foreground/80`,children:cy(n)})]},e))})]}),l.length>0&&(0,J.jsxs)(`div`,{className:`px-4 pb-4`,children:[(0,J.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Edges`}),(0,J.jsx)(`div`,{className:`mt-1.5 flex flex-col gap-1`,children:l.map((e,t)=>{let n=e.from===r.path,i=n?e.to:e.from;return(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[12px]`,children:[(0,J.jsx)(Ie,{className:`h-3.5 w-3.5 shrink-0 text-schema-edge`}),(0,J.jsx)(`span`,{className:`font-mono text-schema-edge`,children:e.edgeName}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:n?`→`:`←`}),(0,J.jsx)(`span`,{className:`truncate text-foreground/80`,title:i,children:ny(i)})]},`${e.edgeName}-${t}`)})})]})]})}function vy(e){let t=new Set(e.nodes.map(e=>e.path)),n=new Map,r=[];for(let i of e.nodes)if(i.parent&&t.has(i.parent)){let e=n.get(i.parent)??[];e.push(i),n.set(i.parent,e)}else r.push(i);let i=e=>({node:e,children:(n.get(e.path)??[]).map(i)});return r.map(i)}function yy({item:e,depth:t,bundle:n,hues:r,selectedPath:i,onSelect:o}){let[s,c]=(0,q.useState)(!0),l=e.node,u=e.children.length>0,d=i===l.path,f=r.get(l.className)??264,p=uy(n,l.className),m=l.className===`Folder`;return(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`div`,{className:g(`group/row flex items-center gap-0.5 rounded-md pr-2 hover:bg-accent`,d&&`bg-accent`),style:{paddingLeft:6+t*12},children:[u?(0,J.jsx)(`button`,{type:`button`,onClick:()=>c(e=>!e),className:`shrink-0 rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground`,title:s?`Collapse`:`Expand`,children:s?(0,J.jsx)(gt,{className:`h-3 w-3`}):(0,J.jsx)(a,{className:`h-3 w-3`})}):(0,J.jsx)(`span`,{className:`w-4 shrink-0`}),(0,J.jsx)(gy,{anchor:{ref:ty(l.path),kind:`section`},excerpt:`${oy(l)} (${l.className})`,className:`flex-1 min-w-0`,children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>o(l.path),className:`flex w-full items-center gap-1.5 py-1 text-left min-w-0`,children:[(0,J.jsx)(`span`,{style:{color:gv(f).mark},className:`shrink-0`,children:p?(0,J.jsx)(ey,{svg:p,className:`h-4 w-4`}):m?(0,J.jsx)(vt,{className:`h-3.5 w-3.5`}):(0,J.jsx)(j,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(`span`,{className:`truncate text-[13px] font-medium`,children:oy(l)}),(0,J.jsx)(`span`,{className:`ml-auto shrink-0 pl-2 text-[11px] text-muted-foreground`,children:l.className})]})})]}),s&&u&&(0,J.jsx)(`div`,{children:e.children.map(e=>(0,J.jsx)(yy,{item:e,depth:t+1,bundle:n,hues:r,selectedPath:i,onSelect:o},e.node.path))})]})}function by({core:e,bundle:t,selectedPath:n,onSelect:r}){let i=(0,q.useMemo)(()=>sy(e),[e]),a=(0,q.useMemo)(()=>vy(e),[e]);return(0,J.jsxs)(`div`,{className:`text-sm py-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 pb-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,J.jsx)(k,{className:`h-3.5 w-3.5`}),` Core`,(0,J.jsx)(`span`,{className:`ml-auto tabular-nums text-muted-foreground`,children:e.nodes.length})]}),a.length===0?(0,J.jsx)(`p`,{className:`px-3 pt-2 text-[12px] text-muted-foreground`,children:e.error?e.error.message:`This domain defines no core (genesis) data.`}):a.map(e=>(0,J.jsx)(yy,{item:e,depth:0,bundle:t,hues:i,selectedPath:n,onSelect:r},e.node.path))]})}var xy=`kernel.astrale.ai`,Sy=new Set([`Node`,`Edge`]);function Cy(e,t){let n=e.ir;if(n)return typeof t==`string`?n.classes[t]:t.origin===n.domain?n.classes[t.name]:n.importedClassesByKey[Je(t)]}function wy(e,t){return t.origin===e.ir?.domain?`local`:t.origin===xy?`kernel`:`external`}function Ty(e,t){let n=e.ir?.classes[t];if(!n)return[];let r=new Set(Object.keys(n.properties)),i=new Set(Object.keys(n.methods)),a=new Set(r),o=new Set,s=new Set,c=[...n.extendsRefs??[]],l=[];for(;c.length>0;){let t=c.shift(),n=Je(t);if(s.has(n)||t.origin===xy&&Sy.has(t.name))continue;s.add(n);let r=Cy(e,t);if(!r)continue;c.push(...r.extendsRefs??[]);let u=Object.entries(r.properties).filter(([e])=>!a.has(e)).map(([e,t])=>[e,t,!(r.required??[]).includes(e)]),d=Object.entries(r.methods).filter(([e])=>!o.has(e)).map(([e,t])=>({name:e,method:t,overridden:i.has(e)}));for(let[e]of u)a.add(e);for(let{name:e}of d)o.add(e);(u.length!==0||d.length!==0)&&l.push({owner:t.name,ref:t,tier:wy(e,t),...t.origin===e.ir?.domain?{}:{origin:t.origin},props:u,methods:d})}let u={local:0,external:1,kernel:2};return l.sort((e,t)=>u[e.tier]-u[t.tier])}function Ey(e){return e.reduce((e,t)=>e+t.props.length+t.methods.length,0)}function Dy({domainId:e,view:t,open:n,onOpenChange:r}){let i=xe(e,t.slug,n),a=i.data,[o,s]=(0,q.useState)(``),[c,l]=(0,q.useState)(0),[u,f]=(0,q.useState)(!1),[p,m]=(0,q.useState)({phase:`idle`}),h=(0,q.useRef)(``);(0,q.useEffect)(()=>{if(!n){h.current=``,s(``),m({phase:`idle`});return}if(!a)return;let r=`${e}:${t.slug}:${a.instance??`none`}`;h.current!==r&&(h.current=r,s(a.targets.selected?.id??``))},[e,n,a,t.slug]);let _=!!a&&(!a.targetRequired||a.targets.items.some(e=>e.id===o)),y=n&&!u&&!!a?.instance&&_;(0,q.useEffect)(()=>{if(!y){m({phase:`idle`});return}let n=!1,r=null;return m({phase:`launching`}),$e.launchView(e,t.slug,o?{targetId:o}:{}).then(t=>{t.status===`ready`?(r=t.sessionId,n?$e.closeViewSession(e,t.sessionId):m({phase:`ready`,session:t})):n||m({phase:`error`,reason:t.reason})}).catch(e=>{n||m({phase:`error`,reason:e instanceof Error?e.message:String(e)})}),()=>{n=!0,r&&$e.closeViewSession(e,r)}},[c,e,y,a?.instance,o,t.slug]),(0,q.useEffect)(()=>{if(p.phase!==`ready`)return;let t=()=>{let t=`/api/domain/${encodeURIComponent(e)}/views/sessions/close`;navigator.sendBeacon(t,new Blob([JSON.stringify({sessionId:p.session.sessionId})],{type:`application/json`}))};return window.addEventListener(`pagehide`,t),()=>window.removeEventListener(`pagehide`,t)},[e,p]);let b=async()=>{if(!u){f(!0),m({phase:`idle`});try{await i.refetch(),l(e=>e+1)}catch(e){m({phase:`error`,reason:e instanceof Error?e.message:String(e)})}finally{f(!1)}}};return(0,J.jsx)(te,{open:n,onOpenChange:r,children:(0,J.jsxs)(W,{hideClose:!0,className:`grid h-[90vh] w-[95vw] max-w-[1500px] grid-rows-[auto_1fr] gap-0 overflow-hidden rounded-xl p-0`,children:[(0,J.jsxs)(`header`,{className:`flex min-w-0 items-center gap-3 border-b bg-card px-4 py-2.5`,children:[(0,J.jsx)(`span`,{className:`grid h-8 w-8 shrink-0 place-items-center rounded-md bg-schema-view/10 text-schema-view`,children:(0,J.jsx)(wt,{className:`h-[18px] w-[18px]`})}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(G,{className:`truncate text-sm font-semibold`,children:t.slug}),t.description&&(0,J.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,children:t.description})]}),(0,J.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`,children:[a?.targetRequired&&(0,J.jsx)(Oy,{result:a.targets,value:o,onChange:s,instance:a.instance}),p.phase===`ready`&&(0,J.jsx)(`a`,{href:p.session.pageUrl,target:`_blank`,rel:`noreferrer`,title:`Open in a new tab`,className:`grid h-8 w-8 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,J.jsx)(d,{className:`h-4 w-4`})}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>void b(),disabled:u,title:`Reload the view session`,className:`grid h-8 w-8 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-40`,children:(0,J.jsx)(Te,{className:g(`h-4 w-4`,u&&`animate-spin`)})}),(0,J.jsxs)(v,{title:`Close`,className:`grid h-8 w-8 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:[(0,J.jsx)(Ce,{className:`h-4 w-4`}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}),(0,J.jsx)(`main`,{className:`relative min-h-0 overflow-hidden bg-muted`,children:p.phase===`ready`?(0,J.jsx)(`iframe`,{src:p.session.pageUrl,title:`${t.slug} preview`,className:`h-full w-full border-0 bg-white`,allow:`clipboard-read; clipboard-write`},p.session.sessionId):(0,J.jsx)(jy,{loading:i.isLoading||u||p.phase===`launching`,runtimeError:i.isError,runtime:a,targetId:o,sessionError:p.phase===`error`?p.reason:void 0,onRetry:()=>void b()})})]})})}function Oy({result:e,value:t,onChange:n,instance:r}){let[i,a]=(0,q.useState)(!1),[o,s]=(0,q.useState)(``),c=e.items.find(e=>e.id===t)??null,l=(0,q.useMemo)(()=>{let t=o.trim().toLocaleLowerCase();return t?e.items.filter(e=>[e.label,e.description,e.className,e.status,e.id].filter(Boolean).some(e=>e.toLocaleLowerCase().includes(t))):e.items},[e.items,o]);return(0,J.jsxs)(m,{open:i,onOpenChange:e=>{a(e),e||s(``)},children:[(0,J.jsx)(R,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,className:g(`flex h-8 min-w-52 max-w-[22rem] items-center gap-2 rounded-md border bg-card px-2.5 text-left transition-colors hover:bg-accent`,e.stale&&!c&&`border-warning/50`),children:[(0,J.jsx)(`span`,{className:g(`h-2 w-2 shrink-0 rounded-full`,c?`bg-success`:e.stale?`bg-warning`:`bg-muted-foreground/40`)}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[13px] font-medium`,children:c?.label??e.stale?.label??`Select a target`}),(0,J.jsx)(Me,{className:`h-3.5 w-3.5 text-muted-foreground`})]})}),(0,J.jsxs)(E,{side:`bottom`,align:`start`,className:`z-[70] w-[28rem] p-0`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 border-b px-3 py-2.5`,children:[(0,J.jsx)(Ee,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,J.jsx)(`input`,{autoFocus:!0,value:o,onChange:e=>s(e.target.value),placeholder:`Search visible targets…`,className:`min-w-0 flex-1 bg-transparent text-xs outline-none placeholder:text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-[9px] uppercase tracking-wider text-muted-foreground`,children:r??`no instance`})]}),e.stale&&(0,J.jsxs)(`div`,{className:`m-2 flex gap-2 rounded-lg border border-warning/25 bg-warning/8 p-2.5 text-[11px] text-warning`,children:[(0,J.jsx)(_t,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`}),(0,J.jsxs)(`span`,{children:[(0,J.jsx)(`strong`,{children:e.stale.label}),` was remembered, but it was deleted or is no longer visible. Pick a replacement.`]})]}),(0,J.jsx)(`div`,{className:`max-h-80 overflow-y-auto p-1.5`,children:e.status===`unavailable`?(0,J.jsx)(Ay,{children:e.reason??`Targets could not be queried.`}):l.length===0?(0,J.jsx)(Ay,{children:e.items.length===0?`No eligible targets are visible.`:`No matches.`}):l.map(e=>(0,J.jsx)(ky,{item:e,selected:e.id===t,onClick:()=>{n(e.id),a(!1)}},e.id))}),e.truncated&&(0,J.jsx)(`div`,{className:`border-t px-3 py-2 text-[10px] text-muted-foreground`,children:`Showing the first 200 visible targets per class.`})]})]})}function ky({item:e,selected:t,onClick:n}){return(0,J.jsxs)(`button`,{type:`button`,onClick:n,className:g(`flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-left transition-colors hover:bg-accent`,t&&`bg-accent/70`),children:[(0,J.jsx)(`span`,{className:`grid h-7 w-7 shrink-0 place-items-center rounded-md bg-muted text-[10px] font-semibold text-muted-foreground`,children:e.className.slice(0,2).toUpperCase()}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`span`,{className:`block truncate text-xs font-medium`,children:e.label}),(0,J.jsx)(`span`,{className:`block truncate text-[10px] text-muted-foreground`,children:[e.className,e.description,e.status].filter(Boolean).join(` · `)})]}),(0,J.jsx)(`code`,{className:`text-[9px] text-muted-foreground`,children:e.id.slice(0,8)}),t&&(0,J.jsx)(Ae,{className:`h-3.5 w-3.5 text-primary`})]})}function Ay({children:e}){return(0,J.jsx)(`div`,{className:`px-3 py-8 text-center text-[11px] text-muted-foreground`,children:e})}function jy({loading:e,runtimeError:t,runtime:n,targetId:r,sessionError:i,onRetry:a}){if(e)return(0,J.jsx)(My,{icon:(0,J.jsx)(at,{className:`animate-spin`}),title:`Resolving installed View`,children:`The Astrale CLI is resolving the View and connecting it to the active data instance.`});if(t)return(0,J.jsx)(My,{icon:(0,J.jsx)(Ot,{}),title:`The Studio runtime did not respond`,action:a,children:`Retry the View session. The schema canvas is unaffected.`});if(!n?.instance)return(0,J.jsx)(My,{icon:(0,J.jsx)(Ot,{}),title:`Choose an Astrale instance`,children:`The installed View reads data from the active instance in the Studio header.`});if(n.targetRequired&&!n.targets.items.some(e=>e.id===r)){let e=n.targets.stale;return(0,J.jsx)(My,{icon:(0,J.jsx)(Ee,{}),title:e?`The remembered target is gone`:`Choose what this view should open`,children:e?`${e.label} was deleted or is no longer visible. Use the target selector above.`:n.targets.items.length?`${n.targets.items.length} visible candidate${n.targets.items.length===1?``:`s`} found on ${n.instance}.`:n.targets.reason||`No eligible targets are currently visible.`})}return i?(0,J.jsx)(My,{icon:(0,J.jsx)(_t,{}),title:`The view could not be opened`,action:a,children:i}):(0,J.jsx)(My,{icon:(0,J.jsx)(at,{className:`animate-spin`}),title:`Opening view session`,children:`Studio is preparing the authenticated CLI-owned Shell session.`})}function My({icon:e,title:t,children:n,action:r}){return(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center px-8 text-center`,children:[(0,J.jsx)(`div`,{className:`mb-3 grid h-11 w-11 place-items-center rounded-xl border bg-card text-muted-foreground [&_svg]:h-5 [&_svg]:w-5`,children:e}),(0,J.jsx)(`h2`,{className:`text-sm font-semibold`,children:t}),(0,J.jsx)(`div`,{className:`mt-1.5 max-w-md text-[12px] leading-relaxed text-muted-foreground`,children:n}),r&&(0,J.jsx)(`button`,{type:`button`,onClick:r,className:`mt-4 rounded-md border bg-card px-3 py-1.5 text-[11px] transition-colors hover:bg-accent`,children:`Restart preview`})]})}function Ny({kind:e,className:t}){return(0,J.jsx)(e===`inline-html`?rt:e===`spa`?mt:l,{className:t})}function Py({domainId:e,view:t,icon:n}){let[r,i]=(0,q.useState)(!1),a=pe(t.drift),o=[t.kind,t.mount,t.unbound?`standalone`:`targeted`].filter(Boolean).join(` · `),s=`view.${t.slug}`;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{"data-domain-id":e,"data-anchor-ref":s,"data-anchor-excerpt":t.slug,className:`group flex w-full items-center gap-2.5 rounded-lg px-2 py-1.5 transition-colors hover:bg-accent/60`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),title:`Open live view`,className:`flex min-w-0 flex-1 items-center gap-2.5 text-left`,children:[(0,J.jsx)(ot,{tone:`node`,size:`sm`,children:n?(0,J.jsx)(ey,{svg:n,className:`h-3.5 w-3.5`}):(0,J.jsx)(Ny,{kind:t.kind,className:`h-3.5 w-3.5`})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:t.slug}),(0,J.jsx)(`div`,{className:`truncate text-[11px] leading-tight text-muted-foreground`,children:o})]}),a&&(0,J.jsxs)(`span`,{className:g(`inline-flex shrink-0 items-center gap-1 text-[10px] font-medium`,a.tone===`warn`?`text-warning`:`text-muted-foreground`),children:[a.tone===`warn`&&(0,J.jsx)(He,{className:`h-3 w-3`}),a.text]}),(0,J.jsx)(de,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-primary`})]}),(0,J.jsx)(Ne,{domainId:e,anchorRef:{ref:s,kind:`section`,file:t.file},excerpt:t.slug,className:`ml-1`})]}),r&&(0,J.jsx)(Dy,{domainId:e,view:t,open:r,onOpenChange:i})]})}function Fy({domainId:e,model:t}){let{data:n}=S(e),r=w(e=>e.selectClass),i=[...t.byClass.keys()].sort(),a=e=>n?.ir?.classes[e]?.icon;return(0,J.jsx)(ct,{className:`h-full`,children:(0,J.jsxs)(`div`,{className:`p-5`,children:[(0,J.jsxs)(`div`,{className:`mb-5 flex items-baseline gap-2 pr-8`,children:[(0,J.jsx)(`h1`,{className:`text-base font-semibold`,children:`Views`}),(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t.all.length}),t.hasDrift&&(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[11px] font-medium text-warning`,children:[(0,J.jsx)(He,{className:`h-3.5 w-3.5`}),` drift`]})]}),t.all.length===0&&(0,J.jsx)(ue,{icon:(0,J.jsx)(mt,{}),title:`No views`,hint:`This domain declares no views.`}),i.map(n=>{let i=a(n),o=t.byClass.get(n);return(0,J.jsxs)(`section`,{className:`mb-6`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>r(`class.${n}`),title:`Open ${n}`,className:`group mb-1.5 flex w-full items-center gap-1.5 px-1 text-left`,children:[(0,J.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:i?(0,J.jsx)(ey,{svg:i,className:`h-4 w-4`}):(0,J.jsx)(j,{className:`h-4 w-4`})}),(0,J.jsx)(`span`,{className:`text-[13px] font-semibold transition-colors group-hover:text-primary`,children:n}),(0,J.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:o.length}),(0,J.jsx)(h,{className:`ml-auto h-3.5 w-3.5 text-muted-foreground transition-colors group-hover:text-muted-foreground`})]}),(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:o.map(t=>(0,J.jsx)(Py,{domainId:e,view:t,icon:i},t.slug))})]},n)}),t.unbound.length>0&&(0,J.jsx)(et,{label:`Standalone`,hint:`opens without a target`,children:(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:t.unbound.map(t=>(0,J.jsx)(Py,{domainId:e,view:t},t.slug))})}),t.orphanRoutes.length>0&&(0,J.jsx)(et,{label:`Orphan client routes`,hint:`no declaring view`,children:(0,J.jsx)(`div`,{className:`flex flex-col gap-1`,children:t.orphanRoutes.map(e=>(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-2 py-1.5 text-[12px] text-warning`,children:[(0,J.jsx)(He,{className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`code`,{className:`truncate`,children:e})]},e))})})]})})}function Iy(e){return e?e.max===null?e.min<=0?`*`:`${e.min}..*`:e.min===e.max?`${e.max}`:`${e.min}..${e.max}`:`*`}var Ly=e=>!e||e.max===null||e.max>1,Ry=e=>!e||e.min<=0;function zy(e){return e?e===`kernel.astrale.ai`?`kernel`:e.split(`.`)[0]:`this domain`}function By({doc:e}){return(0,J.jsxs)(Se,{openDelay:80,children:[(0,J.jsx)(Fe,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,"aria-label":`Description`,className:`text-muted-foreground transition-colors hover:text-foreground`,children:(0,J.jsx)(N,{className:`h-3.5 w-3.5`})})}),(0,J.jsx)(Ve,{className:`w-auto max-w-xs text-[13px] leading-relaxed text-muted-foreground`,children:e})]})}function Vy({bundle:e,refBase:t,pname:n,schema:r,optional:i}){let a=`${t}.property.${n}`,o=e.overlay.sourceSpans[a]?.doc,s=Le(r,i),c=s.icon,l=f(r);return(0,J.jsx)(it,{anchorRef:a,anchorExcerpt:n,leading:(0,J.jsx)(ot,{tone:`node`,size:`sm`,children:(0,J.jsx)(c,{})}),title:(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[n,o&&(0,J.jsx)(By,{doc:o}),s.optional&&(0,J.jsx)(K,{tone:`default`,children:`optional`})]}),subtitle:(0,J.jsxs)(Se,{openDelay:140,children:[(0,J.jsx)(Fe,{asChild:!0,children:(0,J.jsx)(`span`,{className:`cursor-default`,children:s.label})}),(0,J.jsx)(Ve,{className:`w-auto max-w-sm`,children:(0,J.jsx)(me,{items:[{label:`type`,value:u(l)+(s.optional?` (optional)`:``)},{label:`key`,value:a}]})})]}),trailing:(0,J.jsx)(Ne,{anchorRef:{ref:a,kind:`schema`,file:e.overlay.sourceSpans[a]?.file},excerpt:n})})}function Hy({bundle:e,owner:t,ownerKind:n=`class`,handlerOwnerLocal:r=!0,refBase:i,mname:a,method:o,overridden:s=!1}){let c=`${i}.method.${a}`,l=r?fe(e.overlay.handlerLinks,t,a,n):void 0,u=e.overlay.sourceSpans[c]?.doc,d=Ge(o),f=d.icon,p=l&&!l.implemented,m=l?.unlinked;return(0,J.jsxs)(B,{className:`px-3 py-2.5`,"data-anchor-ref":c,"data-anchor-excerpt":`${t}.${a}`,"data-commentable":``,children:[(0,J.jsx)(it,{className:`px-0 py-0 hover:bg-transparent`,leading:(0,J.jsx)(ot,{tone:d.tone,size:`sm`,children:(0,J.jsx)(f,{})}),title:(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:g(s&&`text-muted-foreground line-through`),children:a}),(0,J.jsx)(De,{method:o}),u&&(0,J.jsx)(By,{doc:u}),o.inheritance===`sealed`&&(0,J.jsx)(K,{tone:`warning`,children:`sealed`}),o.inheritance===`abstract`&&(0,J.jsx)(K,{tone:`fn`,children:`contract`}),s&&(0,J.jsx)(K,{tone:`default`,children:`overridden`}),p&&(0,J.jsx)(K,{tone:`warning`,children:`needs handler`}),m&&(0,J.jsx)(K,{tone:`default`,children:`unlinked`})]}),trailing:(0,J.jsx)(Ne,{anchorRef:{ref:c,kind:`schema`,file:e.overlay.sourceSpans[c]?.file},excerpt:`${t}.${a}`})}),(0,J.jsx)(`div`,{className:`pl-10 pt-1.5`,children:(0,J.jsx)(we,{label:`Details`,children:(0,J.jsx)(Uy,{method:o,link:l,owner:t})})})]})}function Uy({method:e,link:t,owner:n}){let r=Object.entries(e.input.properties??{}),i=new Set(e.input.required??[]);return(0,J.jsxs)(`div`,{className:`space-y-3 pb-1`,children:[r.length>0&&(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Input`}),(0,J.jsx)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-[13px]`,children:r.map(([e,t])=>{let n=!i.has(e),r=Le(t,n);return(0,J.jsxs)(`span`,{className:`inline-flex items-baseline gap-1.5`,children:[(0,J.jsx)(`span`,{className:`font-medium`,children:e}),(0,J.jsxs)(`span`,{className:`text-muted-foreground`,children:[r.label,r.optional?`?`:``]})]},e)})})]}),(0,J.jsx)(Wy,{owner:n,isStatic:e.static}),t?.kernelCalls&&t.kernelCalls.length>0&&(0,J.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:t.kernelCalls.map(e=>(0,J.jsx)(K,{tone:`outline`,className:`font-mono`,children:e},e))}),(0,J.jsxs)(`div`,{className:`pt-0.5`,children:[(0,J.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:`returns `}),e.output.mode===`binary`?(0,J.jsx)(K,{tone:`outline`,children:`Binary`}):e.output.mode===`stream`?(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,J.jsx)(K,{tone:`outline`,children:`Stream`}),(0,J.jsx)(H,{schema:e.output.item})]}):(0,J.jsx)(H,{schema:e.output.schema})]})]})}function Wy({owner:e,isStatic:t}){return(0,J.jsxs)(Se,{openDelay:80,children:[(0,J.jsx)(Fe,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,className:`cursor-default rounded-full`,children:(0,J.jsxs)(K,{tone:`outline`,children:[t?(0,J.jsx)(V,{className:`h-3 w-3`}):(0,J.jsx)(j,{className:`h-3 w-3`}),` `,t?`on the ${e} type`:`on a ${e}`]})})}),(0,J.jsx)(Ve,{className:`w-auto max-w-[15rem]`,children:(0,J.jsx)(`p`,{className:`text-[12px] leading-relaxed text-muted-foreground`,children:t?(0,J.jsxs)(J.Fragment,{children:[`Acts on the `,(0,J.jsxs)(`span`,{className:`font-medium text-foreground/80`,children:[e,` type`]}),`.`,` `,(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`(static)`})]}):(0,J.jsxs)(J.Fragment,{children:[`Acts on a single `,(0,J.jsx)(`span`,{className:`font-medium text-foreground/80`,children:e}),`.`,` `,(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`(instance)`})]})})})]})}function Gy({bundle:e,groups:t,originIcon:n}){let r=w(e=>e.selectClass);return(0,J.jsx)(et,{label:`Inherited`,hint:`${Ey(t)}`,children:(0,J.jsx)(`div`,{className:`space-y-5`,children:t.map(t=>{let i=t.tier===`local`?`fn`:t.tier===`external`?`node`:`muted`,a=t.ref.origin===e.ir?.domain?`class.${t.owner}`:`class.${Je(t.ref)}`;return(0,J.jsxs)(`div`,{className:`border-l pl-3.5`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>r(a),title:t.origin??`this domain`,className:`group/ih mb-2.5 flex w-full items-center gap-2.5 text-left`,children:[(0,J.jsx)(ot,{tone:i,size:`sm`,children:(0,J.jsx)(Ky,{tier:t.tier,iconSvg:n(t.origin)})}),(0,J.jsx)(`span`,{className:`text-[13px] font-semibold tracking-tight`,children:t.owner}),(0,J.jsx)(K,{tone:t.tier===`local`?`fn`:`outline`,children:t.tier===`local`?`base class`:zy(t.origin)}),(0,J.jsx)(F,{className:`ml-auto h-3.5 w-3.5 text-muted-foreground`})]}),(0,J.jsxs)(`div`,{className:`space-y-2.5`,children:[t.props.length>0&&(0,J.jsx)(B,{className:`divide-y`,children:t.props.map(([t,n,r])=>(0,J.jsx)(Vy,{bundle:e,refBase:a,pname:t,schema:n,optional:r},`p-${t}`))}),t.methods.map(n=>(0,J.jsx)(Hy,{bundle:e,owner:t.owner,ownerKind:`class`,handlerOwnerLocal:t.tier===`local`,refBase:a,mname:n.name,method:n.method,overridden:n.overridden},`m-${n.name}`))]})]},a)})})})}function Ky({tier:e,iconSvg:t}){return e===`local`?(0,J.jsx)(j,{}):t?(0,J.jsx)(ey,{svg:t,className:`h-4 w-4`}):e===`kernel`?(0,J.jsx)(xt,{}):(0,J.jsx)(l,{})}function qy({bundle:e,endpoints:t,edgeName:n}){let[r,i]=t;return(0,J.jsx)(B,{className:`px-3 py-5`,children:(0,J.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-stretch gap-1`,children:[(0,J.jsx)(Jy,{bundle:e,endpoint:r,edgeName:n}),(0,J.jsx)(Yy,{edgeName:n,from:r,to:i}),(0,J.jsx)(Jy,{bundle:e,endpoint:i,edgeName:n})]})})}function Jy({bundle:e,endpoint:t,edgeName:n}){let r=w(e=>e.selectClass);if(!t)return null;let i=e.ir;if(!i)return null;let a=t.refs===void 0?t.types.map(e=>({name:e})):t.refs.filter(_e).map(e=>({name:e.name,ref:e}));a.length===0&&a.push({name:`—`});let o=t.cardinality,s=t.name?qe(`edge.${n}.endpoint.${t.name}`,t.name):{},c=({name:t,ref:n})=>{if(n){let r=n.origin===i.domain,a=r?i.classes[t]:Cy(e,n),o=!!a;return{t,key:Je(n),origin:r?void 0:n.origin,resolvable:o,selectionId:r?`class.${n.name}`:`class.${Je(n)}`,icon:a?.icon}}let r=i.classes[t],a=!!r;return{t,key:`class:${t}`,origin:void 0,resolvable:a,selectionId:a?`class.${t}`:void 0,icon:r?.icon}},l=e=>()=>{e.resolvable&&e.selectionId&&r(e.selectionId)},u=(0,J.jsx)(`div`,{className:`inline-flex max-w-full items-center rounded-full bg-muted/60 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:(0,J.jsx)(`span`,{className:`truncate`,children:t.name})}),d=(0,J.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-border px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground`,title:`declared cardinality`,children:Iy(o)});if(a.length===1){let e=c(a[0]);return(0,J.jsxs)(`button`,{type:`button`,onClick:e.resolvable?l(e):void 0,disabled:!e.resolvable,title:e.resolvable?`Open ${e.t}`:e.origin?`${e.t} · ${e.origin}`:e.t,...s,className:g(`group/ep flex flex-col items-center gap-2.5 rounded-xl px-2 py-3 text-center min-w-0 transition-colors`,e.resolvable?`hover:bg-accent/60 cursor-pointer`:`cursor-default`),children:[(0,J.jsx)(ot,{tone:e.origin?`sky`:`violet`,size:`lg`,className:`transition-transform group-hover/ep:-translate-y-0.5`,children:e.icon?(0,J.jsx)(ey,{svg:e.icon,className:`h-5 w-5`}):(0,J.jsx)(j,{})}),(0,J.jsxs)(`div`,{className:`min-w-0 w-full space-y-1.5`,children:[(0,J.jsx)(`div`,{className:`break-words text-[13px] font-medium leading-tight`,children:e.t}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-1`,children:[u,d]})]})]})}return(0,J.jsxs)(`div`,{...s,className:`flex flex-col items-center gap-2.5 rounded-xl px-2 py-3 text-center min-w-0`,children:[(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-1.5`,children:a.map(e=>{let t=c(e);return(0,J.jsxs)(`button`,{type:`button`,onClick:t.resolvable?l(t):void 0,disabled:!t.resolvable,title:t.resolvable?`Open ${t.t}`:t.origin?`${t.t} · ${t.origin}`:t.t,className:g(`inline-flex items-center gap-1.5 rounded-lg border border-border pl-1 pr-2 py-1 transition-colors`,t.resolvable?`hover:bg-accent/60 cursor-pointer`:`cursor-default`),children:[(0,J.jsx)(ot,{tone:t.origin?`sky`:`violet`,size:`sm`,children:t.icon?(0,J.jsx)(ey,{svg:t.icon,className:`h-3.5 w-3.5`}):(0,J.jsx)(j,{})}),(0,J.jsx)(`span`,{className:`text-[13px] font-semibold`,children:t.t})]},t.key)})}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-1`,children:[(0,J.jsx)(`span`,{className:`text-[10px] lowercase tracking-wide text-muted-foreground`,children:`any of`}),u,d]})]})}function Yy({edgeName:e,from:t,to:n}){let r=t?.cardinality,i=n?.cardinality,a=`${Ly(r)?`many`:`one`}-to-${Ly(i)?`many`:`one`}`;return(0,J.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 self-center px-1.5 min-w-[84px]`,children:[(0,J.jsxs)(`div`,{className:`flex w-full items-center text-muted-foreground`,children:[(0,J.jsx)(Xy,{many:Ly(r),optional:Ry(r),side:`left`}),(0,J.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,J.jsx)(h,{className:`h-[18px] w-[18px] shrink-0 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,J.jsx)(Xy,{many:Ly(i),optional:Ry(i),side:`right`})]}),(0,J.jsxs)(Se,{openDelay:80,children:[(0,J.jsx)(Fe,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,className:`rounded-full border border-border px-2 py-0.5 text-[10px] font-medium text-muted-foreground transition-colors hover:text-muted-foreground cursor-default`,children:a})}),(0,J.jsx)(Ve,{className:`w-60`,children:(0,J.jsxs)(`p`,{className:`text-[12px] leading-relaxed text-muted-foreground`,children:[(0,J.jsx)(`span`,{className:`font-mono text-foreground/80`,children:e}),` links`,` `,(0,J.jsx)(`span`,{className:`font-mono text-foreground/80`,children:Iy(r)}),` `,t?.name,` to`,` `,(0,J.jsx)(`span`,{className:`font-mono text-foreground/80`,children:Iy(i)}),` `,n?.name,`.`]})})]})]})}function Xy({many:e,optional:t,side:n}){return(0,J.jsx)(`svg`,{viewBox:`0 0 24 16`,className:g(`h-4 w-6 shrink-0`,n===`right`&&`rotate-180`),fill:`none`,stroke:`currentColor`,strokeWidth:`1.25`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:e?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`path`,{d:`M22 8 L9 2 M22 8 L9 8 M22 8 L9 14`}),!t&&(0,J.jsx)(`circle`,{cx:`16`,cy:`8`,r:`2.2`,fill:`currentColor`,stroke:`none`})]}):(0,J.jsx)(`circle`,{cx:`9`,cy:`8`,r:`3`,fill:t?`none`:`currentColor`,stroke:t?`currentColor`:`none`})})}function Zy(){let e=w(e=>e.back);return w(e=>e.selectionHistory.length>0)?(0,J.jsx)(`div`,{className:`px-3 pt-3`,children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>e(),title:`Back to previous selection`,className:`inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:[(0,J.jsx)(ht,{className:`h-3.5 w-3.5`}),`Back`]})}):null}function Qy({bundle:e,selected:t}){let n=e.ir,r=w(e=>e.selectClass),{data:i}=oe(),a=Ze(e.domainId),o=e=>e?i?.find(t=>t.origin===e)?.icon:void 0;if(!n||!t)return(0,J.jsx)(`div`,{className:`h-full flex items-center justify-center px-6`,children:(0,J.jsx)(ue,{icon:(0,J.jsx)(st,{}),title:`Nothing selected`,hint:`Pick a Class or relationship to inspect its properties, methods, handlers, and Views.`})});if(t.startsWith(`module.`))return(0,J.jsx)($y,{bundle:e,path:t.slice(7)});let s=t.startsWith(`class.`)?t.slice(6):t,c=Pe(s),l=c===void 0||c.origin===n.domain,u=c?.name??s,d=l?n.classes[u]:Cy(e,c);if(!d)return(0,J.jsx)(`div`,{className:`h-full flex items-center justify-center px-6`,children:(0,J.jsx)(ue,{title:`Not found`,hint:t})});let f=c??{origin:n.domain,kind:`class`,name:u},p=d.type===`edge`,m=l?ge(p?`edge`:`class`,u):`class.${Je(f)}`,h=l?e.overlay.sourceSpans[m]:void 0,g=Object.entries(d.properties),_=Object.entries(d.methods),v=l&&!p?Ty(e,u):[],y=l&&!p?Be(a,u):[];return(0,J.jsxs)(`div`,{className:`h-full overflow-y-auto`,...qe(m,u),children:[(0,J.jsx)(Zy,{}),(0,J.jsxs)(`div`,{className:`space-y-6 px-5 py-5`,children:[(0,J.jsxs)(`header`,{className:`space-y-3`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,J.jsx)(ot,{tone:p?`edge`:`node`,size:`lg`,children:d.icon?(0,J.jsx)(ey,{svg:d.icon,className:`h-5 w-5`}):p?(0,J.jsx)(Ie,{}):(0,J.jsx)(j,{})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0 pt-0.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`h2`,{className:`truncate text-[15px] font-semibold tracking-tight`,children:u}),p&&(0,J.jsx)(K,{tone:`outline`,children:`edge`}),!l&&(0,J.jsx)(K,{tone:`outline`,children:zy(f.origin)}),(0,J.jsx)(Ne,{anchorRef:{ref:m,kind:`schema`,file:h?.file},excerpt:u,className:`ml-auto`})]}),(h?.doc??d.description)&&(0,J.jsx)(`p`,{className:`mt-1 text-[13px] leading-relaxed text-muted-foreground`,children:h?.doc??d.description})]})]}),(d.extendsRefs??[]).length>0&&(0,J.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5 pl-11`,children:(d.extendsRefs??[]).map(t=>{let i=Cy(e,t)!==void 0,a=t.origin===n.domain?`class.${t.name}`:`class.${Je(t)}`;return(0,J.jsx)(`button`,{type:`button`,disabled:!i,onClick:()=>i&&r(a),children:(0,J.jsxs)(K,{tone:`outline`,children:[`extends `,t.name,t.origin===n.domain?``:` · ${zy(t.origin)}`]})},Je(t))})})]}),p&&(d.endpoints?.length??0)>=2&&(0,J.jsx)(et,{label:`Relationship`,children:(0,J.jsx)(qy,{bundle:e,endpoints:d.endpoints,edgeName:u})}),g.length>0&&(0,J.jsx)(et,{label:`Properties`,hint:`${g.length}`,children:(0,J.jsx)(B,{className:`divide-y`,children:g.map(([t,n])=>(0,J.jsx)(Vy,{bundle:e,refBase:m,pname:t,schema:n,optional:!(d.required??[]).includes(t)},t))})}),_.length>0&&(0,J.jsx)(et,{label:`Methods`,hint:_.length,children:(0,J.jsx)(`div`,{className:`space-y-2.5`,children:_.map(([t,n])=>(0,J.jsx)(Hy,{bundle:e,owner:u,ownerKind:`class`,handlerOwnerLocal:l,refBase:m,mname:t,method:n},t))})}),y.length>0&&(0,J.jsx)(et,{label:`Views`,hint:`${y.length}`,children:(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:y.map(t=>(0,J.jsx)(Py,{domainId:e.domainId,view:t,icon:d.icon},t.slug))})}),v.length>0&&(0,J.jsx)(Gy,{bundle:e,groups:v,originIcon:o}),g.length===0&&_.length===0&&v.length===0&&!p&&(0,J.jsx)(ue,{title:`No properties or methods`,hint:`This Class declares no own members.`})]})]})}function $y({bundle:e,path:t}){let n=w(e=>e.selectClass),r=A(e,t),i=e=>(0,J.jsx)(it,{onClick:()=>n(e.selectId),anchorRef:e.ref,anchorExcerpt:e.name,leading:(0,J.jsx)(ot,{tone:e.kind===`edge`?`edge`:`node`,size:`sm`,children:e.icon?(0,J.jsx)(ey,{svg:e.icon,className:`h-4 w-4`}):e.kind===`edge`?(0,J.jsx)(Ie,{}):(0,J.jsx)(j,{})}),title:e.name},e.selectId);return(0,J.jsxs)(`div`,{className:`h-full overflow-y-auto`,...qe(`module.${t}`,r.label),children:[(0,J.jsx)(Zy,{}),(0,J.jsxs)(`div`,{className:`space-y-6 px-5 py-5`,children:[(0,J.jsxs)(`header`,{className:`flex items-start gap-3`,children:[(0,J.jsx)(ot,{tone:`muted`,size:`lg`,style:{color:gv(r.hue).mark},children:(0,J.jsx)(vt,{})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0 pt-0.5`,children:[(0,J.jsx)(`h2`,{className:`truncate text-[15px] font-semibold tracking-tight`,children:r.label}),(0,J.jsxs)(`p`,{className:`mt-0.5 text-[13px] text-muted-foreground`,children:[r.classes.length,` `,r.classes.length===1?`class`:`classes`,r.edges.length>0&&` · ${r.edges.length} relationship${r.edges.length===1?``:`s`}`]})]})]}),r.classes.length>0&&(0,J.jsx)(et,{label:`Classes`,children:(0,J.jsx)(B,{className:`divide-y`,children:r.classes.map(i)})}),r.edges.length>0&&(0,J.jsx)(et,{label:`Relationships`,children:(0,J.jsx)(B,{className:`divide-y`,children:r.edges.map(i)})})]})]})}function eb(e,t){return`extmember.${e}.class.${t}`}function tb(e){return e?e.refs===void 0?e.types.map(e=>({name:e})):e.refs.filter(_e).map(e=>({name:e.name,ref:e})):[]}function nb(e,t){let n=tb(t).flatMap(({name:t,ref:n})=>(n===void 0||n.origin===e.domain)&&e.classes[t]?.type===`node`?[t]:[]);return[...new Set(n)].map(e=>({className:e}))}function rb(e){let t=e.ir;if(!t)return[];let n=[];for(let[e,r]of Object.entries(t.classes)){if(r.type!==`edge`||!r.endpoints)continue;let i=r.endpoints[0],a=r.endpoints[1];if(!(!i||!a))for(let[r,o]of[[i,a],[a,i]]){let i=tb(r).filter(({name:e,ref:n})=>(n===void 0||n.origin===t.domain)&&t.classes[e]?.type===`node`),a=tb(o).flatMap(({name:e,ref:n})=>{if(n===void 0||n.origin===t.domain)return[];let r=t.importsByKey[Je(n)];return r===void 0?[]:[{name:e,ref:r.ref}]});for(let t of a)for(let a of i)n.push({edge:e,from:a.name,origin:t.ref.origin,to:t.name,...a.ref===void 0?{}:{fromRef:a.ref},toRef:t.ref,fromCard:r.cardinality,toCard:o.cardinality})}}return n}function ib(e){let t=new Map;for(let n of rb(e)){let e=t.get(n.origin)??new Map;e.set(Je(n.toRef),{name:n.to,ref:n.toRef}),t.set(n.origin,e)}return[...t].map(([e,t])=>({origin:e,kind:e===`kernel.astrale.ai`?`kernel`:`external`,members:[...t.values()].sort((e,t)=>e.name.localeCompare(t.name))})).sort((e,t)=>e.kind===t.kind?e.origin.localeCompare(t.origin):e.kind===`kernel`?1:-1)}var ab={hidden:{},showInheritedEdges:!0},ob=e=>ke(`class`,e),sb=e=>ke(`edge`,e),cb=e=>`domain.${e}`;function lb(e,t){return t[e]===!0}function ub(e,t){if(e.showInheritedEdges!==t.showInheritedEdges)return!1;let n=Object.keys(e.hidden);return n.length===Object.keys(t.hidden).length&&n.every(e=>t.hidden[e])}function db(e,t){return!lb(ob(e),t)}function fb(e,t){return!lb(cb(e),t)}function pb(e,t,n){return!lb(sb(e.edgeName),t)&&!lb(ob(e.aClass),t)&&!lb(ob(e.bClass),t)}var mb=`domain.import.`,hb=e=>`${mb}${e}`;function gb(){let{data:e}=oe(),t=new Map((e??[]).map(e=>[e.origin,e]));return e=>t.get(e)??{name:e.split(`.`)[0]||e,icon:``}}function _b({domain:e}){let t=gb(),n=w(t=>lb(cb(e.origin),t.hidden)),r=w(e=>e.toggleHidden),i=t(e.origin),a=e.kind===`kernel`?`violet`:`emerald`,o=e.members.length;return(0,J.jsxs)(`div`,{className:g(`group flex items-center gap-2 rounded-lg px-1.5 py-1 transition-opacity`,n&&`opacity-50`),children:[(0,J.jsx)(ot,{tone:a,size:`sm`,children:i.icon?(0,J.jsx)(ey,{svg:i.icon,className:`h-3.5 w-3.5`}):(0,J.jsx)(l,{})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:i.name}),(0,J.jsxs)(`div`,{className:`text-[11px] text-muted-foreground leading-tight`,children:[o,` linked `,o===1?`type`:`types`]})]}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>r(cb(e.origin)),title:n?`Show in canvas`:`Hide in canvas`,className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent/60 hover:text-foreground`,children:n?(0,J.jsx)(p,{className:`h-3.5 w-3.5`}):(0,J.jsx)(U,{className:`h-3.5 w-3.5`})})]})}function vb({origin:e}){let t=gb()(e);return(0,J.jsx)(gy,{anchor:{ref:hb(e),kind:`section`},excerpt:`Import ${t.name}`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-1.5 py-1`,children:[(0,J.jsx)(ot,{tone:`edge`,size:`sm`,children:t.icon?(0,J.jsx)(ey,{svg:t.icon,className:`h-3.5 w-3.5`}):(0,J.jsx)(l,{})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:t.name}),(0,J.jsx)(`div`,{className:`text-[11px] text-muted-foreground leading-tight`,children:`import requested`})]})]})})}function yb({domainId:e,taken:t}){let{data:n}=oe(),{create:r}=ie(e),i=w(e=>e.setOpenAnchor),a=e=>{let t=hb(e.origin);r.mutate({anchors:[e.origin],anchorRefs:[{ref:t,kind:`section`}],text:`Import the ${e.name} domain (${e.origin}) — add it to this domain's imports and wire up the types we depend on.`,firstRole:`user`,type:`text`},{onSuccess:()=>{i(t),D.success(`Import requested — add the why/how in the comment`)},onError:e=>D.error(String(e))})},o=(n??[]).filter(n=>n.kind!==`kernel`&&n.origin!==e&&!t.has(n.origin));return(0,J.jsxs)(m,{children:[(0,J.jsx)(R,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-[12px] font-medium text-muted-foreground transition-colors hover:bg-accent/60 hover:text-foreground`,children:[(0,J.jsx)(Et,{className:`h-3.5 w-3.5`}),`Import a domain`]})}),(0,J.jsxs)(E,{align:`start`,side:`top`,className:`w-64 p-1.5`,children:[(0,J.jsx)(`div`,{className:`px-1.5 pb-1.5 pt-1 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Catalog`}),o.length===0?(0,J.jsx)(`div`,{className:`px-1.5 py-3 text-center text-xs text-muted-foreground`,children:`Everything imported`}):(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:o.map(e=>(0,J.jsxs)(`button`,{type:`button`,onClick:()=>a(e),disabled:r.isPending,className:`group/imp flex items-center gap-2.5 rounded-lg px-1.5 py-1.5 text-left transition-colors hover:bg-accent/60 disabled:opacity-50`,children:[(0,J.jsx)(ot,{tone:e.kind===`external`?`emerald`:`sky`,size:`sm`,children:e.icon?(0,J.jsx)(ey,{svg:e.icon,className:`h-3.5 w-3.5`}):(0,J.jsx)(l,{})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:e.name}),(0,J.jsx)(`div`,{className:`truncate text-[11px] text-muted-foreground leading-tight`,children:e.description})]}),(0,J.jsx)(`span`,{className:`shrink-0 text-[11px] font-medium text-primary opacity-0 transition-opacity group-hover/imp:opacity-100`,children:`Import`})]},e.origin))})]})]})}function bb({domainId:e}){let{data:t}=S(e),{data:n}=ce(e),r=(0,q.useMemo)(()=>t?ib(t):[],[t]),i=(0,q.useMemo)(()=>new Set(r.map(e=>e.origin)),[r]),a=(0,q.useMemo)(()=>{let e=new Set([`kernel.astrale.ai`,...i]);for(let n of t?.ir?.dependencies??[])e.add(n.origin);for(let n of Object.values(t?.ir?.importsByKey??{}))e.add(n.origin);return e},[i,t]),s=(0,q.useMemo)(()=>{let e=new Set,t=[];for(let r of n?.comments??[])if(r.status===`open`)for(let n of r.anchorRefs){if(!n.ref.startsWith(mb))continue;let r=n.ref.slice(14);i.has(r)||e.has(r)||(e.add(r),t.push(r))}return t},[n,i]);return(0,J.jsx)(ct,{className:`h-full`,children:(0,J.jsxs)(`div`,{className:`p-5`,children:[(0,J.jsxs)(`div`,{className:`mb-5 flex items-baseline gap-2 pr-8`,children:[(0,J.jsx)(`h1`,{className:`text-base font-semibold`,children:`Domains`}),(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r.length})]}),r.length>0&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`px-1.5 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Imported domains`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:r.map(e=>(0,J.jsx)(_b,{domain:e},e.origin))})]}),s.length>0&&(0,J.jsxs)(J.Fragment,{children:[r.length>0&&(0,J.jsx)(o,{className:`my-2 opacity-60`}),(0,J.jsx)(`div`,{className:`px-1.5 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Requested`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:s.map(e=>(0,J.jsx)(vb,{origin:e},e))})]}),r.length===0&&s.length===0&&(0,J.jsx)(`p`,{className:`px-2 pb-1 pt-0.5 text-[11px] text-muted-foreground`,children:`No imported domains yet.`}),(0,J.jsx)(o,{className:`my-3 opacity-60`}),(0,J.jsx)(yb,{domainId:e,taken:a})]})})}var xb=20;function Sb(e){if(e.type!==`group`)return{};let t=(typeof e.measured?.width==`number`?e.measured.width:void 0)??(typeof e.style?.width==`number`?e.style.width:void 0),n=(typeof e.measured?.height==`number`?e.measured.height:void 0)??(typeof e.style?.height==`number`?e.style.height:void 0);return t!==void 0&&n!==void 0?{w:Math.round(t),h:Math.round(n)}:{}}function Cb(e,t){let n=t[e.id];if(!n)return e;let r={...e,position:{x:n.x,y:n.y}};return e.type===`group`&&n.w!==void 0&&n.h!==void 0&&(r.style={...e.style,width:n.w,height:n.h}),r}function wb(e){let t={};for(let n of e)t[n.id]={x:Math.round(n.position.x),y:Math.round(n.position.y),...Sb(n)};return t}function Tb(e,t){let n=new Map;for(let r of e){let e=r.parentId?t[r.id]:void 0;if(!e||!r.parentId)continue;let i=n.get(r.parentId);n.set(r.parentId,{w:Math.max(i?.w??0,e.x+184+18),h:Math.max(i?.h??0,e.y+40+18)})}let r={};for(let i of e){if(i.type!==`group`)continue;let e=t[i.id],a=n.get(i.id);if(!e||!a)continue;let o=Math.max(e.w??0,a.w),s=Math.max(e.h??0,a.h);(o!==e.w||s!==e.h)&&(r[i.id]={...e,w:o,h:s})}return r}function Eb(e,t){let n=0,r=1/0,i=new Map;for(let{node:t,position:a}of e)if(t.parentId){let e=a.y+(t.style?.height??40)+xb;i.set(t.parentId,Math.max(i.get(t.parentId)??38,e))}else n=Math.max(n,a.x+(t.style?.width??184)),r=Math.min(r,a.y);Number.isFinite(r)||(r=0);let a=n+96,o=r,s={};for(let e of t)if(e.parentId){let t=i.get(e.parentId)??38;s[e.id]={x:18,y:t},i.set(e.parentId,t+40+xb)}else s[e.id]={x:a,y:o,...Sb(e)},o+=(e.style?.height??96)+xb;let c=[...e.map(e=>e.node),...t],l=Object.fromEntries(e.map(e=>[e.node.id,e.position]));return{...s,...Tb(c,{...l,...s})}}function Db(){let e=We(),t=(0,q.useRef)(new Map),n=(0,q.useRef)(new Map),r=(0,q.useCallback)(e=>{let r=n.current.get(e);r&&clearTimeout(r),n.current.delete(e);let i=t.current.get(e);t.current.delete(e),i&&Object.keys(i).length>0&&$e.setLayout(e,i).catch(()=>{})},[]),i=(0,q.useCallback)((i,a)=>{e.setQueryData(ye.layout(i),e=>({renderFingerprint:e?.renderFingerprint,positions:{...e?.positions,...a}})),t.current.set(i,{...t.current.get(i),...a});let o=n.current.get(i);o&&clearTimeout(o),n.current.set(i,setTimeout(()=>r(i),500))},[r,e]);return(0,q.useEffect)(()=>()=>{for(let e of t.current.keys())r(e)},[r]),{commitLayout:i,flushLayout:r}}function Ob(e){return{...e?.name?{role:e.name}:{},cardinality:dv(e?.cardinality)}}function kb(e){let t=e.filter(e=>e.origin===`kernel.astrale.ai`);return t.some(e=>e.name===`Identity`)?`identity`:t.some(e=>e.name===`Container`)?`container`:null}function Ab(e,t,n,r){let a=e.ir;if(!a)return{nodes:[],edges:[]};let o=i(e).filter(e=>e.classes.length>0),s=[];for(let r of o){let i=`grp-${r.path}`,o=t.has(r.path);if(s.push({id:i,type:o?`moduleNode`:`group`,position:{x:0,y:0},selectable:!0,data:{domainId:e.domainId,domainOrigin:a.domain,label:r.label,path:r.path,hue:r.hue,collapsed:o,classCount:r.classes.length},style:o?{width:220,height:34}:{width:220,height:96}}),!o)for(let t of r.classes){if(!db(t,n))continue;let o=a.classes[t];s.push({id:`class.${t}`,type:`classNode`,parentId:i,extent:`parent`,expandParent:!0,position:{x:0,y:0},data:{domainId:e.domainId,domainOrigin:a.domain,name:t,props:Object.keys(o?.properties??{}).length,methods:Object.keys(o?.methods??{}).length,coreRole:kb(o?.extendsRefs??[]),parents:(o?.extendsRefs??[]).map(e=>e.name),hue:r.hue,icon:o?.icon}})}}let c=n=>{let r=P(e,n);return t.has(r)?`grp-${r}`:`class.${n}`},l=e=>nb(a,e),u=[];for(let t of Object.values(a.classes)){if(t.type!==`edge`)continue;let i=l(t.endpoints?.[0]),a=l(t.endpoints?.[1]),o=uv(t.orientation),s={sourceEnd:Ob(t.endpoints?.[0]),targetEnd:Ob(t.endpoints?.[1])};for(let l of i)for(let i of a){let a=c(l.className),d=c(i.className);if(a===d||!pb({edgeName:t.name,aClass:l.className,bClass:i.className},n,r))continue;let f=P(e,l.className)!==P(e,i.className);u.push({id:`edge-${t.name}__${a}__${d}`,source:a,target:d,type:`floating`,data:{label:t.name,edgeClass:t.name,ownerDomainId:e.domainId,...s},markerStart:o.markerStart,markerEnd:o.markerEnd,style:{stroke:f?`var(--edge-cross)`:`var(--edge-line)`,strokeWidth:f?1.6:1.3}})}}if(r){for(let[t,r]of Object.entries(a.classes))if(!(r.type!==`node`||lb(ob(t),n)))for(let n of r.extendsRefs??[]){if(n.origin!==a.domain||a.classes[n.name]?.type!==`node`)continue;let r=c(t),i=c(n.name);r!==i&&u.push({id:`extends-${t}__${n.name}`,source:r,target:i,type:`floating`,data:{label:`extends`,kind:`extends`,ownerDomainId:e.domainId},markerEnd:cv,style:{stroke:`var(--edge-inherit)`,strokeWidth:1.3,strokeDasharray:`2 4`}})}}return{nodes:s,edges:u}}function jb({data:e}){let t=e,n=w(e=>e.domainId===t.domainId&&e.selectedClass===`class.${t.name}`),r=w(e=>e.showInheritedEdges),i=t.parents??[],a=gv(t.hue);return(0,J.jsxs)(`div`,{"data-domain-id":t.domainId,"data-core-role":t.coreRole??void 0,style:{width:184,height:40,borderLeft:`3px solid ${a.mark}`},className:g(`relative flex items-center gap-2 rounded-md border bg-card pl-2.5 pr-2 transition-[border-color,box-shadow]`,n?`border-primary shadow-[0_0_0_3px_color-mix(in_oklch,var(--color-primary)_16%,transparent)]`:`hover:border-muted-foreground/40`),children:[(0,J.jsx)(Rd,{type:`target`,position:X.Top,className:`!opacity-0`}),t.icon?(0,J.jsx)(ey,{svg:t.icon,className:`h-4 w-4 shrink-0`,style:{color:a.mark}}):(0,J.jsx)(j,{className:`h-4 w-4 shrink-0`,style:{color:a.mark}}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[13px] font-medium`,children:t.name}),!r&&i.length>0&&(0,J.jsxs)(`span`,{title:`Extends ${i.join(`, `)}`,className:`max-w-[76px] shrink-0 truncate rounded bg-muted px-1 py-px text-[10px] leading-4 text-muted-foreground`,children:[i[0],i.length>1&&` +${i.length-1}`]}),(0,J.jsx)(Qv,{domainId:t.domainId,anchorRef:`class.${t.name}`,kind:`schema`,excerpt:t.name}),(0,J.jsx)(Rd,{type:`source`,position:X.Bottom,className:`!opacity-0`})]})}function Mb({data:e}){let t=e,n=w(e=>e.setDomain),r=w(e=>e.toggleModule),i=w(e=>e.domainId===t.domainId&&e.selectedClass===`module.${t.path}`),o=gv(t.hue);return(0,J.jsxs)(`div`,{"data-domain-id":t.domainId,className:g(`relative h-full w-full rounded-lg border transition-[border-color,box-shadow]`,i&&`shadow-[0_0_0_3px_color-mix(in_oklch,var(--color-primary)_14%,transparent)]`,t.collapsed&&`cursor-pointer`),style:{borderColor:i?`var(--color-primary)`:o.border,background:o.surface},children:[(0,J.jsx)(Qv,{domainId:t.domainId,anchorRef:`module.${t.path}`,kind:`section`,excerpt:t.label}),(0,J.jsx)(Rd,{type:`target`,position:X.Top,className:`!opacity-0`}),(0,J.jsx)(Rd,{type:`source`,position:X.Bottom,className:`!opacity-0`}),(0,J.jsxs)(`div`,{className:`flex items-center gap-1 px-1.5 py-1.5 text-[12px]`,style:{color:o.text},children:[(0,J.jsx)(`button`,{type:`button`,title:t.collapsed?`Show classes`:`Hide classes`,onClick:e=>{e.stopPropagation(),t.onToggleModule?t.onToggleModule(t.domainId,t.path):(w.getState().domainId!==t.domainId&&n(t.domainId),r(t.path))},className:`shrink-0 rounded p-0.5 transition-colors hover:bg-foreground/5`,children:t.collapsed?(0,J.jsx)(a,{className:`h-3.5 w-3.5`}):(0,J.jsx)(gt,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(`span`,{className:`truncate font-semibold`,children:t.label}),(0,J.jsx)(`span`,{className:`ml-auto shrink-0 pr-1 text-[11px] tabular-nums opacity-70`,children:t.classCount})]})]})}function Nb({data:e}){let t=e;return(0,J.jsx)(`div`,{className:`h-full w-full rounded-lg border border-dashed bg-muted/40`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2.5 py-1.5 text-muted-foreground`,children:[(0,J.jsx)(`span`,{className:`shrink-0`,children:t.icon?(0,J.jsx)(ey,{svg:t.icon,className:`h-4 w-4`}):(0,J.jsx)(l,{className:`h-4 w-4`})}),(0,J.jsx)(`span`,{className:`truncate text-[12px] font-semibold text-foreground/80`,children:t.name}),(0,J.jsx)(`span`,{className:`ml-auto shrink-0 text-[10px] uppercase tracking-wider`,children:t.kind})]})})}function Pb({data:e}){let t=e;return(0,J.jsxs)(`div`,{className:`flex h-full w-full items-center gap-1.5 rounded-md border border-dashed bg-card px-2`,children:[(0,J.jsx)(Rd,{type:`target`,position:X.Left,className:`!opacity-0`}),(0,J.jsx)(j,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`truncate text-[12px] font-medium text-foreground/80`,children:t.name}),(0,J.jsx)(Rd,{type:`source`,position:X.Right,className:`!opacity-0`})]})}function Fb({data:e}){return(0,J.jsx)(`div`,{className:`relative h-full w-full rounded-xl border border-dashed border-border`,children:(0,J.jsx)(`span`,{className:`absolute -top-2 left-4 whitespace-nowrap px-2 text-[11px] font-medium text-muted-foreground`,style:{background:`var(--color-canvas)`},children:e.label})})}function Ib({data:e}){let t=e;return(0,J.jsx)(Rb,{threads:t.comments,anchor:t.anchor,excerpt:t.excerpt,className:`nodrag nopan`})}var Lb={classNode:jb,group:Mb,moduleNode:Mb,extDomain:Nb,extMember:Pb,internalRegion:Fb,canvasComment:Ib};function Rb({threads:e,anchor:t,excerpt:n,className:r}){let[i,a]=(0,q.useState)(!1);if(e.length===0)return null;let o=e.some(e=>e.status===`open`)?`open`:`resolved`,s=e.some(e=>e.orphaned);return(0,J.jsxs)(m,{modal:!1,open:i,onOpenChange:a,children:[(0,J.jsx)(b,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,title:`Schema canvas comments`,onClick:e=>{e.stopPropagation(),a(e=>!e)},className:g(`flex h-6 min-w-6 items-center justify-center gap-1 rounded-full px-1.5 text-[11px] font-semibold ring-2 ring-card transition-colors`,o===`open`?`bg-primary text-primary-foreground hover:bg-primary/90`:`bg-muted text-muted-foreground hover:bg-accent`,s&&`bg-destructive text-white hover:bg-destructive/90`,r),children:[(0,J.jsx)(he,{className:`h-3 w-3`}),e.length]})}),(0,J.jsx)(E,{side:`top`,align:`center`,className:`w-80`,onInteractOutside:n=>{nt(t.ref,e)&&n.preventDefault()},children:(0,J.jsx)(ve,{anchor:t,excerpt:n,threads:e,onClose:()=>a(!1)})})]})}function zb(e,t,n,r){let i=1/0,a=-1/0,o=1/0,s=-1/0;for(let t of e){if(t.parentId)continue;let e=r?.[t.id]??t.position,n=t.style?.width??200,c=t.style?.height??120;i=Math.min(i,e.x),a=Math.max(a,e.x+n),o=Math.min(o,e.y),s=Math.max(s,e.y+c)}Number.isFinite(i)||(i=0,o=0,a=400,s=400);let c=i-56,l=o-56,u=a-i+112,d=new Map((n??[]).map(e=>[e.origin,e])),f=c+u+96,p=[],m=l+24;for(let e of t){let t=d.get(e.origin),n=36+e.members.length*52+8,i=`extdom.${e.origin}`;p.push({id:i,type:`extDomain`,position:r?.[i]??{x:f,y:m},draggable:!0,selectable:!1,data:{name:t?.name??e.origin.split(`.`)[0],origin:e.origin,kind:e.kind,icon:t?.icon},style:{width:216,height:n}}),e.members.forEach((t,n)=>{p.push({id:eb(e.origin,t.name),type:`extMember`,parentId:i,extent:`parent`,draggable:!1,position:{x:12,y:36+n*52},data:{name:t.name,kind:e.kind},style:{width:192,height:44}})}),m+=n+40}return{extNodes:p}}function Bb(e,t){let n=1/0,r=1/0,i=-1/0,a=-1/0;for(let t of e){if(!t.id.startsWith(`grp-`))continue;let e=t.style?.width??200,o=t.style?.height??120;n=Math.min(n,t.position.x),r=Math.min(r,t.position.y),i=Math.max(i,t.position.x+e),a=Math.max(a,t.position.y+o)}if(!Number.isFinite(n))return null;let o=i-n+112,s=a-r+112;return{id:`region`,type:`internalRegion`,position:{x:n-56,y:r-56},draggable:!1,selectable:!1,zIndex:-1,data:{label:t},style:{width:o,height:s},measured:{width:o,height:s}}}function Vb(e,t,n,r,i,a,o){let s=r.ir;if(!s)return[];let c=[];for(let l of e){if(!t.has(l.origin))continue;let e=eb(l.origin,l.to);if(!n.has(e))continue;let u=l.fromRef?{types:[l.from],refs:[l.fromRef]}:{types:[l.from]};for(let t of nb(s,u)){if(!pb({edgeName:l.edge,aClass:t.className,bClass:``},a,o))continue;let s=i.has(P(r,t.className))?`grp-${P(r,t.className)}`:`class.${t.className}`;if(!n.has(s))continue;let u=uv();c.push({id:`edge-${l.edge}__${s}__${e}`,source:s,target:e,type:`floating`,data:{label:l.edge,edgeClass:l.edge,sourceEnd:{cardinality:dv(l.fromCard)},targetEnd:{cardinality:dv(l.toCard)}},markerStart:u.markerStart,markerEnd:u.markerEnd,style:{stroke:`var(--edge-cross)`,strokeWidth:2}})}}return c}function Hb(e){return!e||!Number.isFinite(e.x)||!Number.isFinite(e.y)?null:{x:e.x,y:e.y}}function Ub(e){let t=new Map;for(let n of e??[]){let e=n.anchorRefs.find(e=>e.ref===`section.schema`);if(!e)continue;let r=Hb(e);if(!r)continue;let i=`${Math.round(r.x/12)*12}:${Math.round(r.y/12)*12}`,a=t.get(i);a?a.comments.push(n):t.set(i,{key:i,anchor:e,comments:[n]})}return[...t.values()]}function Wb(e){return(e??[]).filter(e=>{let t=e.anchorRefs.find(e=>e.ref===`section.schema`);return!!t&&!Hb(t)})}function Gb(e){return e.map(e=>{let t=Hb(e.anchor)??{x:0,y:0};return{id:`canvas-comment.${e.key}`,type:`canvasComment`,position:{x:t.x,y:t.y},draggable:!1,selectable:!1,data:{comments:e.comments,anchor:e.anchor,excerpt:`Schema canvas`},style:{width:24,height:24},measured:{width:24,height:24},zIndex:40}})}function Kb(e,t){let n=new Set([e]),r=new Set;for(let i of t)i.source===e?(n.add(i.target),r.add(i.id)):i.target===e&&(n.add(i.source),r.add(i.id));return{nodeIds:n,edgeIds:r}}function qb({bundle:e,domainId:t,saved:n}){let{getInternalNode:r,getNodes:i,getViewport:a,setCenter:o,setViewport:s}=dd(),u=Q(e=>e.width),d=Q(e=>e.height),f=Q(e=>e.panZoom!==null),p=w(e=>e.focusId),m=w(e=>e.resolvedTheme),h=w(e=>e.focusClass),_=w(e=>e.panelOverlay),v=w(e=>e.setPanelOverlay),y=Ze(t).all.length,b=Ue(t).data?.detectedIntegrations?.length??0,x=I(t).data,S=(x?.nodes.length??0)+(x?.edges.length??0),C=w(e=>e.selectClass),T=w(e=>e.selectedClass),E=w(e=>e.setFocus),D=w(e=>e.setOpenAnchor),O=w(e=>e.collapsedModules),k=w(e=>e.toggleModule),A=w(e=>e.hidden),j=w(e=>e.showInheritedEdges),M=w(e=>e.toggleInheritedEdges),N=w(e=>e.showCardinality),F=w(e=>e.toggleCardinality),L=w(e=>e.setVisibility),{data:R}=oe(),{data:z}=ce(t),{data:B}=Re(t),V=(0,q.useRef)(!1),[H,U]=(0,q.useState)([]),[W,ee]=(0,q.useState)([]),[te,ne]=(0,q.useState)(null),G=(0,q.useMemo)(()=>Ab(e,new Set(O),A,j),[e.renderFingerprint,e,O,A,j]),re=(0,q.useMemo)(()=>ib(e),[e]),ie=(0,q.useMemo)(()=>rb(e),[e]),ae=Object.keys(A).sort().join(`,`)+`|${j}`;(0,q.useEffect)(()=>{if(!T?.startsWith(`class.`))return;let t=P(e,T.slice(6));O.includes(t)&&k(t)},[T,e,O,k]);let se=We(),le=(0,q.useRef)(!1),[ue,de]=(0,q.useState)(0),{commitLayout:fe}=Db(),pe=(0,q.useCallback)(e=>{fe(t,e)},[fe,t]);(0,q.useEffect)(()=>{if(!B)return;let e=B,t=w.getState(),n={hidden:e.hidden,showInheritedEdges:e.showInheritedEdges};ub(n,t)||L(n),V.current=!0},[t,B,L]),(0,q.useEffect)(()=>{if(!V.current)return;let e=w.getState(),n={hidden:e.hidden,showInheritedEdges:e.showInheritedEdges};ub(n,se.getQueryData(ye.visibility(t))??ab)||(se.setQueryData(ye.visibility(t),n),$e.setVisibility(t,n).catch(()=>{}))},[A,j,t,se]);let me=(0,q.useCallback)(t=>{let n=G.nodes.map(e=>Cb(e,t)),r=re.filter(e=>fb(e.origin,A)),{extNodes:i}=zb(n,r,R,t),a=[...n,...i],o=new Set(a.map(e=>e.id));U(a),ee([...G.edges,...Vb(ie,new Set(r.map(e=>e.origin)),o,e,new Set(O),A,j)])},[G,re,A,R,ie,e,O,j]),he=(0,q.useCallback)(()=>{le.current||(le.current=!0,de(e=>e+1))},[]),ge=(0,q.useRef)(n);ge.current=n,(0,q.useEffect)(()=>{let e=ge.current;if(!e)return;let t=G.nodes.filter(t=>e[t.id]),n=G.nodes.filter(t=>!e[t.id]);if(n.length===0){let t=Tb(G.nodes,e);me(Object.keys(t).length?{...e,...t}:e),Object.keys(t).length&&pe(t),he();return}if(t.length===0){let e=!1;return zv(G.nodes,G.edges).then(t=>{if(e)return;let n=wb(t);me(n),pe(n),he()}),()=>{e=!0}}let r=Eb(t.map(t=>({node:t,position:e[t.id]})),n);me({...e,...r}),pe(r),he()},[G,n!==void 0,re,ie,R,ae]);let _e=(0,q.useCallback)(e=>U(t=>qu(e.filter(e=>e.id!==`region`),t)),[]),ve=(0,q.useCallback)(e=>ee(t=>Ju(e,t)),[]),be=(0,q.useCallback)((e,t)=>{let n={[t.id]:{x:Math.round(t.position.x),y:Math.round(t.position.y),...Sb(t)}};if(t.parentId){let e=i(),r=e.find(e=>e.id===t.parentId);if(r){let i=r.measured?.width??(typeof r.style?.width==`number`?r.style.width:200),a=r.measured?.height??(typeof r.style?.height==`number`?r.style.height:120);for(let n of e)n.parentId===t.parentId&&(i=Math.max(i,n.position.x+(n.measured?.width??184)+18),a=Math.max(a,n.position.y+(n.measured?.height??40)+18));n[r.id]={x:Math.round(r.position.x),y:Math.round(r.position.y),w:Math.round(i),h:Math.round(a)}}}pe(n)},[pe,i]),xe=(0,q.useCallback)(async()=>{await $e.resetLayout(t).catch(()=>{});let e=wb(await zv(G.nodes,G.edges));me(e),se.setQueryData(ye.layout(t),{positions:e}),$e.setLayout(t,e).catch(()=>{}),de(e=>e+1)},[t,G,me,se]),Se=(0,q.useRef)(H);Se.current=H;let Ce=(0,q.useRef)(0);(0,q.useEffect)(()=>{if(ue===0||ue===Ce.current||!f)return;let e=Hv(Se.current,u,d);e&&(Ce.current=ue,s(e))},[ue,u,d,f,s]),(0,q.useEffect)(()=>{if(!T?.startsWith(`class.`)||!u||!d)return;let e=r(T);if(!e)return;let{x:t,y:n,zoom:i}=a(),s=e.internals.positionAbsolute.x+(e.measured.width??184)/2,c=e.internals.positionAbsolute.y+(e.measured.height??40)/2,l=s*i+t,f=c*i+n;l>24&&l<u-24&&f>24&&f<d-24||o(s,c,{zoom:i})},[T,u,d,r,a,o]);let we=p??te,Te=(0,q.useMemo)(()=>we?Kb(we,W):null,[we,W]),K=(0,q.useMemo)(()=>Bb(H,e.ir?.domain??``),[H,e.ir?.domain]),Ee=(0,q.useMemo)(()=>Ub(z?.comments),[z?.comments]),De=(0,q.useMemo)(()=>Wb(z?.comments),[z?.comments]),Oe=(0,q.useMemo)(()=>Gb(Ee),[Ee]),ke=(0,q.useMemo)(()=>{let e=H.map(e=>{if(e.type!==`classNode`)return e.className?{...e,className:void 0}:e;let t=Te&&!Te.nodeIds.has(e.id)?`is-dimmed`:void 0;return e.className===t?e:{...e,className:t}}),t=K?[K,...e]:e;return Oe.length?[...t,...Oe]:t},[H,Te,K,Oe]),Ae=(0,q.useMemo)(()=>W.map(e=>{let t=e.data?.edgeClass??e.id.replace(/^edge-/,``),n=T===`class.${t}`,r=Te?Te.edgeIds.has(e.id)?`is-on`:`is-dimmed`:void 0,i=n?g(`is-selected`,r):r;if(n){let t=`var(--color-primary)`;return{...e,className:i,data:{...e.data,selected:!0},style:{...e.style,stroke:t,strokeWidth:3},markerEnd:typeof e.markerEnd==`object`?{...e.markerEnd,color:t}:e.markerEnd}}return e.className===i&&!e.data?.selected?e:{...e,className:i,data:{...e.data,selected:!1}}}),[W,Te,T]),je=(0,q.useMemo)(()=>Pv(H,Ae),[H,Ae]);return(0,J.jsx)(iv,{nodes:H,options:xv,children:(0,J.jsxs)(vp,{onPointerDownCapture:sv,nodes:ke,edges:je,nodeTypes:Lb,edgeTypes:Zv,onNodesChange:_e,onEdgesChange:ve,onNodeDragStop:be,onNodeClick:(e,t)=>{t.id.startsWith(`class.`)?h(t.id):t.id.startsWith(`grp-`)&&C(`module.${t.id.slice(4)}`)},onNodeMouseEnter:(e,t)=>t.id.startsWith(`class.`)&&ne(t.id),onNodeMouseLeave:()=>ne(null),onEdgeClick:(e,t)=>{if(!t.id.startsWith(`edge-`))return;let n=t.data?.edgeClass??t.id.slice(5);C(`class.${n}`)},onPaneClick:()=>{E(null),c()||D(null)},minZoom:.15,nodesConnectable:!1,edgesFocusable:!0,proOptions:{hideAttribution:!0},children:[(0,J.jsx)(Ep,{gap:20,size:1,color:`var(--color-input)`}),(0,J.jsx)(fv,{}),(0,J.jsx)(Fp,{showInteractive:!1,position:`bottom-left`,children:(0,J.jsx)(Mp,{onClick:xe,title:`Auto-arrange — discards manual positions`,children:(0,J.jsx)(St,{className:`h-3.5 w-3.5`})})}),(0,J.jsx)(Qp,{pannable:!0,zoomable:!0,style:{width:168,height:112},nodeColor:e=>e.type===`classNode`?gv(e.data.hue,m).mark:`transparent`,nodeStrokeWidth:0}),(0,J.jsxs)(Cu,{position:`top-right`,className:`flex items-center gap-1.5`,children:[De.length>0&&(0,J.jsx)(Rb,{threads:De,anchor:{ref:`section.schema`,kind:`section`},excerpt:`Schema canvas`}),(0,J.jsxs)(av,{children:[(0,J.jsx)(ov,{icon:(0,J.jsx)(l,{}),label:`Domains`,count:re.length,pressed:_===`domains`,title:`Imported domains`,onClick:()=>v(_===`domains`?null:`domains`)}),(0,J.jsx)(ov,{icon:(0,J.jsx)(mt,{}),label:`Views`,count:y,pressed:_===`views`,onClick:()=>v(_===`views`?null:`views`)}),(0,J.jsx)(ov,{icon:(0,J.jsx)(Tt,{}),label:`Integrations`,count:b,pressed:_===`integrations`,onClick:()=>v(_===`integrations`?null:`integrations`)}),(0,J.jsx)(`span`,{className:`mx-0.5 h-4 w-px bg-border`}),(0,J.jsx)(ov,{icon:(0,J.jsx)(Ie,{}),label:`Inherited`,pressed:j,title:`Show inheritance edges`,onClick:M}),(0,J.jsx)(ov,{icon:(0,J.jsx)(Dt,{}),label:`Cardinality`,pressed:N,title:`Spell out how many of each side a relationship allows`,onClick:F}),(0,J.jsx)(fy,{count:S})]})]})]})})}var Jb=`integration.request.`,Yb=e=>`${Jb}${e}`,Xb=e=>e.toLowerCase().trim().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`integration`;function Zb({name:e}){return(0,J.jsx)(gy,{anchor:{ref:`section.integrations.${e}`,kind:`section`},excerpt:`${e} integration`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-1.5 py-1`,children:[(0,J.jsx)(ot,{tone:`core`,size:`sm`,children:(0,J.jsx)(Tt,{})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:e}),(0,J.jsx)(`div`,{className:`text-[11px] text-muted-foreground leading-tight`,children:`in integrations/`})]})]})})}function Qb({slug:e,label:t}){return(0,J.jsx)(gy,{anchor:{ref:Yb(e),kind:`section`},excerpt:`Add ${t} integration`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-1.5 py-1`,children:[(0,J.jsx)(ot,{tone:`edge`,size:`sm`,children:(0,J.jsx)(Tt,{})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-tight`,children:t}),(0,J.jsx)(`div`,{className:`text-[11px] text-muted-foreground leading-tight`,children:`requested`})]})]})})}function $b({domainId:e,taken:t}){let{create:n}=ie(e),r=w(e=>e.setOpenAnchor),[i,a]=(0,q.useState)(!1),[o,s]=(0,q.useState)(``),[c,l]=(0,q.useState)(``),u=()=>{let e=o.trim();if(!e)return;let t=Yb(Xb(e)),i=`Add a "${e}" integration under the integrations/ folder${c.trim()?` — ${c.trim()}`:``}. Wire it up the Astrale way (DI, secrets, idempotency).`;n.mutate({anchors:[e],anchorRefs:[{ref:t,kind:`section`}],text:i,firstRole:`user`,type:`text`},{onSuccess:()=>{s(``),l(``),a(!1),r(t),D.success(`Integration requested — add the why/how in the comment`)},onError:e=>D.error(String(e))})};return(0,J.jsxs)(m,{open:i,onOpenChange:a,children:[(0,J.jsx)(R,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-[12px] font-medium text-muted-foreground transition-colors hover:bg-accent/60 hover:text-foreground`,children:[(0,J.jsx)(Et,{className:`h-3.5 w-3.5`}),`Request an integration`]})}),(0,J.jsxs)(E,{align:`start`,side:`top`,className:`w-64 p-2.5`,children:[(0,J.jsx)(`div`,{className:`pb-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Request an integration`}),(0,J.jsx)(`input`,{autoFocus:!0,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`&&u()},placeholder:`Name (e.g. Stripe)`,className:`mb-1.5 w-full rounded-md border bg-card px-2 py-1.5 text-[13px] outline-none focus:border-primary`}),(0,J.jsx)(`textarea`,{value:c,onChange:e=>l(e.target.value),placeholder:`Why / what for (optional)`,rows:2,className:`mb-2 w-full resize-none rounded-md border bg-card px-2 py-1.5 text-[13px] outline-none focus:border-primary`}),(0,J.jsx)(`button`,{type:`button`,onClick:u,disabled:!o.trim()||n.isPending,className:`w-full rounded-md bg-primary px-2 py-1.5 text-[12px] font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:opacity-50`,children:`Request`}),t.size>0&&(0,J.jsxs)(`p`,{className:`pt-2 text-[11px] leading-snug text-muted-foreground`,children:[`Already present: `,[...t].join(`, `)]})]})]})}function ex({domainId:e}){let{data:t}=Ue(e),{data:n}=ce(e),r=t?.detectedIntegrations??[],i=(0,q.useMemo)(()=>new Set(r),[r]),a=(0,q.useMemo)(()=>{let e=new Set,t=[];for(let r of n?.comments??[])if(r.status===`open`)for(let n of r.anchorRefs){if(!n.ref.startsWith(Jb))continue;let a=n.ref.slice(20);i.has(a)||e.has(a)||(e.add(a),t.push({slug:a,label:r.anchors[0]??a}))}return t},[n,i]);return(0,J.jsx)(ct,{className:`h-full`,children:(0,J.jsxs)(`div`,{className:`p-5`,children:[(0,J.jsxs)(`div`,{className:`mb-5 flex items-baseline gap-2 pr-8`,children:[(0,J.jsx)(`h1`,{className:`text-base font-semibold`,children:`Integrations`}),(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r.length})]}),r.length>0&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`px-1.5 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Detected`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:r.map(e=>(0,J.jsx)(Zb,{name:e},e))})]}),a.length>0&&(0,J.jsxs)(J.Fragment,{children:[r.length>0&&(0,J.jsx)(o,{className:`my-2 opacity-60`}),(0,J.jsx)(`div`,{className:`px-1.5 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Requested`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:a.map(e=>(0,J.jsx)(Qb,{slug:e.slug,label:e.label},e.slug))})]}),r.length===0&&a.length===0&&(0,J.jsx)(`p`,{className:`px-2 pb-1 pt-0.5 text-[11px] text-muted-foreground`,children:`No integrations detected.`}),(0,J.jsx)(o,{className:`my-3 opacity-60`}),(0,J.jsx)($b,{domainId:e,taken:i})]})})}function tx({onClose:e,children:t}){return(0,J.jsxs)(`div`,{className:`relative min-h-0 w-[420px] shrink-0 border-l bg-card`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:e,"aria-label":`Close panel`,title:`Close (Esc)`,className:`absolute right-3.5 top-3.5 z-20 inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,J.jsx)(Ce,{className:`h-4 w-4`})}),t]})}function nx(e,t){return t?e.members.some(e=>e.selectId===t)?!0:e.children.some(e=>nx(e,t)):!1}function rx({root:e,selected:t,onSelect:n,controls:r}){return(0,J.jsxs)(`div`,{className:`py-2 text-[13px]`,"data-domain-id":r?.domainId,children:[(0,J.jsx)(`div`,{className:`px-3 pb-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:`Modules`}),e.children.map(e=>(0,J.jsx)(ix,{node:e,depth:0,selected:t,onSelect:n,controls:r},e.path)),e.members.map(e=>(0,J.jsx)(ax,{m:e,depth:1,selected:t,onSelect:n,controls:r},e.selectId))]})}function ix({node:e,depth:t,selected:n,onSelect:r,controls:i}){let o=w(e=>e.collapsedModules),s=w(e=>e.toggleModule),c=i?.collapsedModules??o,l=i?.toggleModule??s,[u,d]=(0,q.useState)(!0),f=`module.${e.path}`,p=n===f,m=e.members.length>0,h=m?!c.includes(e.path)||nx(e,n):u||nx(e,n),_=()=>m?l(e.path):d(e=>!e),v={paddingLeft:8+t*12},y=h?yt:vt;return(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`div`,{"data-anchor-ref":f,"data-anchor-excerpt":e.path,className:g(`flex items-center gap-0.5 rounded-md pr-2 hover:bg-accent`,p&&`bg-accent`),style:v,children:[(0,J.jsx)(`button`,{type:`button`,onClick:_,className:`shrink-0 rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground`,title:h?`Collapse`:`Expand`,children:h?(0,J.jsx)(gt,{className:`h-3 w-3`}):(0,J.jsx)(a,{className:`h-3 w-3`})}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>r(f),className:g(`flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left font-medium`,p&&`font-semibold`),children:[(0,J.jsx)(y,{className:`h-3.5 w-3.5 shrink-0`,style:{color:gv(e.hue).mark}}),(0,J.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,J.jsx)(Ne,{domainId:i?.domainId,anchorRef:{ref:f,kind:`section`},excerpt:e.path,className:`ml-1`})]}),h&&(0,J.jsxs)(`div`,{children:[e.children.map(e=>(0,J.jsx)(ix,{node:e,depth:t+1,selected:n,onSelect:r,controls:i},e.path)),e.members.map(e=>(0,J.jsx)(ax,{m:e,depth:t+1,selected:n,onSelect:r,controls:i},e.selectId))]})]})}function ax({m:e,depth:t,selected:n,onSelect:r,controls:i}){let a=n===e.selectId,o=w(t=>lb(e.ref,t.hidden)),s=w(e=>e.toggleHidden),c=i?lb(e.ref,i.hidden):o,l=i?.toggleHidden??s,u=c,d=e.kind===`edge`?Ie:j,f=e.kind===`edge`?`text-schema-edge`:`text-schema-node`,m=(0,q.useRef)(null);return(0,q.useEffect)(()=>{a&&m.current?.scrollIntoView({block:`nearest`,behavior:`smooth`})},[a]),(0,J.jsxs)(`div`,{ref:m,"data-anchor-ref":e.selectId,"data-anchor-excerpt":`${e.kind} ${e.name}`,className:g(`group flex w-full items-center rounded-md pr-2 hover:bg-accent`,a&&`bg-accent`,u&&`opacity-45`),style:{paddingLeft:8+(t+1)*12+12},title:`${e.kind} ${e.name}`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>r(e.selectId),className:g(`flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left`,a&&`font-semibold`),children:[e.icon?(0,J.jsx)(ey,{svg:e.icon,className:g(`h-4 w-4 shrink-0`,f)}):(0,J.jsx)(d,{className:g(`h-3.5 w-3.5 shrink-0`,f)}),(0,J.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),l(e.ref)},title:c?`Show in canvas`:`Hide in canvas`,className:g(`ml-1 shrink-0 rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground`,c?`opacity-100`:`opacity-0 group-hover:opacity-100`),children:c?(0,J.jsx)(p,{className:`h-3.5 w-3.5`}):(0,J.jsx)(U,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(Ne,{domainId:i?.domainId,anchorRef:{ref:e.selectId,kind:`schema`},excerpt:`${e.kind} ${e.name}`,className:`ml-1`})]})}var ox={width:360,height:220},sx={width:200,height:120},cx=52,lx=1900;function ux(e){let t=e.type===`classNode`?{width:184,height:40}:e.type===`moduleNode`?{width:200,height:44}:sx;return{width:e.measured?.width??(typeof e.style?.width==`number`?e.style.width:t.width),height:e.measured?.height??(typeof e.style?.height==`number`?e.style.height:t.height)}}function dx(e){let t=e.filter(e=>!e.parentId);if(t.length===0)return{minX:0,minY:0,maxX:0,maxY:0};let n=1/0,r=1/0,i=-1/0,a=-1/0;for(let e of t){let t=ux(e);n=Math.min(n,e.position.x),r=Math.min(r,e.position.y),i=Math.max(i,e.position.x+t.width),a=Math.max(a,e.position.y+t.height)}return{minX:n,minY:r,maxX:i,maxY:a}}function fx(e){let t=[],n=0,r=0,i=0;for(let a of e)n>0&&n+a.size.width>lx&&(n=0,r+=i+112,i=0),t.push({x:n,y:r}),n+=a.size.width+112,i=Math.max(i,a.size.height);return t}function px(e,t){let n=e.filter(e=>t[e.domainId]);if(n.length===0)return fx(e);let r=n.reduce((e,n)=>{let r=t[n.domainId];return Math.max(e,r.x+n.size.width)},0),i=n.reduce((e,n)=>Math.min(e,t[n.domainId].y),1/0);return e.map(e=>{let n=t[e.domainId];if(n)return n;r+=112;let a={x:r,y:Number.isFinite(i)?i:0};return r+=e.size.width,a})}function mx(e,t,n,r){let i=e.map(e=>{let t=dx(e.nodes),i=r[e.domainId],a={x:Math.max(i?.x??-1/0,cx-t.minX),y:Math.max(i?.y??-1/0,100-t.minY)},o={width:Math.max(ox.width,t.maxX+a.x+cx),height:Math.max(ox.height,t.maxY+a.y+cx)},s=n[e.domainId];return{domainId:e.domainId,contentOffset:a,size:{width:s?Math.max(o.width,s.width):o.width,height:s?Math.max(o.height,s.height):o.height}}}),a=px(i,t);return i.map((e,t)=>({...e,position:a[t]}))}function hx(e){return e.data?.workspaceGeometry??null}function gx(e,t){let n=hx(e);return n?{domainId:n.domainId,updates:{[n.localId]:{x:Math.round(e.position.x-n.offset.x),y:Math.round(e.position.y-n.offset.y),...t?{w:Math.round(t.width),h:Math.round(t.height)}:Sb(e)}}}:null}var _x=(0,q.createContext)(null);function vx({actions:e,children:t}){return(0,J.jsx)(_x.Provider,{value:e,children:t})}function yx(){let e=(0,q.useContext)(_x);if(!e)throw Error(`Workspace nodes require WorkspaceNodeActionsProvider`);return e}function bx({nodeId:e,minimum:t,label:n,placement:r=`module`}){let i=yx();return(0,J.jsx)(nm,{position:`bottom-right`,minWidth:t.width,minHeight:t.height,onResizeEnd:(t,n)=>i.resizeNode(e,{width:Math.round(n.width),height:Math.round(n.height)}),style:{left:`calc(100% - 16px)`,top:`calc(100% - 16px)`},className:`nodrag nopan !flex !h-4 !w-4 !cursor-se-resize !items-end !justify-end !border-0 !bg-transparent !p-0 opacity-0 transition-opacity group-hover/frame:opacity-100`,children:(0,J.jsx)(`span`,{"data-testid":`workspace-resize-${e}`,title:n,className:`block h-2.5 w-2.5 rounded-br-[3px] border-b-2 border-r-2 border-muted-foreground transition-colors hover:border-primary`})})}function xx({id:e,data:t}){let n=yx(),r=t;return(0,J.jsxs)(`div`,{"data-domain-id":r.domainId,title:r.active?void 0:`Click to activate ${r.origin}`,className:g(`group/frame relative h-full w-full rounded-xl border bg-card transition-colors`,r.active?`border-primary/45 bg-primary/[0.03]`:`cursor-pointer border-border hover:border-muted-foreground/40`),children:[(0,J.jsxs)(`div`,{"data-testid":`workspace-domain-header-${r.domainId}`,title:`Drag ${r.origin}`,onPointerDownCapture:()=>n.activateDomain(r.domainId),className:`workspace-domain-drag-handle absolute inset-x-0 top-0 flex h-12 cursor-grab select-none items-center gap-2 px-4 active:cursor-grabbing`,children:[(0,J.jsx)(`span`,{className:g(`h-2 w-2 rounded-full`,r.active?`bg-primary`:`bg-muted-foreground/40`)}),(0,J.jsx)(`span`,{className:`truncate text-[13px] font-semibold tracking-tight`,children:r.origin})]}),r.active&&(0,J.jsx)(bx,{nodeId:e,minimum:ox,label:`Resize ${r.origin}`,placement:`domain`})]})}function Sx(e){let t=yx(),n=hx(e),r=e.data;return(0,J.jsxs)(`div`,{className:`group/frame relative h-full w-full`,children:[(0,J.jsx)(Mb,{...e,data:{...r,onToggleModule:t.toggleModule}}),e.type===`group`&&n?.active&&(0,J.jsx)(bx,{nodeId:e.id,minimum:sx,label:`Resize module`})]})}var Cx={...Lb,group:Sx,moduleNode:Sx,workspaceDomain:xx},wx=216,Tx=48,Ex=52,Dx=12,Ox=40,kx=e=>`workspace-external:${encodeURIComponent(e)}`,Ax=(e,t,n)=>`workspace-external-member:${encodeURIComponent(e)}:${n?`${n}:`:``}${encodeURIComponent(t)}`;function jx(e,t,n){return e.position.x<t.position.x+t.size.width+n&&e.position.x+e.size.width+n>t.position.x&&e.position.y<t.position.y+t.size.height+n&&e.position.y+e.size.height+n>t.position.y}function Mx(e,t,n,r){let i=e.ownerDomainIds.map(e=>t.get(e)).filter(e=>!!e),a=i.length>0?i:n,o=a.reduce((e,t)=>Math.max(e,t.position.x+t.size.width),0)+112,s=a.reduce((e,t)=>Math.min(e,t.position.y),1/0);for(Number.isFinite(s)||(s=0);;){let t={position:{x:o,y:s},size:e.size},n=r.find(e=>jx(t,e,Ox));if(!n)return t.position;s=n.position.y+n.size.height+Ox}}function Nx(e,t,n){let r=[...e].sort((e,t)=>e.origin.localeCompare(t.origin)).map(e=>({...e,size:{width:wx,height:Tx+e.members.length*Ex+Dx}})),i=new Map(t.map(e=>[e.domainId,e])),a=t.map(({position:e,size:t})=>({position:e,size:t}));for(let e of r){let t=n[e.origin];t&&a.push({position:t,size:e.size})}return r.map(e=>{let r=n[e.origin],o=r??Mx(e,i,t,a);return r||a.push({position:o,size:e.size}),{...e,position:o}})}function Px(e,t,n,r){let i=new Map((r??[]).map(e=>[e.origin,e])),a=Nx(e,t,n),o=[];for(let e of a){let t=i.get(e.origin),n=kx(e.origin),r=e.origin===`kernel.astrale.ai`?`kernel`:`external`;o.push({id:n,type:`extDomain`,position:e.position,draggable:!1,selectable:!1,data:{name:t?.name??e.origin.split(`.`)[0],origin:e.origin,kind:r,icon:t?.icon},style:e.size}),e.members.forEach((t,i)=>{o.push({id:Ax(e.origin,t.name,t.definition),type:`extMember`,parentId:n,extent:`parent`,draggable:!1,position:{x:12,y:42+i*Ex},data:{name:t.name,kind:r,definition:t.definition},style:{width:192,height:44}})})}return{nodes:o,positions:Object.fromEntries(a.map(e=>[e.origin,e.position]))}}var Fx=`var(--edge-cross)`,Ix=`var(--edge-inherit)`,Lx=e=>`workspace-domain:${e}`,Rx=(e,t)=>`workspace:${encodeURIComponent(e)}:${t}`;async function zx(e,t){let n=new Set(t),r=Ab(e.bundle,n,e.visibility.hidden,e.visibility.showInheritedEdges),i=e.layout.positions,a=r.nodes.filter(e=>i[e.id]),o=r.nodes.filter(e=>!i[e.id]),s;return s=o.length===0?i:a.length===0?wb(await zv(r.nodes,r.edges)):{...i,...Eb(a.map(e=>({node:e,position:i[e.id]})),o)},{input:e,collapsed:n,nodes:r.nodes.map(e=>Cb(e,s)),edges:r.edges}}function Bx(e){return e.refs===void 0?e.types:e.refs.filter(_e)}function Vx(e,t){let n=e.input.bundle.ir;if(!n||n.classes[t]?.type!==`node`||lb(ob(t),e.input.visibility.hidden))return;let r=P(e.input.bundle,t),i=e.collapsed.has(r)?`grp-${r}`:`class.${t}`;return{nodeId:Rx(e.input.summary.id,i),domainId:e.input.summary.id,className:t}}function Hx(e,t){let n=e.input.bundle.ir;if(n)return Object.values(n.importsByKey).find(e=>e.ref.name===t)?.ref}function Ux(e,t,n,r){let i=e.input.bundle.ir;if(!i)return[];let a=typeof t==`string`?Hx(e,t)??{origin:i.domain,kind:`class`,name:t}:t;if(a.origin===i.domain){let t=Vx(e,a.name);return t?[t]:[]}let o=n.get(a.origin)??[];if(o.length>1&&r.add(`Multiple selected folders declare ${a.origin}; ${a.name} stays external.`),o.length===1){let t=Vx(o[0],a.name);if(t)return[t];r.add(`${e.input.summary.origin} imports ${a.origin}:class.${a.name}, but the selected schema does not expose it.`)}return[{nodeId:Ax(a.origin,a.name,`class`),domainId:null,className:null,unresolved:{origin:a.origin,name:a.name,definition:`class`}}]}function Wx(e,t,n,r){return`workspace-edge:${encodeURIComponent(e)}:${t}:${n}:${r}`}function Gx(e,t,n){let r=[],i=new Map,a=new Set,o=(e,t)=>{if(!e.unresolved)return;let n=i.get(e.unresolved.origin)??{members:new Map,ownerDomainIds:new Set};n.members.set(e.unresolved.name,e.unresolved),n.ownerDomainIds.add(t),i.set(e.unresolved.origin,n)};for(let i of e){let e=i.input.bundle.ir;if(e)for(let s of Object.values(e.classes)){if(s.type!==`edge`||s.endpoints?.length!==2||lb(sb(s.name),i.input.visibility.hidden))continue;let e=Bx(s.endpoints[0]).flatMap(e=>Ux(i,e,t,n)),c=Bx(s.endpoints[1]).flatMap(e=>Ux(i,e,t,n)),l=uv(s.orientation);for(let t of e)for(let e of c){if(t.domainId===i.input.summary.id&&e.domainId===i.input.summary.id||t.nodeId===e.nodeId)continue;o(t,i.input.summary.id),o(e,i.input.summary.id);let n=Wx(i.input.summary.id,s.name,t.nodeId,e.nodeId);a.has(n)||(a.add(n),r.push({id:n,source:t.nodeId,target:e.nodeId,type:`floating`,data:{label:s.name,edgeClass:s.name,ownerDomainId:i.input.summary.id,sourceEnd:{...s.endpoints?.[0]?.name?{role:s.endpoints[0].name}:{},cardinality:dv(s.endpoints?.[0]?.cardinality)},targetEnd:{...s.endpoints?.[1]?.name?{role:s.endpoints[1].name}:{},cardinality:dv(s.endpoints?.[1]?.cardinality)}},markerStart:l.markerStart,markerEnd:l.markerEnd,style:{stroke:Fx,strokeWidth:2.5}}))}}}return{edges:r,unresolved:[...i.entries()].map(([e,t])=>({origin:e,members:[...t.members.values()].sort((e,t)=>e.name.localeCompare(t.name)),ownerDomainIds:[...t.ownerDomainIds]}))}}function Kx(e,t,n){let r=[],i=new Set;for(let a of e){let e=a.input.bundle.ir;if(!(!e||!a.input.visibility.showInheritedEdges))for(let[o,s]of Object.entries(e.classes)){if(s.type!==`node`)continue;let e=Vx(a,o);if(e)for(let o of s.extendsRefs??[])for(let s of Ux(a,o,t,n)){if(s.unresolved||s.nodeId===e.nodeId)continue;let t=`workspace-extends:${e.nodeId}:${s.nodeId}`;i.has(t)||(i.add(t),r.push({id:t,source:e.nodeId,target:s.nodeId,type:`floating`,data:{label:`extends`,kind:`extends`,ownerDomainId:a.input.summary.id},markerEnd:cv,style:{stroke:Ix,strokeWidth:1.7,strokeDasharray:`2 4`}}))}}}return r}function qx(e,{activeDomainId:t,domainPositions:n={},externalPositions:r={},contentOffsets:i={},domainSizes:a={},catalog:o}){let s=new Set,c=new Map;for(let t of e){let e=t.input.bundle.ir?.domain??t.input.summary.origin;c.set(e,[...c.get(e)??[],t])}let l=mx(e.map(e=>({domainId:e.input.summary.id,nodes:e.nodes})),n,a,i),u=new Map(l.map(e=>[e.domainId,e])),d=[],f=[];for(let n of e){let e=n.input.summary.id,r=u.get(e),i=Lx(e),a=e===t;d.push({id:i,type:`workspaceDomain`,position:r.position,draggable:!0,dragHandle:`.workspace-domain-drag-handle`,selectable:!0,data:{domainId:e,origin:n.input.summary.origin,active:a},style:{width:r.size.width,height:r.size.height}});for(let t of n.nodes){let n=!t.parentId,o=n?r.contentOffset:{x:0,y:0};d.push({...t,id:Rx(e,t.id),parentId:n?i:Rx(e,t.parentId),position:{x:t.position.x+o.x,y:t.position.y+o.y},data:{...t.data,workspaceGeometry:{domainId:e,localId:t.id,offset:o,active:a}},extent:`parent`,expandParent:!1,draggable:a,selectable:!0,focusable:!0,style:t.style})}for(let t of n.edges)f.push({...t,id:Rx(e,t.id),source:Rx(e,t.source),target:Rx(e,t.target)})}let p=Gx(e,c,s),m=Kx(e,c,s),h=Px(p.unresolved,l,r,o);return d.push(...h.nodes),f.push(...p.edges,...m),{nodes:d,edges:f,diagnostics:[...s].sort(),domainPositions:Object.fromEntries(l.map(e=>[e.domainId,e.position])),externalPositions:h.positions,contentOffsets:Object.fromEntries(l.map(e=>[e.domainId,e.contentOffset]))}}function Jx(e){if(!e.startsWith(`workspace:`))return null;let[,t,...n]=e.split(`:`);return!t||n.length===0?null:{domainId:decodeURIComponent(t),localId:n.join(`:`)}}function Yx({domains:e,viewsCount:t,onToggleInherited:n}){let{getNode:r,setViewport:i}=dd(),a=Q(e=>e.width),o=Q(e=>e.height),s=Q(e=>e.panZoom!==null),[c,l]=(0,q.useState)(0),{data:u}=oe(),d=w(e=>e.domainId)??e[0]?.input.summary.id??``,f=w(e=>e.selectedClass),p=w(e=>e.setDomain),m=w(e=>e.setPanelOverlay),h=w(e=>e.panelOverlay),_=w(e=>e.showCardinality),v=w(e=>e.resolvedTheme),y=w(e=>e.toggleCardinality),b=ze(e=>e.domainPositions),x=ze(e=>e.externalPositions),S=ze(e=>e.domainSizes),C=ze(e=>e.domainContentOffsets),T=ze(e=>e.setDomainPosition),E=ze(e=>e.setDomainSize),D=ze(e=>e.ensureDomainPositions),O=ze(e=>e.ensureExternalPositions),k=ze(e=>e.ensureDomainContentOffsets),A=ze(e=>e.resetWorkspaceFrames),j=ze(e=>e.toggleModule),{commitLayout:M}=Db(),N=(0,q.useRef)(``),P=(0,q.useRef)(!1),F=(0,q.useCallback)((e,t)=>{if(e.startsWith(`workspace-domain:`)){E(e.slice(17),t);return}let n=r(e);if(!n||n.type!==`group`)return;let i=gx(n,t);i&&M(i.domainId,i.updates)},[M,r,E]),I=(0,q.useCallback)((e,t)=>{w.getState().domainId!==e&&p(e),t&&w.getState().selectClass(t)},[p]),L=(0,q.useCallback)((e,t)=>{w.getState().domainId!==e&&p(e),j(e,t)},[p,j]),R=(0,q.useMemo)(()=>({activateDomain:I,resizeNode:F,toggleModule:L}),[I,F,L]),z=(0,q.useMemo)(()=>qx(e,{activeDomainId:d,catalog:u,contentOffsets:C,domainPositions:b,domainSizes:S,externalPositions:x}),[d,u,C,b,S,e,x]),[B,V]=(0,q.useState)(z.nodes),[H,U]=(0,q.useState)(z.edges);(0,q.useEffect)(()=>{if(D(z.domainPositions),O(z.externalPositions),k(z.contentOffsets),V(z.nodes),U(z.edges),P.current){P.current=!1,l(e=>e+1);return}let t=e.map(e=>e.input.summary.id).join(`|`);N.current!==t&&(N.current=t,l(e=>e+1))},[e,k,D,O,z]);let W=(0,q.useRef)(B);W.current=B;let ee=(0,q.useRef)(0);(0,q.useEffect)(()=>{if(c===0||c===ee.current||!s)return;let e=Hv(W.current,a,o);e&&(ee.current=c,i(e))},[c,a,o,s,i]);let te=(0,q.useCallback)(e=>V(t=>qu(e.filter(e=>e.type!==`remove`),t)),[]),ne=(0,q.useCallback)(e=>U(t=>Ju(e.filter(e=>e.type!==`remove`),t)),[]),G=e.every(e=>e.input.visibility.showInheritedEdges),re=(0,q.useCallback)((e,t)=>{if(t.id.startsWith(`workspace-domain:`)){T(t.id.slice(17),{x:Math.round(t.position.x),y:Math.round(t.position.y)});return}let n=gx(t);n&&M(n.domainId,n.updates)},[M,T]),ie=(0,q.useMemo)(()=>H.map(e=>{let t=e.data?.ownerDomainId,n=e.data?.edgeClass;if(!(n&&t===d&&f===`class.${n}`))return e;let r=`var(--color-primary)`;return{...e,className:g(e.className,`is-selected`),data:{...e.data,selected:!0},style:{...e.style,stroke:r,strokeWidth:3},markerEnd:typeof e.markerEnd==`object`?{...e.markerEnd,color:r}:e.markerEnd}}),[d,H,f]),ae=(0,q.useMemo)(()=>Pv(B,ie),[B,ie]);return(0,J.jsx)(vx,{actions:R,children:(0,J.jsx)(iv,{nodes:B,options:xv,children:(0,J.jsxs)(vp,{onPointerDownCapture:sv,"data-testid":`workspace-schema-canvas`,nodes:B,edges:ae,nodeTypes:Cx,edgeTypes:Zv,onNodesChange:te,onEdgesChange:ne,onNodeDragStop:re,onNodeClick:(e,t)=>{if(t.id.startsWith(`workspace-domain:`)){I(t.id.slice(17));return}let n=Jx(t.id);n&&(n.localId.startsWith(`class.`)?I(n.domainId,n.localId):n.localId.startsWith(`grp-`)&&I(n.domainId,`module.${n.localId.slice(4)}`))},onEdgeClick:(e,t)=>{let n=t.data?.ownerDomainId,r=t.data?.edgeClass;n&&r&&I(n,`class.${r}`)},onPaneClick:()=>w.getState().setFocus(null),minZoom:.08,nodesConnectable:!1,edgesFocusable:!0,onlyRenderVisibleElements:!0,proOptions:{hideAttribution:!0},children:[(0,J.jsx)(Ep,{gap:20,size:1,color:`var(--color-input)`}),(0,J.jsx)(fv,{}),(0,J.jsx)(Fp,{showInteractive:!1,position:`bottom-left`,children:(0,J.jsx)(Mp,{onClick:()=>{P.current=!0,A()},title:`Reset and auto-pack workspace regions`,children:(0,J.jsx)(St,{className:`h-4 w-4 text-foreground`})})}),(0,J.jsx)(Qp,{pannable:!0,zoomable:!0,style:{width:168,height:112},nodeColor:e=>e.type===`classNode`?gv(e.data.hue,v).mark:e.type===`workspaceDomain`?gv(255,v).border:`transparent`,nodeStrokeWidth:0}),z.diagnostics.length>0&&(0,J.jsx)(Cu,{position:`top-center`,className:`max-w-xl`,children:(0,J.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-warning/30 bg-card px-3 py-2 text-[11px] text-warning shadow-lg backdrop-blur`,children:[(0,J.jsx)(He,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{children:z.diagnostics.join(` `)})]})}),(0,J.jsx)(Cu,{position:`top-right`,children:(0,J.jsxs)(av,{children:[(0,J.jsx)(ov,{icon:(0,J.jsx)(mt,{}),label:`Views`,count:t,pressed:h===`views`,title:`Views across selected domains`,onClick:()=>m(h===`views`?null:`views`)}),(0,J.jsx)(ov,{icon:(0,J.jsx)(Ie,{}),label:`Inherited`,pressed:G,title:`Inheritance edges in every selected domain`,onClick:n}),(0,J.jsx)(ov,{icon:(0,J.jsx)(Dt,{}),label:`Cardinality`,pressed:_,title:`Spell out how many of each side a relationship allows`,onClick:y})]})})]})})})}function Xx({domains:e,onToggleHidden:t}){let n=w(e=>e.domainId),r=w(e=>e.selectedClass),i=w(e=>e.setDomain),o=ze(e=>e.collapsedModules),s=ze(e=>e.toggleModule),[c,l]=(0,q.useState)({}),u=(e,t)=>{w.getState().domainId!==e&&i(e),t&&w.getState().selectClass(t)};return(0,J.jsxs)(`div`,{className:`py-2`,"data-testid":`workspace-module-tree`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 pb-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,J.jsx)(V,{className:`h-3 w-3`}),` Workspace modules`]}),e.map(e=>{let i=e.input.summary.id,d=n===i,f=!!c[i],p={domainId:i,collapsedModules:o[i]??[],hidden:e.input.visibility.hidden,toggleModule:e=>s(i,e),toggleHidden:e=>t(i,e)},m=je(e.input.bundle);return(0,J.jsxs)(`section`,{className:`border-b border-border last:border-b-0`,children:[(0,J.jsxs)(`div`,{"data-domain-id":i,className:g(`flex items-center gap-1 px-2 py-2 transition-colors`,d?`bg-accent`:`hover:bg-accent/60`),children:[(0,J.jsx)(`button`,{type:`button`,onClick:()=>l(e=>{let t={...e};return t[i]?delete t[i]:t[i]=!0,t}),className:`rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground`,title:f?`Expand domain`:`Collapse domain`,children:f?(0,J.jsx)(a,{className:`h-3.5 w-3.5`}):(0,J.jsx)(gt,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>u(i),className:`min-w-0 flex-1 truncate text-left text-[12px] font-medium`,title:`Make ${e.input.summary.origin} active`,children:e.input.summary.origin}),d&&(0,J.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-primary`,title:`Active domain`})]}),!f&&(0,J.jsx)(`div`,{className:`border-t border-border bg-muted/40`,children:(0,J.jsx)(rx,{root:m,selected:d?r:void 0,onSelect:e=>u(i,e),controls:p})})]},i)})]})}var Zx={positions:{}},Qx={hidden:{},showInheritedEdges:!0};function $x(e,t){let n=pt({queries:e.map(e=>({queryKey:ye.bundle(e),queryFn:()=>$e.bundle(e)}))}),r=pt({queries:e.map(e=>({queryKey:ye.anatomy(e),queryFn:()=>$e.anatomy(e)}))}),i=pt({queries:e.map(e=>({queryKey:ye.layout(e),queryFn:()=>$e.layout(e)}))}),a=pt({queries:e.map(e=>({queryKey:ye.visibility(e),queryFn:()=>$e.visibility(e)}))});return(0,q.useMemo)(()=>{let o=new Map((t??[]).map(e=>[e.id,e])),s=[],c=[],l=!1;return e.forEach((e,t)=>{let u=o.get(e),d=n[t]?.data,f=r[t]?.data,p=n[t]?.error??r[t]?.error;if(p&&c.push(`${u?.origin??e}: ${String(p)}`),!u||!d||!f){l||=!p;return}s.push({summary:u,bundle:d,anatomy:f,layout:i[t]?.data??Zx,visibility:a[t]?.data??Qx})}),{inputs:s,pending:l,errors:c}},[r,n,t,e,i,a])}function eS({inputs:e}){let t=e.map(e=>({input:e,model:Oe(e.anatomy,e.bundle)})),n=t.reduce((e,t)=>e+t.model.all.length,0),r=t.some(e=>e.model.hasDrift);return(0,J.jsx)(ct,{className:`h-full`,"data-testid":`workspace-views-panel`,children:(0,J.jsxs)(`div`,{className:`p-5`,children:[(0,J.jsxs)(`div`,{className:`mb-5 flex items-baseline gap-2 pr-8`,children:[(0,J.jsx)(`h1`,{className:`text-base font-semibold`,children:`Workspace views`}),(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n}),r&&(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[11px] font-medium text-warning`,children:[(0,J.jsx)(He,{className:`h-3.5 w-3.5`}),` drift`]})]}),n===0&&(0,J.jsx)(ue,{icon:(0,J.jsx)(mt,{}),title:`No views`,hint:`The selected domains declare no views.`}),(0,J.jsx)(`div`,{className:`space-y-7`,children:t.filter(e=>e.model.all.length>0).map(({input:e,model:t})=>(0,J.jsxs)(`section`,{"data-domain-id":e.summary.id,children:[(0,J.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 border-b border-border pb-2`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-primary/70`}),(0,J.jsx)(`h2`,{className:`min-w-0 flex-1 truncate text-[13px] font-semibold`,children:e.summary.origin}),(0,J.jsx)(`span`,{className:`rounded-full bg-muted px-1.5 py-0.5 text-[9px] tabular-nums text-muted-foreground`,children:t.all.length})]}),(0,J.jsx)(`div`,{className:`space-y-0.5`,children:t.all.map(t=>{let n=t.boundClass?e.bundle.ir?.classes[t.boundClass]?.icon:void 0;return(0,J.jsx)(Py,{domainId:e.summary.id,view:t,icon:n},`${e.summary.id}:${t.slug}`)})})]},e.summary.id))})]})})}var tS=220,nS=620,rS=300;function iS(e,t){return[e.summary.id,e.summary.origin,e.bundle.renderFingerprint,Object.keys(e.visibility.hidden).sort().join(`,`),e.visibility.showInheritedEdges,Object.entries(e.layout.positions).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}:${t.x}:${t.y}:${t.w??``}:${t.h??``}`).join(`,`),t.slice().sort().join(`,`)].join(`|`)}function aS({domainIds:e}){let{data:t}=Ke(),{inputs:n,pending:r,errors:i}=$x(e,t),a=We(),o=w(e=>e.domainId),s=w(e=>e.selectedClass),c=w(e=>e.selectClass),l=w(e=>e.setFocus),u=w(e=>e.panelOverlay),d=w(e=>e.setPanelOverlay),f=w(e=>e.setCanvasMode),p=ze(e=>e.collapsedModules),[m,h]=(0,q.useState)([]),g=(0,q.useRef)(new Map),[_,v]=(0,q.useState)(()=>{try{let e=Number(localStorage.getItem(`studio.workspaceModulesWidth`));if(Number.isFinite(e)&&e>=tS&&e<=nS)return e}catch{}return rS});(0,q.useEffect)(()=>{f(`schema`),w.getState().panelOverlay&&w.getState().panelOverlay!==`views`&&d(null)},[f,d]);let y=(0,q.useMemo)(()=>n.map(e=>iS(e,p[e.summary.id]??[])).join(`::`),[p,n]);(0,q.useEffect)(()=>{let e=!1,t=new Set(n.map(e=>e.summary.id));for(let e of g.current.keys())t.has(e)||g.current.delete(e);return Promise.all(n.map(async t=>{let n=t.summary.id,r=p[n]??[],i=iS(t,r),a=g.current.get(n);if(a?.key===i)return{...a.projection,input:t};let o=await zx(t,r);return e||g.current.set(n,{key:i,projection:o}),o})).then(t=>{e||h(t)}),()=>{e=!0}},[y]),(0,q.useEffect)(()=>{let e=e=>{e.key!==`Escape`||e.defaultPrevented||(l(null),c(void 0),d(null))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c,l,d]);let b=(0,q.useCallback)((e,t)=>{let r=n.find(t=>t.summary.id===e);if(!r)return;let i=t(r.visibility);a.setQueryData(ye.visibility(e),i),$e.setVisibility(e,i).catch(()=>{a.invalidateQueries({queryKey:ye.visibility(e)})})},[n,a]),x=(0,q.useCallback)((e,t)=>b(e,e=>{let n={...e.hidden};return n[t]?delete n[t]:n[t]=!0,{...e,hidden:n}}),[b]),S=(0,q.useCallback)(()=>{let e=!n.every(e=>e.visibility.showInheritedEdges);for(let t of n)b(t.summary.id,t=>({...t,showInheritedEdges:e}))},[n,b]),C=e=>{e.preventDefault();let t=e.clientX,n=_,r=n,i=e=>{r=Math.min(nS,Math.max(tS,n+e.clientX-t)),v(r)},a=()=>{document.removeEventListener(`pointermove`,i),document.removeEventListener(`pointerup`,a),document.body.style.cursor=``,document.body.style.userSelect=``;try{localStorage.setItem(`studio.workspaceModulesWidth`,String(r))}catch{}};document.addEventListener(`pointermove`,i),document.addEventListener(`pointerup`,a),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},T=n.find(e=>e.summary.id===o),E=n.reduce((e,t)=>e+t.anatomy.views.length,0),D=m.length===n.length&&n.length===e.length,O=m.map(e=>`${e.input.summary.id}:${e.input.bundle.renderFingerprint}`).join(`|`);return(r||!D)&&i.length===0?(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:`Composing workspace…`}):(0,J.jsxs)(`div`,{className:`flex h-full flex-col`,"data-testid":`workspace-schema-section`,children:[(i.length>0||n.some(e=>e.bundle.error))&&(0,J.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-warning/30 bg-warning/10 px-4 py-2 text-sm text-warning`,children:[(0,J.jsx)(He,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,J.jsx)(`span`,{children:[...i,...n.flatMap(e=>e.bundle.error?.message??[])].join(` `)})]}),(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,J.jsxs)(`div`,{className:`relative min-h-0 shrink-0 border-r`,style:{width:_},children:[(0,J.jsx)(ct,{className:`h-full`,children:(0,J.jsx)(Xx,{domains:m,onToggleHidden:x})}),(0,J.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,onPointerDown:C,title:`Drag to resize`,className:`group absolute right-0 top-0 z-20 h-full w-1.5 translate-x-1/2 cursor-col-resize`,children:(0,J.jsx)(`div`,{className:`mx-auto h-full w-px bg-transparent transition-colors group-hover:bg-primary/50`})})]}),(0,J.jsx)(`div`,{className:`relative min-w-0 flex-1`,children:(0,J.jsx)(mp,{children:(0,J.jsx)(Yx,{domains:m,viewsCount:E,onToggleInherited:S})},O)}),u===`views`?(0,J.jsx)(tx,{onClose:()=>d(null),children:(0,J.jsx)(eS,{inputs:n})}):s&&T?(0,J.jsx)(tx,{onClose:()=>c(void 0),children:(0,J.jsx)(Qy,{bundle:T.bundle,selected:s})}):null]})]})}var oS=180,sS=560,cS=240;function lS({domainId:e}){let t=ze(e=>e.selectedDomainIds),n=t.includes(e)?t:[e,...t];return n.length>1?(0,J.jsx)(aS,{domainIds:n}):(0,J.jsx)(uS,{domainId:e})}function uS({domainId:e}){let{data:t,isLoading:r}=S(e),{data:i}=n(e),{data:a}=I(e),o=w(e=>e.selectedClass),s=w(e=>e.selectClass),c=w(e=>e.setFocus),l=w(e=>e.canvasMode),u=l===`core`,d=w(e=>e.panelOverlay),f=w(e=>e.setPanelOverlay),p=Ze(e),[m,h]=(0,q.useState)(()=>{try{let e=Number(localStorage.getItem(`studio.modulesWidth`));if(Number.isFinite(e)&&e>=oS&&e<=sS)return e}catch{}return cS}),g=e=>{e.preventDefault();let t=e.clientX,n=m,r=n,i=e=>{r=Math.min(sS,Math.max(oS,n+(e.clientX-t))),h(r)},a=()=>{document.removeEventListener(`pointermove`,i),document.removeEventListener(`pointerup`,a),document.body.style.cursor=``,document.body.style.userSelect=``;try{localStorage.setItem(`studio.modulesWidth`,String(r))}catch{}};document.addEventListener(`pointermove`,i),document.addEventListener(`pointerup`,a),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},[_,v]=(0,q.useState)(null);(0,q.useEffect)(()=>v(null),[e,l]),(0,q.useEffect)(()=>{let e=e=>{e.key!==`Escape`||e.defaultPrevented||(c(null),s(void 0),v(null),f(null))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c,s,f]);let y=(0,q.useMemo)(()=>t?.ir?je(t):null,[t]);return r||!t?(0,J.jsx)(`div`,{className:`h-full flex items-center justify-center text-muted-foreground`,children:`Introspecting schema…`}):(0,J.jsxs)(`div`,{className:`h-full flex flex-col`,children:[t.error&&(0,J.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 bg-warning/10 border-b border-warning/30 text-warning text-sm`,children:[(0,J.jsx)(He,{className:`h-4 w-4 shrink-0`}),(0,J.jsxs)(`span`,{children:[t.error.message,!t.depsInstalled&&" — showing the static structure; run `pnpm install` in the domain for full fidelity."]})]}),t.ir?(0,J.jsxs)(`div`,{className:`flex-1 flex min-h-0`,children:[(0,J.jsxs)(`div`,{className:`relative border-r shrink-0 min-h-0`,style:{width:m},children:[(0,J.jsx)(ct,{className:`h-full`,children:u?a&&(0,J.jsx)(by,{core:a,bundle:t,selectedPath:_,onSelect:v}):y&&(0,J.jsx)(rx,{root:y,selected:o,onSelect:s})}),(0,J.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,onPointerDown:g,title:`Drag to resize`,className:`group absolute right-0 top-0 z-20 h-full w-1.5 translate-x-1/2 cursor-col-resize`,children:(0,J.jsx)(`div`,{className:`mx-auto h-full w-px bg-transparent transition-colors group-hover:bg-primary/50`})})]}),(0,J.jsx)(`div`,{className:`flex-1 min-w-0 relative`,children:(0,J.jsx)(mp,{children:u?a?(0,J.jsx)(hy,{core:a,bundle:t,selectedPath:_,onSelect:v}):(0,J.jsx)(`div`,{className:`h-full flex items-center justify-center text-muted-foreground text-sm`,children:`Extracting core…`}):(0,J.jsx)(qb,{bundle:t,domainId:e,saved:i?.positions},e)},`${e}:${l}`)}),u?_&&a&&(0,J.jsx)(tx,{onClose:()=>v(null),children:(0,J.jsx)(_y,{core:a,bundle:t,selectedPath:_})}):d===`views`?(0,J.jsx)(tx,{onClose:()=>f(null),children:(0,J.jsx)(Fy,{domainId:e,model:p})}):d===`domains`?(0,J.jsx)(tx,{onClose:()=>f(null),children:(0,J.jsx)(bb,{domainId:e})}):d===`integrations`?(0,J.jsx)(tx,{onClose:()=>f(null),children:(0,J.jsx)(ex,{domainId:e})}):o?(0,J.jsx)(tx,{onClose:()=>s(void 0),children:(0,J.jsx)(Qy,{bundle:t,selected:o})}):null]}):(0,J.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-muted-foreground text-sm p-6 text-center`,children:`No compiled schema available.`})]})}export{lS as SchemaSection};
|