@typlog/ui 0.11.8 → 0.12.0

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/components.css CHANGED
@@ -37,10 +37,10 @@
37
37
  border-radius: inherit;
38
38
  text-transform: uppercase;
39
39
  }
40
- .ui-Avatar > span.r-count-1 {
40
+ .ui-Avatar > :where(span.r-count-1) {
41
41
  font-size: var(--avatar-fallback-one-letter-font-size);
42
42
  }
43
- .ui-Avatar > span.r-count-2 {
43
+ .ui-Avatar > :where(span.r-count-2) {
44
44
  font-size: var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size));
45
45
  }
46
46
  .ui-Avatar:where(.r-size-1) {
@@ -134,6 +134,16 @@
134
134
  background-color: var(--accent-a3);
135
135
  color: var(--accent-a11);
136
136
  }
137
+ .ui-Avatar:where(.r-variant-outline) > span {
138
+ box-shadow: inset 0 0 1px var(--accent-a8);
139
+ color: var(--accent-a11);
140
+ }
141
+ .ui-Avatar:where(.r-variant-surface) > span {
142
+ background-color: var(--accent-surface);
143
+ background-color: var(--accent-a3);
144
+ color: var(--accent-a11);
145
+ box-shadow: inset 0 0 1px var(--accent-a8);
146
+ }
137
147
 
138
148
  .ui-Badge {
139
149
  display: inline-flex;
@@ -145,6 +155,8 @@
145
155
  line-height: 1;
146
156
  height: -moz-fit-content;
147
157
  height: fit-content;
158
+ width: -moz-fit-content;
159
+ width: fit-content;
148
160
  }
149
161
  .ui-Badge:where(.r-size-1) {
150
162
  font-size: var(--font-size-1);
@@ -154,6 +166,9 @@
154
166
  gap: calc(var(--space-1) * 1.5);
155
167
  border-radius: max(var(--radius-1), var(--radius-full));
156
168
  }
169
+ .ui-Badge:where(.r-size-1):where([data-radius="full"]) {
170
+ padding: calc(var(--space-1) * 0.5) var(--space-2);
171
+ }
157
172
  .ui-Badge:where(.r-size-2) {
158
173
  font-size: var(--font-size-1);
159
174
  line-height: var(--line-height-1);
@@ -162,6 +177,9 @@
162
177
  gap: calc(var(--space-1) * 1.5);
163
178
  border-radius: max(var(--radius-2), var(--radius-full));
164
179
  }
180
+ .ui-Badge:where(.r-size-2):where([data-radius="full"]) {
181
+ padding: var(--space-1) calc(var(--space-2) * 1.25);
182
+ }
165
183
  .ui-Badge:where(.r-size-3) {
166
184
  font-size: var(--font-size-2);
167
185
  line-height: var(--line-height-2);
@@ -170,6 +188,9 @@
170
188
  gap: var(--space-2);
171
189
  border-radius: max(var(--radius-2), var(--radius-full));
172
190
  }
191
+ .ui-Badge:where(.r-size-3):where([data-radius="full"]) {
192
+ padding: var(--space-1) calc(var(--space-2) * 1.5);
193
+ }
173
194
  .ui-Badge:where(.r-variant-solid) {
174
195
  background-color: var(--accent-9);
175
196
  color: var(--accent-contrast);
@@ -210,131 +231,6 @@
210
231
  color: var(--accent-12);
211
232
  }
212
233
 
