@quilltap/theme-storybook 1.0.82 → 1.0.84
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 +5 -0
- package/dist/index.css +121 -0
- package/package.json +1 -1
- package/src/css/qt-components.css +146 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@quilltap/theme-storybook` will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.0.84] - 2026-10-25
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- The `qt-diagram*` family in `qt-components.css`, mirroring the app's `_content.css`: the frame around a diagram drawn in the Salon (`.qt-diagram`), its toolbar (`.qt-diagram-toolbar`, `-toolbar-button`, with hover / pressed / focus states), the drawing (`.qt-diagram-canvas`), the loading placeholder (`.qt-diagram-placeholder`), the offscreen scratch space (`.qt-diagram-stage`) and the could-not-draw fallback (`.qt-diagram-error`, `-error-note`, `-error-details`). Colours, radius and fonts read new `--qt-diagram-*` variables, including `--qt-diagram-hand-font` for hand-drawn diagrams.
|
|
9
|
+
|
|
5
10
|
## [1.0.78] - 2026-10-22
|
|
6
11
|
|
|
7
12
|
### Added
|
package/dist/index.css
CHANGED
|
@@ -298,6 +298,8 @@ body {
|
|
|
298
298
|
--qt-status-danger-bg: color-mix(in srgb, var(--color-destructive) 85%, transparent);
|
|
299
299
|
--qt-status-danger-fg: var(--color-destructive-foreground);
|
|
300
300
|
--qt-status-danger-border: var(--color-destructive);
|
|
301
|
+
--qt-punctuation-warning-bg: color-mix(in srgb, var(--color-warning) 35%, transparent);
|
|
302
|
+
--qt-punctuation-warning-underline: var(--color-warning);
|
|
301
303
|
--qt-badge-primary-bg: var(--color-primary);
|
|
302
304
|
--qt-badge-primary-fg: var(--color-primary-foreground);
|
|
303
305
|
--qt-badge-secondary-bg: var(--color-secondary);
|
|
@@ -530,6 +532,22 @@ body {
|
|
|
530
532
|
"Liberation Mono",
|
|
531
533
|
"Courier New",
|
|
532
534
|
monospace;
|
|
535
|
+
--qt-diagram-radius: var(--radius-md);
|
|
536
|
+
--qt-diagram-bg: var(--color-card);
|
|
537
|
+
--qt-diagram-fg: var(--color-foreground);
|
|
538
|
+
--qt-diagram-border: var(--color-border);
|
|
539
|
+
--qt-diagram-muted-fg: var(--color-muted-foreground);
|
|
540
|
+
--qt-diagram-toolbar-fg: var(--color-muted-foreground);
|
|
541
|
+
--qt-diagram-toolbar-hover-bg: var(--color-muted);
|
|
542
|
+
--qt-diagram-error-fg: var(--color-muted-foreground);
|
|
543
|
+
--qt-diagram-placeholder-height: 8rem;
|
|
544
|
+
--qt-diagram-font: var(--font-sans);
|
|
545
|
+
--qt-diagram-hand-font:
|
|
546
|
+
"Segoe Print",
|
|
547
|
+
"Bradley Hand",
|
|
548
|
+
"Chalkboard SE",
|
|
549
|
+
"Marker Felt",
|
|
550
|
+
cursive;
|
|
533
551
|
--qt-link-color: var(--color-primary);
|
|
534
552
|
--qt-link-hover-color: color-mix(in srgb, var(--color-primary) 80%, black);
|
|
535
553
|
--qt-link-decoration: none;
|
|
@@ -1911,6 +1929,12 @@ body {
|
|
|
1911
1929
|
animation: none;
|
|
1912
1930
|
}
|
|
1913
1931
|
}
|
|
1932
|
+
::highlight(qt-punctuation-warning) {
|
|
1933
|
+
background-color: var(--qt-punctuation-warning-bg);
|
|
1934
|
+
-webkit-text-decoration: underline wavy var(--qt-punctuation-warning-underline);
|
|
1935
|
+
text-decoration: underline wavy var(--qt-punctuation-warning-underline);
|
|
1936
|
+
text-decoration-thickness: 2px;
|
|
1937
|
+
}
|
|
1914
1938
|
.qt-lexical-contenteditable {
|
|
1915
1939
|
overflow-y: auto;
|
|
1916
1940
|
position: relative;
|
|
@@ -3253,6 +3277,103 @@ body {
|
|
|
3253
3277
|
right: 0.5rem;
|
|
3254
3278
|
z-index: 10;
|
|
3255
3279
|
}
|
|
3280
|
+
.qt-diagram {
|
|
3281
|
+
position: relative;
|
|
3282
|
+
width: 100%;
|
|
3283
|
+
max-width: 100%;
|
|
3284
|
+
box-sizing: border-box;
|
|
3285
|
+
margin: 0.5rem 0;
|
|
3286
|
+
padding: 0.75rem;
|
|
3287
|
+
border-radius: var(--qt-diagram-radius);
|
|
3288
|
+
background: var(--qt-diagram-bg);
|
|
3289
|
+
border: 1px solid var(--qt-diagram-border);
|
|
3290
|
+
color: var(--qt-diagram-fg);
|
|
3291
|
+
}
|
|
3292
|
+
.qt-diagram-toolbar {
|
|
3293
|
+
display: flex;
|
|
3294
|
+
flex-wrap: wrap;
|
|
3295
|
+
justify-content: flex-end;
|
|
3296
|
+
gap: 0.25rem;
|
|
3297
|
+
margin-bottom: 0.5rem;
|
|
3298
|
+
}
|
|
3299
|
+
.qt-diagram-toolbar-button {
|
|
3300
|
+
display: inline-flex;
|
|
3301
|
+
align-items: center;
|
|
3302
|
+
gap: 0.25rem;
|
|
3303
|
+
padding: 0.125rem 0.5rem;
|
|
3304
|
+
border-radius: var(--radius-sm);
|
|
3305
|
+
border: 1px solid transparent;
|
|
3306
|
+
background: transparent;
|
|
3307
|
+
color: var(--qt-diagram-toolbar-fg);
|
|
3308
|
+
font-size: 0.75rem;
|
|
3309
|
+
line-height: 1.25rem;
|
|
3310
|
+
cursor: pointer;
|
|
3311
|
+
transition:
|
|
3312
|
+
background-color 150ms,
|
|
3313
|
+
color 150ms,
|
|
3314
|
+
border-color 150ms;
|
|
3315
|
+
}
|
|
3316
|
+
.qt-diagram-toolbar-button:hover,
|
|
3317
|
+
.qt-diagram-toolbar-button[aria-pressed=true] {
|
|
3318
|
+
background: var(--qt-diagram-toolbar-hover-bg);
|
|
3319
|
+
border-color: var(--qt-diagram-border);
|
|
3320
|
+
color: var(--qt-diagram-fg);
|
|
3321
|
+
}
|
|
3322
|
+
.qt-diagram-toolbar-button:focus-visible {
|
|
3323
|
+
outline: 2px solid var(--color-primary);
|
|
3324
|
+
outline-offset: 1px;
|
|
3325
|
+
}
|
|
3326
|
+
.qt-diagram-canvas {
|
|
3327
|
+
max-width: 100%;
|
|
3328
|
+
overflow-x: auto;
|
|
3329
|
+
overflow-y: hidden;
|
|
3330
|
+
}
|
|
3331
|
+
.qt-diagram-canvas > svg {
|
|
3332
|
+
display: block;
|
|
3333
|
+
margin: 0 auto;
|
|
3334
|
+
}
|
|
3335
|
+
.qt-diagram-placeholder {
|
|
3336
|
+
display: flex;
|
|
3337
|
+
align-items: center;
|
|
3338
|
+
justify-content: center;
|
|
3339
|
+
min-height: var(--qt-diagram-placeholder-height);
|
|
3340
|
+
color: var(--qt-diagram-muted-fg);
|
|
3341
|
+
font-size: 0.875rem;
|
|
3342
|
+
font-style: italic;
|
|
3343
|
+
}
|
|
3344
|
+
.qt-diagram-stage {
|
|
3345
|
+
position: relative;
|
|
3346
|
+
width: 0;
|
|
3347
|
+
height: 0;
|
|
3348
|
+
overflow: visible;
|
|
3349
|
+
}
|
|
3350
|
+
.qt-diagram-error {
|
|
3351
|
+
margin: 0.5rem 0;
|
|
3352
|
+
}
|
|
3353
|
+
.qt-diagram-error-note {
|
|
3354
|
+
margin: 0 0 0.25rem;
|
|
3355
|
+
color: var(--qt-diagram-error-fg);
|
|
3356
|
+
font-size: 0.875rem;
|
|
3357
|
+
font-style: italic;
|
|
3358
|
+
}
|
|
3359
|
+
.qt-diagram-error-details {
|
|
3360
|
+
margin-bottom: 0.25rem;
|
|
3361
|
+
color: var(--qt-diagram-muted-fg);
|
|
3362
|
+
font-size: 0.75rem;
|
|
3363
|
+
}
|
|
3364
|
+
.qt-diagram-error-details > summary {
|
|
3365
|
+
cursor: pointer;
|
|
3366
|
+
}
|
|
3367
|
+
.qt-diagram-error-details > pre {
|
|
3368
|
+
margin: 0.25rem 0 0;
|
|
3369
|
+
padding: 0.5rem;
|
|
3370
|
+
border-radius: var(--radius-sm);
|
|
3371
|
+
background: var(--qt-code-bg);
|
|
3372
|
+
color: var(--qt-code-fg);
|
|
3373
|
+
font-family: var(--qt-code-font);
|
|
3374
|
+
white-space: pre-wrap;
|
|
3375
|
+
word-break: break-word;
|
|
3376
|
+
}
|
|
3256
3377
|
.qt-wikilink {
|
|
3257
3378
|
color: var(--color-primary);
|
|
3258
3379
|
font-weight: 500;
|
package/package.json
CHANGED
|
@@ -166,6 +166,10 @@
|
|
|
166
166
|
--qt-status-danger-fg: var(--color-destructive-foreground);
|
|
167
167
|
--qt-status-danger-border: var(--color-destructive);
|
|
168
168
|
|
|
169
|
+
/* Composer punctuation warnings (PunctuationLintPlugin, ::highlight) */
|
|
170
|
+
--qt-punctuation-warning-bg: color-mix(in srgb, var(--color-warning) 35%, transparent);
|
|
171
|
+
--qt-punctuation-warning-underline: var(--color-warning);
|
|
172
|
+
|
|
169
173
|
/* Badge palette tokens - referenced by the provider badges */
|
|
170
174
|
--qt-badge-primary-bg: var(--color-primary);
|
|
171
175
|
--qt-badge-primary-fg: var(--color-primary-foreground);
|
|
@@ -456,6 +460,19 @@
|
|
|
456
460
|
--qt-code-border: var(--color-border);
|
|
457
461
|
--qt-code-font: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
458
462
|
|
|
463
|
+
/* Diagram variables */
|
|
464
|
+
--qt-diagram-radius: var(--radius-md);
|
|
465
|
+
--qt-diagram-bg: var(--color-card);
|
|
466
|
+
--qt-diagram-fg: var(--color-foreground);
|
|
467
|
+
--qt-diagram-border: var(--color-border);
|
|
468
|
+
--qt-diagram-muted-fg: var(--color-muted-foreground);
|
|
469
|
+
--qt-diagram-toolbar-fg: var(--color-muted-foreground);
|
|
470
|
+
--qt-diagram-toolbar-hover-bg: var(--color-muted);
|
|
471
|
+
--qt-diagram-error-fg: var(--color-muted-foreground);
|
|
472
|
+
--qt-diagram-placeholder-height: 8rem;
|
|
473
|
+
--qt-diagram-font: var(--font-sans);
|
|
474
|
+
--qt-diagram-hand-font: "Segoe Print", "Bradley Hand", "Chalkboard SE", "Marker Felt", cursive;
|
|
475
|
+
|
|
459
476
|
/* Link variables */
|
|
460
477
|
--qt-link-color: var(--color-primary);
|
|
461
478
|
--qt-link-hover-color: color-mix(in srgb, var(--color-primary) 80%, black);
|
|
@@ -2302,6 +2319,15 @@
|
|
|
2302
2319
|
.qt-chat-interrupt-button-raised { animation: none; }
|
|
2303
2320
|
}
|
|
2304
2321
|
|
|
2322
|
+
/* Composer punctuation warnings — painted by PunctuationLintPlugin through the
|
|
2323
|
+
CSS Custom Highlight API, so no element carries a class. Only background and
|
|
2324
|
+
text-decoration are styleable on a ::highlight. */
|
|
2325
|
+
::highlight(qt-punctuation-warning) {
|
|
2326
|
+
background-color: var(--qt-punctuation-warning-bg);
|
|
2327
|
+
text-decoration: underline wavy var(--qt-punctuation-warning-underline);
|
|
2328
|
+
text-decoration-thickness: 2px;
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2305
2331
|
/* Lexical editor rich text node styles */
|
|
2306
2332
|
.qt-lexical-contenteditable {
|
|
2307
2333
|
overflow-y: auto;
|
|
@@ -4073,6 +4099,126 @@
|
|
|
4073
4099
|
z-index: 10;
|
|
4074
4100
|
}
|
|
4075
4101
|
|
|
4102
|
+
/* ==========================================================================
|
|
4103
|
+
DIAGRAMS
|
|
4104
|
+
Closed ```mermaid / ```dot / ```graphviz / ```svg fences drawn in the
|
|
4105
|
+
Salon (components/chat/diagrams/DiagramBlock.tsx).
|
|
4106
|
+
========================================================================== */
|
|
4107
|
+
|
|
4108
|
+
/* The frame around one drawn diagram. */
|
|
4109
|
+
.qt-diagram {
|
|
4110
|
+
position: relative;
|
|
4111
|
+
width: 100%;
|
|
4112
|
+
max-width: 100%;
|
|
4113
|
+
box-sizing: border-box;
|
|
4114
|
+
margin: 0.5rem 0;
|
|
4115
|
+
padding: 0.75rem;
|
|
4116
|
+
border-radius: var(--qt-diagram-radius);
|
|
4117
|
+
background: var(--qt-diagram-bg);
|
|
4118
|
+
border: 1px solid var(--qt-diagram-border);
|
|
4119
|
+
color: var(--qt-diagram-fg);
|
|
4120
|
+
}
|
|
4121
|
+
|
|
4122
|
+
/* View source / Copy source / Copy SVG / Download SVG. */
|
|
4123
|
+
.qt-diagram-toolbar {
|
|
4124
|
+
display: flex;
|
|
4125
|
+
flex-wrap: wrap;
|
|
4126
|
+
justify-content: flex-end;
|
|
4127
|
+
gap: 0.25rem;
|
|
4128
|
+
margin-bottom: 0.5rem;
|
|
4129
|
+
}
|
|
4130
|
+
|
|
4131
|
+
.qt-diagram-toolbar-button {
|
|
4132
|
+
display: inline-flex;
|
|
4133
|
+
align-items: center;
|
|
4134
|
+
gap: 0.25rem;
|
|
4135
|
+
padding: 0.125rem 0.5rem;
|
|
4136
|
+
border-radius: var(--radius-sm);
|
|
4137
|
+
border: 1px solid transparent;
|
|
4138
|
+
background: transparent;
|
|
4139
|
+
color: var(--qt-diagram-toolbar-fg);
|
|
4140
|
+
font-size: 0.75rem;
|
|
4141
|
+
line-height: 1.25rem;
|
|
4142
|
+
cursor: pointer;
|
|
4143
|
+
transition: background-color 150ms, color 150ms, border-color 150ms;
|
|
4144
|
+
}
|
|
4145
|
+
|
|
4146
|
+
.qt-diagram-toolbar-button:hover,
|
|
4147
|
+
.qt-diagram-toolbar-button[aria-pressed="true"] {
|
|
4148
|
+
background: var(--qt-diagram-toolbar-hover-bg);
|
|
4149
|
+
border-color: var(--qt-diagram-border);
|
|
4150
|
+
color: var(--qt-diagram-fg);
|
|
4151
|
+
}
|
|
4152
|
+
|
|
4153
|
+
.qt-diagram-toolbar-button:focus-visible {
|
|
4154
|
+
outline: 2px solid var(--color-primary);
|
|
4155
|
+
outline-offset: 1px;
|
|
4156
|
+
}
|
|
4157
|
+
|
|
4158
|
+
/* The drawing itself. A wide diagram scrolls here; it never widens the bubble. */
|
|
4159
|
+
.qt-diagram-canvas {
|
|
4160
|
+
max-width: 100%;
|
|
4161
|
+
overflow-x: auto;
|
|
4162
|
+
overflow-y: hidden;
|
|
4163
|
+
}
|
|
4164
|
+
|
|
4165
|
+
.qt-diagram-canvas > svg {
|
|
4166
|
+
display: block;
|
|
4167
|
+
margin: 0 auto;
|
|
4168
|
+
}
|
|
4169
|
+
|
|
4170
|
+
/* Fixed height while a diagram is drawn, so the transcript doesn't jump. */
|
|
4171
|
+
.qt-diagram-placeholder {
|
|
4172
|
+
display: flex;
|
|
4173
|
+
align-items: center;
|
|
4174
|
+
justify-content: center;
|
|
4175
|
+
min-height: var(--qt-diagram-placeholder-height);
|
|
4176
|
+
color: var(--qt-diagram-muted-fg);
|
|
4177
|
+
font-size: 0.875rem;
|
|
4178
|
+
font-style: italic;
|
|
4179
|
+
}
|
|
4180
|
+
|
|
4181
|
+
/* Zero-size scratch space a renderer lays a drawing out in, offscreen. */
|
|
4182
|
+
.qt-diagram-stage {
|
|
4183
|
+
position: relative;
|
|
4184
|
+
width: 0;
|
|
4185
|
+
height: 0;
|
|
4186
|
+
overflow: visible;
|
|
4187
|
+
}
|
|
4188
|
+
|
|
4189
|
+
/* A fence that could not be drawn: a note, the engine's words, the code. */
|
|
4190
|
+
.qt-diagram-error {
|
|
4191
|
+
margin: 0.5rem 0;
|
|
4192
|
+
}
|
|
4193
|
+
|
|
4194
|
+
.qt-diagram-error-note {
|
|
4195
|
+
margin: 0 0 0.25rem;
|
|
4196
|
+
color: var(--qt-diagram-error-fg);
|
|
4197
|
+
font-size: 0.875rem;
|
|
4198
|
+
font-style: italic;
|
|
4199
|
+
}
|
|
4200
|
+
|
|
4201
|
+
.qt-diagram-error-details {
|
|
4202
|
+
margin-bottom: 0.25rem;
|
|
4203
|
+
color: var(--qt-diagram-muted-fg);
|
|
4204
|
+
font-size: 0.75rem;
|
|
4205
|
+
}
|
|
4206
|
+
|
|
4207
|
+
.qt-diagram-error-details > summary {
|
|
4208
|
+
cursor: pointer;
|
|
4209
|
+
}
|
|
4210
|
+
|
|
4211
|
+
.qt-diagram-error-details > pre {
|
|
4212
|
+
margin: 0.25rem 0 0;
|
|
4213
|
+
padding: 0.5rem;
|
|
4214
|
+
border-radius: var(--radius-sm);
|
|
4215
|
+
background: var(--qt-code-bg);
|
|
4216
|
+
color: var(--qt-code-fg);
|
|
4217
|
+
font-family: var(--qt-code-font);
|
|
4218
|
+
white-space: pre-wrap;
|
|
4219
|
+
word-break: break-word;
|
|
4220
|
+
}
|
|
4221
|
+
|
|
4076
4222
|
/* ==========================================================================
|
|
4077
4223
|
WIKILINK COMPONENTS
|
|
4078
4224
|
========================================================================== */
|