diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-09 12:33:51 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-09 12:33:51 -0500 |
| commit | 85c1fcf7925f5d74bbbe8e36c56ee18f7f1314ec (patch) | |
| tree | 1e198067ad0438ee7eab26f1025ef40e5208b67c /scripts/theme-studio/test-app-core.mjs | |
| parent | 126a4e977cbde3b4e91823cd1ea126d054a51be1 (diff) | |
| download | dotemacs-85c1fcf7925f5d74bbbe8e36c56ee18f7f1314ec.tar.gz dotemacs-85c1fcf7925f5d74bbbe8e36c56ee18f7f1314ec.zip | |
feat(theme-studio): add a real, exported :box face attribute
The mode-line box in the preview was hardcoded — it showed a box the generated theme couldn't actually produce, since build-theme.el never emitted :box. Made :box a real face attribute instead: a per-face box object (style line/raised/pressed, width, color) stored on UI and package faces, set from a "box" dropdown in both tables, rendered from the attribute everywhere (the mode-line bars, the package previews via ofs, the UI table preview cells), and exported through build-theme.el's --attrs as a proper :box plist (released/pressed → :style *-button; line → :line-width + optional :color). The hardcoded box is gone; mode-line and mode-line-inactive now default to the released-button box that is the Emacs default, so the preview and the export agree.
This also gives the package faces that genuinely use :box a way to represent it — the face audit found several (magit-branch-current/-remote-head, two flycheck list faces, the telega button family, ~15 slack button/dialog faces).
Tests: build-theme gains box-conversion + ui-box-emit ERT tests (24/24); the app-core deep-equal tests account for the new box slot; all 9 browser gates, 20 python, and 55 node tests stay green.
Diffstat (limited to 'scripts/theme-studio/test-app-core.mjs')
| -rw-r--r-- | scripts/theme-studio/test-app-core.mjs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scripts/theme-studio/test-app-core.mjs b/scripts/theme-studio/test-app-core.mjs index 9bf5145f..16202525 100644 --- a/scripts/theme-studio/test-app-core.mjs +++ b/scripts/theme-studio/test-app-core.mjs @@ -62,7 +62,7 @@ test('buildPkgmap: Boundary — a face with no default dict still seeds blank', const m = buildPkgmap({ a: { faces: [['f', 'f']] } }, PAL); assert.deepEqual(m.a.f, { fg: null, bg: null, bold: false, italic: false, underline: false, - strike: false, inherit: null, height: 1, source: 'default', + strike: false, inherit: null, height: 1, box: null, source: 'default', }); }); @@ -117,7 +117,7 @@ test('mergePackagesInto: Normal — fills missing fields with defaults', () => { mergePackagesInto(m, { a: { f: { fg: '#112233' } } }); assert.deepEqual(m.a.f, { fg: '#112233', bg: null, bold: false, italic: false, underline: false, - strike: false, inherit: null, height: 1, source: 'user', + strike: false, inherit: null, height: 1, box: null, source: 'user', }); }); |
