@angular/material 18.0.0 → 18.0.2

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 (55) hide show
  1. package/checkbox/_checkbox-common.scss +523 -0
  2. package/checkbox/_checkbox-theme.scss +23 -8
  3. package/core/_core-theme.scss +22 -8
  4. package/core/ripple/_ripple.scss +6 -0
  5. package/core/style/_vendor-prefixes.scss +5 -0
  6. package/core/tokens/m2/mdc/_checkbox.scss +3 -4
  7. package/esm2022/checkbox/checkbox.mjs +3 -3
  8. package/esm2022/core/version.mjs +1 -1
  9. package/esm2022/datepicker/calendar.mjs +3 -3
  10. package/esm2022/list/list-option.mjs +3 -3
  11. package/esm2022/menu/menu.mjs +3 -3
  12. package/esm2022/radio/radio.mjs +24 -3
  13. package/esm2022/slider/slider.mjs +6 -6
  14. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  15. package/esm2022/table/table.mjs +3 -3
  16. package/esm2022/tabs/paginated-tab-header.mjs +13 -3
  17. package/fesm2022/checkbox.mjs +2 -2
  18. package/fesm2022/checkbox.mjs.map +1 -1
  19. package/fesm2022/core.mjs +1 -1
  20. package/fesm2022/core.mjs.map +1 -1
  21. package/fesm2022/datepicker.mjs +2 -2
  22. package/fesm2022/datepicker.mjs.map +1 -1
  23. package/fesm2022/list.mjs +2 -2
  24. package/fesm2022/list.mjs.map +1 -1
  25. package/fesm2022/menu.mjs +2 -2
  26. package/fesm2022/menu.mjs.map +1 -1
  27. package/fesm2022/radio.mjs +24 -3
  28. package/fesm2022/radio.mjs.map +1 -1
  29. package/fesm2022/slider.mjs +5 -5
  30. package/fesm2022/slider.mjs.map +1 -1
  31. package/fesm2022/snack-bar.mjs +3 -3
  32. package/fesm2022/snack-bar.mjs.map +1 -1
  33. package/fesm2022/table.mjs +2 -2
  34. package/fesm2022/table.mjs.map +1 -1
  35. package/fesm2022/tabs.mjs +12 -2
  36. package/fesm2022/tabs.mjs.map +1 -1
  37. package/list/_list-item-hcm-indicator.scss +19 -19
  38. package/list/_list-theme.scss +6 -4
  39. package/package.json +2 -2
  40. package/prebuilt-themes/azure-blue.css +1 -1
  41. package/prebuilt-themes/cyan-orange.css +1 -1
  42. package/prebuilt-themes/deeppurple-amber.css +1 -1
  43. package/prebuilt-themes/indigo-pink.css +1 -1
  44. package/prebuilt-themes/magenta-violet.css +1 -1
  45. package/prebuilt-themes/pink-bluegrey.css +1 -1
  46. package/prebuilt-themes/purple-green.css +1 -1
  47. package/prebuilt-themes/rose-red.css +1 -1
  48. package/radio/index.d.ts +1 -0
  49. package/schematics/ng-add/index.js +1 -1
  50. package/schematics/ng-add/index.mjs +1 -1
  51. package/schematics/ng-add/theming/create-custom-theme.js +3 -3
  52. package/schematics/ng-add/theming/create-custom-theme.mjs +3 -3
  53. package/schematics/ng-update/index_bundled.js +1 -2
  54. package/schematics/ng-update/index_bundled.js.map +2 -2
  55. package/snack-bar/_snack-bar-theme.scss +16 -7
