@vireo-ai/trellis-ui 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vireo-ai/trellis-ui",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "description": "Django-native UI toolkit for building realtime and interactive web apps.",
6
6
  "license": "MIT",
@@ -19,6 +19,15 @@
19
19
  --ui-date-picker-range-bg-hover: var(--color-accent-surface-hover);
20
20
  }
21
21
 
22
+ [data-ui-date-picker-native]:disabled {
23
+ --ui-control-bg: var(--ui-control-bg-disabled);
24
+ --ui-control-bg-hover: var(--ui-control-bg-disabled);
25
+ --ui-control-bg-active: var(--ui-control-bg-disabled);
26
+ --ui-control-fg: var(--ui-control-fg-disabled);
27
+ --ui-control-placeholder: var(--ui-control-placeholder-disabled);
28
+ --ui-control-shadow: var(--ui-control-shadow-disabled);
29
+ }
30
+
22
31
  [data-ui-date-picker-native]:is(:hover, :active):not(:focus):not(:disabled):not([aria-invalid="true"]) {
23
32
  --ui-control-shadow: var(--ui-control-shadow-hover);
24
33
  }
@@ -27,6 +27,15 @@
27
27
  display: none;
28
28
  }
29
29
 
30
+ [data-ui-select-native]:disabled {
31
+ --ui-control-bg: var(--ui-control-bg-disabled);
32
+ --ui-control-bg-hover: var(--ui-control-bg-disabled);
33
+ --ui-control-bg-active: var(--ui-control-bg-disabled);
34
+ --ui-control-fg: var(--ui-control-fg-disabled);
35
+ --ui-control-placeholder: var(--ui-control-placeholder-disabled);
36
+ --ui-control-shadow: var(--ui-control-shadow-disabled);
37
+ }
38
+
30
39
  [data-ui-select-native]:is(:hover, :active):not(:focus):not(:disabled):not([aria-invalid="true"]) {
31
40
  --ui-control-shadow: var(--ui-control-shadow-hover);
32
41
  }
package/src/theme.css CHANGED
@@ -116,6 +116,7 @@
116
116
  --shadow-modal: var(--ui-modal-shadow);
117
117
  --shadow-inset: inset 0 1px 1px rgb(0 0 0 / 0.04);
118
118
  --shadow-control: var(--ui-control-shadow);
119
+ --shadow-control-disabled: var(--ui-control-shadow-disabled);
119
120
  --shadow-focus: 0 0 0 3px var(--color-focus-a4);
120
121
  --shadow-danger-focus: var(--shadow-control), 0 0 0 3px var(--color-danger-a4);
121
122
 
@@ -285,8 +286,11 @@
285
286
  --color-control: var(--ui-control-bg);
286
287
  --color-control-hover: var(--ui-control-bg-hover);
287
288
  --color-control-active: var(--ui-control-bg-active);
289
+ --color-control-disabled: var(--ui-control-bg-disabled);
288
290
  --color-control-fg: var(--ui-control-fg);
291
+ --color-control-disabled-fg: var(--ui-control-fg-disabled);
289
292
  --color-control-placeholder: var(--ui-control-placeholder);
293
+ --color-control-placeholder-disabled: var(--ui-control-placeholder-disabled);
290
294
  --color-control-border: var(--ui-control-border);
291
295
  --color-control-border-focus: var(--ui-control-border-focus);
292
296
  --color-control-border-invalid: var(--ui-control-border-invalid);
@@ -432,8 +436,11 @@
432
436
  --ui-control-bg: var(--color-surface-panel);
433
437
  --ui-control-bg-hover: var(--color-base-a2);
434
438
  --ui-control-bg-active: var(--color-base-a3);
439
+ --ui-control-bg-disabled: var(--color-surface-panel);
435
440
  --ui-control-fg: var(--color-foreground);
441
+ --ui-control-fg-disabled: var(--color-foreground-subtle);
436
442
  --ui-control-placeholder: var(--color-foreground-subtle);
443
+ --ui-control-placeholder-disabled: var(--color-foreground-subtle);
437
444
  --ui-control-border: var(--color-border);
