From 822599194bcff69dffd38a81a21d0281cfa35df2 Mon Sep 17 00:00:00 2001 From: QLHazyCoder <2825305047@qq.com> Date: Thu, 28 May 2026 21:43:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E5=85=B1?= =?UTF-8?q?=E4=BA=AB=E8=AE=BE=E7=BD=AE=E6=93=8D=E4=BD=9C=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BE=A7=E8=BE=B9?= =?UTF-8?q?=E6=A0=8F=E5=B8=83=E5=B1=80=E5=92=8C=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/flow-kernel/flow-registry.js | 5 - flows/grok/index.js | 2 +- flows/kiro/index.js | 3 +- flows/openai/index.js | 3 +- sidepanel/sidepanel.css | 77 ++++++++---- sidepanel/sidepanel.html | 48 +++---- sidepanel/sidepanel.js | 22 +--- tests/flow-capabilities-module.test.js | 4 +- tests/flow-registry-settings-schema.test.js | 10 +- ...sidepanel-auto-run-content-refresh.test.js | 2 +- tests/sidepanel-flow-source-registry.test.js | 1 - tests/sidepanel-form-layout.test.js | 117 ++++++++++++++++++ tests/sidepanel-operation-delay.test.js | 3 - tests/sidepanel-settings-autosave.test.js | 2 +- 14 files changed, 206 insertions(+), 93 deletions(-) create mode 100644 tests/sidepanel-form-layout.test.js diff --git a/core/flow-kernel/flow-registry.js b/core/flow-kernel/flow-registry.js index ad3341b..cbf9792 100644 --- a/core/flow-kernel/flow-registry.js +++ b/core/flow-kernel/flow-registry.js @@ -57,11 +57,6 @@ 'row-step-execution-range', ], }, - 'shared-settings-actions': { - id: 'shared-settings-actions', - label: '\u8bbe\u7f6e\u64cd\u4f5c', - rowIds: ['row-settings-actions'], - }, }); function buildFlowDefinitions() { diff --git a/flows/grok/index.js b/flows/grok/index.js index ed2aba1..6359c9b 100644 --- a/flows/grok/index.js +++ b/flows/grok/index.js @@ -34,7 +34,7 @@ stepDefinitionMode: 'grok', targetSelectorLabel: '来源', }, - baseGroups: ['grok-runtime-status', 'shared-auto-run', 'shared-settings-actions'], + baseGroups: ['grok-runtime-status', 'shared-auto-run'], targets: { webchat2api: { id: 'webchat2api', diff --git a/flows/kiro/index.js b/flows/kiro/index.js index f5a79a8..737c7e9 100644 --- a/flows/kiro/index.js +++ b/flows/kiro/index.js @@ -40,8 +40,7 @@ }, "baseGroups": [ "kiro-runtime-status", - "shared-auto-run", - "shared-settings-actions" + "shared-auto-run" ], "targets": { "kiro-rs": { diff --git a/flows/openai/index.js b/flows/openai/index.js index 70476f3..3a93c9d 100644 --- a/flows/openai/index.js +++ b/flows/openai/index.js @@ -47,8 +47,7 @@ "openai-phone", "shared-auto-run", "openai-oauth", - "openai-step6", - "shared-settings-actions" + "openai-step6" ], "targets": { "cpa": { diff --git a/sidepanel/sidepanel.css b/sidepanel/sidepanel.css index 3f8c28b..1d277dd 100644 --- a/sidepanel/sidepanel.css +++ b/sidepanel/sidepanel.css @@ -40,6 +40,10 @@ --radius-sm: 6px; --radius-md: 8px; + --data-label-width: 76px; + --data-row-gap: 8px; + --data-field-height: 34px; + --data-inline-action-min-width: 64px; --transition: 150ms ease; } @@ -893,7 +897,8 @@ header { .data-row { display: flex; align-items: center; - gap: 8px; + gap: var(--data-row-gap); + min-width: 0; } #settings-card .data-row.module-divider-start { @@ -919,7 +924,24 @@ header { display: flex; align-items: center; gap: 8px; - flex: 1; + flex: 1 1 0; + min-width: 0; +} + +.data-inline > .data-input, +.data-inline > .data-select, +.data-inline > .editable-list-picker, +.data-inline > .input-with-icon { + flex: 1 1 0; + min-width: 0; +} + +.data-inline > .auto-delay-input { + flex: 0 0 72px; +} + +.data-inline > .data-value { + flex: 1 1 0; min-width: 0; } @@ -1247,41 +1269,37 @@ header { .input-with-icon { position: relative; - flex: 1; + flex: 1 1 0; min-width: 0; display: flex; align-items: center; } .data-label { - width: 56px; + flex: 0 0 var(--data-label-width); + width: var(--data-label-width); font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.06em; - flex-shrink: 0; -} - -#row-codex2api-url .data-label, -#row-codex2api-admin-key .data-label { - width: 76px; + min-width: 0; } #row-flow-selector .data-label, -#row-source-selector .data-label, +#row-source-selector .data-label { + text-transform: none; + letter-spacing: 0.02em; +} + +#row-codex2api-url .data-label, +#row-codex2api-admin-key .data-label, #row-grok-webchat2api-url .data-label, #row-grok-webchat2api-key .data-label, #row-grok-register-status .data-label, #row-grok-sso-status .data-label, #row-grok-webchat2api-upload-status .data-label, #row-grok-sso-settings .data-label { - width: 76px; - text-transform: none; - letter-spacing: 0.02em; -} - -#row-codex2api-url .data-label { font-size: 10px; letter-spacing: 0.02em; text-transform: none; @@ -1364,7 +1382,10 @@ header { } .data-input { - flex: 1; + flex: 1 1 0; + width: 100%; + min-width: 0; + min-height: var(--data-field-height); padding: 7px 10px; background: var(--bg-field); border: 1px solid var(--border); @@ -1374,7 +1395,6 @@ header { font-size: 13px; outline: none; transition: border-color var(--transition), box-shadow var(--transition); - min-width: 0; } .data-input::placeholder { color: var(--text-muted); } .data-input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); } @@ -1446,7 +1466,8 @@ header { } .choice-group { - flex: 1; + flex: 1 1 0; + width: 100%; min-width: 0; display: inline-flex; align-items: center; @@ -1526,15 +1547,14 @@ header { color: var(--text-secondary); } -#btn-fetch-email, -#btn-save-settings { +#btn-fetch-email { padding-inline: 10px; flex-shrink: 0; } .data-inline-btn { - flex-shrink: 0; - min-width: 56px; + flex: 0 0 auto; + min-width: var(--data-inline-action-min-width); justify-content: center; } @@ -2072,7 +2092,10 @@ header { } .data-select { - flex: 1; + flex: 1 1 0; + width: 100%; + min-width: 0; + min-height: var(--data-field-height); padding: 7px 10px; background: var(--bg-field); border: 1px solid var(--border); @@ -2083,7 +2106,6 @@ header { outline: none; cursor: pointer; transition: border-color var(--transition); - min-width: 0; } .data-select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); } [data-theme="dark"] .data-select { color-scheme: dark; } @@ -2105,7 +2127,8 @@ header { .editable-list-picker { position: relative; - flex: 1; + flex: 1 1 0; + width: 100%; min-width: 0; } diff --git a/sidepanel/sidepanel.html b/sidepanel/sidepanel.html index e35dc8d..fe7cfee 100644 --- a/sidepanel/sidepanel.html +++ b/sidepanel/sidepanel.html @@ -405,9 +405,11 @@ -
- 设置 -
- -
-