@quilltap/theme-storybook 1.0.59 → 1.0.61

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.
@@ -1773,7 +1773,7 @@ var Chat = () => {
1773
1773
  /* @__PURE__ */ jsx14("div", { className: "qt-chat-wardrobe-label", children: "Wardrobe" }),
1774
1774
  /* @__PURE__ */ jsxs14("div", { className: "qt-chat-wardrobe-summary", children: [
1775
1775
  /* @__PURE__ */ jsx14("div", { children: "Equipped \u201CCrimson Evening Gown\u201D in the top slot." }),
1776
- /* @__PURE__ */ jsx14("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear)" })
1776
+ /* @__PURE__ */ jsx14("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear), Marcel Waves (hair)" })
1777
1777
  ] })
1778
1778
  ] }),
1779
1779
  /* @__PURE__ */ jsxs14("div", { className: "qt-chat-wardrobe-notice", children: [
package/dist/index.css CHANGED
@@ -286,6 +286,10 @@ body {
286
286
  --qt-status-danger-bg: color-mix(in srgb, var(--color-destructive) 85%, transparent);
287
287
  --qt-status-danger-fg: var(--color-destructive-foreground);
288
288
  --qt-status-danger-border: var(--color-destructive);
289
+ --qt-badge-primary-bg: var(--color-primary);
290
+ --qt-badge-primary-fg: var(--color-primary-foreground);
291
+ --qt-badge-secondary-bg: var(--color-secondary);
292
+ --qt-badge-secondary-fg: var(--color-secondary-foreground);
289
293
  --qt-alert-success-bg: hsl(142 76% 36% / 0.1);
290
294
  --qt-alert-success-fg: hsl(142 76% 30%);
291
295
  --qt-alert-success-border: hsl(142 76% 36% / 0.3);
@@ -312,6 +316,18 @@ body {
312
316
  --qt-badge-message-fg: hsl(45 70% 35%);
313
317
  --qt-badge-project-bg: hsl(185 80% 40% / 0.15);
314
318
  --qt-badge-project-fg: hsl(185 80% 30%);
319
+ --qt-badge-wardrobe-top-bg: hsl(220 60% 55% / 0.12);
320
+ --qt-badge-wardrobe-top-fg: hsl(220 60% 42%);
321
+ --qt-badge-wardrobe-bottom-bg: hsl(152 50% 38% / 0.12);
322
+ --qt-badge-wardrobe-bottom-fg: hsl(152 50% 30%);
323
+ --qt-badge-wardrobe-footwear-bg: hsl(38 70% 48% / 0.12);
324
+ --qt-badge-wardrobe-footwear-fg: hsl(38 70% 38%);
325
+ --qt-badge-wardrobe-accessories-bg: hsl(270 45% 55% / 0.12);
326
+ --qt-badge-wardrobe-accessories-fg: hsl(270 45% 42%);
327
+ --qt-badge-wardrobe-hair-bg: hsl(345 55% 55% / 0.12);
328
+ --qt-badge-wardrobe-hair-fg: hsl(345 55% 42%);
329
+ --qt-badge-wardrobe-shared-bg: hsl(240 50% 55% / 0.12);
330
+ --qt-badge-wardrobe-shared-fg: hsl(240 50% 42%);
315
331
  --qt-badge-enabled-bg: hsl(142 76% 36% / 0.15);
316
332
  --qt-badge-enabled-fg: hsl(142 76% 30%);
317
333
  --qt-badge-disabled-bg: var(--color-muted);
@@ -876,6 +892,84 @@ body {
876
892
  color: var(--color-foreground);
877
893
  border: 1px solid var(--color-border);
878
894
  }
895
+ .qt-badge-provider-openai,
896
+ .qt-badge-provider-ollama,
897
+ .qt-badge-provider-openrouter,
898
+ .qt-badge-provider-nanogpt,
899
+ .qt-badge-provider-builtin {
900
+ display: inline-flex;
901
+ align-items: center;
902
+ justify-content: center;
903
+ flex-shrink: 0;
904
+ padding: var(--qt-badge-padding-y) var(--qt-badge-padding-x);
905
+ border-radius: var(--qt-badge-radius);
906
+ font-size: var(--qt-badge-font-size);
907
+ font-weight: var(--qt-badge-font-weight);
908
+ }
909
+ .qt-badge-provider-openai {
910
+ background: var(--qt-status-success-bg);
911
+ color: var(--qt-status-success-fg);
912
+ border: 1px solid var(--qt-status-success-border);
913
+ }
914
+ .qt-badge-provider-ollama {
915
+ background: var(--qt-badge-secondary-bg);
916
+ color: var(--qt-badge-secondary-fg);
917
+ border: 1px solid var(--qt-badge-secondary-border);
918
+ }
919
+ .qt-badge-provider-openrouter {
920
+ background: var(--qt-status-warning-bg);
921
+ color: var(--qt-status-warning-fg);
922
+ border: 1px solid var(--qt-status-warning-border);
923
+ }
924
+ .qt-badge-provider-nanogpt {
925
+ background: var(--qt-badge-primary-bg);
926
+ color: var(--qt-badge-primary-fg);
927
+ border: 1px solid var(--qt-badge-primary-border);
928
+ }
929
+ .qt-badge-provider-builtin {
930
+ background: var(--qt-status-info-bg);
931
+ color: var(--qt-status-info-fg);
932
+ border: 1px solid var(--qt-status-info-border);
933
+ }
934
+ .qt-badge-wardrobe-top,
935
+ .qt-badge-wardrobe-bottom,
936
+ .qt-badge-wardrobe-footwear,
937
+ .qt-badge-wardrobe-accessories,
938
+ .qt-badge-wardrobe-hair,
939
+ .qt-badge-wardrobe-shared {
940
+ display: inline-flex;
941
+ align-items: center;
942
+ justify-content: center;
943
+ flex-shrink: 0;
944
+ padding: var(--qt-badge-padding-y) var(--qt-badge-padding-x);
945
+ border-radius: var(--qt-badge-radius);
946
+ font-size: var(--qt-badge-font-size);
947
+ font-weight: var(--qt-badge-font-weight);
948
+ }
949
+ .qt-badge-wardrobe-top {
950
+ background-color: var(--qt-badge-wardrobe-top-bg);
951
+ color: var(--qt-badge-wardrobe-top-fg);
952
+ }
953
+ .qt-badge-wardrobe-bottom {
954
+ background-color: var(--qt-badge-wardrobe-bottom-bg);
955
+ color: var(--qt-badge-wardrobe-bottom-fg);
956
+ }
957
+ .qt-badge-wardrobe-footwear {
958
+ background-color: var(--qt-badge-wardrobe-footwear-bg);
959
+ color: var(--qt-badge-wardrobe-footwear-fg);
960
+ }
961
+ .qt-badge-wardrobe-accessories {
962
+ background-color: var(--qt-badge-wardrobe-accessories-bg);
963
+ color: var(--qt-badge-wardrobe-accessories-fg);
964
+ }
965
+ .qt-badge-wardrobe-hair {
966
+ background-color: var(--qt-badge-wardrobe-hair-bg);
967
+ color: var(--qt-badge-wardrobe-hair-fg);
968
+ }
969
+ .qt-badge-wardrobe-shared {
970
+ background-color: var(--qt-badge-wardrobe-shared-bg);
971
+ color: var(--qt-badge-wardrobe-shared-fg);
972
+ }
879
973
  .qt-avatar {
880
974
  display: inline-flex;
881
975
  align-items: center;
@@ -2495,6 +2589,18 @@ body {
2495
2589
  --qt-badge-message-fg: hsl(45 70% 68%);
2496
2590
  --qt-badge-project-bg: hsl(185 80% 40% / 0.3);
2497
2591
  --qt-badge-project-fg: hsl(185 80% 70%);
2592
+ --qt-badge-wardrobe-top-bg: hsl(220 60% 58% / 0.25);
2593
+ --qt-badge-wardrobe-top-fg: hsl(220 60% 72%);
2594
+ --qt-badge-wardrobe-bottom-bg: hsl(152 50% 40% / 0.25);
2595
+ --qt-badge-wardrobe-bottom-fg: hsl(152 50% 62%);
2596
+ --qt-badge-wardrobe-footwear-bg: hsl(38 70% 50% / 0.25);
2597
+ --qt-badge-wardrobe-footwear-fg: hsl(38 70% 68%);
2598
+ --qt-badge-wardrobe-accessories-bg: hsl(270 45% 58% / 0.25);
2599
+ --qt-badge-wardrobe-accessories-fg: hsl(270 45% 72%);
2600
+ --qt-badge-wardrobe-hair-bg: hsl(345 55% 58% / 0.25);
2601
+ --qt-badge-wardrobe-hair-fg: hsl(345 55% 72%);
2602
+ --qt-badge-wardrobe-shared-bg: hsl(240 50% 58% / 0.25);
2603
+ --qt-badge-wardrobe-shared-fg: hsl(240 50% 72%);
2498
2604
  --qt-badge-enabled-bg: hsl(142 76% 36% / 0.3);
2499
2605
  --qt-badge-enabled-fg: hsl(142 76% 65%);
2500
2606
  --qt-badge-related-bg: hsl(270 70% 60% / 0.3);
package/dist/index.js CHANGED
@@ -1883,7 +1883,7 @@ var Chat = () => {
1883
1883
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-wardrobe-label", children: "Wardrobe" }),
1884
1884
  /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-summary", children: [
1885
1885
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Equipped \u201CCrimson Evening Gown\u201D in the top slot." }),
1886
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear)" })
1886
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear), Marcel Waves (hair)" })
1887
1887
  ] })
1888
1888
  ] }),
