@sveltia/ui 0.26.2 → 0.26.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/components/button/button.svelte +37 -37
  2. package/dist/components/button/select-button-group.svelte +9 -9
  3. package/dist/components/button/split-button.svelte +4 -4
  4. package/dist/components/calendar/calendar.svelte +5 -7
  5. package/dist/components/checkbox/checkbox.svelte +8 -8
  6. package/dist/components/dialog/dialog.svelte +1 -2
  7. package/dist/components/disclosure/disclosure.svelte +2 -2
  8. package/dist/components/drawer/drawer.svelte +1 -2
  9. package/dist/components/grid/grid-body.svelte +2 -2
  10. package/dist/components/grid/grid.svelte +2 -4
  11. package/dist/components/listbox/listbox.svelte +8 -8
  12. package/dist/components/listbox/option.svelte +10 -11
  13. package/dist/components/menu/menu-item.svelte +4 -4
  14. package/dist/components/menu/menu.svelte +1 -1
  15. package/dist/components/radio/radio-group.svelte +3 -3
  16. package/dist/components/radio/radio.svelte +9 -8
  17. package/dist/components/select/combobox.svelte +26 -27
  18. package/dist/components/table/table-body.svelte +2 -2
  19. package/dist/components/table/table.svelte +2 -4
  20. package/dist/components/text-editor/lexical-root.svelte +16 -63
  21. package/dist/components/text-editor/toolbar/toolbar-wrapper.svelte +2 -2
  22. package/dist/components/text-field/number-input.svelte +6 -6
  23. package/dist/components/text-field/password-input.svelte +1 -1
  24. package/dist/components/text-field/search-bar.svelte +4 -4
  25. package/dist/components/text-field/text-area.svelte +4 -9
  26. package/dist/components/text-field/text-input.svelte +4 -6
  27. package/dist/components/toast/toast.svelte +6 -6
  28. package/dist/components/toolbar/toolbar.svelte +4 -5
  29. package/dist/components/util/app-shell.svelte +10 -33
  30. package/dist/components/util/modal.svelte +20 -7
  31. package/dist/components/util/popup.svelte +1 -1
  32. package/dist/styles/core.scss +16 -36
  33. package/package.json +8 -8
@@ -124,23 +124,20 @@
124
124
  cursor: pointer;
125
125
  transition: all 200ms;
126
126
  }
127
- button > :global(*) {
128
- pointer-events: none;
129
- }
130
- button:global(:not(:disabled):focus-visible) {
131
- z-index: 1;
132
- }
133
127
  button[hidden] {
134
128
  display: none !important;
135
129
  }