438
445
  --ui-control-border-hover: color-mix(in srgb, var(--ui-control-border) 90%, var(--ui-fg) 10%);
439
446
  --ui-control-border-focus: var(--color-accent-9);
@@ -441,6 +448,7 @@
441
448
  --ui-control-border-invalid-hover: color-mix(in srgb, var(--ui-control-border-invalid) 84%, var(--color-danger-text) 16%);
442
449
  --ui-control-border-invalid-focus: var(--color-danger-9);
443
450
  --ui-control-shadow: var(--ui-shadow-border);
451
+ --ui-control-shadow-disabled: var(--ui-shadow-border);
444
452
  --ui-control-shadow-hover: 0 0 0 1px var(--ui-control-border-hover);
445
453
  --ui-control-shadow-focus: 0 0 0 1px var(--ui-control-border-focus);
446
454
  --ui-control-shadow-invalid: 0 0 0 1px var(--ui-control-border-invalid);
@@ -490,8 +498,11 @@
490
498
  --color-control: var(--ui-control-bg);
491
499
  --color-control-hover: var(--ui-control-bg-hover);
492
500
  --color-control-active: var(--ui-control-bg-active);
501
+ --color-control-disabled: var(--ui-control-bg-disabled);
493
502
  --color-control-fg: var(--ui-control-fg);
503
+ --color-control-disabled-fg: var(--ui-control-fg-disabled);
494
504
  --color-control-placeholder: var(--ui-control-placeholder);
505
+ --color-control-placeholder-disabled: var(--ui-control-placeholder-disabled);
495
506
  --color-control-border: var(--ui-control-border);
496
507
  --color-control-border-focus: var(--ui-control-border-focus);
497
508
  --color-control-border-invalid: var(--ui-control-border-invalid);
@@ -683,16 +694,16 @@
683
694
  --ui-control-shadow: var(--ui-control-shadow-focus);
684
695
  }
685
696
 
686
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid] {
697
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid] {
687
698
  --ui-control-shadow: var(--ui-control-shadow-invalid);
688
699
  }
689
700
 
690
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]) {
701
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]) {
691
702
  --ui-control-shadow: var(--ui-control-shadow-invalid-hover);
692
703
  }
693
704
 
694
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid]:focus-within:not([data-disabled]),
695
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid][data-state="open"]:not([data-disabled]) {
705
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid]:focus-within:not([data-disabled]),
706
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid][data-state="open"]:not([data-disabled]) {
696
707
  --ui-control-shadow: var(--ui-control-shadow-invalid-focus);
697
708
  box-shadow: var(--shadow-danger-focus);
698
709
  }
@@ -700,6 +711,27 @@
700
711
  [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"]):has(:focus-visible):not([data-invalid]) {
701
712
  box-shadow: var(--shadow-control), var(--shadow-focus);
702
713
  }
714
+
715
+ [data-ui-control][data-disabled] {
716
+ --ui-control-bg: var(--ui-control-bg-disabled);
717
+ --ui-control-bg-hover: var(--ui-control-bg-disabled);
718
+ --ui-control-bg-active: var(--ui-control-bg-disabled);
719
+ --ui-control-fg: var(--ui-control-fg-disabled);
720
+ --ui-control-placeholder: var(--ui-control-placeholder-disabled);
721
+ --ui-control-shadow: var(--ui-control-shadow-disabled);
722
+ }
723
+
724
+ [data-ui-control][data-disabled] :is(input, select, textarea, button):disabled {
725
+ color: var(--ui-control-fg-disabled);
726
+ opacity: 1;
727
+ -webkit-text-fill-color: var(--ui-control-fg-disabled);
728
+ }
729
+
730
+ [data-ui-control][data-disabled] :is(input, textarea):disabled::placeholder {
731
+ color: var(--ui-control-placeholder-disabled);
732
+ opacity: 1;
733
+ -webkit-text-fill-color: var(--ui-control-placeholder-disabled);
734
+ }
703
735
  }
704
736
 