1889
1889
  /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-notice", children: [
package/dist/index.mjs CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  ThemeComparison,
22
22
  Typography,
23
23
  Workspace
24
- } from "./chunk-4XVTTTDV.mjs";
24
+ } from "./chunk-XSNC4J5T.mjs";
25
25
  import "./chunk-WUKYLWAZ.mjs";
26
26
 
27
27
  // src/preview.tsx
@@ -1820,7 +1820,7 @@ var Chat = () => {
1820
1820
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-chat-wardrobe-label", children: "Wardrobe" }),
1821
1821
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "qt-chat-wardrobe-summary", children: [
1822
1822
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { children: "Equipped \u201CCrimson Evening Gown\u201D in the top slot." }),
1823
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear)" })
1823
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear), Marcel Waves (hair)" })
1824
1824
  ] })
1825
1825
  ] }),
1826
1826
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "qt-chat-wardrobe-notice", children: [
@@ -21,7 +21,7 @@ import {
21
21
  ThemeComparison,
22
22
  Typography,
23
23
  Workspace
24
- } from "../chunk-4XVTTTDV.mjs";
24
+ } from "../chunk-XSNC4J5T.mjs";
25
25
  import "../chunk-WUKYLWAZ.mjs";
26
26
  export {
27
27
  Avatars,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/theme-storybook",
3
- "version": "1.0.59",
3
+ "version": "1.0.61",
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",
@@ -160,6 +160,12 @@
160
160
  --qt-status-danger-fg: var(--color-destructive-foreground);
161
161
  --qt-status-danger-border: var(--color-destructive);
162
162
 
163
+ /* Badge palette tokens - referenced by the provider badges */
164
+ --qt-badge-primary-bg: var(--color-primary);
165
+ --qt-badge-primary-fg: var(--color-primary-foreground);
166
+ --qt-badge-secondary-bg: var(--color-secondary);
167
+ --qt-badge-secondary-fg: var(--color-secondary-foreground);
168
+
163
169
  /* Alert tokens - semi-transparent backgrounds with readable text */
164
170
  --qt-alert-success-bg: hsl(142 76% 36% / 0.1);
165
171
  --qt-alert-success-fg: hsl(142 76% 30%);
@@ -193,6 +199,20 @@
193
199
  --qt-badge-project-bg: hsl(185 80% 40% / 0.15);
194
200
  --qt-badge-project-fg: hsl(185 80% 30%);
195
201
 
202
+ /* Wardrobe slot badge colors */
203
+ --qt-badge-wardrobe-top-bg: hsl(220 60% 55% / 0.12);
204
+ --qt-badge-wardrobe-top-fg: hsl(220 60% 42%);
205
+ --qt-badge-wardrobe-bottom-bg: hsl(152 50% 38% / 0.12);
206
+ --qt-badge-wardrobe-bottom-fg: hsl(152 50% 30%);
207
+ --qt-badge-wardrobe-footwear-bg: hsl(38 70% 48% / 0.12);
208
+ --qt-badge-wardrobe-footwear-fg: hsl(38 70% 38%);
209
+ --qt-badge-wardrobe-accessories-bg: hsl(270 45% 55% / 0.12);
210
+ --qt-badge-wardrobe-accessories-fg: hsl(270 45% 42%);
211
+ --qt-badge-wardrobe-hair-bg: hsl(345 55% 55% / 0.12);
212
+ --qt-badge-wardrobe-hair-fg: hsl(345 55% 42%);
213
+ --qt-badge-wardrobe-shared-bg: hsl(240 50% 55% / 0.12);
214
+ --qt-badge-wardrobe-shared-fg: hsl(240 50% 42%);
215
+
196
216
  /* Status badge colors */
197
217
  --qt-badge-enabled-bg: hsl(142 76% 36% / 0.15);
198
218
  --qt-badge-enabled-fg: hsl(142 76% 30%);
@@ -905,6 +925,153 @@
905
925
  border: 1px solid var(--color-border);
906
926
  }
