tyrell-components 1.0.0-TC51 → 1.0.0-TC53

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.
Files changed (108) hide show
  1. package/css/tyrell-theme.css +25 -2
  2. package/css/tyrell.css +4 -0
  3. package/dist/tyrell-colors-static.css +1 -316
  4. package/dist/tyrell-theme.css +1 -1443
  5. package/dist/tyrell.css +1 -1390
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.js +196 -196
  8. package/lib/components/button.d.ts +1 -1
  9. package/lib/components/button.js +260 -259
  10. package/lib/components/calendar-month.d.ts +2 -2
  11. package/lib/components/calendar-month.js +426 -416
  12. package/lib/components/calendar-navigation.js +238 -238
  13. package/lib/components/calendar.js +605 -602
  14. package/lib/components/checkbox.d.ts +1 -1
  15. package/lib/components/checkbox.js +273 -272
  16. package/lib/components/copy.d.ts +1 -1
  17. package/lib/components/copy.js +279 -278
  18. package/lib/components/date-picker.d.ts +1 -1
  19. package/lib/components/date-picker.js +1103 -1108
  20. package/lib/components/file-upload.js +404 -404
  21. package/lib/components/icon.js +141 -141
  22. package/lib/components/input.d.ts +1 -1
  23. package/lib/components/input.js +593 -596
  24. package/lib/components/modal.js +319 -319
  25. package/lib/components/option.js +167 -167
  26. package/lib/components/popup.js +233 -233
  27. package/lib/components/radio.d.ts +2 -2
  28. package/lib/components/radio.js +407 -406
  29. package/lib/components/resize-observer.js +67 -67
  30. package/lib/components/scroll-container.js +294 -294
  31. package/lib/components/select.d.ts +1 -1
  32. package/lib/components/select.js +1524 -1532
  33. package/lib/components/selected-tags.js +184 -184
  34. package/lib/components/step.js +62 -62
  35. package/lib/components/switch.d.ts +1 -1
  36. package/lib/components/switch.js +214 -213
  37. package/lib/components/tab.js +62 -62
  38. package/lib/components/tabs.d.ts +1 -0
  39. package/lib/components/tabs.js +507 -479
  40. package/lib/components/tag.d.ts +1 -1
  41. package/lib/components/tag.js +236 -235
  42. package/lib/components/textarea.d.ts +1 -1
  43. package/lib/components/textarea.js +457 -456
  44. package/lib/components/tooltip.js +283 -283
  45. package/lib/components/wizard.js +384 -384
  46. package/lib/icons/heroicons/micro.js +392 -392
  47. package/lib/icons/heroicons/mini.js +382 -382
  48. package/lib/icons/heroicons/outline.js +337 -337
  49. package/lib/icons/heroicons/solid.js +407 -407
  50. package/lib/icons/lucide.js +22843 -22843
  51. package/lib/icons/material/filled.js +9653 -9653
  52. package/lib/icons/material/outlined.js +10271 -10271
  53. package/lib/icons/material/round.js +10495 -10495
  54. package/lib/icons/material/sharp.js +9905 -9905
  55. package/lib/icons/material/two-tone.js +12792 -12792
  56. package/lib/index.js +21 -21
  57. package/lib/styles/button.js +176 -288
  58. package/lib/styles/calendar-month.js +123 -183
  59. package/lib/styles/calendar-navigation.js +60 -79
  60. package/lib/styles/calendar.js +8 -9
  61. package/lib/styles/checkbox.js +45 -72
  62. package/lib/styles/copy.js +67 -91
  63. package/lib/styles/custom-scrollbar.js +80 -100
  64. package/lib/styles/date-picker.js +261 -331
  65. package/lib/styles/field-size.d.ts +6 -0
  66. package/lib/styles/field-size.js +91 -0
  67. package/lib/styles/file-upload.js +139 -169
  68. package/lib/styles/icon.js +92 -156
  69. package/lib/styles/input.js +125 -241
  70. package/lib/styles/modal.js +67 -102
  71. package/lib/styles/option.d.ts +1 -1
  72. package/lib/styles/option.js +47 -67
  73. package/lib/styles/popup.js +34 -65
  74. package/lib/styles/radio.js +69 -96
  75. package/lib/styles/resize-observer.js +2 -5
  76. package/lib/styles/scroll-container.js +100 -130
  77. package/lib/styles/select-base.js +525 -778
  78. package/lib/styles/select.js +140 -228
  79. package/lib/styles/step.js +22 -29
  80. package/lib/styles/switch.js +34 -55
  81. package/lib/styles/tab.d.ts +1 -1
  82. package/lib/styles/tab.js +22 -29
  83. package/lib/styles/tabs.d.ts +1 -1
  84. package/lib/styles/tabs.js +175 -237
  85. package/lib/styles/tag.js +135 -188
  86. package/lib/styles/textarea.d.ts +1 -1
  87. package/lib/styles/textarea.js +205 -271
  88. package/lib/styles/tooltip.js +3 -3
  89. package/lib/styles/wizard.js +170 -226
  90. package/lib/types/common.d.ts +2 -0
  91. package/lib/types/common.js +6 -5
  92. package/lib/utils/calendar-utils.js +100 -100
  93. package/lib/utils/custom-scrollbar.js +272 -272
  94. package/lib/utils/flavor-sheet.js +14 -14
  95. package/lib/utils/icon-registry.js +127 -127
  96. package/lib/utils/loader-registry.js +3 -3
  97. package/lib/utils/locale.js +34 -34
  98. package/lib/utils/mobile.js +1 -1
  99. package/lib/utils/number-format.js +54 -54
  100. package/lib/utils/positioning.js +212 -212
  101. package/lib/utils/property-capture.js +36 -36
  102. package/lib/utils/property-manager.js +125 -125
  103. package/lib/utils/resize-observer.js +23 -23
  104. package/lib/utils/scroll-lock.js +57 -57
  105. package/lib/utils/styles.js +17 -17
  106. package/lib/version.d.ts +1 -1
  107. package/lib/version.js +1 -1
  108. package/package.json +4 -4
