aboutsummaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* refactor(theme-studio): derive the gate list and sentinel the samples splitCraig Jennings3 days3-2/+7
| | | | | | run-tests.sh built its browser-gate list by hand, so a new gate could go unrun or a removed one stay listed (that drift hid the #familytest alias). It now derives the list from the gate blocks in browser-gates.js. generate.py split samples.py on the first "cols=" substring to import only the data section, which would truncate at the wrong place if "cols=" ever appeared earlier. Both sides now use an explicit THEME_STUDIO_DATA_END marker.
* refactor(theme-studio): extract the shared package-preview wrapperCraig Jennings3 days2-40/+46
| | | | The 20 line-based renderXxxPreview functions each ended with a byte-identical monospace-pre wrapper. They now build their L array and return previewLines(L), so the wrapper lives in one place and can't drift across the family.
* refactor(theme-studio): spec-table the bespoke apps, guard the palette dedupCraig Jennings3 days1-23/+28
| | | | The bespoke APPS dict was 21 hand-repeated lines of the same shape. It's now a (key, label, preview, FACES, prefix, SEED) spec list turned into the dict by one comprehension, so adding an app is one row. add_palette_color's dedup set tolerates a palette row with no name slot instead of indexing past its end.
* chore(theme-studio): remove dead code and clear a type warningCraig Jennings3 days8-199/+7
| | | | | | | | | - ramp (app-core.js) and its test-ramp.mjs: superseded by regenColumn, no production caller. - optList (app-core.js) and its tests: superseded by paletteOptionList. - ITALIC in generate.py: computed, never read (ITALIC_MAP is the live one). - a stray empty string in MU4E_FACES that .split() silently dropped. - the dead #familytest alias in the columntest gate, which HASHES never listed. - widen face_rows to Sequence[str], clearing the list-invariance warnings on the APPS calls.
* fix(theme-studio): make broken browser gates fail instead of silently passingCraig Jennings3 days3-9/+17
| | | | | | run-tests.sh scored each browser gate by grepping the dumped DOM for the gate name and taking the first match. A gate that throws before setting its verdict left its own inlined source as the first match, and that source, "GATENAME '+(ok?'PASS':'FAIL')", contains the literal PASS, so the run reported green for a gate that never produced a verdict. The matcher now requires a resolved "GATENAME PASS" or "GATENAME FAIL". That exposed two gates that had been throwing unnoticed. baseedittest still referenced fam after the variable was renamed to column, so it ReferenceError'd. columntest read getComputedStyle on a palette chip captured before a re-render detached it, so the match returned null and threw. baseedittest now uses column, and columntest re-queries the live chip by its selection index.
* fix(theme-studio): hold the package preview heightCraig Jennings3 days2-2/+2
| | | | Selecting a compact package (auto-dim, with a 2-row face table and a short preview) collapsed the package section and shortened the page. A 60vh floor on the preview keeps the section sized to the largest of the columns, the preview, or that floor, so switching packages no longer shrinks the page.
* fix(theme-studio): name exported themes from the source filenameCraig Jennings3 days2-5/+7
| | | | The converter took the theme name from the JSON's internal name field, so every draft whose field read "theme" overwrote theme-theme.el. It now uses the JSON file's basename, so WIP.json becomes WIP-theme.el and each draft lands under its own name. The reload target derives the load name from the basename too, and a regression test pins it: the filename wins over the internal field.
* feat(theme-studio): auto-dim split previewCraig Jennings3 days8-5/+142
| | | | | | | | auto-dim-other-buffers is a package face, not a theme face, so build-inventory.el (it scans only elpa/straight packages) never listed it and the studio couldn't theme it. This adds it as a bespoke app. The preview is a vertical split: the focused window on the left in real syntax colors, the same code on the right collapsed to the single auto-dim-other-buffers face, the way Emacs renders a non-selected window. Both panes follow the language selector. A trailing row shows auto-dim-other-buffers-hide, whose foreground matches the background so it vanishes when dimmed. A #autodimtest gate covers the split, the uniform recolor, and language sync.
* fix(theme-studio): keep dropdown color names legibleCraig Jennings3 days3-3/+32
| | | | | | The color-picker popup colored each row's name and hex for contrast against the swatch, but the rows sit on the popup's fixed dark background. A mid or dark swatch (the blues past blue-1) got near-black text that vanished on the dark popup. The text now inherits the popup foreground for every real palette color. Only the solid "default" row, whose background is the color itself, still contrasts against its own fill. I moved the decision into dropdownRowTextColor with unit coverage, including a dark-swatch regression case.
* chore(theme-studio): drop scratch theme JSONs, ignore working artifactsCraig Jennings3 days5-43430/+0
| | | | Remove the distinguished-revised, distinguished-test, dupre-rebuild, dupre-revised, and sterling2 experiment snapshots, and ignore WIP.json and themes/theme-theme.el so working scratch stays out of the tree.
* feat(theme-studio): make targets for the build-theme converterCraig Jennings3 days1-1/+34
| | | | theme-studio-theme converts a Theme Studio JSON export to themes/<name>-theme.el. theme-studio-theme-load disables the custom themes and loads one in the running Emacs. theme-studio-theme-reload chains the two. Each delegates to the scripts/theme-studio/Makefile and errors clearly when its required JSON or THEME argument is missing.
* feat(theme-studio): palette generator and preview fidelityCraig Jennings3 days15-503/+2953
| | | | | | | | | | Two strands land together because the generated theme-studio.html bundles every source file into one page and can't be split cleanly. The palette generator is a preview-first panel: palette-generator-core.js plans the palette and palette-generator-ui.js draws it. Generated colors stay inspectable and tunable through the existing selector, and committing one creates a normal base column. It adds source-mode and scheme controls, a configurable accent count, and color names from color-names.json. For preview fidelity, syntax and UI colors now resolve through the real Emacs inherit chains, so the preview matches how Emacs renders the theme. resolveSyntaxFg pins dec to ty (Emacs has no decorator face) and otherwise follows comment-delimiter to comment, doc to string, property to variable, function-call to function-name. resolveUiAttr walks mode-line-inactive to mode-line and line-number-current-line to line-number. The decorator label now reads "decorator to type" to match the type face Emacs uses for it. Design recorded in the two theme-studio specs under docs/.
* Update theme studio palette workflowCraig Jennings4 days28-1792/+51998
|
* Add theme studio box color controlsCraig Jennings4 days5-32/+75
|
* Shorten theme studio reset erase labelsCraig Jennings4 days5-33/+32
|
* Clarify theme studio reset and erase actionsCraig Jennings4 days5-38/+83
|
* Add theme studio face color step arrowsCraig Jennings4 days7-30/+158
|
* Preview selected theme studio chip while pickingCraig Jennings4 days4-12/+40
|
* Change theme studio spans to endpoint divisionsCraig Jennings4 days6-35/+72
|
* Remove theme studio save buttonCraig Jennings4 days4-29/+10
|
* Fix theme studio span endpoint tilesCraig Jennings4 days7-31/+57
|
* Sort theme studio dropdown colors by lightnessCraig Jennings4 days4-8/+38
|
* Fix theme studio ground endpoint editCraig Jennings4 days3-6/+28
|
* Fix theme studio fg endpoint selectionCraig Jennings4 days3-6/+30
|
* Refine theme studio tile name editingCraig Jennings4 days5-8/+43
|
* Make theme studio column delete saferCraig Jennings4 days5-10/+31
|
* Add theme studio Rust and Zig samplesCraig Jennings4 days5-4/+95
|
* Add theme studio column deleteCraig Jennings4 days7-12/+103
|
* Refactor theme studio palette testsCraig Jennings4 days9-679/+835
|
* Add theme studio palette clear and lock togglesCraig Jennings4 days3-10/+112
|
* Fix theme studio ground column orderCraig Jennings4 days2-12/+34
|
* Fix theme studio bg-prefixed span inferenceCraig Jennings4 days4-12/+26
|
* Fix theme studio style button stateCraig Jennings4 days2-2/+26
|
* Fix theme studio bg-like imported colorsCraig Jennings4 days5-44/+111
|
* Add theme studio column selection and reorder controlsCraig Jennings4 days3-10/+120
|
* Set theme studio default picker colorCraig Jennings4 days3-12/+14
|
* Group numeric color names by stemCraig Jennings4 days5-4/+16
|
* Treat legacy color names as base columnsCraig Jennings4 days5-4/+28
|
* Split theme studio generator data and templateCraig Jennings4 days4-384/+394
|
* Add theme studio default face drift summaryCraig Jennings4 days3-1/+102
|
* Pin theme studio preview links and column exportsCraig Jennings4 days4-10/+58
|
* Add theme studio generated file checkCraig Jennings4 days2-1/+12
|
* Rename theme studio column browser gateCraig Jennings4 days4-10/+10
|
* Pin theme studio generated defaultsCraig Jennings4 days1-0/+32
|
* Refactor theme studio face assemblyCraig Jennings4 days8-61/+205
|
* Rename theme studio color model to columnsCraig Jennings4 days5-187/+187
|
* Guard theme studio package face coverageCraig Jennings4 days1-0/+35
|
* Extract theme studio default face adapterCraig Jennings4 days3-81/+203
|
* Update theme studio color columns and defaultsCraig Jennings4 days10-460/+30503
|
* chore(theme-studio): record verification passes, file preview-fix tasksCraig Jennings6 days1-415/+584
| | | | Five manual checks verified, closing the contrast-cell and preview-bg bugs. An audit of the bespoke previews found three face mislinks (org headline-todo, erc input/default swap, flycheck delimiter swap) — filed with picker-visibility and Rust+Zig sample tasks. WIP theme picks up the revised steel selections.