@carbon/styles 1.44.0-rc.0 → 1.45.0-rc.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.
Files changed (27) hide show
  1. package/css/styles.css +472 -110
  2. package/css/styles.min.css +1 -1
  3. package/package.json +3 -3
  4. package/scss/__tests__/theme-test.js +10 -0
  5. package/scss/components/accordion/_accordion.scss +13 -37
  6. package/scss/components/checkbox/_checkbox.scss +20 -0
  7. package/scss/components/data-table/_data-table.scss +81 -10
  8. package/scss/components/data-table/expandable/_data-table-expandable.scss +71 -20
  9. package/scss/components/data-table/sort/_data-table-sort.scss +6 -0
  10. package/scss/components/fluid-combo-box/_fluid-combo-box.scss +2 -1
  11. package/scss/components/fluid-date-picker/_fluid-date-picker.scss +12 -0
  12. package/scss/components/fluid-list-box/_fluid-list-box.scss +54 -1
  13. package/scss/components/fluid-number-input/_fluid-number-input.scss +21 -0
  14. package/scss/components/fluid-select/_fluid-select.scss +14 -1
  15. package/scss/components/fluid-text-area/_fluid-text-area.scss +12 -1
  16. package/scss/components/fluid-text-input/_fluid-text-input.scss +24 -3
  17. package/scss/components/fluid-time-picker/_fluid-time-picker.scss +3 -1
  18. package/scss/components/list-box/_list-box.scss +23 -3
  19. package/scss/components/menu/_menu.scss +11 -1
  20. package/scss/components/notification/_actionable-notification.scss +4 -0
  21. package/scss/components/number-input/_number-input.scss +2 -1
  22. package/scss/components/popover/_popover.scss +1 -1
  23. package/scss/components/radio-button/_radio-button.scss +23 -0
  24. package/scss/components/slider/_slider.scss +126 -32
  25. package/scss/components/slug/_slug.scss +3 -12
  26. package/scss/components/tile/_tile.scss +102 -0
  27. package/scss/utilities/_ai-gradient.scss +56 -2
@@ -42,7 +42,7 @@
42
42
  align-items: center;
43
43
  margin: 0;
44
44
  block-size: convert.to-rem(16px);
45
- inline-size: calc(100% - 2rem);
45
+ inline-size: auto;
46
46
  inset-block-start: convert.to-rem(13px);
47
47
  inset-inline-start: $spacing-05;
48
48
  }
@@ -222,4 +222,15 @@
222
222
  .#{$prefix}--text-area--fluid .#{$prefix}--text-area__wrapper--slug {
223
223
  @include ai-gradient;
224
224
  }
225
+
226
+ .#{$prefix}--text-area--fluid
227
+ .#{$prefix}--text-area__wrapper--slug
228
+ .#{$prefix}--text-area--invalid
229
+ ~ .#{$prefix}--slug,
230
+ .#{$prefix}--text-area--fluid
231
+ .#{$prefix}--text-area__wrapper--slug
232
+ .#{$prefix}--text-area--warn
233
+ ~ .#{$prefix}--slug {
234
+ inset-inline-end: $spacing-05;
235
+ }
225
236
  }
@@ -92,10 +92,10 @@
92
92
 
93
93
  .#{$prefix}--text-input--fluid
94
94
  .#{$prefix}--text-input--invalid
95
- + .#{$prefix}--text-input__divider,
95
+ ~ .#{$prefix}--text-input__divider,
96
96
  .#{$prefix}--text-input--fluid
97
97
  .#{$prefix}--text-input--warning
98
- + .#{$prefix}--text-input__divider {
98
+ ~ .#{$prefix}--text-input__divider {
99
99
  display: block;
100
100
  border-style: solid;
101
101
  border-color: $border-subtle;
@@ -190,6 +190,27 @@
190
190
  .#{$prefix}--text-input--fluid
191
191
  .#{$prefix}--text-input__field-wrapper--slug
192
192
  .#{$prefix}--slug {