@@ -0,0 +1,523 @@
1
+ @use 'sass:math';
2
+ @use '@angular/cdk';
3
+ @use '../core/tokens/m2/mdc/checkbox' as tokens-mdc-checkbox;
4
+ @use '../core/tokens/token-utils';
5
+
6
+ $_path-length: 29.7833385;
7
+ $_transition-duration: 90ms;
8
+ $_icon-size: 18px;
9
+ $_mark-stroke-size: math.div(2, 15) * $_icon-size;
10
+ $_indeterminate-checked-curve: cubic-bezier(0.14, 0, 0, 1);
11
+ $_indeterminate-change-duration: 500ms;
12
+ $_enter-curve: cubic-bezier(0, 0, 0.2, 1);
13
+ $_exit-curve: cubic-bezier(0.4, 0, 0.6, 1);
14
+ $_fallback-size: 40px;
15
+
16
+ // Structural styles for a checkbox. Shared with the selection list.
17
+ @mixin checkbox-structure($include-state-layer-styles) {
18
+ $prefix: tokens-mdc-checkbox.$prefix;
19
+ $slots: tokens-mdc-checkbox.get-token-slots();
20
+
21
+ .mdc-checkbox {
22
+ display: inline-block;
23
+ position: relative;
24
+ flex: 0 0 $_icon-size;
25
+ box-sizing: content-box;
26
+ width: $_icon-size;
27
+ height: $_icon-size;
28
+ line-height: 0;
29
+ white-space: nowrap;
30
+ cursor: pointer;
31
+ vertical-align: bottom;
32
+
33
+ @include token-utils.use-tokens($prefix, $slots) {
34
+ $layer-size: token-utils.get-token-variable(state-layer-size);
35
+ padding: calc((var(#{$layer-size}, #{$_fallback-size}) - #{$_icon-size}) / 2);
36
+ margin: calc((var(#{$layer-size}, #{$_fallback-size}) -
37
+ var(#{$layer-size}, #{$_fallback-size})) / 2);
38
+
39
+ @if ($include-state-layer-styles) {
40
+ @include _state-layer-styles;
41
+ }
42
+ }
43
+
44
+ // These styles have to be nested in order to override overly-broad
45
+ // user selectors like `input[type='checkbox']`.
46
+ .mdc-checkbox__native-control {
47
+ position: absolute;
48
+ margin: 0;
49
+ padding: 0;
50
+ opacity: 0;
51
+ cursor: inherit;
52
+
53
+ @include token-utils.use-tokens($prefix, $slots) {
54
+ $layer-size: token-utils.get-token-variable(state-layer-size);
55
+ $offset: calc((var(#{$layer-size}, #{$_fallback-size}) -
56
+ var(#{$layer-size}, #{$_fallback-size})) / 2);
57
+ width: var(#{$layer-size}, #{$_fallback-size});
58
+ height: var(#{$layer-size}, #{$_fallback-size});
59
+ top: $offset;
60
+ right: $offset;
61
+ left: $offset;
62
+ }
63
+ }
64
+ }
65
+
66
+ .mdc-checkbox--disabled {
67
+ cursor: default;
68
+ pointer-events: none;
69
+ }
70
+
71
+ .mdc-checkbox__background {
72
+ display: inline-flex;
73
+ position: absolute;
74
+ align-items: center;
75
+ justify-content: center;
76
+ box-sizing: border-box;
77
+ width: $_icon-size;
78
+ height: $_icon-size;
79
+ border: 2px solid currentColor;
80
+ border-radius: 2px;
81
+ background-color: transparent;
82
+ pointer-events: none;
83
+ will-change: background-color, border-color;
84
+ transition: background-color $_transition-duration $_exit-curve,
85
+ border-color $_transition-duration $_exit-curve;
86
+
87
+ @include token-utils.use-tokens($prefix, $slots) {
88
+ $layer-size: token-utils.get-token-variable(state-layer-size);
89
+ $offset: calc((var(#{$layer-size}, $_fallback-size) - #{$_icon-size}) / 2);
90
+
91
+ @include token-utils.create-token-slot(border-color, unselected-icon-color);
92
+ top: $offset;
93
+ left: $offset;
94
+ }
95
+ }
96
+
97
+ // These can't be under `.mdc-checkbox__background` because
98
+ // the selectors will break when the mixin is nested.
99
+ @include token-utils.use-tokens($prefix, $slots) {
100
+ .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
101
+ .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {
102
+ @include token-utils.create-token-slot(border-color, selected-icon-color);
103
+ @include token-utils.create-token-slot(background-color, selected-icon-color);
104
+ }
105
+
106
+ .mdc-checkbox--disabled .mdc-checkbox__background {
107
+ @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color);
108
+ }
109
+
110
+ .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,
111
+ .mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {
112
+ @include token-utils.create-token-slot(background-color, disabled-selected-icon-color);
113
+ border-color: transparent;
114
+ }
115
+
116
+ .mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background,
117
+ .mdc-checkbox:hover
118
+ .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background {
119
+ @include token-utils.create-token-slot(border-color, unselected-hover-icon-color);
120
+ background-color: transparent;
121
+ }
122
+
123
+ .mdc-checkbox:hover .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
124
+ .mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
125
+ @include token-utils.create-token-slot(border-color, selected-hover-icon-color);
126
+ @include token-utils.create-token-slot(background-color, selected-hover-icon-color);
127
+ }
128
+
129
+ // Note: this must be more specific than the hover styles above.
130
+ // Double :focus is added for increased specificity.
131
+ .mdc-checkbox__native-control:focus:focus:not(:checked) ~ .mdc-checkbox__background,
132
+ .mdc-checkbox__native-control:focus:focus:not(:indeterminate) ~ .mdc-checkbox__background {
133
+ @include token-utils.create-token-slot(border-color, unselected-focus-icon-color);
134
+ }
135
+
136
+ .mdc-checkbox__native-control:focus:focus:checked ~ .mdc-checkbox__background,
137
+ .mdc-checkbox__native-control:focus:focus:indeterminate ~ .mdc-checkbox__background {
138
+ @include token-utils.create-token-slot(border-color, selected-focus-icon-color);
139
+ @include token-utils.create-token-slot(background-color, selected-focus-icon-color);
140
+ }
141
+ }
142
+
143
+ .mdc-checkbox__checkmark {
144
+ position: absolute;
145
+ top: 0;
146
+ right: 0;
147
+ bottom: 0;
148
+ left: 0;
149
+ width: 100%;
150
+ opacity: 0;
151
+ transition: opacity $_transition-duration * 2 $_exit-curve;
152
+
153
+ @include token-utils.use-tokens($prefix, $slots) {
154
+ // Always apply the color since the element becomes `opacity: 0`
155
+ // when unchecked. This makes the animation look better.
156
+ @include token-utils.create-token-slot(color, selected-checkmark-color);
157
+ }
158
+ }
159
+
160
+ @include token-utils.use-tokens($prefix, $slots) {
161
+ .mdc-checkbox--disabled .mdc-checkbox__checkmark {
162
+ @include token-utils.create-token-slot(color, disabled-selected-checkmark-color);
163
+ }
164
+ }
165
+
166
+ .mdc-checkbox__checkmark-path {
167
+ transition: stroke-dashoffset $_transition-duration * 2 $_exit-curve;
168
+ stroke: currentColor;
169
+ stroke-width: $_mark-stroke-size * 1.3;
170
+ stroke-dashoffset: $_path-length;
171
+ stroke-dasharray: $_path-length;
172
+ }
173
+
174
+ .mdc-checkbox__mixedmark {
175
+ width: 100%;
176
+ height: 0;
177
+ transform: scaleX(0) rotate(0deg);
178
+ border-width: math.div(math.floor($_mark-stroke-size), 2);
179
+ border-style: solid;
180
+ opacity: 0;
181
+ transition: opacity $_transition-duration $_exit-curve,
182
+ transform $_transition-duration $_exit-curve;
183
+
184
+ @include cdk.high-contrast(active, off) {
185
+ margin: 0 1px;
186
+ }
187
+
188
+ @include token-utils.use-tokens($prefix, $slots) {
189
+ // Always apply the color since the element becomes `opacity: 0`
190
+ // when unchecked. This makes the animation look better.
191
+ @include token-utils.create-token-slot(border-color, selected-checkmark-color);
192
+ }
193
+ }
194
+
195
+ @include token-utils.use-tokens($prefix, $slots) {
196
+ .mdc-checkbox--disabled .mdc-checkbox__mixedmark {
197
+ @include token-utils.create-token-slot(border-color, disabled-selected-checkmark-color);
198
+ }
199
+ }
200
+
201
+ .mdc-checkbox--anim-unchecked-checked,
202
+ .mdc-checkbox--anim-unchecked-indeterminate,
203
+ .mdc-checkbox--anim-checked-unchecked,
204
+ .mdc-checkbox--anim-indeterminate-unchecked {
205
+ .mdc-checkbox__background {
206
+ animation-duration: $_transition-duration * 2;
207
+ animation-timing-function: linear;
208
+ }
209
+ }
210
+
211
+ .mdc-checkbox--anim-unchecked-checked {
212
+ .mdc-checkbox__checkmark-path {
213
+ animation: mdc-checkbox-unchecked-checked-checkmark-path
214
+ $_transition-duration * 2 linear;
215
+ transition: none;
216
+ }
217
+ }
218
+
219
+ .mdc-checkbox--anim-unchecked-indeterminate {
220
+ .mdc-checkbox__mixedmark {
221
+ animation: mdc-checkbox-unchecked-indeterminate-mixedmark $_transition-duration linear;
222
+ transition: none;
223
+ }
224
+ }
225
+
226
+ .mdc-checkbox--anim-checked-unchecked {
227
+ .mdc-checkbox__checkmark-path {
228
+ animation: mdc-checkbox-checked-unchecked-checkmark-path $_transition-duration linear;
229
+ transition: none;
230
+ }
231
+ }
232
+
233
+ .mdc-checkbox--anim-checked-indeterminate {
234
+ .mdc-checkbox__checkmark {
235
+ animation: mdc-checkbox-checked-indeterminate-checkmark $_transition-duration linear;
236
+ transition: none;
237
+ }
238
+
239
+ .mdc-checkbox__mixedmark {
240
+ animation: mdc-checkbox-checked-indeterminate-mixedmark $_transition-duration linear;
241
+ transition: none;
242
+ }
243
+ }
244
+
245
+ .mdc-checkbox--anim-indeterminate-checked {
246
+ .mdc-checkbox__checkmark {
247
+ animation: mdc-checkbox-indeterminate-checked-checkmark
248
+ $_indeterminate-change-duration linear;
249
+ transition: none;
250
+ }
251
+
252
+ .mdc-checkbox__mixedmark {
253
+ animation: mdc-checkbox-indeterminate-checked-mixedmark
254
+ $_indeterminate-change-duration linear;
255
+ transition: none;
256
+ }
257
+ }
258
+
259
+ .mdc-checkbox--anim-indeterminate-unchecked {
260
+ .mdc-checkbox__mixedmark {
261
+ animation: mdc-checkbox-indeterminate-unchecked-mixedmark
262
+ $_indeterminate-change-duration * 0.6 linear;
263
+ transition: none;
264
+ }
265
+ }
266
+
267
+ .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
268
+ .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
269
+ transition: border-color $_transition-duration $_enter-curve,
270
+ background-color $_transition-duration $_enter-curve;
271
+
272
+ .mdc-checkbox__checkmark-path {
273
+ stroke-dashoffset: 0;
274
+ }
275
+ }
276
+
277
+ .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background {
278
+ .mdc-checkbox__checkmark {
279
+ transition: opacity $_transition-duration * 2 $_enter-curve,
280
+ transform $_transition-duration * 2 $_enter-curve;
281
+ opacity: 1;
282
+ }
283
+
284
+ .mdc-checkbox__mixedmark {
285
+ transform: scaleX(1) rotate(-45deg);
286
+ }
287
+ }
288
+ .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
289
+ .mdc-checkbox__checkmark {
290
+ transform: rotate(45deg);
291
+ opacity: 0;
292
+ transition: opacity $_transition-duration $_exit-curve,
293
+ transform $_transition-duration $_exit-curve;
294
+ }
295
+
296
+ .mdc-checkbox__mixedmark {
297
+ transform: scaleX(1) rotate(0deg);
298
+ opacity: 1;
299
+ }
300
+ }
301
+
302
+ @keyframes mdc-checkbox-unchecked-checked-checkmark-path {
303
+ 0%, 50% {
304
+ stroke-dashoffset: $_path-length;
305
+ }
306
+
307
+ 50% {
308
+ animation-timing-function: $_enter-curve;
309
+ }
310
+
311
+ 100% {
312
+ stroke-dashoffset: 0;
313
+ }
314
+ }
315
+
316
+ @keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {
317
+ 0%, 68.2% {
318
+ transform: scaleX(0);
319
+ }
320
+
321
+ 68.2% {
322
+ animation-timing-function: cubic-bezier(0, 0, 0, 1);
323
+ }
324
+
325
+ 100% {
326
+ transform: scaleX(1);
327
+ }
328
+ }
329
+
330
+ @keyframes mdc-checkbox-checked-unchecked-checkmark-path {
331
+ from {
332
+ animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
333
+ opacity: 1;
334
+ stroke-dashoffset: 0;
335
+ }
336
+
337
+ to {
338
+ opacity: 0;
339
+ stroke-dashoffset: $_path-length * -1;
340
+ }
341
+ }
342
+
343
+ @keyframes mdc-checkbox-checked-indeterminate-checkmark {
344
+ from {
345
+ animation-timing-function: $_enter-curve;
346
+ transform: rotate(0deg);
347
+ opacity: 1;
348
+ }
349
+
350
+ to {
351
+ transform: rotate(45deg);
352
+ opacity: 0;
353
+ }
354
+ }
355
+
356
+ @keyframes mdc-checkbox-indeterminate-checked-checkmark {
357
+ from {
358
+ animation-timing-function: $_indeterminate-checked-curve;
359
+ transform: rotate(45deg);
360
+ opacity: 0;
361
+ }
362
+
363
+ to {
364
+ transform: rotate(360deg);
365
+ opacity: 1;
366
+ }
367
+ }
368
+
369
+ @keyframes mdc-checkbox-checked-indeterminate-mixedmark {
370
+ from {
371
+ animation-timing-function: $_enter-curve;
372
+ transform: rotate(-45deg);
373
+ opacity: 0;
374
+ }
375
+
376
+ to {
377
+ transform: rotate(0deg);
378
+ opacity: 1;
379
+ }
380
+ }
381
+
382
+ @keyframes mdc-checkbox-indeterminate-checked-mixedmark {
383
+ from {
384
+ animation-timing-function: $_indeterminate-checked-curve;
385
+ transform: rotate(0deg);
386
+ opacity: 1;
387
+ }
388
+
389
+ to {
390
+ transform: rotate(315deg);
391
+ opacity: 0;
392
+ }
393
+ }
394
+
395
+ @keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {
396
+ 0% {
397
+ animation-timing-function: linear;
398
+ transform: scaleX(1);
399
+ opacity: 1;
400
+ }
401
+
402
+ 32.8%, 100% {
403
+ transform: scaleX(0);
404
+ opacity: 0;
405
+ }
406
+ }
407
+ }
408
+
409
+ // Conditionally disables the animations of the checkbox.
410
+ @mixin checkbox-noop-animations() {
411
+ &._mat-animation-noopable .mdc-checkbox {
412
+ *, *::before {
413
+ transition: none !important;
414
+ animation: none !important;
415
+ }
416
+ }
417
+ }
418
+
419
+ @mixin _state-layer-styles() {
420
+ // MDC expects `.mdc-checkbox__ripple::before` to be the state layer, but we use
421
+ // `.mdc-checkbox__ripple` instead, so we emit the state layer slots ourselves.
422
+ &:hover {
423
+ .mdc-checkbox__ripple {
424
+ @include token-utils.create-token-slot(opacity, unselected-hover-state-layer-opacity);
425
+ @include token-utils.create-token-slot(
426
+ background-color,
427
+ unselected-hover-state-layer-color
428
+ );
429
+ }
430
+
431
+ .mat-mdc-checkbox-ripple .mat-ripple-element {
432
+ @include token-utils.create-token-slot(
433
+ background-color,
434
+ unselected-hover-state-layer-color
435
+ );
436
+ }
437
+ }
438
+
439
+ .mdc-checkbox__native-control:focus {
440
+ & ~ .mdc-checkbox__ripple {
441
+ @include token-utils.create-token-slot(opacity, unselected-focus-state-layer-opacity);
442
+ @include token-utils.create-token-slot(
443
+ background-color,
444
+ unselected-focus-state-layer-color
445
+ );
446
+ }
447
+
448
+ & ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
449
+ @include token-utils.create-token-slot(
450
+ background-color,
451
+ unselected-focus-state-layer-color
452
+ );
453
+ }
454
+ }
455
+
456
+ &:active .mdc-checkbox__native-control {
457
+ & ~ .mdc-checkbox__ripple {
458
+ @include token-utils.create-token-slot(opacity, unselected-pressed-state-layer-opacity);
459
+ @include token-utils.create-token-slot(
460
+ background-color,
461
+ unselected-pressed-state-layer-color
462
+ );
463
+ }
464
+
465
+ & ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
466
+ @include token-utils.create-token-slot(
467
+ background-color,
468
+ unselected-pressed-state-layer-color
469
+ );
470
+ }
471
+ }
472
+
473
+ &:hover .mdc-checkbox__native-control:checked {
474
+ & ~ .mdc-checkbox__ripple {
475
+ @include token-utils.create-token-slot(opacity, selected-hover-state-layer-opacity);
476
+ @include token-utils.create-token-slot(
477
+ background-color,
478
+ selected-hover-state-layer-color
479
+ );
480
+ }
481
+
482
+ & ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
483
+ @include token-utils.create-token-slot(
484
+ background-color,
485
+ selected-hover-state-layer-color
486
+ );
487
+ }
488
+ }
489
+
490
+ .mdc-checkbox__native-control:focus:checked {
491
+ & ~ .mdc-checkbox__ripple {
492
+ @include token-utils.create-token-slot(opacity, selected-focus-state-layer-opacity);
493
+ @include token-utils.create-token-slot(
494
+ background-color,
495
+ selected-focus-state-layer-color
496
+ );
497
+ }
498
+
499
+ & ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
500
+ @include token-utils.create-token-slot(
501
+ background-color,
502
+ selected-focus-state-layer-color
503
+ );
504
+ }
505
+ }
506
+
507
+ &:active .mdc-checkbox__native-control:checked {
508
+ & ~ .mdc-checkbox__ripple {
509
+ @include token-utils.create-token-slot(opacity, selected-pressed-state-layer-opacity);
510
+ @include token-utils.create-token-slot(
511
+ background-color,
512
+ selected-pressed-state-layer-color
513
+ );
514
+ }
515
+
516
+ & ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
517
+ @include token-utils.create-token-slot(
518
+ background-color,
519
+ selected-pressed-state-layer-color
520
+ );
521
+ }
522
+ }
523
+ }
@@ -1,4 +1,3 @@
1
- @use '@material/checkbox/checkbox-theme' as mdc-checkbox-theme;
2
1
  @use '../core/style/sass-utils';
3
2
  @use '../core/theming/theming';
4
3
  @use '../core/theming/inspection';
@@ -16,7 +15,10 @@
16
15
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
17
16
  } @else {
18
17
  @include sass-utils.current-selector-or-root() {
19
- @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-unthemable-tokens());
18
+ @include token-utils.create-token-values(
19
+ tokens-mdc-checkbox.$prefix,
20
+ tokens-mdc-checkbox.get-unthemable-tokens()
21
+ );
20
22
  @include token-utils.create-token-values(
21
23
  tokens-mat-checkbox.$prefix,
22
24
  tokens-mat-checkbox.get-unthemable-tokens()
@@ -35,7 +37,10 @@
35
37
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
36
38
  } @else {
37
39
  @include sass-utils.current-selector-or-root() {
38
- @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-color-tokens($theme));
40
+ @include token-utils.create-token-values(
41
+ tokens-mdc-checkbox.$prefix,
42
+ tokens-mdc-checkbox.get-color-tokens($theme)
43
+ );
39
44
  @include token-utils.create-token-values(
40
45
  tokens-mat-checkbox.$prefix,
41
46
  tokens-mat-checkbox.get-color-tokens($theme)
@@ -44,11 +49,15 @@
44
49
 
45
50
  .mat-mdc-checkbox {
46
51
  &.mat-primary {
47
- @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-color-tokens($theme, primary));
52
+ @include token-utils.create-token-values(
53
+ tokens-mdc-checkbox.$prefix,
54
+ tokens-mdc-checkbox.get-color-tokens($theme, primary));
48
55
  }
49
56
 
50
57
  &.mat-warn {
51
- @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-color-tokens($theme, warn));
58
+ @include token-utils.create-token-values(
59
+ tokens-mdc-checkbox.$prefix,
60
+ tokens-mdc-checkbox.get-color-tokens($theme, warn));
52
61
  }
53
62
  }
54
63
  }
@@ -61,7 +70,10 @@
61
70
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
62
71
  } @else {
63
72
  @include sass-utils.current-selector-or-root() {
64
- @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-typography-tokens($theme));
73
+ @include token-utils.create-token-values(
74
+ tokens-mdc-checkbox.$prefix,
75
+ tokens-mdc-checkbox.get-typography-tokens($theme)
76
+ );
65
77
  @include token-utils.create-token-values(
66
78
  tokens-mat-checkbox.$prefix,
67
79
  tokens-mat-checkbox.get-typography-tokens($theme)
@@ -79,7 +91,10 @@
79
91
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
80
92
  } @else {
81
93
  @include sass-utils.current-selector-or-root() {
82
- @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-density-tokens($theme));
94
+ @include token-utils.create-token-values(
95
+ tokens-mdc-checkbox.$prefix,
96
+ tokens-mdc-checkbox.get-density-tokens($theme)
97
+ );
83
98
  @include token-utils.create-token-values(
84
99
  tokens-mat-checkbox.$prefix,
85
100
  tokens-mat-checkbox.get-density-tokens($theme)
@@ -140,6 +155,6 @@
140
155
  // Don't pass $options here, since the mdc-checkbox doesn't support color options,
141
156
  // only the mdc-checkbox does.
142
157
  $mat-checkbox-tokens: token-utils.get-tokens-for($tokens, tokens-mat-checkbox.$prefix);
143
- @include mdc-checkbox-theme.theme($mdc-checkbox-tokens);
158
+ @include token-utils.create-token-values(tokens-mdc-checkbox.$prefix, $mdc-checkbox-tokens);
144
159
  @include token-utils.create-token-values(tokens-mat-checkbox.$prefix, $mat-checkbox-tokens);
145
160
  }
@@ -16,6 +16,22 @@
16
16
  @use './tokens/m2/mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox;
17
17
  @use './tokens/m2/mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox;
18
18
 
19
+ $_has-inserted-loaded-marker: false;
20
+
21
+ @mixin _theme-loaded-marker {
22
+ @if not $_has-inserted-loaded-marker {
23
+ $_has-inserted-loaded-marker: true !global;
24
+
25
+ // Marker that is used to determine whether the user has added a theme to their page.
26
+ // Needs to be generated at the root, because themes may be nested inside classes.
27
+ @at-root {
28
+ .mat-theme-loaded-marker {
29
+ display: none;
30
+ }
31
+ }
32
+ }
33
+ }
34
+
19
35
  @mixin base($theme) {
20
36
  @if inspection.get-theme-version($theme) == 1 {
21
37
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
@@ -26,6 +42,9 @@
26
42
  @include optgroup-theme.base($theme);
27
43
  @include pseudo-checkbox-theme.base($theme);
28
44
  }
45
+
46
+ // The marker is a concrete style no matter which Material version we're targeting.
47
+ @include _theme-loaded-marker;
29
48
  }
30
49
 
31
50
  @mixin color($theme) {
@@ -54,14 +73,6 @@
54
73
  }
55
74
  }
56
75
  }
57
-
58
- // TODO(crisbeto): move this into the base.
59
- // Marker that is used to determine whether the user has added a theme to their page.
60
- @at-root {
61
- .mat-theme-loaded-marker {
62
- display: none;
63
- }
64
- }
65
76
  }
66
77
 
67
78
  @mixin typography($theme) {
@@ -127,6 +138,9 @@
127
138
  }
128
139
  }
129
140
  }
141
+
142
+ // The marker is a concrete style no matter which Material version we're targeting.
143
+ @include _theme-loaded-marker;
130
144
  }
131
145
 
132
146
  @mixin _theme-from-tokens($tokens, $options...) {
@@ -47,5 +47,11 @@
47
47
  @include cdk.high-contrast(active, off) {
48
48
  display: none;
49
49
  }
50
+
51
+ // Hide ripples inside cloned drag&drop elements since they won't go away.
52
+ .cdk-drag-preview &,
53
+ .cdk-drag-placeholder & {
54
+ display: none;
55
+ }
50
56
  }
51
57
  }