705
737
  .dark {
@@ -96,6 +96,7 @@
96
96
  --shadow-popover: var(--ui-popover-shadow);
97
97
  --shadow-modal: var(--ui-modal-shadow);
98
98
  --shadow-control: var(--ui-control-shadow);
99
+ --shadow-control-disabled: var(--ui-control-shadow-disabled);
99
100
  --shadow-focus: 0 0 0 3px var(--color-focus-a4);
100
101
  --shadow-danger-focus: var(--shadow-control), 0 0 0 3px var(--color-danger-a4);
101
102
  --container-reading: 42rem;
@@ -180,7 +181,9 @@
180
181
  --color-control: var(--ui-control-bg);
181
182
  --color-control-hover: var(--ui-control-bg-hover);
182
183
  --color-control-active: var(--ui-control-bg-active);
184
+ --color-control-disabled: var(--ui-control-bg-disabled);
183
185
  --color-control-fg: var(--ui-control-fg);
186
+ --color-control-disabled-fg: var(--ui-control-fg-disabled);
184
187
  --color-control-placeholder: var(--ui-control-placeholder);
185
188
  --color-control-border: var(--ui-control-border);
186
189
  --color-control-border-focus: var(--ui-control-border-focus);
@@ -1253,6 +1256,9 @@
1253
1256
  .cursor-grab {
1254
1257
  cursor: grab;
1255
1258
  }
1259
+ .cursor-not-allowed {
1260
+ cursor: not-allowed;
1261
+ }
1256
1262
  .cursor-pointer {
1257
1263
  cursor: pointer;
1258
1264
  }
@@ -1274,6 +1280,9 @@
1274
1280
  .scroll-mt-6 {
1275
1281
  scroll-margin-top: var(--spacing-6);
1276
1282
  }
1283
+ .list-disc {
1284
+ list-style-type: disc;
1285
+ }
1277
1286
  .list-none {
1278
1287
  list-style-type: none;
1279
1288
  }
@@ -1985,6 +1994,9 @@
1985
1994
  .\!pl-1\.5 {
1986
1995
  padding-left: calc(var(--spacing) * 1.5) !important;
1987
1996
  }
1997
+ .pl-5 {
1998
+ padding-left: var(--spacing-5);
1999
+ }
1988
2000
  .text-center {
1989
2001
  text-align: center;
1990
2002
  }
@@ -2643,11 +2655,6 @@
2643
2655
  cursor: grabbing;
2644
2656
  }
2645
2657
  }
2646
- .disabled\:cursor-not-allowed {
2647
- &:disabled {
2648
- cursor: not-allowed;
2649
- }
2650
- }
2651
2658
  .disabled\:opacity-50 {
2652
2659
  &:disabled {
2653
2660
  opacity: 50%;
@@ -2729,9 +2736,24 @@
2729
2736
  display: none;
2730
2737
  }
2731
2738
  }
2732
- .data-disabled\:cursor-not-allowed {
2739
+ .data-disabled\:border-border {
2740
+ &[data-disabled] {
2741
+ border-color: var(--color-border);
2742
+ }
2743
+ }
2744
+ .data-disabled\:bg-border-interactive {
2745
+ &[data-disabled] {
2746
+ background-color: var(--color-border-interactive);
2747
+ }
2748
+ }
2749
+ .data-disabled\:bg-control-disabled {
2733
2750
  &[data-disabled] {
2734
- cursor: not-allowed;
2751
+ background-color: var(--color-control-disabled);
2752
+ }
2753
+ }
2754
+ .data-disabled\:bg-control-hover {
2755
+ &[data-disabled] {
2756
+ background-color: var(--color-control-hover);
2735
2757
  }
2736
2758
  }
2737
2759
  .data-disabled\:bg-surface-panel {
@@ -2739,6 +2761,11 @@
2739
2761
  background-color: var(--color-surface-panel);
2740
2762
  }
2741
2763
  }