193
- inset-block-start: convert.to-rem(43px);
193
+ inset-block-start: convert.to-rem(42px);
194
+ }
195
+
196
+ .#{$prefix}--text-input--fluid
197
+ .#{$prefix}--text-input--invalid
198
+ ~ .#{$prefix}--slug,
199
+ .#{$prefix}--text-input--fluid
200
+ .#{$prefix}--text-input--warning
201
+ ~ .#{$prefix}--slug {
202
+ inset-inline-end: $spacing-05;
203
+ }
204
+
205
+ .#{$prefix}--text-input--fluid
206
+ .#{$prefix}--text-input__field-wrapper--slug
207
+ .#{$prefix}--text-input,
208
+ .#{$prefix}--text-input--fluid
209
+ .#{$prefix}--text-input__field-wrapper--slug
210
+ .#{$prefix}--text-input--invalid,
211
+ .#{$prefix}--text-input--fluid
212
+ .#{$prefix}--text-input__field-wrapper--slug
213
+ .#{$prefix}--text-input--warning {
214
+ padding-inline-end: $spacing-08;
194
215
  }
195
216
  }
@@ -112,7 +112,9 @@
112
112
  padding-block-start: convert.to-rem(30px);
113
113
  }
114
114
 
115
- .#{$prefix}--select--fluid:last-of-type .#{$prefix}--select-input {
115
+ .#{$prefix}--time-picker--fluid
116
+ .#{$prefix}--select--fluid:last-of-type
117
+ .#{$prefix}--select-input {
116
118
  border-inline-end: 2px solid transparent;
117
119
  }
118
120
 
@@ -369,7 +369,7 @@ $list-box-menu-width: convert.to-rem(300px);
369
369
  .#{$prefix}--list-box--warning
370
370
  .#{$prefix}--list-box__field
371
371
  .#{$prefix}--text-input--empty {
372
- padding-inline-end: carbon--mini-units(9);
372
+ padding-inline-end: $spacing-10;
373
373
  }
374
374
 
375
375
  .#{$prefix}--list-box[data-invalid]
@@ -902,19 +902,39 @@ $list-box-menu-width: convert.to-rem(300px);
902
902
  }
903
903
 
904
904
  .#{$prefix}--list-box__wrapper--slug .#{$prefix}--list-box__field,
905
- .#{$prefix}--list-box__wrapper--slug .#{$prefix}--text-input {
905
+ .#{$prefix}--list-box__wrapper--slug .#{$prefix}--text-input--empty {
906
906
  padding-inline-end: $spacing-10;
907
907
  }
908
908
 
909
909
  .#{$prefix}--list-box__wrapper--slug
910
- .#{$prefix}--list-box--invalid
910
+ .#{$prefix}--text-input:not(.#{$prefix}--text-input--empty) {
911
+ padding-inline-end: $spacing-12;
912
+ }
913
+
914
+ .#{$prefix}--list-box__wrapper--slug
915
+ .#{$prefix}--list-box--invalid[data-invalid]
916
+ .#{$prefix}--text-input--empty,
917
+ .#{$prefix}--list-box__wrapper--slug
918
+ .#{$prefix}--list-box--invalid[data-invalid]
911
919
  .#{$prefix}--list-box__field,
920
+ .#{$prefix}--list-box__wrapper--slug
921
+ .#{$prefix}--list-box--warning
922
+ .#{$prefix}--text-input--empty,
912
923
  .#{$prefix}--list-box__wrapper--slug
913
924
  .#{$prefix}--list-box--warning
914
925
  .#{$prefix}--list-box__field {
915
926
  padding-inline-end: $spacing-12;
916
927
  }
917
928
 
929
+ .#{$prefix}--list-box__wrapper--slug
930
+ .#{$prefix}--list-box--invalid[data-invalid]
931
+ .#{$prefix}--text-input:not(.#{$prefix}--text-input--empty),
932
+ .#{$prefix}--list-box__wrapper--slug
933
+ .#{$prefix}--list-box--warning
934
+ .#{$prefix}--text-input:not(.#{$prefix}--text-input--empty) {
935
+ padding-inline-end: convert.to-rem(120px);
936
+ }
937
+
918
938
  .#{$prefix}--list-box__wrapper--slug
