diff --git a/sidepanel/sidepanel.css b/sidepanel/sidepanel.css index c96c47d..923983c 100644 --- a/sidepanel/sidepanel.css +++ b/sidepanel/sidepanel.css @@ -523,6 +523,18 @@ header { line-height: 1.6; } +.update-card-reminder { + margin: 0; + padding: 8px 10px; + border: 1px solid color-mix(in srgb, var(--orange) 28%, var(--border)); + border-radius: var(--radius-sm); + background: color-mix(in srgb, var(--orange-soft) 70%, var(--bg-base)); + color: var(--orange); + font-size: 12px; + font-weight: 700; + line-height: 1.5; +} + .update-release-list { display: flex; flex-direction: column; diff --git a/sidepanel/sidepanel.html b/sidepanel/sidepanel.html index 8436557..ae04807 100644 --- a/sidepanel/sidepanel.html +++ b/sidepanel/sidepanel.html @@ -100,6 +100,7 @@ +

请更新前导出配置

@@ -816,4 +817,4 @@ - \ No newline at end of file + diff --git a/tests/sidepanel-icloud-manager.test.js b/tests/sidepanel-icloud-manager.test.js index d663837..2456f65 100644 --- a/tests/sidepanel-icloud-manager.test.js +++ b/tests/sidepanel-icloud-manager.test.js @@ -19,6 +19,16 @@ test('sidepanel source binds the icloud fetch mode control before using it', () assert.match(source, /selectIcloudFetchMode\?\.addEventListener\('change'/); }); +test('update card highlights exporting config before upgrade', () => { + const html = fs.readFileSync('sidepanel/sidepanel.html', 'utf8'); + const css = fs.readFileSync('sidepanel/sidepanel.css', 'utf8'); + + assert.match(html, /

请更新前导出配置<\/p>/); + assert.match(css, /\.update-card-reminder\s*\{/); + assert.match(css, /font-weight:\s*700;/); + assert.match(css, /color:\s*var\(--orange\);/); +}); + test('icloud manager exposes a factory and renders empty state', () => { const source = fs.readFileSync('sidepanel/icloud-manager.js', 'utf8'); const windowObject = {};