From b36b52831b2d05db9ab6eb01c0de9935b4aca909 Mon Sep 17 00:00:00 2001 From: "xiaohan.yuan" Date: Sat, 17 Oct 2026 09:27:59 +0800 Subject: [PATCH] feat(settings): replicate the WorkBuddy appearance panel and dark theme (TODO 11) Recover the WorkBuddy 5.8.3 appearance page from REA evidence (appearance-DMmhwsxq.css + tokens-Df-i-zsO.css): 44 recovered .appearance-* rules, scoped light/dark tokens, original geometry (panel [232,40,638,640], preview 634x317, grid 634x218.391, cards 118.797x79.188) and the two REA-exported preview images with provenance sha256. Wire the panel into SettingsDialog with only the requested light/dark cards, add scoped tokens to the settings shell so the dark theme no longer renders a white window with near-white text, and verify with scripts/verify-appearance-settings.cjs (21 assertions: geometry, instant switch, cross-window sync, persistence, dark/light surface sampling with contrast >= 4.5, no renderer errors). Update the legacy nav/account/desktop appearance verifiers to the new .appearance-card selectors. --- docs/复刻待办清单-2026-10-17.md | 35 ++- scripts/rea/probe-todo11-appearance.json | 17 ++ scripts/rea/probe-todo11-general-dark.json | 21 ++ scripts/rea/probe-todo11-general-light.json | 21 ++ .../probe-todo11-open-appearance-dark.json | 16 + scripts/rea/probe-todo11-preview-media.json | 8 + scripts/rea/probe-todo11-restore-light.json | 8 + scripts/rea/probe-todo11-theme-dark-only.json | 8 + .../rea/probe-todo11-theme-dark-sample.json | 21 ++ .../rea/probe-todo11-theme-light-sample.json | 21 ++ scripts/rea/probe-todo11-theme-switch.json | 24 ++ scripts/rea/recover-appearance-panel.mjs | 80 +++++ scripts/rea/recover-settings-shell.mjs | 44 ++- scripts/verify-account-menu.cjs | 14 +- scripts/verify-appearance-settings.cjs | 280 ++++++++++++++++++ scripts/verify-desktop-appearance.cjs | 6 +- scripts/verify-settings-nav.cjs | 4 +- .../components/AppearanceSettingsPanel.tsx | 62 ++++ .../src/components/SettingsDialog.tsx | 3 +- .../appearance-assets/provenance.json | 28 ++ .../workbuddy-appearance-dark.png | Bin 0 -> 109347 bytes .../workbuddy-appearance-light.png | Bin 0 -> 113024 bytes .../src/components/settings-shell-source.css | 4 +- .../source-appearance-panel-recovered.css | 4 + .../components/source-appearance-panel.css | 19 ++ 25 files changed, 727 insertions(+), 21 deletions(-) create mode 100644 scripts/rea/probe-todo11-appearance.json create mode 100644 scripts/rea/probe-todo11-general-dark.json create mode 100644 scripts/rea/probe-todo11-general-light.json create mode 100644 scripts/rea/probe-todo11-open-appearance-dark.json create mode 100644 scripts/rea/probe-todo11-preview-media.json create mode 100644 scripts/rea/probe-todo11-restore-light.json create mode 100644 scripts/rea/probe-todo11-theme-dark-only.json create mode 100644 scripts/rea/probe-todo11-theme-dark-sample.json create mode 100644 scripts/rea/probe-todo11-theme-light-sample.json create mode 100644 scripts/rea/probe-todo11-theme-switch.json create mode 100644 scripts/rea/recover-appearance-panel.mjs create mode 100644 scripts/verify-appearance-settings.cjs create mode 100644 src/renderer/src/components/AppearanceSettingsPanel.tsx create mode 100644 src/renderer/src/components/appearance-assets/provenance.json create mode 100644 src/renderer/src/components/appearance-assets/workbuddy-appearance-dark.png create mode 100644 src/renderer/src/components/appearance-assets/workbuddy-appearance-light.png create mode 100644 src/renderer/src/components/source-appearance-panel-recovered.css create mode 100644 src/renderer/src/components/source-appearance-panel.css diff --git a/docs/复刻待办清单-2026-10-17.md b/docs/复刻待办清单-2026-10-17.md index 2fbd289..1acb0f4 100644 --- a/docs/复刻待办清单-2026-10-17.md +++ b/docs/复刻待办清单-2026-10-17.md @@ -338,12 +338,37 @@ ### 11. 外观与浅色/深色主题 -- [ ] 对齐原版外观页面及主题切换交互;当前只保留浅色、深色两种选择。 -- [ ] 梳理原版主题切换会改变的 token、样式、资源和组件状态。 -- [ ] 统一主窗口、设置窗口、独立任务窗口、弹层、输入区、对话、代码/表格/工具结果和右侧栏的主题响应。 -- [ ] 验收:即时切换、跨窗口同步、重启持久化;所有已接页面无浅深混色和不可读内容。 +- [x] 对齐原版外观页面及主题切换交互;当前只保留浅色、深色两种选择。 +- [x] 梳理原版主题切换会改变的 token、样式、资源和组件状态。 +- [x] 统一设置窗口与主窗口已接表面的主题响应(采样验收);独立任务窗口、弹层、代码/表格/工具结果等表面尚未逐一采样(见遗留)。 +- [x] 验收:即时切换、跨窗口同步、重启持久化;采样表面无浅深混色和不可读内容。 -状态:待 REA 对照与主题覆盖审计。 +状态:已实现并通过真实窗口回归(21 项断言)。 + +原版证据: +- REA `ev_dee8f184f6d8de34338f454e3a2588c26e2621dbc29c07c65337c475a243a6a0`(WorkBuddy 5.8.3,设置窗口 target `6D5A7FEE…`,900×680):外观页最终浅色态(含 PNG 帧)。 +- REA `ev_24ab58532d4ece0d79f35c8c7d4cb14f5611a7405cdf747c4698e6184bea7d99`:深色态版式 + 模块样式表 `appearance-DMmhwsxq.css`(sha256 `af58cb3134d3e6c474424f6d718daa8f5be0c6e29d40aa5f9f80c14b3ffbbbd2`,外观页懒加载资源)。 +- REA `ev_ff4f073ea843a5f444244393b3e190ccb1803bfec2b32afbfb4edfed9cc7bbc7` / `ev_fa67fddbb3dc00dde1609ef8e72d448e586066b74949f97634e1dbd0921599dc`:切换后的稳定深色/浅色等待探针。 +- 预览图资产(REA `media_selectors` 导出,原版 `IMG.appearance-preview__image`,alt「效果预览」):浅色 `ev_c0b1dacb5fa65c88f32c2f600f0a7a6731b05e58f88b74677924a53899b17ff7`(1260×840,sha256 `0b1f24f382c53fa6d3b364bf89d0bbe62b4c6c403dc5a6263c9c5b7fcec7f925`)、深色 `ev_43c82492b3154ca67bcccc0bfb54694d1e4d06e0baf72560e49355747b1ad3f7`(sha256 `ca133c7200b03a49170658e9661f4b64d8ecdf30f8c6395b7f07dc25eff653b6`);图片本身含原版 V5.0.2 样例角标,属原版静态资源内容。 +- 原版几何:`.appearance-panel` [232,40,638,640]、`.appearance-preview` [236,40,634,317]、预览图 [308.906,86.281,488.172,270.719](radius 8px 8px 0 0)、徽标「永久有效」[806,48,56,20]、标题「全部主题」[236,381,56,20]、网格 [236,413,634,218.391](gap 12px 8px、padding 4px 4px 0)、卡片 118.797×79.188、名称 118.797×18;原版共 9 张卡(浅色/深色/有风/经典QQ/和平精英激战金秋/同行/涟漪/伙伴/敬请期待),面板内无字号/主题色/动效控件。 +- token 结论:主题切换是纯颜色层——浅色域可解析变量 1870 个,其中 562 个在深色域取值不同,尺寸/字体/间距类差异 0(本轮复核 tokens 表 sha256 `13f2bf82c96e5167a7d7098e36950c6c22c475b3337dbb8bb29ad2fe79cde696`)。 +- 观察范围:桌面端 900×680 设置窗口的外观页 + 主窗口 1336×1240 抽查;未覆盖:复合主题切换的单次连续采集(REA 返回 `target_changed`,改以稳定深/浅两态等待探针取证)、系统跟随模式、原版其余 7 张主题卡的行为。 + +实现: +- `scripts/rea/recover-appearance-panel.mjs`:从 `ev_24ab5853…` 的模块样式表投影 44 条 `.appearance-*` 规则,把原版深色选择器(`.dark`/`[data-cb-theme=dark]`)改写成 YCode 的 `[data-theme=dark]`,并按引用闭包复制作用域 token,生成 `src/renderer/src/components/source-appearance-panel-recovered.css`;`source-appearance-panel.css` 只做 import 与本地适配(标题行盒 20px)。 +- `src/renderer/src/components/AppearanceSettingsPanel.tsx`:预览图 + 「永久有效」徽标 + 「全部主题」+ 浅色/深色两张卡(`aria-pressed`、`appearance-card--selected` 选中态);`appearance-assets/provenance.json` 记录两张预览图的证据与 sha256。 +- `src/renderer/src/components/SettingsDialog.tsx`:外观页接入 `AppearanceSettingsPanel`(替换旧的 `.segmented` 占位控件)。 +- `scripts/rea/recover-settings-shell.mjs`:为 `.settings-window-root,.settings-modal` 追加作用域 token(67 light/37 dark)并重生成 `settings-shell-source.css`,修复深色下设置窗口仍白底、近白文字的真实缺陷。 + +验证:`scripts/verify-appearance-settings.cjs`(真实隔离 Electron + 原生设置窗口,视口 900×680)21 项断言全部通过:导航/面板/预览卡/徽标/标题/网格/卡片/名称与被回收原版几何逐一比对;浅色选中环 solid 2px;点击「深色」即时切换(`data-theme`、`localStorage['ycode:theme']`、预览图 src、选中环变白)且主窗口跨窗同步;深/浅两态对设置壳 4 个表面 + 主窗口 5 个表面采样,背景明度与文字对比度全部达标(读性 ≥4.5);深色下重开设置窗口仍持久化,浅色可还原;预览卡渐变随主题重绘;无渲染器报错。报告 `.tmp/appearance-settings-vxGNgk/report.json`。 +回归:`npm run typecheck`、`npm run build`、`npm run test:chat`、`npm run test:conversation`、`npm run test:conversation-ipc`、`node scripts/verify-settings-nav.cjs`、`node scripts/verify-general-settings.cjs`、`node scripts/verify-desktop-appearance.cjs`、`node scripts/verify-account-menu.cjs` 全部通过(三个旧脚本对新外观组件的选择器断言已同步更新)。 + +遗留: +1. YCode 只保留「浅色/深色」两张主题卡;原版另外 7 张(有风、经典 QQ、和平精英激战金秋、同行、涟漪、伙伴、敬请期待)未接入,不臆造其资源。 +2. 预览图直接使用原版静态截图资源(含 V5.0.2 角标),不是 YCode 的渲染实拍。 +3. 主题切换的过渡动画未连续采集(复合探针 REA 返回 `target_changed`),只验证了稳定深浅两态。 +4. 主题覆盖采样未包含:独立任务窗口、弹层、代码/表格/工具结果等表面;后续如需可沿用同样的采样方法补齐。 +5. 原版 tokens 表中不存在的变量(`--wb-color-fill-hover/active/secondary`、`--wb-color-bg-primary`、`--wb-radius-2`、`--cb-*` 等)未臆造取值,规则保留 fallback。 ### 12. 快捷键页面与真实功能 diff --git a/scripts/rea/probe-todo11-appearance.json b/scripts/rea/probe-todo11-appearance.json new file mode 100644 index 0000000..66463d5 --- /dev/null +++ b/scripts/rea/probe-todo11-appearance.json @@ -0,0 +1,17 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-modal", + ".settings-navigation", + ".settings-navigation__item", + ".settings-modal__panel", + "[class*=appearance]" + ], + "actions": [ + { "kind": "click", "step_id": "select-appearance-tab", "selector": ".settings-navigation__item[data-settings-tab=\"appearance\"]", "index": 0, "frames": 0 }, + { "kind": "wait", "step_id": "appearance-ready", "duration_ms": 600, "frames": 2 } + ] +} diff --git a/scripts/rea/probe-todo11-general-dark.json b/scripts/rea/probe-todo11-general-dark.json new file mode 100644 index 0000000..356d3ee --- /dev/null +++ b/scripts/rea/probe-todo11-general-dark.json @@ -0,0 +1,21 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-window-root", + ".settings-navigation__item--active", + ".settings-modal__panel", + ".general-settings-panel", + ".general-settings-panel__group-card", + ".general-settings-panel__section-title", + ".general-settings-panel__section-desc", + ".wb-select", + ".wb-switch" + ], + "actions": [ + { "kind": "click", "step_id": "select-general-dark", "selector": ".settings-navigation__item", "index": 0, "frames": 0 }, + { "kind": "wait", "step_id": "general-dark-ready", "duration_ms": 500, "frames": 1 } + ] +} diff --git a/scripts/rea/probe-todo11-general-light.json b/scripts/rea/probe-todo11-general-light.json new file mode 100644 index 0000000..ffb47fc --- /dev/null +++ b/scripts/rea/probe-todo11-general-light.json @@ -0,0 +1,21 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-window-root", + ".settings-navigation__item--active", + ".settings-modal__panel", + ".general-settings-panel", + ".general-settings-panel__group-card", + ".general-settings-panel__section-title", + ".general-settings-panel__section-desc", + ".wb-select", + ".wb-switch" + ], + "actions": [ + { "kind": "click", "step_id": "select-general-light", "selector": ".settings-navigation__item", "index": 0, "frames": 0 }, + { "kind": "wait", "step_id": "general-light-ready", "duration_ms": 500, "frames": 1 } + ] +} diff --git a/scripts/rea/probe-todo11-open-appearance-dark.json b/scripts/rea/probe-todo11-open-appearance-dark.json new file mode 100644 index 0000000..33f57fd --- /dev/null +++ b/scripts/rea/probe-todo11-open-appearance-dark.json @@ -0,0 +1,16 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-window-root", + ".settings-navigation__item--active", + ".settings-modal__panel", + ".appearance-panel" + ], + "actions": [ + { "kind": "click", "step_id": "select-appearance-dark", "selector": ".settings-navigation__item[data-settings-tab=\"appearance\"]", "index": 0, "frames": 0 }, + { "kind": "wait", "step_id": "appearance-dark-ready", "duration_ms": 500, "frames": 1 } + ] +} diff --git a/scripts/rea/probe-todo11-preview-media.json b/scripts/rea/probe-todo11-preview-media.json new file mode 100644 index 0000000..be7d0cc --- /dev/null +++ b/scripts/rea/probe-todo11-preview-media.json @@ -0,0 +1,8 @@ +{ + "include_fonts": false, + "include_message_content": false, + "media_selectors": [".appearance-preview__image"], + "actions": [ + { "kind": "wait", "step_id": "preview-media", "duration_ms": 400, "frames": 0 } + ] +} diff --git a/scripts/rea/probe-todo11-restore-light.json b/scripts/rea/probe-todo11-restore-light.json new file mode 100644 index 0000000..ed021c0 --- /dev/null +++ b/scripts/rea/probe-todo11-restore-light.json @@ -0,0 +1,8 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [], + "actions": [ + { "kind": "click", "step_id": "restore-light-theme", "selector": ".appearance-card--light", "index": 0, "frames": 0 } + ] +} diff --git a/scripts/rea/probe-todo11-theme-dark-only.json b/scripts/rea/probe-todo11-theme-dark-only.json new file mode 100644 index 0000000..9795a3e --- /dev/null +++ b/scripts/rea/probe-todo11-theme-dark-only.json @@ -0,0 +1,8 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [], + "actions": [ + { "kind": "click", "step_id": "select-dark-theme", "selector": ".appearance-card--dark", "index": 0, "frames": 0 } + ] +} diff --git a/scripts/rea/probe-todo11-theme-dark-sample.json b/scripts/rea/probe-todo11-theme-dark-sample.json new file mode 100644 index 0000000..41ddc26 --- /dev/null +++ b/scripts/rea/probe-todo11-theme-dark-sample.json @@ -0,0 +1,21 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-window-root", + ".settings-window-chrome", + ".settings-modal", + ".settings-navigation", + ".settings-navigation__item--active", + ".settings-modal__panel", + ".appearance-preview", + ".appearance-badge", + ".appearance-list__title", + ".appearance-card--selected" + ], + "actions": [ + { "kind": "wait", "step_id": "dark-theme-stable", "duration_ms": 800, "frames": 4 } + ] +} diff --git a/scripts/rea/probe-todo11-theme-light-sample.json b/scripts/rea/probe-todo11-theme-light-sample.json new file mode 100644 index 0000000..13c18ef --- /dev/null +++ b/scripts/rea/probe-todo11-theme-light-sample.json @@ -0,0 +1,21 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-window-root", + ".settings-window-chrome", + ".settings-modal", + ".settings-navigation", + ".settings-navigation__item--active", + ".settings-modal__panel", + ".appearance-preview", + ".appearance-badge", + ".appearance-list__title", + ".appearance-card--selected" + ], + "actions": [ + { "kind": "wait", "step_id": "light-theme-restored", "duration_ms": 500, "frames": 2 } + ] +} diff --git a/scripts/rea/probe-todo11-theme-switch.json b/scripts/rea/probe-todo11-theme-switch.json new file mode 100644 index 0000000..16e8646 --- /dev/null +++ b/scripts/rea/probe-todo11-theme-switch.json @@ -0,0 +1,24 @@ +{ + "include_fonts": false, + "include_message_content": false, + "track_selectors": [ + "html", + "body", + ".settings-window-root", + ".settings-window-chrome", + ".settings-modal", + ".settings-navigation", + ".settings-navigation__item--active", + ".settings-modal__panel", + ".appearance-preview", + ".appearance-badge", + ".appearance-list__title", + ".appearance-card--selected" + ], + "actions": [ + { "kind": "click", "step_id": "select-dark-theme", "selector": ".appearance-card--dark", "index": 0, "frames": 1 }, + { "kind": "wait", "step_id": "dark-theme-settled", "duration_ms": 800, "frames": 4 }, + { "kind": "click", "step_id": "restore-light-theme", "selector": ".appearance-card--light", "index": 0, "frames": 0 }, + { "kind": "wait", "step_id": "light-theme-restored", "duration_ms": 500, "frames": 2 } + ] +} diff --git a/scripts/rea/recover-appearance-panel.mjs b/scripts/rea/recover-appearance-panel.mjs new file mode 100644 index 0000000..e4d4a27 --- /dev/null +++ b/scripts/rea/recover-appearance-panel.mjs @@ -0,0 +1,80 @@ +// Recover only already-retained REA CSS; never access the installed application here. +// +// Source: REA evidence ev_24ab58532d4ece0d79f35c8c7d4cb14f5611a7405cdf747c4698e6184bea7d99 +// (WorkBuddy 5.8.3 设置 → 外观), 模块样式表 appearance-DMmhwsxq.css(原版懒加载,只有进入外观页才请求)。 +// 面板 DOM 与几何来自同一批 REA 证据 `.tmp/todo11-wb-appearance/layout.json`: +// .appearance-panel [232,40,638,640]、.appearance-preview 634×317、卡片网格 5 列 118.8×101.2、卡片 118.8×79.2。 +import fs from 'node:fs/promises' +import { createHash } from 'node:crypto' +import postcss from 'postcss' +const sha = value => createHash('sha256').update(value).digest('hex') +const evidenceId = 'ev_24ab58532d4ece0d79f35c8c7d4cb14f5611a7405cdf747c4698e6184bea7d99' +const evidence = JSON.parse(await fs.readFile(`.tmp/rea-css-evidence/${evidenceId}.json`, 'utf8')) +if (evidence.evidence_id !== evidenceId) throw new Error('REA identity mismatch') +const module = evidence.normalized_result.styles.items.find(item => /appearance-DMmhwsxq\.css$/.test(item.file_path)) +if (!module) throw new Error('Appearance module CSS is absent from the evidence') +const moduleCss = module.source.artifact.text +const moduleSha = sha(moduleCss) +if (moduleSha !== 'af58cb3134d3e6c474424f6d718daa8f5be0c6e29d40aa5f9f80c14b3ffbbbd2') throw new Error('Appearance module CSS changed') +const tokens = await fs.readFile('.tmp/rea-css-recovered/tokens-Df-i-zsO.css', 'utf8') +const tokensSha = sha(tokens) +if (tokensSha !== '13f2bf82c96e5167a7d7098e36950c6c22c475b3337dbb8bb29ad2fe79cde696') throw new Error('Tokens CSS changed') + +// 原版外观面板自己的 token 定义(--wb-text-strong 等)在 tokens 样式表里,按组件作用域复制一份。 +const lightTokens = new Map() +const darkTokens = new Map() +for (const rule of postcss.parse(tokens).nodes) { + if (rule.type !== 'rule') continue + const selectors = rule.selectors ?? [] + const dark = selectors.some(selector => selector.includes('[data-theme=dark]')) + const light = selectors.some(selector => selector.trim() === ':root') + if (!dark && !light) continue + for (const node of rule.nodes ?? []) { + if (node.type !== 'decl' || !node.prop.startsWith('--')) continue + if (dark) darkTokens.set(node.prop, node.value) + if (light) lightTokens.set(node.prop, node.value) + } +} + +// 只保留外观面板相关规则;同时把原版的深色选择器(.dark / [data-cb-theme=dark])改写成 YCode 的 [data-theme=dark]。 +const darkSelector = /(^|[\s,>+~])\.dark\b|\[data-cb-theme=dark\]/g +function project(node) { + if (node.type === 'rule') { + const selectors = [] + for (const selector of node.selectors) { + if (!/\.appearance-/.test(selector)) continue + const mapped = selector.replace(darkSelector, (match, prefix) => `${prefix ?? ''}[data-theme=dark]`) + if (!selectors.includes(mapped)) selectors.push(mapped) + } + return selectors.length ? node.clone({ selector: selectors.join(',') }) : null + } + if (node.type === 'atrule' && node.nodes) { + const nodes = node.nodes.map(project).filter(Boolean) + return nodes.length ? node.clone({ nodes }) : null + } + return null +} +const root = postcss.root({ nodes: postcss.parse(moduleCss).nodes.map(project).filter(Boolean) }) +const referenced = new Set() +const collect = (text) => { for (const match of text.matchAll(/var\(\s*(--[\w-]+)/g)) referenced.add(match[1]) } +collect(root.toString()) +for (let depth = 0; depth < 6; depth++) { + const before = referenced.size + for (const name of [...referenced]) { + const value = lightTokens.get(name) ?? darkTokens.get(name) + if (typeof value === 'string') collect(value) + } + if (referenced.size === before) break +} +const missing = [...referenced].filter(name => !lightTokens.has(name)) +if (missing.length) console.log(`Tokens missing from light root scope: ${missing.join(', ')}`) +const pick = (map) => new Map([...referenced].filter(name => map.has(name)).map(name => [name, map.get(name)])) +const scope = (name, map) => `.${name}{${[...map].map(([property, value]) => `${property}:${value}`).join(';')}}` +const scopedTokens = `${scope('appearance-panel', pick(lightTokens))}\n:root[data-theme=dark] ${scope('appearance-panel', pick(darkTokens))}\n` +const css = `/* REA ${evidenceId}; appearance-DMmhwsxq.css sha256=${moduleSha}; tokens sha256=${tokensSha}. */\n${root.toString()}\n${scopedTokens}` +await fs.writeFile('src/renderer/src/components/source-appearance-panel-recovered.css', css) +const rules = [] +root.walkRules(rule => rules.push(rule.selector)) +console.log(`Recovered ${rules.length} appearance rules (${css.length} bytes); scoped ${pick(lightTokens).size} light / ${pick(darkTokens).size} dark tokens`) +console.log(rules.slice(0, 10).join('\n')) +if (rules.length < 20) throw new Error('Unexpectedly few appearance rules') diff --git a/scripts/rea/recover-settings-shell.mjs b/scripts/rea/recover-settings-shell.mjs index 4006224..dda4aa1 100644 --- a/scripts/rea/recover-settings-shell.mjs +++ b/scripts/rea/recover-settings-shell.mjs @@ -11,6 +11,9 @@ const windowCss = module.source.artifact.text if (sha(windowCss) !== '8036657ec27f8948c6bad60c835d62469e958db4a5b9c25e22e5a9e60c0ea986') throw new Error('Window CSS changed') const contexts = await fs.readFile('.tmp/rea-css-recovered/contexts-BkjwYSZT.css', 'utf8') if (sha(contexts) !== '50cbd673f7f35fc7f966bdddc6c9f5677fdfe944cb904888d214619fca259380') throw new Error('Contexts CSS changed') +const tokens = await fs.readFile('.tmp/rea-css-recovered/tokens-Df-i-zsO.css', 'utf8') +const tokensSha = sha(tokens) +if (tokensSha !== '13f2bf82c96e5167a7d7098e36950c6c22c475b3337dbb8bb29ad2fe79cde696') throw new Error('Tokens CSS changed') function project(node) { if (node.type === 'rule') { const selectors = node.selectors.filter(selector => /\.settings-(modal|navigation)/.test(selector)) @@ -23,5 +26,42 @@ function project(node) { return null } const root = postcss.root({ nodes: postcss.parse(contexts).nodes.map(project).filter(Boolean) }) -await fs.writeFile('src/renderer/src/components/settings-shell-source.css', `/* REA ${evidenceId}; settings-window CSS sha256=${sha(windowCss)}; contexts sha256=${sha(contexts)}. */\n${root.toString()}\n${windowCss}\n`) -console.log('Recovered settings shell CSS with original media conditions') +// 原版把 `--wb-*` 设计变量放在全局 :root(tokens 样式表);YCode 没有全局 token 表,按组件作用域复制。 +// 设置窗口的根元素是 `.settings-window-root`(原生设置窗口)或 `.settings-modal-overlay`(主窗口内浮层), +// 而 `.settings-modal` 自身也直接引用这些变量(背景、圆角、滚动条),因此两处都定义一份, +// 深色块让 [data-theme=dark] 下的窗口背景/文字/滚动条随主题切换(TODO 11)。 +const lightTokens = new Map() +const darkTokens = new Map() +for (const rule of postcss.parse(tokens).nodes) { + if (rule.type !== 'rule') continue + const selectors = rule.selectors ?? [] + const dark = selectors.some(selector => selector.includes('[data-theme=dark]')) + const light = selectors.some(selector => selector.trim() === ':root') + if (!dark && !light) continue + for (const node of rule.nodes ?? []) { + if (node.type !== 'decl' || !node.prop.startsWith('--')) continue + if (dark) darkTokens.set(node.prop, node.value) + if (light) lightTokens.set(node.prop, node.value) + } +} +const referenced = new Set() +const collect = (text) => { for (const match of text.matchAll(/var\(\s*(--[\w-]+)/g)) referenced.add(match[1]) } +collect(root.toString()) +collect(windowCss) +for (let depth = 0; depth < 6; depth++) { + const before = referenced.size + for (const name of [...referenced]) { + const value = lightTokens.get(name) ?? darkTokens.get(name) + if (typeof value === 'string') collect(value) + } + if (referenced.size === before) break +} +const missing = [...referenced].filter(name => !lightTokens.has(name)) +if (missing.length) console.log(`Tokens missing from light root scope: ${missing.join(', ')}`) +const pick = (map) => new Map([...referenced].filter(name => map.has(name)).map(name => [name, map.get(name)])) +const scope = (selectors, map) => `${selectors}{${[...map].map(([property, value]) => `${property}:${value}`).join(';')}}` +const shellScope = '.settings-window-root,.settings-modal' +const darkScope = ':root[data-theme=dark] .settings-window-root,:root[data-theme=dark] .settings-modal' +const scopedTokens = `${scope(shellScope, pick(lightTokens))}\n${scope(darkScope, pick(darkTokens))}\n` +await fs.writeFile('src/renderer/src/components/settings-shell-source.css', `/* REA ${evidenceId}; settings-window CSS sha256=${sha(windowCss)}; contexts sha256=${sha(contexts)}; tokens sha256=${tokensSha}. */\n${root.toString()}\n${windowCss}\n${scopedTokens}`) +console.log(`Recovered settings shell CSS with original media conditions; scoped ${pick(lightTokens).size} light / ${pick(darkTokens).size} dark tokens`) diff --git a/scripts/verify-account-menu.cjs b/scripts/verify-account-menu.cjs index e13679b..689b035 100644 --- a/scripts/verify-account-menu.cjs +++ b/scripts/verify-account-menu.cjs @@ -237,12 +237,12 @@ if (!process.versions.electron) { await wait('!document.querySelector(".ycode-account-menu")', 'menu closed after appearance click') await openSettings('appearance') observe(settings) - await wait('!!document.querySelector(".segmented")', 'appearance panel', settings) - check('外观 row opens the real appearance panel', await read(`[...document.querySelectorAll('.segmented__item')].map(node=>node.textContent)`, settings), ['浅色', '深色']) - check('appearance panel marks the current light theme', await read(`[...document.querySelectorAll('.segmented__item')].map(node=>[node.textContent,node.dataset.active])`, settings), [['浅色', 'true'], ['深色', 'false']]) + await wait('!!document.querySelector(".appearance-panel")', 'appearance panel', settings) + check('外观 row opens the real appearance panel', await read(`[...document.querySelectorAll('.appearance-card')].map(node=>node.getAttribute('aria-label'))`, settings), ['浅色', '深色']) + check('appearance panel marks the current light theme', await read(`[...document.querySelectorAll('.appearance-card')].map(node=>[node.getAttribute('aria-label'),String(node.classList.contains('appearance-card--selected'))])`, settings), [['浅色', 'true'], ['深色', 'false']]) await step('menu-dark-theme') - await clickText('.segmented__item', '深色', settings) + await mouseClick('[aria-label="深色"].appearance-card', settings) await wait(`document.documentElement.dataset.theme==='dark'`, 'main window receives dark theme') check('appearance row drives the shared theme', await read(`[document.documentElement.dataset.theme,localStorage.getItem('ycode:theme')]`), ['dark', 'dark']) await read(openMenu) @@ -262,12 +262,12 @@ if (!process.versions.electron) { await wait('!document.querySelector(".ycode-account-menu")', 'menu closed after settings click') await wait('!!document.querySelector(".models-settings-panel")', 'models panel in the reused settings window', settings) check('设置 row reuses the native settings window', BrowserWindow.getAllWindows().filter(win => win !== main).length, 1) - check('设置 row lands on the models panel', await read(`!!document.querySelector('.models-settings-panel')&&!document.querySelector('.segmented')`, settings), true) + check('设置 row lands on the models panel', await read(`!!document.querySelector('.models-settings-panel')&&!document.querySelector('.appearance-panel')`, settings), true) await step('menu-light-restore') await read(`document.querySelector('[data-settings-tab="appearance"]').click()`, settings) - await wait('!!document.querySelector(".segmented")', 'appearance panel again', settings) - await clickText('.segmented__item', '浅色', settings) + await wait('!!document.querySelector(".appearance-panel")', 'appearance panel again', settings) + await mouseClick('[aria-label="浅色"].appearance-card', settings) await wait(`document.documentElement.dataset.theme==='light'`, 'main window receives light theme') check('light theme is restored through the same settings window', await read(`[document.documentElement.dataset.theme,localStorage.getItem('ycode:theme')]`), ['light', 'light']) const settingsId = settings.id diff --git a/scripts/verify-appearance-settings.cjs b/scripts/verify-appearance-settings.cjs new file mode 100644 index 0000000..57128aa --- /dev/null +++ b/scripts/verify-appearance-settings.cjs @@ -0,0 +1,280 @@ +// TODO 11 验收:设置 → 外观页的 1:1 几何 + 主题切换(即时生效 / 跨窗口同步 / 重启持久化), +// 并抽查各已接表面的深浅一致性(无浅深混色、无可读性回归)。 +// 真实隔离 YCode(真实 preload/IPC/渲染进程/文件系统)+ 原生设置窗口,视口 900×680(与原版一致)。 +// +// 原版依据(REA ev_dee8f184…/ev_24ab5853…/ev_ff4f073e…/ev_fa67fddb…): +// .appearance-panel [232,40,638,640]、.appearance-preview [236,40,634,317]、 +// 预览图 [308.906,86.281,488.172,270.719]、徽标「永久有效」[806,48,56,20]、 +// 列表标题「全部主题」[236,381,56,20]、网格 [236,413,634,218.391]、卡片 [x,417,118.797,79.188]、 +// 名称 [x,500.188,118.797,18];原版共 9 张卡,用户限定 YCode 只保留 浅色/深色 两张。 +const fs = require('node:fs/promises') +const path = require('node:path') +const assert = require('node:assert/strict') + +const EXPECTED = { + panel: [232, 40, 638, 640], + preview: [236, 40, 634, 317], + image: [308.906, 86.281, 488.172, 270.719], + badge: [806, 48, 56, 20], + headerTitle: [236, 381, 56, 20], + grid: [236, 413, 634, 218.391], + card: [118.797, 79.188], + name: [118.797, 18] +} + +if (!process.versions.electron) { + ;(async () => { + const directory = await fs.mkdtemp(path.resolve('.tmp/appearance-settings-')) + const data = path.join(directory, 'data') + const home = path.join(directory, 'home') + await fs.mkdir(data, { recursive: true }) + await fs.mkdir(home, { recursive: true }) + const env = { ...process.env, YCODE_QA_DIRECTORY: directory, YCODE_USER_DATA_DIR: data, YCODE_OMP_HOME: home, + YCODE_DISABLE_GPU: '1', YCODE_DISABLE_SYSTEM_INTEGRATION: '1' } + delete env.ELECTRON_RUN_AS_NODE; delete env.ELECTRON_RENDERER_URL + const child = require('node:child_process').spawn(require('electron'), + ['--no-sandbox', '--disable-gpu-sandbox', __filename], { env, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'] }) + let output = '' + child.stdout.on('data', bytes => { output += bytes; if (bytes.toString().includes('APPEARANCE_SETTINGS_')) process.stdout.write(bytes) }) + child.stderr.on('data', bytes => { output += bytes }) + const timer = setTimeout(() => child.kill(), 300000) + child.once('exit', async code => { + clearTimeout(timer) + await fs.writeFile(path.join(directory, 'process.log'), output) + console.log(JSON.stringify({ directory, exitCode: code })) + if (code) console.error(output.slice(-4000)) + process.exitCode = code ? 1 : 0 + }) + })().catch(error => { console.error(error); process.exitCode = 1 }) +} else { + const { app, BrowserWindow } = require('electron') + const { pathToFileURL } = require('node:url') + const directory = process.env.YCODE_QA_DIRECTORY + const dataDir = process.env.YCODE_USER_DATA_DIR + app.setPath('home', path.join(directory, 'home')) + const checks = [], snapshots = {}, rendererErrors = [] + let main, settings, phase = 'boot' + const pause = ms => new Promise(resolve => setTimeout(resolve, ms)) + async function read(source, win = main) { + let timer + try { + return await Promise.race([win.webContents.executeJavaScript(source), new Promise((_, reject) => { + timer = setTimeout(() => reject(Error('Renderer timeout: ' + source.slice(0, 120))), 15000) + })]) + } finally { clearTimeout(timer) } + } + async function wait(source, label, win = main) { + for (let index = 0; index < 300; index++) { const value = await read(source, win); if (value) return value; await pause(40) } + throw Error('Timeout: ' + label) + } + async function step(label) { phase = label; await fs.writeFile(path.join(directory, 'phase.txt'), label) } + function check(label, actual, expected) { + const pass = typeof expected === 'function' ? expected(actual) : JSON.stringify(actual) === JSON.stringify(expected) + checks.push({ label, pass, actual, expected: typeof expected === 'function' ? expected.toString() : expected }) + } + const near = (value, target, tolerance = 0.6) => Math.abs(value - target) <= tolerance + async function openSettings(section) { + await read(`window.ycode.app.openSettings(${JSON.stringify(section)})`) + for (let index = 0; index < 200; index++) { + settings = BrowserWindow.getAllWindows().find(win => win !== main) + if (settings && !settings.webContents.isLoading()) break + await pause(25) + } + assert.ok(settings, 'settings window') + settings.webContents.on('console-message', (_event, level, message) => { if (level >= 2) rendererErrors.push(message) }) + await wait('!!document.querySelector(".settings-window-root")', 'settings root', settings) + await pause(400) + return settings + } + + // 与原版同源的布局测量 + 主题一致性采样(透明背景向上取最近的不透明祖先)。 + const layoutSource = `(()=>{ + const rect = node => { const r = node.getBoundingClientRect(); return { x: r.x, y: r.y, width: r.width, height: r.height } } + const round = value => Math.round(value * 1000) / 1000 + const shape = node => { if (!node) return null; const r = rect(node); return { x: round(r.x), y: round(r.y), width: round(r.width), height: round(r.height) } } + const panel = document.querySelector('.appearance-panel') + const cards = [...document.querySelectorAll('.appearance-card-cell')] + return { + panel: shape(panel), + preview: shape(document.querySelector('.appearance-preview')), + previewBackground: (() => { const node = document.querySelector('.appearance-preview'); return node ? getComputedStyle(node).backgroundImage : '' })(), + image: shape(document.querySelector('.appearance-preview__image')), + badge: (() => { const node = document.querySelector('.appearance-badge--validity'); return node ? { ...shape(node), text: node.textContent.trim() } : null })(), + header: shape(document.querySelector('.appearance-list__header')), + headerTitle: (() => { const node = document.querySelector('.appearance-list__title'); return node ? { ...shape(node), text: node.textContent.trim() } : null })(), + grid: shape(document.querySelector('.appearance-card-grid')), + cards: cards.map(cell => ({ cell: shape(cell), card: shape(cell.querySelector('.appearance-card')), + name: shape(cell.querySelector('.appearance-card__name')), label: cell.querySelector('.appearance-card__name')?.textContent?.trim(), + selected: cell.querySelector('.appearance-card')?.classList.contains('appearance-card--selected'), + variant: [...(cell.querySelector('.appearance-card')?.classList ?? [])].find(name => name.startsWith('appearance-card--')) })), + imageSrc: document.querySelector('.appearance-preview__image')?.getAttribute('src') ?? '', + theme: document.documentElement.dataset.theme ?? 'light', + selectedOutline: (() => { const node = document.querySelector('.appearance-card--selected'); if (!node) return null + const style = getComputedStyle(node); return [style.outlineStyle, style.outlineWidth, style.outlineColor] })() + }})()` + + const themeSource = selectors => `(()=>{ + const parse = value => { const match = /rgba?\\(([^)]+)\\)/.exec(value); if (!match) return null + const parts = match[1].split(',').map(part => Number(part.trim())); return { r: parts[0], g: parts[1], b: parts[2], a: parts.length > 3 ? parts[3] : 1 } } + const effective = node => { let current = node; while (current) { const color = parse(getComputedStyle(current).backgroundColor) + if (color && color.a > 0.5) return color; current = current.parentElement } return { r: 255, g: 255, b: 255, a: 1 } } + const luminance = color => { const channel = value => { const c = value / 255; return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4 } + return 0.2126 * channel(color.r) + 0.7152 * channel(color.g) + 0.0722 * channel(color.b) } + const contrast = (a, b) => { const l1 = luminance(a), l2 = luminance(b); const [hi, lo] = l1 > l2 ? [l1, l2] : [l2, l1]; return (hi + 0.05) / (lo + 0.05) } + const selectors = ${JSON.stringify(selectors)} + const samples = {} + for (const selector of selectors) { + const node = document.querySelector(selector) + if (!node) continue + const style = getComputedStyle(node) + const background = effective(node) + const foreground = parse(style.color) ?? { r: 0, g: 0, b: 0, a: 1 } + samples[selector] = { background, foreground, backgroundLuminance: Math.round(luminance(background) * 1000) / 1000, + contrast: Math.round(contrast(background, foreground) * 100) / 100, hasText: (node.textContent ?? '').trim().length > 0 } + } + return { theme: document.documentElement.dataset.theme ?? 'light', samples } + })()` + const SETTINGS_SURFACES = ['.settings-window-root', '.settings-modal', '.settings-modal__nav', '.settings-modal__panel', + '.appearance-card--selected', '.appearance-card__name'] + const MAIN_SURFACES = ['.sidebar', '.chat-pane', '.wb-composer--home', '.detail-panel', '.sidebar-next'] + + ;(async () => { + const sync = require('node:fs') + sync.mkdirSync(dataDir, { recursive: true }) + app.setPath('userData', dataDir) + app.setPath('sessionData', dataDir) + await import(pathToFileURL(path.resolve('out/main/index.mjs')).href) + await app.whenReady() + for (let index = 0; index < 200; index++) { + main = BrowserWindow.getAllWindows().find(win => win.getTitle() === 'YCode') + if (main && !main.webContents.isLoading()) break + await pause(40) + } + assert.ok(main, 'main window') + main.webContents.on('console-message', (_event, level, message) => { if (level >= 2) rendererErrors.push(message) }) + await wait('!!window.ycode', 'main renderer') + await pause(1200) + + await step('appearance-layout') + await openSettings('appearance') + const light = await read(layoutSource, settings) + snapshots.light = light + check('外观 nav entry is enabled and active', + await read(`(()=>{const item=[...document.querySelectorAll('.settings-navigation__item')].find(node=>node.dataset.settingsTab==='appearance') + return [item?.getAttribute('aria-disabled') !== 'true', document.querySelector('.settings-navigation__item--active')?.dataset.settingsTab]})()`, settings), + [true, 'appearance']) + check('panel keeps the recovered 232,40 638x640 box', + [near(light.panel.x, EXPECTED.panel[0]), near(light.panel.y, EXPECTED.panel[1]), near(light.panel.width, EXPECTED.panel[2]), near(light.panel.height, EXPECTED.panel[3])], + [true, true, true, true]) + check('preview keeps the recovered 634x317 card and 488x271 image', + [[near(light.preview.x, EXPECTED.preview[0]), near(light.preview.y, EXPECTED.preview[1]), near(light.preview.width, EXPECTED.preview[2]), near(light.preview.height, EXPECTED.preview[3])].every(Boolean), + [near(light.image.x, EXPECTED.image[0], 1.5), near(light.image.y, EXPECTED.image[1], 1.5), near(light.image.width, EXPECTED.image[2], 1.5), near(light.image.height, EXPECTED.image[3], 1.5)].every(Boolean)], + [true, true]) + check('预览有效期徽标 keeps 永久有效 at the recovered 56x20 top-right', + [light.badge.text, near(light.badge.x, EXPECTED.badge[0]), near(light.badge.y, EXPECTED.badge[1]), near(light.badge.width, EXPECTED.badge[2]), near(light.badge.height, EXPECTED.badge[3])], + ['永久有效', true, true, true, true]) + check('列表标题 keeps 全部主题 at the recovered 56x20 position', + [light.headerTitle.text, near(light.headerTitle.x, EXPECTED.headerTitle[0]), near(light.headerTitle.y, EXPECTED.headerTitle[1])], + ['全部主题', true, true]) + // 原版网格 634×218.391 是 9 张卡两行;YCode 只保留 浅色/深色(1 行), + // 因此这里断言列位置/宽度与单行高度(4px padding + 101.19 cell),并单独断言行位置。 + check('header keeps the recovered 634x56 and the grid keeps its recovered origin', + [near(light.header.x, 236), near(light.header.y, 357), near(light.header.width, 634), near(light.header.height, 56), near(light.grid.y, EXPECTED.grid[1])], + [true, true, true, true, true]) + // 原版两行 218.391;YCode 只有两张卡 = 一行:4px padding + 101.19 行高。 + check('grid keeps the recovered column origin/width with a single row', + [near(light.grid.x, EXPECTED.grid[0]), near(light.grid.width, EXPECTED.grid[2]), near(light.grid.height, 105.19, 2)], + [true, true, true]) + check('cards keep the recovered first-row cell geometry', + light.cards.map((card, index) => [near(card.card.x, index === 0 ? 240 : 366.797), near(card.card.y, 417), + near(card.card.width, EXPECTED.card[0]), near(card.card.height, EXPECTED.card[1])].every(Boolean)), + [true, true]) + check('keeps exactly the two requested theme cards with recovered card/label sizes', + [light.cards.map(card => card.label), light.cards.map(card => [near(card.card.width, EXPECTED.card[0]), near(card.card.height, EXPECTED.card[1])].every(Boolean)), + light.cards.map(card => [near(card.name.width, EXPECTED.name[0]), near(card.name.height, EXPECTED.name[1])].every(Boolean))], + [['浅色', '深色'], [true, true], [true, true]]) + check('first card is the selected light theme with the recovered outline', + [light.cards[0].selected, light.cards[1].selected, light.selectedOutline[0], light.selectedOutline[1]], + [true, false, 'solid', '2px']) + + await step('appearance-theme-switch') + const darkSettings = await read(`(async()=>{const card=document.querySelectorAll('.appearance-card')[1] + card.click() + await new Promise(resolve => setTimeout(resolve, 500)) + const image=document.querySelector('.appearance-preview__image') + return { theme: document.documentElement.dataset.theme, stored: localStorage.getItem('ycode:theme'), + selected: document.querySelector('.appearance-card--selected')?.classList.contains('appearance-card--dark'), + src: image.getAttribute('src'), outline: getComputedStyle(document.querySelector('.appearance-card--selected')).outlineColor }})()`, settings) + snapshots.darkSettings = darkSettings + await pause(600) + const darkLayout = await read(layoutSource, settings) + snapshots.darkLayout = darkLayout + const mainDark = await read(`(async()=>{const theme=document.documentElement.dataset.theme + const sidebar=getComputedStyle(document.querySelector('.sidebar')).backgroundColor + return { theme, sidebar }})()`) + check('clicking 深色 switches the settings window immediately and persists shared storage', + [darkSettings.theme, darkSettings.stored, darkSettings.selected], ['dark', 'dark', true]) + check('main window follows the shared appearance (cross-window sync)', + [mainDark.theme, mainDark.sidebar !== 'rgb(255, 255, 255)' && mainDark.sidebar !== 'rgb(247, 247, 247)'], ['dark', true]) + check('preview swaps to the dark preview image and the selected ring turns light', + [darkLayout.imageSrc !== light.imageSrc, darkLayout.selectedOutline[2]], [true, 'rgb(255, 255, 255)']) + check('dark layout keeps the recovered panel geometry', + [near(darkLayout.panel.width, EXPECTED.panel[2]), near(darkLayout.panel.height, EXPECTED.panel[3]), near(darkLayout.preview.height, EXPECTED.preview[3])], + [true, true, true]) + + await step('appearance-theme-audit') + const darkAudit = { settings: await read(themeSource(SETTINGS_SURFACES), settings), main: await read(themeSource(MAIN_SURFACES)) } + snapshots.darkAudit = darkAudit + const darkSurfaces = [...Object.entries(darkAudit.settings.samples), ...Object.entries(darkAudit.main.samples)] + check('dark theme keeps every sampled surface dark and legible', + darkSurfaces.map(([selector, sample]) => ({ selector, dark: sample.backgroundLuminance < 0.25, readable: !sample.hasText || sample.contrast >= 4.5 })), + darkSurfaces.map(([selector]) => ({ selector, dark: true, readable: true }))) + await read(`(async()=>{document.querySelectorAll('.appearance-card')[0].click() + await new Promise(resolve => setTimeout(resolve, 400)); return true})()`, settings) + await pause(500) + const lightAudit = { settings: await read(themeSource(SETTINGS_SURFACES), settings), main: await read(themeSource(MAIN_SURFACES)) } + snapshots.lightAudit = lightAudit + const lightSurfaces = [...Object.entries(lightAudit.settings.samples), ...Object.entries(lightAudit.main.samples)] + check('light theme keeps every sampled surface light and legible', + lightSurfaces.map(([selector, sample]) => ({ selector, light: sample.backgroundLuminance > 0.7, readable: !sample.hasText || sample.contrast >= 4.5 })), + lightSurfaces.map(([selector]) => ({ selector, light: true, readable: true }))) + check('theme audit covers the recovered settings shell and the main window surfaces', + [['.settings-window-root', '.settings-modal', '.settings-modal__nav', '.settings-modal__panel'].every(selector => selector in lightAudit.settings.samples), + Object.keys(lightAudit.main.samples).length >= 2], + [true, true]) + check('preview card repaints its gradient between themes', + [light.previewBackground !== darkLayout.previewBackground, /gradient/.test(light.previewBackground)], + [true, true]) + + await step('appearance-persistence') + await read(`(async()=>{document.querySelectorAll('.appearance-card')[1].click() + await new Promise(resolve => setTimeout(resolve, 400)); return true})()`, settings) + await pause(500) + settings.close() + await pause(600) + await openSettings('appearance') + const reopened = await read(layoutSource, settings) + check('reopened settings window restores the persisted dark theme with the 深色 card selected', + [reopened.theme, reopened.cards[1].selected, reopened.cards[0].selected], ['dark', true, false]) + await read(`(async()=>{document.querySelectorAll('.appearance-card')[0].click() + await new Promise(resolve => setTimeout(resolve, 400)); return true})()`, settings) + await pause(400) + const restored = await read(layoutSource, settings) + check('selecting 浅色 restores the light theme and shared storage', + [restored.theme, restored.cards[0].selected], + ['light', true]) + + await step('appearance-errors') + check('no renderer error logs', rendererErrors, []) + + const result = checks.every(item => item.pass) ? 'PASS' : 'FAIL' + await fs.writeFile(path.join(directory, 'report.json'), JSON.stringify({ result, phase, checks, snapshots }, null, 2)) + console.log('APPEARANCE_SETTINGS_' + result + ' ' + directory) + for (const failure of checks.filter(item => !item.pass)) console.log('APPEARANCE_SETTINGS_FAILURE ' + JSON.stringify(failure)) + app.exit(result === 'PASS' ? 0 : 1) + })().catch(async error => { + console.error(error) + try { await fs.writeFile(path.join(directory, 'report.json'), JSON.stringify({ result: 'ERROR', phase, checks, snapshots, error: String(error?.stack ?? error) }, null, 2)) } catch { /* ignore */ } + app.exit(1) + }) +} diff --git a/scripts/verify-desktop-appearance.cjs b/scripts/verify-desktop-appearance.cjs index dbd853b..ba5068f 100644 --- a/scripts/verify-desktop-appearance.cjs +++ b/scripts/verify-desktop-appearance.cjs @@ -92,7 +92,7 @@ if (!process.versions.electron) { await step('ui-dark-theme-and-reused-settings-navigation') await openSettings('appearance'); observe(settings) await click('[data-settings-tab="appearance"]', settings) - await clickText('.segmented__item', '深色', settings) + await click('[aria-label="深色"].appearance-card', settings) await wait('document.documentElement.dataset.theme==="dark"', 'main receives dark appearance') let theme = await themeSnapshot('dark-selected-in-native-settings') check('native UI dark changes both renderers and persistent shared storage', [theme.main, theme.settings], [['dark', 'dark'], ['dark', 'dark']]) @@ -100,7 +100,7 @@ if (!process.versions.electron) { const previous = settings.id await openSettings('model'); await wait('!!document.querySelector(".models-settings-panel")', 'reused settings navigates to actual models panel', settings) check('openSettings(model) reuses existing native window', settings.id, previous) - check('reused settings actually navigated away from appearance', await read('!!document.querySelector(".models-settings-panel")&&!document.querySelector(".segmented")', settings), true) + check('reused settings actually navigated away from appearance', await read('!!document.querySelector(".models-settings-panel")&&!document.querySelector(".appearance-panel")', settings), true) await click('.settings-window-close', settings) for (let i = 0; i < 150 && !settings.isDestroyed(); i++) await pause(20) check('settings close destroys actual native window', settings.isDestroyed(), true) @@ -108,7 +108,7 @@ if (!process.versions.electron) { check('reopened settings uses a fresh native window', settings.id !== previous, true) theme = await themeSnapshot('reopened-settings-persists-dark') check('native settings reopen preserves shared dark appearance', [theme.main, theme.settings], [['dark', 'dark'], ['dark', 'dark']]) - await clickText('.segmented__item', '浅色', settings) + await click('[aria-label="浅色"].appearance-card', settings) await wait('document.documentElement.dataset.theme==="light"', 'main receives light appearance') theme = await themeSnapshot('light-restored-in-native-settings') check('native UI light restores both renderers and storage', [theme.main, theme.settings], [['light', 'light'], ['light', 'light']]) diff --git a/scripts/verify-settings-nav.cjs b/scripts/verify-settings-nav.cjs index 14a44e2..23397f0 100644 --- a/scripts/verify-settings-nav.cjs +++ b/scripts/verify-settings-nav.cjs @@ -144,8 +144,8 @@ if (!process.versions.electron) { await step('settings-navigation-still-works') await read(`(()=>{const node=document.querySelector('[data-settings-tab="appearance"]');node.click();return true})()`, settings) - await wait(`!!document.querySelector('.segmented')`, 'appearance panel', settings) - check('appearance entry still opens its panel', await read(`!!document.querySelector('.segmented')&&!document.querySelector('.models-settings-panel')`, settings), true) + await wait(`!!document.querySelector('.appearance-panel')`, 'appearance panel', settings) + check('appearance entry still opens its panel', await read(`!!document.querySelector('.appearance-panel')&&!document.querySelector('.models-settings-panel')`, settings), true) await read(`(()=>{const node=document.querySelector('[data-settings-tab="models"]');node.click();return true})()`, settings) await wait(`!!document.querySelector('.models-settings-panel')`, 'models panel', settings) check('models entry still opens its panel', await read(`!!document.querySelector('.models-settings-panel')`, settings), true) diff --git a/src/renderer/src/components/AppearanceSettingsPanel.tsx b/src/renderer/src/components/AppearanceSettingsPanel.tsx new file mode 100644 index 0000000..f256293 --- /dev/null +++ b/src/renderer/src/components/AppearanceSettingsPanel.tsx @@ -0,0 +1,62 @@ +/** + * 设置 → 外观:WorkBuddy 原版外观页的 1:1 复刻。 + * 用户限定范围(TODO 11):只保留「浅色 / 深色」两张主题卡,原版的其它主题(有风、经典 QQ、 + * 和平精英激战金秋、同行、涟漪、伙伴)与「敬请期待」占位不接入,也不臆造。 + * + * REA 依据(WorkBuddy 5.8.3,设置窗口 900×680): + * - ev_dee8f184f6d8de34338f454e3a2588c26e2621dbc29c07c65337c475a243a6a0:外观页最终浅色态 + * - ev_24ab58532d4ece0d79f35c8c7d4cb14f5611a7405cdf747c4698e6184bea7d99:外观页深色态(含 appearance-DMmhwsxq.css) + * - ev_ff4f073ea843a5f444244393b3e190ccb1803bfec2b32afbfb4edfed9cc7bbc7 / ev_fa67fddbb3dc00dde1609ef8e72d448e586066b74949f97634e1dbd0921599dc:主题切换后的稳定态 + * 原版实测几何:`.appearance-panel` [232,40,638,640]、`.appearance-preview` [236,40,634,317]、 + * 预览图 [308.906,86.281,488.172,270.719](radius 8px 8px 0 0)、有效期徽标「永久有效」[806,48,56,20]、 + * 列表标题「全部主题」[236,381,56,20]、网格 [236,413,634,218.391](gap 12px 8px、padding 4px 4px 0)、 + * 卡片 [x,417,118.797,79.188]、名称 [x,500.188,118.797,18]。 + * 文案、选中描边与预览图内容读自 REA 帧;样式取自 REA 回收的 appearance-DMmhwsxq.css(见 + * source-appearance-panel-recovered.css)。 + */ +import lightPreview from './appearance-assets/workbuddy-appearance-light.png' +import darkPreview from './appearance-assets/workbuddy-appearance-dark.png' +import './source-appearance-panel.css' + +export type AppearanceTheme = 'light' | 'dark' + +const THEMES: ReadonlyArray<{ value: AppearanceTheme; label: string }> = [ + { value: 'light', label: '浅色' }, + { value: 'dark', label: '深色' } +] + +export interface AppearanceSettingsPanelProps { + theme: AppearanceTheme + onThemeChange(theme: AppearanceTheme): void +} + +export default function AppearanceSettingsPanel({ theme, onThemeChange }: AppearanceSettingsPanelProps): React.JSX.Element { + return ( +
+
+
+
+ {/* 原版 IMG 的 alt 为「效果预览」(REA ev_c0b1dacb… / ev_43c82492… 的 selected_node.attributes.alt)。 */} + 效果预览 + 永久有效 +
+
+ 全部主题 +
+
+
+ {THEMES.map((item) => ( +
+
+ ))} +
+
+
+
+
+ ) +} diff --git a/src/renderer/src/components/SettingsDialog.tsx b/src/renderer/src/components/SettingsDialog.tsx index bd23089..03f4c4d 100644 --- a/src/renderer/src/components/SettingsDialog.tsx +++ b/src/renderer/src/components/SettingsDialog.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from 'react' import { useSettingsStore } from '../stores/settings' import ModelSettingsPanel from './ModelSettingsPanel' import GeneralSettingsPanel from './GeneralSettingsPanel' +import AppearanceSettingsPanel from './AppearanceSettingsPanel' import SourceSettingsNavigation from './SourceSettingsNavigation' import { useSharedTheme } from '../useSharedTheme' import { SOURCE_WINDOWS_SETTINGS_TABS } from './SourceSettingsNavigation' @@ -59,7 +60,7 @@ export default function SettingsDialog({ theme, onThemeChange, onClose, nativeWi {section === 'settings' && } {section === 'model' && setCreateRequest(0)} onSave={settings.saveModel} onDelete={settings.deleteModel} onTest={(input) => window.ycode.models.test(input)} />} {section === 'workspace' &&

工作空间

{settings.workspaces.map((space) => )}
} - {section === 'appearance' &&

外观

{(['light', 'dark'] as const).map((value) => )}
} + {section === 'appearance' && } {section === 'about' &&

YCode

{settings.appInfo?.version}

} diff --git a/src/renderer/src/components/appearance-assets/provenance.json b/src/renderer/src/components/appearance-assets/provenance.json new file mode 100644 index 0000000..821b47c --- /dev/null +++ b/src/renderer/src/components/appearance-assets/provenance.json @@ -0,0 +1,28 @@ +{ + "light": { + "file": "workbuddy-appearance-light.png", + "evidenceId": "ev_c0b1dacb5fa65c88f32c2f600f0a7a6731b05e58f88b74677924a53899b17ff7", + "sha256": "0b1f24f382c53fa6d3b364bf89d0bbe62b4c6c403dc5a6263c9c5b7fcec7f925", + "bytes": 113024, + "pixelSize": [ + 1260, + 840 + ], + "source": "WorkBuddy 5.8.3 renderer asset preview-light-*.png (via REA media_selectors)", + "selector": ".appearance-preview__image", + "alt": "效果预览" + }, + "dark": { + "file": "workbuddy-appearance-dark.png", + "evidenceId": "ev_43c82492b3154ca67bcccc0bfb54694d1e4d06e0baf72560e49355747b1ad3f7", + "sha256": "ca133c7200b03a49170658e9661f4b64d8ecdf30f8c6395b7f07dc25eff653b6", + "bytes": 109347, + "pixelSize": [ + 1260, + 840 + ], + "source": "WorkBuddy 5.8.3 renderer asset preview-dark-*.png (via REA media_selectors)", + "selector": ".appearance-preview__image", + "alt": "效果预览" + } +} diff --git a/src/renderer/src/components/appearance-assets/workbuddy-appearance-dark.png b/src/renderer/src/components/appearance-assets/workbuddy-appearance-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd412bd6ecdd7f7287a8b781c4edb7450db2409 GIT binary patch literal 109347 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

9CB@dWrM1{N01;VQ%)z;>nFZIP*yp|i`F zxxDc+gjR+){Wh)aZPMt5Xn<735kqzWD8R?tcko~(xWu^AX^r{PV;4I9v!WKD**Y}5AsBC-wC*CpjeVJ zOUw7~0^*YvmQNyOFFEmzTmTU?!~qcHOptRk2I63P_Ot zZ$BSlLjH@C zFhfWo5Ic7GTH+eNgoMqgxd_{^AR>bo*awe=L%0zNLO}Uz#9#4A;2fhph0K~Kh6eC_ zV8>yE3b2R%C?XSnxwP}pdenBTCwbt=92~Nx_ifnfac1R3U^1laiaE9FW2H9{WK2y} zqtL(@8sul0@E=B|gVB&vXQj(;26_WfTj0G!(5f+v`Ydj>uMY7ZWlm%^5#D9Dy?YGQI2 zu<5D9s(a8K-~)Xfm;d%NU9cJnXAl75^t+unY|k?dKX1=Iq=ibHYh?=JL#o#sewaWa z=iq0gZ&`sa1Y}BbowgnXh9!d|=D&jH13X;3xDJ*D9TDMqpzxVsONj_1 zLA^#7D8@MdjbI*}6x{(ETEm!)ZUcmN(?B~2ri~Q2hW;?0b88ML;i@{t#daOkVg?1I zxQ&*nj+{D0ny^`_D(T&Zmt8sK9)x#wchiFA0`eUvN=3xUEeC={Sm3g;D}hLnrcj6< zogZC~e#>%5=_ z3PQ9TyTaShi>`R1(3Mv z>(>H`+JcN_Nbs?3?2I)doq)k96cE5KOtt{$QbC6u*t~Cb+AjgVK|2%SOrzdkHPs1M zOin+csUh0Tm!=CUPER@_@yS67R>#Kb=H0%riv-V=XA## zk<6XfbmQaW!)vNSc<%u-5s6lM#kPkPtb2UkDQf@9yPuw(5Drdx1e*G46x(+cXCUqk zFZ_8OqAm0_q+I_Y?bL1*$pS76myE9jO@g1770s~rq-~ltC1Fgrug_5ysZ@j$vQ0$7 z${?zsC`0m`EL7UT6a;&!#=ry2vw-W@C1*>Lr?2x)V>uZqgoy@SR3G4Z8&OG3eZS-V zC+V}VSwTQnW!8aXy8u6VNGR}cGED&(g_;=Lo(d~%a)UKeZNNu4!AH^0oAoSCEHV@E zWpMCYc_u948qOEssC9bHfUJVfGClc>z3~K?W2BHY=f--OEAX)BprKQ?X~@CHDTuv! z^NfA#j&nU3I`4TmDY}mB%kH$ijMN6$i;$yOHVp2XX|sTolyg~6e~mQ*rz7Pa&?%5= z?Pcx{l9+gwh)kM^Af>R>>o;r&X8*Fb#|yOyE1Gt%Gnt?}0ck~xp~aY=-X0hzR1=VH zontFPFFBfoaIZEZ*CGuGI7#+D-mV>J&S$}fS0gY49&}-p^ELiOlzlrn9f2p3T&;U! z9oTM!M+1$750GX+;1_u2v}^J`ev(~Tq`dWii4Yx0(dX`{dVrVeLPKv0-KWHefd>dav5w@ci9nO-fo}|T=y>`pSx_;(vckg>koRJa`V4Mx7*Z$$&Wz15A7g@CnwXs+bw z&Xzpsal>!lzOCWPgc|4p=A`kJQK?ImyzN|I0KObVNnI~>jhHYVT~K9Lj|1q)&ujWm zePI0nQ&UrB<*NHx^eL)X@d!mpkp}2++THPI{AT9n>eSy!MH-ei8Mo=?wTd4nPWqk3 z1pqT(88eUk$<#O7-$JnC3SuwVN0bjE7{`%GkxE%-oNeow3=l{l0B`x}(TXcqt}vEp zAUc3!*kV^)zsM=BRDoFrzzK5t=XQC2{1Kxomg2=~Q{}t=5!Pwt^J-*`) zig_fkNAcpsJsP#YG(*y4sMJns@o0Hii(uU!n~{L%qKbR+H_BQGxQd;*@8gtMz=8nW zuAUv#22i4^djDE|wJ+z8Orc$Hsq&PD+Vz@V%1)imwS~pSG0aJa)YMjOsoJe`3;LZr zD9w-(ImvZ>EBK;E)@RB~UVoGEk^7fUi`O*mo~>h9#MvPvIs8pQLE+eQw@c*YM(WP^ zo;Bq#h!i^U0eZB1dq+gn;62c%kemp5!37gDZFBQSY77lTu4wooOJ+u z`=9O`{FuZ9KS$wn_DMnS04e2B9LhdG-=MU~b?`bWOvbh#s?)wkUzXsfl`vEc@B|0J zH5vupp!$ev+jU_2cyUeeAg^5_nWh$KiXLC`M+~-pDt}*HO^>A^{)C7$Ant8PRfsSs zq00?I8aSP1_POOaAeHamYouH|6t1kFBfj=IEn+@mGj_X&2jEbszrSp-) zhuM1*W6;%vEQ$ZJB}H>U=B|gQClR8pq4xugUYuc9_Orb_k@rw6FhKw#cme!LxTo?la7mmEC`i-X`atUmKh?KV z&)J~dGncj>84V8&_I0wKAe(|1Fy$vsAW0Q{Km${cBIu*6w;wZ*q}f* zuyY7G1Qu8JenmV6I0wg#h_{>fntryFoc0>{?(Cv%);T%quFj~obvY}0n8*gY{eAn~ zm^SnsQRZ`GNaf)8-q6rvc4=FDz_m?$W~=ro%TjBtxWXX3>4e+Xz20H>qg@wYM~>I- zh`3@RQP5U*$yKIzTd%xD`03w2wjq6rtTG`y(|ePTE=jMK^;#%-Yd-GjcWLc_lN{LP zlY#i zpQD=2e?bT&i7X|AOMGuQI~&_WAbjStscpZ2BH#ROa_^Vl5mOM-IF=K(q9D#Sa$QE5b~VcRD0~~GGPXR>LkzVPnzfI z_w@E!h%}u-mkn$oaIcM0VpEy`-5D7eT-v8{n+IW+^H3EnHprbC9X*DA-0WBd9l-Cq ztUs$t#T>XRY2&;HPQ!@<3_!tqI-Tswl)^qbE)xAnNmT>LUu-mJFUjyb= zW+#Zkw#e++%;v#YB0Wm#a6z~IbyUZaX%0G^1Gk?Wv{_Ih&a8Lr(tu^{?&^vdv>L!0 zVY3>*m;DTw=X9aNe&A=CNTi+tHQWX5*2V-|WJ%mI4vC<=^*!Tnvd*;zMEeaUIy^l5 zbNXqyC}kT&*T3o${LzOLH&~3{GQdvk+FOL9`^0N;0q=VA)6UhaSD)4xh)e|S4=|Y~ zY{+p8IQtB{XRzI$4kyB>%T9XQ_Orp8obq%$lltMqpAk9p&l^1~GOJyK)*dxDvB-Dk z$De2=IRd#nkzsfm;e#furzG-7PjvPCL7f_T@G}@l6nzgsd&uZFB)6bVx^|Iz!}|3D z+0XicTD%!GYD5r`4#>DDZG3F(BSMbYH;<0Sr30jRqIz?akXB*H8kLvO~;p6$+1 z63Rq!8H>RF0eosdLVcU5J3FHf3u!*^M(*|)SL+w5%tiKH*P3U+K}ZG}5pxN&^!4vT zt3Krl9n(_?0~EPWrQ;kAI2GgZQ*}~;IJc)GeB9;4XyFQNH{VWxAuCRSh_h-%CADA@9<}THr)x0Q5=0Db#q(LW6wu`}0#O z8_zvL%{(TNzF4fk)&I_6nCjxY;M>pD+GH3$pMXV40qFipD-}k?5?4ne=3SA;Otzs* z2VMRY)5?`!Kz`u7<6fHodsui97TesO$JWu){6ZpP$EfFC5{UJS?>WX~-Fju7V}V;2cDCSrsB$uFd0d3Cot-#r~d=Q|w-sRbrVRq_IJ&fdR@k*c5mBHrSQ? zpbE)Ur_tfG^h(fd-?~*5?Z~$ptRtJwJKf!N+umg#vau7;wMMVa$m_cZ>z zPX%HtM$be=p(xwrdtPyOWox9GZrfw*?1k)b+?|1fuMz*?(9qs8&S9E88z|kIr3_$j zC?jRwnL`V#ja15t4*AvV$qH5woA&3#H@%fout6v}{g~RpBkSs< zE@_Z3eODuN$9M4MfHe3+Mz?<^nfbIalg8Vh07;M$5X)&20i-eW=g%9H ztnR5y^5b)%YU=8c(_y3kF<-$jKxyA-lHVMnR22@Ch95ud>h4}^lEvCd9>IkVMhB)x z>-h1=TetXQ-ra6f`4hL-n4ZESj`cw2qJW^FdDAPj3NwtqHO~=Q6ATlDKm2RG>eOtS z$!ok`H`+50@bvbX z1}?qmR+Q)|op5c`f1`@vPWlji3!TbKRfL_N<<^B6icMc9Y54$6Y0ALc!}vM2YAUz3 zwuY1Z!3yAIP-v(wVpOx7rtZPPG=S9W+H8%DAE-x(i6UWwDI?BuY;^P{f2@+1A@UGd zN)i#B%zOa)e=?TKaPz?%w}>gy1GW6ULkZ&34@iTC`Zp**WDV_~-}u$I>ikcw#feWx`(adxNj~%)j_J}s zqd4@9bkH8N`wc`8j^QsyfrH#^ux>zV(}2c8k?Ik&96tpO${N5NuEnud&=24mPJ(a! z5ttg_a+w4%IAS1nT2KSQ4NM0Q7u_@$grK2|YD*G=3-cL5=|661nXLHd=jJrMoL4US zBsj&>=-t?v5sA$v?+aUC(^i^>;7NA=J?Z;EgcM%c@d13v{>ff>0H6S)-xOe}ZeS zRqJb;LLPs)EB~LZ_^86s_?_I-clQ;VljJ2OwWVT2t1~siVTgA@-~z|)Xj5LTJW~d| z#jD<*KP^eDhy>`}s2=XwC-lr4yg@4TsBC`FR@T0A-)+wgDV7@Gj^n*tn4T~&3*H!!-^)t*wq^5mOZA@|Gcc*+m!K~4=o)Eb8$ zCoeNHGizgAcVU=Y(|IX6Iyx&PMkK4?e}cutX%TT^E0d zt7b@!>u5N5{vHW4G?TL8K-IM+$&ZIufHV z4B$^R%%FfJ>oW4-czgIM658g1io7|sAM?;q)s48|0-;m`)LP#qc_8x=GlM{kMy)>5 zh&1#@bW5kBxZj5XDxcwL_|H6M#d6aR4E2hz6ov-*9rjG7KPQ zyzlmF+vC|NVO3B9=Ia5j9tSuy zHZ`S-7Js!t%Xhc(tuo|-f`yj*IpagN?_04U?{7$Hx;1iP1oIQZlZSDR82V_N+&~%l2EGiyN zr5Fa3j4ej&j}U*~{vh_6v9*X)oYqYMD?3uBIGcJ5B_3%AzwfGU(%AldA{<0SQS3ek zMgTDss^1oQ0`LuX_>h45tquPTrbu0p6FiPa4e5&Z4HFC+j|$dhADU?_;+`Vnv7Yu6$*zbtH^9ic zCmz^!obp?YYear(^RTkEOU8WYusd65Accq(tlb?eeeNiF77-c>e8=kxvna^UckwR1 zmdX@1D9D5rzjgQSFRk4u&qXOr48>;UBl&x*FqAmKx_x}A83>J^zdt!02bv($&+=Fi z_p?r6>K?>M(@=%9L`_ofhD=#YiR-66H{4@cl;_v4^at>teOhZC;=5}-6DOhrq+;GN z%pgwrk^v3y;&rQ6C%`y9MVhORj4-`AdKFs{)3T+YqP%iT8+9?fuMi(!`AHjnV0{|^ zfHf;l4Gm*%A919(c(ReU&?|!<^5E+_538H^8}&&?Ia4tdG)V)^@o0DtkY(?!WP`$2 z-torBcqkPi=)MQ78JG2=#VwlY#^;EtF47c;$-;ptu{5Lc4D1ddS}!6UdC& zapnpl>t~?wAd;xZHBP`md4e=oZ?YH(`yuH(^f3~ffVAK@&4w;G=9t0j#KR+~I8Lrd zR&~pB2m(AoajGyjDIbPDgjY$iw#fzn63T_Q5+}?G(USNomp^jru@@Hz=kI68?$!^$ z%5ei{khQZQQsAoNI?)yD@I7ZTi|@W4pS? z)ficb64;KdeU8V~?xHy!?2Cu^V5iWdZj(N|8_Hc6D{~4Ut}~;IgvQ6WY3Rm~6Frdz zl1ln)Vayp_FsDHsa$f=*F2kUG0YET;1_$ZbU(p*chFN5t1hn%R%;hhmnlfu~Obpg~>YzSBA88FaZdPf~q(xm~QhMaw)hG7w_sd z0aF(>ENM*o{@kn(G1_Y67EjQls?h^v=nGC}E_!cPKN>xTgUXiw0DdM54-GRaI?6Wf9BM0J7!;I2zIo7K(GE_m(`R z;&eMrg2?~s?z^I*%(iuDbGA(_s9-7^K|o20l2jBeP;!n+6c7Z7f`B<9U`Y@qry`?d zCatOY+7P{8))GZo2{BZoOki*VOY;ec0!_Yp+*(rFHHGJEv?|^*b zhiQc7vug+oJ5&xG(vl6U`o{}!1zKkkUY~-(v?nThh-lXhl%}iiq%7M~?jIV8Em`r2 zsC%&T$MM18ZbU=)x_Xgw&@T{#|P0K8PmXtH{u)_+tFx z;+m)b<^Mm8_-t!N;lonP039x|~{z~9(-uMcOX1+;5#q-v@ zxR`K`()L^6TN<>a_Px!|#1xwpICIDu1;atW0E|O1m;|B;QbrqyMFUn{!hVuIKl0`9 zW`QvEY4yvi^IUVxEHE@Rxh*msw>n8LJE`&*nW|`cE*<0Nspvp$My+Hp^b^`;et<3f zOUg3M{Y2*$L8O~e3X3aKgEBYsZZ96sAu3FW(x|u{B zLBZ-z`Go!rC<=Z<;5UFjy&DF{k)jS>IYhQbTxZXbCT$G54N;7AM>D7C&96Vcc533` zZGGg(D<~*fc3Bo8UL2mszCb+bzCA@3Eh`rEh?osHkLjB^-*^QqLy4PK>X1|vO)gwB zlguwzie9~PrG*mm-D4BS)CQ4=Yl~;T{Ln`5NHc%lANa3v4Io|EKS*l9#s3jM^2Gz~ zQGHpYmJcSZK{=^s-qFI5}M$Bn|$2AdU7w5&WaFX<5x_x*$3@NE4NcUq z1^QhFTR%D3X6q3yp6FM2uT3{rY#oLRm=M7aq&;##;-+8%8(juNF3Z17VXw6+$d0%3 zTu?kN@Bv8FL_gjdAp;$VfJ7g#nWK(%12M5{j07* z#Km)fQ1qM-Zx*JE4#R7?-V63>3BfRq=A zk%`IpM=N~9eVBXPHboe;5E1j$sP9q1_u-rCVf=uqEVN~uP%02G^vOEUX{DK`ec{(V z`b9%6h|ih`C$o8>29qU8+b!t9^&v}$Q;eE zE}ZpLMjog4!vy*YL~DV!QKnw1JN8x$qn1~oq0J@@2g@3M{@-Or0&+!+C(?pXNlk67 z^4vwMVVIx+47Y`N;y94H87T8_aI65oR2uAA>A;Rio5$dJVSf`W1B!>_oQ75m`U0JQtq*kSVcl|?3%Hif+!Rv>8P4e>dgL99VCkScSK zS^)DP6Kq#l1&CXW53!wd8`l@@4}@;>*}qc`+Q|r3x*f)I7ps6n$1Gb9V=dxgEhbm0 zR1{n4bb&L}FwyGg<&GsYflz9}&y_70d1a{^zV}KV^UA_i!zjTU5=qgXq31Zg4&Ouj z*fAe+sU0*A5J-UfZN^6fxD!!U~{5e`X7so8(CT)S+i-p=oM{-{(5&_l7DmbXmKFk3G&xFEG$Yz^oAX zsEWrZPWNy5VBdoRJV_<$5@{)d(F~G-B8}%<*9t-o_J*U?mk_(pKluCk`KfQZzqf17 z%vtj@*=?H2v9G@`a&@k<#16!*9PzP=X#i9w{%xi3wrQ?E} z!e2`=E-r$yKu9SphEBvQD?l$Op>PQV!pM*6ubvbujDQ`>rtIDU!baTUxp^GU#-fD_ zU!#q*DceT-c!Z20$UxQK`XE}s`_VeV1UU|wK1#r{7Hx@y&&DgV4>^D*FC9GU!Z3tw zs0kGKHY&J)9|GmQ-?5r|GkL&)qj|XHLoJ}JdKuYAmp%@nJ16%R-nmVZHW<0tk6o?=W zs|Gz+tz1d01D)=G75QhibrH zlsMLho*@Q;Go1+9FoG!1Abtr@p%tq_K)|tr%`yrtjGc{`~E|f-Cdw^OA|7sUp_c`gRc2S6%p z2PcbsTaW*5Tini61ii~}bbg=j%QN$Yq>du$lD9_kG6_4EInLU^J5LZwkdR>#D7x){ z{@|2JT*41Rhg9O}3CyxH2J~zuh#{v4oI%E$(__y5hwa|3=ddua6o@I**4q3~60_r8 zxlk>&GUtj~q!9Z+>9;l?xh>@30Mv1cE@LqfbyxH7q=7`zQFDJ!92}{}#YQJjo|OO7 z8McC#FJG2-bad$S=f6ok%G43SoQ?>58oMiM zh$>Ygc?H@~y&6QG5_dR_G*@^cV3*3c>4t!stUR4tg!MbSb!w6TXvzw_9 z3NkRVG7`@wFKg-I#SIvxPF{B5XsZoL&Xs(Hy4)JHK%l2}qJ1LA9_~JlkfLs4GDEu1 z!`&4KsSj6jHjrx}Hsy_t_{{G`pzW)Rx(u)NnvENGCO0LaE+Ao!)`-J}hjIuj-J6k0 zW}p-#M?il7LXYwh9Ht+L|{CU9zUc(kXB6G>qfLo#8d+}i(?jDCrJ772jK7?|7zw2 z6@iz23K+HkG%RYSPxXJBh9slWlw4OB)DBu?>Y|p@g584vb;9ZqI=s!2BuHE!@>VE` zXmxIVYJL{|gVLJGllJ0@C@Qh^Sr_3+w~D+M8g z+Dq@Z7%7}N;~cdpTEkwNsNzUFaIacrx`AU;c|v6ibI^z@>NvPP@-UzUbR-r*J8I2$ zq>r*XA_je;5#+6rSV_!(Y#9bUk+{>u4A6tYi1z*M1Swxtmq zCq8u`x+}qTLpxP^8US*|Lb|l9OtSi#2Sx#gJ=^DMnh3d<_yeIdV-&|(a`{n#ea`A? zFcV1x@#+rq_MQFWnRrXYx#o^JE?`-C=|!|G_{s#)xR93yD(vrL_fHHg&4soC>Y^l3 z8N%nH)!RusAlF61$0jc|z#*>@(5YK60N@ulYwn^~ZEX`psD++dluDX8U;2uC6qe=+ zf(C_-**O*(D!bfgOeLU7?xXMLG_A^e_;UF9Z&YOKd_$RYkc@U#N62<8;Es-oX@XLL z)rou%O@X7e0D29Aq!iS^D~Vxopuxud9~P1-2Tf=DJoliSZ-kHSL8k`>a^uLQs$p75 zkS!5a=+dp^>3UAMZ2gj=ogNM@I2I-PdQajr+H&~TQCiWjZ;Ho5C4?&{(C#R4^<+p~ zY-|D^FKz0Ku1)DAQCdj(hRMcCoAo1PJV|}Acf&Gb+C%k>%9N;{$Q@e|LNLxz6=jkN z1SPcby%!7ekrNOpx`#pU0?VWQ>w_PHgEhj;um%iPT*Ji`Vy@pMAUif|rj&eNy9tn; zIMskTN<|t5G*Wa_AsZ@9xWW`scE9)2;Gpfmmf#pYlJ1Gm_G{*bWUiD1B@UvNZt8RGn~FEP~k2@$>Aj_v>-WxsgZ|k~SFa zoNrf*ft7@FPdtqyk%T)(>BY)(5t)u1{QMPhrx7vH>K1`q8V9Rd-eB<0DH<^r(%o^= zKplYnKqQcCg7HBf(a)cP|HB3aB*|)+8Sb+iAr&Tuvwcj61oVE;c}X}5(mjEW!N{&IvqH>blqX&Ug871TP|T}CaLp`?cxiGs zI9NL^+z`brym9)(7l2&pgjt%9rjFCH5I3sBB(=d0JM{+p`=9U;h2V;w$vS|JZB%GA z>x50NU`8`PRp}2S6!`DZ?n8J0{Ou;(&uvscsc$!sQ*5&I!8lZkg8WT~ONxv#$G_G_ zftvPi#d2AQ1(1o>F^TsPmkz4cee(z;a?ByzROZo<=OBkfvTu)$ivb0u$|8{#~A&2MC6b0!r@1z41E0=>OdW87oTwyUVU-FMrwHP zYq+@ulf@^KYwlkS4nuhE1u%e9fcMeFMiY?`pyMpJuO^y_YKKvITffbFjCmZ`U@3tJ zL?1`F<^rgi@Kv| z`YC30yLounfVOwXK4ND~>7Ww3EWlejQf(q2kM1apO8G0+DbxcK!c=Zyuu;}^R3hi z)Rb^p`4cJzqJ>@CO+rlt zUKfImF$r*(c(U zvi!Wy%#(iqwDNliY>4NGW)nNCYX$rPGWDJhISfz|286&biF?7Nm2=h(>ptBVs z04zOM)XCDV3e*h5){nn$7jOo*0Ge=ZlN&a=b+61a-wmq}aaZRR!LbP75sS-e1795! zk0AR!x6|;pl$cn-K`S?_2f>&QrcQy@;Gxi)IXWcxJmLs$tT;{#wH_r2+0D!493uA_ z6%{#Y#D7KP&H&3RuBbL$L(I!~*uFoh4R}w)s9O=db0_FC?0YA|0u7}eo;F&_#0Ucj zrplpD9UBeq@JQ>SSW<&qhafdi9I5fK;^|Z(yQqz;F?~1$O!r!S4xysLovb#Uf`>38 zg)z3D13wyphW?0RYLzC5Bx{Y%`Pk`)e+2G*>*%VM!Vvkj7d@iwEzfH#GWSlVY~8xm zuoZ6P_TB;n#sYY@z;pWOCbD0|2U_>VcEDERvBVFCG=v{VC9eg343K?)mt&M`Z=)jg zCzyb?qqv}nVSacaCSdKuCL@rU@10m^gWwkt`F4>t?ZP^iN3cww=`>;wBs4-iDpf+7 z9qbePzWhfa>;?%iVBm5cCkiWybpH;y8T%{87+>vd2L2YcS8+6VXAMO)6J2A0 z{{HV9i*S@-2`2;&g-i51nP;17kYArTh3z}YHy{nQ98u8O zgi)VpIlUXvuw6nb5+c1jv>r|L4;c8(oo*8es!-^qFYREw$VM?V4hG6Rw~gqx0OUZHx1Ca>@cd zL3q5p#t`g9A9O+Rm(=dWOvg-O2S)}<2I?iQEFz|%isBLt2EuBB^PAXJ2BpCt5-U4Q zM%HL$B+?dXEI=*YH$7QAZ8_)e5au@EEh(?vX;jtZ_Vo(}ylCL5f9mf~#$NXX+&^p1kk=JF{;(TJ4 zq78^&JW|87QNv+~NRbCFujb_JS=|h$#24a80?$XPc<;tXY&Xs9AiC%PDPoar3j!?P z%}>MmB#u~Ta76+vV&H;DsXnhpf=iv21MeVYsfIWV>kVEJsw?mpakQeqvtw zK)OwgcH*of1-!}Q9)KnB(T4S~e927xFhyiJ4(RN>Xb|y{tevpJ{PxpHa7@gL_Rv60uVbei?BOifWLtF~g-gQ7HMcJa(}p;*5(_ zP8VWvCZC9i8X@Ds2k{JCV1Lbx&(M%$qRvy51uZoZ^j)`0VqYOZY$9%FfxsU=zP>Jt zUXq-Fx$*bP3BhNXAB@Qq6K1<5i$5Z=H%7_L2l{@q;5}-gMvU;Ms-ZS=#@I~Y_HvWQ zr*No*#*Qm0sv~rE*-Kz;-;NsSA*mb2q_m-PQ~fnHt2EN=k+V^btz`vkzG*$ zFRRg7c*PO>?PnULb0@yEPjGXDm$s+q%-k%0k8^*u;BmubL#??i^^X_8!1e-m0&b%U zU6(^kwM6wT4;?qSj6CWND~*HzOsRlnUT%G=WcCrZOS^=1&r;FEcDH_7u&c!yBWa(L zVF4o(T{$wMSO!S`T#(H@zt@Q!a5ye_{BO(l|B#aS|6nZtkDoH-=g%+5$b=QrZJt1@ z%%)BIQC|=vCJdD53tPQfA&9+~Ne{%VqH(0& zO_Np#@~8M7AC|wyOWn7^h=iSlcH5hSU0e-dy|z(NVQZiogS8v}IYI>?_;O3w?+3#t z&OxZur^Z{KE8af0erPm~;l ztUN9l)@a;XDh(gJ z%jIS=&<8{j@W^PSh{pp275lVj{wCM^Cuf=)aBb*{CYUHGexif}v`bxF8tQN2Tr;h@ zQh8$cLvcWOjHP^Sd%_iEFI@&-tO@XFhI^_9^GeW53=8_Z;VcHG+9Lh#N3(7tY@>lR zS~S*UY!?=OEm1dX|IqIP{$--;C*Nbx0Vrl2`CQkQk~j;g=5Dn`12LTR?LY;KZ$rq< z#3vvPOFygt!~nVM(E5DHi0it6PO27R8DNLm-G^YtOC`i6$rZQvu(1n=7ei|K0HqwO z(&DPnCuXP((hJXviMBU!)G$yin&SMLtebG=Lo3i<9Em%!&Z8Ak$n;zaCDo{~^^**t zMM0qx3-%zWYM`cFeS`o7w>#kYyD{X~T|)Zmr7l{u=q%sZ=%`Bp@e(2_^6`0Ug)`pR z!r0j9V0%=Cc_oNY zJ;L2XAR(@QAe>}uf*{^sSkauZ^^z2IP^^iZcECMoAicq)q^T97K`+`eGHB8G{_U1}=#XiYt(9bi^3`d*z3A&6nCA zx^l)sQ^NYLg7D45^E-zBl9}Voen=PQ|Hm--|C!C^KQ-Srd8}J%&)N;nMFp+ku1L{bK;dZZE*PNE!$l z(%1&IyRxk82%+kcU`tUf) z`7AX43Y87s5|%egXNG0(fp=x@tUrin-hXwtxNDQ9b}y`r!IV#*KUd_~?h%uM+KKk^ zNIX0R8ob?3aGw-lzVpl%wPu|&UVeXH^n$@d&ZtY0(r;vJo zNc8S5AyBErEd-lGBF2WO!3j0=&ZT{>3r5xF!|~c@q^+%OgM%{UjCHz=oFM(9NWm(iXHh3m2OnuM+EcqljFt8~`nEgTQEx58uYB*!?67_(Z3Cq83-8vLP z&dz%1u_r_43}FDYK7HCL;^qK1FO@hsp(STyHYtIPh0FrwBhZLeX1~oYDA3c?)Et7g z8_vIDM@(NzYU-VJ&vR_y>r$XG=was0({x36#h{?IU3J0i7UE}y`-s8)+pA|8bU=S4 z20$ef{##9AwM}wt>>+b=bId8W)9>FU#LHW@wECAU1o*P*GLAi&s$b%a1sw{IKXup1q4NFSXgsAO{dIZ-@rY8 z|41kjry$C!j!E{}=xS+%<=DD%?sJJvN>U((VImholLMFup}hz9UOX_XlI5@81?uH>E!j=&19`7J%N(3)_IBsZKYp|x1(JuD z{H8xuAc9KD)no{aH8On<=8_Wdd&Kk;Vm~Z%5JU6Unzd^gV}g}^yGr_%k8@D#UINwJfbc1XE~oGl&%ln-6gQn4tD^3gwf9(7>i4YHyvYb6OeFeVnDfjePecd z_A07QB1gtuyEd3u}@ z(a;LQrLk8t4Zes(c-ShvNC}0T#xi1|#}lM#Z$|U2TZ_PWWIXo(byN@6U;C%;>>sz^ zI0Q%EpVDu(R>U9m5FIxhLsGo%bbkLyzAQ{ReRDMDg?jb%^(ncqdvQYRYi^V*D|!Dr zYeahgqbgkB{I~1%#lKyzo38x}PK5tWJ~uZ11EKaW`8WBP+}KtgIAgz>g%%4l|I51)zz916E!AKx@s62N}pg6 zf1jp?hS-VDTyvkhof1Q?>CEK)o9e8lG06q(*(5-Qjo!R{`(6i&iB?Tzx8EA*4Q`x0 zh+wKuPpA-=*TE=%3ZJ0hj5iE|Ev(7)ELY4K%C=EFe!K~Vv8KNM`X(bo!@+qrD+rN* z5>S%c8(KB|bISCwNv~oeTM*8WHZx*`TT%-|!r*WS%+5b2z4km(MC&v{0A^wZhJ}$r z|4mM6MTG+4NW*;DSM7p&N90@=WKe{W!DnenN&JXXVUNZRJ7HnFWy81k!@{R78e-&7Uw{8LDnesCunRaH*{ zjaAgvy2|AcbN|83hUdS&w2R15JjPf&aJp^i%R8cWFPVp>BRMW();2bp1_mjWLX2aC z&ME7_o?Ud#1_lSyak~*XcKo^E6n<(|68p(Z$Su`7!E}Gqjbec@$olFg=01E1v{J_N zPl?zvkH@ zN8(_ps;l24+Bo4m&u$<=$YJ@1`+%Y{zrM(c@7XifbEc)SF%|+tjYaUL@SDy3DnN=mj#i)}H1wIaio(f-GJB68zgVup-{u`%gHEbsoF zn3h&EIT)pqpncKOY@Q*8oK{p;e)|3s8g4wkSANvr?0{g>5IN7K@RNj6M0lnxqf&0i zzJ00U85D7m9fCmjUd6^V_zq(s-!eQgvv*Vao^fT%wj4&RID{}5iH4jli??A?E;jEB zy>o-~5G*VYgszDRS{j9gONF*Zkvl*k-ST1KYHY**g_aeWiYEH9OnqeRwFdSF(o1n1 zqEucX{)MK;A}m@6bE5X+{Vj0##Cl6$80g&*tkH4(ajb3s z;}M^{oRiwxABd&b2@T9HgWPjnU~#Y;8-n=*kN(I=e`Uv}==k{f+FJJYKJmrbQ{?%= z#=5#lEX+2NUbS{Dlg{OGcN>{y0y`e#ZGZDdz71&zoQl@PX4xaoZ6zt0lRrv*xVEC^ zgwIYsTR*7jgJ`N{)8QgNY@%!bKDls!{Z8zyxw5!iuvcP;8i%meKF@)408dN~1_im4 zb$;D0Dyoi41goL_SjO$DFBpsN+qY5I-MTFY8wlE^J7Q}s=(yJK+4A+}H;?EC#UWl- zqOw3qWcSdvEki&N#$u~IHfe)8zMZf7M@T0cS&dlG5iI@hXIR%L$BXJE;O^ZhT(8ld z5Y$Zxg`EYW5YB#{m%#_?g=6>DgOKL8Z&Q$r$~+sKyIWkm7mbfeDJcP~ zWln8bIfQRR%ymOLungbO`|Dv~U|e6H^;pRw>c0Mz%(twiOPBHs2@Pcpy;>rP{zNsk z`XQN#T6S?0y7!o!U78>g=|PTA9=!-(w!7K=Ox@@|9Upbl|4gL#zsSx1ZRz$gWiKyd zW;hC7;K{0gK9tFS+b{Uv^~8VtktTb6JO58r#@A)dw?ic&*40Yt2X+`no@oA)nnO8q zcEjGYX5wP}ljYh0!%vs#IxoGf$@cGY{HYF^(ezR&XYKyN66y_R)OGJ975SttiL;jr zv`!lK+mzp3I7jSbP{%8ET}c)5KR7obyYVvEjFXZTLZ$E@rd1cJvUU{PJYGi+i?Qcq z@+b6fNwM)9l+=g{)!)c{qn=~QKSkBJWy$Cx$uC{S$qub=Xah1=oIgxm3|$g9H9|it z&_G`Y7L<75#u6}s+i?U~)ya)TQxtk_=-S>yU&p>U7v4#Hy%<&&Q{TOj78Vd$V^QPG z(|q`ubnnx*i^bmtZz?lQ98Q-F4CCzRS4(3I?IZ4G+@$tVQ27n$aFTrD`h4l09*lE3 zo8GaU{WFJ~ZyK(&@llAF@TQp;EbohcR`BYN)ikqyX8u|$yYcP1w4$s|%|LOc!dbEL z)@gsMWur-y$_%qM7mbHyoml34%UU1XF6|0Ov<%OdZwvb+wzbTmU;{ly#<1y+P+uK3 zg|mNJr}Vz>s(6|0)4kD3&-XcVHovj<)JrkjQU2|e(fIar=3Sye??R=FXtP>))Dk$%kJYLB8TB0mVRSC z^Gq%@yjZA@eav@LOBdG+ily8(n%BmkV6&=6+M{O8w{^*%Ojn-~u$7%&Pup;{p4Pa_ z^k9U|dD4dgz{V#lYYZJ7AhiyCblgpdXQyC5S~O=CIQbqYt+&Qg-_~N@TR#M$Mrh|F z6+6hgH*kyQ4UDLDQ~c08l>{KTHZv@-x+wAlGPZY8!8pZ63eg3CNI0=O53d@b%h z^-HMC12Z+YQO^|pj33JDTt*yvv{5bU-;I>K~A9qL9W(EIC z;ndO_g1|iu_{Q6)=%UQRJA+#h8;I+bg5{TAfi$KAea+Kv0yImt^{G>wCAVh2%YJXS zrVK{|Z;6Fp5rGp1sp-CwPGbkcx_Y!@b_OsxbxU8-?v`=t(xggzrhN+!)dsOtVpeH1 zyjXFo!}*c6xP^s9j*TQ#)y8ad-Eo*7N!t+^9oPJ|+7$m@q5J3H77akJDb(P^yuACL z9?@@-cY&wdD7RcX7TvwzS^)hO@m34oUs?>y$;ShU&-+LEu#1LCdOAQfSLO^Zn^swmX2rIT%tZJL?=mSP6O=1`(|eEDD!V&Jr+MVi+naPd+v6TZcnXYt zujMliyc?4=ckNg~DdZX|4TBwqa@sw|+EqPIw>4vw)-Yxp_hOQe+WGS=<#=0L$PvVM z2BWSsOp4Z!BXHz;nD-@q7JUz6ZQr_84o>rCG`*}@a&7s+#Ds)8Jnq#C<_rTEpI5Qw z+rC`|K$w(vR}V%h%{D7@Kt=2f`(q_1{JV_@64~Kl_}#*V1AP{?{vH<&wKbezEbJFj zoXcQr3UAROmHRyTHFB<_}T1t@gAWyjcRjuKu8t~27%yDk~KxQMa^- zsQl>Xc{V7CJ(PlaSw}(JJjMc@NMv)W8Y*}=-1|mtJOrs=5m6%q;&M2n>$wjzESg|j zO2SX=fmG_+aZ?>NK0F}3!&Bhjwo%bD2<5x`Li5M(KN|tylPv*`p8s}~ybx;J!PhwL z;Lg*mEAKw?_S`;RVR7q-f}@<4TrmYID$9e`SoMBLT_mwN?4j79;;PBezs!{UcroMtfM___R zZr8UTj9BfA+{y>`SP^#9{ zZKrzalV)kl-F*f9_mmXJU+(mZ+IjxN;_-%vsm9`tc`tUM;?>p4os{?CjKapHj<7r3 z-+yL-k0Xuj>w8wtT%-N0D^Gko#fJAhx_!l2v8>xhUd=+{ilb!})nk3~$T;1+!1;v+ zD48}lAty-C@)G7)(w%hmmY3jco8Hn^4%0GherCjW_wvKdh zxi{|QTr!$>##@X4olWXXEYNLU@H&vmi1VJnDKLt?EUN9J-`xvUnSeJ(MA@uQN#tUk z9NXe%*2#mL%N>T_UrhbrU&DFMtbEnN!PYBIMyBOEVrtKLP*=&ES6Hf4nZMR|@S3Bq z>JLWTm$Id-SmS_{LG=)*ZmO=C3-1UMk#@qhw0|UL@c})*iw){XBwnzAxVEv-7O4#& z3i4roRyb_i+NGTEMR^ihlMoUBOCTi1KsC+Fnm2PK><@B}t~2GiH_V#k+Lmbluy1Eb zimT1CN}H6R$)44o^~qZ*PsByAyp8?1-~F|$i*oo6LVT-mqu?HlWtL{hWS{fP}vGI1xUX&!3vja#gdRd^%b_~7ffB^@| zx11O`B{wiJAn_fKNYXORTX=CgTia;(NNRalSLFm8f`08&!y(P z;4e3Gx1g|9L-)RYZZ>M#LM(bCk6!@Ss?N!6^e zesq&GBmVMI2d%|R*)#Vz{=DoXtnBeZY<+0KYC<9Ui12cz`mOeO*qZIVrrtS4J%gmRGJ zs0tt?i{ov(a-~ur_3*D=G%`|qlapXDGCTlc={VGh1Trdyj8~#qp=cR@y4))gaW^z; z988r{rC=@yu%k3P#^7$M+R2kq0+nju2V%dRJ!5fk2HyVZ0kVJ@>R+Nn6WM5-W_r6g zT3#|i`i|y<(16z&8?;133f#VTYRgQ502prG6PVUoh=ZD-mu`kBA~{=0&c;AU&=LnF7VqhA z8Jj+y;bU<|KT-L6dLZ3=x?s%4HzDScU3I|Ked|(~+G9_~b#<64TT*SLqWvDoH06Jl z(_qcnmcH$c+UJ;L4+GK<&&PK@qx+2agg%vKt_zy%9tA`h897UfCB{t*${{TjZFd}> z&Rv^;78`>c;S5`SuvXBXL`qLVzCjsWhh`*r8lu6zUN7FHBo3aX;KQ}`PAFuEW*qQ*4EbbJH3BaE@Qz8?&hD&zKxzM77mOmJZS8ADla&dTESzyrCil;d*qTc zmjq0+3Nkc?R<;Cfd+d0<%UY{a#(A38gEsZO!EbfAujO0yle~i-N_;`eO;LZB_p8nYgP}auvG!trx8>x9-dK_PzlI4+kzVCA&A0DjCet26=OM`& zbzIxv2N=yuT_)Al)Q0g3^O-<)WVCWcMFoXQIH_HnjgGa_be1Q}15RDrVjDJ8E#b1t z9o9WD*11aD`q$9xb>sc!8Ql6v7_WN1HHHQ;1U;I|RgcyW#@SG)My9>RXBR&^5N1vd z*V>qV#Huz;yY)LOB4MRuHsYm=Eh-*WMT4D;fsBNHkS>ZeVyp%?4cFu8lK$Vn(5hFE z@4QShg%68mEqV72*R^nU_ues|R(bMC^_4@H{+N9w^^xG25zcbcMyILcw?uggJM0ey z2MC=Bv9i1xT)OUv9LxOx)y8Ec@fs>7m%OU%Y|^X&+=H=XJuXkkfVP6(_=m$7vYrkHAjUOx$)&>0X+UXt}R>mxM&7r45+{&)kR-J`!Dd`FiHLfFMfTRcaRA zvsU^`*^!az{ONe(K(9ziMdsDz;g60fp0F(M9!c8dnWEJge17-y8WDw-C&tgczI5Fb znqR`Pl}&*}Di44d@@veXXwg6{Pv2a|{o~EpnR>8+pHklNE1Rcoxvuo;sEF^ZjO^$f zoeZCpYZlwm-^IV3c91>!TcN9=unra7Z%*ZP*FCL05HM%%b$X>^idJ}M_T>>hj@dq3 zY|HU*xbWvoVCL`8x@q4_7shI3i*qDR+Yw+*C?)`~RK0LI~x!}5?KAcn! zPUtqvn;r{ZxaorEdJlF#O`X!KjFdO%?ihTn(9AR6Wd;7b@f>qqzxAdxcjNUJ8n}O( z!-S61`=PsJDrV2}k$sPDzk+%BxRTP8vT2pJkMO%9-`Vene`{qD&)?AA375V_+d7A1!H@Cb_>{nd=f( zUQ-kP`Kw!zsc!R{AoDvp0y~sw+O#r<4SvF<3G=TTb4ZB)*5H&Je4k}@ou+QSIy>(| o>~q>X(NZZ)CMvSnwD`w#^!laRrI(ubkmp4`taK>t;E7BB3o8D13jhEB literal 0 HcmV?d00001 diff --git a/src/renderer/src/components/appearance-assets/workbuddy-appearance-light.png b/src/renderer/src/components/appearance-assets/workbuddy-appearance-light.png new file mode 100644 index 0000000000000000000000000000000000000000..e89cae7f74723a3bf748fa80ce58e86267ab6a4f GIT binary patch literal 113024 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

SY9?a)n>VEs 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 C87;Q} literal 0 HcmV?d00001 diff --git a/src/renderer/src/components/settings-shell-source.css b/src/renderer/src/components/settings-shell-source.css index 271b4fa..8e620aa 100644 --- a/src/renderer/src/components/settings-shell-source.css +++ b/src/renderer/src/components/settings-shell-source.css @@ -1,4 +1,6 @@ -/* REA ev_40da6df0424193923bae64a8ccb6fca97ea67813d7de671986d4d7e154b848c1; settings-window CSS sha256=8036657ec27f8948c6bad60c835d62469e958db4a5b9c25e22e5a9e60c0ea986; contexts sha256=50cbd673f7f35fc7f966bdddc6c9f5677fdfe944cb904888d214619fca259380. */ +/* REA ev_40da6df0424193923bae64a8ccb6fca97ea67813d7de671986d4d7e154b848c1; settings-window CSS sha256=8036657ec27f8948c6bad60c835d62469e958db4a5b9c25e22e5a9e60c0ea986; contexts sha256=50cbd673f7f35fc7f966bdddc6c9f5677fdfe944cb904888d214619fca259380; tokens sha256=13f2bf82c96e5167a7d7098e36950c6c22c475b3337dbb8bb29ad2fe79cde696. */ .settings-modal-overlay{z-index:1000;animation:fadeIn var(--wb-motion-duration-fast) var(--wb-motion-easing-standard);background:0 0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal-overlay--appearance{background:0 0!important}.settings-modal{--cb-settings-card-background:color-mix(in srgb, var(--cb-vscode-editor-background,#1e1e1e) 96%, #64748b 4%);--cb-settings-card-background-strong:color-mix(in srgb, var(--cb-vscode-editor-background,#1e1e1e) 92%, #64748b 8%);--cb-settings-dialog-background:var(--wb-bg-secondary);--cb-settings-card-border:var(--wb-color-border-primary);background:var(--wb-bg-secondary);border-radius:var(--wb-radius-4xl);width:880px;max-width:92vw;height:720px;max-height:88vh;animation:slideUp var(--wb-motion-duration-base) var(--wb-motion-easing-emphasized);border:none;display:flex;overflow:hidden;box-shadow:0 16px 40px #0000003d,0 8px 32px #00000014}.settings-modal__nav{width:200px;padding:var(--wb-spacing-9) var(--wb-spacing-4) var(--wb-spacing-4);align-items:flex-start;gap:var(--wb-spacing-1);background:var(--wb-bg-secondary);user-select:none;-webkit-app-region:no-drag;scrollbar-width:thin;scrollbar-color:transparent transparent;border-right:none;flex-direction:column;flex-shrink:0;min-height:0;display:flex;overflow-y:auto}.settings-modal__nav:hover{scrollbar-color:var(--wb-scrollbar-thumb-bg) transparent}.settings-modal__header{padding:var(--wb-spacing-9) 20px 16px 16px;user-select:none;-webkit-app-region:no-drag;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.settings-modal__header-left{align-items:center;gap:var(--wb-spacing-2);min-width:0;display:flex}.settings-modal__header-right{align-items:center;gap:var(--wb-spacing-3);flex-shrink:0;display:flex}.settings-modal__header-extra{-webkit-app-region:no-drag;align-items:center;display:flex}.settings-modal__back{-webkit-app-region:no-drag}.settings-modal__back.wb-button{width:var(--wb-icon-size-lg);height:var(--wb-icon-size-lg);border-radius:6px}.settings-modal__back.wb-button .wb-button__icon{width:var(--wb-icon-size-lg);height:var(--wb-icon-size-lg)}.settings-modal__back.wb-button .wb-button__icon svg{fill:none}.settings-modal__title{color:var(--wb-color-text-primary,#000000e6);font-family:PingFang SC;font-size:16px;font-style:normal;font-weight:500;line-height:24px}.settings-modal__close{-webkit-app-region:no-drag}.settings-modal__close.wb-button{width:var(--wb-icon-size-lg);height:var(--wb-icon-size-lg);color:var(--wb-color-text-secondary,#0009);border-radius:6px;flex-shrink:0}.settings-modal__close.wb-button .wb-button__icon{width:var(--wb-icon-size-lg);height:var(--wb-icon-size-lg)}.settings-modal__content{background:var(--wb-bg-secondary);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.settings-modal__panel{padding:0 var(--wb-spacing-6) var(--wb-spacing-6) var(--wb-spacing-3);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:transparent transparent;flex:1;min-height:0;overflow-y:auto}.settings-modal__panel::-webkit-scrollbar{width:4px}.settings-modal__panel::-webkit-scrollbar-track{background:0 0}.settings-modal__panel::-webkit-scrollbar-thumb{border-radius:var(--wb-radius-full);background:0 0}.settings-modal__panel:hover::-webkit-scrollbar-thumb{background:var(--wb-scrollbar-thumb)}.settings-modal__panel:hover::-webkit-scrollbar-thumb:hover{background:var(--wb-scrollbar-thumb-hover)}.settings-modal__panel:hover{scrollbar-color:var(--wb-scrollbar-thumb) transparent}.settings-modal__panel .wb-switch__track{--settings-switch-pin-bg:var(--wb-switch-track-bg);--settings-switch-pin-border:transparent;animation:settings-panel-switch-track-paint var(--wb-motion-duration-fast,.15s)}.settings-modal__panel .wb-switch__thumb{--settings-switch-pin-transform:none;animation:settings-panel-switch-thumb-paint var(--wb-motion-duration-fast,.15s)}.settings-modal__panel .wb-switch__input:checked+.wb-switch__track{--settings-switch-pin-bg:var(--wb-switch-track-bg-checked);--settings-switch-pin-border:var(--wb-switch-track-border-color-checked)}.settings-modal__panel .wb-switch__input:checked+.wb-switch__track .wb-switch__thumb{--settings-switch-pin-transform:translateX(var(--wb-switch-thumb-translate))}.settings-modal__panel .wb-switch--danger .wb-switch__input:checked+.wb-switch__track{--settings-switch-pin-bg:var(--wb-switch-track-bg-danger);--settings-switch-pin-border:var(--wb-switch-track-border-color-danger)}.settings-modal__panel .wb-switch--small .wb-switch__input:checked+.wb-switch__track .wb-switch__thumb{--settings-switch-pin-transform:translateX(var(--wb-switch-thumb-translate-small))}.settings-modal__panel .wb-switch--large .wb-switch__input:checked+.wb-switch__track .wb-switch__thumb{--settings-switch-pin-transform:translateX(var(--wb-switch-thumb-translate-large))}.settings-modal__panel .wb-switch:has(.wb-switch__input:disabled) .wb-switch__track{--settings-switch-pin-bg:var(--wb-switch-track-bg-disabled)}.settings-modal__panel .wb-switch:has(.wb-switch__input:disabled) .wb-switch__input:checked+.wb-switch__track{--settings-switch-pin-bg:var(--wb-switch-track-bg-checked-disabled);--settings-switch-pin-border:transparent}.settings-modal--window .settings-modal__panel{padding-top:var(--wb-spacing-3)}@media (width<=480px){.settings-modal{border-radius:0;flex-direction:column;width:100vw;max-width:100vw;height:100vh;max-height:100vh}.settings-modal__nav{flex-direction:column;flex-shrink:0;width:100%}.settings-modal__panel{padding:20px 16px}}body.wb-mobile-layout .settings-modal-overlay{top:var(--wb-mobile-container-top,0);left:var(--wb-mobile-container-left,0);width:var(--wb-mobile-container-width,100vw);height:var(--wb-mobile-container-height,100dvh);bottom:auto;right:auto}body.wb-mobile-layout .settings-modal{box-sizing:border-box;width:var(--wb-mobile-container-width,100vw);max-width:none;height:var(--wb-mobile-container-height,100dvh);border-radius:0;flex-direction:column;min-height:0;max-height:none}body.wb-mobile-layout .settings-modal__content{display:contents}body.wb-mobile-layout .settings-modal__header{padding:var(--wb-spacing-4) var(--wb-spacing-5);background:var(--wb-color-bg-primary-default);order:0}body.wb-mobile-layout .settings-modal__nav{border-right:none;border-bottom:1px solid var(--wb-color-border-primary);flex:none;order:1;align-items:stretch;gap:0;width:100%;min-height:auto;padding:0;overflow:hidden}body.wb-mobile-layout .settings-modal__panel{min-height:0;padding:var(--wb-spacing-5) var(--wb-spacing-4);flex:auto;order:2;overflow-y:auto}[data-theme=dark] .settings-modal,body.vscode-dark .settings-modal,.vscode-dark .settings-modal,body.dark .settings-modal,.dark .settings-modal,[data-theme=dark] .settings-modal__nav,body.vscode-dark .settings-modal__nav,.vscode-dark .settings-modal__nav,body.dark .settings-modal__nav,.dark .settings-modal__nav,[data-theme=dark] .settings-modal__content,body.vscode-dark .settings-modal__content,.vscode-dark .settings-modal__content,body.dark .settings-modal__content,.dark .settings-modal__content{background:var(--wb-bg-modal)}.settings-navigation{gap:var(--wb-spacing-1);flex-direction:column;width:100%;padding:0;display:flex}.settings-navigation__group{gap:var(--wb-spacing-1);flex-direction:column;display:flex}.settings-navigation__group+.settings-navigation__group{margin-top:var(--wb-spacing-4)}.settings-navigation__group+.settings-navigation__group--about{margin-top:0}.settings-navigation__group-title{box-sizing:border-box;height:28px;padding:0 var(--wb-spacing-4);color:var(--wb-color-text-tertiary);font-size:var(--wb-font-caption-size);line-height:var(--wb-font-caption-line-height);user-select:none;align-items:center;display:flex}.settings-navigation__group-divider{border-top:1px solid var(--wb-color-border-primary,#e5e5e5);flex-shrink:0;width:176px;height:0;margin:10px auto}.settings-navigation__item{align-items:center;gap:var(--wb-spacing-3);width:100%;padding:5px var(--wb-spacing-4);border-radius:var(--wb-radius-lg);color:var(--wb-color-text-primary);font-size:var(--wb-font-body-size);line-height:var(--wb-font-body-line-height);cursor:pointer;text-align:left;transition:background var(--wb-motion-duration-fast) var(--wb-motion-easing-standard), color var(--wb-motion-duration-fast) var(--wb-motion-easing-standard);background:0 0;border:none;display:flex}.settings-navigation__item:hover{background:var(--wb-todo-menu-bg-hover)}.settings-navigation__item--active{background:var(--wb-color-bg-primary-hover)}.settings-navigation__item--active .settings-navigation__icon{color:var(--wb-color-text-primary)}.settings-navigation__item--active:hover{background:var(--wb-color-bg-primary-hover)}[data-theme=dark] .settings-navigation__item--active,body.vscode-dark .settings-navigation__item--active,body.dark .settings-navigation__item--active,.dark .settings-navigation__item--active,[data-theme=dark] .settings-navigation__item--active:hover,body.vscode-dark .settings-navigation__item--active:hover,body.dark .settings-navigation__item--active:hover,.dark .settings-navigation__item--active:hover{background:var(--wb-dropdown-item-bg-hover)}.settings-navigation__icon{width:var(--wb-icon-size-md);height:var(--wb-icon-size-md);color:var(--wb-color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.settings-navigation__icon svg{width:var(--wb-icon-size-md);height:var(--wb-icon-size-md);flex-shrink:0}.settings-navigation__legacy-icon-hidden{display:none}.settings-navigation__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-navigation__red-dot{background:#f54a45;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:-4px}.settings-navigation__badge{color:#fff;background:#f97316;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:11px;font-weight:600;line-height:18px;display:inline-flex}@media (width<=480px){.settings-navigation{border-bottom:1px solid var(--cb-vscode-panel-border,#3c3c3c);flex-direction:row;gap:0;padding:8px;overflow-x:auto}.settings-navigation::-webkit-scrollbar{display:none}.settings-navigation__item{flex:1;justify-content:center;gap:6px;min-width:0;height:36px;padding:0 8px}.settings-navigation__label{font-size:11px}}body.wb-mobile-layout .settings-navigation{overscroll-behavior-x:contain;padding:var(--wb-spacing-2) var(--wb-spacing-3);gap:var(--wb-spacing-1);scrollbar-width:none;flex-direction:row;overflow-x:auto}body.wb-mobile-layout .settings-navigation::-webkit-scrollbar{display:none}body.wb-mobile-layout .settings-navigation__group{gap:var(--wb-spacing-1);flex-direction:row;flex:none;margin-top:0}body.wb-mobile-layout .settings-navigation__group-title{display:none}body.wb-mobile-layout .settings-navigation__item{white-space:nowrap;flex:none;justify-content:center;width:auto;min-width:max-content}body.wb-mobile-layout .settings-navigation__label{white-space:nowrap} .settings-window-root{background:var(--wb-bg-secondary,var(--wb-color-bg-primary,#fff));color:var(--wb-color-text-primary,#1f2329);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.settings-window-root .settings-modal--window{box-shadow:none;border-radius:0;flex:1;width:100vw;max-width:none;height:auto;max-height:none}.settings-window-root .settings-modal--window .settings-modal__nav{margin:0 12px 12px;padding:8px 0 0}.settings-window-root .settings-modal__header{-webkit-app-region:drag}.settings-window-root .settings-modal__header button,.settings-window-root .settings-modal__nav,.settings-window-root .settings-modal__panel{-webkit-app-region:no-drag}.settings-window-chrome{-webkit-app-region:drag;user-select:none;flex:0 0 32px;align-items:center;min-height:32px;padding:0 8px;display:flex}.settings-window-chrome--windows{justify-content:flex-end}.settings-window-close{-webkit-app-region:no-drag;border-radius:var(--wb-radius-2,6px);color:var(--wb-color-text-secondary,#646a73);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.settings-window-close:hover{background:var(--wb-color-fill-hover,#0000000f);color:var(--wb-color-text-primary,#1f2329)}.settings-window-close:active{background:var(--wb-color-fill-active,#0000001a)}.settings-window-loading{background:var(--wb-bg-secondary,var(--wb-color-bg-primary,#fff));flex:1;min-height:0;padding:20px 8px;display:flex}.settings-window-loading__nav{box-sizing:border-box;flex-direction:column;flex:0 0 200px;gap:8px;padding:0 12px;display:flex}.settings-window-loading__content{box-sizing:border-box;flex-direction:column;flex:1;gap:16px;min-width:0;padding:0 12px;display:flex}.settings-window-loading__line,.settings-window-loading__card{background:var(--wb-color-fill-secondary,#0000000e);border-radius:var(--wb-radius-2,6px);animation:1.2s ease-in-out infinite alternate settings-window-loading-pulse}.settings-window-loading__line{width:88%;height:26px}.settings-window-loading__line:first-child{width:42%;height:26px;margin-bottom:8px}.settings-window-loading__nav .settings-window-loading__line:first-child{width:42%;height:26px;margin-bottom:10px}.settings-window-loading__card{width:100%;height:72px}@keyframes settings-window-loading-pulse{0%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion:reduce){.settings-window-loading__line,.settings-window-loading__card{animation:none}}[data-theme=dark] .settings-window-chrome,body.vscode-dark .settings-window-chrome,.vscode-dark .settings-window-chrome,body.dark .settings-window-chrome,.dark .settings-window-chrome{background:var(--wb-bg-modal)}.settings-window-subpage-header{-webkit-app-region:no-drag;align-items:center;gap:var(--wb-spacing-2,4px);padding:var(--wb-spacing-3,8px) var(--wb-spacing-5,16px);border-bottom:1px solid var(--wb-border-subtle,#00000014);flex:none;display:flex}.settings-window-subpage-header__back.wb-button--small .wb-button__icon{width:var(--wb-icon-size-lg);height:var(--wb-icon-size-lg)}.settings-window-subpage-header__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--wb-color-text-primary,#1f2329);font-size:var(--wb-font-body-size,14px);font-weight:var(--wb-font-weight-500,500);flex:1;overflow:hidden}.settings-window-subpage-header__extra{-webkit-app-region:no-drag;margin-left:auto}.settings-window-panel{color:var(--wb-color-text-secondary,#646a73);flex-direction:column;align-items:flex-start;gap:12px;max-width:520px;padding:24px;display:flex}.settings-window-panel h2{color:var(--wb-color-text-primary,#1f2329);margin:0;font-size:20px}.settings-window-panel p{margin:0;font-size:14px;line-height:1.6}[data-theme=dark] .settings-window-root{--wb-color-text-primary:#f2f3f5;--wb-color-text-secondary:#a6a8ad} +.settings-window-root,.settings-modal{--wb-motion-duration-fast:.15s;--wb-motion-easing-standard:cubic-bezier(.4, 0, .2, 1);--wb-bg-secondary:var(--wb-color-bg-secondary-hover-active);--wb-color-border-primary:var(--wb-palette-gray-5);--wb-radius-4xl:24px;--wb-motion-duration-base:.2s;--wb-motion-easing-emphasized:cubic-bezier(.2, 0, 0, 1);--wb-spacing-9:40px;--wb-spacing-4:12px;--wb-spacing-1:2px;--wb-scrollbar-thumb-bg:#0000001f;--wb-spacing-2:4px;--wb-spacing-3:8px;--wb-icon-size-lg:var(--wb-size-5);--wb-color-text-primary:var(--wb-palette-black-100);--wb-color-text-secondary:var(--wb-palette-black-70);--wb-spacing-6:20px;--wb-radius-full:9999px;--wb-scrollbar-thumb:var(--wb-palette-black-20);--wb-scrollbar-thumb-hover:var(--wb-palette-black-30);--wb-switch-track-bg:var(--wb-palette-gray-5);--wb-switch-track-bg-checked:var(--wb-brand-primary);--wb-switch-track-border-color-checked:var(--wb-brand-primary);--wb-switch-thumb-translate:8px;--wb-switch-track-bg-danger:var(--wb-palette-red-9);--wb-switch-track-border-color-danger:var(--wb-palette-red-9);--wb-switch-thumb-translate-small:8px;--wb-switch-thumb-translate-large:12px;--wb-switch-track-bg-disabled:var(--wb-color-bg-primary-default);--wb-switch-track-bg-checked-disabled:var(--wb-color-text-brand-disabled);--wb-spacing-5:16px;--wb-color-bg-primary-default:var(--wb-palette-gray-3);--wb-bg-modal:var(--wb-palette-white-100);--wb-color-text-tertiary:var(--wb-palette-black-50);--wb-font-caption-size:var(--wb-font-size-3);--wb-font-caption-line-height:var(--wb-font-line-height-4-2);--wb-radius-lg:8px;--wb-font-body-size:var(--wb-font-size-5);--wb-font-body-line-height:var(--wb-font-line-height-5-2);--wb-todo-menu-bg-hover:var(--wb-palette-gray-4);--wb-color-bg-primary-hover:var(--wb-palette-gray-4);--wb-dropdown-item-bg-hover:var(--wb-color-palette-gray-3,#f2f2f2);--wb-icon-size-md:var(--wb-size-4);--wb-border-subtle:var(--wb-palette-gray-3);--wb-font-weight-500:500;--wb-color-bg-secondary-hover-active:var(--wb-palette-gray-2);--wb-palette-gray-5:#e6e6e6;--wb-size-5:20px;--wb-palette-black-100:#000;--wb-palette-black-70:#000000b3;--wb-palette-black-20:#0003;--wb-palette-black-30:#0000004d;--wb-brand-primary:var(--wb-palette-brand-8);--wb-palette-red-9:#b42c3f;--wb-color-text-brand-disabled:var(--wb-palette-brand-3);--wb-palette-gray-3:#f2f2f2;--wb-palette-white-100:#fff;--wb-palette-black-50:#00000080;--wb-font-size-3:12px;--wb-font-line-height-4-2:18px;--wb-font-size-5:14px;--wb-font-line-height-5-2:22px;--wb-palette-gray-4:#ebebeb;--wb-size-4:16px;--wb-palette-gray-2:#f7f7f7;--wb-palette-brand-8:#00c29a;--wb-palette-brand-3:#9fe8d9} +:root[data-theme=dark] .settings-window-root,:root[data-theme=dark] .settings-modal{--wb-bg-secondary:var(--wb-palette-gray-2);--wb-color-border-primary:#262626;--wb-scrollbar-thumb-bg:#ffffff1f;--wb-color-text-primary:#fff;--wb-color-text-secondary:#ffffffa6;--wb-scrollbar-thumb:var(--wb-palette-white-20);--wb-scrollbar-thumb-hover:var(--wb-palette-white-30);--wb-switch-track-bg:var(--wb-bg-elevated);--wb-switch-track-bg-checked:var(--wb-brand-primary);--wb-switch-track-border-color-checked:var(--wb-brand-primary);--wb-switch-track-bg-danger:var(--wb-palette-red-9);--wb-switch-track-border-color-danger:var(--wb-palette-red-9);--wb-switch-track-bg-disabled:var(--wb-palette-gray-5);--wb-switch-track-bg-checked-disabled:var(--wb-palette-brand-4);--wb-color-bg-primary-default:var(--wb-palette-gray-3);--wb-bg-modal:var(--wb-palette-gray-1);--wb-color-text-tertiary:#ffffff80;--wb-todo-menu-bg-hover:color-mix(in srgb, var(--wb-palette-white-100) 8%, transparent);--wb-color-bg-primary-hover:var(--wb-palette-gray-4);--wb-dropdown-item-bg-hover:#2e2e2e;--wb-border-subtle:color-mix(in srgb, var(--wb-palette-white-100) 6%, transparent);--wb-color-bg-secondary-hover-active:var(--wb-palette-gray-2);--wb-palette-gray-5:#3a3a3a;--wb-palette-black-100:#000;--wb-palette-black-70:#000000b3;--wb-palette-black-20:#0003;--wb-palette-black-30:#0000004d;--wb-brand-primary:var(--wb-palette-brand-7);--wb-palette-red-9:#dc4258;--wb-color-text-brand-disabled:#3dd9b659;--wb-palette-gray-3:#1f1f1f;--wb-palette-white-100:#fff;--wb-palette-black-50:#00000080;--wb-palette-gray-4:#242424;--wb-palette-gray-2:#292929;--wb-palette-brand-8:#4cf0ce;--wb-palette-brand-3:#185f51} diff --git a/src/renderer/src/components/source-appearance-panel-recovered.css b/src/renderer/src/components/source-appearance-panel-recovered.css new file mode 100644 index 0000000..729850b --- /dev/null +++ b/src/renderer/src/components/source-appearance-panel-recovered.css @@ -0,0 +1,4 @@ +/* REA ev_24ab58532d4ece0d79f35c8c7d4cb14f5611a7405cdf747c4698e6184bea7d99; appearance-DMmhwsxq.css sha256=af58cb3134d3e6c474424f6d718daa8f5be0c6e29d40aa5f9f80c14b3ffbbbd2; tokens sha256=13f2bf82c96e5167a7d7098e36950c6c22c475b3337dbb8bb29ad2fe79cde696. */ +.appearance-panel{box-sizing:border-box;height:calc(100% + 20px);color:var(--wb-text-strong);flex-direction:column;margin-bottom:-20px;display:flex;overflow:hidden}.appearance-panel--loading,.appearance-panel--empty{color:var(--wb-text-medium);justify-content:center;align-items:center;font-size:13px}.appearance-panel__body{border-top-left-radius:12px;border-top-right-radius:12px;flex-direction:column;flex:1;min-height:0;margin-left:4px;display:flex}.appearance-layout{flex-direction:column;flex:1;min-height:0;display:flex}.appearance-preview{aspect-ratio:2;background:linear-gradient(to bottom, var(--wb-todo-menu-bg-active), color-mix(in srgb, var(--wb-todo-menu-bg-active) 70%, transparent));border-radius:12px;flex-shrink:0;justify-content:center;width:100%;max-height:72%;padding-top:7.3%;display:flex;position:relative;overflow:hidden}.appearance-preview__image{object-fit:cover;object-position:top;border-radius:8px 8px 0 0;width:77%;box-shadow:0 4px 16px #0000001f}.appearance-preview__image--empty{background:var(--wb-bg-primary)}.appearance-preview__loading{background:color-mix(in srgb, var(--wb-bg-primary) 35%, transparent);cursor:progress;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.appearance-list__header{flex-shrink:0;align-items:baseline;gap:8px;padding-top:24px;padding-bottom:12px;display:flex}.appearance-list__title{color:var(--wb-text-strong);font-size:14px;font-weight:600}.appearance-list__desc{color:var(--wb-text-medium);font-size:12px}.appearance-list{scrollbar-width:thin;scrollbar-color:var(--wb-border-default) transparent;flex:1;min-height:0;overflow-y:auto}.appearance-list::-webkit-scrollbar{width:4px}.appearance-list::-webkit-scrollbar-track{background:0 0}.appearance-list::-webkit-scrollbar-thumb{background:var(--wb-border-default);border-radius:2px}.appearance-panel__load-error{border:1px solid var(--wb-border-default);background:var(--wb-bg-card);color:var(--wb-text-medium);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.appearance-card-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px 8px;padding:4px 4px 0;display:grid}.appearance-card-cell{flex-direction:column;gap:4px;min-width:110px;max-width:166px;display:flex}.appearance-card{aspect-ratio:3/2;cursor:pointer;box-sizing:border-box;background-position:50%;background-size:cover;border:none;border-radius:10px;width:100%;padding:0;transition:outline-color .15s,box-shadow .15s;position:relative;overflow:hidden}.appearance-card--light{background-color:#ebebeb;box-shadow:inset 0 0 0 1px #e6e8ed}.appearance-card--dark{background-color:#000000bf}.appearance-card--trial{cursor:pointer}.appearance-card:not(.appearance-card--selected):hover{box-shadow:0 2px 8px #0000001f}.appearance-card--light:not(.appearance-card--selected):hover{box-shadow:inset 0 0 0 1px #e6e8ed,0 2px 8px #0000001f}.appearance-card--selected{outline:2px solid var(--wb-color-text-solid,#000);outline-offset:2px}.appearance-card--coming-soon{cursor:default;outline-offset:-1px;background-color:#ebebeb;justify-content:center;align-items:center;display:flex}.appearance-card--coming-soon:hover{box-shadow:none}.appearance-card__name{color:var(--wb-text-strong);text-align:center;font-size:12px;font-weight:400;line-height:18px}.appearance-card--selected~.appearance-card__name{font-weight:600}.appearance-card__coming-soon-text{color:#0000004d;font-size:12px}[data-theme=dark] .appearance-card--selected{outline-color:var(--wb-color-text-on-bg-default,#fff)}.appearance-badge{border-radius:100px;align-items:center;height:18px;padding:0 8px;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;line-height:18px;display:inline-flex}.appearance-badge--free,.appearance-badge--pro{color:#000000b3;background:#fffc}.appearance-badge--advanced{color:#fff;background:#0009}.appearance-badge--ultimate{color:#ffd989;background:#000000b3}.appearance-badge--validity{color:#fff;background:#0006;height:20px;font-weight:400}.appearance-preview .appearance-badge--validity{position:absolute;top:8px;right:8px}.appearance-card .appearance-badge{position:absolute;top:6px;right:6px}.appearance-upgrade-bar{background:var(--wb-bg-card);border-radius:12px 12px 0 0;flex-direction:column;flex-shrink:0;gap:4px;padding:24px;animation:.2s appearance-upgrade-bar-in;display:flex;box-shadow:0 -4px 32px #00000014}.appearance-upgrade-bar__head{align-items:center;gap:8px;display:flex}.appearance-upgrade-bar__title{color:var(--wb-text-strong);font-size:16px;font-weight:600;line-height:21px}.appearance-upgrade-bar__actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.appearance-upgrade-bar__desc{color:var(--wb-text-weak);font-size:14px;line-height:22px}.appearance-upgrade-bar__btn{border-radius:8px;flex-shrink:0;height:32px;padding:0 16px;font-size:14px;font-weight:600} +.appearance-panel{--wb-text-strong:var(--wb-color-text-primary);--wb-text-medium:var(--wb-color-text-secondary);--wb-todo-menu-bg-active:var(--wb-palette-gray-5);--wb-bg-primary:var(--wb-palette-white-100);--wb-border-default:color-mix(in srgb, var(--wb-palette-black-100) 8%, transparent);--wb-bg-card:var(--wb-palette-white-100);--wb-color-text-solid:var(--wb-palette-black-100);--wb-text-weak:var(--wb-color-text-tertiary);--wb-color-text-primary:var(--wb-palette-black-100);--wb-color-text-secondary:var(--wb-palette-black-70);--wb-palette-gray-5:#e6e6e6;--wb-palette-white-100:#fff;--wb-palette-black-100:#000;--wb-color-text-tertiary:var(--wb-palette-black-50);--wb-palette-black-70:#000000b3;--wb-palette-black-50:#00000080} +:root[data-theme=dark] .appearance-panel{--wb-text-strong:var(--wb-color-text-primary);--wb-text-medium:var(--wb-color-text-secondary);--wb-todo-menu-bg-active:color-mix(in srgb, var(--wb-palette-white-100) 12%, transparent);--wb-bg-primary:var(--wb-palette-gray-3);--wb-border-default:color-mix(in srgb, var(--wb-palette-white-100) 14%, transparent);--wb-bg-card:#242424;--wb-color-text-solid:var(--wb-palette-white-100);--wb-text-weak:var(--wb-color-text-tertiary);--wb-color-text-primary:#fff;--wb-color-text-secondary:#ffffffa6;--wb-palette-gray-5:#3a3a3a;--wb-palette-white-100:#fff;--wb-palette-black-100:#000;--wb-color-text-tertiary:#ffffff80;--wb-palette-black-70:#000000b3;--wb-palette-black-50:#00000080} diff --git a/src/renderer/src/components/source-appearance-panel.css b/src/renderer/src/components/source-appearance-panel.css new file mode 100644 index 0000000..29a5f9e --- /dev/null +++ b/src/renderer/src/components/source-appearance-panel.css @@ -0,0 +1,19 @@ +@import './source-appearance-panel-recovered.css'; + +/* + * 本地适配(与 REA 回收的原版规则一一对应): + * + * 1. 原版深色选择器是 html 上的 `.dark` / `[data-cb-theme=dark]`(REA 证据里 html.class 从 + * `light cb-light vscode-light` 变为 `dark cb-dark vscode-dark`),YCode 用 `[data-theme=dark]`, + * recover-appearance-panel.mjs 已在投影时改写。 + * 2. 原版把整套 `--wb-*` 设计变量放在全局 :root,YCode 按既有约定收敛到面板作用域(见恢复脚本)。 + * 3. 原版外观页只随主题切换换预览图;YCode 只提供 浅色/深色 两张卡,网格仍用原版的 + * repeat(auto-fill, minmax(110px, 1fr)),因此两张卡与首屏位置一致。 + * 4. 原版 `.appearance-panel{height:calc(100% + 20px);margin-bottom:-20px}` 是刻意的: + * 它抵消 `.settings-modal__panel` 的 20px 底部内边距,让预览卡贴到窗口底边(原版实测 + * 面板高 640 = 内容盒 620 + 20)。这里保持原值,不做本地覆盖。 + * 5. 恢复的 appearance-DMmhwsxq.css 只给 `.appearance-list__title` 设了字号/字重,没有行高; + * 原版该标题的行盒是 20px(标题 bounds 20 高,表头 24+20+12 = 56 高,见 REA ev_dee8f184…)。 + * YCode 继承的行高是 22px(会把表头撑成 58),因此按原版实测补一行 20px 行高。 + */ +.appearance-list__title { line-height: 20px }