@tangible/ui 0.0.2 → 0.0.3

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.
@@ -1,3 +1,4 @@
1
+ @charset "UTF-8";
1
2
  @keyframes tui-fadeFromOpaque {
2
3
  from {
3
4
  opacity: 1;
@@ -29,6 +30,21 @@
29
30
  --tui-accordion-trigger-hover
30
31
  */
31
32
  /* @tui-tokens
33
+ --tui-avatar-size
34
+ --tui-avatar-radius
35
+ --tui-avatar-bg
36
+ --tui-avatar-fg
37
+ --tui-avatar-border
38
+ --tui-avatar-indicator-bg
39
+ --tui-avatar-indicator-fg
40
+ --tui-avatar-overflow-bg
41
+ --tui-avatar-overflow-fg
42
+ --tui-avatar-group-overlap
43
+ --tui-avatar-group-gap
44
+ --tui-avatar-group-border-width
45
+ --tui-avatar-group-border-color
46
+ */
47
+ /* @tui-tokens
32
48
  --tui-button-bg
33
49
  --tui-button-fg
34
50
  --tui-button-border
@@ -36,6 +52,9 @@
36
52
  --tui-button-bg-interact
37
53
  --tui-button-fg-interact
38
54
  --tui-button-border-interact
55
+ --tui-control-height-sm
56
+ --tui-control-height-md
57
+ --tui-control-height-lg
39
58
  */
40
59
  /* @tui-tokens
41
60
  --tui-card-bg
@@ -48,12 +67,98 @@
48
67
  --tui-card-foot-basis
49
68
  */
50
69
  /* @tui-tokens
70
+ --tui-input-accent
71
+ */
72
+ /* @tui-tokens
73
+ --tui-chip-bg
74
+ --tui-chip-fg
75
+ --tui-chip-border
76
+ --tui-chip-icon
77
+ --tui-chip-radius
78
+ */
79
+ /* @tui-tokens
80
+ --tui-chip-group-gap
81
+ */
82
+ /* @tui-tokens
83
+ --tui-combobox-input-bg
84
+ --tui-combobox-input-fg
85
+ --tui-combobox-input-border
86
+ --tui-combobox-input-border-focus
87
+ --tui-combobox-input-radius
88
+ --tui-combobox-content-bg
89
+ --tui-combobox-content-border
90
+ --tui-combobox-content-shadow
91
+ --tui-combobox-content-radius
92
+ --tui-combobox-option-bg-hover
93
+ --tui-combobox-option-bg-selected
94
+ */
95
+ /* @tui-tokens
96
+ --tui-content-indicator-bg
97
+ --tui-content-indicator-border
98
+ --tui-content-indicator-fg
99
+ */
100
+ /* @tui-tokens
101
+ --tui-dropdown-bg
102
+ --tui-dropdown-fg
103
+ --tui-dropdown-radius
104
+ --tui-dropdown-shadow
105
+ --tui-dropdown-border
106
+ --tui-dropdown-z
107
+ --tui-dropdown-min-width
108
+ --tui-dropdown-item-bg-hover
109
+ --tui-dropdown-item-bg-active
110
+ */
111
+ /* @tui-tokens
51
112
  --tui-field-gap
52
113
  --tui-field-label-fg
53
114
  --tui-field-helper-fg
54
115
  --tui-field-error-fg
55
116
  */
56
117
  /* @tui-tokens
118
+ --tui-multiselect-trigger-bg
119
+ --tui-multiselect-trigger-fg
120
+ --tui-multiselect-trigger-border
121
+ --tui-multiselect-trigger-border-focus
122
+ --tui-multiselect-trigger-radius
123
+ --tui-multiselect-content-bg
124
+ --tui-multiselect-content-border
125
+ --tui-multiselect-content-shadow
126
+ --tui-multiselect-content-radius
127
+ --tui-multiselect-option-bg-hover
128
+ --tui-multiselect-option-bg-selected
129
+ --tui-multiselect-chip-bg
130
+ --tui-multiselect-chip-fg
131
+ */
132
+ /* @tui-tokens
133
+ --tui-select-trigger-bg
134
+ --tui-select-trigger-fg
135
+ --tui-select-trigger-border
136
+ --tui-select-trigger-border-focus
137
+ --tui-select-trigger-radius
138
+ --tui-select-content-bg
139
+ --tui-select-content-border
140
+ --tui-select-content-shadow
141
+ --tui-select-content-radius
142
+ --tui-select-option-bg-hover
143
+ --tui-select-option-bg-selected
144
+ */
145
+ /* @tui-tokens
146
+ --tui-icon-size-xs
147
+ --tui-icon-size-sm
148
+ --tui-icon-size-md
149
+ --tui-icon-size-lg
150
+ --tui-icon-size-xl
151
+ --tui-icon-size-xxl
152
+ */
153
+ /* @tui-tokens
154
+ --tui-icon-button-bg
155
+ --tui-icon-button-fg
156
+ --tui-icon-button-border
157
+ --tui-icon-button-radius
158
+ --tui-icon-button-bg-interact
159
+ --tui-icon-button-fg-interact
160
+ */
161
+ /* @tui-tokens
57
162
  --tui-modal-z
58
163
  --tui-modal-max
59
164
  --tui-modal-backdrop
@@ -64,6 +169,10 @@
64
169
  --tui-modal-shadow
65
170
  */
66
171
  /* @tui-tokens
172
+ --tui-move-handle-size
173
+ --tui-move-handle-icon-size
174
+ */
175
+ /* @tui-tokens
67
176
  --tui-notice-bg
68
177
  --tui-notice-border
69
178
  --tui-notice-stripe
@@ -73,6 +182,75 @@
73
182
  --tui-notice-foot-basis
74
183
  */
75
184
  /* @tui-tokens
185
+ --tui-overlap-stack-overlap
186
+ --tui-overlap-stack-overflow-bg
187
+ --tui-overlap-stack-overflow-fg
188
+ --tui-overlap-stack-item-radius
189
+ --tui-overlap-stack-border-width
190
+ --tui-overlap-stack-border-color
191
+ */
192
+ /* @tui-tokens
193
+ --tui-pager-gap
194
+ */
195
+ /* @tui-tokens
196
+ --tui-radio-accent
197
+ */
198
+ /* @tui-tokens
199
+ --tui-rating-active
200
+ --tui-rating-inactive
201
+ --tui-rating-scale
202
+ */
203
+ /* @tui-tokens
204
+ --tui-progress-track
205
+ --tui-progress-fill
206
+ --tui-progress-label
207
+ --tui-progress-radius
208
+ --tui-progress-z1-fill
209
+ --tui-progress-z2-fill
210
+ --tui-progress-z3-fill
211
+ --tui-progress-z4-fill
212
+ --tui-progress-z5-fill
213
+ */
214
+ /* @tui-tokens
215
+ --tui-segmented-gap
216
+ --tui-segmented-padding
217
+ --tui-segmented-radius
218
+ --tui-segmented-bg
219
+ --tui-segmented-border
220
+ --tui-segmented-item-padding
221
+ --tui-segmented-item-radius
222
+ --tui-segmented-item-fg
223
+ --tui-segmented-item-bg-active
224
+ --tui-segmented-item-fg-active
225
+ */
226
+ /* @tui-tokens
227
+ --tui-switch-accent
228
+ --tui-switch-track-off
229
+ */
230
+ /* @tui-tokens
231
+ --tui-sidebar-width
232
+ --tui-sidebar-bg
233
+ --tui-sidebar-border
234
+ --tui-sidebar-padding
235
+ --tui-sidebar-z
236
+ */
237
+ /* @tui-tokens: none — inherits --tui-progress-track, --tui-progress-fill */
238
+ /* @tui-tokens
239
+ --tui-steplist-gap
240
+ --tui-steplist-padding
241
+ --tui-steplist-radius
242
+ --tui-steplist-current-bg
243
+ --tui-steplist-current-border
244
+ --tui-steplist-hover-bg
245
+ */
246
+ /* @tui-tokens
247
+ --tui-table-border
248
+ --tui-table-bg
249
+ --tui-table-bg-head
250
+ --tui-table-fg
251
+ --tui-table-padding
252
+ */
253
+ /* @tui-tokens
76
254
  --tui-tabs-gap
77
255
  --tui-tabs-list-bg
78
256
  --tui-tabs-list-padding
@@ -88,6 +266,20 @@
88
266
  --tui-tabs-indicator
89
267
  --tui-tabs-indicator-size
90
268
  */
269
+ /* @tui-tokens: none — inherits from input (--tui-input-*) */
270
+ /* @tui-tokens
271
+ --tui-input-group-gap
272
+ */
273
+ /* @tui-tokens
274
+ --tui-toolbar-gap
275
+ --tui-toolbar-padding
276
+ */
277
+ /* @tui-tokens
278
+ --tui-tooltip-bg
279
+ --tui-tooltip-fg
280
+ --tui-tooltip-radius
281
+ --tui-tooltip-z
282
+ */
91
283
 
92
284
  :where(.tui-interface) {
93
285
  /* UA chrome: native controls, scrollbars render in light mode */
@@ -119,6 +311,7 @@
119
311
  /* Neutral: surfaces */
120
312
  --tui-color-bg: #fff;
121
313
  --tui-color-bg-surface: #fafafa;
314
+ --tui-color-bg-muted: #F3F4F6;
122
315
  --tui-color-bg-elevated: #fff;
123
316
  --tui-color-bg-inverted: #111928;
124
317
  --tui-color-bg-overlay: rgba(0, 0, 0, var(--tui-opacity-backdrop));
@@ -189,7 +382,8 @@
189
382
  /* Backgrounds */
190
383
  --tui-color-bg: #111928;
191
384
  --tui-color-bg-surface: #202836;
192
- --tui-color-bg-elevated: #374151;
385
+ --tui-color-bg-muted: #374151;
386
+ --tui-color-bg-elevated: #111928;
193
387
  --tui-color-bg-inverted: #F9FAFB;
194
388
  --tui-color-bg-overlay: rgba(0, 0, 0, 0.7);
195
389
  /* Text */
@@ -243,7 +437,8 @@
243
437
  /* Backgrounds */
244
438
  --tui-color-bg: #111928;
245
439
  --tui-color-bg-surface: #202836;
246
- --tui-color-bg-elevated: #374151;
440
+ --tui-color-bg-muted: #374151;
441
+ --tui-color-bg-elevated: #111928;
247
442
  --tui-color-bg-inverted: #F9FAFB;
248
443
  --tui-color-bg-overlay: rgba(0, 0, 0, 0.7);
249
444
  /* Text */
@@ -290,6 +485,96 @@
290
485
  --tui-shadow-color: 0, 0, 0;
291
486
  }
292
487
  }
488
+ :where(.tui-interface) {
489
+ /* Accent: section (fallback → warning) */
490
+ --tui-theme-section-base: var(--tui-theme-warning-base);
491
+ --tui-theme-section-soft: var(--tui-theme-warning-subtle);
492
+ --tui-theme-section-border: var(--tui-theme-warning-soft);
493
+ --tui-theme-section-on-base: var(--tui-color-fg-on-accent);
494
+ --tui-theme-section-on-soft: var(--tui-color-fg);
495
+ /* Accent: page (fallback → primary) */
496
+ --tui-theme-page-base: var(--tui-theme-primary-base);
497
+ --tui-theme-page-soft: var(--tui-theme-primary-subtle);
498
+ --tui-theme-page-border: var(--tui-theme-primary-soft);
499
+ --tui-theme-page-on-base: var(--tui-color-fg-on-accent);
500
+ --tui-theme-page-on-soft: var(--tui-color-fg);
501
+ /* Accent: step (fallback → info) */
502
+ --tui-theme-step-base: var(--tui-theme-info-base);
503
+ --tui-theme-step-soft: var(--tui-theme-info-subtle);
504
+ --tui-theme-step-border: var(--tui-theme-info-soft);
505
+ --tui-theme-step-on-base: var(--tui-color-fg-on-accent);
506
+ --tui-theme-step-on-soft: var(--tui-color-fg);
507
+ }
508
+
509
+ @supports (color: oklch(50% 0.1 0deg)) {
510
+ :where(.tui-interface) {
511
+ /* Accent: section (OKLCH c=0.17 h=55) */
512
+ --tui-palette-section-c: 0.17;
513
+ --tui-palette-section-h: 55;
514
+ --tui-theme-section-base: oklch(0.62 var(--tui-palette-section-c) var(--tui-palette-section-h));
515
+ --tui-theme-section-soft: oklch(0.92 calc(var(--tui-palette-section-c) * 0.55) var(--tui-palette-section-h));
516
+ --tui-theme-section-border: oklch(0.80 calc(var(--tui-palette-section-c) * 0.45) var(--tui-palette-section-h));
517
+ --tui-theme-section-on-base: oklch(0.98 0 0);
518
+ --tui-theme-section-on-soft: var(--tui-color-fg);
519
+ /* Accent: page (OKLCH c=0.15 h=280) */
520
+ --tui-palette-page-c: 0.15;
521
+ --tui-palette-page-h: 280;
522
+ --tui-theme-page-base: oklch(0.62 var(--tui-palette-page-c) var(--tui-palette-page-h));
523
+ --tui-theme-page-soft: oklch(0.92 calc(var(--tui-palette-page-c) * 0.55) var(--tui-palette-page-h));
524
+ --tui-theme-page-border: oklch(0.80 calc(var(--tui-palette-page-c) * 0.45) var(--tui-palette-page-h));
525
+ --tui-theme-page-on-base: oklch(0.98 0 0);
526
+ --tui-theme-page-on-soft: var(--tui-color-fg);
527
+ /* Accent: step (OKLCH c=0.14 h=200) */
528
+ --tui-palette-step-c: 0.14;
529
+ --tui-palette-step-h: 200;
530
+ --tui-theme-step-base: oklch(0.62 var(--tui-palette-step-c) var(--tui-palette-step-h));
531
+ --tui-theme-step-soft: oklch(0.92 calc(var(--tui-palette-step-c) * 0.55) var(--tui-palette-step-h));
532
+ --tui-theme-step-border: oklch(0.80 calc(var(--tui-palette-step-c) * 0.45) var(--tui-palette-step-h));
533
+ --tui-theme-step-on-base: oklch(0.98 0 0);
534
+ --tui-theme-step-on-soft: var(--tui-color-fg);
535
+ }
536
+ }
537
+ @supports (color: oklch(50% 0.1 0deg)) {
538
+ :where(.tui-interface)[data-theme=dark] {
539
+ --tui-theme-section-base: oklch(0.72 var(--tui-palette-section-c) var(--tui-palette-section-h));
540
+ --tui-theme-section-soft: oklch(0.30 calc(var(--tui-palette-section-c) * 0.35) var(--tui-palette-section-h));
541
+ --tui-theme-section-border: oklch(0.38 calc(var(--tui-palette-section-c) * 0.30) var(--tui-palette-section-h));
542
+ --tui-theme-section-on-base: oklch(0.18 0 0);
543
+ --tui-theme-section-on-soft: var(--tui-color-fg);
544
+ --tui-theme-page-base: oklch(0.72 var(--tui-palette-page-c) var(--tui-palette-page-h));
545
+ --tui-theme-page-soft: oklch(0.30 calc(var(--tui-palette-page-c) * 0.35) var(--tui-palette-page-h));
546
+ --tui-theme-page-border: oklch(0.38 calc(var(--tui-palette-page-c) * 0.30) var(--tui-palette-page-h));
547
+ --tui-theme-page-on-base: oklch(0.18 0 0);
548
+ --tui-theme-page-on-soft: var(--tui-color-fg);
549
+ --tui-theme-step-base: oklch(0.72 var(--tui-palette-step-c) var(--tui-palette-step-h));
550
+ --tui-theme-step-soft: oklch(0.30 calc(var(--tui-palette-step-c) * 0.35) var(--tui-palette-step-h));
551
+ --tui-theme-step-border: oklch(0.38 calc(var(--tui-palette-step-c) * 0.30) var(--tui-palette-step-h));
552
+ --tui-theme-step-on-base: oklch(0.18 0 0);
553
+ --tui-theme-step-on-soft: var(--tui-color-fg);
554
+ }
555
+ }
556
+
557
+ @media (prefers-color-scheme: dark) {
558
+ @supports (color: oklch(50% 0.1 0deg)) {
559
+ :where(.tui-interface)[data-theme=auto] {
560
+ --tui-theme-section-base: oklch(0.72 var(--tui-palette-section-c) var(--tui-palette-section-h));
561
+ --tui-theme-section-soft: oklch(0.30 calc(var(--tui-palette-section-c) * 0.35) var(--tui-palette-section-h));
562
+ --tui-theme-section-border: oklch(0.38 calc(var(--tui-palette-section-c) * 0.30) var(--tui-palette-section-h));
563
+ --tui-theme-section-on-base: oklch(0.18 0 0);
564
+ --tui-theme-section-on-soft: var(--tui-color-fg);
565
+ --tui-theme-page-base: oklch(0.72 var(--tui-palette-page-c) var(--tui-palette-page-h));
566
+ --tui-theme-page-soft: oklch(0.30 calc(var(--tui-palette-page-c) * 0.35) var(--tui-palette-page-h));
567
+ --tui-theme-page-border: oklch(0.38 calc(var(--tui-palette-page-c) * 0.30) var(--tui-palette-page-h));
568
+ --tui-theme-page-on-base: oklch(0.18 0 0);
569
+ --tui-theme-page-on-soft: var(--tui-color-fg);
570
+ --tui-theme-step-base: oklch(0.72 var(--tui-palette-step-c) var(--tui-palette-step-h));
571
+ --tui-theme-step-soft: oklch(0.30 calc(var(--tui-palette-step-c) * 0.35) var(--tui-palette-step-h));
572
+ --tui-theme-step-border: oklch(0.38 calc(var(--tui-palette-step-c) * 0.30) var(--tui-palette-step-h));
573
+ --tui-theme-step-on-base: oklch(0.18 0 0);
574
+ --tui-theme-step-on-soft: var(--tui-color-fg);
575
+ }
576
+ }
577
+ }
293
578
  @media (prefers-reduced-motion: reduce) {
294
579
  :where(.tui-interface) {
295
580
  --tui-motion-duration: 0ms;
@@ -349,6 +634,7 @@
349
634
  0 2px 4px rgba(var(--tui-shadow-color), 0.06);
350
635
  --tui-shadow-lg: 0 10px 15px rgba(var(--tui-shadow-color), 0.1),
351
636
  0 4px 6px rgba(var(--tui-shadow-color), 0.05);
637
+ --tui-shadow-dropdown: 0 4px 12px rgba(var(--tui-shadow-color), 0.15);
352
638
  }
353
639
 
354
640
 
@@ -483,6 +769,19 @@
483
769
  :where(.tui-interface) .tui-accordion__panel[data-state=open] > .tui-accordion__panel-content {
484
770
  animation: tui-fadeFromTransparent var(--tui-motion-duration) var(--tui-motion-timing) forwards;
485
771
  }
772
+ @media (forced-colors: active) {
773
+ :where(.tui-interface) .tui-accordion__item {
774
+ border-color: CanvasText;
775
+ }
776
+ :where(.tui-interface) .tui-accordion__trigger:hover:not(:disabled) {
777
+ background-color: Highlight;
778
+ color: HighlightText;
779
+ forced-color-adjust: none;
780
+ }
781
+ :where(.tui-interface) .tui-accordion__trigger:focus-visible {
782
+ outline-color: Highlight;
783
+ }
784
+ }
486
785
  :where(.tui-interface) {
487
786
  --tui-avatar-palette-coral: #c62828;
488
787
  --tui-avatar-palette-amber: #f59e0b;
@@ -663,8 +962,8 @@
663
962
  :where(.tui-interface) :is(button, [type=button], [type=submit]) {
664
963
  cursor: pointer;
665
964
  font-family: inherit;
666
- font-size: var(--tui-typography-size-md);
667
- line-height: 1.4;
965
+ font-size: var(--tui-button-font-size, var(--tui-typography-size-md));
966
+ line-height: var(--tui-button-line-height, 1.4);
668
967
  border: unset;
669
968
  box-shadow: unset;
670
969
  height: auto;
@@ -684,11 +983,11 @@
684
983
  --_border: var(--tui-button-border, var(--tui-theme-primary-base));
685
984
  --_radius: var(--tui-button-radius, var(--tui-radius-md));
686
985
  --_bg-interact: var(--tui-button-bg-interact, var(--tui-theme-primary-stronger));
687
- --_fg-interact: var(--tui-button-fg-interact, var(--tui-palette-color-white));
986
+ --_fg-interact: var(--tui-button-fg-interact, var(--tui-color-fg-on-accent));
688
987
  --_border-interact: var(--tui-button-border-interact, var(--tui-theme-primary-stronger));
689
- font-size: var(--tui-typography-size-md);
690
- font-weight: normal;
691
- line-height: 1.4;
988
+ font-size: var(--tui-button-font-size, var(--tui-typography-size-md));
989
+ font-weight: var(--tui-button-font-weight, normal);
990
+ line-height: var(--tui-button-line-height, 1.4);
692
991
  display: inline-flex;
693
992
  align-self: center;
694
993
  text-align: center;
@@ -696,6 +995,7 @@
696
995
  align-items: center;
697
996
  padding-inline: 1.2em;
698
997
  padding-block: 0.575em;
998
+ min-height: var(--tui-control-height-md);
699
999
  gap: 0.5em;
700
1000
  background-color: var(--_bg) !important;
701
1001
  color: var(--_fg) !important;
@@ -752,14 +1052,16 @@
752
1052
  width: 100%;
753
1053
  }
754
1054
  .tui-interface .tui-button.is-size-lg {
755
- font-size: var(--tui-typography-size-lg);
1055
+ font-size: var(--tui-button-font-size-lg, var(--tui-typography-size-lg));
1056
+ min-height: var(--tui-control-height-lg);
756
1057
  }
757
1058
  .tui-interface .tui-button.is-size-sm {
758
- font-size: var(--tui-typography-size-sm);
1059
+ font-size: var(--tui-button-font-size-sm, var(--tui-typography-size-sm));
1060
+ min-height: var(--tui-control-height-sm);
759
1061
  }
760
1062
  .tui-interface .tui-button.is-size-xs {
761
1063
  --_radius: var(--tui-button-radius, var(--tui-radius-sm));
762
- font-size: var(--tui-typography-size-xs);
1064
+ font-size: var(--tui-button-font-size-xs, var(--tui-typography-size-xs));
763
1065
  padding: var(--tui-spacing-xxs);
764
1066
  min-width: 2em;
765
1067
  }
@@ -892,9 +1194,9 @@
892
1194
  --_border-interact: var(--tui-button-border-interact, var(--tui-theme-primary-stronger));
893
1195
  }
894
1196
  .tui-interface input[type=file]::file-selector-button {
895
- font-size: var(--tui-typography-size-md);
896
- font-weight: normal;
897
- line-height: 1.4;
1197
+ font-size: var(--tui-button-font-size, var(--tui-typography-size-md));
1198
+ font-weight: var(--tui-button-font-weight, normal);
1199
+ line-height: var(--tui-button-line-height, 1.4);
898
1200
  display: inline-flex;
899
1201
  align-self: center;
900
1202
  text-align: center;
@@ -902,6 +1204,7 @@
902
1204
  align-items: center;
903
1205
  padding-inline: 1.2em;
904
1206
  padding-block: 0.575em;
1207
+ min-height: var(--tui-control-height-md);
905
1208
  gap: 0.5em;
906
1209
  background-color: var(--_bg);
907
1210
  color: var(--_fg);
@@ -1068,7 +1371,7 @@
1068
1371
  --_border: var(--_border-interact);
1069
1372
  }
1070
1373
  :where(.tui-interface) .tui-card.has-interaction:active, :where(.tui-interface) .tui-card.has-interaction.active {
1071
- --_border: var(--tui-card-border-active, var(--tui-palette-color-gray-50));
1374
+ --_border: var(--tui-card-border-active, var(--tui-theme-secondary-subtlest));
1072
1375
  }
1073
1376
  :where(.tui-interface) .tui-card.has-interaction [disabled],
1074
1377
  :where(.tui-interface) .tui-card.has-interaction .disabled {
@@ -1102,6 +1405,11 @@
1102
1405
  :where(.tui-interface) .tui-inline-choice.is-disabled input {
1103
1406
  cursor: not-allowed;
1104
1407
  }
1408
+ @media (forced-colors: active) {
1409
+ :where(.tui-interface) input[type=checkbox] {
1410
+ forced-color-adjust: auto;
1411
+ }
1412
+ }
1105
1413
  :where(.tui-interface) .tui-chip {
1106
1414
  --_bg: var(--tui-chip-bg, var(--tui-theme-secondary-subtle));
1107
1415
  --_fg: var(--tui-chip-fg, var(--tui-theme-secondary-strongest));
@@ -1407,15 +1715,18 @@
1407
1715
  margin: 0;
1408
1716
  --_fs: var(--tui-typography-size-md);
1409
1717
  --_py: var(--tui-spacing-xxs);
1718
+ --_height: calc(2em + 2 * var(--_py));
1410
1719
  font-size: var(--_fs);
1411
1720
  padding-block: var(--_py);
1412
- min-height: calc(2em + 2 * var(--_py));
1721
+ min-height: var(--tui-control-height-md, var(--_height));
1413
1722
  }
1414
1723
  .tui-interface .tui-combobox__input.is-size-sm {
1415
1724
  --_fs: var(--tui-typography-size-sm);
1725
+ min-height: var(--tui-control-height-sm, var(--_height));
1416
1726
  }
1417
1727
  .tui-interface .tui-combobox__input.is-size-lg {
1418
1728
  --_fs: var(--tui-typography-size-lg);
1729
+ min-height: var(--tui-control-height-lg, var(--_height));
1419
1730
  }
1420
1731
  .tui-interface .tui-combobox__input {
1421
1732
  display: block;
@@ -1482,7 +1793,7 @@
1482
1793
  :where(.tui-interface) .tui-combobox__content {
1483
1794
  --_bg: var(--tui-combobox-content-bg, var(--tui-select-content-bg, var(--tui-color-bg-elevated)));
1484
1795
  --_border: var(--tui-combobox-content-border, var(--tui-select-content-border, var(--tui-color-border)));
1485
- --_shadow: var(--tui-combobox-content-shadow, var(--tui-select-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.15)));
1796
+ --_shadow: var(--tui-combobox-content-shadow, var(--tui-select-content-shadow, var(--tui-shadow-dropdown)));
1486
1797
  --_radius: var(--tui-combobox-content-radius, var(--tui-select-content-radius, var(--tui-radius-md)));
1487
1798
  z-index: var(--tui-layer-top);
1488
1799
  min-width: 160px;
@@ -1701,7 +2012,7 @@
1701
2012
  :where(.tui-interface) .tui-dropdown .tui-button[aria-disabled=true],
1702
2013
  :where(.tui-interface) .tui-dropdown .tui-icon-button:disabled,
1703
2014
  :where(.tui-interface) .tui-dropdown .tui-icon-button[aria-disabled=true] {
1704
- opacity: 0.5;
2015
+ opacity: var(--tui-opacity-disabled);
1705
2016
  cursor: not-allowed;
1706
2017
  pointer-events: none;
1707
2018
  }
@@ -1790,15 +2101,18 @@
1790
2101
  margin: 0;
1791
2102
  --_fs: var(--tui-typography-size-md);
1792
2103
  --_py: var(--tui-spacing-xxs);
2104
+ --_height: calc(2em + 2 * var(--_py));
1793
2105
  font-size: var(--_fs);
1794
2106
  padding-block: var(--_py);
1795
- min-height: calc(2em + 2 * var(--_py));
2107
+ min-height: var(--tui-control-height-md, var(--_height));
1796
2108
  }
1797
2109
  .tui-interface .tui-multiselect__trigger.is-size-sm {
1798
2110
  --_fs: var(--tui-typography-size-sm);
2111
+ min-height: var(--tui-control-height-sm, var(--_height));
1799
2112
  }
1800
2113
  .tui-interface .tui-multiselect__trigger.is-size-lg {
1801
2114
  --_fs: var(--tui-typography-size-lg);
2115
+ min-height: var(--tui-control-height-lg, var(--_height));
1802
2116
  }
1803
2117
  .tui-interface .tui-multiselect__trigger {
1804
2118
  display: inline-flex;
@@ -1909,7 +2223,7 @@
1909
2223
  :where(.tui-interface) .tui-multiselect__content {
1910
2224
  --_bg: var(--tui-multiselect-content-bg, var(--tui-color-bg-elevated));
1911
2225
  --_border: var(--tui-multiselect-content-border, var(--tui-color-border));
1912
- --_shadow: var(--tui-multiselect-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));
2226
+ --_shadow: var(--tui-multiselect-content-shadow, var(--tui-shadow-dropdown));
1913
2227
  --_radius: var(--tui-multiselect-content-radius, var(--tui-radius-md));
1914
2228
  z-index: var(--tui-layer-top);
1915
2229
  min-width: 160px;
@@ -2055,15 +2369,18 @@
2055
2369
  margin: 0;
2056
2370
  --_fs: var(--tui-typography-size-md);
2057
2371
  --_py: var(--tui-spacing-xxs);
2372
+ --_height: calc(2em + 2 * var(--_py));
2058
2373
  font-size: var(--_fs);
2059
2374
  padding-block: var(--_py);
2060
- min-height: calc(2em + 2 * var(--_py));
2375
+ min-height: var(--tui-control-height-md, var(--_height));
2061
2376
  }
2062
2377
  .tui-interface .tui-select__trigger.is-size-sm {
2063
2378
  --_fs: var(--tui-typography-size-sm);
2379
+ min-height: var(--tui-control-height-sm, var(--_height));
2064
2380
  }
2065
2381
  .tui-interface .tui-select__trigger.is-size-lg {
2066
2382
  --_fs: var(--tui-typography-size-lg);
2383
+ min-height: var(--tui-control-height-lg, var(--_height));
2067
2384
  }
2068
2385
  .tui-interface .tui-select__trigger {
2069
2386
  display: inline-flex;
@@ -2139,7 +2456,7 @@
2139
2456
  :where(.tui-interface) .tui-select__content {
2140
2457
  --_bg: var(--tui-select-content-bg, var(--tui-color-bg-elevated));
2141
2458
  --_border: var(--tui-select-content-border, var(--tui-color-border));
2142
- --_shadow: var(--tui-select-content-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));
2459
+ --_shadow: var(--tui-select-content-shadow, var(--tui-shadow-dropdown));
2143
2460
  --_radius: var(--tui-select-content-radius, var(--tui-radius-md));
2144
2461
  z-index: var(--tui-layer-top);
2145
2462
  min-width: 160px;
@@ -2275,9 +2592,10 @@
2275
2592
  --_radius: var(--tui-input-radius, var(--tui-radius-md));
2276
2593
  --_fs: var(--tui-typography-size-md);
2277
2594
  --_py: var(--tui-spacing-xxs);
2595
+ --_height: calc(2em + 2 * var(--_py));
2278
2596
  font-size: var(--_fs);
2279
2597
  padding-block: var(--_py);
2280
- min-height: calc(2em + 2 * var(--_py));
2598
+ min-height: var(--tui-control-height-md, var(--_height));
2281
2599
  }
2282
2600
  :where(.tui-interface) :is(.tui-input,
2283
2601
  input[type=text],
@@ -2298,6 +2616,7 @@
2298
2616
  textarea,
2299
2617
  select).is-size-sm {
2300
2618
  --_fs: var(--tui-typography-size-sm);
2619
+ min-height: var(--tui-control-height-sm, var(--_height));
2301
2620
  }
2302
2621
  :where(.tui-interface) :is(.tui-input,
2303
2622
  input[type=text],
@@ -2318,6 +2637,7 @@
2318
2637
  textarea,
2319
2638
  select).is-size-lg {
2320
2639
  --_fs: var(--tui-typography-size-lg);
2640
+ min-height: var(--tui-control-height-lg, var(--_height));
2321
2641
  }
2322
2642
  :where(.tui-interface) :is(.tui-input,
2323
2643
  input[type=text],
@@ -2574,8 +2894,9 @@
2574
2894
  align-items: center;
2575
2895
  justify-content: center;
2576
2896
  position: relative;
2577
- width: 2rem;
2578
- height: 2rem;
2897
+ --_size: var(--tui-control-height-sm, 2rem);
2898
+ width: var(--_size);
2899
+ height: var(--_size);
2579
2900
  background-color: var(--_bg);
2580
2901
  color: var(--_fg);
2581
2902
  border: var(--tui-border-width) solid var(--_border);
@@ -2585,7 +2906,7 @@
2585
2906
  transition-property: background-color, color, border-color;
2586
2907
  }
2587
2908
  .tui-interface .tui-icon-button .tui-icon {
2588
- font-size: 1rem;
2909
+ font-size: calc(var(--_size) * 0.5);
2589
2910
  }
2590
2911
  .tui-interface .tui-icon-button:hover {
2591
2912
  --_bg: var(--_bg-interact);
@@ -2607,26 +2928,14 @@
2607
2928
  opacity: var(--tui-opacity-disabled);
2608
2929
  }
2609
2930
  .tui-interface .tui-icon-button.is-size-xs {
2610
- width: 1.5rem;
2611
- height: 1.5rem;
2931
+ --_size: 1.5rem;
2612
2932
  --_radius: var(--tui-icon-button-radius, var(--tui-radius-sm));
2613
2933
  }
2614
- .tui-interface .tui-icon-button.is-size-xs .tui-icon {
2615
- font-size: 0.75rem;
2616
- }
2617
2934
  .tui-interface .tui-icon-button.is-size-md {
2618
- width: 2.5rem;
2619
- height: 2.5rem;
2620
- }
2621
- .tui-interface .tui-icon-button.is-size-md .tui-icon {
2622
- font-size: 1.25rem;
2935
+ --_size: var(--tui-control-height-md, 2.5rem);
2623
2936
  }
2624
2937
  .tui-interface .tui-icon-button.is-size-lg {
2625
- width: 3rem;
2626
- height: 3rem;
2627
- }
2628
- .tui-interface .tui-icon-button.is-size-lg .tui-icon {
2629
- font-size: 1.5rem;
2938
+ --_size: var(--tui-control-height-lg, 3rem);
2630
2939
  }
2631
2940
  .tui-interface .tui-icon-button.is-theme-primary {
2632
2941
  --_fg: var(--tui-icon-button-fg, var(--tui-theme-primary-base));
@@ -2848,6 +3157,239 @@
2848
3157
  .tui-modal-open {
2849
3158
  overflow: hidden;
2850
3159
  }
3160
+ .tui-interface .tui-move-handle {
3161
+ --_size: var(--tui-move-handle-size, 40px);
3162
+ --_icon-size: var(--tui-move-handle-icon-size, calc(var(--_size) * 0.6));
3163
+ --_fg: var(--tui-color-fg-muted);
3164
+ --_bg: var(--tui-color-bg-muted);
3165
+ --_fg-interact: var(--tui-theme-primary-base);
3166
+ --_bg-interact: var(--tui-theme-primary-subtlest);
3167
+ --_center-height: 24px;
3168
+ display: inline-flex;
3169
+ flex-direction: column;
3170
+ align-items: center;
3171
+ width: var(--_size);
3172
+ min-height: calc(var(--_center-height) + 2 * 16px);
3173
+ border-radius: var(--tui-radius-sm);
3174
+ background-color: var(--_bg);
3175
+ }
3176
+ .tui-interface .tui-move-handle__up {
3177
+ border-start-start-radius: var(--tui-radius-sm);
3178
+ border-start-end-radius: var(--tui-radius-sm);
3179
+ }
3180
+ .tui-interface .tui-move-handle__down {
3181
+ border-end-start-radius: var(--tui-radius-sm);
3182
+ border-end-end-radius: var(--tui-radius-sm);
3183
+ }
3184
+ .tui-interface .tui-move-handle__up, .tui-interface .tui-move-handle__down {
3185
+ appearance: none;
3186
+ border: none;
3187
+ background: none;
3188
+ padding: 0;
3189
+ margin: 0;
3190
+ font: inherit;
3191
+ cursor: pointer;
3192
+ display: flex;
3193
+ align-items: center;
3194
+ justify-content: center;
3195
+ width: 100%;
3196
+ height: 16px;
3197
+ color: var(--_fg);
3198
+ transition-duration: var(--tui-motion-duration);
3199
+ transition-timing-function: var(--tui-motion-timing);
3200
+ transition-property: background-color, color;
3201
+ }
3202
+ .tui-interface .tui-move-handle__up .tui-icon, .tui-interface .tui-move-handle__down .tui-icon {
3203
+ font-size: var(--_icon-size);
3204
+ line-height: 0.5;
3205
+ }
3206
+ .tui-interface .tui-move-handle__up:hover, .tui-interface .tui-move-handle__down:hover {
3207
+ color: var(--_fg-interact);
3208
+ background-color: var(--_bg-interact);
3209
+ }
3210
+ .tui-interface .tui-move-handle__up:focus-visible, .tui-interface .tui-move-handle__down:focus-visible {
3211
+ color: var(--_fg-interact);
3212
+ outline: var(--tui-focus-ring-width) solid var(--tui-focus-ring-color);
3213
+ outline-offset: var(--tui-focus-ring-offset);
3214
+ }
3215
+ .tui-interface .tui-move-handle__up:disabled, .tui-interface .tui-move-handle__down:disabled {
3216
+ pointer-events: none;
3217
+ opacity: var(--tui-opacity-disabled);
3218
+ }
3219
+ .tui-interface .tui-move-handle__center {
3220
+ display: flex;
3221
+ align-items: stretch;
3222
+ justify-content: center;
3223
+ flex: 1;
3224
+ width: var(--_size);
3225
+ min-height: var(--_center-height);
3226
+ }
3227
+ .tui-interface .tui-move-handle__center:first-child {
3228
+ border-start-start-radius: var(--tui-radius-sm);
3229
+ border-start-end-radius: var(--tui-radius-sm);
3230
+ }
3231
+ .tui-interface .tui-move-handle__center:last-child {
3232
+ border-end-start-radius: var(--tui-radius-sm);
3233
+ border-end-end-radius: var(--tui-radius-sm);
3234
+ }
3235
+ .tui-interface .tui-move-handle__handle {
3236
+ appearance: none;
3237
+ border: none;
3238
+ background: none;
3239
+ padding: 0;
3240
+ margin: 0;
3241
+ font: inherit;
3242
+ cursor: grab;
3243
+ display: flex;
3244
+ flex: 1;
3245
+ align-items: center;
3246
+ justify-content: center;
3247
+ width: var(--_size);
3248
+ border-radius: inherit;
3249
+ color: var(--_fg);
3250
+ transition-duration: var(--tui-motion-duration);
3251
+ transition-timing-function: var(--tui-motion-timing);
3252
+ transition-property: background-color, color;
3253
+ }
3254
+ .tui-interface .tui-move-handle__handle .tui-icon {
3255
+ font-size: var(--_icon-size);
3256
+ }
3257
+ .tui-interface .tui-move-handle__handle:hover {
3258
+ color: var(--_fg-interact);
3259
+ background-color: var(--_bg-interact);
3260
+ }
3261
+ .tui-interface .tui-move-handle__handle:focus-visible {
3262
+ color: var(--_fg-interact);
3263
+ outline: var(--tui-focus-ring-width) solid var(--tui-focus-ring-color);
3264
+ outline-offset: var(--tui-focus-ring-offset);
3265
+ }
3266
+ .tui-interface .tui-move-handle__handle:active {
3267
+ cursor: grabbing;
3268
+ }
3269
+ .tui-interface .tui-move-handle__index {
3270
+ display: flex;
3271
+ align-items: center;
3272
+ align-self: center;
3273
+ justify-content: center;
3274
+ width: var(--_size);
3275
+ border-radius: var(--tui-radius-md);
3276
+ font-size: var(--tui-typography-size-sm, 0.875rem);
3277
+ font-weight: var(--tui-font-weight-medium, 500);
3278
+ color: var(--_fg);
3279
+ user-select: none;
3280
+ }
3281
+ .tui-interface .tui-move-handle__lock {
3282
+ display: flex;
3283
+ align-items: center;
3284
+ align-self: center;
3285
+ justify-content: center;
3286
+ width: var(--_size);
3287
+ color: var(--_fg);
3288
+ opacity: var(--tui-opacity-disabled);
3289
+ }
3290
+ .tui-interface .tui-move-handle__lock .tui-icon {
3291
+ font-size: var(--_icon-size);
3292
+ }
3293
+ .tui-interface .tui-move-handle__center {
3294
+ position: relative;
3295
+ }
3296
+ .tui-interface .tui-move-handle.has-index .tui-move-handle__index {
3297
+ opacity: 1;
3298
+ }
3299
+ .tui-interface .tui-move-handle.has-index .tui-move-handle__handle {
3300
+ position: absolute;
3301
+ opacity: 0;
3302
+ pointer-events: none;
3303
+ }
3304
+ .tui-interface .tui-move-handle.has-index:hover .tui-move-handle__index, .tui-interface .tui-move-handle.has-index:focus-within .tui-move-handle__index {
3305
+ display: none;
3306
+ }
3307
+ .tui-interface .tui-move-handle.has-index:hover .tui-move-handle__handle, .tui-interface .tui-move-handle.has-index:focus-within .tui-move-handle__handle {
3308
+ position: static;
3309
+ opacity: 1;
3310
+ pointer-events: auto;
3311
+ }
3312
+ @media (hover: none) {
3313
+ .tui-interface .tui-move-handle.has-index .tui-move-handle__index {
3314
+ display: none;
3315
+ }
3316
+ .tui-interface .tui-move-handle.has-index .tui-move-handle__handle {
3317
+ position: static;
3318
+ opacity: 1;
3319
+ pointer-events: auto;
3320
+ }
3321
+ }
3322
+ .tui-interface .tui-move-handle.is-size-sm {
3323
+ --_size: var(--tui-move-handle-size, 32px);
3324
+ --_center-height: 20px;
3325
+ }
3326
+ .tui-interface .tui-move-handle.is-locked {
3327
+ pointer-events: none;
3328
+ }
3329
+ .tui-interface .tui-move-handle.is-handle {
3330
+ display: inline-flex;
3331
+ align-items: center;
3332
+ justify-content: center;
3333
+ width: auto;
3334
+ min-height: auto;
3335
+ background: none;
3336
+ border: none;
3337
+ border-radius: var(--tui-radius-sm);
3338
+ padding: 0;
3339
+ margin: 0;
3340
+ font: inherit;
3341
+ cursor: grab;
3342
+ color: var(--_fg);
3343
+ transition-duration: var(--tui-motion-duration);
3344
+ transition-timing-function: var(--tui-motion-timing);
3345
+ transition-property: color;
3346
+ }
3347
+ .tui-interface .tui-move-handle.is-handle .tui-icon {
3348
+ font-size: 24px;
3349
+ }
3350
+ .tui-interface .tui-move-handle.is-handle:hover {
3351
+ color: var(--_fg-interact);
3352
+ }
3353
+ .tui-interface .tui-move-handle.is-handle:focus-visible {
3354
+ color: var(--_fg-interact);
3355
+ outline: var(--tui-focus-ring-width) solid var(--tui-focus-ring-color);
3356
+ outline-offset: var(--tui-focus-ring-offset);
3357
+ }
3358
+ .tui-interface .tui-move-handle.is-handle:active {
3359
+ cursor: grabbing;
3360
+ }
3361
+ @media (forced-colors: active) {
3362
+ .tui-move-handle__up,
3363
+ .tui-move-handle__down,
3364
+ .tui-move-handle__handle,
3365
+ .tui-move-handle.is-handle {
3366
+ forced-color-adjust: none;
3367
+ color: CanvasText;
3368
+ }
3369
+ .tui-move-handle__up:hover, .tui-move-handle__up:active,
3370
+ .tui-move-handle__down:hover,
3371
+ .tui-move-handle__down:active,
3372
+ .tui-move-handle__handle:hover,
3373
+ .tui-move-handle__handle:active,
3374
+ .tui-move-handle.is-handle:hover,
3375
+ .tui-move-handle.is-handle:active {
3376
+ background-color: Highlight;
3377
+ color: Canvas;
3378
+ }
3379
+ .tui-move-handle__up:focus-visible,
3380
+ .tui-move-handle__down:focus-visible,
3381
+ .tui-move-handle__handle:focus-visible,
3382
+ .tui-move-handle.is-handle:focus-visible {
3383
+ outline: 2px solid Highlight;
3384
+ outline-offset: 2px;
3385
+ }
3386
+ .tui-move-handle__up:disabled,
3387
+ .tui-move-handle__down:disabled,
3388
+ .tui-move-handle__handle:disabled,
3389
+ .tui-move-handle.is-handle:disabled {
3390
+ color: GrayText;
3391
+ }
3392
+ }
2851
3393
  :where(.tui-interface) .tui-notice {
2852
3394
  --_bg: var(--tui-notice-bg, var(--tui-color-bg-muted));
2853
3395
  --_border: var(--tui-notice-border, transparent);
@@ -3247,6 +3789,22 @@
3247
3789
  line-height: 1.25em;
3248
3790
  user-select: none;
3249
3791
  }
3792
+ @media (forced-colors: active) {
3793
+ :where(.tui-interface) .tui-radio__indicator {
3794
+ forced-color-adjust: none;
3795
+ border-color: CanvasText;
3796
+ background-color: Canvas;
3797
+ }
3798
+ :where(.tui-interface) .tui-radio__indicator::after {
3799
+ background-color: CanvasText;
3800
+ }
3801
+ :where(.tui-interface) .tui-radio[aria-checked=true] .tui-radio__indicator {
3802
+ border-color: Highlight;
3803
+ }
3804
+ :where(.tui-interface) .tui-radio[aria-checked=true] .tui-radio__indicator::after {
3805
+ background-color: Highlight;
3806
+ }
3807
+ }
3250
3808
  :where(.tui-interface) .tui-rating {
3251
3809
  --_active: var(--tui-rating-active, var(--tui-theme-warning-base));
3252
3810
  --_inactive: var(--tui-rating-inactive, var(--tui-color-fg-muted));
@@ -3316,6 +3874,15 @@
3316
3874
  :where(.tui-interface) .tui-rating .tui-rating__star.is-active {
3317
3875
  color: var(--_active) !important;
3318
3876
  }
3877
+ @media (forced-colors: active) {
3878
+ :where(.tui-interface) .tui-rating .tui-rating__star {
3879
+ forced-color-adjust: none;
3880
+ color: GrayText !important;
3881
+ }
3882
+ :where(.tui-interface) .tui-rating .tui-rating__star.is-active {
3883
+ color: Highlight !important;
3884
+ }
3885
+ }
3319
3886
  :where(.tui-interface) .tui-progress {
3320
3887
  --_track: var(--tui-progress-track, var(--tui-color-border));
3321
3888
  --_fill: var(--tui-progress-fill, var(--tui-theme-primary-base));
@@ -3533,11 +4100,27 @@
3533
4100
  transform: rotate(1turn);
3534
4101
  }
3535
4102
  }
4103
+ @media (forced-colors: active) {
4104
+ :where(.tui-interface) .tui-progress.is-mode-line .tui-progress__track {
4105
+ forced-color-adjust: none;
4106
+ background: Canvas !important;
4107
+ border: 1px solid CanvasText;
4108
+ }
4109
+ :where(.tui-interface) .tui-progress.is-mode-line .tui-progress__bar {
4110
+ background: Highlight !important;
4111
+ }
4112
+ :where(.tui-interface) .tui-progress.is-mode-circle .tui-progress__circle__bar {
4113
+ forced-color-adjust: none;
4114
+ background: conic-gradient(Highlight calc(var(--_pct) * 1%), Canvas 0) !important;
4115
+ border: 1px solid CanvasText;
4116
+ border-radius: 50%;
4117
+ }
4118
+ }
3536
4119
  :where(.tui-interface) .tui-segmented {
3537
4120
  --_gap: var(--tui-segmented-gap, var(--tui-spacing-xs));
3538
4121
  --_padding: var(--tui-segmented-padding, var(--tui-spacing-xs));
3539
4122
  --_radius: var(--tui-segmented-radius, var(--tui-radius-lg));
3540
- --_bg: var(--tui-segmented-bg, var(--tui-color-bg-muted));
4123
+ --_bg: var(--tui-segmented-bg, var(--tui-color-bg-surface));
3541
4124
  --_border: var(--tui-segmented-border, transparent);
3542
4125
  display: inline-flex;
3543
4126
  flex-wrap: wrap;
@@ -3574,6 +4157,7 @@
3574
4157
  display: inline-flex;
3575
4158
  align-items: center;
3576
4159
  justify-content: center;
4160
+ min-height: var(--tui-control-height-md);
3577
4161
  gap: var(--tui-spacing-xs);
3578
4162
  padding: var(--_item-padding);
3579
4163
  border: none;
@@ -3644,6 +4228,7 @@
3644
4228
  .tui-interface .tui-segmented.is-size-sm .tui-segmented__item {
3645
4229
  --_item-padding: var(--tui-spacing-xs) var(--tui-spacing-sm);
3646
4230
  font-size: var(--tui-font-size-xs);
4231
+ min-height: var(--tui-control-height-sm);
3647
4232
  }
3648
4233
  :where(.tui-interface) .tui-segmented__item-icon {
3649
4234
  display: inline-flex;
@@ -3748,6 +4333,26 @@
3748
4333
  :where(.tui-interface) .tui-switch__track.is-checked .tui-switch__thumb {
3749
4334
  transform: translateX(calc(2.8575em - calc(1.4285em - 4px) - 2px - 2 * var(--tui-border-width)));
3750
4335
  }
4336
+ @media (forced-colors: active) {
4337
+ :where(.tui-interface) .tui-switch__track {
4338
+ forced-color-adjust: none;
4339
+ border: 2px solid CanvasText;
4340
+ background-color: Canvas;
4341
+ }
4342
+ :where(.tui-interface) .tui-switch__track.is-checked {
4343
+ background-color: Highlight;
4344
+ border-color: Highlight;
4345
+ }
4346
+ :where(.tui-interface) .tui-switch__track:focus-visible {
4347
+ outline-color: Highlight;
4348
+ }
4349
+ :where(.tui-interface) .tui-switch__thumb {
4350
+ background-color: CanvasText;
4351
+ }
4352
+ :where(.tui-interface) .tui-switch__track.is-checked .tui-switch__thumb {
4353
+ background-color: HighlightText;
4354
+ }
4355
+ }
3751
4356
  :where(.tui-interface) .tui-sidebar {
3752
4357
  --_width: var(--tui-sidebar-width, 320px);
3753
4358
  --_bg: var(--tui-sidebar-bg, var(--tui-color-bg-surface));
@@ -4198,15 +4803,18 @@
4198
4803
  :where(.tui-interface) .tui-textarea {
4199
4804
  --_fs: var(--tui-typography-size-md);
4200
4805
  --_py: var(--tui-spacing-xxs);
4806
+ --_height: calc(2em + 2 * var(--_py));
4201
4807
  font-size: var(--_fs);
4202
4808
  padding-block: var(--_py);
4203
- min-height: calc(2em + 2 * var(--_py));
4809
+ min-height: var(--tui-control-height-md, var(--_height));
4204
4810
  }
4205
4811
  :where(.tui-interface) .tui-textarea.is-size-sm {
4206
4812
  --_fs: var(--tui-typography-size-sm);
4813
+ min-height: var(--tui-control-height-sm, var(--_height));
4207
4814
  }
4208
4815
  :where(.tui-interface) .tui-textarea.is-size-lg {
4209
4816
  --_fs: var(--tui-typography-size-lg);
4817
+ min-height: var(--tui-control-height-lg, var(--_height));
4210
4818
  }
4211
4819
  :where(.tui-interface) .tui-textarea {
4212
4820
  min-height: calc(4em + 2 * var(--_py));
@@ -4226,15 +4834,18 @@
4226
4834
  --_radius: var(--tui-input-radius, var(--tui-radius-md));
4227
4835
  --_fs: var(--tui-typography-size-md);
4228
4836
  --_py: var(--tui-spacing-xxs);
4837
+ --_height: calc(2em + 2 * var(--_py));
4229
4838
  font-size: var(--_fs);
4230
4839
  padding-block: var(--_py);
4231
- min-height: calc(2em + 2 * var(--_py));
4840
+ min-height: var(--tui-control-height-md, var(--_height));
4232
4841
  }
4233
4842
  :where(.tui-interface) .tui-input-group.is-size-sm {
4234
4843
  --_fs: var(--tui-typography-size-sm);
4844
+ min-height: var(--tui-control-height-sm, var(--_height));
4235
4845
  }
4236
4846
  :where(.tui-interface) .tui-input-group.is-size-lg {
4237
4847
  --_fs: var(--tui-typography-size-lg);
4848
+ min-height: var(--tui-control-height-lg, var(--_height));
4238
4849
  }
4239
4850
  :where(.tui-interface) .tui-input-group {
4240
4851
  display: inline-flex;