919
939
  .#{$prefix}--list-box--invalid
920
940
  .#{$prefix}--slug,
@@ -35,6 +35,7 @@
35
35
  max-inline-size: 18rem;
36
36
  min-inline-size: 10rem;
37
37
  opacity: 0;
38
+ overflow-y: auto;
38
39
  visibility: hidden;
39
40
  }
40
41
 
@@ -66,7 +67,7 @@
66
67
  display: grid;
67
68
  align-items: center;
68
69
  block-size: 2rem;
69
- color: $text-primary;
70
+ color: $text-secondary;
70
71
  column-gap: $spacing-03;
71
72
  cursor: pointer;
72
73
  grid-template-columns: 1fr max-content;
@@ -76,10 +77,19 @@
76
77
  &:focus {
77
78
  @include focus-outline('outline');
78
79
  }
80
+
81
+ svg {
82
+ color: $icon-secondary;
83
+ }
79
84
  }
80
85
 
81
86
  .#{$prefix}--menu-item:hover {
82
87
  background-color: $layer-hover;
88
+ color: $text-primary;
89
+
90
+ svg {
91
+ color: $icon-primary;
92
+ }
83
93
  }
84
94
 
85
95
  $supported-sizes: (
@@ -223,6 +223,10 @@
223
223
  padding: convert.to-rem(15px) 0;
224
224
  }
225
225
 
226
+ .#{$prefix}--actionable-notification__button-wrapper {
227
+ display: flex;
228
+ }
229
+
226
230
  .#{$prefix}--actionable-notification--toast
227
231
  .#{$prefix}--actionable-notification__text-wrapper {
228
232
  padding: convert.to-rem(15px) 0 convert.to-rem(23px) 0;
@@ -438,7 +438,8 @@
438
438
  padding-inline-end: convert.to-rem(144px);
439
439
  }
440
440
 
441
- .#{$prefix}--number__input-wrapper--slug input[type='number'] {
441
+ .#{$prefix}--number__input-wrapper--slug input[type='number'],
442
+ .#{$prefix}--number__input-wrapper--slug input[type='number']:disabled {
442
443
  @include ai-gradient;
443
444
 
444
445
  padding-inline-end: convert.to-rem(112px);
@@ -172,7 +172,7 @@ $popover-caret-height: custom-property.get-var(
172
172
  will-change: transform;
173
173
  }
174
174
 
175
- .#{$prefix}--popover--open
175
+ .#{$prefix}--popover--caret.#{$prefix}--popover--open
176
176
  > .#{$prefix}--popover
177
177
  > .#{$prefix}--popover-caret {
178
178
  display: block;
@@ -280,4 +280,27 @@ $radio-border-width: 1px !default;
280
280
  margin-inline-end: 0;
281
281
  margin-inline-start: $spacing-03;
282
282
  }
283
+
284
+ // Slug styles
285
+ .#{$prefix}--radio-button-group--slug legend.#{$prefix}--label,
286
+ .#{$prefix}--radio-button-wrapper--slug
287
+ .#{$prefix}--radio-button__label-text {
288
+ display: flex;
289
+ }
290
+
291
+ .#{$prefix}--radio-button-group--slug
292
+ legend.#{$prefix}--label
293
+ .#{$prefix}--slug,
294
+ .#{$prefix}--radio-button-wrapper--slug
295
+ .#{$prefix}--radio-button__label-text
296
+ .#{$prefix}--slug {
297
+ margin-inline-start: $spacing-03;
298
+ }
299
+
300
+ .#{$prefix}--radio-button-wrapper--slug
301
+ .#{$prefix}--radio-button__label-text
302
+ .#{$prefix}--slug__button--inline {
303
+ line-height: inherit;
304
+ margin-block-start: convert.to-rem(-1px);
305
+ }
283
306
  }