@@ -737,8 +737,14 @@ html:root,
737
737
  * --------------------------------------------------------------*/
738
738
  --ty-input-bg: var(--ty-surface-input);
739
739
  --ty-input-color: var(--ty-color-neutral-strong);
740
- --ty-input-border: var(--ty-color-neutral-faint);
741
- --ty-input-border-hover: var(--ty-color-neutral-soft);
740
+ /* Borders come from the BORDER family, not the neutral ink ramp: ink is
741
+ multiplied by --ty-neutral-l-factor (0.8 in dark), which crushed the
742
+ resting input border to L 0.24 against an L 0.18 input surface — half
743
+ the separation light gets (0.88 on 1.0). The border ladder is exempt
744
+ from that factor by design, and its own comments name these two as the
745
+ successors of neutral-faint / neutral-soft. */
746
+ --ty-input-border: var(--ty-border-soft);
747
+ --ty-input-border-hover: var(--ty-border);
742
748
  --ty-input-border-focus: var(--ty-color-primary);
743
749
  --ty-input-placeholder: var(--ty-color-neutral-soft);
744
750
  --ty-input-disabled-bg: var(--ty-color-neutral-faint);
@@ -751,6 +757,23 @@ html:root,
751
757
  );
752
758
  }
753
759
 
760
+ /* Dark takes the border family one rung harder than light. Genuine per-mode
761
+ DATA, not a formula duplicate: a small L delta at the dark end of an
762
+ emissive screen reads much weaker than the same delta mid-scale (the same
763
+ reason dark hover/active offsets are bigger — see Tier 5 dark), so light's
764
+ soft/base pair lands too quiet here. Dark uses base/bold instead.
765
+
766
+ Placed AFTER the block above on purpose: html.dark and html:root are both
767
+ (0,1,1), so source order is what decides this one — moving it up to the
768
+ dial block at the top of the file would lose the tie. */
769
+ html.dark,
770
+ html[data-theme="dark"],
771
+ [data-ty-theme].dark,
772
+ [data-ty-theme][data-theme="dark"] {
773
+ --ty-input-border: var(--ty-border);
774
+ --ty-input-border-hover: var(--ty-border-bold);
775
+ }
776
+
754
777
  /* ----------------------------------------------------------------
755
778
  * Tier 5 — SOLID (implementation)
756
779
  * Solid is its OWN system, NOT the text/emphasis ramp. The dials
package/css/tyrell.css CHANGED
@@ -382,12 +382,16 @@ DESIGN SYSTEM TOKENS
382
382
  ty-button's 4px ladder (see button.ts): field sm = button md (32px),
383
383
  field md = button lg (36px), field lg = button xl (40px) — a button
384
384
  and a field of the paired size sit flush, same height, in a row. */
