@quilltap/theme-storybook 1.0.12 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to `@quilltap/theme-storybook` will be documented in this file.
4
4
 
5
+ ## [1.0.15] - 2026-01-29
6
+
7
+ ### Added
8
+ - `.qt-button-warning` class for cautionary action buttons (uses `--qt-button-warning-*` variables)
9
+
10
+ ## [1.0.14] - 2026-01-25
11
+
12
+ ### Added
13
+ - Project badge CSS variables: `--qt-badge-project-bg`, `--qt-badge-project-fg` (teal color)
14
+ - Dark mode overrides for project badge with improved contrast
15
+
16
+ ## [1.0.13] - 2026-01-23
17
+
18
+ ### Added
19
+ - Alert CSS variables: `--qt-alert-success-*`, `--qt-alert-warning-*`, `--qt-alert-error-*`, `--qt-alert-info-*` for fully themeable alerts
20
+ - Entity badge CSS variables: `--qt-badge-character-*`, `--qt-badge-persona-*`, `--qt-badge-chat-*`, `--qt-badge-tag-*`, `--qt-badge-memory-*`
21
+ - Status badge CSS variables: `--qt-badge-enabled-*`, `--qt-badge-disabled-*`, `--qt-badge-related-*`, `--qt-badge-manual-*`, `--qt-badge-auto-*`
22
+ - Plugin source badge CSS variables: `--qt-badge-source-included-*`, `--qt-badge-source-npm-*`, `--qt-badge-source-git-*`, `--qt-badge-source-manual-*`
23
+ - Capability badge CSS variables: `--qt-badge-capability-*`
24
+ - Warning button CSS variables: `--qt-button-warning-*`
25
+ - Dark mode overrides for all new badge and alert variables with improved contrast
26
+
5
27
  ## [1.0.12] - 2026-01-23
6
28
 
7
29
  ### Added
