@quilltap/theme-storybook 1.0.86 → 1.0.88

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/dist/index.css CHANGED
@@ -511,7 +511,7 @@ body {
511
511
  --qt-response-status-gathering-fg: hsl(270 55% 55%);
512
512
  --qt-response-status-building-fg: hsl(38 85% 48%);
513
513
  --qt-response-status-sending-fg: var(--qt-status-info-fg);
514
- --qt-response-status-streaming-fg: hsl(152 55% 38%);
514
+ --qt-response-status-streaming-fg: hsl(152 55% 29%);
515
515
  --qt-response-status-tool-fg: hsl(270 55% 55%);
516
516
  --qt-participant-card-radius: var(--radius-lg);
517
517
  --qt-participant-card-bg: var(--color-card);
@@ -991,6 +991,7 @@ body {
991
991
  }
992
992
  .qt-danger-badge {
993
993
  --qt-concierge-badge-color: var(--color-destructive, #dc2626);
994
+ --qt-concierge-badge-fg: var(--qt-alert-error-fg, var(--qt-concierge-badge-color));
994
995
  display: inline-flex;
995
996
  align-items: center;
996
997
  gap: 0.25rem;
@@ -1000,14 +1001,15 @@ body {
1000
1001
  line-height: 1rem;
1001
1002
  font-weight: 500;
1002
1003
  background: color-mix(in srgb, var(--qt-concierge-badge-color) 15%, transparent);
1003
- color: var(--qt-concierge-badge-color);
1004
+ color: var(--qt-concierge-badge-fg);
1004
1005
  border: 1px solid color-mix(in srgb, var(--qt-concierge-badge-color) 40%, transparent);
1005
1006
  }
1006
1007
  .qt-danger-badge-muted {
1007
1008
  --qt-concierge-badge-color: var(--color-muted-foreground, #6b7280);
1009
+ --qt-concierge-badge-fg: var(--color-foreground);
1008
1010
  }
1009
1011
  .qt-concierge-mark {
1010
- --qt-concierge-mark-color: var(--color-destructive, #dc2626);
1012
+ --qt-concierge-mark-color: var(--qt-alert-error-fg, var(--color-destructive, #dc2626));
1011
1013
  display: inline-block;
1012
1014
  font-weight: 700;
1013
1015
  line-height: 1;
@@ -1636,6 +1638,7 @@ body {
1636
1638
  color: var(--qt-response-status-streaming-fg);
1637
1639
  }
1638
1640
  .qt-chat-regenerating-plate-text {
1641
+ color: var(--qt-chat-regenerating-plate-fg, var(--qt-chat-assistant-fg, var(--color-foreground)));
1639
1642
  font-size: 0.875rem;
1640
1643
  line-height: 1.25rem;
1641
1644
  font-weight: 500;
@@ -4088,6 +4091,51 @@ body {
4088
4091
  .qt-rp-font-script {
4089
4092
  font-family: var(--qt-rp-font-script, "Segoe Script", "Brush Script MT", cursive);
4090
4093
  }
4094
+ .qt-chat-dialogue {
4095
+ --qt-rp-fg: var(--qt-rp-dialogue-color);
4096
+ --qt-rp-bg: var(--qt-rp-dialogue-bg);
4097
+ color: var(--qt-rp-fg);
4098
+ background: var(--qt-rp-bg);
4099
+ }
4100
+ .qt-chat-message-user .qt-chat-dialogue {
4101
+ --qt-rp-fg: var(--qt-rp-user-dialogue-color, var(--qt-chat-user-fg));
4102
+ }
4103
+ .qt-chat-narration {
4104
+ --qt-rp-fg: var(--qt-rp-narration-color);
4105
+ --qt-rp-bg: var(--qt-rp-narration-bg);
4106
+ color: var(--qt-rp-fg);
4107
+ background: var(--qt-rp-bg);
4108
+ font-style: var(--qt-rp-narration-style);
4109
+ padding: var(--qt-rp-narration-padding);
4110
+ border-radius: var(--qt-rp-narration-radius);
4111
+ display: inline;
4112
+ }
4113
+ .qt-chat-inner-monologue {
4114
+ --qt-rp-fg: var(--qt-rp-inner-monologue-color);
4115
+ --qt-rp-bg: var(--qt-rp-inner-monologue-bg);
4116
+ color: var(--qt-rp-fg);
4117
+ background: var(--qt-rp-bg);
4118
+ font-style: var(--qt-rp-inner-monologue-style);
4119
+ padding: var(--qt-rp-inner-monologue-padding);
4120
+ border-radius: var(--qt-rp-inner-monologue-radius);
4121
+ display: inline;
4122
+ }
4123
+ .qt-chat-ooc {
4124
+ --qt-rp-fg: var(--qt-rp-ooc-color);
4125
+ --qt-rp-bg: var(--qt-rp-ooc-bg);
4126
+ color: var(--qt-rp-fg);
4127
+ background: var(--qt-rp-bg);
4128
+ font-family: var(--qt-rp-ooc-font);
4129
+ padding: var(--qt-rp-ooc-padding);
4130
+ border-radius: var(--qt-rp-ooc-radius);
4131
+ display: inline;
4132
+ }
4133
+ :is(p, blockquote, h1, h2, h3, h4, h5, h6):is(.qt-chat-narration, .qt-chat-ooc, .qt-chat-inner-monologue) {
4134
+ display: block;
4135
+ }
4136
+ li:is(.qt-chat-narration, .qt-chat-ooc, .qt-chat-inner-monologue) {
4137
+ display: list-item;
4138
+ }
4091
4139
  .qt-gallery-caption {
4092
4140
  background: var(--qt-gallery-caption-bg, linear-gradient(to top, rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0.45) 60%, transparent));
4093
4141
  color: var(--qt-gallery-caption-fg, #fff);
@@ -4244,7 +4292,7 @@ body {
4244
4292
  .qt-storyteller-warning {
4245
4293
  font-size: 0.75rem;
4246
4294
  font-weight: 600;
4247
- color: var(--qt-storyteller-warning-fg, var(--color-destructive));
4295
+ color: var(--qt-storyteller-warning-fg, var(--qt-alert-error-fg));
4248
4296
  }
4249
4297
  .qt-storyteller-actions {
4250
4298
  display: flex;
@@ -4307,7 +4355,7 @@ body {
4307
4355
  .qt-intervention-note {
4308
4356
  font-size: 0.75rem;
4309
4357
  font-style: italic;
4310
- color: var(--qt-intervention-note-fg, var(--color-warning));
4358
+ color: var(--qt-intervention-note-fg, var(--qt-alert-warning-fg));
4311
4359
  }
4312
4360
  .qt-intervention-badge {
4313
4361
  display: inline-flex;
@@ -4335,5 +4383,11 @@ body {
4335
4383
  }
4336
4384
  .qt-intervene-toggle--off {
4337
4385
  color: var(--qt-intervene-toggle-off-fg, var(--color-muted-foreground));
4338
- opacity: 0.5;
4386
+ background-image:
4387
+ linear-gradient(
4388
+ to top right,
4389
+ transparent calc(50% - 0.75px),
4390
+ currentColor calc(50% - 0.75px),
4391
+ currentColor calc(50% + 0.75px),
4392
+ transparent calc(50% + 0.75px));
4339
4393
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/theme-storybook",
3
- "version": "1.0.86",
3
+ "version": "1.0.88",
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",
@@ -441,7 +441,7 @@
441
441
  --qt-response-status-gathering-fg: hsl(270 55% 55%);
442
442
  --qt-response-status-building-fg: hsl(38 85% 48%);
443
443
  --qt-response-status-sending-fg: var(--qt-status-info-fg);
444
- --qt-response-status-streaming-fg: hsl(152 55% 38%);
444
+ --qt-response-status-streaming-fg: hsl(152 55% 29%);
445
445
  --qt-response-status-tool-fg: hsl(270 55% 55%);
446
446
 
447
447
  /* Participant card variables */
@@ -1080,6 +1080,9 @@
1080
1080
  */
1081
1081
  .qt-danger-badge {
1082
1082
  --qt-concierge-badge-color: var(--color-destructive, #dc2626);
1083
+ /* The ink is the alert token, not the fill red: --color-destructive on its
1084
+ own 15% tint read at ~3.5:1 on every bundled theme. */
1085
+ --qt-concierge-badge-fg: var(--qt-alert-error-fg, var(--qt-concierge-badge-color));
1083
1086
  display: inline-flex;
1084
1087
  align-items: center;
1085
1088
  gap: 0.25rem;
@@ -1089,13 +1092,15 @@
1089
1092
  line-height: 1rem;
1090
1093
  font-weight: 500;
1091
1094
  background: color-mix(in srgb, var(--qt-concierge-badge-color) 15%, transparent);
1092
- color: var(--qt-concierge-badge-color);
1095
+ color: var(--qt-concierge-badge-fg);
1093
1096
  border: 1px solid color-mix(in srgb, var(--qt-concierge-badge-color) 40%, transparent);
1094
1097
  }
1095
1098
 
1096
- /* Locked — no colour: the chat keeps to the ordinary desks. */
1099
+ /* Locked — no colour: the chat keeps to the ordinary desks. The grey lives
1100
+ in the tint and the rule; the word is in body ink so it stays legible. */
1097
1101
  .qt-danger-badge-muted {
1098
1102
  --qt-concierge-badge-color: var(--color-muted-foreground, #6b7280);
1103
+ --qt-concierge-badge-fg: var(--color-foreground);
1099
1104
  }
1100
1105
 
1101
1106
 
@@ -1106,7 +1111,7 @@
1106
1111
  * so there is no third modifier.
1107
1112
  */
1108
1113
  .qt-concierge-mark {
1109
- --qt-concierge-mark-color: var(--color-destructive, #dc2626);
1114
+ --qt-concierge-mark-color: var(--qt-alert-error-fg, var(--color-destructive, #dc2626));
1110
1115
  display: inline-block;
1111
1116
  font-weight: 700;
1112
1117
  line-height: 1;
@@ -1975,7 +1980,11 @@
1975
1980
  color: var(--qt-response-status-streaming-fg);
1976
1981
  }
1977
1982
 
1983
+ /* The words are in the bubble's own ink: the streaming green is a status
1984
+ accent, and on a mid-tone bubble it fell below 3:1. The green stays on the
1985
+ border and the quill. */
1978
1986
  .qt-chat-regenerating-plate-text {
1987
+ color: var(--qt-chat-regenerating-plate-fg, var(--qt-chat-assistant-fg, var(--color-foreground)));
1979
1988
  font-size: 0.875rem;
1980
1989
  line-height: 1.25rem;
1981
1990
  font-weight: 500;
@@ -5049,6 +5058,61 @@
5049
5058
  .qt-rp-font-display { font-family: var(--qt-rp-font-display, var(--theme-font-serif, Georgia, "Times New Roman", serif)); }
5050
5059
  .qt-rp-font-script { font-family: var(--qt-rp-font-script, "Segoe Script", "Brush Script MT", cursive); }
5051
5060
 
5061
+ /* Legacy chip classes (dialogue / narration / inner monologue / OOC). As above,
5062
+ the app scopes these under .qt-chat-message-content. */
5063
+ .qt-chat-dialogue {
5064
+ --qt-rp-fg: var(--qt-rp-dialogue-color);
5065
+ --qt-rp-bg: var(--qt-rp-dialogue-bg);
5066
+ color: var(--qt-rp-fg);
5067
+ background: var(--qt-rp-bg);
5068
+ }
5069
+
5070
+ /* Dialogue in a user message follows the bubble's own foreground. */
5071
+ .qt-chat-message-user .qt-chat-dialogue {
5072
+ --qt-rp-fg: var(--qt-rp-user-dialogue-color, var(--qt-chat-user-fg));
5073
+ }
5074
+
5075
+ .qt-chat-narration {
5076
+ --qt-rp-fg: var(--qt-rp-narration-color);
5077
+ --qt-rp-bg: var(--qt-rp-narration-bg);
5078
+ color: var(--qt-rp-fg);
5079
+ background: var(--qt-rp-bg);
5080
+ font-style: var(--qt-rp-narration-style);
5081
+ padding: var(--qt-rp-narration-padding);
5082
+ border-radius: var(--qt-rp-narration-radius);
5083
+ display: inline;
5084
+ }
5085
+
5086
+ .qt-chat-inner-monologue {
5087
+ --qt-rp-fg: var(--qt-rp-inner-monologue-color);
5088
+ --qt-rp-bg: var(--qt-rp-inner-monologue-bg);
5089
+ color: var(--qt-rp-fg);
5090
+ background: var(--qt-rp-bg);
5091
+ font-style: var(--qt-rp-inner-monologue-style);
5092
+ padding: var(--qt-rp-inner-monologue-padding);
5093
+ border-radius: var(--qt-rp-inner-monologue-radius);
5094
+ display: inline;
5095
+ }
5096
+
5097
+ .qt-chat-ooc {
5098
+ --qt-rp-fg: var(--qt-rp-ooc-color);
5099
+ --qt-rp-bg: var(--qt-rp-ooc-bg);
5100
+ color: var(--qt-rp-fg);
5101
+ background: var(--qt-rp-bg);
5102
+ font-family: var(--qt-rp-ooc-font);
5103
+ padding: var(--qt-rp-ooc-padding);
5104
+ border-radius: var(--qt-rp-ooc-radius);
5105
+ display: inline;
5106
+ }
5107
+
5108
+ :is(p, blockquote, h1, h2, h3, h4, h5, h6):is(.qt-chat-narration, .qt-chat-ooc, .qt-chat-inner-monologue) {
5109
+ display: block;
5110
+ }
5111
+
5112
+ li:is(.qt-chat-narration, .qt-chat-ooc, .qt-chat-inner-monologue) {
5113
+ display: list-item;
5114
+ }
5115
+
5052
5116
  /**
5053
5117
  * Gallery tile source caption — a scrim and two lines of small text laid
5054
5118
  * over the foot of a photo-gallery tile, saying where the picture comes from
@@ -5244,7 +5308,9 @@
5244
5308
  .qt-storyteller-warning {
5245
5309
  font-size: 0.75rem;
5246
5310
  font-weight: 600;
5247
- color: var(--qt-storyteller-warning-fg, var(--color-destructive));
5311
+ /* The alert token, not --color-destructive: a fill red is too dark to read
5312
+ as small text on a dark card. */
5313
+ color: var(--qt-storyteller-warning-fg, var(--qt-alert-error-fg));
5248
5314
  }
5249
5315
 
5250
5316
  .qt-storyteller-actions {
@@ -5334,7 +5400,9 @@
5334
5400
  .qt-intervention-note {
5335
5401
  font-size: 0.75rem;
5336
5402
  font-style: italic;
5337
- color: var(--qt-intervention-note-fg, var(--color-warning));
5403
+ /* The alert token, not --color-warning: amber fill is not amber ink, and on
5404
+ a light card the raw warning colour falls to ~2:1. */
5405
+ color: var(--qt-intervention-note-fg, var(--qt-alert-warning-fg));
5338
5406
  }
5339
5407
 
5340
5408
  /* The "adjusted" hand beside a Pascal chip's label. */
@@ -5369,7 +5437,16 @@
5369
5437
  }
5370
5438
 
5371
5439
  /* A field the author has hidden from the dialog. */
5440
+ /* A field the author has hidden from the dialog: the hand, struck through.
5441
+ The slash says "off" without leaning on colour, and without the half
5442
+ opacity that left the icon at ~2:1 on every bundled theme. */
5372
5443
  .qt-intervene-toggle--off {
5373
5444
  color: var(--qt-intervene-toggle-off-fg, var(--color-muted-foreground));
5374
- opacity: 0.5;
5445
+ background-image: linear-gradient(
5446
+ to top right,
5447
+ transparent calc(50% - 0.75px),
5448
+ currentColor calc(50% - 0.75px),
5449
+ currentColor calc(50% + 0.75px),
5450
+ transparent calc(50% + 0.75px)
5451
+ );
5375
5452
  }