shieldcortex 2.20.1 → 3.0.1
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 +248 -122
- package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +5 -5
- package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +4 -4
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/page/build-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/page/react-loadable-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_esm_build_templates_app-page_f7d4354e.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_fe6a9400._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c95102dd._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1cd9d700._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_3051539d._.js +11 -0
- package/dashboard/.next/standalone/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{d334b69bff7779be.js → 215ce64499260c25.js} +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{acf32ffeb20e4854.js → 39e59c45c12073c2.js} +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/3cc7e8d4f73cf5d2.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{da96df828f9a0188.js → 6ba7a5c1a80a6791.js} +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{fc4e920d4281c89e.js → 7d08316952ccdcef.js} +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/be6970da20a17c0b.js +9 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/da64d159c042f5ae.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/e63d2228780629dd.css +3 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/f69fd1c5e71fbbfd.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{26118d592a545e00.js → fa5217550a8ab9a6.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/{turbopack-7cf1ece01d32a474.js → turbopack-c2d84e7d37269ac1.js} +1 -1
- package/dist/api/control.d.ts +0 -1
- package/dist/api/control.js +0 -1
- package/dist/api/events.d.ts +0 -1
- package/dist/api/events.js +0 -1
- package/dist/api/session-token.d.ts +0 -1
- package/dist/api/session-token.js +0 -1
- package/dist/api/version.d.ts +0 -1
- package/dist/api/version.js +0 -1
- package/dist/api/visualization-server.d.ts +0 -1
- package/dist/api/visualization-server.js +117 -3
- package/dist/audit/env-scanner.d.ts +0 -1
- package/dist/audit/env-scanner.js +0 -1
- package/dist/audit/index.d.ts +0 -1
- package/dist/audit/index.js +0 -1
- package/dist/audit/mcp-config-scanner.d.ts +0 -1
- package/dist/audit/mcp-config-scanner.js +0 -1
- package/dist/audit/memory-scanner.d.ts +0 -1
- package/dist/audit/memory-scanner.js +0 -1
- package/dist/audit/report-formatter.d.ts +0 -1
- package/dist/audit/report-formatter.js +0 -1
- package/dist/audit/rules-file-scanner.d.ts +0 -1
- package/dist/audit/rules-file-scanner.js +0 -1
- package/dist/audit/types.d.ts +0 -1
- package/dist/audit/types.js +0 -1
- package/dist/cli/audit.d.ts +0 -1
- package/dist/cli/audit.js +0 -1
- package/dist/cli/doctor.d.ts +0 -1
- package/dist/cli/doctor.js +0 -1
- package/dist/cli/iron-dome.d.ts +0 -1
- package/dist/cli/iron-dome.js +0 -1
- package/dist/cloud/cli.d.ts +0 -1
- package/dist/cloud/cli.js +0 -1
- package/dist/cloud/config.d.ts +0 -1
- package/dist/cloud/config.js +1 -2
- package/dist/cloud/iron-dome-sync.d.ts +0 -1
- package/dist/cloud/iron-dome-sync.js +0 -1
- package/dist/cloud/quarantine-sync.d.ts +0 -1
- package/dist/cloud/quarantine-sync.js +0 -1
- package/dist/cloud/sync-queue.d.ts +0 -1
- package/dist/cloud/sync-queue.js +0 -1
- package/dist/cloud/sync.d.ts +0 -1
- package/dist/cloud/sync.js +0 -1
- package/dist/cloud/verify.d.ts +0 -1
- package/dist/cloud/verify.js +0 -1
- package/dist/context/project-context.d.ts +0 -1
- package/dist/context/project-context.js +0 -1
- package/dist/database/init.d.ts +0 -1
- package/dist/database/init.js +0 -1
- package/dist/defence/audit/export.d.ts +0 -1
- package/dist/defence/audit/export.js +0 -1
- package/dist/defence/audit/index.d.ts +0 -1
- package/dist/defence/audit/index.js +0 -1
- package/dist/defence/audit/logger.d.ts +0 -1
- package/dist/defence/audit/logger.js +0 -1
- package/dist/defence/audit/queries.d.ts +22 -1
- package/dist/defence/audit/queries.js +179 -1
- package/dist/defence/credential-leak/entropy.d.ts +0 -1
- package/dist/defence/credential-leak/entropy.js +0 -1
- package/dist/defence/credential-leak/index.d.ts +0 -1
- package/dist/defence/credential-leak/index.js +0 -1
- package/dist/defence/credential-leak/patterns.d.ts +0 -1
- package/dist/defence/credential-leak/patterns.js +0 -1
- package/dist/defence/custom-patterns/store.d.ts +0 -1
- package/dist/defence/custom-patterns/store.js +0 -1
- package/dist/defence/custom-rules/store.d.ts +0 -1
- package/dist/defence/custom-rules/store.js +0 -1
- package/dist/defence/firewall/anomaly-scorer.d.ts +0 -1
- package/dist/defence/firewall/anomaly-scorer.js +0 -1
- package/dist/defence/firewall/encoding-detector.d.ts +0 -1
- package/dist/defence/firewall/encoding-detector.js +0 -1
- package/dist/defence/firewall/index.d.ts +0 -1
- package/dist/defence/firewall/index.js +0 -1
- package/dist/defence/firewall/instruction-detector.d.ts +0 -1
- package/dist/defence/firewall/instruction-detector.js +0 -1
- package/dist/defence/firewall/privilege-detector.d.ts +0 -1
- package/dist/defence/firewall/privilege-detector.js +0 -1
- package/dist/defence/fragmentation/assembly-detector.d.ts +0 -1
- package/dist/defence/fragmentation/assembly-detector.js +0 -1
- package/dist/defence/fragmentation/entity-extractor.d.ts +0 -1
- package/dist/defence/fragmentation/entity-extractor.js +0 -1
- package/dist/defence/fragmentation/index.d.ts +0 -1
- package/dist/defence/fragmentation/index.js +0 -1
- package/dist/defence/fragmentation/temporal-analyzer.d.ts +0 -1
- package/dist/defence/fragmentation/temporal-analyzer.js +0 -1
- package/dist/defence/index.d.ts +0 -1
- package/dist/defence/index.js +0 -1
- package/dist/defence/input-sanitisation/index.d.ts +0 -1
- package/dist/defence/input-sanitisation/index.js +0 -1
- package/dist/defence/iron-dome/action-gate.d.ts +0 -1
- package/dist/defence/iron-dome/action-gate.js +0 -1
- package/dist/defence/iron-dome/audit.d.ts +0 -1
- package/dist/defence/iron-dome/audit.js +0 -1
- package/dist/defence/iron-dome/config.d.ts +0 -1
- package/dist/defence/iron-dome/config.js +0 -1
- package/dist/defence/iron-dome/confirmation-gate.d.ts +0 -1
- package/dist/defence/iron-dome/confirmation-gate.js +0 -1
- package/dist/defence/iron-dome/custom-policies.d.ts +0 -1
- package/dist/defence/iron-dome/custom-policies.js +0 -1
- package/dist/defence/iron-dome/gateway.d.ts +0 -1
- package/dist/defence/iron-dome/gateway.js +0 -1
- package/dist/defence/iron-dome/index.d.ts +0 -1
- package/dist/defence/iron-dome/index.js +0 -1
- package/dist/defence/iron-dome/injection-scanner.d.ts +0 -1
- package/dist/defence/iron-dome/injection-scanner.js +0 -1
- package/dist/defence/iron-dome/kill-switch.d.ts +0 -1
- package/dist/defence/iron-dome/kill-switch.js +0 -1
- package/dist/defence/iron-dome/pii-guard.d.ts +0 -1
- package/dist/defence/iron-dome/pii-guard.js +0 -1
- package/dist/defence/pipeline.d.ts +0 -1
- package/dist/defence/pipeline.js +0 -1
- package/dist/defence/quarantine/auto-expire.d.ts +0 -1
- package/dist/defence/quarantine/auto-expire.js +0 -1
- package/dist/defence/scanner/index.d.ts +0 -1
- package/dist/defence/scanner/index.js +0 -1
- package/dist/defence/scanner/scan-existing.d.ts +0 -1
- package/dist/defence/scanner/scan-existing.js +0 -1
- package/dist/defence/sensitivity/classifier.d.ts +0 -1
- package/dist/defence/sensitivity/classifier.js +0 -1
- package/dist/defence/sensitivity/index.d.ts +0 -1
- package/dist/defence/sensitivity/index.js +0 -1
- package/dist/defence/sensitivity/patterns.d.ts +0 -1
- package/dist/defence/sensitivity/patterns.js +0 -1
- package/dist/defence/sensitivity/redaction.d.ts +0 -1
- package/dist/defence/sensitivity/redaction.js +0 -1
- package/dist/defence/skill-scanner/deep-scan.d.ts +0 -1
- package/dist/defence/skill-scanner/deep-scan.js +0 -1
- package/dist/defence/skill-scanner/discover.d.ts +0 -1
- package/dist/defence/skill-scanner/discover.js +0 -1
- package/dist/defence/skill-scanner/index.d.ts +0 -1
- package/dist/defence/skill-scanner/index.js +0 -1
- package/dist/defence/skill-scanner/parser.d.ts +0 -1
- package/dist/defence/skill-scanner/parser.js +0 -1
- package/dist/defence/skill-scanner/patterns.d.ts +0 -1
- package/dist/defence/skill-scanner/patterns.js +0 -1
- package/dist/defence/skill-scanner/scan-skill.d.ts +0 -1
- package/dist/defence/skill-scanner/scan-skill.js +0 -1
- package/dist/defence/tool-response-scanner.d.ts +0 -1
- package/dist/defence/tool-response-scanner.js +0 -1
- package/dist/defence/trust/access-control.d.ts +0 -1
- package/dist/defence/trust/access-control.js +0 -1
- package/dist/defence/trust/agent-scorer.d.ts +0 -1
- package/dist/defence/trust/agent-scorer.js +0 -1
- package/dist/defence/trust/env-detector.d.ts +0 -1
- package/dist/defence/trust/env-detector.js +0 -1
- package/dist/defence/trust/index.d.ts +0 -1
- package/dist/defence/trust/index.js +0 -1
- package/dist/defence/trust/recall-filter.d.ts +0 -1
- package/dist/defence/trust/recall-filter.js +0 -1
- package/dist/defence/trust/source-scorer.d.ts +0 -1
- package/dist/defence/trust/source-scorer.js +0 -1
- package/dist/defence/types.d.ts +0 -1
- package/dist/defence/types.js +0 -1
- package/dist/embeddings/generator.d.ts +0 -1
- package/dist/embeddings/generator.js +0 -1
- package/dist/embeddings/index.d.ts +0 -1
- package/dist/embeddings/index.js +0 -1
- package/dist/embeddings/worker.d.ts +0 -1
- package/dist/embeddings/worker.js +0 -1
- package/dist/errors.d.ts +0 -1
- package/dist/errors.js +0 -1
- package/dist/events/webhooks.d.ts +0 -1
- package/dist/events/webhooks.js +0 -1
- package/dist/graph/backfill.d.ts +0 -1
- package/dist/graph/backfill.js +0 -1
- package/dist/graph/extract.d.ts +0 -1
- package/dist/graph/extract.js +0 -1
- package/dist/graph/resolve.d.ts +0 -1
- package/dist/graph/resolve.js +0 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -2
- package/dist/integrations/index.d.ts +0 -1
- package/dist/integrations/index.js +0 -1
- package/dist/integrations/langchain.d.ts +0 -1
- package/dist/integrations/langchain.js +0 -1
- package/dist/integrations/openclaw.d.ts +0 -1
- package/dist/integrations/openclaw.js +0 -1
- package/dist/integrations/universal.d.ts +0 -1
- package/dist/integrations/universal.js +0 -1
- package/dist/lib.d.ts +0 -1
- package/dist/lib.js +0 -1
- package/dist/license/cli.d.ts +0 -1
- package/dist/license/cli.js +0 -1
- package/dist/license/gate.d.ts +0 -1
- package/dist/license/gate.js +0 -1
- package/dist/license/index.d.ts +0 -1
- package/dist/license/index.js +0 -1
- package/dist/license/keys.d.ts +0 -1
- package/dist/license/keys.js +0 -1
- package/dist/license/store.d.ts +0 -1
- package/dist/license/store.js +0 -1
- package/dist/license/types.d.ts +0 -1
- package/dist/license/types.js +0 -1
- package/dist/license/validate.d.ts +0 -1
- package/dist/license/validate.js +0 -1
- package/dist/license/verify.d.ts +0 -1
- package/dist/license/verify.js +0 -1
- package/dist/memory/activation.d.ts +0 -1
- package/dist/memory/activation.js +0 -1
- package/dist/memory/consolidate.d.ts +0 -1
- package/dist/memory/consolidate.js +0 -1
- package/dist/memory/contradiction.d.ts +0 -1
- package/dist/memory/contradiction.js +0 -1
- package/dist/memory/decay.d.ts +0 -1
- package/dist/memory/decay.js +0 -1
- package/dist/memory/embedding-cache.d.ts +0 -1
- package/dist/memory/embedding-cache.js +0 -1
- package/dist/memory/embedding.d.ts +7 -2
- package/dist/memory/embedding.js +68 -7
- package/dist/memory/expiry.d.ts +0 -1
- package/dist/memory/expiry.js +0 -1
- package/dist/memory/salience.d.ts +0 -1
- package/dist/memory/salience.js +0 -1
- package/dist/memory/similarity.d.ts +0 -1
- package/dist/memory/similarity.js +0 -1
- package/dist/memory/store.d.ts +3 -1
- package/dist/memory/store.js +204 -123
- package/dist/memory/types.d.ts +21 -1
- package/dist/memory/types.js +0 -1
- package/dist/server.d.ts +0 -1
- package/dist/server.js +0 -1
- package/dist/service/install.d.ts +0 -1
- package/dist/service/install.js +0 -1
- package/dist/service/templates.d.ts +0 -1
- package/dist/service/templates.js +0 -1
- package/dist/setup/claude-md.d.ts +0 -1
- package/dist/setup/claude-md.js +0 -1
- package/dist/setup/copilot.d.ts +0 -1
- package/dist/setup/copilot.js +0 -1
- package/dist/setup/doctor.d.ts +0 -1
- package/dist/setup/doctor.js +0 -1
- package/dist/setup/hooks.d.ts +0 -1
- package/dist/setup/hooks.js +0 -1
- package/dist/setup/migrate.d.ts +0 -1
- package/dist/setup/migrate.js +0 -1
- package/dist/setup/openclaw.d.ts +0 -1
- package/dist/setup/openclaw.js +0 -1
- package/dist/setup/quickstart.d.ts +8 -0
- package/dist/setup/quickstart.js +108 -0
- package/dist/setup/settings-hooks.d.ts +0 -1
- package/dist/setup/settings-hooks.js +0 -1
- package/dist/setup/status.d.ts +0 -1
- package/dist/setup/status.js +0 -1
- package/dist/setup/uninstall.d.ts +0 -1
- package/dist/setup/uninstall.js +0 -1
- package/dist/tools/context.d.ts +0 -1
- package/dist/tools/context.js +0 -1
- package/dist/tools/forget.d.ts +0 -1
- package/dist/tools/forget.js +0 -1
- package/dist/tools/graph.d.ts +0 -1
- package/dist/tools/graph.js +0 -1
- package/dist/tools/recall.d.ts +0 -1
- package/dist/tools/recall.js +1 -1
- package/dist/tools/remember.d.ts +0 -1
- package/dist/tools/remember.js +0 -1
- package/dist/worker/brain-worker.d.ts +1 -1
- package/dist/worker/brain-worker.js +9 -2
- package/dist/worker/link-discovery.d.ts +0 -1
- package/dist/worker/link-discovery.js +0 -1
- package/dist/worker/predictive-consolidation.d.ts +0 -1
- package/dist/worker/predictive-consolidation.js +0 -1
- package/dist/worker/types.d.ts +0 -1
- package/dist/worker/types.js +0 -1
- package/hooks/openclaw/cortex-memory/handler.ts +62 -8
- package/package.json +9 -8
- package/scripts/run-jest.mjs +44 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_25b1b286._.js +0 -11
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/364656baa57adaa7.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/6a6ccfb7834de00a.js +0 -9
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/6b11a7d29e9abffd.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/ab13d81ce0e121f2.css +0 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/cf05262adfab5818.js +0 -1
- package/dist/__tests__/consolidation-merge.test.d.ts +0 -9
- package/dist/__tests__/consolidation-merge.test.d.ts.map +0 -1
- package/dist/__tests__/consolidation-merge.test.js +0 -137
- package/dist/__tests__/consolidation-merge.test.js.map +0 -1
- package/dist/__tests__/contradictions.test.d.ts +0 -8
- package/dist/__tests__/contradictions.test.d.ts.map +0 -1
- package/dist/__tests__/contradictions.test.js +0 -78
- package/dist/__tests__/contradictions.test.js.map +0 -1
- package/dist/__tests__/format-memory.test.d.ts +0 -11
- package/dist/__tests__/format-memory.test.d.ts.map +0 -1
- package/dist/__tests__/format-memory.test.js +0 -69
- package/dist/__tests__/format-memory.test.js.map +0 -1
- package/dist/__tests__/salience-evolution.test.d.ts +0 -7
- package/dist/__tests__/salience-evolution.test.d.ts.map +0 -1
- package/dist/__tests__/salience-evolution.test.js +0 -151
- package/dist/__tests__/salience-evolution.test.js.map +0 -1
- package/dist/__tests__/store.test.d.ts +0 -7
- package/dist/__tests__/store.test.d.ts.map +0 -1
- package/dist/__tests__/store.test.js +0 -583
- package/dist/__tests__/store.test.js.map +0 -1
- package/dist/api/control.d.ts.map +0 -1
- package/dist/api/control.js.map +0 -1
- package/dist/api/events.d.ts.map +0 -1
- package/dist/api/events.js.map +0 -1
- package/dist/api/session-token.d.ts.map +0 -1
- package/dist/api/session-token.js.map +0 -1
- package/dist/api/version.d.ts.map +0 -1
- package/dist/api/version.js.map +0 -1
- package/dist/api/visualization-server.d.ts.map +0 -1
- package/dist/api/visualization-server.js.map +0 -1
- package/dist/audit/env-scanner.d.ts.map +0 -1
- package/dist/audit/env-scanner.js.map +0 -1
- package/dist/audit/index.d.ts.map +0 -1
- package/dist/audit/index.js.map +0 -1
- package/dist/audit/mcp-config-scanner.d.ts.map +0 -1
- package/dist/audit/mcp-config-scanner.js.map +0 -1
- package/dist/audit/memory-scanner.d.ts.map +0 -1
- package/dist/audit/memory-scanner.js.map +0 -1
- package/dist/audit/report-formatter.d.ts.map +0 -1
- package/dist/audit/report-formatter.js.map +0 -1
- package/dist/audit/rules-file-scanner.d.ts.map +0 -1
- package/dist/audit/rules-file-scanner.js.map +0 -1
- package/dist/audit/types.d.ts.map +0 -1
- package/dist/audit/types.js.map +0 -1
- package/dist/cli/audit.d.ts.map +0 -1
- package/dist/cli/audit.js.map +0 -1
- package/dist/cli/doctor.d.ts.map +0 -1
- package/dist/cli/doctor.js.map +0 -1
- package/dist/cli/iron-dome.d.ts.map +0 -1
- package/dist/cli/iron-dome.js.map +0 -1
- package/dist/cloud/cli.d.ts.map +0 -1
- package/dist/cloud/cli.js.map +0 -1
- package/dist/cloud/config.d.ts.map +0 -1
- package/dist/cloud/config.js.map +0 -1
- package/dist/cloud/iron-dome-sync.d.ts.map +0 -1
- package/dist/cloud/iron-dome-sync.js.map +0 -1
- package/dist/cloud/quarantine-sync.d.ts.map +0 -1
- package/dist/cloud/quarantine-sync.js.map +0 -1
- package/dist/cloud/sync-queue.d.ts.map +0 -1
- package/dist/cloud/sync-queue.js.map +0 -1
- package/dist/cloud/sync.d.ts.map +0 -1
- package/dist/cloud/sync.js.map +0 -1
- package/dist/cloud/verify.d.ts.map +0 -1
- package/dist/cloud/verify.js.map +0 -1
- package/dist/context/project-context.d.ts.map +0 -1
- package/dist/context/project-context.js.map +0 -1
- package/dist/database/init.d.ts.map +0 -1
- package/dist/database/init.js.map +0 -1
- package/dist/defence/__tests__/access-control.test.d.ts +0 -5
- package/dist/defence/__tests__/access-control.test.d.ts.map +0 -1
- package/dist/defence/__tests__/access-control.test.js +0 -89
- package/dist/defence/__tests__/access-control.test.js.map +0 -1
- package/dist/defence/__tests__/agent-scorer.test.d.ts +0 -5
- package/dist/defence/__tests__/agent-scorer.test.d.ts.map +0 -1
- package/dist/defence/__tests__/agent-scorer.test.js +0 -75
- package/dist/defence/__tests__/agent-scorer.test.js.map +0 -1
- package/dist/defence/__tests__/credential-leak.test.d.ts +0 -8
- package/dist/defence/__tests__/credential-leak.test.d.ts.map +0 -1
- package/dist/defence/__tests__/credential-leak.test.js +0 -403
- package/dist/defence/__tests__/credential-leak.test.js.map +0 -1
- package/dist/defence/__tests__/env-detector.test.d.ts +0 -5
- package/dist/defence/__tests__/env-detector.test.d.ts.map +0 -1
- package/dist/defence/__tests__/env-detector.test.js +0 -100
- package/dist/defence/__tests__/env-detector.test.js.map +0 -1
- package/dist/defence/__tests__/firewall.test.d.ts +0 -8
- package/dist/defence/__tests__/firewall.test.d.ts.map +0 -1
- package/dist/defence/__tests__/firewall.test.js +0 -123
- package/dist/defence/__tests__/firewall.test.js.map +0 -1
- package/dist/defence/__tests__/fragmentation.test.d.ts +0 -7
- package/dist/defence/__tests__/fragmentation.test.d.ts.map +0 -1
- package/dist/defence/__tests__/fragmentation.test.js +0 -51
- package/dist/defence/__tests__/fragmentation.test.js.map +0 -1
- package/dist/defence/__tests__/pipeline.test.d.ts +0 -8
- package/dist/defence/__tests__/pipeline.test.d.ts.map +0 -1
- package/dist/defence/__tests__/pipeline.test.js +0 -106
- package/dist/defence/__tests__/pipeline.test.js.map +0 -1
- package/dist/defence/__tests__/sensitivity.test.d.ts +0 -7
- package/dist/defence/__tests__/sensitivity.test.d.ts.map +0 -1
- package/dist/defence/__tests__/sensitivity.test.js +0 -61
- package/dist/defence/__tests__/sensitivity.test.js.map +0 -1
- package/dist/defence/__tests__/tool-response-scanner.test.d.ts +0 -8
- package/dist/defence/__tests__/tool-response-scanner.test.d.ts.map +0 -1
- package/dist/defence/__tests__/tool-response-scanner.test.js +0 -106
- package/dist/defence/__tests__/tool-response-scanner.test.js.map +0 -1
- package/dist/defence/__tests__/trust.test.d.ts +0 -7
- package/dist/defence/__tests__/trust.test.d.ts.map +0 -1
- package/dist/defence/__tests__/trust.test.js +0 -50
- package/dist/defence/__tests__/trust.test.js.map +0 -1
- package/dist/defence/__tests__/verify.test.d.ts +0 -7
- package/dist/defence/__tests__/verify.test.d.ts.map +0 -1
- package/dist/defence/__tests__/verify.test.js +0 -143
- package/dist/defence/__tests__/verify.test.js.map +0 -1
- package/dist/defence/audit/export.d.ts.map +0 -1
- package/dist/defence/audit/export.js.map +0 -1
- package/dist/defence/audit/index.d.ts.map +0 -1
- package/dist/defence/audit/index.js.map +0 -1
- package/dist/defence/audit/logger.d.ts.map +0 -1
- package/dist/defence/audit/logger.js.map +0 -1
- package/dist/defence/audit/queries.d.ts.map +0 -1
- package/dist/defence/audit/queries.js.map +0 -1
- package/dist/defence/credential-leak/entropy.d.ts.map +0 -1
- package/dist/defence/credential-leak/entropy.js.map +0 -1
- package/dist/defence/credential-leak/index.d.ts.map +0 -1
- package/dist/defence/credential-leak/index.js.map +0 -1
- package/dist/defence/credential-leak/patterns.d.ts.map +0 -1
- package/dist/defence/credential-leak/patterns.js.map +0 -1
- package/dist/defence/custom-patterns/store.d.ts.map +0 -1
- package/dist/defence/custom-patterns/store.js.map +0 -1
- package/dist/defence/custom-rules/store.d.ts.map +0 -1
- package/dist/defence/custom-rules/store.js.map +0 -1
- package/dist/defence/firewall/anomaly-scorer.d.ts.map +0 -1
- package/dist/defence/firewall/anomaly-scorer.js.map +0 -1
- package/dist/defence/firewall/encoding-detector.d.ts.map +0 -1
- package/dist/defence/firewall/encoding-detector.js.map +0 -1
- package/dist/defence/firewall/index.d.ts.map +0 -1
- package/dist/defence/firewall/index.js.map +0 -1
- package/dist/defence/firewall/instruction-detector.d.ts.map +0 -1
- package/dist/defence/firewall/instruction-detector.js.map +0 -1
- package/dist/defence/firewall/privilege-detector.d.ts.map +0 -1
- package/dist/defence/firewall/privilege-detector.js.map +0 -1
- package/dist/defence/fragmentation/assembly-detector.d.ts.map +0 -1
- package/dist/defence/fragmentation/assembly-detector.js.map +0 -1
- package/dist/defence/fragmentation/entity-extractor.d.ts.map +0 -1
- package/dist/defence/fragmentation/entity-extractor.js.map +0 -1
- package/dist/defence/fragmentation/index.d.ts.map +0 -1
- package/dist/defence/fragmentation/index.js.map +0 -1
- package/dist/defence/fragmentation/temporal-analyzer.d.ts.map +0 -1
- package/dist/defence/fragmentation/temporal-analyzer.js.map +0 -1
- package/dist/defence/index.d.ts.map +0 -1
- package/dist/defence/index.js.map +0 -1
- package/dist/defence/input-sanitisation/index.d.ts.map +0 -1
- package/dist/defence/input-sanitisation/index.js.map +0 -1
- package/dist/defence/iron-dome/__tests__/action-gate.test.d.ts +0 -5
- package/dist/defence/iron-dome/__tests__/action-gate.test.d.ts.map +0 -1
- package/dist/defence/iron-dome/__tests__/action-gate.test.js +0 -71
- package/dist/defence/iron-dome/__tests__/action-gate.test.js.map +0 -1
- package/dist/defence/iron-dome/__tests__/confirmation-gate.test.d.ts +0 -5
- package/dist/defence/iron-dome/__tests__/confirmation-gate.test.d.ts.map +0 -1
- package/dist/defence/iron-dome/__tests__/confirmation-gate.test.js +0 -144
- package/dist/defence/iron-dome/__tests__/confirmation-gate.test.js.map +0 -1
- package/dist/defence/iron-dome/__tests__/gateway.test.d.ts +0 -5
- package/dist/defence/iron-dome/__tests__/gateway.test.d.ts.map +0 -1
- package/dist/defence/iron-dome/__tests__/gateway.test.js +0 -60
- package/dist/defence/iron-dome/__tests__/gateway.test.js.map +0 -1
- package/dist/defence/iron-dome/__tests__/injection-scanner.test.d.ts +0 -7
- package/dist/defence/iron-dome/__tests__/injection-scanner.test.d.ts.map +0 -1
- package/dist/defence/iron-dome/__tests__/injection-scanner.test.js +0 -230
- package/dist/defence/iron-dome/__tests__/injection-scanner.test.js.map +0 -1
- package/dist/defence/iron-dome/__tests__/pii-guard.test.d.ts +0 -5
- package/dist/defence/iron-dome/__tests__/pii-guard.test.d.ts.map +0 -1
- package/dist/defence/iron-dome/__tests__/pii-guard.test.js +0 -130
- package/dist/defence/iron-dome/__tests__/pii-guard.test.js.map +0 -1
- package/dist/defence/iron-dome/action-gate.d.ts.map +0 -1
- package/dist/defence/iron-dome/action-gate.js.map +0 -1
- package/dist/defence/iron-dome/audit.d.ts.map +0 -1
- package/dist/defence/iron-dome/audit.js.map +0 -1
- package/dist/defence/iron-dome/config.d.ts.map +0 -1
- package/dist/defence/iron-dome/config.js.map +0 -1
- package/dist/defence/iron-dome/confirmation-gate.d.ts.map +0 -1
- package/dist/defence/iron-dome/confirmation-gate.js.map +0 -1
- package/dist/defence/iron-dome/custom-policies.d.ts.map +0 -1
- package/dist/defence/iron-dome/custom-policies.js.map +0 -1
- package/dist/defence/iron-dome/gateway.d.ts.map +0 -1
- package/dist/defence/iron-dome/gateway.js.map +0 -1
- package/dist/defence/iron-dome/index.d.ts.map +0 -1
- package/dist/defence/iron-dome/index.js.map +0 -1
- package/dist/defence/iron-dome/injection-scanner.d.ts.map +0 -1
- package/dist/defence/iron-dome/injection-scanner.js.map +0 -1
- package/dist/defence/iron-dome/kill-switch.d.ts.map +0 -1
- package/dist/defence/iron-dome/kill-switch.js.map +0 -1
- package/dist/defence/iron-dome/pii-guard.d.ts.map +0 -1
- package/dist/defence/iron-dome/pii-guard.js.map +0 -1
- package/dist/defence/pipeline.d.ts.map +0 -1
- package/dist/defence/pipeline.js.map +0 -1
- package/dist/defence/quarantine/auto-expire.d.ts.map +0 -1
- package/dist/defence/quarantine/auto-expire.js.map +0 -1
- package/dist/defence/scanner/index.d.ts.map +0 -1
- package/dist/defence/scanner/index.js.map +0 -1
- package/dist/defence/scanner/scan-existing.d.ts.map +0 -1
- package/dist/defence/scanner/scan-existing.js.map +0 -1
- package/dist/defence/sensitivity/classifier.d.ts.map +0 -1
- package/dist/defence/sensitivity/classifier.js.map +0 -1
- package/dist/defence/sensitivity/index.d.ts.map +0 -1
- package/dist/defence/sensitivity/index.js.map +0 -1
- package/dist/defence/sensitivity/patterns.d.ts.map +0 -1
- package/dist/defence/sensitivity/patterns.js.map +0 -1
- package/dist/defence/sensitivity/redaction.d.ts.map +0 -1
- package/dist/defence/sensitivity/redaction.js.map +0 -1
- package/dist/defence/skill-scanner/__tests__/skill-scanner.test.d.ts +0 -12
- package/dist/defence/skill-scanner/__tests__/skill-scanner.test.d.ts.map +0 -1
- package/dist/defence/skill-scanner/__tests__/skill-scanner.test.js +0 -471
- package/dist/defence/skill-scanner/__tests__/skill-scanner.test.js.map +0 -1
- package/dist/defence/skill-scanner/deep-scan.d.ts.map +0 -1
- package/dist/defence/skill-scanner/deep-scan.js.map +0 -1
- package/dist/defence/skill-scanner/discover.d.ts.map +0 -1
- package/dist/defence/skill-scanner/discover.js.map +0 -1
- package/dist/defence/skill-scanner/index.d.ts.map +0 -1
- package/dist/defence/skill-scanner/index.js.map +0 -1
- package/dist/defence/skill-scanner/parser.d.ts.map +0 -1
- package/dist/defence/skill-scanner/parser.js.map +0 -1
- package/dist/defence/skill-scanner/patterns.d.ts.map +0 -1
- package/dist/defence/skill-scanner/patterns.js.map +0 -1
- package/dist/defence/skill-scanner/scan-skill.d.ts.map +0 -1
- package/dist/defence/skill-scanner/scan-skill.js.map +0 -1
- package/dist/defence/tool-response-scanner.d.ts.map +0 -1
- package/dist/defence/tool-response-scanner.js.map +0 -1
- package/dist/defence/trust/access-control.d.ts.map +0 -1
- package/dist/defence/trust/access-control.js.map +0 -1
- package/dist/defence/trust/agent-scorer.d.ts.map +0 -1
- package/dist/defence/trust/agent-scorer.js.map +0 -1
- package/dist/defence/trust/env-detector.d.ts.map +0 -1
- package/dist/defence/trust/env-detector.js.map +0 -1
- package/dist/defence/trust/index.d.ts.map +0 -1
- package/dist/defence/trust/index.js.map +0 -1
- package/dist/defence/trust/recall-filter.d.ts.map +0 -1
- package/dist/defence/trust/recall-filter.js.map +0 -1
- package/dist/defence/trust/source-scorer.d.ts.map +0 -1
- package/dist/defence/trust/source-scorer.js.map +0 -1
- package/dist/defence/types.d.ts.map +0 -1
- package/dist/defence/types.js.map +0 -1
- package/dist/embeddings/generator.d.ts.map +0 -1
- package/dist/embeddings/generator.js.map +0 -1
- package/dist/embeddings/index.d.ts.map +0 -1
- package/dist/embeddings/index.js.map +0 -1
- package/dist/embeddings/worker.d.ts.map +0 -1
- package/dist/embeddings/worker.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/events/webhooks.d.ts.map +0 -1
- package/dist/events/webhooks.js.map +0 -1
- package/dist/graph/backfill.d.ts.map +0 -1
- package/dist/graph/backfill.js.map +0 -1
- package/dist/graph/extract.d.ts.map +0 -1
- package/dist/graph/extract.js.map +0 -1
- package/dist/graph/resolve.d.ts.map +0 -1
- package/dist/graph/resolve.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrations/__tests__/openclaw.test.d.ts +0 -2
- package/dist/integrations/__tests__/openclaw.test.d.ts.map +0 -1
- package/dist/integrations/__tests__/openclaw.test.js +0 -72
- package/dist/integrations/__tests__/openclaw.test.js.map +0 -1
- package/dist/integrations/__tests__/universal.test.d.ts +0 -2
- package/dist/integrations/__tests__/universal.test.d.ts.map +0 -1
- package/dist/integrations/__tests__/universal.test.js +0 -144
- package/dist/integrations/__tests__/universal.test.js.map +0 -1
- package/dist/integrations/index.d.ts.map +0 -1
- package/dist/integrations/index.js.map +0 -1
- package/dist/integrations/langchain.d.ts.map +0 -1
- package/dist/integrations/langchain.js.map +0 -1
- package/dist/integrations/openclaw.d.ts.map +0 -1
- package/dist/integrations/openclaw.js.map +0 -1
- package/dist/integrations/universal.d.ts.map +0 -1
- package/dist/integrations/universal.js.map +0 -1
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js.map +0 -1
- package/dist/license/__tests__/feature-gating.test.d.ts +0 -10
- package/dist/license/__tests__/feature-gating.test.d.ts.map +0 -1
- package/dist/license/__tests__/feature-gating.test.js +0 -188
- package/dist/license/__tests__/feature-gating.test.js.map +0 -1
- package/dist/license/cli.d.ts.map +0 -1
- package/dist/license/cli.js.map +0 -1
- package/dist/license/gate.d.ts.map +0 -1
- package/dist/license/gate.js.map +0 -1
- package/dist/license/index.d.ts.map +0 -1
- package/dist/license/index.js.map +0 -1
- package/dist/license/keys.d.ts.map +0 -1
- package/dist/license/keys.js.map +0 -1
- package/dist/license/store.d.ts.map +0 -1
- package/dist/license/store.js.map +0 -1
- package/dist/license/types.d.ts.map +0 -1
- package/dist/license/types.js.map +0 -1
- package/dist/license/validate.d.ts.map +0 -1
- package/dist/license/validate.js.map +0 -1
- package/dist/license/verify.d.ts.map +0 -1
- package/dist/license/verify.js.map +0 -1
- package/dist/memory/activation.d.ts.map +0 -1
- package/dist/memory/activation.js.map +0 -1
- package/dist/memory/consolidate.d.ts.map +0 -1
- package/dist/memory/consolidate.js.map +0 -1
- package/dist/memory/contradiction.d.ts.map +0 -1
- package/dist/memory/contradiction.js.map +0 -1
- package/dist/memory/decay.d.ts.map +0 -1
- package/dist/memory/decay.js.map +0 -1
- package/dist/memory/embedding-cache.d.ts.map +0 -1
- package/dist/memory/embedding-cache.js.map +0 -1
- package/dist/memory/embedding.d.ts.map +0 -1
- package/dist/memory/embedding.js.map +0 -1
- package/dist/memory/expiry.d.ts.map +0 -1
- package/dist/memory/expiry.js.map +0 -1
- package/dist/memory/salience.d.ts.map +0 -1
- package/dist/memory/salience.js.map +0 -1
- package/dist/memory/similarity.d.ts.map +0 -1
- package/dist/memory/similarity.js.map +0 -1
- package/dist/memory/store.d.ts.map +0 -1
- package/dist/memory/store.js.map +0 -1
- package/dist/memory/types.d.ts.map +0 -1
- package/dist/memory/types.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/service/install.d.ts.map +0 -1
- package/dist/service/install.js.map +0 -1
- package/dist/service/templates.d.ts.map +0 -1
- package/dist/service/templates.js.map +0 -1
- package/dist/setup/claude-md.d.ts.map +0 -1
- package/dist/setup/claude-md.js.map +0 -1
- package/dist/setup/copilot.d.ts.map +0 -1
- package/dist/setup/copilot.js.map +0 -1
- package/dist/setup/doctor.d.ts.map +0 -1
- package/dist/setup/doctor.js.map +0 -1
- package/dist/setup/hooks.d.ts.map +0 -1
- package/dist/setup/hooks.js.map +0 -1
- package/dist/setup/migrate.d.ts.map +0 -1
- package/dist/setup/migrate.js.map +0 -1
- package/dist/setup/openclaw.d.ts.map +0 -1
- package/dist/setup/openclaw.js.map +0 -1
- package/dist/setup/settings-hooks.d.ts.map +0 -1
- package/dist/setup/settings-hooks.js.map +0 -1
- package/dist/setup/status.d.ts.map +0 -1
- package/dist/setup/status.js.map +0 -1
- package/dist/setup/uninstall.d.ts.map +0 -1
- package/dist/setup/uninstall.js.map +0 -1
- package/dist/tools/context.d.ts.map +0 -1
- package/dist/tools/context.js.map +0 -1
- package/dist/tools/forget.d.ts.map +0 -1
- package/dist/tools/forget.js.map +0 -1
- package/dist/tools/graph.d.ts.map +0 -1
- package/dist/tools/graph.js.map +0 -1
- package/dist/tools/recall.d.ts.map +0 -1
- package/dist/tools/recall.js.map +0 -1
- package/dist/tools/remember.d.ts.map +0 -1
- package/dist/tools/remember.js.map +0 -1
- package/dist/worker/brain-worker.d.ts.map +0 -1
- package/dist/worker/brain-worker.js.map +0 -1
- package/dist/worker/link-discovery.d.ts.map +0 -1
- package/dist/worker/link-discovery.js.map +0 -1
- package/dist/worker/predictive-consolidation.d.ts.map +0 -1
- package/dist/worker/predictive-consolidation.js.map +0 -1
- package/dist/worker/types.d.ts.map +0 -1
- package/dist/worker/types.js.map +0 -1
- package/plugins/openclaw/README.md +0 -93
- package/plugins/openclaw/index.ts +0 -432
- package/plugins/openclaw/openclaw.plugin.json +0 -10
- /package/dashboard/.next/standalone/dashboard/.next/static/{3NPHem1lidYcerzR28Shs → QB0u2SMOnB24QHhhlDrIU}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{3NPHem1lidYcerzR28Shs → QB0u2SMOnB24QHhhlDrIU}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{3NPHem1lidYcerzR28Shs → QB0u2SMOnB24QHhhlDrIU}/_ssgManifest.js +0 -0
package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_25b1b286._.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module.exports=[59414,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},76206,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},95089,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(76206);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},70303,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},37197,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},62386,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(16306),e=a.r(18780),f=a.r(56704),g=a.r(70303),h=a.r(37197);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},32546,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(16306),e=a.r(98419),f=a.r(95089),g=a.r(62386);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},96924,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(59414)._(a.r(32546));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},86344,a=>{"use strict";let b,c,d,e,f,g,h,i,j,k;var l,m=a.i(16306),n=a.i(98419);let o=(0,n.createContext)({});function p(a){let b=(0,n.useRef)(null);return null===b.current&&(b.current=a()),b.current}let q=n.useEffect,r=(0,n.createContext)(null);function s(a){return"object"==typeof a&&null!==a}function t(a){return s(a)&&"offsetHeight"in a}var u=n;let v=(0,n.createContext)({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"});function w(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class x extends u.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=t(a)&&a.offsetWidth||0,d=t(a)&&a.offsetHeight||0,e=this.props.sizeRef.current;e.height=b.offsetHeight||0,e.width=b.offsetWidth||0,e.top=b.offsetTop,e.left=b.offsetLeft,e.right=c-e.width-e.left,e.bottom=d-e.height-e.top}return null}componentDidUpdate(){}render(){return this.props.children}}function y({children:a,isPresent:b,anchorX:c,anchorY:d,root:e}){let f=(0,u.useId)(),g=(0,u.useRef)(null),h=(0,u.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:i}=(0,u.useContext)(v),j=function(...a){return n.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=w(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():w(a[b],null)}}}}(...a),a)}(g,a.props?.ref??a?.ref);return(0,u.useInsertionEffect)(()=>{let{width:a,height:j,top:k,left:l,right:m,bottom:n}=h.current;if(b||!g.current||!a||!j)return;let o="left"===c?`left: ${l}`:`right: ${m}`,p="bottom"===d?`bottom: ${n}`:`top: ${k}`;g.current.dataset.motionPopId=f;let q=document.createElement("style");i&&(q.nonce=i);let r=e??document.head;return r.appendChild(q),q.sheet&&q.sheet.insertRule(`
|
|
2
|
-
[data-motion-pop-id="${f}"] {
|
|
3
|
-
position: absolute !important;
|
|
4
|
-
width: ${a}px !important;
|
|
5
|
-
height: ${j}px !important;
|
|
6
|
-
${o}px !important;
|
|
7
|
-
${p}px !important;
|
|
8
|
-
}
|
|
9
|
-
`),()=>{r.contains(q)&&r.removeChild(q)}},[b]),(0,m.jsx)(x,{isPresent:b,childRef:g,sizeRef:h,children:u.cloneElement(a,{ref:j})})}let z=({children:a,initial:b,isPresent:c,onExitComplete:d,custom:e,presenceAffectsLayout:f,mode:g,anchorX:h,anchorY:i,root:j})=>{let k=p(A),l=(0,n.useId)(),o=!0,q=(0,n.useMemo)(()=>(o=!1,{id:l,initial:b,isPresent:c,custom:e,onExitComplete:a=>{for(let b of(k.set(a,!0),k.values()))if(!b)return;d&&d()},register:a=>(k.set(a,!1),()=>k.delete(a))}),[c,k,d]);return f&&o&&(q={...q}),(0,n.useMemo)(()=>{k.forEach((a,b)=>k.set(b,!1))},[c]),n.useEffect(()=>{c||k.size||!d||d()},[c]),"popLayout"===g&&(a=(0,m.jsx)(y,{isPresent:c,anchorX:h,anchorY:i,root:j,children:a})),(0,m.jsx)(r.Provider,{value:q,children:a})};function A(){return new Map}function B(a=!0){let b=(0,n.useContext)(r);if(null===b)return[!0,null];let{isPresent:c,onExitComplete:d,register:e}=b,f=(0,n.useId)();(0,n.useEffect)(()=>{if(a)return e(f)},[a]);let g=(0,n.useCallback)(()=>a&&d&&d(f),[f,d,a]);return!c&&d?[!1,g]:[!0]}let C=a=>a.key||"";function D(a){let b=[];return n.Children.forEach(a,a=>{(0,n.isValidElement)(a)&&b.push(a)}),b}let E=({children:a,custom:b,initial:c=!0,onExitComplete:d,presenceAffectsLayout:e=!0,mode:f="sync",propagate:g=!1,anchorX:h="left",anchorY:i="top",root:j})=>{let[k,l]=B(g),r=(0,n.useMemo)(()=>D(a),[a]),s=g&&!k?[]:r.map(C),t=(0,n.useRef)(!0),u=(0,n.useRef)(r),v=p(()=>new Map),w=(0,n.useRef)(new Set),[x,y]=(0,n.useState)(r),[A,E]=(0,n.useState)(r);q(()=>{t.current=!1,u.current=r;for(let a=0;a<A.length;a++){let b=C(A[a]);s.includes(b)?(v.delete(b),w.current.delete(b)):!0!==v.get(b)&&v.set(b,!1)}},[A,s.length,s.join("-")]);let F=[];if(r!==x){let a=[...r];for(let b=0;b<A.length;b++){let c=A[b],d=C(c);s.includes(d)||(a.splice(b,0,c),F.push(c))}return"wait"===f&&F.length&&(a=F),E(D(a)),y(r),null}let{forceRender:G}=(0,n.useContext)(o);return(0,m.jsx)(m.Fragment,{children:A.map(a=>{let n=C(a),o=(!g||!!k)&&(r===A||s.includes(n));return(0,m.jsx)(z,{isPresent:o,initial:(!t.current||!!c)&&void 0,custom:b,presenceAffectsLayout:e,mode:f,root:j,onExitComplete:o?void 0:()=>{if(w.current.has(n)||(w.current.add(n),!v.has(n)))return;v.set(n,!0);let a=!0;v.forEach(b=>{b||(a=!1)}),a&&(G?.(),E(u.current),g&&l?.(),d&&d())},anchorX:h,anchorY:i,children:a},n)})})},F=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],G=new Set(F),H=(a,b,c)=>c>b?b:c<a?a:c,I={test:a=>"number"==typeof a,parse:parseFloat,transform:a=>a},J={...I,transform:a=>H(0,1,a)},K={...I,default:1},L=a=>Math.round(1e5*a)/1e5,M=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,N=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,O=(a,b)=>c=>!!("string"==typeof c&&N.test(c)&&c.startsWith(a)||b&&null!=c&&Object.prototype.hasOwnProperty.call(c,b)),P=(a,b,c)=>d=>{if("string"!=typeof d)return d;let[e,f,g,h]=d.match(M);return{[a]:parseFloat(e),[b]:parseFloat(f),[c]:parseFloat(g),alpha:void 0!==h?parseFloat(h):1}},Q={...I,transform:a=>Math.round(H(0,255,a))},R={test:O("rgb","red"),parse:P("red","green","blue"),transform:({red:a,green:b,blue:c,alpha:d=1})=>"rgba("+Q.transform(a)+", "+Q.transform(b)+", "+Q.transform(c)+", "+L(J.transform(d))+")"},S={test:O("#"),parse:function(a){let b="",c="",d="",e="";return a.length>5?(b=a.substring(1,3),c=a.substring(3,5),d=a.substring(5,7),e=a.substring(7,9)):(b=a.substring(1,2),c=a.substring(2,3),d=a.substring(3,4),e=a.substring(4,5),b+=b,c+=c,d+=d,e+=e),{red:parseInt(b,16),green:parseInt(c,16),blue:parseInt(d,16),alpha:e?parseInt(e,16)/255:1}},transform:R.transform},T=a=>({test:b=>"string"==typeof b&&b.endsWith(a)&&1===b.split(" ").length,parse:parseFloat,transform:b=>`${b}${a}`}),U=T("deg"),V=T("%"),W=T("px"),X=T("vh"),Y=T("vw"),Z={...V,parse:a=>V.parse(a)/100,transform:a=>V.transform(100*a)},$={test:O("hsl","hue"),parse:P("hue","saturation","lightness"),transform:({hue:a,saturation:b,lightness:c,alpha:d=1})=>"hsla("+Math.round(a)+", "+V.transform(L(b))+", "+V.transform(L(c))+", "+L(J.transform(d))+")"},_={test:a=>R.test(a)||S.test(a)||$.test(a),parse:a=>R.test(a)?R.parse(a):$.test(a)?$.parse(a):S.parse(a),transform:a=>"string"==typeof a?a:a.hasOwnProperty("red")?R.transform(a):$.transform(a),getAnimatableNone:a=>{let b=_.parse(a);return b.alpha=0,_.transform(b)}},aa=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,ab="number",ac="color",ad=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ae(a){let b=a.toString(),c=[],d={color:[],number:[],var:[]},e=[],f=0,g=b.replace(ad,a=>(_.test(a)?(d.color.push(f),e.push(ac),c.push(_.parse(a))):a.startsWith("var(")?(d.var.push(f),e.push("var"),c.push(a)):(d.number.push(f),e.push(ab),c.push(parseFloat(a))),++f,"${}")).split("${}");return{values:c,split:g,indexes:d,types:e}}function af(a){return ae(a).values}function ag(a){let{split:b,types:c}=ae(a),d=b.length;return a=>{let e="";for(let f=0;f<d;f++)if(e+=b[f],void 0!==a[f]){let b=c[f];b===ab?e+=L(a[f]):b===ac?e+=_.transform(a[f]):e+=a[f]}return e}}let ah=a=>"number"==typeof a?0:_.test(a)?_.getAnimatableNone(a):a,ai={test:function(a){return isNaN(a)&&"string"==typeof a&&(a.match(M)?.length||0)+(a.match(aa)?.length||0)>0},parse:af,createTransformer:ag,getAnimatableNone:function(a){let b=af(a);return ag(a)(b.map(ah))}},aj=new Set(["brightness","contrast","saturate","opacity"]);function ak(a){let[b,c]=a.slice(0,-1).split("(");if("drop-shadow"===b)return a;let[d]=c.match(M)||[];if(!d)return a;let e=c.replace(d,""),f=+!!aj.has(b);return d!==c&&(f*=100),b+"("+f+e+")"}let al=/\b([a-z-]*)\(.*?\)/gu,am={...ai,getAnimatableNone:a=>{let b=a.match(al);return b?b.map(ak).join(" "):a}},an={...I,transform:Math.round},ao={borderWidth:W,borderTopWidth:W,borderRightWidth:W,borderBottomWidth:W,borderLeftWidth:W,borderRadius:W,borderTopLeftRadius:W,borderTopRightRadius:W,borderBottomRightRadius:W,borderBottomLeftRadius:W,width:W,maxWidth:W,height:W,maxHeight:W,top:W,right:W,bottom:W,left:W,inset:W,insetBlock:W,insetBlockStart:W,insetBlockEnd:W,insetInline:W,insetInlineStart:W,insetInlineEnd:W,padding:W,paddingTop:W,paddingRight:W,paddingBottom:W,paddingLeft:W,paddingBlock:W,paddingBlockStart:W,paddingBlockEnd:W,paddingInline:W,paddingInlineStart:W,paddingInlineEnd:W,margin:W,marginTop:W,marginRight:W,marginBottom:W,marginLeft:W,marginBlock:W,marginBlockStart:W,marginBlockEnd:W,marginInline:W,marginInlineStart:W,marginInlineEnd:W,fontSize:W,backgroundPositionX:W,backgroundPositionY:W,rotate:U,rotateX:U,rotateY:U,rotateZ:U,scale:K,scaleX:K,scaleY:K,scaleZ:K,skew:U,skewX:U,skewY:U,distance:W,translateX:W,translateY:W,translateZ:W,x:W,y:W,z:W,perspective:W,transformPerspective:W,opacity:J,originX:Z,originY:Z,originZ:W,zIndex:an,fillOpacity:J,strokeOpacity:J,numOctaves:an},ap={...ao,color:_,backgroundColor:_,outlineColor:_,fill:_,stroke:_,borderColor:_,borderTopColor:_,borderRightColor:_,borderBottomColor:_,borderLeftColor:_,filter:am,WebkitFilter:am},aq=a=>ap[a],ar=()=>({translate:0,scale:1,origin:0,originPoint:0}),as=()=>({x:ar(),y:ar()}),at=()=>({min:0,max:0}),au=()=>({x:at(),y:at()}),av=a=>!!(a&&a.getVelocity),aw=new Set(["width","height","top","left","right","bottom",...F]),ax=a=>b=>b.test(a),ay=[I,W,V,U,Y,X,{test:a=>"auto"===a,parse:a=>a}],az=a=>ay.find(ax(a)),aA=()=>{},aB=()=>{},aC=a=>b=>"string"==typeof b&&b.startsWith(a),aD=aC("--"),aE=aC("var(--"),aF=a=>!!aE(a)&&aG.test(a.split("/*")[0].trim()),aG=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function aH(a){return"string"==typeof a&&a.split("/*")[0].includes("var(--")}let aI=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,aJ=a=>180*a/Math.PI,aK=a=>aM(aJ(Math.atan2(a[1],a[0]))),aL={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:aK,rotateZ:aK,skewX:a=>aJ(Math.atan(a[1])),skewY:a=>aJ(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},aM=a=>((a%=360)<0&&(a+=360),a),aN=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),aO=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),aP={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:aN,scaleY:aO,scale:a=>(aN(a)+aO(a))/2,rotateX:a=>aM(aJ(Math.atan2(a[6],a[5]))),rotateY:a=>aM(aJ(Math.atan2(-a[2],a[0]))),rotateZ:aK,rotate:aK,skewX:a=>aJ(Math.atan(a[4])),skewY:a=>aJ(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function aQ(a){return+!!a.includes("scale")}function aR(a,b){let c,d;if(!a||"none"===a)return aQ(b);let e=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(e)c=aP,d=e;else{let b=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);c=aL,d=b}if(!d)return aQ(b);let f=c[b],g=d[1].split(",").map(aS);return"function"==typeof f?f(g):g[f]}function aS(a){return parseFloat(a.trim())}let aT=a=>a===I||a===W,aU=new Set(["x","y","z"]),aV=F.filter(a=>!aU.has(a)),aW={width:({x:a},{paddingLeft:b="0",paddingRight:c="0"})=>a.max-a.min-parseFloat(b)-parseFloat(c),height:({y:a},{paddingTop:b="0",paddingBottom:c="0"})=>a.max-a.min-parseFloat(b)-parseFloat(c),top:(a,{top:b})=>parseFloat(b),left:(a,{left:b})=>parseFloat(b),bottom:({y:a},{top:b})=>parseFloat(b)+(a.max-a.min),right:({x:a},{left:b})=>parseFloat(b)+(a.max-a.min),x:(a,{transform:b})=>aR(b,"x"),y:(a,{transform:b})=>aR(b,"y")};aW.translateX=aW.x,aW.translateY=aW.y;let aX=a=>a,aY={},aZ=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function a$(a,b){let c=!1,d=!0,e={delta:0,timestamp:0,isProcessing:!1},f=()=>c=!0,g=aZ.reduce((a,c)=>(a[c]=function(a,b){let c=new Set,d=new Set,e=!1,f=!1,g=new WeakSet,h={delta:0,timestamp:0,isProcessing:!1},i=0;function j(b){g.has(b)&&(k.schedule(b),a()),i++,b(h)}let k={schedule:(a,b=!1,f=!1)=>{let h=f&&e?c:d;return b&&g.add(a),h.has(a)||h.add(a),a},cancel:a=>{d.delete(a),g.delete(a)},process:a=>{if(h=a,e){f=!0;return}e=!0,[c,d]=[d,c],c.forEach(j),b,i=0,c.clear(),e=!1,f&&(f=!1,k.process(a))}};return k}(f,b?c:void 0),a),{}),{setup:h,read:i,resolveKeyframes:j,preUpdate:k,update:l,preRender:m,render:n,postRender:o}=g,p=()=>{let f=aY.useManualTiming?e.timestamp:performance.now();c=!1,aY.useManualTiming||(e.delta=d?1e3/60:Math.max(Math.min(f-e.timestamp,40),1)),e.timestamp=f,e.isProcessing=!0,h.process(e),i.process(e),j.process(e),k.process(e),l.process(e),m.process(e),n.process(e),o.process(e),e.isProcessing=!1,c&&b&&(d=!1,a(p))};return{schedule:aZ.reduce((b,f)=>{let h=g[f];return b[f]=(b,f=!1,g=!1)=>(!c&&(c=!0,d=!0,e.isProcessing||a(p)),h.schedule(b,f,g)),b},{}),cancel:a=>{for(let b=0;b<aZ.length;b++)g[aZ[b]].cancel(a)},state:e,steps:g}}let{schedule:a_,cancel:a0,state:a1,steps:a2}=a$("u">typeof requestAnimationFrame?requestAnimationFrame:aX,!0),a3=new Set,a4=!1,a5=!1,a6=!1;function a7(){if(a5){let a=Array.from(a3).filter(a=>a.needsMeasurement),b=new Set(a.map(a=>a.element)),c=new Map;b.forEach(a=>{let b,d=(b=[],aV.forEach(c=>{let d=a.getValue(c);void 0!==d&&(b.push([c,d.get()]),d.set(+!!c.startsWith("scale")))}),b);d.length&&(c.set(a,d),a.render())}),a.forEach(a=>a.measureInitialState()),b.forEach(a=>{a.render();let b=c.get(a);b&&b.forEach(([b,c])=>{a.getValue(b)?.set(c)})}),a.forEach(a=>a.measureEndState()),a.forEach(a=>{void 0!==a.suspendedScrollY&&window.scrollTo(0,a.suspendedScrollY)})}a5=!1,a4=!1,a3.forEach(a=>a.complete(a6)),a3.clear()}function a8(){a3.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(a5=!0)})}class a9{constructor(a,b,c,d,e,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...a],this.onComplete=b,this.name=c,this.motionValue=d,this.element=e,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(a3.add(this),a4||(a4=!0,a_.read(a8),a_.resolveKeyframes(a7))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:a,name:b,element:c,motionValue:d}=this;if(null===a[0]){let e=d?.get(),f=a[a.length-1];if(void 0!==e)a[0]=e;else if(c&&b){let d=c.readValue(b,f);null!=d&&(a[0]=d)}void 0===a[0]&&(a[0]=f),d&&void 0===e&&d.set(a[0])}for(let b=1;b<a.length;b++)a[b]??(a[b]=a[b-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(a=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,a),a3.delete(this)}cancel(){"scheduled"===this.state&&(a3.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}function ba(a,b){let c=aq(a);return c!==am&&(c=ai),c.getAnimatableNone?c.getAnimatableNone(b):void 0}let bb=new Set(["auto","none","0"]);class bc extends a9{constructor(a,b,c,d,e){super(a,b,c,d,e,!0)}readKeyframes(){let{unresolvedKeyframes:a,element:b,name:c}=this;if(!b||!b.current)return;super.readKeyframes();for(let c=0;c<a.length;c++){let d=a[c];if("string"==typeof d&&aF(d=d.trim())){let e=function a(b,c,d=1){aB(d<=4,`Max CSS variable fallback depth detected in property "${b}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[e,f]=function(a){let b=aI.exec(a);if(!b)return[,];let[,c,d,e]=b;return[`--${c??d}`,e]}(b);if(!e)return;let g=window.getComputedStyle(c).getPropertyValue(e);if(g){let a=g.trim();return/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a)?parseFloat(a):a}return aF(f)?a(f,c,d+1):f}(d,b.current);void 0!==e&&(a[c]=e),c===a.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!aw.has(c)||2!==a.length)return;let[d,e]=a,f=az(d),g=az(e);if(aH(d)!==aH(e)&&aW[c]){this.needsMeasurement=!0;return}if(f!==g)if(aT(f)&&aT(g))for(let b=0;b<a.length;b++){let c=a[b];"string"==typeof c&&(a[b]=parseFloat(c))}else aW[c]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:a,name:b}=this,c=[];for(let b=0;b<a.length;b++)(null===a[b]||function(a){if("number"==typeof a)return 0===a;if(null===a)return!0;return"none"===a||"0"===a||/^0[^.\s]+$/u.test(a)}(a[b]))&&c.push(b);c.length&&function(a,b,c){let d,e=0;for(;e<a.length&&!d;){let b=a[e];"string"==typeof b&&!bb.has(b)&&ae(b).values.length&&(d=a[e]),e++}if(d&&c)for(let e of b)a[e]=ba(c,d)}(a,c,b)}measureInitialState(){let{element:a,unresolvedKeyframes:b,name:c}=this;if(!a||!a.current)return;"height"===c&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=aW[c](a.measureViewportBox(),window.getComputedStyle(a.current)),b[0]=this.measuredOrigin;let d=b[b.length-1];void 0!==d&&a.getValue(c,d).jump(d,!1)}measureEndState(){let{element:a,name:b,unresolvedKeyframes:c}=this;if(!a||!a.current)return;let d=a.getValue(b);d&&d.jump(this.measuredOrigin,!1);let e=c.length-1,f=c[e];c[e]=aW[b](a.measureViewportBox(),window.getComputedStyle(a.current)),null!==f&&void 0===this.finalKeyframe&&(this.finalKeyframe=f),this.removedTransforms?.length&&this.removedTransforms.forEach(([b,c])=>{a.getValue(b).set(c)}),this.resolveNoneKeyframes()}}function bd(a,b){-1===a.indexOf(b)&&a.push(b)}function be(a,b){let c=a.indexOf(b);c>-1&&a.splice(c,1)}class bf{constructor(){this.subscriptions=[]}add(a){return bd(this.subscriptions,a),()=>be(this.subscriptions,a)}notify(a,b,c){let d=this.subscriptions.length;if(d)if(1===d)this.subscriptions[0](a,b,c);else for(let e=0;e<d;e++){let d=this.subscriptions[e];d&&d(a,b,c)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}let{schedule:bg}=a$(queueMicrotask,!1);function bh(){b=void 0}let bi={now:()=>(void 0===b&&bi.set(a1.isProcessing||aY.useManualTiming?a1.timestamp:performance.now()),b),set:a=>{b=a,queueMicrotask(bh)}};class bj{constructor(a,b={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{let b=bi.now();if(this.updatedAt!==b&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(a),this.owner=b.owner}setCurrent(a){this.current=a,this.updatedAt=bi.now(),null===this.canTrackVelocity&&void 0!==a&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(a=this.current){this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt}onChange(a){return this.on("change",a)}on(a,b){this.events[a]||(this.events[a]=new bf);let c=this.events[a].add(b);return"change"===a?()=>{c(),a_.read(()=>{this.events.change.getSize()||this.stop()})}:c}clearListeners(){for(let a in this.events)this.events[a].clear()}attach(a,b){this.passiveEffect=a,this.stopPassiveEffect=b}set(a){this.passiveEffect?this.passiveEffect(a,this.updateAndNotify):this.updateAndNotify(a)}setWithVelocity(a,b,c){this.set(b),this.prev=void 0,this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt-c}jump(a,b=!0){this.updateAndNotify(a),this.prev=a,this.prevUpdatedAt=this.prevFrameValue=void 0,b&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(a){this.dependents||(this.dependents=new Set),this.dependents.add(a)}removeDependent(a){this.dependents&&this.dependents.delete(a)}get(){return j&&j.push(this),this.current}getPrevious(){return this.prev}getVelocity(){var a;let b=bi.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||b-this.updatedAt>30)return 0;let c=Math.min(this.updatedAt-this.prevUpdatedAt,30);return a=parseFloat(this.current)-parseFloat(this.prevFrameValue),c?1e3/c*a:0}start(a){return this.stop(),new Promise(b=>{this.hasAnimated=!0,this.animation=a(b),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function bk(a,b){return new bj(a,b)}let bl=[...ay,_,ai],bm={current:!1},bn=new WeakMap;function bo(a){return null!==a&&"object"==typeof a&&"function"==typeof a.start}function bp(a){return"string"==typeof a||Array.isArray(a)}let bq=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],br=["initial",...bq];function bs(a){return bo(a.animate)||br.some(b=>bp(a[b]))}function bt(a){return!!(bs(a)||a.variants)}function bu(a){let b=[{},{}];return a?.values.forEach((a,c)=>{b[0][c]=a.get(),b[1][c]=a.getVelocity()}),b}function bv(a,b,c,d){if("function"==typeof b){let[e,f]=bu(d);b=b(void 0!==c?c:a.custom,e,f)}if("string"==typeof b&&(b=a.variants&&a.variants[b]),"function"==typeof b){let[e,f]=bu(d);b=b(void 0!==c?c:a.custom,e,f)}return b}let bw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],bx={};class by{scrapeMotionValuesFromProps(a,b,c){return{}}constructor({parent:a,props:b,presenceContext:c,reducedMotionConfig:d,blockInitialAnimation:e,visualState:f},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=a9,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let a=bi.now();this.renderScheduledAt<a&&(this.renderScheduledAt=a,a_.render(this.render,!1,!0))};const{latestValues:h,renderState:i}=f;this.latestValues=h,this.baseTarget={...h},this.initialValues=b.initial?{...h}:{},this.renderState=i,this.parent=a,this.props=b,this.presenceContext=c,this.depth=a?a.depth+1:0,this.reducedMotionConfig=d,this.options=g,this.blockInitialAnimation=!!e,this.isControllingVariants=bs(b),this.isVariantNode=bt(b),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(a&&a.current);const{willChange:j,...k}=this.scrapeMotionValuesFromProps(b,{},this);for(const a in k){const b=k[a];void 0!==h[a]&&av(b)&&b.set(h[a])}}mount(a){this.current=a,bn.set(a,this),this.projection&&!this.projection.instance&&this.projection.mount(a),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,b)=>this.bindToMotionValue(b,a)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(bm.current||(bm.current=!0),this.shouldReduceMotion=null),this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){for(let a in this.projection&&this.projection.unmount(),a0(this.notifyUpdate),a0(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[a].clear();for(let a in this.features){let b=this.features[a];b&&(b.unmount(),b.isMounted=!1)}this.current=null}addChild(a){this.children.add(a),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(a)}removeChild(a){this.children.delete(a),this.enteringChildren&&this.enteringChildren.delete(a)}bindToMotionValue(a,b){let c;this.valueSubscriptions.has(a)&&this.valueSubscriptions.get(a)();let d=G.has(a);d&&this.onBindTransform&&this.onBindTransform();let e=b.on("change",b=>{this.latestValues[a]=b,this.props.onUpdate&&a_.preRender(this.notifyUpdate),d&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});this.valueSubscriptions.set(a,()=>{e(),c&&c(),b.owner&&b.stop()})}sortNodePosition(a){return this.current&&this.sortInstanceNodePosition&&this.type===a.type?this.sortInstanceNodePosition(this.current,a.current):0}updateFeatures(){let a="animation";for(a in bx){let b=bx[a];if(!b)continue;let{isEnabled:c,Feature:d}=b;if(!this.features[a]&&d&&c(this.props)&&(this.features[a]=new d(this)),this.features[a]){let b=this.features[a];b.isMounted?b.update():(b.mount(),b.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):au()}getStaticValue(a){return this.latestValues[a]}setStaticValue(a,b){this.latestValues[a]=b}update(a,b){(a.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=a,this.prevPresenceContext=this.presenceContext,this.presenceContext=b;for(let b=0;b<bw.length;b++){let c=bw[b];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);let d=a["on"+c];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=function(a,b,c){for(let d in b){let e=b[d],f=c[d];if(av(e))a.addValue(d,e);else if(av(f))a.addValue(d,bk(e,{owner:a}));else if(f!==e)if(a.hasValue(d)){let b=a.getValue(d);!0===b.liveStyle?b.jump(e):b.hasAnimated||b.set(e)}else{let b=a.getStaticValue(d);a.addValue(d,bk(void 0!==b?b:e,{owner:a}))}}for(let d in c)void 0===b[d]&&a.removeValue(d);return b}(this,this.scrapeMotionValuesFromProps(a,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(a){return this.props.variants?this.props.variants[a]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(a){let b=this.getClosestVariantNode();if(b)return b.variantChildren&&b.variantChildren.add(a),()=>b.variantChildren.delete(a)}addValue(a,b){let c=this.values.get(a);b!==c&&(c&&this.removeValue(a),this.bindToMotionValue(a,b),this.values.set(a,b),this.latestValues[a]=b.get())}removeValue(a){this.values.delete(a);let b=this.valueSubscriptions.get(a);b&&(b(),this.valueSubscriptions.delete(a)),delete this.latestValues[a],this.removeValueFromRenderState(a,this.renderState)}hasValue(a){return this.values.has(a)}getValue(a,b){if(this.props.values&&this.props.values[a])return this.props.values[a];let c=this.values.get(a);return void 0===c&&void 0!==b&&(c=bk(null===b?void 0:b,{owner:this}),this.addValue(a,c)),c}readValue(a,b){let c=void 0===this.latestValues[a]&&this.current?this.getBaseTargetFromProps(this.props,a)??this.readValueFromInstance(this.current,a,this.options):this.latestValues[a];if(null!=c){let d,e;if("string"==typeof c&&(d=c,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(d)||(e=c,/^0[^.\s]+$/u.test(e))))c=parseFloat(c);else{let d;d=c,!bl.find(ax(d))&&ai.test(b)&&(c=ba(a,b))}this.setBaseTarget(a,av(c)?c.get():c)}return av(c)?c.get():c}setBaseTarget(a,b){this.baseTarget[a]=b}getBaseTarget(a){let b,{initial:c}=this.props;if("string"==typeof c||"object"==typeof c){let d=bv(this.props,c,this.presenceContext?.custom);d&&(b=d[a])}if(c&&void 0!==b)return b;let d=this.getBaseTargetFromProps(this.props,a);return void 0===d||av(d)?void 0!==this.initialValues[a]&&void 0===b?void 0:this.baseTarget[a]:d}on(a,b){return this.events[a]||(this.events[a]=new bf),this.events[a].add(b)}notify(a,...b){this.events[a]&&this.events[a].notify(...b)}scheduleRenderMicrotask(){bg.render(this.render)}}class bz extends by{constructor(){super(...arguments),this.KeyframeResolver=bc}sortInstanceNodePosition(a,b){return 2&a.compareDocumentPosition(b)?1:-1}getBaseTargetFromProps(a,b){let c=a.style;return c?c[b]:void 0}removeValueFromRenderState(a,{vars:b,style:c}){delete b[a],delete c[a]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:a}=this.props;av(a)&&(this.childSubscription=a.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function bA(a){return a.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}let bB=(a,b)=>b&&"number"==typeof a?b.transform(a):a,bC={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},bD=F.length;function bE(a,b,c){let{style:d,vars:e,transformOrigin:f}=a,g=!1,h=!1;for(let a in b){let c=b[a];if(G.has(a)){g=!0;continue}if(aD(a)){e[a]=c;continue}{let b=bB(c,ao[a]);a.startsWith("origin")?(h=!0,f[a]=b):d[a]=b}}if(!b.transform&&(g||c?d.transform=function(a,b,c){let d="",e=!0;for(let f=0;f<bD;f++){let g=F[f],h=a[g];if(void 0===h)continue;let i=!0;if("number"==typeof h)i=h===+!!g.startsWith("scale");else{let a=parseFloat(h);i=g.startsWith("scale")?1===a:0===a}if(!i||c){let a=bB(h,ao[g]);if(!i){e=!1;let b=bC[g]||g;d+=`${b}(${a}) `}c&&(b[g]=a)}}return d=d.trim(),c?d=c(b,e?"":d):e&&(d="none"),d}(b,a.transform,c):d.transform&&(d.transform="none")),h){let{originX:a="50%",originY:b="50%",originZ:c=0}=f;d.transformOrigin=`${a} ${b} ${c}`}}let bF={offset:"stroke-dashoffset",array:"stroke-dasharray"},bG={offset:"strokeDashoffset",array:"strokeDasharray"},bH=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function bI(a,{attrX:b,attrY:c,attrScale:d,pathLength:e,pathSpacing:f=1,pathOffset:g=0,...h},i,j,k){if(bE(a,h,j),i){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};let{attrs:l,style:m}=a;for(let a of(l.transform&&(m.transform=l.transform,delete l.transform),(m.transform||l.transformOrigin)&&(m.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),m.transform&&(m.transformBox=k?.transformBox??"fill-box",delete l.transformBox),bH))void 0!==l[a]&&(m[a]=l[a],delete l[a]);void 0!==b&&(l.x=b),void 0!==c&&(l.y=c),void 0!==d&&(l.scale=d),void 0!==e&&function(a,b,c=1,d=0,e=!0){a.pathLength=1;let f=e?bF:bG;a[f.offset]=`${-d}`,a[f.array]=`${b} ${c}`}(l,e,f,g,!1)}let bJ=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),bK=a=>"string"==typeof a&&"svg"===a.toLowerCase();function bL(a,{style:b,vars:c},d,e){let f,g=a.style;for(f in b)g[f]=b[f];for(f in e?.applyProjectionStyles(g,d),c)g.setProperty(f,c[f])}function bM(a,b){return b.max===b.min?0:a/(b.max-b.min)*100}let bN={correct:(a,b)=>{if(!b.target)return a;if("string"==typeof a)if(!W.test(a))return a;else a=parseFloat(a);let c=bM(a,b.target.x),d=bM(a,b.target.y);return`${c}% ${d}%`}},bO=(a,b,c)=>a+(b-a)*c,bP={borderRadius:{...bN,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:bN,borderTopRightRadius:bN,borderBottomLeftRadius:bN,borderBottomRightRadius:bN,boxShadow:{correct:(a,{treeScale:b,projectionDelta:c})=>{let d=ai.parse(a);if(d.length>5)return a;let e=ai.createTransformer(a),f=+("number"!=typeof d[0]),g=c.x.scale*b.x,h=c.y.scale*b.y;d[0+f]/=g,d[1+f]/=h;let i=bO(g,h,.5);return"number"==typeof d[2+f]&&(d[2+f]/=i),"number"==typeof d[3+f]&&(d[3+f]/=i),e(d)}}};function bQ(a,{layout:b,layoutId:c}){return G.has(a)||a.startsWith("origin")||(b||void 0!==c)&&(!!bP[a]||"opacity"===a)}function bR(a,b,c){let d=a.style,e=b?.style,f={};if(!d)return f;for(let b in d)(av(d[b])||e&&av(e[b])||bQ(b,a)||c?.getValue(b)?.liveStyle!==void 0)&&(f[b]=d[b]);return f}function bS(a,b,c){let d=bR(a,b,c);for(let c in a)(av(a[c])||av(b[c]))&&(d[-1!==F.indexOf(c)?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c]=a[c]);return d}class bT extends bz{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=au}getBaseTargetFromProps(a,b){return a[b]}readValueFromInstance(a,b){if(G.has(b)){let a=aq(b);return a&&a.default||0}return b=bJ.has(b)?b:bA(b),a.getAttribute(b)}scrapeMotionValuesFromProps(a,b,c){return bS(a,b,c)}build(a,b,c){bI(a,b,this.isSVGTag,c.transformTemplate,c.style)}renderInstance(a,b,c,d){for(let c in bL(a,b,void 0,d),b.attrs)a.setAttribute(bJ.has(c)?c:bA(c),b.attrs[c])}mount(a){this.isSVGTag=bK(a.tagName),super.mount(a)}}function bU({top:a,left:b,right:c,bottom:d}){return{x:{min:b,max:c},y:{min:a,max:d}}}function bV(a){return void 0===a||1===a}function bW({scale:a,scaleX:b,scaleY:c}){return!bV(a)||!bV(b)||!bV(c)}function bX(a){return bW(a)||bY(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function bY(a){var b,c;return(b=a.x)&&"0%"!==b||(c=a.y)&&"0%"!==c}function bZ(a,b,c,d,e){return void 0!==e&&(a=d+e*(a-d)),d+c*(a-d)+b}function b$(a,b=0,c=1,d,e){a.min=bZ(a.min,b,c,d,e),a.max=bZ(a.max,b,c,d,e)}function b_(a,{x:b,y:c}){b$(a.x,b.translate,b.scale,b.originPoint),b$(a.y,c.translate,c.scale,c.originPoint)}function b0(a,b){a.min=a.min+b,a.max=a.max+b}function b1(a,b,c,d,e=.5){let f=bO(a.min,a.max,e);b$(a,b,c,f,d)}function b2(a,b){b1(a.x,b.x,b.scaleX,b.scale,b.originX),b1(a.y,b.y,b.scaleY,b.scale,b.originY)}function b3(a,b){return bU(function(a,b){if(!b)return a;let c=b({x:a.left,y:a.top}),d=b({x:a.right,y:a.bottom});return{top:c.y,left:c.x,bottom:d.y,right:d.x}}(a.getBoundingClientRect(),b))}class b4 extends bz{constructor(){super(...arguments),this.type="html",this.renderInstance=bL}readValueFromInstance(a,b){if(G.has(b))return this.projection?.isProjecting?aQ(b):((a,b)=>{let{transform:c="none"}=getComputedStyle(a);return aR(c,b)})(a,b);{let c=window.getComputedStyle(a),d=(aD(b)?c.getPropertyValue(b):c[b])||0;return"string"==typeof d?d.trim():d}}measureInstanceViewportBox(a,{transformPagePoint:b}){return b3(a,b)}build(a,b,c){bE(a,b,c.transformTemplate)}scrapeMotionValuesFromProps(a,b,c){return bR(a,b,c)}}let b5=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function b6(a){if("string"!=typeof a||a.includes("-"));else if(b5.indexOf(a)>-1||/[A-Z]/u.test(a))return!0;return!1}(0,n.createContext)({strict:!1});let b7=(0,n.createContext)({});function b8(a){return Array.isArray(a)?a.join(" "):a}let b9=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function ca(a,b,c){for(let d in b)av(b[d])||bQ(d,c)||(a[d]=b[d])}let cb=()=>({...b9(),attrs:{}}),cc=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function cd(a){return a.startsWith("while")||a.startsWith("drag")&&"draggable"!==a||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||cc.has(a)}let ce=a=>!cd(a);try{l=(()=>{let a=Error("Cannot find module '@emotion/is-prop-valid'");throw a.code="MODULE_NOT_FOUND",a})().default,"function"==typeof l&&(ce=a=>a.startsWith("on")?!cd(a):l(a))}catch{}function cf(a){return av(a)?a.get():a}let cg=a=>(b,c)=>{let d=(0,n.useContext)(b7),e=(0,n.useContext)(r),f=()=>(function({scrapeMotionValuesFromProps:a,createRenderState:b},c,d,e){return{latestValues:function(a,b,c,d){let e={},f=d(a,{});for(let a in f)e[a]=cf(f[a]);let{initial:g,animate:h}=a,i=bs(a),j=bt(a);b&&j&&!i&&!1!==a.inherit&&(void 0===g&&(g=b.initial),void 0===h&&(h=b.animate));let k=!!c&&!1===c.initial,l=(k=k||!1===g)?h:g;if(l&&"boolean"!=typeof l&&!bo(l)){let b=Array.isArray(l)?l:[l];for(let c=0;c<b.length;c++){let d=bv(a,b[c]);if(d){let{transitionEnd:a,transition:b,...c}=d;for(let a in c){let b=c[a];if(Array.isArray(b)){let a=k?b.length-1:0;b=b[a]}null!==b&&(e[a]=b)}for(let b in a)e[b]=a[b]}}}return e}(c,d,e,a),renderState:b()}})(a,b,d,e);return c?f():p(f)},ch=cg({scrapeMotionValuesFromProps:bR,createRenderState:b9}),ci=cg({scrapeMotionValuesFromProps:bS,createRenderState:cb}),cj={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},ck=!1,cl=Symbol.for("motionComponentSymbol"),cm="data-"+bA("framerAppearId"),cn=(0,n.createContext)({});function co(a){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"current")}function cp(a,{forwardMotionProps:b=!1,type:c}={},d,e){d&&function(a){let b=(!function(){if(ck)return;let a={};for(let b in cj)a[b]={isEnabled:a=>cj[b].some(b=>!!a[b])};bx=a,ck=!0}(),bx);for(let c in a)b[c]={...b[c],...a[c]};bx=b}(d);let f=c?"svg"===c:b6(a),g=f?ci:ch;function h(c,d){var e;let h,i,j,k={...(0,n.useContext)(v),...c,layoutId:function({layoutId:a}){let b=(0,n.useContext)(o).id;return b&&void 0!==a?b+"-"+a:a}(c)},{isStatic:l}=k,p=function(a){let{initial:b,animate:c}=function(a,b){if(bs(a)){let{initial:b,animate:c}=a;return{initial:!1===b||bp(b)?b:void 0,animate:bp(c)?c:void 0}}return!1!==a.inherit?b:{}}(a,(0,n.useContext)(b7));return(0,n.useMemo)(()=>({initial:b,animate:c}),[b8(b),b8(c)])}(c),q=g(c,l);return(0,m.jsxs)(b7.Provider,{value:p,children:[h&&p.visualElement?(0,m.jsx)(h,{visualElement:p.visualElement,...k}):null,function(a,b,c,{latestValues:d},e,f=!1,g){let h=(g??b6(a)?function(a,b,c,d){let e=(0,n.useMemo)(()=>{let c=cb();return bI(c,b,bK(d),a.transformTemplate,a.style),{...c.attrs,style:{...c.style}}},[b]);if(a.style){let b={};ca(b,a.style,a),e.style={...b,...e.style}}return e}:function(a,b){let c,d,e={},f=(c=a.style||{},ca(d={},c,a),Object.assign(d,function({transformTemplate:a},b){return(0,n.useMemo)(()=>{let c=b9();return bE(c,b,a),Object.assign({},c.vars,c.style)},[b])}(a,b)),d);return a.drag&&!1!==a.dragListener&&(e.draggable=!1,f.userSelect=f.WebkitUserSelect=f.WebkitTouchCallout="none",f.touchAction=!0===a.drag?"none":`pan-${"x"===a.drag?"y":"x"}`),void 0===a.tabIndex&&(a.onTap||a.onTapStart||a.whileTap)&&(e.tabIndex=0),e.style=f,e})(b,d,e,a),i=function(a,b,c){let d={};for(let e in a)("values"!==e||"object"!=typeof a.values)&&(ce(e)||!0===c&&cd(e)||!b&&!cd(e)||a.draggable&&e.startsWith("onDrag"))&&(d[e]=a[e]);return d}(b,"string"==typeof a,f),j=a!==n.Fragment?{...i,...h,ref:c}:{},{children:k}=b,l=(0,n.useMemo)(()=>av(k)?k.get():k,[k]);return(0,n.createElement)(a,{...j,children:l})}(a,c,(e=p.visualElement,i=(0,n.useRef)(d),(0,n.useInsertionEffect)(()=>{i.current=d}),j=(0,n.useRef)(null),(0,n.useCallback)(a=>{a&&q.onMount?.(a),e&&(a?e.mount(a):e.unmount());let b=i.current;if("function"==typeof b)if(a){let c=b(a);"function"==typeof c&&(j.current=c)}else j.current?(j.current(),j.current=null):b(a);else b&&(b.current=a)},[e])),q,l,b,f)]})}h.displayName=`motion.${"string"==typeof a?a:`create(${a.displayName??a.name??""})`}`;let i=(0,n.forwardRef)(h);return i[cl]=a,i}class cq{constructor(a){this.isMounted=!1,this.node=a}update(){}}function cr(a,b,c){let d=a.getProps();return bv(d,b,void 0!==c?c:d.custom,a)}function cs(a,b){return a?.[b]??a?.default??a}let ct=a=>Array.isArray(a);function cu(a,b){let c=a.getValue("willChange");if(av(c)&&c.add)return c.add(b);if(!c&&aY.WillChange){let c=new aY.WillChange("auto");a.addValue("willChange",c),c.add(b)}}let cv=a=>1e3*a,cw=(a,b)=>c=>b(a(c)),cx=(...a)=>a.reduce(cw),cy={layout:0,mainThread:0,waapi:0};function cz(a,b,c){return(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a}function cA(a,b){return c=>c>0?b:a}let cB=(a,b,c)=>{let d=a*a,e=c*(b*b-d)+d;return e<0?0:Math.sqrt(e)},cC=[S,R,$];function cD(a){let b=cC.find(b=>b.test(a));if(aA(!!b,`'${a}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!b)return!1;let c=b.parse(a);return b===$&&(c=function({hue:a,saturation:b,lightness:c,alpha:d}){a/=360,c/=100;let e=0,f=0,g=0;if(b/=100){let d=c<.5?c*(1+b):c+b-c*b,h=2*c-d;e=cz(h,d,a+1/3),f=cz(h,d,a),g=cz(h,d,a-1/3)}else e=f=g=c;return{red:Math.round(255*e),green:Math.round(255*f),blue:Math.round(255*g),alpha:d}}(c)),c}let cE=(a,b)=>{let c=cD(a),d=cD(b);if(!c||!d)return cA(a,b);let e={...c};return a=>(e.red=cB(c.red,d.red,a),e.green=cB(c.green,d.green,a),e.blue=cB(c.blue,d.blue,a),e.alpha=bO(c.alpha,d.alpha,a),R.transform(e))},cF=new Set(["none","hidden"]);function cG(a,b){return c=>bO(a,b,c)}function cH(a){return"number"==typeof a?cG:"string"==typeof a?aF(a)?cA:_.test(a)?cE:cK:Array.isArray(a)?cI:"object"==typeof a?_.test(a)?cE:cJ:cA}function cI(a,b){let c=[...a],d=c.length,e=a.map((a,c)=>cH(a)(a,b[c]));return a=>{for(let b=0;b<d;b++)c[b]=e[b](a);return c}}function cJ(a,b){let c={...a,...b},d={};for(let e in c)void 0!==a[e]&&void 0!==b[e]&&(d[e]=cH(a[e])(a[e],b[e]));return a=>{for(let b in d)c[b]=d[b](a);return c}}let cK=(a,b)=>{let c=ai.createTransformer(b),d=ae(a),e=ae(b);if(!(d.indexes.var.length===e.indexes.var.length&&d.indexes.color.length===e.indexes.color.length&&d.indexes.number.length>=e.indexes.number.length))return aA(!0,`Complex values '${a}' and '${b}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),cA(a,b);if(cF.has(a)&&!e.values.length||cF.has(b)&&!d.values.length)return cF.has(a)?c=>c<=0?a:b:c=>c>=1?b:a;return cx(cI(function(a,b){let c=[],d={color:0,var:0,number:0};for(let e=0;e<b.values.length;e++){let f=b.types[e],g=a.indexes[f][d[f]],h=a.values[g]??0;c[e]=h,d[f]++}return c}(d,e),e.values),c)};function cL(a,b,c){return"number"==typeof a&&"number"==typeof b&&"number"==typeof c?bO(a,b,c):cH(a)(a,b)}let cM=a=>{let b=({timestamp:b})=>a(b);return{start:(a=!0)=>a_.update(b,a),stop:()=>a0(b),now:()=>a1.isProcessing?a1.timestamp:bi.now()}},cN=(a,b,c=10)=>{let d="",e=Math.max(Math.round(b/c),2);for(let b=0;b<e;b++)d+=Math.round(1e4*a(b/(e-1)))/1e4+", ";return`linear(${d.substring(0,d.length-2)})`};function cO(a){let b=0,c=a.next(b);for(;!c.done&&b<2e4;)b+=50,c=a.next(b);return b>=2e4?1/0:b}function cP(a,b,c){var d,e;let f=Math.max(b-5,0);return d=c-a(f),(e=b-f)?1e3/e*d:0}let cQ=.01,cR=2,cS=.005,cT=.5;function cU(a,b){return a*Math.sqrt(1-b*b)}let cV=["duration","bounce"],cW=["stiffness","damping","mass"];function cX(a,b){return b.some(b=>void 0!==a[b])}function cY(a=.3,b=.3){let c,d="object"!=typeof a?{visualDuration:a,keyframes:[0,1],bounce:b}:a,{restSpeed:e,restDelta:f}=d,g=d.keyframes[0],h=d.keyframes[d.keyframes.length-1],i={done:!1,value:g},{stiffness:j,damping:k,mass:l,duration:m,velocity:n,isResolvedFromDuration:o}=function(a){let b={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...a};if(!cX(a,cW)&&cX(a,cV))if(a.visualDuration){let c=2*Math.PI/(1.2*a.visualDuration),d=c*c,e=2*H(.05,1,1-(a.bounce||0))*Math.sqrt(d);b={...b,mass:1,stiffness:d,damping:e}}else{let c=function({duration:a=800,bounce:b=.3,velocity:c=0,mass:d=1}){let e,f;aA(a<=cv(10),"Spring duration must be 10 seconds or less","spring-duration-limit");let g=1-b;g=H(.05,1,g),a=H(.01,10,a/1e3),g<1?(e=b=>{let d=b*g,e=d*a;return .001-(d-c)/cU(b,g)*Math.exp(-e)},f=b=>{let d=b*g*a,f=Math.pow(g,2)*Math.pow(b,2)*a,h=Math.exp(-d),i=cU(Math.pow(b,2),g);return(d*c+c-f)*h*(-e(b)+.001>0?-1:1)/i}):(e=b=>-.001+Math.exp(-b*a)*((b-c)*a+1),f=b=>a*a*(c-b)*Math.exp(-b*a));let h=function(a,b,c){let d=c;for(let c=1;c<12;c++)d-=a(d)/b(d);return d}(e,f,5/a);if(a=cv(a),isNaN(h))return{stiffness:100,damping:10,duration:a};{let b=Math.pow(h,2)*d;return{stiffness:b,damping:2*g*Math.sqrt(d*b),duration:a}}}(a);(b={...b,...c,mass:1}).isResolvedFromDuration=!0}return b}({...d,velocity:-((d.velocity||0)/1e3)}),p=n||0,q=k/(2*Math.sqrt(j*l)),r=h-g,s=Math.sqrt(j/l)/1e3,t=5>Math.abs(r);if(e||(e=t?cQ:cR),f||(f=t?cS:cT),q<1){let a=cU(s,q);c=b=>h-Math.exp(-q*s*b)*((p+q*s*r)/a*Math.sin(a*b)+r*Math.cos(a*b))}else if(1===q)c=a=>h-Math.exp(-s*a)*(r+(p+s*r)*a);else{let a=s*Math.sqrt(q*q-1);c=b=>{let c=Math.exp(-q*s*b),d=Math.min(a*b,300);return h-c*((p+q*s*r)*Math.sinh(d)+a*r*Math.cosh(d))/a}}let u={calculatedDuration:o&&m||null,next:a=>{let b=c(a);if(o)i.done=a>=m;else{let d=0===a?p:0;q<1&&(d=0===a?cv(p):cP(c,a,b));let g=Math.abs(h-b)<=f;i.done=Math.abs(d)<=e&&g}return i.value=i.done?h:b,i},toString:()=>{let a=Math.min(cO(u),2e4),b=cN(b=>u.next(a*b).value,a,30);return a+"ms "+b},toTransition:()=>{}};return u}function cZ({keyframes:a,velocity:b=0,power:c=.8,timeConstant:d=325,bounceDamping:e=10,bounceStiffness:f=500,modifyTarget:g,min:h,max:i,restDelta:j=.5,restSpeed:k}){let l,m,n=a[0],o={done:!1,value:n},p=c*b,q=n+p,r=void 0===g?q:g(q);r!==q&&(p=r-n);let s=a=>-p*Math.exp(-a/d),t=a=>r+s(a),u=a=>{let b=s(a),c=t(a);o.done=Math.abs(b)<=j,o.value=o.done?r:c},v=a=>{let b;if(b=o.value,void 0!==h&&b<h||void 0!==i&&b>i){var c;l=a,m=cY({keyframes:[o.value,(c=o.value,void 0===h?i:void 0===i||Math.abs(h-c)<Math.abs(i-c)?h:i)],velocity:cP(t,a,o.value),damping:e,stiffness:f,restDelta:j,restSpeed:k})}};return v(0),{calculatedDuration:null,next:a=>{let b=!1;return(m||void 0!==l||(b=!0,u(a),v(a)),void 0!==l&&a>=l)?m.next(a-l):(b||u(a),o)}}}cY.applyToOptions=a=>{let b=function(a,b=100,c){let d=c({...a,keyframes:[0,b]}),e=Math.min(cO(d),2e4);return{type:"keyframes",ease:a=>d.next(e*a).value/b,duration:e/1e3}}(a,100,cY);return a.ease=b.ease,a.duration=cv(b.duration),a.type="keyframes",a};let c$=(a,b,c)=>(((1-3*c+3*b)*a+(3*c-6*b))*a+3*b)*a;function c_(a,b,c,d){return a===b&&c===d?aX:e=>0===e||1===e?e:c$(function(a,b,c,d,e){let f,g,h=0;do(f=c$(g=b+(c-b)/2,d,e)-a)>0?c=g:b=g;while(Math.abs(f)>1e-7&&++h<12)return g}(e,0,1,a,c),b,d)}let c0=c_(.42,0,1,1),c1=c_(0,0,.58,1),c2=c_(.42,0,.58,1),c3=a=>b=>b<=.5?a(2*b)/2:(2-a(2*(1-b)))/2,c4=a=>b=>1-a(1-b),c5=c_(.33,1.53,.69,.99),c6=c4(c5),c7=c3(c6),c8=a=>(a*=2)<1?.5*c6(a):.5*(2-Math.pow(2,-10*(a-1))),c9=a=>1-Math.sin(Math.acos(a)),da=c4(c9),db=c3(c9),dc=a=>Array.isArray(a)&&"number"==typeof a[0],dd={linear:aX,easeIn:c0,easeInOut:c2,easeOut:c1,circIn:c9,circInOut:db,circOut:da,backIn:c6,backInOut:c7,backOut:c5,anticipate:c8},de=a=>{if(dc(a)){aB(4===a.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[b,c,d,e]=a;return c_(b,c,d,e)}return"string"==typeof a?(aB(void 0!==dd[a],`Invalid easing type '${a}'`,"invalid-easing-type"),dd[a]):a},df=(a,b,c)=>{let d=b-a;return 0===d?1:(c-a)/d};function dg({duration:a=300,keyframes:b,times:c,ease:d="easeInOut"}){var e;let f,g=Array.isArray(d)&&"number"!=typeof d[0]?d.map(de):de(d),h={done:!1,value:b[0]},i=function(a,b,{clamp:c=!0,ease:d,mixer:e}={}){let f=a.length;if(aB(f===b.length,"Both input and output ranges must be the same length","range-length"),1===f)return()=>b[0];if(2===f&&b[0]===b[1])return()=>b[1];let g=a[0]===a[1];a[0]>a[f-1]&&(a=[...a].reverse(),b=[...b].reverse());let h=function(a,b,c){let d=[],e=c||aY.mix||cL,f=a.length-1;for(let c=0;c<f;c++){let f=e(a[c],a[c+1]);b&&(f=cx(Array.isArray(b)?b[c]||aX:b,f)),d.push(f)}return d}(b,d,e),i=h.length,j=c=>{if(g&&c<a[0])return b[0];let d=0;if(i>1)for(;d<a.length-2&&!(c<a[d+1]);d++);let e=df(a[d],a[d+1],c);return h[d](e)};return c?b=>j(H(a[0],a[f-1],b)):j}((e=c&&c.length===b.length?c:(!function(a,b){let c=a[a.length-1];for(let d=1;d<=b;d++){let e=df(0,b,d);a.push(bO(c,1,e))}}(f=[0],b.length-1),f),e.map(b=>b*a)),b,{ease:Array.isArray(g)?g:b.map(()=>g||c2).splice(0,b.length-1)});return{calculatedDuration:a,next:b=>(h.value=i(b),h.done=b>=a,h)}}let dh=a=>null!==a;function di(a,{repeat:b,repeatType:c="loop"},d,e=1){let f=a.filter(dh),g=e<0||b&&"loop"!==c&&b%2==1?0:f.length-1;return g&&void 0!==d?d:f[g]}let dj={decay:cZ,inertia:cZ,tween:dg,keyframes:dg,spring:cY};function dk(a){"string"==typeof a.type&&(a.type=dj[a.type])}class dl{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(a=>{this.resolve=a})}notifyFinished(){this.resolve()}then(a,b){return this.finished.then(a,b)}}let dm=a=>a/100;class dn extends dl{constructor(a){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{let{motionValue:a}=this.options;a&&a.updatedAt!==bi.now()&&this.tick(bi.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},cy.mainThread++,this.options=a,this.initAnimation(),this.play(),!1===a.autoplay&&this.pause()}initAnimation(){let{options:a}=this;dk(a);let{type:b=dg,repeat:c=0,repeatDelay:d=0,repeatType:e,velocity:f=0}=a,{keyframes:g}=a,h=b||dg;h!==dg&&"number"!=typeof g[0]&&(this.mixKeyframes=cx(dm,cL(g[0],g[1])),g=[0,100]);let i=h({...a,keyframes:g});"mirror"===e&&(this.mirroredGenerator=h({...a,keyframes:[...g].reverse(),velocity:-f})),null===i.calculatedDuration&&(i.calculatedDuration=cO(i));let{calculatedDuration:j}=i;this.calculatedDuration=j,this.resolvedDuration=j+d,this.totalDuration=this.resolvedDuration*(c+1)-d,this.generator=i}updateTime(a){let b=Math.round(a-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=b}tick(a,b=!1){let{generator:c,totalDuration:d,mixKeyframes:e,mirroredGenerator:f,resolvedDuration:g,calculatedDuration:h}=this;if(null===this.startTime)return c.next(0);let{delay:i=0,keyframes:j,repeat:k,repeatType:l,repeatDelay:m,type:n,onUpdate:o,finalKeyframe:p}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,a):this.speed<0&&(this.startTime=Math.min(a-d/this.speed,this.startTime)),b?this.currentTime=a:this.updateTime(a);let q=this.currentTime-i*(this.playbackSpeed>=0?1:-1),r=this.playbackSpeed>=0?q<0:q>d;this.currentTime=Math.max(q,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=d);let s=this.currentTime,t=c;if(k){let a=Math.min(this.currentTime,d)/g,b=Math.floor(a),c=a%1;!c&&a>=1&&(c=1),1===c&&b--,(b=Math.min(b,k+1))%2&&("reverse"===l?(c=1-c,m&&(c-=m/g)):"mirror"===l&&(t=f)),s=H(0,1,c)*g}let u=r?{done:!1,value:j[0]}:t.next(s);e&&(u.value=e(u.value));let{done:v}=u;r||null===h||(v=this.playbackSpeed>=0?this.currentTime>=d:this.currentTime<=0);let w=null===this.holdTime&&("finished"===this.state||"running"===this.state&&v);return w&&n!==cZ&&(u.value=di(j,this.options,p,this.speed)),o&&o(u.value),w&&this.finish(),u}then(a,b){return this.finished.then(a,b)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return this.currentTime/1e3}set time(a){a=cv(a),this.currentTime=a,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=a:this.driver&&(this.startTime=this.driver.now()-a/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(a){this.updateTime(bi.now());let b=this.playbackSpeed!==a;this.playbackSpeed=a,b&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:a=cM,startTime:b}=this.options;this.driver||(this.driver=a(a=>this.tick(a))),this.options.onPlay?.();let c=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=c):null!==this.holdTime?this.startTime=c-this.holdTime:this.startTime||(this.startTime=b??c),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(bi.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,cy.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(a){return this.startTime=0,this.tick(a,!0)}attachTimeline(a){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),a.observe(this)}}function dp(a){let b;return()=>(void 0===b&&(b=a()),b)}let dq=dp(()=>void 0!==window.ScrollTimeline),dr={},ds=(c=dp(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(a){return!1}return!0}),()=>dr.linearEasing??c()),dt=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`,du={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:dt([0,.65,.55,1]),circOut:dt([.55,0,1,.45]),backIn:dt([.31,.01,.66,-.59]),backOut:dt([.33,1.53,.69,.99])};function dv(a){return"function"==typeof a&&"applyToOptions"in a}class dw extends dl{constructor(a){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!a)return;const{element:b,name:c,keyframes:d,pseudoElement:e,allowFlatten:f=!1,finalKeyframe:g,onComplete:h}=a;this.isPseudoElement=!!e,this.allowFlatten=f,this.options=a,aB("string"!=typeof a.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const i=function({type:a,...b}){return dv(a)&&ds()?a.applyToOptions(b):(b.duration??(b.duration=300),b.ease??(b.ease="easeOut"),b)}(a);this.animation=function(a,b,c,{delay:d=0,duration:e=300,repeat:f=0,repeatType:g="loop",ease:h="easeOut",times:i}={},j){let k={[b]:c};i&&(k.offset=i);let l=function a(b,c){if(b)return"function"==typeof b?ds()?cN(b,c):"ease-out":dc(b)?dt(b):Array.isArray(b)?b.map(b=>a(b,c)||du.easeOut):du[b]}(h,e);Array.isArray(l)&&(k.easing=l);let m={delay:d,duration:e,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:f+1,direction:"reverse"===g?"alternate":"normal"};j&&(m.pseudoElement=j);let n=a.animate(k,m);return n}(b,c,d,i,e),!1===i.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!e){let a=di(d,this.options,g,this.speed);this.updateMotionValue?this.updateMotionValue(a):c.startsWith("--")?b.style.setProperty(c,a):b.style[c]=a,this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(a){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:a}=this;"idle"!==a&&"finished"!==a&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(a){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=cv(a)}get speed(){return this.animation.playbackRate}set speed(a){a<0&&(this.finishedTime=null),this.animation.playbackRate=a}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(a){this.manualStartTime=this.animation.startTime=a}attachTimeline({timeline:a,observe:b}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,a&&dq())?(this.animation.timeline=a,aX):b(this)}}let dx={anticipate:c8,backInOut:c7,circInOut:db};class dy extends dw{constructor(a){!function(a){"string"==typeof a.ease&&a.ease in dx&&(a.ease=dx[a.ease])}(a),dk(a),super(a),void 0!==a.startTime&&(this.startTime=a.startTime),this.options=a}updateMotionValue(a){let{motionValue:b,onUpdate:c,onComplete:d,element:e,...f}=this.options;if(!b)return;if(void 0!==a)return void b.set(a);let g=new dn({...f,autoplay:!1}),h=Math.max(10,bi.now()-this.startTime),i=H(0,10,h-10);b.setWithVelocity(g.sample(Math.max(0,h-i)).value,g.sample(h).value,i),g.stop()}}let dz=(a,b)=>"zIndex"!==b&&!!("number"==typeof a||Array.isArray(a)||"string"==typeof a&&(ai.test(a)||"0"===a)&&!a.startsWith("url("));function dA(a){a.duration=0,a.type="keyframes"}let dB=new Set(["opacity","clipPath","filter","transform"]),dC=dp(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class dD extends dl{constructor({autoplay:a=!0,delay:b=0,type:c="keyframes",repeat:d=0,repeatDelay:e=0,repeatType:f="loop",keyframes:g,name:h,motionValue:i,element:j,...k}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=bi.now();const l={autoplay:a,delay:b,type:c,repeat:d,repeatDelay:e,repeatType:f,name:h,motionValue:i,element:j,...k},m=j?.KeyframeResolver||a9;this.keyframeResolver=new m(g,(a,b,c)=>this.onKeyframesResolved(a,b,l,!c),h,i,j),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(a,b,c,d){this.keyframeResolver=void 0;let{name:e,type:f,velocity:g,delay:h,isHandoff:i,onUpdate:j}=c;this.resolvedAt=bi.now(),!function(a,b,c,d){let e=a[0];if(null===e)return!1;if("display"===b||"visibility"===b)return!0;let f=a[a.length-1],g=dz(e,b),h=dz(f,b);return aA(g===h,`You are trying to animate ${b} from "${e}" to "${f}". "${g?f:e}" is not an animatable value.`,"value-not-animatable"),!!g&&!!h&&(function(a){let b=a[0];if(1===a.length)return!0;for(let c=0;c<a.length;c++)if(a[c]!==b)return!0}(a)||("spring"===c||dv(c))&&d)}(a,e,f,g)&&((aY.instantAnimations||!h)&&j?.(di(a,c,b)),a[0]=a[a.length-1],dA(c),c.repeat=0);let k={startTime:d?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:b,...c,keyframes:a},l=!i&&function(a){let{motionValue:b,name:c,repeatDelay:d,repeatType:e,damping:f,type:g}=a;if(!(b?.owner?.current instanceof HTMLElement))return!1;let{onUpdate:h,transformTemplate:i}=b.owner.getProps();return dC()&&c&&dB.has(c)&&("transform"!==c||!i)&&!h&&!d&&"mirror"!==e&&0!==f&&"inertia"!==g}(k),m=k.motionValue?.owner?.current,n=l?new dy({...k,element:m}):new dn(k);n.finished.then(()=>{this.notifyFinished()}).catch(aX),this.pendingTimeline&&(this.stopTimeline=n.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=n}get finished(){return this._animation?this.animation.finished:this._finished}then(a,b){return this.finished.finally(a).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),a6=!0,a8(),a7(),a6=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(a){this.animation.time=a}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(a){this.animation.speed=a}get startTime(){return this.animation.startTime}attachTimeline(a){return this._animation?this.stopTimeline=this.animation.attachTimeline(a):this.pendingTimeline=a,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let dE={type:"spring",stiffness:500,damping:25,restSpeed:10},dF={type:"keyframes",duration:.8},dG={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},dH=a=>null!==a,dI=(a,b,c,d={},e,f)=>g=>{let h=cs(d,a)||{},i=h.delay||d.delay||0,{elapsed:j=0}=d;j-=cv(i);let k={keyframes:Array.isArray(c)?c:[null,c],ease:"easeOut",velocity:b.getVelocity(),...h,delay:-j,onUpdate:a=>{b.set(a),h.onUpdate&&h.onUpdate(a)},onComplete:()=>{g(),h.onComplete&&h.onComplete()},name:a,motionValue:b,element:f?void 0:e};!function({when:a,delay:b,delayChildren:c,staggerChildren:d,staggerDirection:e,repeat:f,repeatType:g,repeatDelay:h,from:i,elapsed:j,...k}){return!!Object.keys(k).length}(h)&&Object.assign(k,((a,{keyframes:b})=>b.length>2?dF:G.has(a)?a.startsWith("scale")?{type:"spring",stiffness:550,damping:0===b[1]?2*Math.sqrt(550):30,restSpeed:10}:dE:dG)(a,k)),k.duration&&(k.duration=cv(k.duration)),k.repeatDelay&&(k.repeatDelay=cv(k.repeatDelay)),void 0!==k.from&&(k.keyframes[0]=k.from);let l=!1;if(!1!==k.type&&(0!==k.duration||k.repeatDelay)||(dA(k),0===k.delay&&(l=!0)),(aY.instantAnimations||aY.skipAnimations)&&(l=!0,dA(k),k.delay=0),k.allowFlatten=!h.type&&!h.ease,l&&!f&&void 0!==b.get()){let a=function(a,{repeat:b,repeatType:c="loop"},d){let e=a.filter(dH),f=b&&"loop"!==c&&b%2==1?0:e.length-1;return e[f]}(k.keyframes,h);if(void 0!==a)return void a_.update(()=>{k.onUpdate(a),k.onComplete()})}return h.isSync?new dn(k):new dD(k)};function dJ(a,b,{delay:c=0,transitionOverride:d,type:e}={}){let{transition:f=a.getDefaultTransition(),transitionEnd:g,...h}=b;d&&(f=d);let i=[],j=e&&a.animationState&&a.animationState.getState()[e];for(let b in h){let d=a.getValue(b,a.latestValues[b]??null),e=h[b];if(void 0===e||j&&function({protectedKeys:a,needsAnimating:b},c){let d=a.hasOwnProperty(c)&&!0!==b[c];return b[c]=!1,d}(j,b))continue;let g={delay:c,...cs(f||{},b)},k=d.get();if(void 0!==k&&!d.isAnimating&&!Array.isArray(e)&&e===k&&!g.velocity)continue;let l=!1;if(window.MotionHandoffAnimation){let c=a.props[cm];if(c){let a=window.MotionHandoffAnimation(c,b,a_);null!==a&&(g.startTime=a,l=!0)}}cu(a,b),d.start(dI(b,d,e,a.shouldReduceMotion&&aw.has(b)?{type:!1}:g,a,l));let m=d.animation;m&&i.push(m)}return g&&Promise.all(i).then(()=>{a_.update(()=>{g&&function(a,b){let{transitionEnd:c={},transition:d={},...e}=cr(a,b)||{};for(let b in e={...e,...c}){var f;let c=ct(f=e[b])?f[f.length-1]||0:f;a.hasValue(b)?a.getValue(b).set(c):a.addValue(b,bk(c))}}(a,g)})}),i}function dK(a,b,c,d=0,e=1){let f=Array.from(a).sort((a,b)=>a.sortNodePosition(b)).indexOf(b),g=a.size,h=(g-1)*d;return"function"==typeof c?c(f,g):1===e?f*d:h-f*d}function dL(a,b,c={}){let d=cr(a,b,"exit"===c.type?a.presenceContext?.custom:void 0),{transition:e=a.getDefaultTransition()||{}}=d||{};c.transitionOverride&&(e=c.transitionOverride);let f=d?()=>Promise.all(dJ(a,d,c)):()=>Promise.resolve(),g=a.variantChildren&&a.variantChildren.size?(d=0)=>{let{delayChildren:f=0,staggerChildren:g,staggerDirection:h}=e;return function(a,b,c=0,d=0,e=0,f=1,g){let h=[];for(let i of a.variantChildren)i.notify("AnimationStart",b),h.push(dL(i,b,{...g,delay:c+("function"==typeof d?0:d)+dK(a.variantChildren,i,d,e,f)}).then(()=>i.notify("AnimationComplete",b)));return Promise.all(h)}(a,b,d,f,g,h,c)}:()=>Promise.resolve(),{when:h}=e;if(!h)return Promise.all([f(),g(c.delay)]);{let[a,b]="beforeChildren"===h?[f,g]:[g,f];return a().then(()=>b())}}let dM=br.length;function dN(a,b){if(!Array.isArray(b))return!1;let c=b.length;if(c!==a.length)return!1;for(let d=0;d<c;d++)if(b[d]!==a[d])return!1;return!0}let dO=[...bq].reverse(),dP=bq.length;function dQ(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function dR(){return{animate:dQ(!0),whileInView:dQ(),whileHover:dQ(),whileTap:dQ(),whileDrag:dQ(),whileFocus:dQ(),exit:dQ()}}let dS=0;function dT(a){return[a("x"),a("y")]}let dU=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function dV(a){return dU.has(a.tagName)||!0===a.isContentEditable}function dW(a,b,c,d={passive:!0}){return a.addEventListener(b,c,d),()=>a.removeEventListener(b,c)}let dX={x:!1,y:!1};function dY(a){return a.max-a.min}function dZ(a,b,c,d=.5){a.origin=d,a.originPoint=bO(b.min,b.max,a.origin),a.scale=dY(c)/dY(b),a.translate=bO(c.min,c.max,a.origin)-a.originPoint,(a.scale>=.9999&&a.scale<=1.0001||isNaN(a.scale))&&(a.scale=1),(a.translate>=-.01&&a.translate<=.01||isNaN(a.translate))&&(a.translate=0)}function d$(a,b,c,d){dZ(a.x,b.x,c.x,d?d.originX:void 0),dZ(a.y,b.y,c.y,d?d.originY:void 0)}function d_(a,b,c){a.min=c.min+b.min,a.max=a.min+dY(b)}function d0(a,b,c){a.min=b.min-c.min,a.max=a.min+dY(b)}function d1(a,b,c){d0(a.x,b.x,c.x),d0(a.y,b.y,c.y)}let d2=a=>"mouse"===a.pointerType?"number"!=typeof a.button||a.button<=0:!1!==a.isPrimary;function d3(a){return{point:{x:a.pageX,y:a.pageY}}}function d4(a,b,c,d){return dW(a,b,a=>d2(a)&&c(a,d3(a)),d)}let d5=({current:a})=>a?a.ownerDocument.defaultView:null,d6=(a,b)=>Math.abs(a-b),d7=new Set(["auto","scroll"]);class d8{constructor(a,b,{transformPagePoint:c,contextWindow:d=window,dragSnapToOrigin:e=!1,distanceThreshold:f=3,element:g}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=a=>{this.handleScroll(a.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{var a,b;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let c=eb(this.lastMoveEventInfo,this.history),d=null!==this.startEvent,e=(a=c.offset,b={x:0,y:0},Math.sqrt(d6(a.x,b.x)**2+d6(a.y,b.y)**2)>=this.distanceThreshold);if(!d&&!e)return;let{point:f}=c,{timestamp:g}=a1;this.history.push({...f,timestamp:g});let{onStart:h,onMove:i}=this.handlers;d||(h&&h(this.lastMoveEvent,c),this.startEvent=this.lastMoveEvent),i&&i(this.lastMoveEvent,c)},this.handlePointerMove=(a,b)=>{this.lastMoveEvent=a,this.lastMoveEventInfo=d9(b,this.transformPagePoint),a_.update(this.updatePoint,!0)},this.handlePointerUp=(a,b)=>{this.end();let{onEnd:c,onSessionEnd:d,resumeAnimation:e}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&e&&e(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let f=eb("pointercancel"===a.type?this.lastMoveEventInfo:d9(b,this.transformPagePoint),this.history);this.startEvent&&c&&c(a,f),d&&d(a,f)},!d2(a))return;this.dragSnapToOrigin=e,this.handlers=b,this.transformPagePoint=c,this.distanceThreshold=f,this.contextWindow=d||window;const h=d9(d3(a),this.transformPagePoint),{point:i}=h,{timestamp:j}=a1;this.history=[{...i,timestamp:j}];const{onSessionStart:k}=b;k&&k(a,eb(h,this.history)),this.removeListeners=cx(d4(this.contextWindow,"pointermove",this.handlePointerMove),d4(this.contextWindow,"pointerup",this.handlePointerUp),d4(this.contextWindow,"pointercancel",this.handlePointerUp)),g&&this.startScrollTracking(g)}startScrollTracking(a){let b=a.parentElement;for(;b;){let a=getComputedStyle(b);(d7.has(a.overflowX)||d7.has(a.overflowY))&&this.scrollPositions.set(b,{x:b.scrollLeft,y:b.scrollTop}),b=b.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(a){let b=this.scrollPositions.get(a);if(!b)return;let c=a===window,d=c?{x:window.scrollX,y:window.scrollY}:{x:a.scrollLeft,y:a.scrollTop},e={x:d.x-b.x,y:d.y-b.y};(0!==e.x||0!==e.y)&&(c?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=e.x,this.lastMoveEventInfo.point.y+=e.y):this.history.length>0&&(this.history[0].x-=e.x,this.history[0].y-=e.y),this.scrollPositions.set(a,d),a_.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),a0(this.updatePoint)}}function d9(a,b){return b?{point:b(a.point)}:a}function ea(a,b){return{x:a.x-b.x,y:a.y-b.y}}function eb({point:a},b){return{point:a,delta:ea(a,ec(b)),offset:ea(a,b[0]),velocity:function(a,b){if(a.length<2)return{x:0,y:0};let c=a.length-1,d=null,e=ec(a);for(;c>=0&&(d=a[c],!(e.timestamp-d.timestamp>cv(.1)));)c--;if(!d)return{x:0,y:0};let f=(e.timestamp-d.timestamp)/1e3;if(0===f)return{x:0,y:0};let g={x:(e.x-d.x)/f,y:(e.y-d.y)/f};return g.x===1/0&&(g.x=0),g.y===1/0&&(g.y=0),g}(b,.1)}}function ec(a){return a[a.length-1]}function ed(a,b,c){return{min:void 0!==b?a.min+b:void 0,max:void 0!==c?a.max+c-(a.max-a.min):void 0}}function ee(a,b){let c=b.min-a.min,d=b.max-a.max;return b.max-b.min<a.max-a.min&&([c,d]=[d,c]),{min:c,max:d}}function ef(a,b,c){return{min:eg(a,b),max:eg(a,c)}}function eg(a,b){return"number"==typeof a?a:a[b]||0}let eh=new WeakMap;class ei{constructor(a){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=au(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=a}start(a,{snapToCursor:b=!1,distanceThreshold:c}={}){let{presenceContext:d}=this.visualElement;if(d&&!1===d.isPresent)return;let e=a=>{b?(this.stopAnimation(),this.snapToCursor(d3(a).point)):this.pauseAnimation()},f=(a,b)=>{this.stopAnimation();let{drag:c,dragPropagation:d,onDragStart:e}=this.getProps();if(c&&!d&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(a){if("x"===a||"y"===a)if(dX[a])return null;else return dX[a]=!0,()=>{dX[a]=!1};return dX.x||dX.y?null:(dX.x=dX.y=!0,()=>{dX.x=dX.y=!1})}(c),!this.openDragLock))return;this.latestPointerEvent=a,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),dT(a=>{let b=this.getAxisMotionValue(a).get()||0;if(V.test(b)){let{projection:c}=this.visualElement;if(c&&c.layout){let d=c.layout.layoutBox[a];d&&(b=dY(d)*(parseFloat(b)/100))}}this.originPoint[a]=b}),e&&a_.postRender(()=>e(a,b)),cu(this.visualElement,"transform");let{animationState:f}=this.visualElement;f&&f.setActive("whileDrag",!0)},g=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b;let{dragPropagation:c,dragDirectionLock:d,onDirectionLock:e,onDrag:f}=this.getProps();if(!c&&!this.openDragLock)return;let{offset:g}=b;if(d&&null===this.currentDirection){this.currentDirection=function(a,b=10){let c=null;return Math.abs(a.y)>b?c="y":Math.abs(a.x)>b&&(c="x"),c}(g),null!==this.currentDirection&&e&&e(this.currentDirection);return}this.updateAxis("x",b.point,g),this.updateAxis("y",b.point,g),this.visualElement.render(),f&&f(a,b)},h=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b,this.stop(a,b),this.latestPointerEvent=null,this.latestPanInfo=null},i=()=>dT(a=>"paused"===this.getAnimationState(a)&&this.getAxisMotionValue(a).animation?.play()),{dragSnapToOrigin:j}=this.getProps();this.panSession=new d8(a,{onSessionStart:e,onStart:f,onMove:g,onSessionEnd:h,resumeAnimation:i},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:j,distanceThreshold:c,contextWindow:d5(this.visualElement),element:this.visualElement.current})}stop(a,b){let c=a||this.latestPointerEvent,d=b||this.latestPanInfo,e=this.isDragging;if(this.cancel(),!e||!d||!c)return;let{velocity:f}=d;this.startAnimation(f);let{onDragEnd:g}=this.getProps();g&&a_.postRender(()=>g(c,d))}cancel(){this.isDragging=!1;let{projection:a,animationState:b}=this.visualElement;a&&(a.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:c}=this.getProps();!c&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),b&&b.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(a,b,c){let{drag:d}=this.getProps();if(!c||!ej(a,d,this.currentDirection))return;let e=this.getAxisMotionValue(a),f=this.originPoint[a]+c[a];this.constraints&&this.constraints[a]&&(f=function(a,{min:b,max:c},d){return void 0!==b&&a<b?a=d?bO(b,a,d.min):Math.max(a,b):void 0!==c&&a>c&&(a=d?bO(c,a,d.max):Math.min(a,c)),a}(f,this.constraints[a],this.elastic[a])),e.set(f)}resolveConstraints(){let{dragConstraints:a,dragElastic:b}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,d=this.constraints;a&&co(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&c?this.constraints=function(a,{top:b,left:c,bottom:d,right:e}){return{x:ed(a.x,c,e),y:ed(a.y,b,d)}}(c.layoutBox,a):this.constraints=!1,this.elastic=function(a=.35){return!1===a?a=0:!0===a&&(a=.35),{x:ef(a,"left","right"),y:ef(a,"top","bottom")}}(b),d!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&dT(a=>{var b,d;let e;!1!==this.constraints&&this.getAxisMotionValue(a)&&(this.constraints[a]=(b=c.layoutBox[a],d=this.constraints[a],e={},void 0!==d.min&&(e.min=d.min-b.min),void 0!==d.max&&(e.max=d.max-b.min),e))})}resolveRefConstraints(){var a;let{dragConstraints:b,onMeasureDragConstraints:c}=this.getProps();if(!b||!co(b))return!1;let d=b.current;aB(null!==d,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:e}=this.visualElement;if(!e||!e.layout)return!1;let f=function(a,b,c){let d=b3(a,c),{scroll:e}=b;return e&&(b0(d.x,e.offset.x),b0(d.y,e.offset.y)),d}(d,e.root,this.visualElement.getTransformPagePoint()),g=(a=e.layout.layoutBox,{x:ee(a.x,f.x),y:ee(a.y,f.y)});if(c){let a=c(function({x:a,y:b}){return{top:b.min,right:a.max,bottom:b.max,left:a.min}}(g));this.hasMutatedConstraints=!!a,a&&(g=bU(a))}return g}startAnimation(a){let{drag:b,dragMomentum:c,dragElastic:d,dragTransition:e,dragSnapToOrigin:f,onDragTransitionEnd:g}=this.getProps(),h=this.constraints||{};return Promise.all(dT(g=>{if(!ej(g,b,this.currentDirection))return;let i=h&&h[g]||{};f&&(i={min:0,max:0});let j={type:"inertia",velocity:c?a[g]:0,bounceStiffness:d?200:1e6,bounceDamping:d?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...e,...i};return this.startAxisValueAnimation(g,j)})).then(g)}startAxisValueAnimation(a,b){let c=this.getAxisMotionValue(a);return cu(this.visualElement,a),c.start(dI(a,c,0,b,this.visualElement,!1))}stopAnimation(){dT(a=>this.getAxisMotionValue(a).stop())}pauseAnimation(){dT(a=>this.getAxisMotionValue(a).animation?.pause())}getAnimationState(a){return this.getAxisMotionValue(a).animation?.state}getAxisMotionValue(a){let b=`_drag${a.toUpperCase()}`,c=this.visualElement.getProps();return c[b]||this.visualElement.getValue(a,(c.initial?c.initial[a]:void 0)||0)}snapToCursor(a){dT(b=>{let{drag:c}=this.getProps();if(!ej(b,c,this.currentDirection))return;let{projection:d}=this.visualElement,e=this.getAxisMotionValue(b);if(d&&d.layout){let{min:c,max:f}=d.layout.layoutBox[b],g=e.get()||0;e.set(a[b]-bO(c,f,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:a,dragConstraints:b}=this.getProps(),{projection:c}=this.visualElement;if(!co(b)||!c||!this.constraints)return;this.stopAnimation();let d={x:0,y:0};dT(a=>{let b=this.getAxisMotionValue(a);if(b&&!1!==this.constraints){var c,e;let f,g,h,i=b.get();d[a]=(c={min:i,max:i},e=this.constraints[a],f=.5,g=dY(c),(h=dY(e))>g?f=df(e.min,e.max-g,c.min):g>h&&(f=df(c.min,c.max-h,e.min)),H(0,1,f))}});let{transformTemplate:e}=this.visualElement.getProps();this.visualElement.current.style.transform=e?e({},""):"none",c.root&&c.root.updateScroll(),c.updateLayout(),this.resolveConstraints(),dT(b=>{if(!ej(b,a,null))return;let c=this.getAxisMotionValue(b),{min:e,max:f}=this.constraints[b];c.set(bO(e,f,d[b]))})}addListeners(){if(!this.visualElement.current)return;eh.set(this.visualElement,this);let a=this.visualElement.current,b=d4(a,"pointerdown",b=>{let{drag:c,dragListener:d=!0}=this.getProps(),e=b.target,f=e!==a&&dV(e);c&&d&&!f&&this.start(b)}),c=()=>{let{dragConstraints:a}=this.getProps();co(a)&&a.current&&(this.constraints=this.resolveRefConstraints())},{projection:d}=this.visualElement,e=d.addEventListener("measure",c);d&&!d.layout&&(d.root&&d.root.updateScroll(),d.updateLayout()),a_.read(c);let f=dW(window,"resize",()=>this.scalePositionWithinConstraints()),g=d.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b})=>{this.isDragging&&b&&(dT(b=>{let c=this.getAxisMotionValue(b);c&&(this.originPoint[b]+=a[b].translate,c.set(c.get()+a[b].translate))}),this.visualElement.render())});return()=>{f(),b(),e(),g&&g()}}getProps(){let a=this.visualElement.getProps(),{drag:b=!1,dragDirectionLock:c=!1,dragPropagation:d=!1,dragConstraints:e=!1,dragElastic:f=.35,dragMomentum:g=!0}=a;return{...a,drag:b,dragDirectionLock:c,dragPropagation:d,dragConstraints:e,dragElastic:f,dragMomentum:g}}}function ej(a,b,c){return(!0===b||b===a)&&(null===c||c===a)}let ek=a=>(b,c)=>{a&&a_.postRender(()=>a(b,c))},el={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var em=n;let en=!1;class eo extends em.Component{componentDidMount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c,layoutId:d}=this.props,{projection:e}=a;e&&(b.group&&b.group.add(e),c&&c.register&&d&&c.register(e),en&&e.root.didUpdate(),e.addEventListener("animationComplete",()=>{this.safeToRemove()}),e.setOptions({...e.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),el.hasEverUpdated=!0}getSnapshotBeforeUpdate(a){let{layoutDependency:b,visualElement:c,drag:d,isPresent:e}=this.props,{projection:f}=c;return f&&(f.isPresent=e,a.layoutDependency!==b&&f.setOptions({...f.options,layoutDependency:b}),en=!0,d||a.layoutDependency!==b||void 0===b||a.isPresent!==e?f.willUpdate():this.safeToRemove(),a.isPresent!==e&&(e?f.promote():f.relegate()||a_.postRender(()=>{let a=f.getStack();a&&a.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:a}=this.props.visualElement;a&&(a.root.didUpdate(),bg.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c}=this.props,{projection:d}=a;en=!0,d&&(d.scheduleCheckAfterUnmount(),b&&b.group&&b.group.remove(d),c&&c.deregister&&c.deregister(d))}safeToRemove(){let{safeToRemove:a}=this.props;a&&a()}render(){return null}}function ep(a){let[b,c]=B(),d=(0,em.useContext)(o);return(0,m.jsx)(eo,{...a,layoutGroup:d,switchLayoutGroup:(0,em.useContext)(cn),isPresent:b,safeToRemove:c})}function eq(a,b,c,d,e){return a-=b,a=d+1/c*(a-d),void 0!==e&&(a=d+1/e*(a-d)),a}function er(a,b,[c,d,e],f,g){!function(a,b=0,c=1,d=.5,e,f=a,g=a){if(V.test(b)&&(b=parseFloat(b),b=bO(g.min,g.max,b/100)-g.min),"number"!=typeof b)return;let h=bO(f.min,f.max,d);a===f&&(h-=b),a.min=eq(a.min,b,c,h,e),a.max=eq(a.max,b,c,h,e)}(a,b[c],b[d],b[e],b.scale,f,g)}let es=["x","scaleX","originX"],et=["y","scaleY","originY"];function eu(a,b,c,d){er(a.x,b,es,c?c.x:void 0,d?d.x:void 0),er(a.y,b,et,c?c.y:void 0,d?d.y:void 0)}function ev(a,b){a.min=b.min,a.max=b.max}function ew(a,b){ev(a.x,b.x),ev(a.y,b.y)}function ex(a,b){a.translate=b.translate,a.scale=b.scale,a.originPoint=b.originPoint,a.origin=b.origin}function ey(a){return 0===a.translate&&1===a.scale}function ez(a){return ey(a.x)&&ey(a.y)}function eA(a,b){return a.min===b.min&&a.max===b.max}function eB(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function eC(a,b){return eB(a.x,b.x)&&eB(a.y,b.y)}function eD(a){return dY(a.x)/dY(a.y)}function eE(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}let eF=["TopLeft","TopRight","BottomLeft","BottomRight"],eG=eF.length,eH=a=>"string"==typeof a?parseFloat(a):a,eI=a=>"number"==typeof a||W.test(a);function eJ(a,b){return void 0!==a[b]?a[b]:a.borderRadius}let eK=eM(0,.5,da),eL=eM(.5,.95,aX);function eM(a,b,c){return d=>d<a?0:d>b?1:c(df(a,b,d))}function eN(a){return s(a)&&"ownerSVGElement"in a}let eO=(a,b)=>a.depth-b.depth;class eP{constructor(){this.children=[],this.isDirty=!1}add(a){bd(this.children,a),this.isDirty=!0}remove(a){be(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(eO),this.isDirty=!1,this.children.forEach(a)}}class eQ{constructor(){this.members=[]}add(a){bd(this.members,a),a.scheduleRender()}remove(a){if(be(this.members,a),a===this.prevLead&&(this.prevLead=void 0),a===this.lead){let a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(a){let b,c=this.members.findIndex(b=>a===b);if(0===c)return!1;for(let a=c;a>=0;a--){let c=this.members[a];if(!1!==c.isPresent){b=c;break}}return!!b&&(this.promote(b),!0)}promote(a,b){let c=this.lead;if(a!==c&&(this.prevLead=c,this.lead=a,a.show(),c)){c.instance&&c.scheduleRender(),a.scheduleRender();let d=c.options.layoutDependency,e=a.options.layoutDependency;(void 0===d||void 0===e||d!==e)&&(a.resumeFrom=c,b&&(a.resumeFrom.preserveOpacity=!0),c.snapshot&&(a.snapshot=c.snapshot,a.snapshot.latestValues=c.animationValues||c.latestValues),a.root&&a.root.isUpdating&&(a.isLayoutDirty=!0));let{crossfade:f}=a.options;!1===f&&c.hide()}}exitAnimationComplete(){this.members.forEach(a=>{let{options:b,resumingFrom:c}=a;b.onExitComplete&&b.onExitComplete(),c&&c.options.onExitComplete&&c.options.onExitComplete()})}scheduleRender(){this.members.forEach(a=>{a.instance&&a.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}let eR=["","X","Y","Z"],eS=0;function eT(a,b,c,d){let{latestValues:e}=b;e[a]&&(c[a]=e[a],b.setStaticValue(a,0),d&&(d[a]=0))}function eU({attachResizeListener:a,defaultParent:b,measureScroll:c,checkIsScrollRoot:d,resetTransform:e}){return class{constructor(a={},c=b?.()){this.id=eS++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(eX),this.nodes.forEach(e2),this.nodes.forEach(e3),this.nodes.forEach(eY)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let a=0;a<this.path.length;a++)this.path[a].shouldResetTransform=!0;this.root===this&&(this.nodes=new eP)}addEventListener(a,b){return this.eventHandlers.has(a)||this.eventHandlers.set(a,new bf),this.eventHandlers.get(a).add(b)}notifyListeners(a,...b){let c=this.eventHandlers.get(a);c&&c.notify(...b)}hasListeners(a){return this.eventHandlers.has(a)}mount(b){if(this.instance)return;this.isSVG=eN(b)&&!(eN(b)&&"svg"===b.tagName),this.instance=b;let{layoutId:c,layout:d,visualElement:e}=this.options;if(e&&!e.current&&e.mount(b),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(d||c)&&(this.isLayoutDirty=!0),a){let c,d=0,e=()=>this.root.updateBlockedByResize=!1;a_.read(()=>{d=window.innerWidth}),a(b,()=>{let a=window.innerWidth;if(a!==d){let b,f;d=a,this.root.updateBlockedByResize=!0,c&&c(),b=bi.now(),f=({timestamp:a})=>{let c=a-b;c>=250&&(a0(f),e(c-250))},a_.setup(f,!0),c=()=>a0(f),el.hasAnimatedSinceResize&&(el.hasAnimatedSinceResize=!1,this.nodes.forEach(e1))}})}c&&this.root.registerSharedNode(c,this),!1!==this.options.animate&&e&&(c||d)&&this.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b,hasRelativeLayoutChanged:c,layout:d})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let f=this.options.transition||e.getDefaultTransition()||e9,{onLayoutAnimationStart:g,onLayoutAnimationComplete:h}=e.getProps(),i=!this.targetLayout||!eC(this.targetLayout,d),j=!b&&c;if(this.options.layoutRoot||this.resumeFrom||j||b&&(i||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let b={...cs(f,"layout"),onPlay:g,onComplete:h};(e.shouldReduceMotion||this.options.layoutRoot)&&(b.delay=0,b.type=!1),this.startAnimation(b),this.setAnimationOrigin(a,j)}else b||e1(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=d})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),a0(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(e4),this.animationId++)}getTransformTemplate(){let{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function a(b){if(b.hasCheckedOptimisedAppear=!0,b.root===b)return;let{visualElement:c}=b.options;if(!c)return;let d=c.props[cm];if(window.MotionHasOptimisedAnimation(d,"transform")){let{layout:a,layoutId:c}=b.options;window.MotionCancelOptimisedAnimation(d,"transform",a_,!(a||c))}let{parent:e}=b;e&&!e.hasCheckedOptimisedAppear&&a(e)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let a=0;a<this.path.length;a++){let b=this.path[a];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}let{layoutId:b,layout:c}=this.options;if(void 0===b&&!c)return;let d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),a&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(e$);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(e_);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(e0),this.nodes.forEach(eV),this.nodes.forEach(eW)):this.nodes.forEach(e_),this.clearAllSnapshots();let a=bi.now();a1.delta=H(0,1e3/60,a-a1.timestamp),a1.timestamp=a,a1.isProcessing=!0,a2.update.process(a1),a2.preRender.process(a1),a2.render.process(a1),a1.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,bg.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(eZ),this.sharedNodes.forEach(e5)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,a_.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){a_.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||dY(this.snapshot.measuredBox.x)||dY(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a<this.path.length;a++)this.path[a].updateScroll();let a=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected=au(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:b}=this.options;b&&b.notify("LayoutMeasure",this.layout.layoutBox,a?a.layoutBox:void 0)}updateScroll(a="measure"){let b=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===a&&(b=!1),b&&this.instance){let b=d(this.instance);this.scroll={animationId:this.root.animationId,phase:a,isRoot:b,offset:c(this.instance),wasRoot:this.scroll?this.scroll.isRoot:b}}}resetTransform(){if(!e)return;let a=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,b=this.projectionDelta&&!ez(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;a&&this.instance&&(b||bX(this.latestValues)||f)&&(e(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(a=!0){var b;let c=this.measurePageBox(),d=this.removeElementScroll(c);return a&&(d=this.removeTransform(d)),fc((b=d).x),fc(b.y),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:a}=this.options;if(!a)return au();let b=a.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(fe))){let{scroll:a}=this.root;a&&(b0(b.x,a.offset.x),b0(b.y,a.offset.y))}return b}removeElementScroll(a){let b=au();if(ew(b,a),this.scroll?.wasRoot)return b;for(let c=0;c<this.path.length;c++){let d=this.path[c],{scroll:e,options:f}=d;d!==this.root&&e&&f.layoutScroll&&(e.wasRoot&&ew(b,a),b0(b.x,e.offset.x),b0(b.y,e.offset.y))}return b}applyTransform(a,b=!1){let c=au();ew(c,a);for(let a=0;a<this.path.length;a++){let d=this.path[a];!b&&d.options.layoutScroll&&d.scroll&&d!==d.root&&b2(c,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),bX(d.latestValues)&&b2(c,d.latestValues)}return bX(this.latestValues)&&b2(c,this.latestValues),c}removeTransform(a){let b=au();ew(b,a);for(let a=0;a<this.path.length;a++){let c=this.path[a];if(!c.instance||!bX(c.latestValues))continue;bW(c.latestValues)&&c.updateSnapshot();let d=au();ew(d,c.measurePageBox()),eu(b,c.latestValues,c.snapshot?c.snapshot.layoutBox:void 0,d)}return bX(this.latestValues)&&eu(b,this.latestValues),b}setTargetDelta(a){this.targetDelta=a,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(a){this.options={...this.options,...a,crossfade:void 0===a.crossfade||a.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==a1.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(a=!1){let b=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=b.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=b.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=b.isSharedProjectionDirty);let c=!!this.resumingFrom||this!==b;if(!(a||c&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:d,layoutId:e}=this.options;if(!this.layout||!(d||e))return;this.resolvedRelativeTargetAt=a1.timestamp;let f=this.getClosestProjectingParent();if(f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),this.targetDelta||this.relativeTarget||(f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),this.relativeTarget||this.targetDelta){if(this.target||(this.target=au(),this.targetWithTransforms=au()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var g,h,i;this.forceRelativeParentToResolveTarget(),g=this.target,h=this.relativeTarget,i=this.relativeParent.target,d_(g.x,h.x,i.x),d_(g.y,h.y,i.y)}else this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):ew(this.target,this.layout.layoutBox),b_(this.target,this.targetDelta)):ew(this.target,this.layout.layoutBox);this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&1!==this.animationProgress?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0)}}getClosestProjectingParent(){if(!(!this.parent||bW(this.parent.latestValues)||bY(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(a,b,c){this.relativeParent=a,this.linkedParentVersion=a.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=au(),this.relativeTargetOrigin=au(),d1(this.relativeTargetOrigin,b,c),ew(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let a=this.getLead(),b=!!this.resumingFrom||this!==a,c=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(c=!1),b&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===a1.timestamp&&(c=!1),c)return;let{layout:d,layoutId:e}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||e))return;ew(this.layoutCorrected,this.layout.layoutBox);let f=this.treeScale.x,g=this.treeScale.y;!function(a,b,c,d=!1){let e,f,g=c.length;if(g){b.x=b.y=1;for(let h=0;h<g;h++){f=(e=c[h]).projectionDelta;let{visualElement:g}=e.options;(!g||!g.props.style||"contents"!==g.props.style.display)&&(d&&e.options.layoutScroll&&e.scroll&&e!==e.root&&b2(a,{x:-e.scroll.offset.x,y:-e.scroll.offset.y}),f&&(b.x*=f.x.scale,b.y*=f.y.scale,b_(a,f)),d&&bX(e.latestValues)&&b2(a,e.latestValues))}b.x<1.0000000000001&&b.x>.999999999999&&(b.x=1),b.y<1.0000000000001&&b.y>.999999999999&&(b.y=1)}}(this.layoutCorrected,this.treeScale,this.path,b),a.layout&&!a.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(a.target=a.layout.layoutBox,a.targetWithTransforms=au());let{target:h}=a;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(ex(this.prevProjectionDelta.x,this.projectionDelta.x),ex(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),d$(this.projectionDelta,this.layoutCorrected,h,this.latestValues),this.treeScale.x===f&&this.treeScale.y===g&&eE(this.projectionDelta.x,this.prevProjectionDelta.x)&&eE(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(a=!0){if(this.options.visualElement?.scheduleRender(),a){let a=this.getStack();a&&a.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=as(),this.projectionDelta=as(),this.projectionDeltaWithTransform=as()}setAnimationOrigin(a,b=!1){let c,d=this.snapshot,e=d?d.latestValues:{},f={...this.latestValues},g=as();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!b;let h=au(),i=(d?d.source:void 0)!==(this.layout?this.layout.source:void 0),j=this.getStack(),k=!j||j.members.length<=1,l=!!(i&&!k&&!0===this.options.crossfade&&!this.path.some(e8));this.animationProgress=0,this.mixTargetDelta=b=>{let d=b/1e3;if(e6(g.x,a.x,d),e6(g.y,a.y,d),this.setTargetDelta(g),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var j,m,n,o,p,q;d1(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),n=this.relativeTarget,o=this.relativeTargetOrigin,p=h,q=d,e7(n.x,o.x,p.x,q),e7(n.y,o.y,p.y,q),c&&(j=this.relativeTarget,m=c,eA(j.x,m.x)&&eA(j.y,m.y))&&(this.isProjectionDirty=!1),c||(c=au()),ew(c,this.relativeTarget)}i&&(this.animationValues=f,function(a,b,c,d,e,f){e?(a.opacity=bO(0,c.opacity??1,eK(d)),a.opacityExit=bO(b.opacity??1,0,eL(d))):f&&(a.opacity=bO(b.opacity??1,c.opacity??1,d));for(let e=0;e<eG;e++){let f=`border${eF[e]}Radius`,g=eJ(b,f),h=eJ(c,f);(void 0!==g||void 0!==h)&&(g||(g=0),h||(h=0),0===g||0===h||eI(g)===eI(h)?(a[f]=Math.max(bO(eH(g),eH(h),d),0),(V.test(h)||V.test(g))&&(a[f]+="%")):a[f]=h)}(b.rotate||c.rotate)&&(a.rotate=bO(b.rotate||0,c.rotate||0,d))}(f,e,this.latestValues,d,l,k)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=d},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(a0(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=a_.update(()=>{var b,c,d;let e;el.hasAnimatedSinceResize=!0,cy.layout++,this.motionValue||(this.motionValue=bk(0)),this.currentAnimation=(b=this.motionValue,c=[0,1e3],d={...a,velocity:0,isSync:!0,onUpdate:b=>{this.mixTargetDelta(b),a.onUpdate&&a.onUpdate(b)},onStop:()=>{cy.layout--},onComplete:()=>{cy.layout--,a.onComplete&&a.onComplete(),this.completeAnimation()}},(e=av(b)?b:bk(b)).start(dI("",e,c,d)),e.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let a=this.getLead(),{targetWithTransforms:b,target:c,layout:d,latestValues:e}=a;if(b&&c&&d){if(this!==a&&this.layout&&d&&fd(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||au();let b=dY(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+b;let d=dY(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+d}ew(b,c),b2(b,e),d$(this.projectionDeltaWithTransform,this.layoutCorrected,b,e)}}registerSharedNode(a,b){this.sharedNodes.has(a)||this.sharedNodes.set(a,new eQ),this.sharedNodes.get(a).add(b);let c=b.options.initialPromotionConfig;b.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(b):void 0})}isLead(){let a=this.getStack();return!a||a.lead===this}getLead(){let{layoutId:a}=this.options;return a&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:b,preserveFollowOpacity:c}={}){let d=this.getStack();d&&d.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),b&&this.setOptions({transition:b})}relegate(){let a=this.getStack();return!!a&&a.relegate(this)}resetSkewAndRotation(){let{visualElement:a}=this.options;if(!a)return;let b=!1,{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(b=!0),!b)return;let d={};c.z&&eT("z",a,d,this.animationValues);for(let b=0;b<eR.length;b++)eT(`rotate${eR[b]}`,a,d,this.animationValues),eT(`skew${eR[b]}`,a,d,this.animationValues);for(let b in a.render(),d)a.setStaticValue(b,d[b]),this.animationValues&&(this.animationValues[b]=d[b]);a.scheduleRender()}applyProjectionStyles(a,b){if(!this.instance||this.isSVG)return;if(!this.isVisible){a.visibility="hidden";return}let c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,a.visibility="",a.opacity="",a.pointerEvents=cf(b?.pointerEvents)||"",a.transform=c?c(this.latestValues,""):"none";return}let d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(a.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,a.pointerEvents=cf(b?.pointerEvents)||""),this.hasProjected&&!bX(this.latestValues)&&(a.transform=c?c({},""):"none",this.hasProjected=!1);return}a.visibility="";let e=d.animationValues||d.latestValues;this.applyTransformsToTarget();let f=function(a,b,c){let d="",e=a.x.translate/b.x,f=a.y.translate/b.y,g=c?.z||0;if((e||f||g)&&(d=`translate3d(${e}px, ${f}px, ${g}px) `),(1!==b.x||1!==b.y)&&(d+=`scale(${1/b.x}, ${1/b.y}) `),c){let{transformPerspective:a,rotate:b,rotateX:e,rotateY:f,skewX:g,skewY:h}=c;a&&(d=`perspective(${a}px) ${d}`),b&&(d+=`rotate(${b}deg) `),e&&(d+=`rotateX(${e}deg) `),f&&(d+=`rotateY(${f}deg) `),g&&(d+=`skewX(${g}deg) `),h&&(d+=`skewY(${h}deg) `)}let h=a.x.scale*b.x,i=a.y.scale*b.y;return(1!==h||1!==i)&&(d+=`scale(${h}, ${i})`),d||"none"}(this.projectionDeltaWithTransform,this.treeScale,e);c&&(f=c(e,f)),a.transform=f;let{x:g,y:h}=this.projectionDelta;for(let b in a.transformOrigin=`${100*g.origin}% ${100*h.origin}% 0`,d.animationValues?a.opacity=d===this?e.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:e.opacityExit:a.opacity=d===this?void 0!==e.opacity?e.opacity:"":void 0!==e.opacityExit?e.opacityExit:0,bP){if(void 0===e[b])continue;let{correct:c,applyTo:g,isCSSVariable:h}=bP[b],i="none"===f?e[b]:c(e[b],d);if(g){let b=g.length;for(let c=0;c<b;c++)a[g[c]]=i}else h?this.options.visualElement.renderState.vars[b]=i:a[b]=i}this.options.layoutId&&(a.pointerEvents=d===this?cf(b?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(a=>a.currentAnimation?.stop()),this.root.nodes.forEach(e$),this.root.sharedNodes.clear()}}}function eV(a){a.updateLayout()}function eW(a){let b=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&b&&a.hasListeners("didUpdate")){let{layoutBox:c,measuredBox:d}=a.layout,{animationType:e}=a.options,f=b.source!==a.layout.source;"size"===e?dT(a=>{let d=f?b.measuredBox[a]:b.layoutBox[a],e=dY(d);d.min=c[a].min,d.max=d.min+e}):fd(e,b.layoutBox,c)&&dT(d=>{let e=f?b.measuredBox[d]:b.layoutBox[d],g=dY(c[d]);e.max=e.min+g,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[d].max=a.relativeTarget[d].min+g)});let g=as();d$(g,c,b.layoutBox);let h=as();f?d$(h,a.applyTransform(d,!0),b.measuredBox):d$(h,c,b.layoutBox);let i=!ez(g),j=!1;if(!a.resumeFrom){let d=a.getClosestProjectingParent();if(d&&!d.resumeFrom){let{snapshot:e,layout:f}=d;if(e&&f){let g=au();d1(g,b.layoutBox,e.layoutBox);let h=au();d1(h,c,f.layoutBox),eC(g,h)||(j=!0),d.options.layoutRoot&&(a.relativeTarget=h,a.relativeTargetOrigin=g,a.relativeParent=d)}}}a.notifyListeners("didUpdate",{layout:c,snapshot:b,delta:h,layoutDelta:g,hasLayoutChanged:i,hasRelativeLayoutChanged:j})}else if(a.isLead()){let{onExitComplete:b}=a.options;b&&b()}a.options.transition=void 0}function eX(a){a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function eY(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function eZ(a){a.clearSnapshot()}function e$(a){a.clearMeasurements()}function e_(a){a.isLayoutDirty=!1}function e0(a){let{visualElement:b}=a.options;b&&b.getProps().onBeforeLayoutMeasure&&b.notify("BeforeLayoutMeasure"),a.resetTransform()}function e1(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function e2(a){a.resolveTargetDelta()}function e3(a){a.calcProjection()}function e4(a){a.resetSkewAndRotation()}function e5(a){a.removeLeadSnapshot()}function e6(a,b,c){a.translate=bO(b.translate,0,c),a.scale=bO(b.scale,1,c),a.origin=b.origin,a.originPoint=b.originPoint}function e7(a,b,c,d){a.min=bO(b.min,c.min,d),a.max=bO(b.max,c.max,d)}function e8(a){return a.animationValues&&void 0!==a.animationValues.opacityExit}let e9={duration:.45,ease:[.4,0,.1,1]},fa=a=>"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),fb=fa("applewebkit/")&&!fa("chrome/")?Math.round:aX;function fc(a){a.min=fb(a.min),a.max=fb(a.max)}function fd(a,b,c){return"position"===a||"preserve-aspect"===a&&!(.2>=Math.abs(eD(b)-eD(c)))}function fe(a){return a!==a.root&&a.scroll?.wasRoot}let ff=eU({attachResizeListener:(a,b)=>dW(a,"resize",b),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),fg={current:void 0},fh=eU({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!fg.current){let a=new ff({});a.mount(window),a.setOptions({layoutScroll:!0}),fg.current=a}return fg.current},resetTransform:(a,b)=>{a.style.transform=void 0!==b?b:"none"},checkIsScrollRoot:a=>"fixed"===window.getComputedStyle(a).position});function fi(a,b){let c=function(a,b,c){if(null==a)return[];if(a instanceof EventTarget)return[a];if("string"==typeof a){let b=document,c=(void 0)??b.querySelectorAll(a);return c?Array.from(c):[]}return Array.from(a).filter(a=>null!=a)}(a),d=new AbortController;return[c,{passive:!0,...b,signal:d.signal},()=>d.abort()]}function fj(a){return!("touch"===a.pointerType||dX.x||dX.y)}function fk(a,b,c){let{props:d}=a;a.animationState&&d.whileHover&&a.animationState.setActive("whileHover","Start"===c);let e=d["onHover"+c];e&&a_.postRender(()=>e(b,d3(b)))}let fl=(a,b)=>!!b&&(a===b||fl(a,b.parentElement)),fm=new WeakSet;function fn(a){return b=>{"Enter"===b.key&&a(b)}}function fo(a,b){a.dispatchEvent(new PointerEvent("pointer"+b,{isPrimary:!0,bubbles:!0}))}function fp(a){return d2(a)&&!(dX.x||dX.y)}function fq(a,b,c){let{props:d}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&d.whileTap&&a.animationState.setActive("whileTap","Start"===c);let e=d["onTap"+("End"===c?"":c)];e&&a_.postRender(()=>e(b,d3(b)))}let fr=new WeakMap,fs=new WeakMap,ft=a=>{let b=fr.get(a.target);b&&b(a)},fu=a=>{a.forEach(ft)},fv={some:0,all:1},fw=function(a,b){if("u"<typeof Proxy)return cp;let c=new Map,d=(c,d)=>cp(c,d,a,b);return new Proxy((a,b)=>d(a,b),{get:(e,f)=>"create"===f?d:(c.has(f)||c.set(f,cp(f,void 0,a,b)),c.get(f))})}({animation:{Feature:class extends cq{constructor(a){super(a),a.animationState||(a.animationState=function(a){let b=b=>Promise.all(b.map(({animation:b,options:c})=>(function(a,b,c={}){let d;if(a.notify("AnimationStart",b),Array.isArray(b))d=Promise.all(b.map(b=>dL(a,b,c)));else if("string"==typeof b)d=dL(a,b,c);else{let e="function"==typeof b?cr(a,b,c.custom):b;d=Promise.all(dJ(a,e,c))}return d.then(()=>{a.notify("AnimationComplete",b)})})(a,b,c))),c=dR(),d=!0,e=b=>(c,d)=>{let e=cr(a,d,"exit"===b?a.presenceContext?.custom:void 0);if(e){let{transition:a,transitionEnd:b,...d}=e;c={...c,...d,...b}}return c};function f(f){let{props:g}=a,h=function a(b){if(!b)return;if(!b.isControllingVariants){let c=b.parent&&a(b.parent)||{};return void 0!==b.props.initial&&(c.initial=b.props.initial),c}let c={};for(let a=0;a<dM;a++){let d=br[a],e=b.props[d];(bp(e)||!1===e)&&(c[d]=e)}return c}(a.parent)||{},i=[],j=new Set,k={},l=1/0;for(let b=0;b<dP;b++){var m,n;let o=dO[b],p=c[o],q=void 0!==g[o]?g[o]:h[o],r=bp(q),s=o===f?p.isActive:null;!1===s&&(l=b);let t=q===h[o]&&q!==g[o]&&r;if(t&&d&&a.manuallyAnimateOnMount&&(t=!1),p.protectedKeys={...k},!p.isActive&&null===s||!q&&!p.prevProp||bo(q)||"boolean"==typeof q)continue;let u=(m=p.prevProp,"string"==typeof(n=q)?n!==m:!!Array.isArray(n)&&!dN(n,m)),v=u||o===f&&p.isActive&&!t&&r||b>l&&r,w=!1,x=Array.isArray(q)?q:[q],y=x.reduce(e(o),{});!1===s&&(y={});let{prevResolvedValues:z={}}=p,A={...z,...y},B=b=>{v=!0,j.has(b)&&(w=!0,j.delete(b)),p.needsAnimating[b]=!0;let c=a.getValue(b);c&&(c.liveStyle=!1)};for(let a in A){let b=y[a],c=z[a];if(!k.hasOwnProperty(a))(ct(b)&&ct(c)?dN(b,c):b===c)?void 0!==b&&j.has(a)?B(a):p.protectedKeys[a]=!0:null!=b?B(a):j.add(a)}p.prevProp=q,p.prevResolvedValues=y,p.isActive&&(k={...k,...y}),d&&a.blockInitialAnimation&&(v=!1);let C=t&&u,D=!C||w;v&&D&&i.push(...x.map(b=>{let c={type:o};if("string"==typeof b&&d&&!C&&a.manuallyAnimateOnMount&&a.parent){let{parent:d}=a,e=cr(d,b);if(d.enteringChildren&&e){let{delayChildren:b}=e.transition||{};c.delay=dK(d.enteringChildren,a,b)}}return{animation:b,options:c}}))}if(j.size){let b={};if("boolean"!=typeof g.initial){let c=cr(a,Array.isArray(g.initial)?g.initial[0]:g.initial);c&&c.transition&&(b.transition=c.transition)}j.forEach(c=>{let d=a.getBaseTarget(c),e=a.getValue(c);e&&(e.liveStyle=!0),b[c]=d??null}),i.push({animation:b})}let o=!!i.length;return d&&(!1===g.initial||g.initial===g.animate)&&!a.manuallyAnimateOnMount&&(o=!1),d=!1,o?b(i):Promise.resolve()}return{animateChanges:f,setActive:function(b,d){if(c[b].isActive===d)return Promise.resolve();a.variantChildren?.forEach(a=>a.animationState?.setActive(b,d)),c[b].isActive=d;let e=f(b);for(let a in c)c[a].protectedKeys={};return e},setAnimateFunction:function(c){b=c(a)},getState:()=>c,reset:()=>{c=dR()}}}(a))}updateAnimationControlsSubscription(){let{animate:a}=this.node.getProps();bo(a)&&(this.unmountControls=a.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:a}=this.node.getProps(),{animate:b}=this.node.prevProps||{};a!==b&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}},exit:{Feature:class extends cq{constructor(){super(...arguments),this.id=dS++}update(){if(!this.node.presenceContext)return;let{isPresent:a,onExitComplete:b}=this.node.presenceContext,{isPresent:c}=this.node.prevPresenceContext||{};if(!this.node.animationState||a===c)return;let d=this.node.animationState.setActive("exit",!a);b&&!a&&d.then(()=>{b(this.id)})}mount(){let{register:a,onExitComplete:b}=this.node.presenceContext||{};b&&b(this.id),a&&(this.unmount=a(this.id))}unmount(){}}},inView:{Feature:class extends cq{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var a;let b;this.unmount();let{viewport:c={}}=this.node.getProps(),{root:d,margin:e,amount:f="some",once:g}=c,h={root:d?d.current:void 0,rootMargin:e,threshold:"number"==typeof f?f:fv[f]},i=a=>{let{isIntersecting:b}=a;if(this.isInView===b||(this.isInView=b,g&&!b&&this.hasEnteredView))return;b&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",b);let{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),e=b?c:d;e&&e(a)};return a=this.node.current,b=function({root:a,...b}){let c=a||document;fs.has(c)||fs.set(c,{});let d=fs.get(c),e=JSON.stringify(b);return d[e]||(d[e]=new IntersectionObserver(fu,{root:a,...b})),d[e]}(h),fr.set(a,i),b.observe(a),()=>{fr.delete(a),b.unobserve(a)}}mount(){this.startObserver()}update(){if("u"<typeof IntersectionObserver)return;let{props:a,prevProps:b}=this.node;["amount","margin","root"].some(function({viewport:a={}},{viewport:b={}}={}){return c=>a[c]!==b[c]}(a,b))&&this.startObserver()}unmount(){}}},tap:{Feature:class extends cq{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=fi(a,c),g=a=>{let d=a.currentTarget;if(!fp(a))return;fm.add(d);let f=b(d,a),g=(a,b)=>{window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",i),fm.has(d)&&fm.delete(d),fp(a)&&"function"==typeof f&&f(a,{success:b})},h=a=>{g(a,d===window||d===document||c.useGlobalTarget||fl(d,a.target))},i=a=>{g(a,!1)};window.addEventListener("pointerup",h,e),window.addEventListener("pointercancel",i,e)};return d.forEach(a=>{(c.useGlobalTarget?window:a).addEventListener("pointerdown",g,e),t(a)&&(a.addEventListener("focus",a=>((a,b)=>{let c=a.currentTarget;if(!c)return;let d=fn(()=>{if(fm.has(c))return;fo(c,"down");let a=fn(()=>{fo(c,"up")});c.addEventListener("keyup",a,b),c.addEventListener("blur",()=>fo(c,"cancel"),b)});c.addEventListener("keydown",d,b),c.addEventListener("blur",()=>c.removeEventListener("keydown",d),b)})(a,e)),dV(a)||a.hasAttribute("tabindex")||(a.tabIndex=0))}),f}(a,(a,b)=>(fq(this.node,b,"Start"),(a,{success:b})=>fq(this.node,a,b?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}},focus:{Feature:class extends cq{constructor(){super(...arguments),this.isActive=!1}onFocus(){let a=!1;try{a=this.node.current.matches(":focus-visible")}catch(b){a=!0}a&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=cx(dW(this.node.current,"focus",()=>this.onFocus()),dW(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}},hover:{Feature:class extends cq{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=fi(a,c),g=a=>{if(!fj(a))return;let{target:c}=a,d=b(c,a);if("function"!=typeof d||!c)return;let f=a=>{fj(a)&&(d(a),c.removeEventListener("pointerleave",f))};c.addEventListener("pointerleave",f,e)};return d.forEach(a=>{a.addEventListener("pointerenter",g,e)}),f}(a,(a,b)=>(fk(this.node,b,"Start"),a=>fk(this.node,a,"End"))))}unmount(){}}},pan:{Feature:class extends cq{constructor(){super(...arguments),this.removePointerDownListener=aX}onPointerDown(a){this.session=new d8(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:d5(this.node)})}createPanHandlers(){let{onPanSessionStart:a,onPanStart:b,onPan:c,onPanEnd:d}=this.node.getProps();return{onSessionStart:ek(a),onStart:ek(b),onMove:c,onEnd:(a,b)=>{delete this.session,d&&a_.postRender(()=>d(a,b))}}}mount(){this.removePointerDownListener=d4(this.node.current,"pointerdown",a=>this.onPointerDown(a))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends cq{constructor(a){super(a),this.removeGroupControls=aX,this.removeListeners=aX,this.controls=new ei(a)}mount(){let{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||aX}update(){let{dragControls:a}=this.node.getProps(),{dragControls:b}=this.node.prevProps||{};a!==b&&(this.removeGroupControls(),a&&(this.removeGroupControls=a.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},ProjectionNode:fh,MeasureLayout:ep},layout:{ProjectionNode:fh,MeasureLayout:ep}},(a,b)=>b.isSVG??b6(a)?new bT(b):new b4(b,{allowProjection:a!==n.Fragment}));var fx=a.i(96924),fy=a.i(7903),fz=a.i(98416),fA=a.i(30112),fB=a.i(16347),fC=a.i(60087),fD=a.i(15896),fE=a.i(2655),fF=class extends fB.Subscribable{constructor(a,b){super(),this.options=b,this.#a=a,this.#b=null,this.#c=(0,fC.pendingThenable)(),this.bindMethods(),this.setOptions(b)}#a;#d=void 0;#e=void 0;#f=void 0;#g;#h;#c;#b;#i;#j;#k;#l;#m;#n;#o=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#d.addObserver(this),fG(this.#d,this.options)?this.#p():this.updateResult(),this.#q())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return fH(this.#d,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return fH(this.#d,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#r(),this.#s(),this.#d.removeObserver(this)}setOptions(a){let b=this.options,c=this.#d;if(this.options=this.#a.defaultQueryOptions(a),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,fD.resolveEnabled)(this.options.enabled,this.#d))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#t(),this.#d.setOptions(this.options),b._defaulted&&!(0,fD.shallowEqualObjects)(this.options,b)&&this.#a.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#d,observer:this});let d=this.hasListeners();d&&fI(this.#d,c,this.options,b)&&this.#p(),this.updateResult(),d&&(this.#d!==c||(0,fD.resolveEnabled)(this.options.enabled,this.#d)!==(0,fD.resolveEnabled)(b.enabled,this.#d)||(0,fD.resolveStaleTime)(this.options.staleTime,this.#d)!==(0,fD.resolveStaleTime)(b.staleTime,this.#d))&&this.#u();let e=this.#v();d&&(this.#d!==c||(0,fD.resolveEnabled)(this.options.enabled,this.#d)!==(0,fD.resolveEnabled)(b.enabled,this.#d)||e!==this.#n)&&this.#w(e)}getOptimisticResult(a){var b,c;let d=this.#a.getQueryCache().build(this.#a,a),e=this.createResult(d,a);return b=this,c=e,(0,fD.shallowEqualObjects)(b.getCurrentResult(),c)||(this.#f=e,this.#h=this.options,this.#g=this.#d.state),e}getCurrentResult(){return this.#f}trackResult(a,b){return new Proxy(a,{get:(a,c)=>(this.trackProp(c),b?.(c),"promise"===c&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#c.status||this.#c.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(a,c))})}trackProp(a){this.#o.add(a)}getCurrentQuery(){return this.#d}refetch({...a}={}){return this.fetch({...a})}fetchOptimistic(a){let b=this.#a.defaultQueryOptions(a),c=this.#a.getQueryCache().build(this.#a,b);return c.fetch().then(()=>this.createResult(c,b))}fetch(a){return this.#p({...a,cancelRefetch:a.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#f))}#p(a){this.#t();let b=this.#d.fetch(this.options,a);return a?.throwOnError||(b=b.catch(fD.noop)),b}#u(){this.#r();let a=(0,fD.resolveStaleTime)(this.options.staleTime,this.#d);if(fD.isServer||this.#f.isStale||!(0,fD.isValidTimeout)(a))return;let b=(0,fD.timeUntilStale)(this.#f.dataUpdatedAt,a);this.#l=fE.timeoutManager.setTimeout(()=>{this.#f.isStale||this.updateResult()},b+1)}#v(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#d):this.options.refetchInterval)??!1}#w(a){this.#s(),this.#n=a,!fD.isServer&&!1!==(0,fD.resolveEnabled)(this.options.enabled,this.#d)&&(0,fD.isValidTimeout)(this.#n)&&0!==this.#n&&(this.#m=fE.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||fy.focusManager.isFocused())&&this.#p()},this.#n))}#q(){this.#u(),this.#w(this.#v())}#r(){this.#l&&(fE.timeoutManager.clearTimeout(this.#l),this.#l=void 0)}#s(){this.#m&&(fE.timeoutManager.clearInterval(this.#m),this.#m=void 0)}createResult(a,b){let c,d=this.#d,e=this.options,f=this.#f,g=this.#g,h=this.#h,i=a!==d?a.state:this.#e,{state:j}=a,k={...j},l=!1;if(b._optimisticResults){let c=this.hasListeners(),f=!c&&fG(a,b),g=c&&fI(a,d,b,e);(f||g)&&(k={...k,...(0,fA.fetchState)(j.data,a.options)}),"isRestoring"===b._optimisticResults&&(k.fetchStatus="idle")}let{error:m,errorUpdatedAt:n,status:o}=k;c=k.data;let p=!1;if(void 0!==b.placeholderData&&void 0===c&&"pending"===o){let a;f?.isPlaceholderData&&b.placeholderData===h?.placeholderData?(a=f.data,p=!0):a="function"==typeof b.placeholderData?b.placeholderData(this.#k?.state.data,this.#k):b.placeholderData,void 0!==a&&(o="success",c=(0,fD.replaceData)(f?.data,a,b),l=!0)}if(b.select&&void 0!==c&&!p)if(f&&c===g?.data&&b.select===this.#i)c=this.#j;else try{this.#i=b.select,c=b.select(c),c=(0,fD.replaceData)(f?.data,c,b),this.#j=c,this.#b=null}catch(a){this.#b=a}this.#b&&(m=this.#b,c=this.#j,n=Date.now(),o="error");let q="fetching"===k.fetchStatus,r="pending"===o,s="error"===o,t=r&&q,u=void 0!==c,v={status:o,fetchStatus:k.fetchStatus,isPending:r,isSuccess:"success"===o,isError:s,isInitialLoading:t,isLoading:t,data:c,dataUpdatedAt:k.dataUpdatedAt,error:m,errorUpdatedAt:n,failureCount:k.fetchFailureCount,failureReason:k.fetchFailureReason,errorUpdateCount:k.errorUpdateCount,isFetched:k.dataUpdateCount>0||k.errorUpdateCount>0,isFetchedAfterMount:k.dataUpdateCount>i.dataUpdateCount||k.errorUpdateCount>i.errorUpdateCount,isFetching:q,isRefetching:q&&!r,isLoadingError:s&&!u,isPaused:"paused"===k.fetchStatus,isPlaceholderData:l,isRefetchError:s&&u,isStale:fJ(a,b),refetch:this.refetch,promise:this.#c,isEnabled:!1!==(0,fD.resolveEnabled)(b.enabled,a)};if(this.options.experimental_prefetchInRender){let b=void 0!==v.data,c="error"===v.status&&!b,e=a=>{c?a.reject(v.error):b&&a.resolve(v.data)},f=()=>{e(this.#c=v.promise=(0,fC.pendingThenable)())},g=this.#c;switch(g.status){case"pending":a.queryHash===d.queryHash&&e(g);break;case"fulfilled":(c||v.data!==g.value)&&f();break;case"rejected":c&&v.error===g.reason||f()}}return v}updateResult(){let a=this.#f,b=this.createResult(this.#d,this.options);if(this.#g=this.#d.state,this.#h=this.options,void 0!==this.#g.data&&(this.#k=this.#d),(0,fD.shallowEqualObjects)(b,a))return;this.#f=b;let c=()=>{if(!a)return!0;let{notifyOnChangeProps:b}=this.options,c="function"==typeof b?b():b;if("all"===c||!c&&!this.#o.size)return!0;let d=new Set(c??this.#o);return this.options.throwOnError&&d.add("error"),Object.keys(this.#f).some(b=>this.#f[b]!==a[b]&&d.has(b))};this.#x({listeners:c()})}#t(){let a=this.#a.getQueryCache().build(this.#a,this.options);if(a===this.#d)return;let b=this.#d;this.#d=a,this.#e=a.state,this.hasListeners()&&(b?.removeObserver(this),a.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#q()}#x(a){fz.notifyManager.batch(()=>{a.listeners&&this.listeners.forEach(a=>{a(this.#f)}),this.#a.getQueryCache().notify({query:this.#d,type:"observerResultsUpdated"})})}};function fG(a,b){return!1!==(0,fD.resolveEnabled)(b.enabled,a)&&void 0===a.state.data&&("error"!==a.state.status||!1!==b.retryOnMount)||void 0!==a.state.data&&fH(a,b,b.refetchOnMount)}function fH(a,b,c){if(!1!==(0,fD.resolveEnabled)(b.enabled,a)&&"static"!==(0,fD.resolveStaleTime)(b.staleTime,a)){let d="function"==typeof c?c(a):c;return"always"===d||!1!==d&&fJ(a,b)}return!1}function fI(a,b,c,d){return(a!==b||!1===(0,fD.resolveEnabled)(d.enabled,a))&&(!c.suspense||"error"!==a.state.status)&&fJ(a,c)}function fJ(a,b){return!1!==(0,fD.resolveEnabled)(b.enabled,a)&&a.isStaleByTime((0,fD.resolveStaleTime)(b.staleTime,a))}var fK=a.i(14220),fL=n.createContext((d=!1,{clearReset:()=>{d=!1},reset:()=>{d=!0},isReset:()=>d})),fM=n.createContext(!1);fM.Provider;var fN=(a,b,c)=>b.fetchOptimistic(a).catch(()=>{c.clearReset()});function fO(a,b){return function(a,b,c){let d,e=n.useContext(fM),f=n.useContext(fL),g=(0,fK.useQueryClient)(c),h=g.defaultQueryOptions(a);g.getDefaultOptions().queries?._experimental_beforeQuery?.(h);let i=g.getQueryCache().get(h.queryHash);if(h._optimisticResults=e?"isRestoring":"optimistic",h.suspense){let a=a=>"static"===a?a:Math.max(a??1e3,1e3),b=h.staleTime;h.staleTime="function"==typeof b?(...c)=>a(b(...c)):a(b),"number"==typeof h.gcTime&&(h.gcTime=Math.max(h.gcTime,1e3))}d=i?.state.error&&"function"==typeof h.throwOnError?(0,fD.shouldThrowError)(h.throwOnError,[i.state.error,i]):h.throwOnError,(h.suspense||h.experimental_prefetchInRender||d)&&!f.isReset()&&(h.retryOnMount=!1),n.useEffect(()=>{f.clearReset()},[f]);let j=!g.getQueryCache().get(h.queryHash),[k]=n.useState(()=>new b(g,h)),l=k.getOptimisticResult(h),m=!e&&!1!==a.subscribed;if(n.useSyncExternalStore(n.useCallback(a=>{let b=m?k.subscribe(fz.notifyManager.batchCalls(a)):fD.noop;return k.updateResult(),b},[k,m]),()=>k.getCurrentResult(),()=>k.getCurrentResult()),n.useEffect(()=>{k.setOptions(h)},[h,k]),h?.suspense&&l.isPending)throw fN(h,k,f);if((({result:a,errorResetBoundary:b,throwOnError:c,query:d,suspense:e})=>a.isError&&!b.isReset()&&!a.isFetching&&d&&(e&&void 0===a.data||(0,fD.shouldThrowError)(c,[a.error,d])))({result:l,errorResetBoundary:f,throwOnError:h.throwOnError,query:i,suspense:h.suspense}))throw l.error;if(g.getDefaultOptions().queries?._experimental_afterQuery?.(h,l),h.experimental_prefetchInRender&&!fD.isServer&&l.isLoading&&l.isFetching&&!e){let a=j?fN(h,k,f):i?.promise;a?.catch(fD.noop).finally(()=>{k.updateResult()})}return h.notifyOnChangeProps?l:k.trackResult(l)}(a,fF,b)}var fP=a.i(46674),fQ=fB,fR=class extends fQ.Subscribable{#a;#f=void 0;#y;#z;constructor(a,b){super(),this.#a=a,this.setOptions(b),this.bindMethods(),this.#A()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(a){let b=this.options;this.options=this.#a.defaultMutationOptions(a),(0,fD.shallowEqualObjects)(this.options,b)||this.#a.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#y,observer:this}),b?.mutationKey&&this.options.mutationKey&&(0,fD.hashKey)(b.mutationKey)!==(0,fD.hashKey)(this.options.mutationKey)?this.reset():this.#y?.state.status==="pending"&&this.#y.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#y?.removeObserver(this)}onMutationUpdate(a){this.#A(),this.#x(a)}getCurrentResult(){return this.#f}reset(){this.#y?.removeObserver(this),this.#y=void 0,this.#A(),this.#x()}mutate(a,b){return this.#z=b,this.#y?.removeObserver(this),this.#y=this.#a.getMutationCache().build(this.#a,this.options),this.#y.addObserver(this),this.#y.execute(a)}#A(){let a=this.#y?.state??(0,fP.getDefaultState)();this.#f={...a,isPending:"pending"===a.status,isSuccess:"success"===a.status,isError:"error"===a.status,isIdle:"idle"===a.status,mutate:this.mutate,reset:this.reset}}#x(a){fz.notifyManager.batch(()=>{if(this.#z&&this.hasListeners()){let b=this.#f.variables,c=this.#f.context,d={client:this.#a,meta:this.options.meta,mutationKey:this.options.mutationKey};if(a?.type==="success"){try{this.#z.onSuccess?.(a.data,b,c,d)}catch(a){Promise.reject(a)}try{this.#z.onSettled?.(a.data,null,b,c,d)}catch(a){Promise.reject(a)}}else if(a?.type==="error"){try{this.#z.onError?.(a.error,b,c,d)}catch(a){Promise.reject(a)}try{this.#z.onSettled?.(void 0,a.error,b,c,d)}catch(a){Promise.reject(a)}}}this.listeners.forEach(a=>{a(this.#f)})})}};function fS(a,b){let c=(0,fK.useQueryClient)(b),[d]=n.useState(()=>new fR(c,a));n.useEffect(()=>{d.setOptions(a)},[d,a]);let e=n.useSyncExternalStore(n.useCallback(a=>d.subscribe(fz.notifyManager.batchCalls(a)),[d]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),f=n.useCallback((a,b)=>{d.mutate(a,b).catch(fD.noop)},[d]);if(e.error&&(0,fD.shouldThrowError)(d.options.throwOnError,[e.error]))throw e.error;return{...e,mutate:f,mutateAsync:e.mutate}}let fT=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",fU=null,fV=null;async function fW(){if(fU)return fU;if(fV)return fV;fV=(async()=>{let a=await fetch(`${fT}/api/auth/session-token`);if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to fetch session token");let{token:b}=await a.json();return fU=b,b})();try{return await fV}finally{fV=null}}async function fX(a,b){let c=await fW(),d=new Headers(b?.headers);return d.set("Authorization",`Bearer ${c}`),fetch(a,{...b,headers:d})}class fY extends Error{feature;requiredTier;constructor(a,b){super(`Feature locked: ${a}`),this.name="FeatureLockedError",this.feature=a,this.requiredTier=b}}async function fZ(a,b){let c=await fX(a,b);if(403===c.status){let a=await c.json().catch(()=>({}));if("FEATURE_GATED"===a.code)throw new fY(a.feature,a.requiredTier)}return c}let f$=process.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events",f_=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function f0(a){let b=new URLSearchParams;a?.project&&b.set("project",a.project),a?.type&&b.set("type",a.type),a?.category&&b.set("category",a.category),a?.limit&&b.set("limit",a.limit.toString()),a?.offset&&b.set("offset",a.offset.toString()),a?.mode&&b.set("mode",a.mode),a?.query&&b.set("query",a.query);let c=await fX(`${f_}/api/memories?${b}`);if(!c.ok)throw Error("Failed to fetch memories");return c.json()}async function f1(a){let b=a?`?project=${a}`:"",c=await fX(`${f_}/api/stats${b}`);if(!c.ok)throw Error("Failed to fetch stats");return c.json()}async function f2(a){let b=a?`?project=${a}`:"",c=await fX(`${f_}/api/links${b}`);if(!c.ok)throw Error("Failed to fetch links");return c.json()}async function f3(){let a=await fX(`${f_}/api/projects`);if(!a.ok)throw Error("Failed to fetch projects");return a.json()}async function f4(a){let b=await fX(`${f_}/api/memories/${a}/access`,{method:"POST"});if(!b.ok)throw Error("Failed to access memory");return b.json()}async function f5(){let a=await fX(`${f_}/api/consolidate`,{method:"POST"});if(!a.ok)throw Error("Failed to consolidate");return a.json()}function f6(a){return fO({queryKey:["stats",a],queryFn:()=>f1(a),refetchInterval:3e4})}async function f7(){let a=await fX(`${f_}/api/control/status`);if(!a.ok)throw Error("Failed to fetch control status");return a.json()}async function f8(){let a=await fX(`${f_}/api/control/pause`,{method:"POST"});if(!a.ok)throw Error("Failed to pause");return a.json()}async function f9(){let a=await fX(`${f_}/api/control/resume`,{method:"POST"});if(!a.ok)throw Error("Failed to resume");return a.json()}async function ga(){let a=await fX(`${f_}/api/version`);if(!a.ok)throw Error("Failed to fetch version");return a.json()}async function gb(a,b){let c=await fX(`${f_}/api/memories/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error("Failed to edit memory");return c.json()}async function gc(a){let b=await fX(`${f_}/api/memories/${a}`,{method:"DELETE"});if(!b.ok)throw Error("Failed to delete memory");return b.json()}let gd=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},ge=a=>{let b=a?gd(a):gd,c=a=>(function(a,b=a=>a){let c=n.default.useSyncExternalStore(a.subscribe,n.default.useCallback(()=>b(a.getState()),[a,b]),n.default.useCallback(()=>b(a.getInitialState()),[a,b]));return n.default.useDebugValue(c),c})(b,a);return Object.assign(c,b),c},gf=(e=a=>({selectedMemory:null,setSelectedMemory:b=>a({selectedMemory:b}),selectedAuditEntry:null,setSelectedAuditEntry:b=>a({selectedAuditEntry:b}),viewMode:"shield",setViewMode:b=>a({viewMode:b}),typeFilter:null,categoryFilter:null,projectFilter:null,setTypeFilter:b=>a({typeFilter:b}),setCategoryFilter:b=>a({categoryFilter:b}),setProjectFilter:b=>a({projectFilter:b}),recentEvents:[],addEvent:b=>a(a=>({recentEvents:[b,...a.recentEvents].slice(0,50)})),clearEvents:()=>a({recentEvents:[]}),cameraPosition:[0,0,12],setCameraPosition:b=>a({cameraPosition:b}),showLeftSidebar:!0,showRightSidebar:!0,toggleLeftSidebar:()=>a(a=>({showLeftSidebar:!a.showLeftSidebar})),toggleRightSidebar:()=>a(a=>({showRightSidebar:!a.showRightSidebar})),searchQuery:"",setSearchQuery:b=>a({searchQuery:b})}))?ge(e):ge;function gg(a,b=300){let[c,d]=(0,n.useState)(a);return(0,n.useEffect)(()=>{let c=setTimeout(()=>{d(a)},b);return()=>{clearTimeout(c)}},[a,b]),c}let gh=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function gi(a){if(!a||a.length<2)return[];let b=await fX(`${gh}/api/suggestions?q=${encodeURIComponent(a)}&limit=8`);if(!b.ok)throw Error("Failed to fetch suggestions");return(await b.json()).suggestions}function gj(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}let gk=(a=new Map,b=null,c)=>({nextPart:a,validators:b,classGroupId:c}),gl=[],gm=(a,b,c)=>{if(0==a.length-b)return c.classGroupId;let d=a[b],e=c.nextPart.get(d);if(e){let c=gm(a,b+1,e);if(c)return c}let f=c.validators;if(null===f)return;let g=0===b?a.join("-"):a.slice(b).join("-"),h=f.length;for(let a=0;a<h;a++){let b=f[a];if(b.validator(g))return b.classGroupId}},gn=(a,b)=>{let c=gk();for(let d in a)go(a[d],c,d,b);return c},go=(a,b,c,d)=>{let e=a.length;for(let f=0;f<e;f++)gp(a[f],b,c,d)},gp=(a,b,c,d)=>{"string"==typeof a?gq(a,b,c):"function"==typeof a?gr(a,b,c,d):gs(a,b,c,d)},gq=(a,b,c)=>{(""===a?b:gt(b,a)).classGroupId=c},gr=(a,b,c,d)=>{gu(a)?go(a(d),b,c,d):(null===b.validators&&(b.validators=[]),b.validators.push({classGroupId:c,validator:a}))},gs=(a,b,c,d)=>{let e=Object.entries(a),f=e.length;for(let a=0;a<f;a++){let[f,g]=e[a];go(g,gt(b,f),c,d)}},gt=(a,b)=>{let c=a,d=b.split("-"),e=d.length;for(let a=0;a<e;a++){let b=d[a],e=c.nextPart.get(b);e||(e=gk(),c.nextPart.set(b,e)),c=e}return c},gu=a=>"isThemeGetter"in a&&!0===a.isThemeGetter,gv=[],gw=(a,b,c,d,e)=>({modifiers:a,hasImportantModifier:b,baseClassName:c,maybePostfixModifierPosition:d,isExternal:e}),gx=/\s+/,gy=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=gy(a[d]))&&(c&&(c+=" "),c+=b);return c},gz=[],gA=a=>{let b=b=>b[a]||gz;return b.isThemeGetter=!0,b},gB=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,gC=/^\((?:(\w[\w-]*):)?(.+)\)$/i,gD=/^\d+\/\d+$/,gE=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,gF=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,gG=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,gH=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,gI=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,gJ=a=>gD.test(a),gK=a=>!!a&&!Number.isNaN(Number(a)),gL=a=>!!a&&Number.isInteger(Number(a)),gM=a=>a.endsWith("%")&&gK(a.slice(0,-1)),gN=a=>gE.test(a),gO=()=>!0,gP=a=>gF.test(a)&&!gG.test(a),gQ=()=>!1,gR=a=>gH.test(a),gS=a=>gI.test(a),gT=a=>!gV(a)&&!g_(a),gU=a=>g6(a,ha,gQ),gV=a=>gB.test(a),gW=a=>g6(a,hb,gP),gX=a=>g6(a,hc,gK),gY=a=>g6(a,g8,gQ),gZ=a=>g6(a,g9,gS),g$=a=>g6(a,he,gR),g_=a=>gC.test(a),g0=a=>g7(a,hb),g1=a=>g7(a,hd),g2=a=>g7(a,g8),g3=a=>g7(a,ha),g4=a=>g7(a,g9),g5=a=>g7(a,he,!0),g6=(a,b,c)=>{let d=gB.exec(a);return!!d&&(d[1]?b(d[1]):c(d[2]))},g7=(a,b,c=!1)=>{let d=gC.exec(a);return!!d&&(d[1]?b(d[1]):c)},g8=a=>"position"===a||"percentage"===a,g9=a=>"image"===a||"url"===a,ha=a=>"length"===a||"size"===a||"bg-size"===a,hb=a=>"length"===a,hc=a=>"number"===a,hd=a=>"family-name"===a,he=a=>"shadow"===a,hf=((a,...b)=>{let c,d,e,f,g=a=>{let b=d(a);if(b)return b;let f=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e,sortModifiers:f}=b,g=[],h=a.trim().split(gx),i="";for(let a=h.length-1;a>=0;a-=1){let b=h[a],{isExternal:j,modifiers:k,hasImportantModifier:l,baseClassName:m,maybePostfixModifierPosition:n}=c(b);if(j){i=b+(i.length>0?" "+i:i);continue}let o=!!n,p=d(o?m.substring(0,n):m);if(!p){if(!o||!(p=d(m))){i=b+(i.length>0?" "+i:i);continue}o=!1}let q=0===k.length?"":1===k.length?k[0]:f(k).join(":"),r=l?q+"!":q,s=r+p;if(g.indexOf(s)>-1)continue;g.push(s);let t=e(p,o);for(let a=0;a<t.length;++a){let b=t[a];g.push(r+b)}i=b+(i.length>0?" "+i:i)}return i})(a,c);return e(a,f),f};return f=h=>{var i;let j;return d=(c={cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=Object.create(null),d=Object.create(null),e=(e,f)=>{c[e]=f,++b>a&&(b=0,d=c,c=Object.create(null))};return{get(a){let b=c[a];return void 0!==b?b:void 0!==(b=d[a])?(e(a,b),b):void 0},set(a,b){a in c?c[a]=b:e(a,b)}}})((i=b.reduce((a,b)=>b(a),a())).cacheSize),parseClassName:(a=>{let{prefix:b,experimentalParseClassName:c}=a,d=a=>{let b,c=[],d=0,e=0,f=0,g=a.length;for(let h=0;h<g;h++){let g=a[h];if(0===d&&0===e){if(":"===g){c.push(a.slice(f,h)),f=h+1;continue}if("/"===g){b=h;continue}}"["===g?d++:"]"===g?d--:"("===g?e++:")"===g&&e--}let h=0===c.length?a:a.slice(f),i=h,j=!1;return h.endsWith("!")?(i=h.slice(0,-1),j=!0):h.startsWith("!")&&(i=h.slice(1),j=!0),gw(c,j,i,b&&b>f?b-f:void 0)};if(b){let a=b+":",c=d;d=b=>b.startsWith(a)?c(b.slice(a.length)):gw(gv,!1,b,void 0,!0)}if(c){let a=d;d=b=>c({className:b,parseClassName:a})}return d})(i),sortModifiers:(j=new Map,i.orderSensitiveModifiers.forEach((a,b)=>{j.set(a,1e6+b)}),a=>{let b=[],c=[];for(let d=0;d<a.length;d++){let e=a[d],f="["===e[0],g=j.has(e);f||g?(c.length>0&&(c.sort(),b.push(...c),c=[]),b.push(e)):c.push(e)}return c.length>0&&(c.sort(),b.push(...c)),b}),...(a=>{let b=(a=>{let{theme:b,classGroups:c}=a;return gn(c,b)})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:d}=a;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]")){var c;let b,d,e;return -1===(c=a).slice(1,-1).indexOf(":")?void 0:(d=(b=c.slice(1,-1)).indexOf(":"),(e=b.slice(0,d))?"arbitrary.."+e:void 0)}let d=a.split("-"),e=+(""===d[0]&&d.length>1);return gm(d,e,b)},getConflictingClassGroupIds:(a,b)=>{if(b){let b=d[a],e=c[a];if(b){if(e){let a=Array(e.length+b.length);for(let b=0;b<e.length;b++)a[b]=e[b];for(let c=0;c<b.length;c++)a[e.length+c]=b[c];return a}return b}return e||gl}return c[a]||gl}}})(i)}).cache.get,e=c.cache.set,f=g,g(h)},(...a)=>f(((...a)=>{let b,c,d=0,e="";for(;d<a.length;)(b=a[d++])&&(c=gy(b))&&(e&&(e+=" "),e+=c);return e})(...a))})(()=>{let a=gA("color"),b=gA("font"),c=gA("text"),d=gA("font-weight"),e=gA("tracking"),f=gA("leading"),g=gA("breakpoint"),h=gA("container"),i=gA("spacing"),j=gA("radius"),k=gA("shadow"),l=gA("inset-shadow"),m=gA("text-shadow"),n=gA("drop-shadow"),o=gA("blur"),p=gA("perspective"),q=gA("aspect"),r=gA("ease"),s=gA("animate"),t=()=>["auto","avoid","all","avoid-page","page","left","right","column"],u=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],v=()=>[...u(),g_,gV],w=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],y=()=>[g_,gV,i],z=()=>[gJ,"full","auto",...y()],A=()=>[gL,"none","subgrid",g_,gV],B=()=>["auto",{span:["full",gL,g_,gV]},gL,g_,gV],C=()=>[gL,"auto",g_,gV],D=()=>["auto","min","max","fr",g_,gV],E=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],F=()=>["start","end","center","stretch","center-safe","end-safe"],G=()=>["auto",...y()],H=()=>[gJ,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...y()],I=()=>[a,g_,gV],J=()=>[...u(),g2,gY,{position:[g_,gV]}],K=()=>["no-repeat",{repeat:["","x","y","space","round"]}],L=()=>["auto","cover","contain",g3,gU,{size:[g_,gV]}],M=()=>[gM,g0,gW],N=()=>["","none","full",j,g_,gV],O=()=>["",gK,g0,gW],P=()=>["solid","dashed","dotted","double"],Q=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],R=()=>[gK,gM,g2,gY],S=()=>["","none",o,g_,gV],T=()=>["none",gK,g_,gV],U=()=>["none",gK,g_,gV],V=()=>[gK,g_,gV],W=()=>[gJ,"full",...y()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[gN],breakpoint:[gN],color:[gO],container:[gN],"drop-shadow":[gN],ease:["in","out","in-out"],font:[gT],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[gN],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[gN],shadow:[gN],spacing:["px",gK],text:[gN],"text-shadow":[gN],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",gJ,gV,g_,q]}],container:["container"],columns:[{columns:[gK,gV,g_,h]}],"break-after":[{"break-after":t()}],"break-before":[{"break-before":t()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:v()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:z()}],"inset-x":[{"inset-x":z()}],"inset-y":[{"inset-y":z()}],start:[{start:z()}],end:[{end:z()}],top:[{top:z()}],right:[{right:z()}],bottom:[{bottom:z()}],left:[{left:z()}],visibility:["visible","invisible","collapse"],z:[{z:[gL,"auto",g_,gV]}],basis:[{basis:[gJ,"full","auto",h,...y()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[gK,gJ,"auto","initial","none",gV]}],grow:[{grow:["",gK,g_,gV]}],shrink:[{shrink:["",gK,g_,gV]}],order:[{order:[gL,"first","last","none",g_,gV]}],"grid-cols":[{"grid-cols":A()}],"col-start-end":[{col:B()}],"col-start":[{"col-start":C()}],"col-end":[{"col-end":C()}],"grid-rows":[{"grid-rows":A()}],"row-start-end":[{row:B()}],"row-start":[{"row-start":C()}],"row-end":[{"row-end":C()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":D()}],"auto-rows":[{"auto-rows":D()}],gap:[{gap:y()}],"gap-x":[{"gap-x":y()}],"gap-y":[{"gap-y":y()}],"justify-content":[{justify:[...E(),"normal"]}],"justify-items":[{"justify-items":[...F(),"normal"]}],"justify-self":[{"justify-self":["auto",...F()]}],"align-content":[{content:["normal",...E()]}],"align-items":[{items:[...F(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...F(),{baseline:["","last"]}]}],"place-content":[{"place-content":E()}],"place-items":[{"place-items":[...F(),"baseline"]}],"place-self":[{"place-self":["auto",...F()]}],p:[{p:y()}],px:[{px:y()}],py:[{py:y()}],ps:[{ps:y()}],pe:[{pe:y()}],pt:[{pt:y()}],pr:[{pr:y()}],pb:[{pb:y()}],pl:[{pl:y()}],m:[{m:G()}],mx:[{mx:G()}],my:[{my:G()}],ms:[{ms:G()}],me:[{me:G()}],mt:[{mt:G()}],mr:[{mr:G()}],mb:[{mb:G()}],ml:[{ml:G()}],"space-x":[{"space-x":y()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":y()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],w:[{w:[h,"screen",...H()]}],"min-w":[{"min-w":[h,"screen","none",...H()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[g]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",c,g0,gW]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,g_,gX]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",gM,gV]}],"font-family":[{font:[g1,gV,b]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[e,g_,gV]}],"line-clamp":[{"line-clamp":[gK,"none",g_,gX]}],leading:[{leading:[f,...y()]}],"list-image":[{"list-image":["none",g_,gV]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",g_,gV]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...P(),"wavy"]}],"text-decoration-thickness":[{decoration:[gK,"from-font","auto",g_,gW]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[gK,"auto",g_,gV]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:y()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",g_,gV]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",g_,gV]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:J()}],"bg-repeat":[{bg:K()}],"bg-size":[{bg:L()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},gL,g_,gV],radial:["",g_,gV],conic:[gL,g_,gV]},g4,gZ]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:N()}],"rounded-s":[{"rounded-s":N()}],"rounded-e":[{"rounded-e":N()}],"rounded-t":[{"rounded-t":N()}],"rounded-r":[{"rounded-r":N()}],"rounded-b":[{"rounded-b":N()}],"rounded-l":[{"rounded-l":N()}],"rounded-ss":[{"rounded-ss":N()}],"rounded-se":[{"rounded-se":N()}],"rounded-ee":[{"rounded-ee":N()}],"rounded-es":[{"rounded-es":N()}],"rounded-tl":[{"rounded-tl":N()}],"rounded-tr":[{"rounded-tr":N()}],"rounded-br":[{"rounded-br":N()}],"rounded-bl":[{"rounded-bl":N()}],"border-w":[{border:O()}],"border-w-x":[{"border-x":O()}],"border-w-y":[{"border-y":O()}],"border-w-s":[{"border-s":O()}],"border-w-e":[{"border-e":O()}],"border-w-t":[{"border-t":O()}],"border-w-r":[{"border-r":O()}],"border-w-b":[{"border-b":O()}],"border-w-l":[{"border-l":O()}],"divide-x":[{"divide-x":O()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":O()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...P(),"hidden","none"]}],"divide-style":[{divide:[...P(),"hidden","none"]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...P(),"none","hidden"]}],"outline-offset":[{"outline-offset":[gK,g_,gV]}],"outline-w":[{outline:["",gK,g0,gW]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",k,g5,g$]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",l,g5,g$]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[gK,gW]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":O()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",m,g5,g$]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[gK,g_,gV]}],"mix-blend":[{"mix-blend":[...Q(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Q()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[gK]}],"mask-image-linear-from-pos":[{"mask-linear-from":R()}],"mask-image-linear-to-pos":[{"mask-linear-to":R()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":R()}],"mask-image-t-to-pos":[{"mask-t-to":R()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":R()}],"mask-image-r-to-pos":[{"mask-r-to":R()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":R()}],"mask-image-b-to-pos":[{"mask-b-to":R()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":R()}],"mask-image-l-to-pos":[{"mask-l-to":R()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":R()}],"mask-image-x-to-pos":[{"mask-x-to":R()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":R()}],"mask-image-y-to-pos":[{"mask-y-to":R()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[g_,gV]}],"mask-image-radial-from-pos":[{"mask-radial-from":R()}],"mask-image-radial-to-pos":[{"mask-radial-to":R()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":u()}],"mask-image-conic-pos":[{"mask-conic":[gK]}],"mask-image-conic-from-pos":[{"mask-conic-from":R()}],"mask-image-conic-to-pos":[{"mask-conic-to":R()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:J()}],"mask-repeat":[{mask:K()}],"mask-size":[{mask:L()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",g_,gV]}],filter:[{filter:["","none",g_,gV]}],blur:[{blur:S()}],brightness:[{brightness:[gK,g_,gV]}],contrast:[{contrast:[gK,g_,gV]}],"drop-shadow":[{"drop-shadow":["","none",n,g5,g$]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",gK,g_,gV]}],"hue-rotate":[{"hue-rotate":[gK,g_,gV]}],invert:[{invert:["",gK,g_,gV]}],saturate:[{saturate:[gK,g_,gV]}],sepia:[{sepia:["",gK,g_,gV]}],"backdrop-filter":[{"backdrop-filter":["","none",g_,gV]}],"backdrop-blur":[{"backdrop-blur":S()}],"backdrop-brightness":[{"backdrop-brightness":[gK,g_,gV]}],"backdrop-contrast":[{"backdrop-contrast":[gK,g_,gV]}],"backdrop-grayscale":[{"backdrop-grayscale":["",gK,g_,gV]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[gK,g_,gV]}],"backdrop-invert":[{"backdrop-invert":["",gK,g_,gV]}],"backdrop-opacity":[{"backdrop-opacity":[gK,g_,gV]}],"backdrop-saturate":[{"backdrop-saturate":[gK,g_,gV]}],"backdrop-sepia":[{"backdrop-sepia":["",gK,g_,gV]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":y()}],"border-spacing-x":[{"border-spacing-x":y()}],"border-spacing-y":[{"border-spacing-y":y()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",g_,gV]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[gK,"initial",g_,gV]}],ease:[{ease:["linear","initial",r,g_,gV]}],delay:[{delay:[gK,g_,gV]}],animate:[{animate:["none",s,g_,gV]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,g_,gV]}],"perspective-origin":[{"perspective-origin":v()}],rotate:[{rotate:T()}],"rotate-x":[{"rotate-x":T()}],"rotate-y":[{"rotate-y":T()}],"rotate-z":[{"rotate-z":T()}],scale:[{scale:U()}],"scale-x":[{"scale-x":U()}],"scale-y":[{"scale-y":U()}],"scale-z":[{"scale-z":U()}],"scale-3d":["scale-3d"],skew:[{skew:V()}],"skew-x":[{"skew-x":V()}],"skew-y":[{"skew-y":V()}],transform:[{transform:[g_,gV,"","none","gpu","cpu"]}],"transform-origin":[{origin:v()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:W()}],"translate-x":[{"translate-x":W()}],"translate-y":[{"translate-y":W()}],"translate-z":[{"translate-z":W()}],"translate-none":["translate-none"],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",g_,gV]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":y()}],"scroll-mx":[{"scroll-mx":y()}],"scroll-my":[{"scroll-my":y()}],"scroll-ms":[{"scroll-ms":y()}],"scroll-me":[{"scroll-me":y()}],"scroll-mt":[{"scroll-mt":y()}],"scroll-mr":[{"scroll-mr":y()}],"scroll-mb":[{"scroll-mb":y()}],"scroll-ml":[{"scroll-ml":y()}],"scroll-p":[{"scroll-p":y()}],"scroll-px":[{"scroll-px":y()}],"scroll-py":[{"scroll-py":y()}],"scroll-ps":[{"scroll-ps":y()}],"scroll-pe":[{"scroll-pe":y()}],"scroll-pt":[{"scroll-pt":y()}],"scroll-pr":[{"scroll-pr":y()}],"scroll-pb":[{"scroll-pb":y()}],"scroll-pl":[{"scroll-pl":y()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",g_,gV]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[gK,g0,gW,gX]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function hg(...a){return hf(gj(a))}function hh({className:a,...b}){return(0,m.jsx)("div",{"data-slot":"card",className:hg("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}function hi({className:a,...b}){return(0,m.jsx)("div",{"data-slot":"card-header",className:hg("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...b})}function hj({className:a,...b}){return(0,m.jsx)("div",{"data-slot":"card-title",className:hg("leading-none font-semibold",a),...b})}function hk({className:a,...b}){return(0,m.jsx)("div",{"data-slot":"card-content",className:hg("px-6",a),...b})}function hl(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}var hm=Symbol.for("react.lazy"),hn=n[" use ".trim().toString()];function ho(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===hm&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}var hp=((k=n.forwardRef((a,b)=>{let{children:c,...d}=a;if(ho(c)&&"function"==typeof hn&&(c=hn(c._payload)),n.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==n.Fragment&&(h.ref=b?function(...a){return b=>{let c=!1,d=a.map(a=>{let d=hl(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():hl(a[b],null)}}}}(b,g):g),n.cloneElement(c,h)}return n.Children.count(c)>1?n.Children.only(null):null})).displayName="Slot.SlotClone",f=k,(g=n.forwardRef((a,b)=>{let{children:c,...d}=a;ho(c)&&"function"==typeof hn&&(c=hn(c._payload));let e=n.Children.toArray(c),g=e.find(hr);if(g){let a=g.props.children,c=e.map(b=>b!==g?b:n.Children.count(a)>1?n.Children.only(null):n.isValidElement(a)?a.props.children:null);return(0,m.jsx)(f,{...d,ref:b,children:n.isValidElement(a)?n.cloneElement(a,void 0,c):null})}return(0,m.jsx)(f,{...d,ref:b,children:c})})).displayName="Slot.Slot",g),hq=Symbol("radix.slottable");function hr(a){return n.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===hq}let hs=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,ht=(h="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",i={variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}},a=>{var b;if((null==i?void 0:i.variants)==null)return gj(h,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:c,defaultVariants:d}=i,e=Object.keys(c).map(b=>{let e=null==a?void 0:a[b],f=null==d?void 0:d[b];if(null===e)return null;let g=hs(e)||hs(f);return c[b][g]}),f=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return gj(h,e,null==i||null==(b=i.compoundVariants)?void 0:b.reduce((a,b)=>{let{class:c,className:e,...g}=b;return Object.entries(g).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...d,...f}[b]):({...d,...f})[b]===c})?[...a,c,e]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});function hu({className:a,variant:b="default",size:c="default",asChild:d=!1,...e}){return(0,m.jsx)(d?hp:"button",{"data-slot":"button","data-variant":b,"data-size":c,className:hg(ht({variant:b,size:c,className:a})),...e})}function hv({className:a,type:b,...c}){return(0,m.jsx)("input",{type:b,"data-slot":"input",className:hg("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...c})}let hw={architecture:"#FFD700",pattern:"#FFB347",preference:"#FFA500",error:"#FF6B6B",context:"#FFC080",learning:"#FFE4B5",todo:"#FF8C00",note:"#FFCC66",relationship:"#00D4FF",custom:"#FFB347"},hx={short_term:"#FFD700",episodic:"#FFB347",long_term:"#FF8C00"};function hy(a){return hw[a]||hw.custom}function hz(a){return hx[a]||hx.short_term}let hA=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},hB=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var hC={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let hD=(0,n.forwardRef)(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:d,className:e="",children:f,iconNode:g,...h},i)=>(0,n.createElement)("svg",{ref:i,...hC,width:b,height:b,stroke:a,strokeWidth:d?24*Number(c)/Number(b):c,className:hB("lucide",e),...!f&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(h)&&{"aria-hidden":"true"},...h},[...g.map(([a,b])=>(0,n.createElement)(a,b)),...Array.isArray(f)?f:[f]])),hE=(a,b)=>{let c=(0,n.forwardRef)(({className:c,...d},e)=>(0,n.createElement)(hD,{ref:e,iconNode:b,className:hB(`lucide-${hA(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...d}));return c.displayName=hA(a),c},hF=hE("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),hG=hE("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),hH={references:{color:"#60a5fa",label:"References",icon:"→"},extends:{color:"#34d399",label:"Extends",icon:"⊃"},contradicts:{color:"#f87171",label:"Contradicts",icon:"⊗"},related:{color:"#a78bfa",label:"Related",icon:"~"}},hI=["architecture","pattern","preference","error","context","learning","todo","note","relationship","custom"];function hJ({memory:a,links:b=[],memories:c=[],onClose:d,onReinforce:e,onSelectMemory:f,isReinforcing:g=!1,reinforceSuccess:h=!1}){let i,j,[k,l]=(0,n.useState)(!1),[o,p]=(0,n.useState)(!1),[q,r]=(0,n.useState)(null),[s,t]=(0,n.useState)(!1),[u,v]=(0,n.useState)(a.title),[w,x]=(0,n.useState)(a.content),[y,z]=(0,n.useState)(a.category),[A,B]=(0,n.useState)((a.tags||[]).join(", ")),[C,D]=(0,n.useState)(!1),E=(i=(0,fK.useQueryClient)(),fS({mutationFn:({id:a,updates:b})=>gb(a,b),onSuccess:()=>{i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]})}})),F=(j=(0,fK.useQueryClient)(),fS({mutationFn:gc,onSuccess:()=>{j.invalidateQueries({queryKey:["memories"]}),j.invalidateQueries({queryKey:["stats"]}),j.invalidateQueries({queryKey:["links"]})}})),[G,H]=(0,n.useState)(a.id);G!==a.id&&(H(a.id),t(!1),D(!1),v(a.title),x(a.content),z(a.category),B((a.tags||[]).join(", "))),(0,n.useEffect)(()=>{if(h&&q===a.id){let a=setTimeout(()=>l(!0),0),b=setTimeout(()=>l(!1),1500);return()=>{clearTimeout(a),clearTimeout(b)}}},[h,q,a.id]);let I=(0,n.useCallback)(()=>{let b=A.split(",").map(a=>a.trim()).filter(Boolean),c={};(u!==a.title&&(c.title=u),w!==a.content&&(c.content=w),y!==a.category&&(c.category=y),A!==(a.tags||[]).join(", ")&&(c.tags=b),0===Object.keys(c).length)?t(!1):E.mutate({id:a.id,updates:c},{onSuccess:()=>{t(!1),p(!0),setTimeout(()=>p(!1),1500)}})},[a.id,u,w,y,A,E]),J=function(a){if(!a.lastAccessed)return 1;let b=Date.now(),c=new Date(a.lastAccessed).getTime();return Math.pow({short_term:.995,long_term:.9995,episodic:.998}[a.type]||.995,(b-c)/36e5)}(a),K=hy(a.category),L=hz(a.type),M=J>.7?{label:"Healthy",color:"#22C55E",bgColor:"rgba(34, 197, 94, 0.15)"}:J>.4?{label:"Fading",color:"#EAB308",bgColor:"rgba(234, 179, 8, 0.15)"}:{label:"Critical",color:"#EF4444",bgColor:"rgba(239, 68, 68, 0.15)"},N=(0,n.useMemo)(()=>{let d=[];for(let e of b)if(e.source_id===a.id){let a=c.find(a=>a.id===e.target_id);a&&d.push({memory:a,relationship:e.relationship,strength:e.strength,direction:"to"})}else if(e.target_id===a.id){let a=c.find(a=>a.id===e.source_id);a&&d.push({memory:a,relationship:e.relationship,strength:e.strength,direction:"from"})}return d.sort((a,b)=>b.strength-a.strength)},[a.id,b,c]);return(0,m.jsxs)(hh,{className:`bg-slate-900 border-slate-700 h-full overflow-auto transition-all duration-300 ${k?"ring-2 ring-green-500 ring-opacity-75":""} ${o?"ring-2 ring-emerald-500 ring-opacity-75":""}`,children:[(0,m.jsxs)(hi,{className:"border-b border-slate-700 pb-3",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[s?(0,m.jsx)(hv,{value:u,onChange:a=>v(a.target.value),className:"bg-slate-800 border-slate-600 text-white text-lg font-semibold"}):(0,m.jsxs)(hj,{className:"text-lg font-semibold text-white leading-tight flex items-center gap-2",children:[o&&(0,m.jsx)(hG,{className:"w-4 h-4 text-emerald-400 shrink-0"}),a.title]}),(0,m.jsxs)("div",{className:"flex items-center gap-1 shrink-0 -mt-1",children:[!s&&(0,m.jsx)(hu,{variant:"ghost",size:"sm",onClick:()=>t(!0),className:"text-slate-400 hover:text-white",title:"Edit memory",children:(0,m.jsx)(hF,{className:"w-4 h-4"})}),(0,m.jsx)(hu,{variant:"ghost",size:"sm",onClick:d,className:"text-slate-400 hover:text-white",children:"✕"})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[s?(0,m.jsx)("select",{value:y,onChange:a=>z(a.target.value),className:"bg-slate-800 border border-slate-600 text-white text-xs rounded-lg px-2 py-1",children:hI.map(a=>(0,m.jsx)("option",{value:a,children:a},a))}):(0,m.jsx)("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:K+"20",color:K},children:a.category}),(0,m.jsx)("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:L+"20",color:L},children:a.type.replace("_","-")})]})]}),(0,m.jsxs)(hk,{className:"p-4 space-y-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-1",children:"Content"}),s?(0,m.jsx)("textarea",{value:w,onChange:a=>x(a.target.value),rows:6,className:"w-full bg-slate-800 border border-slate-600 text-sm text-slate-200 rounded-lg p-3 resize-y focus:ring-cyan-500 focus:border-cyan-500"}):(0,m.jsx)("p",{className:"text-sm text-slate-200 whitespace-pre-wrap leading-relaxed",children:a.content})]}),s&&(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-1",children:"Tags (comma-separated)"}),(0,m.jsx)(hv,{value:A,onChange:a=>B(a.target.value),placeholder:"tag1, tag2, tag3",className:"bg-slate-800 border-slate-600 text-white text-sm"})]}),s?(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)(hu,{variant:"default",size:"sm",onClick:I,disabled:E.isPending,className:"flex-1 bg-emerald-600 hover:bg-emerald-700",children:E.isPending?"Saving...":"Save Changes"}),(0,m.jsx)(hu,{variant:"outline",size:"sm",onClick:()=>{t(!1),v(a.title),x(a.content),z(a.category),B((a.tags||[]).join(", "))},className:"flex-1 border-slate-600 text-slate-300 hover:text-white",children:"Cancel"})]}):null,!s&&(0,m.jsxs)("div",{className:"rounded-lg p-3 flex items-center gap-3",style:{backgroundColor:M.bgColor},children:[(0,m.jsx)("div",{className:"w-3 h-3 rounded-full animate-pulse",style:{backgroundColor:M.color}}),(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"text-sm font-medium",style:{color:M.color},children:M.label}),(0,m.jsx)("div",{className:"text-xs text-slate-400",children:J>.7?"Memory is strong and stable":J>.4?"Memory is fading - reinforce to preserve":"Memory at risk of deletion - reinforce now"})]})]}),!s&&(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"text-xs text-slate-400",children:"Salience"}),(0,m.jsxs)("div",{className:"text-lg font-bold text-white",children:[(100*a.salience).toFixed(0),"%"]}),(0,m.jsx)("div",{className:"mt-1 h-1.5 bg-slate-700 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full bg-gradient-to-r from-red-500 via-yellow-500 to-green-500 rounded-full transition-all",style:{width:`${100*a.salience}%`}})})]}),(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"text-xs text-slate-400",children:"Decay Factor"}),(0,m.jsxs)("div",{className:"text-lg font-bold text-white",children:[(100*J).toFixed(0),"%"]}),(0,m.jsx)("div",{className:"mt-1 h-1.5 bg-slate-700 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*J}%`,backgroundColor:M.color}})})]})]}),!s&&(0,m.jsxs)("div",{className:`bg-slate-800 rounded-lg p-3 space-y-2 transition-all duration-300 ${k?"ring-1 ring-green-500/50":""}`,children:[(0,m.jsxs)("div",{className:"flex justify-between items-center",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Access Count"}),(0,m.jsxs)("span",{className:`text-sm font-medium transition-all duration-300 ${k?"text-green-400 scale-110":"text-white"}`,children:[a.accessCount," times"]})]}),(0,m.jsxs)("div",{className:"flex justify-between items-center",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Last Accessed"}),(0,m.jsx)("span",{className:`text-sm transition-all duration-300 ${k?"text-green-400":"text-white"}`,children:k?"Just now":(a=>{let b=new Date(a),c=Math.floor((new Date().getTime()-b.getTime())/36e5);if(c<1)return"Just now";if(c<24)return`${c}h ago`;let d=Math.floor(c/24);return d<7?`${d}d ago`:`${Math.floor(d/7)}w ago`})(a.lastAccessed)})]}),(0,m.jsxs)("div",{className:"flex justify-between items-center",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Created"}),(0,m.jsx)("span",{className:"text-sm text-white",children:new Date(a.createdAt).toLocaleString()})]})]}),!s&&N.length>0&&(0,m.jsxs)("div",{children:[(0,m.jsxs)("h4",{className:"text-xs font-medium text-slate-400 mb-2 flex items-center gap-2",children:[(0,m.jsx)("span",{className:"inline-block w-4 h-4",children:"🔗"}),"Related Memories (",N.length,")"]}),(0,m.jsx)("div",{className:"space-y-2 max-h-48 overflow-y-auto",children:N.map(({memory:a,relationship:b,strength:c,direction:d})=>{let e=hH[b]||hH.related,g=hy(a.category);return(0,m.jsxs)("button",{onClick:()=>f?.(a.id),className:"w-full text-left p-2 bg-slate-800 hover:bg-slate-750 rounded-lg transition-colors group",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,m.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:e.color}}),(0,m.jsx)("span",{className:"text-[10px] font-medium",style:{color:e.color},children:"to"===d?`${e.icon} ${e.label}`:`${e.label} ${e.icon}`}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-500 ml-auto",children:[(100*c).toFixed(0),"%"]})]}),(0,m.jsx)("div",{className:"text-sm text-white truncate group-hover:text-blue-400 transition-colors",children:a.title}),(0,m.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,m.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px]",style:{backgroundColor:g+"20",color:g},children:a.category}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-500",children:[(100*a.salience).toFixed(0),"% salience"]})]})]},`${a.id}-${d}`)})})]}),!s&&a.tags&&a.tags.length>0&&(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-2",children:"Tags"}),(0,m.jsx)("div",{className:"flex flex-wrap gap-1",children:a.tags.map((a,b)=>(0,m.jsx)("span",{className:"px-2 py-0.5 bg-slate-700 text-slate-300 rounded text-xs",children:a},b))})]}),!s&&(0,m.jsxs)("div",{className:"space-y-2 pt-2",children:[e&&(0,m.jsx)(hu,{variant:"default",size:"sm",onClick:()=>{r(a.id),e?.(a.id)},disabled:g,className:`w-full transition-all duration-300 ${k?"bg-green-600 hover:bg-green-600":"bg-blue-600 hover:bg-blue-700"}`,children:g?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("span",{className:"animate-spin mr-2",children:"⟳"}),"Reinforcing..."]}):k?(0,m.jsx)(m.Fragment,{children:"✓ Reinforced!"}):(0,m.jsx)(m.Fragment,{children:"⚡ Reinforce"})}),C?(0,m.jsxs)("div",{className:"bg-red-500/10 border border-red-500/30 rounded-lg p-3",children:[(0,m.jsx)("p",{className:"text-xs text-red-400 mb-2",children:"Delete this memory permanently?"}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)(hu,{variant:"default",size:"sm",onClick:()=>{F.mutate(a.id,{onSuccess:()=>{d()}})},disabled:F.isPending,className:"flex-1 bg-red-600 hover:bg-red-700",children:F.isPending?"Deleting...":"Confirm Delete"}),(0,m.jsx)(hu,{variant:"outline",size:"sm",onClick:()=>D(!1),className:"flex-1 border-slate-600 text-slate-300 hover:text-white",children:"Cancel"})]})]}):(0,m.jsx)(hu,{variant:"ghost",size:"sm",onClick:()=>D(!0),className:"w-full text-slate-500 hover:text-red-400 hover:bg-red-500/10",children:"Delete Memory"})]})]})]})}function hK(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<7)return`${d}d ago`;let e=Math.floor(d/7);return`${e}w ago`}function hL({memory:a,isSelected:b,onSelect:c,isChecked:d,onCheck:e}){let f=hy(a.category),g=hz(a.type);return(0,m.jsxs)("div",{onClick:()=>c(a),className:`bg-slate-900 border rounded-lg p-3 hover:border-slate-600 cursor-pointer transition-colors relative ${b?"border-cyan-500":"border-slate-800"}`,children:[(0,m.jsx)("div",{className:"h-0.5 rounded-full bg-slate-800 mb-2 overflow-hidden",children:(0,m.jsx)("div",{className:"h-full rounded-full",style:{width:`${100*a.salience}%`,backgroundColor:f}})}),e&&(0,m.jsx)("input",{type:"checkbox",checked:d??!1,onChange:b=>{b.stopPropagation(),e(a.id,b.target.checked)},onClick:a=>a.stopPropagation(),className:"absolute top-3 right-3 w-4 h-4 accent-blue-500"}),(0,m.jsx)("h3",{className:"text-sm font-semibold text-white truncate pr-6",children:a.title}),(0,m.jsxs)("div",{className:"flex items-center gap-1.5 mt-1",children:[(0,m.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:f+"22",color:f},children:a.category}),(0,m.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:g+"22",color:g},children:a.type.replace("_","-")})]}),(0,m.jsx)("p",{className:"text-[13px] text-slate-400 mt-1.5 line-clamp-3 leading-snug",children:a.content}),a.tags.length>0&&(0,m.jsxs)("div",{className:"flex items-center gap-1 mt-2 flex-wrap",children:[a.tags.slice(0,3).map(a=>(0,m.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-slate-800 text-slate-400",children:a},a)),a.tags.length>3&&(0,m.jsxs)("span",{className:"text-[10px] text-slate-500",children:["+",a.tags.length-3," more"]})]}),(0,m.jsxs)("div",{className:"flex items-center justify-between mt-2 text-[11px] text-slate-500",children:[(0,m.jsxs)("span",{children:["Created ",hK(a.createdAt)]}),(0,m.jsxs)("span",{children:["Accessed ",hK(a.lastAccessed)]})]})]})}let hM=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function hN({memories:a,selectedMemory:b,onSelectMemory:c}){let[d,e]=(0,n.useState)("salience"),[f,g]=(0,n.useState)("grid"),[h,i]=(0,n.useState)(!1),[j,k]=(0,n.useState)(new Set),[l,o]=(0,n.useState)(!1),p=(0,fK.useQueryClient)(),q=(0,n.useMemo)(()=>{let b=[...a];return b.sort((a,b)=>{switch(d){case"salience":return b.salience-a.salience;case"createdAt":return new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime();case"lastAccessed":return new Date(b.lastAccessed).getTime()-new Date(a.lastAccessed).getTime();case"decayedScore":return(b.decayedScore??b.salience)-(a.decayedScore??a.salience);default:return 0}}),b},[a,d]),r=(0,n.useCallback)((a,b)=>{k(c=>{let d=new Set(c);return b?d.add(a):d.delete(a),d})},[]),s=async()=>{if(0!==j.size){o(!0);try{await Promise.all(Array.from(j).map(a=>fX(`${hM}/api/memories/${a}`,{method:"DELETE"}))),k(new Set),p.invalidateQueries({queryKey:["memories"]})}finally{o(!1)}}};return(0,m.jsxs)("div",{className:"flex flex-col h-full",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2 border-b border-slate-800 shrink-0",children:[(0,m.jsxs)("span",{className:"text-xs text-slate-400",children:[a.length," memories"]}),(0,m.jsx)("div",{className:"w-px h-5 bg-slate-700"}),(0,m.jsxs)("select",{value:d,onChange:a=>e(a.target.value),className:"bg-slate-800 border border-slate-700 text-white text-xs rounded px-2 py-1",children:[(0,m.jsx)("option",{value:"salience",children:"Salience"}),(0,m.jsx)("option",{value:"createdAt",children:"Created"}),(0,m.jsx)("option",{value:"lastAccessed",children:"Last Accessed"}),(0,m.jsx)("option",{value:"decayedScore",children:"Decay Score"})]}),(0,m.jsxs)("div",{className:"flex items-center border border-slate-700 rounded overflow-hidden",children:[(0,m.jsx)("button",{onClick:()=>g("grid"),className:`px-2 py-1 text-xs ${"grid"===f?"bg-slate-700 text-white":"text-slate-400 hover:text-white"}`,children:"Grid"}),(0,m.jsx)("button",{onClick:()=>g("list"),className:`px-2 py-1 text-xs ${"list"===f?"bg-slate-700 text-white":"text-slate-400 hover:text-white"}`,children:"List"})]}),(0,m.jsx)("div",{className:"w-px h-5 bg-slate-700"}),(0,m.jsx)("button",{onClick:()=>{i(!h),k(new Set)},className:`px-2 py-1 text-xs rounded ${h?"bg-blue-600 text-white":"bg-slate-800 text-slate-400 hover:text-white"}`,children:"Select"}),h&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("button",{onClick:()=>k(new Set(q.map(a=>a.id))),className:"px-2 py-1 text-xs text-slate-400 hover:text-white",children:"Select all"}),(0,m.jsx)("button",{onClick:s,disabled:0===j.size||l,className:"px-2 py-1 text-xs rounded bg-red-600/20 text-red-400 hover:bg-red-600/40 disabled:opacity-40",children:l?"Deleting...":`Delete (${j.size})`})]})]}),(0,m.jsx)("div",{className:"flex-1 overflow-y-auto p-4",children:(0,m.jsx)("div",{className:"grid"===f?"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3":"flex flex-col gap-3 max-w-2xl",children:q.map(a=>(0,m.jsx)(hL,{memory:a,isSelected:b?.id===a.id,onSelect:c,isChecked:h?j.has(a.id):void 0,onCheck:h?r:void 0},a.id))})})]})}let hO=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function hP(a){let b=new URLSearchParams;a?.startTime&&b.set("startTime",a.startTime),a?.endTime&&b.set("endTime",a.endTime),a?.source&&b.set("source",a.source),a?.firewallResult&&b.set("firewallResult",a.firewallResult),a?.project&&b.set("project",a.project),a?.limit&&b.set("limit",a.limit.toString());let c=await fX(`${hO}/api/v1/audit?${b}`);if(!c.ok)throw Error("Failed to fetch audit logs");return c.json()}async function hQ(a,b){let c=new URLSearchParams({timeRange:a});b&&c.set("project",b);let d=await fX(`${hO}/api/v1/audit/stats?${c}`);if(!d.ok)throw Error("Failed to fetch audit stats");return d.json()}async function hR(a="pending",b=50,c){let d=new URLSearchParams({status:a,limit:b.toString()});c&&d.set("project",c);let e=await fX(`${hO}/api/v1/quarantine?${d}`);if(!e.ok)throw Error("Failed to fetch quarantine");return e.json()}async function hS(a){let b=await fX(`${hO}/api/v1/quarantine/${a}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!b.ok)throw Error("Failed to approve");return b.json()}async function hT(a,b){let c=await fX(`${hO}/api/v1/quarantine/${a}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:b})});if(!c.ok)throw Error("Failed to reject");return c.json()}function hU(a){return fO({queryKey:["audit-logs",a],queryFn:()=>hP(a),refetchInterval:3e4,retry:2})}function hV(a="24h",b){return fO({queryKey:["audit-stats",a,b],queryFn:()=>hQ(a,b),refetchInterval:3e4,retry:2})}function hW(a="pending",b=50,c){return fO({queryKey:["quarantine",a,b,c],queryFn:()=>hR(a,b,c),refetchInterval:3e4,retry:2})}let hX=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function hY(){let a=await fX(`${hX}/api/license/status`);if(!a.ok)throw Error("Failed to fetch license status");return a.json()}async function hZ(a){let b=await fX(`${hX}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return b.json()}async function h$(){let a=await fX(`${hX}/api/license/deactivate`,{method:"POST"});if(!a.ok)throw Error("Failed to deactivate license");return a.json()}function h_(){return fO({queryKey:["license-status"],queryFn:hY,refetchInterval:6e4,retry:2})}let h0=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function h1({data:a,color:b="#22d3ee",width:c=24,height:d=10}){if(!a||0===a.length)return null;if(1===a.length)return(0,m.jsx)("svg",{width:c,height:d,viewBox:`0 0 ${c} ${d}`,children:(0,m.jsx)("circle",{cx:c/2,cy:d/2,r:1,fill:b,opacity:.6})});let e=Math.max(...a,1),f=c-2,g=d-2,h=a.map((b,c)=>{let d=1+c/(a.length-1)*f;return`${d.toFixed(1)},${(1+g-b/e*g).toFixed(1)}`}).join(" ");return(0,m.jsx)("svg",{width:c,height:d,viewBox:`0 0 ${c} ${d}`,className:"shrink-0",children:(0,m.jsx)("polyline",{points:h,fill:"none",stroke:b,strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round",opacity:.6})})}let h2=hE("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),h3=hE("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),h4=hE("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),h5=hE("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),h6=hE("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]),h7=hE("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]),h8=hE("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),h9=hE("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),ia=hE("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),ib=[{id:"shield",label:"Shield",icon:h2},{id:"audit",label:"Audit",icon:h3},{id:"quarantine",label:"Queue",icon:h4},{id:"agents",label:"Agents",icon:h8},{id:"skills",label:"Skills",icon:h9},{id:"dome",label:"Dome",icon:ia},{id:"memories",label:"Memories",icon:h5},{id:"timeline",label:"Timeline",icon:hE("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},{id:"brain",label:"Brain",icon:h6},{id:"graph",label:"Graph",icon:h7}],ic=new Set(["shield","audit","skills","dome"]);function id(){let{viewMode:a,setViewMode:b}=gf(),{data:c}=f6(),{data:d}=hV("24h"),{data:e}=fO({queryKey:["version"],queryFn:ga,refetchInterval:6e4,staleTime:3e4}),{data:f}=h_(),{memoryTrend:g,threatTrend:h}=function(){let{data:a}=fO({queryKey:["activity-trend"],queryFn:async()=>{let a=await fX(`${h0}/api/memories/activity`);if(!a.ok)throw Error("Failed to fetch activity");return a.json()},staleTime:3e5,refetchInterval:3e5}),b=new Date;b.setDate(b.getDate()-7);let c=b.toISOString(),{data:d}=fO({queryKey:["threat-trend"],queryFn:async()=>{let a=new URLSearchParams({firewallResult:"BLOCK",startTime:c,limit:"500"}),b=await fX(`${h0}/api/v1/audit?${a}`);if(!b.ok)throw Error("Failed to fetch audit logs");return b.json()},staleTime:3e5,refetchInterval:3e5}),e=[];for(let a=6;a>=0;a--){let b=new Date;b.setDate(b.getDate()-a),e.push(b.toISOString().slice(0,10))}let f=new Map;if(a?.activity)for(let b of a.activity)f.set(b.date,b.count);let g=e.map(a=>f.get(a)??0),h=new Map;if(d?.logs)for(let a of d.logs){let b=a.timestamp.slice(0,10);h.set(b,(h.get(b)??0)+1)}return{memoryTrend:g,threatTrend:e.map(a=>h.get(a)??0)}}(),i=!f||"free"===f.tier,j=c?.decayDistribution?Math.round(c.decayDistribution.healthy/Math.max(1,c.total)*100):null,k=d?.blockedCount??0;return(0,m.jsxs)("nav",{className:"w-14 border-r border-slate-800 bg-slate-900/50 flex flex-col items-center py-3 shrink-0",children:[(0,m.jsx)("div",{className:"flex-1 flex flex-col items-center gap-1",children:ib.map(({id:c,label:d,icon:e})=>{let f="memories"===c?g:"shield"===c?h:null,j="shield"===c?"#f87171":"#22d3ee",l=f&&f.some(a=>a>0);return(0,m.jsxs)("button",{onClick:()=>b(c),className:`relative w-10 rounded-lg flex flex-col items-center justify-center gap-0.5 transition-colors ${l?"h-12":"h-10"} ${a===c?"dome"===c?"bg-red-600/20 text-red-400":"bg-cyan-600/20 text-cyan-400":"text-slate-500 hover:text-slate-300 hover:bg-slate-800"}`,title:d,children:[(0,m.jsx)(e,{size:18}),l&&(0,m.jsx)(h1,{data:f,color:j,width:24,height:10}),(0,m.jsx)("span",{className:"text-[9px] leading-none",children:d}),"shield"===c&&k>0&&(0,m.jsx)("span",{className:"absolute -top-0.5 -right-0.5 min-w-[14px] h-[14px] rounded-full bg-red-500 text-white text-[8px] flex items-center justify-center px-0.5",children:k>99?"99+":k}),i&&ic.has(c)&&(0,m.jsx)("span",{className:"absolute -bottom-0.5 -left-0.5 px-1 h-[12px] rounded-full bg-cyan-600/80 text-white text-[7px] font-bold flex items-center justify-center leading-none",children:"PRO"})]},c)})}),(0,m.jsxs)("div",{className:"flex flex-col items-center gap-1 text-[10px] text-slate-500",children:[c&&(0,m.jsx)("span",{children:c.total}),null!==j&&(0,m.jsxs)("span",{children:[j,"%"]}),e?.version&&(0,m.jsxs)("span",{children:["v",e.version]})]})]})}let ie=hE("flame",[["path",{d:"M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4",key:"1slcih"}]]),ig=hE("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),ih=hE("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),ii=hE("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),ij=[{key:"trust",label:"Trust",icon:h2,color:"text-blue-400",bg:"bg-blue-400/10"},{key:"firewall",label:"Firewall",icon:ie,color:"text-orange-400",bg:"bg-orange-400/10"},{key:"sensitivity",label:"Sensitivity",icon:ig,color:"text-purple-400",bg:"bg-purple-400/10"},{key:"fragmentation",label:"Fragment",icon:ih,color:"text-cyan-400",bg:"bg-cyan-400/10"},{key:"audit",label:"Audit",icon:h3,color:"text-green-400",bg:"bg-green-400/10"}],ik={strict:{color:"text-red-400",bg:"bg-red-400/10"},balanced:{color:"text-cyan-400",bg:"bg-cyan-400/10"},permissive:{color:"text-green-400",bg:"bg-green-400/10"}};function il({timeRange:a}){let b,{projectFilter:c}=gf(),{data:d,isLoading:e,isError:f}=hV(a,c||void 0),{data:g}=fO({queryKey:["defence-config"],queryFn:()=>fX(`${hO}/api/defence/config`).then(a=>a.json())}),h=(b=(0,fK.useQueryClient)(),fS({mutationFn:a=>fX(`${hO}/api/defence/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:a})}).then(a=>a.json()),onSuccess:()=>{b.invalidateQueries({queryKey:["defence-config"]})}})),[i,j]=(0,n.useState)(!1),k=(0,n.useRef)(null),l=g?.mode??"balanced",o=ik[l];return(0,n.useEffect)(()=>{function a(a){k.current&&!k.current.contains(a.target)&&j(!1)}return i&&document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[i]),(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[g?.tampered&&(0,m.jsxs)("div",{className:"flex items-center gap-2 bg-red-500/10 border border-red-500/30 rounded-lg px-3 py-2 mb-3",children:[(0,m.jsx)(h4,{size:14,className:"text-red-400 shrink-0"}),(0,m.jsx)("span",{className:"text-xs text-red-400",children:"Config integrity check failed — running in strict mode"})]}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Defence Pipeline"}),(0,m.jsx)("div",{className:"flex items-center gap-1 mb-4",children:ij.map(({key:a,label:b,icon:c,color:d,bg:e},f)=>(0,m.jsxs)("div",{className:"flex items-center",children:[(0,m.jsxs)("div",{className:`flex items-center gap-1.5 px-3 py-2 rounded-lg ${e}`,children:[(0,m.jsx)(c,{size:14,className:d}),(0,m.jsx)("span",{className:`text-xs font-medium ${d}`,children:b})]}),f<ij.length-1&&(0,m.jsx)("div",{className:"w-4 h-px bg-slate-700 mx-0.5"})]},a))}),e?(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading stats..."}):f?(0,m.jsx)("div",{className:"text-xs text-red-400",children:"Failed to load stats"}):d?(0,m.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("div",{className:"text-2xl font-bold text-green-400",children:d.allowedCount}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Allowed"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("div",{className:"text-2xl font-bold text-red-400",children:d.blockedCount}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Blocked"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("div",{className:"text-2xl font-bold text-yellow-400",children:d.quarantinedCount}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Quarantined"})]})]}):(0,m.jsx)("div",{className:"text-xs text-slate-500",children:"No data"}),(0,m.jsx)("button",{onClick:()=>gf.getState().setViewMode("audit"),className:"mt-3 w-full text-center text-xs text-cyan-400 hover:text-cyan-300 transition-colors py-1",children:"View full audit log →"}),(0,m.jsxs)("div",{className:"mt-2 pt-3 border-t border-slate-800 flex items-center justify-between",children:[(0,m.jsx)("span",{className:"text-xs text-slate-500",children:"Firewall Mode"}),(0,m.jsxs)("div",{className:"relative",ref:k,children:[(0,m.jsxs)("button",{onClick:()=>j(!i),className:`text-xs font-medium ${o.color} ${o.bg} px-2 py-0.5 rounded flex items-center gap-1 hover:opacity-80 transition-opacity`,children:[l,(0,m.jsx)(ii,{size:10})]}),i&&(0,m.jsx)("div",{className:"absolute right-0 top-full mt-1 bg-slate-800 border border-slate-700 rounded-lg shadow-xl z-50 min-w-[120px] py-1",children:["strict","balanced","permissive"].map(a=>{let b=ik[a];return(0,m.jsxs)("button",{onClick:()=>{h.mutate(a),j(!1)},className:`w-full text-left px-3 py-1.5 text-xs hover:bg-slate-700/50 transition-colors flex items-center justify-between ${a===l?b.color+" font-medium":"text-slate-400"}`,children:[a,a===l&&(0,m.jsx)("span",{className:"text-[10px]",children:"✓"})]},a)})})]})]})]})}function im(){let{setViewMode:a,projectFilter:b}=gf(),{data:c,isLoading:d,isError:e}=hW("pending",3,b||void 0),f=c?.total??0,g=c?.items??[];return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300",children:"Quarantine Queue"}),f>0&&(0,m.jsxs)("span",{className:"text-xs font-medium text-yellow-400 bg-yellow-400/10 px-2 py-0.5 rounded-full",children:[f," pending"]})]}),d?(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading..."}):e?(0,m.jsx)("div",{className:"text-xs text-red-400",children:"Failed to load quarantine"}):0===g.length?(0,m.jsxs)("div",{className:"flex flex-col items-center py-6 text-slate-500",children:[(0,m.jsx)(h4,{size:24,className:"mb-2 text-slate-600"}),(0,m.jsx)("span",{className:"text-xs",children:"No items in quarantine"})]}):(0,m.jsx)("div",{className:"space-y-2",children:g.map(a=>{let b=(()=>{try{return JSON.parse(a.threat_indicators)}catch{return[]}})();return(0,m.jsxs)("div",{className:"bg-slate-800/50 border border-slate-700 rounded-lg p-3",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between",children:[(0,m.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,m.jsx)("div",{className:"text-xs font-medium text-white truncate",children:a.title||"Untitled"}),(0,m.jsxs)("div",{className:"text-[10px] text-slate-500 mt-0.5",children:[a.source_type," · ",new Date(a.created_at).toLocaleTimeString()]})]}),(0,m.jsx)("span",{className:"text-[10px] text-red-400 bg-red-400/10 px-1.5 py-0.5 rounded shrink-0 ml-2",children:a.reason?.slice(0,30)||"Threat detected"})]}),b.length>0&&(0,m.jsx)("div",{className:"flex gap-1 mt-1.5 flex-wrap",children:b.slice(0,3).map((a,b)=>(0,m.jsx)("span",{className:"text-[9px] text-yellow-400 bg-yellow-400/10 px-1 py-0.5 rounded",children:a},b))})]},a.id)})}),f>0&&(0,m.jsxs)("button",{onClick:()=>a("quarantine"),className:"w-full mt-3 text-xs text-cyan-400 hover:text-cyan-300 transition-colors",children:["Review all ",f," items →"]})]})}function io({timeRange:a}){let{projectFilter:b}=gf(),c={"24h":24,"7d":168,"30d":720},[d,e]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{e(Date.now())},[a]);let{data:f,isLoading:g,isError:h}=hU({startTime:(0,n.useMemo)(()=>new Date(6e4*Math.floor((d-36e5*c[a])/6e4)).toISOString(),[d,a]),project:b||void 0,limit:500}),i=(0,n.useMemo)(()=>{if(!f?.logs.length)return[];let b="24h"===a?36e5:"7d"===a?216e5:864e5,c="24h"===a?24:"7d"===a?28:30,e=Array.from({length:c},(a,e)=>({time:d-(c-1-e)*b,allowed:0,blocked:0,quarantined:0}));for(let a of f.logs){let f=Math.floor((new Date(a.timestamp).getTime()-(d-c*b))/b),g=Math.min(Math.max(f,0),c-1);f>=0&&f<=c&&("ALLOW"===a.firewall_result?e[g].allowed++:"BLOCK"===a.firewall_result?e[g].blocked++:"QUARANTINE"===a.firewall_result&&e[g].quarantined++)}return e},[f,a,d]),j=Math.max(1,...i.map(a=>a.allowed+a.blocked+a.quarantined));return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Threat Timeline"}),g?(0,m.jsx)("div",{className:"h-32 flex items-center justify-center",children:(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading timeline..."})}):h?(0,m.jsx)("div",{className:"h-32 flex items-center justify-center",children:(0,m.jsx)("div",{className:"text-xs text-red-400",children:"Failed to load timeline"})}):0===i.length?(0,m.jsx)("div",{className:"h-32 flex items-center justify-center",children:(0,m.jsx)("div",{className:"text-xs text-slate-500",children:"No audit data"})}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("div",{className:"flex gap-px h-32",children:i.map((a,b)=>{let c=a.allowed+a.blocked+a.quarantined,d=c>0?a.blocked/c*100:0,e=c>0?a.quarantined/c*100:0;return(0,m.jsx)("div",{className:"flex-1 flex flex-col justify-end",title:`${new Date(a.time).toLocaleString()}: ${a.allowed} allowed, ${a.blocked} blocked, ${a.quarantined} quarantined`,children:(0,m.jsx)("div",{className:"w-full rounded-t-sm overflow-hidden",style:{height:`${Math.max(c/j*100,2*(c>0))}%`},children:(0,m.jsxs)("div",{className:"w-full h-full flex flex-col-reverse",children:[a.blocked>0&&(0,m.jsx)("div",{className:"bg-red-500",style:{height:`${d}%`}}),a.quarantined>0&&(0,m.jsx)("div",{className:"bg-yellow-500",style:{height:`${e}%`}}),(0,m.jsx)("div",{className:"bg-emerald-500/60 flex-1"})]})})},b)})}),(0,m.jsxs)("div",{className:"flex gap-4 mt-3 justify-center",children:[(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)("div",{className:"w-2 h-2 rounded-full bg-emerald-500/60"}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:"Allowed"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)("div",{className:"w-2 h-2 rounded-full bg-red-500"}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:"Blocked"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)("div",{className:"w-2 h-2 rounded-full bg-yellow-500"}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:"Quarantined"})]})]}),(0,m.jsx)("button",{onClick:()=>gf.getState().setViewMode("audit"),className:"mt-3 w-full text-center text-xs text-cyan-400 hover:text-cyan-300 transition-colors py-1",children:"View detailed audit log →"})]})]})}function ip({timeRange:a}){let{projectFilter:b}=gf(),{data:c,isLoading:d,isError:e}=hV(a,b||void 0);if(d)return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Stats Summary"}),(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading..."})]});if(e)return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Stats Summary"}),(0,m.jsx)("div",{className:"text-xs text-red-400",children:"Failed to load stats"})]});if(!c)return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Stats Summary"}),(0,m.jsx)("div",{className:"text-xs text-slate-500",children:"No data"})]});let f=c.totalOperations||1,g=(c.blockedCount/f*100).toFixed(1),h=Object.entries(c.threatBreakdown||{}).sort((a,b)=>b[1]-a[1]).slice(0,5);return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Stats Summary"}),(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-3 mb-4",children:[(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-3 text-center",children:[(0,m.jsx)("div",{className:"text-2xl font-bold text-white",children:c.totalOperations}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Total Scans"})]}),(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-3 text-center",children:[(0,m.jsxs)("div",{className:`text-2xl font-bold ${parseFloat(g)>10?"text-red-400":"text-green-400"}`,children:[g,"%"]}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Block Rate"})]})]}),c.topSources.length>0&&(0,m.jsxs)("div",{className:"mb-4",children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase mb-2",children:"Top Sources"}),(0,m.jsx)("div",{className:"space-y-1",children:c.topSources.slice(0,3).map(a=>(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:a.source}),(0,m.jsx)("span",{className:"text-xs text-slate-500",children:a.count})]},a.source))})]}),h.length>0&&(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase mb-2",children:"Threat Types"}),(0,m.jsx)("div",{className:"space-y-1",children:h.map(([a,b])=>(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:a}),(0,m.jsx)("span",{className:"text-xs font-medium text-red-400",children:b})]},a))})]}),(0,m.jsx)("button",{onClick:()=>gf.getState().setViewMode("audit"),className:"mt-3 w-full text-center text-xs text-cyan-400 hover:text-cyan-300 transition-colors py-1",children:"View full audit log →"})]})}let iq=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function ir(a){return a>70?"#22c55e":a>=40?"#eab308":"#ef4444"}function is({score:a,size:b=120,strokeWidth:c=8}){let d=(b-c)/2,e=2*Math.PI*d,f=e-a/100*e,g=ir(a);return(0,m.jsxs)("svg",{width:b,height:b,className:"transform -rotate-90",children:[(0,m.jsx)("circle",{cx:b/2,cy:b/2,r:d,fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:c}),(0,m.jsx)("circle",{cx:b/2,cy:b/2,r:d,fill:"none",stroke:g,strokeWidth:c,strokeLinecap:"round",strokeDasharray:e,strokeDashoffset:f,style:{transition:"stroke-dashoffset 0.6s ease"}})]})}function it({component:a}){var b,c;return(0,m.jsxs)("div",{className:"group relative",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:a.label}),(0,m.jsx)("span",{className:"text-xs font-medium text-slate-300",children:a.score})]}),(0,m.jsx)("div",{className:`h-1.5 rounded-full ${(b=a.score)>70?"bg-green-500/20":b>=40?"bg-yellow-500/20":"bg-red-500/20"}`,children:(0,m.jsx)("div",{className:`h-full rounded-full ${(c=a.score)>70?"bg-green-500":c>=40?"bg-yellow-500":"bg-red-500"}`,style:{width:`${a.score}%`,transition:"width 0.6s ease"}})}),(0,m.jsx)("div",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 rounded bg-slate-800 text-[10px] text-slate-300 whitespace-nowrap opacity-0 group-hover:opacity-100 pointer-events-none transition-opacity z-10 border border-white/10",children:a.detail})]})}function iu(){let[a,b]=(0,n.useState)(null),[c,d]=(0,n.useState)(!0),[e,f]=(0,n.useState)(!1),g=(0,n.useCallback)(async()=>{try{let a=await fX(`${iq}/api/health-score`);if(!a.ok)throw Error("Failed to fetch health score");let c=await a.json();b(c),f(!1)}catch{f(!0)}finally{d(!1)}},[]);if((0,n.useEffect)(()=>{g();let a=setInterval(g,6e4);return()=>clearInterval(a)},[g]),c)return(0,m.jsxs)("div",{className:"bg-[#12121a] border border-white/10 rounded-xl p-5 w-[300px]",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Memory Health"}),(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading..."})]});if(e||!a)return(0,m.jsxs)("div",{className:"bg-[#12121a] border border-white/10 rounded-xl p-5 w-[300px]",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Memory Health"}),(0,m.jsx)("div",{className:"text-xs text-red-400",children:"Failed to load health score"})]});let{overall:h,components:i}=a;return(0,m.jsxs)("div",{className:"bg-[#12121a] border border-white/10 rounded-xl p-5 w-[300px]",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-4",children:"Memory Health"}),(0,m.jsx)("div",{className:"flex justify-center mb-5",children:(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)(is,{score:h}),(0,m.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,m.jsx)("span",{className:"text-3xl font-bold",style:{color:ir(h)},children:h})})]})}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsx)(it,{component:i.freshness}),(0,m.jsx)(it,{component:i.coverage}),(0,m.jsx)(it,{component:i.consistency}),(0,m.jsx)(it,{component:i.consolidation})]})]})}let iv=hE("cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]),iw=hE("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),ix=hE("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),iy=hE("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),iz=hE("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),iA=hE("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);function iB(){let{projectFilter:a}=gf(),{data:b}=hV("30d",a||void 0),{data:c}=h_(),[d,e]=(0,n.useState)("upsell"),[f,g]=(0,n.useState)(""),[h,i]=(0,n.useState)(null),[j,k]=(0,n.useState)(""),[l,o]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let a=localStorage.getItem("shieldcortex_cloud_dismissed");if(a){let b=new Date(a);(Date.now()-b.getTime())/864e5<30&&e("hidden")}},[]),(0,n.useEffect)(()=>{fX("http://localhost:3001/api/cloud/config").then(a=>a.json()).then(a=>{a.enabled&&a.apiKeySet&&e("hidden")}).catch(()=>{})},[]),(0,n.useEffect)(()=>{if("polling"!==d||!h)return;let a=setInterval(async()=>{try{let b=await fetch(`https://api.shieldcortex.ai/v1/auth/setup-status/${h}`),c=await b.json();"complete"===c.status&&c.api_key?(await fX("http://localhost:3001/api/cloud/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cloudApiKey:c.api_key,cloudEnabled:!0,cloudBaseUrl:"https://api.shieldcortex.ai"})}),e("success"),clearInterval(a),setTimeout(()=>e("hidden"),5e3)):"expired"===c.status&&(k("Setup expired. Please try again."),e("upsell"),clearInterval(a))}catch{}},3e3);return()=>clearInterval(a)},[d,h]);let p=async a=>{if(a.preventDefault(),f&&!l){k(""),o(!0);try{let a=await fetch("https://api.shieldcortex.ai/v1/auth/cloud-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:f})}),b=await a.json();b.setup_id?(i(b.setup_id),e("polling")):k(b.error||"Failed to start setup")}catch{k("Could not reach ShieldCortex Cloud. Check your connection.")}finally{o(!1)}}},q=()=>{localStorage.setItem("shieldcortex_cloud_dismissed",new Date().toISOString()),e("hidden")};if("hidden"===d)return null;let r=b?.blockedCount??0,s=b?.totalOperations??0,t=c?.tier??"free";return"team"!==t&&"enterprise"!==t&&"upsell"===d?(0,m.jsxs)("div",{className:"mt-4 bg-gradient-to-br from-slate-900 via-slate-900 to-violet-950/20 border border-violet-800/30 rounded-xl p-5 relative",children:[(0,m.jsx)("button",{onClick:q,className:"absolute top-3 right-3 text-slate-500 hover:text-slate-300 transition-colors",title:"Dismiss for 30 days",children:(0,m.jsx)(iz,{size:16})}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(iv,{size:20,className:"text-violet-400"}),(0,m.jsx)("h3",{className:"text-sm font-semibold text-white",children:"Cloud Sync"}),(0,m.jsx)("span",{className:"text-[10px] font-semibold px-1.5 py-0.5 rounded text-violet-400 bg-violet-400/10",children:"Team"})]}),(0,m.jsx)("p",{className:"text-sm text-slate-300",children:r>0?`You've blocked ${r} threats locally. Upgrade to Team to sync across devices and give your team visibility.`:"Sync defence data across devices, share audit logs with your team, and get centralised alerts."}),(0,m.jsxs)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-4 py-2 bg-violet-600 hover:bg-violet-500 rounded-lg text-sm font-medium text-white transition-colors",children:["Upgrade to Team",(0,m.jsx)(iA,{size:12})]})]})]}):(0,m.jsxs)("div",{className:"mt-4 bg-gradient-to-br from-slate-900 via-slate-900 to-cyan-950/30 border border-cyan-800/30 rounded-xl p-5 relative",children:["upsell"===d&&(0,m.jsx)("button",{onClick:q,className:"absolute top-3 right-3 text-slate-500 hover:text-slate-300 transition-colors",title:"Dismiss for 30 days",children:(0,m.jsx)(iz,{size:16})}),"upsell"===d&&(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(iv,{size:20,className:"text-cyan-400"}),(0,m.jsx)("h3",{className:"text-sm font-semibold text-white",children:"ShieldCortex Cloud"})]}),(0,m.jsx)("p",{className:"text-sm text-slate-300",children:r>0?`You've blocked ${r} threats across ${s} scans — your team can't see them yet.`:"Sync your defence data to the cloud for team visibility, audit logs, and alerts."}),(0,m.jsxs)("form",{onSubmit:p,className:"flex gap-2",children:[(0,m.jsx)("input",{type:"email",placeholder:"Enter your email",value:f,onChange:a=>g(a.target.value),required:!0,className:"flex-1 bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-sm text-white placeholder:text-slate-500 focus:outline-none focus:ring-1 focus:ring-cyan-500 focus:border-cyan-500"}),(0,m.jsxs)("button",{type:"submit",disabled:l,className:"flex items-center gap-1.5 px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:opacity-50 rounded-lg text-sm font-medium text-white transition-colors",children:[l?(0,m.jsx)(ix,{size:14,className:"animate-spin"}):(0,m.jsx)(iw,{size:14}),"Get Started"]})]}),j&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:j}),(0,m.jsx)("p",{className:"text-[10px] text-slate-500",children:"Your Team licence includes cloud sync. Enter your email to connect."})]}),"polling"===d&&(0,m.jsxs)("div",{className:"flex items-center gap-3 py-2",children:[(0,m.jsx)(ix,{size:20,className:"text-cyan-400 animate-spin"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-white font-medium",children:"Check your email"}),(0,m.jsx)("p",{className:"text-xs text-slate-400",children:"Click the link in your inbox to complete setup. We'll auto-configure everything."})]})]}),"success"===d&&(0,m.jsxs)("div",{className:"flex items-center gap-3 py-2",children:[(0,m.jsx)(iy,{size:20,className:"text-emerald-400"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-white font-medium",children:"Connected to ShieldCortex Cloud"}),(0,m.jsx)("p",{className:"text-xs text-slate-400",children:"Your defence data will now sync automatically."})]})]})]})}function iC(){let a,b,{data:c,isLoading:d}=fO({queryKey:["cloud-sync-status"],queryFn:async()=>{let a=await fX("http://localhost:3001/api/cloud/sync-status");if(!a.ok)throw Error("Failed to fetch sync status");return a.json()},refetchInterval:1e4});if(d||!c)return null;let{enabled:e,apiKeySet:f,lastSyncAt:g,queue:h}=c;e&&f?h.failed>0?(a="bg-red-500",b=`${h.failed} event${1===h.failed?"":"s"} failed`):h.pending>0?(a="bg-amber-500",b=`${h.pending} event${1===h.pending?"":"s"} pending`):g?(a="bg-emerald-500",b="Cloud sync: OK"):(a="bg-emerald-500",b="Cloud sync: connected"):(a="bg-slate-500",b="Cloud sync: disabled");let i=g?function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(g):null;return(0,m.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 mb-4 bg-slate-800 rounded-lg text-xs w-fit",children:[(0,m.jsx)("span",{className:`inline-block w-2 h-2 rounded-full ${a}`}),(0,m.jsx)("span",{className:"text-slate-300",children:b}),i&&(0,m.jsxs)("span",{className:"text-slate-500",children:["last sync ",i]})]})}let iD=hE("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),iE=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function iF(a){let b=await fX(`${iE}/api/skills/scan-all`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dir:a})});if(!b.ok)throw Error("Failed to scan skills");return b.json()}async function iG(a){let b=await fX(`${iE}/api/skills/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to scan skill content");return b.json()}function iH(){return fS({mutationFn:a=>iF(a)})}async function iI(a){let b=await fX(`${iE}/api/skills/trust`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})});if(!b.ok)throw Error("Failed to trust skill");return b.json()}async function iJ(a){let b=await fX(`${iE}/api/skills/trust`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})});if(!b.ok)throw Error("Failed to untrust skill");return b.json()}async function iK(a){let b=await fX(`${iE}/api/skills/file`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to delete skill file");return b.json()}function iL(){let a=iH(),{setViewMode:b}=gf(),[c,d]=(0,n.useState)(null),e=c?c.files.filter(a=>a.safe).length:0,f=c?.threatCount??0;return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300",children:"Skill Scanner"}),(0,m.jsxs)("button",{onClick:()=>{a.mutate(void 0,{onSuccess:a=>d(a)})},disabled:a.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 bg-cyan-600 hover:bg-cyan-500 disabled:opacity-50 rounded-lg text-xs font-medium text-white transition-colors",children:[a.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(h9,{size:12}),"Scan All"]})]}),c?(0,m.jsxs)("div",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-4 mb-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,m.jsx)(iy,{size:14,className:"text-green-400"}),(0,m.jsx)("span",{className:"text-sm font-medium text-green-400",children:e}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:"safe"})]}),f>0&&(0,m.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,m.jsx)(iD,{size:14,className:"text-red-400"}),(0,m.jsx)("span",{className:"text-sm font-medium text-red-400",children:f}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:"threats"})]}),(0,m.jsx)("span",{className:"text-[10px] text-slate-600",children:new Date(c.scannedAt).toLocaleTimeString()})]}),(0,m.jsxs)("button",{onClick:()=>b("skills"),className:"flex items-center gap-1 text-xs text-cyan-400 hover:text-cyan-300 transition-colors",children:["View all results",(0,m.jsx)(iw,{size:12})]})]}):a.isPending?(0,m.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,m.jsx)(ix,{size:16,className:"text-cyan-400 animate-spin"})}):(0,m.jsxs)("div",{className:"text-center py-3",children:[(0,m.jsx)(h9,{size:20,className:"text-slate-600 mx-auto mb-1.5"}),(0,m.jsx)("p",{className:"text-[10px] text-slate-500",children:"Scan agent instruction files for threats"})]})]})}let iM=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function iN(){let a=await fX(`${iM}/api/iron-dome/status`);if(!a.ok)throw Error("Failed to fetch Iron Dome status");return a.json()}async function iO(a){let b=await fX(`${iM}/api/iron-dome/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:a})});if(!b.ok)throw Error("Failed to activate Iron Dome");return b.json()}async function iP(){let a=await fX(`${iM}/api/iron-dome/deactivate`,{method:"POST"});if(!a.ok)throw Error("Failed to deactivate Iron Dome");return a.json()}async function iQ(a){let b=await fX(`${iM}/api/iron-dome/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!b.ok)throw Error("Failed to scan text");return b.json()}async function iR(){let a=await fX(`${iM}/api/iron-dome/emergency-stop`,{method:"POST"});if(!a.ok)throw Error("Failed to trigger emergency stop");return a.json()}async function iS(a){let b=await fX(`${iM}/api/iron-dome/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:a||"Resumed via dashboard"})});if(!b.ok)throw Error("Failed to resume operations");return b.json()}async function iT(){let a=await fX(`${iM}/api/control/status`);if(!a.ok)throw Error("Failed to fetch control status");return a.json()}async function iU(a){let b=new URLSearchParams;a&&b.set("limit",a.toString());let c=await fX(`${iM}/api/iron-dome/audit?${b}`);if(!c.ok)throw Error("Failed to fetch Iron Dome audit");return c.json()}function iV(){return fO({queryKey:["iron-dome-status"],queryFn:iN,refetchInterval:3e4,retry:2})}function iW(a){return fO({queryKey:["iron-dome-audit",a],queryFn:()=>iU(a),refetchInterval:3e4,retry:2})}function iX(){let a=(0,fK.useQueryClient)();return fS({mutationFn:iR,onSuccess:()=>{a.invalidateQueries({queryKey:["iron-dome-status"]}),a.invalidateQueries({queryKey:["iron-dome-audit"]}),a.invalidateQueries({queryKey:["control-status"]})}})}function iY(){let{data:a,isLoading:b}=iV(),{data:c}=iW(100),d=a?.enabled??!1,e=a?.profile??"custom",f=c?.logs??[],g=f.filter(a=>a.reason?.includes("[iron-dome:")&&"BLOCK"===a.firewall_result).length,h=f.length;return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300",children:"Iron Dome"}),(0,m.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${d?"bg-red-500/20 text-red-400 border border-red-500/30":"bg-slate-700/50 text-slate-500"}`,children:d?"ACTIVE":"INACTIVE"})]}),b?(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading..."}):d?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"text-xs text-slate-500 mb-3",children:["Profile: ",(0,m.jsx)("span",{className:"text-red-400 font-medium",children:e})]}),(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-3 mb-3",children:[(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-2 text-center",children:[(0,m.jsx)("div",{className:"text-lg font-bold text-red-400",children:g}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Blocks"})]}),(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-2 text-center",children:[(0,m.jsx)("div",{className:"text-lg font-bold text-slate-300",children:h}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase",children:"Events"})]})]})]}):(0,m.jsxs)("div",{className:"text-center py-3",children:[(0,m.jsx)(h2,{size:20,className:"text-slate-600 mx-auto mb-1.5"}),(0,m.jsx)("p",{className:"text-[10px] text-slate-500",children:"Behaviour protection layer — not active"})]}),(0,m.jsx)("button",{onClick:()=>gf.getState().setViewMode("dome"),className:"w-full text-center text-xs text-red-400 hover:text-red-300 transition-colors py-1",children:"View Iron Dome →"})]})}let iZ="http://localhost:3001";function i$(){return fO({queryKey:["cloud-config"],queryFn:async()=>{let a=await fX(`${iZ}/api/cloud/config`);if(!a.ok)throw Error("Failed to fetch cloud config");return a.json()},refetchInterval:3e4})}function i_(a,b,c){return Math.max(b,Math.min(c,a))}function i0({initialAutoMemory:a,initialDedupe:b,initialNoveltyThreshold:c,initialMaxRecent:d}){let e,f=(e=(0,fK.useQueryClient)(),fS({mutationFn:async a=>{let b=await fX(`${iZ}/api/cloud/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to update cloud config");return b.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["cloud-config"]})}})),[g,h]=(0,n.useState)(a),[i,j]=(0,n.useState)(b),[k,l]=(0,n.useState)(String(c)),[o,p]=(0,n.useState)(String(d)),q=f.isPending;return(0,m.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Auto-memory extraction"}),(0,m.jsx)("button",{type:"button",onClick:()=>h(!g),className:`h-6 w-11 rounded-full transition-colors ${g?"bg-cyan-500":"bg-slate-700"}`,children:(0,m.jsx)("span",{className:`block h-5 w-5 rounded-full bg-white transition-transform ${g?"translate-x-5":"translate-x-0.5"}`})})]}),(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Novelty dedupe"}),(0,m.jsx)("button",{type:"button",onClick:()=>j(!i),disabled:!g,className:`h-6 w-11 rounded-full transition-colors ${i&&g?"bg-emerald-500":"bg-slate-700"} ${!g?"opacity-50 cursor-not-allowed":""}`,children:(0,m.jsx)("span",{className:`block h-5 w-5 rounded-full bg-white transition-transform ${i&&g?"translate-x-5":"translate-x-0.5"}`})})]}),(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("label",{className:"block text-[11px] text-slate-500 mb-1",children:"Novelty threshold"}),(0,m.jsx)(hv,{type:"number",step:"0.01",min:.6,max:.99,value:k,disabled:!g||!i,onChange:a=>l(a.target.value),className:"h-8 text-xs bg-slate-800 border-slate-700"})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("label",{className:"block text-[11px] text-slate-500 mb-1",children:"Max recent records"}),(0,m.jsx)(hv,{type:"number",step:"1",min:50,max:1e3,value:o,disabled:!g||!i,onChange:a=>p(a.target.value),className:"h-8 text-xs bg-slate-800 border-slate-700"})]})]}),(0,m.jsxs)("div",{className:"flex items-center justify-between pt-1",children:[(0,m.jsx)("span",{className:"text-[11px] text-slate-500",children:"Default: dedupe on, threshold 0.88, max 300"}),(0,m.jsxs)(hu,{size:"sm",onClick:()=>{let a=i_(Number.parseFloat(k),.6,.99),b=Math.floor(i_(Number.parseInt(o,10),50,1e3));f.mutate({openclawAutoMemory:g,openclawAutoMemoryDedupe:i,openclawAutoMemoryNoveltyThreshold:Number.isFinite(a)?a:.88,openclawAutoMemoryMaxRecent:Number.isFinite(b)?b:300})},disabled:q,className:"h-8 text-xs bg-cyan-600 hover:bg-cyan-500 text-white",children:[q?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):null,"Save"]})]})]})}function i1(){let{data:a,isLoading:b}=i$(),c=a?.openclawMemory,d=c?`${c.autoMemory}-${c.dedupe}-${c.noveltyThreshold}-${c.maxRecent}`:"default";return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300",children:"OpenClaw Memory"}),(0,m.jsx)("p",{className:"text-xs text-slate-500 mt-1",children:"Configure how ShieldCortex complements native OpenClaw memory."}),(0,m.jsx)("p",{className:"text-[11px] text-slate-600 mt-1",children:"Changes apply on next OpenClaw gateway restart."}),b?(0,m.jsx)("div",{className:"text-xs text-slate-500 mt-4 animate-pulse",children:"Loading settings..."}):(0,m.jsx)(i0,{initialAutoMemory:c?.autoMemory??!1,initialDedupe:c?.dedupe??!0,initialNoveltyThreshold:c?.noveltyThreshold??.88,initialMaxRecent:c?.maxRecent??300},d)]})}let i2=hE("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]),i3=hE("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]),i4=hE("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),i5=hE("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),i6="https://api.shieldcortex.ai",i7=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",i8={free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"},i9={free:"text-slate-400",pro:"text-cyan-400",team:"text-violet-400",enterprise:"text-amber-400"},ja={free:"bg-slate-400/10",pro:"bg-cyan-400/10",team:"bg-violet-400/10",enterprise:"bg-amber-400/10"},jb={pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},jc=["Custom injection patterns","Custom Iron Dome policies","Custom firewall rules","Audit export (JSON/CSV)","Skill scanner deep mode"];function jd(){let a,b,{data:c,isLoading:d}=h_(),e=(a=(0,fK.useQueryClient)(),fS({mutationFn:a=>hZ(a),onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})),f=(b=(0,fK.useQueryClient)(),fS({mutationFn:h$,onSuccess:()=>{b.invalidateQueries({queryKey:["license-status"]})}})),g=function(){let a=(0,fK.useQueryClient)(),[b,c]=(0,n.useState)("idle"),[d,e]=(0,n.useState)(null),[f,g]=(0,n.useState)(null),h=(0,n.useCallback)(async(a,b)=>{c("submitting"),e(null);try{let d=await fetch(`${i6}/v1/billing/quick-checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:a,plan:b})}),e=await d.json();if(!d.ok||!e.checkout_url||!e.setup_id)throw Error(e.error||"Failed to create checkout session");g(e.setup_id),window.open(e.checkout_url,"_blank"),c("polling")}catch(a){e(a instanceof Error?a.message:"Checkout failed"),c("error")}},[]);return(0,n.useEffect)(()=>{if("polling"!==b||!f)return;let d=setInterval(async()=>{try{let b=await fetch(`${i6}/v1/billing/setup-status/${f}`),g=await b.json();if("complete"===g.status&&g.license_key){clearInterval(d),c("activating");try{if(!(await fX(`${i7}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:g.license_key})})).ok)throw Error("Local activation failed");a.invalidateQueries({queryKey:["license-status"]}),c("complete")}catch{e('Payment succeeded but local activation failed. Use "I Have a Key" to activate manually.'),c("error")}}else"expired"===g.status?(clearInterval(d),e("Setup expired. Please try again."),c("error")):"complete"!==g.status||g.license_key||(clearInterval(d),e("Licence key was already retrieved. Check your dashboard or try again."),c("error"))}catch{}},3e3),g=setTimeout(()=>{clearInterval(d),e('Checkout timed out. If you completed payment, use "I Have a Key" or contact support.'),c("error")},9e5);return()=>{clearInterval(d),clearTimeout(g)}},[b,f,a]),{state:b,error:d,startCheckout:h,reset:(0,n.useCallback)(()=>{c("idle"),e(null),g(null)},[])}}(),[h,i]=(0,n.useState)(""),[j,k]=(0,n.useState)("default"),[l,o]=(0,n.useState)(""),[p,q]=(0,n.useState)("pro"),[r,s]=(0,n.useState)(!1);if(d||!c)return(0,m.jsx)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4 mb-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:16,className:"text-slate-500"}),(0,m.jsx)("span",{className:"text-xs text-slate-500 animate-pulse",children:"Loading licence..."})]})});let t=c.tier;if("free"===t)return(0,m.jsxs)("div",{className:"relative overflow-hidden rounded-xl mb-4 bg-gradient-to-br from-slate-900 via-slate-900 to-cyan-950/30 border border-cyan-700/30",children:[(0,m.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-cyan-500/5 rounded-full blur-2xl -translate-y-1/2 translate-x-1/2"}),(0,m.jsxs)("div",{className:"relative p-5",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between mb-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,m.jsx)("div",{className:"flex items-center justify-center w-8 h-8 rounded-lg bg-cyan-500/10 border border-cyan-500/20",children:(0,m.jsx)(i3,{size:16,className:"text-cyan-400"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h3",{className:"text-sm font-semibold text-white",children:"Unlock Pro Features"}),(0,m.jsx)("p",{className:"text-[11px] text-slate-400 mt-0.5",children:"Your defence pipeline is fully active. Upgrade for advanced controls."})]})]}),(0,m.jsx)("span",{className:"text-[10px] font-medium px-2 py-0.5 rounded-full bg-slate-800 text-slate-400 border border-slate-700",children:"Free"})]}),(0,m.jsx)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1.5 mb-4",children:jc.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,m.jsx)(i4,{size:10,className:"text-cyan-500/60 shrink-0"}),(0,m.jsx)("span",{className:"text-slate-400",children:a})]},a))}),"complete"===g.state?(0,m.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-emerald-500/10 border border-emerald-500/20 rounded-lg",children:[(0,m.jsx)(iy,{size:16,className:"text-emerald-400 shrink-0"}),(0,m.jsx)("span",{className:"text-xs text-emerald-300",children:"Pro activated! Your dashboard is refreshing..."})]}):"polling"===g.state||"activating"===g.state?(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-cyan-500/10 border border-cyan-500/20 rounded-lg",children:[(0,m.jsx)(ix,{size:14,className:"text-cyan-400 animate-spin shrink-0"}),(0,m.jsx)("span",{className:"text-xs text-cyan-300",children:"activating"===g.state?"Activating licence...":"Complete payment in the Stripe tab..."})]}),(0,m.jsx)("button",{onClick:()=>{g.reset(),k("default")},className:"text-[10px] text-slate-500 hover:text-slate-300 transition-colors",children:"Cancel"})]}):"checkout"===j?(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("label",{className:"text-[10px] text-slate-500 mb-1 block",children:"Email"}),(0,m.jsx)("input",{type:"email",placeholder:"you@company.com",value:l,onChange:a=>o(a.target.value),className:"w-full bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-xs text-white placeholder:text-slate-600 focus:outline-none focus:ring-1 focus:ring-cyan-500",autoFocus:!0})]}),(0,m.jsx)("div",{className:"flex gap-2",children:["pro","team"].map(a=>(0,m.jsxs)("button",{type:"button",onClick:()=>q(a),className:`flex-1 px-3 py-2 text-xs font-medium rounded-lg border transition-colors ${p===a?"bg-cyan-600/20 border-cyan-500/50 text-cyan-300":"bg-slate-800 border-slate-700 text-slate-400 hover:border-slate-600"}`,children:[jb[a].label," — ",jb[a].price]},a))}),(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("button",{onClick:()=>g.startCheckout(l,p),disabled:"submitting"===g.state||!l.trim(),className:"flex-1 inline-flex items-center justify-center gap-1.5 px-4 py-2 text-xs font-medium bg-cyan-600 hover:bg-cyan-500 disabled:opacity-50 text-white rounded-lg transition-colors",children:"submitting"===g.state?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):"Continue to Checkout"}),(0,m.jsx)("button",{onClick:()=>{k("default"),g.reset()},className:"px-3 py-2 text-xs text-slate-500 hover:text-slate-300 transition-colors",children:"Back"})]}),g.error&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:g.error})]}):"activate"===j?(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.trim()&&e.mutate(h.trim(),{onSuccess:()=>{i(""),k("default")}})},className:"flex gap-2",children:[(0,m.jsx)("input",{type:"text",placeholder:"sc_pro_...",value:h,onChange:a=>i(a.target.value),className:"flex-1 bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-xs text-white placeholder:text-slate-600 focus:outline-none focus:ring-1 focus:ring-cyan-500",autoFocus:!0}),(0,m.jsx)("button",{type:"submit",disabled:e.isPending||!h.trim(),className:"px-4 py-2 text-xs font-medium bg-cyan-600 hover:bg-cyan-500 disabled:opacity-50 text-white rounded-lg transition-colors",children:e.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):"Activate"}),(0,m.jsx)("button",{type:"button",onClick:()=>{k("default"),i(""),e.reset()},className:"px-3 py-2 text-xs text-slate-500 hover:text-slate-300 transition-colors",children:"Back"})]}),e.isError&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:e.error instanceof Error?e.error.message:"Activation failed"})]}):(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("button",{onClick:()=>k("checkout"),className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium bg-cyan-600 hover:bg-cyan-500 text-white rounded-lg transition-colors",children:"Upgrade to Pro"}),(0,m.jsxs)("button",{onClick:()=>k("activate"),className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium bg-slate-800 hover:bg-slate-700 text-slate-300 rounded-lg transition-colors border border-slate-700",children:[(0,m.jsx)(i2,{size:12}),"I Have a Key"]})]}),g.error&&(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("p",{className:"text-xs text-red-400",children:g.error}),(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("button",{onClick:()=>{g.reset(),k("checkout")},className:"text-[10px] text-cyan-400 hover:text-cyan-300 transition-colors",children:"Try Again"}),(0,m.jsx)("span",{className:"text-[10px] text-slate-600",children:"·"}),(0,m.jsx)("button",{onClick:()=>{g.reset(),k("activate")},className:"text-[10px] text-slate-400 hover:text-slate-300 transition-colors",children:"I Have a Key"})]})]})]})]})]});let u=c.features.filter(a=>a.enabled).length,v=c.features.length;return(0,m.jsxs)("div",{className:"bg-slate-900 border border-cyan-800/40 rounded-xl p-4 mb-4",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:16,className:i9[t]}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300",children:"Licence"}),(0,m.jsx)("span",{className:`text-[10px] font-semibold px-1.5 py-0.5 rounded ${i9[t]} ${ja[t]}`,children:i8[t]})]}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-500",children:[u,"/",v," features"]})]}),(0,m.jsxs)("div",{className:"space-y-2 mb-3",children:[c.email&&(0,m.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,m.jsx)("span",{className:"text-slate-500",children:"Email"}),(0,m.jsx)("span",{className:"text-slate-300",children:c.email})]}),null!==c.daysUntilExpiry&&(0,m.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,m.jsx)("span",{className:"text-slate-500",children:"Expires"}),(0,m.jsx)("span",{className:c.daysUntilExpiry<=7?"text-yellow-400":"text-slate-300",children:c.daysUntilExpiry<=0?"Expired (grace period)":`${c.daysUntilExpiry} days`})]})]}),(0,m.jsxs)("button",{onClick:()=>s(!r),className:"flex items-center gap-1 text-[10px] text-slate-500 hover:text-slate-300 transition-colors mb-2",children:[r?(0,m.jsx)(i5,{size:12}):(0,m.jsx)(ii,{size:12}),r?"Hide features":"Show features"]}),r&&(0,m.jsx)("div",{className:"space-y-1.5 mb-3",children:c.features.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[a.enabled?(0,m.jsx)(iy,{size:12,className:"text-emerald-400 shrink-0"}):(0,m.jsx)(iD,{size:12,className:"text-slate-600 shrink-0"}),(0,m.jsx)("span",{className:a.enabled?"text-slate-300":"text-slate-600",children:a.description.split(".")[0]}),!a.enabled&&(0,m.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded ${i9[a.requiredTier]} ${ja[a.requiredTier]}`,children:i8[a.requiredTier]})]},a.feature))}),(0,m.jsx)("button",{onClick:()=>{confirm(`Remove your ${i8[t]} licence key? You will lose access to paid features.`)&&f.mutate()},disabled:f.isPending,className:"text-[10px] text-slate-600 hover:text-red-400 transition-colors",children:"Deactivate"})]})}let je=hE("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),jf=hE("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),jg=hE("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),jh=hE("toggle-right",[["circle",{cx:"15",cy:"12",r:"3",key:"1afu0r"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]);function ji({feature:a,children:b,label:c}){let{data:d}=h_();if(!d)return(0,m.jsx)(m.Fragment,{children:b});let e=d.features.find(b=>b.feature===a);if(!e||e.enabled)return(0,m.jsx)(m.Fragment,{children:b});let f=e.requiredTier;return(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)("div",{className:"pointer-events-none select-none opacity-30 blur-[2px]",children:b}),(0,m.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-slate-900/60 rounded-xl backdrop-blur-sm",children:[(0,m.jsx)(i4,{size:24,className:"text-slate-500 mb-2"}),(0,m.jsxs)("p",{className:"text-sm font-medium text-slate-300 mb-1",children:[i8[f]," Feature"]}),c&&(0,m.jsx)("p",{className:"text-xs text-slate-500 mb-3 text-center max-w-xs",children:c}),(0,m.jsxs)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 px-4 py-2 text-xs bg-cyan-600 hover:bg-cyan-500 text-white rounded-lg transition-colors",children:["Upgrade to ",i8[f],(0,m.jsx)(iA,{size:10})]})]})]})}let jj=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",jk=[{id:1,name:"Block API key patterns",priority:1,condition_type:"regex",condition_value:"sk-[a-zA-Z0-9]{32,}",action:"block",enabled:!0},{id:2,name:"Quarantine code injection",priority:2,condition_type:"regex",condition_value:"eval\\(|Function\\(",action:"quarantine",enabled:!0},{id:3,name:"Allow internal docs",priority:10,condition_type:"source",condition_value:"agent:docs-helper",action:"allow",enabled:!1}],jl=[{id:1,name:"Internal tool abuse",category:"tool_misuse",severity:"high",regex:"execute_tool\\(.*?delete|drop|truncate",description:"Detects attempts to use internal tools for destructive operations.",enabled:!0},{id:2,name:"PII exfiltration",category:"data_leak",severity:"critical",regex:"(SSN|social.security|\\d{3}-\\d{2}-\\d{4})",description:"Catches social security number patterns in agent memory writes.",enabled:!0},{id:3,name:"Prompt override attempt",category:"injection",severity:"medium",regex:"ignore.*(previous|above|prior).*instructions",description:"Detects common prompt injection override phrases.",enabled:!0}],jm=[{id:1,name:"Strict Healthcare",description:"Blocks all PII patterns, requires approval for external actions, whitelists only HIPAA-compliant channels.",is_active:!0},{id:2,name:"Dev Sandbox",description:"Permissive mode for development. Allows all channels, logs but does not block. Ideal for testing.",is_active:!1}],jn=[{files:["SKILL.md","handler.js"],finding:"Skill declares read-only but handler writes to filesystem",severity:"high"},{files:["SKILL.md","config.json"],finding:"Config enables network access not mentioned in skill manifest",severity:"medium"},{files:["handler.js","utils.js"],finding:"Dynamic eval() used in utility imported by main handler",severity:"critical"}],jo={"File access":45,"Network calls":30,"Process exec":15,"Memory write":10},jp=["Restrict filesystem writes to a sandboxed directory","Add explicit network permission declarations to SKILL.md"];function jq(){let a,b,c,d,{data:e,isLoading:f,isLocked:g}={...a=fO({queryKey:["firewall-rules"],queryFn:()=>fZ(`${jj}/api/firewall-rules`).then(a=>{if(!a.ok)throw Error("Failed to fetch firewall rules");return a.json()}),retry:(a,b)=>!(b instanceof fY)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof fY},h=(b=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${jj}/api/firewall-rules`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["firewall-rules"]})}})),i=(c=(0,fK.useQueryClient)(),fS({mutationFn:({id:a,...b})=>fZ(`${jj}/api/firewall-rules/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["firewall-rules"]})}})),j=(d=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${jj}/api/firewall-rules/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{d.invalidateQueries({queryKey:["firewall-rules"]})}})),[k,l]=(0,n.useState)(!1),[o,p]=(0,n.useState)({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"}),q=e?.rules??[];return g?(0,m.jsx)(jr,{}):(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:16,className:"text-cyan-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Custom Firewall Rules"}),(0,m.jsxs)("span",{className:"text-xs text-slate-500",children:[q.length,"/25"]})]}),(0,m.jsxs)("button",{onClick:()=>l(!k),className:"flex items-center gap-1 px-2 py-1 text-xs bg-cyan-600/20 text-cyan-400 rounded hover:bg-cyan-600/30 transition-colors",children:[(0,m.jsx)(je,{size:12})," Add Rule"]})]}),k&&(0,m.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.mutate(o,{onSuccess:()=>{l(!1),p({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"})}})},className:"p-3 bg-slate-800/50 rounded-lg space-y-2",children:[(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,m.jsx)("input",{value:o.name,onChange:a=>p(b=>({...b,name:a.target.value})),placeholder:"Rule name",required:!0,className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600"}),(0,m.jsx)("input",{value:o.priority,onChange:a=>p(b=>({...b,priority:Number(a.target.value)})),type:"number",placeholder:"Priority",className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200"})]}),(0,m.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,m.jsxs)("select",{value:o.condition_type,onChange:a=>p(b=>({...b,condition_type:a.target.value})),className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200",children:[(0,m.jsx)("option",{value:"regex",children:"Regex"}),(0,m.jsx)("option",{value:"source",children:"Source"}),(0,m.jsx)("option",{value:"keyword",children:"Keyword"})]}),(0,m.jsx)("input",{value:o.condition_value,onChange:a=>p(b=>({...b,condition_value:a.target.value})),placeholder:"Condition value",required:!0,className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600"}),(0,m.jsxs)("select",{value:o.action,onChange:a=>p(b=>({...b,action:a.target.value})),className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200",children:[(0,m.jsx)("option",{value:"block",children:"Block"}),(0,m.jsx)("option",{value:"quarantine",children:"Quarantine"}),(0,m.jsx)("option",{value:"allow",children:"Allow"})]})]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("button",{type:"submit",disabled:h.isPending,className:"px-3 py-1 text-xs bg-cyan-600 text-white rounded hover:bg-cyan-500 disabled:opacity-50",children:h.isPending?"Creating...":"Create"}),(0,m.jsx)("button",{type:"button",onClick:()=>l(!1),className:"px-3 py-1 text-xs text-slate-400 hover:text-slate-200",children:"Cancel"})]}),h.error&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:h.error.message})]}),f?(0,m.jsx)("div",{className:"text-xs text-slate-500 py-4 text-center",children:"Loading rules..."}):0===q.length?(0,m.jsx)("div",{className:"text-xs text-slate-500 py-4 text-center",children:'No custom rules yet. Click "Add Rule" to create one.'}):(0,m.jsx)("div",{className:"space-y-1",children:q.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-slate-800/30 rounded text-xs",children:[(0,m.jsx)("span",{className:"text-slate-400 w-6 text-right",children:a.priority}),(0,m.jsx)("span",{className:"text-slate-200 flex-1",children:a.name}),(0,m.jsx)("code",{className:"text-slate-500 text-[10px] max-w-[120px] truncate",children:a.condition_value}),(0,m.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===a.action?"bg-red-500/20 text-red-400":"quarantine"===a.action?"bg-yellow-500/20 text-yellow-400":"bg-green-500/20 text-green-400"}`,children:a.action}),(0,m.jsx)("button",{onClick:()=>i.mutate({id:a.id,enabled:+!a.enabled}),className:"text-slate-500 hover:text-slate-300",title:a.enabled?"Disable":"Enable",children:a.enabled?(0,m.jsx)(jh,{size:14,className:"text-cyan-400"}):(0,m.jsx)(jg,{size:14})}),(0,m.jsx)("button",{onClick:()=>j.mutate(a.id),className:"text-slate-500 hover:text-red-400",children:(0,m.jsx)(jf,{size:12})})]},a.id))})]})}function jr(){return(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:16,className:"text-cyan-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Custom Firewall Rules"}),(0,m.jsx)("span",{className:"text-xs text-slate-500",children:"0/25"})]}),(0,m.jsx)("div",{className:"space-y-1",children:jk.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-slate-800/30 rounded text-xs",children:[(0,m.jsx)("span",{className:"text-slate-400 w-6 text-right",children:a.priority}),(0,m.jsx)("span",{className:"text-slate-200 flex-1",children:a.name}),(0,m.jsx)("code",{className:"text-slate-500 text-[10px] max-w-[120px] truncate",children:a.condition_value}),(0,m.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===a.action?"bg-red-500/20 text-red-400":"quarantine"===a.action?"bg-yellow-500/20 text-yellow-400":"bg-green-500/20 text-green-400"}`,children:a.action})]},a.id))})]})}function js(){return(0,m.jsx)("div",{className:"bg-slate-900/50 border border-slate-800 rounded-xl p-4",children:(0,m.jsx)(ji,{feature:"custom_firewall_rules",label:"Add custom rules to control what gets blocked, allowed, or quarantined.",children:(0,m.jsx)(jq,{})})})}function jt(){let[a,b]=(0,n.useState)("24h");return(0,m.jsxs)("div",{className:"h-full overflow-y-auto p-6",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,m.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Defence Overview"}),(0,m.jsx)("div",{className:"flex gap-1 bg-slate-800 rounded-lg p-0.5",children:["24h","7d","30d"].map(c=>(0,m.jsx)("button",{onClick:()=>b(c),className:`px-3 py-1 text-xs rounded-md transition-colors ${a===c?"bg-cyan-600 text-white":"text-slate-400 hover:text-white"}`,children:c},c))})]}),(0,m.jsx)(jd,{}),(0,m.jsx)(iC,{}),(0,m.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,m.jsx)(il,{timeRange:a}),(0,m.jsx)(im,{}),(0,m.jsx)(io,{timeRange:a}),(0,m.jsx)(ip,{timeRange:a})]}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(iu,{})}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(iL,{})}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(iY,{})}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(i1,{})}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(js,{})}),(0,m.jsx)(iB,{})]})}let ju=hE("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),jv=hE("file-braces",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]),jw=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function jx(){let a=fS({mutationFn:async({format:a,startTime:b,endTime:c})=>{let d=new URLSearchParams({format:a});b&&d.set("startTime",b),c&&d.set("endTime",c);let e=await fZ(`${jw}/api/audit/export?${d}`);if(!e.ok)throw Error((await e.json().catch(()=>({}))).error||"Export failed");let f=await e.blob(),g=URL.createObjectURL(f),h=document.createElement("a");return h.href=g,h.download=`shieldcortex-audit-${Date.now()}.${"csv"===a?"csv":"json"}`,document.body.appendChild(h),h.click(),document.body.removeChild(h),URL.revokeObjectURL(g),{success:!0}}}),[b,c]=(0,n.useState)("json");return(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(ju,{size:16,className:"text-cyan-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Export Audit Logs"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsxs)("div",{className:"flex rounded-lg overflow-hidden border border-slate-700",children:[(0,m.jsxs)("button",{onClick:()=>c("json"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"json"===b?"bg-cyan-600/20 text-cyan-400":"bg-slate-800 text-slate-400 hover:text-slate-200"}`,children:[(0,m.jsx)(jv,{size:12})," JSON"]}),(0,m.jsxs)("button",{onClick:()=>c("csv"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"csv"===b?"bg-cyan-600/20 text-cyan-400":"bg-slate-800 text-slate-400 hover:text-slate-200"}`,children:[(0,m.jsx)(h3,{size:12})," CSV"]})]}),(0,m.jsxs)("button",{onClick:()=>a.mutate({format:b}),disabled:a.isPending,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs bg-cyan-600 text-white rounded-lg hover:bg-cyan-500 disabled:opacity-50 transition-colors",children:[(0,m.jsx)(ju,{size:12}),a.isPending?"Exporting...":"Export"]})]}),a.error&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:a.error.message}),a.isSuccess&&(0,m.jsx)("p",{className:"text-xs text-green-400",children:"Export downloaded successfully."})]})}function jy(){return(0,m.jsx)("div",{className:"bg-slate-900/50 border border-slate-800 rounded-xl p-4",children:(0,m.jsx)(ji,{feature:"audit_export",label:"Export your full audit trail as JSON or CSV for compliance reporting.",children:(0,m.jsx)(jx,{})})})}let jz={ALLOW:"bg-green-500/10 text-green-400",BLOCK:"bg-red-500/10 text-red-400",QUARANTINE:"bg-yellow-500/10 text-yellow-400"};function jA(){let{projectFilter:a,selectedAuditEntry:b,setSelectedAuditEntry:c}=gf(),[d,e]=(0,n.useState)("24h"),[f,g]=(0,n.useState)(void 0),[h,i]=(0,n.useState)(void 0),j={"24h":24,"7d":168,"30d":720},[k,l]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{l(Date.now())},[d]);let{data:o,isLoading:p}=hU({startTime:(0,n.useMemo)(()=>new Date(6e4*Math.floor((k-36e5*j[d])/6e4)).toISOString(),[k,d]),source:f,firewallResult:h,project:a||void 0,limit:200}),q=o?.logs??[],r=(0,n.useCallback)(a=>{if(!b||0===q.length)return;let d=q.findIndex(a=>a.id===b.id);"Escape"===a.key?c(null):"ArrowDown"===a.key&&d<q.length-1?(a.preventDefault(),c(q[d+1])):"ArrowUp"===a.key&&d>0&&(a.preventDefault(),c(q[d-1]))},[b,q,c]);return(0,n.useEffect)(()=>(window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)),[r]),(0,m.jsxs)("div",{className:"h-full flex flex-col overflow-hidden",children:[(0,m.jsxs)("div",{className:"p-4 border-b border-slate-800 shrink-0",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,m.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Audit Log"}),(0,m.jsx)("div",{className:"flex gap-1 bg-slate-800 rounded-lg p-0.5",children:["24h","7d","30d"].map(a=>(0,m.jsx)("button",{onClick:()=>e(a),className:`px-3 py-1 text-xs rounded-md transition-colors ${d===a?"bg-cyan-600 text-white":"text-slate-400 hover:text-white"}`,children:a},a))})]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)("select",{value:h||"",onChange:a=>i(a.target.value||void 0),className:"bg-slate-800 border border-slate-700 text-white text-xs rounded-lg px-2 py-1",children:[(0,m.jsx)("option",{value:"",children:"All Results"}),(0,m.jsx)("option",{value:"ALLOW",children:"Allowed"}),(0,m.jsx)("option",{value:"BLOCK",children:"Blocked"}),(0,m.jsx)("option",{value:"QUARANTINE",children:"Quarantined"})]}),(0,m.jsxs)("select",{value:f||"",onChange:a=>g(a.target.value||void 0),className:"bg-slate-800 border border-slate-700 text-white text-xs rounded-lg px-2 py-1",children:[(0,m.jsx)("option",{value:"",children:"All Sources"}),(0,m.jsx)("option",{value:"hook",children:"Hook"}),(0,m.jsx)("option",{value:"api",children:"API"}),(0,m.jsx)("option",{value:"agent",children:"Agent"}),(0,m.jsx)("option",{value:"user",children:"User"}),(0,m.jsx)("option",{value:"cli",children:"CLI"})]}),(0,m.jsxs)("span",{className:"text-xs text-slate-500 self-center ml-auto",children:[q.length," entries"]})]})]}),(0,m.jsx)("div",{className:"flex-1 overflow-y-auto",children:p?(0,m.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading audit logs..."})}):0===q.length?(0,m.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,m.jsx)("div",{className:"text-xs text-slate-500",children:"No audit entries for this period"})}):(0,m.jsxs)("table",{className:"w-full text-xs",children:[(0,m.jsx)("thead",{className:"sticky top-0 bg-slate-900",children:(0,m.jsxs)("tr",{className:"border-b border-slate-800",children:[(0,m.jsx)("th",{className:"text-left text-slate-500 font-medium px-4 py-2",children:"Time"}),(0,m.jsx)("th",{className:"text-left text-slate-500 font-medium px-4 py-2",children:"Source"}),(0,m.jsx)("th",{className:"text-left text-slate-500 font-medium px-4 py-2",children:"Result"}),(0,m.jsx)("th",{className:"text-left text-slate-500 font-medium px-4 py-2",children:"Trust"}),(0,m.jsx)("th",{className:"text-left text-slate-500 font-medium px-4 py-2",children:"Anomaly"}),(0,m.jsx)("th",{className:"text-left text-slate-500 font-medium px-4 py-2",children:"Reason"})]})}),(0,m.jsx)("tbody",{children:q.map(a=>(0,m.jsxs)("tr",{onClick:()=>{c(b?.id===a.id?null:a)},className:`border-b border-slate-800/50 cursor-pointer transition-colors ${b?.id===a.id?"bg-cyan-500/10 hover:bg-cyan-500/15":"hover:bg-slate-800/30"}`,children:[(0,m.jsx)("td",{className:"px-4 py-2 text-slate-400 whitespace-nowrap",children:new Date(a.timestamp).toLocaleString()}),(0,m.jsx)("td",{className:"px-4 py-2 text-slate-300",children:a.source_type}),(0,m.jsx)("td",{className:"px-4 py-2",children:(0,m.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${jz[a.firewall_result]||"text-slate-400"}`,children:a.firewall_result})}),(0,m.jsx)("td",{className:"px-4 py-2 text-slate-400",children:a.trust_score.toFixed(1)}),(0,m.jsx)("td",{className:"px-4 py-2",children:(0,m.jsx)("span",{className:a.anomaly_score>.5?"text-red-400":a.anomaly_score>.2?"text-yellow-400":"text-slate-400",children:a.anomaly_score.toFixed(2)})}),(0,m.jsx)("td",{className:"px-4 py-2 text-slate-400 max-w-xs truncate",children:a.reason||"—"})]},a.id))})]})}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(jy,{})})]})}let jB={ALLOW:{color:"#22C55E",bg:"rgba(34, 197, 94, 0.15)",label:"Allowed"},BLOCK:{color:"#EF4444",bg:"rgba(239, 68, 68, 0.15)",label:"Blocked"},QUARANTINE:{color:"#EAB308",bg:"rgba(234, 179, 8, 0.15)",label:"Quarantined"}},jC={PUBLIC:{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"},INTERNAL:{color:"#60a5fa",bg:"rgba(96, 165, 250, 0.15)"},CONFIDENTIAL:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},RESTRICTED:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"}},jD={instruction_injection:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"},privilege_escalation:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"},credential_leak:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"},encoding_obfuscation:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},fragmented_payload:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},external_url:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},pipeline_error:{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"}};function jE(a){return a>=.7?"#22C55E":a>=.4?"#EAB308":"#EF4444"}function jF(a){return a>.5?"#EF4444":a>.2?"#EAB308":"#94a3b8"}function jG({entry:a,onClose:b,onViewMemory:c}){let[d,e]=(0,n.useState)(!1),f=jB[a.firewall_result]||jB.ALLOW,g=jC[a.sensitivity_level]||jC.PUBLIC,h=function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}(a.threat_indicators),i=function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}(a.blocked_patterns),j=(0,n.useCallback)(()=>{let b=JSON.stringify(a,null,2);navigator.clipboard.writeText(b).then(()=>{e(!0),setTimeout(()=>e(!1),1500)})},[a]);return(0,m.jsxs)(hh,{className:"bg-slate-900 border-slate-700 h-full overflow-auto",children:[(0,m.jsxs)(hi,{className:"border-b border-slate-700 pb-3",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("span",{className:"px-2.5 py-1 rounded-md text-xs font-bold",style:{backgroundColor:f.bg,color:f.color},children:f.label}),(0,m.jsx)("span",{className:"px-2 py-0.5 rounded text-[10px] font-medium",style:{backgroundColor:g.bg,color:g.color},children:a.sensitivity_level})]}),(0,m.jsx)(hu,{variant:"ghost",size:"sm",onClick:b,className:"text-slate-400 hover:text-white -mt-1",children:"✕"})]}),(0,m.jsx)("div",{className:"text-xs text-slate-400 mt-2",children:new Date(a.timestamp).toLocaleString()}),a.project&&(0,m.jsxs)("div",{className:"text-[10px] text-slate-500 mt-1",children:["Project: ",a.project]})]}),(0,m.jsxs)(hk,{className:"p-4 space-y-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-2",children:"Source"}),(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,m.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-medium bg-cyan-500/10 text-cyan-400",children:a.source_type})}),a.source_identifier&&(0,m.jsx)("div",{className:"text-xs text-slate-300 mt-1 font-mono break-all",children:a.source_identifier})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-2",children:"Scores"}),(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Trust"}),(0,m.jsxs)("div",{className:"text-lg font-bold",style:{color:jE(a.trust_score)},children:[(100*a.trust_score).toFixed(0),"%"]}),(0,m.jsx)("div",{className:"mt-1 h-1.5 bg-slate-700 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*a.trust_score}%`,backgroundColor:jE(a.trust_score)}})})]}),(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Anomaly"}),(0,m.jsxs)("div",{className:"text-lg font-bold",style:{color:jF(a.anomaly_score)},children:[(100*a.anomaly_score).toFixed(0),"%"]}),(0,m.jsx)("div",{className:"mt-1 h-1.5 bg-slate-700 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*a.anomaly_score}%`,backgroundColor:jF(a.anomaly_score)}})})]}),null!==a.fragmentation_score&&(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Fragmentation"}),(0,m.jsxs)("div",{className:"text-lg font-bold text-slate-300",children:[(100*a.fragmentation_score).toFixed(0),"%"]}),(0,m.jsx)("div",{className:"mt-1 h-1.5 bg-slate-700 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full rounded-full bg-purple-500 transition-all",style:{width:`${100*a.fragmentation_score}%`}})})]}),null!==a.pipeline_duration_ms&&(0,m.jsxs)("div",{className:"bg-slate-800 rounded-lg p-3",children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Pipeline"}),(0,m.jsxs)("div",{className:"text-lg font-bold text-slate-300",children:[a.pipeline_duration_ms,"ms"]})]})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-2",children:"Threat Indicators"}),h.length>0?(0,m.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.map((a,b)=>{let c=jD[a]||{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"};return(0,m.jsx)("span",{className:"px-2 py-1 rounded text-[11px] font-medium",style:{backgroundColor:c.bg,color:c.color},children:a.replace(/_/g," ")},b)})}):(0,m.jsx)("div",{className:"text-xs text-slate-600",children:"No threats detected"})]}),i.length>0&&(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-2",children:"Blocked Patterns"}),(0,m.jsx)("div",{className:"bg-slate-800 rounded-lg p-3 max-h-32 overflow-y-auto",children:i.map((a,b)=>(0,m.jsx)("div",{className:"text-[11px] text-slate-300 font-mono break-all mb-1 last:mb-0",children:a},b))})]}),a.reason&&(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs font-medium text-slate-400 mb-2",children:"Reason"}),(0,m.jsx)("div",{className:"bg-slate-800 rounded-lg p-3",children:(0,m.jsx)("p",{className:"text-xs text-slate-300 whitespace-pre-wrap leading-relaxed",children:a.reason})})]}),(0,m.jsxs)("div",{className:"flex gap-2 pt-2",children:[a.memory_id&&c&&(0,m.jsx)(hu,{variant:"default",size:"sm",onClick:()=>c(a.memory_id),className:"flex-1 bg-blue-600 hover:bg-blue-700",children:"View Memory"}),(0,m.jsx)(hu,{variant:"outline",size:"sm",onClick:j,className:`flex-1 border-slate-700 transition-all ${d?"bg-green-600/20 text-green-400 border-green-600/50":"text-slate-300 hover:text-white"}`,children:d?"Copied":"Copy JSON"})]})]})]})}function jH({action:a,item:b,onConfirm:c,onCancel:d}){let[e,f]=(0,n.useState)(""),g="yes"===e.trim().toLowerCase();return(0,m.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-700 rounded-xl p-6 max-w-md w-full mx-4",children:[(0,m.jsxs)("h3",{className:"text-sm font-semibold text-white mb-2",children:["approve"===a?"Approve":"Reject"," quarantined item?"]}),(0,m.jsx)("p",{className:"text-xs text-slate-400 mb-1",children:(0,m.jsx)("strong",{children:b.title||"Untitled"})}),(0,m.jsx)("p",{className:"text-xs text-slate-500 mb-4",children:"approve"===a?"This will store the memory in the database.":"This will permanently discard the memory."}),(0,m.jsxs)("div",{className:"mb-4",children:[(0,m.jsxs)("label",{className:"text-xs text-slate-400 block mb-1",children:["Type ",(0,m.jsx)("strong",{className:"text-white",children:"YES"})," to confirm:"]}),(0,m.jsx)("input",{type:"text",value:e,onChange:a=>f(a.target.value),className:"w-full bg-slate-800 border border-slate-700 text-white text-sm rounded-lg px-3 py-2 focus:ring-cyan-500 focus:border-cyan-500",autoFocus:!0,onKeyDown:a=>{"Enter"===a.key&&g&&c(),"Escape"===a.key&&d()}})]}),(0,m.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,m.jsx)("button",{onClick:d,className:"px-3 py-1.5 text-xs text-slate-400 hover:text-white transition-colors",children:"Cancel"}),(0,m.jsx)("button",{onClick:c,disabled:!g,className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${g?"approve"===a?"bg-green-600 text-white hover:bg-green-500":"bg-red-600 text-white hover:bg-red-500":"bg-slate-700 text-slate-500 cursor-not-allowed"}`,children:"approve"===a?"Approve":"Reject"})]})]})})}function jI(){let a,b,{projectFilter:c}=gf(),[d,e]=(0,n.useState)("pending"),{data:f,isLoading:g}=hW(d,100,c||void 0),h=(a=(0,fK.useQueryClient)(),fS({mutationFn:hS,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]})}})),i=(b=(0,fK.useQueryClient)(),fS({mutationFn:({id:a,notes:b})=>hT(a,b),onSuccess:()=>{b.invalidateQueries({queryKey:["quarantine"]}),b.invalidateQueries({queryKey:["audit-stats"]})}})),[j,k]=(0,n.useState)(null),l=f?.items??[];return(0,m.jsxs)("div",{className:"h-full flex flex-col overflow-hidden",children:[j&&(0,m.jsx)(jH,{action:j.action,item:j.item,onConfirm:()=>{j&&("approve"===j.action?h.mutate(j.item.id):i.mutate({id:j.item.id}),k(null))},onCancel:()=>k(null)}),(0,m.jsx)("div",{className:"p-4 border-b border-slate-800 shrink-0",children:(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Quarantine Review"}),(0,m.jsx)("div",{className:"flex gap-1 bg-slate-800 rounded-lg p-0.5",children:["pending","approved","rejected"].map(a=>(0,m.jsx)("button",{onClick:()=>e(a),className:`px-3 py-1 text-xs rounded-md transition-colors capitalize ${d===a?"bg-cyan-600 text-white":"text-slate-400 hover:text-white"}`,children:a},a))})]})}),(0,m.jsx)("div",{className:"flex-1 overflow-y-auto p-4",children:g?(0,m.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,m.jsx)("div",{className:"text-xs text-slate-500 animate-pulse",children:"Loading quarantine items..."})}):0===l.length?(0,m.jsxs)("div",{className:"flex flex-col items-center justify-center h-32 text-slate-500",children:[(0,m.jsx)(h4,{size:24,className:"mb-2 text-slate-600"}),(0,m.jsxs)("span",{className:"text-xs",children:["No ",d," items"]})]}):(0,m.jsx)("div",{className:"space-y-3",children:l.map(a=>{let b=(()=>{try{return JSON.parse(a.threat_indicators)}catch{return[]}})();return(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-sm font-medium text-white",children:a.title||"Untitled"}),(0,m.jsxs)("div",{className:"text-[10px] text-slate-500 mt-0.5",children:[a.source_type," · ",new Date(a.created_at).toLocaleString(),a.anomaly_score>0&&(0,m.jsxs)("span",{className:`ml-2 ${a.anomaly_score>.5?"text-red-400":"text-yellow-400"}`,children:["Anomaly: ",a.anomaly_score.toFixed(2)]})]})]}),(0,m.jsx)("span",{className:"text-[10px] text-red-400 bg-red-400/10 px-2 py-0.5 rounded",children:a.reason?.slice(0,50)||"Threat detected"})]}),(0,m.jsx)("div",{className:"bg-slate-800/50 rounded-lg p-3 mb-3 text-xs text-slate-300 max-h-24 overflow-y-auto whitespace-pre-wrap",children:a.content?.slice(0,500)||"No content"}),b.length>0&&(0,m.jsx)("div",{className:"flex gap-1 mb-3 flex-wrap",children:b.map((a,b)=>(0,m.jsx)("span",{className:"text-[9px] text-yellow-400 bg-yellow-400/10 px-1.5 py-0.5 rounded",children:a},b))}),"pending"===a.status&&(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)("button",{onClick:()=>k({action:"approve",item:a}),className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-green-600/10 text-green-400 rounded-lg hover:bg-green-600/20 transition-colors",children:[(0,m.jsx)(hG,{size:12})," Approve"]}),(0,m.jsxs)("button",{onClick:()=>k({action:"reject",item:a}),className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-red-600/10 text-red-400 rounded-lg hover:bg-red-600/20 transition-colors",children:[(0,m.jsx)(iz,{size:12})," Reject"]})]}),a.reviewed_at&&(0,m.jsxs)("div",{className:"text-[10px] text-slate-500",children:["approved"===a.status?"Approved":"Rejected"," by ",a.reviewed_by," at ",new Date(a.reviewed_at).toLocaleString()]})]},a.id)})})})]})}let jJ=hE("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),jK=hE("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]),jL=hE("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),jM=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function jN(a,b){let c=new URLSearchParams({timeRange:a});b&&c.set("project",b);let d=await fX(`${jM}/api/v1/agents?${c}`);if(!d.ok)throw Error("Failed to fetch agent registry");return d.json()}async function jO(a,b,c){let d=encodeURIComponent(a),e=new URLSearchParams({timeRange:b});c&&e.set("project",c);let f=await fX(`${jM}/api/v1/agents/${d}/timeline?${e}`);if(!f.ok)throw Error("Failed to fetch agent timeline");return f.json()}async function jP(a,b){let c=encodeURIComponent(a),d=new URLSearchParams;b?.limit&&d.set("limit",b.limit.toString()),b?.offset&&d.set("offset",b.offset.toString()),b?.firewallResult&&d.set("firewallResult",b.firewallResult),b?.project&&d.set("project",b.project);let e=await fX(`${jM}/api/v1/agents/${c}/operations?${d}`);if(!e.ok)throw Error("Failed to fetch agent operations");return e.json()}function jQ(a,b){return fO({queryKey:["agent-operations",a,b],queryFn:()=>jP(a,b),enabled:!!a,refetchInterval:3e4,retry:2})}function jR(a){return a>=.7?"full":a>=.5?"limited":"restricted"}let jS={full:"text-green-400",limited:"text-yellow-400",restricted:"text-red-400"},jT={full:"bg-green-500/10",limited:"bg-yellow-500/10",restricted:"bg-red-500/10"},jU={full:"Full Access",limited:"Limited",restricted:"Restricted"},jV=460,jW=90;function jX({identifier:a,timeRange:b}){let{data:c,isLoading:d}=function(a,b="24h",c){return fO({queryKey:["agent-timeline",a,b,void 0],queryFn:()=>jO(a,b,void 0),enabled:!!a,refetchInterval:3e4,retry:2})}(a,b),e=c?.points??[],{linePath:f,dots:g,xLabels:h}=(0,n.useMemo)(()=>{if(0===e.length)return{linePath:"",dots:[],xLabels:[]};let a=e.map(a=>new Date(a.timestamp).getTime()),c=Math.min(...a),d=Math.max(...a)-c||1,f=a=>30+(a-c)/d*jV,g=a=>10+(1-a)*jW,h=e.map((b,c)=>{let d=f(a[c]),e=g(b.trust_score);return`${0===c?"M":"L"} ${d} ${e}`}),i=e.map((b,c)=>({x:f(a[c]),y:g(b.trust_score),result:b.firewall_result,score:b.trust_score,time:b.timestamp})).filter(a=>"ALLOW"!==a.result),j=Math.min(5,e.length),k=[];for(let a=0;a<j;a++){let e=c+d*a/(j-1||1),g=new Date(e);k.push({x:f(e),label:"24h"===b?g.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):g.toLocaleDateString([],{month:"short",day:"numeric"})})}return{linePath:h.join(" "),dots:i,xLabels:k}},[e,b]);return d?(0,m.jsx)("div",{className:"h-[120px] flex items-center justify-center text-slate-500 text-xs",children:"Loading timeline..."}):0===e.length?(0,m.jsx)("div",{className:"h-[120px] flex items-center justify-center text-slate-500 text-xs",children:"No data for this time range."}):(0,m.jsxs)("svg",{viewBox:"0 0 500 120",className:"w-full",preserveAspectRatio:"xMidYMid meet",children:[(0,m.jsx)("line",{x1:30,y1:10+(1-.7)*jW,x2:30+jV,y2:10+(1-.7)*jW,stroke:"#22c55e",strokeWidth:"0.5",strokeDasharray:"4 2",opacity:"0.3"}),(0,m.jsx)("line",{x1:30,y1:10+.5*jW,x2:30+jV,y2:10+.5*jW,stroke:"#eab308",strokeWidth:"0.5",strokeDasharray:"4 2",opacity:"0.3"}),(0,m.jsx)("text",{x:26,y:10+(1-.7)*jW+3,fill:"#64748b",fontSize:"8",textAnchor:"end",children:"0.7"}),(0,m.jsx)("text",{x:26,y:10+.5*jW+3,fill:"#64748b",fontSize:"8",textAnchor:"end",children:"0.5"}),(0,m.jsx)("text",{x:26,y:13,fill:"#64748b",fontSize:"8",textAnchor:"end",children:"1.0"}),(0,m.jsx)("text",{x:26,y:10+jW+3,fill:"#64748b",fontSize:"8",textAnchor:"end",children:"0.0"}),(0,m.jsx)("path",{d:f,fill:"none",stroke:"#06b6d4",strokeWidth:"1.5"}),g.map((a,b)=>(0,m.jsx)("circle",{cx:a.x,cy:a.y,r:"3",fill:"BLOCK"===a.result?"#ef4444":"#eab308",stroke:"#0f172a",strokeWidth:"1",children:(0,m.jsx)("title",{children:`${a.result} — trust: ${a.score.toFixed(2)} — ${new Date(a.time).toLocaleString()}`})},b)),h.map((a,b)=>(0,m.jsx)("text",{x:a.x,y:116,fill:"#64748b",fontSize:"8",textAnchor:"middle",children:a.label},b))]})}let jY={BLOCK:"text-red-400 bg-red-500/10",QUARANTINE:"text-yellow-400 bg-yellow-500/10"};function jZ({identifier:a}){let{data:b,isLoading:c}=jQ(a,{firewallResult:"BLOCK",limit:20}),{data:d}=jQ(a,{firewallResult:"QUARANTINE",limit:20}),e=[...b?.entries??[],...d?.entries??[]].sort((a,b)=>new Date(b.timestamp).getTime()-new Date(a.timestamp).getTime());return c?(0,m.jsx)("div",{className:"text-slate-500 text-xs",children:"Loading..."}):0===e.length?(0,m.jsx)("div",{className:"text-slate-500 text-xs",children:"No flagged operations."}):(0,m.jsx)("div",{className:"space-y-1 max-h-60 overflow-y-auto",children:e.map(a=>{let b=[];try{b=JSON.parse(a.threat_indicators)}catch{}return(0,m.jsxs)("div",{className:"px-2 py-1.5 rounded bg-slate-800/50 border border-slate-800",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{className:`px-1 py-0.5 rounded text-[10px] font-medium ${jY[a.firewall_result]??"text-slate-400"}`,children:a.firewall_result}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:new Date(a.timestamp).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]}),a.reason&&(0,m.jsx)("p",{className:"text-[11px] text-slate-400 mt-0.5 truncate",children:a.reason}),b.length>0&&(0,m.jsx)("div",{className:"flex gap-1 mt-1 flex-wrap",children:b.map((a,b)=>(0,m.jsx)("span",{className:"px-1 py-0.5 rounded text-[9px] bg-red-500/10 text-red-400",children:a},b))}),(0,m.jsxs)("div",{className:"flex gap-3 mt-1 text-[10px] text-slate-500",children:[(0,m.jsxs)("span",{children:["Trust: ",a.trust_score.toFixed(2)]}),(0,m.jsxs)("span",{children:["Anomaly: ",a.anomaly_score.toFixed(2)]}),null!==a.pipeline_duration_ms&&(0,m.jsxs)("span",{children:[a.pipeline_duration_ms,"ms"]})]})]},a.id)})})}let j$=hE("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),j_=process.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events";function j0({agentFilter:a}){let[b,c]=(0,n.useState)([]),d=(0,n.useRef)(0),e=(0,n.useRef)(null),f=(0,n.useCallback)(b=>{try{let e=JSON.parse(b.data);if("defence_event"!==e.type)return;let f=e.data;if(a&&f.source_identifier!==a)return;c(a=>[{...f,id:++d.current},...a].slice(0,50))}catch{}},[a]);return((0,n.useEffect)(()=>{try{let a=new WebSocket(j_);return e.current=a,a.onmessage=f,a.onerror=()=>{},()=>{a.close(),e.current=null}}catch{return}},[f]),0===b.length)?(0,m.jsxs)("div",{className:"flex items-center gap-2 text-slate-500 text-xs py-2",children:[(0,m.jsx)(j$,{size:12}),(0,m.jsx)("span",{children:"Listening for defence events..."})]}):(0,m.jsx)("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:(0,m.jsx)(E,{initial:!1,children:b.map(a=>(0,m.jsxs)(fw.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0},className:`px-2 py-1.5 rounded border text-xs ${"BLOCK"===a.firewall_result?"bg-red-500/5 border-red-500/20":"bg-yellow-500/5 border-yellow-500/20"}`,children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{className:`font-medium ${"BLOCK"===a.firewall_result?"text-red-400":"text-yellow-400"}`,children:a.firewall_result}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:new Date(a.timestamp).toLocaleTimeString()})]}),(0,m.jsxs)("p",{className:"text-slate-400 text-[11px] truncate mt-0.5",children:[a.source_identifier," — ",a.reason??"No reason"]})]},a.id))})})}function j1({identifier:a,compact:b}){let c=a.split(">").map(a=>a.trim());return 1===c.length?(0,m.jsx)("span",{className:"font-mono text-sm text-white",children:a}):b?(0,m.jsxs)("span",{className:"font-mono text-sm",children:[(0,m.jsxs)("span",{className:"text-slate-500",children:[c.slice(0,-1).join(" › ")," › "]}),(0,m.jsx)("span",{className:"text-white",children:c[c.length-1]})]}):(0,m.jsx)("div",{className:"font-mono text-sm",children:c.map((a,b)=>(0,m.jsxs)("span",{children:[b>0&&(0,m.jsx)(jL,{size:12,className:"inline text-slate-600 mx-0.5"}),(0,m.jsx)("span",{className:b===c.length-1?"text-white":"text-slate-500",children:a})]},b))})}function j2({score:a}){let b=jR(a);return(0,m.jsxs)("span",{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium ${jS[b]} ${jT[b]}`,children:[a.toFixed(2)," · ",jU[b]]})}function j3({type:a}){let b={agent:"text-purple-400 bg-purple-500/10",cli:"text-cyan-400 bg-cyan-500/10",user:"text-green-400 bg-green-500/10",hook:"text-blue-400 bg-blue-500/10",api:"text-orange-400 bg-orange-500/10",web:"text-red-400 bg-red-500/10",file:"text-slate-400 bg-slate-500/10",email:"text-yellow-400 bg-yellow-500/10"}[a]??"text-slate-400 bg-slate-500/10";return(0,m.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${b}`,children:a})}function j4(){let{projectFilter:a}=gf(),[b,c]=(0,n.useState)("24h"),[d,e]=(0,n.useState)(null),[f,g]=(0,n.useState)("operation_count"),[h,i]=(0,n.useState)(!1),[j,k]=(0,n.useState)(null),[l,o]=(0,n.useState)(null),[p,q]=(0,n.useState)(!1),[r]=(0,n.useState)(()=>Date.now()),{data:s,isLoading:t}=function(a="24h",b){return fO({queryKey:["agents",a,b],queryFn:()=>jN(a,b),refetchInterval:3e4,retry:2})}(b,a??void 0),u=s?.agents??[],v=(0,n.useMemo)(()=>{let a=u;return j&&(a=a.filter(a=>a.source_type===j)),l&&(a=a.filter(a=>jR(a.avg_trust_score)===l)),p&&(a=a.filter(a=>a.flagged_count>0)),a},[u,j,l,p]),w=(0,n.useMemo)(()=>{let a=[...v];return a.sort((a,b)=>{let c=a[f],d=b[f];return"string"==typeof c&&"string"==typeof d?h?c.localeCompare(d):d.localeCompare(c):h?c-d:d-c}),a},[v,f,h]),x=(0,n.useMemo)(()=>[...new Set(u.map(a=>a.source_type))],[u]),y=a=>{f===a?i(!h):(g(a),i(!1))};return(0,m.jsxs)("div",{className:"flex h-full",children:[(0,m.jsxs)("div",{className:`${d?"w-1/2":"w-full"} border-r border-slate-800 flex flex-col`,children:[(0,m.jsxs)("div",{className:"p-3 border-b border-slate-800 flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h8,{size:16,className:"text-cyan-400"}),(0,m.jsx)("h2",{className:"text-sm font-medium text-white",children:"Agent Registry"}),(0,m.jsxs)("span",{className:"text-xs text-slate-500",children:[w.length," agents"]})]}),(0,m.jsx)("div",{className:"flex gap-1",children:["24h","7d","30d"].map(a=>(0,m.jsx)("button",{onClick:()=>c(a),className:`px-2 py-0.5 text-[10px] rounded transition-colors ${b===a?"bg-cyan-600 text-white":"text-slate-400 hover:text-white"}`,children:a},a))})]}),(0,m.jsxs)("div",{className:"px-3 py-2 border-b border-slate-800 flex items-center gap-2 flex-wrap",children:[(0,m.jsx)(jJ,{size:12,className:"text-slate-500"}),x.map(a=>(0,m.jsx)("button",{onClick:()=>k(j===a?null:a),className:`px-1.5 py-0.5 text-[10px] rounded transition-colors ${j===a?"bg-cyan-600/20 text-cyan-400":"text-slate-500 hover:text-slate-300"}`,children:a},a)),(0,m.jsx)("span",{className:"text-slate-700",children:"|"}),["full","limited","restricted"].map(a=>(0,m.jsx)("button",{onClick:()=>o(l===a?null:a),className:`px-1.5 py-0.5 text-[10px] rounded transition-colors ${l===a?"bg-cyan-600/20 text-cyan-400":"text-slate-500 hover:text-slate-300"}`,children:a},a)),(0,m.jsx)("span",{className:"text-slate-700",children:"|"}),(0,m.jsxs)("button",{onClick:()=>q(!p),className:`px-1.5 py-0.5 text-[10px] rounded transition-colors flex items-center gap-0.5 ${p?"bg-red-600/20 text-red-400":"text-slate-500 hover:text-slate-300"}`,children:[(0,m.jsx)(h4,{size:10})," flagged"]})]}),(0,m.jsxs)("div",{className:"px-3 py-1.5 border-b border-slate-800 grid grid-cols-[1fr_80px_60px_60px_70px] gap-2 text-[10px] text-slate-500",children:[(0,m.jsx)("span",{children:"Agent"}),(0,m.jsxs)("button",{onClick:()=>y("avg_trust_score"),className:"flex items-center gap-0.5 hover:text-slate-300",children:["Trust ",(0,m.jsx)(jK,{size:8})]}),(0,m.jsxs)("button",{onClick:()=>y("operation_count"),className:"flex items-center gap-0.5 hover:text-slate-300",children:["Ops ",(0,m.jsx)(jK,{size:8})]}),(0,m.jsxs)("button",{onClick:()=>y("flagged_count"),className:"flex items-center gap-0.5 hover:text-slate-300",children:["Flagged ",(0,m.jsx)(jK,{size:8})]}),(0,m.jsxs)("button",{onClick:()=>y("last_seen"),className:"flex items-center gap-0.5 hover:text-slate-300",children:["Last seen ",(0,m.jsx)(jK,{size:8})]})]}),(0,m.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[t&&(0,m.jsx)("div",{className:"p-4 text-center text-slate-500 text-xs",children:"Loading agents..."}),!t&&0===w.length&&(0,m.jsx)("div",{className:"p-4 text-center text-slate-500 text-xs",children:"No agents found in this time range."}),w.map(a=>{let b,c=d?.source_identifier===a.source_identifier&&d?.source_type===a.source_type;return(0,m.jsxs)("button",{onClick:()=>e(c?null:a),className:`w-full px-3 py-2 grid grid-cols-[1fr_80px_60px_60px_70px] gap-2 items-center text-left transition-colors border-b border-slate-800/50 ${c?"bg-cyan-600/10":"hover:bg-slate-800/50"}`,children:[(0,m.jsxs)("div",{className:"min-w-0",children:[(0,m.jsx)(j1,{identifier:a.source_identifier,compact:!0}),(0,m.jsx)("div",{className:"mt-0.5",children:(0,m.jsx)(j3,{type:a.source_type})})]}),(0,m.jsx)(j2,{score:a.avg_trust_score}),(0,m.jsx)("span",{className:"text-xs text-slate-300 tabular-nums",children:a.operation_count}),(0,m.jsx)("span",{className:`text-xs tabular-nums ${a.flagged_count>0?"text-red-400":"text-slate-500"}`,children:a.flagged_count}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:(b=r-new Date(a.last_seen).getTime())<6e4?"just now":b<36e5?`${Math.floor(b/6e4)}m ago`:b<864e5?`${Math.floor(b/36e5)}h ago`:`${Math.floor(b/864e5)}d ago`})]},`${a.source_type}:${a.source_identifier}`)})]})]}),(0,m.jsx)(E,{children:d&&(0,m.jsxs)(fw.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:20},className:"w-1/2 flex flex-col overflow-y-auto",children:[(0,m.jsxs)("div",{className:"p-3 border-b border-slate-800",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)(j1,{identifier:d.source_identifier}),(0,m.jsx)("button",{onClick:()=>e(null),className:"text-slate-500 hover:text-white text-xs",children:"Close"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-2 mt-1.5",children:[(0,m.jsx)(j3,{type:d.source_type}),(0,m.jsx)(j2,{score:d.avg_trust_score}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-500",children:[d.operation_count," ops · ",d.flagged_count," flagged"]})]})]}),(0,m.jsxs)("div",{className:"p-3 border-b border-slate-800",children:[(0,m.jsx)("h3",{className:"text-xs font-medium text-slate-400 mb-2",children:"Trust Score Timeline"}),(0,m.jsx)(jX,{identifier:d.source_identifier,timeRange:b})]}),(0,m.jsxs)("div",{className:"p-3 border-b border-slate-800",children:[(0,m.jsxs)("h3",{className:"text-xs font-medium text-slate-400 mb-2",children:["Flagged Operations",d.flagged_count>0&&(0,m.jsxs)("span",{className:"ml-1 text-red-400",children:["(",d.flagged_count,")"]})]}),(0,m.jsx)(jZ,{identifier:d.source_identifier})]}),(0,m.jsxs)("div",{className:"p-3",children:[(0,m.jsx)("h3",{className:"text-xs font-medium text-slate-400 mb-2",children:"Live Alerts"}),(0,m.jsx)(j0,{agentFilter:d.source_identifier})]})]})})]})}let j5=hE("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),j6={critical:"text-red-400 bg-red-400/10",high:"text-red-400 bg-red-400/10",medium:"text-yellow-400 bg-yellow-400/10",low:"text-slate-400 bg-slate-400/10",safe:"text-green-400 bg-green-400/10"};function j7({level:a}){let b=j6[a]??j6.low;return(0,m.jsx)("span",{className:`text-[10px] font-medium px-1.5 py-0.5 rounded ${b}`,children:a.toUpperCase()})}function j8({findings:a}){return 0===a.length?null:(0,m.jsx)("div",{className:"mt-2 space-y-1.5 pl-6",children:a.map((a,b)=>(0,m.jsxs)("div",{className:"flex items-start gap-2",children:[(0,m.jsx)(j7,{level:a.severity}),(0,m.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,m.jsx)("span",{className:"text-xs text-slate-300",children:a.description}),a.matchedText&&(0,m.jsxs)("div",{className:"mt-0.5 text-[10px] text-slate-500 font-mono truncate",children:['Match: "',a.matchedText,'"']})]})]},`${a.pattern}-${b}`))})}function j9(a){let b=a.split(/[/\\]/);return b[b.length-1]||a}function ka({file:a,cloudConnected:b,onTrust:c,onUntrust:d,onRemove:e,onCloudUpsell:f}){let[g,h]=(0,n.useState)(!a.safe),[i,j]=(0,n.useState)(!1);return(0,m.jsxs)("div",{className:"bg-slate-800/50 border border-slate-700 rounded-lg overflow-hidden",children:[(0,m.jsxs)("div",{className:"flex items-center",children:[(0,m.jsxs)("button",{onClick:()=>h(!g),className:"flex-1 px-3 py-2.5 flex items-center gap-3 hover:bg-slate-800/80 transition-colors min-w-0",children:[a.trusted?(0,m.jsx)(j5,{size:16,className:"text-cyan-400 shrink-0"}):a.safe?(0,m.jsx)(iy,{size:16,className:"text-green-400 shrink-0"}):(0,m.jsx)(iD,{size:16,className:"text-red-400 shrink-0"}),(0,m.jsxs)("div",{className:"flex-1 min-w-0 text-left",children:[(0,m.jsx)("span",{className:"text-xs font-medium text-white truncate block",children:a.skillName||j9(a.path)}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500 truncate block",children:a.path.replace(/^\/Users\/[^/]+/,"~")})]}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500 shrink-0",children:a.format}),a.trusted?(0,m.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded font-medium bg-cyan-400/10 text-cyan-400",children:"TRUSTED"}):(0,m.jsx)(j7,{level:a.riskLevel}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-600 shrink-0",children:[a.scanDurationMs,"ms"]}),a.findings.length>0?g?(0,m.jsx)(ii,{size:14,className:"text-slate-500 shrink-0"}):(0,m.jsx)(jL,{size:14,className:"text-slate-500 shrink-0"}):(0,m.jsx)("div",{className:"w-[14px] shrink-0"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-0.5 pr-2 shrink-0",children:[a.trusted?(0,m.jsx)("button",{onClick:()=>d(a.path),title:"Remove trust",className:"p-1.5 rounded hover:bg-slate-700 transition-colors text-cyan-400 hover:text-cyan-300",children:(0,m.jsx)(j5,{size:14})}):(0,m.jsx)("button",{onClick:()=>c(a.path),title:"Mark as trusted",className:"p-1.5 rounded hover:bg-slate-700 transition-colors text-slate-500 hover:text-cyan-400",children:(0,m.jsx)(h2,{size:14})}),!a.safe&&!a.trusted&&(0,m.jsx)("button",{onClick:()=>b?j(!0):f(),title:b?"Remove skill file":"Connect to Cloud to remove",className:`p-1.5 rounded transition-colors ${b?"hover:bg-red-500/10 text-slate-500 hover:text-red-400":"text-slate-600 hover:text-slate-400 cursor-not-allowed"}`,children:(0,m.jsx)(jf,{size:14})})]})]}),i&&(0,m.jsxs)("div",{className:"border-t border-slate-700/50 px-3 py-2.5 bg-red-950/30 flex items-center gap-3",children:[(0,m.jsxs)("span",{className:"text-xs text-red-300 flex-1",children:["Remove ",(0,m.jsx)("span",{className:"font-medium",children:a.skillName||j9(a.path)}),"? This will delete the file from disk."]}),(0,m.jsx)("button",{onClick:()=>{e(a.path),j(!1)},className:"px-3 py-1 text-xs font-medium bg-red-600 hover:bg-red-500 text-white rounded transition-colors",children:"Delete"}),(0,m.jsx)("button",{onClick:()=>j(!1),className:"px-3 py-1 text-xs text-slate-400 hover:text-white transition-colors",children:"Cancel"})]}),g&&a.findings.length>0&&(0,m.jsx)("div",{className:"border-t border-slate-700/50 px-3 py-2 bg-slate-900/50",children:(0,m.jsx)(j8,{findings:a.findings})})]})}function kb({files:a,cloudConnected:b,onTrust:c,onUntrust:d,onRemove:e,onCloudUpsell:f}){return 0===a.length?null:(0,m.jsx)("div",{className:"space-y-1.5",children:a.map(a=>(0,m.jsx)(ka,{file:a,cloudConnected:b,onTrust:c,onUntrust:d,onRemove:e,onCloudUpsell:f},a.path))})}let kc=hE("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),kd=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function ke(){let[a,b]=(0,n.useState)(null),[c,d]=(0,n.useState)(!1),[e,f]=(0,n.useState)(null),[g,h]=(0,n.useState)(!1),i=async()=>{d(!0),f(null);try{let a=await fZ(`${kd}/api/skills/deep-scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:[]})});if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||"Deep scan failed")}b(await a.json())}catch(a){a instanceof fY?h(!0):f(a.message)}finally{d(!1)}};return g?(0,m.jsx)(kf,{}):(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h9,{size:16,className:"text-cyan-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Deep Skill Scanner"})]}),(0,m.jsxs)("button",{onClick:i,disabled:c,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-cyan-600 text-white rounded-lg hover:bg-cyan-500 disabled:opacity-50 transition-colors",children:[(0,m.jsx)(kc,{size:12}),c?"Scanning...":"Run Deep Scan"]})]}),e&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:e}),a&&(0,m.jsxs)("div",{className:"space-y-3",children:[a.degraded&&(0,m.jsx)("p",{className:"text-[10px] text-yellow-400 bg-yellow-500/10 px-2 py-1 rounded",children:a.degradedReason}),a.correlations.length>0&&(0,m.jsxs)("div",{className:"space-y-1",children:[(0,m.jsx)("h4",{className:"text-xs text-slate-400 font-medium",children:"Cross-File Correlations"}),a.correlations.map((a,b)=>(0,m.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-slate-800/30 rounded text-xs",children:[(0,m.jsx)(h4,{size:12,className:"critical"===a.severity?"text-red-400 mt-0.5":"high"===a.severity?"text-orange-400 mt-0.5":"text-yellow-400 mt-0.5"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-slate-200",children:a.finding}),(0,m.jsxs)("p",{className:"text-slate-500 text-[10px]",children:["Files: ",a.files.join(", ")]})]})]},b))]}),Object.keys(a.intentBreakdown).length>0&&(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs text-slate-400 font-medium mb-1",children:"Intent Breakdown"}),(0,m.jsx)("div",{className:"grid grid-cols-2 gap-1",children:Object.entries(a.intentBreakdown).map(([a,b])=>(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,m.jsx)("div",{className:"flex-1",children:(0,m.jsx)("div",{className:"h-1.5 bg-slate-800 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full bg-cyan-500/60 rounded-full",style:{width:`${Math.min(100,5*b)}%`}})})}),(0,m.jsx)("span",{className:"text-slate-500 text-[10px] w-16 truncate",children:a}),(0,m.jsx)("span",{className:"text-slate-400 text-[10px] w-4 text-right",children:b})]},a))})]}),a.recommendations.length>0&&(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs text-slate-400 font-medium mb-1",children:"Recommendations"}),(0,m.jsx)("ul",{className:"space-y-1",children:a.recommendations.map((a,b)=>(0,m.jsx)("li",{className:"text-xs text-slate-300 pl-3 relative before:absolute before:left-0 before:top-1.5 before:w-1.5 before:h-1.5 before:rounded-full before:bg-cyan-500/40",children:a},b))})]}),0===a.correlations.length&&0===Object.keys(a.intentBreakdown).length&&(0,m.jsx)("p",{className:"text-xs text-slate-500 text-center py-2",children:"No files provided for scanning. Upload skill files to analyse."})]}),!a&&!c&&(0,m.jsx)("p",{className:"text-xs text-slate-500 text-center py-2",children:"Run a deep scan to analyse skill files for cross-file threats and intent patterns."})]})}function kf(){return(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h9,{size:16,className:"text-cyan-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Deep Skill Scanner"})]}),(0,m.jsxs)("div",{className:"space-y-1",children:[(0,m.jsx)("h4",{className:"text-xs text-slate-400 font-medium",children:"Cross-File Correlations"}),jn.map((a,b)=>(0,m.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-slate-800/30 rounded text-xs",children:[(0,m.jsx)(h4,{size:12,className:"critical"===a.severity?"text-red-400 mt-0.5":"high"===a.severity?"text-orange-400 mt-0.5":"text-yellow-400 mt-0.5"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-slate-200",children:a.finding}),(0,m.jsxs)("p",{className:"text-slate-500 text-[10px]",children:["Files: ",a.files.join(", ")]})]})]},b))]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs text-slate-400 font-medium mb-1",children:"Intent Breakdown"}),(0,m.jsx)("div",{className:"grid grid-cols-2 gap-1",children:Object.entries(jo).map(([a,b])=>(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,m.jsx)("div",{className:"flex-1",children:(0,m.jsx)("div",{className:"h-1.5 bg-slate-800 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full bg-cyan-500/60 rounded-full",style:{width:`${b}%`}})})}),(0,m.jsx)("span",{className:"text-slate-500 text-[10px] w-16 truncate",children:a}),(0,m.jsx)("span",{className:"text-slate-400 text-[10px] w-4 text-right",children:b})]},a))})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h4",{className:"text-xs text-slate-400 font-medium mb-1",children:"Recommendations"}),(0,m.jsx)("ul",{className:"space-y-1",children:jp.map((a,b)=>(0,m.jsx)("li",{className:"text-xs text-slate-300 pl-3 relative before:absolute before:left-0 before:top-1.5 before:w-1.5 before:h-1.5 before:rounded-full before:bg-cyan-500/40",children:a},b))})]})]})}function kg(){return(0,m.jsx)("div",{className:"bg-slate-900/50 border border-slate-800 rounded-xl p-4",children:(0,m.jsx)(ji,{feature:"skill_scanner_deep",label:"Deep skill scanning with multi-file analysis and semantic intent detection.",children:(0,m.jsx)(ke,{})})})}let kh=[{value:"",label:"Auto-detect"},{value:"skill-md",label:"SKILL.md (Claude Code)"},{value:"hook-md",label:"HOOK.md (OpenClaw)"},{value:"hook-js",label:"handler.js (OpenClaw)"},{value:"rules",label:".cursorrules / .windsurfrules / .clinerules"},{value:"claude-md",label:"CLAUDE.md"},{value:"copilot-md",label:"copilot-instructions.md"},{value:"aider-yml",label:".aider.conf.yml"},{value:"continue-json",label:".continue/config.json"}];function ki(){let a=iH(),b=fS({mutationFn:iG}),c=fS({mutationFn:iI}),d=fS({mutationFn:iJ}),e=fS({mutationFn:iK}),{data:f}=i$(),[g,h]=(0,n.useState)(null),[i,j]=(0,n.useState)(null),[k,l]=(0,n.useState)(!1),[o,p]=(0,n.useState)(""),[q,r]=(0,n.useState)(""),[s,t]=(0,n.useState)(!1),u=!!(f?.enabled&&f?.apiKeySet);return(0,m.jsxs)("div",{className:"h-full overflow-y-auto p-6",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Skills Scanner"}),(0,m.jsx)("p",{className:"text-xs text-slate-400 mt-0.5",children:"Scan agent instruction files for hidden threats"})]}),(0,m.jsxs)("button",{onClick:()=>{a.mutate(void 0,{onSuccess:a=>h(a)})},disabled:a.isPending,className:"flex items-center gap-1.5 px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:opacity-50 rounded-lg text-sm font-medium text-white transition-colors",children:[a.isPending?(0,m.jsx)(ix,{size:14,className:"animate-spin"}):(0,m.jsx)(h9,{size:14}),"Scan All"]})]}),s&&(0,m.jsxs)("div",{className:"mb-4 bg-slate-900 border border-cyan-800/50 rounded-xl p-4 flex items-center gap-3",children:[(0,m.jsx)(iv,{size:20,className:"text-cyan-400 shrink-0"}),(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-white",children:"Connect to ShieldCortex Cloud"}),(0,m.jsx)("p",{className:"text-xs text-slate-400 mt-0.5",children:"Enable one-click skill removal and cloud-powered threat intelligence."})]}),(0,m.jsx)("button",{onClick:()=>t(!1),className:"text-xs text-slate-500 hover:text-slate-300 transition-colors",children:"Dismiss"})]}),g?(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3 text-xs text-slate-400",children:[(0,m.jsxs)("span",{children:[(0,m.jsx)("span",{className:"text-white font-medium",children:g.totalScanned})," files scanned"]}),(0,m.jsx)("span",{className:"text-slate-600",children:"·"}),g.threatCount>0?(0,m.jsxs)("span",{children:[(0,m.jsx)("span",{className:"text-red-400 font-medium",children:g.threatCount})," with threats"]}):(0,m.jsx)("span",{className:"text-green-400",children:"All clean"}),(0,m.jsx)("span",{className:"text-slate-600",children:"·"}),(0,m.jsx)("span",{children:new Date(g.scannedAt).toLocaleTimeString()})]}),(0,m.jsx)(kb,{files:g.files,cloudConnected:u,onTrust:a=>{c.mutate(a,{onSuccess:()=>{g&&h({...g,files:g.files.map(b=>b.path===a?{...b,trusted:!0}:b),threatCount:g.files.filter(b=>!b.safe&&!b.trusted&&b.path!==a).length})}})},onUntrust:a=>{d.mutate(a,{onSuccess:()=>{g&&h({...g,files:g.files.map(b=>b.path===a?{...b,trusted:!1}:b),threatCount:g.files.filter(b=>{let c=b.path!==a&&b.trusted;return!b.safe&&!c}).length})}})},onRemove:a=>{e.mutate(a,{onSuccess:()=>{if(g){let b=g.files.filter(b=>b.path!==a);h({...g,files:b,totalScanned:b.length,threatCount:b.filter(a=>!a.safe&&!a.trusted).length})}}})},onCloudUpsell:()=>t(!0)})]}):a.isPending?(0,m.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,m.jsx)(ix,{size:24,className:"text-cyan-400 animate-spin"})}):(0,m.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,m.jsx)(h9,{size:32,className:"text-slate-600 mb-3"}),(0,m.jsx)("p",{className:"text-sm text-slate-400",children:"No skills scanned yet"}),(0,m.jsx)("p",{className:"text-xs text-slate-500 mt-1",children:'Click "Scan All" to discover and scan agent instruction files'})]}),(0,m.jsxs)("div",{className:"mt-6",children:[(0,m.jsxs)("button",{onClick:()=>l(!k),className:"flex items-center gap-1.5 text-xs text-slate-400 hover:text-slate-300 transition-colors",children:[k?(0,m.jsx)(ii,{size:14}):(0,m.jsx)(jL,{size:14}),"Paste & Scan"]}),k&&(0,m.jsxs)("div",{className:"mt-3 bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),placeholder:"Paste skill/instruction file content here...",className:"w-full h-32 bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-sm text-white placeholder:text-slate-500 focus:ring-cyan-500 focus:border-cyan-500 resize-y font-mono"}),(0,m.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,m.jsx)("select",{value:q,onChange:a=>r(a.target.value),className:"bg-slate-800 border border-slate-700 text-white text-xs rounded-lg px-3 py-2 focus:ring-cyan-500 focus:border-cyan-500",children:kh.map(a=>(0,m.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,m.jsxs)("button",{onClick:()=>{o.trim()&&b.mutate({content:o,format:q||void 0},{onSuccess:a=>j(a)})},disabled:b.isPending||!o.trim(),className:"flex items-center gap-1.5 px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:opacity-50 rounded-lg text-xs font-medium text-white transition-colors",children:[b.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(h9,{size:12}),"Scan Content"]})]}),i&&(0,m.jsxs)("div",{className:"mt-4 bg-slate-800/50 border border-slate-700 rounded-lg p-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsx)("span",{className:"text-xs font-medium text-white",children:i.skillName}),(0,m.jsx)(j7,{level:i.riskLevel}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-500",children:[i.scanDurationMs,"ms"]})]}),(0,m.jsx)("p",{className:"text-xs text-slate-400",children:i.summary}),i.findings.length>0&&(0,m.jsx)(j8,{findings:i.findings})]})]})]}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(kg,{})})]})}let kj=hE("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),kk=hE("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]),kl=hE("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),km=hE("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),kn=hE("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]),ko=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function kp(){let a,b,c,{data:d,isLoading:e,isLocked:f}={...a=fO({queryKey:["custom-patterns"],queryFn:()=>fZ(`${ko}/api/patterns`).then(a=>{if(!a.ok)throw Error("Failed to fetch custom patterns");return a.json()}),retry:(a,b)=>!(b instanceof fY)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof fY},g=(b=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${ko}/api/patterns`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["custom-patterns"]})}})),h=(c=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${ko}/api/patterns/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["custom-patterns"]})}})),i=fS({mutationFn:({id:a,text:b})=>fZ(`${ko}/api/patterns/${a}/test`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b})}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)}))}),[j,k]=(0,n.useState)(!1),[l,o]=(0,n.useState)(null),[p,q]=(0,n.useState)({name:"",category:"custom",severity:"medium",regex:"",description:""}),r=d?.patterns??[],s=!0,t="";if(p.regex)try{new RegExp(p.regex)}catch(a){s=!1,t=a.message}return f?(0,m.jsx)(kq,{}):(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(ia,{size:16,className:"text-red-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Custom Injection Patterns"}),(0,m.jsxs)("span",{className:"text-xs text-slate-500",children:[r.length,"/50"]})]}),(0,m.jsxs)("button",{onClick:()=>k(!j),className:"flex items-center gap-1 px-2 py-1 text-xs bg-red-600/20 text-red-400 rounded hover:bg-red-600/30 transition-colors",children:[(0,m.jsx)(je,{size:12})," Add Pattern"]})]}),j&&(0,m.jsxs)("form",{onSubmit:a=>{a.preventDefault(),g.mutate(p,{onSuccess:()=>{k(!1),q({name:"",category:"custom",severity:"medium",regex:"",description:""})}})},className:"p-3 bg-slate-800/50 rounded-lg space-y-2",children:[(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,m.jsx)("input",{value:p.name,onChange:a=>q(b=>({...b,name:a.target.value})),placeholder:"Pattern name",required:!0,className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600"}),(0,m.jsxs)("select",{value:p.severity,onChange:a=>q(b=>({...b,severity:a.target.value})),className:"px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200",children:[(0,m.jsx)("option",{value:"critical",children:"Critical"}),(0,m.jsx)("option",{value:"high",children:"High"}),(0,m.jsx)("option",{value:"medium",children:"Medium"}),(0,m.jsx)("option",{value:"low",children:"Low"})]})]}),(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)("input",{value:p.regex,onChange:a=>q(b=>({...b,regex:a.target.value})),placeholder:"Regex pattern",required:!0,className:`w-full px-2 py-1.5 text-xs bg-slate-900 border rounded text-slate-200 font-mono placeholder:text-slate-600 ${s?"border-slate-700":"border-red-500"}`}),!s&&(0,m.jsx)("p",{className:"text-[10px] text-red-400 mt-0.5",children:t})]}),(0,m.jsx)("input",{value:p.description,onChange:a=>q(b=>({...b,description:a.target.value})),placeholder:"Description (optional)",className:"w-full px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600"}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("button",{type:"submit",disabled:g.isPending||!s,className:"px-3 py-1 text-xs bg-red-600 text-white rounded hover:bg-red-500 disabled:opacity-50",children:g.isPending?"Creating...":"Create"}),(0,m.jsx)("button",{type:"button",onClick:()=>k(!1),className:"px-3 py-1 text-xs text-slate-400 hover:text-slate-200",children:"Cancel"})]}),g.error&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:g.error.message})]}),e?(0,m.jsx)("div",{className:"text-xs text-slate-500 py-4 text-center",children:"Loading patterns..."}):0===r.length?(0,m.jsx)("div",{className:"text-xs text-slate-500 py-4 text-center",children:'No custom patterns yet. Click "Add Pattern" to create one.'}):(0,m.jsx)("div",{className:"space-y-1",children:r.map(a=>(0,m.jsxs)("div",{className:"px-3 py-2 bg-slate-800/30 rounded text-xs space-y-1",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-slate-200 flex-1 font-medium",children:a.name}),(0,m.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===a.severity?"bg-red-500/20 text-red-400":"high"===a.severity?"bg-orange-500/20 text-orange-400":"medium"===a.severity?"bg-yellow-500/20 text-yellow-400":"bg-slate-500/20 text-slate-400"}`,children:a.severity}),(0,m.jsx)("button",{onClick:()=>o(l?.id===a.id?null:{id:a.id,text:""}),className:"text-slate-500 hover:text-cyan-400",title:"Test pattern",children:(0,m.jsx)(kn,{size:12})}),(0,m.jsx)("button",{onClick:()=>h.mutate(a.id),className:"text-slate-500 hover:text-red-400",children:(0,m.jsx)(jf,{size:12})})]}),(0,m.jsx)("code",{className:"text-slate-500 text-[10px] block truncate",children:a.regex}),l?.id===a.id&&(0,m.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,m.jsx)("input",{value:l.text,onChange:b=>o({id:a.id,text:b.target.value}),placeholder:"Test text...",className:"flex-1 px-2 py-1 text-[10px] bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600"}),(0,m.jsx)("button",{onClick:()=>i.mutate({id:a.id,text:l.text}),disabled:!l.text,className:"px-2 py-1 text-[10px] bg-cyan-600/20 text-cyan-400 rounded hover:bg-cyan-600/30 disabled:opacity-50",children:"Test"}),i.data&&(0,m.jsxs)("span",{className:"text-[10px] text-slate-400 self-center",children:[i.data.count," matches"]})]})]},a.id))})]})}function kq(){return(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(ia,{size:16,className:"text-red-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Custom Injection Patterns"}),(0,m.jsx)("span",{className:"text-xs text-slate-500",children:"0/50"})]}),(0,m.jsx)("div",{className:"space-y-1",children:jl.map(a=>(0,m.jsxs)("div",{className:"px-3 py-2 bg-slate-800/30 rounded text-xs space-y-1",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-slate-200 flex-1 font-medium",children:a.name}),(0,m.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===a.severity?"bg-red-500/20 text-red-400":"high"===a.severity?"bg-orange-500/20 text-orange-400":"bg-yellow-500/20 text-yellow-400"}`,children:a.severity})]}),(0,m.jsx)("code",{className:"text-slate-500 text-[10px] block truncate",children:a.regex})]},a.id))})]})}function kr(){return(0,m.jsx)("div",{className:"bg-slate-900/50 border border-slate-800 rounded-xl p-4",children:(0,m.jsx)(ji,{feature:"custom_injection_patterns",label:"Define up to 50 custom regex patterns for detecting domain-specific threats.",children:(0,m.jsx)(kp,{})})})}let ks=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function kt(){let a,b,c,d,{data:e,isLoading:f,isLocked:g}={...a=fO({queryKey:["custom-policies"],queryFn:()=>fZ(`${ks}/api/iron-dome/policies`).then(a=>{if(!a.ok)throw Error("Failed to fetch custom policies");return a.json()}),retry:(a,b)=>!(b instanceof fY)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof fY},h=(b=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${ks}/api/iron-dome/policies`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["custom-policies"]})}})),i=(c=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${ks}/api/iron-dome/policies/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["custom-policies"]})}})),j=(d=(0,fK.useQueryClient)(),fS({mutationFn:a=>fZ(`${ks}/api/iron-dome/policies/${a}/activate`,{method:"PUT"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{d.invalidateQueries({queryKey:["custom-policies"]})}})),[k,l]=(0,n.useState)(!1),[o,p]=(0,n.useState)({name:"",description:""}),q=e?.policies??[];return g?(0,m.jsx)(ku,{}):(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:16,className:"text-red-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Custom Iron Dome Policies"}),(0,m.jsxs)("span",{className:"text-xs text-slate-500",children:[q.length,"/10"]})]}),(0,m.jsxs)("button",{onClick:()=>l(!k),className:"flex items-center gap-1 px-2 py-1 text-xs bg-red-600/20 text-red-400 rounded hover:bg-red-600/30 transition-colors",children:[(0,m.jsx)(je,{size:12})," Create Policy"]})]}),k&&(0,m.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.mutate({name:o.name,description:o.description,config:{}},{onSuccess:()=>{l(!1),p({name:"",description:""})}})},className:"p-3 bg-slate-800/50 rounded-lg space-y-2",children:[(0,m.jsx)("input",{value:o.name,onChange:a=>p(b=>({...b,name:a.target.value})),placeholder:"Policy name",required:!0,className:"w-full px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600"}),(0,m.jsx)("textarea",{value:o.description,onChange:a=>p(b=>({...b,description:a.target.value})),placeholder:"Description",rows:2,className:"w-full px-2 py-1.5 text-xs bg-slate-900 border border-slate-700 rounded text-slate-200 placeholder:text-slate-600 resize-none"}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("button",{type:"submit",disabled:h.isPending,className:"px-3 py-1 text-xs bg-red-600 text-white rounded hover:bg-red-500 disabled:opacity-50",children:h.isPending?"Creating...":"Create"}),(0,m.jsx)("button",{type:"button",onClick:()=>l(!1),className:"px-3 py-1 text-xs text-slate-400 hover:text-slate-200",children:"Cancel"})]}),h.error&&(0,m.jsx)("p",{className:"text-xs text-red-400",children:h.error.message})]}),f?(0,m.jsx)("div",{className:"text-xs text-slate-500 py-4 text-center",children:"Loading policies..."}):0===q.length?(0,m.jsx)("div",{className:"text-xs text-slate-500 py-4 text-center",children:'No custom policies yet. Click "Create Policy" to get started.'}):(0,m.jsx)("div",{className:"space-y-1",children:q.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-slate-800/30 rounded text-xs",children:[(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-slate-200 font-medium",children:a.name}),1===a.is_active&&(0,m.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-green-500/20 text-green-400 text-[10px] font-medium",children:"Active"})]}),a.description&&(0,m.jsx)("p",{className:"text-slate-500 text-[10px] mt-0.5",children:a.description})]}),!a.is_active&&(0,m.jsxs)("button",{onClick:()=>j.mutate(a.id),className:"flex items-center gap-1 px-2 py-1 text-[10px] bg-green-600/20 text-green-400 rounded hover:bg-green-600/30",title:"Set active",children:[(0,m.jsx)(hG,{size:10})," Activate"]}),(0,m.jsx)("button",{onClick:()=>i.mutate(a.id),className:"text-slate-500 hover:text-red-400",children:(0,m.jsx)(jf,{size:12})})]},a.id))})]})}function ku(){return(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:16,className:"text-red-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200",children:"Custom Iron Dome Policies"}),(0,m.jsx)("span",{className:"text-xs text-slate-500",children:"0/10"})]}),(0,m.jsx)("div",{className:"space-y-1",children:jm.map(a=>(0,m.jsx)("div",{className:"flex items-center gap-3 px-3 py-2 bg-slate-800/30 rounded text-xs",children:(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-slate-200 font-medium",children:a.name}),a.is_active&&(0,m.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-green-500/20 text-green-400 text-[10px] font-medium",children:"Active"})]}),(0,m.jsx)("p",{className:"text-slate-500 text-[10px] mt-0.5",children:a.description})]})},a.id))})]})}function kv(){return(0,m.jsx)("div",{className:"bg-slate-900/50 border border-slate-800 rounded-xl p-4",children:(0,m.jsx)(ji,{feature:"custom_iron_dome_policies",label:"Create custom Iron Dome policies with tailored action gates and trust levels.",children:(0,m.jsx)(kt,{})})})}let kw=[{id:"personal",label:"Personal",description:"Lighter touch for solo use",icon:h2},{id:"enterprise",label:"Enterprise",description:"Financial & data protection",icon:i4},{id:"school",label:"School",description:"GDPR strict, pupil data guarded",icon:h8},{id:"paranoid",label:"Paranoid",description:"Everything requires approval",icon:h4}],kx=[{name:"Injection Scanner",description:"40+ patterns across 8 categories",icon:kl},{name:"Instruction Gateway",description:"Trusted channel validation",icon:kj},{name:"Action Gate",description:"Approve / block external actions",icon:i4},{name:"PII Guard",description:"Block sensitive data output",icon:ig},{name:"Kill Switch",description:"Emergency stop phrase",icon:kk},{name:"Sub-Agent Control",description:"Restrict spawned agent operations",icon:h8}],ky={critical:"bg-red-500/20 text-red-400 border-red-500/30",high:"bg-orange-500/20 text-orange-400 border-orange-500/30",medium:"bg-yellow-500/20 text-yellow-400 border-yellow-500/30",low:"bg-slate-500/20 text-slate-400 border-slate-500/30"},kz={CRITICAL:"bg-red-500/20 text-red-400",HIGH:"bg-orange-500/20 text-orange-400",MEDIUM:"bg-yellow-500/20 text-yellow-400",LOW:"bg-slate-500/20 text-slate-400",NONE:"bg-green-500/20 text-green-400"};function kA(){let a,b,c,{data:d,isLoading:e}=iV(),{data:f}=iW(50),g=(a=(0,fK.useQueryClient)(),fS({mutationFn:a=>iO(a),onSuccess:()=>{a.invalidateQueries({queryKey:["iron-dome-status"]}),a.invalidateQueries({queryKey:["iron-dome-audit"]})}})),h=(b=(0,fK.useQueryClient)(),fS({mutationFn:iP,onSuccess:()=>{b.invalidateQueries({queryKey:["iron-dome-status"]})}})),i=fS({mutationFn:iQ}),j=iX(),k=(c=(0,fK.useQueryClient)(),fS({mutationFn:a=>iS(a),onSuccess:()=>{c.invalidateQueries({queryKey:["control-status"]}),c.invalidateQueries({queryKey:["iron-dome-status"]}),c.invalidateQueries({queryKey:["iron-dome-audit"]})}})),{data:l}=fO({queryKey:["control-status"],queryFn:iT,refetchInterval:5e3,retry:2}),[o,p]=(0,n.useState)(""),[q,r]=(0,n.useState)(null),[s,t]=(0,n.useState)(""),u=d?.enabled??!1,v=l?.killSwitchActive??!1,w=l?.killSwitchMeta??null;l?.paused;let x=d?.profile,y=d?.config,z=f?.logs??[],A=z.filter(a=>"BLOCK"===a.firewall_result).length,B=z.filter(a=>"ALLOW"===a.firewall_result).length;return(0,m.jsxs)("div",{className:"h-full overflow-y-auto p-6",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)(ia,{size:20,className:"text-red-400"}),(0,m.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Iron Dome"}),e?(0,m.jsx)("span",{className:"text-[10px] text-slate-500 animate-pulse",children:"Loading..."}):(0,m.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${u?"bg-red-500/20 text-red-400 border border-red-500/30":"bg-slate-700/50 text-slate-500"}`,children:u?"ACTIVE":"INACTIVE"})]}),u&&(0,m.jsxs)("button",{onClick:()=>{h.mutate()},disabled:h.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 bg-red-500/10 border border-red-500/30 hover:bg-red-500/20 disabled:opacity-50 rounded-lg text-xs font-medium text-red-400 transition-colors",children:[h.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(kk,{size:12}),"Deactivate"]})]}),(0,m.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-6",children:[(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-3",children:"Security Profiles"}),(0,m.jsx)("div",{className:"grid grid-cols-2 gap-2",children:kw.map(({id:a,label:b,description:c,icon:d})=>(0,m.jsxs)("button",{onClick:()=>{g.mutate(a)},disabled:g.isPending,className:`text-left p-3 rounded-lg border transition-colors ${x===a?"border-red-500/50 bg-red-500/10 text-red-400":"border-slate-700 bg-slate-800/50 text-slate-400 hover:border-slate-600"}`,children:[(0,m.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,m.jsx)(d,{size:12}),(0,m.jsx)("span",{className:"text-xs font-medium",children:b})]}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:c})]},a))})]}),(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-3",children:"Module Status"}),(0,m.jsx)("div",{className:"space-y-2",children:kx.map(({name:a,description:b,icon:c})=>(0,m.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-slate-800/50",children:[(0,m.jsx)(c,{size:14,className:u?"text-red-400":"text-slate-600"}),(0,m.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,m.jsx)("div",{className:"text-xs font-medium text-slate-300",children:a}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500 truncate",children:b})]}),(0,m.jsx)("span",{className:`w-2 h-2 rounded-full ${u?"bg-red-400":"bg-slate-600"}`})]},a))})]})]}),u&&y&&(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4 mb-6",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300 mb-3",children:"Active Configuration"}),(0,m.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-xs",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase mb-1",children:"Trusted Channels"}),(0,m.jsx)("div",{className:"flex flex-wrap gap-1",children:y.trustedChannels.map(a=>(0,m.jsx)("span",{className:"px-1.5 py-0.5 bg-slate-800 rounded text-slate-400",children:a},a))})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase mb-1",children:"Requires Approval"}),(0,m.jsx)("div",{className:"flex flex-wrap gap-1",children:y.requireApproval.map(a=>(0,m.jsx)("span",{className:"px-1.5 py-0.5 bg-red-500/10 border border-red-500/20 rounded text-red-400",children:a},a))})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"text-[10px] text-slate-500 uppercase mb-1",children:"Kill Phrase"}),(0,m.jsx)("span",{className:"px-1.5 py-0.5 bg-slate-800 rounded text-slate-400 font-mono",children:y.killPhrase})]})]})]}),v?(0,m.jsxs)("div",{className:"bg-red-950/50 border-2 border-red-500/50 rounded-xl p-5 mb-6 animate-pulse-slow",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,m.jsx)(km,{size:18,className:"text-red-400"}),(0,m.jsx)("h3",{className:"text-sm font-bold text-red-400 uppercase tracking-wide",children:"Kill Switch Active"}),(0,m.jsx)("span",{className:"ml-auto text-[10px] bg-red-500/20 text-red-400 px-2 py-0.5 rounded-full border border-red-500/30",children:"LOCKDOWN"})]}),(0,m.jsx)("p",{className:"text-xs text-red-300/80 mb-2",children:"All agent operations are blocked. No memory reads, writes, graph queries, or consolidation. Iron Dome remains active and continues protecting."}),w&&(0,m.jsxs)("div",{className:"bg-red-950/30 border border-red-500/20 rounded-lg p-3 mb-4 space-y-1",children:[(0,m.jsxs)("div",{className:"text-[10px] text-slate-500",children:[(0,m.jsx)("span",{className:"text-red-400 font-medium",children:"Triggered:"})," ",new Date(w.triggeredAt).toLocaleString()]}),(0,m.jsxs)("div",{className:"text-[10px] text-slate-500",children:[(0,m.jsx)("span",{className:"text-red-400 font-medium",children:"Source:"})," ","kill_phrase"===w.source?`Kill phrase "${w.phrase}"`:"manual"===w.source?"Manual (dashboard)":"mcp_tool"===w.source?"MCP tool":w.source]}),void 0!==w.memoryCountAtTrigger&&(0,m.jsxs)("div",{className:"text-[10px] text-slate-500",children:[(0,m.jsx)("span",{className:"text-red-400 font-medium",children:"Memories at trigger:"})," ",w.memoryCountAtTrigger]})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("input",{type:"text",value:s,onChange:a=>t(a.target.value),placeholder:"Reason for resuming (required)...",className:"w-full bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-xs text-white placeholder:text-slate-500 focus:outline-none focus:ring-1 focus:ring-green-500"}),(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsxs)("button",{onClick:()=>{s.trim()&&(k.mutate(s.trim()),t(""))},disabled:k.isPending||!s.trim(),className:"flex items-center gap-1.5 px-4 py-2 bg-green-600 hover:bg-green-500 disabled:opacity-50 rounded-lg text-xs font-medium text-white transition-colors",children:[k.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(kn,{size:12}),"Resume Agent"]}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500",children:"Only resume after you've investigated the threat"})]})]})]}):(0,m.jsxs)("div",{className:"bg-slate-900 border border-orange-500/30 rounded-xl p-4 mb-6",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsx)(km,{size:14,className:"text-orange-400"}),(0,m.jsx)("h3",{className:"text-sm font-medium text-orange-300",children:"Emergency Stop"})]}),(0,m.jsx)("p",{className:"text-xs text-slate-400 mb-3",children:"Immediately halts your agent when you suspect it has been compromised or is acting on poisoned data. Blocks ALL operations — no reads, writes, or modifications. Iron Dome stays active."}),y?.killPhrase&&(0,m.jsxs)("p",{className:"text-[10px] text-slate-500 mb-3",children:["Kill phrase: ",(0,m.jsxs)("span",{className:"font-mono text-slate-400",children:['"',y.killPhrase,'"']})," — say this in conversation for hands-free stop"]}),(0,m.jsxs)("button",{onClick:()=>j.mutate(),disabled:j.isPending,className:"flex items-center gap-1.5 px-4 py-2 bg-red-600 hover:bg-red-500 disabled:opacity-50 rounded-lg text-xs font-bold text-white uppercase tracking-wider transition-colors",children:[j.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(km,{size:14}),"Emergency Stop"]})]}),(0,m.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsxs)("h3",{className:"text-sm font-medium text-slate-300 mb-3",children:[(0,m.jsx)(kl,{size:14,className:"inline mr-1.5 text-red-400"}),"Injection Scanner"]}),(0,m.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),placeholder:"Paste suspicious text to scan for injection patterns...",className:"w-full h-28 bg-slate-800 border border-slate-700 rounded-lg p-3 text-sm text-white placeholder:text-slate-500 resize-none focus:outline-none focus:ring-1 focus:ring-red-500 focus:border-red-500"}),(0,m.jsxs)("button",{onClick:()=>{o.trim()&&i.mutate(o,{onSuccess:a=>r(a)})},disabled:i.isPending||!o.trim(),className:"mt-2 flex items-center gap-1.5 px-3 py-1.5 bg-red-600 hover:bg-red-500 disabled:opacity-50 rounded-lg text-xs font-medium text-white transition-colors",children:[i.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(ia,{size:12}),"Scan"]}),q&&(0,m.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[q.clean?(0,m.jsx)(iy,{size:14,className:"text-green-400"}):(0,m.jsx)(iD,{size:14,className:"text-red-400"}),(0,m.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${kz[q.riskLevel]??"bg-slate-500/20 text-slate-400"}`,children:q.riskLevel}),(0,m.jsx)("span",{className:"text-xs text-slate-400",children:q.summary})]}),q.detections.map((a,b)=>(0,m.jsxs)("div",{className:`border rounded-lg p-3 ${ky[a.severity]??"border-slate-700"}`,children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,m.jsx)("span",{className:"text-[10px] font-medium uppercase",children:a.severity}),(0,m.jsx)("span",{className:"text-xs text-slate-300",children:a.category.replace(/_/g," ")})]}),(0,m.jsx)("p",{className:"text-[11px] text-slate-400 mb-1",children:a.description}),(0,m.jsx)("code",{className:"text-[10px] text-slate-500 bg-slate-800 px-1.5 py-0.5 rounded block truncate",children:a.match})]},b))]})]}),(0,m.jsxs)("div",{className:"bg-slate-900 border border-slate-800 rounded-xl p-4",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-300",children:"Event Feed"}),(0,m.jsxs)("span",{className:"text-[10px] text-slate-500",children:["Last ",z.length," events"]})]}),(0,m.jsxs)("div",{className:"grid grid-cols-3 gap-2 mb-3",children:[(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-2 text-center",children:[(0,m.jsx)("div",{className:"text-sm font-bold text-slate-300",children:z.length}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Total"})]}),(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-2 text-center",children:[(0,m.jsx)("div",{className:"text-sm font-bold text-red-400",children:A}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Blocked"})]}),(0,m.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-2 text-center",children:[(0,m.jsx)("div",{className:"text-sm font-bold text-green-400",children:B}),(0,m.jsx)("div",{className:"text-[10px] text-slate-500",children:"Allowed"})]})]}),(0,m.jsx)("div",{className:"space-y-1 max-h-72 overflow-y-auto",children:0===z.length?(0,m.jsxs)("div",{className:"text-center py-6",children:[(0,m.jsx)(h2,{size:20,className:"text-slate-600 mx-auto mb-1.5"}),(0,m.jsx)("p",{className:"text-[10px] text-slate-500",children:"No Iron Dome events yet"})]}):z.map((a,b)=>(0,m.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded-md bg-slate-800/50 text-xs",children:[(0,m.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${"BLOCK"===a.firewall_result?"bg-red-400":"bg-green-400"}`}),(0,m.jsx)("span",{className:"text-slate-400 truncate flex-1",children:(a.reason??"").replace(/^\[iron-dome:\w+\]\s*/,"")}),(0,m.jsx)("span",{className:"text-[10px] text-slate-600 shrink-0",children:new Date(a.timestamp).toLocaleTimeString()})]},a.id??b))})]})]}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(kr,{})}),(0,m.jsx)("div",{className:"mt-4",children:(0,m.jsx)(kv,{})})]})}let kB=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",kC={architecture:"#3b82f6",error:"#ef4444",pattern:"#8b5cf6",preference:"#f59e0b",learning:"#10b981",context:"#6366f1",todo:"#f97316",note:"#94a3b8",relationship:"#ec4899",custom:"#64748b"},kD={short_term:"STM",long_term:"LTM",episodic:"Episodic"},kE={short_term:"#22d3ee",long_term:"#a78bfa",episodic:"#f472b6"},kF=["architecture","pattern","preference","error","context","learning","todo","note","relationship","custom"],kG=[{label:"All",value:"all"},{label:"STM",value:"short_term"},{label:"LTM",value:"long_term"},{label:"Episodic",value:"episodic"}];function kH(a){let b=new Date(a);return`${b.getFullYear()}-${String(b.getMonth()+1).padStart(2,"0")}-${String(b.getDate()).padStart(2,"0")}`}function kI({className:a}){let[b,c]=(0,n.useState)([]),[d,e]=(0,n.useState)(!0),[f,g]=(0,n.useState)(null),[h,i]=(0,n.useState)(new Set),[j,k]=(0,n.useState)("all"),[l,o]=(0,n.useState)(""),p=(0,n.useRef)(null),q=(0,n.useRef)(new Map),[r,s]=(0,n.useState)(new Set);(0,n.useEffect)(()=>{let a=!1;return async function(){e(!0),g(null);try{let b=await fX(`${kB}/api/memories?limit=200&sort=created_at&order=desc`);if(!b.ok)throw Error(`API returned ${b.status}`);let d=await b.json();a||c(Array.isArray(d)?d:d.memories??[])}catch(b){a||g(b instanceof Error?b.message:"Failed to load memories")}finally{a||e(!1)}}(),()=>{a=!0}},[]),(0,n.useEffect)(()=>(p.current=new IntersectionObserver(a=>{s(b=>{let c=new Set(b);for(let b of a){let a=Number(b.target.getAttribute("data-memory-id"));b.isIntersecting&&c.add(a)}return c})},{threshold:.1,rootMargin:"0px 0px 50px 0px"}),()=>p.current?.disconnect()),[]);let t=(0,n.useCallback)(a=>b=>{b&&(q.current.set(a,b),p.current?.observe(b))},[]),u=(0,n.useMemo)(()=>{let a=b;if(h.size>0&&(a=a.filter(a=>h.has(a.category))),"all"!==j&&(a=a.filter(a=>a.type===j)),l.trim()){let b=l.toLowerCase();a=a.filter(a=>a.title.toLowerCase().includes(b)||a.content.toLowerCase().includes(b))}return a},[b,h,j,l]),v=(0,n.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=kH(c.createdAt);b.has(a)||b.set(a,[]),b.get(a).push(c)}return Array.from(b.entries()).sort(([a],[b])=>b.localeCompare(a)).map(([a,b])=>({key:a,label:function(a){let b=new Date,c=kH(b.toISOString()),d=new Date(b);d.setDate(d.getDate()-1);let e=kH(d.toISOString());if(a===c)return"Today";if(a===e)return"Yesterday";let[f,g,h]=a.split("-").map(Number),i=new Date(f,g-1,h);return i.toLocaleDateString(void 0,{month:"long",day:"numeric",year:i.getFullYear()!==b.getFullYear()?"numeric":void 0})}(a),memories:b}))})(u),[u]);return d?(0,m.jsx)("div",{className:`flex items-center justify-center h-full bg-[#0a0a0f] ${a??""}`,children:(0,m.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,m.jsx)("div",{className:"w-8 h-8 border-2 border-slate-700 border-t-cyan-500 rounded-full animate-spin"}),(0,m.jsx)("span",{className:"text-sm text-slate-400",children:"Loading timeline..."})]})}):f?(0,m.jsx)("div",{className:`flex items-center justify-center h-full bg-[#0a0a0f] ${a??""}`,children:(0,m.jsxs)("div",{className:"text-center space-y-2",children:[(0,m.jsx)("p",{className:"text-red-400 text-sm",children:"Failed to load memories"}),(0,m.jsx)("p",{className:"text-slate-500 text-xs",children:f})]})}):(0,m.jsxs)("div",{className:`h-full flex flex-col bg-[#0a0a0f] text-slate-200 ${a??""}`,children:[(0,m.jsxs)("div",{className:"shrink-0 border-b border-slate-800/60 px-4 py-3 space-y-3",children:[(0,m.jsx)("input",{type:"text",placeholder:"Search memories...",value:l,onChange:a=>o(a.target.value),className:"w-full bg-slate-900/60 border border-slate-700/50 rounded-lg px-3 py-2 text-sm text-slate-200 placeholder-slate-500 focus:outline-none focus:ring-1 focus:ring-cyan-500/40 focus:border-cyan-500/40"}),(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-xs text-slate-500 uppercase tracking-wider mr-1",children:"Type"}),kG.map(a=>(0,m.jsx)("button",{onClick:()=>k(a.value),className:`px-2.5 py-1 rounded-md text-xs font-medium transition-colors ${j===a.value?"bg-cyan-500/20 text-cyan-400 border border-cyan-500/30":"bg-slate-800/40 text-slate-400 border border-slate-700/30 hover:bg-slate-800/80"}`,children:a.label},a.value))]}),(0,m.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,m.jsx)("span",{className:"text-xs text-slate-500 uppercase tracking-wider mr-1 self-center",children:"Category"}),kF.map(a=>{let b=h.has(a),c=kC[a]??"#64748b";return(0,m.jsx)("button",{onClick:()=>{i(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},className:"px-2.5 py-1 rounded-md text-xs font-medium transition-all",style:{backgroundColor:b?`${c}22`:"rgba(30, 41, 59, 0.4)",color:b?c:"#94a3b8",border:`1px solid ${b?`${c}55`:"rgba(51, 65, 85, 0.3)"}`},children:a},a)}),h.size>0&&(0,m.jsx)("button",{onClick:()=>i(new Set),className:"px-2 py-1 rounded-md text-xs text-slate-500 hover:text-slate-300 transition-colors",children:"Clear"})]})]}),(0,m.jsx)("div",{className:"flex-1 overflow-y-auto px-4 py-6",children:0===v.length?(0,m.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,m.jsxs)("div",{className:"text-center space-y-2 max-w-sm",children:[(0,m.jsx)("div",{className:"text-slate-600 text-4xl mb-3",children:"--"}),(0,m.jsx)("p",{className:"text-slate-400 text-sm",children:"No memories yet."}),(0,m.jsxs)("p",{className:"text-slate-500 text-xs",children:["Start a conversation and use ",(0,m.jsx)("code",{className:"text-cyan-500/80 bg-slate-800/60 px-1.5 py-0.5 rounded text-xs",children:"remember"})," to build your timeline."]})]})}):(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)("div",{className:"absolute left-4 md:left-1/2 top-0 bottom-0 w-px bg-slate-800/80"}),v.map(a=>(0,m.jsxs)("div",{className:"mb-8",children:[(0,m.jsxs)("div",{className:"relative flex items-center mb-4",children:[(0,m.jsx)("div",{className:"absolute left-4 md:left-1/2 -translate-x-1/2 w-3 h-3 rounded-full bg-slate-700 border-2 border-slate-600 z-10"}),(0,m.jsx)("div",{className:"ml-10 md:ml-0 md:absolute md:left-1/2 md:translate-x-4",children:(0,m.jsx)("span",{className:"text-xs font-semibold text-slate-400 uppercase tracking-wider bg-[#0a0a0f] px-2",children:a.label})})]}),a.memories.map((a,b)=>{var c;let d=b%2==0,e=(c=a.salience)>=.8?{label:"Critical",colour:"#ef4444"}:c>=.6?{label:"High",colour:"#f59e0b"}:c>=.4?{label:"Medium",colour:"#3b82f6"}:{label:"Low",colour:"#64748b"},f=kC[a.category]??"#64748b",g=kE[a.type]??"#94a3b8",h=kD[a.type]??a.type,i=r.has(a.id);return(0,m.jsxs)("div",{ref:t(a.id),"data-memory-id":a.id,className:`relative flex mb-4 ${d?"md:justify-start justify-start":"md:justify-end justify-start"}`,style:{opacity:+!!i,transform:i?"translateY(0)":"translateY(12px)",transition:"opacity 0.4s ease-out, transform 0.4s ease-out"},children:[(0,m.jsx)("div",{className:"absolute left-4 md:left-1/2 top-4 -translate-x-1/2 w-2 h-2 rounded-full z-10",style:{backgroundColor:f}}),(0,m.jsxs)("div",{className:`ml-10 md:ml-0 w-full md:w-[calc(50%-2rem)] rounded-lg border border-slate-800/60 bg-slate-900/40 backdrop-blur-sm p-3 hover:border-slate-700/80 transition-colors ${d?"md:mr-auto md:ml-0":"md:ml-auto md:mr-0"}`,children:[(0,m.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-1.5",children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-slate-200 leading-tight flex-1 line-clamp-1",children:a.title}),(0,m.jsx)("span",{className:"text-[10px] text-slate-500 whitespace-nowrap",children:new Date(a.createdAt).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})})]}),(0,m.jsx)("p",{className:"text-xs text-slate-400 line-clamp-2 mb-2 leading-relaxed",children:a.content}),(0,m.jsxs)("div",{className:"flex items-center flex-wrap gap-1.5",children:[(0,m.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium",style:{backgroundColor:`${f}18`,color:f,border:`1px solid ${f}33`},children:a.category}),(0,m.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium",style:{backgroundColor:`${g}18`,color:g,border:`1px solid ${g}33`},children:h}),(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px]",style:{color:e.colour},children:[(0,m.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:e.colour}}),e.label]})]})]})]},a.id)})]},a.key))]})})]})}let kJ=[{keys:["g","s"],description:"Go to Shield view"},{keys:["g","m"],description:"Go to Memories view"},{keys:["g","t"],description:"Go to Timeline view"},{keys:["g","g"],description:"Go to Graph view"},{keys:["g","a"],description:"Go to Audit view"},{keys:["g","b"],description:"Go to Brain view"},{keys:["g","d"],description:"Go to Dome view"}],kK=[{keys:["/"],description:"Focus search input"},{keys:["Esc"],description:"Close panel / blur search"},{keys:["?"],description:"Toggle this help overlay"}];function kL({children:a}){return(0,m.jsx)("kbd",{className:"inline-flex items-center justify-center min-w-[1.5rem] h-6 px-2 bg-slate-700 border border-slate-600 rounded text-xs font-mono text-slate-200 shadow-sm",children:a})}function kM({shortcut:a}){return(0,m.jsxs)("div",{className:"flex items-center justify-between py-1.5",children:[(0,m.jsx)("span",{className:"text-sm text-slate-300",children:a.description}),(0,m.jsx)("div",{className:"flex items-center gap-1 ml-4 shrink-0",children:a.keys.map((a,b)=>(0,m.jsxs)("span",{className:"flex items-center gap-1",children:[b>0&&(0,m.jsx)("span",{className:"text-slate-500 text-xs",children:"then"}),(0,m.jsx)(kL,{children:a})]},b))})]})}function kN({open:a,onClose:b}){let c=(0,n.useRef)(null);return((0,n.useEffect)(()=>{if(!a)return;let d=a=>{c.current&&a.target===c.current&&b()};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[a,b]),a)?(0,m.jsx)("div",{ref:c,className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/60 backdrop-blur-sm transition-opacity duration-150",style:{opacity:+!!a},children:(0,m.jsxs)("div",{className:"bg-slate-900/95 border border-slate-700 rounded-xl shadow-2xl w-full max-w-md mx-4 p-6 backdrop-blur-md animate-in fade-in zoom-in-95 duration-150",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-5",children:[(0,m.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Keyboard Shortcuts"}),(0,m.jsx)("button",{onClick:b,className:"text-slate-400 hover:text-white transition-colors text-sm",children:(0,m.jsx)(kL,{children:"Esc"})})]}),(0,m.jsxs)("div",{className:"mb-5",children:[(0,m.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wider text-slate-500 mb-2",children:"Navigation"}),(0,m.jsx)("div",{className:"space-y-0.5",children:kJ.map((a,b)=>(0,m.jsx)(kM,{shortcut:a},b))})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wider text-slate-500 mb-2",children:"Actions"}),(0,m.jsx)("div",{className:"space-y-0.5",children:kK.map((a,b)=>(0,m.jsx)(kM,{shortcut:a},b))})]}),(0,m.jsxs)("div",{className:"mt-5 pt-4 border-t border-slate-800 text-xs text-slate-500 text-center",children:["Chords: press ",(0,m.jsx)(kL,{children:"g"})," then a letter within 500ms"]})]})}):null}let kO=(0,fx.default)(async()=>{},{loadableGenerated:{modules:[13213]},ssr:!1,loading:()=>(0,m.jsx)("div",{className:"w-full h-full flex items-center justify-center bg-slate-950",children:(0,m.jsx)("div",{className:"text-slate-400 animate-pulse",children:"Loading Graph..."})})}),kP=(0,fx.default)(async()=>{},{loadableGenerated:{modules:[41740]},ssr:!1,loading:()=>(0,m.jsx)("div",{className:"w-full h-full flex items-center justify-center bg-slate-950",children:(0,m.jsx)("div",{className:"text-slate-400 animate-pulse",children:"Loading Brain Control Centre..."})})});function kQ(){var a,b;let c,d,e,f,g,h,i,[j,k]=(0,n.useState)(""),[l,o]=(0,n.useState)(!1),[p,q]=(0,n.useState)(!1),[r,s]=(0,n.useState)(void 0),[t,u]=(0,n.useState)(void 0),v=(0,n.useRef)(null),w=(0,n.useRef)(null),x=gg(j,300),{viewMode:y,setViewMode:z,selectedMemory:A,setSelectedMemory:B,selectedAuditEntry:C,setSelectedAuditEntry:D,projectFilter:F,setProjectFilter:G,addEvent:H}=gf(),{showHelp:I,setShowHelp:J}=function(a){let{onFocusSearch:b,onClosePanel:c,onNavigate:d,onToggleHelp:e}=a,[f,g]=(0,n.useState)(!1),h=(0,n.useRef)(null),i=(0,n.useCallback)(a=>{let i=a.target,j=i.tagName.toLowerCase(),k="input"===j||"textarea"===j||"select"===j||i.isContentEditable;if("Escape"===a.key)return f?void g(!1):k?void i.blur():void c();if(k)return;if("/"===a.key){a.preventDefault(),b();return}if("?"===a.key){a.preventDefault(),g(a=>!a),e();return}let l=Date.now(),m=h.current;if("g"===a.key){if(m&&"g"===m.key&&l-m.time<500){h.current=null,d("graph");return}h.current={key:"g",time:l};return}if(m&&"g"===m.key&&l-m.time<500){h.current=null;let b={s:"shield",m:"memories",t:"timeline",a:"audit",b:"brain",d:"dome"}[a.key];if(b)return void d(b)}h.current=null},[b,c,d,e,f]);return(0,n.useEffect)(()=>(document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)),[i]),{showHelp:f,setShowHelp:g}}({onFocusSearch:(0,n.useCallback)(()=>{v.current?.focus()},[]),onClosePanel:(0,n.useCallback)(()=>{B(null),D(null)},[B,D]),onNavigate:(0,n.useCallback)(a=>{z(a)},[z]),onToggleHelp:()=>{}}),{data:K=[]}=fO({queryKey:["suggestions",c=gg(j,200)],queryFn:()=>gi(c),enabled:c.length>=2,staleTime:3e4,refetchOnWindowFocus:!1}),{data:L}=fO({queryKey:["projects"],queryFn:f3,refetchInterval:6e4});(0,n.useEffect)(()=>{let a=a=>{w.current&&!w.current.contains(a.target)&&v.current&&!v.current.contains(a.target)&&o(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let{data:M=[],isLoading:N,isConnected:O,lastEvent:P}=(a={limit:1e3,query:x||void 0,mode:x?"search":"recent",project:F||void 0,type:r,category:t},d=function(a={}){let{enabled:b=!0,onMessage:c}=a,d=(0,fK.useQueryClient)(),e=(0,n.useRef)(null),f=(0,n.useRef)(null),g=(0,n.useRef)(0),h=(0,n.useRef)(1e3),i=(0,n.useRef)(()=>{}),[j,k]=(0,n.useState)(!1),[l,m]=(0,n.useState)(null),o=(0,n.useRef)(c);(0,n.useEffect)(()=>{o.current=c},[c]);let p=(0,n.useCallback)(async()=>{if(b&&e.current?.readyState!==WebSocket.OPEN){f.current&&(clearTimeout(f.current),f.current=null);try{let a=await fW(),c=`${f$}?token=${encodeURIComponent(a)}`,j=new WebSocket(c);e.current=j,j.onopen=()=>{k(!0),g.current=0,h.current=1e3,console.log("[WebSocket] Connected to memory server")},j.onmessage=a=>{try{let b=JSON.parse(a.data);switch(m({type:b.type,data:b.data,timestamp:b.timestamp||new Date().toISOString()}),o.current?.(b),b.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":d.invalidateQueries({queryKey:["memories"]}),d.invalidateQueries({queryKey:["stats"]}),d.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":d.invalidateQueries({queryKey:["memories"]}),d.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":d.invalidateQueries({queryKey:["links"]});break;case"defence_event":d.invalidateQueries({queryKey:["agents"]}),d.invalidateQueries({queryKey:["agent-timeline"]}),d.invalidateQueries({queryKey:["audit-logs"]}),d.invalidateQueries({queryKey:["audit-stats"]});break;case"kill_switch_activated":case"kill_switch_deactivated":d.invalidateQueries({queryKey:["control-status"]}),d.invalidateQueries({queryKey:["iron-dome-status"]}),d.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===b.type&&(d.invalidateQueries({queryKey:["version"]}),d.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...")}}catch(a){console.error("[WebSocket] Failed to parse message:",a)}},j.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},j.onclose=()=>{if(k(!1),console.log("[WebSocket] Disconnected"),b&&g.current<10){let a=h.current;g.current++,h.current=Math.min(2*h.current,3e4),console.log(`[WebSocket] Reconnecting in ${a}ms (attempt ${g.current}/10)...`),f.current=setTimeout(()=>{i.current()},a)}else g.current>=10&&console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again.")}}catch(a){console.error("[WebSocket] Failed to connect:",a)}}},[b,d]);return(0,n.useEffect)(()=>{i.current=p}),(0,n.useEffect)(()=>(b&&p(),()=>{f.current&&clearTimeout(f.current),e.current&&(e.current.close(),e.current=null)}),[b,p]),{isConnected:j,lastEvent:l,reconnect:(0,n.useCallback)(()=>{g.current=0,h.current=1e3,p()},[p])}}(),{...{...e=fO({queryKey:["memories",a],queryFn:()=>f0(a),refetchInterval:3e4}),data:e.data?.memories,pagination:e.data?.pagination},isConnected:d.isConnected,lastEvent:d.lastEvent}),{data:Q,isLoading:R}=f6(F||void 0),{data:S=[]}=fO({queryKey:["links",b=F||void 0],queryFn:()=>f2(b),refetchInterval:6e4}),T=(0,n.useRef)(P);(0,n.useEffect)(()=>{!P||P===T.current||(T.current=P,new Set(["memory_created","memory_accessed","memory_updated","memory_deleted","consolidation_complete","decay_tick"]).has(P.type)&&H({type:P.type,timestamp:P.timestamp,data:P.data}))},[P,H]);let U=(f=(0,fK.useQueryClient)(),fS({mutationFn:f4,onSuccess:()=>{f.invalidateQueries({queryKey:["memories"]}),f.invalidateQueries({queryKey:["stats"]})}}));g=(0,fK.useQueryClient)(),fS({mutationFn:f5,onSuccess:()=>{g.invalidateQueries({queryKey:["memories"]}),g.invalidateQueries({queryKey:["stats"]})}});let{data:V}=fO({queryKey:["control-status"],queryFn:f7,refetchInterval:1e4});h=(0,fK.useQueryClient)(),fS({mutationFn:f8,onSuccess:()=>{h.invalidateQueries({queryKey:["control-status"]})}}),i=(0,fK.useQueryClient)(),fS({mutationFn:f9,onSuccess:()=>{i.invalidateQueries({queryKey:["control-status"]})}});let W=V?.paused??!1,{data:X}=i$(),Y=X?.enabled&&X?.apiKeySet,Z=iX(),$=V?.killSwitchActive??!1,_=a=>{let b=M.find(b=>b.id===a);b&&B(b)},aa="shield"===y||"audit"===y||"quarantine"===y||"agents"===y||"skills"===y||"dome"===y;return(0,m.jsxs)("div",{className:"h-screen w-screen bg-slate-950 text-white overflow-hidden flex flex-col",children:[(0,m.jsxs)("header",{className:"h-14 border-b border-slate-800 flex items-center justify-between px-4 bg-slate-900/50 backdrop-blur-sm shrink-0",children:[(0,m.jsxs)("div",{className:"flex items-center gap-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(h2,{size:20,className:"text-cyan-400"}),(0,m.jsx)("h1",{className:"text-xl font-bold bg-gradient-to-r from-cyan-400 via-blue-400 to-emerald-400 bg-clip-text text-transparent",children:"ShieldCortex"}),(0,m.jsx)("div",{title:Y?"Connected to ShieldCortex Cloud":"Cloud sync not configured",children:(0,m.jsx)(iv,{size:16,className:Y?"text-emerald-400":"text-slate-600"})})]}),(0,m.jsx)("select",{value:F||"",onChange:a=>G(a.target.value||null),className:"bg-slate-800 border border-slate-700 text-white text-sm rounded-lg px-3 py-1.5 focus:ring-cyan-500 focus:border-cyan-500",children:L?.projects.map(a=>(0,m.jsxs)("option",{value:a.project||"",children:[a.label," (",a.memory_count,")"]},a.project||"all"))}),(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)(hv,{ref:v,type:"text",placeholder:"Search memories...",value:j,onChange:a=>{k(a.target.value),o(!0)},onFocus:()=>o(!0),onKeyDown:a=>{"Escape"===a.key&&o(!1)},className:"w-64 bg-slate-800 border-slate-700 text-white placeholder:text-slate-400 focus:ring-cyan-500"}),l&&K.length>0&&(0,m.jsx)("div",{ref:w,className:"absolute top-full left-0 right-0 mt-1 bg-slate-800 border border-slate-700 rounded-lg shadow-xl overflow-hidden z-50",children:K.map((a,b)=>(0,m.jsxs)("button",{onClick:()=>{k(a.text),o(!1),v.current?.focus()},className:"w-full px-3 py-2 text-left hover:bg-slate-700 transition-colors flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-white text-sm truncate flex-1",children:a.text}),(0,m.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-slate-600 text-slate-300",children:a.type})]},`${a.type}-${a.text}-${b}`))})]}),(0,m.jsxs)(hu,{variant:"outline",size:"sm",onClick:()=>q(!p),className:`border-slate-600 text-slate-300 hover:text-white hover:bg-slate-700 ${p?"bg-slate-700":""}`,title:"Filter memories by type and category",children:["Filters ",(r||t)&&"•"]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[$?(0,m.jsxs)("button",{onClick:()=>gf.getState().setViewMode("dome"),className:"flex items-center gap-1.5 px-3 py-1.5 bg-red-600/20 border border-red-500/50 rounded-lg text-xs font-bold text-red-400 uppercase tracking-wider animate-pulse cursor-pointer",title:"Kill switch is active — click to view details",children:[(0,m.jsx)(km,{size:14}),"Kill Switch Active"]}):(0,m.jsxs)("button",{onClick:()=>Z.mutate(),disabled:Z.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 bg-red-600/10 border border-red-500/30 hover:bg-red-600/20 hover:border-red-500/50 disabled:opacity-50 rounded-lg text-xs font-medium text-red-400 transition-colors",title:"Emergency Stop — immediately halt all agent operations",children:[Z.isPending?(0,m.jsx)(ix,{size:12,className:"animate-spin"}):(0,m.jsx)(km,{size:14}),"Emergency Stop"]}),(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs text-slate-400 px-2",children:[(0,m.jsx)("span",{className:`w-2 h-2 rounded-full ${$?"bg-red-500 animate-pulse":W?"bg-orange-500 animate-pulse":O?"bg-green-500":"bg-yellow-500"}`,title:$?"Kill switch active — all operations blocked":W?"Memory creation paused":O?"Real-time connected":"Polling mode"}),Q?.total??M.length," memories"]})]})]}),p&&(0,m.jsxs)("div",{className:"h-12 border-b border-slate-800 flex items-center gap-4 px-4 bg-slate-900/30",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Type:"}),["short_term","long_term","episodic"].map(a=>(0,m.jsx)("button",{onClick:()=>s(r===a?void 0:a),className:`px-2 py-1 text-xs rounded-full transition-colors ${r===a?"bg-blue-600 text-white":"bg-slate-800 text-slate-300 hover:bg-slate-700"}`,children:a.replace("_","-")},a))]}),(0,m.jsx)("div",{className:"w-px h-6 bg-slate-700"}),(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-xs text-slate-400",children:"Category:"}),["architecture","pattern","error","learning","preference","context"].map(a=>(0,m.jsx)("button",{onClick:()=>u(t===a?void 0:a),className:`px-2 py-1 text-xs rounded-full transition-colors ${t===a?"bg-purple-600 text-white":"bg-slate-800 text-slate-300 hover:bg-slate-700"}`,children:a},a))]}),(r||t)&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("div",{className:"w-px h-6 bg-slate-700"}),(0,m.jsx)("button",{onClick:()=>{s(void 0),u(void 0)},className:"px-2 py-1 text-xs text-red-400 hover:text-red-300",children:"Clear all"})]})]}),(0,m.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[(0,m.jsx)(id,{}),(0,m.jsx)(E,{mode:"wait",children:(0,m.jsxs)(fw.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},className:"flex-1 relative overflow-hidden",children:["shield"===y&&(0,m.jsx)(jt,{}),"audit"===y&&(0,m.jsx)(jA,{}),"quarantine"===y&&(0,m.jsx)(jI,{}),"brain"===y&&(0,m.jsx)(kP,{memories:M,links:S,stats:Q,isLoading:N}),"graph"===y&&(0,m.jsx)(kO,{}),"timeline"===y&&(0,m.jsx)(kI,{}),"agents"===y&&(0,m.jsx)(j4,{}),"skills"===y&&(0,m.jsx)(ki,{}),"dome"===y&&(0,m.jsx)(kA,{}),"memories"===y&&(0,m.jsx)(hN,{memories:M,selectedMemory:A,onSelectMemory:a=>{B(a)}})]},y)}),A&&!aa&&"brain"!==y&&"graph"!==y&&"timeline"!==y&&(0,m.jsx)("div",{className:"w-80 border-l border-slate-800 overflow-y-auto shrink-0",children:(0,m.jsx)(hJ,{memory:A,links:S,memories:M,onClose:()=>B(null),onReinforce:a=>{U.mutate(a)},onSelectMemory:_,isReinforcing:U.isPending,reinforceSuccess:U.isSuccess})}),C&&"audit"===y&&(0,m.jsx)("div",{className:"w-80 border-l border-slate-800 overflow-y-auto shrink-0",children:(0,m.jsx)(jG,{entry:C,onClose:()=>D(null),onViewMemory:a=>{D(null),_(a),gf.getState().setViewMode("memories")}})})]}),(0,m.jsx)(kN,{open:I,onClose:()=>J(!1)})]})}a.s(["default",()=>kQ],86344)}];
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=dashboard_25b1b286._.js.map
|