6
6
7
7
$_mdc-slots : (tokens-mdc-switch .$prefix , tokens-mdc-switch .get-token-slots ());
8
8
$_mat-slots : (tokens-mat-switch .$prefix , tokens-mat-switch .get-token-slots ());
9
+ $_interactive-disabled-selector : ' .mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled' ;
9
10
10
11
.mdc-switch {
11
12
align-items : center ;
@@ -20,11 +21,15 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
20
21
padding : 0 ;
21
22
position : relative ;
22
23
23
- & : disabled {
24
+ & .mdc-switch-- disabled {
24
25
cursor : default ;
25
26
pointer-events : none ;
26
27
}
27
28
29
+ & .mat-mdc-slide-toggle-disabled-interactive {
30
+ pointer-events : auto ;
31
+ }
32
+
28
33
@include token-utils .use-tokens ($_mdc-slots ...) {
29
34
@include token-utils .create-token-slot (width , track- width);
30
35
}
@@ -39,7 +44,7 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
39
44
@include token-utils .create-token-slot (height , track- height);
40
45
@include token-utils .create-token-slot (border-radius , track- shape);
41
46
42
- .mdc-switch : disabled & {
47
+ .mdc-switch-- disabled.mdc-switch & {
43
48
@include token-utils .create-token-slot (opacity , disabled- track- opacity);
44
49
}
45
50
}
@@ -117,7 +122,10 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
117
122
@include token-utils .create-token-slot (background , unselected- pressed- track- color);
118
123
}
119
124
120
- .mdc-switch :disabled & {
125
+ #{$_interactive-disabled-selector } :hover:not (:focus ):not (:active ) & ,
126
+ #{$_interactive-disabled-selector } :focus:not (:active ) & ,
127
+ #{$_interactive-disabled-selector } :active & ,
128
+ .mdc-switch.mdc-switch--disabled & {
121
129
@include token-utils .create-token-slot (background , disabled- unselected- track- color);
122
130
}
123
131
}
@@ -161,7 +169,10 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
161
169
@include token-utils .create-token-slot (background , selected- pressed- track- color);
162
170
}
163
171
164
- .mdc-switch :disabled & {
172
+ #{$_interactive-disabled-selector } :hover:not (:focus ):not (:active ) & ,
173
+ #{$_interactive-disabled-selector } :focus:not (:active ) & ,
174
+ #{$_interactive-disabled-selector } :active & ,
175
+ .mdc-switch.mdc-switch--disabled & {
165
176
@include token-utils .create-token-slot (background , disabled- selected- track- color);
166
177
}
167
178
}
@@ -310,7 +321,10 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
310
321
@include token-utils .create-token-slot (background , selected- pressed- handle- color);
311
322
}
312
323
313
- .mdc-switch--selected :disabled & {
324
+ #{$_interactive-disabled-selector } .mdc-switch--selected :hover:not (:focus ):not (:active ) & ,
325
+ #{$_interactive-disabled-selector } .mdc-switch--selected :focus:not (:active ) & ,
326
+ #{$_interactive-disabled-selector } .mdc-switch--selected :active & ,
327
+ .mdc-switch--selected.mdc-switch--disabled & {
314
328
@include token-utils .create-token-slot (background , disabled- selected- handle- color);
315
329
}
316
330
@@ -330,7 +344,7 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
330
344
@include token-utils .create-token-slot (background , unselected- pressed- handle- color);
331
345
}
332
346
333
- .mdc-switch--unselected : disabled & {
347
+ .mdc-switch--unselected.mdc-switch-- disabled & {
334
348
@include token-utils .create-token-slot (background , disabled- unselected- handle- color);
335
349
}
336
350
}
@@ -354,7 +368,10 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
354
368
@include token-utils .create-token-slot (box-shadow , handle- elevation- shadow);
355
369
}
356
370
357
- .mdc-switch :disabled & {
371
+ #{$_interactive-disabled-selector } :hover:not (:focus ):not (:active ) & ,
372
+ #{$_interactive-disabled-selector } :focus:not (:active ) & ,
373
+ #{$_interactive-disabled-selector } :active & ,
374
+ .mdc-switch.mdc-switch--disabled & {
358
375
@include token-utils .create-token-slot (box-shadow , disabled- handle- elevation- shadow);
359
376
}
360
377
}
@@ -376,10 +393,14 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
376
393
content : ' ' ;
377
394
opacity : 0 ;
378
395
379
- .mdc-switch : disabled & {
396
+ .mdc-switch-- disabled & {
380
397
display : none ;
381
398
}
382
399
400
+ .mat-mdc-slide-toggle-disabled-interactive & {
401
+ display : block ;
402
+ }
403
+
383
404
.mdc-switch :hover & {
384
405
opacity : 0.04 ;
385
406
transition : 75ms opacity cubic-bezier (0 , 0 , 0.2 , 1 );
@@ -391,6 +412,9 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
391
412
}
392
413
393
414
@include token-utils .use-tokens ($_mdc-slots ...) {
415
+ #{$_interactive-disabled-selector } :enabled:focus & ,
416
+ #{$_interactive-disabled-selector } :enabled:active & ,
417
+ #{$_interactive-disabled-selector } :enabled:hover:not (:focus ) & ,
394
418
.mdc-switch--unselected :enabled:hover:not (:focus ) & {
395
419
@include token-utils .create-token-slot (background , unselected- hover- state- layer- color);
396
420
}
@@ -429,11 +453,11 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
429
453
z-index : 1 ;
430
454
431
455
@include token-utils .use-tokens ($_mdc-slots ...) {
432
- .mdc-switch--unselected : disabled & {
456
+ .mdc-switch--disabled.mdc-switch--unselected & {
433
457
@include token-utils .create-token-slot (opacity , disabled- unselected- icon- opacity);
434
458
}
435
459
436
- .mdc-switch--selected : disabled & {
460
+ .mdc-switch--disabled.mdc-switch--selected & {
437
461
@include token-utils .create-token-slot (opacity , disabled- selected- icon- opacity);
438
462
}
439
463
}
@@ -456,7 +480,7 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
456
480
@include token-utils .create-token-slot (fill , unselected- icon- color);
457
481
}
458
482
459
- .mdc-switch--unselected : disabled & {
483
+ .mdc-switch--unselected.mdc-switch-- disabled & {
460
484
@include token-utils .create-token-slot (fill , disabled- unselected- icon- color);
461
485
}
462
486
@@ -466,7 +490,7 @@ $_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots());
466
490
@include token-utils .create-token-slot (fill , selected- icon- color);
467
491
}
468
492
469
- .mdc-switch--selected : disabled & {
493
+ .mdc-switch--selected.mdc-switch-- disabled & {
470
494
@include token-utils .create-token-slot (fill , disabled- selected- icon- color);
471
495
}
472
496
}
0 commit comments