@shepai/cli 1.179.1 → 1.180.0-pr547.8f24132
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/apis/json-schema/Application.yaml +40 -0
- package/apis/json-schema/ApplicationStatus.yaml +8 -0
- package/apis/json-schema/InteractiveMessage.yaml +3 -0
- package/apis/json-schema/WorkflowStep.yaml +53 -0
- package/apis/json-schema/WorkflowStepStatus.yaml +10 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +17 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.js +6 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +13 -0
- package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.d.ts +52 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.js +11 -0
- package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.d.ts +36 -0
- package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.js +22 -0
- package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.d.ts +116 -0
- package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.js +27 -0
- package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.d.ts +100 -0
- package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.js +20 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +4 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/index.js +1 -0
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +111 -5
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.d.ts +46 -0
- package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.js +9 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +92 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +305 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts +15 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.js +45 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/index.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/index.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/index.js +10 -0
- package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.js +41 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.js +46 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.js +43 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts +14 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.d.ts +21 -0
- package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.js +43 -0
- package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.js +44 -0
- package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.js +1 -1
- package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.js +42 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +77 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +191 -0
- package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts +50 -0
- package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts.map +1 -0
- package/dist/packages/core/src/application/workflows/application-creation.workflow.js +138 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +102 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +14 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +93 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +37 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +52 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.js +50 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.js +34 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.d.ts +31 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.js +72 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +21 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +98 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-message.repository.js +2 -2
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +16 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.d.ts +29 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.js +157 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.js +95 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.js +11 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.d.ts +14 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.js +50 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.js +10 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.js +20 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.js +12 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.js +9 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.js +23 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.js +29 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.d.ts +15 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.js +40 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +14 -8
- package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.d.ts +20 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.js +40 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.d.ts +18 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.js +292 -0
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +49 -10
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +323 -149
- package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.d.ts +22 -0
- package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.js +182 -0
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +11 -1
- package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-all-agents-status.js +30 -0
- package/dist/src/presentation/web/app/actions/create-application.d.ts +33 -0
- package/dist/src/presentation/web/app/actions/create-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-application.js +29 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts +20 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.js +84 -0
- package/dist/src/presentation/web/app/actions/delete-application.d.ts +4 -0
- package/dist/src/presentation/web/app/actions/delete-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/delete-application.js +16 -0
- package/dist/src/presentation/web/app/actions/deploy-application.d.ts +20 -0
- package/dist/src/presentation/web/app/actions/deploy-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/deploy-application.js +62 -0
- package/dist/src/presentation/web/app/actions/get-application-debug-prompt.d.ts +25 -0
- package/dist/src/presentation/web/app/actions/get-application-debug-prompt.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-application-debug-prompt.js +37 -0
- package/dist/src/presentation/web/app/actions/get-git-log.js +2 -2
- package/dist/src/presentation/web/app/actions/update-application.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/update-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/update-application.js +21 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.d.ts +17 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.js +63 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.d.ts +17 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.js +55 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/route.d.ts +16 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/route.js +23 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.d.ts +21 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.js +86 -0
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts +15 -6
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +36 -20
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.d.ts +21 -0
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.js +82 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.d.ts +15 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.js +27 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.d.ts +15 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.js +27 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.d.ts +15 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.js +20 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.d.ts +17 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.js +76 -0
- package/dist/src/presentation/web/app/api/terminal/route.d.ts +12 -0
- package/dist/src/presentation/web/app/api/terminal/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/route.js +34 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts +8 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/application/[id]/page.js +65 -0
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +19 -0
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +5 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.js +19 -5
- package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts +24 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.js +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts +7 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.js +156 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.js +100 -0
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +1 -1
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts +31 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.js +330 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.js +51 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/api.d.ts +11 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/api.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/api.js +35 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.d.ts +27 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.js +147 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.d.ts +19 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.js +85 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.d.ts +16 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.js +53 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.js +111 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.d.ts +27 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.js +162 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/index.d.ts +3 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/index.js +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/types.d.ts +56 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/types.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/types.js +35 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.d.ts +39 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.js +238 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.d.ts +14 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.js +37 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts +19 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.js +80 -0
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.js +224 -0
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.d.ts +6 -0
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.js +57 -0
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +4 -2
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +38 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.js +53 -8
- package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts +36 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.js +133 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.stories.js +121 -0
- package/dist/src/presentation/web/components/features/chat/chat-state-query.d.ts +12 -0
- package/dist/src/presentation/web/components/features/chat/chat-state-query.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/chat-state-query.js +20 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.d.ts +38 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.js +91 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.d.ts +17 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.js +25 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.d.ts +11 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.js +15 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/index.d.ts +21 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/index.js +37 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.d.ts +14 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.js +13 -0
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +52 -1
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +360 -28
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts +21 -0
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.js +40 -0
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts +3 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +183 -120
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts +4 -16
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.js +16 -109
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +40 -17
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +4 -0
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +25 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts +2 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.js +9 -2
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +2 -9
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts +3 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +9 -4
- package/dist/src/presentation/web/hooks/deployment-status-provider.d.ts +1 -1
- package/dist/src/presentation/web/hooks/deployment-status-provider.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/deployment-status-provider.js +4 -1
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts +5 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +37 -2
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +13 -3
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-turn-statuses.js +73 -13
- package/dist/src/presentation/web/lib/derive-graph.d.ts +11 -1
- package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/derive-graph.js +35 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts +8 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.js +27 -3
- package/dist/src/presentation/web/next.config.d.ts.map +1 -1
- package/dist/src/presentation/web/next.config.js +1 -0
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/web.json +2 -1
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/web.json +2 -1
- package/dist/translations/uk/web.json +2 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +11 -0
- package/web/.next/build-manifest.json +5 -5
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +4 -3
- package/web/.next/required-server-files.json +4 -3
- package/web/.next/routes-manifest.json +84 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +111 -81
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +107 -77
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +113 -83
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +107 -77
- package/web/.next/server/app/(dashboard)/chat/page.js +6 -5
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +113 -83
- package/web/.next/server/app/(dashboard)/create/page.js +6 -5
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +107 -77
- package/web/.next/server/app/(dashboard)/page.js +6 -5
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/web/.next/server/app/_global-error/page.js +1 -1
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/applications/[id]/files/content/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route.js +6 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route.js +7 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/files/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/route.js +6 -0
- package/web/.next/server/app/api/applications/[id]/files/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route.js +6 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/attachments/preview/route.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/directory/list/route.js +1 -1
- package/web/.next/server/app/api/directory/list/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/feature-logs/route.js +1 -1
- package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js +6 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js.map +5 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js.nft.json +1 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/sessions/route.js +1 -1
- package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/server/app/api/sessions-batch/route.js +1 -1
- package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
- package/web/.next/server/app/api/terminal/[sessionId]/input/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/route.js +6 -0
- package/web/.next/server/app/api/terminal/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/application/[id]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/application/[id]/page/build-manifest.json +18 -0
- package/web/.next/server/app/application/[id]/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +8 -0
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +230 -0
- package/web/.next/server/app/application/[id]/page.js +19 -0
- package/web/.next/server/app/application/[id]/page.js.map +5 -0
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -0
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/features/page/build-manifest.json +3 -3
- package/web/.next/server/app/features/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/features/page.js +2 -2
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/build-manifest.json +3 -3
- package/web/.next/server/app/settings/page/server-reference-manifest.json +33 -18
- package/web/.next/server/app/settings/page.js +2 -2
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/build-manifest.json +3 -3
- package/web/.next/server/app/skills/page/server-reference-manifest.json +56 -26
- package/web/.next/server/app/skills/page.js +4 -3
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/build-manifest.json +3 -3
- package/web/.next/server/app/tools/page/server-reference-manifest.json +52 -22
- package/web/.next/server/app/tools/page.js +3 -2
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/build-manifest.json +3 -3
- package/web/.next/server/app/version/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/version/page.js +3 -3
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +11 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_applications_[id]_files_raw_route_actions_69e55b18.js +3 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_applications_[id]_files_raw_route_actions_69e55b18.js.map +1 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_resize_route_actions_068451e5.js +3 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_resize_route_actions_068451e5.js.map +1 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_stream_route_actions_475d5f68.js +3 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_stream_route_actions_475d5f68.js.map +1 -0
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_terminal_[sessionId]_route_actions_20e0d9a3.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_terminal_[sessionId]_route_actions_20e0d9a3.js.map +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_content_route_actions_b0c05593.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_content_route_actions_b0c05593.js.map +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_watch_route_actions_30d3aeeb.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_watch_route_actions_30d3aeeb.js.map +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_stream_route_actions_52514889.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_stream_route_actions_52514889.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__038012df._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__038012df._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__0e3323be._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__0e3323be._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__38b9b39e._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__38b9b39e._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__3c22f57d._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__3c22f57d._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__4906ab60._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__4906ab60._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__2f61738a._.js → [root-of-the-server]__4eb2c4e4._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__acea6565._.js → [root-of-the-server]__5e3c6f3a._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__72175657._.js +9 -0
- package/web/.next/server/chunks/[root-of-the-server]__72175657._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__31598852._.js → [root-of-the-server]__86965b92._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +19 -13
- package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__92409aeb._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__92409aeb._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a52f55af._.js +6 -0
- package/web/.next/server/chunks/[root-of-the-server]__a52f55af._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__ac92afe7._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__ac92afe7._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__b2a4bfcc._.js +3 -0
- package/web/.next/server/chunks/{[root-of-the-server]__c78383b1._.js.map → [root-of-the-server]__b2a4bfcc._.js.map} +1 -1
- package/web/.next/server/chunks/{[root-of-the-server]__e3692208._.js → [root-of-the-server]__c8f90b29._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__2b71641f._.js → [root-of-the-server]__cbf5b20b._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__2b71641f._.js.map → [root-of-the-server]__cbf5b20b._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__ccfcaa08._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__ccfcaa08._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__deb67d81._.js +9 -0
- package/web/.next/server/chunks/[root-of-the-server]__deb67d81._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__fc6fd958._.js → [root-of-the-server]__ecd08b79._.js} +2 -2
- package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_terminal_route_actions_f93ca3cb.js +3 -0
- package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_terminal_route_actions_f93ca3cb.js.map +1 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_files_route_actions_e1af3c3a.js +3 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_files_route_actions_e1af3c3a.js.map +1 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_terminal_[sessionId]_input_route_actions_b7785e18.js +3 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_terminal_[sessionId]_input_route_actions_b7785e18.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js → [root-of-the-server]__090f24cb._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js.map → [root-of-the-server]__090f24cb._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +12 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js → [root-of-the-server]__7aa484f5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js.map → [root-of-the-server]__7aa484f5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__86ff0bc5._.js → [root-of-the-server]__87bc4dac._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__87bc4dac._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__e0592c69._.js → [root-of-the-server]__894882ab._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__357d99f9._.js → [root-of-the-server]__e265da61._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0277d3b5._.js +21 -0
- package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0c75535f._.js +3 -0
- package/web/.next/server/chunks/ssr/_0c75535f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_11c75b5e._.js +3 -0
- package/web/.next/server/chunks/ssr/_11c75b5e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1879404a._.js +1 -1
- package/web/.next/server/chunks/ssr/_1879404a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1d785b5a._.js +3 -0
- package/web/.next/server/chunks/ssr/_1d785b5a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1e08a336._.js +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_2bea8166._.js +4 -0
- package/web/.next/server/chunks/ssr/_2bea8166._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_44531b76._.js +9 -0
- package/web/.next/server/chunks/ssr/_44531b76._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_5889596f._.js → _59fbd2b1._.js} +2 -2
- package/web/.next/server/chunks/ssr/_59fbd2b1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_5bf2415e._.js +7 -0
- package/web/.next/server/chunks/ssr/_5bf2415e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_63ae6c38._.js +3 -0
- package/web/.next/server/chunks/ssr/_63ae6c38._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_82c47cc2._.js +3 -0
- package/web/.next/server/chunks/ssr/{_bb09579b._.js.map → _82c47cc2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_869a3a15._.js +3 -0
- package/web/.next/server/chunks/ssr/_869a3a15._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_7d50fed0._.js → _946a7fc6._.js} +3 -3
- package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b227ff50._.js +3 -0
- package/web/.next/server/chunks/ssr/_b227ff50._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e071ba48._.js +3 -0
- package/web/.next/server/chunks/ssr/_e071ba48._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_eff1b518._.js +3 -0
- package/web/.next/server/chunks/ssr/_eff1b518._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f227429a._.js +3 -0
- package/web/.next/server/chunks/ssr/_f227429a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_496c9117._.js → _f86fc1bf._.js} +2 -2
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js +4 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +32 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +1 -0
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +1084 -703
- package/web/.next/static/chunks/{fb7211d94190d010.js → 039efe24bda6f6a7.js} +3 -3
- package/web/.next/static/chunks/06b9d6dbf635c370.css +1 -0
- package/web/.next/static/chunks/0d104ead1f4fd932.js +1 -0
- package/web/.next/static/chunks/11ef340e4cfbdbe6.js +1 -0
- package/web/.next/static/chunks/{d26d0a7bc1a9b5a4.js → 1898b8b9244bdcc3.js} +2 -2
- package/web/.next/static/chunks/1ae0cf5be30ef398.js +1 -0
- package/web/.next/static/chunks/2fe20598e1b4793a.js +5 -0
- package/web/.next/static/chunks/471e56d3598c991f.js +1 -0
- package/web/.next/static/chunks/{5a2bdbc57ed1368e.js → 565ea20a6d0a8dc2.js} +1 -1
- package/web/.next/static/chunks/{eb1ca1b0a34166f5.js → 66261997e6f830f1.js} +1 -1
- package/web/.next/static/chunks/68f401f456d4f01e.js +1 -0
- package/web/.next/static/chunks/6ef74e811b366d9e.js +1 -0
- package/web/.next/static/chunks/730988635005f306.js +19 -0
- package/web/.next/static/chunks/7c3fe3c694874dea.js +1 -0
- package/web/.next/static/chunks/88e09e1b40e858d9.js +1 -0
- package/web/.next/static/chunks/927442d2628f6e22.js +1 -0
- package/web/.next/static/chunks/a289e5dfcb56d5b6.js +1 -0
- package/web/.next/static/chunks/afc510adf33a9457.js +1 -0
- package/web/.next/static/chunks/b7b85a15f387ab7c.css +1 -0
- package/web/.next/static/chunks/b99506a6f7bc2fa8.js +1 -0
- package/web/.next/static/chunks/be99876c9e0757f8.js +1 -0
- package/web/.next/static/chunks/c49b9de16982b82a.js +1 -0
- package/web/.next/static/chunks/d9d5c013800bff20.js +7 -0
- package/web/.next/static/chunks/{f5c61237675acc89.js → e6e2b3825ca4c106.js} +1 -1
- package/web/.next/static/chunks/fceed0ff45a8f30e.js +7 -0
- package/web/.next/static/chunks/fe8bcc8ff36a61c0.js +1 -0
- package/web/.next/static/chunks/{turbopack-fa58b7ea4a4b26e7.js → turbopack-d16f2f815897af68.js} +1 -1
- package/web/next.config.mjs +1 -1
- package/web/package.json +7 -0
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_bdff55d6.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_bdff55d6.js.map +0 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_6aa77d75.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_6aa77d75.js.map +0 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_24adb073.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_24adb073.js.map +0 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__16c1388b._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__16c1388b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__75070d2e._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__75070d2e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7c634c0f._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7c634c0f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8f02b364._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8f02b364._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dde817e._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dde817e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a00db173._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a00db173._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cf751517._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cf751517._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e5f31e9a._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e5f31e9a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_15f6bbd4._.js +0 -3
- package/web/.next/server/chunks/ssr/_15f6bbd4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_396a6887._.js +0 -3
- package/web/.next/server/chunks/ssr/_396a6887._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
- package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_496c9117._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_49b8d085._.js +0 -3
- package/web/.next/server/chunks/ssr/_49b8d085._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5889596f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js +0 -3
- package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_74a1a173._.js +0 -7
- package/web/.next/server/chunks/ssr/_74a1a173._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7cb0396e._.js +0 -3
- package/web/.next/server/chunks/ssr/_7cb0396e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7d50fed0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_9bbdd461._.js +0 -4
- package/web/.next/server/chunks/ssr/_9bbdd461._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b7a43c05._.js +0 -3
- package/web/.next/server/chunks/ssr/_b7a43c05._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_bb09579b._.js +0 -3
- package/web/.next/server/chunks/ssr/_bcd239dd._.js +0 -3
- package/web/.next/server/chunks/ssr/_bcd239dd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e680c57c._.js +0 -9
- package/web/.next/server/chunks/ssr/_e680c57c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_63d47a3e._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_63d47a3e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0338c789._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_0338c789._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_071f1e80._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_071f1e80._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_55c1ff7d._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_55c1ff7d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ad14a90f.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ad14a90f.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d5838156._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_d5838156._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_dc28bc60._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_dc28bc60._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_dcb020e3._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_dcb020e3._.js.map +0 -1
- package/web/.next/static/chunks/09edd35d194bec06.js +0 -5
- package/web/.next/static/chunks/124b79a5d2a760fb.css +0 -1
- package/web/.next/static/chunks/200e07d995bd9a42.js +0 -1
- package/web/.next/static/chunks/22e3a3738308da2e.js +0 -1
- package/web/.next/static/chunks/25d3c4d18b8aecff.js +0 -7
- package/web/.next/static/chunks/2ceebcc839ee0d4b.js +0 -1
- package/web/.next/static/chunks/34444901ca3a1c3b.js +0 -1
- package/web/.next/static/chunks/3cf86457869c47bc.js +0 -1
- package/web/.next/static/chunks/4052a4971fbbac9c.js +0 -1
- package/web/.next/static/chunks/55060446f5490f20.js +0 -3
- package/web/.next/static/chunks/59bff7b33ebe5f68.js +0 -1
- package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
- package/web/.next/static/chunks/971e52f3f386ccfd.js +0 -1
- package/web/.next/static/chunks/981c6f3f1db99b4e.js +0 -1
- package/web/.next/static/chunks/b63e6727c84f30e2.js +0 -1
- package/web/.next/static/chunks/c10c0d6d458453bc.js +0 -1
- package/web/.next/static/chunks/c94a6a3d54dd4997.js +0 -5
- package/web/.next/static/chunks/d04d868f0971941d.js +0 -1
- package/web/.next/static/chunks/e7502fb670f32235.js +0 -1
- /package/web/.next/server/chunks/{[root-of-the-server]__2f61738a._.js.map → [root-of-the-server]__4eb2c4e4._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__acea6565._.js.map → [root-of-the-server]__5e3c6f3a._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__31598852._.js.map → [root-of-the-server]__86965b92._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__e3692208._.js.map → [root-of-the-server]__c8f90b29._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__fc6fd958._.js.map → [root-of-the-server]__ecd08b79._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__e0592c69._.js.map → [root-of-the-server]__894882ab._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__357d99f9._.js.map → [root-of-the-server]__e265da61._.js.map} +0 -0
- /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → xQMl8LUL504ceD3w9A5tJ}/_buildManifest.js +0 -0
- /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → xQMl8LUL504ceD3w9A5tJ}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → xQMl8LUL504ceD3w9A5tJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[50488,92548,46345,22405,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);a.s(["Code2",()=>c],50488);let d=(0,b.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);a.s(["GitCommitHorizontal",()=>d],92548);var e=a.i(25674);let f=(0,e.createServerReference)("40b5c3e289ad5304237b490a738b4ac6a459e0b309",e.callServer,void 0,e.findSourceMapURL,"openIde");a.s(["openIde",()=>f],46345);let g=(0,e.createServerReference)("4022223994044fd3226a46d158a9c44136a05ef6cb",e.callServer,void 0,e.findSourceMapURL,"openShell");a.s(["openShell",()=>g],22405)},53170,a=>{"use strict";let b=(0,a.i(25700).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>b],53170)},71238,a=>{"use strict";let b=(0,a.i(25700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],71238)},63698,a=>{"use strict";let b=(0,a.i(25700).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],63698)},50490,a=>{"use strict";let b=(0,a.i(25700).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],50490)},5698,a=>{"use strict";let b=(0,a.i(25700).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>b],5698)},66691,45751,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(25674);let e=(0,d.createServerReference)("40d9cbb5feda45858dcebeab9f17d25358f6f3cdc7",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("4045add9bb411c4d3d9052d5ff04cc66c9a09930ae",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("4035ac4b05ff0fdbb1c7532e84f233e9641b9cb22b",d.callServer,void 0,d.findSourceMapURL,"deployApplication"),h=(0,d.createServerReference)("40d877ccd666e182107b3bba6639028ce7c74d624a",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),i=(0,d.createServerReference)("4057d529281625072f3e7352ab40338a199513224e",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus");var j=a.i(87139);let k={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class l{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(a){let b=new Set;for(let c of a)b.add(c.targetId),this.update(c.targetId,{status:c.state,url:c.url,targetType:c.targetType,hydrated:!0});for(let[a,c]of this.entries)!b.has(a)&&c.hydrated&&null!==c.status?this.update(a,{status:null,url:null}):b.has(a)||c.hydrated||this.update(a,{hydrated:!0})}getEntry(a){return this.entries.get(a)??k}update(a,b){let c={...this.entries.get(a)??k,...b};this.entries.set(a,c),this.notify(a)}setStatus(a,b){null===b?this.update(a,{status:null,url:null,hydrated:!0}):this.update(a,{status:b.state,url:b.url,hydrated:!0})}subscribe(a,b){let c=this.listeners.get(a);return c||(c=new Set,this.listeners.set(a,c)),c.add(b),()=>{c?.delete(b),c?.size===0&&this.listeners.delete(a)}}subscribeAll(a){return this.globalListeners.add(a),()=>{this.globalListeners.delete(a)}}notify(a){let b=this.listeners.get(a);if(b)for(let a of b)a();for(let a of this.globalListeners)a()}}a.s(["DeploymentStatusStore",()=>l,"EMPTY_ENTRY",0,k],45751);let m=(0,j.createLogger)("[DeploymentStatusProvider]"),n=new Set(["Booting","Ready"]),o=(0,c.createContext)(null);function p({initialDeployments:a,children:d}){let j=(0,c.useRef)(null);j.current||(j.current=new l,j.current.hydrate(a));let k=j.current;(0,c.useEffect)(()=>{k.hydrate(a)},[a,k]);let p=(0,c.useRef)(new Map),q=(0,c.useCallback)(a=>{let b=p.current.get(a);b&&(clearInterval(b),p.current.delete(a))},[]),r=(0,c.useCallback)(a=>{if(p.current.has(a))return;let b=setInterval(async()=>{let b;try{b=await i(a)}catch(b){m.warn(`poll failed for "${a}"`,b),k.setStatus(a,null),q(a);return}if(!b||"Stopped"===b.state){k.setStatus(a,null),q(a);return}k.setStatus(a,b)},3e3);p.current.set(a,b)},[k,q]);(0,c.useEffect)(()=>{let a=p.current,b=k.subscribeAll(()=>{for(let[b]of a){let a=k.getEntry(b);a.status&&n.has(a.status)||q(b)}});return()=>{for(let[,c]of(b(),a))clearInterval(c);a.clear()}},[k,q]);let s=(0,c.useCallback)(a=>{!a||k.getEntry(a).hydrated||(k.update(a,{hydrated:!0}),(async()=>{try{let b=await i(a);k.setStatus(a,b),b&&n.has(b.state)&&r(a)}catch(b){m.warn(`ensureHydrated failed for "${a}"`,b)}})())},[k,r]),t=(0,c.useCallback)(async a=>{k.update(a.targetId,{deployLoading:!0,deployError:null});try{let b="feature"===a.targetType?await e(a.targetId):"application"===a.targetType?await g(a.targetId):await f(a.repositoryPath);if(!b.success)return void k.update(a.targetId,{deployLoading:!1,deployError:b.error??"An unexpected error occurred"});k.update(a.targetId,{deployLoading:!1,status:b.state??null,url:null,hydrated:!0,targetType:a.targetType}),r(a.targetId)}catch(c){let b=c instanceof Error?c.message:"An unexpected error occurred";k.update(a.targetId,{deployLoading:!1,deployError:b})}},[k,r]),u=(0,c.useCallback)(async a=>{if(a){k.update(a,{stopLoading:!0});try{(await h(a)).success?(q(a),k.update(a,{stopLoading:!1,status:null,url:null})):k.update(a,{stopLoading:!1})}catch(b){m.warn("stop error (non-critical)",b),k.update(a,{stopLoading:!1})}}},[k,q]),v=(0,c.useMemo)(()=>({store:k,deploy:t,stop:u,ensureHydrated:s}),[k,t,u,s]);return(0,b.jsx)(o.Provider,{value:v,children:d})}function q(){let a=(0,c.useContext)(o);if(!a)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return a}function r(){let a=(0,c.useContext)(o);return a||s}let s={store:new l,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};a.s(["DeploymentStatusProvider",()=>p,"useDeploymentStatusContext",()=>q,"useDeploymentStatusContextOptional",()=>r],66691)},18662,a=>{"use strict";var b=a.i(96960),c=a.i(66691);function d(){}function e(a){let{store:e,deploy:f,stop:g,ensureHydrated:h}=(0,c.useDeploymentStatusContextOptional)(),i=a?.targetId??"",j=(0,b.useCallback)(a=>i?e.subscribe(i,a):d,[e,i]),k=(0,b.useCallback)(()=>i?e.getEntry(i):e.getEntry(""),[e,i]),l=(0,b.useSyncExternalStore)(j,k,k);return(0,b.useEffect)(()=>{i&&h(i)},[i,h]),{deploy:(0,b.useCallback)(async()=>{a&&await f(a)},[f,a]),stop:(0,b.useCallback)(async()=>{i&&await g(i)},[g,i]),deployLoading:l.deployLoading,stopLoading:l.stopLoading,deployError:l.deployError,status:l.status,url:l.url}}a.s(["useDeployAction",()=>e])},78454,a=>{"use strict";a.i(24255),a.s([])},33511,a=>{"use strict";let b=(0,a.i(25700).default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);a.s(["Archive",()=>b],33511)},71632,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("40513b06442e7799286e7ba8d1b58fa6cf4cebba8f",b.callServer,void 0,b.findSourceMapURL,"openFolder");a.s(["openFolder",()=>c])},55628,a=>{"use strict";var b=a.i(96960),c=a.i(46345),d=a.i(22405),e=a.i(71632),f=a.i(25674);let g=(0,f.createServerReference)("40a695f75a76aec6b551f819edbe36be36c60cc660",f.callServer,void 0,f.findSourceMapURL,"syncRepository");function h(a){let[f,h]=(0,b.useState)(!1),[i,j]=(0,b.useState)(!1),[k,l]=(0,b.useState)(!1),[m,n]=(0,b.useState)(!1),[o,p]=(0,b.useState)(null),[q,r]=(0,b.useState)(null),[s,t]=(0,b.useState)(null),[u,v]=(0,b.useState)(null),w=(0,b.useRef)(null),x=(0,b.useRef)(null),y=(0,b.useRef)(null),z=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{w.current&&clearTimeout(w.current),x.current&&clearTimeout(x.current),y.current&&clearTimeout(y.current),z.current&&clearTimeout(z.current)},[]);let A=(0,b.useCallback)(async(b,c,d,e,f)=>{if(a&&!f){e.current&&clearTimeout(e.current),c(!0),d(null);try{let a=await b();if(!a.success){let b=a.error??"An unexpected error occurred";d(b),e.current=setTimeout(()=>d(null),5e3)}}catch(a){d(a instanceof Error?a.message:"An unexpected error occurred"),e.current=setTimeout(()=>d(null),5e3)}finally{c(!1)}}},[a]);return{openInIde:(0,b.useCallback)(()=>A(()=>(0,c.openIde)({repositoryPath:a.repositoryPath}),h,p,w,f),[A,f,a]),openInShell:(0,b.useCallback)(()=>A(()=>(0,d.openShell)({repositoryPath:a.repositoryPath}),j,r,x,i),[A,i,a]),openFolder:(0,b.useCallback)(()=>A(()=>(0,e.openFolder)(a.repositoryPath),l,t,y,k),[A,k,a]),syncMain:(0,b.useCallback)(()=>A(()=>g(a.repositoryId??""),n,v,z,m),[A,m,a]),ideLoading:f,shellLoading:i,folderLoading:k,syncLoading:m,ideError:o,shellError:q,folderError:s,syncError:u}}a.s(["useRepositoryActions",()=>h],55628)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0c75535f._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/data%3Ac6ec53%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A9ee6c1%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-commit-horizontal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/code-xml.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-branch.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/square.ts","../../../../../../../src/presentation/web/hooks/deployment-status-provider.tsx","../../../../../../../src/presentation/web/app/actions/data%3A7b7bbc%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A0b774b%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Af6856b%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A671197%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A2c3393%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/hooks/deployment-status-store.ts","../../../../../../../src/presentation/web/hooks/use-deploy-action.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/archive.ts","../../../../../../../src/presentation/web/app/actions/data%3Ad3e10f%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/repository-node/use-repository-actions.ts","../../../../../../../src/presentation/web/app/actions/data%3Ad97e86%20%3Ctext/javascript%3E"],"sourcesContent":["/* __next_internal_action_entry_do_not_use__ [{\"40b5c3e289ad5304237b490a738b4ac6a459e0b309\":\"openIde\"},\"src/presentation/web/app/actions/open-ide.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40b5c3e289ad5304237b490a738b4ac6a459e0b309\",callServer,void 0,findSourceMapURL,\"openIde\");export{$$RSC_SERVER_ACTION_0 as openIde};","/* __next_internal_action_entry_do_not_use__ [{\"4022223994044fd3226a46d158a9c44136a05ef6cb\":\"openShell\"},\"src/presentation/web/app/actions/open-shell.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4022223994044fd3226a46d158a9c44136a05ef6cb\",callServer,void 0,findSourceMapURL,\"openShell\");export{$$RSC_SERVER_ACTION_0 as openShell};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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\n/**\n * @component @name GitCommitHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/git-commit-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitCommitHorizontal = createLucideIcon('git-commit-horizontal', __iconNode);\n\nexport default GitCommitHorizontal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4', key: '1inbqp' }],\n ['path', { d: 'm6 8-4 4 4 4', key: '15zrgr' }],\n ['path', { d: 'm14.5 4-5 16', key: 'e7oirm' }],\n];\n\n/**\n * @component @name CodeXml\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CodeXml = createLucideIcon('code-xml', __iconNode);\n\nexport default CodeXml;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z',\n key: '10ikf1',\n },\n ],\n];\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('play', __iconNode);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n];\n\n/**\n * @component @name Square\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Square = createLucideIcon('square', __iconNode);\n\nexport default Square;\n","'use client';\n\n/**\n * DeploymentStatusProvider\n *\n * Wraps the dashboard with a shared deployment-status store seeded from\n * SSR data (ListDeploymentsUseCase via get-graph-data). All components\n * that call `useDeployAction(targetId)` subscribe to the same store, so\n * the \"click Run on node → tab shows URL instantly\" bug and the\n * \"URL lost after refresh\" bug are both resolved by construction.\n *\n * All business logic lives in use cases on the backend. This provider\n * owns only UI state transitions: which entries are hydrated, which are\n * loading, which have errors, and which need polling.\n */\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n} from 'react';\nimport type { DeploymentStatusEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { deployFeature } from '@/app/actions/deploy-feature';\nimport { deployRepository } from '@/app/actions/deploy-repository';\nimport { deployApplication } from '@/app/actions/deploy-application';\nimport { stopDeployment } from '@/app/actions/stop-deployment';\nimport { getDeploymentStatus } from '@/app/actions/get-deployment-status';\nimport { createLogger } from '@/lib/logger';\nimport {\n DeploymentStatusStore,\n type DeploymentEntryState,\n EMPTY_ENTRY,\n} from './deployment-status-store';\n\nconst log = createLogger('[DeploymentStatusProvider]');\n\nconst POLL_INTERVAL_MS = 3000;\nconst ACTIVE_STATES: ReadonlySet<DeploymentState> = new Set([\n 'Booting',\n 'Ready',\n] as DeploymentState[]);\n\nexport interface DeployActionInput {\n targetId: string;\n targetType: 'feature' | 'repository' | 'application';\n repositoryPath: string;\n branch?: string;\n}\n\ninterface DeploymentContextValue {\n store: DeploymentStatusStore;\n deploy: (input: DeployActionInput) => Promise<void>;\n stop: (targetId: string) => Promise<void>;\n ensureHydrated: (targetId: string) => void;\n}\n\nconst DeploymentStatusContext = createContext<DeploymentContextValue | null>(null);\n\nexport function DeploymentStatusProvider({\n initialDeployments,\n children,\n}: {\n initialDeployments: DeploymentStatusEntry[];\n children: ReactNode;\n}) {\n // One store per provider instance. Stable across renders.\n const storeRef = useRef<DeploymentStatusStore | null>(null);\n if (!storeRef.current) {\n storeRef.current = new DeploymentStatusStore();\n storeRef.current.hydrate(initialDeployments);\n }\n const store = storeRef.current;\n\n // Re-hydrate when SSR data changes (e.g. after graph-data poll).\n useEffect(() => {\n store.hydrate(initialDeployments);\n }, [initialDeployments, store]);\n\n // ── Polling ──────────────────────────────────────────────────────────\n // One interval per targetId. Started when an entry becomes active\n // (Booting/Ready) and stopped when it is no longer active.\n const pollIntervalsRef = useRef<Map<string, ReturnType<typeof setInterval>>>(new Map());\n\n const stopPolling = useCallback((targetId: string) => {\n const existing = pollIntervalsRef.current.get(targetId);\n if (existing) {\n clearInterval(existing);\n pollIntervalsRef.current.delete(targetId);\n }\n }, []);\n\n const startPolling = useCallback(\n (targetId: string) => {\n if (pollIntervalsRef.current.has(targetId)) return;\n const interval = setInterval(async () => {\n let result;\n try {\n result = await getDeploymentStatus(targetId);\n } catch (err) {\n log.warn(`poll failed for \"${targetId}\"`, err);\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n if (!result || result.state === 'Stopped') {\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n store.setStatus(targetId, result);\n }, POLL_INTERVAL_MS);\n pollIntervalsRef.current.set(targetId, interval);\n },\n [store, stopPolling]\n );\n\n // Reconcile polling with store state on every change.\n useEffect(() => {\n const intervals = pollIntervalsRef.current;\n const reconcile = () => {\n // Stop polls for entries that are no longer active.\n for (const [targetId] of intervals) {\n const entry = store.getEntry(targetId);\n if (!entry.status || !ACTIVE_STATES.has(entry.status)) {\n stopPolling(targetId);\n }\n }\n };\n const unsubscribe = store.subscribeAll(reconcile);\n return () => {\n unsubscribe();\n for (const [, interval] of intervals) clearInterval(interval);\n intervals.clear();\n };\n }, [store, stopPolling]);\n\n // ── Mount hydration per targetId ─────────────────────────────────────\n // When a hook subscribes to a targetId that was not in the SSR hydration\n // (e.g. a stale page with deployments started in another tab), fetch its\n // status once from the backend via getDeploymentStatus → use case.\n const ensureHydrated = useCallback(\n (targetId: string) => {\n if (!targetId) return;\n const entry = store.getEntry(targetId);\n if (entry.hydrated) return;\n // Mark hydrated immediately to dedupe concurrent callers.\n store.update(targetId, { hydrated: true });\n void (async () => {\n try {\n const result = await getDeploymentStatus(targetId);\n store.setStatus(targetId, result);\n if (result && ACTIVE_STATES.has(result.state)) startPolling(targetId);\n } catch (err) {\n log.warn(`ensureHydrated failed for \"${targetId}\"`, err);\n }\n })();\n },\n [store, startPolling]\n );\n\n // ── Actions ──────────────────────────────────────────────────────────\n const deploy = useCallback(\n async (input: DeployActionInput) => {\n store.update(input.targetId, { deployLoading: true, deployError: null });\n try {\n const result =\n input.targetType === 'feature'\n ? await deployFeature(input.targetId)\n : input.targetType === 'application'\n ? await deployApplication(input.targetId)\n : await deployRepository(input.repositoryPath);\n if (!result.success) {\n store.update(input.targetId, {\n deployLoading: false,\n deployError: result.error ?? 'An unexpected error occurred',\n });\n return;\n }\n store.update(input.targetId, {\n deployLoading: false,\n status: result.state ?? null,\n url: null,\n hydrated: true,\n targetType: input.targetType,\n });\n startPolling(input.targetId);\n } catch (err) {\n const message = err instanceof Error ? err.message : 'An unexpected error occurred';\n store.update(input.targetId, { deployLoading: false, deployError: message });\n }\n },\n [store, startPolling]\n );\n\n const stop = useCallback(\n async (targetId: string) => {\n if (!targetId) return;\n store.update(targetId, { stopLoading: true });\n try {\n const result = await stopDeployment(targetId);\n if (result.success) {\n stopPolling(targetId);\n store.update(targetId, {\n stopLoading: false,\n status: null,\n url: null,\n });\n } else {\n store.update(targetId, { stopLoading: false });\n }\n } catch (err) {\n log.warn('stop error (non-critical)', err);\n store.update(targetId, { stopLoading: false });\n }\n },\n [store, stopPolling]\n );\n\n const value = useMemo<DeploymentContextValue>(\n () => ({ store, deploy, stop, ensureHydrated }),\n [store, deploy, stop, ensureHydrated]\n );\n\n return (\n <DeploymentStatusContext.Provider value={value}>{children}</DeploymentStatusContext.Provider>\n );\n}\n\nexport function useDeploymentStatusContext(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (!ctx) {\n throw new Error('useDeploymentStatusContext must be used within a <DeploymentStatusProvider>');\n }\n return ctx;\n}\n\n/**\n * Non-throwing variant used by presentational hooks (e.g. useDeployAction)\n * that may render inside Storybook or other isolated contexts without\n * a provider. Returns a stub store/actions that do nothing.\n */\nexport function useDeploymentStatusContextOptional(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (ctx) return ctx;\n return FALLBACK_CONTEXT;\n}\n\nconst FALLBACK_STORE = new DeploymentStatusStore();\nconst FALLBACK_CONTEXT: DeploymentContextValue = {\n store: FALLBACK_STORE,\n deploy: async () => {\n /* no-op */\n },\n stop: async () => {\n /* no-op */\n },\n ensureHydrated: () => {\n /* no-op */\n },\n};\n\nexport { EMPTY_ENTRY, type DeploymentEntryState };\n","/* __next_internal_action_entry_do_not_use__ [{\"40d9cbb5feda45858dcebeab9f17d25358f6f3cdc7\":\"deployFeature\"},\"src/presentation/web/app/actions/deploy-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40d9cbb5feda45858dcebeab9f17d25358f6f3cdc7\",callServer,void 0,findSourceMapURL,\"deployFeature\");export{$$RSC_SERVER_ACTION_0 as deployFeature};","/* __next_internal_action_entry_do_not_use__ [{\"4045add9bb411c4d3d9052d5ff04cc66c9a09930ae\":\"deployRepository\"},\"src/presentation/web/app/actions/deploy-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4045add9bb411c4d3d9052d5ff04cc66c9a09930ae\",callServer,void 0,findSourceMapURL,\"deployRepository\");export{$$RSC_SERVER_ACTION_0 as deployRepository};","/* __next_internal_action_entry_do_not_use__ [{\"4035ac4b05ff0fdbb1c7532e84f233e9641b9cb22b\":\"deployApplication\"},\"src/presentation/web/app/actions/deploy-application.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4035ac4b05ff0fdbb1c7532e84f233e9641b9cb22b\",callServer,void 0,findSourceMapURL,\"deployApplication\");export{$$RSC_SERVER_ACTION_0 as deployApplication};","/* __next_internal_action_entry_do_not_use__ [{\"40d877ccd666e182107b3bba6639028ce7c74d624a\":\"stopDeployment\"},\"src/presentation/web/app/actions/stop-deployment.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40d877ccd666e182107b3bba6639028ce7c74d624a\",callServer,void 0,findSourceMapURL,\"stopDeployment\");export{$$RSC_SERVER_ACTION_0 as stopDeployment};","/* __next_internal_action_entry_do_not_use__ [{\"4057d529281625072f3e7352ab40338a199513224e\":\"getDeploymentStatus\"},\"src/presentation/web/app/actions/get-deployment-status.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4057d529281625072f3e7352ab40338a199513224e\",callServer,void 0,findSourceMapURL,\"getDeploymentStatus\");export{$$RSC_SERVER_ACTION_0 as getDeploymentStatus};","/**\n * Deployment Status Store\n *\n * External store (useSyncExternalStore-compatible) that holds the shared\n * deployment state keyed by targetId. Multiple components subscribed to\n * the same targetId see the same state — fixes the node/drawer-out-of-sync\n * bug and makes page-refresh hydration trivial.\n *\n * Mutation paths (deploy/stop/poll) go through server actions that wrap\n * use cases — this module stores state only and never contains business\n * logic.\n */\n\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport type {\n DeploymentStatus,\n DeploymentStatusEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport interface DeploymentEntryState {\n status: DeploymentState | null;\n url: string | null;\n targetType: string | null;\n /** Whether mount-hydration (listDeployments / getDeploymentStatus) has completed for this targetId. */\n hydrated: boolean;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n}\n\nexport const EMPTY_ENTRY: DeploymentEntryState = {\n status: null,\n url: null,\n targetType: null,\n hydrated: false,\n deployLoading: false,\n stopLoading: false,\n deployError: null,\n};\n\ntype Listener = () => void;\n\nexport class DeploymentStatusStore {\n private entries = new Map<string, DeploymentEntryState>();\n private listeners = new Map<string, Set<Listener>>();\n private globalListeners = new Set<Listener>();\n\n /** Seed the store from SSR data (ListDeploymentsUseCase output). */\n hydrate(entries: DeploymentStatusEntry[]): void {\n // Mark every SSR entry as hydrated and merge into the map.\n const seen = new Set<string>();\n for (const entry of entries) {\n seen.add(entry.targetId);\n this.update(entry.targetId, {\n status: entry.state,\n url: entry.url,\n targetType: entry.targetType,\n hydrated: true,\n });\n }\n // Any previously tracked entries missing from the SSR list are stale —\n // mark them hydrated with null state so subscribers learn their\n // deployment is gone.\n for (const [targetId, existing] of this.entries) {\n if (!seen.has(targetId) && existing.hydrated && existing.status !== null) {\n this.update(targetId, { status: null, url: null });\n } else if (!seen.has(targetId) && !existing.hydrated) {\n this.update(targetId, { hydrated: true });\n }\n }\n }\n\n getEntry(targetId: string): DeploymentEntryState {\n return this.entries.get(targetId) ?? EMPTY_ENTRY;\n }\n\n update(targetId: string, patch: Partial<DeploymentEntryState>): void {\n const current = this.entries.get(targetId) ?? EMPTY_ENTRY;\n const next: DeploymentEntryState = { ...current, ...patch };\n this.entries.set(targetId, next);\n this.notify(targetId);\n }\n\n /** Apply a status snapshot (from a server action result) to a targetId. */\n setStatus(targetId: string, status: DeploymentStatus | null): void {\n if (status === null) {\n this.update(targetId, { status: null, url: null, hydrated: true });\n return;\n }\n this.update(targetId, {\n status: status.state,\n url: status.url,\n hydrated: true,\n });\n }\n\n subscribe(targetId: string, listener: Listener): () => void {\n let set = this.listeners.get(targetId);\n if (!set) {\n set = new Set();\n this.listeners.set(targetId, set);\n }\n set.add(listener);\n return () => {\n set?.delete(listener);\n if (set?.size === 0) this.listeners.delete(targetId);\n };\n }\n\n subscribeAll(listener: Listener): () => void {\n this.globalListeners.add(listener);\n return () => {\n this.globalListeners.delete(listener);\n };\n }\n\n private notify(targetId: string): void {\n const set = this.listeners.get(targetId);\n if (set) for (const l of set) l();\n for (const l of this.globalListeners) l();\n }\n}\n","'use client';\n\n/**\n * useDeployAction\n *\n * Thin subscriber to the shared DeploymentStatusProvider, scoped to one\n * targetId. All components that call this hook with the same targetId\n * see the same state — a click on a node updates the drawer instantly,\n * and state survives page refresh via SSR hydration.\n *\n * Business logic (start/stop/status) lives in backend use cases — this\n * hook contains zero decision-making code.\n */\n\nimport { useEffect, useSyncExternalStore, useCallback } from 'react';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport {\n useDeploymentStatusContextOptional,\n type DeployActionInput,\n} from './deployment-status-provider';\n\nexport type { DeployActionInput };\n\n/** Stable no-op unsubscribe for hooks called with a null input. */\nfunction noop(): void {\n /* no-op */\n}\n\nexport interface DeployActionState {\n deploy: () => Promise<void>;\n stop: () => Promise<void>;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n status: DeploymentState | null;\n url: string | null;\n}\n\nexport function useDeployAction(input: DeployActionInput | null): DeployActionState {\n const { store, deploy, stop, ensureHydrated } = useDeploymentStatusContextOptional();\n const targetId = input?.targetId ?? '';\n\n // Subscribe to the store entry for this targetId.\n const subscribe = useCallback(\n (listener: () => void) => {\n if (!targetId) return noop;\n return store.subscribe(targetId, listener);\n },\n [store, targetId]\n );\n const getSnapshot = useCallback(\n () => (targetId ? store.getEntry(targetId) : store.getEntry('')),\n [store, targetId]\n );\n const entry = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n // On mount (or when targetId changes), ensure the entry is hydrated.\n useEffect(() => {\n if (targetId) ensureHydrated(targetId);\n }, [targetId, ensureHydrated]);\n\n const handleDeploy = useCallback(async () => {\n if (!input) return;\n await deploy(input);\n }, [deploy, input]);\n\n const handleStop = useCallback(async () => {\n if (!targetId) return;\n await stop(targetId);\n }, [stop, targetId]);\n\n return {\n deploy: handleDeploy,\n stop: handleStop,\n deployLoading: entry.deployLoading,\n stopLoading: entry.stopLoading,\n deployError: entry.deployError,\n status: entry.status,\n url: entry.url,\n };\n}\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'M10 12h4', key: 'a56b0p' }],\n];\n\n/**\n * @component @name Archive\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Archive = createLucideIcon('archive', __iconNode);\n\nexport default Archive;\n","/* __next_internal_action_entry_do_not_use__ [{\"40513b06442e7799286e7ba8d1b58fa6cf4cebba8f\":\"openFolder\"},\"src/presentation/web/app/actions/open-folder.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40513b06442e7799286e7ba8d1b58fa6cf4cebba8f\",callServer,void 0,findSourceMapURL,\"openFolder\");export{$$RSC_SERVER_ACTION_0 as openFolder};","'use client';\n\nimport { useState, useCallback, useRef, useEffect } from 'react';\nimport { openIde } from '@/app/actions/open-ide';\nimport { openShell } from '@/app/actions/open-shell';\nimport { openFolder } from '@/app/actions/open-folder';\nimport { syncRepository } from '@/app/actions/sync-repository';\n\nexport interface RepositoryActionsInput {\n repositoryId?: string;\n repositoryPath: string;\n}\n\nexport interface RepositoryActionsState {\n openInIde: () => Promise<void>;\n openInShell: () => Promise<void>;\n openFolder: () => Promise<void>;\n syncMain: () => Promise<void>;\n ideLoading: boolean;\n shellLoading: boolean;\n folderLoading: boolean;\n syncLoading: boolean;\n ideError: string | null;\n shellError: string | null;\n folderError: string | null;\n syncError: string | null;\n}\n\nconst ERROR_CLEAR_DELAY = 5000;\n\nexport function useRepositoryActions(input: RepositoryActionsInput | null): RepositoryActionsState {\n const [ideLoading, setIdeLoading] = useState(false);\n const [shellLoading, setShellLoading] = useState(false);\n const [folderLoading, setFolderLoading] = useState(false);\n const [syncLoading, setSyncLoading] = useState(false);\n const [ideError, setIdeError] = useState<string | null>(null);\n const [shellError, setShellError] = useState<string | null>(null);\n const [folderError, setFolderError] = useState<string | null>(null);\n const [syncError, setSyncError] = useState<string | null>(null);\n\n const ideTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const shellTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const folderTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const syncTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Clear timers on unmount\n useEffect(() => {\n const ideRef = ideTimerRef;\n const shellRef = shellTimerRef;\n const folderRef = folderTimerRef;\n const syncRef = syncTimerRef;\n return () => {\n if (ideRef.current) clearTimeout(ideRef.current);\n if (shellRef.current) clearTimeout(shellRef.current);\n if (folderRef.current) clearTimeout(folderRef.current);\n if (syncRef.current) clearTimeout(syncRef.current);\n };\n }, []);\n\n const performAction = useCallback(\n async (\n action: () => Promise<{ success: boolean; error?: string }>,\n setLoading: (v: boolean) => void,\n setError: (v: string | null) => void,\n timerRef: React.RefObject<ReturnType<typeof setTimeout> | null>,\n isLoading: boolean\n ) => {\n if (!input || isLoading) return;\n\n if (timerRef.current) clearTimeout(timerRef.current);\n\n setLoading(true);\n setError(null);\n\n try {\n const result = await action();\n\n if (!result.success) {\n const errorMessage = result.error ?? 'An unexpected error occurred';\n setError(errorMessage);\n timerRef.current = setTimeout(() => setError(null), ERROR_CLEAR_DELAY);\n }\n } catch (err: unknown) {\n const errorMessage = err instanceof Error ? err.message : 'An unexpected error occurred';\n setError(errorMessage);\n timerRef.current = setTimeout(() => setError(null), ERROR_CLEAR_DELAY);\n } finally {\n setLoading(false);\n }\n },\n [input]\n );\n\n const handleOpenIde = useCallback(\n () =>\n performAction(\n () => openIde({ repositoryPath: input!.repositoryPath }),\n setIdeLoading,\n setIdeError,\n ideTimerRef,\n ideLoading\n ),\n [performAction, ideLoading, input]\n );\n\n const handleOpenShell = useCallback(\n () =>\n performAction(\n () => openShell({ repositoryPath: input!.repositoryPath }),\n setShellLoading,\n setShellError,\n shellTimerRef,\n shellLoading\n ),\n [performAction, shellLoading, input]\n );\n\n const handleOpenFolder = useCallback(\n () =>\n performAction(\n () => openFolder(input!.repositoryPath),\n setFolderLoading,\n setFolderError,\n folderTimerRef,\n folderLoading\n ),\n [performAction, folderLoading, input]\n );\n\n const handleSyncMain = useCallback(\n () =>\n performAction(\n () => syncRepository(input!.repositoryId ?? ''),\n setSyncLoading,\n setSyncError,\n syncTimerRef,\n syncLoading\n ),\n [performAction, syncLoading, input]\n );\n\n return {\n openInIde: handleOpenIde,\n openInShell: handleOpenShell,\n openFolder: handleOpenFolder,\n syncMain: handleSyncMain,\n ideLoading,\n shellLoading,\n folderLoading,\n syncLoading,\n ideError,\n shellError,\n folderError,\n syncError,\n };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40a695f75a76aec6b551f819edbe36be36c60cc660\":\"syncRepository\"},\"src/presentation/web/app/actions/sync-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40a695f75a76aec6b551f819edbe36be36c60cc660\",callServer,void 0,findSourceMapURL,\"syncRepository\");export{$$RSC_SERVER_ACTION_0 as syncRepository};"],"names":[],"mappings":"mFGoBgB,CAAA,CAAA,ADAV,CCAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ADAV,ACAU,CAAA,ADAV,CCAU,ADAV,ACAU,uBAhBA,CDAD,ACAC,CDAD,ACAC,yCACA,eAAgB,CAAA,ADAD,CCAC,ADAD,EAAA,UCAgB,CDAF,0BCCb,IAAA,4CDc1B,ECAA,CAAA,EDAsB,CCAZ,ADAY,CCAtB,AAAU,ADAY,CCAtB,AAAU,ADAY,CCAtB,KDAsB,EAAiB,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CAAA,ACAA,CAAA,ADAA,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CAAA,ACAU,CDAV,ACAU,CDAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAyB,CAAA,AAhBnE,CAgBmE,AChBnE,CDgBmE,AChBnE,CAAA,ADgBmE,CChBnE,ADgBmE,CChBnE,ADgBmE,CChBnE,ADgBmE,CChBnE,ADgBmE,CAAA,CAhBzD,AAgBmE,CAAA,AAhBnE,AAAE,GAAA,KAAU,CCAT,ADAS,CAAA,ACAT,CDAS,ACAT,KDAmB,CCAD,ADAC,CCAD,ADAI,gBAAU,CAAU,CAAA,CACxD,CAAC,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,CCAA,ADAA,AAAQ,CCAA,ADAA,AAAE,CAAA,CAAA,CAAI,CCAD,ADAC,CCAD,ADAC,CCAD,ADAC,CAAA,ACAD,ADAM,CCAN,ADAM,CCAN,ADAM,CAAI,ACAV,ADAM,CCAN,ADAU,CAAA,ACAV,CAAA,ADAU,CCAV,ADAU,GAAS,CCAH,ADAG,IAAM,CAAA,ACAJ,CAAA,ADAI,CAAA,ACAJ,ADAQ,KAAM,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,SACvD,CCAA,ADAA,GAAM,CCAD,ADAC,CCAD,ADAC,CAAA,ACAD,CAAA,ADAC,CCAD,ADAC,GAAU,CCAX,ADAW,CCAX,ADAW,CCAX,ADAW,CCAX,ADAW,IAAU,CCAA,ADAA,CAAA,ACAA,CAAA,ADAA,CCAA,ADAA,CAAM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","ignoreList":[2,3,4,5,6,7,8,18]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[10606,a=>{"use strict";var b=a.i(51969);a.s(["CheckIcon",()=>b.default])},96853,a=>{"use strict";let b=(0,a.i(25700).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);a.s(["default",()=>b])},69428,a=>{"use strict";let b=(0,a.i(25700).default)("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);a.s(["ClipboardList",()=>b],69428)},18615,a=>{"use strict";let b=(0,a.i(25700).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);a.s(["RotateCcw",()=>b],18615)},83886,a=>{"use strict";let b=(0,a.i(25700).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",()=>b],83886)},42527,a=>{"use strict";let b=(0,a.i(25700).default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["FolderPlus",()=>b],42527)},49026,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("404bfa1532a6c32feb8705aaaa83581cd41cae7177",b.callServer,void 0,b.findSourceMapURL,"addRepository");a.s(["addRepository",()=>c])},82014,a=>{"use strict";let b=(0,a.i(25700).default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);a.s(["LayoutGrid",()=>b],82014)},93193,a=>{"use strict";var b=a.i(91857);a.s(["TriangleAlert",()=>b.default])},60172,a=>{"use strict";var b=a.i(66691),c=a.i(45751);a.s(["DeploymentStatusProvider",()=>b.DeploymentStatusProvider,"EMPTY_ENTRY",()=>c.EMPTY_ENTRY,"useDeploymentStatusContext",()=>b.useDeploymentStatusContext,"useDeploymentStatusContextOptional",()=>b.useDeploymentStatusContextOptional])},38702,16223,a=>{"use strict";var b=a.i(12656),c=a.i(85536);function d({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}a.s(["EmptyState",()=>d],16223),a.s([],38702)},79794,a=>{"use strict";let b=(0,a.i(25700).default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);a.s(["SlidersHorizontal",()=>b],79794)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_11c75b5e._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/minus.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/clipboard-list.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/rotate-ccw.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/eye.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-plus.ts","../../../../../../../src/presentation/web/app/actions/data%3A4563ed%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/layout-grid.ts","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/sliders-horizontal.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M5 12h14', key: '1ays0h' }]];\n\n/**\n * @component @name Minus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Minus = createLucideIcon('minus', __iconNode);\n\nexport default Minus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1', key: 'tgr4d6' }],\n [\n 'path',\n {\n d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2',\n key: '116196',\n },\n ],\n ['path', { d: 'M12 11h4', key: '1jrz19' }],\n ['path', { d: 'M12 16h4', key: 'n85exb' }],\n ['path', { d: 'M8 11h.01', key: '1dfujw' }],\n ['path', { d: 'M8 16h.01', key: '18s6g9' }],\n];\n\n/**\n * @component @name ClipboardList\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clipboard-list\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ClipboardList = createLucideIcon('clipboard-list', __iconNode);\n\nexport default ClipboardList;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '1357e3' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n];\n\n/**\n * @component @name RotateCcw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RotateCcw = createLucideIcon('rotate-ccw', __iconNode);\n\nexport default RotateCcw;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n key: '1nclc0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n];\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('eye', __iconNode);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 10v6', key: '1bos4e' }],\n ['path', { d: 'M9 13h6', key: '1uhe8q' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n];\n\n/**\n * @component @name FolderPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderPlus = createLucideIcon('folder-plus', __iconNode);\n\nexport default FolderPlus;\n","/* __next_internal_action_entry_do_not_use__ [{\"404bfa1532a6c32feb8705aaaa83581cd41cae7177\":\"addRepository\"},\"src/presentation/web/app/actions/add-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"404bfa1532a6c32feb8705aaaa83581cd41cae7177\",callServer,void 0,findSourceMapURL,\"addRepository\");export{$$RSC_SERVER_ACTION_0 as addRepository};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1', key: '1g98yp' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1', key: '6d4xhi' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1', key: 'nxv5o0' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1', key: '1bb6yr' }],\n];\n\n/**\n * @component @name LayoutGrid\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/layout-grid\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LayoutGrid = createLucideIcon('layout-grid', __iconNode);\n\nexport default LayoutGrid;\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M10 5H3', key: '1qgfaw' }],\n ['path', { d: 'M12 19H3', key: 'yhmn1j' }],\n ['path', { d: 'M14 3v4', key: '1sua03' }],\n ['path', { d: 'M16 17v4', key: '1q0r14' }],\n ['path', { d: 'M21 12h-9', key: '1o4lsq' }],\n ['path', { d: 'M21 19h-5', key: '1rlt1p' }],\n ['path', { d: 'M21 5h-7', key: '1oszz2' }],\n ['path', { d: 'M8 10v4', key: 'tgpxqk' }],\n ['path', { d: 'M8 12H3', key: 'a7s4jb' }],\n];\n\n/**\n * @component @name SlidersHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sliders-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SlidersHorizontal = createLucideIcon('sliders-horizontal', __iconNode);\n\nexport default SlidersHorizontal;\n"],"names":[],"mappings":"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","ignoreList":[1,2,3,4,6,8]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[66421,a=>{"use strict";var b=a.i(48939);a.s(["Direction",0,b])},45112,81589,a=>{"use strict";let b=(0,a.i(25700).default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);a.s(["default",()=>b],81589),a.s(["PanelLeftIcon",()=>b],45112)},55003,55837,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(42261);a.i(45112);var e=a.i(66421),f=a.i(20098),g=a.i(85536);a.i(18948),a.i(90920),a.i(13126);var h=a.i(10568),i=a.i(71335);function j({...a}){return(0,b.jsx)(i.Dialog.Root,{"data-slot":"sheet",...a})}function k({...a}){return(0,b.jsx)(i.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function l({className:a,...c}){return(0,b.jsx)(i.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,g.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...c})}function m({className:a,children:c,side:d="right",showCloseButton:e=!0,...f}){return(0,b.jsxs)(k,{children:[(0,b.jsx)(l,{}),(0,b.jsxs)(i.Dialog.Content,{"data-slot":"sheet-content",className:(0,g.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===d&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 end-0 h-full w-3/4 border-s sm:max-w-sm","left"===d&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 start-0 h-full w-3/4 border-e sm:max-w-sm","top"===d&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===d&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",a),...f,children:[c,e?(0,b.jsxs)(i.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,b.jsx)(h.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function n({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,g.cn)("flex flex-col gap-1.5 p-4",a),...c})}function o({className:a,...c}){return(0,b.jsx)(i.Dialog.Title,{"data-slot":"sheet-title",className:(0,g.cn)("text-foreground font-semibold",a),...c})}function p({className:a,...c}){return(0,b.jsx)(i.Dialog.Description,{"data-slot":"sheet-description",className:(0,g.cn)("text-muted-foreground text-sm",a),...c})}function q({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"skeleton",className:(0,g.cn)("bg-accent animate-pulse rounded-md",a),...c})}a.s(["Skeleton",()=>q],55837);var r=a.i(82934);let s="shep-sidebar-open",t=c.createContext(null);function u(){let a=c.useContext(t);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function v({defaultOpen:a=!0,open:d,onOpenChange:e,className:f,style:h,children:i,...j}){let k=function(){let[a,b]=c.useState(void 0);return c.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=c.useState(!1),[n,o]=c.useState(!1),[p,q]=c.useState(a),u=d??p,v=c.useCallback(a=>{let b="function"==typeof a?a(u):a;e?e(b):q(b);try{localStorage.setItem(s,String(b)),document.cookie=`${s}=${b}; path=/; max-age=31536000; SameSite=Lax`}catch{}},[e,u]),w=c.useCallback(()=>(o(!0),k?m(a=>!a):v(a=>!a)),[k,v,m]);c.useEffect(()=>{try{if(!document.cookie.includes(s)){let a=localStorage.getItem(s);null!=a&&(document.cookie=`${s}=${a}; path=/; max-age=31536000; SameSite=Lax`)}}catch{}},[]),c.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),w())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[w]);let x=u?"expanded":"collapsed",y=c.useMemo(()=>({state:x,open:u,setOpen:v,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:w,animated:n}),[x,u,v,k,l,m,w,n]);return(0,b.jsx)(t.Provider,{value:y,children:(0,b.jsx)(r.TooltipProvider,{delayDuration:0,children:(0,b.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...h},className:(0,g.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",f),...j,children:i})})})}function w({side:a="left",variant:c="sidebar",collapsible:d="offcanvas",className:e,children:f,...h}){let{isMobile:i,state:k,openMobile:l,setOpenMobile:q,animated:r}=u();return"none"===d?(0,b.jsx)("div",{"data-slot":"sidebar",className:(0,g.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",e),...h,children:f}):i?(0,b.jsx)(j,{open:l,onOpenChange:q,...h,children:(0,b.jsxs)(m,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,b.jsxs)(n,{className:"sr-only",children:[(0,b.jsx)(o,{children:"Sidebar"}),(0,b.jsx)(p,{children:"Displays the mobile sidebar."})]}),(0,b.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,b.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":k,"data-collapsible":"collapsed"===k?d:"","data-variant":c,"data-side":a,"data-slot":"sidebar",children:[(0,b.jsx)("div",{"data-slot":"sidebar-gap",className:(0,g.cn)("relative w-(--sidebar-width) bg-transparent",r&&"transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","floating"===c||"inset"===c?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,b.jsx)("div",{"data-slot":"sidebar-container",className:(0,g.cn)("fixed inset-y-0 start-0 z-10 hidden h-svh w-(--sidebar-width) md:flex",r&&"transition-[inset-inline-start,width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]","floating"===c||"inset"===c?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"border-e group-data-[collapsible=icon]:w-(--sidebar-width-icon)",e),...h,children:(0,b.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:f})})]})}function x({className:a,...c}){let{toggleSidebar:d}=u();return(0,b.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:d,title:"Toggle Sidebar",className:(0,g.cn)("hover:after:bg-sidebar-border absolute inset-y-0 -end-4 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-0.5 sm:flex","cursor-w-resize rtl:cursor-e-resize","in-data-[state=collapsed]:cursor-e-resize rtl:in-data-[state=collapsed]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full","in-data-[collapsible=offcanvas]:-end-2",a),...c})}function y({className:a,...c}){return(0,b.jsx)("main",{"data-slot":"sidebar-inset",className:(0,g.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",a),...c})}function z({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,g.cn)("flex flex-col gap-2 p-2",a),...c})}function A({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,g.cn)("flex flex-col gap-2 p-2",a),...c})}function B({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,g.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...c})}function C({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,g.cn)("relative flex w-full min-w-0 flex-col p-2",a),...c})}function D({className:a,asChild:c=!1,...d}){let e=c?f.Slot.Root:"div";return(0,b.jsx)(e,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,g.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...d})}function E({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,g.cn)("w-full text-sm",a),...c})}function F({className:a,...c}){return(0,b.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,g.cn)("flex w-full min-w-0 flex-col gap-1",a),...c})}function G({className:a,...c}){return(0,b.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,g.cn)("group/menu-item relative",a),...c})}let H=(0,d.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function I({asChild:a=!1,isActive:c=!1,variant:d="default",size:h="default",tooltip:i,className:j,...k}){let l=a?f.Slot.Root:"button",{isMobile:m,state:n}=u(),o=e.Direction.useDirection(),p=(0,b.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":h,"data-active":c,className:(0,g.cn)(H({variant:d,size:h}),j),...k});return i?("string"==typeof i&&(i={children:i}),(0,b.jsxs)(r.Tooltip,{children:[(0,b.jsx)(r.TooltipTrigger,{asChild:!0,children:p}),(0,b.jsx)(r.TooltipContent,{side:"rtl"===o?"left":"right",align:"center",hidden:"collapsed"!==n||m,...i})]})):p}a.s(["Sidebar",()=>w,"SidebarContent",()=>B,"SidebarFooter",()=>A,"SidebarGroup",()=>C,"SidebarGroupContent",()=>E,"SidebarGroupLabel",()=>D,"SidebarHeader",()=>z,"SidebarInset",()=>y,"SidebarMenu",()=>F,"SidebarMenuButton",()=>I,"SidebarMenuItem",()=>G,"SidebarProvider",()=>v,"SidebarRail",()=>x,"useSidebar",()=>u],55003)},48265,a=>{"use strict";var b=a.i(12656),c=a.i(96960);let d=(0,c.createContext)({swapPosition:!1});function e({children:a,layout:c}){return(0,b.jsx)(d.Provider,{value:c,children:a})}function f(){return(0,c.useContext)(d)}a.s(["FabLayoutProvider",()=>e,"useFabLayout",()=>f])},1356,a=>{"use strict";var b=a.i(12656),c=a.i(96960);let d={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"blocked",pending:"pending",error:"error",creating:null,deleting:null,archived:null};function e(a){return d[a]}let f=(0,c.createContext)(null);function g({children:a}){let[d,e]=(0,c.useState)([]),[g,h]=(0,c.useState)(!1),i=(0,c.useMemo)(()=>({features:d,setFeatures:e,hasRepositories:g,setHasRepositories:h}),[d,g]);return(0,b.jsx)(f.Provider,{value:i,children:a})}function h(){let a=(0,c.useContext)(f);if(!a)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return a}a.s(["SidebarFeaturesProvider",()=>g,"mapNodeStateToSidebarStatus",()=>e,"useSidebarFeaturesContext",()=>h])}];
|
|
1
|
+
module.exports=[66421,a=>{"use strict";var b=a.i(48939);a.s(["Direction",0,b])},45112,81589,a=>{"use strict";let b=(0,a.i(25700).default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);a.s(["default",()=>b],81589),a.s(["PanelLeftIcon",()=>b],45112)},55003,55837,16911,48822,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(42261);a.i(45112);var e=a.i(66421),f=a.i(20098),g=a.i(85536);a.i(18948),a.i(90920),a.i(13126);var h=a.i(10568),i=a.i(71335);function j({...a}){return(0,b.jsx)(i.Dialog.Root,{"data-slot":"sheet",...a})}function k({...a}){return(0,b.jsx)(i.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function l({className:a,...c}){return(0,b.jsx)(i.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,g.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...c})}function m({className:a,children:c,side:d="right",showCloseButton:e=!0,...f}){return(0,b.jsxs)(k,{children:[(0,b.jsx)(l,{}),(0,b.jsxs)(i.Dialog.Content,{"data-slot":"sheet-content",className:(0,g.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===d&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 end-0 h-full w-3/4 border-s sm:max-w-sm","left"===d&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 start-0 h-full w-3/4 border-e sm:max-w-sm","top"===d&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===d&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",a),...f,children:[c,e?(0,b.jsxs)(i.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,b.jsx)(h.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function n({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,g.cn)("flex flex-col gap-1.5 p-4",a),...c})}function o({className:a,...c}){return(0,b.jsx)(i.Dialog.Title,{"data-slot":"sheet-title",className:(0,g.cn)("text-foreground font-semibold",a),...c})}function p({className:a,...c}){return(0,b.jsx)(i.Dialog.Description,{"data-slot":"sheet-description",className:(0,g.cn)("text-muted-foreground text-sm",a),...c})}function q({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"skeleton",className:(0,g.cn)("bg-accent animate-pulse rounded-md",a),...c})}a.s(["Skeleton",()=>q],55837);var r=a.i(82934);let s="shep-sidebar-open",t=c.createContext(null);function u(){let a=c.useContext(t);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function v({defaultOpen:a=!0,open:d,onOpenChange:e,className:f,style:h,children:i,...j}){let k=function(){let[a,b]=c.useState(void 0);return c.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=c.useState(!1),[n,o]=c.useState(!1),[p,q]=c.useState(a),u=d??p,v=c.useCallback(a=>{let b="function"==typeof a?a(u):a;e?e(b):q(b);try{localStorage.setItem(s,String(b)),document.cookie=`${s}=${b}; path=/; max-age=31536000; SameSite=Lax`}catch{}},[e,u]),w=c.useCallback(()=>(o(!0),k?m(a=>!a):v(a=>!a)),[k,v,m]);c.useEffect(()=>{try{if(!document.cookie.includes(s)){let a=localStorage.getItem(s);null!=a&&(document.cookie=`${s}=${a}; path=/; max-age=31536000; SameSite=Lax`)}}catch{}},[]),c.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),w())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[w]);let x=u?"expanded":"collapsed",y=c.useMemo(()=>({state:x,open:u,setOpen:v,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:w,animated:n}),[x,u,v,k,l,m,w,n]);return(0,b.jsx)(t.Provider,{value:y,children:(0,b.jsx)(r.TooltipProvider,{delayDuration:0,children:(0,b.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...h},className:(0,g.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",f),...j,children:i})})})}function w({side:a="left",variant:c="sidebar",collapsible:d="offcanvas",className:e,children:f,...h}){let{isMobile:i,state:k,openMobile:l,setOpenMobile:q,animated:r}=u();return"none"===d?(0,b.jsx)("div",{"data-slot":"sidebar",className:(0,g.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",e),...h,children:f}):i?(0,b.jsx)(j,{open:l,onOpenChange:q,...h,children:(0,b.jsxs)(m,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,b.jsxs)(n,{className:"sr-only",children:[(0,b.jsx)(o,{children:"Sidebar"}),(0,b.jsx)(p,{children:"Displays the mobile sidebar."})]}),(0,b.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,b.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":k,"data-collapsible":"collapsed"===k?d:"","data-variant":c,"data-side":a,"data-slot":"sidebar",children:[(0,b.jsx)("div",{"data-slot":"sidebar-gap",className:(0,g.cn)("relative w-(--sidebar-width) bg-transparent",r&&"transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","floating"===c||"inset"===c?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,b.jsx)("div",{"data-slot":"sidebar-container",className:(0,g.cn)("fixed inset-y-0 start-0 z-10 hidden h-svh w-(--sidebar-width) md:flex",r&&"transition-[inset-inline-start,width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]","floating"===c||"inset"===c?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"border-e group-data-[collapsible=icon]:w-(--sidebar-width-icon)",e),...h,children:(0,b.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:f})})]})}function x({className:a,...c}){let{toggleSidebar:d}=u();return(0,b.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:d,title:"Toggle Sidebar",className:(0,g.cn)("hover:after:bg-sidebar-border absolute inset-y-0 -end-4 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-0.5 sm:flex","cursor-w-resize rtl:cursor-e-resize","in-data-[state=collapsed]:cursor-e-resize rtl:in-data-[state=collapsed]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full","in-data-[collapsible=offcanvas]:-end-2",a),...c})}function y({className:a,...c}){return(0,b.jsx)("main",{"data-slot":"sidebar-inset",className:(0,g.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",a),...c})}function z({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,g.cn)("flex flex-col gap-2 p-2",a),...c})}function A({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,g.cn)("flex flex-col gap-2 p-2",a),...c})}function B({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,g.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...c})}function C({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,g.cn)("relative flex w-full min-w-0 flex-col p-2",a),...c})}function D({className:a,asChild:c=!1,...d}){let e=c?f.Slot.Root:"div";return(0,b.jsx)(e,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,g.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...d})}function E({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,g.cn)("w-full text-sm",a),...c})}function F({className:a,...c}){return(0,b.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,g.cn)("flex w-full min-w-0 flex-col gap-1",a),...c})}function G({className:a,...c}){return(0,b.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,g.cn)("group/menu-item relative",a),...c})}let H=(0,d.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function I({asChild:a=!1,isActive:c=!1,variant:d="default",size:h="default",tooltip:i,className:j,...k}){let l=a?f.Slot.Root:"button",{isMobile:m,state:n}=u(),o=e.Direction.useDirection(),p=(0,b.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":h,"data-active":c,className:(0,g.cn)(H({variant:d,size:h}),j),...k});return i?("string"==typeof i&&(i={children:i}),(0,b.jsxs)(r.Tooltip,{children:[(0,b.jsx)(r.TooltipTrigger,{asChild:!0,children:p}),(0,b.jsx)(r.TooltipContent,{side:"rtl"===o?"left":"right",align:"center",hidden:"collapsed"!==n||m,...i})]})):p}function J({className:a,size:c=24,variant:d="default"}){return(0,b.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:c,height:c,className:(0,g.cn)("shrink-0","dev"===d&&"text-cyan-400",a),"aria-hidden":"true",children:(0,b.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,b.jsx)("path",{d:"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z",fill:"currentColor"})})})}a.s(["Sidebar",()=>w,"SidebarContent",()=>B,"SidebarFooter",()=>A,"SidebarGroup",()=>C,"SidebarGroupContent",()=>E,"SidebarGroupLabel",()=>D,"SidebarHeader",()=>z,"SidebarInset",()=>y,"SidebarMenu",()=>F,"SidebarMenuButton",()=>I,"SidebarMenuItem",()=>G,"SidebarProvider",()=>v,"SidebarRail",()=>x,"useSidebar",()=>u],55003),a.s(["ShepLogo",()=>J],16911),a.s([],48822)},48265,a=>{"use strict";var b=a.i(12656),c=a.i(96960);let d=(0,c.createContext)({swapPosition:!1});function e({children:a,layout:c}){return(0,b.jsx)(d.Provider,{value:c,children:a})}function f(){return(0,c.useContext)(d)}a.s(["FabLayoutProvider",()=>e,"useFabLayout",()=>f])},1356,a=>{"use strict";var b=a.i(12656),c=a.i(96960);let d={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"blocked",pending:"pending",error:"error",creating:null,deleting:null,archived:null};function e(a){return d[a]}let f=(0,c.createContext)(null);function g({children:a}){let[d,e]=(0,c.useState)([]),[g,h]=(0,c.useState)(!1),i=(0,c.useMemo)(()=>({features:d,setFeatures:e,hasRepositories:g,setHasRepositories:h}),[d,g]);return(0,b.jsx)(f.Provider,{value:i,children:a})}function h(){let a=(0,c.useContext)(f);if(!a)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return a}a.s(["SidebarFeaturesProvider",()=>g,"mapNodeStateToSidebarStatus",()=>e,"useSidebarFeaturesContext",()=>h])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1879404a._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/panel-left.ts","../../../../../../../src/presentation/web/components/ui/sidebar.tsx","../../../../../../../src/presentation/web/hooks/use-mobile.ts","../../../../../../../src/presentation/web/components/ui/sheet.tsx","../../../../../../../src/presentation/web/components/ui/skeleton.tsx","../../../../../../../src/presentation/web/hooks/fab-layout-context.tsx","../../../../../../../src/presentation/web/hooks/sidebar-features-context.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M9 3v18', key: 'fh3hqa' }],\n];\n\n/**\n * @component @name PanelLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/panel-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PanelLeft = createLucideIcon('panel-left', __iconNode);\n\nexport default PanelLeft;\n","'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\nimport { Direction, Slot } from 'radix-ui';\n\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nconst SIDEBAR_STORAGE_KEY = 'shep-sidebar-open';\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ninterface SidebarContextProps {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n /** Whether transitions should be enabled (false until first user toggle). */\n animated: boolean;\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n const [animated, setAnimated] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n // defaultOpen comes from server-side cookie reading, so SSR and client agree.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // Persist sidebar state to localStorage and a cookie (so the server can\n // read it on the next request and render the correct initial state).\n try {\n localStorage.setItem(SIDEBAR_STORAGE_KEY, String(openState));\n document.cookie = `${SIDEBAR_STORAGE_KEY}=${openState}; path=/; max-age=31536000; SameSite=Lax`;\n } catch {\n // Silently ignore storage errors (e.g. quota exceeded, private browsing).\n }\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n setAnimated(true);\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Seed cookie from localStorage for existing users who have localStorage\n // but no cookie yet (one-time migration).\n React.useEffect(() => {\n try {\n if (!document.cookie.includes(SIDEBAR_STORAGE_KEY)) {\n const stored = localStorage.getItem(SIDEBAR_STORAGE_KEY);\n if (stored != null) {\n document.cookie = `${SIDEBAR_STORAGE_KEY}=${stored}; path=/; max-age=31536000; SameSite=Lax`;\n }\n }\n } catch {\n // Ignore\n }\n }, []);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n animated,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar, animated]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile, animated } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent',\n animated && 'transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 start-0 z-10 hidden h-svh w-(--sidebar-width) md:flex',\n animated && 'transition-[inset-inline-start,width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'border-e group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 -end-4 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-0.5 sm:flex',\n 'cursor-w-resize rtl:cursor-e-resize',\n 'in-data-[state=collapsed]:cursor-e-resize rtl:in-data-[state=collapsed]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full',\n 'in-data-[collapsible=offcanvas]:-end-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : 'button';\n const { isMobile, state } = useSidebar();\n const dir = Direction.useDirection();\n const tooltipSide = dir === 'rtl' ? 'left' : 'right';\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side={tooltipSide}\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon ? (\n <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />\n ) : null}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s px-2.5 py-0.5 rtl:-translate-x-px',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 rtl:translate-x-px [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n SIDEBAR_STORAGE_KEY,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n","'use client';\n\nimport * as React from 'react';\nimport { XIcon } from 'lucide-react';\nimport { Dialog as SheetPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n showCloseButton?: boolean;\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 end-0 h-full w-3/4 border-s sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 start-0 h-full w-3/4 border-e sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n ) : null}\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import { cn } from '@/lib/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","'use client';\n\nimport { createContext, useContext, type ReactNode } from 'react';\nimport type { FabLayoutState } from '@/lib/fab-layout';\n\nconst defaultLayout: FabLayoutState = { swapPosition: false };\n\nconst FabLayoutContext = createContext<FabLayoutState>(defaultLayout);\n\ninterface FabLayoutProviderProps {\n children: ReactNode;\n layout: FabLayoutState;\n}\n\n/**\n * Provides server-resolved FAB layout configuration to all client components.\n * Initialized in the root layout with values from the DB singleton.\n */\nexport function FabLayoutProvider({ children, layout }: FabLayoutProviderProps) {\n return <FabLayoutContext.Provider value={layout}>{children}</FabLayoutContext.Provider>;\n}\n\n/**\n * Read FAB layout config from context. Returns default (not swapped)\n * when used outside a FabLayoutProvider (e.g., Storybook, tests).\n */\nexport function useFabLayout(): FabLayoutState {\n return useContext(FabLayoutContext);\n}\n","'use client';\n\nimport { createContext, useContext, useState, useMemo, type ReactNode } from 'react';\nimport type { FeatureNodeState } from '@/components/common/feature-node/feature-node-state-config';\nimport type { FeatureStatus } from '@/components/common/feature-status-config';\n\n// Re-export the FeatureItem type so consumers can import from one place.\n// This will gain `featureId` in a later phase.\nexport interface SidebarFeatureItem {\n name: string;\n status: FeatureStatus;\n featureId: string;\n startedAt?: number;\n duration?: string;\n agentType?: string;\n modelId?: string;\n /** Absolute path to the repository this feature belongs to */\n repositoryPath: string;\n /** Human-readable repository name (last path segment) */\n repositoryName: string;\n}\n\n// ---------------------------------------------------------------------------\n// Pure mapping: FeatureNodeState (6-state) → FeatureStatus (5-state) | null\n// ---------------------------------------------------------------------------\n\nconst stateMapping: Record<FeatureNodeState, FeatureStatus | null> = {\n 'action-required': 'action-needed',\n running: 'in-progress',\n done: 'done',\n blocked: 'blocked',\n pending: 'pending',\n error: 'error',\n creating: null,\n deleting: null,\n archived: null,\n};\n\n/**\n * Maps a canvas FeatureNodeState to the sidebar's 5-state FeatureStatus.\n * Returns `null` for `creating` (optimistic UI) — these should be excluded from the sidebar.\n */\nexport function mapNodeStateToSidebarStatus(state: FeatureNodeState): FeatureStatus | null {\n return stateMapping[state];\n}\n\n// ---------------------------------------------------------------------------\n// SidebarFeaturesContext\n// ---------------------------------------------------------------------------\n\ninterface SidebarFeaturesContextValue {\n features: SidebarFeatureItem[];\n setFeatures: (features: SidebarFeatureItem[]) => void;\n hasRepositories: boolean;\n setHasRepositories: (value: boolean) => void;\n}\n\nconst SidebarFeaturesContext = createContext<SidebarFeaturesContextValue | null>(null);\n\ninterface SidebarFeaturesProviderProps {\n children: ReactNode;\n}\n\nexport function SidebarFeaturesProvider({ children }: SidebarFeaturesProviderProps) {\n const [features, setFeatures] = useState<SidebarFeatureItem[]>([]);\n const [hasRepositories, setHasRepositories] = useState(false);\n\n const value = useMemo<SidebarFeaturesContextValue>(\n () => ({ features, setFeatures, hasRepositories, setHasRepositories }),\n [features, hasRepositories]\n );\n\n return (\n <SidebarFeaturesContext.Provider value={value}>{children}</SidebarFeaturesContext.Provider>\n );\n}\n\nexport function useSidebarFeaturesContext(): SidebarFeaturesContextValue {\n const ctx = useContext(SidebarFeaturesContext);\n if (!ctx) {\n throw new Error('useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>');\n }\n return ctx;\n}\n"],"names":[],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/panel-left.ts","../../../../../../../src/presentation/web/components/ui/sidebar.tsx","../../../../../../../src/presentation/web/hooks/use-mobile.ts","../../../../../../../src/presentation/web/components/ui/sheet.tsx","../../../../../../../src/presentation/web/components/ui/skeleton.tsx","../../../../../../../src/presentation/web/components/common/shep-logo/shep-logo.tsx","../../../../../../../src/presentation/web/hooks/fab-layout-context.tsx","../../../../../../../src/presentation/web/hooks/sidebar-features-context.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M9 3v18', key: 'fh3hqa' }],\n];\n\n/**\n * @component @name PanelLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/panel-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PanelLeft = createLucideIcon('panel-left', __iconNode);\n\nexport default PanelLeft;\n","'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\nimport { Direction, Slot } from 'radix-ui';\n\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nconst SIDEBAR_STORAGE_KEY = 'shep-sidebar-open';\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ninterface SidebarContextProps {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n /** Whether transitions should be enabled (false until first user toggle). */\n animated: boolean;\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n const [animated, setAnimated] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n // defaultOpen comes from server-side cookie reading, so SSR and client agree.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // Persist sidebar state to localStorage and a cookie (so the server can\n // read it on the next request and render the correct initial state).\n try {\n localStorage.setItem(SIDEBAR_STORAGE_KEY, String(openState));\n document.cookie = `${SIDEBAR_STORAGE_KEY}=${openState}; path=/; max-age=31536000; SameSite=Lax`;\n } catch {\n // Silently ignore storage errors (e.g. quota exceeded, private browsing).\n }\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n setAnimated(true);\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Seed cookie from localStorage for existing users who have localStorage\n // but no cookie yet (one-time migration).\n React.useEffect(() => {\n try {\n if (!document.cookie.includes(SIDEBAR_STORAGE_KEY)) {\n const stored = localStorage.getItem(SIDEBAR_STORAGE_KEY);\n if (stored != null) {\n document.cookie = `${SIDEBAR_STORAGE_KEY}=${stored}; path=/; max-age=31536000; SameSite=Lax`;\n }\n }\n } catch {\n // Ignore\n }\n }, []);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n animated,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar, animated]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile, animated } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent',\n animated && 'transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 start-0 z-10 hidden h-svh w-(--sidebar-width) md:flex',\n animated && 'transition-[inset-inline-start,width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'border-e group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 -end-4 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-0.5 sm:flex',\n 'cursor-w-resize rtl:cursor-e-resize',\n 'in-data-[state=collapsed]:cursor-e-resize rtl:in-data-[state=collapsed]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full',\n 'in-data-[collapsible=offcanvas]:-end-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : 'button';\n const { isMobile, state } = useSidebar();\n const dir = Direction.useDirection();\n const tooltipSide = dir === 'rtl' ? 'left' : 'right';\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side={tooltipSide}\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon ? (\n <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />\n ) : null}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s px-2.5 py-0.5 rtl:-translate-x-px',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 rtl:translate-x-px [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n SIDEBAR_STORAGE_KEY,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n","'use client';\n\nimport * as React from 'react';\nimport { XIcon } from 'lucide-react';\nimport { Dialog as SheetPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n showCloseButton?: boolean;\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 end-0 h-full w-3/4 border-s sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 start-0 h-full w-3/4 border-e sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n ) : null}\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import { cn } from '@/lib/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { cn } from '@/lib/utils';\n\nexport interface ShepLogoProps {\n className?: string;\n size?: number;\n variant?: 'default' | 'dev';\n}\n\nexport function ShepLogo({ className, size = 24, variant = 'default' }: ShepLogoProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 194 200\"\n width={size}\n height={size}\n className={cn('shrink-0', variant === 'dev' && 'text-cyan-400', className)}\n aria-hidden=\"true\"\n >\n <g transform=\"matrix(1, 0, 0, 1, -111, -208)\">\n <path\n d=\"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n );\n}\n","'use client';\n\nimport { createContext, useContext, type ReactNode } from 'react';\nimport type { FabLayoutState } from '@/lib/fab-layout';\n\nconst defaultLayout: FabLayoutState = { swapPosition: false };\n\nconst FabLayoutContext = createContext<FabLayoutState>(defaultLayout);\n\ninterface FabLayoutProviderProps {\n children: ReactNode;\n layout: FabLayoutState;\n}\n\n/**\n * Provides server-resolved FAB layout configuration to all client components.\n * Initialized in the root layout with values from the DB singleton.\n */\nexport function FabLayoutProvider({ children, layout }: FabLayoutProviderProps) {\n return <FabLayoutContext.Provider value={layout}>{children}</FabLayoutContext.Provider>;\n}\n\n/**\n * Read FAB layout config from context. Returns default (not swapped)\n * when used outside a FabLayoutProvider (e.g., Storybook, tests).\n */\nexport function useFabLayout(): FabLayoutState {\n return useContext(FabLayoutContext);\n}\n","'use client';\n\nimport { createContext, useContext, useState, useMemo, type ReactNode } from 'react';\nimport type { FeatureNodeState } from '@/components/common/feature-node/feature-node-state-config';\nimport type { FeatureStatus } from '@/components/common/feature-status-config';\n\n// Re-export the FeatureItem type so consumers can import from one place.\n// This will gain `featureId` in a later phase.\nexport interface SidebarFeatureItem {\n name: string;\n status: FeatureStatus;\n featureId: string;\n startedAt?: number;\n duration?: string;\n agentType?: string;\n modelId?: string;\n /** Absolute path to the repository this feature belongs to */\n repositoryPath: string;\n /** Human-readable repository name (last path segment) */\n repositoryName: string;\n}\n\n// ---------------------------------------------------------------------------\n// Pure mapping: FeatureNodeState (6-state) → FeatureStatus (5-state) | null\n// ---------------------------------------------------------------------------\n\nconst stateMapping: Record<FeatureNodeState, FeatureStatus | null> = {\n 'action-required': 'action-needed',\n running: 'in-progress',\n done: 'done',\n blocked: 'blocked',\n pending: 'pending',\n error: 'error',\n creating: null,\n deleting: null,\n archived: null,\n};\n\n/**\n * Maps a canvas FeatureNodeState to the sidebar's 5-state FeatureStatus.\n * Returns `null` for `creating` (optimistic UI) — these should be excluded from the sidebar.\n */\nexport function mapNodeStateToSidebarStatus(state: FeatureNodeState): FeatureStatus | null {\n return stateMapping[state];\n}\n\n// ---------------------------------------------------------------------------\n// SidebarFeaturesContext\n// ---------------------------------------------------------------------------\n\ninterface SidebarFeaturesContextValue {\n features: SidebarFeatureItem[];\n setFeatures: (features: SidebarFeatureItem[]) => void;\n hasRepositories: boolean;\n setHasRepositories: (value: boolean) => void;\n}\n\nconst SidebarFeaturesContext = createContext<SidebarFeaturesContextValue | null>(null);\n\ninterface SidebarFeaturesProviderProps {\n children: ReactNode;\n}\n\nexport function SidebarFeaturesProvider({ children }: SidebarFeaturesProviderProps) {\n const [features, setFeatures] = useState<SidebarFeatureItem[]>([]);\n const [hasRepositories, setHasRepositories] = useState(false);\n\n const value = useMemo<SidebarFeaturesContextValue>(\n () => ({ features, setFeatures, hasRepositories, setHasRepositories }),\n [features, hasRepositories]\n );\n\n return (\n <SidebarFeaturesContext.Provider value={value}>{children}</SidebarFeaturesContext.Provider>\n );\n}\n\nexport function useSidebarFeaturesContext(): SidebarFeaturesContextValue {\n const ctx = useContext(SidebarFeaturesContext);\n if (!ctx) {\n throw new Error('useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>');\n }\n return ctx;\n}\n"],"names":[],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[56957,65298,a=>{"use strict";let b=(0,a.i(25700).default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);a.s(["LayoutDashboard",()=>b],56957);var c=a.i(36820);a.s(["FileEdit",()=>c.default],65298)},28002,a=>{"use strict";let b=(0,a.i(25700).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",()=>b],28002)},36820,a=>{"use strict";let b=(0,a.i(25700).default)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);a.s(["default",()=>b])},38019,a=>{"use strict";let b=(0,a.i(25700).default)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);a.s(["FilePlus",()=>b],38019)},25112,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("6078985bc0c3eb359e44379b2bf4ada6902d8b397b",b.callServer,void 0,b.findSourceMapURL,"getGitRepoInfo");a.s(["getGitRepoInfo",()=>c])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1d785b5a._.js.map
|