package/dist/index.css CHANGED
@@ -173,6 +173,9 @@ body {
173
173
  --qt-button-success-bg: var(--color-success);
174
174
  --qt-button-success-fg: hsl(0 0% 10%);
175
175
  --qt-button-success-hover-bg: color-mix(in srgb, var(--color-success) 85%, black);
176
+ --qt-button-warning-bg: var(--color-warning);
177
+ --qt-button-warning-fg: hsl(0 0% 10%);
178
+ --qt-button-warning-hover-bg: color-mix(in srgb, var(--color-warning) 85%, black);
176
179
  --qt-card-radius: var(--radius-lg);
177
180
  --qt-card-padding: 1.5rem;
178
181
  --qt-card-bg: var(--color-card);
@@ -206,6 +209,50 @@ body {
206
209
  --qt-status-danger-bg: color-mix(in srgb, var(--color-destructive) 85%, transparent);
207
210
  --qt-status-danger-fg: var(--color-destructive-foreground);
208
211
  --qt-status-danger-border: var(--color-destructive);
212
+ --qt-alert-success-bg: hsl(142 76% 36% / 0.1);
213
+ --qt-alert-success-fg: hsl(142 76% 30%);
214
+ --qt-alert-success-border: hsl(142 76% 36% / 0.3);
215
+ --qt-alert-warning-bg: hsl(38 92% 50% / 0.1);
216
+ --qt-alert-warning-fg: hsl(38 92% 30%);
217
+ --qt-alert-warning-border: hsl(38 92% 50% / 0.3);
218
+ --qt-alert-error-bg: hsl(0 84% 60% / 0.1);
219
+ --qt-alert-error-fg: hsl(0 84% 35%);
220
+ --qt-alert-error-border: hsl(0 84% 60% / 0.3);
221
+ --qt-alert-info-bg: hsl(199 89% 48% / 0.1);
222
+ --qt-alert-info-fg: hsl(199 89% 30%);
223
+ --qt-alert-info-border: hsl(199 89% 48% / 0.3);
224
+ --qt-badge-character-bg: hsl(217 91% 60% / 0.15);
225
+ --qt-badge-character-fg: hsl(217 91% 45%);
226
+ --qt-badge-persona-bg: hsl(270 70% 60% / 0.15);
227
+ --qt-badge-persona-fg: hsl(270 70% 45%);
228
+ --qt-badge-chat-bg: hsl(142 76% 36% / 0.15);
229
+ --qt-badge-chat-fg: hsl(142 76% 30%);
230
+ --qt-badge-tag-bg: hsl(25 95% 53% / 0.15);
231
+ --qt-badge-tag-fg: hsl(25 95% 40%);
232
+ --qt-badge-memory-bg: hsl(330 80% 60% / 0.15);
233
+ --qt-badge-memory-fg: hsl(330 80% 40%);
234
+ --qt-badge-project-bg: hsl(185 80% 40% / 0.15);
235
+ --qt-badge-project-fg: hsl(185 80% 30%);
236
+ --qt-badge-enabled-bg: hsl(142 76% 36% / 0.15);
237
+ --qt-badge-enabled-fg: hsl(142 76% 30%);
238
+ --qt-badge-disabled-bg: var(--color-muted);
239
+ --qt-badge-disabled-fg: var(--color-muted-foreground);
240
+ --qt-badge-related-bg: hsl(270 70% 60% / 0.15);
241
+ --qt-badge-related-fg: hsl(270 70% 45%);
242
+ --qt-badge-manual-bg: hsl(270 70% 60% / 0.15);
243
+ --qt-badge-manual-fg: hsl(270 70% 45%);
244
+ --qt-badge-auto-bg: var(--color-muted);
245
+ --qt-badge-auto-fg: var(--color-muted-foreground);
246
+ --qt-badge-source-included-bg: hsl(270 70% 60% / 0.15);
247
+ --qt-badge-source-included-fg: hsl(270 70% 45%);
248
+ --qt-badge-source-npm-bg: hsl(0 84% 60% / 0.15);
249
+ --qt-badge-source-npm-fg: hsl(0 84% 40%);
250
+ --qt-badge-source-git-bg: hsl(25 95% 53% / 0.15);
251
+ --qt-badge-source-git-fg: hsl(25 95% 40%);
252
+ --qt-badge-source-manual-bg: var(--color-muted);
253
+ --qt-badge-source-manual-fg: var(--color-muted-foreground);
254
+ --qt-badge-capability-bg: hsl(217 91% 60% / 0.1);
255
+ --qt-badge-capability-fg: hsl(217 91% 45%);
209
256
  --qt-avatar-radius: 9999px;
210
257
  --qt-avatar-size: 2.5rem;
211
258
  --qt-avatar-size-sm: 2rem;
@@ -318,6 +365,13 @@ body {
318
365
  .qt-button-destructive:hover:not(:disabled) {
319
366
  background-color: var(--qt-button-destructive-hover-bg);
320
367
  }
368
+ .qt-button-warning {
369
+ background-color: var(--qt-button-warning-bg);
370
+ color: var(--qt-button-warning-fg);
371
+ }
372
+ .qt-button-warning:hover:not(:disabled) {
373
+ background-color: var(--qt-button-warning-hover-bg);
374
+ }
321
375
  .qt-button-success {
322
376
  display: inline-flex;
323
377
  align-items: center;
@@ -1064,3 +1118,43 @@ body {
1064
1118
  opacity: 0.5;
1065
1119
  }
1066
1120
  }
1121
+ .dark {
1122
+ --qt-alert-success-bg: hsl(142 76% 36% / 0.2);
1123
+ --qt-alert-success-fg: hsl(142 76% 65%);
1124
+ --qt-alert-success-border: hsl(142 76% 36% / 0.5);
1125
+ --qt-alert-warning-bg: hsl(38 92% 50% / 0.2);
1126
+ --qt-alert-warning-fg: hsl(38 92% 70%);
1127
+ --qt-alert-warning-border: hsl(38 92% 50% / 0.5);
1128
+ --qt-alert-error-bg: hsl(0 84% 60% / 0.2);
1129
+ --qt-alert-error-fg: hsl(0 84% 70%);
1130
+ --qt-alert-error-border: hsl(0 84% 60% / 0.5);
1131
+ --qt-alert-info-bg: hsl(199 89% 48% / 0.2);
1132
+ --qt-alert-info-fg: hsl(199 89% 70%);
1133
+ --qt-alert-info-border: hsl(199 89% 48% / 0.5);
1134
+ --qt-badge-character-bg: hsl(217 91% 60% / 0.3);
1135
+ --qt-badge-character-fg: hsl(217 91% 70%);
1136
+ --qt-badge-persona-bg: hsl(270 70% 60% / 0.3);
1137
+ --qt-badge-persona-fg: hsl(270 70% 70%);
1138
+ --qt-badge-chat-bg: hsl(142 76% 36% / 0.3);
1139
+ --qt-badge-chat-fg: hsl(142 76% 65%);
1140
+ --qt-badge-tag-bg: hsl(25 95% 53% / 0.3);
1141
+ --qt-badge-tag-fg: hsl(25 95% 65%);
1142
+ --qt-badge-memory-bg: hsl(330 80% 60% / 0.3);
1143
+ --qt-badge-memory-fg: hsl(330 80% 70%);
1144
+ --qt-badge-project-bg: hsl(185 80% 40% / 0.3);
1145
+ --qt-badge-project-fg: hsl(185 80% 70%);
1146
+ --qt-badge-enabled-bg: hsl(142 76% 36% / 0.3);
1147
+ --qt-badge-enabled-fg: hsl(142 76% 65%);
1148
+ --qt-badge-related-bg: hsl(270 70% 60% / 0.3);
1149
+ --qt-badge-related-fg: hsl(270 70% 70%);
1150
+ --qt-badge-manual-bg: hsl(270 70% 60% / 0.3);
1151
+ --qt-badge-manual-fg: hsl(270 70% 70%);
1152
+ --qt-badge-source-included-bg: hsl(270 70% 60% / 0.3);
1153
+ --qt-badge-source-included-fg: hsl(270 70% 70%);
1154
+ --qt-badge-source-npm-bg: hsl(0 84% 60% / 0.3);
1155
+ --qt-badge-source-npm-fg: hsl(0 84% 70%);
1156
+ --qt-badge-source-git-bg: hsl(25 95% 53% / 0.3);
1157
+ --qt-badge-source-git-fg: hsl(25 95% 65%);
1158
+ --qt-badge-capability-bg: hsl(217 91% 60% / 0.2);
1159
+ --qt-badge-capability-fg: hsl(217 91% 70%);
1160
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/theme-storybook",
3
- "version": "1.0.12",
3
+ "version": "1.0.15",
4
4
  "description": "Storybook preset and stories for developing Quilltap theme plugins",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -42,6 +42,10 @@
42
42
  --qt-button-success-fg: hsl(0 0% 10%); /* Dark text for contrast on bright green */
43
43
  --qt-button-success-hover-bg: color-mix(in srgb, var(--color-success) 85%, black);
44
44
 
45
+ --qt-button-warning-bg: var(--color-warning);
46
+ --qt-button-warning-fg: hsl(0 0% 10%); /* Dark text for contrast on amber */
47
+ --qt-button-warning-hover-bg: color-mix(in srgb, var(--color-warning) 85%, black);
48
+
45
49
  /* Card variables */
46
50
  --qt-card-radius: var(--radius-lg);
47
51
  --qt-card-padding: 1.5rem;
@@ -86,6 +90,63 @@
86
90
  --qt-status-danger-fg: var(--color-destructive-foreground);
87
91
  --qt-status-danger-border: var(--color-destructive);
88
92
 
93
+ /* Alert tokens - semi-transparent backgrounds with readable text */
94
+ --qt-alert-success-bg: hsl(142 76% 36% / 0.1);
95
+ --qt-alert-success-fg: hsl(142 76% 30%);
96
+ --qt-alert-success-border: hsl(142 76% 36% / 0.3);
97
+
98
+ --qt-alert-warning-bg: hsl(38 92% 50% / 0.1);
99
+ --qt-alert-warning-fg: hsl(38 92% 30%);
100
+ --qt-alert-warning-border: hsl(38 92% 50% / 0.3);
101
+
102
+ --qt-alert-error-bg: hsl(0 84% 60% / 0.1);
103
+ --qt-alert-error-fg: hsl(0 84% 35%);
104
+ --qt-alert-error-border: hsl(0 84% 60% / 0.3);
105
+
106
+ --qt-alert-info-bg: hsl(199 89% 48% / 0.1);
107
+ --qt-alert-info-fg: hsl(199 89% 30%);
108
+ --qt-alert-info-border: hsl(199 89% 48% / 0.3);
109
+
110
+ /* Entity-type badge colors */
111
+ --qt-badge-character-bg: hsl(217 91% 60% / 0.15);
112
+ --qt-badge-character-fg: hsl(217 91% 45%);
113
+ --qt-badge-persona-bg: hsl(270 70% 60% / 0.15);
114
+ --qt-badge-persona-fg: hsl(270 70% 45%);
115
+ --qt-badge-chat-bg: hsl(142 76% 36% / 0.15);
116
+ --qt-badge-chat-fg: hsl(142 76% 30%);
117
+ --qt-badge-tag-bg: hsl(25 95% 53% / 0.15);
118
+ --qt-badge-tag-fg: hsl(25 95% 40%);
119
+ --qt-badge-memory-bg: hsl(330 80% 60% / 0.15);
120
+ --qt-badge-memory-fg: hsl(330 80% 40%);
121
+ --qt-badge-project-bg: hsl(185 80% 40% / 0.15);
122
+ --qt-badge-project-fg: hsl(185 80% 30%);
123
+
124
+ /* Status badge colors */
125
+ --qt-badge-enabled-bg: hsl(142 76% 36% / 0.15);
126
+ --qt-badge-enabled-fg: hsl(142 76% 30%);
127
+ --qt-badge-disabled-bg: var(--color-muted);
128
+ --qt-badge-disabled-fg: var(--color-muted-foreground);
129
+ --qt-badge-related-bg: hsl(270 70% 60% / 0.15);
130
+ --qt-badge-related-fg: hsl(270 70% 45%);
131
+ --qt-badge-manual-bg: hsl(270 70% 60% / 0.15);
132
+ --qt-badge-manual-fg: hsl(270 70% 45%);
133
+ --qt-badge-auto-bg: var(--color-muted);
134
+ --qt-badge-auto-fg: var(--color-muted-foreground);
135
+
136
+ /* Plugin source badge colors */
137
+ --qt-badge-source-included-bg: hsl(270 70% 60% / 0.15);
138
+ --qt-badge-source-included-fg: hsl(270 70% 45%);
139
+ --qt-badge-source-npm-bg: hsl(0 84% 60% / 0.15);
140
+ --qt-badge-source-npm-fg: hsl(0 84% 40%);
141
+ --qt-badge-source-git-bg: hsl(25 95% 53% / 0.15);
142
+ --qt-badge-source-git-fg: hsl(25 95% 40%);
143
+ --qt-badge-source-manual-bg: var(--color-muted);
144
+ --qt-badge-source-manual-fg: var(--color-muted-foreground);
145
+
146
+ /* Capability badge colors */
147
+ --qt-badge-capability-bg: hsl(217 91% 60% / 0.1);
148
+ --qt-badge-capability-fg: hsl(217 91% 45%);
149
+
89
150
  /* Avatar variables */
90
151
  --qt-avatar-radius: 9999px;
91
152
  --qt-avatar-size: 2.5rem;
@@ -223,6 +284,15 @@
223
284
  background-color: var(--qt-button-destructive-hover-bg);
224
285
  }
225
286
 
287
+ .qt-button-warning {
288
+ background-color: var(--qt-button-warning-bg);
289
+ color: var(--qt-button-warning-fg);
290
+ }
291
+
292
+ .qt-button-warning:hover:not(:disabled) {
293
+ background-color: var(--qt-button-warning-hover-bg);
294
+ }
295
+
226
296
  .qt-button-success {
227
297
  display: inline-flex;
228
298
  align-items: center;
@@ -1146,3 +1216,60 @@
1146
1216
  opacity: 0.5;
1147
1217
  }
1148
1218
  }
1219
+
1220
+ /* ==========================================================================
1221
+ DARK MODE OVERRIDES
1222
+ Adjusted colors for dark backgrounds with better contrast
1223
+ ========================================================================== */
1224
+ .dark {
1225
+ /* Alert tokens - brighter, more saturated for dark backgrounds */
1226
+ --qt-alert-success-bg: hsl(142 76% 36% / 0.2);
1227
+ --qt-alert-success-fg: hsl(142 76% 65%);
1228
+ --qt-alert-success-border: hsl(142 76% 36% / 0.5);
1229
+
1230
+ --qt-alert-warning-bg: hsl(38 92% 50% / 0.2);
1231
+ --qt-alert-warning-fg: hsl(38 92% 70%);
1232
+ --qt-alert-warning-border: hsl(38 92% 50% / 0.5);
1233
+
1234
+ --qt-alert-error-bg: hsl(0 84% 60% / 0.2);
1235
+ --qt-alert-error-fg: hsl(0 84% 70%);
1236
+ --qt-alert-error-border: hsl(0 84% 60% / 0.5);
1237
+
1238
+ --qt-alert-info-bg: hsl(199 89% 48% / 0.2);
1239
+ --qt-alert-info-fg: hsl(199 89% 70%);
1240
+ --qt-alert-info-border: hsl(199 89% 48% / 0.5);
1241
+
1242
+ /* Entity badge tokens - brighter for dark backgrounds */
1243
+ --qt-badge-character-bg: hsl(217 91% 60% / 0.3);
1244
+ --qt-badge-character-fg: hsl(217 91% 70%);
1245
+ --qt-badge-persona-bg: hsl(270 70% 60% / 0.3);
1246
+ --qt-badge-persona-fg: hsl(270 70% 70%);
1247
+ --qt-badge-chat-bg: hsl(142 76% 36% / 0.3);
1248
+ --qt-badge-chat-fg: hsl(142 76% 65%);
1249
+ --qt-badge-tag-bg: hsl(25 95% 53% / 0.3);
1250
+ --qt-badge-tag-fg: hsl(25 95% 65%);
1251
+ --qt-badge-memory-bg: hsl(330 80% 60% / 0.3);
1252
+ --qt-badge-memory-fg: hsl(330 80% 70%);
1253
+ --qt-badge-project-bg: hsl(185 80% 40% / 0.3);
1254
+ --qt-badge-project-fg: hsl(185 80% 70%);
1255
+
1256
+ /* Status badge tokens */
1257
+ --qt-badge-enabled-bg: hsl(142 76% 36% / 0.3);
1258
+ --qt-badge-enabled-fg: hsl(142 76% 65%);
1259
+ --qt-badge-related-bg: hsl(270 70% 60% / 0.3);
1260
+ --qt-badge-related-fg: hsl(270 70% 70%);
1261
+ --qt-badge-manual-bg: hsl(270 70% 60% / 0.3);
1262
+ --qt-badge-manual-fg: hsl(270 70% 70%);
1263
+
1264
+ /* Plugin source badge tokens */
1265
+ --qt-badge-source-included-bg: hsl(270 70% 60% / 0.3);
1266
+ --qt-badge-source-included-fg: hsl(270 70% 70%);
1267
+ --qt-badge-source-npm-bg: hsl(0 84% 60% / 0.3);
1268
+ --qt-badge-source-npm-fg: hsl(0 84% 70%);
1269
+ --qt-badge-source-git-bg: hsl(25 95% 53% / 0.3);
1270
+ --qt-badge-source-git-fg: hsl(25 95% 65%);
1271
+
1272
+ /* Capability badge tokens */
1273
+ --qt-badge-capability-bg: hsl(217 91% 60% / 0.2);
1274
+ --qt-badge-capability-fg: hsl(217 91% 70%);
1275
+ }