@@ -43,4 +43,9 @@
43
43
  -webkit-clip-path: $value;
44
44
  clip-path: $value;
45
45
  }
46
+
47
+ @mixin smooth-font {
48
+ -moz-osx-font-smoothing: grayscale;
49
+ -webkit-font-smoothing: antialiased;
50
+ }
46
51
  // stylelint-enable
@@ -35,6 +35,9 @@ $prefix: (mdc, checkbox);
35
35
  // =============================================================================================
36
36
  // = TOKENS NOT USED IN ANGULAR MATERIAL =
37
37
  // =============================================================================================
38
+ selected-pressed-icon-color: null,
39
+ unselected-pressed-icon-color: null,
40
+
38
41
  // MDC currently doesn't output a slot for these tokens.
39
42
  disabled-selected-icon-opacity: null,
40
43
  disabled-unselected-icon-opacity: null,
@@ -79,16 +82,12 @@ $prefix: (mdc, checkbox);
79
82
  selected-hover-icon-color: $palette-selected,
80
83
  // The color of the checkbox fill when the checkbox is selected.
81
84
  selected-icon-color: $palette-selected,
82
- // The color of the checkbox fill when the checkbox is selected an pressed.
83
- selected-pressed-icon-color: $palette-selected,
84
85
  // The color of the checkbox border when the checkbox is unselected and focused.
85
86
  unselected-focus-icon-color: $active-border-color,
86
87
  // The color of the checkbox border when the checkbox is unselected and hovered.
87
88
  unselected-hover-icon-color: $active-border-color,
88
89
  // The color of the checkbox border when the checkbox is unselected.
89
90
  unselected-icon-color: $border-color,
90
- // The color of the checkbox border when the checkbox is unselected and pressed.
91
- unselected-pressed-icon-color: $border-color,
92
91
  // The color of the ripple when the checkbox is selected and focused.
93
92
  selected-focus-state-layer-color: $palette-default,
94
93
  // The color of the ripple when the checkbox is selected and hovered.