@winspan/claude-forge 8.50.6 → 8.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +7 -7
- package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
- package/dist/claudemd/claudemd-generator.js +27 -237
- package/dist/claudemd/claudemd-generator.js.map +1 -1
- package/dist/claudemd/resume-manager.js +1 -1
- package/dist/claudemd/resume-manager.js.map +1 -1
- package/dist/claudemd/templates/swarm-protocol.md +222 -0
- package/dist/cli/commands/daemon.js +6 -6
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/executions.d.ts.map +1 -1
- package/dist/cli/commands/executions.js +4 -3
- package/dist/cli/commands/executions.js.map +1 -1
- package/dist/cli/commands/init.js +2 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +3 -5
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/menu.d.ts.map +1 -1
- package/dist/cli/commands/menu.js +4 -3
- package/dist/cli/commands/menu.js.map +1 -1
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +2 -3
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/status.js +2 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/trace.d.ts.map +1 -1
- package/dist/cli/commands/trace.js +11 -23
- package/dist/cli/commands/trace.js.map +1 -1
- package/dist/cli/init/hook-manager.d.ts.map +1 -1
- package/dist/cli/init/hook-manager.js +2 -2
- package/dist/cli/init/hook-manager.js.map +1 -1
- package/dist/core/ai/provider.js +2 -2
- package/dist/core/ai/provider.js.map +1 -1
- package/dist/core/constants.d.ts +12 -1
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +15 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/event-fields.d.ts +16 -0
- package/dist/core/event-fields.d.ts.map +1 -0
- package/dist/core/event-fields.js +19 -0
- package/dist/core/event-fields.js.map +1 -0
- package/dist/core/queue/index.d.ts.map +1 -1
- package/dist/core/queue/index.js +3 -4
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/storage/base.d.ts +36 -3
- package/dist/core/storage/base.d.ts.map +1 -1
- package/dist/core/storage/base.js +101 -58
- package/dist/core/storage/base.js.map +1 -1
- package/dist/core/storage/events.d.ts +92 -3
- package/dist/core/storage/events.d.ts.map +1 -1
- package/dist/core/storage/events.js +147 -0
- package/dist/core/storage/events.js.map +1 -1
- package/dist/core/storage/routing.d.ts +54 -1
- package/dist/core/storage/routing.d.ts.map +1 -1
- package/dist/core/storage/routing.js +99 -1
- package/dist/core/storage/routing.js.map +1 -1
- package/dist/core/storage/schema.sql +12 -2
- package/dist/core/storage/sessions.d.ts +20 -0
- package/dist/core/storage/sessions.d.ts.map +1 -1
- package/dist/core/storage/sessions.js +59 -0
- package/dist/core/storage/sessions.js.map +1 -1
- package/dist/core/storage/skills.d.ts +23 -0
- package/dist/core/storage/skills.d.ts.map +1 -1
- package/dist/core/storage/skills.js +47 -0
- package/dist/core/storage/skills.js.map +1 -1
- package/dist/core/storage/sqlite.d.ts +35 -2
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +93 -4
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/storage/tasks.d.ts +49 -0
- package/dist/core/storage/tasks.d.ts.map +1 -1
- package/dist/core/storage/tasks.js +143 -1
- package/dist/core/storage/tasks.js.map +1 -1
- package/dist/core/storage/token-usage.d.ts +1 -1
- package/dist/core/storage/token-usage.d.ts.map +1 -1
- package/dist/core/storage/token-usage.js +1 -1
- package/dist/core/storage/token-usage.js.map +1 -1
- package/dist/core/types.d.ts +24 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/error-handler.d.ts.map +1 -1
- package/dist/core/utils/error-handler.js +3 -2
- package/dist/core/utils/error-handler.js.map +1 -1
- package/dist/core/utils/git.d.ts +10 -0
- package/dist/core/utils/git.d.ts.map +1 -0
- package/dist/core/utils/git.js +24 -0
- package/dist/core/utils/git.js.map +1 -0
- package/dist/core/utils/logger.d.ts.map +1 -1
- package/dist/core/utils/logger.js +15 -1
- package/dist/core/utils/logger.js.map +1 -1
- package/dist/core/utils/lru-cache.d.ts +1 -0
- package/dist/core/utils/lru-cache.d.ts.map +1 -1
- package/dist/core/utils/lru-cache.js +3 -0
- package/dist/core/utils/lru-cache.js.map +1 -1
- package/dist/core/utils/token-tracker.js +1 -1
- package/dist/core/utils/token-tracker.js.map +1 -1
- package/dist/daemon/event-parser.d.ts.map +1 -1
- package/dist/daemon/event-parser.js +2 -1
- package/dist/daemon/event-parser.js.map +1 -1
- package/dist/daemon/handlers/history-exporter.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +7 -3
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/stop.d.ts +4 -0
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +23 -35
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +3 -3
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +12 -22
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +23 -9
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/lifecycle.js +3 -4
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/server.d.ts +6 -4
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +76 -85
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/services/task-segmenter.js +1 -1
- package/dist/daemon/services/task-segmenter.js.map +1 -1
- package/dist/hooks/hook-lib.sh +37 -0
- package/dist/hooks/notification.sh +2 -2
- package/dist/hooks/post-tool-use.sh +2 -2
- package/dist/hooks/pre-tool-use.sh +2 -2
- package/dist/hooks/stop.sh +9 -6
- package/dist/hooks/user-prompt-submit.sh +2 -2
- package/dist/{daemon/services → web/analytics}/anti-pattern-detector.d.ts +3 -4
- package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -0
- package/dist/{daemon/services → web/analytics}/anti-pattern-detector.js +7 -46
- package/dist/{daemon/services → web/analytics}/anti-pattern-detector.js.map +1 -1
- package/dist/web/analytics/drift-detector.d.ts.map +1 -0
- package/dist/{daemon/services → web/analytics}/drift-detector.js +10 -13
- package/dist/web/analytics/drift-detector.js.map +1 -0
- package/dist/web/analytics/weekly-report.d.ts.map +1 -0
- package/dist/{daemon/services → web/analytics}/weekly-report.js +51 -50
- package/dist/web/analytics/weekly-report.js.map +1 -0
- package/dist/web/auth-middleware.d.ts.map +1 -1
- package/dist/web/auth-middleware.js +1 -2
- package/dist/web/auth-middleware.js.map +1 -1
- package/dist/web/routes/_helpers.d.ts +16 -0
- package/dist/web/routes/_helpers.d.ts.map +1 -0
- package/dist/web/routes/_helpers.js +32 -0
- package/dist/web/routes/_helpers.js.map +1 -0
- package/dist/web/routes/drift.js +1 -1
- package/dist/web/routes/drift.js.map +1 -1
- package/dist/web/routes/insights.js +1 -1
- package/dist/web/routes/insights.js.map +1 -1
- package/dist/web/routes/reports.js +1 -1
- package/dist/web/routes/reports.js.map +1 -1
- package/dist/web/routes/rules.d.ts +3 -0
- package/dist/web/routes/rules.d.ts.map +1 -1
- package/dist/web/routes/rules.js +28 -52
- package/dist/web/routes/rules.js.map +1 -1
- package/dist/web/routes/sessions.d.ts.map +1 -1
- package/dist/web/routes/sessions.js +16 -30
- package/dist/web/routes/sessions.js.map +1 -1
- package/dist/web/routes/skill-stats.d.ts +2 -0
- package/dist/web/routes/skill-stats.d.ts.map +1 -1
- package/dist/web/routes/skill-stats.js +28 -64
- package/dist/web/routes/skill-stats.js.map +1 -1
- package/dist/web/routes/skills.d.ts.map +1 -1
- package/dist/web/routes/skills.js +5 -4
- package/dist/web/routes/skills.js.map +1 -1
- package/dist/web/routes/stats.d.ts +4 -0
- package/dist/web/routes/stats.d.ts.map +1 -1
- package/dist/web/routes/stats.js +19 -21
- package/dist/web/routes/stats.js.map +1 -1
- package/dist/web/routes/tasks.d.ts.map +1 -1
- package/dist/web/routes/tasks.js +17 -42
- package/dist/web/routes/tasks.js.map +1 -1
- package/dist/web/routes/trace.d.ts.map +1 -1
- package/dist/web/routes/trace.js +7 -17
- package/dist/web/routes/trace.js.map +1 -1
- package/dist/web/routes/types.d.ts.map +1 -1
- package/dist/web/routes/types.js +4 -3
- package/dist/web/routes/types.js.map +1 -1
- package/dist/web/static/assets/{AIConfig-BQCAQE9D.js → AIConfig-CdDWzJyO.js} +2 -2
- package/dist/web/static/assets/{AIConfig-BQCAQE9D.js.map → AIConfig-CdDWzJyO.js.map} +1 -1
- package/dist/web/static/assets/{Dashboard-D7Bo6Kan.js → Dashboard-CoEmmIDt.js} +2 -2
- package/dist/web/static/assets/{Dashboard-D7Bo6Kan.js.map → Dashboard-CoEmmIDt.js.map} +1 -1
- package/dist/web/static/assets/{Drawer-BeHRQxUS.js → Drawer-DdRTzlLB.js} +2 -2
- package/dist/web/static/assets/{Drawer-BeHRQxUS.js.map → Drawer-DdRTzlLB.js.map} +1 -1
- package/dist/web/static/assets/{Events-K_tCY2ti.js → Events-DrIq1SUS.js} +2 -2
- package/dist/web/static/assets/{Events-K_tCY2ti.js.map → Events-DrIq1SUS.js.map} +1 -1
- package/dist/web/static/assets/{Reports-BJCmBnc_.js → Reports-DFBM3MDK.js} +2 -2
- package/dist/web/static/assets/{Reports-BJCmBnc_.js.map → Reports-DFBM3MDK.js.map} +1 -1
- package/dist/web/static/assets/{SearchInput-BX2KhMkw.js → SearchInput-qCj_jAcf.js} +2 -2
- package/dist/web/static/assets/{SearchInput-BX2KhMkw.js.map → SearchInput-qCj_jAcf.js.map} +1 -1
- package/dist/web/static/assets/{SessionDetail-Bkr-kC7V.js → SessionDetail-CCzwdoT7.js} +2 -2
- package/dist/web/static/assets/{SessionDetail-Bkr-kC7V.js.map → SessionDetail-CCzwdoT7.js.map} +1 -1
- package/dist/web/static/assets/{Sessions-Chx9OCLH.js → Sessions-FfLYkAw9.js} +2 -2
- package/dist/web/static/assets/{Sessions-Chx9OCLH.js.map → Sessions-FfLYkAw9.js.map} +1 -1
- package/dist/web/static/assets/{Skills-O0GT1i7m.js → Skills-C8Gvs3Qa.js} +2 -2
- package/dist/web/static/assets/{Skills-O0GT1i7m.js.map → Skills-C8Gvs3Qa.js.map} +1 -1
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +2 -0
- package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +1 -0
- package/dist/web/static/assets/Tasks-CyuhizG8.js +2 -0
- package/dist/web/static/assets/Tasks-CyuhizG8.js.map +1 -0
- package/dist/web/static/assets/index-CBX47X8l.js +3 -0
- package/dist/web/static/assets/{index-DxIbmNmr.js.map → index-CBX47X8l.js.map} +1 -1
- package/dist/web/static/assets/index-DjIoMdoR.css +1 -0
- package/dist/web/static/assets/{lucide-fJlPI3H7.js → lucide-Bs_edTLa.js} +44 -39
- package/dist/web/static/assets/lucide-Bs_edTLa.js.map +1 -0
- package/dist/web/static/assets/react-router-r79dBVy4.js +20 -0
- package/dist/web/static/assets/{react-router-I-HqunH7.js.map → react-router-r79dBVy4.js.map} +1 -1
- package/dist/web/static/assets/task-title-BhOcemuR.js +2 -0
- package/dist/web/static/assets/task-title-BhOcemuR.js.map +1 -0
- package/dist/web/static/index.html +4 -4
- package/docs/design/h1-storage-aggregation-spec-20260518-1121.md +299 -0
- package/docs/design/h2-getdatabase-encapsulation-spec-20260518-1450.md +191 -0
- package/docs/design/h3-fallback-removal-spec-20260518-1245.md +76 -0
- package/docs/design/h4-index-dedup-spec-20260518-1230.md +109 -0
- package/docs/design/h6-services-migration-spec-20260518-1355.md +82 -0
- package/docs/design/l1-swarm-protocol-extract-spec-20260518-1605.md +106 -0
- package/docs/design/m10-forge-paths-spec-20260518-1320.md +121 -0
- package/docs/design/m2-m3-tool-input-spec-20260518-1425.md +131 -0
- package/docs/design/m7-routing-event-association-spec-20260518-1545.md +103 -0
- package/docs/design/project-path-gitroot-spec-20260518-1715.md +134 -0
- package/docs/design/task-active-gc-spec-20260518-1745.md +146 -0
- package/docs/implementation/h1-storage-aggregation-changelog-20260518-1121.md +82 -0
- package/docs/implementation/h2-final-changelog-20260518-1530.md +61 -0
- package/docs/implementation/h2-phase1-safety-net-changelog-20260518-1450.md +70 -0
- package/docs/implementation/h2-phase2-operations-changelog-20260518-1450.md +120 -0
- package/docs/implementation/h2-phase3-callsites-changelog-20260518-1450.md +71 -0
- package/docs/implementation/h3-fallback-removal-changelog-20260518-1245.md +71 -0
- package/docs/implementation/h4-index-dedup-changelog-20260518-1230.md +60 -0
- package/docs/implementation/h6-services-migration-changelog-20260518-1355.md +46 -0
- package/docs/implementation/h7-m9-defaults-changelog-20260518-1300.md +46 -0
- package/docs/implementation/l1-swarm-protocol-extract-changelog-20260518-1605.md +45 -0
- package/docs/implementation/l3-l4-daemon-perf-changelog-20260518-1410.md +63 -0
- package/docs/implementation/l6-l8-final-cleanup-changelog-20260518-1640.md +38 -0
- package/docs/implementation/m1-m4-m5-l7-cleanup-changelog-20260518-1310.md +58 -0
- package/docs/implementation/m10-forge-paths-changelog-20260518-1320.md +60 -0
- package/docs/implementation/m2-m3-tool-input-changelog-20260518-1425.md +43 -0
- package/docs/implementation/m6-m8-naming-shutdown-changelog-20260518-1340.md +56 -0
- package/docs/implementation/m7-routing-association-changelog-20260518-1545.md +69 -0
- package/docs/implementation/project-path-gitroot-changelog-20260518-1715.md +63 -0
- package/docs/implementation/task-active-gc-changelog-20260518-1745.md +35 -0
- package/docs/implementation/task-title-summary-changelog-20260518-1130.md +39 -0
- package/docs/implementation/tasks-detail-back-loses-filters-changelog-20260518-1100.md +22 -0
- package/docs/implementation/tasks-page-white-screen-hotfix-changelog-20260518-1015.md +56 -0
- package/docs/reviews/task-title-summary.md +92 -0
- package/docs/reviews/tasks-detail-back-loses-filters.md +58 -0
- package/docs/reviews/tasks-page-white-screen-hotfix.md +126 -0
- package/package.json +2 -2
- package/src/claudemd/claudemd-generator.ts +29 -238
- package/src/claudemd/resume-manager.ts +1 -1
- package/src/claudemd/templates/swarm-protocol.md +222 -0
- package/src/cli/commands/daemon.ts +6 -6
- package/src/cli/commands/executions.ts +4 -3
- package/src/cli/commands/init.ts +2 -2
- package/src/cli/commands/logs.ts +1 -1
- package/src/cli/commands/mcp.ts +3 -5
- package/src/cli/commands/menu.ts +4 -3
- package/src/cli/commands/stats.ts +2 -3
- package/src/cli/commands/status.ts +2 -2
- package/src/cli/commands/trace.ts +10 -26
- package/src/cli/init/hook-manager.ts +2 -2
- package/src/core/ai/provider.ts +2 -2
- package/src/core/constants.ts +18 -1
- package/src/core/event-fields.ts +32 -0
- package/src/core/queue/index.ts +3 -4
- package/src/core/storage/base.ts +132 -56
- package/src/core/storage/events.ts +183 -4
- package/src/core/storage/routing.ts +129 -1
- package/src/core/storage/schema.sql +12 -2
- package/src/core/storage/sessions.ts +64 -0
- package/src/core/storage/skills.ts +69 -0
- package/src/core/storage/sqlite.ts +103 -4
- package/src/core/storage/tasks.ts +149 -1
- package/src/core/storage/token-usage.ts +1 -1
- package/src/core/types.ts +30 -3
- package/src/core/utils/error-handler.ts +3 -2
- package/src/core/utils/git.ts +23 -0
- package/src/core/utils/logger.ts +16 -1
- package/src/core/utils/lru-cache.ts +4 -0
- package/src/core/utils/token-tracker.ts +1 -1
- package/src/daemon/event-parser.ts +4 -3
- package/src/daemon/handlers/history-exporter.ts +1 -1
- package/src/daemon/handlers/post-tool-use.ts +7 -3
- package/src/daemon/handlers/stop.ts +32 -39
- package/src/daemon/handlers/user-prompt.ts +12 -22
- package/src/daemon/index.ts +24 -10
- package/src/daemon/lifecycle.ts +3 -3
- package/src/daemon/server.ts +76 -89
- package/src/daemon/services/task-segmenter.ts +1 -1
- package/src/hooks/hook-lib.sh +37 -0
- package/src/hooks/notification.sh +2 -2
- package/src/hooks/post-tool-use.sh +2 -2
- package/src/hooks/pre-tool-use.sh +2 -2
- package/src/hooks/stop.sh +9 -6
- package/src/hooks/user-prompt-submit.sh +2 -2
- package/src/{daemon/services → web/analytics}/anti-pattern-detector.ts +9 -54
- package/src/{daemon/services → web/analytics}/drift-detector.ts +10 -23
- package/src/{daemon/services → web/analytics}/weekly-report.ts +52 -75
- package/src/web/auth-middleware.ts +1 -2
- package/src/web/routes/_helpers.ts +34 -0
- package/src/web/routes/drift.ts +1 -1
- package/src/web/routes/insights.ts +1 -1
- package/src/web/routes/reports.ts +1 -1
- package/src/web/routes/rules.ts +31 -56
- package/src/web/routes/sessions.ts +18 -30
- package/src/web/routes/skill-stats.ts +29 -69
- package/src/web/routes/skills.ts +5 -4
- package/src/web/routes/stats.ts +19 -29
- package/src/web/routes/tasks.ts +17 -42
- package/src/web/routes/trace.ts +7 -19
- package/src/web/routes/types.ts +4 -3
- package/tests/integration/claudemd-generator.test.ts +90 -0
- package/tests/integration/web-analytics.integration.test.ts +133 -0
- package/tests/integration/web-stats.integration.test.ts +135 -0
- package/tests/integration/web-trace.integration.test.ts +175 -0
- package/tests/unit/core/forge-paths.test.ts +99 -0
- package/tests/unit/daemon/post-tool-use.test.ts +121 -0
- package/tests/unit/daemon/stop-handler-behavior-summary.test.ts +202 -0
- package/tests/unit/daemon/task-segmenter-recover.test.ts +84 -0
- package/tests/unit/event-fields.test.ts +88 -0
- package/tests/unit/event-parser.test.ts +55 -0
- package/tests/unit/hooks/resolve-project-path.test.ts +122 -0
- package/tests/unit/socket-server.test.ts +183 -0
- package/tests/unit/storage/event-operations-aggregates.test.ts +342 -0
- package/tests/unit/storage/migration-idempotent.test.ts +304 -0
- package/tests/unit/storage/routing-aggregates.test.ts +276 -0
- package/tests/unit/storage/routing.test.ts +117 -0
- package/tests/unit/storage/schema-missing.test.ts +81 -0
- package/tests/unit/storage/session-operations-aggregates.test.ts +120 -0
- package/tests/unit/storage/skill-operations-counts.test.ts +106 -0
- package/tests/unit/storage/skills-aggregates.test.ts +104 -0
- package/tests/unit/storage/sqlite-refactor-harness.test.ts +3 -3
- package/tests/unit/storage/task-operations-counts.test.ts +46 -0
- package/tests/unit/storage/tasks-getById.test.ts +343 -0
- package/tests/unit/storage/tasks-stale-gc.test.ts +86 -0
- package/tests/unit/token-usage.test.ts +6 -6
- package/tests/unit/web/navigation-back-contract.test.ts +134 -0
- package/tests/unit/web/routes-rules.test.ts +182 -0
- package/tests/unit/web/routes-tasks.test.ts +34 -0
- package/tests/unit/web/task-title-contract.test.ts +210 -0
- package/tests/unit/web/tasks-component-contract.test.ts +179 -0
- package/vitest.config.ts +1 -1
- package/web/src/pages/TaskDetail.tsx +9 -5
- package/web/src/pages/Tasks.tsx +315 -50
- package/web/src/utils/navigation.ts +25 -0
- package/web/src/utils/task-title.ts +49 -0
- package/dist/daemon/services/anti-pattern-detector.d.ts.map +0 -1
- package/dist/daemon/services/drift-detector.d.ts.map +0 -1
- package/dist/daemon/services/drift-detector.js.map +0 -1
- package/dist/daemon/services/weekly-report.d.ts.map +0 -1
- package/dist/daemon/services/weekly-report.js.map +0 -1
- package/dist/web/static/assets/TaskDetail-5SR8zGzv.js +0 -2
- package/dist/web/static/assets/TaskDetail-5SR8zGzv.js.map +0 -1
- package/dist/web/static/assets/Tasks-DCgDqvOZ.js +0 -2
- package/dist/web/static/assets/Tasks-DCgDqvOZ.js.map +0 -1
- package/dist/web/static/assets/index-D8AKj26b.css +0 -1
- package/dist/web/static/assets/index-DxIbmNmr.js +0 -3
- package/dist/web/static/assets/lucide-fJlPI3H7.js.map +0 -1
- package/dist/web/static/assets/react-router-I-HqunH7.js +0 -20
- /package/dist/{daemon/services → web/analytics}/drift-detector.d.ts +0 -0
- /package/dist/{daemon/services → web/analytics}/weekly-report.d.ts +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as N,j as e}from"./react-vendor-CSp-GLFF.js";import{c as H,L as k}from"./react-router-I-HqunH7.js";import{u as L}from"./query-C99w429o.js";import{p as m}from"./time-Bxuk0M-C.js";import{d as o}from"./vendor-CMMjVdZs.js";import{j as I,o as q,n as B,a as R,g as S,q as W,r as f,s as y,B as A,t as D,F as G,h as E,u as O,p as z,f as K,i as Q,v as U,m as J}from"./lucide-fJlPI3H7.js";import{f as w}from"./date-fns-CZ_bHujz.js";async function V(n){const d=await fetch(`/api/tasks/${n}`);if(!d.ok)throw new Error("Failed to fetch task detail");const a=await d.json();return{...a.task,userPrompts:a.userPrompts??[],injections:a.injections??[],timeline:(a.timeline??[]).map((l,j)=>({id:`${l.timestamp}-${l.tool_name}-${j}`,timestamp:l.timestamp,tool_name:l.tool_name,hook_type:l.hook_type,input:l.input,output:l.output,is_agent_call:l.is_agent_call,agent_detail:l.agent_detail})),skillInvocations:a.skillInvocations??[],artifacts:a.artifacts??[]}}function X(n){switch(n){case"Read":return e.jsx(J,{className:"h-4 w-4 text-gray-500"});case"Edit":return e.jsx(U,{className:"h-4 w-4 text-amber-600"});case"Write":return e.jsx(Q,{className:"h-4 w-4 text-green-600"});case"Bash":return e.jsx(E,{className:"h-4 w-4 text-orange-600"});case"Agent":case"Task":return e.jsx(K,{className:"h-4 w-4 text-blue-600"});case"Grep":case"Glob":return e.jsx(z,{className:"h-4 w-4 text-purple-500"});case"WebSearch":case"WebFetch":return e.jsx(O,{className:"h-4 w-4 text-cyan-600"});default:return e.jsx(E,{className:"h-4 w-4 text-gray-400"})}}function Y(n,d){const a=m(n).getTime()-m(d).getTime();return a<1e3?"+0s":a<6e4?`+${Math.floor(a/1e3)}s`:a<36e5?`+${Math.floor(a/6e4)}m${Math.floor(a%6e4/1e3)}s`:`+${Math.floor(a/36e5)}h${Math.floor(a%36e5/6e4)}m`}function ne(){const{taskId:n}=H(),[d,a]=N.useState(new Set),[l,j]=N.useState(new Set),[b,M]=N.useState(!0),{data:t,isLoading:T,error:h}=L({queryKey:["task-detail",n],queryFn:()=>V(n),enabled:!!n,refetchInterval:1e4});if(T)return e.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:e.jsx("p",{className:"text-gray-600",children:"加载中..."})});if(h||!t)return e.jsxs("div",{children:[e.jsxs(k,{to:"/tasks",className:"inline-flex items-center text-sm text-gray-500 hover:text-gray-700 mb-4",children:[e.jsx(I,{className:"h-4 w-4 mr-1"}),"返回"]}),e.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:e.jsxs("p",{className:"text-red-600",children:["加载失败: ",(h==null?void 0:h.message)||"未知错误"]})})]});const C=s=>{a(i=>{const r=new Set(i);return r.has(s)?r.delete(s):r.add(s),r})},$=s=>{j(i=>{const r=new Set(i);return r.has(s)?r.delete(s):r.add(s),r})},P=t.end_time?`${Math.round((m(t.end_time).getTime()-m(t.start_time).getTime())/1e3)}s`:"进行中";return e.jsxs("div",{children:[e.jsxs(k,{to:"/tasks",className:"inline-flex items-center text-sm text-gray-500 hover:text-gray-700 mb-4",children:[e.jsx(I,{className:"h-4 w-4 mr-1"}),"返回任务列表"]}),e.jsxs("div",{className:"bg-white rounded-lg shadow p-6 mb-6",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("h1",{className:"text-xl font-bold text-gray-900",children:t.title}),e.jsxs("span",{className:o("px-2 py-1 text-xs font-medium rounded-full",t.status==="completed"&&"bg-green-100 text-green-700",t.status==="active"&&"bg-blue-100 text-blue-700",t.status==="abandoned"&&"bg-gray-100 text-gray-600"),children:[t.status==="completed"&&e.jsx(q,{className:"h-3 w-3 inline mr-1"}),t.status==="active"&&e.jsx(B,{className:"h-3 w-3 inline mr-1 animate-spin"}),t.status]})]}),e.jsxs("div",{className:"grid grid-cols-4 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-gray-500 mb-1",children:"开始时间"}),e.jsx("div",{className:"text-gray-900",children:w(m(t.start_time),"MM-dd HH:mm:ss")})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-gray-500 mb-1",children:"结束时间"}),e.jsx("div",{className:"text-gray-900",children:t.end_time?w(m(t.end_time),"MM-dd HH:mm:ss"):"-"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-gray-500 mb-1",children:"持续时间"}),e.jsx("div",{className:"text-gray-900",children:P})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-gray-500 mb-1",children:"事件数"}),e.jsx("div",{className:"text-gray-900",children:t.event_count})]})]})]}),t.userPrompts.length>0&&e.jsxs("div",{className:"bg-white rounded-lg shadow p-6 mb-6",children:[e.jsxs("h2",{className:"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(R,{className:"h-4 w-4 text-purple-500"}),"用户消息",e.jsx("span",{className:"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full",children:t.userPrompts.length})]}),e.jsx("div",{className:"space-y-3",children:t.userPrompts.map((s,i)=>e.jsxs("div",{className:"bg-purple-50 border border-purple-100 rounded-lg p-3",children:[e.jsx("div",{className:"text-xs text-gray-500 mb-1 font-mono",children:w(m(s.timestamp),"HH:mm:ss")}),e.jsx("div",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:s.content})]},i))})]}),t.userPrompts.length===0&&t.injections.length===0&&t.timeline.length===0&&t.skillInvocations.length===0&&t.artifacts.length===0&&e.jsxs("div",{className:"bg-white rounded-lg shadow p-12 text-center",children:[e.jsx(S,{className:"h-12 w-12 text-gray-300 mx-auto mb-3"}),e.jsx("p",{className:"text-sm text-gray-500",children:"该任务暂无可展示的执行内容"}),e.jsx("p",{className:"text-xs text-gray-400 mt-1",children:"事件可能仍在记录中,稍后刷新查看"})]}),t.injections.length>0&&e.jsxs("div",{className:"bg-white rounded-lg shadow mb-6",children:[e.jsxs("button",{onClick:()=>M(!b),className:"w-full flex items-center justify-between p-4 text-left hover:bg-gray-50 rounded-t-lg",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(W,{className:"h-4 w-4 text-gray-500"}),e.jsx("h2",{className:"text-base font-semibold text-gray-900",children:"注入内容"}),e.jsx("span",{className:"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full",children:t.injections.length})]}),b?e.jsx(f,{className:"h-4 w-4 text-gray-400"}):e.jsx(y,{className:"h-4 w-4 text-gray-400"})]}),b&&e.jsx("div",{className:"px-4 pb-4 space-y-2",children:t.injections.map(s=>e.jsxs("div",{className:"bg-gray-50 rounded-lg border border-gray-100",children:[e.jsxs("button",{onClick:()=>C(s.id),className:"w-full flex items-center justify-between p-3 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx("span",{className:o("px-1.5 py-0.5 text-xs rounded font-mono",s.injection_type==="systemMessage"?"bg-blue-50 text-blue-700":"bg-amber-50 text-amber-700"),children:s.injection_type}),e.jsx("span",{className:"text-gray-600",children:s.source_handler})]}),d.has(s.id)?e.jsx(f,{className:"h-3 w-3 text-gray-400"}):e.jsx(y,{className:"h-3 w-3 text-gray-400"})]}),d.has(s.id)&&e.jsx("div",{className:"px-3 pb-3",children:e.jsx("pre",{className:"text-xs text-gray-700 bg-white border border-gray-200 rounded p-3 overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap",children:s.content})})]},s.id))})]}),t.timeline.length>0&&e.jsxs("div",{className:"bg-white rounded-lg shadow p-6 mb-6",children:[e.jsxs("h2",{className:"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(S,{className:"h-4 w-4 text-gray-500"}),"执行时间线",e.jsx("span",{className:"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full",children:t.timeline.length})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute left-[19px] top-2 bottom-2 w-px bg-gray-200"}),e.jsx("div",{className:"space-y-0",children:t.timeline.map((s,i)=>{var v,_;const r=s.is_agent_call,p=s.tool_name==="Edit"||s.tool_name==="Write",g=l.has(i),c=s.input,x=c==null?void 0:c.file_path,u=(c==null?void 0:c.description)||(c==null?void 0:c.command);return e.jsxs("div",{className:o("relative flex items-start gap-3 py-2 px-2 rounded-md cursor-pointer hover:bg-gray-50 transition-colors",r&&"bg-blue-50 hover:bg-blue-100"),onClick:()=>$(i),children:[e.jsx("div",{className:"relative z-10 flex-shrink-0 w-10 flex justify-center",children:e.jsx("div",{className:o("w-8 h-8 rounded-full flex items-center justify-center",r?"bg-blue-100":"bg-white border border-gray-200"),children:X(s.tool_name)})}),e.jsxs("div",{className:"flex-1 min-w-0 pt-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:o("text-sm font-medium",r?"text-blue-700":"text-gray-900"),children:s.tool_name}),((v=s.agent_detail)==null?void 0:v.subagent_type)&&e.jsx("span",{className:"text-xs bg-blue-100 text-blue-700 px-1.5 py-0.5 rounded font-mono",children:s.agent_detail.subagent_type}),((_=s.agent_detail)==null?void 0:_.name)&&e.jsx("span",{className:"text-xs text-blue-600",children:s.agent_detail.name}),e.jsxs("span",{className:"text-xs text-gray-400 font-mono ml-auto flex items-center gap-1",children:[Y(s.timestamp,t.start_time),g?e.jsx(f,{className:"h-3 w-3"}):e.jsx(y,{className:"h-3 w-3"})]})]}),!g&&p&&x&&e.jsx("p",{className:"text-xs text-green-700 font-mono mt-0.5 truncate",title:x,children:x}),!g&&!p&&u&&e.jsx("p",{className:"text-xs text-gray-500 mt-0.5 truncate",children:u}),g&&e.jsxs("div",{className:"mt-2 space-y-2 text-xs",onClick:F=>F.stopPropagation(),children:[r&&s.agent_detail&&e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3 space-y-2",children:[s.agent_detail.subagent_type&&e.jsxs("div",{children:[e.jsx("span",{className:"text-blue-600 font-medium",children:"subagent_type: "}),e.jsx("span",{className:"font-mono text-blue-800",children:s.agent_detail.subagent_type})]}),s.agent_detail.name&&e.jsxs("div",{children:[e.jsx("span",{className:"text-blue-600 font-medium",children:"name: "}),e.jsx("span",{className:"font-mono text-blue-800",children:s.agent_detail.name})]}),s.agent_detail.prompt&&e.jsxs("div",{children:[e.jsx("span",{className:"text-blue-600 font-medium",children:"prompt:"}),e.jsx("pre",{className:"mt-1 p-2 bg-white rounded border border-blue-100 text-gray-800 whitespace-pre-wrap break-words max-h-60 overflow-y-auto",children:s.agent_detail.prompt})]})]}),p&&x&&e.jsxs("div",{className:"bg-green-50 border border-green-200 rounded-lg p-3",children:[e.jsx("span",{className:"text-green-700 font-medium",children:"file: "}),e.jsx("span",{className:"font-mono text-green-800",children:x})]}),!r&&u&&e.jsx("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-3",children:e.jsx("pre",{className:"text-gray-700 whitespace-pre-wrap break-words max-h-40 overflow-y-auto",children:u})}),!r&&!p&&x&&e.jsxs("div",{className:"text-gray-500",children:[e.jsx("span",{className:"font-medium",children:"path: "}),e.jsx("span",{className:"font-mono",children:x})]})]})]})]},s.id||i)})})]})]}),t.skillInvocations.length>0&&e.jsxs("div",{className:"bg-white rounded-lg shadow p-6 mb-6",children:[e.jsxs("h2",{className:"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(A,{className:"h-4 w-4 text-purple-500"}),"Skill 调用",e.jsx("span",{className:"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full",children:t.skillInvocations.length})]}),e.jsx("div",{className:"space-y-3",children:t.skillInvocations.map(s=>e.jsxs("div",{className:"border border-purple-100 bg-purple-50 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{className:"text-sm font-medium text-purple-800 font-mono",children:s.skill_id}),s.workflow&&e.jsx("span",{className:"text-xs bg-purple-100 text-purple-700 px-1.5 py-0.5 rounded",children:s.workflow}),s.phase&&e.jsxs("span",{className:"text-xs bg-purple-100 text-purple-700 px-1.5 py-0.5 rounded",children:["phase: ",s.phase]})]}),e.jsx("p",{className:"text-xs text-purple-700",children:s.reason})]},s.id))})]}),t.artifacts.length>0&&e.jsxs("div",{className:"bg-white rounded-lg shadow p-6 mb-6",children:[e.jsxs("h2",{className:"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(D,{className:"h-4 w-4 text-green-600"}),"产物",e.jsxs("span",{className:"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full",children:[t.artifacts.length," 个文件"]})]}),e.jsx("div",{className:"space-y-1",children:t.artifacts.map(s=>e.jsxs("div",{className:"flex items-center gap-2 py-1.5 px-3 rounded hover:bg-green-50",children:[e.jsx(G,{className:"h-4 w-4 text-green-600 flex-shrink-0"}),e.jsx("span",{className:"text-sm text-gray-800 font-mono truncate",title:s,children:s})]},s))})]})]})}export{ne as default};
|
|
2
|
-
//# sourceMappingURL=TaskDetail-5SR8zGzv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaskDetail-5SR8zGzv.js","sources":["../../src/pages/TaskDetail.tsx"],"sourcesContent":["import { useParams, Link } from 'react-router-dom'\nimport { useQuery } from '@tanstack/react-query'\nimport { useState } from 'react'\nimport { format } from 'date-fns'\nimport { parseUTC } from '../utils/time'\nimport {\n ArrowLeft,\n Clock,\n CheckCircle2,\n Loader2,\n ChevronDown,\n ChevronRight,\n FileText,\n Terminal,\n FileEdit,\n Bot,\n BookOpen,\n Syringe,\n FolderOpen,\n Eye,\n Pencil,\n Search,\n Globe,\n MessageSquare,\n} from 'lucide-react'\nimport clsx from 'clsx'\n\ninterface Injection {\n id: string\n injection_type: 'systemMessage' | 'additionalContext'\n source_handler: string\n content: string\n timestamp: string\n}\n\ninterface TimelineEvent {\n id: string\n timestamp: string\n tool_name: string\n hook_type: string\n input: unknown\n output: unknown\n is_agent_call: boolean\n agent_detail?: {\n subagent_type?: string\n name?: string\n prompt?: string\n }\n}\n\ninterface SkillInvocation {\n id: string\n skill_id: string\n reason: string\n workflow?: string\n phase?: string\n timestamp: string\n}\n\ninterface UserPrompt {\n timestamp: string\n content: string\n}\n\ninterface TaskDetailData {\n id: string\n title: string\n status: 'active' | 'completed' | 'abandoned'\n start_time: string\n end_time?: string\n event_count: number\n session_id: string\n userPrompts: UserPrompt[]\n injections: Injection[]\n timeline: TimelineEvent[]\n skillInvocations: SkillInvocation[]\n artifacts: string[]\n}\n\nasync function fetchTaskDetail(taskId: string): Promise<TaskDetailData> {\n const res = await fetch(`/api/tasks/${taskId}`)\n if (!res.ok) throw new Error('Failed to fetch task detail')\n const raw = await res.json()\n // API returns { task: {...}, injections, timeline, skillInvocations, artifacts }\n // Flatten task fields into top level for component consumption\n return {\n ...raw.task,\n userPrompts: raw.userPrompts ?? [],\n injections: raw.injections ?? [],\n timeline: (raw.timeline ?? []).map((e: any, idx: number) => ({\n id: `${e.timestamp}-${e.tool_name}-${idx}`,\n timestamp: e.timestamp,\n tool_name: e.tool_name,\n hook_type: e.hook_type,\n input: e.input,\n output: e.output,\n is_agent_call: e.is_agent_call,\n agent_detail: e.agent_detail,\n })),\n skillInvocations: raw.skillInvocations ?? [],\n artifacts: raw.artifacts ?? [],\n }\n}\n\nfunction getToolIcon(toolName: string) {\n switch (toolName) {\n case 'Read':\n return <Eye className=\"h-4 w-4 text-gray-500\" />\n case 'Edit':\n return <Pencil className=\"h-4 w-4 text-amber-600\" />\n case 'Write':\n return <FileEdit className=\"h-4 w-4 text-green-600\" />\n case 'Bash':\n return <Terminal className=\"h-4 w-4 text-orange-600\" />\n case 'Agent':\n case 'Task':\n return <Bot className=\"h-4 w-4 text-blue-600\" />\n case 'Grep':\n case 'Glob':\n return <Search className=\"h-4 w-4 text-purple-500\" />\n case 'WebSearch':\n case 'WebFetch':\n return <Globe className=\"h-4 w-4 text-cyan-600\" />\n default:\n return <Terminal className=\"h-4 w-4 text-gray-400\" />\n }\n}\n\nfunction getRelativeTime(eventTime: string, startTime: string): string {\n const diff = parseUTC(eventTime).getTime() - parseUTC(startTime).getTime()\n if (diff < 1000) return '+0s'\n if (diff < 60000) return `+${Math.floor(diff / 1000)}s`\n if (diff < 3600000) return `+${Math.floor(diff / 60000)}m${Math.floor((diff % 60000) / 1000)}s`\n return `+${Math.floor(diff / 3600000)}h${Math.floor((diff % 3600000) / 60000)}m`\n}\n\nexport default function TaskDetail() {\n const { taskId } = useParams<{ taskId: string }>()\n const [expandedInjections, setExpandedInjections] = useState<Set<string>>(new Set())\n const [expandedEvents, setExpandedEvents] = useState<Set<number>>(new Set())\n const [showInjections, setShowInjections] = useState(true)\n\n const { data, isLoading, error } = useQuery({\n queryKey: ['task-detail', taskId],\n queryFn: () => fetchTaskDetail(taskId!),\n enabled: !!taskId,\n refetchInterval: 10000,\n })\n\n if (isLoading) {\n return (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <p className=\"text-gray-600\">加载中...</p>\n </div>\n )\n }\n\n if (error || !data) {\n return (\n <div>\n <Link to=\"/tasks\" className=\"inline-flex items-center text-sm text-gray-500 hover:text-gray-700 mb-4\">\n <ArrowLeft className=\"h-4 w-4 mr-1\" />返回\n </Link>\n <div className=\"bg-white rounded-lg shadow p-6\">\n <p className=\"text-red-600\">加载失败: {(error as Error)?.message || '未知错误'}</p>\n </div>\n </div>\n )\n }\n\n const toggleInjection = (id: string) => {\n setExpandedInjections(prev => {\n const next = new Set(prev)\n if (next.has(id)) next.delete(id)\n else next.add(id)\n return next\n })\n }\n\n const toggleEvent = (idx: number) => {\n setExpandedEvents(prev => {\n const next = new Set(prev)\n if (next.has(idx)) next.delete(idx)\n else next.add(idx)\n return next\n })\n }\n\n const duration = data.end_time\n ? `${Math.round((parseUTC(data.end_time).getTime() - parseUTC(data.start_time).getTime()) / 1000)}s`\n : '进行中'\n\n return (\n <div>\n <Link to=\"/tasks\" className=\"inline-flex items-center text-sm text-gray-500 hover:text-gray-700 mb-4\">\n <ArrowLeft className=\"h-4 w-4 mr-1\" />返回任务列表\n </Link>\n\n {/* 区域 1:任务概览 */}\n <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n <div className=\"flex items-start justify-between mb-4\">\n <h1 className=\"text-xl font-bold text-gray-900\">{data.title}</h1>\n <span className={clsx(\n 'px-2 py-1 text-xs font-medium rounded-full',\n data.status === 'completed' && 'bg-green-100 text-green-700',\n data.status === 'active' && 'bg-blue-100 text-blue-700',\n data.status === 'abandoned' && 'bg-gray-100 text-gray-600'\n )}>\n {data.status === 'completed' && <CheckCircle2 className=\"h-3 w-3 inline mr-1\" />}\n {data.status === 'active' && <Loader2 className=\"h-3 w-3 inline mr-1 animate-spin\" />}\n {data.status}\n </span>\n </div>\n <div className=\"grid grid-cols-4 gap-4 text-sm\">\n <div>\n <div className=\"text-xs text-gray-500 mb-1\">开始时间</div>\n <div className=\"text-gray-900\">\n {format(parseUTC(data.start_time), 'MM-dd HH:mm:ss')}\n </div>\n </div>\n <div>\n <div className=\"text-xs text-gray-500 mb-1\">结束时间</div>\n <div className=\"text-gray-900\">\n {data.end_time ? format(parseUTC(data.end_time), 'MM-dd HH:mm:ss') : '-'}\n </div>\n </div>\n <div>\n <div className=\"text-xs text-gray-500 mb-1\">持续时间</div>\n <div className=\"text-gray-900\">{duration}</div>\n </div>\n <div>\n <div className=\"text-xs text-gray-500 mb-1\">事件数</div>\n <div className=\"text-gray-900\">{data.event_count}</div>\n </div>\n </div>\n </div>\n\n {/* 区域 1.5:用户消息 */}\n {data.userPrompts.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n <h2 className=\"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2\">\n <MessageSquare className=\"h-4 w-4 text-purple-500\" />\n 用户消息\n <span className=\"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full\">\n {data.userPrompts.length}\n </span>\n </h2>\n <div className=\"space-y-3\">\n {data.userPrompts.map((up, idx) => (\n <div key={idx} className=\"bg-purple-50 border border-purple-100 rounded-lg p-3\">\n <div className=\"text-xs text-gray-500 mb-1 font-mono\">\n {format(parseUTC(up.timestamp), 'HH:mm:ss')}\n </div>\n <div className=\"text-sm text-gray-800 whitespace-pre-wrap\">{up.content}</div>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* 空状态:所有详情区块都为空时的兜底提示 */}\n {data.userPrompts.length === 0 &&\n data.injections.length === 0 &&\n data.timeline.length === 0 &&\n data.skillInvocations.length === 0 &&\n data.artifacts.length === 0 && (\n <div className=\"bg-white rounded-lg shadow p-12 text-center\">\n <Clock className=\"h-12 w-12 text-gray-300 mx-auto mb-3\" />\n <p className=\"text-sm text-gray-500\">该任务暂无可展示的执行内容</p>\n <p className=\"text-xs text-gray-400 mt-1\">事件可能仍在记录中,稍后刷新查看</p>\n </div>\n )}\n\n {/* 区域 2:注入内容 */}\n {data.injections.length > 0 && (\n <div className=\"bg-white rounded-lg shadow mb-6\">\n <button\n onClick={() => setShowInjections(!showInjections)}\n className=\"w-full flex items-center justify-between p-4 text-left hover:bg-gray-50 rounded-t-lg\"\n >\n <div className=\"flex items-center gap-2\">\n <Syringe className=\"h-4 w-4 text-gray-500\" />\n <h2 className=\"text-base font-semibold text-gray-900\">注入内容</h2>\n <span className=\"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full\">\n {data.injections.length}\n </span>\n </div>\n {showInjections ? <ChevronDown className=\"h-4 w-4 text-gray-400\" /> : <ChevronRight className=\"h-4 w-4 text-gray-400\" />}\n </button>\n {showInjections && (\n <div className=\"px-4 pb-4 space-y-2\">\n {data.injections.map((inj) => (\n <div key={inj.id} className=\"bg-gray-50 rounded-lg border border-gray-100\">\n <button\n onClick={() => toggleInjection(inj.id)}\n className=\"w-full flex items-center justify-between p-3 text-left\"\n >\n <div className=\"flex items-center gap-2 text-sm\">\n <span className={clsx(\n 'px-1.5 py-0.5 text-xs rounded font-mono',\n inj.injection_type === 'systemMessage' ? 'bg-blue-50 text-blue-700' : 'bg-amber-50 text-amber-700'\n )}>\n {inj.injection_type}\n </span>\n <span className=\"text-gray-600\">{inj.source_handler}</span>\n </div>\n {expandedInjections.has(inj.id) ? <ChevronDown className=\"h-3 w-3 text-gray-400\" /> : <ChevronRight className=\"h-3 w-3 text-gray-400\" />}\n </button>\n {expandedInjections.has(inj.id) && (\n <div className=\"px-3 pb-3\">\n <pre className=\"text-xs text-gray-700 bg-white border border-gray-200 rounded p-3 overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap\">\n {inj.content}\n </pre>\n </div>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n\n {/* 区域 3:执行时间线 */}\n {data.timeline.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n <h2 className=\"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2\">\n <Clock className=\"h-4 w-4 text-gray-500\" />\n 执行时间线\n <span className=\"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full\">\n {data.timeline.length}\n </span>\n </h2>\n <div className=\"relative\">\n {/* 竖线 */}\n <div className=\"absolute left-[19px] top-2 bottom-2 w-px bg-gray-200\" />\n <div className=\"space-y-0\">\n {data.timeline.map((event, idx) => {\n const isAgent = event.is_agent_call\n const isFileOp = event.tool_name === 'Edit' || event.tool_name === 'Write'\n const isExpanded = expandedEvents.has(idx)\n const input = event.input as Record<string, unknown> | null\n const filePath = input?.file_path as string | undefined\n const description = (input?.description || input?.command) as string | undefined\n\n return (\n <div key={event.id || idx} className={clsx(\n 'relative flex items-start gap-3 py-2 px-2 rounded-md cursor-pointer hover:bg-gray-50 transition-colors',\n isAgent && 'bg-blue-50 hover:bg-blue-100',\n )}\n onClick={() => toggleEvent(idx)}\n >\n <div className=\"relative z-10 flex-shrink-0 w-10 flex justify-center\">\n <div className={clsx(\n 'w-8 h-8 rounded-full flex items-center justify-center',\n isAgent ? 'bg-blue-100' : 'bg-white border border-gray-200'\n )}>\n {getToolIcon(event.tool_name)}\n </div>\n </div>\n <div className=\"flex-1 min-w-0 pt-1\">\n <div className=\"flex items-center gap-2\">\n <span className={clsx(\n 'text-sm font-medium',\n isAgent ? 'text-blue-700' : 'text-gray-900'\n )}>\n {event.tool_name}\n </span>\n {event.agent_detail?.subagent_type && (\n <span className=\"text-xs bg-blue-100 text-blue-700 px-1.5 py-0.5 rounded font-mono\">\n {event.agent_detail.subagent_type}\n </span>\n )}\n {event.agent_detail?.name && (\n <span className=\"text-xs text-blue-600\">\n {event.agent_detail.name}\n </span>\n )}\n <span className=\"text-xs text-gray-400 font-mono ml-auto flex items-center gap-1\">\n {getRelativeTime(event.timestamp, data.start_time)}\n {isExpanded ? <ChevronDown className=\"h-3 w-3\" /> : <ChevronRight className=\"h-3 w-3\" />}\n </span>\n </div>\n {!isExpanded && isFileOp && filePath && (\n <p className=\"text-xs text-green-700 font-mono mt-0.5 truncate\" title={filePath}>\n {filePath}\n </p>\n )}\n {!isExpanded && !isFileOp && description && (\n <p className=\"text-xs text-gray-500 mt-0.5 truncate\">{description}</p>\n )}\n {/* 展开的详细内容 */}\n {isExpanded && (\n <div className=\"mt-2 space-y-2 text-xs\" onClick={e => e.stopPropagation()}>\n {/* Agent 调用详情 */}\n {isAgent && event.agent_detail && (\n <div className=\"bg-blue-50 border border-blue-200 rounded-lg p-3 space-y-2\">\n {event.agent_detail.subagent_type && (\n <div>\n <span className=\"text-blue-600 font-medium\">subagent_type: </span>\n <span className=\"font-mono text-blue-800\">{event.agent_detail.subagent_type}</span>\n </div>\n )}\n {event.agent_detail.name && (\n <div>\n <span className=\"text-blue-600 font-medium\">name: </span>\n <span className=\"font-mono text-blue-800\">{event.agent_detail.name}</span>\n </div>\n )}\n {event.agent_detail.prompt && (\n <div>\n <span className=\"text-blue-600 font-medium\">prompt:</span>\n <pre className=\"mt-1 p-2 bg-white rounded border border-blue-100 text-gray-800 whitespace-pre-wrap break-words max-h-60 overflow-y-auto\">\n {event.agent_detail.prompt}\n </pre>\n </div>\n )}\n </div>\n )}\n {/* 文件操作详情 */}\n {isFileOp && filePath && (\n <div className=\"bg-green-50 border border-green-200 rounded-lg p-3\">\n <span className=\"text-green-700 font-medium\">file: </span>\n <span className=\"font-mono text-green-800\">{filePath}</span>\n </div>\n )}\n {/* 通用工具详情 */}\n {!isAgent && description && (\n <div className=\"bg-gray-50 border border-gray-200 rounded-lg p-3\">\n <pre className=\"text-gray-700 whitespace-pre-wrap break-words max-h-40 overflow-y-auto\">\n {description}\n </pre>\n </div>\n )}\n {/* 文件路径(非文件操作工具,如 Read) */}\n {!isAgent && !isFileOp && filePath && (\n <div className=\"text-gray-500\">\n <span className=\"font-medium\">path: </span>\n <span className=\"font-mono\">{filePath}</span>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n </div>\n )}\n\n {/* 区域 4:Skill 调用 */}\n {data.skillInvocations.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n <h2 className=\"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2\">\n <BookOpen className=\"h-4 w-4 text-purple-500\" />\n Skill 调用\n <span className=\"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full\">\n {data.skillInvocations.length}\n </span>\n </h2>\n <div className=\"space-y-3\">\n {data.skillInvocations.map((skill) => (\n <div key={skill.id} className=\"border border-purple-100 bg-purple-50 rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"text-sm font-medium text-purple-800 font-mono\">\n {skill.skill_id}\n </span>\n {skill.workflow && (\n <span className=\"text-xs bg-purple-100 text-purple-700 px-1.5 py-0.5 rounded\">\n {skill.workflow}\n </span>\n )}\n {skill.phase && (\n <span className=\"text-xs bg-purple-100 text-purple-700 px-1.5 py-0.5 rounded\">\n phase: {skill.phase}\n </span>\n )}\n </div>\n <p className=\"text-xs text-purple-700\">{skill.reason}</p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* 区域 5:产物 */}\n {data.artifacts.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n <h2 className=\"text-base font-semibold text-gray-900 mb-4 flex items-center gap-2\">\n <FolderOpen className=\"h-4 w-4 text-green-600\" />\n 产物\n <span className=\"text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full\">\n {data.artifacts.length} 个文件\n </span>\n </h2>\n <div className=\"space-y-1\">\n {data.artifacts.map((filePath) => (\n <div key={filePath} className=\"flex items-center gap-2 py-1.5 px-3 rounded hover:bg-green-50\">\n <FileText className=\"h-4 w-4 text-green-600 flex-shrink-0\" />\n <span className=\"text-sm text-gray-800 font-mono truncate\" title={filePath}>\n {filePath}\n </span>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["fetchTaskDetail","taskId","res","raw","e","idx","getToolIcon","toolName","jsx","Eye","Pencil","FileEdit","Terminal","Bot","Search","Globe","getRelativeTime","eventTime","startTime","diff","parseUTC","TaskDetail","useParams","expandedInjections","setExpandedInjections","useState","expandedEvents","setExpandedEvents","showInjections","setShowInjections","data","isLoading","error","useQuery","jsxs","Link","ArrowLeft","toggleInjection","id","prev","next","toggleEvent","duration","clsx","CheckCircle2","Loader2","format","MessageSquare","up","Clock","Syringe","ChevronDown","ChevronRight","inj","event","isAgent","isFileOp","isExpanded","input","filePath","description","_a","_b","BookOpen","skill","FolderOpen","FileText"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as d,j as e}from"./react-vendor-CSp-GLFF.js";import{u}from"./query-C99w429o.js";import{p as f}from"./time-Bxuk0M-C.js";import{S as g}from"./SearchInput-BX2KhMkw.js";import{d as p}from"./vendor-CMMjVdZs.js";import{b as j}from"./react-router-I-HqunH7.js";import{A as o,g as N,n as w,o as b}from"./lucide-fJlPI3H7.js";import{a as v,z as y}from"./date-fns-CZ_bHujz.js";async function C(){const a=await fetch("/api/tasks");if(!a.ok)throw new Error("Failed to fetch tasks");return a.json()}function A(){const a=j(),[t,m]=d.useState(""),{data:r,isLoading:x,error:l}=u({queryKey:["tasks"],queryFn:C,refetchInterval:1e4}),i=d.useMemo(()=>{if(!r)return[];if(!t.trim())return r;const s=t.toLowerCase();return r.filter(n=>{var c;return((c=n.title)==null?void 0:c.toLowerCase().includes(s))||n.id.toLowerCase().includes(s)})},[r,t]);if(x)return e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-6",children:"任务"}),e.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:e.jsx("p",{className:"text-gray-600",children:"加载中..."})})]});if(l)return e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-6",children:"任务"}),e.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:e.jsxs("p",{className:"text-red-600",children:["加载失败: ",l.message]})})]});const h=s=>{switch(s){case"completed":return e.jsx(b,{className:"h-4 w-4 text-green-600"});case"active":return e.jsx(w,{className:"h-4 w-4 text-blue-600 animate-spin"});default:return e.jsx(o,{className:"h-4 w-4 text-gray-400"})}};return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4 flex-wrap gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"任务"}),e.jsx(g,{value:t,onChange:m,placeholder:"搜索任务标题...",className:"w-64"})]}),e.jsxs("div",{className:"text-sm text-gray-500 mb-3",children:["显示 ",i.length," 个任务 ",t&&"(已过滤)"]}),e.jsxs("div",{className:"grid gap-4",children:[i.map(s=>e.jsxs("div",{onClick:()=>a(`/tasks/${s.id}`),className:"bg-white rounded-lg shadow hover:shadow-md transition-shadow cursor-pointer p-5",children:[e.jsxs("div",{className:"flex items-start justify-between mb-3",children:[e.jsxs("div",{className:"flex items-start gap-3 flex-1",children:[e.jsx("div",{className:"mt-0.5",children:h(s.status)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:s.title}),e.jsxs("p",{className:"text-xs text-gray-500 font-mono",children:[s.id.slice(0,16),"..."]})]})]}),e.jsx("span",{className:p("px-2 py-1 text-xs font-medium rounded-full whitespace-nowrap ml-3",s.status==="completed"&&"bg-green-100 text-green-700",s.status==="active"&&"bg-blue-100 text-blue-700",s.status==="abandoned"&&"bg-gray-100 text-gray-600"),children:s.status})]}),e.jsxs("div",{className:"flex items-center gap-6 text-sm text-gray-600",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(o,{className:"h-4 w-4"}),s.event_count," 个事件"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(N,{className:"h-4 w-4"}),s.start_time?v(f(s.start_time),{addSuffix:!0,locale:y}):"-"]})]})]},s.id)),i.length===0&&e.jsx("div",{className:"bg-white rounded-lg shadow p-12 text-center text-gray-500",children:t?"无匹配结果":"暂无任务记录"})]})]})}export{A as default};
|
|
2
|
-
//# sourceMappingURL=Tasks-DCgDqvOZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tasks-DCgDqvOZ.js","sources":["../../src/pages/Tasks.tsx"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { useState, useMemo } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { formatDistanceToNow } from 'date-fns'\nimport { parseUTC } from '../utils/time'\nimport { zhCN } from 'date-fns/locale'\nimport { Clock, Activity, CheckCircle2, Loader2 } from 'lucide-react'\nimport SearchInput from '../components/SearchInput'\nimport clsx from 'clsx'\n\ninterface Task {\n id: string\n title: string\n status: 'active' | 'completed' | 'abandoned'\n start_time: string\n end_time?: string\n event_count: number\n session_id: string\n}\n\nasync function fetchTasks(): Promise<Task[]> {\n const res = await fetch('/api/tasks')\n if (!res.ok) throw new Error('Failed to fetch tasks')\n return res.json()\n}\n\nexport default function Tasks() {\n const navigate = useNavigate()\n const [search, setSearch] = useState('')\n\n const { data: tasks, isLoading, error } = useQuery({\n queryKey: ['tasks'],\n queryFn: fetchTasks,\n refetchInterval: 10000,\n })\n\n const filteredTasks = useMemo(() => {\n if (!tasks) return []\n if (!search.trim()) return tasks\n const q = search.toLowerCase()\n return tasks.filter(t =>\n t.title?.toLowerCase().includes(q) ||\n t.id.toLowerCase().includes(q)\n )\n }, [tasks, search])\n\n if (isLoading) {\n return (\n <div>\n <h1 className=\"text-2xl font-bold text-gray-900 mb-6\">任务</h1>\n <div className=\"bg-white rounded-lg shadow p-6\">\n <p className=\"text-gray-600\">加载中...</p>\n </div>\n </div>\n )\n }\n\n if (error) {\n return (\n <div>\n <h1 className=\"text-2xl font-bold text-gray-900 mb-6\">任务</h1>\n <div className=\"bg-white rounded-lg shadow p-6\">\n <p className=\"text-red-600\">加载失败: {(error as Error).message}</p>\n </div>\n </div>\n )\n }\n\n const getStatusIcon = (status: string) => {\n switch (status) {\n case 'completed':\n return <CheckCircle2 className=\"h-4 w-4 text-green-600\" />\n case 'active':\n return <Loader2 className=\"h-4 w-4 text-blue-600 animate-spin\" />\n default:\n return <Activity className=\"h-4 w-4 text-gray-400\" />\n }\n }\n\n return (\n <div>\n <div className=\"flex items-center justify-between mb-4 flex-wrap gap-3\">\n <h1 className=\"text-2xl font-bold text-gray-900\">任务</h1>\n <SearchInput\n value={search}\n onChange={setSearch}\n placeholder=\"搜索任务标题...\"\n className=\"w-64\"\n />\n </div>\n\n <div className=\"text-sm text-gray-500 mb-3\">\n 显示 {filteredTasks.length} 个任务 {search && `(已过滤)`}\n </div>\n\n <div className=\"grid gap-4\">\n {filteredTasks.map((task) => (\n <div\n key={task.id}\n onClick={() => navigate(`/tasks/${task.id}`)}\n className=\"bg-white rounded-lg shadow hover:shadow-md transition-shadow cursor-pointer p-5\"\n >\n <div className=\"flex items-start justify-between mb-3\">\n <div className=\"flex items-start gap-3 flex-1\">\n <div className=\"mt-0.5\">{getStatusIcon(task.status)}</div>\n <div className=\"flex-1 min-w-0\">\n <h3 className=\"text-base font-semibold text-gray-900 mb-1\">\n {task.title}\n </h3>\n <p className=\"text-xs text-gray-500 font-mono\">\n {task.id.slice(0, 16)}...\n </p>\n </div>\n </div>\n <span className={clsx(\n 'px-2 py-1 text-xs font-medium rounded-full whitespace-nowrap ml-3',\n task.status === 'completed' && 'bg-green-100 text-green-700',\n task.status === 'active' && 'bg-blue-100 text-blue-700',\n task.status === 'abandoned' && 'bg-gray-100 text-gray-600'\n )}>\n {task.status}\n </span>\n </div>\n\n <div className=\"flex items-center gap-6 text-sm text-gray-600\">\n <span className=\"inline-flex items-center gap-1\">\n <Activity className=\"h-4 w-4\" />\n {task.event_count} 个事件\n </span>\n <span className=\"inline-flex items-center gap-1\">\n <Clock className=\"h-4 w-4\" />\n {task.start_time\n ? formatDistanceToNow(parseUTC(task.start_time), {\n addSuffix: true,\n locale: zhCN,\n })\n : '-'}\n </span>\n </div>\n </div>\n ))}\n {filteredTasks.length === 0 && (\n <div className=\"bg-white rounded-lg shadow p-12 text-center text-gray-500\">\n {search ? '无匹配结果' : '暂无任务记录'}\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"names":["fetchTasks","res","Tasks","navigate","useNavigate","search","setSearch","useState","tasks","isLoading","error","useQuery","filteredTasks","useMemo","q","t","_a","jsx","jsxs","getStatusIcon","status","CheckCircle2","Loader2","Activity","SearchInput","task","clsx","Clock","formatDistanceToNow","parseUTC","zhCN"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.bottom-2{bottom:.5rem}.left-0{left:0}.left-2\.5{left:.625rem}.left-\[19px\]{left:19px}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-px{margin-left:-1px}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[100px\]{height:100px}.h-\[120px\]{height:120px}.h-\[240px\]{height:240px}.h-full{height:100%}.max-h-40{max-height:10rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-\[500px\]{max-height:500px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[600px\]{width:600px}.w-\[800px\]{width:800px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-indigo-600{--tw-border-opacity: 1;border-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-purple-100{--tw-border-opacity: 1;border-color:rgb(243 232 255 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-t-blue-500{--tw-border-opacity: 1;border-top-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/30{background-color:#fffbeb4d}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/30{background-color:#eff6ff4d}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/30{background-color:#fef2f24d}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-opacity-0{--tw-bg-opacity: 0}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-75{--tw-bg-opacity: .75}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-green-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-700:hover{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-indigo-700:hover{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.disabled\:bg-gray-400:disabled{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.disabled\:bg-gray-50:disabled{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.disabled\:text-gray-400:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width: 640px){.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:fixed{position:fixed}.lg\:inset-y-0{top:0;bottom:0}.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-64{width:16rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pl-64{padding-left:16rem}}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dashboard-D7Bo6Kan.js","assets/react-vendor-CSp-GLFF.js","assets/query-C99w429o.js","assets/react-router-I-HqunH7.js","assets/vendor-CMMjVdZs.js","assets/lucide-fJlPI3H7.js","assets/charts-CLrM0_uM.js","assets/Sessions-Chx9OCLH.js","assets/time-Bxuk0M-C.js","assets/Drawer-BeHRQxUS.js","assets/date-fns-CZ_bHujz.js","assets/SearchInput-BX2KhMkw.js","assets/export-L_VBD2p1.js","assets/syntax-highlighter-44FakypI.js","assets/SessionDetail-Bkr-kC7V.js","assets/Events-K_tCY2ti.js","assets/Skills-O0GT1i7m.js","assets/auth-Bnf8ZcqN.js","assets/AIConfig-BQCAQE9D.js","assets/Tasks-DCgDqvOZ.js","assets/TaskDetail-5SR8zGzv.js","assets/Reports-BJCmBnc_.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r,j as e,e as b,d as y}from"./react-vendor-CSp-GLFF.js";import{u as v,O as N,L as w,R as _,a as c,N as C,B as k}from"./react-router-I-HqunH7.js";import{Q as T,a as E}from"./query-C99w429o.js";import{_ as m}from"./syntax-highlighter-44FakypI.js";import{d as f}from"./vendor-CMMjVdZs.js";import{X as p,M as O,L as P,a as L,b as S,F as I,A,B as R,C as z,I as D,c as F,d as V,e as B,T as M}from"./lucide-fJlPI3H7.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))o(t);new MutationObserver(t=>{for(const n of t)if(n.type==="childList")for(const s of n.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&o(s)}).observe(document,{childList:!0,subtree:!0});function l(t){const n={};return t.integrity&&(n.integrity=t.integrity),t.referrerPolicy&&(n.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?n.credentials="include":t.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function o(t){if(t.ep)return;t.ep=!0;const n=l(t);fetch(t.href,n)}})();const q=[{title:"总览",items:[{name:"仪表盘",href:"/dashboard",icon:P}]},{title:"活动",items:[{name:"会话",href:"/sessions",icon:L},{name:"任务",href:"/tasks",icon:S},{name:"周报",href:"/reports",icon:I},{name:"事件",href:"/events",icon:A}]},{title:"配置",items:[{name:"Skill 管理",href:"/skills",icon:R},{name:"AI 配置",href:"/ai-config",icon:z}]}];function Q(){const i=v(),[a,l]=r.useState(!1),o=t=>e.jsx(e.Fragment,{children:q.map(n=>e.jsxs("div",{className:"mb-4",children:[e.jsx("div",{className:"px-3 py-2 text-xs font-semibold text-gray-400 uppercase tracking-wider",children:n.title}),n.items.map(s=>{const u=s.icon,d=i.pathname===s.href||i.pathname.startsWith(s.href+"/");return e.jsxs(w,{to:s.href,onClick:t,className:f("group flex items-center px-3 py-2 text-sm font-medium rounded-md mb-0.5",d?"bg-indigo-50 text-indigo-600":"text-gray-700 hover:bg-gray-50"),children:[e.jsx(u,{className:f("mr-3 h-4 w-4",d?"text-indigo-600":"text-gray-400")}),s.name]},s.name)})]},n.title))});return e.jsxs("div",{className:"min-h-screen bg-gray-50",children:[e.jsxs("div",{className:f("fixed inset-0 z-40 lg:hidden",a?"block":"hidden"),children:[e.jsx("div",{className:"fixed inset-0 bg-gray-600 bg-opacity-75",onClick:()=>l(!1)}),e.jsxs("div",{className:"fixed inset-y-0 left-0 flex w-64 flex-col bg-white",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-4 border-b",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white font-bold text-sm",children:"CF"}),e.jsx("h1",{className:"text-base font-bold text-gray-900",children:"Claude Forge"})]}),e.jsx("button",{onClick:()=>l(!1),className:"text-gray-500",children:e.jsx(p,{className:"h-5 w-5"})})]}),e.jsx("nav",{className:"flex-1 overflow-y-auto px-2 py-4",children:o(()=>l(!1))})]})]}),e.jsx("div",{className:"hidden lg:fixed lg:inset-y-0 lg:flex lg:w-64 lg:flex-col",children:e.jsxs("div",{className:"flex flex-col flex-grow border-r border-gray-200 bg-white",children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-4 border-b",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white font-bold text-sm",children:"CF"}),e.jsx("h1",{className:"text-base font-bold text-gray-900",children:"Claude Forge"})]}),e.jsx("nav",{className:"flex-1 overflow-y-auto px-2 py-4",children:o()})]})}),e.jsxs("div",{className:"lg:pl-64",children:[e.jsxs("div",{className:"sticky top-0 z-10 flex h-14 flex-shrink-0 bg-white border-b border-gray-200 lg:hidden",children:[e.jsx("button",{onClick:()=>l(!0),className:"px-4 text-gray-500 focus:outline-none",children:e.jsx(O,{className:"h-5 w-5"})}),e.jsx("div",{className:"flex flex-1 items-center px-4",children:e.jsx("h1",{className:"text-base font-semibold text-gray-900",children:"Claude Forge"})})]}),e.jsx("main",{className:"py-6",children:e.jsx("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:e.jsx(N,{})})})]})]})}const W=r.lazy(()=>m(()=>import("./Dashboard-D7Bo6Kan.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),X=r.lazy(()=>m(()=>import("./Sessions-Chx9OCLH.js"),__vite__mapDeps([7,1,2,8,9,4,5,10,11,12,3,13]))),$=r.lazy(()=>m(()=>import("./SessionDetail-Bkr-kC7V.js"),__vite__mapDeps([14,1,3,4,2,8,5,10]))),K=r.lazy(()=>m(()=>import("./Events-K_tCY2ti.js"),__vite__mapDeps([15,1,2,8,4,9,5,13,11,12,10,3]))),G=r.lazy(()=>m(()=>import("./Skills-O0GT1i7m.js"),__vite__mapDeps([16,1,2,9,4,5,13,17,3]))),H=r.lazy(()=>m(()=>import("./AIConfig-BQCAQE9D.js"),__vite__mapDeps([18,1,2,17,5,3,4,13]))),J=r.lazy(()=>m(()=>import("./Tasks-DCgDqvOZ.js"),__vite__mapDeps([19,1,2,8,11,5,4,3,10]))),U=r.lazy(()=>m(()=>import("./TaskDetail-5SR8zGzv.js"),__vite__mapDeps([20,1,3,4,2,8,5,10]))),Y=r.lazy(()=>m(()=>import("./Reports-BJCmBnc_.js"),__vite__mapDeps([21,1,2,5,6,4])));function x(){return e.jsx("div",{className:"flex items-center justify-center h-full py-16",children:e.jsxs("div",{className:"flex items-center gap-3 text-sm text-gray-500",children:[e.jsx("div",{className:"w-4 h-4 border-2 border-gray-300 border-t-blue-500 rounded-full animate-spin"}),"加载中..."]})})}function Z(){return e.jsx(_,{children:e.jsxs(c,{path:"/",element:e.jsx(Q,{}),children:[e.jsx(c,{index:!0,element:e.jsx(C,{to:"/dashboard",replace:!0})}),e.jsx(c,{path:"dashboard",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(W,{})})}),e.jsx(c,{path:"sessions",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(X,{})})}),e.jsx(c,{path:"sessions/:id",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx($,{})})}),e.jsx(c,{path:"events",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(K,{})})}),e.jsx(c,{path:"skills",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(G,{})})}),e.jsx(c,{path:"ai-config",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(H,{})})}),e.jsx(c,{path:"tasks",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(J,{})})}),e.jsx(c,{path:"tasks/:taskId",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(U,{})})}),e.jsx(c,{path:"reports",element:e.jsx(r.Suspense,{fallback:e.jsx(x,{}),children:e.jsx(Y,{})})})]})})}const g=r.createContext(null);function me(){const i=r.useContext(g);if(!i)throw new Error("useToast must be used within ToastProvider");return i}let ee=1;function se({children:i}){const[a,l]=r.useState([]),o=r.useCallback(s=>{l(u=>u.filter(d=>d.id!==s))},[]),t=r.useCallback((s,u)=>{const d=ee++;l(h=>[...h,{id:d,type:s,message:u}]),setTimeout(()=>o(d),4e3)},[o]),n={show:t,success:s=>t("success",s),error:s=>t("error",s),warning:s=>t("warning",s),info:s=>t("info",s)};return e.jsxs(g.Provider,{value:n,children:[i,e.jsx("div",{className:"fixed top-4 right-4 z-[9999] space-y-2 max-w-md",children:a.map(s=>e.jsx(te,{toast:s,onClose:()=>o(s.id)},s.id))})]})}function te({toast:i,onClose:a}){const l={success:e.jsx(B,{className:"h-5 w-5 text-green-500"}),error:e.jsx(V,{className:"h-5 w-5 text-red-500"}),warning:e.jsx(F,{className:"h-5 w-5 text-yellow-500"}),info:e.jsx(D,{className:"h-5 w-5 text-blue-500"})},o={success:"border-green-200",error:"border-red-200",warning:"border-yellow-200",info:"border-blue-200"};return e.jsxs("div",{className:f("bg-white shadow-lg rounded-lg border px-4 py-3 flex items-start gap-3 animate-in slide-in-from-right",o[i.type]),children:[l[i.type],e.jsx("div",{className:"flex-1 text-sm text-gray-800",children:i.message}),e.jsx("button",{onClick:a,className:"text-gray-400 hover:text-gray-600",children:e.jsx(p,{className:"h-4 w-4"})})]})}const re=r.createContext(null);function ne({children:i}){var d;const[a,l]=r.useState({open:!1,options:null,resolve:null}),o=r.useCallback(h=>new Promise(j=>{l({open:!0,options:h,resolve:j})}),[]),t=h=>{a.resolve&&a.resolve(h),l({open:!1,options:null,resolve:null})},n=((d=a.options)==null?void 0:d.variant)||"danger",s={danger:"text-red-600",warning:"text-yellow-600",info:"text-blue-600"}[n],u={danger:"bg-red-600 hover:bg-red-700",warning:"bg-yellow-600 hover:bg-yellow-700",info:"bg-indigo-600 hover:bg-indigo-700"}[n];return e.jsxs(re.Provider,{value:{confirm:o},children:[i,a.open&&a.options&&e.jsxs("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-black bg-opacity-50",onClick:()=>t(!1)}),e.jsxs("div",{className:"relative bg-white rounded-lg shadow-xl max-w-md w-full mx-4 p-6",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:`flex-shrink-0 ${s}`,children:e.jsx(M,{className:"h-6 w-6"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:a.options.title}),e.jsx("p",{className:"text-sm text-gray-600 whitespace-pre-wrap",children:a.options.message})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 mt-6",children:[e.jsx("button",{onClick:()=>t(!1),className:"px-4 py-2 text-sm text-gray-700 bg-white border border-gray-300 rounded hover:bg-gray-50",children:a.options.cancelText||"取消"}),e.jsx("button",{onClick:()=>t(!0),className:`px-4 py-2 text-sm text-white rounded ${u}`,children:a.options.confirmText||"确定"})]})]})]})]})}const ae=new T({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});b.createRoot(document.getElementById("root")).render(e.jsx(y.StrictMode,{children:e.jsx(E,{client:ae,children:e.jsx(se,{children:e.jsx(ne,{children:e.jsx(k,{children:e.jsx(Z,{})})})})})}));export{me as u};
|
|
3
|
-
//# sourceMappingURL=index-DxIbmNmr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lucide-fJlPI3H7.js","sources":["../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/activity.js","../../node_modules/lucide-react/dist/esm/icons/arrow-left.js","../../node_modules/lucide-react/dist/esm/icons/book-open.js","../../node_modules/lucide-react/dist/esm/icons/bot.js","../../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../node_modules/lucide-react/dist/esm/icons/circle-check-big.js","../../node_modules/lucide-react/dist/esm/icons/circle-check.js","../../node_modules/lucide-react/dist/esm/icons/circle-x.js","../../node_modules/lucide-react/dist/esm/icons/clock.js","../../node_modules/lucide-react/dist/esm/icons/cpu.js","../../node_modules/lucide-react/dist/esm/icons/download.js","../../node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/lucide-react/dist/esm/icons/eye.js","../../node_modules/lucide-react/dist/esm/icons/file-pen.js","../../node_modules/lucide-react/dist/esm/icons/file-text.js","../../node_modules/lucide-react/dist/esm/icons/filter.js","../../node_modules/lucide-react/dist/esm/icons/folder-open.js","../../node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.js","../../node_modules/lucide-react/dist/esm/icons/globe.js","../../node_modules/lucide-react/dist/esm/icons/info.js","../../node_modules/lucide-react/dist/esm/icons/layout-dashboard.js","../../node_modules/lucide-react/dist/esm/icons/list-todo.js","../../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../node_modules/lucide-react/dist/esm/icons/menu.js","../../node_modules/lucide-react/dist/esm/icons/message-square.js","../../node_modules/lucide-react/dist/esm/icons/minus.js","../../node_modules/lucide-react/dist/esm/icons/pen.js","../../node_modules/lucide-react/dist/esm/icons/pencil.js","../../node_modules/lucide-react/dist/esm/icons/save.js","../../node_modules/lucide-react/dist/esm/icons/search.js","../../node_modules/lucide-react/dist/esm/icons/shield-alert.js","../../node_modules/lucide-react/dist/esm/icons/syringe.js","../../node_modules/lucide-react/dist/esm/icons/terminal.js","../../node_modules/lucide-react/dist/esm/icons/trending-down.js","../../node_modules/lucide-react/dist/esm/icons/trending-up.js","../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../node_modules/lucide-react/dist/esm/icons/wrench.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../node_modules/lucide-react/dist/esm/icons/zap.js"],"sourcesContent":["/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Activity = createLucideIcon(\"Activity\", [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n]);\n\nexport { Activity as default };\n//# sourceMappingURL=activity.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowLeft = createLucideIcon(\"ArrowLeft\", [\n [\"path\", { d: \"m12 19-7-7 7-7\", key: \"1l729n\" }],\n [\"path\", { d: \"M19 12H5\", key: \"x3x0zl\" }]\n]);\n\nexport { ArrowLeft as default };\n//# sourceMappingURL=arrow-left.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst BookOpen = createLucideIcon(\"BookOpen\", [\n [\"path\", { d: \"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\", key: \"vv98re\" }],\n [\"path\", { d: \"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\", key: \"1cyq3y\" }]\n]);\n\nexport { BookOpen as default };\n//# sourceMappingURL=book-open.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Bot = createLucideIcon(\"Bot\", [\n [\"path\", { d: \"M12 8V4H8\", key: \"hb8ula\" }],\n [\"rect\", { width: \"16\", height: \"12\", x: \"4\", y: \"8\", rx: \"2\", key: \"enze0r\" }],\n [\"path\", { d: \"M2 14h2\", key: \"vft8re\" }],\n [\"path\", { d: \"M20 14h2\", key: \"4cs60a\" }],\n [\"path\", { d: \"M15 13v2\", key: \"1xurst\" }],\n [\"path\", { d: \"M9 13v2\", key: \"rq6x2g\" }]\n]);\n\nexport { Bot as default };\n//# sourceMappingURL=bot.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronDown = createLucideIcon(\"ChevronDown\", [\n [\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]\n]);\n\nexport { ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronRight = createLucideIcon(\"ChevronRight\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\nexport { ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleCheckBig = createLucideIcon(\"CircleCheckBig\", [\n [\"path\", { d: \"M22 11.08V12a10 10 0 1 1-5.93-9.14\", key: \"g774vq\" }],\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\n]);\n\nexport { CircleCheckBig as default };\n//# sourceMappingURL=circle-check-big.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleCheck = createLucideIcon(\"CircleCheck\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n]);\n\nexport { CircleCheck as default };\n//# sourceMappingURL=circle-check.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleX = createLucideIcon(\"CircleX\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m15 9-6 6\", key: \"1uzhvr\" }],\n [\"path\", { d: \"m9 9 6 6\", key: \"z0biqf\" }]\n]);\n\nexport { CircleX as default };\n//# sourceMappingURL=circle-x.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Clock = createLucideIcon(\"Clock\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"polyline\", { points: \"12 6 12 12 16 14\", key: \"68esgv\" }]\n]);\n\nexport { Clock as default };\n//# sourceMappingURL=clock.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Cpu = createLucideIcon(\"Cpu\", [\n [\"rect\", { width: \"16\", height: \"16\", x: \"4\", y: \"4\", rx: \"2\", key: \"14l7u7\" }],\n [\"rect\", { width: \"6\", height: \"6\", x: \"9\", y: \"9\", rx: \"1\", key: \"5aljv4\" }],\n [\"path\", { d: \"M15 2v2\", key: \"13l42r\" }],\n [\"path\", { d: \"M15 20v2\", key: \"15mkzm\" }],\n [\"path\", { d: \"M2 15h2\", key: \"1gxd5l\" }],\n [\"path\", { d: \"M2 9h2\", key: \"1bbxkp\" }],\n [\"path\", { d: \"M20 15h2\", key: \"19e6y8\" }],\n [\"path\", { d: \"M20 9h2\", key: \"19tzq7\" }],\n [\"path\", { d: \"M9 2v2\", key: \"165o2o\" }],\n [\"path\", { d: \"M9 20v2\", key: \"i2bqo8\" }]\n]);\n\nexport { Cpu as default };\n//# sourceMappingURL=cpu.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Download = createLucideIcon(\"Download\", [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"7 10 12 15 17 10\", key: \"2ggqvy\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"15\", y2: \"3\", key: \"1vk2je\" }]\n]);\n\nexport { Download as default };\n//# sourceMappingURL=download.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\"path\", { d: \"M9.88 9.88a3 3 0 1 0 4.24 4.24\", key: \"1jxqfv\" }],\n [\n \"path\",\n {\n d: \"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\",\n key: \"9wicm4\"\n }\n ],\n [\n \"path\",\n { d: \"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\", key: \"1jreej\" }\n ],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\"path\", { d: \"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\", key: \"rwhkz3\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FilePen = createLucideIcon(\"FilePen\", [\n [\"path\", { d: \"M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v10\", key: \"x7tsz2\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10.4 12.6a2 2 0 1 1 3 3L8 21l-4 1 1-4Z\", key: \"o3xyfb\" }]\n]);\n\nexport { FilePen as default };\n//# sourceMappingURL=file-pen.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\"polygon\", { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FolderOpen = createLucideIcon(\"FolderOpen\", [\n [\n \"path\",\n {\n d: \"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2\",\n key: \"usdka0\"\n }\n ]\n]);\n\nexport { FolderOpen as default };\n//# sourceMappingURL=folder-open.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GitCommitHorizontal = createLucideIcon(\"GitCommitHorizontal\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }],\n [\"line\", { x1: \"3\", x2: \"9\", y1: \"12\", y2: \"12\", key: \"1dyftd\" }],\n [\"line\", { x1: \"15\", x2: \"21\", y1: \"12\", y2: \"12\", key: \"oup4p8\" }]\n]);\n\nexport { GitCommitHorizontal as default };\n//# sourceMappingURL=git-commit-horizontal.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Globe = createLucideIcon(\"Globe\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n]);\n\nexport { Globe as default };\n//# sourceMappingURL=globe.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst LayoutDashboard = createLucideIcon(\"LayoutDashboard\", [\n [\"rect\", { width: \"7\", height: \"9\", x: \"3\", y: \"3\", rx: \"1\", key: \"10lvy0\" }],\n [\"rect\", { width: \"7\", height: \"5\", x: \"14\", y: \"3\", rx: \"1\", key: \"16une8\" }],\n [\"rect\", { width: \"7\", height: \"9\", x: \"14\", y: \"12\", rx: \"1\", key: \"1hutg5\" }],\n [\"rect\", { width: \"7\", height: \"5\", x: \"3\", y: \"16\", rx: \"1\", key: \"ldoo1y\" }]\n]);\n\nexport { LayoutDashboard as default };\n//# sourceMappingURL=layout-dashboard.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListTodo = createLucideIcon(\"ListTodo\", [\n [\"rect\", { x: \"3\", y: \"5\", width: \"6\", height: \"6\", rx: \"1\", key: \"1defrl\" }],\n [\"path\", { d: \"m3 17 2 2 4-4\", key: \"1jhpwq\" }],\n [\"path\", { d: \"M13 6h8\", key: \"15sg57\" }],\n [\"path\", { d: \"M13 12h8\", key: \"h98zly\" }],\n [\"path\", { d: \"M13 18h8\", key: \"oe0vm4\" }]\n]);\n\nexport { ListTodo as default };\n//# sourceMappingURL=list-todo.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst LoaderCircle = createLucideIcon(\"LoaderCircle\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]\n]);\n\nexport { LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Menu = createLucideIcon(\"Menu\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"6\", y2: \"6\", key: \"1owob3\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"18\", y2: \"18\", key: \"yk5zj1\" }]\n]);\n\nexport { Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MessageSquare = createLucideIcon(\"MessageSquare\", [\n [\"path\", { d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\", key: \"1lielz\" }]\n]);\n\nexport { MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Minus = createLucideIcon(\"Minus\", [[\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }]]);\n\nexport { Minus as default };\n//# sourceMappingURL=minus.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pen = createLucideIcon(\"Pen\", [\n [\"path\", { d: \"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\", key: \"5qss01\" }]\n]);\n\nexport { Pen as default };\n//# sourceMappingURL=pen.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pencil = createLucideIcon(\"Pencil\", [\n [\"path\", { d: \"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\", key: \"5qss01\" }],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n]);\n\nexport { Pencil as default };\n//# sourceMappingURL=pencil.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Save = createLucideIcon(\"Save\", [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n]);\n\nexport { Save as default };\n//# sourceMappingURL=save.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Search = createLucideIcon(\"Search\", [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n]);\n\nexport { Search as default };\n//# sourceMappingURL=search.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldAlert = createLucideIcon(\"ShieldAlert\", [\n [\n \"path\",\n {\n 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\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }]\n]);\n\nexport { ShieldAlert as default };\n//# sourceMappingURL=shield-alert.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Syringe = createLucideIcon(\"Syringe\", [\n [\"path\", { d: \"m18 2 4 4\", key: \"22kx64\" }],\n [\"path\", { d: \"m17 7 3-3\", key: \"1w1zoj\" }],\n [\"path\", { d: \"M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5\", key: \"1exhtz\" }],\n [\"path\", { d: \"m9 11 4 4\", key: \"rovt3i\" }],\n [\"path\", { d: \"m5 19-3 3\", key: \"59f2uf\" }],\n [\"path\", { d: \"m14 4 6 6\", key: \"yqp9t2\" }]\n]);\n\nexport { Syringe as default };\n//# sourceMappingURL=syringe.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Terminal = createLucideIcon(\"Terminal\", [\n [\"polyline\", { points: \"4 17 10 11 4 5\", key: \"akl6gq\" }],\n [\"line\", { x1: \"12\", x2: \"20\", y1: \"19\", y2: \"19\", key: \"q2wloq\" }]\n]);\n\nexport { Terminal as default };\n//# sourceMappingURL=terminal.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TrendingDown = createLucideIcon(\"TrendingDown\", [\n [\"polyline\", { points: \"22 17 13.5 8.5 8.5 13.5 2 7\", key: \"1r2t7k\" }],\n [\"polyline\", { points: \"16 17 22 17 22 11\", key: \"11uiuu\" }]\n]);\n\nexport { TrendingDown as default };\n//# sourceMappingURL=trending-down.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TrendingUp = createLucideIcon(\"TrendingUp\", [\n [\"polyline\", { points: \"22 7 13.5 15.5 8.5 10.5 2 17\", key: \"126l90\" }],\n [\"polyline\", { points: \"16 7 22 7 22 13\", key: \"kwv8wd\" }]\n]);\n\nexport { TrendingUp as default };\n//# sourceMappingURL=trending-up.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n 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\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Wrench = createLucideIcon(\"Wrench\", [\n [\n \"path\",\n {\n d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\",\n key: \"cbrjhi\"\n }\n ]\n]);\n\nexport { Wrench as default };\n//# sourceMappingURL=wrench.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n","/**\n * @license lucide-react v0.379.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Zap = createLucideIcon(\"Zap\", [\n [\n \"path\",\n {\n 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\",\n key: \"1xq2db\"\n }\n ]\n]);\n\nexport { Zap as default };\n//# sourceMappingURL=zap.js.map\n"],"names":["toKebabCase","string","mergeClasses","classes","className","index","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","props","Activity","ArrowLeft","BookOpen","Bot","ChevronDown","ChevronRight","CircleAlert","CircleCheckBig","CircleCheck","CircleX","Clock","Cpu","Download","EyeOff","Eye","FilePen","FileText","Filter","FolderOpen","GitCommitHorizontal","Globe","Info","LayoutDashboard","ListTodo","LoaderCircle","Menu","MessageSquare","Minus","Pen","Pencil","Save","Search","ShieldAlert","Syringe","Terminal","TrendingDown","TrendingUp","TriangleAlert","Wrench","X","Zap"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{r as a,R as Y}from"./react-vendor-CSp-GLFF.js";import{i as v,g as T,r as _,j as N,A as z,p as V,s as W,m as Z,a as H,c as F,b as ee}from"./vendor-CMMjVdZs.js";/**
|
|
2
|
-
* React Router v6.30.3
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) Remix Software Inc.
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P.apply(this,arguments)}const k=a.createContext(null),te=a.createContext(null),y=a.createContext(null),L=a.createContext(null),E=a.createContext({outlet:null,matches:[],isDataRoute:!1}),A=a.createContext(null);function re(e,t){let{relative:n}=t===void 0?{}:t;R()||v(!1);let{basename:r,navigator:l}=a.useContext(y),{hash:s,pathname:o,search:d}=G(e,{relative:n}),f=o;return r!=="/"&&(f=o==="/"?r:N([r,o])),l.createHref({pathname:f,search:d,hash:s})}function R(){return a.useContext(L)!=null}function w(){return R()||v(!1),a.useContext(L).location}function K(e){a.useContext(y).static||a.useLayoutEffect(e)}function $(){let{isDataRoute:e}=a.useContext(E);return e?ge():ne()}function ne(){R()||v(!1);let e=a.useContext(k),{basename:t,future:n,navigator:r}=a.useContext(y),{matches:l}=a.useContext(E),{pathname:s}=w(),o=JSON.stringify(T(l,n.v7_relativeSplatPath)),d=a.useRef(!1);return K(()=>{d.current=!0}),a.useCallback(function(c,u){if(u===void 0&&(u={}),!d.current)return;if(typeof c=="number"){r.go(c);return}let i=_(c,JSON.parse(o),s,u.relative==="path");e==null&&t!=="/"&&(i.pathname=i.pathname==="/"?t:N([t,i.pathname])),(u.replace?r.replace:r.push)(i,u.state,u)},[t,r,o,s,e])}const ae=a.createContext(null);function oe(e){let t=a.useContext(E).outlet;return t&&a.createElement(ae.Provider,{value:e},t)}function _e(){let{matches:e}=a.useContext(E),t=e[e.length-1];return t?t.params:{}}function G(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=a.useContext(y),{matches:l}=a.useContext(E),{pathname:s}=w(),o=JSON.stringify(T(l,r.v7_relativeSplatPath));return a.useMemo(()=>_(e,JSON.parse(o),s,n==="path"),[e,o,s,n])}function le(e,t){return ie(e,t)}function ie(e,t,n,r){R()||v(!1);let{navigator:l}=a.useContext(y),{matches:s}=a.useContext(E),o=s[s.length-1],d=o?o.params:{};o&&o.pathname;let f=o?o.pathnameBase:"/";o&&o.route;let c=w(),u;if(t){var i;let h=typeof t=="string"?V(t):t;f==="/"||(i=h.pathname)!=null&&i.startsWith(f)||v(!1),u=h}else u=c;let p=u.pathname||"/",m=p;if(f!=="/"){let h=f.replace(/^\//,"").split("/");m="/"+p.replace(/^\//,"").split("/").slice(h.length).join("/")}let g=Z(e,{pathname:m}),x=de(g&&g.map(h=>Object.assign({},h,{params:Object.assign({},d,h.params),pathname:N([f,l.encodeLocation?l.encodeLocation(h.pathname).pathname:h.pathname]),pathnameBase:h.pathnameBase==="/"?f:N([f,l.encodeLocation?l.encodeLocation(h.pathnameBase).pathname:h.pathnameBase])})),s,n,r);return t&&x?a.createElement(L.Provider,{value:{location:P({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:z.Pop}},x):x}function se(){let e=me(),t=H(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),n?a.createElement("pre",{style:l},n):null,null)}const ue=a.createElement(se,null);class ce extends a.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?a.createElement(E.Provider,{value:this.props.routeContext},a.createElement(A.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function fe(e){let{routeContext:t,match:n,children:r}=e,l=a.useContext(k);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),a.createElement(E.Provider,{value:t},r)}function de(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,d=(l=n)==null?void 0:l.errors;if(d!=null){let u=o.findIndex(i=>i.route.id&&(d==null?void 0:d[i.route.id])!==void 0);u>=0||v(!1),o=o.slice(0,Math.min(o.length,u+1))}let f=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u<o.length;u++){let i=o[u];if((i.route.HydrateFallback||i.route.hydrateFallbackElement)&&(c=u),i.route.id){let{loaderData:p,errors:m}=n,g=i.route.loader&&p[i.route.id]===void 0&&(!m||m[i.route.id]===void 0);if(i.route.lazy||g){f=!0,c>=0?o=o.slice(0,c+1):o=[o[0]];break}}}return o.reduceRight((u,i,p)=>{let m,g=!1,x=null,h=null;n&&(m=d&&i.route.id?d[i.route.id]:void 0,x=i.route.errorElement||ue,f&&(c<0&&p===0?(Ce("route-fallback"),g=!0,h=null):c===p&&(g=!0,h=i.route.hydrateFallbackElement||null)));let b=t.concat(o.slice(0,p+1)),U=()=>{let C;return m?C=x:g?C=h:i.route.Component?C=a.createElement(i.route.Component,null):i.route.element?C=i.route.element:C=u,a.createElement(fe,{match:i,routeContext:{outlet:u,matches:b,isDataRoute:n!=null},children:C})};return n&&(i.route.ErrorBoundary||i.route.errorElement||p===0)?a.createElement(ce,{location:n.location,revalidation:n.revalidation,component:x,error:m,children:U(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):U()},null)}var X=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(X||{}),q=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(q||{});function he(e){let t=a.useContext(k);return t||v(!1),t}function pe(e){let t=a.useContext(te);return t||v(!1),t}function ve(e){let t=a.useContext(E);return t||v(!1),t}function Q(e){let t=ve(),n=t.matches[t.matches.length-1];return n.route.id||v(!1),n.route.id}function me(){var e;let t=a.useContext(A),n=pe(),r=Q();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function ge(){let{router:e}=he(X.UseNavigateStable),t=Q(q.UseNavigateStable),n=a.useRef(!1);return K(()=>{n.current=!0}),a.useCallback(function(l,s){s===void 0&&(s={}),n.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,P({fromRouteId:t},s)))},[e,t])}const j={};function Ce(e,t,n){j[e]||(j[e]=!0)}function xe(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function ke(e){let{to:t,replace:n,state:r,relative:l}=e;R()||v(!1);let{future:s,static:o}=a.useContext(y),{matches:d}=a.useContext(E),{pathname:f}=w(),c=$(),u=_(t,T(d,s.v7_relativeSplatPath),f,l==="path"),i=JSON.stringify(u);return a.useEffect(()=>c(JSON.parse(i),{replace:n,state:r,relative:l}),[c,i,l,n,r]),null}function Ie(e){return oe(e.context)}function Ee(e){v(!1)}function ye(e){let{basename:t="/",children:n=null,location:r,navigationType:l=z.Pop,navigator:s,static:o=!1,future:d}=e;R()&&v(!1);let f=t.replace(/^\/*/,"/"),c=a.useMemo(()=>({basename:f,navigator:s,static:o,future:P({v7_relativeSplatPath:!1},d)}),[f,d,s,o]);typeof r=="string"&&(r=V(r));let{pathname:u="/",search:i="",hash:p="",state:m=null,key:g="default"}=r,x=a.useMemo(()=>{let h=W(u,f);return h==null?null:{location:{pathname:h,search:i,hash:p,state:m,key:g},navigationType:l}},[f,u,i,p,m,g,l]);return x==null?null:a.createElement(y.Provider,{value:c},a.createElement(L.Provider,{children:n,value:x}))}function Fe(e){let{children:t,location:n}=e;return le(B(t),n)}new Promise(()=>{});function B(e,t){t===void 0&&(t=[]);let n=[];return a.Children.forEach(e,(r,l)=>{if(!a.isValidElement(r))return;let s=[...t,l];if(r.type===a.Fragment){n.push.apply(n,B(r.props.children,s));return}r.type!==Ee&&v(!1),!r.props.index||!r.props.children||v(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=B(r.props.children,s)),n.push(o)}),n}/**
|
|
11
|
-
* React Router DOM v6.30.3
|
|
12
|
-
*
|
|
13
|
-
* Copyright (c) Remix Software Inc.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
17
|
-
*
|
|
18
|
-
* @license MIT
|
|
19
|
-
*/function S(){return S=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},S.apply(this,arguments)}function Re(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,s;for(s=0;s<r.length;s++)l=r[s],!(t.indexOf(l)>=0)&&(n[l]=e[l]);return n}function be(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Pe(e,t){return e.button===0&&(!t||t==="_self")&&!be(e)}const we=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Ue="6";try{window.__reactRouterVersion=Ue}catch{}const Oe="startTransition",M=Y[Oe];function je(e){let{basename:t,children:n,future:r,window:l}=e,s=a.useRef();s.current==null&&(s.current=ee({window:l,v5Compat:!0}));let o=s.current,[d,f]=a.useState({action:o.action,location:o.location}),{v7_startTransition:c}=r||{},u=a.useCallback(i=>{c&&M?M(()=>f(i)):f(i)},[f,c]);return a.useLayoutEffect(()=>o.listen(u),[o,u]),a.useEffect(()=>xe(r),[r]),a.createElement(ye,{basename:t,children:n,location:d.location,navigationType:d.action,navigator:o,future:r})}const Ne=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Le=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Me=a.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:s,replace:o,state:d,target:f,to:c,preventScrollReset:u,viewTransition:i}=t,p=Re(t,we),{basename:m}=a.useContext(y),g,x=!1;if(typeof c=="string"&&Le.test(c)&&(g=c,Ne))try{let C=new URL(window.location.href),O=c.startsWith("//")?new URL(C.protocol+c):new URL(c),I=W(O.pathname,m);O.origin===C.origin&&I!=null?c=I+O.search+O.hash:x=!0}catch{}let h=re(c,{relative:l}),b=Be(c,{replace:o,state:d,target:f,preventScrollReset:u,relative:l,viewTransition:i});function U(C){r&&r(C),C.defaultPrevented||b(C)}return a.createElement("a",S({},p,{href:g||h,onClick:x||s?r:U,ref:n,target:f}))});var J;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(J||(J={}));var D;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(D||(D={}));function Be(e,t){let{target:n,replace:r,state:l,preventScrollReset:s,relative:o,viewTransition:d}=t===void 0?{}:t,f=$(),c=w(),u=G(e,{relative:o});return a.useCallback(i=>{if(Pe(i,n)){i.preventDefault();let p=r!==void 0?r:F(c)===F(u);f(e,{replace:p,state:l,preventScrollReset:s,relative:o,viewTransition:d})}},[c,f,u,r,l,n,e,s,o,d])}export{je as B,Me as L,ke as N,Ie as O,Fe as R,Ee as a,$ as b,_e as c,w as u};
|
|
20
|
-
//# sourceMappingURL=react-router-I-HqunH7.js.map
|
|
File without changes
|
|
File without changes
|