From 06983a35adcbe750e2d12d45b8a229c36426cdac Mon Sep 17 00:00:00 2001 From: catlog22 Date: Mon, 8 Dec 2025 09:59:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(dashboard):=20=E6=B7=BB=E5=8A=A0=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E9=80=89=E6=8B=A9=E5=BC=B9=E7=AA=97=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 path-modal 样式丢失问题 - 添加完整的弹窗样式定义 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- ccw/src/templates/dashboard.css | 183 ++++++++++++++++++++++++++++++++ package-lock.json | 28 +---- package.json | 2 +- 3 files changed, 186 insertions(+), 27 deletions(-) diff --git a/ccw/src/templates/dashboard.css b/ccw/src/templates/dashboard.css index 3b3c7197..146a8145 100644 --- a/ccw/src/templates/dashboard.css +++ b/ccw/src/templates/dashboard.css @@ -7929,3 +7929,186 @@ code.ctx-meta-chip-value { width: 16px; border-radius: 3px; } + +/* =================================== + Path Selection Modal + =================================== */ + +.path-modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; + backdrop-filter: blur(2px); +} + +.path-modal { + background: hsl(var(--card)); + border: 1px solid hsl(var(--border)); + border-radius: 0.75rem; + width: 90%; + max-width: 480px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); + animation: modal-enter 0.2s ease-out; +} + +@keyframes modal-enter { + from { + opacity: 0; + transform: scale(0.95) translateY(-10px); + } + to { + opacity: 1; + transform: scale(1) translateY(0); + } +} + +.path-modal-header { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 1.25rem 1.5rem; + border-bottom: 1px solid hsl(var(--border)); +} + +.path-modal-icon { + font-size: 1.5rem; + color: hsl(var(--primary)); +} + +.path-modal-header h3 { + margin: 0; + font-size: 1.1rem; + font-weight: 600; + color: hsl(var(--foreground)); +} + +.path-modal-body { + padding: 1.5rem; +} + +.path-modal-body p { + margin: 0 0 1rem; + color: hsl(var(--muted-foreground)); + font-size: 0.9rem; + line-height: 1.5; +} + +.path-modal-command { + display: flex; + align-items: center; + gap: 0.75rem; + background: hsl(var(--muted)); + padding: 0.75rem 1rem; + border-radius: 0.5rem; + font-family: var(--font-mono); +} + +.path-modal-command code { + flex: 1; + font-size: 0.85rem; + color: hsl(var(--foreground)); + word-break: break-all; +} + +.path-modal-command .copy-btn { + display: flex; + align-items: center; + gap: 0.375rem; + padding: 0.375rem 0.75rem; + background: hsl(var(--primary)); + color: white; + border: none; + border-radius: 0.375rem; + font-size: 0.8rem; + cursor: pointer; + transition: all 0.15s; + white-space: nowrap; +} + +.path-modal-command .copy-btn:hover { + background: hsl(var(--primary) / 0.9); +} + +.path-modal-note { + font-size: 0.85rem !important; + color: hsl(var(--muted-foreground)) !important; +} + +.path-modal-note code { + background: hsl(var(--muted)); + padding: 0.125rem 0.375rem; + border-radius: 0.25rem; + font-size: 0.8rem; +} + +.path-modal-input { + width: 100%; + padding: 0.75rem 1rem; + background: hsl(var(--background)); + border: 1px solid hsl(var(--border)); + border-radius: 0.5rem; + font-size: 0.9rem; + color: hsl(var(--foreground)); + outline: none; + transition: border-color 0.15s; +} + +.path-modal-input:focus { + border-color: hsl(var(--primary)); +} + +.path-modal-input::placeholder { + color: hsl(var(--muted-foreground)); +} + +.path-modal-footer { + display: flex; + justify-content: flex-end; + gap: 0.75rem; + padding: 1rem 1.5rem; + border-top: 1px solid hsl(var(--border)); + background: hsl(var(--muted) / 0.3); + border-radius: 0 0 0.75rem 0.75rem; +} + +.path-modal-close { + padding: 0.5rem 1.25rem; + background: hsl(var(--muted)); + color: hsl(var(--foreground)); + border: none; + border-radius: 0.375rem; + font-size: 0.875rem; + cursor: pointer; + transition: all 0.15s; +} + +.path-modal-close:hover { + background: hsl(var(--hover)); +} + +.path-modal-confirm { + padding: 0.5rem 1.25rem; + background: hsl(var(--primary)); + color: white; + border: none; + border-radius: 0.375rem; + font-size: 0.875rem; + cursor: pointer; + transition: all 0.15s; +} + +.path-modal-confirm:hover { + background: hsl(var(--primary) / 0.9); +} + +.path-modal-confirm:disabled { + opacity: 0.5; + cursor: not-allowed; +} diff --git a/package-lock.json b/package-lock.json index efa76b99..30cabfe4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,16 @@ { "name": "claude-code-workflow", - "version": "6.0.0", + "version": "6.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "claude-code-workflow", - "version": "6.0.0", + "version": "6.0.3", "license": "MIT", "dependencies": { "boxen": "^7.1.0", "chalk": "^5.3.0", - "claude-code-workflow": "^6.0.0", "commander": "^11.0.0", "figlet": "^1.7.0", "glob": "^10.3.0", @@ -352,29 +351,6 @@ "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "license": "MIT" }, - "node_modules/claude-code-workflow": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/claude-code-workflow/-/claude-code-workflow-6.0.0.tgz", - "integrity": "sha512-YcYOplsnHqB/IcHIQgCrXPR1TK/Cbb5zFaFwrMNFzTEPU6oHRcGUc4RK9xtd/3LhfOGitZXSvANVooYPnNScVA==", - "license": "MIT", - "dependencies": { - "boxen": "^7.1.0", - "chalk": "^5.3.0", - "commander": "^11.0.0", - "figlet": "^1.7.0", - "glob": "^10.3.0", - "gradient-string": "^2.0.2", - "inquirer": "^9.2.0", - "open": "^9.1.0", - "ora": "^7.0.0" - }, - "bin": { - "ccw": "ccw/bin/ccw.js" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", diff --git a/package.json b/package.json index c9a15233..f7a8d24d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "claude-code-workflow", - "version": "6.0.3", + "version": "6.0.4", "description": "JSON-driven multi-agent development framework with intelligent CLI orchestration (Gemini/Qwen/Codex), context-first architecture, and automated workflow execution", "type": "module", "main": "ccw/src/index.js",