2764
+ .data-disabled\:text-control-disabled-fg {
2765
+ &[data-disabled] {
2766
+ color: var(--color-control-disabled-fg);
2767
+ }
2768
+ }
2742
2769
  .data-disabled\:opacity-50 {
2743
2770
  &[data-disabled] {
2744
2771
  opacity: 50%;
@@ -2749,15 +2776,58 @@
2749
2776
  opacity: 60%;
2750
2777
  }
2751
2778
  }
2752
- .data-disabled\:hover\:bg-surface-panel {
2779
+ .data-disabled\:shadow-control-disabled {
2780
+ &[data-disabled] {
2781
+ --tw-shadow: var(--ui-control-shadow-disabled);
2782
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2783
+ }
2784
+ }
2785
+ .data-disabled\:ring-border {
2786
+ &[data-disabled] {
2787
+ --tw-ring-color: var(--color-border);
2788
+ }
2789
+ }
2790
+ .data-disabled\:hover\:bg-control-disabled {
2791
+ &[data-disabled] {
2792
+ &:hover {
2793
+ @media (hover: hover) {
2794
+ background-color: var(--color-control-disabled);
2795
+ }
2796
+ }
2797
+ }
2798
+ }
2799
+ .data-disabled\:hover\:bg-control-hover {
2753
2800
  &[data-disabled] {
2754
2801
  &:hover {
2755
2802
  @media (hover: hover) {
2756
- background-color: var(--color-surface-panel);
2803
+ background-color: var(--color-control-hover);
2757
2804
  }
2758
2805
  }
2759
2806
  }
2760
2807
  }
2808
+ .data-disabled\:hover\:text-control-disabled-fg {
2809
+ &[data-disabled] {
2810
+ &:hover {
2811
+ @media (hover: hover) {
2812
+ color: var(--color-control-disabled-fg);
2813
+ }
2814
+ }
2815
+ }
2816
+ }
2817
+ .data-disabled\:data-checked\:border-border {
2818
+ &[data-disabled] {
2819
+ &[data-checked] {
2820
+ border-color: var(--color-border);
2821
+ }
2822
+ }
2823
+ }
2824
+ .data-disabled\:data-checked\:bg-control-disabled {
2825
+ &[data-disabled] {
2826
+ &[data-checked] {
2827
+ background-color: var(--color-control-disabled);
2828
+ }
2829
+ }
2830
+ }
2761
2831
  .data-dragging\:bg-base-a3 {
2762
2832
  &[data-dragging] {
2763
2833
  background-color: var(--color-base-a3);
@@ -2789,6 +2859,20 @@
2789
2859
  opacity: 100%;
2790
2860
  }
2791
2861
  }
2862
+ .data-disabled\:data-indeterminate\:border-border {
2863
+ &[data-disabled] {
2864
+ &[data-indeterminate] {
2865
+ border-color: var(--color-border);
2866
+ }
2867
+ }
2868
+ }
2869
+ .data-disabled\:data-indeterminate\:bg-control-disabled {
2870
+ &[data-disabled] {
2871
+ &[data-indeterminate] {
2872
+ background-color: var(--color-control-disabled);
2873
+ }
2874
+ }
2875
+ }
2792
2876
  .data-invalid\:border-control-border-invalid {
2793
2877
  &[data-invalid] {
2794
2878
  border-color: var(--color-control-border-invalid);
@@ -2799,6 +2883,17 @@
2799
2883
  border-color: var(--color-danger-border);
2800
2884
  }
2801
2885
  }
2886
+ .data-invalid\:bg-danger-solid {
2887
+ &[data-invalid] {
2888
+ background-color: var(--color-danger-solid);
2889
+ }
2890
+ }
2891
+ .data-invalid\:shadow-control {
2892
+ &[data-invalid] {
2893
+ --tw-shadow: var(--ui-control-shadow);
2894
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2895
+ }
2896
+ }
2802
2897
  .data-invalid\:shadow-danger-focus {
2803
2898
  &[data-invalid] {
2804
2899
  --tw-shadow: var(--shadow-control), 0 0 0 3px var(--tw-shadow-color, var(--color-danger-a4));
@@ -2827,6 +2922,34 @@
2827
2922
  }
2828
2923
  }
2829
2924
  }