@@ -21,6 +21,7 @@
21
21
  @use '../../utilities/skeleton' as *;
22
22
  @use '../../utilities/high-contrast-mode' as *;
23
23
  @use '../../utilities/convert';
24
+ @use '../../utilities/custom-property';
24
25
 
25
26
  /// Slider styles
26
27
  /// @access public
@@ -85,35 +86,131 @@
85
86
  transition: background $duration-fast-02 motion(standard, productive);
86
87
  }
87
88
 
88
- .#{$prefix}--slider__thumb {
89
+ .#{$prefix}--slider__thumb-wrapper {
89
90
  position: absolute;
90
91
  z-index: 3;
92
+ block-size: convert.to-rem(14px);
93
+ inline-size: convert.to-rem(14px);
94
+ transform: translate(-50%, -50%);
95
+ @include custom-property.declaration('tooltip-padding-inline', $spacing-03);
96
+ @include custom-property.declaration('popover-offset', $spacing-03);
97
+
98
+ .#{$prefix}--slider-container--rtl & {
99
+ transform: translate(50%, -50%);
100
+ }
101
+ }
102
+
103
+ .#{$prefix}--slider__thumb-wrapper--lower,
104
+ .#{$prefix}--slider__thumb-wrapper--upper {
105
+ block-size: 24px;
106
+ inline-size: 16px;
107
+ @include custom-property.declaration(
108
+ 'popover-offset',
109
+ custom-property.get-var('popover-caret-height', $spacing-03)
110
+ );
111
+ }
112
+
113
+ .#{$prefix}--slider__thumb-wrapper--lower {
114
+ transform: translate(-100%, -50%);
115
+
116
+ > .#{$prefix}--popover > .#{$prefix}--popover-content {
117
+ transform: translate(
118
+ 50%,
119
+ calc(-100% - custom-property.get-var('popover-offset', 0rem))
120
+ );
121
+ }
122
+
123
+ > .#{$prefix}--popover > .#{$prefix}--popover-caret {
124
+ inset-inline-end: 0;
125
+ inset-inline-start: revert;
126
+ transform: translate(
127
+ 50%,
128
+ calc(-1 * custom-property.get-var('popover-offset', 0rem))
129
+ );
130
+ }
131
+ }
132
+
133
+ .#{$prefix}--slider-container--rtl .#{$prefix}--slider__thumb-wrapper--lower {
134
+ transform: translate(100%, -50%);
135
+
136
+ > .#{$prefix}--popover > .#{$prefix}--popover-content {
137
+ transform: translate(
138
+ 0,
139
+ calc(-100% - custom-property.get-var('popover-offset', 0rem))
140
+ );
141
+ }
142
+
143
+ > .#{$prefix}--popover > .#{$prefix}--popover-caret {
144
+ transform: translate(
145
+ -50%,
146
+ calc(-1 * custom-property.get-var('popover-offset', 0rem))
147
+ );
148
+ }
149
+ }
150
+
151
+ .#{$prefix}--slider__thumb-wrapper--upper {
152
+ transform: translate(0, -50%);
153
+
154
+ > .#{$prefix}--popover > .#{$prefix}--popover-content {
155
+ transform: translate(
156
+ -50%,
157
+ calc(-100% - custom-property.get-var('popover-offset', 0rem))
158
+ );
159
+ }
160
+
161
+ > .#{$prefix}--popover > .#{$prefix}--popover-caret {
162
+ inset-inline-start: 0;
163
+ transform: translate(
164
+ -50%,
165
+ calc(-1 * custom-property.get-var('popover-offset', 0rem))
166
+ );
167
+ }
168
+ }
169
+
170
+ .#{$prefix}--slider-container--rtl .#{$prefix}--slider__thumb-wrapper--upper {
171
+ transform: translate(0, -50%);
172
+
173
+ > .#{$prefix}--popover > .#{$prefix}--popover-content {
174
+ transform: translate(
175
+ 0,
176
+ calc(-100% - custom-property.get-var('popover-offset', 0rem))
177
+ );
178
+ }
179
+
180
+ > .#{$prefix}--popover > .#{$prefix}--popover-caret {
181
+ transform: translate(
182
+ 50%,
183
+ calc(-1 * custom-property.get-var('popover-offset', 0rem))
184
+ );
185
+ }
186
+ }
187
+
188
+ .#{$prefix}--slider__thumb {
189
+ position: absolute;
91
190
  border-radius: 50%;
