diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-09 05:16:00 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-09 05:16:00 -0500 |
| commit | d947944bbe358f1a50c58b97a129642e68b7e7c5 (patch) | |
| tree | 1be76039a0738778a2287101fc26b4e84e0068a0 /scripts/theme-studio/generate.py | |
| parent | 947d146a9692c8b17aca92b3e66772611ac3b598 (diff) | |
| download | dotemacs-d947944bbe358f1a50c58b97a129642e68b7e7c5.tar.gz dotemacs-d947944bbe358f1a50c58b97a129642e68b7e7c5.zip | |
refactor(theme-studio): unify the syntax table onto the shared sort
The syntax table had its own sort (srt + a D{} direction map) that read state directly — MAP[kind] for the color column, cell text for elements. The UI and package tables used a separate, more general system (srtTable / cellVal / applyTableSort) that reads the rendered cells. Pointed the syntax headers at srtTable('legbody', col) and deleted srt, so all three tables share one sort.
The mapping is exact: the legtable color cell is a swatch dropdown whose data-val is the hex, which cellVal reads — same key srt sorted on — and the elements cell is text. First-click direction stays ascending. The syntax table sorts on click only; it doesn't opt into the cross-rebuild persistence the UI and package tables get from applyTableSort, which preserves its prior behavior.
Added a #sorttest gate: sort was previously untested, and this collapses two systems into one. It checks the syntax table sorts by color ascending, reverses on a second click, sorts by element name, and that the UI and package tables still sort. The asc/desc pair is self-validating — a no-op sort can't pass both.
Diffstat (limited to 'scripts/theme-studio/generate.py')
| -rw-r--r-- | scripts/theme-studio/generate.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/theme-studio/generate.py b/scripts/theme-studio/generate.py index aab8acaa..0b23bc69 100644 --- a/scripts/theme-studio/generate.py +++ b/scripts/theme-studio/generate.py @@ -461,7 +461,7 @@ STYLES_CSS</style> <div class="cols"> <section class="pane"> <div class="legctl"><button class="fbtn" onclick="clearUnlocked()" title="reset every unlocked element to default (reads as plain foreground text); locked rows are left untouched">clear unlocked</button></div> - <table class="leg" id="legtable"><thead><tr><th onclick="srt(1)">elements △</th><th title="lock a decided element↔color association"></th><th onclick="srt(0)">color △</th><th>style</th><th title="WCAG contrast of this color on the background">contrast</th><th>example</th></tr></thead><tbody id="legbody"></tbody></table> + <table class="leg" id="legtable"><thead><tr><th onclick="srtTable('legbody',0)">elements △</th><th title="lock a decided element↔color association"></th><th onclick="srtTable('legbody',2)">color △</th><th>style</th><th title="WCAG contrast of this color on the background">contrast</th><th>example</th></tr></thead><tbody id="legbody"></tbody></table> </section> <section class="pane grow"> <div class="langbar"><label style="color:#b4b1a2">language</label><select id="langsel" class="chip" style="width:auto;font:bold 10pt monospace" onchange="renderCode()"></select></div> |