2925
+ .data-invalid\:data-checked\:border-danger-border {
2926
+ &[data-invalid] {
2927
+ &[data-checked] {
2928
+ border-color: var(--color-danger-border);
2929
+ }
2930
+ }
2931
+ }
2932
+ .data-invalid\:data-checked\:bg-danger-solid {
2933
+ &[data-invalid] {
2934
+ &[data-checked] {
2935
+ background-color: var(--color-danger-solid);
2936
+ }
2937
+ }
2938
+ }
2939
+ .data-invalid\:data-checked\:text-danger-text {
2940
+ &[data-invalid] {
2941
+ &[data-checked] {
2942
+ color: var(--color-danger-text);
2943
+ }
2944
+ }
2945
+ }
2946
+ .data-invalid\:data-indeterminate\:border-danger-border {
2947
+ &[data-invalid] {
2948
+ &[data-indeterminate] {
2949
+ border-color: var(--color-danger-border);
2950
+ }
2951
+ }
2952
+ }
2830
2953
  .data-resizing\:bg-border-interactive {
2831
2954
  &[data-resizing] {
2832
2955
  background-color: var(--color-border-interactive);
@@ -2971,6 +3094,11 @@
2971
3094
  grid-auto-flow: column;
2972
3095
  }
2973
3096
  }
3097
+ .md\:grid-cols-2 {
3098
+ @media (width >= 48rem) {
3099
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3100
+ }
3101
+ }
2974
3102
  .md\:grid-cols-\[max-content_minmax\(0\,1fr\)\] {
2975
3103
  @media (width >= 48rem) {
2976
3104
  grid-template-columns: max-content minmax(0,1fr);
@@ -3751,6 +3879,62 @@
3751
3879
  width: auto;
3752
3880
  }
3753
3881
  }
