diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-09 05:07:26 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-09 05:07:26 -0500 |
| commit | 06595262c702f2d2e51ec70f9c86fa1cc9a433ac (patch) | |
| tree | 306659ae49839aa175cacf711db4c400ff61767c /todo.org | |
| parent | aee14bff856cc7ae41fbd59ba7487495210d722b (diff) | |
| download | dotemacs-06595262c702f2d2e51ec70f9c86fa1cc9a433ac.tar.gz dotemacs-06595262c702f2d2e51ec70f9c86fa1cc9a433ac.zip | |
chore(todo): close theme-studio refactor Stage 2 (unify dropdowns)
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -186,8 +186,8 @@ Added the =#locktest= browser gate first (commit d04f44dd): it pins, across all Then extracted the =<style>= block to =styles.css= and the =<script>= body to =app.js= (commit eaf16904), inlined by =generate.py= through STYLES_CSS / APP_JS placeholders the same way =colormath.js= is. Used =ast= to pull the resolved string value so the escapes (single vs doubled backslashes) survive the move — the generated page is byte-identical to before. =generate.py= dropped 1378 → ~500 lines (the remaining bulk is the package face-data dicts; Stage 6 may data-file those). Two integrity tests guard the splice: styles.css inlines verbatim, app.js reaches the page as =fill_data= renders it; both go red if the wiring is dropped. Gate green: 12 python templating tests, 25 node tests, spliced-script =node --check=, all 7 hash gates. =node --check app.js= passes standalone (placeholders are valid JS identifiers). The escaping-bug class is gone — =str.replace= is literal, so the JS no longer lives inside a Python string. -*** TODO Stage 2 — unify the color dropdowns :solo: -Delete native =colorDropdown= (UI + package tables, the unreliable-swatch one); route those through =mkColorDropdown= so all three tiers use the swatch dropdown. Gate: hash gates green; UI/pkg show swatches. +*** 2026-06-09 Tue @ 05:07:10 -0500 Stage 2 — unified color dropdowns on the swatch picker +Deleted native =colorDropdown=; routed UI + package fg/bg through =mkColorDropdown= so all three tiers show real swatches (commit aee14bff). The inherit column stays a select — it picks a face name, not a color. Pulled the option-list build into a shared =ddList= helper (default + palette + "(gone)" entry), replacing the inline copy in the syntax table. Preserved value-based sort: the swatch dropdown now exposes =data-val= and =cellVal= reads it. Updated =#locktest='s UI assertion to the div lock path (data-locked). Verified via headless DOM: legbody 21 cdd / 0 select, uibody 40 cdd / 0 select, pkgbody 176 cdd + 88 inherit selects. All gates green. *** TODO Stage 3 — extract shared row/cell helpers :solo: Three table builders duplicate scaffolding: the B/I/U/S style-button loop (3x), the contrast→ratingColor→rating cell (5x), the name/lock/color row pattern. Extract =mkStyleButtons=, =mkContrastCell=, a row scaffold (=mkLockCell= is the model). Node-unit-test the pure pieces. Gate: tables identical; hash gates green. *** TODO Stage 4 — unify the two sort systems :solo: |