136
- button:global(.primary), button:global(.secondary), button:global(.tertiary), button:global(.ghost) {
130
+ button:not(:disabled):focus-visible {
131
+ z-index: 1;
132
+ }
133
+ button:is(.primary, .secondary, .tertiary, .ghost) {
137
134
  justify-content: center;
138
135
  border-width: 1px;
139
136
  }
140
- button:global(.primary) :global(.label:only-child), button:global(.secondary) :global(.label:only-child), button:global(.tertiary) :global(.label:only-child), button:global(.ghost) :global(.label:only-child) {
137
+ button:is(.primary, .secondary, .tertiary, .ghost) .label:only-child {
141
138
  padding: 0 4px;
142
139
  }
143
- button:global(.primary) {
140
+ button.primary {
144
141
  border-width: var(--sui-button-primary-border-width, 1px);
145
142
  border-style: var(--sui-button-primary-border-style, solid);
146
143
  border-color: var(--sui-button-primary-border-color, var(--sui-primary-accent-color));
@@ -148,15 +145,15 @@ button:global(.primary) {
148
145
  background-color: var(--sui-button-primary-background-color, var(--sui-primary-accent-color));
149
146
  font-weight: var(--sui-button-primary-font-weight, var(--sui-font-weight-normal, normal));
150
147
  }
151
- button:global(.primary):hover, button:global(.primary):focus-visible, button:global(.primary)[aria-expanded=true] {
148
+ button.primary:is(:hover, :focus-visible, [aria-expanded=true]) {
152
149
  color: var(--sui-button-primary-foreground-color-focus, var(--sui-button-primary-foreground-color, var(--sui-primary-accent-color-inverted)));
153
150
  background-color: var(--sui-button-primary-background-color-focus, var(--sui-primary-accent-color-light));
154
151
  }
155
- button:global(.primary):active {
152
+ button.primary:active {
156
153
  color: var(--sui-button-primary-foreground-color-active, var(--sui-button-primary-foreground-color, var(--sui-primary-accent-color-inverted)));
157
154
  background-color: var(--sui-button-primary-background-color-active, var(--sui-primary-accent-color-dark));
158
155
  }
159
- button:global(.secondary) {
156
+ button.secondary {
160
157
  border-width: var(--sui-button-secondary-border-width, 1px);
161
158
  border-style: var(--sui-button-secondary-border-style, solid);
162
159
  border-color: var(--sui-button-secondary-border-color, var(--sui-primary-accent-color));
@@ -164,19 +161,19 @@ button:global(.secondary) {
164
161
  background-color: var(--sui-button-secondary-background-color, var(--sui-button-background-color));
165
162
  font-weight: var(--sui-button-secondary-font-weight, var(--sui-font-weight-normal, normal));
166
163
  }
167
- button:global(.secondary):hover, button:global(.secondary):focus-visible, button:global(.secondary)[aria-expanded=true] {
164
+ button.secondary:is(:hover, :focus-visible, [aria-expanded=true]) {
168
165
  color: var(--sui-button-secondary-foreground-color-focus, var(--sui-button-secondary-foreground-color, var(--sui-primary-accent-color-text)));
169
166
  background-color: var(--sui-button-secondary-background-color-focus, var(--sui-hover-background-color));
170
167
  }
171
- button:global(.secondary):active {
168
+ button.secondary:active {
172
169
  color: var(--sui-button-secondary-foreground-color-active, var(--sui-button-secondary-foreground-color, var(--sui-primary-accent-color-text)));
173
170
  background-color: var(--sui-button-secondary-background-color-active, var(--sui-active-background-color));
174
171
  }
175
- button:global(.secondary)[aria-pressed=true] {
172
+ button.secondary[aria-pressed=true] {
176
173
  color: var(--sui-button-secondary-foreground-color-pressed);
177
174
  background-color: var(--sui-button-secondary-background-color-pressed, var(--sui-primary-accent-color));
178
175
  }
179
- button:global(.tertiary) {
176
+ button.tertiary {
180
177
  border-width: var(--sui-button-tertiary-border-width, 1px);
181
178
  border-style: var(--sui-button-tertiary-border-style, solid);
182
179
  border-color: var(--sui-button-tertiary-border-color, var(--sui-button-border-color));
@@ -184,34 +181,34 @@ button:global(.tertiary) {
184
181
  background-color: var(--sui-button-tertiary-background-color, var(--sui-button-background-color));
185
182
  font-weight: var(--sui-button-tertiary-font-weight, var(--sui-font-weight-normal, normal));
186
183
  }
187
- button:global(.tertiary):hover, button:global(.tertiary):focus-visible, button:global(.tertiary)[aria-expanded=true] {
184
+ button.tertiary:is(:hover, :focus-visible, [aria-expanded=true]) {
188
185
  color: var(--sui-button-tertiary-foreground-color-focus, var(--sui-button-tertiary-foreground-color, var(--sui-highlight-foreground-color)));
189
186
  background-color: var(--sui-button-tertiary-background-color-focus, var(--sui-hover-background-color));
190
187
  }
191
- button:global(.tertiary):active {
188
+ button.tertiary:active {
192
189
  color: var(--sui-button-tertiary-foreground-color-active, var(--sui-button-tertiary-foreground-color, var(--sui-highlight-foreground-color)));
193
190
  background-color: var(--sui-button-tertiary-background-color-active, var(--sui-active-background-color));
194
191
  }
195
- button:global(.tertiary)[aria-pressed=true] {
192
+ button.tertiary[aria-pressed=true] {
196
193
  color: var(--sui-button-tertiary-foreground-color-pressed);
197
194
  background-color: var(--sui-button-tertiary-background-color-pressed, var(--sui-selected-background-color));
198
195
  }
199
- button:global(.ghost) {
196
+ button.ghost {
200
197
  font-weight: var(--sui-button-ghost-font-weight, var(--sui-font-weight-normal, normal));
201
198
  }
202
- button:global(.ghost):hover, button:global(.ghost):focus-visible, button:global(.ghost)[aria-expanded=true] {
199
+ button.ghost:is(:hover, :focus-visible, [aria-expanded=true]) {
203
200
  color: var(--sui-button-ghost-foreground-color-focus);
204
201
  background-color: var(--sui-button-ghost-background-color-focus, var(--sui-hover-background-color));
205
202
  }
206
- button:global(.ghost):active {
203
+ button.ghost:active {
207
204
  color: var(--sui-button-ghost-foreground-color-active);
208
205
  background-color: var(--sui-button-ghost-background-color-active, var(--sui-active-background-color));
209
206
  }
210
- button:global(.ghost)[aria-pressed=true] {
207
+ button.ghost[aria-pressed=true] {
211
208
  color: var(--sui-button-ghost-foreground-color-pressed);
212
209
  background-color: var(--sui-button-ghost-background-color-pressed, var(--sui-selected-background-color));
213
210
  }
214
- button:global(.link) {
211
+ button.link {
215
212
  outline: 0;
216
213
  margin: 0;
217
214
  border-radius: 0 !important;
@@ -219,61 +216,64 @@ button:global(.link) {
219
216
  height: auto !important;
220
217
  color: var(--sui-button-link-foreground-color, var(--sui-primary-accent-color-text));
221
218
  }
222
- button:global(.link) :global(.label) {
219
+ button.link .label {
223
220
  padding: 0;
224
221
  line-height: var(--sui-line-height-compact);
225
222
  text-decoration: var(--sui-button-link-text-decoration, none);
226
223
  text-underline-offset: 2px;
227
224
  white-space: normal;
228
225
  }
229
- :global(:root[data-underline-links="true"]) button:global(.link) :global(.label), :global(:host[data-underline-links="true"]) button:global(.link) :global(.label) {
226
+ :global(:is(:root, :host)[data-underline-links="true"]) button.link .label {
230
227
  text-decoration: underline;
231
228
  }
232
- button:global(.link):hover :global(.label), button:global(.link):focus :global(.label), button:global(.link):active :global(.label) {
229
+ button.link:is(:hover, :focus, :active) .label {
233
230
  text-decoration: var(--sui-button-link-text-decoration-focus, underline);
234
231
  }
235
- button:global(.small) {
232
+ button.small {
236
233
  border-radius: var(--sui-button-small-border-radius);
237
234
  padding: var(--sui-button-small-padding);
238
235
  height: var(--sui-button-small-height);
239
236
  font-size: var(--sui-button-small-font-size, var(--sui-font-size-small));
240
237
  }
241
- button:global(.small) :global(.icon) {
238
+ button.small :global(.icon) {
242
239
  font-size: var(--sui-font-size-large);
243
240
  }
244
- button:global(.medium) {
241
+ button.medium {
245
242
  border-radius: var(--sui-button-medium-border-radius);
246
243
  padding: var(--sui-button-medium-padding);
247
244
  height: var(--sui-button-medium-height);
248
245
  font-size: var(--sui-button-medium-font-size, var(--sui-font-size-default));
249
246
  }
250
- button:global(.large) {
247
+ button.large {
251
248
  border-radius: var(--sui-button-large-border-radius);
252
249
  padding: var(--sui-button-large-padding);
253
250
  height: var(--sui-button-large-height);
254
251
  font-size: var(--sui-button-large-font-size, var(--sui-font-size-large));
255
252
  }
256
- button:global(.pill) {
253
+ button.pill {
257
254
  border-radius: 80px;
258
255
  padding: var(--sui-button-medium-pill-padding, 0 12px);
259
256
  }
260
- button:global(.flex) {
257
+ button.flex {
261
258
  flex: auto;
262
259
  width: -moz-available;
263
260
  width: -webkit-fill-available;
264
261
  width: stretch;
265
262
  }
266
- button:global(.iconic) {
263
+ button.iconic {
267
264
  justify-content: center;
268
265
  padding: 0;
269
266
  aspect-ratio: 1/1;
270
267
  }
271
- button:global(.danger) {
268
+ button.danger {
272
269
  background-color: var(--sui-error-background-color);
273
270
  }
274
- button :global(.label) {
271
+ button .label {
275
272
  padding: 0 4px;
276
273
  }
277
- button:global(:has([slot="start-icon"] + [slot="end-icon"])) {
274
+ button > :global(*) {
275
+ pointer-events: none;
276
+ }
277
+ button :global(:has([slot=start-icon] + [slot=end-icon])) {
278
278
  gap: 0;
279
279
  }</style>
@@ -76,28 +76,28 @@
76
76
  border-radius: 0 !important;
77
77
  color: var(--sui-primary-foreground-color);
78
78
  }
79
- .select-button-group :global(button):first-child {
79
+ .select-button-group :global(button:first-child) {
80
80
  border-top-left-radius: 4px !important;
81
81
  border-bottom-left-radius: 4px !important;
82
82
  }
83
- .select-button-group :global(button):not(:first-child) {
83
+ .select-button-group :global(button:not(:first-child)) {
84
84
  border-left-width: 0;
85
85
  }
86
- .select-button-group :global(button):last-child {
86
+ .select-button-group :global(button:last-child) {
87
87
  border-top-right-radius: 4px !important;
88
88
  border-bottom-right-radius: 4px !important;
89
89
  }
90
- .select-button-group[aria-invalid=true] :global(button) {
91
- border-color: var(--sui-error-border-color);
92
- }
93
- .select-button-group :global(button[aria-checked="true"]) {
90
+ .select-button-group :global(button[aria-checked=true]) {
94
91
  color: var(--sui-highlight-foreground-color);
95
92
  background-color: var(--sui-selected-background-color);
96
93
  }
97
- .select-button-group[aria-disabled=false] :global(button[aria-disabled="true"]) {
94
+ .select-button-group :global([aria-invalid=true]) :global(button) {
95
+ border-color: var(--sui-error-border-color);
96
+ }
97
+ .select-button-group :global([aria-disabled=false]) :global(button[aria-disabled=true]) {
98
98
  filter: grayscale(0) opacity(1);
99
99
  }
100
- .select-button-group[aria-disabled=false] :global(button[aria-disabled="true"]) :global(*) {
100
+ .select-button-group :global([aria-disabled=false]) :global(button[aria-disabled=true]) :global(*) {
101
101
  filter: grayscale(1) opacity(0.35);
102
102
  }
103
103
 
@@ -90,13 +90,13 @@
90
90
  .split-button :global(button) {
91
91
  margin: 0;
92
92
  }
93
- .split-button :global(button:not(.menu-button)) {
94
- border-top-right-radius: 0;
95
- border-bottom-right-radius: 0;
96
- }
97
93
  .split-button :global(button.menu-button) {
98
94
  border-left-width: 0;
99
95
  border-top-left-radius: 0;
100
96
  border-bottom-left-radius: 0;
101
97
  aspect-ratio: 3/4;
98
+ }
99
+ .split-button :global(button:not(.menu-button)) {
100
+ border-top-right-radius: 0;
101
+ border-bottom-right-radius: 0;
102
102
  }</style>
@@ -202,15 +202,13 @@
202
202
  flex: none;
203
203
  }
204
204
 
205
- .header,
206
- .footer {
205
+ :is(.header, .footer) {
207
206
  display: flex;
208
207
  gap: 8px;
209
208
  height: 24px;
210
209
  align-items: center;
211
210
  }
212
- .header :global(button.secondary),
213
- .footer :global(button.secondary) {
211
+ :is(.header, .footer) :global(button.secondary) {
214
212
  width: 100px;
215
213
  flex: auto;
216
214
  }
@@ -235,7 +233,7 @@
235
233
  .grid div.other-month {
236
234
  color: var(--sui-tertiary-foreground-color);
237
235
  }
238
- .grid div.today :global(button) {
236
+ .grid div :global(.today) :global(button) {
239
237
  color: var(--sui-highlight-foreground-color);
240
238
  background-color: var(--sui-primary-accent-color);
241
239
  }
@@ -246,10 +244,10 @@
246
244
  height: 24px;
247
245
  border-radius: 50%;
248
246
  }
249
- .grid div :global(button):hover {
247
+ .grid div :global(button:hover) {
250
248
  background-color: var(--sui-hover-background-color);
251
249
  }
252
- .grid div :global(button):focus {
250
+ .grid div :global(button:focus) {
253
251
  border-width: 1px;
254
252
  border-color: var(--sui-primary-accent-color-light);
255
253
  }
@@ -143,13 +143,13 @@
143
143
  .checkbox:hover :global(button) {
144
144
  background-color: var(--sui-hover-background-color);
145
145
  }
146
- .checkbox:hover :global(button[aria-checked="true"]) {
146
+ .checkbox:hover :global(button[aria-checked=true]) {
147
147
  background-color: var(--sui-primary-accent-color-light);
148
148
  }
149
149
  .checkbox:active :global(button) {
150
150
  background-color: var(--sui-active-background-color);
151
151
  }
152
- .checkbox:active :global(button[aria-checked="true"]) {
152
+ .checkbox:active :global(button[aria-checked=true]) {
153
153
  background-color: var(--sui-primary-accent-color-dark);
154
154
  }
155
155
  .checkbox :global(button) {
@@ -168,21 +168,21 @@
168
168
  background-color: var(--sui-checkbox-background-color);
169
169
  transition: all 200ms;
170
170
  }
171
- .checkbox :global(button) :global(.icon) {
172
- font-size: calc(var(--sui-checkbox-height) - 2px);
173
- }
174
- .checkbox :global(button[aria-checked="true"]) {
171
+ .checkbox :global(button[aria-checked=true]) {
175
172
  border-color: var(--sui-checkbox-border-color-checked, var(--sui-primary-accent-color));
176
173
  color: var(--sui-checkbox-foreground-color-checked, var(--sui-primary-accent-color-inverted));
177
174
  background-color: var(--sui-checkbox-background-color-checked, var(--sui-primary-accent-color));
178
175
  }
179
- .checkbox :global(button[aria-invalid="true"]) {
176
+ .checkbox :global(button[aria-invalid=true]) {
180
177
  border-color: var(--sui-error-border-color);
181
178
  color: var(--sui-error-foreground-color);
182
179
  }
183
- .checkbox :global(button[aria-checked="true"][aria-invalid="true"]) {
180
+ .checkbox :global(button[aria-checked=true][aria-invalid=true]) {
184
181
  background-color: var(--sui-checkbox-background-color);
185
182
  }
183
+ .checkbox :global(button) :global(.icon) {
184
+ font-size: calc(var(--sui-checkbox-height) - 2px);
185
+ }
186
186
  .checkbox label {
187
187
  cursor: inherit;
188
188
  }
@@ -212,8 +212,7 @@
212
212
  }
213
213
  }
214
214
 
215
- .header,
216
- .footer {
215
+ :is(.header, .footer) {
217
216
  display: flex;
218
217
  align-items: center;
219
218
  gap: 4px;
@@ -89,10 +89,10 @@
89
89
  display: flex;
90
90
  width: 100%;
91
91
  }
92
- .disclosure :global(button .icon) {
92
+ .disclosure :global(button) :global(.icon) {
93
93
  transition: all 200ms;
94
94
  }
95
- .disclosure :global(button[aria-expanded="false"] .icon) {
95
+ .disclosure :global(button[aria-expanded=false]) :global(.icon) {
96
96
  transform: rotate(-90deg);
97
97
  }
98
98
 
@@ -272,8 +272,7 @@
272
272
  max-height: 100dvh;
273
273
  }
274
274
 
275
- .header,
276
- .footer {
275
+ :is(.header, .footer) {
277
276
  display: flex;
278
277
  align-items: center;
279
278
  gap: 8px;
@@ -41,7 +41,7 @@
41
41
  {#if label}
42
42
  <div role="row" class="row-group-caption">
43
43
  <!-- We need `colspan` here but cannot place `<th>` under `<div>`, so use a hack -->
44
- <svelte:element this={'th'} role="rowheader" id="{id}-label" colspan="9999">
44
+ <svelte:element this={'th'} role="columnheader" id="{id}-label" colspan="9999">
45
45
  {label}
46
46
  </svelte:element>
47
47
  </div>
@@ -57,7 +57,7 @@
57
57
  display: table-row;
58
58
  }
59
59
 
60
- [role=rowheader] {
60
+ [role=columnheader] {
61
61
  display: table-cell;
62
62
  padding: 8px;
63
63
  color: var(--sui-secondary-foreground-color);
@@ -57,12 +57,10 @@
57
57
  margin: var(--sui-focus-ring-width);
58
58
  width: calc(100% - var(--sui-focus-ring-width) * 2);
59
59
  }
60
- .grid:global(.data) {
60
+ .grid.data {
61
61
  border-collapse: collapse;
62
62
  }
63
- .grid:global(.data) :global(.grid-col-header),
64
- .grid:global(.data) :global(.grid-row-header),
65
- .grid:global(.data) :global(.grid-cell) {
63
+ .grid.data :global(:is(.grid-col-header, .grid-row-header, .grid-cell)) {
66
64
  border: 1px solid var(--sui-secondary-border-color);
67
65
  padding: 8px 8px;
68
66
  }</style>
@@ -108,19 +108,19 @@
108
108
  gap: 8px 0;
109
109
  }
110
110
  }
111
- [role=listbox] :global([role="separator"]) {
111
+ [role=listbox] :global([role=separator]) {
112
112
  margin: 4px 0;
113
113
  background-color: var(--sui-control-border-color);
114
114
  }
115
115
  [role=listbox][aria-invalid=true] {
116
116
  border-color: var(--sui-error-border-color);
117
117
  }
118
- [role=listbox]:global(.tabs) {
118
+ [role=listbox].tabs {
119
119
  padding: 0;
120
120
  border-width: 0 1px 0 0;
121
121
  border-color: var(--sui-control-border-color);
122
122
  }
123
- [role=listbox]:global(.tabs) :global(.option button) {
123
+ [role=listbox].tabs :global(.option) :global(button) {
124
124
  justify-content: flex-start;
125
125
  border-width: 0 2px 0 0;
126
126
  border-color: transparent;
@@ -129,16 +129,16 @@
129
129
  border-bottom-right-radius: 0;
130
130
  height: var(--sui-tab-medium-height);
131
131
  }
132
- [role=listbox]:global(.tabs) :global(.option button) :global(.icon) {
133
- display: none;
134
- }
135
- [role=listbox]:global(.tabs) :global(.option button[aria-selected="true"]) {
132
+ [role=listbox].tabs :global(.option) :global(button[aria-selected=true]) {
136
133
  border-color: var(--sui-primary-accent-color-light);
137
134
  }
135
+ [role=listbox].tabs :global(.option) :global(button) :global(.icon) {
136
+ display: none;
137
+ }
138
138
  [role=listbox].in-combobox:focus-visible {
139
139
  outline-color: transparent;
140
140
  }
141
- [role=listbox].filtered :global([role="separator"]) {
141
+ [role=listbox].filtered :global([role=separator]) {
142
142
  display: none;
143
143
  }
144
144
 
@@ -90,6 +90,9 @@
90
90
  .option:focus-visible {
91
91
  outline-width: 0 !important;
92
92
  }
93
+ .option :global(.wrap) :global(button) {
94
+ white-space: normal;
95
+ }
93
96
  .option :global(button) {
94
97
  flex: none;
95
98
  display: flex;
@@ -101,26 +104,22 @@
101
104
  height: auto;
102
105
  min-height: var(--sui-option-height);
103
106
  }
107
+ .option :global(button:active) {
108
+ background-color: var(--sui-active-background-color);
109
+ }
110
+ .option :global(button[aria-selected=true]) :global(.icon.check) {
111
+ color: var(--sui-primary-accent-color-text);
112
+ }
104
113
  .option :global(button) :global(*) {
105
114
  flex: none;
106
115
  }
107
116
  .option :global(button) :global(.label) {
108
117
  flex: auto;
109
118
  }
110
- .option.wrap :global(button) {
111
- white-space: normal;
112
- }
113
- .option :global(.focused),
114
- .option :global(button:hover) {
119
+ .option :global(:is(.focused, button:hover)) {
115
120
  color: var(--sui-highlight-foreground-color);
116
121
  background-color: var(--sui-hover-background-color);
117
122
  }
118
- .option :global(button:active) {
119
- background-color: var(--sui-active-background-color);
120
- }
121
123
  .option :global(.icon.check) {
122
124
  margin: -2px;
123
- }
124
- .option :global(button[aria-selected="true"]) :global(.icon.check) {
125
- color: var(--sui-primary-accent-color-text);
126
125
  }</style>
@@ -170,7 +170,7 @@
170
170
  font-size: var(--sui-menuitem-font-size, var(--sui-option-font-size));
171
171
  font-weight: var(--sui-menuitem-font-weight, var(--sui-option-font-weight, var(--sui-font-weight-normal, normal)));
172
172
  }
173
- .menuitem :global(button[aria-checked="true"]) :global(.icon) {
173
+ .menuitem :global(button[aria-checked=true]) :global(.icon) {
174
174
  color: var(--sui-primary-accent-color-text);
175
175
  }
176
176
  .menuitem :global(button:hover) {
@@ -180,14 +180,14 @@
180
180
  .menuitem :global(button:active) {
181
181
  background-color: var(--sui-active-background-color);
182
182
  }
183
- .menuitem:hover > :global([role="menu"]) {
183
+ .menuitem :global(:hover) > :global([role=menu]) {
184
184
  opacity: 1;
185
185
  }
186
- .menuitem > :global([role="menu"]) {
186
+ .menuitem > :global([role=menu]) {
187
187
  position: absolute;
188
188
  inset: 2px auto auto calc(100% + 4px);
189
189
  }
190
- .menuitem > :global([role="menu"]):hover {
190
+ .menuitem > :global([role=menu]:hover) {
191
191
  opacity: 1;
192
192
  }
193
193
 
@@ -67,7 +67,7 @@
67
67
  gap: 8px 0;
68
68
  }
69
69
  }
70
- .menu :global([role="separator"]) {
70
+ .menu :global([role=separator]) {
71
71
  margin: var(--sui-menu-divider-margin, 4px);
72
72
  background-color: var(--sui-menu-divider-color, var(--sui-control-border-color));
73
73
  }</style>
@@ -90,13 +90,13 @@
90
90
  gap: 8px;
91
91
  }
92
92
  }
93
- .radio-group[aria-invalid=true] :global(button) {
93
+ .radio-group :global([aria-invalid=true]) :global(button) {
94
94
  border-color: var(--sui-error-border-color);
95
95
  }
96
- .radio-group[aria-invalid=true] :global(button[aria-checked="true"]) {
96
+ .radio-group :global([aria-invalid=true]) :global(button[aria-checked=true]) {
97
97
  border-color: var(--sui-error-border-color);
98
98
  }
99
- .radio-group[aria-invalid=true] :global(button[aria-checked="true"]::before) {
99
+ .radio-group :global([aria-invalid=true]) :global(button[aria-checked=true]::before) {
100
100
  background-color: var(--sui-error-border-color);
101
101
  }
102
102
 
@@ -110,20 +110,20 @@
110
110
  -webkit-user-select: none;
111
111
  user-select: none;
112
112
  }
113
- .radio:hover :global(button) {
113
+ .radio :global(:hover) :global(button) {
114
114
  background-color: var(--sui-hover-background-color);
115
115
  }
116
- .radio:hover :global(button[aria-checked="true"]) {
116
+ .radio :global(:hover) :global(button[aria-checked=true]) {
117
117
  border-color: var(--sui-primary-accent-color-light);
118
118
  color: var(--sui-primary-accent-color-text);
119
119
  }
120
- .radio:hover :global(button[aria-checked="true"]::before) {
120
+ .radio :global(:hover) :global(button[aria-checked=true]::before) {
121
121
  background-color: var(--sui-primary-accent-color-light);
122
122
  }
123
- .radio:active :global(button) {
123
+ .radio :global(:active) :global(button) {
124
124
  background-color: var(--sui-active-background-color);
125
125
  }
126
- .radio:active :global(button[aria-checked="true"]) {
126
+ .radio :global(:active) :global(button[aria-checked=true]) {
127
127
  border-color: var(--sui-primary-accent-color-dark);
128
128
  color: var(--sui-primary-accent-color-dark);
129
129
  }
@@ -147,14 +147,15 @@
147
147
  width: calc(var(--sui-checkbox-height) - 7px);
148
148
  height: calc(var(--sui-checkbox-height) - 7px);
149
149
  background-color: var(--sui-primary-accent-color);
150
+ opacity: 0;
150
151
  transition: all 200ms;
151
152
  will-change: opacity;
152
153
  }
153
- .radio :global(button[aria-checked="true"]) {
154
+ .radio :global(button[aria-checked=true]) {
154
155
  border-color: var(--sui-primary-accent-color);
155
156
  }
156
- .radio :global(button[aria-checked="false"]::before) {
157
- opacity: 0;
157
+ .radio :global(button[aria-checked=true]::before) {
158
+ opacity: 1;
158
159
  }
159
160
  .radio label {
160
161
  cursor: inherit;