3882
+ .\[\&\[data-disabled\]_\[data-ui-checkbox-description\]\]\:text-control-disabled-fg {
3883
+ &[data-disabled] [data-ui-checkbox-description] {
3884
+ color: var(--color-control-disabled-fg);
3885
+ }
3886
+ }
3887
+ .\[\&\[data-disabled\]_\[data-ui-file-upload-browse\]\]\:bg-control-disabled {
3888
+ &[data-disabled] [data-ui-file-upload-browse] {
3889
+ background-color: var(--color-control-disabled);
3890
+ }
3891
+ }
3892
+ .\[\&\[data-disabled\]_\[data-ui-file-upload-browse\]\]\:text-control-disabled-fg {
3893
+ &[data-disabled] [data-ui-file-upload-browse] {
3894
+ color: var(--color-control-disabled-fg);
3895
+ }
3896
+ }
3897
+ .\[\&\[data-disabled\]_\[data-ui-file-upload-browse\]\]\:shadow-control-disabled {
3898
+ &[data-disabled] [data-ui-file-upload-browse] {
3899
+ --tw-shadow: var(--ui-control-shadow-disabled);
3900
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3901
+ }
3902
+ }
3903
+ .\[\&\[data-disabled\]_\[data-ui-file-upload-heading\]\]\:text-control-disabled-fg {
3904
+ &[data-disabled] [data-ui-file-upload-heading] {
3905
+ color: var(--color-control-disabled-fg);
3906
+ }
3907
+ }
3908
+ .\[\&\[data-disabled\]_\[data-ui-file-upload-text\]\]\:text-control-disabled-fg {
3909
+ &[data-disabled] [data-ui-file-upload-text] {
3910
+ color: var(--color-control-disabled-fg);
3911
+ }
3912
+ }
3913
+ .\[\&\[data-disabled\]_\[data-ui-radio-description\]\]\:text-control-disabled-fg {
3914
+ &[data-disabled] [data-ui-radio-description] {
3915
+ color: var(--color-control-disabled-fg);
3916
+ }
3917
+ }
3918
+ .\[\&\[data-disabled\]_\[data-ui-slider-tick-label\]\]\:text-control-disabled-fg {
3919
+ &[data-disabled] [data-ui-slider-tick-label] {
3920
+ color: var(--color-control-disabled-fg);
3921
+ }
3922
+ }
3923
+ .\[\&\[data-disabled\]_\[data-ui-slider-tick\]\]\:text-control-disabled-fg {
3924
+ &[data-disabled] [data-ui-slider-tick] {
3925
+ color: var(--color-control-disabled-fg);
3926
+ }
3927
+ }
3928
+ .\[\&\[data-disabled\]_\[data-ui-slider-value\]\]\:text-control-disabled-fg {
3929
+ &[data-disabled] [data-ui-slider-value] {
3930
+ color: var(--color-control-disabled-fg);
3931
+ }
3932
+ }
3933
+ .\[\&\[data-disabled\]_\[data-ui-switch-description\]\]\:text-control-disabled-fg {
3934
+ &[data-disabled] [data-ui-switch-description] {
3935
+ color: var(--color-control-disabled-fg);
3936
+ }
3937
+ }
3754
3938
  .\[\[data-ui-text\]\+\&\]\:mt-2 {
3755
3939
  [data-ui-text]+& {
3756
3940
  margin-top: var(--spacing-2);
@@ -3811,6 +3995,14 @@
3811
3995
  [data-ui-select][data-mark="none"] [data-ui-select-option-indicator] {
3812
3996
  display: none;
3813
3997
  }
3998
+ [data-ui-select-native]:disabled {
3999
+ --ui-control-bg: var(--ui-control-bg-disabled);
4000
+ --ui-control-bg-hover: var(--ui-control-bg-disabled);
4001
+ --ui-control-bg-active: var(--ui-control-bg-disabled);
4002
+ --ui-control-fg: var(--ui-control-fg-disabled);
4003
+ --ui-control-placeholder: var(--ui-control-placeholder-disabled);
4004
+ --ui-control-shadow: var(--ui-control-shadow-disabled);
4005
+ }
3814
4006
  [data-ui-select-native]:is(:hover, :active):not(:focus):not(:disabled):not([aria-invalid="true"]) {
3815
4007
  --ui-control-shadow: var(--ui-control-shadow-hover);
3816
4008
  }
@@ -3938,6 +4130,14 @@
3938
4130
  --ui-date-picker-range-bg: var(--color-accent-surface);
3939
4131
  --ui-date-picker-range-bg-hover: var(--color-accent-surface-hover);
3940
4132
  }
4133
+ [data-ui-date-picker-native]:disabled {
4134
+ --ui-control-bg: var(--ui-control-bg-disabled);
4135
+ --ui-control-bg-hover: var(--ui-control-bg-disabled);
4136
+ --ui-control-bg-active: var(--ui-control-bg-disabled);
4137
+ --ui-control-fg: var(--ui-control-fg-disabled);
4138
+ --ui-control-placeholder: var(--ui-control-placeholder-disabled);
4139
+ --ui-control-shadow: var(--ui-control-shadow-disabled);
4140
+ }
3941
4141
  [data-ui-date-picker-native]:is(:hover, :active):not(:focus):not(:disabled):not([aria-invalid="true"]) {
3942
4142
  --ui-control-shadow: var(--ui-control-shadow-hover);
3943
4143
  }
@@ -4553,8 +4753,11 @@
4553
4753
  --ui-control-bg: var(--color-surface-panel);
4554
4754
  --ui-control-bg-hover: var(--color-base-a2);
4555
4755
  --ui-control-bg-active: var(--color-base-a3);
4756
+ --ui-control-bg-disabled: var(--color-surface-panel);
4556
4757
  --ui-control-fg: var(--color-foreground);
4758
+ --ui-control-fg-disabled: var(--color-foreground-subtle);
4557
4759
  --ui-control-placeholder: var(--color-foreground-subtle);
4760
+ --ui-control-placeholder-disabled: var(--color-foreground-subtle);
4558
4761
  --ui-control-border: var(--color-border);
4559
4762
  --ui-control-border-hover: var(--ui-control-border);
4560
4763
  @supports (color: color-mix(in lab, red, red)) {
@@ -4568,6 +4771,7 @@
4568
4771
  }
4569
4772
  --ui-control-border-invalid-focus: var(--color-danger-9);
4570
4773
  --ui-control-shadow: var(--ui-shadow-border);
4774
+ --ui-control-shadow-disabled: var(--ui-shadow-border);
4571
4775
  --ui-control-shadow-hover: 0 0 0 1px var(--ui-control-border-hover);
4572
4776
  --ui-control-shadow-focus: 0 0 0 1px var(--ui-control-border-focus);
4573
4777
  --ui-control-shadow-invalid: 0 0 0 1px var(--ui-control-border-invalid);
@@ -4612,8 +4816,11 @@
4612
4816
  --color-control: var(--ui-control-bg);
4613
4817
  --color-control-hover: var(--ui-control-bg-hover);
4614
4818
  --color-control-active: var(--ui-control-bg-active);
4819
+ --color-control-disabled: var(--ui-control-bg-disabled);
4615
4820
  --color-control-fg: var(--ui-control-fg);
4821
+ --color-control-disabled-fg: var(--ui-control-fg-disabled);
4616
4822
  --color-control-placeholder: var(--ui-control-placeholder);
4823
+ --color-control-placeholder-disabled: var(--ui-control-placeholder-disabled);
4617
4824
  --color-control-border: var(--ui-control-border);
4618
4825
  --color-control-border-focus: var(--ui-control-border-focus);
4619
4826
  --color-control-border-invalid: var(--ui-control-border-invalid);
@@ -4787,19 +4994,37 @@
4787
4994
  [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"]):focus-within:not([data-invalid]), [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-state="open"]:not([data-invalid]) {
4788
4995
  --ui-control-shadow: var(--ui-control-shadow-focus);
4789
4996
  }
4790
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid] {
4997
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid] {
4791
4998
  --ui-control-shadow: var(--ui-control-shadow-invalid);
4792
4999
  }
