aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/previews.js
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-02 10:44:51 -0400
committerCraig Jennings <c@cjennings.net>2026-07-02 10:44:51 -0400
commitc3e183da48cc6c807b301a25c91fc0eaaec89a14 (patch)
tree8ca31e5202cfc261c0beae6eb30f221b18b47c6d /scripts/theme-studio/previews.js
parent75cf36183811a1a9208baf6d75b56c274debebca (diff)
downloaddotemacs-c3e183da48cc6c807b301a25c91fc0eaaec89a14.tar.gz
dotemacs-c3e183da48cc6c807b301a25c91fc0eaaec89a14.zip
feat(theme-studio): register the ai-term agent-color faces
The nine ai-term faces (the bypass-banner accent plus one per Claude Code /color name) join the studio as a bespoke app, seeded with their dupre hues. The preview mirrors what they paint: the banner line and a mock input box per session color. Tuning one here recolors live agents on their next redraw.
Diffstat (limited to 'scripts/theme-studio/previews.js')
-rw-r--r--scripts/theme-studio/previews.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/scripts/theme-studio/previews.js b/scripts/theme-studio/previews.js
index 658da370..378d550a 100644
--- a/scripts/theme-studio/previews.js
+++ b/scripts/theme-studio/previews.js
@@ -500,6 +500,19 @@ function renderNovReadingPreview(){
let h='<div style="padding:14px 16px;display:flex;flex-direction:column;gap:18px;align-items:center">';
for(const row of base)h+=novReadingPage(a,row[0],row[1]);
return h+'</div>';}
+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
+ // session color draws the input-box rules and prompt.
+ L.push(os(a,'cj/ai-term-accent','⏵⏵ bypass permissions on (shift+tab to cycle)')+' · the fixed banner, every agent');
+ const names=['red','blue','green','yellow','purple','orange','pink','cyan'];
+ for(const n of names){
+ L.push('');
+ L.push(os(a,'cj/ai-term-color-'+n,'──────────────────────────────────────────')+' /color '+n);
+ L.push(os(a,'cj/ai-term-color-'+n,'❯')+' implement the feature, then run the tests');
+ L.push(os(a,'cj/ai-term-color-'+n,'──────────────────────────────────────────'));
+ }
+ return previewLines(L);}
function renderSlackPreview(){const a='slack',L=[];
L.push(os(a,'slack-room-info-title-room-name-face','#general')+' '+os(a,'slack-room-info-title-face','Acme Workspace'));
L.push(os(a,'slack-room-info-section-title-face','Topic')+' '+os(a,'slack-room-info-section-label-face','daily standup')+' '+os(a,'slack-room-unread-face','3 unread'));