907
927
 
928
+ /* ==========================================================================
929
+ PROVIDER BADGES
930
+ ========================================================================== */
931
+
932
+ /**
933
+ * Shared geometry for the provider badges (embedding-profile provider chips).
934
+ * These do NOT build on .qt-badge in the app — they carry their own box, so
935
+ * the rule below is self-contained (and, mirroring the app, sets no
936
+ * line-height).
937
+ */
938
+ .qt-badge-provider-openai,
939
+ .qt-badge-provider-ollama,
940
+ .qt-badge-provider-openrouter,
941
+ .qt-badge-provider-nanogpt,
942
+ .qt-badge-provider-builtin {
943
+ display: inline-flex;
944
+ align-items: center;
945
+ justify-content: center;
946
+ flex-shrink: 0;
947
+ padding: var(--qt-badge-padding-y) var(--qt-badge-padding-x);
948
+ border-radius: var(--qt-badge-radius);
949
+ font-size: var(--qt-badge-font-size);
950
+ font-weight: var(--qt-badge-font-weight);
951
+ }
952
+
953
+ /**
954
+ * OpenAI provider badge (green/success semantic)
955
+ */
956
+ .qt-badge-provider-openai {
957
+ background: var(--qt-status-success-bg);
958
+ color: var(--qt-status-success-fg);
959
+ border: 1px solid var(--qt-status-success-border);
960
+ }
961
+
962
+ /**
963
+ * Ollama provider badge (secondary/muted)
964
+ * Mirrors the app, quirk included: --qt-badge-secondary-border has no default
965
+ * definition, so the border only renders in themes that define it.
966
+ */
967
+ .qt-badge-provider-ollama {
968
+ background: var(--qt-badge-secondary-bg);
969
+ color: var(--qt-badge-secondary-fg);
970
+ border: 1px solid var(--qt-badge-secondary-border);
971
+ }
972
+
973
+ /**
974
+ * OpenRouter provider badge (warning/orange semantic)
975
+ */
976
+ .qt-badge-provider-openrouter {
977
+ background: var(--qt-status-warning-bg);
978
+ color: var(--qt-status-warning-fg);
979
+ border: 1px solid var(--qt-status-warning-border);
980
+ }
981
+
982
+ /**
983
+ * NanoGPT provider badge (primary/accent semantic)
984
+ * Same border quirk as the ollama badge: --qt-badge-primary-border has no
985
+ * default definition.
986
+ */
987
+ .qt-badge-provider-nanogpt {
988
+ background: var(--qt-badge-primary-bg);
989
+ color: var(--qt-badge-primary-fg);
990
+ border: 1px solid var(--qt-badge-primary-border);
991
+ }
992
+
993
+ /**
994
+ * Built-in provider badge (info/blue semantic)
995
+ */
996
+ .qt-badge-provider-builtin {
997
+ background: var(--qt-status-info-bg);
998
+ color: var(--qt-status-info-fg);
999
+ border: 1px solid var(--qt-status-info-border);
1000
+ }
1001
+
1002
+ /* ==========================================================================
1003
+ WARDROBE SLOT BADGES
1004
+ ========================================================================== */
1005
+
1006
+ /**
1007
+ * Shared geometry for the wardrobe slot chips. These do NOT build on
1008
+ * .qt-badge in the app — they carry their own box, so the rule below is
1009
+ * self-contained (and, mirroring the app, sets no line-height).
1010
+ */
1011
+ .qt-badge-wardrobe-top,
1012
+ .qt-badge-wardrobe-bottom,
1013
+ .qt-badge-wardrobe-footwear,
1014
+ .qt-badge-wardrobe-accessories,
1015
+ .qt-badge-wardrobe-hair,
1016
+ .qt-badge-wardrobe-shared {
1017
+ display: inline-flex;
1018
+ align-items: center;
1019
+ justify-content: center;
1020
+ flex-shrink: 0;
1021
+ padding: var(--qt-badge-padding-y) var(--qt-badge-padding-x);
1022
+ border-radius: var(--qt-badge-radius);
1023
+ font-size: var(--qt-badge-font-size);
1024
+ font-weight: var(--qt-badge-font-weight);
1025
+ }
1026
+
1027
+ /**
1028
+ * Wardrobe top badge (blue)
1029
+ */
1030
+ .qt-badge-wardrobe-top {
1031
+ background-color: var(--qt-badge-wardrobe-top-bg);
1032
+ color: var(--qt-badge-wardrobe-top-fg);
1033
+ }
1034
+
1035
+ /**
1036
+ * Wardrobe bottom badge (green)
1037
+ */
1038
+ .qt-badge-wardrobe-bottom {
1039
+ background-color: var(--qt-badge-wardrobe-bottom-bg);
1040
+ color: var(--qt-badge-wardrobe-bottom-fg);
1041
+ }
1042
+
1043
+ /**
1044
+ * Wardrobe footwear badge (amber)
1045
+ */
1046
+ .qt-badge-wardrobe-footwear {
1047
+ background-color: var(--qt-badge-wardrobe-footwear-bg);
1048
+ color: var(--qt-badge-wardrobe-footwear-fg);
1049
+ }
1050
+
1051
+ /**
1052
+ * Wardrobe accessories badge (purple)
1053
+ */
1054
+ .qt-badge-wardrobe-accessories {
1055
+ background-color: var(--qt-badge-wardrobe-accessories-bg);
1056
+ color: var(--qt-badge-wardrobe-accessories-fg);
1057
+ }
1058
+
1059
+ /**
1060
+ * Wardrobe hair badge (rose)
1061
+ */
1062
+ .qt-badge-wardrobe-hair {
1063
+ background-color: var(--qt-badge-wardrobe-hair-bg);
1064
+ color: var(--qt-badge-wardrobe-hair-fg);
1065
+ }
1066
+
1067
+ /**
1068
+ * Wardrobe shared/archetype badge (indigo)
1069
+ */
1070
+ .qt-badge-wardrobe-shared {
1071
+ background-color: var(--qt-badge-wardrobe-shared-bg);
1072
+ color: var(--qt-badge-wardrobe-shared-fg);
1073
+ }
1074
+
908
1075
  /* ==========================================================================
909
1076
  AVATAR COMPONENTS
910
1077
  ========================================================================== */