4793
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]) {
5000
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]) {
4794
5001
  --ui-control-shadow: var(--ui-control-shadow-invalid-hover);
4795
5002
  }
4796
- [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid]:focus-within:not([data-disabled]), [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"])[data-invalid][data-state="open"]:not([data-disabled]) {
5003
+ [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid]:focus-within:not([data-disabled]), [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"], [data-variant="filled"])[data-invalid][data-state="open"]:not([data-disabled]) {
4797
5004
  --ui-control-shadow: var(--ui-control-shadow-invalid-focus);
4798
5005
  box-shadow: var(--shadow-danger-focus);
4799
5006
  }
4800
5007
  [data-ui-control]:where([data-variant="outline"], [data-variant="enhanced"]):has(:focus-visible):not([data-invalid]) {
4801
5008
  box-shadow: var(--shadow-control), var(--shadow-focus);
4802
5009
  }
5010
+ [data-ui-control][data-disabled] {
5011
+ --ui-control-bg: var(--ui-control-bg-disabled);
5012
+ --ui-control-bg-hover: var(--ui-control-bg-disabled);
5013
+ --ui-control-bg-active: var(--ui-control-bg-disabled);
5014
+ --ui-control-fg: var(--ui-control-fg-disabled);
5015
+ --ui-control-placeholder: var(--ui-control-placeholder-disabled);
5016
+ --ui-control-shadow: var(--ui-control-shadow-disabled);
5017
+ }
5018
+ [data-ui-control][data-disabled] :is(input, select, textarea, button):disabled {
5019
+ color: var(--ui-control-fg-disabled);
5020
+ opacity: 1;
5021
+ -webkit-text-fill-color: var(--ui-control-fg-disabled);
5022
+ }
5023
+ [data-ui-control][data-disabled] :is(input, textarea):disabled::placeholder {
5024
+ color: var(--ui-control-placeholder-disabled);
5025
+ opacity: 1;
5026
+ -webkit-text-fill-color: var(--ui-control-placeholder-disabled);
5027
+ }
4803
5028
  }
4804
5029
  .dark {
4805
5030
  color-scheme: dark;