92
191
  background: $layer-selected-inverse;
93
- block-size: convert.to-rem(14px);
94
192
  box-shadow: inset 0 0 0 1px transparent, inset 0 0 0 2px transparent;
95
- inline-size: convert.to-rem(14px);
193
+ inset: 0;
96
194
  outline: none;
97
- transform: translate(-50%, -50%);
98
195
  transition: transform $duration-fast-02 motion(standard, productive),
99
196
  background $duration-fast-02 motion(standard, productive),
100
197
  box-shadow $duration-fast-02 motion(standard, productive);
101
198
 
102
199
  &:hover {
103
200
  // 20px / 14px = 1.4286
104
- transform: translate(-50%, -50%) scale(1.4286);
201
+ transform: scale(1.4286);
105
202
  }
106
203
 
107
204
  &:focus {
108
205
  background-color: $interactive;
109
206
  box-shadow: inset 0 0 0 2px $interactive, inset 0 0 0 3px $layer;
110
207
  // 20px / 14px = 1.4286
111
- transform: translate(-50%, -50%) scale(1.4286);
208
+ transform: scale(1.4286);
112
209
  }
113
210
 
114
211
  &:active {
115
212
  box-shadow: inset 0 0 0 2px $interactive;
116
- transform: translate(-50%, -50%) scale(1.4286);
213
+ transform: scale(1.4286);
117
214
  }
118
215
  }
119
216
 
@@ -128,14 +225,12 @@
128
225
 
129
226
  .#{$prefix}--slider__thumb--lower,
130
227
  .#{$prefix}--slider__thumb--upper {
131
- display: block;
228
+ position: absolute;
132
229
  /* stylelint-disable-next-line declaration-property-value-disallowed-list */
133
230
  border-radius: unset;
134
231
  background-color: transparent;
135
- block-size: 24px;
136
232
  box-shadow: none;
137
- inline-size: 16px;
138
- transform: translate(-100%, -50%);
233
+ inset: 0;
139
234
  transition: none;
140
235
 
141
236
  &::before {
@@ -151,7 +246,7 @@
151
246
  }
152
247
 
153
248
  &:hover {
154
- transform: translate(-100%, -50%);
249
+ transform: none;
155
250
 
156
251
  .#{$prefix}--slider__thumb-icon {
157
252
  fill: $text-secondary;
@@ -160,13 +255,13 @@
160
255
 
161
256
  &:active {
162
257
  box-shadow: none;
163
- transform: translate(-100%, -50%);
258
+ transform: none;
164
259
  }
165
260
 
166
261
  &:focus {
167
262
  background-color: transparent;
168
263
  box-shadow: none;
169
- transform: translate(-100%, -50%);
264
+ transform: none;
170
265
 
171
266
  .#{$prefix}--slider__thumb-icon {
172
267
  display: none;
@@ -185,23 +280,17 @@
185
280
  }
186
281
 
187
282
  .#{$prefix}--slider__thumb--upper {
188
- transform: translate(0, -50%);
283
+ transform: none;
189
284
 
190
285
  &::before {
191
286
  inset-inline-end: auto;
192
287
  inset-inline-start: 0;
193
288
  }
194
289
 
195
- &:hover {
196
- transform: translate(0, -50%);
197
- }
198
-
199
- &:active {
200
- transform: translate(0, -50%);
201
- }
202
-
290
+ &:hover,
291
+ &:active,
203
292
  &:focus {
204
- transform: translate(0, -50%);
293
+ transform: none;
205
294
  }
206
295
  }
207
296
 
@@ -213,6 +302,10 @@
213
302
  position: relative;
