@xopcai/xopc 0.0.142 → 0.0.143
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/README.md +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/activity-center-store-jITiX2vJ.js +1 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BawPxiu5.js → agent-avatar-dicebear-DiME9u_P.js} +1 -1
- package/dist/gateway/static/root/assets/agents-DzBXhZXO.js +2 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-81xd1p9R.js → app-management-settings-panel-Cuo7SbUP.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-DYeQsYU8.js → appearance-settings-DUfdNQqk.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-CKuKK5AU.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-D_oa7oti.js → archive-plugin-B-Qk6cGr.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-Cd-bwI2N.js → attachment-load-Di6EEbQX.js} +1 -1
- package/dist/gateway/static/root/assets/automation-suggestion-card-DGxvRxtO.js +1 -0
- package/dist/gateway/static/root/assets/automations-page-D-FF_WKV.js +4 -0
- package/dist/gateway/static/root/assets/{binary-plugins-O8svLKWw.js → binary-plugins-ZaOZDH2I.js} +1 -1
- package/dist/gateway/static/root/assets/block-editor-BTFhjWfg.js +184 -0
- package/dist/gateway/static/root/assets/browser-settings-page-BvKLdEQt.js +8 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-dJy1Eqgx.js → capability-presets-api-BU-pVZiZ.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-DgyeEwzh.js +2 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-Bfuhp2ty.js → channel-recipient-api-DuulnhIj.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-BbVsdD_I.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-B5lVrUsN.js +1 -0
- package/dist/gateway/static/root/assets/check-BODqo66o.js +1 -0
- package/dist/gateway/static/root/assets/chunk-QUQL4437-DXsxWP7r.js +4 -0
- package/dist/gateway/static/root/assets/circle-alert-RzVebuX2.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-B8QqVy3I.js +2 -0
- package/dist/gateway/static/root/assets/{desktop-pet-DFMfIb5F.js → desktop-pet---yzVxVR.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-Dc3gqBJE.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-BrYt1gAr.js → directory-picker-path-field-DCmOGLtK.js} +1 -1
- package/dist/gateway/static/root/assets/dreaming-settings-BgT5KZVe.js +3 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-Bh630pLD.js → extension-debug-page-ByaKTTq4.js} +1 -1
- package/dist/gateway/static/root/assets/extension-page-BmRzHAZr.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-JUtwIhbF.js +1 -0
- package/dist/gateway/static/root/assets/{fetch-B1WtuprY.js → fetch-8QNN25Sh.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-De2N821l.js → gateway-config-api-CxicF50_.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-Bz2I_EO5.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-nEujFSDj.js → gateway-startup-retry-5YBnS9Fj.js} +1 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-VcoyuZGN.js +1 -0
- package/dist/gateway/static/root/assets/goal-detail-page-Cilkap2G.js +4 -0
- package/dist/gateway/static/root/assets/{goals-config-api-DUy3eEse.js → goals-config-api-CwcHRdC0.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-C6eoni4z.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-o4i-qAOS.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-settings-DQQkETX8.js +1 -0
- package/dist/gateway/static/root/assets/index-BKRqeRHm.js +257 -0
- package/dist/gateway/static/root/assets/index-CphxClbs.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CVIwwM15.js → keyboard-shortcuts-settings-LT6qB-ua.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-Dli2e3fS.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-B_6us9j7.js → markdown-split-Dw-yE2-y.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-D_fryIyj.js → media-plugins-D9NNNUgE.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CzKxM6I4.js +5 -0
- package/dist/gateway/static/root/assets/models-hub-panel-DVn2Q1Ik.js +2 -0
- package/dist/gateway/static/root/assets/notes-page-CRgbJGgk.js +1 -0
- package/dist/gateway/static/root/assets/notes-workbench-BxZRHLWx.js +2 -0
- package/dist/gateway/static/root/assets/{page-tabs-D_8jGlqx.js → page-tabs-D4hkWVt_.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BBLMK8Mp.js → preview-open-alternatives-CIckv0uy.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Doz53xLn.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DoMtcRLg.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-BeHVEgrm.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-DVS3FR5r.js → save-bar-controls-B0b42kB2.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-D6vKd6-T.js → schedule-field-BtjEkczK.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-BPy4lbIh.js → schema-form-Bf0bk3i6.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-Bk4bQsBe.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DdFyaRMm.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-WzdikxPt.js → settings-collapsible-section-BTKTdTNX.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-CvfzhBV-.js → settings-form-section-DL4P0sAj.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-BxR-Ulhi.js → settings-loading-skeleton-BV6KFNj4.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-B_4DsX5W.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-layout-CKefvbYi.js → settings-page-layout-CyGlrInB.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DJ1_MLgX.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-BQBV7YrV.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-0VuFLBeU.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DO87Ckeo.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-D3VdtxAn.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-BokgAgf7.js → system-settings-panel-D85fBBuI.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-BwHlNL3L.js → typed-models-lib-CwEuYrHX.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-DR11ap3A.js → use-channel-catalog-COXIfXcl.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-m9JVQ73F.js +1 -0
- package/dist/gateway/static/root/assets/user-profile-fields-editor-DtQiuY7E.js +1 -0
- package/dist/gateway/static/root/assets/user-profile-settings-panel-CWM0fEpb.js +1 -0
- package/dist/gateway/static/root/assets/{utils-BKUWB-TT.js → utils--BO6xT3u.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-LoT3wgZ9.js +1 -0
- package/dist/gateway/static/root/assets/with-selector-aYPsXwdl.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-DSTMz_mO.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CL_rnAUB.js → workflow-run-setup-panel-B35lJzvm.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-BfSm9oR8.js +11 -0
- package/dist/gateway/static/root/assets/workflows-page-DLioOiRN.css +1 -0
- package/dist/gateway/static/root/connector-icons/README.md +11 -0
- package/dist/gateway/static/root/connector-icons/airtable.svg +13 -0
- package/dist/gateway/static/root/connector-icons/asana.svg +15 -0
- package/dist/gateway/static/root/connector-icons/brave-search.svg +1 -0
- package/dist/gateway/static/root/connector-icons/clickup.svg +19 -0
- package/dist/gateway/static/root/connector-icons/composio.svg +266 -0
- package/dist/gateway/static/root/connector-icons/discord.svg +15 -0
- package/dist/gateway/static/root/connector-icons/dropbox.svg +152 -0
- package/dist/gateway/static/root/connector-icons/excel.svg +56 -0
- package/dist/gateway/static/root/connector-icons/fetch.svg +6 -0
- package/dist/gateway/static/root/connector-icons/figma.svg +178 -0
- package/dist/gateway/static/root/connector-icons/filesystem.svg +6 -0
- package/dist/gateway/static/root/connector-icons/github.svg +10 -0
- package/dist/gateway/static/root/connector-icons/gmail.svg +3 -0
- package/dist/gateway/static/root/connector-icons/google-calendar.svg +3 -0
- package/dist/gateway/static/root/connector-icons/google-docs.svg +25 -0
- package/dist/gateway/static/root/connector-icons/google-drive.svg +25 -0
- package/dist/gateway/static/root/connector-icons/google-sheets.svg +1 -0
- package/dist/gateway/static/root/connector-icons/hubspot.svg +142 -0
- package/dist/gateway/static/root/connector-icons/jira.svg +15 -0
- package/dist/gateway/static/root/connector-icons/linear.svg +5 -0
- package/dist/gateway/static/root/connector-icons/memory.svg +5 -0
- package/dist/gateway/static/root/connector-icons/microsoft-teams.svg +33 -0
- package/dist/gateway/static/root/connector-icons/notion.svg +5 -0
- package/dist/gateway/static/root/connector-icons/one-drive.svg +13 -0
- package/dist/gateway/static/root/connector-icons/outlook.svg +76 -0
- package/dist/gateway/static/root/connector-icons/playwright.svg +9 -0
- package/dist/gateway/static/root/connector-icons/salesforce.svg +17 -0
- package/dist/gateway/static/root/connector-icons/sequential-thinking.svg +8 -0
- package/dist/gateway/static/root/connector-icons/shopify.svg +5 -0
- package/dist/gateway/static/root/connector-icons/slack.svg +9 -0
- package/dist/gateway/static/root/connector-icons/spotify.svg +43 -0
- package/dist/gateway/static/root/connector-icons/stripe.svg +11 -0
- package/dist/gateway/static/root/connector-icons/telegram.svg +130 -0
- package/dist/gateway/static/root/connector-icons/time.svg +6 -0
- package/dist/gateway/static/root/connector-icons/todoist.svg +277 -0
- package/dist/gateway/static/root/connector-icons/trello.svg +19 -0
- package/dist/gateway/static/root/connector-icons/twitter.svg +128 -0
- package/dist/gateway/static/root/connector-icons/whatsapp.svg +61 -0
- package/dist/gateway/static/root/connector-icons/youtube.svg +11 -0
- package/dist/gateway/static/root/index.html +9 -6
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +2 -0
- package/dist/src/agent/agent-manager.js +8 -0
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/background-review/prompts.d.ts +1 -1
- package/dist/src/agent/background-review/prompts.js +3 -2
- package/dist/src/agent/background-review/prompts.js.map +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/xopc-tools-bridge.d.ts +9 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js +71 -3
- package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
- package/dist/src/agent/goals/post-turn.js +5 -4
- package/dist/src/agent/goals/post-turn.js.map +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +4 -1
- package/dist/src/agent/mcp/mcp-transport.js.map +1 -1
- package/dist/src/agent/memory/context/planner.d.ts +1 -0
- package/dist/src/agent/memory/context/planner.js +60 -14
- package/dist/src/agent/memory/context/planner.js.map +1 -1
- package/dist/src/agent/memory/context/types.d.ts +3 -1
- package/dist/src/agent/memory/lifecycle.d.ts +11 -0
- package/dist/src/agent/memory/lifecycle.js +50 -0
- package/dist/src/agent/memory/lifecycle.js.map +1 -0
- package/dist/src/agent/memory/source-origin.d.ts +3 -0
- package/dist/src/agent/memory/source-origin.js +19 -0
- package/dist/src/agent/memory/source-origin.js.map +1 -0
- package/dist/src/agent/memory/understanding/service.js +5 -0
- package/dist/src/agent/memory/understanding/service.js.map +1 -1
- package/dist/src/agent/memory/user-context-coordinator.js +7 -2
- package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
- package/dist/src/agent/prompt/sections/behavior.d.ts +2 -0
- package/dist/src/agent/prompt/sections/behavior.js +30 -1
- package/dist/src/agent/prompt/sections/behavior.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +1 -1
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +8 -1
- package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
- package/dist/src/agent/prompt/system-prompt.d.ts +2 -0
- package/dist/src/agent/prompt/system-prompt.js +6 -3
- package/dist/src/agent/prompt/system-prompt.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +22 -0
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service.d.ts +2 -0
- package/dist/src/agent/service.js +9 -3
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -1
- package/dist/src/agent/tools/composio-tool.d.ts +18 -5
- package/dist/src/agent/tools/composio-tool.js +252 -35
- package/dist/src/agent/tools/composio-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.js +7 -3
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -1
- package/dist/src/agent/tools/index.js +2 -2
- package/dist/src/agent/tools/workflow-tool.d.ts +0 -1
- package/dist/src/agent/tools/workflow-tool.js +3 -16
- package/dist/src/agent/tools/workflow-tool.js.map +1 -1
- package/dist/src/agent/workflow/builtins/index.d.ts +2 -28
- package/dist/src/agent/workflow/builtins/index.js +226 -41
- package/dist/src/agent/workflow/builtins/index.js.map +1 -1
- package/dist/src/agent/workflow/catalog.d.ts +32 -34
- package/dist/src/agent/workflow/catalog.js +158 -154
- package/dist/src/agent/workflow/catalog.js.map +1 -1
- package/dist/src/agent/workflow/index.d.ts +4 -6
- package/dist/src/agent/workflow/index.js +2 -5
- package/dist/src/agent/workflow/snapshot.d.ts +2 -2
- package/dist/src/agent/workflow/snapshot.js +2 -2
- package/dist/src/agent/workflow/snapshot.js.map +1 -1
- package/dist/src/agent/workflow/structured-output-tool.d.ts +2 -2
- package/dist/src/agent/workflow/structured-output-tool.js +2 -2
- package/dist/src/agent/workflow/structured-output-tool.js.map +1 -1
- package/dist/src/agent/workflow/subagent-runner.js +1 -1
- package/dist/src/agent/workflow/types.d.ts +31 -26
- package/dist/src/agent-manifest/index.d.ts +1 -0
- package/dist/src/agent-manifest/index.js +3 -1
- package/dist/src/agent-manifest/index.js.map +1 -1
- package/dist/src/agent-manifest/preset-chain.d.ts +10 -0
- package/dist/src/agent-manifest/preset-chain.js +32 -0
- package/dist/src/agent-manifest/preset-chain.js.map +1 -0
- package/dist/src/agent-manifest/resolver.js +3 -10
- package/dist/src/agent-manifest/resolver.js.map +1 -1
- package/dist/src/agent-manifest/schema.d.ts +4 -4
- package/dist/src/automations/api/routes.js +13 -1
- package/dist/src/automations/api/routes.js.map +1 -1
- package/dist/src/automations/domain/validation.d.ts +14 -14
- package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
- package/dist/src/browser/providers/browser-ext-install.d.ts +11 -1
- package/dist/src/browser/providers/browser-ext-install.js +39 -14
- package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
- package/dist/src/capabilities/store-connector.d.ts +0 -1
- package/dist/src/capabilities/store-connector.js +3 -5
- package/dist/src/capabilities/store-connector.js.map +1 -1
- package/dist/src/chat-commands/builtins/review.js +72 -73
- package/dist/src/chat-commands/builtins/review.js.map +1 -1
- package/dist/src/chat-commands/builtins/workflow.js +9 -54
- package/dist/src/chat-commands/builtins/workflow.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/extension-create.js +2 -2
- package/dist/src/cli/commands/extension-create.js.map +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +42 -36
- package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
- package/dist/src/cli/commands/extension-pack.d.ts +6 -0
- package/dist/src/cli/commands/extension-pack.js +3 -2
- package/dist/src/cli/commands/extension-pack.js.map +1 -1
- package/dist/src/commands/agents.config.d.ts +1 -0
- package/dist/src/commands/agents.config.js +1 -0
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/schema.d.ts +6 -6
- package/dist/src/config/schema.js +6 -22
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +1 -1
- package/dist/src/connectors/approval.d.ts +2 -0
- package/dist/src/connectors/approval.js +33 -0
- package/dist/src/connectors/approval.js.map +1 -0
- package/dist/src/connectors/auth-provider-registry.d.ts +9 -0
- package/dist/src/connectors/auth-provider-registry.js +17 -0
- package/dist/src/connectors/auth-provider-registry.js.map +1 -0
- package/dist/src/connectors/builtin-catalog.js +55 -116
- package/dist/src/connectors/builtin-catalog.js.map +1 -1
- package/dist/src/connectors/catalog.js +7 -2
- package/dist/src/connectors/catalog.js.map +1 -1
- package/dist/src/connectors/composio-catalog.d.ts +19 -0
- package/dist/src/connectors/composio-catalog.js +237 -0
- package/dist/src/connectors/composio-catalog.js.map +1 -0
- package/dist/src/connectors/composio-logo.d.ts +1 -0
- package/dist/src/connectors/composio-logo.js +51 -0
- package/dist/src/connectors/composio-logo.js.map +1 -0
- package/dist/src/connectors/composio-sessions.d.ts +116 -0
- package/dist/src/connectors/composio-sessions.js +296 -0
- package/dist/src/connectors/composio-sessions.js.map +1 -0
- package/dist/src/connectors/composio-triggers.d.ts +17 -0
- package/dist/src/connectors/composio-triggers.js +48 -5
- package/dist/src/connectors/composio-triggers.js.map +1 -1
- package/dist/src/connectors/composio.d.ts +31 -2
- package/dist/src/connectors/composio.js +374 -151
- package/dist/src/connectors/composio.js.map +1 -1
- package/dist/src/connectors/connector-memory-sync.d.ts +15 -0
- package/dist/src/connectors/connector-memory-sync.js +90 -0
- package/dist/src/connectors/connector-memory-sync.js.map +1 -0
- package/dist/src/connectors/install.js +35 -92
- package/dist/src/connectors/install.js.map +1 -1
- package/dist/src/connectors/instances.js +6 -2
- package/dist/src/connectors/instances.js.map +1 -1
- package/dist/src/connectors/integration-strategy.d.ts +3 -0
- package/dist/src/connectors/integration-strategy.js +29 -0
- package/dist/src/connectors/integration-strategy.js.map +1 -0
- package/dist/src/connectors/policy.d.ts +13 -0
- package/dist/src/connectors/policy.js +48 -0
- package/dist/src/connectors/policy.js.map +1 -0
- package/dist/src/connectors/providers.js +1 -1
- package/dist/src/connectors/runtime-adapter-registry.d.ts +25 -0
- package/dist/src/connectors/runtime-adapter-registry.js +154 -0
- package/dist/src/connectors/runtime-adapter-registry.js.map +1 -0
- package/dist/src/connectors/types.d.ts +113 -4
- package/dist/src/connectors/workflow-preflight.d.ts +20 -0
- package/dist/src/connectors/workflow-preflight.js +70 -0
- package/dist/src/connectors/workflow-preflight.js.map +1 -0
- package/dist/src/extensions/install-transaction.d.ts +16 -0
- package/dist/src/extensions/install-transaction.js +76 -0
- package/dist/src/extensions/install-transaction.js.map +1 -0
- package/dist/src/extensions/install.d.ts +2 -0
- package/dist/src/extensions/install.js +23 -1
- package/dist/src/extensions/install.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +2 -0
- package/dist/src/gateway/agents-admin.js +7 -0
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +11 -0
- package/dist/src/gateway/capability-presets-admin.js +11 -4
- package/dist/src/gateway/capability-presets-admin.js.map +1 -1
- package/dist/src/gateway/chat-stream/mapper.js +17 -0
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
- package/dist/src/gateway/chat-stream/protocol.d.ts +18 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -3
- package/dist/src/gateway/hono/routes/agents.js +3 -0
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/capability-presets.js +19 -1
- package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +188 -25
- package/dist/src/gateway/hono/routes/connectors.js.map +1 -1
- package/dist/src/gateway/hono/routes/goals.js +22 -3
- package/dist/src/gateway/hono/routes/goals.js.map +1 -1
- package/dist/src/gateway/hono/routes/home.d.ts +60 -1
- package/dist/src/gateway/hono/routes/home.js +244 -18
- package/dist/src/gateway/hono/routes/home.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/memory.js +14 -1
- package/dist/src/gateway/hono/routes/memory.js.map +1 -1
- package/dist/src/gateway/hono/routes/projects.js +103 -2
- package/dist/src/gateway/hono/routes/projects.js.map +1 -1
- package/dist/src/gateway/hono/routes/public-gateway.js +93 -0
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +137 -22
- package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
- package/dist/src/gateway/hono/routes/you.d.ts +23 -0
- package/dist/src/gateway/hono/routes/you.js +538 -0
- package/dist/src/gateway/hono/routes/you.js.map +1 -0
- package/dist/src/gateway/hono/sse.d.ts +2 -1
- package/dist/src/gateway/hono/sse.js +2 -1
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +13 -1
- package/dist/src/gateway/service/marketplace-service.js +96 -40
- package/dist/src/gateway/service/marketplace-service.js.map +1 -1
- package/dist/src/gateway/service.d.ts +2 -0
- package/dist/src/gateway/service.js +7 -1
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/goals/goal-service.d.ts +7 -5
- package/dist/src/goals/goal-service.js +25 -13
- package/dist/src/goals/goal-service.js.map +1 -1
- package/dist/src/goals/goal-store.js +46 -7
- package/dist/src/goals/goal-store.js.map +1 -1
- package/dist/src/goals/types.d.ts +24 -0
- package/dist/src/storage/sqlite/connector-repository.d.ts +49 -0
- package/dist/src/storage/sqlite/connector-repository.js +385 -0
- package/dist/src/storage/sqlite/connector-repository.js.map +1 -0
- package/dist/src/storage/sqlite/index.d.ts +3 -0
- package/dist/src/storage/sqlite/index.js +4 -1
- package/dist/src/storage/sqlite/migrations/030_connectors.sql +94 -0
- package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +24 -0
- package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +15 -0
- package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +6 -0
- package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +14 -0
- package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +7 -0
- package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +12 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/user-profile-setup-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/user-profile-setup-repository.js +34 -0
- package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +1 -0
- package/dist/src/storage/sqlite/user-trust-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/user-trust-repository.js +34 -0
- package/dist/src/storage/sqlite/user-trust-repository.js.map +1 -0
- package/dist/src/tui/components/assistant-message.js +15 -0
- package/dist/src/tui/components/assistant-message.js.map +1 -1
- package/dist/src/tui/tui-agent-events.js +85 -1
- package/dist/src/tui/tui-agent-events.js.map +1 -1
- package/dist/src/tui/tui-command-formatters.js +7 -7
- package/dist/src/tui/tui-command-formatters.js.map +1 -1
- package/dist/src/tui/tui-commands.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/user-context/import.d.ts +12 -0
- package/dist/src/user-context/import.js +48 -0
- package/dist/src/user-context/import.js.map +1 -0
- package/dist/src/user-context/profile.d.ts +37 -0
- package/dist/src/user-context/profile.js +165 -0
- package/dist/src/user-context/profile.js.map +1 -0
- package/dist/src/user-context/projection.d.ts +54 -0
- package/dist/src/user-context/projection.js +121 -0
- package/dist/src/user-context/projection.js.map +1 -0
- package/dist/src/user-context/source-recommendations.d.ts +13 -0
- package/dist/src/user-context/source-recommendations.js +86 -0
- package/dist/src/user-context/source-recommendations.js.map +1 -0
- package/dist/src/user-context/trust-policy.d.ts +11 -0
- package/dist/src/user-context/trust-policy.js +31 -0
- package/dist/src/user-context/trust-policy.js.map +1 -0
- package/dist/src/workflows/authoring/index.d.ts +1 -0
- package/dist/src/workflows/authoring/index.js +2 -0
- package/dist/src/workflows/authoring/workflow-draft-store.d.ts +33 -0
- package/dist/src/workflows/authoring/workflow-draft-store.js +74 -0
- package/dist/src/workflows/authoring/workflow-draft-store.js.map +1 -0
- package/dist/src/workflows/domain/definition-utils.d.ts +6 -4
- package/dist/src/workflows/domain/definition-utils.js +28 -26
- package/dist/src/workflows/domain/definition-utils.js.map +1 -1
- package/dist/src/workflows/domain/definition.d.ts +79 -6
- package/dist/src/workflows/domain/event.d.ts +18 -2
- package/dist/src/workflows/domain/index.js +3 -3
- package/dist/src/workflows/domain/run.d.ts +16 -2
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/domain/validation.d.ts +9 -5
- package/dist/src/workflows/domain/validation.js +183 -40
- package/dist/src/workflows/domain/validation.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-prompt.d.ts +2 -3
- package/dist/src/workflows/draft/workflow-draft-prompt.js +31 -73
- package/dist/src/workflows/draft/workflow-draft-prompt.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js +4 -8
- package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-validator.js +29 -37
- package/dist/src/workflows/draft/workflow-draft-validator.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft.types.d.ts +4 -4
- package/dist/src/workflows/engine/projector.js +43 -1
- package/dist/src/workflows/engine/projector.js.map +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +2 -3
- package/dist/src/workflows/engine/workflow-engine.js +24 -4
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/index.js +4 -7
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +1 -9
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -1
- package/dist/src/workflows/runtime/graph-workflow-runtime.d.ts +10 -0
- package/dist/src/workflows/runtime/graph-workflow-runtime.js +295 -0
- package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +1 -0
- package/dist/src/workflows/runtime/index.d.ts +1 -2
- package/dist/src/workflows/runtime/index.js +2 -5
- package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +5 -8
- package/dist/src/workflows/service/workflow-run-service.js +15 -1
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +2 -1
- package/package.json +4 -3
- package/dist/gateway/static/root/assets/agents-CyvCIHnB.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-DK_Vx6nl.js +0 -1
- package/dist/gateway/static/root/assets/automation-suggestion-card-B1LV3YYv.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-fzrovqhv.js +0 -4
- package/dist/gateway/static/root/assets/block-editor-Dhj5f4Bx.js +0 -184
- package/dist/gateway/static/root/assets/browser-settings-page-BDn-n-UB.js +0 -8
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-Co5ipo_Q.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-BWlpaxg9.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-D_jkIZLV.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BcekbW4q.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-settings-BJCUuL8Y.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-BN1Z2mIo.js +0 -3
- package/dist/gateway/static/root/assets/extension-page-B-1KxvVy.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BF9NACI3.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-DN9sNREz.js +0 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-BpoQW8cD.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-CBRSPd0b.js +0 -4
- package/dist/gateway/static/root/assets/goals-page-BCcBi407.js +0 -2
- package/dist/gateway/static/root/assets/goals-settings-pkTXzXkh.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-ezsufgLQ.js +0 -1
- package/dist/gateway/static/root/assets/index-B8s8Pq5U.css +0 -1
- package/dist/gateway/static/root/assets/index-DcUaXYeb.js +0 -262
- package/dist/gateway/static/root/assets/logs-page-DQtTRXtj.js +0 -7
- package/dist/gateway/static/root/assets/messages-BXNELNBa.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-BP2M9n6Q.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-CspveYaO.js +0 -1
- package/dist/gateway/static/root/assets/notes-workbench-BHwzJ0OC.js +0 -2
- package/dist/gateway/static/root/assets/project-detail-page-Dy3rsobs.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CWKpPE0L.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CqNRyXEo.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-MEME7ivF.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-JVd0qaSF.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DYEbB1EV.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-dWN8BJ3z.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-D8foINzP.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-Tgbv1s7G.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-D_YK0b_Z.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-DGytfoZK.js +0 -2
- package/dist/gateway/static/root/assets/toast-z0toXu32.js +0 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-8YtygcJp.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-BVH71EFf.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-JeTE7XNM.js +0 -1
- package/dist/gateway/static/root/assets/workflow-start-dialog-_u8Uc1ze.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-ixgk_y1l.js +0 -18
- package/dist/src/agent/workflow/builtins/audit-repo.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/audit-repo.js +0 -183
- package/dist/src/agent/workflow/builtins/audit-repo.js.map +0 -1
- package/dist/src/agent/workflow/builtins/client-proposal.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/client-proposal.js +0 -164
- package/dist/src/agent/workflow/builtins/client-proposal.js.map +0 -1
- package/dist/src/agent/workflow/builtins/competitor-scan.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/competitor-scan.js +0 -164
- package/dist/src/agent/workflow/builtins/competitor-scan.js.map +0 -1
- package/dist/src/agent/workflow/builtins/content-draft.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/content-draft.js +0 -159
- package/dist/src/agent/workflow/builtins/content-draft.js.map +0 -1
- package/dist/src/agent/workflow/builtins/content-repurpose.d.ts +0 -11
- package/dist/src/agent/workflow/builtins/content-repurpose.js +0 -146
- package/dist/src/agent/workflow/builtins/content-repurpose.js.map +0 -1
- package/dist/src/agent/workflow/builtins/debug-incident.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/debug-incident.js +0 -177
- package/dist/src/agent/workflow/builtins/debug-incident.js.map +0 -1
- package/dist/src/agent/workflow/builtins/decision-compare.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/decision-compare.js +0 -187
- package/dist/src/agent/workflow/builtins/decision-compare.js.map +0 -1
- package/dist/src/agent/workflow/builtins/implementation-plan.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/implementation-plan.js +0 -185
- package/dist/src/agent/workflow/builtins/implementation-plan.js.map +0 -1
- package/dist/src/agent/workflow/builtins/inbox-triage.d.ts +0 -11
- package/dist/src/agent/workflow/builtins/inbox-triage.js +0 -158
- package/dist/src/agent/workflow/builtins/inbox-triage.js.map +0 -1
- package/dist/src/agent/workflow/builtins/meeting-prep.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/meeting-prep.js +0 -152
- package/dist/src/agent/workflow/builtins/meeting-prep.js.map +0 -1
- package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +0 -14
- package/dist/src/agent/workflow/builtins/multi-perspective-review.js +0 -171
- package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +0 -1
- package/dist/src/agent/workflow/builtins/offer-design.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/offer-design.js +0 -170
- package/dist/src/agent/workflow/builtins/offer-design.js.map +0 -1
- package/dist/src/agent/workflow/builtins/pr-review.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/pr-review.js +0 -178
- package/dist/src/agent/workflow/builtins/pr-review.js.map +0 -1
- package/dist/src/agent/workflow/builtins/release-check.d.ts +0 -11
- package/dist/src/agent/workflow/builtins/release-check.js +0 -174
- package/dist/src/agent/workflow/builtins/release-check.js.map +0 -1
- package/dist/src/agent/workflow/builtins/research.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/research.js +0 -188
- package/dist/src/agent/workflow/builtins/research.js.map +0 -1
- package/dist/src/agent/workflow/builtins/weekly-review.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/weekly-review.js +0 -139
- package/dist/src/agent/workflow/builtins/weekly-review.js.map +0 -1
- package/dist/src/agent/workflow/last-run-memory.d.ts +0 -42
- package/dist/src/agent/workflow/last-run-memory.js +0 -60
- package/dist/src/agent/workflow/last-run-memory.js.map +0 -1
- package/dist/src/agent/workflow/lint.d.ts +0 -38
- package/dist/src/agent/workflow/lint.js +0 -74
- package/dist/src/agent/workflow/lint.js.map +0 -1
- package/dist/src/agent/workflow/meta-locale.d.ts +0 -12
- package/dist/src/agent/workflow/meta-locale.js +0 -62
- package/dist/src/agent/workflow/meta-locale.js.map +0 -1
- package/dist/src/agent/workflow/parser.d.ts +0 -20
- package/dist/src/agent/workflow/parser.js +0 -152
- package/dist/src/agent/workflow/parser.js.map +0 -1
- package/dist/src/agent/workflow/runtime.d.ts +0 -34
- package/dist/src/agent/workflow/runtime.js +0 -402
- package/dist/src/agent/workflow/runtime.js.map +0 -1
- package/dist/src/connectors/oauth.d.ts +0 -22
- package/dist/src/connectors/oauth.js +0 -99
- package/dist/src/connectors/oauth.js.map +0 -1
- package/dist/src/workflows/runtime/script-runtime.d.ts +0 -3
- package/dist/src/workflows/runtime/script-runtime.js +0 -3
- package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +0 -5
- package/dist/src/workflows/runtime/script-workflow-runtime.js +0 -15
- package/dist/src/workflows/runtime/script-workflow-runtime.js.map +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./preload-helper-zJ_50EbN.js";var r=e(t(),1),i=e=>{throw TypeError(e)},a=(e,t,n)=>t.has(e)||i(`Cannot `+n),o=(e,t,n)=>(a(e,t,`read from private field`),n?n.call(e):t.get(e)),s=(e,t,n)=>t.has(e)?i(`Cannot add the same private member more than once`):t instanceof WeakSet?t.add(e):t.set(e,n),c=(e,t,n,r)=>(a(e,t,`write to private field`),r?r.call(e,n):t.set(e,n),n),l=`popstate`;function u(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function d(e={}){function t(e,t){let{pathname:n=`/`,search:r=``,hash:i=``}=v(e.location.hash.substring(1));return!n.startsWith(`/`)&&!n.startsWith(`.`)&&(n=`/`+n),g(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){let n=e.document.querySelector(`base`),r=``;if(n&&n.getAttribute(`href`)){let t=e.location.href,n=t.indexOf(`#`);r=n===-1?t:t.slice(0,n)}return r+`#`+(typeof t==`string`?t:_(t))}function r(e,t){p(e.pathname.charAt(0)===`/`,`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}return y(t,n,r,e)}function f(e,t){if(e===!1||e==null)throw Error(t)}function p(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function m(){return Math.random().toString(36).substring(2,10)}function h(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function g(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?v(t):t,state:n,key:t&&t.key||r||m(),mask:i}}function _({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function v(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function y(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,d=f();d??(d=0,o.replaceState({...o.state,idx:d},``));function f(){return(o.state||{idx:null}).idx}function p(){s=`POP`;let e=f(),t=e==null?null:e-d;d=e,c&&c({action:s,location:y.location,delta:t})}function m(e,t){s=`PUSH`;let r=u(e)?e:g(y.location,e,t);n&&n(r,e),d=f()+1;let l=h(r,d),p=y.createHref(r.mask||r);try{o.pushState(l,``,p)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(p)}a&&c&&c({action:s,location:y.location,delta:1})}function _(e,t){s=`REPLACE`;let r=u(e)?e:g(y.location,e,t);n&&n(r,e),d=f();let i=h(r,d),l=y.createHref(r.mask||r);o.replaceState(i,``,l),a&&c&&c({action:s,location:y.location,delta:0})}function v(e){return b(i,e)}let y={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(l,p),c=e,()=>{i.removeEventListener(l,p),c=null}},createHref(e){return t(i,e)},createURL:v,encodeLocation(e){let t=v(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:m,replace:_,go(e){return o.go(e)}};return y}function b(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),f(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:_(t);return i=i.replace(/ $/,`%20`),!n&&i.startsWith(`//`)&&(i=r+i),new URL(i,r)}function x(e){return{defaultValue:e}}var S,C=class{constructor(e){if(s(this,S,new Map),e)for(let[t,n]of e)this.set(t,n)}get(e){if(o(this,S).has(e))return o(this,S).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw Error(`No value found for context`)}set(e,t){o(this,S).set(e,t)}};S=new WeakMap;var w=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`children`]);function T(e){return w.has(e)}var E=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`middleware`,`children`]);function D(e){return E.has(e)}function O(e){return e.index===!0}function k(e,t,n=[],r={},i=!1){return e.map((e,a)=>{let o=[...n,String(a)],s=typeof e.id==`string`?e.id:o.join(`-`);if(f(e.index!==!0||!e.children,`Cannot specify children on an index route`),f(i||!r[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),O(e)){let n={...e,id:s};return r[s]=A(n,t(n)),n}else{let n={...e,id:s,children:void 0};return r[s]=A(n,t(n)),e.children&&(n.children=k(e.children,t,o,r,i)),n}})}function A(e,t){return Object.assign(e,{...t,...typeof t.lazy==`object`&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function j(e,t,n=`/`){return M(e,t,n,!1)}function M(e,t,n,r,i){let a=B((typeof t==`string`?v(t):t).pathname||`/`,n);if(a==null)return null;let o=i??N(e),s=null,c=z(a);for(let e=0;s==null&&e<o.length;++e)s=le(o[e],c,r);return s}function ee(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],loaderData:t[n.id],handle:n.handle}}function N(e){let t=P(e);return I(t),t}function P(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;f(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=W([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(f(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),P(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:se(l,e.index),routesMeta:u})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of F(e.path))a(e,t,!0,n)}),t}function F(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=F(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function I(e){e.sort((e,t)=>e.score===t.score?ce(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var te=/^:[\w-]+$/,ne=3,re=2,ie=1,ae=10,oe=-2,L=e=>e===`*`;function se(e,t){let n=e.split(`/`),r=n.length;return n.some(L)&&(r+=oe),t&&(r+=re),n.filter(e=>!L(e)).reduce((e,t)=>e+(te.test(t)?ne:t===``?ie:ae),r)}function ce(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function le(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u=R({path:s.relativePath,caseSensitive:s.caseSensitive,end:c},l),d=s.route;if(!u&&c&&n&&!r[r.length-1].route.index&&(u=R({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!u)return null;Object.assign(i,u.params),o.push({params:i,pathname:W([a,u.pathname]),pathnameBase:ye(W([a,u.pathnameBase])),route:d}),u.pathnameBase!==`/`&&(a=W([a,u.pathnameBase]))}return o}function R(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=ue(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,`$1`),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return n&&!i?e[t]=void 0:e[t]=(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function ue(e,t=!1,n=!0){p(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function z(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return p(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function B(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function V({basename:e,pathname:t}){return t===`/`?e:W([e,t])}var H=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,de=e=>H.test(e);function fe(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?v(e):e,a;return n?(n=_e(n),a=n.startsWith(`/`)?pe(n.substring(1),`/`):pe(n,t)):a=t,{pathname:a,search:be(r),hash:xe(i)}}function pe(e,t){let n=ve(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function me(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function he(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function ge(e){let t=he(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function U(e,t,n,r=!1){let i;typeof e==`string`?i=v(e):(i={...e},f(!i.pathname||!i.pathname.includes(`?`),me(`?`,`pathname`,`search`,i)),f(!i.pathname||!i.pathname.includes(`#`),me(`#`,`pathname`,`hash`,i)),f(!i.search||!i.search.includes(`#`),me(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=fe(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var _e=e=>e.replace(/\/\/+/g,`/`),W=e=>_e(e.join(`/`)),ve=e=>e.replace(/\/+$/,``),ye=e=>ve(e).replace(/^\/*/,`/`),be=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,xe=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Se=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Ce(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function we(e){return W(e.map(e=>e.route.path).filter(Boolean))||`/`}var Te=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Ee(e,t){let n=e;if(typeof n!=`string`||!H.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Te)try{let e=new URL(window.location.href),r=n.startsWith(`//`)?new URL(e.protocol+n):new URL(n),a=B(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{p(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}var De=Symbol(`Uninstrumented`);function Oe(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){let t=Object.keys(n);for(let r of t)e[r]&&n[r].push(e[r])}}));let r={};if(typeof t.lazy==`function`&&n.lazy.length>0){let e=G(n.lazy,t.lazy,()=>void 0);e&&(r.lazy=e)}if(typeof t.lazy==`object`){let e=t.lazy;[`middleware`,`loader`,`action`].forEach(t=>{let i=e[t],a=n[`lazy.${t}`];if(typeof i==`function`&&a.length>0){let e=G(a,i,()=>void 0);e&&(r.lazy=Object.assign(r.lazy||{},{[t]:e}))}})}return[`loader`,`action`].forEach(e=>{let i=t[e];if(typeof i==`function`&&n[e].length>0){let t=i[De]??i,a=G(n[e],t,(...e)=>je(e[0]));a&&(e===`loader`&&t.hydrate===!0&&(a.hydrate=!0),a[De]=t,r[e]=a)}}),t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(r.middleware=t.middleware.map(e=>{let t=e[De]??e,r=G(n.middleware,t,(...e)=>je(e[0]));return r?(r[De]=t,r):e})),r}function ke(e,t){let n={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){let t=Object.keys(e);for(let r of t)e[r]&&n[r].push(e[r])}})),n.navigate.length>0){let t=e.navigate[De]??e.navigate,r=G(n.navigate,t,(...t)=>{let[n,r]=t;return{to:typeof n==`number`||typeof n==`string`?n:n?_(n):`.`,...Me(e,r??{})}});r&&(r[De]=t,e.navigate=r)}if(n.fetch.length>0){let t=e.fetch[De]??e.fetch,r=G(n.fetch,t,(...t)=>{let[n,,r,i]=t;return{href:r??`.`,fetcherKey:n,...Me(e,i??{})}});r&&(r[De]=t,e.fetch=r)}return e}function G(e,t,n){return e.length===0?null:async(...r)=>{let i=await Ae(e,n(...r),()=>t(...r),e.length-1);if(i.type===`error`)throw i.value;return i.value}}async function Ae(e,t,n,r){let i=e[r],a;if(i){let o,s=async()=>(o?console.error(`You cannot call instrumented handlers more than once`):o=Ae(e,t,n,r-1),a=await o,f(a,`Expected a result`),a.type===`error`&&a.value instanceof Error?{status:`error`,error:a.value}:{status:`success`,error:void 0});try{await i(s,t)}catch(e){console.error(`An instrumentation function threw an error:`,e)}o||await s(),await o}else try{a={type:`success`,value:await n()}}catch(e){a={type:`error`,value:e}}return a||{type:`error`,value:Error(`No result assigned in instrumentation chain.`)}}function je(e){let{request:t,context:n,params:r,pattern:i}=e;return{request:Ne(t),params:{...r},pattern:i,context:K(n)}}function Me(e,t){return{currentUrl:_(e.state.location),...`formMethod`in t?{formMethod:t.formMethod}:{},...`formEncType`in t?{formEncType:t.formEncType}:{},...`formData`in t?{formData:t.formData}:{},...`body`in t?{body:t.body}:{}}}function Ne(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function K(e){if(Fe(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var Pe=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Fe(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===Pe}var Ie=[`POST`,`PUT`,`PATCH`,`DELETE`],Le=new Set(Ie),q=[`GET`,...Ie],Re=new Set(q),ze=new Set([301,302,303,307,308]),Be=new Set([307,308]),Ve={state:`idle`,location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},He={state:`idle`,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ue={state:`unblocked`,proceed:void 0,reset:void 0,location:void 0},We=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Ge=`remix-router-transitions`,Ke=Symbol(`ResetLoaderData`),qe,Je,Ye,Xe,Ze=class{constructor(e){s(this,qe),s(this,Je),s(this,Ye),s(this,Xe),c(this,qe,e),c(this,Je,N(e))}get stableRoutes(){return o(this,qe)}get activeRoutes(){return o(this,Ye)??o(this,qe)}get branches(){return o(this,Xe)??o(this,Je)}get hasHMRRoutes(){return o(this,Ye)!=null}setRoutes(e){c(this,qe,e),c(this,Je,N(e))}setHmrRoutes(e){c(this,Ye,e),c(this,Xe,N(e))}commitHmrRoutes(){o(this,Ye)&&(c(this,qe,o(this,Ye)),c(this,Je,o(this,Xe)),c(this,Ye,void 0),c(this,Xe,void 0))}};qe=new WeakMap,Je=new WeakMap,Ye=new WeakMap,Xe=new WeakMap;function Qe(e){let t=e.window?e.window:typeof window<`u`?window:void 0,n=t!==void 0&&t.document!==void 0&&t.document.createElement!==void 0;f(e.routes.length>0,`You must provide a non-empty routes array to createRouter`);let r=e.hydrationRouteProperties||[],i=e.mapRouteProperties||We,a=i;if(e.instrumentations){let t=e.instrumentations;a=e=>({...i(e),...Oe(t.map(e=>e.route).filter(Boolean),e)})}let o={},s=new Ze(k(e.routes,a,void 0,o)),c=e.basename||`/`;c.startsWith(`/`)||(c=`/${c}`);let l=e.dataStrategy||ht,u={...e.future},d=null,m=new Set,h=null,_=null,y=null,x=null,S=e.hydrationData!=null,w=M(s.activeRoutes,e.history.location,c,!1,s.branches),T=!1,E=null,D,O;if(w==null&&!e.patchRoutesOnNavigation){let t=J(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=Rt(s.activeRoutes);D=!0,O=!D,w=n,E={[r.id]:t}}else if(w&&!e.hydrationData&&st(w,s.activeRoutes,e.history.location.pathname).active&&(w=null),!w){D=!1,O=!D,w=[];let t=st(null,s.activeRoutes,e.history.location.pathname);t.active&&t.matches&&(T=!0,w=t.matches)}else if(w.some(e=>e.route.lazy))D=!1,O=!D;else if(!w.some(e=>rt(e.route)))D=!0,O=!D;else{let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=w;if(n){let e=w.findIndex(e=>n[e.route.id]!==void 0);r=r.slice(0,e+1)}O=!1,D=!0,r.forEach(e=>{let r=it(e.route,t,n);O||=r.renderFallback,D&&=!r.shouldLoad})}let A,j={historyAction:e.history.action,location:e.history.location,matches:w,initialized:D,renderFallback:O,navigation:Ve,restoreScrollPosition:e.hydrationData==null?null:!1,preventScrollReset:!1,revalidation:`idle`,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||E,fetchers:new Map,blockers:new Map},N=`POP`,P=null,F=!1,I,te=!1,ne=new Map,re=null,ie=!1,ae=!1,oe=new Set,L=new Map,se=0,ce=-1,le=new Map,R=new Set,ue=new Map,z=new Map,V=new Set,H=new Map,fe,pe=null;function me(){if(d=e.history.listen(({action:t,location:n,delta:r})=>{if(fe){fe(),fe=void 0;return}p(H.size===0||r!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=Ye({currentLocation:j.location,nextLocation:n,historyAction:t});if(i&&r!=null){let t=new Promise(e=>{fe=e});e.history.go(r*-1),Je(i,{state:`blocked`,location:n,proceed(){Je(i,{state:`proceeding`,proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(r))},reset(){let e=new Map(j.blockers);e.set(i,Ue),U({blockers:e})}}),P?.resolve(),P=null;return}return ye(t,n)}),n){sn(t,ne);let e=()=>cn(t,ne);t.addEventListener(`pagehide`,e),re=()=>t.removeEventListener(`pagehide`,e)}return j.initialized||ye(`POP`,j.location,{initialHydration:!0}),A}function he(){d&&d(),re&&re(),m.clear(),I&&I.abort(),j.fetchers.forEach((e,t)=>Ie(j.fetchers,t)),j.blockers.forEach((e,t)=>qe(t))}function ge(e){if(m.add(e),h){let{newErrors:t}=h;h=null,e(j,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>m.delete(e)}function U(e,t={}){e.matches&&=e.matches.map(e=>{let t=o[e.route.id],n=e.route;return n.element!==t.element||n.errorElement!==t.errorElement||n.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}),j={...j,...e};let n=[],r=[];j.fetchers.forEach((e,t)=>{e.state===`idle`&&(V.has(t)?n.push(t):r.push(t))}),V.forEach(e=>{!j.fetchers.has(e)&&!L.has(e)&&n.push(e)}),m.size===0&&(h={newErrors:e.errors??null}),[...m].forEach(r=>r(j,{deletedFetchers:n,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:t.flushSync===!0})),n.forEach(e=>Ie(j.fetchers,e)),r.forEach(e=>j.fetchers.delete(e))}function _e(t,n,{flushSync:r}={}){let i=j.actionData!=null&&j.navigation.formMethod!=null&&X(j.navigation.formMethod)&&j.navigation.state===`loading`&&t.state?._isRedirect!==!0,a;a=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:i?j.actionData:null;let o=n.loaderData?Ft(j.loaderData,n.loaderData,n.matches||[],n.errors):j.loaderData,c=j.blockers;c.size>0&&(c=new Map(c),c.forEach((e,t)=>c.set(t,Ue)));let l=ie?!1:ot(t,n.matches||j.matches),u=F===!0||j.navigation.formMethod!=null&&X(j.navigation.formMethod)&&t.state?._isRedirect!==!0;s.commitHmrRoutes(),ie||N===`POP`||(N===`PUSH`?e.history.push(t,t.state):N===`REPLACE`&&e.history.replace(t,t.state));let d;if(N===`POP`){let e=ne.get(j.location.pathname);e&&e.has(t.pathname)?d={currentLocation:j.location,nextLocation:t}:ne.has(t.pathname)&&(d={currentLocation:t,nextLocation:j.location})}else if(te){let e=ne.get(j.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),ne.set(j.location.pathname,e)),d={currentLocation:j.location,nextLocation:t}}U({...n,actionData:a,loaderData:o,historyAction:N,location:t,initialized:!0,renderFallback:!1,navigation:Ve,revalidation:`idle`,restoreScrollPosition:l,preventScrollReset:u,blockers:c},{viewTransitionOpts:d,flushSync:r===!0}),N=`POP`,F=!1,te=!1,ie=!1,ae=!1,P?.resolve(),P=null,pe?.resolve(),pe=null}async function W(t,n){if(P?.resolve(),P=null,typeof t==`number`){P||=ln();let n=P.promise;return e.history.go(t),n}let{path:r,submission:i,error:a}=tt(!1,et(j.location,j.matches,c,t,n?.fromRouteId,n?.relative),n),o;n?.mask&&(o={pathname:``,search:``,hash:``,...typeof n.mask==`string`?v(n.mask):{...j.location.mask,...n.mask}});let s=j.location,l=g(s,r,n&&n.state,void 0,o);l={...l,...e.history.encodeLocation(l)};let u=n&&n.replace!=null?n.replace:void 0,d=`PUSH`;u===!0?d=`REPLACE`:u===!1||i!=null&&X(i.formMethod)&&i.formAction===j.location.pathname+j.location.search&&(d=`REPLACE`);let f=n&&`preventScrollReset`in n?n.preventScrollReset===!0:void 0,p=(n&&n.flushSync)===!0,m=Ye({currentLocation:s,nextLocation:l,historyAction:d});if(m){Je(m,{state:`blocked`,location:l,proceed(){Je(m,{state:`proceeding`,proceed:void 0,reset:void 0,location:l}),W(t,n)},reset(){let e=new Map(j.blockers);e.set(m,Ue),U({blockers:e})}});return}await ye(d,l,{submission:i,pendingError:a,preventScrollReset:f,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:n&&n.defaultShouldRevalidate})}function ve(){pe||=ln(),Me(),U({revalidation:`loading`});let e=pe.promise;return j.navigation.state===`submitting`?e:j.navigation.state===`idle`?(ye(j.historyAction,j.location,{startUninterruptedRevalidation:!0}),e):(ye(N||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation,enableViewTransition:te===!0}),e)}async function ye(t,n,r){I&&I.abort(),I=null,N=t,ie=(r&&r.startUninterruptedRevalidation)===!0,at(j.location,j.matches),F=(r&&r.preventScrollReset)===!0,te=(r&&r.enableViewTransition)===!0;let i=s.activeRoutes,a=r?.initialHydration&&j.matches&&j.matches.length>0&&!T?j.matches:M(i,n,c,!1,s.branches),o=(r&&r.flushSync)===!0;if(a&&j.initialized&&!ae&&Vt(j.location,n)&&!(r&&r.submission&&X(r.submission.formMethod))){_e(n,{matches:a},{flushSync:o});return}let l=st(a,i,n.pathname);if(l.active&&l.matches&&(a=l.matches),!a){let{error:e,notFoundMatches:t,route:r}=Xe(n.pathname);_e(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:o});return}let u=r&&r.overrideNavigation?{...r.overrideNavigation,matches:a,historyAction:t}:void 0;I=new AbortController;let d=kt(e.history,n,I.signal,r&&r.submission),f=e.getContext?await e.getContext():new C,p;if(r&&r.pendingError)p=[Lt(a).route.id,{type:`error`,error:r.pendingError}];else if(r&&r.submission&&X(r.submission.formMethod)){let i=await be(d,n,r.submission,a,t,f,l.active,r&&r.initialHydration===!0,{replace:r.replace,flushSync:o});if(i.shortCircuited)return;if(i.pendingActionResult){let[e,t]=i.pendingActionResult;if(Y(t)&&Ce(t.error)&&t.error.status===404){I=null,_e(n,{matches:i.matches,loaderData:{},errors:{[e]:t.error}});return}}a=i.matches||a,p=i.pendingActionResult,u=tn(n,a,t,r.submission),o=!1,l.active=!1,d=kt(e.history,d.url,d.signal)}let{shortCircuited:m,matches:h,loaderData:g,errors:_,workingFetchers:v}=await xe(d,n,a,t,f,l.active,u,r&&r.submission,r&&r.fetcherSubmission,r&&r.replace,r&&r.initialHydration===!0,o,p,r&&r.callSiteDefaultShouldRevalidate);m||(I=null,_e(n,{matches:h||a,...It(p),loaderData:g,errors:_,...v?{fetchers:v}:{}}))}async function be(t,n,i,l,u,d,f,p,m={}){if(Me(),U({navigation:nn(n,l,u,i)},{flushSync:m.flushSync===!0}),f){let e=await lt(l,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Rt(s.activeRoutes);return{matches:t,pendingActionResult:[n.id,{type:`error`,error:e.error}]}}let t=Lt(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:`error`,error:e.error}]}}else if(e.matches)l=e.matches;else{let{notFoundMatches:e,error:t,route:r}=Xe(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:`error`,error:t}]}}}let h,g=$t(l,n);if(!g.route.action&&!g.route.lazy)h={type:`error`,error:J(405,{method:t.method,pathname:n.pathname,routeId:g.route.id})};else{let e=await Ae(t,n,xt(a,o,t,n,l,g,p?[]:r,d),d,null);if(h=e[g.route.id],!h){for(let t of l)if(e[t.route.id]){h=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}if(Kt(h)){let n;return n=m&&m.replace!=null?m.replace:Ot(h.response.headers.get(`Location`),new URL(t.url),c,e.history)===j.location.pathname+j.location.search,await G(t,h,!0,{submission:i,replace:n}),{shortCircuited:!0}}if(Y(h)){let e=Lt(l,g.route.id);return(m&&m.replace)!==!0&&(N=`PUSH`),{matches:l,pendingActionResult:[e.route.id,h,g.route.id]}}return{matches:l,pendingActionResult:[g.route.id,h]}}async function xe(t,n,i,l,u,d,f,p,m,h,g,_,v,y){let b=f||tn(n,i,l,p),x=p||m||en(b),S=!ie&&!g;if(d){if(S){let e=Se(v);U({navigation:b,...e===void 0?{}:{actionData:e}},{flushSync:_})}let e=await lt(i,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Rt(s.activeRoutes);return{matches:t,loaderData:{},errors:{[n.id]:e.error}}}let t=Lt(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}else if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:r}=Xe(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let C=s.activeRoutes,{dsMatches:w,revalidatingFetchers:T}=nt(t,u,a,o,e.history,j,i,x,n,g?[]:r,g===!0,ae,oe,V,ue,R,C,c,e.patchRoutesOnNavigation!=null,s.branches,v,y);if(ce=++se,!e.dataStrategy&&!w.some(e=>e.shouldLoad)&&!w.some(e=>e.route.middleware&&e.route.middleware.length>0)&&T.length===0){let e=new Map(j.fetchers),t=ze(e);return _e(n,{matches:i,loaderData:{},errors:v&&Y(v[1])?{[v[0]]:v[1].error}:null,...It(v),...t?{fetchers:e}:{}},{flushSync:_}),{shortCircuited:!0}}if(S){let e={};if(!d){e.navigation=b;let t=Se(v);t!==void 0&&(e.actionData=t)}T.length>0&&(e.fetchers=we(T)),U(e,{flushSync:_})}T.forEach(e=>{q(e.key),e.controller&&L.set(e.key,e.controller)});let E=()=>T.forEach(e=>q(e.key));I&&I.signal.addEventListener(`abort`,E);let{loaderResults:D,fetcherResults:O}=await je(w,T,t,n,u);if(t.signal.aborted)return{shortCircuited:!0};I&&I.signal.removeEventListener(`abort`,E),T.forEach(e=>L.delete(e.key));let k=zt(D);if(k)return await G(t,k.result,!0,{replace:h}),{shortCircuited:!0};if(k=zt(O),k)return R.add(k.key),await G(t,k.result,!0,{replace:h}),{shortCircuited:!0};let A=new Map(j.fetchers),{loaderData:M,errors:ee}=Pt(j,i,D,v,T,O,A);g&&j.errors&&(ee={...j.errors,...ee});let N=ze(A),P=Ge(ce,A),F=N||P||T.length>0;return{matches:i,loaderData:M,errors:ee,...F?{workingFetchers:A}:{}}}function Se(e){if(e&&!Y(e[1]))return{[e[0]]:e[1].data};if(j.actionData)return Object.keys(j.actionData).length===0?null:j.actionData}function we(e){let t=new Map(j.fetchers);return e.forEach(e=>{let n=t.get(e.key),r=rn(void 0,n?n.data:void 0);t.set(e.key,r)}),t}async function Te(t,n,r,i){q(t);let a=(i&&i.flushSync)===!0,o=s.activeRoutes,l=et(j.location,j.matches,c,r,n,i?.relative),u=M(o,l,c,!1,s.branches),d=st(u,o,l);if(d.active&&d.matches&&(u=d.matches),!u){K(t,n,J(404,{pathname:l}),{flushSync:a});return}let{path:f,submission:p,error:m}=tt(!0,l,i);if(m){K(t,n,m,{flushSync:a});return}let h=e.getContext?await e.getContext():new C,g=(i&&i.preventScrollReset)===!0;if(p&&X(p.formMethod)){await Ee(t,n,f,u,h,d.active,a,g,p,i&&i.defaultShouldRevalidate);return}ue.set(t,{routeId:n,path:f}),await De(t,n,f,u,h,d.active,a,g,p)}async function Ee(t,n,i,l,u,d,p,m,h,g){Me(),ue.delete(t),Ne(t,an(h,j.fetchers.get(t)),{flushSync:p});let _=new AbortController,v=kt(e.history,i,_.signal,h);if(d){let e=await lt(l,new URL(v.url).pathname,v.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){K(t,n,e.error,{flushSync:p});return}else if(e.matches)l=e.matches;else{K(t,n,J(404,{pathname:i}),{flushSync:p});return}}let y=$t(l,i);if(!y.route.action&&!y.route.lazy){K(t,n,J(405,{method:h.formMethod,pathname:i,routeId:n}),{flushSync:p});return}L.set(t,_);let b=se,x=xt(a,o,v,i,l,y,r,u),S=await Ae(v,i,x,u,t),C=S[y.route.id];if(!C){for(let e of x)if(S[e.route.id]){C=S[e.route.id];break}}if(v.signal.aborted){L.get(t)===_&&L.delete(t);return}if(V.has(t)){if(Kt(C)||Y(C)){Ne(t,on(void 0));return}}else{if(Kt(C))if(L.delete(t),ce>b){Ne(t,on(void 0));return}else return R.add(t),Ne(t,rn(h)),G(v,C,!1,{fetcherSubmission:h,preventScrollReset:m});if(Y(C)){K(t,n,C.error);return}}let w=j.navigation.location||j.location,T=kt(e.history,w,_.signal),E=s.activeRoutes,D=j.navigation.state===`idle`?j.matches:M(E,j.navigation.location,c,!1,s.branches);f(D,`Didn't find any matches after fetcher action`);let O=++se;le.set(t,O);let{dsMatches:k,revalidatingFetchers:A}=nt(T,u,a,o,e.history,j,D,h,w,r,!1,ae,oe,V,ue,R,E,c,e.patchRoutesOnNavigation!=null,s.branches,[y.route.id,C],g),ee=rn(h,C.data),P=new Map(j.fetchers);P.set(t,ee),A.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=P.get(t),r=rn(void 0,n?n.data:void 0);P.set(t,r),q(t),e.controller&&L.set(t,e.controller)}),U({fetchers:P});let F=()=>A.forEach(e=>q(e.key));_.signal.addEventListener(`abort`,F);let{loaderResults:te,fetcherResults:ne}=await je(k,A,T,w,u);if(_.signal.aborted)return;_.signal.removeEventListener(`abort`,F),le.delete(t),L.delete(t),A.forEach(e=>L.delete(e.key));let re=j.fetchers.has(t),ie=e=>{if(!re)return e;let n=new Map(e.fetchers);return n.set(t,on(C.data)),{...e,fetchers:n}},z=zt(te);if(z)return j=ie(j),G(T,z.result,!1,{preventScrollReset:m});if(z=zt(ne),z)return R.add(z.key),j=ie(j),G(T,z.result,!1,{preventScrollReset:m});let B=new Map(j.fetchers);re&&B.set(t,on(C.data));let{loaderData:H,errors:de}=Pt(j,D,te,void 0,A,ne,B);Ge(O,B),j.navigation.state===`loading`&&O>ce?(f(N,`Expected pending action`),I&&I.abort(),_e(j.navigation.location,{matches:D,loaderData:H,errors:de,fetchers:B})):(U({errors:de,loaderData:Ft(j.loaderData,H,D,de),fetchers:B}),ae=!1)}async function De(t,n,i,s,c,l,u,d,f){let p=j.fetchers.get(t);Ne(t,rn(f,p?p.data:void 0),{flushSync:u});let m=new AbortController,h=kt(e.history,i,m.signal);if(l){let e=await lt(s,new URL(h.url).pathname,h.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){K(t,n,e.error,{flushSync:u});return}else if(e.matches)s=e.matches;else{K(t,n,J(404,{pathname:i}),{flushSync:u});return}}let g=$t(s,i);L.set(t,m);let _=se,v=await Ae(h,i,xt(a,o,h,i,s,g,r,c),c,t),y=v[g.route.id];if(!y){for(let e of s)if(v[e.route.id]){y=v[e.route.id];break}}if(L.get(t)===m&&L.delete(t),!h.signal.aborted){if(V.has(t)){Ne(t,on(void 0));return}if(Kt(y))if(ce>_){Ne(t,on(void 0));return}else{R.add(t),await G(h,y,!1,{preventScrollReset:d});return}if(Y(y)){K(t,n,y.error);return}Ne(t,on(y.data))}}async function G(r,i,a,{submission:o,fetcherSubmission:s,preventScrollReset:l,replace:u}={}){a||(P?.resolve(),P=null),i.response.headers.has(`X-Remix-Revalidate`)&&(ae=!0);let d=i.response.headers.get(`Location`);f(d,`Expected a Location header on the redirect Response`),d=Ot(d,new URL(r.url),c,e.history);let p=g(j.location,d,{_isRedirect:!0});if(n){let e=!1;if(i.response.headers.has(`X-Remix-Reload-Document`))e=!0;else if(de(d)){let n=b(t,d,!0);e=n.origin!==t.location.origin||B(n.pathname,c)==null}if(e){u?t.location.replace(d):t.location.assign(d);return}}I=null;let m=u===!0||i.response.headers.has(`X-Remix-Replace`)?`REPLACE`:`PUSH`,{formMethod:h,formAction:_,formEncType:v}=j.navigation;!o&&!s&&h&&_&&v&&(o=en(j.navigation));let y=o||s;Be.has(i.response.status)&&y&&X(y.formMethod)?await ye(m,p,{submission:{...y,formAction:d},preventScrollReset:l||F,enableViewTransition:a?te:void 0}):await ye(m,p,{overrideNavigation:tn(p,[],m,o),fetcherSubmission:s,preventScrollReset:l||F,enableViewTransition:a?te:void 0})}async function Ae(e,t,n,r,i){let a,o={};try{a=await St(l,e,t,n,i,r,!1)}catch(e){return n.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:`error`,error:e}}),o}if(e.signal.aborted)return o;if(!X(e.method))for(let e of n){if(a[e.route.id]?.type===`error`)break;!a.hasOwnProperty(e.route.id)&&!j.loaderData.hasOwnProperty(e.route.id)&&(!j.errors||!j.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(a[e.route.id]={type:`error`,result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,r]of Object.entries(a))if(Gt(r)){let i=r.result;o[t]={type:`redirect`,response:Et(i,e,t,n,c)}}else o[t]=await Tt(r);return o}async function je(e,t,n,r,i){let a=Ae(n,r,e,i,null),o=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await Ae(e.request,e.path,e.matches,i,e.key))[e.match.route.id];return{[e.key]:t}}else return Promise.resolve({[e.key]:{type:`error`,error:J(404,{pathname:e.path})}})}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function Me(){ae=!0,ue.forEach((e,t)=>{L.has(t)&&oe.add(t),q(t)})}function Ne(e,t,n={}){let r=new Map(j.fetchers);r.set(e,t),U({fetchers:r},{flushSync:(n&&n.flushSync)===!0})}function K(e,t,n,r={}){let i=Lt(j.matches,t),a=new Map(j.fetchers);Ie(a,e),U({errors:{[i.route.id]:n},fetchers:a},{flushSync:(r&&r.flushSync)===!0})}function Pe(e){return z.set(e,(z.get(e)||0)+1),V.has(e)&&V.delete(e),j.fetchers.get(e)||He}function Fe(e,t){q(e,t?.reason),Ne(e,on(null))}function Ie(e,t){let n=j.fetchers.get(t);L.has(t)&&!(n&&n.state===`loading`&&le.has(t))&&q(t),ue.delete(t),le.delete(t),R.delete(t),V.delete(t),oe.delete(t),e.delete(t)}function Le(e){let t=(z.get(e)||0)-1;t<=0?(z.delete(e),V.add(e)):z.set(e,t),U({fetchers:new Map(j.fetchers)})}function q(e,t){let n=L.get(e);n&&(n.abort(t),L.delete(e))}function Re(e,t){for(let n of e){let e=t.get(n);f(e,`Expected fetcher: ${n}`);let r=on(e.data);t.set(n,r)}}function ze(e){let t=[],n=!1;for(let r of R){let i=e.get(r);f(i,`Expected fetcher: ${r}`),i.state===`loading`&&(R.delete(r),t.push(r),n=!0)}return Re(t,e),n}function Ge(e,t){let n=[];for(let[r,i]of le)if(i<e){let e=t.get(r);f(e,`Expected fetcher: ${r}`),e.state===`loading`&&(q(r),le.delete(r),n.push(r))}return Re(n,t),n.length>0}function Ke(e,t){let n=j.blockers.get(e)||Ue;return H.get(e)!==t&&H.set(e,t),n}function qe(e){j.blockers.delete(e),H.delete(e)}function Je(e,t){let n=j.blockers.get(e)||Ue;f(n.state===`unblocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`proceeding`||n.state===`blocked`&&t.state===`unblocked`||n.state===`proceeding`&&t.state===`unblocked`,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(j.blockers);r.set(e,t),U({blockers:r})}function Ye({currentLocation:e,nextLocation:t,historyAction:n}){if(H.size===0)return;H.size>1&&p(!1,`A router only supports one blocker at a time`);let r=Array.from(H.entries()),[i,a]=r[r.length-1],o=j.blockers.get(i);if(!(o&&o.state===`proceeding`)&&a({currentLocation:e,nextLocation:t,historyAction:n}))return i}function Xe(e){let t=J(404,{pathname:e}),n=s.activeRoutes,{matches:r,route:i}=Rt(n);return{notFoundMatches:r,route:i,error:t}}function Qe(e,t,n){if(_=e,x=t,y=n||null,!S&&j.navigation===Ve){S=!0;let e=ot(j.location,j.matches);e!=null&&U({restoreScrollPosition:e})}return()=>{_=null,x=null,y=null}}function $e(e,t){return y&&y(e,t.map(e=>ee(e,j.loaderData)))||e.key}function at(e,t){if(_&&x){let n=$e(e,t);_[n]=x()}}function ot(e,t){if(_){let n=$e(e,t),r=_[n];if(typeof r==`number`)return r}return null}function st(t,n,r){if(e.patchRoutesOnNavigation){let e=s.branches;if(!t)return{active:!0,matches:M(n,r,c,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:M(n,r,c,!0,e)}}return{active:!1,matches:null}}async function lt(t,n,r,i){if(!e.patchRoutesOnNavigation)return{type:`success`,matches:t};let l=t;for(;;){let t=o;try{await e.patchRoutesOnNavigation({signal:r,path:n,matches:l,fetcherKey:i,patch:(e,n)=>{r.aborted||ct(e,n,s,t,a,!1)}})}catch(e){return{type:`error`,error:e,partialMatches:l}}if(r.aborted)return{type:`aborted`};let u=s.branches,d=M(s.activeRoutes,n,c,!1,u),f=null;if(d&&(Object.keys(d[0].params).length===0||(f=M(s.activeRoutes,n,c,!0,u),!(f&&l.length<f.length&&ut(l,f.slice(0,l.length))))))return{type:`success`,matches:d};if(f||=M(s.activeRoutes,n,c,!0,u),!f||ut(l,f))return{type:`success`,matches:null};l=f}}function ut(e,t){return e.length===t.length&&e.every((e,n)=>e.route.id===t[n].route.id)}function dt(e){o={},s.setHmrRoutes(k(e,a,void 0,o))}function ft(e,t,n=!1){ct(e,t,s,o,a,n),s.hasHMRRoutes||U({})}return A={get basename(){return c},get future(){return u},get state(){return j},get routes(){return s.stableRoutes},get branches(){return s.branches},get manifest(){return o},get window(){return t},initialize:me,subscribe:ge,enableScrollRestoration:Qe,navigate:W,fetch:Te,revalidate:ve,createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Pe,resetFetcher:Fe,deleteFetcher:Le,dispose:he,getBlocker:Ke,deleteBlocker:qe,patchRoutes:ft,_internalFetchControllers:L,_internalSetRoutes:dt,_internalSetStateDoNotUseOrYouWillBreakYourApp(e){U(e)}},e.instrumentations&&(A=ke(A,e.instrumentations.map(e=>e.router).filter(Boolean))),A}function $e(e){return e!=null&&(`formData`in e&&e.formData!=null||`body`in e&&e.body!==void 0)}function et(e,t,n,r,i,a){let o,s;if(i){o=[];for(let e of t)if(o.push(e),e.route.id===i){s=e;break}}else o=t,s=t[t.length-1];let c=U(r||`.`,ge(o),B(e.pathname,n)||e.pathname,a===`path`);if(r??(c.search=e.search,c.hash=e.hash),(r==null||r===``||r===`.`)&&s){let e=Qt(c.search);if(s.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,`?index&`):`?index`;else if(!s.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll(`index`);e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();c.search=n?`?${n}`:``}}return n!==`/`&&(c.pathname=V({basename:n,pathname:c.pathname})),_(c)}function tt(e,t,n){if(!n||!$e(n))return{path:t};if(n.formMethod&&!Zt(n.formMethod))return{path:t,error:J(405,{method:n.formMethod})};let r=()=>({path:t,error:J(400,{type:`invalid-body`})}),i=(n.formMethod||`get`).toUpperCase(),a=Bt(t);if(n.body!==void 0){if(n.formEncType===`text/plain`){if(!X(i))return r();let e=typeof n.body==`string`?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,[t,n])=>`${e}${t}=${n}
|
|
2
|
+
`,``):String(n.body);return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}else if(n.formEncType===`application/json`){if(!X(i))return r();try{let e=typeof n.body==`string`?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch{return r()}}}f(typeof FormData==`function`,`FormData is not available in this environment`);let o,s;if(n.formData)o=jt(n.formData),s=n.formData;else if(n.body instanceof FormData)o=jt(n.body),s=n.body;else if(n.body instanceof URLSearchParams)o=n.body,s=Mt(o);else if(n.body==null)o=new URLSearchParams,s=new FormData;else try{o=new URLSearchParams(n.body),s=Mt(o)}catch{return r()}let c={formMethod:i,formAction:a,formEncType:n&&n.formEncType||`application/x-www-form-urlencoded`,formData:s,json:void 0,text:void 0};if(X(c.formMethod))return{path:t,submission:c};let l=v(t);return e&&l.search&&Qt(l.search)&&o.append(`index`,``),l.search=`?${o}`,{path:_(l),submission:c}}function nt(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=b?Y(b[1])?b[1].error:b[1].data:void 0,C=i.createURL(a.location),w=i.createURL(c),T;if(u&&a.errors){let e=Object.keys(a.errors)[0];T=o.findIndex(t=>t.route.id===e)}else if(b&&Y(b[1])){let e=b[0];T=o.findIndex(t=>t.route.id===e)-1}let E=b?b[1].statusCode:void 0,D=E&&E>=400,O={currentUrl:C,currentParams:a.matches[0]?.params||{},nextUrl:w,nextParams:o[0].params,...s,actionResult:S,actionStatus:E},k=we(o),A=o.map((i,o)=>{let{route:s}=i,f=null;if(T!=null&&o>T)f=!1;else if(s.lazy)f=!0;else if(!rt(s))f=!1;else if(u){let{shouldLoad:e}=it(s,a.loaderData,a.errors);f=e}else at(a.loaderData,a.matches[o],i)&&(f=!0);if(f!==null)return bt(n,r,e,c,k,i,l,t,f);let p=!1;typeof x==`boolean`?p=x:D?p=!1:d||C.pathname+C.search===w.pathname+w.search?p=!0:C.search===w.search?ot(a.matches[o],i)&&(p=!0):p=!0;let m={...O,defaultShouldRevalidate:p};return bt(n,r,e,c,k,i,l,t,st(i,m),m,x)}),j=[];return m.forEach((e,s)=>{if(u||!o.some(t=>t.route.id===e.routeId)||p.has(s))return;let c=a.fetchers.get(s),m=c&&c.state!==`idle`&&c.data===void 0,b=M(g,e.path,_??`/`,!1,y);if(!b){if(v&&m)return;j.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(h.has(s))return;let S=$t(b,e.path),C=new AbortController,w=kt(i,e.path,C.signal),T=null;if(f.has(s))f.delete(s),T=xt(n,r,w,e.path,b,S,l,t);else if(m)d&&(T=xt(n,r,w,e.path,b,S,l,t));else{let i;i=typeof x==`boolean`?x:D?!1:d;let a={...O,defaultShouldRevalidate:i};st(S,a)&&(T=xt(n,r,w,e.path,b,S,l,t,a))}T&&j.push({key:s,routeId:e.routeId,path:e.path,matches:T,match:S,request:w,controller:C})}),{dsMatches:A,revalidatingFetchers:j}}function rt(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function it(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!rt(e))return{shouldLoad:!1,renderFallback:!1};let r=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!r&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader==`function`&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!r};let a=!r&&!i;return{shouldLoad:a,renderFallback:a}}function at(e,t,n){let r=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return r||i}function ot(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith(`*`)&&e.params[`*`]!==t.params[`*`]}function st(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n==`boolean`)return n}return t.defaultShouldRevalidate}function ct(e,t,n,r,i,a){let o;if(e){let t=r[e];f(t,`No route found to patch children into: routeId = ${e}`),t.children||=[],o=t.children}else o=n.activeRoutes;let s=[],c=[];if(t.forEach(e=>{let t=o.find(t=>lt(e,t));t?c.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=k(s,i,[e||`_`,`patch`,String(o?.length||`0`)],r);o.push(...t)}if(a&&c.length>0)for(let e=0;e<c.length;e++){let{existingRoute:t,newRoute:n}=c[e],r=t,[a]=k([n],i,[],{},!0);Object.assign(r,{element:a.element?a.element:r.element,errorElement:a.errorElement?a.errorElement:r.errorElement,hydrateFallbackElement:a.hydrateFallbackElement?a.hydrateFallbackElement:r.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function lt(e,t){return`id`in e&&`id`in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((e,n)=>t.children?.some(t=>lt(e,t)))??!1:!1}var ut=new WeakMap,dt=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let i=n[t.id];if(f(i,`No route found in manifest`),!i.lazy||typeof i.lazy!=`object`)return;let a=i.lazy[e];if(!a)return;let o=ut.get(i);o||(o={},ut.set(i,o));let s=o[e];if(s)return s;let c=(async()=>{let t=T(e),n=i[e]!==void 0&&e!==`hasErrorBoundary`;if(t)p(!t,`Route property `+e+` is not a supported lazy route property. This property will be ignored.`),o[e]=Promise.resolve();else if(n)p(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await a();t!=null&&(Object.assign(i,{[e]:t}),Object.assign(i,r(i)))}typeof i.lazy==`object`&&(i.lazy[e]=void 0,Object.values(i.lazy).every(e=>e===void 0)&&(i.lazy=void 0))})();return o[e]=c,c},ft=new WeakMap;function pt(e,t,n,r,i){let a=n[e.id];if(f(a,`No route found in manifest`),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy==`function`){let t=ft.get(a);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{f(typeof e.lazy==`function`,`No lazy route function found`);let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(r===void 0)continue;let i=D(e),o=a[e]!==void 0&&e!==`hasErrorBoundary`;i?p(!i,`Route property `+e+` is not a supported property to be returned from a lazy route function. This property will be ignored.`):o?p(!o,`Route "${a.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}Object.assign(a,n),Object.assign(a,{...r(a),lazy:void 0})})();return ft.set(a,n),n.catch(()=>{}),{lazyRoutePromise:n,lazyHandlerPromise:n}}let o=Object.keys(e.lazy),s=[],c;for(let a of o){if(i&&i.includes(a))continue;let o=dt({key:a,route:e,manifest:n,mapRouteProperties:r});o&&(s.push(o),a===t&&(c=o))}let l=s.length>0?Promise.all(s).then(()=>{}):void 0;return l?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:c}}async function mt(e){let t=e.matches.filter(e=>e.shouldLoad),n={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{n[t[r].route.id]=e}),n}async function ht(e){return e.matches.some(e=>e.route.middleware)?gt(e,()=>mt(e)):mt(e)}function gt(e,t){return _t(e,t,e=>{if(Xt(e))throw e;return e},Ut,n);function n(t,n,r){if(r)return Promise.resolve(Object.assign(r.value,{[n]:{type:`error`,result:t}}));{let{matches:r}=e,i=Lt(r,r[Math.min(Math.max(r.findIndex(e=>e.route.id===n),0),Math.max(r.findIndex(e=>e.shouldCallHandler()),0))].route.id).route.id;return Promise.resolve({[i]:{type:`error`,result:t}})}}}async function _t(e,t,n,r,i){let{matches:a,...o}=e;return await vt(o,a.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,n,r,i)}async function vt(e,t,n,r,i,a,o=0){let{request:s}=e;if(s.signal.aborted)throw s.signal.reason??Error(`Request aborted: ${s.method} ${s.url}`);let c=t[o];if(!c)return await n();let[l,u]=c,d,f=async()=>{if(d)throw Error("You may only call `next()` once per middleware");try{return d={value:await vt(e,t,n,r,i,a,o+1)},d.value}catch(e){return d={value:await a(e,l,d)},d.value}};try{let t=await u(e,f),n=t==null?void 0:r(t);return i(n)?n:d?n??d.value:(d={value:await f()},d.value)}catch(e){return await a(e,l,d)}}function yt(e,t,n,r,i){let a=dt({key:`middleware`,route:r.route,manifest:t,mapRouteProperties:e}),o=pt(r.route,X(n.method)?`action`:`loader`,t,e,i);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function bt(e,t,n,r,i,a,o,s,c,l=null,u){let d=!1,f=yt(e,t,n,a,o);return{...a,_lazyPromises:f,shouldLoad:c,shouldRevalidateArgs:l,shouldCallHandler(e){return d=!0,l?typeof u==`boolean`?st(a,{...l,defaultShouldRevalidate:u}):typeof e==`boolean`?st(a,{...l,defaultShouldRevalidate:e}):st(a,l):c},resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,u=d||c||e&&!X(n.method)&&(t||o),p=l&&l.length>0&&!o&&!t;return u&&(X(n.method)||!p)?Ct({request:n,path:r,pattern:i,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:`data`,result:void 0})}}}function xt(e,t,n,r,i,a,o,s,c=null){return i.map(l=>l.route.id===a.route.id?bt(e,t,n,r,we(i),l,o,s,!0,c):{...l,shouldLoad:!1,shouldRevalidateArgs:c,shouldCallHandler:()=>!1,_lazyPromises:yt(e,t,n,l,o),resolve:()=>Promise.resolve({type:`data`,result:void 0})})}async function St(e,t,n,r,i,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let s={request:t,url:At(t,n),pattern:we(r),params:r[0].params,context:a,matches:r},c=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=s;return gt(t,()=>e({...t,fetcherKey:i,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))},l=await e({...s,fetcherKey:i,runClientMiddleware:c});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch{}return l}async function Ct({request:e,path:t,pattern:n,match:r,lazyHandlerPromise:i,lazyRoutePromise:a,handlerOverride:o,scopedContext:s}){let c,l,u=X(e.method),d=u?`action`:`loader`,f=i=>{let a,c=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener(`abort`,l);let u=a=>typeof i==`function`?i({request:e,url:At(e,t),pattern:n,params:r.params,context:s},...a===void 0?[]:[a]):Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${r.route.id}]`)),f=(async()=>{try{return{type:`data`,result:await(o?o(e=>u(e)):u())}}catch(e){return{type:`error`,result:e}}})();return Promise.race([f,c])};try{let t=u?r.route.action:r.route.loader;if(i||a)if(t){let e,[n]=await Promise.all([f(t).catch(t=>{e=t}),i,a]);if(e!==void 0)throw e;c=n}else{await i;let t=u?r.route.action:r.route.loader;if(t)[c]=await Promise.all([f(t),a]);else if(d===`action`){let t=new URL(e.url),n=t.pathname+t.search;throw J(405,{method:e.method,pathname:n,routeId:r.route.id})}else return{type:`data`,result:void 0}}else if(t)c=await f(t);else{let t=new URL(e.url);throw J(404,{pathname:t.pathname+t.search})}}catch(e){return{type:`error`,result:e}}finally{l&&e.signal.removeEventListener(`abort`,l)}return c}async function wt(e){let t=e.headers.get(`Content-Type`);return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function Tt(e){let{result:t,type:n}=e;if(Jt(t)){let e;try{e=await wt(t)}catch(e){return{type:`error`,error:e}}return n===`error`?{type:`error`,error:new Se(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:`data`,data:e,statusCode:t.status,headers:t.headers}}return n===`error`?qt(t)?t.data instanceof Error?{type:`error`,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:Ht(t),statusCode:Ce(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:t,statusCode:Ce(t)?t.status:void 0}:qt(t)?{type:`data`,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`data`,data:t}}function Et(e,t,n,r,i){let a=e.headers.get(`Location`);if(f(a,`Redirects returned/thrown from loaders/actions must have a Location header`),!de(a)){let o=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=et(new URL(t.url),o,i,a),e.headers.set(`Location`,a)}return e}var Dt=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function Ot(e,t,n,r){if(de(e)){let r=e,i=r.startsWith(`//`)?new URL(t.protocol+r):new URL(r);if(Dt.includes(i.protocol))throw Error(`Invalid redirect location`);let a=B(i.pathname,n)!=null;if(i.origin===t.origin&&a)return _e(i.pathname)+i.search+i.hash}try{let t=r.createURL(e);if(Dt.includes(t.protocol))throw Error(`Invalid redirect location`)}catch{}return e}function kt(e,t,n,r){let i=e.createURL(Bt(t)).toString(),a={signal:n};if(r&&X(r.formMethod)){let{formMethod:e,formEncType:t}=r;a.method=e.toUpperCase(),t===`application/json`?(a.headers=new Headers({"Content-Type":t}),a.body=JSON.stringify(r.json)):t===`text/plain`?a.body=r.text:t===`application/x-www-form-urlencoded`&&r.formData?a.body=jt(r.formData):a.body=r.formData}return new Request(i,a)}function At(e,t){let n=new URL(e.url),r=typeof t==`string`?v(t):t;if(n.pathname=r.pathname||`/`,r.search){let e=new URLSearchParams(r.search),t=e.getAll(`index`);e.delete(`index`);for(let n of t.filter(Boolean))e.append(`index`,n);n.search=e.size?`?${e.toString()}`:``}else n.search=``;return n.hash=r.hash||``,n}function jt(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r==`string`?r:r.name);return t}function Mt(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Nt(e,t,n,r=!1,i=!1){let a={},o=null,s,c=!1,l={},u=n&&Y(n[1])?n[1].error:void 0;return e.forEach(n=>{if(!(n.route.id in t))return;let d=n.route.id,p=t[d];if(f(!Kt(p),`Cannot handle redirect results in processLoaderData`),Y(p)){let t=p.error;if(u!==void 0&&(t=u,u=void 0),o||={},i)o[d]=t;else{let n=Lt(e,d);o[n.route.id]??(o[n.route.id]=t)}r||(a[d]=Ke),c||(c=!0,s=Ce(p.error)?p.error.status:500),p.headers&&(l[d]=p.headers)}else a[d]=p.data,p.statusCode&&p.statusCode!==200&&!c&&(s=p.statusCode),p.headers&&(l[d]=p.headers)}),u!==void 0&&n&&(o={[n[0]]:u},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:s||200,loaderHeaders:l}}function Pt(e,t,n,r,i,a,o){let{loaderData:s,errors:c}=Nt(t,n,r);return i.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:n,match:r,controller:i}=t;if(i&&i.signal.aborted)return;let s=a[n];if(f(s,`Did not find corresponding fetcher result`),Y(s)){let t=Lt(e.matches,r?.route.id);c&&c[t.route.id]||(c={...c,[t.route.id]:s.error}),o.delete(n)}else if(Kt(s))f(!1,`Unhandled fetcher revalidation redirect`);else{let e=on(s.data);o.set(n,e)}}),{loaderData:s,errors:c}}function Ft(e,t,n,r){let i=Object.entries(t).filter(([,e])=>e!==Ke).reduce((e,[t,n])=>(e[t]=n,e),{});for(let a of n){let n=a.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&a.route.loader&&(i[n]=e[n]),r&&r.hasOwnProperty(n))break}return i}function It(e){return e?Y(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Lt(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>e.route.hasErrorBoundary===!0)||e[0]}function Rt(e){let t=e.length===1?e[0]:e.find(e=>e.index||!e.path||e.path===`/`)||{id:`__shim-error-route__`};return{matches:[{params:{},pathname:``,pathnameBase:``,route:t}],route:t}}function J(e,{pathname:t,routeId:n,method:r,type:i,message:a}={}){let o=`Unknown Server Error`,s=`Unknown @remix-run/router error`;return e===400?(o=`Bad Request`,r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i===`invalid-body`&&(s=`Unable to encode submission body`)):e===403?(o=`Forbidden`,s=`Route "${n}" does not match URL "${t}"`):e===404?(o=`Not Found`,s=`No route matches URL "${t}"`):e===405&&(o=`Method Not Allowed`,r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new Se(e||500,o,Error(s),!0)}function zt(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(Kt(r))return{key:n,result:r}}}function Bt(e){return _({...typeof e==`string`?v(e):e,hash:``})}function Vt(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===``?t.hash!==``:e.hash===t.hash?!0:t.hash!==``}function Ht(e){return new Se(e.init?.status??500,e.init?.statusText??`Internal Server Error`,e.data)}function Ut(e){return typeof e==`object`&&!!e&&Object.entries(e).every(([e,t])=>typeof e==`string`&&Wt(t))}function Wt(e){return typeof e==`object`&&!!e&&`type`in e&&`result`in e&&(e.type===`data`||e.type===`error`)}function Gt(e){return Jt(e.result)&&ze.has(e.result.status)}function Y(e){return e.type===`error`}function Kt(e){return(e&&e.type)===`redirect`}function qt(e){return typeof e==`object`&&!!e&&`type`in e&&`data`in e&&`init`in e&&e.type===`DataWithResponseInit`}function Jt(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.headers==`object`&&e.body!==void 0}function Yt(e){return ze.has(e)}function Xt(e){return Jt(e)&&Yt(e.status)&&e.headers.has(`Location`)}function Zt(e){return Re.has(e.toUpperCase())}function X(e){return Le.has(e.toUpperCase())}function Qt(e){return new URLSearchParams(e).getAll(`index`).some(e=>e===``)}function $t(e,t){let n=typeof t==`string`?v(t).search:t.search;if(e[e.length-1].route.index&&Qt(n||``))return e[e.length-1];let r=he(e);return r[r.length-1]}function en(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function tn(e,t,n,r){return r?{state:`loading`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}:{state:`loading`,location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function nn(e,t,n,r){return{state:`submitting`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}}function rn(e,t){return e?{state:`loading`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:`loading`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function an(e,t){return{state:`submitting`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function on(e){return{state:`idle`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function sn(e,t){try{let n=e.sessionStorage.getItem(Ge);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch{}}function cn(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(Ge,JSON.stringify(n))}catch(e){p(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}function ln(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var un=r.createContext(null);un.displayName=`DataRouter`;var dn=r.createContext(null);dn.displayName=`DataRouterState`;var fn=r.createContext(!1);function pn(){return r.useContext(fn)}var mn=r.createContext({isTransitioning:!1});mn.displayName=`ViewTransition`;var hn=r.createContext(new Map);hn.displayName=`Fetchers`;var gn=r.createContext(null);gn.displayName=`Await`;var Z=r.createContext(null);Z.displayName=`Navigation`;var _n=r.createContext(null);_n.displayName=`Location`;var Q=r.createContext({outlet:null,matches:[],isDataRoute:!1});Q.displayName=`Route`;var vn=r.createContext(null);vn.displayName=`RouteError`;var yn=`REACT_ROUTER_ERROR`,bn=`REDIRECT`,xn=`ROUTE_ERROR_RESPONSE`;function Sn(e){if(e.startsWith(`${yn}:${bn}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function Cn(e){if(e.startsWith(`${yn}:${xn}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Se(t.status,t.statusText,t.data)}catch{}}function wn(e,{relative:t}={}){f(Tn(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:i}=r.useContext(Z),{hash:a,pathname:o,search:s}=Nn(e,{relative:t}),c=o;return n!==`/`&&(c=o===`/`?n:W([n,o])),i.createHref({pathname:c,search:s,hash:a})}function Tn(){return r.useContext(_n)!=null}function $(){return f(Tn(),`useLocation() may be used only in the context of a <Router> component.`),r.useContext(_n).location}var En=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function Dn(e){r.useContext(Z).static||r.useLayoutEffect(e)}function On(){let{isDataRoute:e}=r.useContext(Q);return e?Zn():kn()}function kn(){f(Tn(),`useNavigate() may be used only in the context of a <Router> component.`);let e=r.useContext(un),{basename:t,navigator:n}=r.useContext(Z),{matches:i}=r.useContext(Q),{pathname:a}=$(),o=JSON.stringify(ge(i)),s=r.useRef(!1);return Dn(()=>{s.current=!0}),r.useCallback((r,i={})=>{if(p(s.current,En),!s.current)return;if(typeof r==`number`){n.go(r);return}let c=U(r,JSON.parse(o),a,i.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:W([t,c.pathname])),(i.replace?n.replace:n.push)(c,i.state,i)},[t,n,o,a,e])}var An=r.createContext(null);function jn(e){let t=r.useContext(Q).outlet;return r.useMemo(()=>t&&r.createElement(An.Provider,{value:e},t),[t,e])}function Mn(){let{matches:e}=r.useContext(Q);return e[e.length-1]?.params??{}}function Nn(e,{relative:t}={}){let{matches:n}=r.useContext(Q),{pathname:i}=$(),a=JSON.stringify(ge(n));return r.useMemo(()=>U(e,JSON.parse(a),i,t===`path`),[e,a,i,t])}function Pn(e,t,n){f(Tn(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:i}=r.useContext(Z),{matches:a}=r.useContext(Q),o=a[a.length-1],s=o?o.params:{},c=o?o.pathname:`/`,l=o?o.pathnameBase:`/`,u=o&&o.route;{let e=u&&u.path||``;$n(c,!u||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
3
|
+
|
|
4
|
+
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let d=$(),m;if(t){let e=typeof t==`string`?v(t):t;f(l===`/`||e.pathname?.startsWith(l),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${l}" but pathname "${e.pathname}" was given in the \`location\` prop.`),m=e}else m=d;let h=m.pathname||`/`,g=h;if(l!==`/`){let e=l.replace(/^\//,``).split(`/`);g=`/`+h.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let _=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):j(e,{pathname:g});p(u||_!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),p(_==null||_[_.length-1].route.element!==void 0||_[_.length-1].route.Component!==void 0||_[_.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let y=Vn(_&&_.map(e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:W([l,i.encodeLocation?i.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?l:W([l,i.encodeLocation?i.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),a,n);return t&&y?r.createElement(_n.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...m},navigationType:`POP`}},y):y}function Fn(){let e=Xn(),t=Ce(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i=`rgba(200,200,200, 0.5)`,a={padding:`0.5rem`,backgroundColor:i},o={padding:`2px 4px`,backgroundColor:i},s=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),s=r.createElement(r.Fragment,null,r.createElement(`p`,null,`💿 Hey developer 👋`),r.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,r.createElement(`code`,{style:o},`ErrorBoundary`),` or`,` `,r.createElement(`code`,{style:o},`errorElement`),` prop on your route.`)),r.createElement(r.Fragment,null,r.createElement(`h2`,null,`Unexpected Application Error!`),r.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?r.createElement(`pre`,{style:a},n):null,s)}var In=r.createElement(Fn,null),Ln=class extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=Cn(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:r.createElement(Q.Provider,{value:this.props.routeContext},r.createElement(vn.Provider,{value:e,children:this.props.component}));return this.context?r.createElement(zn,{error:e},t):t}};Ln.contextType=fn;var Rn=new WeakMap;function zn({children:e,error:t}){let{basename:n}=r.useContext(Z);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=Sn(t.digest);if(e){let i=Rn.get(t);if(i)throw i;let a=Ee(e.location,n);if(Te&&!Rn.get(t))if(a.isExternal||e.reloadDocument)window.location.href=a.absoluteURL||a.to;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw Rn.set(t,n),n}return r.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${a.absoluteURL||a.to}`})}}return e}function Bn({routeContext:e,match:t,children:n}){let i=r.useContext(un);return i&&i.static&&i.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=t.route.id),r.createElement(Q.Provider,{value:e},n)}function Vn(e,t=[],n){let i=n?.state;if(e==null){if(!i)return null;if(i.errors)e=i.matches;else if(t.length===0&&!i.initialized&&i.matches.length>0)e=i.matches;else return null}let a=e,o=i?.errors;if(o!=null){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);f(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(`,`)}`),a=a.slice(0,Math.min(a.length,e+1))}let s=!1,c=-1;if(n&&i){s=i.renderFallback;for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(c=e),t.route.id){let{loaderData:e,errors:r}=i,o=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!r||r[t.route.id]===void 0);if(t.route.lazy||o){n.isStatic&&(s=!0),a=c>=0?a.slice(0,c+1):[a[0]];break}}}}let l=n?.onError,u=i&&l?(e,t)=>{l(e,{location:i.location,params:i.matches?.[0]?.params??{},pattern:we(i.matches),errorInfo:t})}:void 0;return a.reduceRight((e,n,l)=>{let d,f=!1,p=null,m=null;i&&(d=o&&n.route.id?o[n.route.id]:void 0,p=n.route.errorElement||In,s&&(c<0&&l===0?($n(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,m=null):c===l&&(f=!0,m=n.route.hydrateFallbackElement||null)));let h=t.concat(a.slice(0,l+1)),g=()=>{let t;return t=d?p:f?m:n.route.Component?r.createElement(n.route.Component,null):n.route.element?n.route.element:e,r.createElement(Bn,{match:n,routeContext:{outlet:e,matches:h,isDataRoute:i!=null},children:t})};return i&&(n.route.ErrorBoundary||n.route.errorElement||l===0)?r.createElement(Ln,{location:i.location,revalidation:i.revalidation,component:p,error:d,children:g(),routeContext:{outlet:null,matches:h,isDataRoute:!0},onError:u}):g()},null)}function Hn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Un(e){let t=r.useContext(un);return f(t,Hn(e)),t}function Wn(e){let t=r.useContext(dn);return f(t,Hn(e)),t}function Gn(e){let t=r.useContext(Q);return f(t,Hn(e)),t}function Kn(e){let t=Gn(e),n=t.matches[t.matches.length-1];return f(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function qn(){return Kn(`useRouteId`)}function Jn(){let e=Wn(`useNavigation`);return r.useMemo(()=>{let{matches:t,historyAction:n,...r}=e.navigation;return r},[e.navigation])}function Yn(){let{matches:e,loaderData:t}=Wn(`useMatches`);return r.useMemo(()=>e.map(e=>ee(e,t)),[e,t])}function Xn(){let e=r.useContext(vn),t=Wn(`useRouteError`),n=Kn(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Zn(){let{router:e}=Un(`useNavigate`),t=Kn(`useNavigate`),n=r.useRef(!1);return Dn(()=>{n.current=!0}),r.useCallback(async(r,i={})=>{p(n.current,En),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Qn={};function $n(e,t,n){!t&&!Qn[e]&&(Qn[e]=!0,p(!1,n))}var er={};function tr(e,t){!e&&!er[t]&&(er[t]=!0,console.warn(t))}var nr=r.useOptimistic,rr=()=>void 0;function ir(e){return nr?nr(e):[e,rr]}function ar(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&p(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:r.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&p(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:r.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&p(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:r.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var or=[`HydrateFallback`,`hydrateFallbackElement`],sr=class{constructor(){this.status=`pending`,this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function cr({router:e,flushSync:t,onError:n,useTransitions:i}){i=pn()||i;let[a,o]=r.useState(e.state),[s,c]=ir(a),[l,u]=r.useState(),[d,f]=r.useState({isTransitioning:!1}),[p,m]=r.useState(),[h,g]=r.useState(),[_,v]=r.useState(),y=r.useRef(new Map),b=r.useCallback((a,{deletedFetchers:s,newErrors:l,flushSync:d,viewTransitionOpts:_})=>{l&&n&&Object.values(l).forEach(e=>n(e,{location:a.location,params:a.matches[0]?.params??{},pattern:we(a.matches)})),a.fetchers.forEach((e,t)=>{e.data!==void 0&&y.current.set(t,e.data)}),s.forEach(e=>y.current.delete(e)),tr(d===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(tr(_==null||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!_||!b){t&&d?t(()=>o(a)):i===!1?o(a):r.startTransition(()=>{i===!0&&c(e=>lr(e,a)),o(a)});return}if(t&&d){t(()=>{h&&(p?.resolve(),h.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:_.currentLocation,nextLocation:_.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>o(a))});n.finished.finally(()=>{t(()=>{m(void 0),g(void 0),u(void 0),f({isTransitioning:!1})})}),t(()=>g(n));return}h?(p?.resolve(),h.skipTransition(),v({state:a,currentLocation:_.currentLocation,nextLocation:_.nextLocation})):(u(a),f({isTransitioning:!0,flushSync:!1,currentLocation:_.currentLocation,nextLocation:_.nextLocation}))},[e.window,t,h,p,i,c,n]);r.useLayoutEffect(()=>e.subscribe(b),[e,b]),r.useEffect(()=>{d.isTransitioning&&!d.flushSync&&m(new sr)},[d]),r.useEffect(()=>{if(p&&l&&e.window){let t=l,n=p.promise,a=e.window.document.startViewTransition(async()=>{i===!1?o(t):r.startTransition(()=>{i===!0&&c(e=>lr(e,t)),o(t)}),await n});a.finished.finally(()=>{m(void 0),g(void 0),u(void 0),f({isTransitioning:!1})}),g(a)}},[l,p,e.window,i,c]),r.useEffect(()=>{p&&l&&s.location.key===l.location.key&&p.resolve()},[p,h,s.location,l]),r.useEffect(()=>{!d.isTransitioning&&_&&(u(_.state),f({isTransitioning:!0,flushSync:!1,currentLocation:_.currentLocation,nextLocation:_.nextLocation}),v(void 0))},[d.isTransitioning,_]);let x=r.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),S=e.basename||`/`,C=r.useMemo(()=>({router:e,navigator:x,static:!1,basename:S,onError:n}),[e,x,S,n]);return r.createElement(r.Fragment,null,r.createElement(un.Provider,{value:C},r.createElement(dn.Provider,{value:s},r.createElement(hn.Provider,{value:y.current},r.createElement(mn.Provider,{value:d},r.createElement(mr,{basename:S,location:s.location,navigationType:s.historyAction,navigator:x,useTransitions:i},r.createElement(ur,{routes:e.routes,manifest:e.manifest,future:e.future,state:s,isStatic:!1,onError:n})))))),null)}function lr(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var ur=r.memo(dr);function dr({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Pn(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function fr({to:e,replace:t,state:n,relative:i}){f(Tn(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:a}=r.useContext(Z);p(!a,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:o}=r.useContext(Q),{pathname:s}=$(),c=On(),l=U(e,ge(o),s,i===`path`),u=JSON.stringify(l);return r.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:i})},[c,u,i,t,n]),null}function pr(e){return jn(e.context)}function mr({basename:e=`/`,children:t=null,location:n,navigationType:i=`POP`,navigator:a,static:o=!1,useTransitions:s}){f(!Tn(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let c=e.replace(/^\/*/,`/`),l=r.useMemo(()=>({basename:c,navigator:a,static:o,useTransitions:s,future:{}}),[c,a,o,s]);typeof n==`string`&&(n=v(n));let{pathname:u=`/`,search:d=``,hash:m=``,state:h=null,key:g=`default`,mask:_}=n,y=r.useMemo(()=>{let e=B(u,c);return e==null?null:{location:{pathname:e,search:d,hash:m,state:h,key:g,mask:_},navigationType:i}},[c,u,d,m,h,g,i,_]);return p(y!=null,`<Router basename="${c}"> is not able to match the URL "${u}${d}${m}" because it does not start with the basename, so the <Router> won't render anything.`),y==null?null:r.createElement(Z.Provider,{value:l},r.createElement(_n.Provider,{children:t,value:y}))}r.Component;var hr=`get`,gr=`application/x-www-form-urlencoded`;function _r(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function vr(e){return _r(e)&&e.tagName.toLowerCase()===`button`}function yr(e){return _r(e)&&e.tagName.toLowerCase()===`form`}function br(e){return _r(e)&&e.tagName.toLowerCase()===`input`}function xr(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Sr(e,t){return e.button===0&&(!t||t===`_self`)&&!xr(e)}function Cr(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function wr(e,t){let n=Cr(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var Tr=null;function Er(){if(Tr===null)try{new FormData(document.createElement(`form`),0),Tr=!1}catch{Tr=!0}return Tr}var Dr=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Or(e){return e!=null&&!Dr.has(e)?(p(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${gr}"`),null):e}function kr(e,t){let n,r,i,a,o;if(yr(e)){let o=e.getAttribute(`action`);r=o?B(o,t):null,n=e.getAttribute(`method`)||hr,i=Or(e.getAttribute(`enctype`))||gr,a=new FormData(e)}else if(vr(e)||br(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?B(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||hr,i=Or(e.getAttribute(`formenctype`))||Or(o.getAttribute(`enctype`))||gr,a=new FormData(o,e),!Er()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(_r(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=hr,r=null,i=gr,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Ar={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},jr=/[&><\u2028\u2029]/g;function Mr(e){return e.replace(jr,e=>Ar[e])}function Nr(e,t){if(e===!1||e==null)throw Error(t)}function Pr(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n?i.pathname.endsWith(`/`)?i.pathname=`${i.pathname}_.${r}`:i.pathname=`${i.pathname}.${r}`:i.pathname===`/`?i.pathname=`_root.${r}`:t&&B(i.pathname,t)===`/`?i.pathname=`${ve(t)}/_root.${r}`:i.pathname=`${ve(i.pathname)}.${r}`,i}async function Fr(e,t){if(e.id in t)return t[e.id];try{let r=await n(()=>import(e.module),[]);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Ir(e){return e!=null&&typeof e.page==`string`}function Lr(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function Rr(e,t,n){return Ur((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Fr(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Lr).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function zr(e,t,n,r,i,a){let o=(e,t)=>n[t]?e.route.id!==n[t].route.id:!0,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Br(e,t,{includeHydrateFallback:n}={}){return Vr(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Vr(e){return[...new Set(e)]}function Hr(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Ur(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Ir(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Hr(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function Wr(){let e=r.useContext(un);return Nr(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Gr(){let e=r.useContext(dn);return Nr(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var Kr=r.createContext(void 0);Kr.displayName=`FrameworkContext`;function qr(){let e=r.useContext(Kr);return Nr(e,`You must render this element inside a <HydratedRouter> element`),e}function Jr(e,t){let n=r.useContext(Kr),[i,a]=r.useState(!1),[o,s]=r.useState(!1),{onFocus:c,onBlur:l,onMouseEnter:u,onMouseLeave:d,onTouchStart:f}=t,p=r.useRef(null);r.useEffect(()=>{if(e===`render`&&s(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{s(e.isIntersecting)})},{threshold:.5});return p.current&&e.observe(p.current),()=>{e.disconnect()}}},[e]),r.useEffect(()=>{if(i){let e=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(e)}}},[i]);let m=()=>{a(!0)},h=()=>{a(!1),s(!1)};return n?e===`intent`?[o,p,{onFocus:Yr(c,m),onBlur:Yr(l,h),onMouseEnter:Yr(u,m),onMouseLeave:Yr(d,h),onTouchStart:Yr(f,m)}]:[o,p,{}]:[!1,p,{}]}function Yr(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Xr({page:e,...t}){let n=pn(),{router:i}=Wr(),a=r.useMemo(()=>j(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?n?r.createElement(Qr,{page:e,matches:a,...t}):r.createElement($r,{page:e,matches:a,...t}):null}function Zr(e){let{manifest:t,routeModules:n}=qr(),[i,a]=r.useState([]);return r.useEffect(()=>{let r=!1;return Rr(e,t,n).then(e=>{r||a(e)}),()=>{r=!0}},[e,t,n]),i}function Qr({page:e,matches:t,...n}){let i=$(),{future:a}=qr(),{basename:o}=Wr(),s=r.useMemo(()=>{if(e===i.pathname+i.search+i.hash)return[];let n=Pr(e,o,a.v8_trailingSlashAwareDataRequests,`rsc`),r=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?r=!0:s.push(e.route.id);return r&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[o,a.v8_trailingSlashAwareDataRequests,e,i,t]);return r.createElement(r.Fragment,null,s.map(e=>r.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function $r({page:e,matches:t,...n}){let i=$(),{future:a,manifest:o,routeModules:s}=qr(),{basename:c}=Wr(),{loaderData:l,matches:u}=Gr(),d=r.useMemo(()=>zr(e,t,u,o,i,`data`),[e,t,u,o,i]),f=r.useMemo(()=>zr(e,t,u,o,i,`assets`),[e,t,u,o,i]),p=r.useMemo(()=>{if(e===i.pathname+i.search+i.hash)return[];let n=new Set,r=!1;if(t.forEach(e=>{let t=o.routes[e.route.id];!t||!t.hasLoader||(!d.some(t=>t.route.id===e.route.id)&&e.route.id in l&&s[e.route.id]?.shouldRevalidate||t.hasClientLoader?r=!0:n.add(e.route.id))}),n.size===0)return[];let u=Pr(e,c,a.v8_trailingSlashAwareDataRequests,`data`);return r&&n.size>0&&u.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[u.pathname+u.search]},[c,a.v8_trailingSlashAwareDataRequests,l,i,o,d,t,e,s]),m=r.useMemo(()=>Br(f,o),[f,o]),h=Zr(f);return r.createElement(r.Fragment,null,p.map(e=>r.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),m.map(e=>r.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),h.map(({key:e,link:t})=>r.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function ei(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}r.Component;var ti=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{ti&&(window.__reactRouterVersion=`7.16.0`)}catch{}function ni(e,t){return Qe({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:d({window:t?.window}),hydrationData:t?.hydrationData||ri(),routes:e,mapRouteProperties:ar,hydrationRouteProperties:or,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function ri(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:ii(e.errors)}),e}function ii(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&r.__type===`RouteErrorResponse`)n[e]=new Se(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type===`Error`){if(r.__subType){let t=window[r.__subType];if(typeof t==`function`)try{let i=new t(r.message);i.stack=``,n[e]=i}catch{}}if(n[e]==null){let t=Error(r.message);t.stack=``,n[e]=t}}else n[e]=r;return n}function ai({basename:e,children:t,history:n,useTransitions:i}){let[a,o]=r.useState({action:n.action,location:n.location}),s=r.useCallback(e=>{i===!1?o(e):r.startTransition(()=>o(e))},[i]);return r.useLayoutEffect(()=>n.listen(s),[n,s]),r.createElement(mr,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:n,useTransitions:i})}ai.displayName=`unstable_HistoryRouter`;var oi=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,si=r.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:i,reloadDocument:a,replace:o,mask:s,state:c,target:l,to:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p,...m},h){let{basename:g,navigator:_,useTransitions:v}=r.useContext(Z),y=typeof u==`string`&&oi.test(u),b=Ee(u,g);u=b.to;let x=wn(u,{relative:i}),S=$(),C=null;if(s){let e=U(s,[],S.mask?S.mask.pathname:`/`,!0);g!==`/`&&(e.pathname=e.pathname===`/`?g:W([g,e.pathname])),C=_.createHref(e)}let[w,T,E]=Jr(n,m),D=mi(u,{replace:o,mask:s,state:c,target:l,preventScrollReset:d,relative:i,viewTransition:f,defaultShouldRevalidate:p,useTransitions:v});function O(t){e&&e(t),t.defaultPrevented||D(t)}let k=!(b.isExternal||a),A=r.createElement(`a`,{...m,...E,href:(k?C:void 0)||b.absoluteURL||x,onClick:k?O:e,ref:ei(h,T),target:l,"data-discover":!y&&t===`render`?`true`:void 0});return w&&!y?r.createElement(r.Fragment,null,A,r.createElement(Xr,{page:x})):A});si.displayName=`Link`;var ci=r.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:i=!1,style:a,to:o,viewTransition:s,children:c,...l},u){let d=Nn(o,{relative:l.relative}),f=$(),p=r.useContext(dn),{navigator:m,basename:h}=r.useContext(Z),g=p!=null&&Ti(d)&&s===!0,_=m.encodeLocation?m.encodeLocation(d).pathname:d.pathname,v=f.pathname,y=p&&p.navigation&&p.navigation.location?p.navigation.location.pathname:null;t||(v=v.toLowerCase(),y=y?y.toLowerCase():null,_=_.toLowerCase()),y&&h&&(y=B(y,h)||y);let b=_!==`/`&&_.endsWith(`/`)?_.length-1:_.length,x=v===_||!i&&v.startsWith(_)&&v.charAt(b)===`/`,S=y!=null&&(y===_||!i&&y.startsWith(_)&&y.charAt(_.length)===`/`),C={isActive:x,isPending:S,isTransitioning:g},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,g?`transitioning`:null].filter(Boolean).join(` `);let E=typeof a==`function`?a(C):a;return r.createElement(si,{...l,"aria-current":w,className:T,ref:u,style:E,to:o,viewTransition:s},typeof c==`function`?c(C):c)});ci.displayName=`NavLink`;var li=r.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:i,replace:a,state:o,method:s=hr,action:c,onSubmit:l,relative:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p,...m},h)=>{let{useTransitions:g}=r.useContext(Z),_=vi(),v=yi(c,{relative:u}),y=s.toLowerCase()===`get`?`get`:`post`,b=typeof c==`string`&&oi.test(c);return r.createElement(`form`,{ref:h,method:y,action:v,onSubmit:i?l:e=>{if(l&&l(e),e.defaultPrevented)return;e.preventDefault();let i=e.nativeEvent.submitter,c=i?.getAttribute(`formmethod`)||s,m=()=>_(i||e.currentTarget,{fetcherKey:t,method:c,navigate:n,replace:a,state:o,relative:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p});g&&n!==!1?r.startTransition(()=>m()):m()},...m,"data-discover":!b&&e===`render`?`true`:void 0})});li.displayName=`Form`;function ui({getKey:e,storageKey:t,...n}){let i=r.useContext(Kr),{basename:a}=r.useContext(Z),o=$(),s=Yn();Ci({getKey:e,storageKey:t});let c=r.useMemo(()=>{if(!i||!e)return null;let t=Si(o,s,a,e);return t===o.key?null:t},[]);if(!i||i.isSpaMode)return null;let l=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},``)}try{let n=JSON.parse(sessionStorage.getItem(e)||`{}`)[t||window.history.state.key];typeof n==`number`&&window.scrollTo(0,n)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return r.createElement(`script`,{...n,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${l})(${Mr(JSON.stringify(t||bi))}, ${Mr(JSON.stringify(c))})`}})}ui.displayName=`ScrollRestoration`;function di(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function fi(e){let t=r.useContext(un);return f(t,di(e)),t}function pi(e){let t=r.useContext(dn);return f(t,di(e)),t}function mi(e,{target:t,replace:n,mask:i,state:a,preventScrollReset:o,relative:s,viewTransition:c,defaultShouldRevalidate:l,useTransitions:u}={}){let d=On(),f=$(),p=Nn(e,{relative:s});return r.useCallback(m=>{if(Sr(m,t)){m.preventDefault();let t=n===void 0?_(f)===_(p):n,h=()=>d(e,{replace:t,mask:i,state:a,preventScrollReset:o,relative:s,viewTransition:c,defaultShouldRevalidate:l});u?r.startTransition(()=>h()):h()}},[f,d,p,n,i,a,t,e,o,s,c,l,u])}function hi(e){p(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=r.useRef(Cr(e)),n=r.useRef(!1),i=$(),a=r.useMemo(()=>wr(i.search,n.current?null:t.current),[i.search]),o=On();return[a,r.useCallback((e,t)=>{let r=Cr(typeof e==`function`?e(new URLSearchParams(a)):e);n.current=!0,o(`?`+r,t)},[o,a])]}var gi=0,_i=()=>`__${String(++gi)}__`;function vi(){let{router:e}=fi(`useSubmit`),{basename:t}=r.useContext(Z),n=qn(),i=e.fetch,a=e.navigate;return r.useCallback(async(e,r={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=kr(e,t);r.navigate===!1?await i(r.fetcherKey||_i(),n,r.action||o,{defaultShouldRevalidate:r.defaultShouldRevalidate,preventScrollReset:r.preventScrollReset,formData:l,body:u,formMethod:r.method||s,formEncType:r.encType||c,flushSync:r.flushSync}):await a(r.action||o,{defaultShouldRevalidate:r.defaultShouldRevalidate,preventScrollReset:r.preventScrollReset,formData:l,body:u,formMethod:r.method||s,formEncType:r.encType||c,replace:r.replace,state:r.state,fromRouteId:n,flushSync:r.flushSync,viewTransition:r.viewTransition})},[i,a,t,n])}function yi(e,{relative:t}={}){let{basename:n}=r.useContext(Z),i=r.useContext(Q);f(i,`useFormAction must be used inside a RouteContext`);let[a]=i.matches.slice(-1),o={...Nn(e||`.`,{relative:t})},s=$();if(e==null){o.search=s.search;let e=new URLSearchParams(o.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();o.search=n?`?${n}`:``}}return(!e||e===`.`)&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(o.pathname=o.pathname===`/`?n:W([n,o.pathname])),_(o)}var bi=`react-router-scroll-positions`,xi={};function Si(e,t,n,r){let i=null;return r&&(i=r(n===`/`?e:{...e,pathname:B(e.pathname,n)||e.pathname},t)),i??=e.key,i}function Ci({getKey:e,storageKey:t}={}){let{router:n}=fi(`useScrollRestoration`),{restoreScrollPosition:i,preventScrollReset:a}=pi(`useScrollRestoration`),{basename:o}=r.useContext(Z),s=$(),c=Yn(),l=Jn();r.useEffect(()=>(window.history.scrollRestoration=`manual`,()=>{window.history.scrollRestoration=`auto`}),[]),wi(r.useCallback(()=>{if(l.state===`idle`){let t=Si(s,c,o,e);xi[t]=window.scrollY}try{sessionStorage.setItem(t||bi,JSON.stringify(xi))}catch(e){p(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration=`auto`},[l.state,e,o,s,c,t])),typeof document<`u`&&(r.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||bi);e&&(xi=JSON.parse(e))}catch{}},[t]),r.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(xi,()=>window.scrollY,e?(t,n)=>Si(t,n,o,e):void 0);return()=>t&&t()},[n,o,e]),r.useLayoutEffect(()=>{if(i!==!1){if(typeof i==`number`){window.scrollTo(0,i);return}try{if(s.hash){let e=document.getElementById(decodeURIComponent(s.hash.slice(1)));if(e){e.scrollIntoView();return}}}catch{p(!1,`"${s.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}a!==!0&&window.scrollTo(0,0)}},[s,i,a]))}function wi(e,t){let{capture:n}=t||{};r.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`pagehide`,e,t),()=>{window.removeEventListener(`pagehide`,e,t)}},[e,n])}function Ti(e,{relative:t}={}){let n=r.useContext(mn);f(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=fi(`useViewTransitionState`),a=Nn(e,{relative:t});if(!n.isTransitioning)return!1;let o=B(n.currentLocation.pathname,i)||n.currentLocation.pathname,s=B(n.nextLocation.pathname,i)||n.nextLocation.pathname;return R(a.pathname,s)!=null||R(a.pathname,o)!=null}export{cr as a,$ as c,hi as d,pr as i,On as l,ci as n,x as o,fr as r,ni as s,si as t,Mn as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./cn-BQ_8x0bT.js";var t=e(`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`}]]);export{t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./check-BODqo66o.js";import{t as o}from"./messages-CzKxM6I4.js";import{a as s,n as c,o as l}from"./fetch-8QNN25Sh.js";import{n as u}from"./locale-store-Ba72bFmP.js";import{$r as d,Co as f,Cs as p,Ds as m,Es as h,Fi as g,Fo as _,Gs as v,Hs as y,Is as b,Jo as x,Kc as S,Ma as C,Ms as w,No as T,Qr as E,Ro as D,So as O,Tc as k,Uo as A,Us as j,Wo as M,Xr as N,Zr as P,_i as F,_o as I,ao as L,as as R,bl as z,bo as B,co as ee,dc as V,ec as H,el as te,fs as ne,gi as re,hi as ie,hs as ae,io as U,ja as oe,ks as se,lo as ce,no as le,oo as ue,qo as de,so as fe,ti as pe,ul as W,uo as G,vi as K,vo as me,wl as q,yi as he}from"./index-BKRqeRHm.js";import{t as ge}from"./page-tabs-D4hkWVt_.js";var J=n(),Y=e(t(),1),X=r(),_e={sm:{frame:`size-9 rounded-lg`,image:`size-6`,fallback:`size-4`},md:{frame:`size-10 rounded-xl`,image:`size-7`,fallback:`size-5`},lg:{frame:`size-12 rounded-xl`,image:`size-8`,fallback:`size-5`}};function ve(e){let t=(0,J.c)(18),{connector:n,size:r,className:a}=e,o=r===void 0?`md`:r,s=n?.branding?.logoUrl,[c,l]=(0,Y.useState)(!1),u=_e[o],d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{l(!1)},t[0]=d):d=t[0];let f;t[1]===s?f=t[2]:(f=[s],t[1]=s,t[2]=f),(0,Y.useEffect)(d,f);let p;t[3]!==a||t[4]!==u.frame?(p=i(`flex shrink-0 items-center justify-center overflow-hidden border border-edge bg-surface-base`,u.frame,a),t[3]=a,t[4]=u.frame,t[5]=p):p=t[5];let m;t[6]===n?m=t[7]:(m=n?.branding?.backgroundColor?{backgroundColor:n.branding.backgroundColor}:void 0,t[6]=n,t[7]=m);let h=n?.displayName,g;t[8]!==u.fallback||t[9]!==u.image||t[10]!==c||t[11]!==s?(g=s&&!c?(0,X.jsx)(`img`,{src:s,alt:``,loading:`lazy`,draggable:!1,className:i(`object-contain`,u.image),onError:()=>l(!0)}):(0,X.jsx)(H,{className:i(`text-fg-muted`,u.fallback),"aria-hidden":!0}),t[8]=u.fallback,t[9]=u.image,t[10]=c,t[11]=s,t[12]=g):g=t[12];let _;return t[13]!==p||t[14]!==m||t[15]!==h||t[16]!==g?(_=(0,X.jsx)(`span`,{className:p,style:m,title:h,children:g}),t[13]=p,t[14]=m,t[15]=h,t[16]=g,t[17]=_):_=t[17],_}var Z=`animate-pulse motion-reduce:animate-none rounded-md bg-surface-hover dark:bg-surface-active/50`,ye=[`c0`,`c1`,`c2`,`c3`,`c4`,`c5`];function be(e,t){return t.some(t=>t.connectorId===e.id)}function xe(){let e=(0,J.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(`div`,{className:i(`size-10 shrink-0 rounded-xl`,Z)}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,X.jsx)(`div`,{className:`flex h-full min-h-[9.5rem] flex-col rounded-xl bg-surface-panel p-4 shadow-surface`,"aria-hidden":!0,children:(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-start gap-3`,children:[t,(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,X.jsx)(`div`,{className:i(`h-4 min-w-0 flex-1`,Z)}),(0,X.jsx)(`div`,{className:i(`h-8 w-[4.5rem] shrink-0 rounded-lg`,Z)})]}),(0,X.jsx)(`div`,{className:i(`h-3 w-full`,Z)}),(0,X.jsx)(`div`,{className:i(`h-3 w-[88%]`,Z)})]})]})}),e[1]=n):n=e[1],n}function Se(){let e=(0,J.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(`div`,{className:i(`size-10 shrink-0 rounded-xl`,Z)}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,X.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[(0,X.jsx)(`div`,{className:i(`h-4 w-48 max-w-full`,Z)}),(0,X.jsx)(`div`,{className:i(`h-3 w-72 max-w-full`,Z)})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,X.jsxs)(`div`,{className:`flex items-start gap-3`,children:[t,(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-start justify-between gap-3`,children:[n,(0,X.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,X.jsx)(`div`,{className:i(`h-9 w-20 rounded-lg`,Z)}),(0,X.jsx)(`div`,{className:i(`h-9 w-20 rounded-lg`,Z)})]})]})]}),e[2]=r):r=e[2];let a;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,X.jsxs)(`div`,{className:`rounded-2xl bg-surface-panel p-4 shadow-surface`,"aria-hidden":!0,children:[r,(0,X.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2`,children:[(0,X.jsx)(`div`,{className:i(`h-8 w-20 rounded-md`,Z)}),(0,X.jsx)(`div`,{className:i(`h-8 w-24 rounded-md`,Z)}),(0,X.jsx)(`div`,{className:i(`h-8 w-28 rounded-md`,Z)})]}),(0,X.jsx)(`div`,{className:i(`mt-3 h-20 rounded-xl`,Z)})]}),e[3]=a):a=e[3],a}function Ce(e){let t=(0,J.c)(80),{connector:n,installed:r,onInstall:a,onOpenDetails:o,t:s}=e,c,l,u,d,f,p,m,h,g,_;if(t[0]!==n||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==s.connect||t[5]!==s.connectedBadge||t[6]!==s.connectorBeta||t[7]!==s.connectorCapabilityLabels||t[8]!==s.connectorExperimental||t[9]!==s.connectorVerified||t[10]!==s.integrationStrategyComposio||t[11]!==s.integrationStrategyMcp||t[12]!==s.integrationStrategyNative){let e=n.capabilities.filter(we),v=e.slice(0,3),y=Math.max(0,e.length-v.length),b=s.connect,x=n.verificationLevel===`verified`?s.connectorVerified:n.verificationLevel===`beta`?s.connectorBeta:n.verificationLevel===`experimental`?s.connectorExperimental:null,S=n.integrationStrategy?.lane===`native`?s.integrationStrategyNative:n.integrationStrategy?.lane===`mcp`?s.integrationStrategyMcp:n.integrationStrategy?.lane===`composio`?s.integrationStrategyComposio:null,C;t[23]!==b||t[24]!==n||t[25]!==a?(C=e=>(0,X.jsxs)(M,{type:`button`,variant:`primary`,className:i(`h-8 justify-center px-2.5 text-xs font-medium`,e),onClick:e=>{e.stopPropagation(),a(n)},children:[(0,X.jsx)(H,{className:`size-4`}),b]}),t[23]=b,t[24]=n,t[25]=a,t[26]=C):C=t[26],c=C;let w;t[27]!==n||t[28]!==o?(w=e=>{!o||e.currentTarget!==e.target||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),o(n))},t[27]=n,t[28]=o,t[29]=w):w=t[29];let T=w,E=o?`cursor-pointer`:null;t[30]===E?p=t[31]:(p=i(`group flex min-h-[9.5rem] flex-col rounded-lg bg-surface-panel p-4 shadow-surface transition-colors hover:bg-surface-hover/45 focus-within:ring-2 focus-within:ring-accent/30`,E),t[30]=E,t[31]=p),m=o?`button`:void 0,h=o?0:void 0,t[32]!==n||t[33]!==o?(g=()=>o?.(n),t[32]=n,t[33]=o,t[34]=g):g=t[34],_=T,l=`flex min-w-0 flex-1 flex-col`;let D;t[35]===n?D=t[36]:(D=(0,X.jsx)(ve,{connector:n}),t[35]=n,t[36]=D);let O;t[37]===n.displayName?O=t[38]:(O=(0,X.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:n.displayName}),t[37]=n.displayName,t[38]=O);let k;t[39]===x?k=t[40]:(k=x?(0,X.jsx)(`span`,{className:`mt-1 inline-flex rounded-full border border-edge px-1.5 py-0.5 text-[10px] font-medium text-fg-subtle`,children:x}):null,t[39]=x,t[40]=k);let A;t[41]===S?A=t[42]:(A=S?(0,X.jsx)(`span`,{className:`ml-1 mt-1 inline-flex rounded-full border border-accent/20 bg-accent-soft px-1.5 py-0.5 text-[10px] font-medium text-accent-fg`,children:S}):null,t[41]=S,t[42]=A);let j;t[43]!==O||t[44]!==k||t[45]!==A?(j=(0,X.jsxs)(`div`,{className:`min-w-0`,children:[O,k,A]}),t[43]=O,t[44]=k,t[45]=A,t[46]=j):j=t[46];let N;t[47]!==D||t[48]!==j?(N=(0,X.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[D,j]}),t[47]=D,t[48]=j,t[49]=N):N=t[49];let P;t[50]!==r||t[51]!==c?(P=r?null:(0,X.jsx)(`div`,{className:`hidden shrink-0 items-center gap-1 transition-opacity sm:pointer-events-none sm:flex sm:opacity-0 sm:group-hover:pointer-events-auto sm:group-hover:opacity-100 sm:group-focus-within:pointer-events-auto sm:group-focus-within:opacity-100`,children:c()}),t[50]=r,t[51]=c,t[52]=P):P=t[52];let F;t[53]!==r||t[54]!==s.connectedBadge?(F=r?(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-emerald-500/30 bg-emerald-500/10 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300`,children:[(0,X.jsx)(z,{className:`size-3`,"aria-hidden":!0}),s.connectedBadge]}):null,t[53]=r,t[54]=s.connectedBadge,t[55]=F):F=t[55];let I;t[56]!==P||t[57]!==F?(I=(0,X.jsxs)(`div`,{className:`flex shrink-0 items-start gap-2`,children:[P,F]}),t[56]=P,t[57]=F,t[58]=I):I=t[58],t[59]!==N||t[60]!==I?(u=(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[N,I]}),t[59]=N,t[60]=I,t[61]=u):u=t[61],t[62]===n.description?d=t[63]:(d=(0,X.jsx)(`p`,{className:`mt-4 line-clamp-2 text-sm leading-6 text-fg-muted`,title:n.description,children:n.description}),t[62]=n.description,t[63]=d),f=v.length>0?(0,X.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-1.5`,children:[v.map(e=>(0,X.jsx)(`span`,{className:`rounded-md bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:s.connectorCapabilityLabels[e]??e},e)),y>0?(0,X.jsxs)(`span`,{className:`rounded-md bg-surface-base px-2 py-0.5 text-[11px] text-fg-subtle`,children:[`+`,y]}):null]}):null,t[0]=n,t[1]=r,t[2]=a,t[3]=o,t[4]=s.connect,t[5]=s.connectedBadge,t[6]=s.connectorBeta,t[7]=s.connectorCapabilityLabels,t[8]=s.connectorExperimental,t[9]=s.connectorVerified,t[10]=s.integrationStrategyComposio,t[11]=s.integrationStrategyMcp,t[12]=s.integrationStrategyNative,t[13]=c,t[14]=l,t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=h,t[21]=g,t[22]=_}else c=t[13],l=t[14],u=t[15],d=t[16],f=t[17],p=t[18],m=t[19],h=t[20],g=t[21],_=t[22];let v;t[64]!==l||t[65]!==u||t[66]!==d||t[67]!==f?(v=(0,X.jsxs)(`div`,{className:l,children:[u,d,f]}),t[64]=l,t[65]=u,t[66]=d,t[67]=f,t[68]=v):v=t[68];let y;t[69]!==r||t[70]!==c?(y=r?null:(0,X.jsx)(`div`,{className:`mt-4 flex flex-col gap-2 border-t border-edge pt-3 sm:hidden`,children:c(`w-full`)}),t[69]=r,t[70]=c,t[71]=y):y=t[71];let b;return t[72]!==v||t[73]!==y||t[74]!==p||t[75]!==m||t[76]!==h||t[77]!==g||t[78]!==_?(b=(0,X.jsxs)(`div`,{className:p,role:m,tabIndex:h,onClick:g,onKeyDown:_,children:[v,y]}),t[72]=v,t[73]=y,t[74]=p,t[75]=m,t[76]=h,t[77]=g,t[78]=_,t[79]=b):b=t[79],b}function we(e){return!e.startsWith(`runtime.`)&&!e.startsWith(`auth.`)}function Q(e,t){if(!e.payload)throw Error(e.error??t);return e.payload}async function Te(){let[e,t]=await Promise.all([c(l(`/api/connectors/catalog`)),Ee().catch(()=>[])]),n=Q(e,`Could not load connector catalog.`).connectors;return[...new Map([...t,...n].map(e=>[e.id,e])).values()]}async function Ee(e=!1){return Q(await c(l(`/api/connectors/composio/catalog${e?`?refresh=1`:``}`)),`Could not load Composio catalog.`).connectors}async function De(e){let t=new URLSearchParams;return e?.q?.trim()&&t.set(`q`,e.q.trim()),e?.page&&t.set(`page`,String(e.page)),e?.pageSize&&t.set(`pageSize`,String(e.pageSize)),e?.category?.trim()&&t.set(`category`,e.category.trim()),e?.sort&&t.set(`sort`,e.sort),Q(await c(l(`/api/capabilities/connectors${t.size?`?${t.toString()}`:``}`)),`Could not load Store connector capabilities.`)}async function Oe(e,t){return Q(await c(l(`/api/capabilities/connectors/${encodeURIComponent(e)}/install-plan`),{method:`POST`,body:JSON.stringify({version:t})}),`Could not prepare connector installation.`).plan}async function ke(e,t,n){let r=await c(l(`/api/capabilities/connectors/${encodeURIComponent(e)}/install`),{method:`POST`,body:JSON.stringify({...t,version:n})});return oe(),Q(r,`Could not install Store connector.`).instance}async function Ae(){return Q(await c(l(`/api/connectors/catalog`)),`Could not load connector registries.`).registries??[]}async function je(){return Q(await c(l(`/api/connectors/installed`)),`Could not load installed connectors.`).instances}var Me=new Map,Ne=300*1e3;async function Pe(e,t=`all`,n){let r=e.trim(),i=t.trim()||`all`,a=n?.browse??!1,o=Math.max(n?.page??1,1),s=Math.max(n?.pageSize??24,1),u=`${i}:${r}:${a?`browse`:`search`}:${o}:${s}`,d=Date.now(),f=Me.get(u);if(f&&f.expiresAt>d)return f.promise;let p=new URLSearchParams;r&&p.set(`q`,r),i!==`all`&&p.set(`source`,i),a&&p.set(`browse`,`1`),p.set(`page`,String(o)),p.set(`pageSize`,String(s));let m=c(l(`/api/connectors/registry/search?${p.toString()}`)).then(e=>{let t=Q(e,`Could not search connector registries.`),n=Math.max(0,...(t.results??[]).map(e=>e.totalPages??0))||void 0;return{connectors:t.connectors,totalPages:n}});Me.set(u,{expiresAt:d+Ne,promise:m});try{return await m}catch(e){throw Me.delete(u),e}}async function Fe(e){return Q(await c(l(`/api/connectors/${encodeURIComponent(e)}/auth/start`),{method:`POST`}),`Could not start connector authorization.`).authorization}async function Ie(e,t){let n=await c(l(`/api/connectors/${encodeURIComponent(e)}/install`),{method:`POST`,body:JSON.stringify(t)});return oe(),Q(n,`Could not install connector.`).instance}async function Le(e,t={}){return Q(await c(l(`/api/connectors/preview`),{method:`POST`,body:JSON.stringify({...t,definition:e})}),`Could not preview connector capabilities.`).preview}async function Re(e,t){return Q(await c(l(`/api/connectors/${encodeURIComponent(e)}/config`),{method:`POST`,body:JSON.stringify(t)}),`Could not update connector config.`).instance}async function ze(e){await c(l(`/api/connectors/${encodeURIComponent(e)}`),{method:`DELETE`}),oe()}async function Be(e){return Q(await c(l(`/api/connectors/${encodeURIComponent(e)}/test`),{method:`POST`}),`Connector test failed.`)}async function Ve(){return Q(await c(l(`/api/connectors/composio/connections`)),`Could not load Composio connections.`).connections}async function He(e,t){return Q(await c(l(`/api/connectors/composio/connections/${encodeURIComponent(e)}`),{method:`PATCH`,body:JSON.stringify(t)}),`Could not update Composio connection.`).connection}async function Ue(e){return Q(await c(l(`/api/connectors/composio/${encodeURIComponent(e)}/health`)),`Could not check Composio connector health.`).health}async function We(e){await c(l(`/api/connectors/composio/connections/${encodeURIComponent(e)}/refresh`),{method:`POST`})}async function Ge(e){await c(l(`/api/connectors/composio/connections/${encodeURIComponent(e)}`),{method:`DELETE`})}async function Ke(e){return Q(await c(l(`/api/connectors/composio/${encodeURIComponent(e)}/scope`)),`Could not load Composio scope.`).scope}async function qe(e,t){let n=await c(l(`/api/connectors/composio/${encodeURIComponent(e)}/scope`),{method:`POST`,body:JSON.stringify({scope:t})});return oe(),Q(n,`Could not update Composio scope.`).scope}async function Je(e){return Q(await c(l(`/api/connectors/composio/${encodeURIComponent(e)}/policy`)),`Could not load Composio policy.`)}async function Ye(e,t){return Q(await c(l(`/api/connectors/composio/${encodeURIComponent(e)}/policy`),{method:`PATCH`,body:JSON.stringify(t)}),`Could not update Composio policy.`).policy}async function Xe(e){return Q(await c(l(`/api/connectors/composio/${encodeURIComponent(e)}/tools`)),`Could not load Composio tools.`).tools}async function Ze(e=50){return Q(await c(l(`/api/connectors/composio/triggers?limit=${encodeURIComponent(String(e))}`)),`Could not load Composio trigger events.`).events}async function Qe(e){return Q(await c(l(`/api/connectors/${encodeURIComponent(e.connectorId)}/memory-sync`),{method:`POST`,body:JSON.stringify(e)}),`Could not sync connector data to memory.`)}async function $e(e=`pending`){return Q(await c(l(`/api/connectors/approvals?status=${encodeURIComponent(e)}`)),`Could not load connector approvals.`).approvals}async function et(e,t){return Q(await c(l(`/api/connectors/approvals/respond`),{method:`POST`,body:JSON.stringify({id:e,decision:t})}),`Could not update connector approval.`).approval}function tt(e,t){return Object.entries(t).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,String(n)),e)}function nt(e,t){return t.connectorCapabilityLabels[e]??e}function rt(e,t){if(e.runtime.type===`mcp`)return tt(t.connectorRuntimeMcp,{serverId:e.runtime.serverId});let n=e.runtime.type===`composio`?e.runtime.toolkit:e.runtime.type===`channel`?e.runtime.channelId:e.runtime.type===`nativeTool`?e.runtime.toolsetId:e.runtime.sourceKind;return tt(t.connectorRuntimeGeneric,{runtime:e.runtime.type,id:n??e.runtime.type})}function it(e,t){return e.auth.mode===`oauth`?t.connectorAuthOAuth:e.auth.mode===`apiKey`?t.connectorAuthApiKey:t.connectorAuthNone}function at(e){return(e.setup.secrets??[]).filter(e=>e.required).length+(e.setup.config??[]).filter(e=>e.required).length}function ot(e){let t=(0,J.c)(12),{title:n,items:r}=e;if(r.length===0)return null;let i;t[0]===n?i=t[1]:(i=(0,X.jsx)(`div`,{className:`border-b border-edge px-3 py-2 text-xs font-semibold text-fg`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=r.slice(0,16).map(st),t[2]=r,t[3]=a);let o;t[4]===r.length?o=t[5]:(o=r.length>16?(0,X.jsxs)(`div`,{className:`px-3 py-2 text-xs text-fg-subtle`,children:[`+`,r.length-16]}):null,t[4]=r.length,t[5]=o);let s;t[6]!==a||t[7]!==o?(s=(0,X.jsxs)(`div`,{className:`max-h-48 overflow-y-auto`,children:[a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8];let c;return t[9]!==i||t[10]!==s?(c=(0,X.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-base`,children:[i,s]}),t[9]=i,t[10]=s,t[11]=c):c=t[11],c}function st(e){return(0,X.jsxs)(`div`,{className:`border-b border-edge-subtle px-3 py-2 last:border-b-0`,children:[(0,X.jsx)(`div`,{className:`break-words font-mono text-xs font-medium text-fg`,children:e.title}),e.description?(0,X.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.id)}function ct({connector:e,installed:t,onClose:n,onInstall:r,t:a}){let[o,s]=(0,Y.useState)(!1),[c,l]=(0,Y.useState)(null),[u,d]=(0,Y.useState)(null),f=at(e),p=e.capabilities.slice(0,8),h=Math.max(0,e.capabilities.length-p.length),g=[...(e.setup.secrets??[]).map(e=>({key:`secret:${e.key}`,label:e.label,description:e.description,required:e.required,kind:a.connectorSetupSecret})),...(e.setup.config??[]).map(e=>({key:`config:${e.key}`,label:e.label,description:e.description,required:!!e.required,kind:a.connectorSetupConfig}))],_=async()=>{s(!0),d(null);try{l(await Le(e))}catch(e){l(null),d(e instanceof Error?e.message:String(e))}finally{s(!1)}};return(0,X.jsx)(ce,{open:!0,onOpenChange:e=>{e||n()},children:(0,X.jsxs)(ee,{children:[(0,X.jsx)(fe,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,X.jsxs)(L,{className:i(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex h-[min(100vh-2rem,44rem)] w-[min(100%-2rem,min(92vw,52rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-panel shadow-float outline-none dark:border-edge`),children:[(0,X.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge-subtle px-6 py-5`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,X.jsx)(ve,{connector:e,size:`lg`}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-base px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.source}),(0,X.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-base px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.kind}),t?(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-emerald-500/30 bg-emerald-500/10 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300`,children:[(0,X.jsx)(z,{className:`size-3`,"aria-hidden":!0}),a.connectedBadge]}):null]}),(0,X.jsx)(G,{className:`text-base font-semibold text-fg`,children:e.displayName}),(0,X.jsx)(ue,{className:`mt-1 line-clamp-3 text-sm leading-6 text-fg-muted`,children:e.description})]})]}),(0,X.jsx)(U,{asChild:!0,children:(0,X.jsxs)(`button`,{type:`button`,className:i(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,D.focusRingPanel),"aria-label":a.modalClose,children:[(0,X.jsx)(de,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`sr-only`,children:a.modalClose})]})})]}),(0,X.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:[(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,X.jsx)(x,{className:`size-3.5`,"aria-hidden":!0}),a.detailTools]}),(0,X.jsx)(`p`,{className:`mt-2 text-sm font-semibold text-fg`,children:c?tt(a.connectorPreviewToolsCount,{count:c.toolCount}):a.connectorPreviewUnknown})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,X.jsx)(k,{className:`size-3.5`,"aria-hidden":!0}),a.detailPermissions]}),(0,X.jsx)(`p`,{className:`mt-2 text-sm font-semibold text-fg`,children:it(e,a)})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,X.jsx)(te,{className:`size-3.5`,"aria-hidden":!0}),a.connectorRequiredInputs]}),(0,X.jsx)(`p`,{className:`mt-2 text-sm font-semibold text-fg`,children:tt(a.connectorRequiredInputsCount,{count:f})})]})]}),(0,X.jsxs)(`div`,{className:`mt-5 grid gap-5 lg:grid-cols-[minmax(0,1fr)_18rem]`,children:[(0,X.jsxs)(`div`,{className:`min-w-0 space-y-5`,children:[(0,X.jsxs)(`section`,{children:[(0,X.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.connectorCapabilitiesTitle}),(0,X.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:[p.map(e=>(0,X.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-base px-2 py-1 text-xs text-fg-muted`,children:nt(e,a)},e)),h>0?(0,X.jsxs)(`span`,{className:`rounded-md border border-edge bg-surface-base px-2 py-1 text-xs text-fg-subtle`,children:[`+`,h]}):null]}),(0,X.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:a.connectorCapabilitiesHint})]}),u?(0,X.jsx)(`p`,{className:`rounded-lg bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:u}):null,c?(0,X.jsxs)(`section`,{children:[(0,X.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-2`,children:[(0,X.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.connectorPreviewTitle}),(0,X.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,c.ok?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:`bg-amber-500/10 text-amber-700 dark:text-amber-300`),children:c.ok?a.healthStatusHealthy:a.healthStatusLabels[c.status]??c.status})]}),(0,X.jsxs)(`div`,{className:`mb-3 grid gap-2 text-xs sm:grid-cols-3`,children:[(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-base px-3 py-2`,children:[(0,X.jsx)(`div`,{className:`font-semibold text-fg`,children:c.toolCount}),(0,X.jsx)(`div`,{className:`text-fg-muted`,children:a.toolsMetric})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-base px-3 py-2`,children:[(0,X.jsx)(`div`,{className:`font-semibold text-fg`,children:c.resourceCount}),(0,X.jsx)(`div`,{className:`text-fg-muted`,children:a.resourcesMetric})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-base px-3 py-2`,children:[(0,X.jsx)(`div`,{className:`font-semibold text-fg`,children:c.promptCount}),(0,X.jsx)(`div`,{className:`text-fg-muted`,children:a.promptsMetric})]})]}),(0,X.jsxs)(`div`,{className:`grid gap-2`,children:[(0,X.jsx)(ot,{title:a.detailTools,items:c.tools.map(e=>({id:e.name,title:e.shortName??e.name,description:e.description}))}),(0,X.jsx)(ot,{title:a.detailResources,items:c.resources.map(e=>({id:e.uri,title:e.title??e.name??e.uri,description:e.description??e.uri}))}),(0,X.jsx)(ot,{title:a.detailPrompts,items:c.prompts.map(e=>({id:e.name,title:e.title??e.name,description:e.description??tt(a.promptArgumentCount,{count:e.argumentCount})}))})]}),c.error?(0,X.jsx)(`p`,{className:`mt-3 text-xs leading-5 text-fg-subtle`,children:c.error}):null,c.action?(0,X.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:c.action}):null]}):null]}),(0,X.jsxs)(`aside`,{className:`space-y-3`,children:[(0,X.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`h3`,{className:`flex items-center gap-2 text-sm font-semibold text-fg`,children:[(0,X.jsx)(k,{className:`size-4 text-accent`,"aria-hidden":!0}),a.detailPermissions]}),(0,X.jsx)(`p`,{className:`mt-2 text-sm font-medium text-fg`,children:it(e,a)})]}),(0,X.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`h3`,{className:`flex items-center gap-2 text-sm font-semibold text-fg`,children:[(0,X.jsx)(te,{className:`size-4 text-accent`,"aria-hidden":!0}),a.connectorSetupTitle]}),g.length>0?(0,X.jsx)(`div`,{className:`mt-3 divide-y divide-edge overflow-hidden rounded-lg border border-edge`,children:g.map(e=>(0,X.jsxs)(`div`,{className:`bg-surface-panel px-3 py-2.5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.label}),(0,X.jsx)(`span`,{className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[11px] text-fg-muted`,children:e.kind}),e.required?(0,X.jsx)(`span`,{className:`rounded-md bg-amber-500/10 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:a.connectorSetupRequired}):null]}),e.description?(0,X.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.key))}):(0,X.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:a.connectorSetupNone})]}),(0,X.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`h3`,{className:`flex items-center gap-2 text-sm font-semibold text-fg`,children:[(0,X.jsx)(m,{className:`size-4 text-accent`,"aria-hidden":!0}),a.connectorRuntimeTitle]}),(0,X.jsx)(`p`,{className:`mt-2 break-words text-xs leading-5 text-fg-muted`,children:rt(e,a)})]})]})]})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2 border-t border-edge-subtle px-6 py-4`,children:[(0,X.jsx)(U,{asChild:!0,children:(0,X.jsx)(M,{variant:`secondary`,children:a.modalClose})}),(0,X.jsxs)(M,{variant:`secondary`,disabled:o,onClick:()=>void _(),children:[o?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(x,{className:`size-4`}),a.connectorPreviewButton]}),t?(0,X.jsxs)(M,{variant:`secondary`,disabled:!0,children:[(0,X.jsx)(v,{className:`size-4`}),a.connectedBadge]}):(0,X.jsxs)(M,{variant:`primary`,onClick:()=>{r(e),n()},children:[(0,X.jsx)(H,{className:`size-4`}),a.connect]})]})]})]})})}var lt=i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,A);function ut(e){let t=(0,J.c)(58),{open:n,sessionIdleTtlMinutes:r,saving:a,onChange:o,onSave:s,onClose:c,t:l,mcp:u}=e,d;t[0]===c?d=t[1]:(d=e=>{e||c()},t[0]=c,t[1]=d);let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,X.jsx)(fe,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[2]=f):f=t[2];let p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=i(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex h-[min(32rem,calc(100vh-2rem))] w-[min(100%-2rem,38rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-panel shadow-float dark:border-edge`),t[3]=p):p=t[3];let m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,X.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-accent-soft text-accent-fg`,children:(0,X.jsx)(j,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0})}),t[4]=m):m=t[4];let h;t[5]===l.runtimeSettingsTitle?h=t[6]:(h=(0,X.jsx)(G,{className:`text-base font-semibold text-fg`,children:l.runtimeSettingsTitle}),t[5]=l.runtimeSettingsTitle,t[6]=h);let g;t[7]===l.runtimeSettingsHint?g=t[8]:(g=(0,X.jsx)(ue,{className:`mt-1 text-sm text-fg-muted`,children:l.runtimeSettingsHint}),t[7]=l.runtimeSettingsHint,t[8]=g);let _;t[9]!==h||t[10]!==g?(_=(0,X.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[m,(0,X.jsxs)(`div`,{className:`min-w-0`,children:[h,g]})]}),t[9]=h,t[10]=g,t[11]=_):_=t[11];let v;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(v=i(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,D.focusRingPanel),t[12]=v):v=t[12];let y;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,X.jsx)(de,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=y):y=t[13];let b;t[14]===l.modalClose?b=t[15]:(b=(0,X.jsx)(U,{asChild:!0,children:(0,X.jsx)(`button`,{type:`button`,className:v,"aria-label":l.modalClose,children:y})}),t[14]=l.modalClose,t[15]=b);let x;t[16]!==b||t[17]!==_?(x=(0,X.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge-subtle px-6 py-5`,children:[_,b]}),t[16]=b,t[17]=_,t[18]=x):x=t[18];let S;t[19]===u.idleTtlLabel?S=t[20]:(S=(0,X.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:u.idleTtlLabel}),t[19]=u.idleTtlLabel,t[20]=S);let C;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(lt,`w-40 flex-none`),t[21]=C):C=t[21];let w=r??``,T;t[22]===o?T=t[23]:(T=e=>{let t=e.currentTarget.value.trim();o(t===``?void 0:Number.parseInt(t,10))},t[22]=o,t[23]=T);let E;t[24]!==u.idleTtlPlaceholder||t[25]!==w||t[26]!==T?(E=(0,X.jsx)(`input`,{type:`number`,min:0,className:C,value:w,placeholder:u.idleTtlPlaceholder,onChange:T}),t[24]=u.idleTtlPlaceholder,t[25]=w,t[26]=T,t[27]=E):E=t[27];let O;t[28]===u.idleTtlHint?O=t[29]:(O=(0,X.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:u.idleTtlHint}),t[28]=u.idleTtlHint,t[29]=O);let k;t[30]!==S||t[31]!==E||t[32]!==O?(k=(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:(0,X.jsxs)(`label`,{className:`flex max-w-xl flex-col gap-1.5`,children:[S,E,O]})}),t[30]=S,t[31]=E,t[32]=O,t[33]=k):k=t[33];let A;t[34]!==c||t[35]!==a||t[36]!==l.modalCancel?(A=(0,X.jsx)(M,{type:`button`,variant:`secondary`,disabled:a,onClick:c,children:l.modalCancel}),t[34]=c,t[35]=a,t[36]=l.modalCancel,t[37]=A):A=t[37];let N;t[38]===s?N=t[39]:(N=()=>void s(),t[38]=s,t[39]=N);let P;t[40]===a?P=t[41]:(P=a?(0,X.jsx)(V,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,t[40]=a,t[41]=P);let F;t[42]!==u.save||t[43]!==a||t[44]!==N||t[45]!==P?(F=(0,X.jsxs)(M,{type:`button`,variant:`primary`,disabled:a,onClick:N,children:[P,u.save]}),t[42]=u.save,t[43]=a,t[44]=N,t[45]=P,t[46]=F):F=t[46];let I;t[47]!==A||t[48]!==F?(I=(0,X.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge-subtle px-6 py-4`,children:[A,F]}),t[47]=A,t[48]=F,t[49]=I):I=t[49];let R;t[50]!==x||t[51]!==k||t[52]!==I?(R=(0,X.jsxs)(ee,{children:[f,(0,X.jsxs)(L,{className:p,children:[x,k,I]})]}),t[50]=x,t[51]=k,t[52]=I,t[53]=R):R=t[53];let z;return t[54]!==n||t[55]!==d||t[56]!==R?(z=(0,X.jsx)(ce,{open:n,onOpenChange:d,children:R}),t[54]=n,t[55]=d,t[56]=R,t[57]=z):z=t[57],z}var dt=(0,Y.memo)(function(e){let t=(0,J.c)(12),{value:n,onChange:r,placeholder:a,className:o}=e,s;t[0]===o?s=t[1]:(s=i(`relative flex min-h-9 min-w-0 flex-1 cursor-text items-center rounded-pill border border-edge bg-surface-panel py-1.5 pl-9 pr-3 shadow-surface`,o),t[0]=o,t[1]=s);let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,X.jsx)(se,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,strokeWidth:1.75,"aria-hidden":!0}),t[2]=c):c=t[2];let l;t[3]===r?l=t[4]:(l=e=>r(e.currentTarget.value),t[3]=r,t[4]=l);let u;t[5]!==a||t[6]!==l||t[7]!==n?(u=(0,X.jsx)(`input`,{type:`search`,enterKeyHint:`search`,value:n,onChange:l,placeholder:a,autoComplete:`off`,spellCheck:!1,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`}),t[5]=a,t[6]=l,t[7]=n,t[8]=u):u=t[8];let d;return t[9]!==s||t[10]!==u?(d=(0,X.jsxs)(`label`,{className:s,children:[c,u]}),t[9]=s,t[10]=u,t[11]=d):d=t[11],d}),ft=(0,Y.memo)(function(e){let t=(0,J.c)(30),{onBrowseCatalog:n,onAddCustomServer:r,onOpenRuntimeSettings:a,addLabel:o,browseLabel:s,customLabel:c,settingsLabel:l}=e,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,X.jsx)(h,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[0]=u):u=t[0];let f;t[1]===l?f=t[2]:(f=(0,X.jsx)(`span`,{className:`hidden sm:inline`,children:l}),t[1]=l,t[2]=f);let p;t[3]!==a||t[4]!==l||t[5]!==f?(p=(0,X.jsxs)(M,{type:`button`,variant:`secondary`,className:`shrink-0 gap-2`,"aria-label":l,title:l,onClick:a,children:[u,f]}),t[3]=a,t[4]=l,t[5]=f,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,X.jsx)(y,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[7]=m):m=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,X.jsx)(q,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),t[8]=g):g=t[8];let _;t[9]===o?_=t[10]:(_=(0,X.jsx)(pe,{asChild:!0,children:(0,X.jsxs)(M,{type:`button`,variant:`primary`,className:`shrink-0 gap-2`,children:[m,o,g]})}),t[9]=o,t[10]=_);let v;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=i(`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,D.transition),t[11]=v):v=t[11];let b;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(ne,{className:`size-4 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[12]=b):b=t[12];let S;t[13]!==s||t[14]!==n?(S=(0,X.jsxs)(P,{className:v,onSelect:n,children:[b,s]}),t[13]=s,t[14]=n,t[15]=S):S=t[15];let C;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,D.transition),t[16]=C):C=t[16];let w;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,X.jsx)(x,{className:`size-4 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[17]=w):w=t[17];let T;t[18]!==c||t[19]!==r?(T=(0,X.jsxs)(P,{className:C,onSelect:r,children:[w,c]}),t[18]=c,t[19]=r,t[20]=T):T=t[20];let O;t[21]!==T||t[22]!==S?(O=(0,X.jsx)(E,{children:(0,X.jsxs)(N,{className:`z-50 min-w-[14rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:6,align:`end`,children:[S,T]})}),t[21]=T,t[22]=S,t[23]=O):O=t[23];let k;t[24]!==O||t[25]!==_?(k=(0,X.jsxs)(d,{children:[_,O]}),t[24]=O,t[25]=_,t[26]=k):k=t[26];let A;return t[27]!==k||t[28]!==p?(A=(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[p,k]}),t[27]=k,t[28]=p,t[29]=A):A=t[29],A}),pt=/^([^:=]+)[:=](.*)$/;function mt(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e))return Object.entries(e).map(([e,t])=>({key:e,value:t==null?``:String(t)}))}catch{}let n=[];for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t)continue;let r=pt.exec(t);r&&n.push({key:r[1].trim(),value:r[2].trim()})}return n.length>0?n:null}function ht(e){let t={};for(let n of e){let e=n.key.trim();e&&(t[e]=n.value)}return Object.keys(t).length>0?t:void 0}function gt(e){if(!e||typeof e!=`object`)return[{key:``,value:``}];let t=Object.entries(e).map(([e,t])=>({key:e,value:t==null?``:String(t)}));return t.length>0?t:[{key:``,value:``}]}function _t(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e.xopcConnector;return!!(t&&typeof t==`object`&&!Array.isArray(t)&&t.managed===!0)}function vt(e){let t=e&&typeof e==`object`&&`mcp`in e?e.mcp:void 0,n=(t&&typeof t==`object`?t:{}).servers,r={};if(!n||typeof n!=`object`||Array.isArray(n))return r;for(let[e,t]of Object.entries(n))!t||typeof t!=`object`||Array.isArray(t)||_t(t)&&(r[e]=t);return r}function yt(e){let t=e.trim();if(t)return t.split(/\s+/).filter(Boolean)}function bt(e){let t=e.trim();if(!t)return;let n=JSON.parse(t);if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Expected a JSON object`);return n}function xt(e){if(e.transport===`stdio`){let t={command:e.command.trim()},n=yt(e.argsText);return n?.length&&(t.args=n),e.cwd.trim()&&(t.cwd=e.cwd.trim()),e.envJson.trim()&&(t.env=bt(e.envJson)),e.connectionTimeoutMs!=null&&Number.isFinite(e.connectionTimeoutMs)&&(t.connectionTimeoutMs=e.connectionTimeoutMs),t}let t={url:e.url.trim(),transport:e.transport},n=ht(e.headers);return n&&(t.headers=n),e.connectionTimeoutMs!=null&&Number.isFinite(e.connectionTimeoutMs)&&(t.connectionTimeoutMs=e.connectionTimeoutMs),t}function St(e,t){let n=typeof t.url==`string`&&t.url.trim().length>0,r=typeof t.transport==`string`?t.transport.trim().toLowerCase():``,i=n?r===`sse`?`sse`:`streamable-http`:`stdio`,a=t.headers&&typeof t.headers==`object`&&!Array.isArray(t.headers)?t.headers:void 0;return{clientKey:e,id:e,transport:i,command:typeof t.command==`string`?t.command:``,argsText:Array.isArray(t.args)?t.args.map(String).join(` `):``,envJson:t.env&&typeof t.env==`object`?JSON.stringify(t.env,null,2):``,cwd:typeof t.cwd==`string`?t.cwd:typeof t.workingDirectory==`string`?t.workingDirectory:``,url:typeof t.url==`string`?t.url:``,headers:gt(a),connectionTimeoutMs:typeof t.connectionTimeoutMs==`number`&&Number.isFinite(t.connectionTimeoutMs)?t.connectionTimeoutMs:void 0}}function Ct(e=``){return{clientKey:crypto.randomUUID(),id:e,transport:`stdio`,command:``,argsText:``,envJson:``,cwd:``,url:``,headers:[{key:`Authorization`,value:``}],connectionTimeoutMs:void 0}}function wt(e){let t=e&&typeof e==`object`&&`mcp`in e?e.mcp:void 0,n=t&&typeof t==`object`?t:{},r=n.servers,i=r&&typeof r==`object`&&!Array.isArray(r)?Object.entries(r).flatMap(([e,t])=>!t||typeof t!=`object`||Array.isArray(t)||_t(t)?[]:[St(e,t)]).sort((e,t)=>e.id.localeCompare(t.id)):[],a=typeof n.sessionIdleTtlMs==`number`?n.sessionIdleTtlMs:void 0;return{sessionIdleTtlMinutes:a==null?void 0:a===0?0:Math.round(a/6e4),servers:i}}function Tt(e){return xt(e)}async function Et(e,t={}){let n={};for(let r of e.servers){let e=r.id.trim();if(e){if(t[e])throw Error(`Server id "${e}" is reserved by an installed connector.`);n[e]=xt(r)}}let r={servers:{...t,...n}};e.sessionIdleTtlMinutes!=null&&Number.isFinite(e.sessionIdleTtlMinutes)&&(r.sessionIdleTtlMs=e.sessionIdleTtlMinutes===0?0:Math.round(e.sessionIdleTtlMinutes*6e4)),await c(l(`/api/config`),{method:`PATCH`,body:JSON.stringify({mcp:r})}),oe()}function Dt(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n==`string`){let e=n.trim();e&&t.push({name:e});continue}if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.name!=`string`)continue;let r=e.name.trim();if(!r)continue;let i=typeof e.shortName==`string`&&e.shortName.trim()?e.shortName.trim():void 0,a=typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0;t.push({name:r,shortName:i,description:a})}return t}function Ot(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.uri!=`string`||typeof e.name!=`string`)continue;let r=e.uri.trim(),i=e.name.trim();!r||!i||t.push({uri:r,name:i,title:typeof e.title==`string`&&e.title.trim()?e.title.trim():void 0,description:typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0,mimeType:typeof e.mimeType==`string`&&e.mimeType.trim()?e.mimeType.trim():void 0})}return t}function kt(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.name!=`string`)continue;let r=e.name.trim();r&&t.push({name:r,title:typeof e.title==`string`&&e.title.trim()?e.title.trim():void 0,description:typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0,argumentCount:typeof e.argumentCount==`number`?e.argumentCount:0})}return t}async function At(e,t){let n=await c(l(`/api/mcp/servers/${encodeURIComponent(e)}/test`),{method:`POST`,body:t?JSON.stringify({server:t}):void 0});if(!n.payload)throw Error(n.error??`MCP test failed`);let r=Dt(n.payload.tools),i=Ot(n.payload.resources),a=kt(n.payload.prompts);return{serverId:n.payload.serverId??e,toolCount:typeof n.payload.toolCount==`number`?n.payload.toolCount:r.length,resourceCount:typeof n.payload.resourceCount==`number`?n.payload.resourceCount:i.length,promptCount:typeof n.payload.promptCount==`number`?n.payload.promptCount:a.length,tools:r,resources:i,prompts:a}}function jt(e){return e.connectionTimeoutMs==null||!Number.isFinite(e.connectionTimeoutMs)?``:String(Math.round(e.connectionTimeoutMs/1e3))}function Mt(e){let t=e.trim();if(!t)return;let n=Number.parseInt(t,10);if(!(!Number.isFinite(n)||n<1||n>600))return n*1e3}function Nt(e){if(e.transport===`stdio`){let t=e.command.trim();if(!t)return``;let n=e.argsText.trim();return n?`${t} ${n}`:t}return e.url.trim()}function $(e,t){return Object.entries(t).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),e)}function Pt({row:e,t,cs:n,onEdit:r,onRemove:i}){let[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(null),p=Nt(e),m=(0,Y.useCallback)(async()=>{o(!0),f(null);try{let t=await At(e.id.trim());u({toolCount:t.toolCount,resourceCount:t.resourceCount,promptCount:t.promptCount})}catch(e){f(e instanceof Error?e.message:String(e))}finally{o(!1)}},[e.id]),h=(0,Y.useCallback)(async()=>{c(!0),f(null);try{await i()}catch(e){f(e instanceof Error?e.message:String(e)),c(!1)}},[i]);return(0,X.jsxs)(`div`,{className:`flex h-full min-h-[10.5rem] cursor-pointer flex-col rounded-lg bg-surface-panel p-4 shadow-surface transition-colors hover:bg-surface-hover/45`,onClick:r,children:[(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:e.id.trim()||t.cardUntitled}),(0,X.jsx)(`span`,{className:`rounded-full bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:n.customBadge}),(0,X.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:t.transportLabels[e.transport]})]}),p?(0,X.jsx)(`p`,{className:`mt-3 line-clamp-2 break-all font-mono text-xs leading-5 text-fg-subtle`,title:p,children:p}):null,d?(0,X.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:d}):null,l?(0,X.jsx)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:$(n.customCapabilitySummary,{tools:String(l.toolCount),resources:String(l.resourceCount),prompts:String(l.promptCount)})}):null]}),(0,X.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-2 border-t border-edge pt-3`,onClick:e=>e.stopPropagation(),children:[(0,X.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n.connectorDetails}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsxs)(M,{variant:`secondary`,disabled:a,onClick:()=>void m(),children:[a?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(v,{className:`size-4`}),t.testConnection]}),(0,X.jsxs)(M,{variant:`ghost`,disabled:s,onClick:()=>void h(),children:[s?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(R,{className:`size-4`}),t.removeServer]})]})]})]})}function Ft(e,t){return e?t&&e.startsWith(t)?e.slice(t.length):e:``}function It(e,t,n){let r=t.trim().toLowerCase();if(!r)return!0;let i=e.shortName||Ft(e.name,n);return[e.name,i,e.description].filter(Boolean).join(`
|
|
2
|
+
`).toLowerCase().includes(r)}function Lt(e,t){return e?t&&e.startsWith(t)?e.slice(t.length):e:``}function Rt(e){let t=(0,J.c)(29),{tools:n,stripPrefix:r,searchPlaceholder:a,searchEmptyLabel:o}=e,[s,c]=(0,Y.useState)(``),l;if(t[0]!==s||t[1]!==r||t[2]!==n){let e;t[4]!==s||t[5]!==r?(e=e=>It(e,s,r),t[4]=s,t[5]=r,t[6]=e):e=t[6],l=n.filter(e),t[0]=s,t[1]=r,t[2]=n,t[3]=l}else l=t[3];let u=l,d;t[7]===s?d=t[8]:(d=s.trim(),t[7]=s,t[8]=d);let f=d.length>0,p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,X.jsx)(se,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[9]=p):p=t[9];let m,h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=i(`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,A),h=e=>c(e.target.value),t[10]=m,t[11]=h):(m=t[10],h=t[11]);let g;t[12]!==s||t[13]!==a?(g=(0,X.jsxs)(`div`,{className:`relative`,children:[p,(0,X.jsx)(`input`,{type:`search`,value:s,placeholder:a,"aria-label":a,className:m,onChange:h})]}),t[12]=s,t[13]=a,t[14]=g):g=t[14];let _;t[15]!==u.length||t[16]!==f||t[17]!==n.length?(_=f?(0,X.jsxs)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:[u.length,` / `,n.length]}):null,t[15]=u.length,t[16]=f,t[17]=n.length,t[18]=_):_=t[18];let v;t[19]!==g||t[20]!==_?(v=(0,X.jsxs)(`div`,{className:`border-b border-edge px-5 py-3`,children:[g,_]}),t[19]=g,t[20]=_,t[21]=v):v=t[21];let y;t[22]!==u||t[23]!==o||t[24]!==r?(y=(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:u.length===0?(0,X.jsx)(`p`,{className:`text-sm text-fg-muted`,children:o}):(0,X.jsx)(`ul`,{className:`flex flex-col gap-2`,children:u.map((e,t)=>{let n=e.shortName||Lt(e.name,r)||e.name||`?`,i=e.name||`tool-${t}`;return(0,X.jsxs)(`li`,{className:`min-w-0 rounded-lg border border-edge bg-surface-base px-3 py-2.5`,children:[(0,X.jsx)(`div`,{className:`truncate font-mono text-sm font-medium text-fg`,title:e.name===n?n:e.name,children:n}),e.description?(0,X.jsx)(`p`,{className:`mt-1 truncate text-xs leading-relaxed text-fg-muted`,title:e.description,children:e.description}):null]},i)})})}),t[22]=u,t[23]=o,t[24]=r,t[25]=y):y=t[25];let b;return t[26]!==v||t[27]!==y?(b=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function zt(e){let t=(0,J.c)(38),{open:n,onOpenChange:r,serverId:a,title:o,subtitle:s,searchPlaceholder:c,searchEmptyLabel:l,emptyLabel:u,closeLabel:d,tools:p,stripPrefix:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,X.jsx)(fe,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,f)}),t[0]=h):h=t[0];let g;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`fixed left-1/2 top-1/2 flex max-h-[min(88vh,40rem)] w-[min(100%-2rem,min(92vw,36rem))] -translate-x-1/2 -translate-y-1/2 flex-col`,O,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none dark:border-edge`),t[1]=g):g=t[1];let _;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,X.jsx)(x,{className:`size-4 shrink-0 text-accent`,"aria-hidden":!0}),t[2]=_):_=t[2];let v;t[3]===o?v=t[4]:(v=(0,X.jsxs)(G,{className:`flex items-center gap-2 text-base font-semibold text-fg`,children:[_,o]}),t[3]=o,t[4]=v);let y;t[5]!==a||t[6]!==s||t[7]!==p.length?(y=s.replace(`{{serverId}}`,a).replace(`{{count}}`,String(p.length)),t[5]=a,t[6]=s,t[7]=p.length,t[8]=y):y=t[8];let b;t[9]===y?b=t[10]:(b=(0,X.jsx)(ue,{className:`mt-1 text-sm text-fg-muted`,children:y}),t[9]=y,t[10]=b);let S;t[11]!==v||t[12]!==b?(S=(0,X.jsxs)(`div`,{className:`min-w-0`,children:[v,b]}),t[11]=v,t[12]=b,t[13]=S):S=t[13];let C;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,X.jsx)(de,{className:`size-4`,"aria-hidden":!0}),t[14]=C):C=t[14];let w;t[15]===d?w=t[16]:(w=(0,X.jsx)(U,{asChild:!0,children:(0,X.jsx)(M,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 px-0`,"aria-label":d,children:C})}),t[15]=d,t[16]=w);let T;t[17]!==S||t[18]!==w?(T=(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-edge px-5 py-4`,children:[S,w]}),t[17]=S,t[18]=w,t[19]=T):T=t[19];let E;t[20]!==u||t[21]!==n||t[22]!==l||t[23]!==c||t[24]!==a||t[25]!==m||t[26]!==p?(E=p.length>0?(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,X.jsx)(Rt,{tools:p,stripPrefix:m,searchPlaceholder:c,searchEmptyLabel:l},`${a}-${n?`open`:`closed`}`)}):(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:(0,X.jsx)(`p`,{className:`text-sm text-fg-muted`,children:u})}),t[20]=u,t[21]=n,t[22]=l,t[23]=c,t[24]=a,t[25]=m,t[26]=p,t[27]=E):E=t[27];let D;t[28]===d?D=t[29]:(D=(0,X.jsx)(`div`,{className:`flex justify-end border-t border-edge px-5 py-3`,children:(0,X.jsx)(U,{asChild:!0,children:(0,X.jsx)(M,{type:`button`,variant:`secondary`,children:d})})}),t[28]=d,t[29]=D);let k;t[30]!==T||t[31]!==E||t[32]!==D?(k=(0,X.jsxs)(ee,{children:[h,(0,X.jsxs)(L,{className:g,children:[T,E,D]})]}),t[30]=T,t[31]=E,t[32]=D,t[33]=k):k=t[33];let A;return t[34]!==r||t[35]!==n||t[36]!==k?(A=(0,X.jsx)(ce,{open:n,onOpenChange:r,children:k}),t[34]=r,t[35]=n,t[36]=k,t[37]=A):A=t[37],A}var Bt=i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,A);function Vt(e){return e.materialized.type===`composio`?e.materialized.toolkit:null}function Ht(e,t){return e===`write`?t.composioScopeWrite:e===`admin`?t.composioScopeAdmin:t.composioScopeRead}function Ut(e,t){return e.errorCode===`missing_credential`?t.composioHealthMissingCredential:e.errorCode===`unauthorized`?t.composioHealthUnauthorized:e.errorCode===`forbidden`?t.composioHealthForbidden:e.errorCode===`network`?t.composioHealthNetwork:e.errorCode===`timeout`?t.composioHealthTimeout:t.composioHealthDegraded}function Wt({instance:e,t}){let n=Vt(e),[r,o]=(0,Y.useState)([]),[s,c]=(0,Y.useState)([]),[l,u]=(0,Y.useState)([]),[d,f]=(0,Y.useState)([]),[p,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)([]),[_,v]=(0,Y.useState)(``),[y,x]=(0,Y.useState)(`{}`),[S,C]=(0,Y.useState)(null),[w,T]=(0,Y.useState)(null),[E,D]=(0,Y.useState)(`read`),[O,A]=(0,Y.useState)(!1),[j,N]=(0,Y.useState)(null),P=(0,Y.useCallback)(async()=>{if(!(!n||e.materialized.type!==`composio`||e.materialized.role===`credential`)){A(!0),N(null);try{let[t,r,i,a,s,l,d]=await Promise.all([Ve().catch(()=>[]),Xe(n).catch(()=>[]),Ze(20).catch(()=>[]),Ke(n).catch(()=>`read`),$e().catch(()=>[]),Je(n).catch(()=>null),Ue(n).catch(()=>null)]);o(t.filter(e=>e.toolkit.toLowerCase()===n.toLowerCase())),c(r),u(i.filter(e=>!e.toolkit||e.toolkit.toLowerCase()===n.toLowerCase())),D(a),f(s.filter(t=>t.connectorId===e.connectorId)),m(l?.policy??null),g(l?.agents??[]),v(e=>e||r.find(e=>e.scope===`read`&&e.curated)?.slug||``),T(d)}catch(e){N(e instanceof Error?e.message:String(e))}finally{A(!1)}}},[e.connectorId,e.materialized,n]);(0,Y.useEffect)(()=>{P()},[P]);let F=(0,Y.useCallback)(async()=>{if(n){A(!0),N(null);try{let t=await Fe(e.connectorId);if(!t.authorizationUrl)throw Error(`The authorization provider did not return an authorization URL.`);window.open(t.authorizationUrl,`_blank`,`noopener,noreferrer`)}catch(e){N(e instanceof Error?e.message:String(e))}finally{A(!1)}}},[e.connectorId,n]),I=(0,Y.useCallback)(async e=>{if(n){D(e);try{await qe(n,e),await P()}catch(e){N(e instanceof Error?e.message:String(e))}}},[P,n]),L=(0,Y.useCallback)(async(e,t)=>{A(!0),N(null);try{await et(e,t),await P()}catch(e){N(e instanceof Error?e.message:String(e))}finally{A(!1)}},[P]),z=(0,Y.useCallback)(async e=>{if(n){N(null);try{m(await Ye(n,e))}catch(e){N(e instanceof Error?e.message:String(e))}}},[e.connectorId,n]),ee=(0,Y.useCallback)(e=>{p&&z({allowedAgentIds:p.allowedAgentIds.includes(e)?p.allowedAgentIds.filter(t=>t!==e):[...p.allowedAgentIds,e]})},[z,p]),H=(0,Y.useCallback)(async e=>{A(!0),N(null);try{await e(),await P()}catch(e){N(e instanceof Error?e.message:String(e))}finally{A(!1)}},[P]),ne=(0,Y.useCallback)(async()=>{if(!(!n||!_)){A(!0),N(null),C(null);try{let n=JSON.parse(y);if(!n||typeof n!=`object`||Array.isArray(n))throw Error(t.composioMemoryArgumentsObject);let i=p?.allowedAgentIds[0]??h[0]?.id;if(!i)throw Error(t.composioMemoryAgentMissing);C((await Qe({connectorId:e.connectorId,actionId:_,agentId:i,connectionId:r.find(e=>e.isDefault)?.id,arguments:n})).recordId)}catch(e){N(e instanceof Error?e.message:String(e))}finally{A(!1)}}},[h,r,e.connectorId,_,y,p,t,n]);return n?e.materialized.type===`composio`&&e.materialized.role===`credential`?(0,X.jsx)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:t.composioApiKeyStored}):(0,X.jsxs)(`div`,{className:`mt-4 rounded-xl border border-edge bg-surface-base p-3 text-sm`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`font-medium text-fg`,children:$(t.composioToolkitTitle,{toolkit:n})}),(0,X.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:t.composioScopeHint})]}),(0,X.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,X.jsxs)(me,{className:i(Bt,`h-9 w-28 py-1`),value:E,onChange:e=>void I(e.currentTarget.value),children:[(0,X.jsx)(B,{value:`read`,children:t.composioScopeRead}),(0,X.jsx)(B,{value:`write`,children:t.composioScopeWrite}),(0,X.jsx)(B,{value:`admin`,children:t.composioScopeAdmin})]}),(0,X.jsxs)(M,{variant:`secondary`,disabled:O,onClick:()=>void F(),children:[O?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(k,{className:`size-4`}),t.connectOAuth]}),(0,X.jsx)(M,{variant:`ghost`,disabled:O,onClick:()=>void P(),children:t.refresh})]})]}),j?(0,X.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:j}):null,w?(0,X.jsxs)(`div`,{className:i(`mt-3 flex flex-wrap items-center justify-between gap-2 rounded-lg border px-3 py-2 text-xs`,w.status===`connected`?`border-emerald-500/30 bg-emerald-500/5 text-emerald-700`:`border-amber-500/30 bg-amber-500/5 text-amber-700`),children:[(0,X.jsx)(`span`,{children:w.status===`connected`?$(t.composioHealthConnected,{count:String(w.activeConnections)}):w.status===`reauthorization_required`?t.composioHealthReconnect:w.status===`degraded`?Ut(w,t):t.composioHealthDisconnected}),w.recovery===`none`?null:(0,X.jsx)(M,{variant:`ghost`,disabled:O,onClick:()=>void(w.recovery===`retry`?P():F()),children:w.recovery===`retry`?t.composioRetry:t.connectOAuth}),w.status===`degraded`&&w.message?(0,X.jsx)(`p`,{className:`basis-full break-words text-[11px] opacity-80`,children:w.message}):null]}):null,p?(0,X.jsxs)(`div`,{className:`mt-4 grid gap-3 rounded-lg border border-edge bg-surface-panel p-3 md:grid-cols-[minmax(0,180px)_1fr]`,children:[(0,X.jsxs)(`label`,{className:`text-xs font-medium text-fg-subtle`,children:[t.composioConfirmationPolicy,(0,X.jsxs)(me,{className:i(Bt,`mt-1 h-9 py-1`),value:p.confirmationPolicy,onChange:e=>void z({confirmationPolicy:e.currentTarget.value}),children:[(0,X.jsx)(B,{value:`writes`,children:t.composioConfirmWrites}),(0,X.jsx)(B,{value:`always`,children:t.composioConfirmAlways}),(0,X.jsx)(B,{value:`never`,children:t.composioConfirmNever})]})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:t.composioAllowedAgents}),(0,X.jsx)(`p`,{className:`mb-2 text-xs text-fg-muted`,children:p.allowedAgentIds.length?t.composioAllowedAgentsSelected:t.composioAllowedAgentsAll}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:h.map(e=>(0,X.jsx)(`button`,{type:`button`,className:i(`rounded-full border px-2.5 py-1 text-xs transition-colors`,p.allowedAgentIds.includes(e.id)?`border-accent bg-accent/10 text-accent`:`border-edge text-fg-muted hover:text-fg`),onClick:()=>ee(e.id),children:e.name},e.id))})]})]}):null,[`gmail`,`googledrive`,`notion`,`slack`].includes(n)&&s.some(e=>e.scope===`read`&&e.curated)?(0,X.jsxs)(`div`,{className:`mt-4 rounded-lg border border-edge bg-surface-panel p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(te,{className:`mt-0.5 size-4 text-accent`}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:t.composioMemorySync}),(0,X.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.composioMemorySyncHint})]})]}),(0,X.jsxs)(`div`,{className:`mt-3 grid gap-2 md:grid-cols-[minmax(0,240px)_1fr_auto] md:items-end`,children:[(0,X.jsxs)(`label`,{className:`text-xs text-fg-subtle`,children:[t.composioMemoryReadAction,(0,X.jsx)(me,{className:i(Bt,`mt-1 h-9 py-1`),value:_,onChange:e=>v(e.currentTarget.value),children:s.filter(e=>e.scope===`read`&&e.curated).map(e=>(0,X.jsx)(B,{value:e.slug,children:e.name??e.slug},e.slug))})]}),(0,X.jsxs)(`label`,{className:`text-xs text-fg-subtle`,children:[t.composioMemoryArguments,(0,X.jsx)(`input`,{className:i(Bt,`mt-1 h-9 py-1 font-mono text-xs`),value:y,onChange:e=>x(e.currentTarget.value)})]}),(0,X.jsxs)(M,{disabled:O||!_,onClick:()=>void ne(),children:[O?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(te,{className:`size-4`}),t.composioSyncNow]})]}),S?(0,X.jsx)(`p`,{className:`mt-2 text-xs text-emerald-600`,children:$(t.composioMemorySynced,{id:S})}):null]}):null,d.length?(0,X.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,X.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:t.composioPendingApprovals}),d.map(e=>(0,X.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-amber-500/30 bg-amber-500/5 p-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`p`,{className:`truncate font-mono text-xs font-medium text-fg`,children:e.actionId}),(0,X.jsx)(`p`,{className:`mt-1 break-all font-mono text-xs text-fg-subtle`,children:JSON.stringify(e.argumentsPreview)}),(0,X.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:$(t.composioApprovalExpires,{time:new Date(e.expiresAt).toLocaleTimeString()})})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,X.jsxs)(M,{variant:`secondary`,disabled:O,onClick:()=>void L(e.id,`denied`),children:[(0,X.jsx)(de,{className:`size-4`}),t.composioDeny]}),(0,X.jsxs)(M,{disabled:O,onClick:()=>void L(e.id,`approved`),children:[(0,X.jsx)(a,{className:`size-4`}),t.approve]})]})]},e.id))]}):null,(0,X.jsxs)(`div`,{className:`mt-4 grid gap-3 lg:grid-cols-3`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:t.composioConnections}),r.length?r.map(e=>(0,X.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-edge bg-surface-panel p-2`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`truncate font-mono text-xs text-fg`,children:e.accountEmail??e.username??e.workspace??e.providerConnectionId}),(0,X.jsxs)(`p`,{className:`text-xs text-fg-subtle`,children:[e.status,e.isDefault?` · ${t.composioDefaultAccount}`:``]})]}),(0,X.jsx)(`input`,{className:i(Bt,`h-8 py-1 text-xs`),defaultValue:e.alias??``,placeholder:t.composioAccountAlias,onBlur:t=>{t.currentTarget.value!==(e.alias??``)&&H(()=>He(e.id,{alias:t.currentTarget.value}))}}),(0,X.jsxs)(`div`,{className:`flex gap-1`,children:[(0,X.jsx)(M,{variant:`ghost`,className:`size-8 p-0`,title:t.composioMakeDefault,disabled:O||e.isDefault,onClick:()=>void H(async()=>{await He(e.id,{isDefault:!0}),n&&await Ye(n,{selectedConnectionIds:[e.id]})}),children:(0,X.jsx)(ae,{className:i(`size-4`,e.isDefault&&`fill-current`)})}),(0,X.jsx)(M,{variant:`ghost`,className:`size-8 p-0`,title:t.refresh,disabled:O,onClick:()=>void H(()=>We(e.id)),children:(0,X.jsx)(b,{className:`size-4`})}),(0,X.jsx)(M,{variant:`ghost`,className:`size-8 p-0`,title:t.composioRevoke,disabled:O,onClick:()=>{window.confirm(t.composioRevokeConfirm)&&H(()=>Ge(e.id))},children:(0,X.jsx)(R,{className:`size-4 text-red-500`})})]})]},e.id)):(0,X.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.composioConnectionsEmpty})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:t.composioAgentTools}),s.length?s.slice(0,8).map(e=>(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-2`,children:[(0,X.jsx)(`p`,{className:`truncate font-mono text-xs text-fg`,children:e.slug}),(0,X.jsxs)(`p`,{className:`text-xs text-fg-subtle`,children:[Ht(e.scope,t),e.curated?``:` ${t.composioUncuratedSuffix}`]})]},e.slug)):(0,X.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.composioToolsEmpty})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:t.composioRecentTriggers}),l.length?l.slice(0,5).map(e=>(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-2`,children:[(0,X.jsx)(`p`,{className:`truncate text-xs text-fg`,children:e.trigger??e.id}),(0,X.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:new Date(e.at).toLocaleString()})]},`${e.id}-${e.at}`)):(0,X.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.composioTriggersEmpty})]})]})]}):null}var Gt=i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,A);function Kt(e,t){return e?t.healthStatusLabels[e]??e:t.healthNotTested}function qt(e,t){let n={};for(let r of e?.setup.config??[]){let e=t.config?.[r.key]??r.defaultValue??``;n[r.key]=typeof e==`string`?e:JSON.stringify(e,null,2)}return n}function Jt(e,t){let n=t.trim();return e===`json`?n?JSON.parse(n):void 0:e===`number`?n?Number(n):void 0:e===`boolean`?n===`true`:n||void 0}function Yt(e){let t=(0,J.c)(12),{title:n,description:r,meta:a}=e,o;t[0]===r?o=t[1]:(o=r?(0,X.jsx)(F,{delayDuration:300,skipDelayDuration:100,children:(0,X.jsxs)(K,{children:[(0,X.jsx)(he,{asChild:!0,children:(0,X.jsx)(`p`,{tabIndex:0,title:r,className:i(`mt-1 line-clamp-3 cursor-help text-xs leading-5 text-fg-muted`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`),children:r})}),(0,X.jsx)(re,{children:(0,X.jsx)(ie,{side:`top`,align:`start`,sideOffset:6,collisionPadding:12,className:`!z-[10000] max-h-[min(16rem,45vh)] max-w-[min(32rem,calc(100vw-2rem))] overflow-y-auto rounded-md border border-edge bg-surface-panel px-2.5 py-2 text-left text-xs leading-5 text-fg shadow-popover`,children:(0,X.jsx)(`span`,{className:`whitespace-pre-wrap break-words`,children:r})})})]})}):null,t[0]=r,t[1]=o);let s=o,c;t[2]===n?c=t[3]:(c=(0,X.jsx)(`p`,{className:`min-w-0 break-all font-mono text-xs font-medium leading-5 text-fg`,children:n}),t[2]=n,t[3]=c);let l;t[4]===a?l=t[5]:(l=a?(0,X.jsx)(`span`,{className:`shrink-0 rounded-md bg-surface-hover px-1.5 py-0.5 text-[11px] leading-4 text-fg-subtle`,children:a}):null,t[4]=a,t[5]=l);let u;t[6]!==c||t[7]!==l?(u=(0,X.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-3`,children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8];let d;return t[9]!==s||t[10]!==u?(d=(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel px-3 py-2.5`,children:[u,s]}),t[9]=s,t[10]=u,t[11]=d):d=t[11],d}function Xt({instance:e,definition:t,onClose:n,onChanged:r,t:a,mcp:o}){let[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(!1),[m,h]=(0,Y.useState)(null),[g,_]=(0,Y.useState)(`health`),[y,b]=(0,Y.useState)(!1),[C,T]=(0,Y.useState)(()=>qt(t,e)),[E,O]=(0,Y.useState)(null),A=t?.setup.config??[],j=e.materialized.type===`mcp`&&A.length>0&&(t?.setup.secrets??[]).length===0,N=m?m.toolCount:e.usage.lastToolCount,P=(0,Y.useMemo)(()=>{let t=[[`health`,p,a.detailHealth],[`tools`,x,`${a.detailTools} ${m?m.toolCount:e.usage.lastToolCount??``}`],[`resources`,te,`${a.detailResources} ${m?m.resourceCount:e.usage.lastResourceCount??``}`],[`prompts`,S,`${a.detailPrompts} ${m?m.promptCount:e.usage.lastPromptCount??``}`],[`permissions`,k,a.detailPermissions]];return j?[...t,[`config`,te,a.connectorConfigLabel]]:t},[m,e.usage.lastPromptCount,e.usage.lastResourceCount,e.usage.lastToolCount,j,a]),F=(0,Y.useCallback)(async()=>{c(!0),O(null);try{let t=await Be(e.instanceId);h(t),t.toolCount>0&&_(`tools`),r()}catch(e){O(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e.instanceId,r]),I=(0,Y.useCallback)(async()=>{u(!0),O(null);try{await ze(e.instanceId),await r(),n()}catch(e){O(e instanceof Error?e.message:String(e)),u(!1)}},[e.instanceId,r,n]),z=(0,Y.useCallback)(async()=>{if(!(!t||!j)){f(!0),O(null);try{let n={};for(let e of t.setup.config??[]){let t=Jt(e.type,C[e.key]??``);t!==void 0&&(n[e.key]=t)}await Re(e.instanceId,{config:n}),await r(),_(`health`)}catch(e){O(e instanceof Error?e.message:String(e))}finally{f(!1)}}},[C,t,e.instanceId,r,j]);return(0,X.jsxs)(ce,{open:!0,onOpenChange:e=>{e||n()},children:[(0,X.jsxs)(ee,{children:[(0,X.jsx)(fe,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,X.jsxs)(L,{className:i(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex h-[min(100vh-2rem,44rem)] w-[min(100%-2rem,min(92vw,54rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-panel shadow-float outline-none dark:border-edge`),children:[(0,X.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge-subtle px-6 py-5`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,X.jsx)(ve,{connector:t,size:`lg`}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(G,{className:`text-base font-semibold text-fg`,children:e.displayName}),(0,X.jsx)(ue,{className:`mt-1 text-sm text-fg-muted`,children:e.materialized.type===`mcp`?$(a.mcpServerRuntime,{serverId:e.materialized.serverId}):$(a.runtimeLabel,{runtime:e.materialized.type})})]})]}),(0,X.jsx)(U,{asChild:!0,children:(0,X.jsxs)(`button`,{type:`button`,className:i(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,D.focusRingPanel),"aria-label":a.modalClose,children:[(0,X.jsx)(de,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`sr-only`,children:a.modalClose})]})})]}),(0,X.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:[E?(0,X.jsx)(`p`,{className:`mb-4 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:E}):null,(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:P.map(([e,t,n])=>(0,X.jsxs)(`button`,{type:`button`,className:i(`inline-flex h-8 items-center gap-1.5 rounded-md border px-2.5 text-xs`,g===e?`border-accent bg-accent-soft text-accent-fg`:`border-edge bg-surface-base text-fg-muted hover:text-fg`),onClick:()=>_(e),children:[(0,X.jsx)(t,{className:`size-3.5`,"aria-hidden":!0}),n]},e))}),(0,X.jsxs)(`div`,{className:`mt-4 rounded-xl border border-edge bg-surface-base p-3 text-sm`,children:[g===`health`?(0,X.jsxs)(`div`,{className:`space-y-1 text-fg-muted`,children:[(0,X.jsxs)(`p`,{children:[a.statusLabel,` `,(0,X.jsx)(`span`,{className:m?.ok?`font-medium text-emerald-700 dark:text-emerald-300`:`font-medium text-fg`,children:Kt(m?.status??e.usage.lastHealthStatus,a)})]}),(0,X.jsxs)(`p`,{children:[a.lastCheckLabel,` `,e.usage.lastHealthCheckAt?new Date(e.usage.lastHealthCheckAt).toLocaleString():a.never]}),m?.action?(0,X.jsx)(`p`,{children:m.action}):null]}):null,g===`tools`?m?.tools.length?(0,X.jsxs)(`div`,{className:`grid gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`p`,{className:`text-xs text-fg-muted`,children:$(a.toolsAvailable,{count:String(m.tools.length)})}),(0,X.jsx)(M,{type:`button`,variant:`ghost`,className:`h-7 text-xs`,onClick:()=>b(!0),children:o.viewAllTools})]}),(0,X.jsx)(`div`,{className:`grid gap-2`,children:m.tools.slice(0,8).map(e=>(0,X.jsx)(Yt,{title:e.shortName??e.name,description:e.description},e.name))})]}):(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,X.jsx)(`p`,{className:`text-fg-muted`,children:N?$(a.toolsLastCheckSummary,{count:String(N)}):a.toolsRunTestHint}),(0,X.jsxs)(M,{type:`button`,variant:`secondary`,disabled:s,onClick:()=>void F(),children:[s?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(v,{className:`size-4`}),a.test]})]}):null,g===`resources`?m?.resources.length?(0,X.jsx)(`div`,{className:`grid gap-2`,children:m.resources.slice(0,8).map(e=>(0,X.jsx)(Yt,{title:e.title??e.name,description:e.uri,meta:e.mimeType},e.uri))}):(0,X.jsx)(`p`,{className:`text-fg-muted`,children:a.resourcesRunTestHint}):null,g===`prompts`?m?.prompts.length?(0,X.jsx)(`div`,{className:`grid gap-2`,children:m.prompts.slice(0,8).map(e=>(0,X.jsx)(Yt,{title:e.title??e.name,description:e.description,meta:e.argumentCount?$(a.promptArgumentCount,{count:String(e.argumentCount)}):void 0},e.name))}):(0,X.jsx)(`p`,{className:`text-fg-muted`,children:a.promptsRunTestHint}):null,g===`permissions`?(0,X.jsxs)(`div`,{className:`space-y-1 text-fg-muted`,children:[(0,X.jsx)(`p`,{children:$(a.secretsConfigured,{count:String(Object.values(e.secretStatus).filter(Boolean).length)})}),(0,X.jsx)(`p`,{children:e.materialized.type===`mcp`?$(a.runtimeServerLabel,{runtime:e.materialized.type.toUpperCase(),serverId:e.materialized.serverId}):$(a.runtimeLabel,{runtime:e.materialized.type.toUpperCase()})}),(0,X.jsx)(`p`,{children:e.materialized.type===`mcp`?a.mcpPolicyHint:a.connectorPolicyHint})]}):null,g===`config`&&j?(0,X.jsx)(`div`,{className:`grid gap-3`,children:A.map(e=>(0,X.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.label}),e.description?(0,X.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:e.description}):null,(0,X.jsx)(`input`,{className:Gt,value:C[e.key]??``,placeholder:e.placeholder,onChange:t=>T(n=>({...n,[e.key]:t.currentTarget.value}))})]},e.key))}):null]}),e.materialized.type===`composio`?(0,X.jsx)(Wt,{instance:e,t:a}):null]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2 border-t border-edge-subtle px-6 py-4`,children:[(0,X.jsx)(M,{variant:`secondary`,onClick:n,children:a.modalClose}),g===`config`&&j?(0,X.jsxs)(M,{variant:`primary`,disabled:d,onClick:()=>void z(),children:[d?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(w,{className:`size-4`}),a.modalSave]}):null,e.materialized.type===`mcp`?(0,X.jsxs)(M,{variant:`secondary`,disabled:s,onClick:()=>void F(),children:[s?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(v,{className:`size-4`}),a.test]}):null,(0,X.jsxs)(M,{variant:`ghost`,disabled:l,onClick:()=>void I(),children:[l?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(R,{className:`size-4`}),a.remove]})]})]})]}),e.materialized.type===`mcp`?(0,X.jsx)(zt,{open:y,onOpenChange:b,serverId:e.materialized.serverId,title:$(a.installedToolsDialogTitle,{name:e.displayName}),subtitle:a.installedToolsDialogSubtitle,searchPlaceholder:o.toolsDialogSearchPlaceholder,searchEmptyLabel:o.toolsDialogSearchEmpty,emptyLabel:a.toolsRunTestHint,closeLabel:o.toolsDialogClose,tools:m?.tools??[],stripPrefix:`${e.materialized.serverId}__`}):null]})}function Zt({instance:e,definition:t,highlighted:n=!1,onOpenDetails:r,onChanged:a,t:o}){let[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(null),p=(0,Y.useCallback)(async()=>{c(!0),f(null);try{await Be(e.instanceId),await a()}catch(e){f(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e.instanceId,a]),m=(0,Y.useCallback)(async()=>{u(!0),f(null);try{await ze(e.instanceId),await a()}catch(e){f(e instanceof Error?e.message:String(e)),u(!1)}},[e.instanceId,a]),h=e.usage.lastHealthStatus?o.healthStatusLabels[e.usage.lastHealthStatus]??e.usage.lastHealthStatus:o.healthNotTested,g=e.usage.lastToolCount??0,_=!!(t?.setup.config?.length&&!t.setup.secrets?.length&&e.materialized.type===`mcp`);return(0,X.jsxs)(`div`,{className:i(`flex h-full min-h-[10.5rem] cursor-pointer flex-col rounded-lg bg-surface-panel p-4 shadow-surface transition-colors hover:bg-surface-hover/45`,n&&`ring-2 ring-accent/45 ring-offset-2 ring-offset-surface-panel`),onClick:()=>r(e),children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[(0,X.jsx)(ve,{connector:t}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:e.displayName}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-emerald-500/30 bg-emerald-500/10 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300`,children:[(0,X.jsx)(z,{className:`size-3`,"aria-hidden":!0}),o.connectedBadge]}),_?(0,X.jsx)(`span`,{className:`rounded-full bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:o.connectorConfigLabel}):null]}),(0,X.jsx)(`p`,{className:`mt-3 line-clamp-2 break-all text-sm leading-5 text-fg-muted`,children:e.materialized.type===`mcp`?$(o.mcpServerRuntime,{serverId:e.materialized.serverId}):$(o.runtimeLabel,{runtime:e.materialized.type})}),(0,X.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 text-xs text-fg-muted`,children:[(0,X.jsxs)(`span`,{className:`rounded-md bg-surface-base px-2 py-1`,children:[o.statusLabel,` `,h]}),(0,X.jsx)(`span`,{className:`rounded-md bg-surface-base px-2 py-1`,children:$(o.toolsAvailable,{count:String(g)})})]}),d?(0,X.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:d}):null]})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-2 border-t border-edge pt-3`,onClick:e=>e.stopPropagation(),children:[(0,X.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:o.connectorDetails}),(0,X.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[e.materialized.type===`mcp`?(0,X.jsxs)(M,{variant:`secondary`,disabled:s,onClick:()=>void p(),children:[s?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(v,{className:`size-4`}),o.test]}):null,(0,X.jsxs)(M,{variant:`ghost`,disabled:l,onClick:()=>void m(),children:[l?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(R,{className:`size-4`}),o.remove]})]})]})]})}var Qt=i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,A),$t=i(Qt,`min-h-28 font-mono`);function en(e,t){return e?t.healthStatusLabels[e]??e:t.healthStatusPending}function tn(e,t){let n=t.trim();return e===`json`?n?JSON.parse(n):void 0:e===`number`?n?Number(n):void 0:e===`boolean`?n===`true`:n||void 0}function nn(e,t){let n={};for(let t of e.setup.secrets??[])n[t.key]=``;let r={};for(let t of e.setup.config??[])r[t.key]=t.defaultValue===void 0?``:typeof t.defaultValue==`string`?t.defaultValue:JSON.stringify(t.defaultValue,null,2);return{connector:e,secrets:n,config:r,installing:!1,error:null,result:null,health:null,...t?{store:t}:{}}}function rn(e){let t=(0,J.c)(12),{title:n,items:r}=e;if(r.length===0)return null;let i;t[0]===n?i=t[1]:(i=(0,X.jsx)(`div`,{className:`border-b border-edge px-3 py-2 text-xs font-semibold text-fg`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=r.slice(0,12).map(an),t[2]=r,t[3]=a);let o;t[4]===r.length?o=t[5]:(o=r.length>12?(0,X.jsxs)(`div`,{className:`px-3 py-2 text-xs text-fg-subtle`,children:[`+`,r.length-12]}):null,t[4]=r.length,t[5]=o);let s;t[6]!==a||t[7]!==o?(s=(0,X.jsxs)(`div`,{className:`max-h-40 overflow-y-auto`,children:[a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8];let c;return t[9]!==i||t[10]!==s?(c=(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel`,children:[i,s]}),t[9]=i,t[10]=s,t[11]=c):c=t[11],c}function an(e){return(0,X.jsxs)(`div`,{className:`border-b border-edge-subtle px-3 py-2 last:border-b-0`,children:[(0,X.jsx)(`div`,{className:`break-words font-mono text-xs font-medium text-fg`,children:e.title}),e.description?(0,X.jsx)(`div`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.id)}function on({draft:e,onChange:t,onClose:n,onInstalled:r,t:a}){let{connector:o}=e,s=e.result?`complete`:e.installing?`health`:`configure`,c=[{id:`configure`,label:a.connectStepConfigure},{id:`health`,label:a.connectStepVerify},{id:`complete`,label:a.connectStepReady}],l=(0,Y.useCallback)(async()=>{t({...e,installing:!0,error:null,result:null,health:null});try{let n={};for(let t of o.setup.config??[]){let r=tn(t.type,e.config[t.key]??``);r!==void 0&&(n[t.key]=r)}let i=e.store?await ke(e.store.packageName,{secrets:e.secrets,config:n},e.store.version):await Ie(o.id,{secrets:e.secrets,config:n,definition:o.source===`registry`?o:void 0}),a=null;try{a=await Be(i.instanceId)}catch{a=null}t({...e,installing:!1,result:i,health:a}),await r(i)}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}},[o,e,t,r]);return(0,X.jsx)(ce,{open:!0,onOpenChange:e=>{e||n()},children:(0,X.jsxs)(ee,{children:[(0,X.jsx)(fe,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,X.jsxs)(L,{className:i(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex max-h-[min(100vh-2rem,44rem)] w-[min(100%-2rem,min(92vw,48rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-panel shadow-float dark:border-edge`),children:[(0,X.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge-subtle px-6 py-5`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,X.jsx)(ve,{connector:o,size:`lg`}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(G,{className:`text-base font-semibold text-fg`,children:$(a.connectDialogTitle,{name:o.displayName})}),(0,X.jsx)(ue,{className:`mt-1 line-clamp-3 text-sm text-fg-muted`,children:o.description})]})]}),(0,X.jsx)(U,{asChild:!0,children:(0,X.jsxs)(`button`,{type:`button`,className:i(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,D.focusRingPanel),"aria-label":a.modalClose,children:[(0,X.jsx)(de,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`sr-only`,children:a.modalClose})]})})]}),(0,X.jsxs)(`div`,{className:`min-h-0 overflow-y-auto px-6 py-5`,children:[(0,X.jsx)(`div`,{className:`mb-5 grid grid-cols-3 gap-2`,"aria-label":a.connectProgressAria,children:c.map((e,t)=>{let n=c.findIndex(e=>e.id===s);return(0,X.jsxs)(`div`,{className:i(`rounded-xl border px-3 py-2 text-xs font-medium`,t===n?`border-accent bg-accent-soft text-accent-fg`:t<n?`border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/40 dark:text-emerald-200`:`border-edge bg-surface-base text-fg-muted`),children:[(0,X.jsxs)(`span`,{className:`mr-1 tabular-nums`,children:[t+1,`.`]}),e.label]},e.id)})}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[o.integrationStrategy?(0,X.jsx)(`div`,{className:`rounded-xl border border-accent/20 bg-accent-soft/60 px-4 py-3 text-sm text-accent-fg`,children:o.integrationStrategy.lane===`mcp`?a.integrationStrategyMcpHint:o.integrationStrategy.lane===`native`?a.integrationStrategyNativeHint:a.integrationStrategyComposioHint}):null,e.store?(0,X.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-base p-4`,children:[(0,X.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.detailPermissions}),(0,X.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:[(e.store.permissions.data??[]).map(e=>(0,X.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-panel px-2 py-1 text-xs text-fg-muted`,children:e},e)),(e.store.permissions.networkDomains??[]).map(e=>(0,X.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-panel px-2 py-1 text-xs text-fg-muted`,children:e},e)),(0,X.jsx)(`span`,{className:`rounded-md border border-emerald-500/30 bg-emerald-500/10 px-2 py-1 text-xs text-emerald-700 dark:text-emerald-300`,children:a.storeLocalExecDenied})]})]}):null,(o.setup.secrets??[]).map(n=>(0,X.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.label}),n.description?(0,X.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n.description}):null,(0,X.jsx)(T,{value:e.secrets[n.key]??``,onChange:r=>t({...e,secrets:{...e.secrets,[n.key]:r},error:null}),labels:a.secretInputLabels,placeholder:n.required?a.requiredPlaceholder:a.optionalPlaceholder})]},n.key)),(o.setup.config??[]).map(n=>(0,X.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.label}),n.type===`json`?(0,X.jsx)(`textarea`,{className:$t,value:e.config[n.key]??``,placeholder:n.placeholder,onChange:r=>t({...e,config:{...e.config,[n.key]:r.currentTarget.value},error:null})}):(0,X.jsx)(`input`,{className:Qt,value:e.config[n.key]??``,placeholder:n.placeholder,onChange:r=>t({...e,config:{...e.config,[n.key]:r.currentTarget.value},error:null})})]},n.key)),e.installing?(0,X.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-base p-4 text-sm text-fg-muted`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 font-medium text-fg`,children:[(0,X.jsx)(V,{className:`size-4 animate-spin text-accent`,"aria-hidden":!0}),a.connectingTitle]}),(0,X.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:a.connectingHint})]}):null,e.error?(0,X.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:e.error}):null,e.result?(0,X.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-base p-4 text-sm text-fg-muted`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`font-medium text-fg`,children:$(a.connectedAs,{target:e.result.materialized.type===`mcp`?e.result.materialized.serverId:e.result.instanceId})}),(0,X.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:$(a.runtimeLabel,{runtime:e.result.materialized.type.toUpperCase()})})]}),(0,X.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,e.health?.ok?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e.health?`bg-amber-500/10 text-amber-700 dark:text-amber-300`:`bg-surface-hover text-fg-muted`),children:e.health?.ok?a.healthStatusHealthy:en(e.health?.status,a)})]}),e.health?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`mt-3 grid gap-2 text-xs sm:grid-cols-3`,children:[(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel px-3 py-2`,children:[(0,X.jsx)(`div`,{className:`font-semibold text-fg`,children:e.health.toolCount}),(0,X.jsx)(`div`,{children:a.toolsMetric})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel px-3 py-2`,children:[(0,X.jsx)(`div`,{className:`font-semibold text-fg`,children:e.health.resourceCount}),(0,X.jsx)(`div`,{children:a.resourcesMetric})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel px-3 py-2`,children:[(0,X.jsx)(`div`,{className:`font-semibold text-fg`,children:e.health.promptCount}),(0,X.jsx)(`div`,{children:a.promptsMetric})]})]}),(0,X.jsxs)(`div`,{className:`mt-3 grid gap-2`,children:[(0,X.jsx)(rn,{title:a.detailTools,items:e.health.tools.map(e=>({id:e.name,title:e.shortName??e.name,description:e.description}))}),(0,X.jsx)(rn,{title:a.detailResources,items:e.health.resources.map(e=>({id:e.uri,title:e.title??e.name??e.uri,description:e.description??e.uri}))}),(0,X.jsx)(rn,{title:a.detailPrompts,items:e.health.prompts.map(e=>({id:e.name,title:e.title??e.name,description:e.description??$(a.promptArgumentCount,{count:String(e.argumentCount)})}))})]})]}):(0,X.jsx)(`p`,{className:`mt-3`,children:a.installedWithoutHealth}),e.health?.action?(0,X.jsx)(`p`,{className:`mt-3 text-xs text-fg-subtle`,children:e.health.action}):null]}):null]})]}),(0,X.jsx)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge-subtle px-6 py-4`,children:(0,X.jsxs)(M,{variant:`primary`,disabled:!!e.result||e.installing,onClick:()=>void l(),children:[e.installing?(0,X.jsx)(V,{className:`size-4 animate-spin`}):e.result?(0,X.jsx)(z,{className:`size-4`}):(0,X.jsx)(H,{className:`size-4`}),e.result?a.connectedBadge:a.connect]})})]})]})})}function sn(e,t){let n=e.length+1,r=`server-${n}`,i=new Set([...e.map(e=>e.id.trim()),...t]);for(;i.has(r);)n+=1,r=`server-${n}`;return Ct(r)}function cn(e,t,n){let r=e.key.trim();if(r)return`key:${r}`;let i=e.value.trim();return i?`value:${i}`:`empty:${n.slice(0,t).filter(e=>!e.key.trim()&&!e.value.trim()).length}`}function ln(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,A)}function un({label:e,optionalLabel:t,addLabel:n,removeHeaderAria:r,pasteLabel:a,pasteFailed:o,keyPlaceholder:s,valuePlaceholder:c,headers:l,onChange:u}){let d=(e,t)=>{u(l.map((n,r)=>r===e?{...n,...t}:n))},f=()=>{u([...l,{key:``,value:``}])},p=e=>{let t=l.filter((t,n)=>n!==e);u(t.length>0?t:[{key:``,value:``}])},m=async()=>{try{let e=await _();if(!e){window.alert(o);return}let t=mt(e);if(!t?.length){window.alert(o);return}u(t)}catch{window.alert(o)}};return(0,X.jsxs)(`div`,{className:`flex flex-col gap-2 md:col-span-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[(0,X.jsx)(`span`,{children:e}),t?(0,X.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:t}):null]}),(0,X.jsxs)(M,{type:`button`,variant:`ghost`,className:`h-8 gap-1.5 px-2 text-xs`,onClick:()=>void m(),children:[(0,X.jsx)(W,{className:`size-3.5`,"aria-hidden":!0}),a]})]}),(0,X.jsx)(`div`,{className:`flex flex-col gap-2`,children:l.map((e,t)=>(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`input`,{className:i(ln(),`min-w-0 flex-1 font-mono text-xs`),value:e.key,placeholder:s,onChange:e=>d(t,{key:e.target.value})}),(0,X.jsx)(`input`,{className:i(ln(),`min-w-0 flex-[1.4] font-mono text-xs`),value:e.value,placeholder:c,onChange:e=>d(t,{value:e.target.value})}),(0,X.jsx)(M,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 px-0`,disabled:l.length<=1&&!e.key&&!e.value,onClick:()=>p(t),"aria-label":r,children:(0,X.jsx)(R,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})})]},cn(e,t,l)))}),(0,X.jsxs)(`button`,{type:`button`,className:i(`self-start text-sm text-accent hover:underline`,D.press),onClick:f,children:[`+ `,n]})]})}var dn=[`stdio`,`sse`,`streamable-http`];function fn(e){let t=(0,J.c)(11),{label:n,description:r,required:i,children:a}=e,o;t[0]===i?o=t[1]:(o=i?(0,X.jsx)(`span`,{className:`ml-0.5 text-danger`,children:`*`}):null,t[0]=i,t[1]=o);let s;t[2]!==n||t[3]!==o?(s=(0,X.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[n,o]}),t[2]=n,t[3]=o,t[4]=s):s=t[4];let c;t[5]===r?c=t[6]:(c=r?(0,X.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-subtle`,children:r}):null,t[5]=r,t[6]=c);let l;return t[7]!==a||t[8]!==s||t[9]!==c?(l=(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[s,a,c]}),t[7]=a,t[8]=s,t[9]=c,t[10]=l):l=t[10],l}function pn(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,A)}function mn(e){let t=(0,J.c)(29),{row:n,t:r,onUpdate:a,idConflictMessage:o,variant:s}=e,c=s===void 0?`all`:s,l=c===`all`||c===`basic`,u=c===`all`||c===`advanced`,d;t[0]!==o||t[1]!==a||t[2]!==n.id||t[3]!==n.transport||t[4]!==l||t[5]!==r?(d=l?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fn,{label:r.transportLabel,required:!0,children:(0,X.jsx)(me,{className:pn(),value:n.transport,onChange:e=>a({transport:e.target.value}),children:dn.map(e=>(0,X.jsx)(B,{value:e,children:r.transportLabels[e]},e))})}),(0,X.jsxs)(fn,{label:r.serverIdLabel,required:!0,children:[(0,X.jsx)(`input`,{className:pn(),value:n.id,placeholder:r.serverIdPlaceholder,onChange:e=>a({id:e.target.value})}),o?(0,X.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-300`,children:o}):null]})]}):null,t[0]=o,t[1]=a,t[2]=n.id,t[3]=n.transport,t[4]=l,t[5]=r,t[6]=d):d=t[6];let f;t[7]!==a||t[8]!==n.argsText||t[9]!==n.command||t[10]!==n.cwd||t[11]!==n.envJson||t[12]!==n.headers||t[13]!==n.transport||t[14]!==n.url||t[15]!==u||t[16]!==l||t[17]!==r||t[18]!==c?(f=n.transport===`stdio`?(0,X.jsxs)(X.Fragment,{children:[l?(0,X.jsx)(`div`,{className:c===`basic`?`md:col-span-2`:void 0,children:(0,X.jsx)(fn,{label:r.commandLabel,required:!0,children:(0,X.jsx)(`input`,{className:pn(),value:n.command,onChange:e=>a({command:e.target.value})})})}):null,u?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fn,{label:r.argsLabel,description:r.argsHint,children:(0,X.jsx)(`input`,{className:pn(),value:n.argsText,onChange:e=>a({argsText:e.target.value})})}),(0,X.jsx)(fn,{label:r.cwdLabel,children:(0,X.jsx)(`input`,{className:pn(),value:n.cwd,onChange:e=>a({cwd:e.target.value})})}),(0,X.jsx)(fn,{label:r.envLabel,description:r.envHint,children:(0,X.jsx)(`textarea`,{className:i(pn(),`min-h-[4rem] font-mono text-xs`),value:n.envJson,onChange:e=>a({envJson:e.target.value})})})]}):null]}):(0,X.jsxs)(X.Fragment,{children:[l?(0,X.jsx)(`div`,{className:`md:col-span-2`,children:(0,X.jsx)(fn,{label:r.urlLabel,required:!0,children:(0,X.jsx)(`input`,{className:i(pn(),`font-mono text-xs`),value:n.url,placeholder:`https://example.com/mcp`,onChange:e=>a({url:e.target.value})})})}):null,u?(0,X.jsx)(un,{label:r.headersLabel,optionalLabel:r.optionalSuffix,addLabel:r.addHeader,removeHeaderAria:r.removeHeader,pasteLabel:r.pasteHeaders,pasteFailed:r.pasteHeadersFailed,keyPlaceholder:r.headerKeyPlaceholder,valuePlaceholder:r.headerValuePlaceholder,headers:n.headers,onChange:e=>a({headers:e})}):null]}),t[7]=a,t[8]=n.argsText,t[9]=n.command,t[10]=n.cwd,t[11]=n.envJson,t[12]=n.headers,t[13]=n.transport,t[14]=n.url,t[15]=u,t[16]=l,t[17]=r,t[18]=c,t[19]=f):f=t[19];let p;t[20]!==a||t[21]!==n||t[22]!==u||t[23]!==r?(p=u?(0,X.jsx)(fn,{label:r.timeoutLabel,description:r.timeoutHint,children:(0,X.jsx)(`input`,{type:`number`,min:1,max:600,className:pn(),value:jt(n),placeholder:r.timeoutPlaceholder,onChange:e=>a({connectionTimeoutMs:Mt(e.target.value)})})}):null,t[20]=a,t[21]=n,t[22]=u,t[23]=r,t[24]=p):p=t[24];let m;return t[25]!==d||t[26]!==f||t[27]!==p?(m=(0,X.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[d,f,p]}),t[25]=d,t[26]=f,t[27]=p,t[28]=m):m=t[28],m}function hn(e,t){if(e.shortName)return e.shortName;let n=`${t.trim()}__`;return n&&e.name.startsWith(n)?e.name.slice(n.length):e.name}function gn(e){let t=(0,J.c)(13),{tool:n,serverId:r}=e,a;t[0]!==r||t[1]!==n?(a=hn(n,r),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o=a,s=n.name===o?o:n.name,c;t[3]===n.description?c=t[4]:(c=n.description?.trim(),t[3]=n.description,t[4]=c);let l=c,u;t[5]!==o||t[6]!==s?(u=(0,X.jsx)(`p`,{className:`break-all font-mono text-xs font-medium leading-5 text-fg`,title:s,children:o}),t[5]=o,t[6]=s,t[7]=u):u=t[7];let d;t[8]===l?d=t[9]:(d=l?(0,X.jsx)(F,{delayDuration:300,skipDelayDuration:100,children:(0,X.jsxs)(K,{children:[(0,X.jsx)(he,{asChild:!0,children:(0,X.jsx)(`p`,{tabIndex:0,title:l,className:i(`mt-1 line-clamp-3 cursor-help text-xs leading-5 text-fg-muted`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`),children:l})}),(0,X.jsx)(re,{children:(0,X.jsx)(ie,{side:`top`,align:`start`,sideOffset:6,collisionPadding:12,className:`!z-[10000] max-h-[min(16rem,45vh)] max-w-[min(32rem,calc(100vw-2rem))] overflow-y-auto rounded-md border border-edge bg-surface-panel px-2.5 py-2 text-left text-xs leading-5 text-fg shadow-popover`,children:(0,X.jsx)(`span`,{className:`whitespace-pre-wrap break-words`,children:l})})})]})}):null,t[8]=l,t[9]=d);let f;return t[10]!==u||t[11]!==d?(f=(0,X.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-edge bg-surface-panel px-3 py-2.5`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function _n({open:e,mode:t,initialRow:n,existingCustomServers:r,sessionIdleTtlMinutes:a,config:o,managedServerIds:s,t:c,cs:l,onClose:u,onSaved:d}){let[f,p]=(0,Y.useState)(n),[h,g]=(0,Y.useState)(!1),[_,y]=(0,Y.useState)(!1),[b,S]=(0,Y.useState)(null),[C,w]=(0,Y.useState)(!1),[T,E]=(0,Y.useState)({status:`idle`}),[O,k]=(0,Y.useState)(null),A=n.id.trim(),j=f.id.trim()!==A&&s.has(f.id.trim())||s.has(f.id.trim())&&t===`add`?c.reservedServerId:void 0,N=f.id.trim()&&r.some(e=>e.clientKey!==n.clientKey&&e.id.trim()===f.id.trim())?l.duplicateServerId:void 0,P=f.id.trim().length>0&&!j&&!N&&(f.transport===`stdio`?f.command.trim().length>0:f.url.trim().length>0),F=Nt(f),I=(0,Y.useCallback)(async()=>{if(f.id.trim()){y(!0),S(null),E({status:`loading`});try{E({status:`ok`,tools:(await At(f.id.trim(),Tt(f))).tools})}catch(e){E({status:`error`,message:e instanceof Error?e.message:String(e)})}finally{y(!1)}}},[f]),R=(0,Y.useCallback)(async()=>{if(!(!P||h)){g(!0),S(null);try{let e=r.filter(e=>!(t===`edit`&&e.clientKey===n.clientKey));e.push(f),await Et({sessionIdleTtlMinutes:a,servers:e.sort((e,t)=>e.id.localeCompare(t.id))},vt(o)),await d(),u()}catch(e){S(e instanceof Error?e.message:String(e))}finally{g(!1)}}},[P,o,r,n.clientKey,t,u,d,A,f,h,a]);return e?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ce,{open:e,onOpenChange:e=>{e||u()},children:(0,X.jsxs)(ee,{children:[(0,X.jsx)(fe,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,X.jsxs)(L,{className:i(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex h-[min(100vh-2rem,44rem)] w-[min(100%-2rem,min(92vw,48rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-panel shadow-float dark:border-edge`),children:[(0,X.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge-subtle px-6 py-5`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(G,{className:`text-base font-semibold text-fg`,children:t===`add`?l.addCustomServerTitle:l.editCustomServerTitle}),(0,X.jsx)(ue,{className:`mt-1 text-sm text-fg-muted`,children:t===`add`?l.addCustomServerHint:l.editCustomServerHint})]}),(0,X.jsx)(U,{asChild:!0,children:(0,X.jsxs)(`button`,{type:`button`,className:i(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,D.focusRingPanel),"aria-label":l.modalClose,children:[(0,X.jsx)(de,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`sr-only`,children:l.modalClose})]})})]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,X.jsx)(`section`,{className:`rounded-xl border border-edge bg-surface-base p-4`,children:(0,X.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-semibold text-fg`,children:[(0,X.jsx)(m,{className:`size-4 text-accent`,"aria-hidden":!0}),f.id.trim()||c.cardUntitled]}),(0,X.jsx)(`p`,{className:`mt-1 break-all font-mono text-xs leading-5 text-fg-muted`,children:F||(f.transport===`stdio`?c.commandLabel:c.urlLabel)})]}),(0,X.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:c.transportLabels[f.transport]})]})}),(0,X.jsxs)(`section`,{children:[(0,X.jsxs)(`div`,{className:`mb-3`,children:[(0,X.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.connectorBasicConfigTitle}),(0,X.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:l.connectorBasicConfigHint})]}),(0,X.jsx)(mn,{row:f,t:c,variant:`basic`,onUpdate:e=>{p(t=>({...t,...e})),S(null)},idConflictMessage:j??N})]}),T.status===`ok`?(0,X.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base p-3`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,X.jsx)(x,{className:`size-4 text-accent`,"aria-hidden":!0}),T.tools.length===0?c.toolsEmpty:c.toolsTitle.replace(`{{count}}`,String(T.tools.length))]}),T.tools.length>0?(0,X.jsx)(M,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,onClick:()=>k(T.tools),children:c.viewAllTools}):null]}),T.tools.length>0?(0,X.jsx)(`div`,{className:`mt-3 grid gap-2`,children:T.tools.slice(0,6).map((e,t)=>(0,X.jsx)(gn,{tool:e,serverId:f.id},e.name||`tool-${t}`))}):null]}):null,T.status===`error`?(0,X.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:T.message}):null,b?(0,X.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:b}):null,(0,X.jsxs)(`details`,{open:C,onToggle:e=>w(e.currentTarget.open),className:`group rounded-xl border border-edge bg-surface-base`,children:[(0,X.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center gap-2 px-4 py-3 text-sm font-medium text-fg hover:text-fg [&::-webkit-details-marker]:hidden`,children:[(0,X.jsx)(q,{className:`size-4 text-fg-muted transition-transform group-open:rotate-180`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`group-open:hidden`,children:l.connectorShowAdvancedConfig}),(0,X.jsx)(`span`,{className:`hidden group-open:inline`,children:l.connectorHideAdvancedConfig})]}),(0,X.jsx)(`div`,{className:`border-t border-edge px-4 py-4`,children:(0,X.jsx)(mn,{row:f,t:c,variant:`advanced`,onUpdate:e=>{p(t=>({...t,...e})),S(null)}})})]})]})}),(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2 border-t border-edge-subtle px-6 py-4`,children:[(0,X.jsxs)(M,{variant:`secondary`,disabled:!f.id.trim()||_,onClick:()=>void I(),children:[_?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(v,{className:`size-4`}),c.testConnection]}),(0,X.jsx)(U,{asChild:!0,children:(0,X.jsx)(M,{variant:`secondary`,children:l.modalCancel})}),(0,X.jsxs)(M,{variant:`primary`,disabled:!P||h,onClick:()=>void R(),children:[h?(0,X.jsx)(V,{className:`size-4 animate-spin`}):(0,X.jsx)(z,{className:`size-4`}),h?c.saving:l.modalSave]})]})]})]})}),O?(0,X.jsx)(zt,{open:!0,onOpenChange:e=>{e||k(null)},serverId:f.id,title:c.toolsDialogTitle,subtitle:c.toolsDialogSubtitle,searchPlaceholder:c.toolsDialogSearchPlaceholder,searchEmptyLabel:c.toolsDialogSearchEmpty,emptyLabel:c.toolsEmpty,closeLabel:c.toolsDialogClose,tools:O,stripPrefix:`${f.id.trim()}__`}):null]}):null}var vn=[`understand`,`act`,`reach`];function yn(e){let t=new Set(e.capabilities),n=[e.id,e.displayName,...e.tags??[]].join(` `).toLowerCase();return t.has(`channel`)||t.has(`events`)||/slack|telegram|discord|teams|mail|message|wechat|weixin/.test(n)?`reach`:t.has(`context`)||t.has(`memory_source`)||t.has(`resources`)||e.category===`docs`||e.category===`data`||/notion|drive|document|confluence|airtable|database|knowledge|wiki/.test(n)?`understand`:`act`}function bn(e,t){let n=t?yn(t):`act`,r=e.connectionStatus===`connected`||e.status===`connected`||e.usage.lastHealthStatus===`ok`,i=e.status===`not_configured`||e.status===`failed`||e.status===`unauthorized`||e.connectionStatus===`unauthorized`||e.connectionStatus===`error`,a=n===`understand`?e.usage.lastResourceCount:n===`act`?e.usage.lastToolCount:void 0;return{benefit:n,state:r?`ready`:i?`needs_setup`:`checking`,availableCount:a}}function xn(e,t){let n=t.trim().toLowerCase();return n?[e.displayName,e.description,e.category,e.kind,e.source,...e.tags??[]].some(e=>e.toLowerCase().includes(n)):!0}function Sn(e,t,n){return e.filter(e=>xn(e,t)).toSorted((e,t)=>n===`source`&&e.source!==t.source?e.source.localeCompare(t.source):e.displayName.localeCompare(t.displayName))}function Cn(e,t){let n=t.trim().toLowerCase();return n?[e.displayName,e.connectorId,e.instanceId,e.status,e.connectionStatus??``,e.materialized.type,e.materialized.type===`mcp`?e.materialized.serverId:e.materialized.id].some(e=>e.toLowerCase().includes(n)):!0}function wn(e,t){let n=t.trim().toLowerCase();return n?[e.id,e.command??``,e.url??``,e.transport].some(e=>e.toLowerCase().includes(n)):!0}var Tn=`all`,En=`builtin`,Dn=`xopc-store`;function On(e){let t=[`code`,`docs`,`browser`,`data`,`automation`,`custom`].includes(e.category??``)?e.category:`custom`;return{id:e.name,version:e.latestVersion??`store`,displayName:e.name,description:e.description,category:t,kind:`mcp`,source:`store`,capabilities:[`tools`,`runtime.mcp.streamableHttp`],tags:[`store`],auth:{mode:`none`},setup:{},runtime:{type:`mcp`,serverId:`store-${e.name}`.slice(0,64)}}}function kn(e){return e.filter((e,t,n)=>n.findIndex(t=>t.id===e.id)===t)}function An(){let e=o(u(e=>e.language)),t=e.connectorsSettings,n=e.mcpSettings,r=s(e=>e.token),a=!!r,[c,l]=(0,Y.useState)(`discover`),d=(0,Y.useRef)(!1),[f,p]=(0,Y.useState)({catalog:[],registryCatalog:[],instances:[],registries:[],loading:!0,error:null}),[m,h]=(0,Y.useState)(!1),[_,v]=(0,Y.useState)(!1),[y,b]=(0,Y.useState)(1),[x,S]=(0,Y.useState)(void 0),[w,T]=(0,Y.useState)(``),[E,D]=(0,Y.useState)(``),[O,k]=(0,Y.useState)(En),[A,j]=(0,Y.useState)(`name`),[N,P]=(0,Y.useState)(`all`),[F,L]=(0,Y.useState)(null),[R,z]=(0,Y.useState)(null),[B,ee]=(0,Y.useState)(null),[H,te]=(0,Y.useState)(null),[ne,re]=(0,Y.useState)(null),[ie,ae]=(0,Y.useState)(null),[U,oe]=(0,Y.useState)(!1),[se,ce]=(0,Y.useState)(void 0),[ue,de]=(0,Y.useState)(!1),{data:fe,mutate:pe}=C(a),W=fe?.payload?.config,G=(0,Y.useMemo)(()=>W===void 0?null:wt(W),[W]),K=G?.servers??[],me=f.instances.length+K.length;(0,Y.useEffect)(()=>{G&&ce(G.sessionIdleTtlMinutes)},[G]);let q=(0,Y.useCallback)(async()=>{if(!r){p({catalog:[],registryCatalog:[],instances:[],registries:[],loading:!1,error:null});return}p(e=>({...e,loading:!0,error:null}));try{let[e,t,n]=await Promise.all([Te(),je(),Ae()]);p(r=>({catalog:e,registryCatalog:r.registryCatalog,instances:t,registries:n,loading:!1,error:null}))}catch(e){p({catalog:[],registryCatalog:[],instances:[],registries:[],loading:!1,error:e instanceof Error?e.message:String(e)})}},[r]);(0,Y.useEffect)(()=>{q()},[q]),(0,Y.useEffect)(()=>{d.current||f.loading||a&&!G||(l(me>0?`connected`:`discover`),d.current=!0)},[a,me,G,f.loading]);let he=(0,Y.useCallback)(e=>{d.current=!0,l(e)},[]),J=(0,Y.useMemo)(()=>[{id:Dn,displayName:t.storeSourceName},...f.registries],[t.storeSourceName,f.registries]),_e=(0,Y.useCallback)(async e=>{if(!a||O===En){p(e=>({...e,registryCatalog:[]})),b(1),S(void 0);return}let t=E.trim(),n=e?.browse??!1,r=Math.max(e?.page??1,1),i=e?.append??!1,o=O===Tn?J:J.filter(e=>e.id===O);if(o.length!==0){h(!0),i?p(e=>({...e,error:null})):(b(1),S(void 0),p(e=>({...e,registryCatalog:[],error:null})));try{let e=await Promise.all(o.map(async e=>{if(e.id===Dn){let e=await De({q:t||void 0,page:r,pageSize:24,sort:A===`source`?`newest`:`downloads`});return{connectors:e.items.map(On),totalPages:e.meta.totalPages}}return Pe(t,e.id,{browse:n,page:r})})),a=kn(e.flatMap(e=>e.connectors)),s=Math.max(1,...e.map(e=>e.totalPages??1));b(r),S(s),p(e=>({...e,registryCatalog:i?kn([...e.registryCatalog,...a]):a}))}catch(e){p(t=>({...t,error:e instanceof Error?e.message:String(e)}))}finally{h(!1)}}},[A,E,O,a,J]);(0,Y.useEffect)(()=>{if(c!==`discover`||f.loading)return;if(O===En){p(e=>({...e,registryCatalog:[]})),b(1),S(void 0);return}let e=window.setTimeout(()=>{_e({browse:!E.trim()})},E.trim()?350:0);return()=>window.clearTimeout(e)},[E,O,_e,f.loading,c]);let ve=(0,Y.useMemo)(()=>new Set(f.instances.map(e=>e.connectorId)),[f.instances]),Z=(0,Y.useMemo)(()=>new Map([...f.catalog,...f.registryCatalog].map(e=>[e.id,e])),[f.catalog,f.registryCatalog]),we=(0,Y.useCallback)(async e=>{v(!0),p(e=>({...e,error:null}));try{let t=await Oe(e);L(nn(t.definition,{packageName:t.packageName,version:t.version,permissions:t.permissions}))}catch(e){p(t=>({...t,error:e instanceof Error?e.message:String(e)}))}finally{v(!1)}},[]),Q=(0,Y.useMemo)(()=>new Set(f.instances.flatMap(e=>e.materialized.type===`mcp`?[e.materialized.serverId]:[])),[f.instances]),Ee=(0,Y.useCallback)(async e=>{if(!G||W===void 0)return;let t=K.filter(t=>t.clientKey!==e.clientKey);await Et({sessionIdleTtlMinutes:G.sessionIdleTtlMinutes,servers:t},vt(W)),await pe(),await q()},[W,K,q,G,pe]),ke=(0,Y.useCallback)(()=>{ae({mode:`add`,row:sn(K,Q)})},[K,Q]),Me=(0,Y.useCallback)(async()=>{if(!(!G||W===void 0||ue)){de(!0);try{await Et({sessionIdleTtlMinutes:se,servers:K},vt(W)),await pe(),oe(!1)}finally{de(!1)}}},[W,K,n.saved,G,pe,se,ue]),Ne=le(e=>e.setPageHeader),Fe=le(e=>e.clearPageHeader),Ie=(0,Y.useMemo)(()=>(0,X.jsx)(ft,{onBrowseCatalog:()=>he(`discover`),onAddCustomServer:ke,onOpenRuntimeSettings:()=>oe(!0),addLabel:t.addConnection,browseLabel:t.addFromCatalog,customLabel:t.addCustomServerAdvanced,settingsLabel:t.runtimeSettings}),[t,ke,he]);(0,Y.useLayoutEffect)(()=>(Ne({startExtra:null,main:(0,X.jsx)(`div`,{className:`min-w-0`,children:(0,X.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:t.title})}),end:Ie}),()=>Fe()),[Fe,t.title,Ie,Ne]);let Le=(0,Y.useMemo)(()=>f.instances.map(e=>({instance:e,value:bn(e,Z.get(e.connectorId))})),[Z,f.instances]),Re=(0,Y.useMemo)(()=>new Map(Le.map(({instance:e,value:t})=>[e.instanceId,t])),[Le]),ze=(0,Y.useMemo)(()=>({ready:Le.filter(({value:e})=>e.state===`ready`).length,needsSetup:Le.filter(({value:e})=>e.state===`needs_setup`).length,checking:Le.filter(({value:e})=>e.state===`checking`).length}),[Le]),Be=(0,Y.useMemo)(()=>f.instances.filter(e=>Cn(e,w)).sort((e,t)=>{let n={needs_setup:0,checking:1,ready:2},r=Re.get(e.instanceId)?.state??`checking`,i=Re.get(t.instanceId)?.state??`checking`;return n[r]-n[i]||e.displayName.localeCompare(t.displayName)}),[w,Re,f.instances]),Ve=(0,Y.useMemo)(()=>K.filter(e=>wn(e,w)),[w,K]),He=Be.length+Ve.length,Ue=(0,Y.useMemo)(()=>f.catalog.filter(e=>e.source===`builtin`&&e.integrationStrategy?.preferred!==!1),[f.catalog]),We=(0,Y.useMemo)(()=>{let e=O===En?Ue:O===Tn?kn([...Ue,...f.registryCatalog]):f.registryCatalog;return Sn(N===`all`?e:e.filter(e=>yn(e)===N),E,A)},[Ue,A,E,O,N,f.registryCatalog]),Ge=c===`discover`&&O!==En&&!!(x&&y<x),Ke=(0,Y.useMemo)(()=>f.instances.find(e=>e.instanceId===B)??H,[B,H,f.instances]),qe=(0,Y.useMemo)(()=>[{value:Tn,label:t.discoverSourceAll},{value:En,label:t.discoverSourceBuiltin},...J.map(e=>({value:e.id,label:e.displayName}))],[t.discoverSourceAll,t.discoverSourceBuiltin,J]),Je=[{id:`connected`,label:t.tabConnected,count:me},{id:`discover`,label:t.tabDiscover}];return(0,X.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:(0,X.jsxs)(`div`,{className:`flex w-full flex-col gap-6 px-3 py-6 sm:px-5 xl:px-6`,children:[a?null:(0,X.jsx)(`p`,{className:`rounded-xl border border-edge bg-surface-panel px-4 py-3 text-sm text-fg-muted`,children:t.tokenHint}),(0,X.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(`div`,{className:`border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:(0,X.jsx)(ge,{items:Je,activeTab:c,onChange:he,ariaLabel:t.navAria,tabIdPrefix:`connectors-tab`,panelIdPrefix:`connectors-panel`,className:`flex-wrap`})}),f.error?(0,X.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:f.error}):null,c===`connected`&&a?(0,X.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,X.jsx)(dt,{value:w,onChange:T,placeholder:t.connectedSearchPlaceholder,className:`max-w-xl`}),(0,X.jsx)(g,{className:`size-9 shrink-0 p-0`,loading:f.loading,label:t.refreshConnections,title:t.refreshConnections,onClick:q})]}),Le.length>0?(0,X.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base p-5`,children:[(0,X.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.connectionSummaryTitle}),(0,X.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:t.connectionSummaryHint}),(0,X.jsxs)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-3`,children:[(0,X.jsxs)(`div`,{className:`rounded-xl bg-surface-panel p-3`,children:[(0,X.jsx)(`div`,{className:`text-xl font-semibold tabular-nums text-success`,children:ze.ready}),(0,X.jsx)(`div`,{className:`mt-1 text-xs text-fg-muted`,children:t.connectionReady})]}),(0,X.jsxs)(`div`,{className:`rounded-xl bg-surface-panel p-3`,children:[(0,X.jsx)(`div`,{className:i(`text-xl font-semibold tabular-nums`,ze.needsSetup>0?`text-warning`:`text-fg`),children:ze.needsSetup}),(0,X.jsx)(`div`,{className:`mt-1 text-xs text-fg-muted`,children:t.connectionNeedsSetup})]}),(0,X.jsxs)(`div`,{className:`rounded-xl bg-surface-panel p-3`,children:[(0,X.jsx)(`div`,{className:`text-xl font-semibold tabular-nums text-fg`,children:ze.checking}),(0,X.jsx)(`div`,{className:`mt-1 text-xs text-fg-muted`,children:t.connectionChecking})]})]})]}):null,(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.connectionsTitle}),(0,X.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t.connectionsHint})]}),f.loading?(0,X.jsx)(`div`,{className:`grid gap-3`,"aria-busy":`true`,"aria-label":t.loading,children:ye.slice(0,3).map(e=>(0,X.jsx)(Se,{},e))}):me===0?(0,X.jsxs)(`div`,{className:`rounded-2xl border border-dashed border-edge p-8 text-center`,children:[(0,X.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.connectionsEmpty}),(0,X.jsx)(M,{type:`button`,variant:`primary`,className:`mt-4`,onClick:()=>he(`discover`),children:t.addFromCatalog})]}):He===0?(0,X.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge p-8 text-center text-sm text-fg-muted`,children:t.connectionsSearchEmpty}):(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`,children:[Be.map(e=>(0,X.jsx)(Zt,{instance:e,definition:Z.get(e.connectorId),highlighted:e.instanceId===ne,onOpenDetails:e=>{re(null),ee(e.instanceId),te(e)},onChanged:q,t},e.instanceId)),Ve.map(e=>(0,X.jsx)(Pt,{row:e,t:n,cs:t,onEdit:()=>ae({mode:`edit`,row:structuredClone(e)}),onRemove:async()=>Ee(e)},e.clientKey))]}),(0,X.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.disableHint})]}):null,c===`discover`&&a?(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t.discoverTitle}),(0,X.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t.discoverHint})]}),(0,X.jsx)(`div`,{className:`rounded-xl border border-accent/20 bg-accent-soft/60 px-4 py-3 text-sm text-accent-fg`,children:t.integrationStrategyHint}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.outcomeFilterAria,children:[`all`,...vn].map(e=>(0,X.jsx)(`button`,{type:`button`,className:i(`rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,N===e?`border-accent/40 bg-accent-soft text-accent-fg`:`border-edge bg-surface-panel text-fg-muted hover:bg-surface-hover hover:text-fg`),"aria-pressed":N===e,onClick:()=>P(e),children:e===`all`?t.outcomeAll:t.connectorBenefitHeadings[e]},e))}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-2 lg:flex-row lg:items-center`,children:[(0,X.jsx)(dt,{value:E,onChange:D,placeholder:t.discoverSearchPlaceholder,className:`max-w-xl`}),(0,X.jsxs)(`div`,{className:`grid min-w-0 grid-cols-1 gap-2 sm:grid-cols-2 lg:ml-auto lg:w-[26rem]`,children:[(0,X.jsx)(I,{value:O,options:qe,placeholder:t.discoverSourceAll,allowEmpty:!1,ariaLabel:t.registrySourceAria,triggerClassName:`h-9 bg-surface-panel text-xs`,onChange:k}),(0,X.jsx)(I,{value:A,options:[{value:`name`,label:t.sortName},{value:`source`,label:t.sortSource}],placeholder:t.sortName,allowEmpty:!1,ariaLabel:t.sortAria,triggerClassName:`h-9 bg-surface-panel text-xs`,onChange:e=>j(e)})]})]}),(f.loading||m)&&We.length===0?(0,X.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`,"aria-busy":`true`,"aria-label":t.loading,children:ye.map(e=>(0,X.jsx)(xe,{},e))}):We.length===0?(0,X.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge p-8 text-center text-sm text-fg-muted`,children:t.discoverEmpty}):(0,X.jsxs)(`div`,{className:`relative`,children:[m?(0,X.jsx)(`div`,{className:`pointer-events-none absolute inset-0 z-[1] flex justify-center bg-surface-panel/40 pt-[min(28vh,7.5rem)] backdrop-blur-[1px] motion-reduce:backdrop-blur-none dark:bg-surface-base/35`,"aria-busy":`true`,"aria-label":t.loading,children:(0,X.jsx)(V,{className:`size-8 shrink-0 animate-spin text-accent motion-reduce:animate-none`,strokeWidth:2,"aria-hidden":!0})}):null,(0,X.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`,children:We.map(e=>(0,X.jsx)(Ce,{connector:e,installed:ve.has(e.id)||be(e,f.instances),onInstall:e=>{if(e.source===`store`){we(e.id);return}L(nn(e))},onOpenDetails:e.source===`store`?void 0:z,t},e.id))}),Ge?(0,X.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,X.jsxs)(M,{type:`button`,variant:`secondary`,disabled:m||_,onClick:()=>void _e({browse:!E.trim(),page:y+1,append:!0}),children:[m?(0,X.jsx)(V,{className:`size-4 animate-spin`}):null,t.loadMore]})}):null]})]}):null]}),F?(0,X.jsx)(on,{draft:F,onChange:L,onClose:()=>L(null),t,onInstalled:async e=>{await q(),await pe(),re(e.instanceId),he(`connected`)}}):null,R?(0,X.jsx)(ct,{connector:R,installed:ve.has(R.id)||be(R,f.instances),onClose:()=>z(null),onInstall:e=>L(nn(e)),t}):null,Ke?(0,X.jsx)(Xt,{instance:Ke,definition:Z.get(Ke.connectorId),onClose:()=>{ee(null),te(null)},onChanged:q,t,mcp:n}):null,ie?(0,X.jsx)(_n,{open:!0,mode:ie.mode,initialRow:ie.row,existingCustomServers:K,sessionIdleTtlMinutes:se,config:W,managedServerIds:Q,t:n,cs:t,onClose:()=>ae(null),onSaved:async()=>{await pe(),await q(),he(`connected`)}},`${ie.mode}-${ie.row.clientKey}`):null,(0,X.jsx)(ut,{open:U,sessionIdleTtlMinutes:se,saving:ue,onChange:ce,onSave:Me,onClose:()=>oe(!1),t,mcp:n})]})})}export{An as ConnectorsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./messages-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./messages-CzKxM6I4.js";import{n as a}from"./locale-store-Ba72bFmP.js";import{qo as o,t as s,wl as c}from"./index-BKRqeRHm.js";import{t as l}from"./desktop-pet-sprite-DqZ6fbIj.js";var u=e(t(),1),d=n();function f(e){return e?`/chat/${e.sessionKey}`:void 0}var p=r(),m=8e3,h=9e4,g=3e4,_=20*6e4,v=45*6e4,y=58;function b(e){let t={error:0,waiting:1,running:2,success:3};return e.sort((e,n)=>t[e.state]-t[n.state]||n.timestamp-e.timestamp).slice(0,3)}function x(e,t){return e.state===`running`&&t-(e.startedAt??e.timestamp)>=h}function S(e,t){return e.state===`running`&&t-e.timestamp>=g}function C(e,t,n){return S(e,n)||t===`chatty`||x(e,n)&&t===`normal`?!0:t===`quiet`?e.priority===`high`||e.state===`waiting`||e.state===`error`:e.priority!==`low`}function w(e){return e?e.state===`error`?`error`:e.state===`success`?`success`:e.animation??s(e.phase):`idle`}function T(e,t){return e.replace(/\{\{detail\}\}/g,t)}function E(e){return e.replace(/\s+/g,` `).trim()}function D(e){let t=E(e);return t.length>y?`${t.slice(0,y-1)}…`:t}function O(e,t,n){if(e.progress){let t=`${e.progress.completed}/${e.progress.total}`;return e.action.includes(t)?``:` · ${t}`}return e.outputLines?.length?T(n,e.outputLines[Math.floor((t-e.timestamp)/1800)%e.outputLines.length]):e.outputTail?T(n,e.outputTail):e.detail&&!e.action.includes(e.detail)?T(n,e.detail):e.state===`running`?` · ${Math.max(1,Math.floor((t-e.timestamp)/1e3))}s`:``}function k(e,t){if(e.state!==`success`)return;let n=e.outputLines?.map(E).filter(Boolean).at(-1)??e.outputTail;if(n)return t.replace(/\{\{summary\}\}/g,D(n))}function A(e,t,n){if(S(e,t))return n.stale;if(x(e,t))return n.longRunning}function j(e,t){if(e.state===`waiting`)return t.needsInput;if(e.state===`error`)return t.reviewIssue;if(e.state===`success`)return t.open}function M(e){let t=e.now-e.lastActivityAt;return e.bubbleEnabled&&e.feedbackLevel!==`quiet`&&!e.collapsed&&e.queuedCount===0&&e.activeCount===0&&t>=_&&t<=1245e3&&e.now>=e.dismissedUntil}function N(){return{prefs:{enabled:!0,showOnStartup:!1,selectedPetId:`ember`,alwaysOnTop:!0,bubbleEnabled:!0,clickThroughWhenIdle:!1,muted:!1,feedbackLevel:`normal`,sizePercent:100,collapsed:!1},pets:[],visible:!0,customPetsDir:``,petIssues:[]}}function P(){let e=i(a(e=>e.language)).desktopPet,[t,n]=(0,u.useState)(N),[r,s]=(0,u.useState)({}),[d,h]=(0,u.useState)(()=>new Set),[g,_]=(0,u.useState)(Date.now()),[y,x]=(0,u.useState)(()=>Date.now()),[S,T]=(0,u.useState)(0),E=(0,u.useRef)(null),D=(0,u.useRef)(!1),P=(0,u.useRef)(null),F=(0,u.useRef)(null),I=(0,u.useRef)(null),L=(0,u.useMemo)(()=>t.pets.find(e=>e.id===t.prefs.selectedPetId)??t.pets[0],[t]),R=Math.min(1.4,Math.max(.7,t.prefs.sizePercent/100)),z=(0,u.useMemo)(()=>b(Object.values(r).filter(e=>!e.expiresAt||e.expiresAt>g)),[r,g]),B=(0,u.useMemo)(()=>t.prefs.bubbleEnabled?z.filter(e=>!d.has(e.sessionKey)&&C(e,t.prefs.feedbackLevel,g)):[],[z,d,g,t.prefs.bubbleEnabled,t.prefs.feedbackLevel]),V=(0,u.useMemo)(()=>t.prefs.bubbleEnabled?z.filter(e=>d.has(e.sessionKey)&&C(e,t.prefs.feedbackLevel,g)).length:0,[z,d,g,t.prefs.bubbleEnabled,t.prefs.feedbackLevel]),H=B[0]??z[0],U=w(H),W=M({bubbleEnabled:t.prefs.bubbleEnabled,feedbackLevel:t.prefs.feedbackLevel,collapsed:t.prefs.collapsed,queuedCount:B.length,activeCount:z.length,now:g,lastActivityAt:y,dismissedUntil:S});(0,u.useEffect)(()=>{document.documentElement.dataset.desktopPet=`true`;let e=window.electronAPI?.pet;if(!e)return;e.getState().then(n).catch(()=>{});let t=e.onStateChanged(n),r=e.onEvent(e=>s(t=>{x(Date.now());let n=t[e.sessionKey];return n&&e.sequence<=n.sequence?t:{...t,[e.sessionKey]:{...n,...e,startedAt:n?.startedAt??e.timestamp,outputLines:e.outputLines??n?.outputLines,expiresAt:e.state===`success`?Date.now()+m:void 0}}})),i=window.setInterval(()=>_(Date.now()),1e3);return()=>{delete document.documentElement.dataset.desktopPet,t(),r(),window.clearInterval(i)}},[]),(0,u.useLayoutEffect)(()=>{let e=P.current,t=window.electronAPI?.pet;if(!e||!t)return;let n=()=>{let e=[F.current,I.current].filter(e=>e!==null).map(e=>e.getBoundingClientRect());if(!e.length)return;let n=Math.min(...e.map(e=>e.left)),r=Math.min(...e.map(e=>e.top)),i=Math.max(...e.map(e=>e.right)),a=Math.max(...e.map(e=>e.bottom));t.setContentSize({width:Math.ceil(i-n),height:Math.ceil(a-r)})},r=new ResizeObserver(n);return r.observe(e),F.current&&r.observe(F.current),I.current&&r.observe(I.current),n(),()=>r.disconnect()},[W,B.length,t.prefs.collapsed,R]);let G=(e=H)=>{e?.state===`success`&&s(t=>{let{[e.sessionKey]:n,...r}=t;return r}),window.electronAPI?.pet?.openMainWindow(f(e))},K=async()=>{if(d.size>0&&(h(new Set),!t.prefs.collapsed))return;let e=await window.electronAPI?.pet?.setPrefs({collapsed:!t.prefs.collapsed});e&&n(e)},q=(0,u.useCallback)(e=>{e.button===0&&(E.current={pointerId:e.pointerId,x:e.clientX,y:e.clientY,moved:!1},e.currentTarget.setPointerCapture(e.pointerId),window.electronAPI?.pet?.startDrag({screenX:e.screenX,screenY:e.screenY}))},[]),J=(0,u.useCallback)(e=>{let t=E.current;!t||t.pointerId!==e.pointerId||Math.abs(e.clientX-t.x)+Math.abs(e.clientY-t.y)>4&&(t.moved=!0,window.electronAPI?.pet?.drag({screenX:e.screenX,screenY:e.screenY}))},[]),Y=(0,u.useCallback)(e=>{let t=E.current;!t||t.pointerId!==e.pointerId||(E.current=null,window.electronAPI?.pet?.endDrag(),t.moved&&(D.current=!0,window.setTimeout(()=>{D.current=!1},0)))},[]),X=()=>{D.current||G()},Z=()=>{window.electronAPI?.pet?.hide()};if(!L)return null;let Q={"--desktop-pet-stage-size":`${Math.round(132*R)}px`,"--desktop-pet-menu-size":`${Math.round(28*R)}px`,"--desktop-pet-menu-left":`0px`,"--desktop-pet-menu-bottom":`${Math.round(12*R)}px`},$=t.prefs.collapsed?B.length:V;return(0,p.jsxs)(`div`,{ref:P,className:`desktop-pet-window`,style:Q,children:[!t.prefs.collapsed&&B.length>0?(0,p.jsx)(`div`,{ref:F,className:`desktop-pet-bubble desktop-pet-queue`,children:B.map(t=>{let n=A(t,g,{longRunning:e.tipLongRunning,stale:e.tipStaleSignal}),r=k(t,e.tipCompleteSummary),i=j(t,{open:e.viewSession,needsInput:e.petCtaNeedsInput,reviewIssue:e.petCtaReviewIssue});return(0,p.jsxs)(`div`,{className:`desktop-pet-session desktop-pet-session--${t.state}${n?` desktop-pet-session--health`:``}`,children:[(0,p.jsxs)(`button`,{type:`button`,className:`desktop-pet-session-open`,onClick:()=>G(t),children:[(0,p.jsx)(`span`,{className:`desktop-pet-session-dot`}),(0,p.jsxs)(`span`,{className:`desktop-pet-session-main`,children:[(0,p.jsx)(`strong`,{children:t.sessionLabel}),(0,p.jsxs)(`span`,{children:[r??n??t.action,r||n?``:O(t,g,e.tipTargetSuffix)]})]}),i?(0,p.jsx)(`span`,{className:`desktop-pet-session-cta`,children:i}):null]}),(0,p.jsx)(`button`,{type:`button`,className:`desktop-pet-session-close`,"aria-label":`收起会话`,onClick:()=>h(e=>new Set(e).add(t.sessionKey)),children:(0,p.jsx)(o,{size:12})})]},t.sessionKey)})}):null,W?(0,p.jsx)(`div`,{ref:F,className:`desktop-pet-bubble desktop-pet-queue desktop-pet-idle-tip`,children:(0,p.jsxs)(`div`,{className:`desktop-pet-session desktop-pet-session--idle`,children:[(0,p.jsxs)(`button`,{type:`button`,className:`desktop-pet-session-open`,onClick:()=>G(),children:[(0,p.jsx)(`span`,{className:`desktop-pet-session-dot`}),(0,p.jsxs)(`span`,{className:`desktop-pet-session-main`,children:[(0,p.jsx)(`strong`,{children:e.idleTipTitle}),(0,p.jsx)(`span`,{children:e.idleTipBody})]})]}),(0,p.jsx)(`button`,{type:`button`,className:`desktop-pet-session-close`,"aria-label":`收起会话`,onClick:()=>T(Date.now()+v),children:(0,p.jsx)(o,{size:12})})]})}):null,(0,p.jsxs)(`div`,{ref:I,className:`desktop-pet-stage`,children:[(0,p.jsx)(`button`,{type:`button`,className:`desktop-pet-menu-button`,onClick:()=>void K(),"aria-label":e.menu,children:$>0?(0,p.jsx)(`span`,{className:`desktop-pet-tip-count`,children:Math.min(99,$)}):(0,p.jsx)(c,{className:`desktop-pet-menu-chevron size-4`})}),(0,p.jsx)(`button`,{type:`button`,className:`desktop-pet-close-button`,onClick:Z,"aria-label":e.hide,title:e.hide,children:(0,p.jsx)(o,{size:14})}),(0,p.jsx)(`button`,{type:`button`,className:`desktop-pet-hit-area`,onClick:X,onPointerDown:q,onPointerMove:J,onPointerUp:Y,onPointerCancel:Y,title:e.openApp,children:(0,p.jsx)(l,{pet:L,action:U,displayHeight:Math.round(112*R)})})]})]})}function F(){let e=(0,d.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,p.jsx)(P,{}),e[0]=t):t=e[0],t}export{F as DesktopPetPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{l as i}from"./chunk-QUQL4437-DXsxWP7r.js";import{t as a}from"./cn-BQ_8x0bT.js";import{t as o}from"./circle-alert-RzVebuX2.js";import{t as s}from"./messages-CzKxM6I4.js";import{n as c}from"./locale-store-Ba72bFmP.js";import{Is as l,Ps as u,Ro as d,Xc as f,Xo as p,Ys as m,bo as h,ro as g,sc as _,vo as v}from"./index-BKRqeRHm.js";import{t as y}from"./desktop-pet-sprite-DqZ6fbIj.js";import{n as b,t as x}from"./settings-page-layout-CyGlrInB.js";var S=n(),C=e(t(),1),w=r();function T(e){let t=(0,S.c)(16),{title:n,desc:r,checked:i,disabled:a,onChange:o}=e,s;t[0]===n?s=t[1]:(s=(0,w.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:n}),t[0]=n,t[1]=s);let c;t[2]===r?c=t[3]:(c=(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r}),t[2]=r,t[3]=c);let l;t[4]!==s||t[5]!==c?(l=(0,w.jsxs)(`div`,{className:`min-w-0`,children:[s,c]}),t[4]=s,t[5]=c,t[6]=l):l=t[6];let u;t[7]===o?u=t[8]:(u=e=>o(e.target.checked),t[7]=o,t[8]=u);let d;t[9]!==i||t[10]!==a||t[11]!==u?(d=(0,w.jsx)(`input`,{type:`checkbox`,className:`ui-checkbox`,disabled:a,checked:i,onChange:u}),t[9]=i,t[10]=a,t[11]=u,t[12]=d):d=t[12];let f;return t[13]!==l||t[14]!==d?(f=(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl bg-surface-hover/50 px-3 py-2.5 dark:bg-surface-hover/35`,children:[l,d]}),t[13]=l,t[14]=d,t[15]=f):f=t[15],f}function E(){let e=s(c(e=>e.language)).desktopPetSettings,t=i(),[n,r]=(0,C.useState)(null),[S,E]=(0,C.useState)(!1),[D,O]=(0,C.useState)(null),k=typeof window<`u`?window.electronAPI?.pet:void 0,A=(0,C.useMemo)(()=>n?.pets.find(e=>e.id===n.prefs.selectedPetId)??n?.pets[0],[n]),j=(0,C.useCallback)(async()=>{if(k){E(!0);try{r(await k.getState())}finally{E(!1)}}},[k]);if((0,C.useEffect)(()=>{if(k)return j(),k.onStateChanged(r)},[k,j]),!g()||!k)return null;if(!n)return(0,w.jsxs)(x,{gap:`gap-4`,children:[(0,w.jsx)(b,{title:e.title,subtitle:e.subtitle}),(0,w.jsx)(`section`,{className:`rounded-xl border border-edge bg-surface-base p-4 text-sm text-fg-muted`,children:e.loading})]});let M=async e=>{E(!0);try{r(await k.setPrefs(e))}finally{E(!1)}},N=async e=>{e?(await k.show(),r(await k.getState())):r(await k.setPrefs({enabled:!1}))},P=e=>{M({selectedPetId:e})},F=t=>{if(t.builtin&&t.i18nKey){let n=e.builtinPets[t.i18nKey];if(n)return n}return{name:t.name,description:t.description}},I=e=>{t({pathname:`/chat/new`,search:`?draft=${encodeURIComponent(e)}`})},L=e=>{if(e.sourcePrompt?.trim())return e.sourcePrompt.trim();let{description:t}=F(e);return t.replace(/^Custom pet generated from:\s*/i,``).trim()||t},R=(e,t)=>Object.entries(t).reduce((e,[t,n])=>e.split(`{${t}}`).join(n),e),z=()=>{I(e.createChatDraft)},B=t=>{I(R(e.optimizeChatDraft,{id:t.id,name:F(t).name,description:F(t).description,sourcePrompt:L(t)}))},V=t=>{I(R(e.fixChatDraft,{dir:t.dir,reason:t.reason,details:t.details?.join(`; `)||e.noIssueDetails}))},H=D??n.prefs.sizePercent,U=async(e=H)=>{let t=Math.min(140,Math.max(70,Math.round(e/5)*5));O(null),t!==n.prefs.sizePercent&&await M({sizePercent:t})};return(0,w.jsxs)(x,{gap:`gap-4`,children:[(0,w.jsx)(b,{title:e.title,subtitle:e.subtitle,actions:(0,w.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[(0,w.jsxs)(`button`,{type:`button`,className:a(`inline-flex items-center gap-1.5 rounded-lg border border-edge bg-surface-base px-2.5 py-1.5 text-xs font-medium text-fg hover:bg-surface-hover disabled:opacity-50`,d.press),disabled:S,onClick:()=>void j(),children:[(0,w.jsx)(l,{className:a(`size-3.5`,S&&`animate-spin`),strokeWidth:1.75}),e.refresh]}),(0,w.jsxs)(`button`,{type:`button`,className:a(`inline-flex items-center gap-1.5 rounded-lg border border-edge bg-surface-base px-2.5 py-1.5 text-xs font-medium text-fg hover:bg-surface-hover`,d.press),onClick:()=>void k.openCustomPetsDir(),children:[(0,w.jsx)(f,{className:`size-3.5`,strokeWidth:1.75}),e.openFolder]})]})}),(0,w.jsxs)(`section`,{className:`rounded-xl border border-edge bg-surface-base p-4 shadow-surface`,children:[(0,w.jsxs)(`div`,{className:`space-y-2`,children:[(0,w.jsx)(T,{title:e.enable,desc:e.enableDesc,checked:n.prefs.enabled,disabled:S,onChange:e=>void N(e)}),(0,w.jsx)(T,{title:e.showOnStartup,desc:e.showOnStartupDesc,checked:n.prefs.showOnStartup,disabled:S,onChange:e=>void M({showOnStartup:e})})]}),(0,w.jsx)(`div`,{className:`mt-5 rounded-xl border border-edge-subtle bg-surface-panel p-3`,children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,w.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,w.jsx)(p,{className:`mt-0.5 size-4 text-accent-fg`,strokeWidth:1.8}),(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.createTitle}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.createDesc})]})]}),(0,w.jsxs)(`button`,{type:`button`,className:a(`inline-flex h-9 shrink-0 items-center justify-center gap-1.5 rounded-lg bg-accent px-3 text-xs font-semibold text-white hover:bg-accent/90`,d.press),onClick:z,children:[(0,w.jsx)(_,{className:`size-3.5`,strokeWidth:1.75}),e.createInChat]})]})}),(0,w.jsxs)(`div`,{className:`mt-5`,children:[(0,w.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.petList}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.petListDesc})]}),A?(0,w.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2.5 py-1 text-xs font-medium text-accent-fg`,children:F(A).name}):null]}),(0,w.jsxs)(`div`,{className:`divide-y divide-edge-subtle rounded-xl border border-edge bg-surface-base`,children:[n.pets.map(t=>{let r=t.id===n.prefs.selectedPetId,i=F(t);return(0,w.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-3`,children:[(0,w.jsx)(y,{pet:t,action:`idle`,size:`tiny`}),(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`p`,{className:`truncate text-sm font-semibold text-fg`,children:i.name}),t.builtin?null:(0,w.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.customBadge})]}),(0,w.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:i.description})]}),(0,w.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[t.builtin?null:(0,w.jsxs)(`button`,{type:`button`,className:a(`inline-flex items-center gap-1.5 rounded-lg border border-edge bg-surface-base px-2.5 py-1.5 text-xs font-medium text-fg hover:bg-surface-hover`,d.press),onClick:()=>B(t),children:[(0,w.jsx)(m,{className:`size-3.5`,strokeWidth:1.75}),e.optimizeInChat]}),(0,w.jsx)(`button`,{type:`button`,className:a(`rounded-lg px-2.5 py-1.5 text-xs font-medium transition-colors`,r?`bg-surface-hover text-fg-muted`:`bg-surface-panel text-fg hover:bg-surface-hover`,d.press),disabled:r||S,onClick:()=>P(t.id),children:r?e.selected:e.select})]})]},t.id)}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-1 px-3 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`p`,{className:`text-xs font-semibold text-fg`,children:e.customPets}),(0,w.jsx)(`p`,{className:`font-mono text-xs text-fg-muted`,children:n.customPetsDir})]}),(0,w.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 text-xs font-medium text-fg-muted hover:text-fg`,onClick:()=>void k.openCustomPetsDir(),children:[e.openFolder,(0,w.jsx)(f,{className:`size-3.5`,strokeWidth:1.75})]})]})]}),n.petIssues.length>0?(0,w.jsxs)(`div`,{className:`mt-2 rounded-xl border border-danger/30 bg-danger/5 p-3`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-semibold text-danger`,children:[(0,w.jsx)(o,{className:`size-3.5`,strokeWidth:1.8}),e.invalidPets]}),(0,w.jsx)(`div`,{className:`mt-2 space-y-2`,children:n.petIssues.map(t=>(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg bg-surface-base/70 p-2 text-xs text-fg-muted sm:flex-row sm:items-start sm:justify-between`,children:[(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsx)(`p`,{className:`truncate font-mono text-[11px] text-fg`,children:t.dir}),(0,w.jsx)(`p`,{children:t.reason}),t.details?.length?(0,w.jsx)(`p`,{className:`line-clamp-2`,children:t.details.join(`; `)}):null]}),(0,w.jsxs)(`button`,{type:`button`,className:a(`inline-flex h-8 shrink-0 items-center justify-center gap-1.5 rounded-lg border border-danger/30 bg-surface-base px-2.5 text-xs font-medium text-danger hover:bg-danger/10`,d.press),onClick:()=>V(t),children:[(0,w.jsx)(_,{className:`size-3.5`,strokeWidth:1.75}),e.fixInChat]})]},`${t.dir}-${t.reason}`))})]}):null]}),(0,w.jsxs)(`div`,{className:`mt-5 grid gap-2`,children:[(0,w.jsxs)(`div`,{className:`rounded-xl bg-surface-hover/50 px-3 py-3 dark:bg-surface-hover/35`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.size}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.sizeDesc})]}),(0,w.jsxs)(`span`,{className:`text-xs font-medium text-fg-muted`,children:[H,`%`]})]}),(0,w.jsx)(`input`,{type:`range`,min:70,max:140,step:5,className:`mt-3 w-full accent-accent`,value:H,onChange:e=>O(Number(e.target.value)),onBlur:()=>void U(),onKeyUp:e=>{(e.key===`Enter`||e.key===` `||e.key.startsWith(`Arrow`))&&U()},onPointerUp:()=>void U()})]}),(0,w.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,w.jsx)(T,{title:e.alwaysOnTop,desc:e.alwaysOnTopDesc,checked:n.prefs.alwaysOnTop,disabled:S,onChange:e=>void M({alwaysOnTop:e})}),(0,w.jsx)(T,{title:e.bubbles,desc:e.bubblesDesc,checked:n.prefs.bubbleEnabled,disabled:S,onChange:e=>void M({bubbleEnabled:e})})]}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl bg-surface-hover/50 px-3 py-3 dark:bg-surface-hover/35 sm:flex-row sm:items-center sm:justify-between`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.feedbackLevel}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.feedbackLevelDesc})]}),(0,w.jsxs)(v,{className:`w-full sm:w-40`,triggerClassName:`h-9 bg-surface-panel`,value:n.prefs.feedbackLevel,onChange:e=>void M({feedbackLevel:e.target.value}),children:[(0,w.jsx)(h,{value:`quiet`,children:e.feedbackQuiet}),(0,w.jsx)(h,{value:`normal`,children:e.feedbackNormal}),(0,w.jsx)(h,{value:`chatty`,children:e.feedbackChatty})]})]}),(0,w.jsxs)(`button`,{type:`button`,className:a(`inline-flex w-fit items-center gap-1.5 rounded-lg border border-edge bg-surface-base px-3 py-1.5 text-xs font-medium text-fg hover:bg-surface-hover disabled:opacity-50`,d.press),disabled:S,onClick:()=>void k.resetPosition().then(r),children:[(0,w.jsx)(u,{className:`size-3.5`,strokeWidth:1.75}),e.resetPosition]})]})]})]})}export{E as DesktopPetSettings};
|