diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-02 14:15:42 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-02 14:15:42 -0400 |
| commit | 38d41d7d9ae616dd54f37c18f4d999dc1501d063 (patch) | |
| tree | abd7f7e0592543f7e9ff2e211fa5896b0e324cd6 /scripts/theme-studio/previews.js | |
| parent | 4b42c0bff82cddb45ac7c5dc3b9febffac03145f (diff) | |
| download | dotemacs-38d41d7d9ae616dd54f37c18f4d999dc1501d063.tar.gz dotemacs-38d41d7d9ae616dd54f37c18f4d999dc1501d063.zip | |
feat(theme-studio): scenes for tmr, wttrin, alert, org-superstar, nerd-icons-completion
tmr shows the list view and tmr-tabulated-view with every column face; wttrin the weather buffer with staleness header, key hints, and the stale modeline lighter; alert one line per severity; org-superstar the bullet swap across levels plus list items; nerd-icons-completion folder icons in the dir face. Phase 4 of the preview run — all 13 small-scene apps now sit in the face-coverage gate.
Diffstat (limited to 'scripts/theme-studio/previews.js')
| -rw-r--r-- | scripts/theme-studio/previews.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/theme-studio/previews.js b/scripts/theme-studio/previews.js index f9c21c37..a5134e7b 100644 --- a/scripts/theme-studio/previews.js +++ b/scripts/theme-studio/previews.js @@ -849,6 +849,57 @@ function renderFlyspellCorrectPreview(){const a='flyspell-correct',L=[]; L.push(''); L.push(' 1 the 2 tech 3 ten [s]ave [a]ccept s[k]ip'); return previewLines(L);} +function renderTmrPreview(){const a='tmr',L=[],o=(f,t)=>os(a,'tmr-'+f,t); + // The echo/list presentation plus tmr-tabulated-view's column faces. + L.push('M-x tmr-view — active timers:'); + L.push(' '+o('start-time','10:00')+' → '+o('end-time','10:25')+' '+o('duration','25m')+' '+o('description','Tea steeping')); + L.push(' '+o('start-time','09:30')+' → '+o('end-time','09:55')+' '+o('duration','25m')+' '+o('finished','Pomodoro — finished')); + L.push(' '+o('must-be-acknowledged','Backup verify — must acknowledge')); + L.push(' '+o('is-acknowledged','✔ acknowledged')); + L.push(''); + L.push('tmr-tabulated-view — same timers as a table:'); + L.push(' Start End Remaining Description Ack'); + L.push(' '+o('tabulated-start-time','10:00')+' '+o('tabulated-end-time','10:25')+' '+o('tabulated-remaining-time','12m')+' '+o('tabulated-description','Tea steeping')+' '); + L.push(' '+o('tabulated-start-time','09:30')+' '+o('tabulated-end-time','09:55')+' '+o('tabulated-remaining-time','done')+' '+o('tabulated-description','Pomodoro')+' '+o('tabulated-acknowledgement','✔')); + return previewLines(L);} +function renderWttrinPreview(){const a='wttrin',L=[],o=(f,t)=>os(a,'wttrin-'+f,t); + L.push('*wttrin* — Austin, Texas:'); + L.push(''); + L.push(' '+o('staleness-header','⚠ fetched 42 minutes ago — press g to refresh')); + L.push(' Weather report: Austin, Texas'); + L.push(' ☀ +33°C, wind ↗ 11 km/h, humidity 58%'); + L.push(''); + L.push(' '+o('instructions','Press ')+o('key','g')+o('instructions',' to refresh, ')+o('key','c')+o('instructions',' to change city, ')+o('key','q')+o('instructions',' to quit')); + L.push(''); + L.push('the modeline lighter once the data goes stale:'); + L.push(' '+o('mode-line-stale','[wttr: 33° stale]')); + return previewLines(L);} +function renderAlertPreview(){const a='alert',L=[],o=(f,t)=>os(a,'alert-'+f,t); + L.push('alert.el notifications, one per severity:'); + L.push(''); + L.push(' '+o('urgent-face','build broken on main — fix before anything else')); + L.push(' '+o('high-face','battery at 5%, plug in now')); + L.push(' '+o('moderate-face','meeting with Nerses in 10 minutes')); + L.push(' '+o('normal-face','tmr: Tea steeping finished')); + L.push(' '+o('low-face','emms: now playing Waltz for Debby')); + L.push(' '+o('trivial-face','package refresh finished, 3 upgrades')); + return previewLines(L);} +function renderOrgSuperstarPreview(){const a='org-superstar',L=[],o=(f,t)=>os(a,'org-superstar-'+f,t); + L.push(';; org-superstar swaps *s for pretty bullets:'); + L.push(''); + L.push(o('first','◉')+' Theme work · org-superstar-first, level 1'); + L.push(o('leading','·')+o('header-bullet','○')+' Studio previews · leading + header-bullet'); + L.push(o('leading','··')+o('header-bullet','✸')+' Minibuffer stack scene'); + L.push(' '+o('item','‣')+' a plain list item gets org-superstar-item'); + return previewLines(L);} +function renderNerdIconsCompletionPreview(){const a='nerd-icons-completion',L=[]; + L.push('C-x C-f — completion candidates get a leading icon;'); + L.push('directories draw theirs with the dir face:'); + L.push(''); + L.push(' '+os(a,'nerd-icons-completion-dir-face','')+' scripts/'); + L.push(' '+os(a,'nerd-icons-completion-dir-face','')+' modules/'); + L.push(' app.js · file icons keep their own nerd-icons faces'); + return previewLines(L);} function renderAiTermPreview(){const a='ai-term',L=[]; // What these faces actually paint: the Claude Code TUI inside an agent // terminal. The banner is the fixed accent (every session); each /color |