214
303
  }
215
304
 
305
+ .#{$prefix}--slider-text-input-wrapper--hidden {
306
+ display: none;
307
+ }
308
+
216
309
  .#{$prefix}--slider-text-input,
217
310
  .#{$prefix}-slider-text-input {
218
311
  -moz-appearance: textfield;
@@ -226,11 +319,9 @@
226
319
  }
227
320
  }
228
321
 
229
- .#{$prefix}--slider-text-input--hidden {
230
- display: none;
231
- }
232
-
233
- .#{$prefix}--slider__thumb:focus ~ .#{$prefix}--slider__filled-track {
322
+ .#{$prefix}--slider__thumb:focus ~ .#{$prefix}--slider__filled-track,
323
+ .#{$prefix}--slider__thumb-wrapper:focus-within
324
+ ~ .#{$prefix}--slider__filled-track {
234
325
  background-color: $border-interactive;
235
326
  }
236
327
 
@@ -368,17 +459,20 @@
368
459
  }
369
460
 
370
461
  .#{$prefix}--slider-container.#{$prefix}--skeleton {
462
+ .#{$prefix}--slider__thumb-wrapper {
463
+ inset-inline-start: 50%;
464
+ }
465
+
371
466
  .#{$prefix}--slider__thumb {
372
467
  cursor: default;
373
- inset-inline-start: 50%;
374
468
  pointer-events: none;
375
469
  }
376
470
 
377
- .#{$prefix}--slider__thumb--lower {
471
+ .#{$prefix}--slider__thumb-wrapper--lower {
378
472
  inset-inline-start: 0;
379
473
  }
380
474
 
381
- .#{$prefix}--slider__thumb--upper {
475
+ .#{$prefix}--slider__thumb-wrapper--upper {
382
476
  inset-inline-start: 100%;
383
477
  }
384
478
  }
@@ -4,6 +4,7 @@
4
4
  @use '../../spacing' as *;
5
5
  @use '../../theme' as *;
6
6
  @use '../../type' as *;
7
+ @use '../../utilities/ai-gradient' as *;
7
8
  @use '../../utilities/convert';
8
9
 
