tyrell-components 1.0.0-RC14 → 1.0.0-RC15

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 (113) hide show
  1. package/README.md +9 -1
  2. package/css/tyrell-theme.css +25 -2
  3. package/css/tyrell.css +4 -0
  4. package/dist/tyrell-colors-static.css +1 -316
  5. package/dist/tyrell-theme.css +1 -1443
  6. package/dist/tyrell.css +1 -1390
  7. package/dist/tyrell.js +1 -1
  8. package/lib/base/ty-component.js +196 -196
  9. package/lib/components/button.d.ts +1 -1
  10. package/lib/components/button.js +261 -259
  11. package/lib/components/calendar-month.d.ts +2 -2
  12. package/lib/components/calendar-month.js +439 -416
  13. package/lib/components/calendar-navigation.js +238 -238
  14. package/lib/components/calendar.d.ts +5 -3
  15. package/lib/components/calendar.js +611 -602
  16. package/lib/components/checkbox.d.ts +1 -1
  17. package/lib/components/checkbox.js +273 -272
  18. package/lib/components/copy.d.ts +1 -1
  19. package/lib/components/copy.js +280 -278
  20. package/lib/components/date-picker.d.ts +8 -1
  21. package/lib/components/date-picker.js +1128 -1108
  22. package/lib/components/file-upload.js +404 -404
  23. package/lib/components/icon.js +141 -141
  24. package/lib/components/input.d.ts +1 -1
  25. package/lib/components/input.js +593 -596
  26. package/lib/components/modal.js +319 -319
  27. package/lib/components/option.js +167 -167
  28. package/lib/components/popup.js +233 -233
  29. package/lib/components/radio.d.ts +2 -2
  30. package/lib/components/radio.js +407 -406
  31. package/lib/components/resize-observer.js +67 -67
  32. package/lib/components/scroll-container.js +292 -294
  33. package/lib/components/select.d.ts +71 -12
  34. package/lib/components/select.js +1605 -1529
  35. package/lib/components/selected-tags.d.ts +1 -1
  36. package/lib/components/selected-tags.js +188 -182
  37. package/lib/components/step.js +62 -62
  38. package/lib/components/switch.d.ts +1 -1
  39. package/lib/components/switch.js +214 -213
  40. package/lib/components/tab.js +62 -62
  41. package/lib/components/tabs.d.ts +1 -0
  42. package/lib/components/tabs.js +523 -492
  43. package/lib/components/tag.d.ts +1 -1
  44. package/lib/components/tag.js +236 -235
  45. package/lib/components/textarea.d.ts +1 -1
  46. package/lib/components/textarea.js +457 -456
  47. package/lib/components/tooltip.js +283 -283
  48. package/lib/components/wizard.js +384 -384
  49. package/lib/icons/heroicons/micro.js +392 -392
  50. package/lib/icons/heroicons/mini.js +382 -382
  51. package/lib/icons/heroicons/outline.js +337 -337
  52. package/lib/icons/heroicons/solid.js +407 -407
  53. package/lib/icons/lucide.js +22843 -22843
  54. package/lib/icons/material/filled.js +9653 -9653
  55. package/lib/icons/material/outlined.js +10271 -10271
  56. package/lib/icons/material/round.js +10495 -10495
  57. package/lib/icons/material/sharp.js +9905 -9905
  58. package/lib/icons/material/two-tone.js +12792 -12792
  59. package/lib/index.js +21 -21
  60. package/lib/styles/button.js +200 -302
  61. package/lib/styles/calendar-month.js +123 -183
  62. package/lib/styles/calendar-navigation.d.ts +1 -1
  63. package/lib/styles/calendar-navigation.js +64 -79
  64. package/lib/styles/calendar.d.ts +1 -1
  65. package/lib/styles/calendar.js +9 -9
  66. package/lib/styles/checkbox.js +45 -72
  67. package/lib/styles/copy.js +67 -91
  68. package/lib/styles/custom-scrollbar.js +80 -100
  69. package/lib/styles/date-picker.js +261 -331
  70. package/lib/styles/field-size.d.ts +6 -0
  71. package/lib/styles/field-size.js +91 -0
  72. package/lib/styles/file-upload.js +139 -169
  73. package/lib/styles/icon.js +92 -156
  74. package/lib/styles/input.js +125 -241
  75. package/lib/styles/modal.js +67 -102
  76. package/lib/styles/option.d.ts +1 -1
  77. package/lib/styles/option.js +47 -67
  78. package/lib/styles/popup.js +34 -65
  79. package/lib/styles/radio.js +69 -96
  80. package/lib/styles/resize-observer.js +2 -5
  81. package/lib/styles/scroll-container.js +100 -130
  82. package/lib/styles/select-base.js +596 -773
  83. package/lib/styles/select.js +140 -228
  84. package/lib/styles/step.js +22 -29
  85. package/lib/styles/switch.js +34 -55
  86. package/lib/styles/tab.d.ts +1 -1
  87. package/lib/styles/tab.js +22 -29
  88. package/lib/styles/tabs.d.ts +1 -1
  89. package/lib/styles/tabs.js +186 -180
  90. package/lib/styles/tag.js +135 -188
  91. package/lib/styles/textarea.d.ts +1 -1
  92. package/lib/styles/textarea.js +205 -271
  93. package/lib/styles/tooltip.js +3 -3
  94. package/lib/styles/wizard.js +170 -226
  95. package/lib/types/common.d.ts +2 -0
  96. package/lib/types/common.js +6 -5
  97. package/lib/utils/calendar-utils.js +100 -100
  98. package/lib/utils/custom-scrollbar.js +272 -272
  99. package/lib/utils/flavor-sheet.js +14 -14
  100. package/lib/utils/icon-registry.js +127 -127
  101. package/lib/utils/loader-registry.js +3 -3
  102. package/lib/utils/locale.js +34 -34
  103. package/lib/utils/mobile.js +1 -1
  104. package/lib/utils/number-format.js +54 -54
  105. package/lib/utils/positioning.js +212 -212
  106. package/lib/utils/property-capture.js +36 -36
  107. package/lib/utils/property-manager.js +125 -125
  108. package/lib/utils/resize-observer.js +23 -23
  109. package/lib/utils/scroll-lock.js +57 -57
  110. package/lib/utils/styles.js +17 -17
  111. package/lib/version.d.ts +1 -1
  112. package/lib/version.js +1 -1
  113. package/package.json +4 -4
package/README.md CHANGED
@@ -7,9 +7,17 @@ TypeScript web components for universal UI development.
7
7
  ## Installation
8
8
 
9
9
  ```bash
10
- npm install tyrell-components
10
+ npm install tyrell-components # latest -> the RC line
11
+ npm install tyrell-components@tc # tc -> the TC line (current work)
11
12
  ```
12
13
 
14
+ **Two dist-tags, and `latest` is not the newest version.** `latest`/`rc` point
15
+ at the RC line — the promoted, stable releases. `tc` points at the TC line,
16
+ where features land first and which can run several versions and weeks ahead of
17
+ `latest`. A plain `npm install` therefore gets you the RC, deliberately. Reach
18
+ for `@tc` when you want the newest components; check
19
+ [CHANGELOG.md](../../CHANGELOG.md) for what is only on the TC line so far.
20
+
13
21
  ## Usage
14
22
 
15
23
  ### Import All Components
@@ -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}