@@ -3053,6 +3220,20 @@
3053
3220
  --qt-badge-project-bg: hsl(185 80% 40% / 0.3);
3054
3221
  --qt-badge-project-fg: hsl(185 80% 70%);
3055
3222
 
3223
+ /* Wardrobe slot badge tokens - brighter for dark backgrounds */
3224
+ --qt-badge-wardrobe-top-bg: hsl(220 60% 58% / 0.25);
3225
+ --qt-badge-wardrobe-top-fg: hsl(220 60% 72%);
3226
+ --qt-badge-wardrobe-bottom-bg: hsl(152 50% 40% / 0.25);
3227
+ --qt-badge-wardrobe-bottom-fg: hsl(152 50% 62%);
3228
+ --qt-badge-wardrobe-footwear-bg: hsl(38 70% 50% / 0.25);
3229
+ --qt-badge-wardrobe-footwear-fg: hsl(38 70% 68%);
3230
+ --qt-badge-wardrobe-accessories-bg: hsl(270 45% 58% / 0.25);
3231
+ --qt-badge-wardrobe-accessories-fg: hsl(270 45% 72%);
3232
+ --qt-badge-wardrobe-hair-bg: hsl(345 55% 58% / 0.25);
3233
+ --qt-badge-wardrobe-hair-fg: hsl(345 55% 72%);
3234
+ --qt-badge-wardrobe-shared-bg: hsl(240 50% 58% / 0.25);
3235
+ --qt-badge-wardrobe-shared-fg: hsl(240 50% 72%);
3236
+
3056
3237
  /* Status badge tokens */
3057
3238
  --qt-badge-enabled-bg: hsl(142 76% 36% / 0.3);
3058
3239
  --qt-badge-enabled-fg: hsl(142 76% 65%);
@@ -399,7 +399,10 @@ export const Chat: React.FC = () => {
399
399
  <div className="qt-chat-wardrobe-label">Wardrobe</div>
400
400
  <div className="qt-chat-wardrobe-summary">
401
401
  <div>Equipped &ldquo;Crimson Evening Gown&rdquo; in the top slot.</div>
402
- <div>Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear)</div>
402
+ <div>
403
+ Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear), Marcel
404
+ Waves (hair)
405
+ </div>
403
406
  </div>
404
407
  </div>
405
408