213
- .ui-Inset {
214
- box-sizing: border-box;
215
- --margin-top: 0px;
216
- --margin-right: 0px;
217
- --margin-bottom: 0px;
218
- --margin-left: 0px;
219
- overflow: hidden;
220
- margin-top: var(--margin-top-override, var(--margin-top));
221
- margin-right: var(--margin-right-override, var(--margin-right));
222
- margin-bottom: var(--margin-bottom-override, var(--margin-bottom));
223
- margin-left: var(--margin-left-override, var(--margin-left));
224
- }
225
- .ui-Inset > * {
226
- --margin-top-override: initial;
227
- --margin-right-override: initial;
228
- --margin-bottom-override: initial;
229
- --margin-left-override: initial;
230
- }
231
- .ui-Inset:where(.r-clip-border-box) {
232
- --inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));
233
- --inset-padding-top-calc: var(--inset-padding-top, 0px);
234
- --inset-padding-right-calc: var(--inset-padding-right, 0px);
235
- --inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);
236
- --inset-padding-left-calc: var(--inset-padding-left, 0px);
237
- }
238
- .ui-Inset:where(.r-clip-padding-box) {
239
- --inset-border-radius-calc: var(--inset-border-radius, 0px);
240
- --inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));
241
- --inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));
242
- --inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));
243
- --inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px));
244
- }
245
- .ui-Inset:where(.r-side-top) {
246
- --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
247
- --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
248
- --margin-bottom-override: var(--margin-bottom);
249
- --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
250
- border-top-left-radius: var(--inset-border-radius-calc);
251
- border-top-right-radius: var(--inset-border-radius-calc);
252
- border-bottom-left-radius: 0px;
253
- border-bottom-right-radius: 0px;
254
- }
255
- .ui-Inset:where(.r-side-bottom) {
256
- --margin-top-override: var(--margin-top);
257
- --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
258
- --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
259
- --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
260
- border-top-left-radius: 0px;
261
- border-top-right-radius: 0px;
262
- border-bottom-left-radius: var(--inset-border-radius-calc);
263
- border-bottom-right-radius: var(--inset-border-radius-calc);
264
- }
265
- .ui-Inset:where(.r-side-left) {
266
- --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
267
- --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
268
- --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
269
- --margin-right-override: var(--margin-right);
270
- border-top-left-radius: var(--inset-border-radius-calc);
271
- border-top-right-radius: 0px;
272
- border-bottom-left-radius: var(--inset-border-radius-calc);
273
- border-bottom-right-radius: 0px;
274
- }
275
- .ui-Inset:where(.r-side-right) {
276
- --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
277
- --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
278
- --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
279
- --margin-left-override: var(--margin-left);
280
- border-top-left-radius: 0px;
281
- border-top-right-radius: var(--inset-border-radius-calc);
282
- border-bottom-left-radius: 0px;
283
- border-bottom-right-radius: var(--inset-border-radius-calc);
284
- }
285
- .ui-Inset:where(.r-side-x) {
286
- --margin-top-override: var(--margin-top);
287
- --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
288
- --margin-bottom-override: var(--margin-bottom);
289
- --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
290
- border-radius: 0px;
291
- }
292
- .ui-Inset:where(.r-side-y) {
293
- --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
294
- --margin-right-override: var(--margin-right);
295
- --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
296
- --margin-left-override: var(--margin-left);
297
- border-radius: 0px;
298
- }
299
- .ui-Inset:where(.r-side-all) {
300
- --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
301
- --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
302
- --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
303
- --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
304
- border-radius: var(--inset-border-radius-calc);
305
- }
306
-
307
- .ui-Card {
308
- display: block;
309
- position: relative;
310
- overflow: hidden;
311
- font-style: normal;
312
- text-align: start;
313
- box-sizing: border-box;
314
- border-radius: var(--card-border-radius);
315
- padding: var(--card-padding);
316
- border-color: var(--card-border-color, var(--gray-a5));
317
- border-width: var(--card-border-width, 1px);
318
- border-style: solid;
319
- --inset-padding-top: var(--card-padding);
320
- --inset-padding-right: var(--card-padding);
321
- --inset-padding-bottom: var(--card-padding);
322
- --inset-padding-left: var(--card-padding);
323
- }
324
- .ui-Card:where(:-moz-any-link, button, label):where(:hover) {
325
- --card-border-color: var(--gray-a7);
326
- }
327
- .ui-Card:where(:any-link, button, label):where(:hover) {
328
- --card-border-color: var(--gray-a7);
329
- }
330
- .ui-Card:where(:-moz-any-link, button, label):where(:focus-visible) {
331
- --card-border-color: var(--focus-8);
332
- box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
333
- }
334
- .ui-Card:where(:any-link, button, label):where(:focus-visible) {
335
- --card-border-color: var(--focus-8);
336
- box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
337
- }
338
234
  .ui-Card:where(.r-size-1) {
339
235
  --card-padding: var(--space-3);
340
236
  --card-border-radius: max(var(--radius-4), var(--radius-full));
@@ -365,31 +261,6 @@
365
261
  .ui-Card:where(.r-variant-soft):where(:any-link, button, label):where(:hover) {
366
262
  border-color: var(--gray-a5);
367
263
  }
368
-
369
- .ui-CardHead {
370
- display: flex;
371
- align-items: center;
372
- justify-content: space-between;
373
- margin-left: calc(0px - var(--card-padding));
374
- margin-right: calc(0px - var(--card-padding));
375
- margin-top: calc(0px - var(--card-padding));
376
- padding: var(--card-padding);
377
- --card-head-border-color: var(--card-border-color, var(--gray-a5));
378
- border-bottom: 1px solid var(--card-head-border-color);
379
- }
380
- .ui-CardHead:where(:-moz-any-link, button, label):where(:hover) {
381
- background-color: var(--accent-a3);
382
- }
383
- .ui-CardHead:where(:any-link, button, label):where(:hover) {
384
- background-color: var(--accent-a3);
385
- }
386
- .ui-CardHead:where(:-moz-any-link, button, label):where(:focus-visible) {
387
- background-color: var(--accent-a4);
388
- }
389
- .ui-CardHead:where(:any-link, button, label):where(:focus-visible) {
390
- background-color: var(--accent-a4);
391
- }
392
-
393
264
  .ui-Button {
394
265
  display: inline-flex;
395
266
  align-items: center;
@@ -650,44 +521,6 @@
650
521
  padding: 0;
651
522
  }
652
523
 
653
- .ui-SocialButton {
654
- background-color: var(--social-button-background-color);
655
- color: var(--social-button-text-color);
656
- box-shadow: 0px 1px 2px 0px #0A0D120D, 0px -2px 0px 0px #0A0D120D inset, 0px 0px 0px 1px #0A0D122E inset;
657
- --social-button-background-color: black;
658
- --social-button-text-color: white;
659
- --social-button-hover-filter: brightness(0.92) saturate(1.1);
660
- }
661
- @media (hover: hover) {
662
- .ui-SocialButton:where(:hover) {
663
- filter: var(--social-button-hover-filter);
664
- }
665
- }
666
- .ui-SocialButton:where(.r-brand-google) {
667
- background-color: var(--color-background);
668
- --social-button-text-color: var(--gray-12);
669
- }
670
- .ui-SocialButton:where(.r-brand-facebook) {
671
- --social-button-background-color: #1877F2;
672
- }
673
- .ui-SocialButton:where(.r-brand-github) {
674
- --social-button-background-color: #333;
675
- }
676
- .ui-SocialButton:where(.r-brand-slack) {
677
- --social-button-background-color: #611f69;
678
- }
679
- .ui-SocialButton:where(:focus-visible) {
680
- outline: 2px solid var(--focus-8);
681
- outline-offset: 2px;
682
- }
683
- .ui-SocialButton:where(:active) {
684
- box-shadow: var(--shadow-1);
685
- }
686
- .ui-SocialButton:where([data-disabled]) {
687
- color: var(--gray-a10);
688
- background-color: var(--gray-a2);
689
- }
690
-
691
524
  .ui-root {
692
525
  --scrollarea-scrollbar-horizontal-margin-top: var(--space-1);
693
526
  --scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);
@@ -809,7 +642,6 @@
809
642
  .ui-DialogTitle + .ui-DialogDescription {
810
643
  margin-top: var(--space-2);
811
644
  }
812
-
813
645
  .ui-DialogOverlay {
814
646
  position: fixed;
815
647
  inset: 0;
@@ -836,57 +668,68 @@
836
668
  box-sizing: border-box;
837
669
  padding-top: var(--space-6);
838
670
  }
839
- .ui-DialogContent {
840
- --inset-padding-top: var(--dialog-content-padding);
841
- --inset-padding-right: var(--dialog-content-padding);
842
- --inset-padding-bottom: var(--dialog-content-padding);
843
- --inset-padding-left: var(--dialog-content-padding);
844
-
671
+ .ui-DialogPopup {
845
672
  width: 100%;
846
673
  max-height: calc(100vh - var(--space-6) * 2);
847
674
  position: relative;
848
675
  box-sizing: border-box;
849
676
  overflow: auto;
850
677
  text-align: left;
851
- padding: var(--dialog-content-padding);
852
678
  box-sizing: border-box;
853
679
  background-color: var(--color-panel-solid);
854
680
  outline: none;
855
- border-top-left-radius: var(--dialog-content-radius);
856
- border-top-right-radius: var(--dialog-content-radius);
857
- }
858
- .ui-DialogContent:where(.r-size-1) {
859
- --dialog-content-radius: var(--radius-4);
860
- --dialog-content-padding: var(--space-2);
861
- }
862
- .ui-DialogContent:where(.r-size-2) {
863
- --dialog-content-radius: var(--radius-4);
864
- --dialog-content-padding: var(--space-3);
865
- }
866
- .ui-DialogContent:where(.r-size-3) {
867
- --dialog-content-radius: var(--radius-5);
868
- --dialog-content-padding: var(--space-4);
869
- }
870
- .ui-DialogContent:where(.r-size-4) {
871
- --dialog-content-radius: var(--radius-5);
872
- --dialog-content-padding: var(--space-5);
873
- }
874
- .ui-DialogContentClose {
875
- position: absolute;
876
- top: calc(var(--dialog-content-padding) / 1.5);
877
- right: var(--dialog-content-padding);
878
- }
879
- @media (min-width: 520px) {
681
+ border-top-left-radius: var(--dialog-popup-radius);
682
+ border-top-right-radius: var(--dialog-popup-radius);
683
+ max-width: var(--dialog-popup-max-width);
684
+ max-height: var(--dialog-popup-max-height);
685
+ padding: var(--dialog-popup-padding);
686
+ }
687
+ .ui-DialogPopup:where(.r-size-1) {
688
+ --dialog-popup-padding: var(--space-3);
689
+ --dialog-popup-radius: var(--radius-4);
690
+ --dialog-popup-max-width: 450px;
691
+ --dialog-popup-max-height: calc(100vh - 100px);
692
+ }
693
+ .ui-DialogPopup:where(.r-size-2) {
694
+ --dialog-popup-padding: var(--space-4);
695
+ --dialog-popup-radius: var(--radius-4);
696
+ --dialog-popup-max-width: 600px;
697
+ --dialog-popup-max-height: calc(100vh - 100px);
698
+ }
699
+ .ui-DialogPopup:where(.r-size-3) {
700
+ --dialog-popup-padding: var(--space-5);
701
+ --dialog-popup-radius: var(--radius-5);
702
+ --dialog-popup-max-width: 860px;
703
+ --dialog-popup-max-height: calc(100vh - 100px);
704
+ }
705
+ .ui-DialogPopup:where(.r-size-4) {
706
+ --dialog-popup-padding: var(--space-6);
707
+ --dialog-popup-radius: var(--radius-5);
708
+ --dialog-popup-max-width: 1200px;
709
+ --dialog-popup-max-height: calc(100vh - 100px);
710
+ }
711
+ .ui-DialogPopup:where(.r-size-5) {
712
+ --dialog-popup-padding: var(--space-6);
713
+ --dialog-popup-radius: var(--radius-5);
714
+ --dialog-popup-max-width: none;
715
+ --dialog-popup-max-height: calc(100vh - 64px);
716
+ }
717
+
718
+ /* special handle for tailwindcss p-0, when css priority doesn't work */
719
+ .ui-DialogPopup:where(.p-0) {
720
+ --dialog-popup-padding: 0;
721
+ }
722
+ @media (min-width: 450px) {
880
723
  .ui-DialogContainer {
881
724
  justify-content: center;
882
725
  padding-bottom: max(var(--space-6), 6vh);
883
726
  padding-left: var(--space-4);
884
727
  padding-right: var(--space-4);
885
728
  }
886
- .ui-DialogContent {
729
+ .ui-DialogPopup {
887
730
  box-shadow: var(--shadow-6);
888
- border-bottom-left-radius: var(--dialog-content-radius);
889
- border-bottom-right-radius: var(--dialog-content-radius);
731
+ border-bottom-left-radius: var(--dialog-popup-radius);
732
+ border-bottom-right-radius: var(--dialog-popup-radius);
890
733
  }
891
734
  }
892
735
  @media (prefers-reduced-motion: no-preference) {
@@ -901,21 +744,21 @@ to {
901
744
  @keyframes ui-dialog-content-show {
902
745
  from {
903
746
  opacity: 0.1;
904
- transform: translateY(var(--space-6));
747
+ transform: translate3d(0, var(--space-6), 0);
905
748
  }
906
749
  to {
907
750
  opacity: 1;
908
- transform: translateY(0);
751
+ transform: translate3d(0, 0, 0);
909
752
  }
910
753
  }
911
754
  @keyframes ui-dialog-content-hide {
912
755
  from {
913
756
  opacity: 1;
914
- transform: translateY(0);
757
+ transform: translate3d(0, 0, 0);
915
758
  }
916
759
  to {
917
- opacity: 0.1;
918
- transform: translateY(var(--space-6));
760
+ opacity: 1;
761
+ transform: translate3d(0, var(--space-5), 0);
919
762
  }
920
763
  }
921
764
  .ui-DialogOverlay[data-state='closed'] {
@@ -927,11 +770,51 @@ to {
927
770
  .ui-DialogOverlay[data-state='closed']::before {
928
771
  animation: ui-fade-out 160ms cubic-bezier(0.16, 1, 0.3, 1);
929
772
  }
930
- .ui-DialogOverlay[data-state='open'] :where(.ui-DialogContent) {
773
+ .ui-DialogPopup:where([data-state="open"]) {
931
774
  animation: ui-dialog-content-show 200ms cubic-bezier(0.16, 1, 0.3, 1);
932
775
  }
933
- .ui-DialogOverlay[data-state='closed'] :where(.ui-DialogContent) {
934
- animation: ui-dialog-content-hide 150ms cubic-bezier(0.16, 1, 0.3, 1);
776
+ .ui-DialogPopup:where([data-state="closed"]) {
777
+ animation: ui-dialog-content-hide 100ms linear;
778
+ }
779
+ }
780
+
781
+ .ui-AlertPopup {
782
+ --dialog-popup-radius: var(--radius-4);
783
+ --dialog-popup-max-width: 450px;
784
+ }
785
+ @media (prefers-reduced-motion: no-preference) {
786
+ .ui-PopperContent {
787
+ animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
788
+ }
789
+ .ui-PopperContent:where([data-state='open']) {
790
+ animation-duration: 160ms;
791
+ }
792
+ .ui-PopperContent:where([data-state='open']):where([data-side='top']) {
793
+ animation-name: ui-slide-from-top, ui-fade-in;
794
+ }
795
+ .ui-PopperContent:where([data-state='open']):where([data-side='bottom']) {
796
+ animation-name: ui-slide-from-bottom, ui-fade-in;
797
+ }
798
+ .ui-PopperContent:where([data-state='open']):where([data-side='left']) {
799
+ animation-name: ui-slide-from-left, ui-fade-in;
800
+ }
801
+ .ui-PopperContent:where([data-state='open']):where([data-side='right']) {
802
+ animation-name: ui-slide-from-right, ui-fade-in;
803
+ }
804
+ .ui-PopperContent:where([data-state='closed']) {
805
+ animation-duration: 100ms;
806
+ }
807
+ .ui-PopperContent:where([data-state='closed']):where([data-side='top']) {
808
+ animation-name: ui-slide-from-top, ui-fade-out;
809
+ }
810
+ .ui-PopperContent:where([data-state='closed']):where([data-side='bottom']) {
811
+ animation-name: ui-slide-from-bottom, ui-fade-out;
812
+ }
813
+ .ui-PopperContent:where([data-state='closed']):where([data-side='left']) {
814
+ animation-name: ui-slide-from-left, ui-fade-out;
815
+ }
816
+ .ui-PopperContent:where([data-state='closed']):where([data-side='right']) {
817
+ animation-name: ui-slide-from-right, ui-fade-out;
935
818
  }
936
819
  }
937
820
 
@@ -945,10 +828,10 @@ to {
945
828
  flex-direction: column;
946
829
  box-sizing: border-box;
947
830
  overflow: hidden;
831
+ border-radius: var(--menu-content-border-radius);
948
832
 
949
- --menu-bg: var(--color-panel-solid);
950
833
  box-shadow: var(--shadow-5);
951
- background-color: var(--menu-bg);
834
+ background-color: var(--color-panel-solid);
952
835
  }
953
836
  .ui-MenuViewport {
954
837
  flex: 1 1 0%;
@@ -963,17 +846,39 @@ to {
963
846
  }
964
847
  .ui-MenuContent:where(.r-size-1) {
965
848
  --menu-content-padding: var(--space-1);
849
+ --menu-content-border-radius: var(--radius-3);
850
+
966
851
  --menu-item-padding-left: calc(var(--space-5) / 1.2);
967
852
  --menu-item-padding-right: var(--space-2);
968
853
  --menu-item-height: var(--space-5);
969
- border-radius: var(--radius-3);
854
+ --menu-item-font-size: var(--font-size-1);
855
+ --menu-item-line-height: var(--line-height-1);
856
+ --menu-item-letter-spacing: var(--letter-spacing-1);
857
+ --menu-item-border-radius: var(--radius-1);
970
858
  }
971
859
  .ui-MenuContent:where(.r-size-2) {
972
860
  --menu-content-padding: var(--space-2);
861
+ --menu-content-border-radius: var(--radius-4);
862
+
973
863
  --menu-item-padding-left: var(--space-3);
974
864
  --menu-item-padding-right: var(--space-3);
975
865
  --menu-item-height: var(--space-6);
976
- border-radius: var(--radius-4);
866
+ --menu-item-font-size: var(--font-size-2);
867
+ --menu-item-line-height: var(--line-height-2);
868
+ --menu-item-letter-spacing: var(--letter-spacing-2);
869
+ --menu-item-border-radius: var(--radius-2);
870
+ }
871
+ .ui-MenuContent:where(.r-variant-solid) {
872
+ --menu-item-highlighted-background-color: var(--accent-9);
873
+ --menu-item-highlighted-text-color: var(--accent-contrast);
874
+ }
875
+ .ui-MenuContent:where(.r-variant-solid.r-high-contrast) {
876
+ --menu-item-highlighted-background-color: var(--accent-12);
877
+ --menu-item-highlighted-text-color: var(--accent-1);
878
+ }
879
+ .ui-MenuContent:where(.r-variant-soft) {
880
+ --menu-item-highlighted-background-color: var(--accent-a4);
881
+ --menu-item-highlighted-text-color: var(--accent-a11);
977
882
  }
978
883
 
979
884
  .ui-MenuItem {
@@ -991,13 +896,18 @@ to {
991
896
  -moz-user-select: none;
992
897
  user-select: none;
993
898
  cursor: default;
994
- color: var(--gray-a11);
899
+ color: var(--gray-12);
900
+ font-size: var(--menu-item-font-size);
901
+ line-height: var(--menu-item-line-height);
902
+ letter-spacing: var(--menu-item-letter-spacing);
903
+ border-radius: var(--menu-item-border-radius);
995
904
  }
996
905
  .ui-MenuShortcut {
997
906
  display: flex;
998
907
  align-items: center;
999
908
  margin-left: auto;
1000
909
  padding-left: var(--space-4);
910
+ color: var(--gray-a11);
1001
911
  }
1002
912
  .ui-MenuItem:where([data-accent-color]) {
1003
913
  color: var(--accent-a11);
@@ -1005,39 +915,24 @@ to {
1005
915
  .ui-MenuItem:where([data-disabled]) {
1006
916
  color: var(--gray-a8);
1007
917
  }
918
+ .ui-MenuItem:where([data-highlighted]) {
919
+ background-color: var(--menu-item-highlighted-background-color);
920
+ color: var(--menu-item-highlighted-text-color);
921
+ }
1008
922
  .ui-MenuItem:where([data-disabled], [data-highlighted]) :where(.ui-MenuShortcut) {
1009
923
  color: inherit;
1010
924
  }
1011
- .ui-MenuItem:where([data-size="1"]) {
1012
- font-size: var(--font-size-1);
1013
- line-height: var(--line-height-1);
1014
- letter-spacing: var(--letter-spacing-1);
1015
- border-radius: var(--radius-1);
1016
- }
1017
- .ui-MenuItem:where([data-size="2"]) {
1018
- font-size: var(--font-size-2);
1019
- line-height: var(--line-height-2);
1020
- letter-spacing: var(--letter-spacing-2);
1021
- border-radius: var(--radius-2);
1022
- }
1023
- .ui-MenuItem:where([data-variant="solid"]):where([data-highlighted]) {
1024
- background-color: var(--accent-9);
1025
- color: var(--accent-contrast);
1026
- }
1027
- .ui-MenuItem:where([data-variant="solid"]):where([data-high-contrast]):where([data-highlighted]) {
1028
- background-color: var(--accent-12);
1029
- color: var(--accent-1);
1030
- }
1031
- .ui-MenuItem:where([data-variant="soft"]):where([data-highlighted]) {
1032
- background-color: var(--accent-a4);
1033
- }
1034
925
 
1035
- .ui-PopoverContent {
1036
- --inset-padding-top: var(--popover-content-padding);
1037
- --inset-padding-right: var(--popover-content-padding);
1038
- --inset-padding-bottom: var(--popover-content-padding);
1039
- --inset-padding-left: var(--popover-content-padding);
926
+ .ui-DropdownMenuSeparator {
927
+ height: 1px;
928
+ margin-top: var(--space-2);
929
+ margin-bottom: var(--space-2);
930
+ margin-left: var(--menu-item-padding-left);
931
+ margin-right: var(--menu-item-padding-right);
932
+ background-color: var(--gray-a6);
933
+ }
1040
934
 
935
+ .ui-PopoverPopup {
1041
936
  background-color: var(--color-panel-solid);
1042
937
  box-shadow: var(--shadow-5);
1043
938
  min-width: var(--reka-popover-trigger-width);
@@ -1045,60 +940,20 @@ to {
1045
940
  outline: 0;
1046
941
  overflow: auto;
1047
942
  position: relative;
1048
- padding: var(--popover-content-padding);
1049
943
  box-sizing: border-box;
1050
944
  transform-origin: var(--reka-popover-content-transform-origin);
945
+ padding: var(--popover-popup-padding);
1051
946
  }
1052
- .ui-PopoverContent:where(.r-size-1) {
1053
- --popover-content-padding: var(--space-3);
947
+ .ui-PopoverPopup:where(.r-size-1) {
1054
948
  border-radius: var(--radius-4);
949
+ --popover-popup-padding: var(--space-2);
1055
950
  }
1056
- .ui-PopoverContent:where(.r-size-2) {
1057
- --popover-content-padding: var(--space-4);
1058
- border-radius: var(--radius-4);
1059
- }
1060
- .ui-PopoverContent:where(.r-size-3) {
1061
- --popover-content-padding: var(--space-5);
1062
- border-radius: var(--radius-5);
1063
- }
1064
- .ui-PopoverContent:where(.r-size-4) {
1065
- --popover-content-padding: var(--space-6);
951
+ .ui-PopoverPopup:where(.r-size-2) {
1066
952
  border-radius: var(--radius-5);
953
+ --popover-popup-padding: var(--space-4);
1067
954
  }
1068
- @media (prefers-reduced-motion: no-preference) {
1069
- .ui-PopperContent {
1070
- animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
1071
- }
1072
- .ui-PopperContent:where([data-state='open']) {
1073
- animation-duration: 160ms;
1074
- }
1075
- .ui-PopperContent:where([data-state='open']):where([data-side='top']) {
1076
- animation-name: ui-slide-from-top, ui-fade-in;
1077
- }
1078
- .ui-PopperContent:where([data-state='open']):where([data-side='bottom']) {
1079
- animation-name: ui-slide-from-bottom, ui-fade-in;
1080
- }
1081
- .ui-PopperContent:where([data-state='open']):where([data-side='left']) {
1082
- animation-name: ui-slide-from-left, ui-fade-in;
1083
- }
1084
- .ui-PopperContent:where([data-state='open']):where([data-side='right']) {
1085
- animation-name: ui-slide-from-right, ui-fade-in;
1086
- }
1087
- .ui-PopperContent:where([data-state='closed']) {
1088
- animation-duration: 100ms;
1089
- }
1090
- .ui-PopperContent:where([data-state='closed']):where([data-side='top']) {
1091
- animation-name: ui-slide-from-top, ui-fade-out;
1092
- }
1093
- .ui-PopperContent:where([data-state='closed']):where([data-side='bottom']) {
1094
- animation-name: ui-slide-from-bottom, ui-fade-out;
1095
- }
1096
- .ui-PopperContent:where([data-state='closed']):where([data-side='left']) {
1097
- animation-name: ui-slide-from-left, ui-fade-out;
1098
- }
1099
- .ui-PopperContent:where([data-state='closed']):where([data-side='right']) {
1100
- animation-name: ui-slide-from-right, ui-fade-out;
1101
- }
955
+ .ui-PopoverPopup:where(.p-0) {
956
+ --popover-popup-padding: 0;
1102
957
  }
1103
958
 
1104
959
  .ui-root {
@@ -1379,14 +1234,17 @@ to {
1379
1234
  }
1380
1235
  .ui-Toggle:where(.r-size-1) {
1381
1236
  border-radius: max(var(--radius-1), var(--radius-full));
1237
+ font-size: var(--font-size-1);
1382
1238
  --toggle-size: var(--space-5);
1383
1239
  }
1384
1240
  .ui-Toggle:where(.r-size-2) {
1385
1241
  border-radius: max(var(--radius-2), var(--radius-full));
1242
+ font-size: var(--font-size-3);
1386
1243
  --toggle-size: var(--space-6);
1387
1244
  }
1388
1245
  .ui-Toggle:where(.r-size-3) {
1389
1246
  border-radius: max(var(--radius-3), var(--radius-full));
1247
+ font-size: var(--font-size-6);
1390
1248
  --toggle-size: var(--space-7);
1391
1249
  }
1392
1250
 
@@ -1456,32 +1314,45 @@ to {
1456
1314
  justify-content: center;
1457
1315
  vertical-align: top;
1458
1316
  flex-shrink: 0;
1459
- height: var(--toggle-size);
1317
+ height: var(--toggle-group-height);
1460
1318
  }
1461
1319
  .ui-ToggleGroupRoot:where(.r-size-1) {
1320
+ font-size: var(--font-size-1);
1462
1321
  --toggle-radius: max(var(--radius-1), var(--radius-full));
1463
- --toggle-size: var(--space-5);
1322
+ --toggle-group-height: var(--space-5);
1323
+ --toggle-group-soft-padding: 1px;
1464
1324
  }
1465
1325
  .ui-ToggleGroupRoot:where(.r-size-2) {
1326
+ font-size: var(--font-size-3);
1466
1327
  --toggle-radius: max(var(--radius-2), var(--radius-full));
1467
- --toggle-size: var(--space-6);
1328
+ --toggle-group-height: var(--space-6);
1329
+ --toggle-group-soft-padding: 2px;
1468
1330
  }
1469
1331
  .ui-ToggleGroupRoot:where(.r-size-3) {
1332
+ font-size: var(--font-size-6);
1470
1333
  --toggle-radius: max(var(--radius-3), var(--radius-full));
1471
- --toggle-size: var(--space-7);
1334
+ --toggle-group-height: var(--space-7);
1335
+ --toggle-group-soft-padding: 3px;
1472
1336
  }
1473
- .ui-ToggleGroupRoot:where(.r-variant-solid) {
1337
+ .ui-ToggleGroupRoot:where(.r-variant-solid),
1338
+ .ui-ToggleGroupRoot:where(.r-variant-outline),
1339
+ .ui-ToggleGroupRoot:where(.r-variant-surface) {
1474
1340
  border-radius: var(--toggle-radius);
1475
1341
  background-color: var(--color-panel-solid);
1476
1342
  box-shadow: var(--shadow-2);
1343
+ --toggle-item-size: var(--toggle-group-height);
1477
1344
  }
1478
1345
  .ui-ToggleGroupRoot:where(.r-variant-soft) {
1479
1346
  border-radius: var(--toggle-radius);
1480
1347
  background-color: var(--color-panel-translucent);
1481
1348
  box-shadow: var(--shadow-2);
1349
+ padding: var(--toggle-group-soft-padding);
1350
+ gap: var(--toggle-group-soft-padding);
1351
+ --toggle-item-size: calc(var(--toggle-group-height) - 2 * var(--toggle-group-soft-padding));
1482
1352
  }
1483
1353
  .ui-ToggleGroupRoot:where(.r-variant-ghost) {
1484
1354
  gap: calc(var(--space-1) / 2);
1355
+ --toggle-item-size: var(--toggle-group-height);
1485
1356
  }
1486
1357
 
1487
1358
  .ui-ToggleGroupItem {
@@ -1491,18 +1362,18 @@ to {
1491
1362
  justify-content: center;
1492
1363
  vertical-align: top;
1493
1364
  flex-shrink: 0;
1494
- width: var(--toggle-size);
1495
- height: var(--toggle-size);
1365
+ width: var(--toggle-item-size);
1366
+ height: var(--toggle-item-size);
1496
1367
  }
1497
- .ui-ToggleGroupItem:where(:first-child) {
1368
+ .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-surface, .r-variant-outline) :where(.ui-ToggleGroupItem:first-child) {
1498
1369
  border-top-left-radius: var(--toggle-radius);
1499
1370
  border-bottom-left-radius: var(--toggle-radius);
1500
1371
  }
1501
- .ui-ToggleGroupItem:where(:last-child) {
1372
+ .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-surface, .r-variant-outline) :where(.ui-ToggleGroupItem:last-child) {
1502
1373
  border-top-right-radius: var(--toggle-radius);
1503
1374
  border-bottom-right-radius: var(--toggle-radius);
1504
1375
  }
1505
- .ui-ToggleGroupRoot:where(.r-variant-ghost) :where(.ui-ToggleGroupItem) {
1376
+ .ui-ToggleGroupRoot:where(.r-variant-soft, .r-variant-ghost) :where(.ui-ToggleGroupItem) {
1506
1377
  border-radius: var(--toggle-radius);
1507
1378
  }
1508
1379
 
@@ -1524,13 +1395,16 @@ to {
1524
1395
  background-color: var(--accent-a4);
1525
1396
  }
1526
1397
 
1527
- /** solid & ghost */
1398
+ /** solid, surface ghost */
1528
1399
  @media (hover: hover) {
1529
- .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-ghost) :where(.ui-ToggleGroupItem:hover) {
1400
+ .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-surface, .r-variant-outline, .r-variant-ghost) :where(.ui-ToggleGroupItem:hover) {
1530
1401
  background-color: var(--accent-a3);
1531
1402
  }
1532
1403
  }
1533
- .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-ghost) :where(.ui-ToggleGroupItem:focus-visible) {
1404
+ :where(.ui-ToggleGroupRoot.r-variant-surface, .r-variant-outline) .ui-ToggleGroupItem + .ui-ToggleGroupItem {
1405
+ box-shadow: inset 1px 0 0 0 var(--gray-a4);
1406
+ }
1407
+ .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-surface, .r-variant-outoine, .r-variant-ghost) :where(.ui-ToggleGroupItem:focus-visible) {
1534
1408
  outline: 2px solid var(--focus-8);
1535
1409
  outline-offset: 2px;
1536
1410
  }
@@ -1538,6 +1412,9 @@ to {
1538
1412
  color: var(--gray-a8);
1539
1413
  background-color: var(--gray-a3);
1540
1414
  }
1415
+ .ui-ToggleGroupRoot:where(.r-variant-surface, .r-variant-outline) :where(.ui-ToggleGroupItem[data-disabled]) {
1416
+ color: var(--gray-a8);
1417
+ }
1541
1418
  .ui-ToggleGroupRoot:where(.r-variant-ghost) :where(.ui-ToggleGroupItem[data-disabled]) {
1542
1419
  color: var(--gray-a8);
1543
1420
  background-color: transparent;
@@ -1547,6 +1424,13 @@ to {
1547
1424
  color: var(--accent-contrast);
1548
1425
  box-shadow: var(--shadow-1);
1549
1426
  }
1427
+ .ui-ToggleGroupRoot:where(.r-variant-surface) :where(.ui-ToggleGroupItem[data-state="on"]) {
1428
+ background-color: var(--accent-a3);
1429
+ color: var(--accent-a11);
1430
+ }
1431
+ .ui-ToggleGroupRoot:where(.r-variant-outline) :where(.ui-ToggleGroupItem[data-state="on"]) {
1432
+ color: var(--accent-a11);
1433
+ }
1550
1434
  .ui-ToggleGroupRoot:where(.r-variant-ghost) :where(.ui-ToggleGroupItem[data-state="on"]) {
1551
1435
  background-color: var(--accent-a4);
1552
1436
  }
@@ -1922,7 +1806,6 @@ to {
1922
1806
  font-style: normal;
1923
1807
  text-align: start;
1924
1808
  overflow: hidden;
1925
- padding: var(--text-area-border-width);
1926
1809
  width: 100%;
1927
1810
  }
1928
1811
  .ui-TextAreaInput {
@@ -1941,6 +1824,9 @@ to {
1941
1824
  outline: none;
1942
1825
  box-shadow: none;
1943
1826
  }
1827
+ .ui-TextAreaInput:where(:disabled) {
1828
+ cursor: not-allowed;
1829
+ }
1944
1830
  .ui-TextAreaInput::-webkit-scrollbar {
1945
1831
  width: var(--space-3);
1946
1832
  height: var(--space-3);
@@ -2012,13 +1898,11 @@ to {
2012
1898
  .ui-TextArea:where(.r-variant-surface) .ui-TextAreaInput::placeholder {
2013
1899
  color: var(--gray-a10);
2014
1900
  }
2015
- .ui-TextArea:where(.r-variant-surface) .ui-TextAreaInput:where(:disabled, :-moz-read-only) {
1901
+ .ui-TextArea:where(.r-variant-surface) :where(.ui-TextAreaInput:-moz-read-only) {
2016
1902
  background-image: linear-gradient(var(--gray-a2), var(--gray-a2));
2017
- box-shadow: inset 0 0 0 var(--text-area-border-width) var(--gray-a6);
2018
1903
  }
2019
- .ui-TextArea:where(.r-variant-surface) .ui-TextAreaInput:where(:disabled, :read-only) {
1904
+ .ui-TextArea:where(.r-variant-surface) :where(.ui-TextAreaInput:read-only) {
2020
1905
  background-image: linear-gradient(var(--gray-a2), var(--gray-a2));
2021
- box-shadow: inset 0 0 0 var(--text-area-border-width) var(--gray-a6);
2022
1906
  }
2023
1907
  .ui-TextArea:where(.r-variant-soft) {
2024
1908
  --text-area-border-width: 0px;
@@ -2043,11 +1927,11 @@ to {
2043
1927
  color: var(--accent-12);
2044
1928
  opacity: 0.65;
2045
1929
  }
2046
- .ui-TextArea:where(.r-variant-soft) .ui-TextAreaInput:where(:disabled, :-moz-read-only) {
1930
+ .ui-TextArea:where(.r-variant-soft) :where(.ui-TextAreaInput:-moz-read-only) {
2047
1931
  background-image: linear-gradient(var(--gray-a2), var(--gray-a2));
2048
1932
  box-shadow: inset 0 0 0 var(--text-area-border-width) var(--gray-a6);
2049
1933
  }
2050
- .ui-TextArea:where(.r-variant-soft) .ui-TextAreaInput:where(:disabled, :read-only) {
1934
+ .ui-TextArea:where(.r-variant-soft) :where(.ui-TextAreaInput:read-only) {
2051
1935
  background-image: linear-gradient(var(--gray-a2), var(--gray-a2));
2052
1936
  box-shadow: inset 0 0 0 var(--text-area-border-width) var(--gray-a6);
2053
1937
  }
@@ -2082,7 +1966,7 @@ to {
2082
1966
  .ui-ColorField:where(.r-variant-ring) {
2083
1967
  --color-input-size: calc(var(--color-field-size) - var(--color-field-border-width) * 4);
2084
1968
  --color-input-radius: calc(var(--color-field-radius) - 2px);
2085
- border: var(--color-field-border-width) solid var(--color-field-border-color);
1969
+ border: var(--color-field-border-width) solid var(--color-field-color);
2086
1970
  }
2087
1971
  .ui-ColorFieldInput {
2088
1972
  -webkit-appearance: none;
@@ -2178,6 +2062,8 @@ to {
2178
2062
  font-style: normal;
2179
2063
  text-align: start;
2180
2064
  color: var(--gray-12);
2065
+ box-sizing: border-box;
2066
+ height: var(--select-trigger-height);
2181
2067
  }
2182
2068
  .ui-SelectTriggerInner {
2183
2069
  overflow: hidden;
@@ -2186,73 +2072,51 @@ to {
2186
2072
  }
2187
2073
  .ui-SelectIcon {
2188
2074
  flex-shrink: 0;
2189
- }
2190
- .ui-SelectTrigger:where(:not(.r-variant-ghost)).ui-SelectIcon {
2191
2075
  opacity: 0.9;
2192
- }
2193
- .ui-SelectTrigger:where(:not(.r-variant-ghost)) {
2194
- box-sizing: border-box;
2195
- height: var(--select-trigger-height);
2196
- }
2197
- .ui-SelectTrigger:where(.r-variant-ghost) {
2198
- box-sizing: content-box;
2199
- height: -moz-fit-content;
2200
- height: fit-content;
2201
- padding: var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);
2202
- margin: calc(0px - var(--select-trigger-ghost-padding-y)) calc(0px - var(--select-trigger-ghost-padding-x));
2076
+ width: var(--select-icon-size);
2077
+ height: var(--select-icon-size);
2203
2078
  }
2204
2079
  .ui-SelectTrigger:where(.r-size-1) {
2205
2080
  --select-trigger-height: var(--space-5);
2081
+ --select-trigger-padding-x: var(--space-2);
2082
+ --select-trigger-ghost-padding-x: var(--space-2);
2083
+ --select-trigger-ghost-padding-y: var(--space-1);
2084
+ --select-icon-size: 9px;
2085
+
2206
2086
  gap: var(--space-1);
2207
2087
  font-size: var(--font-size-1);
2208
2088
  line-height: var(--line-height-1);
2209
2089
  letter-spacing: var(--letter-spacing-1);
2210
2090
  border-radius: max(var(--radius-1), var(--radius-full));
2211
2091
  }
2212
- .ui-SelectTrigger:where(.r-size-1):where(.r-variant-ghost) {
2213
- --select-trigger-ghost-padding-x: var(--space-2);
2214
- --select-trigger-ghost-padding-y: var(--space-1);
2215
- }
2216
- .ui-SelectTrigger:where(.r-size-1):where(:not(.r-variant-ghost)) {
2217
- padding-left: var(--space-2);
2218
- padding-right: var(--space-2);
2219
- }
2220
2092
  .ui-SelectTrigger:where(.r-size-2) {
2221
2093
  --select-trigger-height: var(--space-6);
2094
+ --select-trigger-padding-x: var(--space-3);
2095
+ --select-trigger-ghost-padding-x: var(--space-2);
2096
+ --select-trigger-ghost-padding-y: var(--space-1);
2097
+ --select-icon-size: 10px;
2098
+
2222
2099
  gap: calc(var(--space-1) * 1.5);
2223
2100
  font-size: var(--font-size-2);
2224
2101
  line-height: var(--line-height-2);
2225
2102
  letter-spacing: var(--letter-spacing-2);
2226
2103
  border-radius: max(var(--radius-2), var(--radius-full));
2227
2104
  }
2228
- .ui-SelectTrigger:where(.r-size-1):where(.r-variant-ghost) {
2229
- --select-trigger-ghost-padding-x: var(--space-2);
2230
- --select-trigger-ghost-padding-y: var(--space-1);
2231
- }
2232
- .ui-SelectTrigger:where(.r-size-2):where(:not(.r-variant-ghost)) {
2233
- padding-left: var(--space-3);
2234
- padding-right: var(--space-3);
2235
- }
2236
2105
  .ui-SelectTrigger:where(.r-size-3) {
2237
2106
  --select-trigger-height: var(--space-7);
2107
+ --select-trigger-padding-x: var(--space-4);
2108
+ --select-trigger-ghost-padding-x: var(--space-3);
2109
+ --select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5);
2110
+ --select-icon-size: 11px;
2111
+
2238
2112
  gap: var(--space-2);
2239
2113
  font-size: var(--font-size-3);
2240
2114
  line-height: var(--line-height-3);
2241
2115
  letter-spacing: var(--letter-spacing-3);
2242
2116
  border-radius: max(var(--radius-3), var(--radius-full));
2243
2117
  }
2244
- .ui-SelectTrigger:where(.r-size-3):where(.r-variant-ghost) {
2245
- --select-trigger-ghost-padding-x: var(--space-3);
2246
- --select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5);
2247
- }
2248
- .ui-SelectTrigger:where(.r-size-3):where(:not(.r-variant-ghost)) {
2249
- padding-left: var(--space-4);
2250
- padding-right: var(--space-4);
2251
- }
2252
- .ui-SelectTrigger:where(.r-size-3) .ui-SelectIcon {
2253
- width: 11px;
2254
- height: 11px;
2255
- }
2118
+
2119
+ /** surface */
2256
2120
  .ui-SelectTrigger:where(.r-variant-surface) {
2257
2121
  --select-trigger-border-width: 1px;
2258
2122
  --select-trigger-border-color: var(--gray-a7);
@@ -2260,6 +2124,8 @@ to {
2260
2124
  color: var(--gray-12);
2261
2125
  background-color: var(--color-surface);
2262
2126
  border: var(--select-trigger-border-width) solid var(--select-trigger-border-color);
2127
+ padding-left: var(--select-trigger-padding-x);
2128
+ padding-right: var(--select-trigger-padding-x);
2263
2129
  }
2264
2130
  .ui-SelectTrigger:where(.r-variant-surface):where(:focus-visible) {
2265
2131
  --select-trigger-border-color: var(--focus-a8);
@@ -2281,6 +2147,8 @@ to {
2281
2147
  .ui-SelectTrigger:where(.r-variant-surface):where([data-placeholder]) .ui-SelectTriggerInner {
2282
2148
  color: var(--gray-a10);
2283
2149
  }
2150
+
2151
+ /** soft and ghost */
2284
2152
  .ui-SelectTrigger:where(.r-variant-soft),
2285
2153
  .ui-SelectTrigger:where(.r-variant-ghost) {
2286
2154
  color: var(--accent-12);
@@ -2297,6 +2165,8 @@ to {
2297
2165
  }
2298
2166
  .ui-SelectTrigger:where(.r-variant-soft) {
2299
2167
  background-color: var(--accent-a3);
2168
+ padding-left: var(--select-trigger-padding-x);
2169
+ padding-right: var(--select-trigger-padding-x);
2300
2170
  }
2301
2171
  @media (hover: hover) {
2302
2172
  .ui-SelectTrigger:where(.r-variant-soft):hover {
@@ -2313,6 +2183,10 @@ to {
2313
2183
  color: var(--gray-a11);
2314
2184
  background-color: var(--gray-a3);
2315
2185
  }
2186
+ .ui-SelectTrigger:where(.r-variant-ghost) {
2187
+ padding: var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);
2188
+ margin: calc(0px - var(--select-trigger-ghost-padding-y)) calc(0px - var(--select-trigger-ghost-padding-x));
2189
+ }
2316
2190
  @media (hover: hover) {
2317
2191
  .ui-SelectTrigger:where(.r-variant-ghost):hover {
2318
2192
  background-color: var(--accent-a3);
@@ -2433,7 +2307,57 @@ to {
2433
2307
  background-color: var(--gray-a6);
2434
2308
  }
2435
2309
 
2436
- .ui-ComboboxField {
2310
+ .ui-ComboboxRoot {
2311
+ width: -moz-fit-content;
2312
+ width: fit-content;
2313
+ }
2314
+ .ui-ComboboxRoot:where(.r-multiple) {
2315
+ width: auto;
2316
+ }
2317
+ .ui-ComboboxRoot:where(.r-size-1) {
2318
+ --combobox-field-height: var(--space-5);
2319
+ --combobox-field-padding: calc(var(--space-1) * 1.5);
2320
+ --combobox-field-border-radius: max(var(--radius-2), var(--radius-full));
2321
+ --combobox-field-native-icon-size: var(--space-3);
2322
+ --combobox-field-font-size: var(--font-size-1);
2323
+ --combobox-field-letter-spacing: var(--letter-spacing-1);
2324
+
2325
+ --combobox-trigger-gap: var(--space-2);
2326
+ --combobox-trigger-padding-x: var(--space-1);
2327
+
2328
+ --combobox-decoration-container-padding-right: 0px;
2329
+ --combobox-decoration-container-margin-right: -2px;
2330
+ }
2331
+ .ui-ComboboxRoot:where(.r-size-2) {
2332
+ --combobox-field-height: var(--space-6);
2333
+ --combobox-field-padding: var(--space-2);
2334
+ --combobox-field-border-radius: max(var(--radius-2), var(--radius-full));
2335
+ --combobox-field-native-icon-size: var(--space-4);
2336
+ --combobox-field-font-size: var(--font-size-2);
2337
+ --combobox-field-letter-spacing: var(--letter-spacing-2);
2338
+
2339
+ --combobox-trigger-gap: var(--space-2);
2340
+ --combobox-trigger-padding-x: var(--space-2);
2341
+
2342
+ --combobox-decoration-container-padding-right: 2px;
2343
+ --combobox-decoration-container-margin-right: 0px;
2344
+ }
2345
+ .ui-ComboboxRoot:where(.r-size-3) {
2346
+ --combobox-field-height: var(--space-7);
2347
+ --combobox-field-padding: var(--space-3);
2348
+ --combobox-field-border-radius: max(var(--radius-3), var(--radius-full));
2349
+ --combobox-field-native-icon-size: var(--space-4);
2350
+ --combobox-field-font-size: var(--font-size-3);
2351
+ --combobox-field-letter-spacing: var(--letter-spacing-3);
2352
+
2353
+ --combobox-trigger-gap: var(--space-3);
2354
+ --combobox-trigger-padding-x: var(--space-3);
2355
+
2356
+ --combobox-decoration-container-padding-right: 5px;
2357
+ --combobox-decoration-container-margin-right: 0px;
2358
+ }
2359
+
2360
+ .ui-ComboboxField {
2437
2361
  display: flex;
2438
2362
  align-items: stretch;
2439
2363
  font-weight: var(--font-weight-regular);
@@ -2443,6 +2367,8 @@ to {
2443
2367
  height: var(--combobox-field-height);
2444
2368
  padding: var(--combobox-field-border-width);
2445
2369
  border-radius: var(--combobox-field-border-radius);
2370
+ font-size: var(--combobox-field-font-size);
2371
+ letter-spacing: var(--combobox-field-letter-spacing);
2446
2372
  }
2447
2373
  .ui-ComboboxField:where([data-multiple="true"]) {
2448
2374
  height: auto;
@@ -2483,8 +2409,12 @@ to {
2483
2409
  background-color: transparent;
2484
2410
  border-radius: calc(var(--combobox-field-border-radius) - var(--combobox-field-border-width));
2485
2411
  text-indent: var(--combobox-field-padding);
2486
- height: calc(var(--combobox-field-height) - var(--space-1));
2412
+ height: var(--combobox-input-height);
2487
2413
  cursor: auto;
2414
+
2415
+ /* Reset size 2 padding bottom */
2416
+ padding-bottom: 0px;
2417
+ /* Safari credentials autofill icon */
2488
2418
  }
2489
2419
  .ui-ComboboxField:where([data-multiple="true"]) :where(.ui-ComboboxInput) {
2490
2420
  text-indent: calc(var(--combobox-field-padding) / 2);
@@ -2524,86 +2454,31 @@ to {
2524
2454
  order: 0;
2525
2455
  margin-left: 0;
2526
2456
  margin-right: calc(var(--combobox-field-border-width) * -1);
2527
- height: calc(var(--combobox-field-height) - 4px);
2528
- }
2529
- :where(.r-size-1) .ui-ComboboxField {
2530
- --combobox-field-height: var(--space-5);
2531
- --combobox-field-padding: calc(var(--space-1) * 1.5 - var(--combobox-field-border-width));
2532
- --combobox-field-border-radius: max(var(--radius-2), var(--radius-full));
2533
- --combobox-field-native-icon-size: var(--space-3);
2534
- font-size: var(--font-size-1);
2535
- letter-spacing: var(--letter-spacing-1);
2536
- }
2537
- :where(.r-size-1) .ui-ComboboxField :where(.ui-ComboboxTrigger) {
2538
- gap: var(--space-2);
2539
- padding-left: var(--space-1);
2540
- padding-right: var(--space-1);
2541
- }
2542
- :where(.r-size-1) .ui-ComboboxField :where(.ui-ComboboxInput) {
2543
- /* Reset size 2 padding bottom */
2544
- padding-bottom: 0px;
2545
- /* Safari credentials autofill icon */
2546
- }
2547
- :where(.r-size-1) .ui-ComboboxField :where(.ui-ComboboxInput)::-webkit-textfield-decoration-container {
2548
- padding-right: 0px;
2549
- margin-right: -2px;
2550
- }
2551
- :where(.r-size-2) .ui-ComboboxField {
2552
- --combobox-field-height: var(--space-6);
2553
- --combobox-field-padding: calc(var(--space-2) - var(--combobox-field-border-width));
2554
- --combobox-field-border-radius: max(var(--radius-2), var(--radius-full));
2555
- --combobox-field-native-icon-size: var(--space-4);
2556
- font-size: var(--font-size-2);
2557
- letter-spacing: var(--letter-spacing-2);
2558
- }
2559
- :where(.r-size-2) .ui-ComboboxField :where(.ui-ComboboxInput) {
2560
- /* Avoid 1px baseline jitter when layout around the text field is subpixel-sized (e.g. vh units). */
2561
- /* Works because as of Nov 2023, Chrome computes input text bounding box height as 16.5px on @2x screens. */
2562
- padding-bottom: 0.5px;
2563
- /* Safari credentials autofill icon */
2564
- }
2565
- :where(.r-size-2) .ui-ComboboxField :where(.ui-ComboboxInput)::-webkit-textfield-decoration-container {
2566
- padding-right: 2px;
2567
- margin-right: 0px;
2568
- }
2569
- :where(.r-size-2) .ui-ComboboxField :where(.ui-ComboboxTrigger) {
2570
- gap: var(--space-2);
2571
- padding-left: var(--space-2);
2572
- padding-right: var(--space-2);
2573
- }
2574
- :where(.r-size-3) .ui-ComboboxField {
2575
- --combobox-field-height: var(--space-7);
2576
- --combobox-field-padding: calc(var(--space-3) - var(--combobox-field-border-width));
2577
- --combobox-field-border-radius: max(var(--radius-3), var(--radius-full));
2578
- --combobox-field-native-icon-size: var(--space-4);
2579
- font-size: var(--font-size-3);
2580
- letter-spacing: var(--letter-spacing-3);
2581
- }
2582
- :where(.r-size-3) .ui-ComboboxField :where(.ui-ComboboxInput) {
2583
- /* Reset size 2 padding bottom */
2584
- padding-bottom: 0px;
2585
- /* Safari credentials autofill icon */
2586
- }
2587
- :where(.r-size-3) .ui-ComboboxField :where(.ui-ComboboxInput)::-webkit-textfield-decoration-container {
2588
- padding-right: 5px;
2589
- margin-right: 0px;
2457
+ height: var(--combobox-trigger-height);
2458
+
2459
+ gap: var(--combobox-trigger-gap);
2460
+ padding-left: var(--combobox-trigger-padding-x);
2461
+ padding-right: var(--combobox-trigger-padding-x);
2590
2462
  }
2591
- :where(.r-size-3) .ui-ComboboxField :where(.ui-ComboboxTrigger) {
2592
- gap: var(--space-3);
2593
- padding-left: var(--space-3);
2594
- padding-right: var(--space-3);
2463
+ .ui-ComboboxInput::-webkit-textfield-decoration-container {
2464
+ padding-right: var(--combobox-decoration-container-padding-right);
2465
+ margin-right: var(--combobox-decoration-container-margin-right);
2595
2466
  }
2596
2467
  .ui-ComboboxField:where(.r-variant-surface) {
2597
2468
  --combobox-field-selection-color: var(--focus-a5);
2598
2469
  --combobox-field-focus-color: var(--focus-a8);
2599
2470
  --combobox-field-border-width: 1px;
2600
2471
  --combobox-field-border-color: var(--gray-a7);
2472
+ --combobox-input-height: calc(var(--combobox-field-height) - var(--space-1));
2473
+ --combobox-trigger-height: calc(var(--combobox-field-height) - var(--space-1));
2474
+
2601
2475
  /* Blend inner shadow with page background */
2602
2476
  background-clip: content-box;
2603
2477
  background-color: var(--color-surface);
2604
2478
  box-sizing: border-box;
2605
2479
  border: var(--combobox-field-border-width) solid var(--combobox-field-border-color);
2606
2480
  color: var(--gray-12);
2481
+ padding: calc(var(--combobox-field-border-width) - var(--combobox-field-border-width));
2607
2482
  }
2608
2483
  @supports selector(:has(*)) {
2609
2484
  .ui-ComboboxField:where(.r-variant-surface):where(:has(.ui-ComboboxInput:focus)) {
@@ -2631,9 +2506,12 @@ to {
2631
2506
  --combobox-field-selection-color: var(--accent-a5);
2632
2507
  --combobox-field-focus-color: var(--accent-8);
2633
2508
  --combobox-field-border-width: 0px;
2509
+ --combobox-input-height: var(--combobox-field-height);
2510
+ --combobox-trigger-height: var(--combobox-field-height);
2511
+
2634
2512
  background-color: var(--accent-a3);
2635
2513
  color: var(--accent-12);
2636
- /* prettier-ignore */
2514
+ padding: var(--combobox-field-border-width);
2637
2515
  }
2638
2516
  @supports selector(:has(*)) {
2639
2517
  .ui-ComboboxField:where(.r-variant-soft):where(:has(.ui-ComboboxInput:focus)) {
@@ -2707,31 +2585,77 @@ to {
2707
2585
  box-sizing: border-box;
2708
2586
  padding: var(--combobox-content-padding);
2709
2587
  }
2710
- .ui-ComboboxContent:has(.ui-ScrollAreaScrollbar[data-orientation='vertical']) .ui-ComboboxViewport {
2588
+ .ui-ComboboxContent:where(:has(.ui-ScrollAreaScrollbar[data-orientation='vertical'])) :where(.ui-ComboboxViewport) {
2711
2589
  padding-right: var(--space-3);
2712
2590
  }
2713
2591
  .ui-ComboboxContent:where(.r-size-1) {
2714
2592
  --combobox-content-padding: var(--space-1);
2593
+
2715
2594
  --combobox-item-height: var(--space-5);
2716
- --combobox-item-indicator-width: calc(var(--space-5) / 1.2);
2595
+ --combobox-item-font-size: var(--font-size-1);
2596
+ --combobox-item-line-height: var(--line-height-1);
2597
+ --combobox-item-letter-spacing: var(--letter-spacing-1);
2598
+ --combobox-item-radius: var(--radius-1);
2599
+
2600
+ --combobox-indicator-width: calc(var(--space-5) / 1.2);
2601
+ --combobox-indicator-icon-width: calc(8px * var(--scaling));
2602
+ --combobox-indicator-icon-height: calc(8px * var(--scaling));
2603
+
2717
2604
  --combobox-separator-margin-right: var(--space-2);
2605
+
2606
+ --combobox-label-font-size: var(--font-size-1);
2607
+ --combobox-label-letter-spacing: var(--letter-spacing-1);
2608
+ --combobox-label-line-height: var(--line-height-1);
2609
+
2718
2610
  border-radius: var(--radius-3);
2719
2611
  }
2612
+ .ui-ComboboxContent:where(.r-size-2) {
2613
+ --combobox-item-font-size: var(--font-size-2);
2614
+ --combobox-item-letter-spacing: var(--letter-spacing-2);
2615
+ }
2616
+ .ui-ComboboxContent:where(.r-size-3) {
2617
+ --combobox-item-font-size: var(--font-size-3);
2618
+ --combobox-item-letter-spacing: var(--letter-spacing-3);
2619
+ }
2720
2620
  .ui-ComboboxContent:where(.r-size-2),
2721
2621
  .ui-ComboboxContent:where(.r-size-3) {
2722
2622
  --combobox-content-padding: var(--space-2);
2623
+ --combobox-item-radius: var(--radius-2);
2723
2624
  --combobox-item-height: var(--space-6);
2724
- --combobox-item-indicator-width: var(--space-5);
2625
+ --combobox-item-line-height: var(--line-height-2);
2626
+ --combobox-indicator-width: var(--space-5);
2627
+ --combobox-indicator-icon-width: calc(10px * var(--scaling));
2628
+ --combobox-indicator-icon-height: calc(10px * var(--scaling));
2725
2629
  --combobox-separator-margin-right: var(--space-3);
2630
+
2631
+ --combobox-label-font-size: var(--font-size-2);
2632
+ --combobox-label-letter-spacing: var(--letter-spacing-2);
2633
+ --combobox-label-line-height: var(--line-height-2);
2634
+
2726
2635
  border-radius: var(--radius-4);
2727
2636
  }
2637
+ .ui-ComboboxContent:where(.r-variant-solid) {
2638
+ --combobox-highlighted-background-color: var(--accent-9);
2639
+ --combobox-highlighted-text-color: var(--accent-contrast);
2640
+ }
2641
+ .ui-ComboboxContent:where(.r-variant-solid.r-high-contrast) {
2642
+ --combobox-highlighted-background-color: var(--accent-12);
2643
+ --combobox-highlighted-text-color: var(--accent-1);
2644
+ }
2645
+ .ui-ComboboxContent:where(.r-variant-soft) {
2646
+ --combobox-highlighted-background-color: var(--accent-a3);
2647
+ --combobox-highlighted-text-color: var(--accent-a11);
2648
+ }
2649
+ .ui-ComboboxContent:where(.r-variant-soft.r-high-contrast) {
2650
+ --combobox-highlighted-text-color: var(--accent-12);
2651
+ }
2728
2652
 
2729
2653
  .ui-ComboboxItem {
2730
2654
  display: flex;
2731
2655
  align-items: center;
2732
2656
  height: var(--combobox-item-height);
2733
- padding-left: var(--combobox-item-indicator-width);
2734
- padding-right: var(--combobox-item-indicator-width);
2657
+ padding-left: var(--combobox-indicator-width);
2658
+ padding-right: var(--combobox-indicator-width);
2735
2659
  position: relative;
2736
2660
  box-sizing: border-box;
2737
2661
  outline: none;
@@ -2740,88 +2664,71 @@ to {
2740
2664
  -moz-user-select: none;
2741
2665
  user-select: none;
2742
2666
  cursor: default;
2667
+
2668
+ font-size: var(--combobox-item-font-size);
2669
+ line-height: var(--combobox-item-line-height);
2670
+ letter-spacing: var(--combobox-item-letter-spacing);
2671
+ border-radius: var(--combobox-item-radius);
2743
2672
  }
2744
2673
  .ui-ComboboxItem:where([data-disabled]) {
2745
2674
  cursor: not-allowed;
2746
2675
  }
2676
+ .ui-ComboboxItem:where([data-disabled]) {
2677
+ color: var(--gray-a8);
2678
+ }
2679
+ .ui-ComboboxItem:where([data-highlighted]) {
2680
+ background-color: var(--combobox-highlighted-background-color);
2681
+ color: var(--combobox-highlighted-text-color);
2682
+ }
2747
2683
  .ui-ComboboxItemIndicator {
2748
2684
  position: absolute;
2749
2685
  left: 0;
2750
- width: var(--combobox-item-indicator-width);
2686
+ width: var(--combobox-indicator-width);
2751
2687
  display: inline-flex;
2752
2688
  align-items: center;
2753
2689
  justify-content: center;
2754
2690
  }
2755
- .ui-ComboboxItem:where([data-disabled]) {
2756
- color: var(--gray-a8);
2757
- }
2758
- :where(.r-size-1) .ui-ComboboxItem {
2759
- font-size: var(--font-size-1);
2760
- line-height: var(--line-height-1);
2761
- letter-spacing: var(--letter-spacing-1);
2762
- border-radius: var(--radius-1);
2763
- }
2764
- :where(.r-size-1) .ui-ComboboxItemIndicatorIcon {
2765
- width: calc(8px * var(--scaling));
2766
- height: calc(8px * var(--scaling));
2767
- }
2768
- :where(.r-size-2) .ui-ComboboxItem {
2769
- line-height: var(--line-height-2);
2770
- border-radius: var(--radius-2);
2771
- font-size: var(--font-size-2);
2772
- letter-spacing: var(--letter-spacing-2);
2773
- }
2774
- :where(.r-size-2) .ui-ComboboxItemIndicatorIcon,
2775
- :where(.r-size-3) .ui-ComboboxItemIndicatorIcon {
2776
- width: calc(10px * var(--scaling));
2777
- height: calc(10px * var(--scaling));
2778
- }
2779
- :where(.r-size-3) .ui-ComboboxItem {
2780
- line-height: var(--line-height-2);
2781
- border-radius: var(--radius-2);
2782
- font-size: var(--font-size-3);
2783
- letter-spacing: var(--letter-spacing-3);
2784
- }
2785
- :where(.r-variant-solid) .ui-ComboboxItem[data-highlighted] {
2786
- background-color: var(--accent-9);
2787
- color: var(--accent-contrast);
2788
- }
2789
- :where(.r-variant-solid):where(.r-high-contrast) .ui-ComboboxItem[data-highlighted] {
2790
- background-color: var(--accent-12);
2791
- color: var(--accent-1);
2792
- }
2793
- :where(.r-variant-soft) .ui-ComboboxItem[data-highlighted] {
2794
- background-color: var(--accent-a4);
2691
+ .ui-ComboboxItemIndicatorIcon {
2692
+ width: var(--combobox-indicator-icon-width);
2693
+ height: var(--combobox-indicator-icon-height);
2795
2694
  }
2796
2695
 
2797
2696
  .ui-ComboboxLabel {
2798
2697
  display: flex;
2799
2698
  align-items: center;
2800
2699
  height: var(--combobox-item-height);
2801
- padding-left: calc(var(--combobox-item-indicator-width) / 2);
2802
- padding-right: var(--combobox-item-indicator-width);
2700
+ padding-left: calc(var(--combobox-indicator-width) / 2);
2701
+ padding-right: var(--combobox-indicator-width);
2803
2702
  color: var(--gray-a10);
2804
2703
  -webkit-user-select: none;
2805
2704
  -moz-user-select: none;
2806
2705
  user-select: none;
2807
2706
  cursor: default;
2707
+
2708
+ font-size: var(--combobox-label-font-size);
2709
+ letter-spacing: var(--combobox-label-letter-spacing);
2710
+ line-height: var(--combobox-label-line-height);
2808
2711
  }
2809
2712
  .ui-SelectItem + .ui-ComboboxLabel {
2810
2713
  margin-top: var(--space-2);
2811
2714
  }
2812
- :where(.r-size-1) .ui-ComboboxLabel {
2813
- font-size: var(--font-size-1);
2814
- letter-spacing: var(--letter-spacing-1);
2815
- line-height: var(--line-height-1);
2816
- }
2817
- :where(.r-size-2) .ui-ComboboxLabel,
2818
- :where(.r-size-3) .ui-ComboboxLabel {
2819
- font-size: var(--font-size-2);
2820
- letter-spacing: var(--letter-spacing-2);
2821
- line-height: var(--line-height-2);
2822
- }
2823
2715
 
2824
- .ui-Radio {
2716
+ .ui-ComboboxEmpty {
2717
+ box-sizing: border-box;
2718
+ outline: none;
2719
+ scroll-margin: var(--combobox-content-padding) 0;
2720
+ -webkit-user-select: none;
2721
+ -moz-user-select: none;
2722
+ user-select: none;
2723
+ cursor: default;
2724
+ padding-left: calc(var(--combobox-indicator-width) / 2);
2725
+ padding-right: var(--combobox-indicator-width);
2726
+ font-size: var(--combobox-item-font-size);
2727
+ line-height: var(--combobox-item-line-height);
2728
+ letter-spacing: var(--combobox-item-letter-spacing);
2729
+ color: var(--gray-11);
2730
+ }
2731
+ .ui-RadioBase {
2825
2732
  position: relative;
2826
2733
  display: inline-flex;
2827
2734
  align-items: center;
@@ -2834,25 +2741,37 @@ to {
2834
2741
  border: none;
2835
2742
  box-shadow: none;
2836
2743
  }
2837
- .ui-Radio:checked {
2744
+ .ui-RadioBase:where(.r-size-1) {
2745
+ --radio-size: calc(var(--space-4) * 0.875);
2746
+ }
2747
+ .ui-RadioBase:where(.r-size-2) {
2748
+ --radio-size: var(--space-4);
2749
+ }
2750
+ .ui-RadioBase:where(.r-size-3) {
2751
+ --radio-size: calc(var(--space-4) * 1.25);
2752
+ }
2753
+ .ui-RadioBase:checked {
2838
2754
  /* reset for tailwind */
2839
2755
  background-image: none;
2840
2756
  }
2841
- .ui-Radio:focus {
2757
+ .ui-RadioBase:focus {
2842
2758
  /* reset for tailwind */
2843
2759
  box-shadow: none;
2844
2760
  }
2845
- .ui-Radio:where(:disabled, [data-disabled]) {
2761
+ .ui-RadioBase:where(:focus-visible) {
2762
+ outline: none;
2763
+ }
2764
+ .ui-RadioBase:where(:disabled, [data-disabled]) {
2846
2765
  cursor: not-allowed;
2847
2766
  }
2848
- .ui-Radio::before {
2767
+ .ui-RadioBase::before {
2849
2768
  content: '';
2850
2769
  display: block;
2851
2770
  height: var(--radio-size);
2852
2771
  width: var(--radio-size);
2853
2772
  border-radius: 100%;
2854
2773
  }
2855
- .ui-Radio::after {
2774
+ .ui-RadioBase::after {
2856
2775
  pointer-events: none;
2857
2776
  position: absolute;
2858
2777
  height: var(--radio-size);
@@ -2861,135 +2780,225 @@ to {
2861
2780
  /* Scale via transform to achieve perfect sub-pixel positioning */
2862
2781
  transform: scale(0.4);
2863
2782
  }
2864
- .ui-Radio:where(:checked, [data-state='checked'])::after {
2783
+ .ui-RadioBase:where(:checked, [data-state='checked'])::after {
2865
2784
  content: '';
2866
2785
  }
2867
- .ui-Radio:where(:focus-visible)::before {
2786
+ .ui-RadioBase:where(:focus-visible)::before {
2868
2787
  outline: 2px solid var(--focus-8);
2869
2788
  outline-offset: 2px;
2870
2789
  }
2871
- .ui-Radio:where(.r-size-1) {
2872
- --radio-size: calc(var(--space-4) * 0.875);
2873
- }
2874
- .ui-Radio:where(.r-size-2) {
2875
- --radio-size: var(--space-4);
2876
- }
2877
- .ui-Radio:where(.r-size-3) {
2878
- --radio-size: calc(var(--space-4) * 1.25);
2879
- }
2880
- .ui-Radio:where(.r-variant-surface):where(:not(:checked), [data-state='unchecked'])::before {
2790
+ :where(.ui-RadioGroupRoot.r-variant-surface) .ui-RadioBase:where(:not(:checked), [data-state='unchecked'])::before,
2791
+ .ui-RadioBase:where(.r-variant-surface):where(:not(:checked), [data-state='unchecked'])::before {
2881
2792
  background-color: var(--color-surface);
2882
2793
  box-shadow: inset 0 0 0 1px var(--gray-a7);
2883
2794
  }
2884
- .ui-Radio:where(.r-variant-surface):where(:checked, [data-state='checked'])::before {
2795
+ :where(.ui-RadioGroupRoot.r-variant-surface) .ui-RadioBase:where(:checked, [data-state='checked'])::before,
2796
+ .ui-RadioBase:where(.r-variant-surface):where(:checked, [data-state='checked'])::before {
2885
2797
  background-color: var(--accent-indicator);
2886
2798
  }
2887
- .ui-Radio:where(.r-variant-surface)::after {
2799
+ :where(.ui-RadioGroupRoot.r-variant-surface) .ui-RadioBase::after,
2800
+ .ui-RadioBase:where(.r-variant-surface)::after {
2888
2801
  background-color: var(--accent-contrast);
2889
2802
  }
2890
- .ui-Radio:where(.r-variant-surface):where(.r-high-contrast):where(:checked, [data-state='checked'])::before {
2803
+ :where(.ui-RadioGroupRoot.r-variant-surface.r-high-contrast) .ui-RadioBase:where(:checked, [data-state='checked'])::before,
2804
+ .ui-RadioBase:where(.r-variant-surface.r-high-contrast):where(:checked, [data-state='checked'])::before {
2891
2805
  background-color: var(--accent-12);
2892
2806
  }
2893
- .ui-Radio:where(.r-variant-surface):where(.r-high-contrast)::after {
2807
+ :where(.ui-RadioGroupRoot.r-variant-surface.r-high-contrast) .ui-RadioBase::after,
2808
+ .ui-RadioBase:where(.r-variant-surface.r-high-contrast)::after {
2894
2809
  background-color: var(--accent-1);
2895
2810
  }
2896
- .ui-Radio:where(.r-variant-surface):where(:disabled, [data-disabled])::before {
2811
+ :where(.ui-RadioGroupRoot.r-variant-surface) .ui-RadioBase:where(:disabled, [data-disabled])::before,
2812
+ .ui-RadioBase:where(.r-variant-surface):where(:disabled, [data-disabled])::before {
2897
2813
  box-shadow: inset 0 0 0 1px var(--gray-a6);
2898
2814
  background-color: var(--gray-a3);
2899
2815
  }
2900
- .ui-Radio:where(.r-variant-surface):where(:disabled, [data-disabled])::after {
2816
+ :where(.ui-RadioGroupRoot.r-variant-surface) .ui-RadioBase:where(:disabled, [data-disabled])::after,
2817
+ .ui-RadioBase:where(.r-variant-surface):where(:disabled, [data-disabled])::after {
2901
2818
  background-color: var(--gray-a8);
2902
2819
  }
2903
- .ui-Radio:where(.r-variant-soft)::before {
2820
+ :where(.ui-RadioGroupRoot.r-variant-soft) .ui-RadioBase::before,
2821
+ .ui-RadioBase:where(.r-variant-soft)::before {
2904
2822
  background-color: var(--accent-a4);
2905
2823
  }
2906
- .ui-Radio:where(.r-variant-soft)::after {
2824
+ :where(.ui-RadioGroupRoot.r-variant-soft) .ui-RadioBase::after,
2825
+ .ui-RadioBase:where(.r-variant-soft)::after {
2907
2826
  background-color: var(--accent-a11);
2908
2827
  }
2909
- .ui-Radio:where(.r-variant-soft):where(.r-high-contrast)::after {
2828
+ :where(.ui-RadioGroupRoot.r-variant-soft.r-high-contrast) .ui-RadioBase::after,
2829
+ .ui-RadioBase:where(.r-variant-soft.r-high-contrast)::after {
2910
2830
  background-color: var(--accent-12);
2911
2831
  }
2912
- .ui-Radio:where(.r-variant-soft):where(:focus-visible)::before {
2832
+ :where(.ui-RadioGroupRoot.r-variant-soft:focus-visible) .ui-RadioBase::before,
2833
+ .ui-RadioBase:where(.r-variant-soft:focus-visible)::before {
2913
2834
  outline-color: var(--accent-a8);
2914
2835
  }
2915
- .ui-Radio:where(.r-variant-soft):where(:disabled, [data-disabled])::before {
2836
+ :where(.ui-RadioGroupRoot.r-variant-soft) .ui-RadioBase:where(:disabled, [data-disabled])::before,
2837
+ .ui-RadioBase:where(.r-variant-soft):where(:disabled, [data-disabled])::before {
2916
2838
  background-color: var(--gray-a3);
2917
2839
  }
2918
- .ui-Radio:where(.r-variant-soft):where(:disabled, [data-disabled])::after {
2840
+ :where(.ui-RadioGroupRoot.r-variant-soft) .ui-RadioBase:where(:disabled, [data-disabled])::after,
2841
+ .ui-RadioBase:where(.r-variant-soft):where(:disabled, [data-disabled])::after {
2919
2842
  background-color: var(--gray-a8);
2920
2843
  }
2921
2844
 
2845
+ .ui-Radio {
2846
+ -webkit-appearance: none;
2847
+ -moz-appearance: none;
2848
+ appearance: none;
2849
+ }
2850
+
2851
+ .ui-RadioGroupRoot:where(.r-size-1) {
2852
+ --radio-size: calc(var(--space-4) * 0.875);
2853
+ }
2854
+ .ui-RadioGroupRoot:where(.r-size-2) {
2855
+ --radio-size: var(--space-4);
2856
+ }
2857
+ .ui-RadioGroupRoot:where(.r-size-3) {
2858
+ --radio-size: calc(var(--space-4) * 1.25);
2859
+ }
2860
+
2922
2861
  .ui-RadioGroupItem {
2923
- display: flex;
2862
+ display: inline-flex;
2924
2863
  align-items: center;
2925
2864
  gap: .5em;
2926
2865
  width: -moz-fit-content;
2927
2866
  width: fit-content;
2928
2867
  }
2929
2868
 
2930
- .ui-RadioCardsItem .ui-Card {
2869
+ .ui-RadioCardsRoot:where(.r-size-1) {
2870
+ --card-padding: var(--space-3);
2871
+ --card-border-radius: max(var(--radius-4), var(--radius-full));
2872
+ }
2873
+ .ui-RadioCardsRoot:where(.r-size-2) {
2874
+ --card-padding: var(--space-4);
2875
+ --card-border-radius: max(var(--radius-4), var(--radius-full));
2876
+ }
2877
+ .ui-RadioCardsRoot:where(.r-size-3) {
2878
+ --card-padding: var(--space-5);
2879
+ --card-border-radius: max(var(--radius-5), var(--radius-full));
2880
+ }
2881
+ .ui-BaseCard {
2882
+ display: block;
2883
+ position: relative;
2884
+ overflow: hidden;
2885
+ font-style: normal;
2886
+ text-align: start;
2887
+ box-sizing: border-box;
2888
+ border-radius: var(--card-border-radius);
2889
+ padding: var(--card-padding);
2890
+ border-color: var(--card-border-color, var(--gray-a5));
2891
+ border-width: var(--card-border-width, 1px);
2892
+ border-style: solid;
2931
2893
  width: 100%;
2894
+ }
2895
+ .ui-BaseCard:where(:-moz-any-link, button, label):where(:hover) {
2896
+ --card-border-color: var(--gray-a7);
2897
+ }
2898
+ .ui-BaseCard:where(:any-link, button, label):where(:hover) {
2899
+ --card-border-color: var(--gray-a7);
2900
+ }
2901
+ .ui-BaseCard:where(:-moz-any-link, button, label):where(:focus-visible) {
2902
+ --card-border-color: var(--focus-8);
2903
+ box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
2904
+ }
2905
+ .ui-BaseCard:where(:any-link, button, label):where(:focus-visible) {
2906
+ --card-border-color: var(--focus-8);
2907
+ box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
2908
+ }
2909
+
2910
+ /** special enhancement for tailwindcss */
2911
+ .ui-BaseCard:where(.p-0) {
2912
+ --card-padding: 0;
2913
+ }
2914
+
2915
+ .ui-RadioCardsItem {
2932
2916
  height: 100%;
2933
2917
  }
2934
- .ui-RadioCardsItem:where([data-state="checked"]) .ui-Card {
2918
+ .ui-RadioCardsItem:where([data-state="checked"]) {
2935
2919
  --card-border-color: var(--accent-10);
2936
2920
  box-shadow: 0 0 0 1px var(--accent-10);
2937
2921
  }
2938
2922
 
2939
- .ui-RadioTabsList {
2940
- display: flex;
2923
+ .ui-RadioTabsRoot {
2924
+ display: inline-flex;
2925
+ width: -moz-fit-content;
2926
+ width: fit-content;
2941
2927
  align-items: center;
2942
2928
  box-sizing: border-box;
2943
- background-color: var(--gray-a3);
2944
2929
  padding: var(--radio-tabs-list-padding);
2945
2930
  border-radius: var(--radio-tabs-list-radius);
2931
+ font-size: var(--radio-tabs-font-size);
2946
2932
  }
2947
- .ui-RadioTabsList:where(.r-size-1) {
2933
+ .ui-RadioTabsRoot:where(.r-size-1) {
2934
+ --radio-tabs-font-size: var(--font-size-1);
2948
2935
  --radio-tabs-list-padding: var(--space-1);
2949
- --radio-tabs-list-radius: var(--radius-2);
2936
+ --radio-tabs-list-radius: max(var(--radius-2), var(--radius-full));
2950
2937
  --radio-tabs-item-padding: 3px 6px;
2951
- --radio-tabs-item-radius: var(--radius-1);
2938
+ --radio-tabs-item-radius: max(var(--radius-1), var(--radius-full));
2952
2939
  }
2953
- .ui-RadioTabsList:where(.r-size-2) {
2940
+ .ui-RadioTabsRoot:where(.r-size-2) {
2941
+ --radio-tabs-font-size: var(--font-size-2);
2954
2942
  --radio-tabs-list-padding: var(--space-1);
2955
- --radio-tabs-list-radius: var(--radius-4);
2943
+ --radio-tabs-list-radius: max(var(--radius-3), var(--radius-full));
2956
2944
  --radio-tabs-item-padding: 4px 8px;
2957
- --radio-tabs-item-radius: var(--radius-2);
2945
+ --radio-tabs-item-radius: max(var(--radius-2), var(--radius-full));
2958
2946
  }
2959
- .ui-RadioTabsList [role="radio"] {
2960
- display: flex;
2947
+ .ui-RadioTabsRoot:where(.r-variant-surface) {
2948
+ background-color: var(--accent-surface);
2949
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
2950
+ }
2951
+ .ui-RadioTabsRoot:where(.r-variant-classic) {
2952
+ background-color: var(--accent-a3);
2953
+ }
2954
+ .ui-RadioTabsRoot:where(.r-variant-soft) {
2955
+ background-color: var(--accent-a3);
2956
+ }
2957
+
2958
+ .ui-RadioTabsItem {
2959
+ display: inline-flex;
2961
2960
  flex-grow: 1;
2962
2961
  justify-content: center;
2963
2962
  align-items: center;
2963
+ color: var(--gray-a11);
2964
2964
  padding: var(--radio-tabs-item-padding);
2965
2965
  border-radius: var(--radio-tabs-item-radius);
2966
2966
  }
2967
- .ui-RadioTabsList [data-state="checked"] {
2967
+ .ui-RadioTabsItem:where([data-state="unchecked"]) {
2968
+ letter-spacing: var(--tab-inactive-letter-spacing);
2969
+ word-spacing: var(--tab-inactive-word-spacing);
2970
+ }
2971
+ .ui-RadioTabsItem:where([data-state="checked"]) {
2972
+ font-weight: var(--font-weight-medium);
2973
+ letter-spacing: var(--tab-active-letter-spacing);
2974
+ word-spacing: var(--tab-active-word-spacing);
2975
+ }
2976
+ .ui-RadioTabsRoot:where(.r-variant-classic) :where(.ui-RadioTabsItem[data-state="checked"]) {
2968
2977
  color: var(--gray-12);
2969
2978
  background-color: var(--color-background);
2970
2979
  box-shadow: var(--shadow-2);
2971
2980
  }
2981
+ .ui-RadioTabsRoot:where(.r-variant-soft) :where(.ui-RadioTabsItem[data-state="checked"]),
2982
+ .ui-RadioTabsRoot:where(.r-variant-surface) :where(.ui-RadioTabsItem[data-state="checked"]) {
2983
+ color: var(--accent-a11);
2984
+ background-color: var(--accent-a3);
2985
+ }
2986
+ @media (hover: hover) {
2987
+ :where(.ui-RadioTabsRoot.r-variant-classic) .ui-RadioTabsItem:where(:hover) {
2988
+ color: var(--gray-12);
2989
+ }
2990
+ :where(.ui-RadioTabsRoot.r-variant-classic) .ui-RadioTabsItem:where(:hover) {
2991
+ color: var(--gray-12);
2992
+ }
2993
+ }
2972
2994
 
2973
2995
  .ui-TabList {
2974
- position: relative;
2975
- display: flex;
2976
2996
  justify-content: flex-start;
2997
+ position: relative;
2977
2998
  overflow-x: auto;
2978
2999
  white-space: nowrap;
2979
3000
  font-style: normal;
2980
3001
  scrollbar-width: none;
2981
- box-shadow: inset 0 -1px 0 0 var(--gray-a5);
2982
- }
2983
- .ui-TabsIndicator {
2984
- position: absolute;
2985
- left: 0;
2986
- bottom: 0;
2987
- height: 2px;
2988
- transition-property: width, transform;
2989
- transition-duration: 300ms;
2990
- width: var(--reka-tabs-indicator-size);
2991
- background-color: var(--accent-indicator);
2992
- transform: translateX(var(--reka-tabs-indicator-position));
2993
3002
  }
2994
3003
  .ui-TabList::-webkit-scrollbar {
2995
3004
  display: none;
@@ -3000,9 +3009,10 @@ to {
3000
3009
  letter-spacing: var(--letter-spacing-1);
3001
3010
  --tab-height: var(--space-6);
3002
3011
  --tab-padding-x: var(--space-1);
3012
+ --tab-radius: max(var(--radius-2), var(--radius-full));
3013
+ --tab-item-radius: var(--radius-1);
3003
3014
  --tab-inner-padding-x: var(--space-1);
3004
3015
  --tab-inner-height: var(--space-5);
3005
- --tab-inner-border-radius: var(--radius-1);
3006
3016
  }
3007
3017
  .ui-TabList:where(.r-size-2) {
3008
3018
  font-size: var(--font-size-2);
@@ -3010,20 +3020,92 @@ to {
3010
3020
  letter-spacing: var(--letter-spacing-2);
3011
3021
  --tab-height: var(--space-7);
3012
3022
  --tab-padding-x: var(--space-2);
3023
+ --tab-radius: max(var(--radius-3), var(--radius-full));
3024
+ --tab-item-radius: var(--radius-2);
3013
3025
  --tab-inner-padding-x: var(--space-2);
3014
3026
  --tab-inner-height: calc(var(--space-6) - var(--space-1));
3015
- --tab-inner-border-radius: var(--radius-2);
3016
3027
  }
3017
- :where(.ui-TabList.r-high-contrast) .ui-TabsIndicator {
3018
- background-color: var(--accent-12);
3028
+ .ui-TabsIndicator {
3029
+ position: absolute;
3030
+ left: 0;
3031
+ transition-property: width, transform;
3032
+ transform: translateX(var(--reka-tabs-indicator-position));
3033
+ width: var(--reka-tabs-indicator-size);
3019
3034
  }
3020
3035
 
3021
- .ui-root {
3022
- --tab-active-letter-spacing: -0.01em;
3023
- --tab-active-word-spacing: 0em;
3024
- --tab-inactive-letter-spacing: 0em;
3025
- --tab-inactive-word-spacing: 0em;
3036
+ /** classic & surface */
3037
+ .ui-TabList:where(.r-variant-surface, .r-variant-classic) {
3038
+ position: relative;
3039
+ display: inline-flex;
3040
+ width: -moz-fit-content;
3041
+ width: fit-content;
3042
+ align-items: center;
3043
+ justify-content: center;
3044
+ vertical-align: top;
3045
+ flex-shrink: 0;
3046
+ border-radius: var(--tab-radius);
3047
+ }
3048
+ .ui-TabList:where(.r-variant-classic) {
3049
+ background-color: var(--accent-a3);
3050
+ padding-left: var(--tab-padding-x);
3051
+ padding-right: var(--tab-padding-x);
3052
+ }
3053
+ .ui-TabList:where(.r-variant-surface) {
3054
+ --tab-item-radius: 0;
3055
+ --tab-inner-height: var(--tab-height);
3056
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
3026
3057
  }
3058
+ .ui-TabList:where(.r-variant-surface) :where(.ui-TabsIndicator) {
3059
+ top: 0;
3060
+ height: var(--tab-inner-height);
3061
+ background-color: var(--accent-a3);
3062
+ transition-duration: 100ms;
3063
+ }
3064
+ .ui-TabList:where(.r-variant-classic) :where(.ui-TabsIndicator) {
3065
+ top: calc((var(--tab-height) - var(--tab-inner-height)) / 2);
3066
+ height: var(--tab-inner-height);
3067
+ background-color: var(--color-panel-solid);
3068
+ box-shadow:
3069
+ 0 0 0 0.5px var(--black-a1),
3070
+ 0 1px 1px 0 var(--gray-a2),
3071
+ 0 2px 1px -1px var(--black-a1),
3072
+ 0 1px 3px 0 var(--black-a1);
3073
+ border-radius: var(--tab-item-radius);
3074
+ transition-duration: 100ms;
3075
+ }
3076
+ .ui-TabList:where(.r-variant-surface.r-size-1),
3077
+ .ui-TabList:where(.r-variant-soft.r-size-1) {
3078
+ --tab-inner-padding-x: calc(var(--space-2) / 4 * 3);
3079
+ }
3080
+
3081
+ /** soft & outline */
3082
+ .ui-TabList:where(.r-variant-outline, .r-variant-soft) {
3083
+ display: flex;
3084
+ box-shadow: inset 0 -1px 0 0 var(--gray-a5);
3085
+ }
3086
+ .ui-TabList:where(.r-variant-soft) {
3087
+ padding-left: var(--tab-padding-x);
3088
+ padding-right: var(--tab-padding-x);
3089
+ }
3090
+ .ui-TabList:where(.r-variant-soft) :where(.ui-TabsIndicator) {
3091
+ top: calc((var(--tab-height) - var(--tab-inner-height)) / 2);
3092
+ height: var(--tab-inner-height);
3093
+ background-color: var(--accent-a3);
3094
+ border-radius: var(--tab-item-radius);
3095
+ transition-duration: 100ms;
3096
+ }
3097
+ .ui-TabList:where(.r-variant-outline) :where(.ui-TabsIndicator) {
3098
+ bottom: 0;
3099
+ height: 2px;
3100
+ background-color: var(--accent-indicator);
3101
+ transition-duration: 300ms;
3102
+ }
3103
+
3104
+ /** high contrast */
3105
+ :where(.ui-TabList.r-variant-outline.r-high-contrast) .ui-TabsIndicator {
3106
+ background-color: var(--accent-12);
3107
+ }
3108
+
3027
3109
  .ui-TabTrigger {
3028
3110
  display: flex;
3029
3111
  align-items: center;
@@ -3035,8 +3117,6 @@ to {
3035
3117
  user-select: none;
3036
3118
  box-sizing: border-box;
3037
3119
  height: var(--tab-height);
3038
- padding-left: var(--tab-padding-x);
3039
- padding-right: var(--tab-padding-x);
3040
3120
  color: var(--gray-a11);
3041
3121
  outline: none;
3042
3122
  }
@@ -3053,7 +3133,7 @@ to {
3053
3133
  height: var(--tab-inner-height);
3054
3134
  padding-left: var(--tab-inner-padding-x);
3055
3135
  padding-right: var(--tab-inner-padding-x);
3056
- border-radius: var(--tab-inner-border-radius);
3136
+ border-radius: var(--tab-item-radius);
3057
3137
  }
3058
3138
  .ui-TabTriggerInner {
3059
3139
  position: absolute;
@@ -3074,23 +3154,39 @@ to {
3074
3154
  word-spacing: var(--tab-active-word-spacing);
3075
3155
  }
3076
3156
  @media (hover: hover) {
3077
- .ui-TabTrigger:where(:hover) {
3157
+ .ui-TabList:where(.r-variant-outline, .r-variant-classic) :where(.ui-TabTrigger:hover) {
3078
3158
  color: var(--gray-12);
3079
3159
  }
3080
- .ui-TabTrigger:where(:not(:disabled):hover) :where(.ui-TabTriggerInner) {
3160
+ .ui-TabList:where(.r-variant-surface, .r-variant-soft) :where(.ui-TabTrigger:hover) {
3161
+ color: var(--accent-a11);
3162
+ }
3163
+ .ui-TabList:where(.r-variant-outline) :where(.ui-TabTrigger:not(:disabled):hover) :where(.ui-TabTriggerInner) {
3081
3164
  background-color: var(--gray-a3);
3082
3165
  }
3083
3166
  .ui-TabTrigger:where(:focus-visible:hover) :where(.ui-TabTriggerInner) {
3084
3167
  background-color: var(--accent-a3);
3085
3168
  }
3086
3169
  }
3087
- .ui-TabTrigger:where([data-state='active']) {
3088
- color: var(--gray-12);
3089
- }
3090
3170
  .ui-TabTrigger:where(:focus-visible) :where(.ui-TabTriggerInner) {
3091
3171
  outline: 2px solid var(--focus-8);
3092
3172
  outline-offset: -2px;
3093
3173
  }
3174
+ .ui-TabList:where(.r-variant-outline) :where(.ui-TabTrigger) {
3175
+ padding-left: var(--tab-padding-x);
3176
+ padding-right: var(--tab-padding-x);
3177
+ }
3178
+ .ui-TabList:where(.r-variant-classic, .r-variant-outline) :where(.ui-TabTrigger[data-state='active']) {
3179
+ color: var(--gray-12);
3180
+ }
3181
+ .ui-TabList:where(.r-variant-soft) :where(.ui-TabTrigger + .ui-TabTrigger) {
3182
+ margin-left: calc(var(--tab-padding-x) / 2)
3183
+ }
3184
+ .ui-TabList:where(.r-variant-surface) :where(.ui-TabTrigger + .ui-TabTrigger) {
3185
+ box-shadow: inset 1px 0 0 var(--gray-a4);
3186
+ }
3187
+ .ui-TabList:where(.r-variant-surface, .r-variant-soft) :where(.ui-TabTrigger[data-state='active']) {
3188
+ color: var(--accent-a11);
3189
+ }
3094
3190
 
3095
3191
  .ui-Editable:where(.r-size-1) {
3096
3192
  --editable-padding-x: var(--space-1);
@@ -3132,17 +3228,23 @@ to {
3132
3228
  .ui-AccordionRoot:where(.r-size-1) {
3133
3229
  --accordion-padding: var(--space-3);
3134
3230
  --accordion-trigger-font-size: var(--font-size-3);
3231
+ --accordion-trigger-gap: var(--space-1);
3135
3232
  --accordion-content-font-size: var(--font-size-2);
3233
+ --accordion-indicator-line-width: 1px;
3136
3234
  }
3137
3235
  .ui-AccordionRoot:where(.r-size-2) {
3138
3236
  --accordion-padding: var(--space-4);
3139
3237
  --accordion-trigger-font-size: var(--font-size-4);
3238
+ --accordion-trigger-gap: var(--space-2);
3140
3239
  --accordion-content-font-size: var(--font-size-3);
3240
+ --accordion-indicator-line-width: 1px;
3141
3241
  }
3142
3242
  .ui-AccordionRoot:where(.r-size-3) {
3143
3243
  --accordion-padding: var(--space-5);
3144
3244
  --accordion-trigger-font-size: var(--font-size-5);
3245
+ --accordion-trigger-gap: var(--space-3);
3145
3246
  --accordion-content-font-size: var(--font-size-4);
3247
+ --accordion-indicator-line-width: 2px;
3146
3248
  }
3147
3249
 
3148
3250
  .ui-AccordionItem + .ui-AccordionItem {
@@ -3180,87 +3282,67 @@ to {
3180
3282
  padding-bottom: var(--accordion-padding);
3181
3283
  }
3182
3284
 
3183
- .ui-PlusMinusIcon {
3184
- position: relative;
3185
- width: var(--plus-minus-icon-size);
3186
- height: var(--plus-minus-icon-size);
3187
- cursor: pointer;
3188
- display: inline-block;
3189
- --plus-minus-icon-color: var(--gray-11);
3285
+ .ui-AccordionIndicator {
3286
+ display: inline-flex;
3287
+ align-items: center;
3288
+ --accordion-indicator-color: var(--gray-10);
3190
3289
  }
3191
- .ui-PlusMinusIcon:where([data-accent-color]) {
3192
- --plus-minus-icon-color: var(--accent-9);
3290
+ .ui-AccordionIndicator:where([data-side="left"]) {
3291
+ order: -1;
3193
3292
  }
3194
- .ui-PlusMinusIcon:where(.r-size-1) {
3195
- --plus-minus-icon-size: var(--font-size-3);
3196
- --plus-minus-line-width: 1px;
3293
+ .ui-AccordionIndicator:where([data-side="right"]) {
3294
+ order: 0;
3197
3295
  }
3198
- .ui-PlusMinusIcon:where(.r-size-2) {
3199
- --plus-minus-icon-size: var(--font-size-4);
3200
- --plus-minus-line-width: 1px;
3296
+ .ui-AccordionIndicator-chevron {
3297
+ transition: transform 0.2s ease;
3298
+ font-size: var(--accordion-indicator-icon-size);
3299
+ color: var(--accordion-indicator-color);
3201
3300
  }
3202
- .ui-PlusMinusIcon:where(.r-size-3) {
3203
- --plus-minus-icon-size: var(--font-size-5);
3204
- --plus-minus-line-width: 2px;
3301
+ :where([data-state="open"]) .ui-AccordionIndicator-chevron {
3302
+ transform: rotate(90deg);
3205
3303
  }
3206
- .ui-PlusMinusIcon:where(.r-size-4) {
3207
- --plus-minus-icon-size: var(--font-size-6);
3208
- --plus-minus-line-width: 2px;
3304
+ .ui-AccordionIndicator-plus {
3305
+ position: relative;
3306
+ width: calc(var(--accordion-indicator-icon-size) - var(--space-1));
3307
+ height: calc(var(--accordion-indicator-icon-size) - var(--space-1));
3308
+ cursor: pointer;
3309
+ display: inline-block;
3209
3310
  }
3210
- .ui-PlusMinusIcon-1,
3211
- .ui-PlusMinusIcon-2 {
3311
+ .ui-AccordionIndicator-plus-1,
3312
+ .ui-AccordionIndicator-plus-2 {
3212
3313
  position: absolute;
3213
- background-color: var(--plus-minus-icon-color);
3314
+ background-color: var(--accordion-indicator-color);
3214
3315
  border-radius: 2px;
3215
3316
  transition: transform 0.3s, opacity 0.3s;
3216
3317
  }
3217
- .ui-PlusMinusIcon-1 {
3318
+ .ui-AccordionIndicator-plus-1 {
3218
3319
  top: 50%;
3219
3320
  left: 0;
3220
3321
  width: 100%;
3221
- height: var(--plus-minus-line-width);
3322
+ height: var(--accordion-indicator-line-width);
3222
3323
  transform: translateY(-50%) rotate(0deg);
3223
3324
  }
3224
- .ui-PlusMinusIcon-2 {
3325
+ .ui-AccordionIndicator-plus-2 {
3225
3326
  top: 0;
3226
3327
  left: 50%;
3227
- width: var(--plus-minus-line-width);
3328
+ width: var(--accordion-indicator-line-width);
3228
3329
  height: 100%;
3229
3330
  transform: translateX(-50%) rotate(0deg);
3230
3331
  }
3231
- :where([data-state="open"]) .ui-PlusMinusIcon-1,
3232
- :where([aria-plus-minused="true"]) .ui-PlusMinusIcon-1 {
3332
+ :where([data-state="open"]) .ui-AccordionIndicator-plus-1 {
3233
3333
  transform: translateY(-50%) rotate(180deg);
3234
3334
  }
3235
- :where([data-state="open"]) .ui-PlusMinusIcon-2,
3236
- :where([aria-plus-minused="true"]) .ui-PlusMinusIcon-2 {
3335
+ :where([data-state="open"]) .ui-AccordionIndicator-plus-2 {
3237
3336
  transform: translateX(-50%) rotate(90deg);
3238
3337
  opacity: 0;
3239
3338
  height: 0;
3240
3339
  }
3241
3340
 
3242
- .ui-ChevronIcon {
3243
- transition: transform 0.2s ease;
3244
- }
3245
- .ui-ChevronIcon:where([data-arrow-transform="down-up"]) {
3246
- transform: rotate(90deg);
3247
- }
3248
- .ui-ChevronIcon:where([data-arrow-transform="up-down"]) {
3249
- transform: rotate(-90deg);
3250
- }
3251
- :where([data-state="open"]) .ui-ChevronIcon:where([data-arrow-transform="right-down"]),
3252
- :where([data-state="open"]) .ui-ChevronIcon:where([data-arrow-transform="up-down"]) {
3253
- transform: rotate(90deg);
3254
- }
3255
- :where([data-state="open"]) .ui-ChevronIcon:where([data-arrow-transform="right-up"]),
3256
- :where([data-state="open"]) .ui-ChevronIcon:where([data-arrow-transform="down-up"]) {
3257
- transform: rotate(-90deg);
3258
- }
3259
-
3260
3341
  .ui-AccordionTrigger {
3261
3342
  display: flex;
3262
3343
  align-items: center;
3263
3344
  justify-content: space-between;
3345
+ text-align: initial;
3264
3346
  width: 100%;
3265
3347
  cursor: pointer;
3266
3348
  -webkit-user-select: none;
@@ -3270,10 +3352,105 @@ to {
3270
3352
  padding-top: var(--accordion-padding);
3271
3353
  padding-bottom: var(--accordion-padding);
3272
3354
  font-weight: var(--font-weight-medium);
3355
+ gap: var(--accordion-trigger-gap);
3356
+ --accordion-indicator-icon-size: var(--accordion-trigger-font-size);
3273
3357
  }
3274
3358
  .ui-AccordionTrigger:hover {
3275
3359
  text-decoration: underline;
3276
3360
  }
3361
+ .ui-AccordionTriggerText {
3362
+ flex-grow: 1;
3363
+ }
3364
+
3365
+ .ui-CollapsibleRoot:where(.r-size-1) {
3366
+ --collapsible-font-size: var(--font-size-2);
3367
+ --collapsible-trigger-gap: calc(var(--space-1) / 2);
3368
+ --collapsible-indicator-icon-size: var(--font-size-2);
3369
+ --collapsible-padding-y: var(--space-1);
3370
+ --collapsible-padding-x: var(--space-2);
3371
+ --collapsible-radius: max(var(--radius-1), var(--radius-full))
3372
+ }
3373
+ .ui-CollapsibleRoot:where(.r-size-2) {
3374
+ --collapsible-font-size: var(--font-size-3);
3375
+ --collapsible-trigger-gap: var(--space-1);
3376
+ --collapsible-indicator-icon-size: var(--font-size-3);
3377
+ --collapsible-padding-y: var(--space-2);
3378
+ --collapsible-padding-x: var(--space-3);
3379
+ --collapsible-radius: max(var(--radius-2), var(--radius-full))
3380
+ }
3381
+ .ui-CollapsibleRoot:where(.r-size-3) {
3382
+ --collapsible-font-size: var(--font-size-5);
3383
+ --collapsible-trigger-gap: calc(var(--space-2) * 3 / 4);
3384
+ --collapsible-indicator-icon-size: var(--font-size-5);
3385
+ --collapsible-padding-y: var(--space-2);
3386
+ --collapsible-padding-x: var(--space-4);
3387
+ --collapsible-radius: max(var(--radius-3), var(--radius-full))
3388
+ }
3389
+ .ui-CollapsibleRoot:where(.r-size-4) {
3390
+ --collapsible-font-size: var(--font-size-7);
3391
+ --collapsible-trigger-gap: var(--space-2);
3392
+ --collapsible-indicator-icon-size: var(--font-size-7);
3393
+ --collapsible-padding-y: var(--space-3);
3394
+ --collapsible-padding-x: var(--space-5);
3395
+ --collapsible-radius: max(var(--radius-4), var(--radius-full))
3396
+ }
3397
+ .ui-CollapsibleRoot:where(.r-variant-surface) {
3398
+ box-shadow: inset 0 0 0 1px var(--gray-a4);
3399
+ border-radius: var(--collapsible-radius);
3400
+ }
3401
+ .ui-CollapsibleRoot:where(.r-variant-surface):where([data-state="open"]) {
3402
+ box-shadow: inset 0 0 0 1px var(--gray-a5);
3403
+ }
3404
+
3405
+ .ui-CollapsibleIndicator {
3406
+ display: inline-flex;
3407
+ align-items: center;
3408
+ font-size: var(--collapsible-indicator-icon-size);
3409
+ transition: transform 0.2s ease;
3410
+ color: var(--gray-10);
3411
+ }
3412
+ .ui-CollapsibleIndicator:where([data-side="left"]) {
3413
+ order: -1;
3414
+ }
3415
+ :where([data-state="open"]) .ui-CollapsibleIndicator {
3416
+ transform: rotate(90deg);
3417
+ }
3418
+
3419
+ .ui-CollapsibleTrigger {
3420
+ display: inline-flex;
3421
+ align-items: center;
3422
+ justify-content: space-between;
3423
+ text-align: initial;
3424
+ gap: var(--collapsible-trigger-gap);
3425
+ font-size: var(--collapsible-font-size);
3426
+ font-weight: var(--font-weight-medium);
3427
+ }
3428
+ .ui-CollapsibleTriggerText {
3429
+ flex-grow: 1;
3430
+ text-align: initial;
3431
+ }
3432
+ :where(.ui-CollapsibleRoot:not(.r-variant-ghost)) .ui-CollapsibleTrigger {
3433
+ padding-block: var(--collapsible-padding-y);
3434
+ padding-inline: var(--collapsible-padding-x);
3435
+ width: 100%;
3436
+ }
3437
+ :where(.ui-CollapsibleRoot.r-variant-soft) .ui-CollapsibleTrigger {
3438
+ background: var(--accent-a2);
3439
+ border-radius: var(--collapsible-radius);
3440
+ }
3441
+ :where(.ui-CollapsibleRoot.r-variant-surface) .ui-CollapsibleTrigger {
3442
+ border-top-left-radius: var(--collapsible-radius);
3443
+ border-top-right-radius: var(--collapsible-radius);
3444
+ background: var(--accent-a2);
3445
+ }
3446
+ :where(.ui-CollapsibleRoot.r-variant-soft) .ui-CollapsibleTrigger:where(:hover) {
3447
+ background: var(--accent-a3);
3448
+ }
3449
+ :where(.ui-CollapsibleRoot.r-variant-surface) .ui-CollapsibleTrigger:where([data-state="open"]),
3450
+ :where(.ui-CollapsibleRoot.r-variant-soft) .ui-CollapsibleTrigger:where([data-state="open"]) {
3451
+ background: var(--accent-a3);
3452
+ color: var(--accent-a11);
3453
+ }
3277
3454
 
3278
3455
  @keyframes collapsible-down {
3279
3456
  from {
@@ -3293,7 +3470,9 @@ to {
3293
3470
  }
3294
3471
  .ui-CollapsibleContent {
3295
3472
  overflow: hidden;
3473
+ font-size: var(--collapsible-font-size);
3296
3474
  font-weight: var(--font-weight-regular);
3475
+ padding-block: var(--collapsible-padding-y);
3297
3476
  }
3298
3477
  .ui-CollapsibleContent:where([data-state="open"]) {
3299
3478
  animation: collapsible-down 0.2s ease-out;
@@ -3301,6 +3480,9 @@ to {
3301
3480
  .ui-CollapsibleContent:where([data-state="closed"]) {
3302
3481
  animation: collapsible-up 0.2s ease-out;
3303
3482
  }
3483
+ :where(.ui-CollapsibleRoot:not(.r-variant-ghost)) .ui-CollapsibleContent {
3484
+ padding-inline: var(--collapsible-padding-x);
3485
+ }
3304
3486
 
3305
3487
  .ui-Pagination {
3306
3488
  display: flex;
@@ -3322,6 +3504,237 @@ to {
3322
3504
  gap: 0;
3323
3505
  }
3324
3506
 
3507
+ .ui-root {
3508
+ --spinner-animation-duration: 800ms;
3509
+ --spinner-opacity: 0.65;
3510
+ }
3511
+ .ui-SpinnerIcon {
3512
+ display: inline-block;
3513
+ position: relative;
3514
+ opacity: var(--spinner-opacity);
3515
+ vertical-align: middle;
3516
+ width: 1em;
3517
+ height: 1em;
3518
+ transform: scale(0.8334);
3519
+ }
3520
+ .ui-SpinnerLeaf {
3521
+ position: absolute;
3522
+ top: 0;
3523
+ left: calc(50% - 12.5% / 2);
3524
+ width: 12.5%;
3525
+ height: 100%;
3526
+ animation: ui-spinner-leaf-fade var(--spinner-animation-duration) linear infinite;
3527
+ }
3528
+ .ui-SpinnerLeaf::before {
3529
+ content: '';
3530
+ display: block;
3531
+ width: 100%;
3532
+ height: 30%;
3533
+ border-radius: var(--radius-1);
3534
+ background-color: currentColor;
3535
+ }
3536
+ .ui-SpinnerLeaf:where(:nth-child(1)) {
3537
+ transform: rotate(0deg);
3538
+ animation-delay: calc(-8 / 8 * var(--spinner-animation-duration));
3539
+ }
3540
+ .ui-SpinnerLeaf:where(:nth-child(2)) {
3541
+ transform: rotate(45deg);
3542
+ animation-delay: calc(-7 / 8 * var(--spinner-animation-duration));
3543
+ }
3544
+ .ui-SpinnerLeaf:where(:nth-child(3)) {
3545
+ transform: rotate(90deg);
3546
+ animation-delay: calc(-6 / 8 * var(--spinner-animation-duration));
3547
+ }
3548
+ .ui-SpinnerLeaf:where(:nth-child(4)) {
3549
+ transform: rotate(135deg);
3550
+ animation-delay: calc(-5 / 8 * var(--spinner-animation-duration));
3551
+ }
3552
+ .ui-SpinnerLeaf:where(:nth-child(5)) {
3553
+ transform: rotate(180deg);
3554
+ animation-delay: calc(-4 / 8 * var(--spinner-animation-duration));
3555
+ }
3556
+ .ui-SpinnerLeaf:where(:nth-child(6)) {
3557
+ transform: rotate(225deg);
3558
+ animation-delay: calc(-3 / 8 * var(--spinner-animation-duration));
3559
+ }
3560
+ .ui-SpinnerLeaf:where(:nth-child(7)) {
3561
+ transform: rotate(270deg);
3562
+ animation-delay: calc(-2 / 8 * var(--spinner-animation-duration));
3563
+ }
3564
+ .ui-SpinnerLeaf:where(:nth-child(8)) {
3565
+ transform: rotate(315deg);
3566
+ animation-delay: calc(-1 / 8 * var(--spinner-animation-duration));
3567
+ }
3568
+ @keyframes ui-spinner-leaf-fade {
3569
+ from {
3570
+ opacity: 1;
3571
+ }
3572
+ to {
3573
+ opacity: 0.25;
3574
+ }
3575
+ }
3576
+
3577
+ .ui-ToastItem {
3578
+ position: absolute;
3579
+ display: flex;
3580
+ align-items: center;
3581
+ gap: var(--toast-gap);
3582
+ left: auto;
3583
+ right: auto;
3584
+ bottom: auto;
3585
+ top: auto;
3586
+ width: 100%;
3587
+ background: var(--color-panel-solid);
3588
+ box-shadow: 0 4px 12px var(--gray-a4);
3589
+ border: 1px solid var(--gray-a3);
3590
+ border-radius: var(--radius-3);
3591
+ padding: var(--space-4);
3592
+ opacity: 1;
3593
+ z-index: calc(0 - var(--toast-index));
3594
+ transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.5s;
3595
+ --toast-collapse-scale: calc(max(0, 1 - (var(--toast-index) * 0.06)));
3596
+ }
3597
+ .ui-ToastItem:where([data-swipe="move"]) {
3598
+ transition: none;
3599
+ }
3600
+ :where(.ui-ToastViewport[data-x-position="left"]) .ui-ToastItem {
3601
+ left: 0;
3602
+ }
3603
+ :where(.ui-ToastViewport[data-x-position="right"]) .ui-ToastItem {
3604
+ right: 0;
3605
+ }
3606
+ :where(.ui-ToastViewport[data-y-position="top"]) .ui-ToastItem {
3607
+ top: 0;
3608
+ --toast-expanded-offset-y: calc(var(--toast-offset-y) + var(--toast-index) * var(--toast-gap) + var(--reka-toast-swipe-move-y, 0px));
3609
+ }
3610
+ :where(.ui-ToastViewport[data-y-position="bottom"]) .ui-ToastItem {
3611
+ bottom: 0;
3612
+ --toast-expanded-offset-y: calc(var(--toast-offset-y) * -1 + var(--toast-index) * var(--toast-gap) * -1 + var(--reka-toast-swipe-move-y, 0px));
3613
+ }
3614
+ :where(.ui-ToastViewport[data-y-position="top"]) .ui-ToastItem:where([data-expanded="false"]) {
3615
+ transform:
3616
+ translateX(var(--reka-toast-swipe-move-x, 0px))
3617
+ translateY(calc(var(--reka-toast-swipe-move-y, 0px) + (min(var(--toast-index), 10) * 20%)))
3618
+ scale(var(--toast-collapse-scale));
3619
+ }
3620
+ :where(.ui-ToastViewport[data-y-position="bottom"]) .ui-ToastItem:where([data-expanded="false"]) {
3621
+ transform:
3622
+ translateX(var(--reka-toast-swipe-move-x, 0px))
3623
+ translateY(calc(var(--reka-toast-swipe-move-y, 0px) + var(--toast-offset-y) * -0.2))
3624
+ scale(var(--toast-collapse-scale));
3625
+ }
3626
+ .ui-ToastItem:where([data-expanded="true"]) {
3627
+ transform: translateX(var(--reka-toast-swipe-move-x, 0px)) translateY(var(--toast-expanded-offset-y));
3628
+ }
3629
+ .ui-ToastItem:where([data-swipe-direction="left"]) {
3630
+ --toast-item-swipe-to-x: calc(0 - 100% - var(--toast-x-position))
3631
+ }
3632
+ .ui-ToastItem:where([data-swipe-direction="right"]) {
3633
+ --toast-item-swipe-to-x: calc(100% + var(--toast-x-position))
3634
+ }
3635
+ .ui-ToastItem:where([data-swipe-direction="top"]) {
3636
+ --toast-item-swipe-to-y: calc(0 - 100% - var(--toast-y-position))
3637
+ }
3638
+ .ui-ToastItem:where([data-swipe-direction="bottom"]) {
3639
+ --toast-item-swipe-to-y: calc(100% + var(--toast-y-position))
3640
+ }
3641
+ .ui-ToastItem:where([data-swipe="closed"]) {
3642
+ animation: ui-fade-out 100ms ease-in;
3643
+ }
3644
+ .ui-ToastItem:where([data-swipe-direction="left"][data-swipe="end"]),
3645
+ .ui-ToastItem:where([data-swipe-direction="right"][data-swipe="end"]) {
3646
+ animation: toast-swipe-x 100ms ease-out;
3647
+ }
3648
+ .ui-ToastItem:where([data-swipe-direction="top"][data-swipe="end"]),
3649
+ .ui-ToastItem:where([data-swipe-direction="bottom"][data-swipe="end"]) {
3650
+ animation: toast-swipe-y 100ms ease-out;
3651
+ }
3652
+ @keyframes toast-swipe-x {
3653
+ from {
3654
+ transform: translateX(var(--reka-toast-swipe-end-x)) translateY(var(--toast-expanded-offset-y));
3655
+ }
3656
+ to {
3657
+ transform: translateX(var(--toast-item-swipe-to-x)) translateY(var(--toast-expanded-offset-y));
3658
+ }
3659
+ }
3660
+ @keyframes toast-swipe-y {
3661
+ from {
3662
+ transform: translateY(var(--reka-toast-swipe-end-y));
3663
+ }
3664
+ to {
3665
+ transform: translateY(var(--toast-item-swipe-to-y));
3666
+ }
3667
+ }
3668
+ .ui-ToastContent {
3669
+ display: flex;
3670
+ flex-direction: column;
3671
+ flex-grow: 1;
3672
+ }
3673
+ .ui-ToastIcon {
3674
+ display: inline-flex;
3675
+ align-items: center;
3676
+ font-size: calc(var(--toast-title-font-size) + 4px);
3677
+ color: var(--accent-a9);
3678
+ vertical-align: middle;
3679
+ }
3680
+ .ui-ToastTitle {
3681
+ font-size: var(--toast-title-font-size);
3682
+ font-weight: var(--font-weight-medium);
3683
+ }
3684
+ .ui-ToastDescription {
3685
+ font-size: var(--toast-description-font-size);
3686
+ color: var(--gray-10);
3687
+ }
3688
+
3689
+ .ui-ToastViewport {
3690
+ position: fixed;
3691
+ margin: 0 auto;
3692
+ top: auto;
3693
+ left: auto;
3694
+ bottom: auto;
3695
+ right: auto;
3696
+ max-width: calc(100vw - var(--toast-x-position) - var(--space-4));
3697
+ display: flex;
3698
+ flex-direction: column;
3699
+ list-style: none;
3700
+ margin: 0;
3701
+ padding: 0;
3702
+ outline: none;
3703
+ width: var(--toast-width);
3704
+ --toast-x-position: var(--space-4);
3705
+ --toast-y-position: var(--space-4);
3706
+ }
3707
+ .ui-ToastViewport:where(.r-size-1) {
3708
+ --toast-width: 300px;
3709
+ --toast-gap: var(--space-2);
3710
+ --toast-title-font-size: var(--font-size-2);
3711
+ --toast-description-font-size: var(--font-size-1);
3712
+ }
3713
+ .ui-ToastViewport:where(.r-size-2) {
3714
+ --toast-width: 340px;
3715
+ --toast-gap: var(--space-3);
3716
+ --toast-title-font-size: var(--font-size-3);
3717
+ --toast-description-font-size: var(--font-size-1);
3718
+ }
3719
+ .ui-ToastViewport:where(.r-size-3) {
3720
+ --toast-width: 380px;
3721
+ --toast-gap: var(--space-4);
3722
+ --toast-title-font-size: var(--font-size-4);
3723
+ --toast-description-font-size: var(--font-size-3);
3724
+ }
3725
+ .ui-ToastViewport:where([data-x-position="left"]) {
3726
+ left: var(--toast-x-position);
3727
+ }
3728
+ .ui-ToastViewport:where([data-x-position="right"]) {
3729
+ right: var(--toast-x-position);
3730
+ }
3731
+ .ui-ToastViewport:where([data-y-position="top"]) {
3732
+ top: var(--toast-y-position);
3733
+ }
3734
+ .ui-ToastViewport:where([data-y-position="bottom"]) {
3735
+ bottom: var(--toast-y-position);
3736
+ }
3737
+
3325
3738
  .ui-TableContent {
3326
3739
  --table-row-background-color: transparent;
3327
3740
  --table-row-box-shadow: inset 0 -1px var(--gray-a5);
@@ -3442,11 +3855,11 @@ to {
3442
3855
  .ui-Tooltip {
3443
3856
  box-sizing: border-box;
3444
3857
  padding: var(--space-1) var(--space-2);
3445
- background-color: var(--gray-12);
3446
3858
  border-radius: var(--radius-2);
3447
3859
  transform-origin: var(--reka-tooltip-content-transform-origin);
3448
3860
  animation-duration: 140ms;
3449
3861
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
3862
+ background-color: var(--accent-11);
3450
3863
  }
3451
3864
  @media (prefers-reduced-motion: no-preference) {
3452
3865
  .ui-Tooltip:where([data-state='delayed-open']):where([data-side='top']) {
@@ -3473,6 +3886,14 @@ to {
3473
3886
  letter-spacing: var(--letter-spacing-1);
3474
3887
  }
3475
3888
  .ui-TooltipArrow {
3889
+ fill: var(--accent-11);
3890
+ }
3891
+
3892
+ /* special handle for gray color */
3893
+ .ui-Tooltip:where([data-accent-color="gray"]) {
3894
+ background-color: var(--gray-12);
3895
+ }
3896
+ .ui-Tooltip:where([data-accent-color="gray"]) :where(.ui-TooltipArrow) {
3476
3897
  fill: var(--gray-12);
3477
3898
  }
3478
3899
 
@@ -3490,19 +3911,6 @@ to {
3490
3911
  height: 100%;
3491
3912
  }
3492
3913
 
3493
- .ui-Spinner {
3494
- color: var(--gray-10);
3495
- }
3496
- .ui-Spinner:where(.r-size-1) {
3497
- font-size: var(--space-3);
3498
- }
3499
- .ui-Spinner:where(.r-size-2) {
3500
- font-size: var(--space-4);
3501
- }
3502
- .ui-Spinner:where(.r-size-3) {
3503
- font-size: calc(1.25 * var(--space-4));
3504
- }
3505
-
3506
3914
  .ui-SavingIndicator {
3507
3915
  display: inline-flex;
3508
3916
  align-items: center;
@@ -3512,6 +3920,7 @@ to {
3512
3920
  }
3513
3921
  .ui-SavingIndicator:where([data-status="saving"]) {
3514
3922
  color: var(--gray-10);
3923
+ animation: ui-spin 2s infinite linear;
3515
3924
  }
3516
3925
  .ui-SavingIndicator:where([data-status="saved"]) {
3517
3926
  color: var(--green-10);
@@ -3525,35 +3934,3 @@ to {
3525
3934
  .ui-SavingIndicator:where(.r-size-3) {
3526
3935
  font-size: calc(1.25 * var(--space-4));
3527
3936
  }
3528
-
3529
- .ui-IconCircle {
3530
- display: inline-flex;
3531
- align-items: center;
3532
- justify-content: center;
3533
- font-weight: var(--font-weight-medium);
3534
- border-radius: var(--radius-full);
3535
- box-sizing: border-box;
3536
- -webkit-user-select: none;
3537
- -moz-user-select: none;
3538
- user-select: none;
3539
- cursor: default;
3540
- background-color: var(--accent-a3);
3541
- color: var(--accent-11);
3542
- font-size: var(--icon-circle-size);
3543
- padding: var(--icon-circle-padding);
3544
- }
3545
- .ui-IconCircle:where(.r-size-1) {
3546
- --icon-circle-size: 10px;
3547
- --icon-circle-padding: 2px;
3548
- }
3549
- .ui-IconCircle:where(.r-size-2) {
3550
- --icon-circle-size: 12px;
3551
- --icon-circle-padding: 3px;
3552
- }
3553
- .ui-IconCircle:where(.r-size-3) {
3554
- --icon-circle-size: 14px;
3555
- --icon-circle-padding: 4px;
3556
- }
3557
- .ui-IconCircle:where(.r-variant-glow) {
3558
- box-shadow: 0 0 0 calc(var(--icon-circle-padding) - 1px) var(--accent-a2);
3559
- }