@quilltap/theme-storybook 1.0.84 → 1.0.85
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 +130 -0
- package/package.json +1 -1
- package/src/css/qt-components.css +156 -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.85] - 2026-10-26
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- The diagram lightbox in `qt-components.css`, mirroring the app's `_content.css`: a zoom-in cursor and focus ring on a clickable `.qt-diagram-canvas[role="button"]`, the full-window `.qt-diagram-lightbox` with its toolbar (`-bar`, `-group`, `-button` with hover / pressed / disabled / focus states, `-zoom` readout, `-check` for the Transparent toggle), the pan-and-zoom `-viewport`, the drawing's `-sheet` (with a checkerboard under `[data-transparent="true"]`) and the `-hint` line. Colours read new `--qt-diagram-lightbox-*` variables, defaulting to the `--qt-overlay-*` tokens.
|
|
9
|
+
|
|
5
10
|
## [1.0.84] - 2026-10-25
|
|
6
11
|
|
|
7
12
|
### Added
|
package/dist/index.css
CHANGED
|
@@ -548,6 +548,15 @@ body {
|
|
|
548
548
|
"Chalkboard SE",
|
|
549
549
|
"Marker Felt",
|
|
550
550
|
cursive;
|
|
551
|
+
--qt-diagram-lightbox-backdrop: var(--qt-overlay-bg);
|
|
552
|
+
--qt-diagram-lightbox-fg: var(--qt-overlay-fg);
|
|
553
|
+
--qt-diagram-lightbox-muted-fg: var(--qt-overlay-muted-fg);
|
|
554
|
+
--qt-diagram-lightbox-button-bg: var(--qt-overlay-btn-bg);
|
|
555
|
+
--qt-diagram-lightbox-button-hover-bg: var(--qt-overlay-btn-hover-bg);
|
|
556
|
+
--qt-diagram-lightbox-pressed-border: var(--qt-overlay-muted-fg);
|
|
557
|
+
--qt-diagram-lightbox-shadow: 0 10px 40px rgb(0 0 0 / 0.45);
|
|
558
|
+
--qt-diagram-lightbox-check-a: #ffffff;
|
|
559
|
+
--qt-diagram-lightbox-check-b: #d4d4d8;
|
|
551
560
|
--qt-link-color: var(--color-primary);
|
|
552
561
|
--qt-link-hover-color: color-mix(in srgb, var(--color-primary) 80%, black);
|
|
553
562
|
--qt-link-decoration: none;
|
|
@@ -3374,6 +3383,127 @@ body {
|
|
|
3374
3383
|
white-space: pre-wrap;
|
|
3375
3384
|
word-break: break-word;
|
|
3376
3385
|
}
|
|
3386
|
+
.qt-diagram-canvas[role=button] {
|
|
3387
|
+
cursor: zoom-in;
|
|
3388
|
+
border-radius: var(--radius-sm);
|
|
3389
|
+
}
|
|
3390
|
+
.qt-diagram-canvas[role=button]:focus-visible {
|
|
3391
|
+
outline: 2px solid var(--color-primary);
|
|
3392
|
+
outline-offset: 2px;
|
|
3393
|
+
}
|
|
3394
|
+
.qt-diagram-lightbox {
|
|
3395
|
+
position: fixed;
|
|
3396
|
+
inset: 0;
|
|
3397
|
+
z-index: 100;
|
|
3398
|
+
display: flex;
|
|
3399
|
+
flex-direction: column;
|
|
3400
|
+
background: var(--qt-diagram-lightbox-backdrop);
|
|
3401
|
+
backdrop-filter: blur(4px);
|
|
3402
|
+
color: var(--qt-diagram-lightbox-fg);
|
|
3403
|
+
outline: none;
|
|
3404
|
+
}
|
|
3405
|
+
.qt-diagram-lightbox-bar {
|
|
3406
|
+
display: flex;
|
|
3407
|
+
flex-wrap: wrap;
|
|
3408
|
+
justify-content: space-between;
|
|
3409
|
+
align-items: center;
|
|
3410
|
+
gap: 0.5rem;
|
|
3411
|
+
padding: 0.75rem 1rem;
|
|
3412
|
+
}
|
|
3413
|
+
.qt-diagram-lightbox-group {
|
|
3414
|
+
display: flex;
|
|
3415
|
+
flex-wrap: wrap;
|
|
3416
|
+
align-items: center;
|
|
3417
|
+
gap: 0.25rem;
|
|
3418
|
+
}
|
|
3419
|
+
.qt-diagram-lightbox-button {
|
|
3420
|
+
display: inline-flex;
|
|
3421
|
+
align-items: center;
|
|
3422
|
+
gap: 0.375rem;
|
|
3423
|
+
min-height: 2rem;
|
|
3424
|
+
padding: 0.25rem 0.625rem;
|
|
3425
|
+
border-radius: var(--radius-sm);
|
|
3426
|
+
border: 1px solid transparent;
|
|
3427
|
+
background: var(--qt-diagram-lightbox-button-bg);
|
|
3428
|
+
color: inherit;
|
|
3429
|
+
font-size: 0.8125rem;
|
|
3430
|
+
line-height: 1.25rem;
|
|
3431
|
+
cursor: pointer;
|
|
3432
|
+
transition: background-color 150ms, border-color 150ms;
|
|
3433
|
+
}
|
|
3434
|
+
.qt-diagram-lightbox-button:hover,
|
|
3435
|
+
.qt-diagram-lightbox-button[aria-pressed=true] {
|
|
3436
|
+
background: var(--qt-diagram-lightbox-button-hover-bg);
|
|
3437
|
+
}
|
|
3438
|
+
.qt-diagram-lightbox-button[aria-pressed=true] {
|
|
3439
|
+
border-color: var(--qt-diagram-lightbox-pressed-border);
|
|
3440
|
+
}
|
|
3441
|
+
.qt-diagram-lightbox-button:disabled {
|
|
3442
|
+
opacity: 0.6;
|
|
3443
|
+
cursor: progress;
|
|
3444
|
+
}
|
|
3445
|
+
.qt-diagram-lightbox-button:focus-visible,
|
|
3446
|
+
.qt-diagram-lightbox-check:focus-within {
|
|
3447
|
+
outline: 2px solid var(--color-primary);
|
|
3448
|
+
outline-offset: 1px;
|
|
3449
|
+
}
|
|
3450
|
+
.qt-diagram-lightbox-zoom {
|
|
3451
|
+
min-width: 3.5rem;
|
|
3452
|
+
text-align: center;
|
|
3453
|
+
font-size: 0.8125rem;
|
|
3454
|
+
font-variant-numeric: tabular-nums;
|
|
3455
|
+
color: var(--qt-diagram-lightbox-muted-fg);
|
|
3456
|
+
}
|
|
3457
|
+
.qt-diagram-lightbox-check {
|
|
3458
|
+
display: inline-flex;
|
|
3459
|
+
align-items: center;
|
|
3460
|
+
gap: 0.375rem;
|
|
3461
|
+
padding: 0.25rem 0.5rem;
|
|
3462
|
+
border-radius: var(--radius-sm);
|
|
3463
|
+
font-size: 0.8125rem;
|
|
3464
|
+
cursor: pointer;
|
|
3465
|
+
}
|
|
3466
|
+
.qt-diagram-lightbox-check > input {
|
|
3467
|
+
accent-color: var(--color-primary);
|
|
3468
|
+
}
|
|
3469
|
+
.qt-diagram-lightbox-viewport {
|
|
3470
|
+
position: relative;
|
|
3471
|
+
flex: 1 1 auto;
|
|
3472
|
+
min-height: 0;
|
|
3473
|
+
overflow: hidden;
|
|
3474
|
+
touch-action: none;
|
|
3475
|
+
-webkit-user-select: none;
|
|
3476
|
+
-moz-user-select: none;
|
|
3477
|
+
user-select: none;
|
|
3478
|
+
cursor: grab;
|
|
3479
|
+
}
|
|
3480
|
+
.qt-diagram-lightbox-viewport:active {
|
|
3481
|
+
cursor: grabbing;
|
|
3482
|
+
}
|
|
3483
|
+
.qt-diagram-lightbox-sheet {
|
|
3484
|
+
position: absolute;
|
|
3485
|
+
border-radius: var(--qt-diagram-radius);
|
|
3486
|
+
background: var(--qt-diagram-bg);
|
|
3487
|
+
color: var(--qt-diagram-fg);
|
|
3488
|
+
box-shadow: var(--qt-diagram-lightbox-shadow);
|
|
3489
|
+
}
|
|
3490
|
+
.qt-diagram-lightbox-sheet[data-transparent=true] {
|
|
3491
|
+
background-color: var(--qt-diagram-lightbox-check-a);
|
|
3492
|
+
background-image:
|
|
3493
|
+
conic-gradient(
|
|
3494
|
+
var(--qt-diagram-lightbox-check-b) 25%,
|
|
3495
|
+
transparent 0 50%,
|
|
3496
|
+
var(--qt-diagram-lightbox-check-b) 0 75%,
|
|
3497
|
+
transparent 0);
|
|
3498
|
+
background-size: 16px 16px;
|
|
3499
|
+
}
|
|
3500
|
+
.qt-diagram-lightbox-hint {
|
|
3501
|
+
margin: 0;
|
|
3502
|
+
padding: 0.5rem 1rem 0.75rem;
|
|
3503
|
+
text-align: center;
|
|
3504
|
+
font-size: 0.75rem;
|
|
3505
|
+
color: var(--qt-diagram-lightbox-muted-fg);
|
|
3506
|
+
}
|
|
3377
3507
|
.qt-wikilink {
|
|
3378
3508
|
color: var(--color-primary);
|
|
3379
3509
|
font-weight: 500;
|
package/package.json
CHANGED
|
@@ -472,6 +472,17 @@
|
|
|
472
472
|
--qt-diagram-placeholder-height: 8rem;
|
|
473
473
|
--qt-diagram-font: var(--font-sans);
|
|
474
474
|
--qt-diagram-hand-font: "Segoe Print", "Bradley Hand", "Chalkboard SE", "Marker Felt", cursive;
|
|
475
|
+
/* The lightbox: the overlay's backdrop and glass buttons, a lifted sheet,
|
|
476
|
+
and the checkerboard behind a transparent copy. */
|
|
477
|
+
--qt-diagram-lightbox-backdrop: var(--qt-overlay-bg);
|
|
478
|
+
--qt-diagram-lightbox-fg: var(--qt-overlay-fg);
|
|
479
|
+
--qt-diagram-lightbox-muted-fg: var(--qt-overlay-muted-fg);
|
|
480
|
+
--qt-diagram-lightbox-button-bg: var(--qt-overlay-btn-bg);
|
|
481
|
+
--qt-diagram-lightbox-button-hover-bg: var(--qt-overlay-btn-hover-bg);
|
|
482
|
+
--qt-diagram-lightbox-pressed-border: var(--qt-overlay-muted-fg);
|
|
483
|
+
--qt-diagram-lightbox-shadow: 0 10px 40px rgb(0 0 0 / 0.45);
|
|
484
|
+
--qt-diagram-lightbox-check-a: #ffffff;
|
|
485
|
+
--qt-diagram-lightbox-check-b: #d4d4d8;
|
|
475
486
|
|
|
476
487
|
/* Link variables */
|
|
477
488
|
--qt-link-color: var(--color-primary);
|
|
@@ -4219,6 +4230,151 @@
|
|
|
4219
4230
|
word-break: break-word;
|
|
4220
4231
|
}
|
|
4221
4232
|
|
|
4233
|
+
/* The drawing is also the way in: click (or Enter) to enlarge. */
|
|
4234
|
+
.qt-diagram-canvas[role="button"] {
|
|
4235
|
+
cursor: zoom-in;
|
|
4236
|
+
border-radius: var(--radius-sm);
|
|
4237
|
+
}
|
|
4238
|
+
|
|
4239
|
+
.qt-diagram-canvas[role="button"]:focus-visible {
|
|
4240
|
+
outline: 2px solid var(--color-primary);
|
|
4241
|
+
outline-offset: 2px;
|
|
4242
|
+
}
|
|
4243
|
+
|
|
4244
|
+
/* The lightbox: one diagram, full-window, to zoom into and copy as PNG
|
|
4245
|
+
(components/chat/diagrams/DiagramLightbox.tsx). */
|
|
4246
|
+
.qt-diagram-lightbox {
|
|
4247
|
+
position: fixed;
|
|
4248
|
+
inset: 0;
|
|
4249
|
+
z-index: 100;
|
|
4250
|
+
display: flex;
|
|
4251
|
+
flex-direction: column;
|
|
4252
|
+
background: var(--qt-diagram-lightbox-backdrop);
|
|
4253
|
+
backdrop-filter: blur(4px);
|
|
4254
|
+
color: var(--qt-diagram-lightbox-fg);
|
|
4255
|
+
outline: none;
|
|
4256
|
+
}
|
|
4257
|
+
|
|
4258
|
+
/* Zoom controls on the left; Transparent, Copy PNG and Close on the right. */
|
|
4259
|
+
.qt-diagram-lightbox-bar {
|
|
4260
|
+
display: flex;
|
|
4261
|
+
flex-wrap: wrap;
|
|
4262
|
+
justify-content: space-between;
|
|
4263
|
+
align-items: center;
|
|
4264
|
+
gap: 0.5rem;
|
|
4265
|
+
padding: 0.75rem 1rem;
|
|
4266
|
+
}
|
|
4267
|
+
|
|
4268
|
+
.qt-diagram-lightbox-group {
|
|
4269
|
+
display: flex;
|
|
4270
|
+
flex-wrap: wrap;
|
|
4271
|
+
align-items: center;
|
|
4272
|
+
gap: 0.25rem;
|
|
4273
|
+
}
|
|
4274
|
+
|
|
4275
|
+
.qt-diagram-lightbox-button {
|
|
4276
|
+
display: inline-flex;
|
|
4277
|
+
align-items: center;
|
|
4278
|
+
gap: 0.375rem;
|
|
4279
|
+
min-height: 2rem;
|
|
4280
|
+
padding: 0.25rem 0.625rem;
|
|
4281
|
+
border-radius: var(--radius-sm);
|
|
4282
|
+
border: 1px solid transparent;
|
|
4283
|
+
background: var(--qt-diagram-lightbox-button-bg);
|
|
4284
|
+
color: inherit;
|
|
4285
|
+
font-size: 0.8125rem;
|
|
4286
|
+
line-height: 1.25rem;
|
|
4287
|
+
cursor: pointer;
|
|
4288
|
+
transition: background-color 150ms, border-color 150ms;
|
|
4289
|
+
}
|
|
4290
|
+
|
|
4291
|
+
.qt-diagram-lightbox-button:hover,
|
|
4292
|
+
.qt-diagram-lightbox-button[aria-pressed="true"] {
|
|
4293
|
+
background: var(--qt-diagram-lightbox-button-hover-bg);
|
|
4294
|
+
}
|
|
4295
|
+
|
|
4296
|
+
.qt-diagram-lightbox-button[aria-pressed="true"] {
|
|
4297
|
+
border-color: var(--qt-diagram-lightbox-pressed-border);
|
|
4298
|
+
}
|
|
4299
|
+
|
|
4300
|
+
.qt-diagram-lightbox-button:disabled {
|
|
4301
|
+
opacity: 0.6;
|
|
4302
|
+
cursor: progress;
|
|
4303
|
+
}
|
|
4304
|
+
|
|
4305
|
+
.qt-diagram-lightbox-button:focus-visible,
|
|
4306
|
+
.qt-diagram-lightbox-check:focus-within {
|
|
4307
|
+
outline: 2px solid var(--color-primary);
|
|
4308
|
+
outline-offset: 1px;
|
|
4309
|
+
}
|
|
4310
|
+
|
|
4311
|
+
.qt-diagram-lightbox-zoom {
|
|
4312
|
+
min-width: 3.5rem;
|
|
4313
|
+
text-align: center;
|
|
4314
|
+
font-size: 0.8125rem;
|
|
4315
|
+
font-variant-numeric: tabular-nums;
|
|
4316
|
+
color: var(--qt-diagram-lightbox-muted-fg);
|
|
4317
|
+
}
|
|
4318
|
+
|
|
4319
|
+
.qt-diagram-lightbox-check {
|
|
4320
|
+
display: inline-flex;
|
|
4321
|
+
align-items: center;
|
|
4322
|
+
gap: 0.375rem;
|
|
4323
|
+
padding: 0.25rem 0.5rem;
|
|
4324
|
+
border-radius: var(--radius-sm);
|
|
4325
|
+
font-size: 0.8125rem;
|
|
4326
|
+
cursor: pointer;
|
|
4327
|
+
}
|
|
4328
|
+
|
|
4329
|
+
.qt-diagram-lightbox-check > input {
|
|
4330
|
+
accent-color: var(--color-primary);
|
|
4331
|
+
}
|
|
4332
|
+
|
|
4333
|
+
/* The pan-and-zoom surface. Touch gestures are all ours here. */
|
|
4334
|
+
.qt-diagram-lightbox-viewport {
|
|
4335
|
+
position: relative;
|
|
4336
|
+
flex: 1 1 auto;
|
|
4337
|
+
min-height: 0;
|
|
4338
|
+
overflow: hidden;
|
|
4339
|
+
touch-action: none;
|
|
4340
|
+
user-select: none;
|
|
4341
|
+
cursor: grab;
|
|
4342
|
+
}
|
|
4343
|
+
|
|
4344
|
+
.qt-diagram-lightbox-viewport:active {
|
|
4345
|
+
cursor: grabbing;
|
|
4346
|
+
}
|
|
4347
|
+
|
|
4348
|
+
/* The drawing on its own card. Sized (not transformed) by the zoom, so the
|
|
4349
|
+
vector is redrawn sharp at every scale. */
|
|
4350
|
+
.qt-diagram-lightbox-sheet {
|
|
4351
|
+
position: absolute;
|
|
4352
|
+
border-radius: var(--qt-diagram-radius);
|
|
4353
|
+
background: var(--qt-diagram-bg);
|
|
4354
|
+
color: var(--qt-diagram-fg);
|
|
4355
|
+
box-shadow: var(--qt-diagram-lightbox-shadow);
|
|
4356
|
+
}
|
|
4357
|
+
|
|
4358
|
+
/* Transparent ticked: show what the PNG will carry — nothing behind it. */
|
|
4359
|
+
.qt-diagram-lightbox-sheet[data-transparent="true"] {
|
|
4360
|
+
background-color: var(--qt-diagram-lightbox-check-a);
|
|
4361
|
+
background-image: conic-gradient(
|
|
4362
|
+
var(--qt-diagram-lightbox-check-b) 25%,
|
|
4363
|
+
transparent 0 50%,
|
|
4364
|
+
var(--qt-diagram-lightbox-check-b) 0 75%,
|
|
4365
|
+
transparent 0
|
|
4366
|
+
);
|
|
4367
|
+
background-size: 16px 16px;
|
|
4368
|
+
}
|
|
4369
|
+
|
|
4370
|
+
.qt-diagram-lightbox-hint {
|
|
4371
|
+
margin: 0;
|
|
4372
|
+
padding: 0.5rem 1rem 0.75rem;
|
|
4373
|
+
text-align: center;
|
|
4374
|
+
font-size: 0.75rem;
|
|
4375
|
+
color: var(--qt-diagram-lightbox-muted-fg);
|
|
4376
|
+
}
|
|
4377
|
+
|
|
4222
4378
|
/* ==========================================================================
|
|
4223
4379
|
WIKILINK COMPONENTS
|
|
4224
4380
|
========================================================================== */
|