385
+ --ty-size-xs: 1.75rem;
386
+ /* 28px */
385
387
  --ty-size-sm: 2rem;
386
388
  /* 32px */
387
389
  --ty-size-md: 2.25rem;
388
390
  /* 36px */
389
391
  --ty-size-lg: 2.5rem;
390
392
  /* 40px */
393
+ --ty-size-xl: 2.75rem;
394
+ /* 44px */
391
395
 
392
396
  /* Z-Index Scale */
393
397
  --ty-z-auto: auto;
@@ -1,316 +1 @@
1
- /* =================================================================
2
- Tyrell Static Colors — hardcoded fallback color tokens
3
-
4
- Every --ty-color-*, --ty-bg-{flavor}-*, --ty-border-*, --ty-surface-*,
5
- --ty-text-*, --ty-input-{color-related}-* and --ty-solid-* token tyrell.css
6
- used to hardcode directly, now split out here. Load this file alongside
7
- tyrell.css if you want static, no-theme-engine colors.
8
-
9
- If you want dynamic theming (custom seeds, live theme switching, per-flavor
10
- tuning), load tyrell-theme.css INSTEAD — it defines the same token names via
11
- oklch() formulas and, loaded after tyrell.css, wins by source order. Loading
12
- both is harmless (tyrell-theme.css always wins) but redundant.
13
- ================================================================= */
14
-
15
- html {
16
- /* Primary */
17
- --ty-color-primary-strong: #163793;
18
- --ty-color-primary-bold: #304c9f;
19
- --ty-color-primary: #466bce;
20
- --ty-color-primary-soft: #60a5fa;
21
- --ty-color-primary-faint: #93c5fd;
22
-
23
- /* Success */
24
- --ty-color-success-strong: #177858;
25
- --ty-color-success-bold: #3e9779;
26
- --ty-color-success: #3eaa86;
27
- --ty-color-success-soft: #64b399;
28
- --ty-color-success-faint: #7fd4b2;
29
-
30
- /* Danger */
31
- --ty-color-danger-strong: #b91c1c;
32
- --ty-color-danger-bold: #dc2626;
33
- --ty-color-danger: #ef4444;
34
- --ty-color-danger-soft: #f87171;
35
- --ty-color-danger-faint: #fca5a5;
36
-
37
- /* Warning */
38
- --ty-color-warning-strong: #e86400;
39
- --ty-color-warning-bold: #ee7f00;
40
- --ty-color-warning: #f59e0b;
41
- --ty-color-warning-soft: #fbbf24;
42
- --ty-color-warning-faint: #fcd34d;
43
-
44
- /* Neutral */
45
- --ty-color-neutral-strong: #000000;
46
- --ty-color-neutral-bold: #000000;
47
- --ty-color-neutral: #111827;
48
- --ty-color-neutral-soft: #374151;
49
- --ty-color-neutral-faint: #9ca3af;
50
-
51
- /* Semantic backgrounds */
52
- --ty-bg-primary: #e3eefc;
53
- --ty-bg-primary-bold: #d5e4f8;
54
- --ty-bg-primary-soft: #eff6ff;
55
- --ty-bg-success: #d1fae5;
56
- --ty-bg-success-bold: #a7f3d0;
57
- --ty-bg-success-soft: #ecfdf5;
58
- --ty-bg-danger: #fee2e2;
59
- --ty-bg-danger-bold: #fecaca;
60
- --ty-bg-danger-soft: #fef2f2;
61
- --ty-bg-warning: #fef3c7;
62
- --ty-bg-warning-bold: #fde68a;
63
- --ty-bg-warning-soft: #fffbeb;
64
- --ty-bg-neutral: #e0e0e0;
65
- --ty-bg-neutral-bold: #cecece;
66
- --ty-bg-neutral-soft: #ededed;
67
-
68
- /* Borders */
69
- --ty-border: #e5e7eb;
70
- --ty-border-bold: #d1d5db;
71
- --ty-border-strong: #6b7280;
72
- --ty-border-soft: #f3f4f6;
73
- --ty-border-faint: #fafafa;
74
-
75
- /* Semantic borders */
76
- --ty-border-primary: var(--ty-color-primary);
77
- --ty-border-success: var(--ty-color-success);
78
- --ty-border-danger: var(--ty-color-danger);
79
- --ty-border-warning: var(--ty-color-warning);
80
- --ty-border-neutral: var(--ty-color-neutral);
81
-
82
- /* Surfaces */
83
- --ty-surface-canvas: #fcfcfc;
84
- --ty-surface-content: #ffffff;
85
- --ty-surface-elevated: #ffffff;
86
- --ty-surface-floating: #ffffff;
87
- --ty-surface-input: #ffffff;
88
-
89
- /* Surface borders */
90
- --ty-elevated-border: #e5e7eb;
91
- --ty-floating-border: #e5e7eb;
92
- --ty-content-border: #e5e7eb;
93
-
94
- /* Text hierarchy */
95
- --ty-text: #111827;
96
- --ty-text-bold: #000000;
97
- --ty-text-strong: #000000;
98
- --ty-text-soft: #374151;
99
- --ty-text-faint: #9ca3af;
100
-
101
- /* Input component tokens */
102
- --ty-input-bg: #ffffff;
103
- --ty-input-color: #111827;
104
- --ty-input-border: #e5e7eb;
105
- --ty-input-border-hover: #d1d5db;
106
- --ty-input-border-focus: var(--ty-color-primary);
107
- --ty-input-shadow-focus: rgba(59, 130, 246, 0.1);
108
- --ty-input-placeholder: #9ca3af;
109
- --ty-input-disabled-bg: #f9fafb;
110
- --ty-input-disabled-border: #e5e7eb;
111
- --ty-input-disabled-color: #9ca3af;
112
-
113
- /* Input semantic state borders */
114
- --ty-input-success-border: var(--ty-color-success-soft);
115
- --ty-input-danger-border: var(--ty-color-danger-soft);
116
- --ty-input-warning-border: var(--ty-color-warning-soft);
117
-
118
- /* Solid button fills — Primary */
119
- --ty-solid-primary: #4076b9;
120
- --ty-solid-primary-strong: var(--ty-color-primary-bold);
121
- --ty-solid-primary-soft: #7ea7d9;
122
- --ty-solid-primary-hover: var(--ty-solid-primary-strong);
123
- --ty-solid-primary-active: var(--ty-solid-primary-strong);
124
- --ty-solid-primary-fg: white;
125
- --ty-solid-primary-strong-fg: white;
126
- --ty-solid-primary-soft-fg: black;
127
-
128
- /* Solid button fills — Success */
129
- --ty-solid-success: #3bb68d;
130
- --ty-solid-success-strong: #27956e;
131
- --ty-solid-success-soft: #69b99e;
132
- --ty-solid-success-hover: var(--ty-solid-success-strong);
133
- --ty-solid-success-active: var(--ty-solid-success-strong);
134
- --ty-solid-success-fg: black;
135
- --ty-solid-success-strong-fg: black;
136
- --ty-solid-success-soft-fg: black;
137
-
138
- /* Solid button fills — Danger */
139
- --ty-solid-danger: #df5b5b;
140
- --ty-solid-danger-strong: #cc3e3e;
141
- --ty-solid-danger-soft: #d57a7a;
142
- --ty-solid-danger-hover: var(--ty-solid-danger-strong);
143
- --ty-solid-danger-active: var(--ty-solid-danger-strong);
144
- --ty-solid-danger-fg: black;
145
- --ty-solid-danger-strong-fg: white;
146
- --ty-solid-danger-soft-fg: black;
147
-
148
- /* Solid button fills — Warning */
149
- --ty-solid-warning: #e1a644;
150
- --ty-solid-warning-strong: #f59e0b;
151
- --ty-solid-warning-soft: #fbc56d;
152
- --ty-solid-warning-hover: var(--ty-solid-warning-strong);
153
- --ty-solid-warning-active: var(--ty-solid-warning-strong);
154
- --ty-solid-warning-fg: black;
155
- --ty-solid-warning-strong-fg: black;
156
- --ty-solid-warning-soft-fg: black;
157
-
158
- /* Solid button fills — Neutral */
159
- --ty-solid-neutral: #414141;
160
- --ty-solid-neutral-strong: #000000;
161
- --ty-solid-neutral-soft: #6e6e6e;
162
- --ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
163
- --ty-solid-neutral-active: var(--ty-solid-neutral-strong);
164
- --ty-solid-neutral-fg: white;
165
- --ty-solid-neutral-strong-fg: white;
166
- --ty-solid-neutral-soft-fg: white;
167
-
168
- }
169
-
170
- /* =================================================================
171
- DARK THEME OVERRIDES
172
- ================================================================= */
173
-
174
- html.dark,
175
- html[data-theme="dark"] {
176
- /* Primary */
177
- --ty-color-primary-strong: #9cbde5;
178
- --ty-color-primary-bold: #6c9bd5;
179
- --ty-color-primary: #4976ae;
180
- --ty-color-primary-soft: #4b698b;
181
- --ty-color-primary-faint: #445b77;
182
-
183
- /* Success */
184
- --ty-color-success-strong: #c2f0df;
185
- --ty-color-success-bold: #6ee7b7;
186
- --ty-color-success: #3aba8b;
187
- --ty-color-success-soft: #459679;
188
- --ty-color-success-faint: #1b795c;
189
-
190
- /* Danger */
191
- --ty-color-danger-strong: #ffabab;
192
- --ty-color-danger-bold: #e58787;
193
- --ty-color-danger: #d06f6f;
194
- --ty-color-danger-soft: #b06666;
195
- --ty-color-danger-faint: #aa6e6e;
196
-
197
- /* Warning */
198
- --ty-color-warning-strong: #fde68a;
199
- --ty-color-warning-bold: #fcd34d;
200
- --ty-color-warning: #fbbf24;
201
- --ty-color-warning-soft: #f59e0b;
202
- --ty-color-warning-faint: #a06726;
203
-
204
- /* Neutral */
205
- --ty-color-neutral-strong: #ffffff;
206
- --ty-color-neutral-bold: #f9fafb;
207
- --ty-color-neutral: #d6d6d6;
208
- --ty-color-neutral-soft: #696969;
209
- --ty-color-neutral-faint: #474747;
210
-
211
- /* Semantic backgrounds */
212
- --ty-bg-primary: #394159;
213
- --ty-bg-primary-bold: #43517a;
214
- --ty-bg-primary-soft: #323a4f;
215
- --ty-bg-success: #3a4442;
216
- --ty-bg-success-bold: #405752;
217
- --ty-bg-success-soft: #2f3b38;
218
- --ty-bg-danger: #522828;
219
- --ty-bg-danger-bold: #853535;
220
- --ty-bg-danger-soft: #483c3c;
221
- --ty-bg-warning: #694555;
222
- --ty-bg-warning-bold: #743953;
223
- --ty-bg-warning-soft: #45333b;
224
- --ty-bg-neutral: #323232;
225
- --ty-bg-neutral-bold: #414141;
226
- --ty-bg-neutral-soft: #242424;
227
-
228
- /* Borders */
229
- --ty-border: #3e3e3e;
230
- --ty-border-bold: #666666;
231
- --ty-border-strong: #8c8c8c;
232
- --ty-border-soft: #1f2937;
233
- --ty-border-faint: #030712;
234
-
235
- /* Surfaces */
236
- --ty-surface-canvas: black;
237
- --ty-surface-content: #1a1a1a;
238
- --ty-surface-elevated: #282828;
239
- --ty-surface-floating: #343434;
240
- --ty-surface-input: #1f2937;
241
-
242
- /* Surface borders */
243
- --ty-elevated-border: #414141;
244
- --ty-floating-border: #494949;
245
- --ty-content-border: #030712;
246
-
247
- /* Text hierarchy */
248
- --ty-text: #d6d6d6;
249
- --ty-text-bold: #f9fafb;
250
- --ty-text-strong: #ffffff;
251
- --ty-text-soft: #7f8590;
252
- --ty-text-faint: #555a63;
253
-
254
- /* Input component tokens */
255
- --ty-input-bg: #1b1b1b;
256
- --ty-input-color: #f9fafb;
257
- --ty-input-border: #3a3a3a;
258
- --ty-input-border-hover: #505050;
259
- --ty-input-border-focus: var(--ty-color-primary);
260
- --ty-input-shadow-focus: rgba(96, 165, 250, 0.1);
261
- --ty-input-placeholder: #717171;
262
- --ty-input-disabled-bg: #282828;
263
- --ty-input-disabled-border: #2e2e2e;
264
- --ty-input-disabled-color: #717171;
265
-
266
- /* Solid button fills — Primary */
267
- --ty-solid-primary: #3e536c;
268
- --ty-solid-primary-strong: #426084;
269
- --ty-solid-primary-soft: #343f4c;
270
- --ty-solid-primary-hover: var(--ty-solid-primary-strong);
271
- --ty-solid-primary-active: var(--ty-solid-primary-strong);
272
- --ty-solid-primary-fg: white;
273
- --ty-solid-primary-strong-fg: white;
274
- --ty-solid-primary-soft-fg: white;
275
-
276
- /* Solid button fills — Success */
277
- --ty-solid-success: #3bb68d;
278
- --ty-solid-success-strong: #459679;
279
- --ty-solid-success-soft: #285748;
280
- --ty-solid-success-hover: var(--ty-solid-success-strong);
281
- --ty-solid-success-active: var(--ty-solid-success-strong);
282
- --ty-solid-success-fg: black;
283
- --ty-solid-success-strong-fg: black;
284
- --ty-solid-success-soft-fg: white;
285
-
286
- /* Solid button fills — Danger */
287
- --ty-solid-danger: #df5b5b;
288
- --ty-solid-danger-strong: #cc3e3e;
289
- --ty-solid-danger-soft: #875656;
290
- --ty-solid-danger-hover: var(--ty-solid-danger-strong);
291
- --ty-solid-danger-active: var(--ty-solid-danger-strong);
292
- --ty-solid-danger-fg: black;
293
- --ty-solid-danger-strong-fg: white;
294
- --ty-solid-danger-soft-fg: white;
295
-
296
- /* Solid button fills — Warning */
297
- --ty-solid-warning: #e1a644;
298
- --ty-solid-warning-strong: #f59e0b;
299
- --ty-solid-warning-soft: #8b6334;
300
- --ty-solid-warning-hover: var(--ty-solid-warning-strong);
301
- --ty-solid-warning-active: var(--ty-solid-warning-strong);
302
- --ty-solid-warning-fg: black;
303
- --ty-solid-warning-strong-fg: black;
304
- --ty-solid-warning-soft-fg: white;
305
-
306
- /* Solid button fills — Neutral */
307
- --ty-solid-neutral: #414141;
308
- --ty-solid-neutral-strong: #f5f5f5;
309
- --ty-solid-neutral-soft: #2a2a2a;
310
- --ty-solid-neutral-hover: #4c4c4c;
311
- --ty-solid-neutral-active: #4c4c4c;
312
- --ty-solid-neutral-fg: white;
313
- --ty-solid-neutral-strong-fg: black;
314
- --ty-solid-neutral-soft-fg: white;
315
-
316
- }
1
+ html{--ty-color-primary-strong: #163793;--ty-color-primary-bold: #304c9f;--ty-color-primary: #466bce;--ty-color-primary-soft: #60a5fa;--ty-color-primary-faint: #93c5fd;--ty-color-success-strong: #177858;--ty-color-success-bold: #3e9779;--ty-color-success: #3eaa86;--ty-color-success-soft: #64b399;--ty-color-success-faint: #7fd4b2;--ty-color-danger-strong: #b91c1c;--ty-color-danger-bold: #dc2626;--ty-color-danger: #ef4444;--ty-color-danger-soft: #f87171;--ty-color-danger-faint: #fca5a5;--ty-color-warning-strong: #e86400;--ty-color-warning-bold: #ee7f00;--ty-color-warning: #f59e0b;--ty-color-warning-soft: #fbbf24;--ty-color-warning-faint: #fcd34d;--ty-color-neutral-strong: #000000;--ty-color-neutral-bold: #000000;--ty-color-neutral: #111827;--ty-color-neutral-soft: #374151;--ty-color-neutral-faint: #9ca3af;--ty-bg-primary: #e3eefc;--ty-bg-primary-bold: #d5e4f8;--ty-bg-primary-soft: #eff6ff;--ty-bg-success: #d1fae5;--ty-bg-success-bold: #a7f3d0;--ty-bg-success-soft: #ecfdf5;--ty-bg-danger: #fee2e2;--ty-bg-danger-bold: #fecaca;--ty-bg-danger-soft: #fef2f2;--ty-bg-warning: #fef3c7;--ty-bg-warning-bold: #fde68a;--ty-bg-warning-soft: #fffbeb;--ty-bg-neutral: #e0e0e0;--ty-bg-neutral-bold: #cecece;--ty-bg-neutral-soft: #ededed;--ty-border: #e5e7eb;--ty-border-bold: #d1d5db;--ty-border-strong: #6b7280;--ty-border-soft: #f3f4f6;--ty-border-faint: #fafafa;--ty-border-primary: var(--ty-color-primary);--ty-border-success: var(--ty-color-success);--ty-border-danger: var(--ty-color-danger);--ty-border-warning: var(--ty-color-warning);--ty-border-neutral: var(--ty-color-neutral);--ty-surface-canvas: #fcfcfc;--ty-surface-content: #ffffff;--ty-surface-elevated: #ffffff;--ty-surface-floating: #ffffff;--ty-surface-input: #ffffff;--ty-elevated-border: #e5e7eb;--ty-floating-border: #e5e7eb;--ty-content-border: #e5e7eb;--ty-text: #111827;--ty-text-bold: #000000;--ty-text-strong: #000000;--ty-text-soft: #374151;--ty-text-faint: #9ca3af;--ty-input-bg: #ffffff;--ty-input-color: #111827;--ty-input-border: #e5e7eb;--ty-input-border-hover: #d1d5db;--ty-input-border-focus: var(--ty-color-primary);--ty-input-shadow-focus: rgba(59, 130, 246, .1);--ty-input-placeholder: #9ca3af;--ty-input-disabled-bg: #f9fafb;--ty-input-disabled-border: #e5e7eb;--ty-input-disabled-color: #9ca3af;--ty-input-success-border: var(--ty-color-success-soft);--ty-input-danger-border: var(--ty-color-danger-soft);--ty-input-warning-border: var(--ty-color-warning-soft);--ty-solid-primary: #4076b9;--ty-solid-primary-strong: var(--ty-color-primary-bold);--ty-solid-primary-soft: #7ea7d9;--ty-solid-primary-hover: var(--ty-solid-primary-strong);--ty-solid-primary-active: var(--ty-solid-primary-strong);--ty-solid-primary-fg: white;--ty-solid-primary-strong-fg: white;--ty-solid-primary-soft-fg: black;--ty-solid-success: #3bb68d;--ty-solid-success-strong: #27956e;--ty-solid-success-soft: #69b99e;--ty-solid-success-hover: var(--ty-solid-success-strong);--ty-solid-success-active: var(--ty-solid-success-strong);--ty-solid-success-fg: black;--ty-solid-success-strong-fg: black;--ty-solid-success-soft-fg: black;--ty-solid-danger: #df5b5b;--ty-solid-danger-strong: #cc3e3e;--ty-solid-danger-soft: #d57a7a;--ty-solid-danger-hover: var(--ty-solid-danger-strong);--ty-solid-danger-active: var(--ty-solid-danger-strong);--ty-solid-danger-fg: black;--ty-solid-danger-strong-fg: white;--ty-solid-danger-soft-fg: black;--ty-solid-warning: #e1a644;--ty-solid-warning-strong: #f59e0b;--ty-solid-warning-soft: #fbc56d;--ty-solid-warning-hover: var(--ty-solid-warning-strong);--ty-solid-warning-active: var(--ty-solid-warning-strong);--ty-solid-warning-fg: black;--ty-solid-warning-strong-fg: black;--ty-solid-warning-soft-fg: black;--ty-solid-neutral: #414141;--ty-solid-neutral-strong: #000000;--ty-solid-neutral-soft: #6e6e6e;--ty-solid-neutral-hover: var(--ty-solid-neutral-strong);--ty-solid-neutral-active: var(--ty-solid-neutral-strong);--ty-solid-neutral-fg: white;--ty-solid-neutral-strong-fg: white;--ty-solid-neutral-soft-fg: white}html.dark,html[data-theme=dark]{--ty-color-primary-strong: #9cbde5;--ty-color-primary-bold: #6c9bd5;--ty-color-primary: #4976ae;--ty-color-primary-soft: #4b698b;--ty-color-primary-faint: #445b77;--ty-color-success-strong: #c2f0df;--ty-color-success-bold: #6ee7b7;--ty-color-success: #3aba8b;--ty-color-success-soft: #459679;--ty-color-success-faint: #1b795c;--ty-color-danger-strong: #ffabab;--ty-color-danger-bold: #e58787;--ty-color-danger: #d06f6f;--ty-color-danger-soft: #b06666;--ty-color-danger-faint: #aa6e6e;--ty-color-warning-strong: #fde68a;--ty-color-warning-bold: #fcd34d;--ty-color-warning: #fbbf24;--ty-color-warning-soft: #f59e0b;--ty-color-warning-faint: #a06726;--ty-color-neutral-strong: #ffffff;--ty-color-neutral-bold: #f9fafb;--ty-color-neutral: #d6d6d6;--ty-color-neutral-soft: #696969;--ty-color-neutral-faint: #474747;--ty-bg-primary: #394159;--ty-bg-primary-bold: #43517a;--ty-bg-primary-soft: #323a4f;--ty-bg-success: #3a4442;--ty-bg-success-bold: #405752;--ty-bg-success-soft: #2f3b38;--ty-bg-danger: #522828;--ty-bg-danger-bold: #853535;--ty-bg-danger-soft: #483c3c;--ty-bg-warning: #694555;--ty-bg-warning-bold: #743953;--ty-bg-warning-soft: #45333b;--ty-bg-neutral: #323232;--ty-bg-neutral-bold: #414141;--ty-bg-neutral-soft: #242424;--ty-border: #3e3e3e;--ty-border-bold: #666666;--ty-border-strong: #8c8c8c;--ty-border-soft: #1f2937;--ty-border-faint: #030712;--ty-surface-canvas: black;--ty-surface-content: #1a1a1a;--ty-surface-elevated: #282828;--ty-surface-floating: #343434;--ty-surface-input: #1f2937;--ty-elevated-border: #414141;--ty-floating-border: #494949;--ty-content-border: #030712;--ty-text: #d6d6d6;--ty-text-bold: #f9fafb;--ty-text-strong: #ffffff;--ty-text-soft: #7f8590;--ty-text-faint: #555a63;--ty-input-bg: #1b1b1b;--ty-input-color: #f9fafb;--ty-input-border: #3a3a3a;--ty-input-border-hover: #505050;--ty-input-border-focus: var(--ty-color-primary);--ty-input-shadow-focus: rgba(96, 165, 250, .1);--ty-input-placeholder: #717171;--ty-input-disabled-bg: #282828;--ty-input-disabled-border: #2e2e2e;--ty-input-disabled-color: #717171;--ty-solid-primary: #3e536c;--ty-solid-primary-strong: #426084;--ty-solid-primary-soft: #343f4c;--ty-solid-primary-hover: var(--ty-solid-primary-strong);--ty-solid-primary-active: var(--ty-solid-primary-strong);--ty-solid-primary-fg: white;--ty-solid-primary-strong-fg: white;--ty-solid-primary-soft-fg: white;--ty-solid-success: #3bb68d;--ty-solid-success-strong: #459679;--ty-solid-success-soft: #285748;--ty-solid-success-hover: var(--ty-solid-success-strong);--ty-solid-success-active: var(--ty-solid-success-strong);--ty-solid-success-fg: black;--ty-solid-success-strong-fg: black;--ty-solid-success-soft-fg: white;--ty-solid-danger: #df5b5b;--ty-solid-danger-strong: #cc3e3e;--ty-solid-danger-soft: #875656;--ty-solid-danger-hover: var(--ty-solid-danger-strong);--ty-solid-danger-active: var(--ty-solid-danger-strong);--ty-solid-danger-fg: black;--ty-solid-danger-strong-fg: white;--ty-solid-danger-soft-fg: white;--ty-solid-warning: #e1a644;--ty-solid-warning-strong: #f59e0b;--ty-solid-warning-soft: #8b6334;--ty-solid-warning-hover: var(--ty-solid-warning-strong);--ty-solid-warning-active: var(--ty-solid-warning-strong);--ty-solid-warning-fg: black;--ty-solid-warning-strong-fg: black;--ty-solid-warning-soft-fg: white;--ty-solid-neutral: #414141;--ty-solid-neutral-strong: #f5f5f5;--ty-solid-neutral-soft: #2a2a2a;--ty-solid-neutral-hover: #4c4c4c;--ty-solid-neutral-active: #4c4c4c;--ty-solid-neutral-fg: white;--ty-solid-neutral-strong-fg: black;--ty-solid-neutral-soft-fg: white}