9
10
  $sizes: (
@@ -324,22 +325,12 @@ $sizes: (
324
325
 
325
326
  // Slug callout styles
326
327
  .#{$prefix}--slug.#{$prefix}--slug--enabled .#{$prefix}--slug-content {
328
+ @include callout-gradient();
329
+
327
330
  border: 1px solid $border-subtle;
328
331
  border-radius: 16px;
329
332
  // 84px seems to make this fully opaque?
330
333
  backdrop-filter: blur(25px);
331
- background: linear-gradient(
332
- 0deg,
333
- $slug-callout-aura-start 0%,
334
- $slug-callout-aura-end 33%,
335
- transparent 100%
336
- ),
337
- linear-gradient(
338
- 180deg,
339
- $slug-callout-gradient-top 0%,
340
- $slug-callout-gradient-bottom 100%
341
- )
342
- rgba(0, 0, 0, 0.01);
343
334
  // box-shadow seems to match the spec better
344
335
  // than the same values plugged into `drop-shadow`
345
336
  // filter: drop-shadow(-45px 45px 100px rgba(0, 0, 0, 0.2));
@@ -13,6 +13,7 @@
13
13
  @use '../../spacing' as *;
14
14
  @use '../../theme' as *;
15
15
  @use '../../type' as *;
16
+ @use '../../utilities/ai-gradient' as *;
16
17
  @use '../../utilities/button-reset';
17
18
  @use '../../utilities/component-reset';
18
19
  @use '../../utilities/focus-outline' as *;
@@ -368,6 +369,107 @@ $-icon-container-size: calc(#{layout.density('padding-inline')} * 2 + 1rem);
368
369
  fill: $icon-disabled;
369
370
  }
370
371
 
372
+ // Slug styles
373
+ .#{$prefix}--tile > .#{$prefix}--slug,
374
+ .#{$prefix}--tile--expandable > div > .#{$prefix}--slug,
375
+ .#{$prefix}--tile--clickable .#{$prefix}--tile--slug-icon {
376
+ position: absolute;
377
+ inset-block-start: $spacing-05;
378
+ inset-inline-end: $spacing-05;
379
+ }
380
+
381
+ .#{$prefix}--tile.#{$prefix}--tile--selectable > .#{$prefix}--slug {
382
+ inset-inline-end: $spacing-08;
383
+ }
384
+
385
+ .#{$prefix}--tile.#{$prefix}--tile--clickable > .#{$prefix}--slug {
386
+ pointer-events: none;
387
+ }
388
+
389
+ .#{$prefix}--tile--slug.#{$prefix}--tile {
390
+ @include callout-gradient();
391
+
392
+ border: 1px solid $border-tile;
393
+ }
394
+
395
+ .#{$prefix}--tile--slug.#{$prefix}--tile--expandable:hover {
396
+ @include callout-gradient();
397
+ }
398
+
399
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable::before,
400
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable::after,
401
+ .#{$prefix}--tile--slug.#{$prefix}--tile--clickable::before {
402
+ position: absolute;
403
+ display: block;
404
+ block-size: 100%;
405
+ content: '';
406
+ inline-size: 100%;
407
+ inset-block-start: 0;
408
+ inset-inline-start: 0;
409
+ opacity: 0;
410
+ transition: opacity $duration-fast-02 motion(standard, productive);
411
+ }
412
+
413
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable::before,
414
+ .#{$prefix}--tile--slug.#{$prefix}--tile--clickable::before {
415
+ @include callout-gradient('hover');
416
+ }
417
+
418
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable:hover::before,
419
+ .#{$prefix}--tile--slug.#{$prefix}--tile--clickable:hover::before {
420
+ opacity: 1;
421
+ }
422
+
423
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable::after {
424
+ @include callout-gradient('selected');
425
+ }
426
+
427
+ .#{$prefix}--tile--slug.#{$prefix}--tile--is-selected::after {
428
+ opacity: 1;
429
+ }
430
+
431
+ .#{$prefix}--tile--slug.#{$prefix}--tile--is-selected {
432
+ border-color: $border-inverse;
433
+ }
434
+
435
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable
436
+ .#{$prefix}--tile-content,
437
+ .#{$prefix}--tile--slug.#{$prefix}--tile--clickable
438
+ .#{$prefix}--tile-content {
439
+ position: relative;
440
+ z-index: 1;
441
+ cursor: pointer;
442
+ }
443
+
444
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable > .#{$prefix}--slug,
445
+ .#{$prefix}--tile--slug.#{$prefix}--tile--selectable
446
+ > .#{$prefix}--tile__checkmark {
447
+ z-index: 1;
448
+ }
449
+
450
+ .#{$prefix}--tile--expandable:has(
451
+ .#{$prefix}--slug > .#{$prefix}--popover--open
452
+ ) {
453
+ overflow: visible;
454
+ }
455
+
456
+ // To Do: Replace svg overrides with actual AI icon
457
+ .#{$prefix}--tile--clickable .#{$prefix}--tile--slug-icon rect {
458
+ stroke: $icon-primary;
459
+ }
460
+
461
+ .#{$prefix}--tile--clickable .#{$prefix}--tile--slug-icon path {
462
+ fill: $icon-primary;
463
+ }
464
+
465
+ // Tile with slug and rounded corners
466
+ .#{$prefix}--tile--slug-rounded,
467
+ .#{$prefix}--tile--slug-rounded.#{$prefix}--tile--selectable::before,
468
+ .#{$prefix}--tile--slug-rounded.#{$prefix}--tile--selectable::after,
469
+ .#{$prefix}--tile--slug-rounded.#{$prefix}--tile--clickable::before {
470
+ border-radius: $spacing-05;
471
+ }
472
+
371
473
  // Windows HCM fix
372
474
  .#{$prefix}--tile__chevron svg,
373
475
  .#{$prefix}--tile__checkmark svg,