@astryxdesign/theme-neutral 0.7.9-canary.4e963df → 0.7.9-canary.53468e2

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/neutral.js CHANGED
@@ -96,17 +96,17 @@ export const neutralTheme = {
96
96
  "--font-family-code": "ui-monospace, \"SF Mono\", Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
97
97
  "--color-syntax-keyword": "light-dark(#6b187c, #efa8ff)",
98
98
  "--color-syntax-string": "light-dark(#0b5615, #a4d6a3)",
99
- "--color-syntax-comment": "light-dark(#6a6a6a, #9e9e9e)",
99
+ "--color-syntax-comment": "light-dark(#525252, #b9b9b9)",
100
100
  "--color-syntax-number": "light-dark(#733100, #ffb37e)",
101
101
  "--color-syntax-function": "light-dark(#00458c, #a1caff)",
102
102
  "--color-syntax-type": "light-dark(#6b187c, #efa8ff)",
103
103
  "--color-syntax-variable": "light-dark(#111111, #e2e2e2)",
104
- "--color-syntax-operator": "light-dark(#6a6a6a, #9e9e9e)",
104
+ "--color-syntax-operator": "light-dark(#525252, #b9b9b9)",
105
105
  "--color-syntax-constant": "light-dark(#733100, #ffb37e)",
106
106
  "--color-syntax-tag": "light-dark(#8a0011, #ffaea7)",
107
107
  "--color-syntax-attribute": "light-dark(#584400, #eec448)",
108
108
  "--color-syntax-property": "light-dark(#005348, #90d7c8)",
109
- "--color-syntax-punctuation": "light-dark(#6a6a6a, #9e9e9e)",
109
+ "--color-syntax-punctuation": "light-dark(#525252, #b9b9b9)",
110
110
  "--color-syntax-background": "light-dark(#ffffff, #111111)",
111
111
  "--color-syntax-added": "color-mix(in srgb, var(--color-success-muted) 25%, transparent)",
112
112
  "--color-syntax-removed": "color-mix(in srgb, var(--color-error-muted) 25%, transparent)",
@@ -119,7 +119,7 @@ export const neutralTheme = {
119
119
  "--color-background-popover": "light-dark(#ffffff, #1b1b1b)",
120
120
  "--color-background-muted": "light-dark(#f1f1f1, #1b1b1b)",
121
121
  "--color-accent": "light-dark(#1b1b1b, #f1f1f1)",
122
- "--color-accent-muted": "light-dark(#f1f1f1, #262626)",
122
+ "--color-accent-muted": "light-dark(#d4d4d4, #474747)",
123
123
  "--color-neutral": "light-dark(#0000000F, #ffffff1A)",
124
124
  "--color-overlay": "light-dark(#00000080, #000000CC)",
125
125
  "--color-overlay-hover": "light-dark(#0000000D, #ffffff0D)",
@@ -318,6 +318,26 @@ export const neutralTheme = {
318
318
  "lineHeight": "var(--text-display-3-leading)"
319
319
  }
320
320
  },
321
+ "item": {
322
+ "selected": {
323
+ "--color-text-secondary": "light-dark(#474747, #c6c6c6)"
324
+ }
325
+ },
326
+ "tree-list-item": {
327
+ "selected": {
328
+ "--color-text-secondary": "light-dark(#474747, #c6c6c6)"
329
+ }
330
+ },
331
+ "file-input": {
332
+ "mode:dropzone": {
333
+ "--color-text-secondary": "light-dark(#474747, #c6c6c6)"
334
+ }
335
+ },
336
+ "citation": {
337
+ "variant:number": {
338
+ "--color-text-secondary": "light-dark(#474747, #c6c6c6)"
339
+ }
340
+ },
321
341
  "button": {
322
342
  "variant:destructive": {
323
343
  "backgroundColor": "var(--color-error-muted)",
@@ -35,6 +35,7 @@ export declare const neutralPaletteRefs: {
35
35
  readonly 5: "#111111";
36
36
  readonly 10: "#1b1b1b";
37
37
  readonly 30: "#474747";
38
+ readonly 35: "#525252";
38
39
  readonly 45: "#6a6a6a";
39
40
  readonly 60: "#919191";
40
41
  readonly 85: "#d4d4d4";
@@ -48,8 +49,11 @@ export declare const neutralPaletteRefs: {
48
49
  readonly 10: "#1b1b1b";
49
50
  readonly 15: "#262626";
50
51
  readonly 20: "#303030";
52
+ readonly 30: "#474747";
51
53
  readonly 35: "#525252";
52
54
  readonly 65: "#9e9e9e";
55
+ readonly 75: "#b9b9b9";
56
+ readonly 80: "#c6c6c6";
53
57
  readonly 85: "#d4d4d4";
54
58
  readonly 90: "#e2e2e2";
55
59
  readonly 95: "#f1f1f1";
@@ -1 +1 @@
1
- {"version":3,"file":"neutralPaletteRefs.generated.d.ts","sourceRoot":"","sources":["../src/neutralPaletteRefs.generated.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCrB,CAAC;AAEX,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"neutralPaletteRefs.generated.d.ts","sourceRoot":"","sources":["../src/neutralPaletteRefs.generated.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCrB,CAAC;AAEX,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"neutralTheme.d.ts","sourceRoot":"","sources":["../src/neutralTheme.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,YAAY,gEAoVvB,CAAC"}
1
+ {"version":3,"file":"neutralTheme.d.ts","sourceRoot":"","sources":["../src/neutralTheme.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,YAAY,gEA8WvB,CAAC"}
package/dist/source.js CHANGED
@@ -79,8 +79,8 @@ var neutralPaletteRefs = {
79
79
  dark: { 25: "#2b422b", 80: "#aad4a9", 85: "#bce0bb" }
80
80
  },
81
81
  neutral: {
82
- light: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 30: "#474747", 45: "#6a6a6a", 60: "#919191", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" },
83
- dark: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 15: "#262626", 20: "#303030", 35: "#525252", 65: "#9e9e9e", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" }
82
+ light: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 30: "#474747", 35: "#525252", 45: "#6a6a6a", 60: "#919191", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" },
83
+ dark: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 15: "#262626", 20: "#303030", 30: "#474747", 35: "#525252", 65: "#9e9e9e", 75: "#b9b9b9", 80: "#c6c6c6", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" }
84
84
  },
85
85
  orange: {
86
86
  light: { 25: "#622700", 30: "#733100", 75: "#ff9e55", 85: "#ffc7a1" },
@@ -120,17 +120,17 @@ var neutralSyntax = (0, import_theme.defineSyntaxTheme)({
120
120
  tokens: {
121
121
  keyword: [purple.light[30], purple.light[80]],
122
122
  string: [green.light[30], green.light[80]],
123
- comment: [neutral.light[45], neutral.dark[65]],
123
+ comment: [neutral.light[35], neutral.dark[75]],
124
124
  number: [orange.light[30], orange.dark[80]],
125
125
  function: [blue.light[30], blue.dark[80]],
126
126
  type: [purple.light[30], purple.light[80]],
127
127
  variable: [neutral.light[5], neutral.dark[90]],
128
- operator: [neutral.light[45], neutral.dark[65]],
128
+ operator: [neutral.light[35], neutral.dark[75]],
129
129
  constant: [orange.light[30], orange.dark[80]],
130
130
  tag: [red.light[30], red.dark[80]],
131
131
  attribute: [yellow.light[30], yellow.light[80]],
132
132
  property: [teal.light[30], teal.light[80]],
133
- punctuation: [neutral.light[45], neutral.dark[65]],
133
+ punctuation: [neutral.light[35], neutral.dark[75]],
134
134
  background: [neutral.light[100], neutral.dark[5]]
135
135
  }
136
136
  });
@@ -186,7 +186,7 @@ var neutralTheme = (0, import_theme.defineTheme)({
186
186
  "--color-background-popover": [neutral.light[100], neutral.dark[10]],
187
187
  "--color-background-muted": [neutral.light[95], neutral.dark[10]],
188
188
  "--color-accent": [neutral.light[10], neutral.dark[95]],
189
- "--color-accent-muted": [neutral.light[95], neutral.dark[15]],
189
+ "--color-accent-muted": [neutral.light[85], neutral.dark[30]],
190
190
  "--color-neutral": [
191
191
  withAlpha(neutral.light[0], "0F"),
192
192
  withAlpha(neutral.dark[100], "1A")
@@ -334,6 +334,31 @@ var neutralTheme = (0, import_theme.defineTheme)({
334
334
  "--shadow-inset-error": `inset 0px 0px 0px 2px ${withAlpha(red.light[55], "4D")}`
335
335
  },
336
336
  components: {
337
+ // In dark mode, secondary text falls under 4.5:1 on the selected fill
338
+ // and under its hover. Selected rows use the next stop that clears both.
339
+ item: {
340
+ selected: {
341
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
342
+ }
343
+ },
344
+ "tree-list-item": {
345
+ selected: {
346
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
347
+ }
348
+ },
349
+ // A dropzone's hint sits on the same fill while a file is dragged over.
350
+ // That state has no target, so the dropzone takes the lift at rest too.
351
+ "file-input": {
352
+ "mode:dropzone": {
353
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
354
+ }
355
+ },
356
+ // A numbered citation is a pill on the same fill.
357
+ citation: {
358
+ "variant:number": {
359
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
360
+ }
361
+ },
337
362
  button: {
338
363
  "variant:destructive": {
339
364
  backgroundColor: "var(--color-error-muted)",
package/dist/source.mjs CHANGED
@@ -84,8 +84,8 @@ var neutralPaletteRefs = {
84
84
  dark: { 25: "#2b422b", 80: "#aad4a9", 85: "#bce0bb" }
85
85
  },
86
86
  neutral: {
87
- light: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 30: "#474747", 45: "#6a6a6a", 60: "#919191", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" },
88
- dark: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 15: "#262626", 20: "#303030", 35: "#525252", 65: "#9e9e9e", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" }
87
+ light: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 30: "#474747", 35: "#525252", 45: "#6a6a6a", 60: "#919191", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" },
88
+ dark: { 0: "#000000", 5: "#111111", 10: "#1b1b1b", 15: "#262626", 20: "#303030", 30: "#474747", 35: "#525252", 65: "#9e9e9e", 75: "#b9b9b9", 80: "#c6c6c6", 85: "#d4d4d4", 90: "#e2e2e2", 95: "#f1f1f1", 100: "#ffffff" }
89
89
  },
90
90
  orange: {
91
91
  light: { 25: "#622700", 30: "#733100", 75: "#ff9e55", 85: "#ffc7a1" },
@@ -125,17 +125,17 @@ var neutralSyntax = defineSyntaxTheme({
125
125
  tokens: {
126
126
  keyword: [purple.light[30], purple.light[80]],
127
127
  string: [green.light[30], green.light[80]],
128
- comment: [neutral.light[45], neutral.dark[65]],
128
+ comment: [neutral.light[35], neutral.dark[75]],
129
129
  number: [orange.light[30], orange.dark[80]],
130
130
  function: [blue.light[30], blue.dark[80]],
131
131
  type: [purple.light[30], purple.light[80]],
132
132
  variable: [neutral.light[5], neutral.dark[90]],
133
- operator: [neutral.light[45], neutral.dark[65]],
133
+ operator: [neutral.light[35], neutral.dark[75]],
134
134
  constant: [orange.light[30], orange.dark[80]],
135
135
  tag: [red.light[30], red.dark[80]],
136
136
  attribute: [yellow.light[30], yellow.light[80]],
137
137
  property: [teal.light[30], teal.light[80]],
138
- punctuation: [neutral.light[45], neutral.dark[65]],
138
+ punctuation: [neutral.light[35], neutral.dark[75]],
139
139
  background: [neutral.light[100], neutral.dark[5]]
140
140
  }
141
141
  });
@@ -191,7 +191,7 @@ var neutralTheme = defineTheme({
191
191
  "--color-background-popover": [neutral.light[100], neutral.dark[10]],
192
192
  "--color-background-muted": [neutral.light[95], neutral.dark[10]],
193
193
  "--color-accent": [neutral.light[10], neutral.dark[95]],
194
- "--color-accent-muted": [neutral.light[95], neutral.dark[15]],
194
+ "--color-accent-muted": [neutral.light[85], neutral.dark[30]],
195
195
  "--color-neutral": [
196
196
  withAlpha(neutral.light[0], "0F"),
197
197
  withAlpha(neutral.dark[100], "1A")
@@ -339,6 +339,31 @@ var neutralTheme = defineTheme({
339
339
  "--shadow-inset-error": `inset 0px 0px 0px 2px ${withAlpha(red.light[55], "4D")}`
340
340
  },
341
341
  components: {
342
+ // In dark mode, secondary text falls under 4.5:1 on the selected fill
343
+ // and under its hover. Selected rows use the next stop that clears both.
344
+ item: {
345
+ selected: {
346
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
347
+ }
348
+ },
349
+ "tree-list-item": {
350
+ selected: {
351
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
352
+ }
353
+ },
354
+ // A dropzone's hint sits on the same fill while a file is dragged over.
355
+ // That state has no target, so the dropzone takes the lift at rest too.
356
+ "file-input": {
357
+ "mode:dropzone": {
358
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
359
+ }
360
+ },
361
+ // A numbered citation is a pill on the same fill.
362
+ citation: {
363
+ "variant:number": {
364
+ "--color-text-secondary": `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`
365
+ }
366
+ },
342
367
  button: {
343
368
  "variant:destructive": {
344
369
  backgroundColor: "var(--color-error-muted)",
package/dist/theme.css CHANGED
@@ -164,17 +164,17 @@
164
164
  --font-family-code: ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
165
165
  --color-syntax-keyword: light-dark(#6b187c, #efa8ff);
166
166
  --color-syntax-string: light-dark(#0b5615, #a4d6a3);
167
- --color-syntax-comment: light-dark(#6a6a6a, #9e9e9e);
167
+ --color-syntax-comment: light-dark(#525252, #b9b9b9);
168
168
  --color-syntax-number: light-dark(#733100, #ffb37e);
169
169
  --color-syntax-function: light-dark(#00458c, #a1caff);
170
170
  --color-syntax-type: light-dark(#6b187c, #efa8ff);
171
171
  --color-syntax-variable: light-dark(#111111, #e2e2e2);
172
- --color-syntax-operator: light-dark(#6a6a6a, #9e9e9e);
172
+ --color-syntax-operator: light-dark(#525252, #b9b9b9);
173
173
  --color-syntax-constant: light-dark(#733100, #ffb37e);
174
174
  --color-syntax-tag: light-dark(#8a0011, #ffaea7);
175
175
  --color-syntax-attribute: light-dark(#584400, #eec448);
176
176
  --color-syntax-property: light-dark(#005348, #90d7c8);
177
- --color-syntax-punctuation: light-dark(#6a6a6a, #9e9e9e);
177
+ --color-syntax-punctuation: light-dark(#525252, #b9b9b9);
178
178
  --color-syntax-background: light-dark(#ffffff, #111111);
179
179
  --color-syntax-added: color-mix(in srgb, var(--color-success-muted) 25%, transparent);
180
180
  --color-syntax-removed: color-mix(in srgb, var(--color-error-muted) 25%, transparent);
@@ -187,7 +187,7 @@
187
187
  --color-background-popover: light-dark(#ffffff, #1b1b1b);
188
188
  --color-background-muted: light-dark(#f1f1f1, #1b1b1b);
189
189
  --color-accent: light-dark(#1b1b1b, #f1f1f1);
190
- --color-accent-muted: light-dark(#f1f1f1, #262626);
190
+ --color-accent-muted: light-dark(#d4d4d4, #474747);
191
191
  --color-neutral: light-dark(#0000000F, #ffffff1A);
192
192
  --color-overlay: light-dark(#00000080, #000000CC);
193
193
  --color-overlay-hover: light-dark(#0000000D, #ffffff0D);
@@ -406,6 +406,22 @@
406
406
  line-height: var(--text-display-3-leading);
407
407
  }
408
408
 
409
+ .astryx-item[data-selected="selected"] {
410
+ --color-text-secondary: light-dark(#474747, #c6c6c6);
411
+ }
412
+
413
+ .astryx-tree-list-item[data-selected="selected"] {
414
+ --color-text-secondary: light-dark(#474747, #c6c6c6);
415
+ }
416
+
417
+ .astryx-file-input[data-mode="dropzone"] {
418
+ --color-text-secondary: light-dark(#474747, #c6c6c6);
419
+ }
420
+
421
+ .astryx-citation[data-variant="number"] {
422
+ --color-text-secondary: light-dark(#474747, #c6c6c6);
423
+ }
424
+
409
425
  .astryx-button[data-variant="destructive"] {
410
426
  background-color: var(--color-error-muted);
411
427
  color: var(--color-on-error-muted);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astryxdesign/theme-neutral",
3
- "version": "0.7.9-canary.4e963df",
3
+ "version": "0.7.9-canary.53468e2",
4
4
  "displayName": "Neutral Theme",
5
5
  "private": false,
6
6
  "description": "Restrained warm grays. Minimal and quiet, so the content stays the focus.",
@@ -71,11 +71,11 @@
71
71
  "lucide-react": "^1.18.0"
72
72
  },
73
73
  "peerDependencies": {
74
- "@astryxdesign/core": "0.7.9-canary.4e963df",
74
+ "@astryxdesign/core": "0.7.9-canary.53468e2",
75
75
  "react": ">=19"
76
76
  },
77
77
  "devDependencies": {
78
- "@astryxdesign/cli": "0.7.9-canary.4e963df"
78
+ "@astryxdesign/cli": "0.7.9-canary.53468e2"
79
79
  },
80
80
  "module": "./dist/source.mjs",
81
81
  "scripts": {
@@ -15,8 +15,8 @@ export const neutralPaletteRefs = {
15
15
  dark: {25: '#2b422b', 80: '#aad4a9', 85: '#bce0bb'},
16
16
  },
17
17
  neutral: {
18
- light: {0: '#000000', 5: '#111111', 10: '#1b1b1b', 30: '#474747', 45: '#6a6a6a', 60: '#919191', 85: '#d4d4d4', 90: '#e2e2e2', 95: '#f1f1f1', 100: '#ffffff'},
19
- dark: {0: '#000000', 5: '#111111', 10: '#1b1b1b', 15: '#262626', 20: '#303030', 35: '#525252', 65: '#9e9e9e', 85: '#d4d4d4', 90: '#e2e2e2', 95: '#f1f1f1', 100: '#ffffff'},
18
+ light: {0: '#000000', 5: '#111111', 10: '#1b1b1b', 30: '#474747', 35: '#525252', 45: '#6a6a6a', 60: '#919191', 85: '#d4d4d4', 90: '#e2e2e2', 95: '#f1f1f1', 100: '#ffffff'},
19
+ dark: {0: '#000000', 5: '#111111', 10: '#1b1b1b', 15: '#262626', 20: '#303030', 30: '#474747', 35: '#525252', 65: '#9e9e9e', 75: '#b9b9b9', 80: '#c6c6c6', 85: '#d4d4d4', 90: '#e2e2e2', 95: '#f1f1f1', 100: '#ffffff'},
20
20
  },
21
21
  orange: {
22
22
  light: {25: '#622700', 30: '#733100', 75: '#ff9e55', 85: '#ffc7a1'},
@@ -17,17 +17,17 @@ const neutralSyntax = defineSyntaxTheme({
17
17
  tokens: {
18
18
  keyword: [purple.light[30], purple.light[80]],
19
19
  string: [green.light[30], green.light[80]],
20
- comment: [neutral.light[45], neutral.dark[65]],
20
+ comment: [neutral.light[35], neutral.dark[75]],
21
21
  number: [orange.light[30], orange.dark[80]],
22
22
  function: [blue.light[30], blue.dark[80]],
23
23
  type: [purple.light[30], purple.light[80]],
24
24
  variable: [neutral.light[5], neutral.dark[90]],
25
- operator: [neutral.light[45], neutral.dark[65]],
25
+ operator: [neutral.light[35], neutral.dark[75]],
26
26
  constant: [orange.light[30], orange.dark[80]],
27
27
  tag: [red.light[30], red.dark[80]],
28
28
  attribute: [yellow.light[30], yellow.light[80]],
29
29
  property: [teal.light[30], teal.light[80]],
30
- punctuation: [neutral.light[45], neutral.dark[65]],
30
+ punctuation: [neutral.light[35], neutral.dark[75]],
31
31
  background: [neutral.light[100], neutral.dark[5]],
32
32
  },
33
33
  });
@@ -94,7 +94,7 @@ export const neutralTheme = defineTheme({
94
94
  '--color-background-muted': [neutral.light[95], neutral.dark[10]],
95
95
 
96
96
  '--color-accent': [neutral.light[10], neutral.dark[95]],
97
- '--color-accent-muted': [neutral.light[95], neutral.dark[15]],
97
+ '--color-accent-muted': [neutral.light[85], neutral.dark[30]],
98
98
  '--color-neutral': [
99
99
  withAlpha(neutral.light[0], '0F'),
100
100
  withAlpha(neutral.dark[100], '1A'),
@@ -273,6 +273,32 @@ export const neutralTheme = defineTheme({
273
273
  },
274
274
 
275
275
  components: {
276
+ // In dark mode, secondary text falls under 4.5:1 on the selected fill
277
+ // and under its hover. Selected rows use the next stop that clears both.
278
+ item: {
279
+ selected: {
280
+ '--color-text-secondary': `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`,
281
+ },
282
+ },
283
+ 'tree-list-item': {
284
+ selected: {
285
+ '--color-text-secondary': `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`,
286
+ },
287
+ },
288
+ // A dropzone's hint sits on the same fill while a file is dragged over.
289
+ // That state has no target, so the dropzone takes the lift at rest too.
290
+ 'file-input': {
291
+ 'mode:dropzone': {
292
+ '--color-text-secondary': `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`,
293
+ },
294
+ },
295
+ // A numbered citation is a pill on the same fill.
296
+ citation: {
297
+ 'variant:number': {
298
+ '--color-text-secondary': `light-dark(${neutral.light[30]}, ${neutral.dark[80]})`,
299
+ },
300
+ },
301
+
276
302
  button: {
277
303
  'variant:destructive': {
278
304
  backgroundColor: 'var(--color-error-muted)',