@angular/material 20.0.2 → 20.1.0-next.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 (110) hide show
  1. package/_index.scss +0 -1
  2. package/autocomplete/_m2-autocomplete.scss +1 -14
  3. package/badge/_badge-theme.scss +2 -2
  4. package/badge/_m2-badge.scss +13 -34
  5. package/bottom-sheet/_m2-bottom-sheet.scss +2 -15
  6. package/button/_button-theme.scss +2 -2
  7. package/button/_fab-theme.scss +2 -2
  8. package/button/_icon-button-theme.scss +2 -2
  9. package/button/_m2-button.scss +59 -108
  10. package/button/_m2-fab.scss +28 -60
  11. package/button/_m2-icon-button.scss +12 -26
  12. package/button-toggle/_button-toggle-theme.scss +2 -1
  13. package/button-toggle/_m2-button-toggle.scss +24 -49
  14. package/card/_m2-card.scss +9 -18
  15. package/checkbox/_checkbox-theme.scss +4 -3
  16. package/checkbox/_m2-checkbox.scss +31 -59
  17. package/chips/_chips-theme.scss +7 -4
  18. package/chips/_m2-chip.scss +19 -27
  19. package/chips/index.d.ts +56 -4
  20. package/chips/testing/index.d.ts +23 -2
  21. package/core/_m2-app.scss +6 -19
  22. package/core/m2/_theming.scss +55 -9
  23. package/core/option/_m2-optgroup.scss +1 -14
  24. package/core/option/_m2-option.scss +8 -16
  25. package/core/option/_option-theme.scss +3 -3
  26. package/core/ripple/_m2-ripple.scss +0 -13
  27. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +10 -20
  28. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +3 -3
  29. package/core/style/_private.scss +6 -9
  30. package/core/style/_sass-utils.scss +0 -29
  31. package/core/tokens/_m2-utils.scss +20 -42
  32. package/{date-range-input-harness.d-CaEyN8dT.d.ts → date-range-input-harness.d-CJ4r85Uf.d.ts} +7 -4
  33. package/datepicker/_datepicker-theme.scss +10 -6
  34. package/datepicker/_m2-datepicker.scss +32 -41
  35. package/datepicker/testing/index.d.ts +3 -3
  36. package/dialog/_m2-dialog.scss +3 -24
  37. package/divider/_m2-divider.scss +1 -14
  38. package/expansion/_m2-expansion.scss +15 -25
  39. package/fesm2022/chips/testing.mjs +26 -1
  40. package/fesm2022/chips/testing.mjs.map +1 -1
  41. package/fesm2022/chips.mjs +131 -13
  42. package/fesm2022/chips.mjs.map +1 -1
  43. package/fesm2022/core.mjs +1 -1
  44. package/fesm2022/core.mjs.map +1 -1
  45. package/fesm2022/{date-range-input-harness-Bp1T4oUe.mjs → date-range-input-harness-DEyfkeOs.mjs} +32 -4
  46. package/fesm2022/date-range-input-harness-DEyfkeOs.mjs.map +1 -0
  47. package/fesm2022/datepicker/testing.mjs +3 -3
  48. package/fesm2022/form-field/testing/control.mjs +26 -1
  49. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  50. package/fesm2022/form-field/testing.mjs +4 -4
  51. package/fesm2022/input/testing.mjs +7 -4
  52. package/fesm2022/input/testing.mjs.map +1 -1
  53. package/fesm2022/{input-harness-oQzj5EsQ.mjs → input-harness-C5Msdc4-.mjs} +6 -3
  54. package/fesm2022/input-harness-C5Msdc4-.mjs.map +1 -0
  55. package/fesm2022/menu.mjs +11 -2
  56. package/fesm2022/menu.mjs.map +1 -1
  57. package/fesm2022/paginator/testing.mjs +2 -3
  58. package/fesm2022/paginator/testing.mjs.map +1 -1
  59. package/fesm2022/select/testing.mjs +8 -5
  60. package/fesm2022/select/testing.mjs.map +1 -1
  61. package/fesm2022/stepper.mjs +2 -2
  62. package/fesm2022/stepper.mjs.map +1 -1
  63. package/form-field/_form-field-theme.scss +2 -2
  64. package/form-field/_m2-form-field.scss +58 -92
  65. package/form-field/testing/control/index.d.ts +8 -5
  66. package/form-field/testing/index.d.ts +5 -5
  67. package/form-field-control-harness.d-BLvFBy6v.d.ts +18 -0
  68. package/grid-list/_m2-grid-list.scss +0 -13
  69. package/icon/_m2-icon.scss +0 -13
  70. package/input/testing/index.d.ts +5 -4
  71. package/{input-harness.d-8fkAAbu2.d.ts → input-harness.d-DVI6ttzl.d.ts} +4 -4
  72. package/list/_list-theme.scss +10 -5
  73. package/list/_m2-list.scss +17 -31
  74. package/menu/_m2-menu.scss +4 -18
  75. package/menu/index.d.ts +2 -0
  76. package/package.json +6 -6
  77. package/paginator/_m2-paginator.scss +6 -18
  78. package/paginator/testing/index.d.ts +2 -3
  79. package/prebuilt-themes/deeppurple-amber.css +1 -1
  80. package/prebuilt-themes/indigo-pink.css +1 -1
  81. package/prebuilt-themes/pink-bluegrey.css +1 -1
  82. package/prebuilt-themes/purple-green.css +1 -1
  83. package/progress-bar/_m2-progress-bar.scss +11 -20
  84. package/progress-bar/_progress-bar-theme.scss +2 -2
  85. package/progress-spinner/_m2-progress-spinner.scss +7 -15
  86. package/progress-spinner/_progress-spinner-theme.scss +2 -2
  87. package/radio/_m2-radio.scss +21 -32
  88. package/radio/_radio-theme.scss +6 -3
  89. package/schematics/ng-add/index.js +2 -2
  90. package/select/_m2-select.scss +12 -35
  91. package/select/testing/index.d.ts +5 -6
  92. package/sidenav/_m2-sidenav.scss +10 -20
  93. package/slide-toggle/_m2-slide-toggle.scss +13 -20
  94. package/slide-toggle/_slide-toggle-theme.scss +3 -2
  95. package/slider/_m2-slider.scss +5 -18
  96. package/snack-bar/_m2-snack-bar.scss +6 -22
  97. package/sort/_m2-sort.scss +1 -34
  98. package/stepper/_m2-stepper.scss +23 -34
  99. package/stepper/_m3-stepper.scss +2 -2
  100. package/stepper/_stepper-theme.scss +2 -2
  101. package/table/_m2-table.scss +4 -17
  102. package/tabs/_m2-tabs.scss +16 -27
  103. package/tabs/_tabs-theme.scss +4 -4
  104. package/timepicker/_m2-timepicker.scss +1 -14
  105. package/toolbar/_m2-toolbar.scss +2 -15
  106. package/tooltip/_m2-tooltip.scss +4 -14
  107. package/tree/_m2-tree.scss +2 -17
  108. package/core/tokens/_m2-tokens.scss +0 -131
  109. package/fesm2022/date-range-input-harness-Bp1T4oUe.mjs.map +0 -1
  110. package/fesm2022/input-harness-oQzj5EsQ.mjs.map +0 -1
@@ -1,10 +1,8 @@
1
1
  @use 'sass:map';
2
- @use '../core/tokens/m2-utils';
3
2
  @use '../core/theming/theming';
4
3
  @use '../core/theming/inspection';
5
- @use '../core/style/sass-utils';
6
- @use '../core/m2/palette' as m2-palette;
7
- @use '../core/m2/theming' as m2-theming;
4
+ @use '../core/tokens/m2-utils';
5
+ @use '../core/tokens/m3-utils';
8
6
 
9
7
  // Tokens that can't be configured through Angular Material's current theming API,
10
8
  // but may be in a future version of the theming API.
@@ -20,26 +18,28 @@
20
18
  }
21
19
 
22
20
  // Tokens that can be configured through Angular Material's color theming API.
23
- @function get-color-tokens($theme, $palette-name: accent) {
21
+ @function get-color-tokens($theme, $color-variant) {
22
+ $system: m2-utils.get-system($theme);
24
23
  $is-dark: inspection.get-theme-type($theme) == dark;
25
- $palette-color: inspection.get-theme-color($theme, $palette-name, default);
26
- $icon-color: m2-theming.get-color-from-palette(m2-palette.$gray-palette, if($is-dark, 200, 900));
24
+ $system: m2-utils.get-system($theme);
25
+ $system: m3-utils.replace-colors-with-variant($system, secondary, $color-variant);
26
+ $disabled: m3-utils.color-with-opacity(map.get($system, on-surface), 38%);
27
27
 
28
28
  @return (
29
- radio-checked-ripple-color: inspection.get-theme-color($theme, $palette-name, default),
30
- radio-disabled-label-color: inspection.get-theme-color($theme, foreground, disabled-text),
31
- radio-disabled-selected-icon-color: inspection.get-theme-color($theme, foreground, icon, 1),
32
- radio-disabled-unselected-icon-color: inspection.get-theme-color($theme, foreground, icon, 1),
33
- radio-label-text-color: inspection.get-theme-color($theme, foreground, text),
34
- radio-ripple-color: inspection.get-theme-color($theme, foreground, base),
35
- radio-selected-focus-icon-color: $palette-color,
36
- radio-selected-hover-icon-color: $palette-color,
37
- radio-selected-icon-color: $palette-color,
38
- radio-selected-pressed-icon-color: $palette-color,
39
- radio-unselected-focus-icon-color: $icon-color,
40
- radio-unselected-hover-icon-color: $icon-color,
41
- radio-unselected-icon-color: inspection.get-theme-color($theme, foreground, icon, 0.54),
42
- radio-unselected-pressed-icon-color: inspection.get-theme-color($theme, foreground, icon, 0.54),
29
+ radio-checked-ripple-color: map.get($system, secondary),
30
+ radio-disabled-label-color: $disabled,
31
+ radio-disabled-selected-icon-color: map.get($system, on-surface),
32
+ radio-disabled-unselected-icon-color: map.get($system, on-surface),
33
+ radio-label-text-color: map.get($system, on-surface),
34
+ radio-ripple-color: map.get($system, on-surface),
35
+ radio-selected-focus-icon-color: map.get($system, secondary),
36
+ radio-selected-hover-icon-color: map.get($system, secondary),
37
+ radio-selected-icon-color: map.get($system, secondary),
38
+ radio-selected-pressed-icon-color: map.get($system, secondary),
39
+ radio-unselected-focus-icon-color: map.get($system, on-surface),
40
+ radio-unselected-hover-icon-color: map.get($system, on-surface),
41
+ radio-unselected-icon-color: map.get($system, on-surface-variant),
42
+ radio-unselected-pressed-icon-color: map.get($system, on-surface),
43
43
  );
44
44
  }
45
45
 
@@ -69,14 +69,3 @@
69
69
  radio-touch-target-display: if($scale < -1, none, block)
70
70
  );
71
71
  }
72
-
73
- // Combines the tokens generated by the above functions into a single map with placeholder values.
74
- // This is used to create token slots.
75
- @function get-token-slots() {
76
- @return sass-utils.deep-merge-all(
77
- get-unthemable-tokens(),
78
- get-color-tokens(m2-utils.$placeholder-color-config),
79
- get-typography-tokens(m2-utils.$placeholder-typography-config),
80
- get-density-tokens(m2-utils.$placeholder-density-config)
81
- );
82
- }
@@ -30,15 +30,18 @@
30
30
  } @else {
31
31
  .mat-mdc-radio-button {
32
32
  &.mat-primary {
33
- @include token-utils.create-token-values-mixed(m2-radio.get-color-tokens($theme, primary));
33
+ @include token-utils.create-token-values-mixed(
34
+ m2-radio.get-color-tokens($theme, primary));
34
35
  }
35
36
 
36
37
  &.mat-accent {
37
- @include token-utils.create-token-values-mixed(m2-radio.get-color-tokens($theme));
38
+ @include token-utils.create-token-values-mixed(
39
+ m2-radio.get-color-tokens($theme, secondary));
38
40
  }
39
41
 
40
42
  &.mat-warn {
41
- @include token-utils.create-token-values-mixed(m2-radio.get-color-tokens($theme, warn));
43
+ @include token-utils.create-token-values-mixed(
44
+ m2-radio.get-color-tokens($theme, error));
42
45
  }
43
46
  }
44
47
  }
@@ -19,7 +19,7 @@ const package_config_1 = require("./package-config");
19
19
  * Note that the fallback version range does not use caret, but tilde because that is
20
20
  * the default for Angular framework dependencies in CLI projects.
21
21
  */
22
- const fallbackMaterialVersionRange = `~20.0.2`;
22
+ const fallbackMaterialVersionRange = `~20.1.0-next.0`;
23
23
  /**
24
24
  * Schematic factory entry-point for the `ng-add` schematic. The ng-add schematic will be
25
25
  * automatically executed if developers run `ng add @angular/material`.
@@ -34,7 +34,7 @@ function default_1(options) {
34
34
  // have the same version tag if possible.
35
35
  const ngCoreVersionTag = (0, package_config_1.getPackageVersionFromPackageJson)(host, '@angular/core');
36
36
  const materialVersionRange = (0, package_config_1.getPackageVersionFromPackageJson)(host, '@angular/material');
37
- const angularDependencyVersion = ngCoreVersionTag || `^20.0.0 || ^21.0.0`;
37
+ const angularDependencyVersion = ngCoreVersionTag || `^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0`;
38
38
  // The CLI inserts `@angular/material` into the `package.json` before this schematic runs.
39
39
  // This means that we do not need to insert Angular Material into `package.json` files again.
40
40
  // In some cases though, it could happen that this schematic runs outside of the CLI `ng add`
@@ -1,9 +1,9 @@
1
1
  @use 'sass:map';
2
- @use '../core/tokens/m2-utils';
3
2
  @use '../core/theming/inspection';
4
3
  @use '../core/theming/theming';
5
4
  @use '../core/style/elevation';
6
- @use '../core/style/sass-utils';
5
+ @use '../core/tokens/m2-utils';
6
+ @use '../core/tokens/m3-utils';
7
7
 
8
8
  // Tokens that can't be configured through Angular Material's current theming API,
9
9
  // but may be in a future version of the theming API.
@@ -15,30 +15,18 @@
15
15
 
16
16
  // Tokens that can be configured through Angular Material's color theming API.
17
17
  @function get-color-tokens($theme, $palette-name: primary) {
18
- $is-dark: inspection.get-theme-type($theme) == dark;
19
-
20
- // Ideally we would derive all values directly from the theme, but it causes a lot of regressions
21
- // internally. For now we fall back to the old hardcoded behavior only for internal apps.
22
- $on-surface: if($is-dark, #fff, #000);
23
- $text-color-base: if(m2-utils.$private-is-internal-build, $on-surface,
24
- inspection.get-theme-color($theme, foreground, text, 1));
25
- $disabled-text-color-base: if(m2-utils.$private-is-internal-build, $on-surface,
26
- inspection.get-theme-color($theme, foreground, disabled-text, 1));
27
- $icon-color-base: if(m2-utils.$private-is-internal-build, $on-surface,
28
- inspection.get-theme-color($theme, foreground, divider, 1));
18
+ $system: m2-utils.get-system($theme);
19
+ $disabled: m3-utils.color-with-opacity(map.get($system, on-surface), 38%);
29
20
 
30
21
  @return (
31
- select-panel-background-color: inspection.get-theme-color($theme, background, card),
32
- select-enabled-trigger-text-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.87),
33
- select-disabled-trigger-text-color:
34
- sass-utils.safe-color-change($disabled-text-color-base, $alpha: 0.38),
35
- select-placeholder-text-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.6),
36
- select-enabled-arrow-color: sass-utils.safe-color-change($icon-color-base, $alpha: 0.54),
37
- select-disabled-arrow-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.38),
38
- select-focused-arrow-color: sass-utils.safe-color-change(
39
- inspection.get-theme-color($theme, $palette-name, default), $alpha: 0.87),
40
- select-invalid-arrow-color: sass-utils.safe-color-change(
41
- inspection.get-theme-color($theme, warn, default), $alpha: 0.87),
22
+ select-panel-background-color: map.get($system, surface),
23
+ select-enabled-trigger-text-color: map.get($system, on-surface),
24
+ select-disabled-trigger-text-color: $disabled,
25
+ select-placeholder-text-color: map.get($system, on-surface-variant),
26
+ select-enabled-arrow-color: map.get($system, on-surface-variant),
27
+ select-disabled-arrow-color: $disabled,
28
+ select-focused-arrow-color: inspection.get-theme-color($theme, $palette-name, default, 0.87),
29
+ select-invalid-arrow-color: inspection.get-theme-color($theme, warn, default, 0.87),
42
30
  );
43
31
  }
44
32
 
@@ -65,14 +53,3 @@
65
53
  ), $density-scale),
66
54
  );
67
55
  }
68
-
69
- // Combines the tokens generated by the above functions into a single map with placeholder values.
70
- // This is used to create token slots.
71
- @function get-token-slots() {
72
- @return sass-utils.deep-merge-all(
73
- get-unthemable-tokens(),
74
- get-color-tokens(m2-utils.$placeholder-color-config),
75
- get-typography-tokens(m2-utils.$placeholder-typography-config),
76
- get-density-tokens(m2-utils.$placeholder-density-config)
77
- );
78
- }
@@ -1,16 +1,15 @@
1
- import { BaseHarnessFilters, ComponentHarnessConstructor, HarnessPredicate } from '@angular/cdk/testing';
2
- import { O as OptionHarnessFilters, M as MatOptionHarness } from '../../option-harness.d-IqsW95GR.js';
3
- import { OptgroupHarnessFilters, MatOptgroupHarness } from '../../core/testing/index.js';
4
- import { MatFormFieldControlHarness } from '../../form-field/testing/control/index.js';
1
+ import { ComponentHarnessConstructor, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { OptionHarnessFilters, MatOptionHarness, OptgroupHarnessFilters, MatOptgroupHarness } from '@angular/material/core/testing';
3
+ import { MatFormFieldControlHarnessFilters, MatFormFieldControlHarnessBase } from '@angular/material/form-field/testing/control';
5
4
 
6
5
  /** A set of criteria that can be used to filter a list of `MatSelectHarness` instances. */
7
- interface SelectHarnessFilters extends BaseHarnessFilters {
6
+ interface SelectHarnessFilters extends MatFormFieldControlHarnessFilters {
8
7
  /** Only find instances which match the given disabled state. */
9
8
  disabled?: boolean;
10
9
  }
11
10
 
12
11
  /** Harness for interacting with a mat-select in tests. */
13
- declare class MatSelectHarness extends MatFormFieldControlHarness {
12
+ declare class MatSelectHarness extends MatFormFieldControlHarnessBase {
14
13
  static hostSelector: string;
15
14
  private _prefix;
16
15
  private _optionClass;
@@ -1,9 +1,10 @@
1
1
  @use 'sass:color';
2
+ @use 'sass:map';
2
3
  @use 'sass:meta';
3
- @use '../core/tokens/m2-utils';
4
4
  @use '../core/theming/inspection';
5
5
  @use '../core/style/elevation';
6
- @use '../core/style/sass-utils';
6
+ @use '../core/tokens/m2-utils';
7
+ @use '../core/tokens/m3-utils';
7
8
 
8
9
  // Tokens that can't be configured through Angular Material's current theming API,
9
10
  // but may be in a future version of the theming API.
@@ -19,18 +20,18 @@
19
20
 
20
21
  // Tokens that can be configured through Angular Material's color theming API.
21
22
  @function get-color-tokens($theme) {
23
+ $system: m2-utils.get-system($theme);
22
24
  $is-dark: inspection.get-theme-type($theme) == dark;
23
25
  $scrim-opacity: 0.6;
24
- $scrim-color: sass-utils.safe-color-change(
25
- inspection.get-theme-color($theme, background, card), $alpha: $scrim-opacity);
26
+ $scrim-color: m3-utils.color-with-opacity(map.get($system, surface), 60%);
26
27
  $fallback-scrim-color: if($is-dark, rgba(#fff, $scrim-opacity), rgba(#000, $scrim-opacity));
27
28
 
28
29
  @return (
29
- sidenav-container-divider-color: inspection.get-theme-color($theme, foreground, divider),
30
- sidenav-container-background-color: inspection.get-theme-color($theme, background, dialog),
31
- sidenav-container-text-color: inspection.get-theme-color($theme, foreground, text),
32
- sidenav-content-background-color: inspection.get-theme-color($theme, background, background),
33
- sidenav-content-text-color: inspection.get-theme-color($theme, foreground, text),
30
+ sidenav-container-divider-color: map.get($system, outline),
31
+ sidenav-container-background-color: map.get($system, surface),
32
+ sidenav-container-text-color: map.get($system, on-surface),
33
+ sidenav-content-background-color: map.get($system, background),
34
+ sidenav-content-text-color: map.get($system, on-surface),
34
35
 
35
36
  // We use invert() here to have the darken the background color expected to be used.
36
37
  // If the background is light, we use a dark backdrop. If the background is dark, we
@@ -50,14 +51,3 @@
50
51
  @function get-density-tokens($theme) {
51
52
  @return ();
52
53
  }
53
-
54
- // Combines the tokens generated by the above functions into a single map with placeholder values.
55
- // This is used to create token slots.
56
- @function get-token-slots() {
57
- @return sass-utils.deep-merge-all(
58
- get-unthemable-tokens(),
59
- get-color-tokens(m2-utils.$placeholder-color-config),
60
- get-typography-tokens(m2-utils.$placeholder-typography-config),
61
- get-density-tokens(m2-utils.$placeholder-density-config)
62
- );
63
- }
@@ -1,13 +1,14 @@
1
1
  @use '../core/style/elevation';
2
- @use '../core/style/sass-utils';
3
2
  @use '../core/theming/inspection';
4
3
  @use '../core/theming/theming';
5
- @use '../core/tokens/m2-utils';
6
4
  @use 'sass:map';
5
+ @use '../core/tokens/m2-utils';
7
6
 
8
7
  // Tokens that can't be configured through Angular Material's current theming API,
9
8
  // but may be in a future version of the theming API.
10
- @function get-unthemable-tokens() {
9
+ @function get-unthemable-tokens($theme) {
10
+ $system: m2-utils.get-system($theme);
11
+
11
12
  // visible-track-opacity and hidden-track-opacity:
12
13
  // The hidden and visible track represent whichever track is visible or
13
14
  // hidden in the ui. This could be the .mdc-switch__track :before or
@@ -30,13 +31,14 @@
30
31
  slide-toggle-hidden-track-opacity: 1,
31
32
  slide-toggle-hidden-track-transition: transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1),
32
33
  slide-toggle-pressed-handle-size: 20px,
33
- slide-toggle-selected-focus-state-layer-opacity: 0.12,
34
+ slide-toggle-selected-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
34
35
  slide-toggle-selected-handle-horizontal-margin: 0,
35
36
  slide-toggle-selected-handle-size: 20px,
36
- slide-toggle-selected-hover-state-layer-opacity: 0.04,
37
+ slide-toggle-selected-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
37
38
  slide-toggle-selected-icon-size: 18px,
38
39
  slide-toggle-selected-pressed-handle-horizontal-margin: 0,
39
- slide-toggle-selected-pressed-state-layer-opacity: 0.1,
40
+ slide-toggle-selected-pressed-state-layer-opacity:
41
+ map.get($system, pressed-state-layer-opacity),
40
42
  slide-toggle-selected-track-outline-color: transparent,
41
43
  slide-toggle-selected-track-outline-width: 1px,
42
44
  slide-toggle-selected-with-icon-handle-horizontal-margin: 0,
@@ -45,10 +47,10 @@
45
47
  slide-toggle-track-outline-width: 1px,
46
48
  slide-toggle-track-shape: 7px,
47
49
  slide-toggle-track-width: 36px,
48
- slide-toggle-unselected-focus-state-layer-opacity: 0.12,
50
+ slide-toggle-unselected-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
49
51
  slide-toggle-unselected-handle-horizontal-margin: 0,
50
52
  slide-toggle-unselected-handle-size: 20px,
51
- slide-toggle-unselected-hover-state-layer-opacity: 0.04,
53
+ slide-toggle-unselected-hover-state-layer-opacity: map.get($system, focus-state-layer-opacity),
52
54
  slide-toggle-unselected-icon-size: 18px,
53
55
  slide-toggle-unselected-pressed-handle-horizontal-margin: 0,
54
56
  slide-toggle-unselected-pressed-state-layer-opacity: 0.1,
@@ -61,6 +63,8 @@
61
63
 
62
64
  // Tokens that can be configured through Angular Material's color theming API.
63
65
  @function get-color-tokens($theme) {
66
+ $system: m2-utils.get-system($theme);
67
+
64
68
  $is-dark: inspection.get-theme-type($theme) == dark;
65
69
  $on-surface: if($is-dark, #f5f5f5, #424242);
66
70
  $hairline: if($is-dark, #616161, #e0e0e0);
@@ -86,7 +90,7 @@
86
90
  slide-toggle-disabled-unselected-track-color: $on-surface,
87
91
  slide-toggle-handle-elevation-shadow: elevation.get-box-shadow(1),
88
92
  slide-toggle-handle-surface-color: #fff,
89
- slide-toggle-label-text-color: inspection.get-theme-color($theme, foreground, text),
93
+ slide-toggle-label-text-color: map.get($system, on-surface),
90
94
  slide-toggle-selected-icon-color: $icon-color,
91
95
  slide-toggle-unselected-hover-handle-color: $on-surface-state-content,
92
96
  slide-toggle-unselected-focus-handle-color: $on-surface-state-content,
@@ -153,14 +157,3 @@
153
157
  ), $scale)
154
158
  );
155
159
  }
156
-
157
- // Combines the tokens generated by the above functions into a single map with placeholder values.
158
- // This is used to create token slots.
159
- @function get-token-slots() {
160
- @return sass-utils.deep-merge-all(
161
- get-unthemable-tokens(),
162
- get-color-tokens(m2-utils.$placeholder-color-config),
163
- get-typography-tokens(m2-utils.$placeholder-typography-config),
164
- get-density-tokens(m2-utils.$placeholder-density-config)
165
- );
166
- }
@@ -16,10 +16,11 @@
16
16
  } @else {
17
17
  @include sass-utils.current-selector-or-root() {
18
18
  // TODO: See if this can be removed
19
- @include token-utils.create-token-values-mixed(m2-slide-toggle.get-unthemable-tokens());
19
+ @include token-utils.create-token-values-mixed(m2-slide-toggle.get-unthemable-tokens($theme));
20
20
 
21
21
  .mat-mdc-slide-toggle {
22
- @include token-utils.create-token-values-mixed(m2-slide-toggle.get-unthemable-tokens());
22
+ @include token-utils.create-token-values-mixed(
23
+ m2-slide-toggle.get-unthemable-tokens($theme));
23
24
  }
24
25
  }
25
26
  }
@@ -1,6 +1,4 @@
1
1
  @use 'sass:map';
2
- @use '../core/tokens/m2-utils';
3
- @use '../core/style/sass-utils';
4
2
  @use '../core/theming/inspection';
5
3
  @use '../core/style/elevation';
6
4
 
@@ -35,20 +33,20 @@
35
33
  @function get-color-tokens($theme) {
36
34
  $theme-color-tokens: private-get-color-palette-color-tokens($theme, primary);
37
35
  $is-dark: inspection.get-theme-type($theme) == dark;
38
- $elevation: inspection.get-theme-color($theme, foreground, elevation);
39
36
  $on-surface: if($is-dark, #fff, #000);
40
37
 
41
38
  @return map.merge(
42
39
  $theme-color-tokens,
43
40
  (
44
- slider-disabled-active-track-color: $on-surface,
45
- slider-disabled-handle-color: $on-surface,
46
- slider-disabled-inactive-track-color: $on-surface,
41
+ slider-disabled-active-track-color: inspection.get-theme-color($theme, system, on-surface),
42
+ slider-disabled-handle-color: inspection.get-theme-color($theme, system, on-surface),
43
+ slider-disabled-inactive-track-color: inspection.get-theme-color($theme, system, on-surface),
47
44
  slider-label-container-color: $on-surface,
48
45
  slider-label-label-text-color: if($is-dark, #000, #fff),
49
46
  slider-value-indicator-opacity: if($is-dark, 0.9, 0.6),
50
47
  slider-with-overlap-handle-outline-color: #fff,
51
- slider-with-tick-marks-disabled-container-color: $on-surface,
48
+ slider-with-tick-marks-disabled-container-color:
49
+ inspection.get-theme-color($theme, system, on-surface),
52
50
  ),
53
51
  );
54
52
  }
@@ -92,14 +90,3 @@
92
90
  @function get-density-tokens($theme) {
93
91
  @return ();
94
92
  }
95
-
96
- // Combines the tokens generated by the above functions into a single map with placeholder values.
97
- // This is used to create token slots.
98
- @function get-token-slots() {
99
- @return sass-utils.deep-merge-all(
100
- get-unthemable-tokens(),
101
- get-color-tokens(m2-utils.$placeholder-color-config),
102
- get-typography-tokens(m2-utils.$placeholder-typography-config),
103
- get-density-tokens(m2-utils.$placeholder-density-config)
104
- );
105
- }
@@ -1,8 +1,6 @@
1
- @use '../core/tokens/m2-utils';
2
1
  @use '../core/theming/inspection';
3
- @use '../core/style/sass-utils';
4
- @use 'sass:meta';
5
- @use 'sass:color';
2
+ @use '../core/tokens/m2-utils';
3
+ @use 'sass:map';
6
4
 
7
5
  // Tokens that can't be configured through Angular Material's current theming API,
8
6
  // but may be in a future version of the theming API.
@@ -15,15 +13,12 @@
15
13
  // Tokens that can be configured through Angular Material's color theming API.
16
14
  @function get-color-tokens($theme) {
17
15
  $is-dark: inspection.get-theme-type($theme) == dark;
18
- $surface: inspection.get-theme-color($theme, background, card);
16
+ $system: m2-utils.get-system($theme);
17
+ $surface: inspection.get-theme-color($theme, system, surface);
19
18
 
20
19
  @return (
21
- snack-bar-container-color: if(
22
- meta.type-of($surface) == color,
23
- color.mix(if($is-dark, #fff, #000), $surface, 80%),
24
- $surface),
25
- snack-bar-supporting-text-color:
26
- if(meta.type-of($surface) == color, rgba($surface, 0.87), $surface),
20
+ snack-bar-container-color: map.get($system, inverse-surface),
21
+ snack-bar-supporting-text-color: map.get($system, inverse-on-surface),
27
22
  snack-bar-button-color:
28
23
  if(
29
24
  $is-dark,
@@ -48,14 +43,3 @@
48
43
  @function get-density-tokens($theme) {
49
44
  @return ();
50
45
  }
51
-
52
- // Combines the tokens generated by the above functions into a single map with placeholder values.
53
- // This is used to create token slots.
54
- @function get-token-slots() {
55
- @return sass-utils.deep-merge-all(
56
- get-unthemable-tokens(),
57
- get-color-tokens(m2-utils.$placeholder-color-config),
58
- get-typography-tokens(m2-utils.$placeholder-typography-config),
59
- get-density-tokens(m2-utils.$placeholder-density-config)
60
- );
61
- }
@@ -1,8 +1,4 @@
1
- @use 'sass:color';
2
- @use 'sass:meta';
3
- @use '../core/tokens/m2-utils';
4
1
  @use '../core/theming/inspection';
5
- @use '../core/style/sass-utils';
6
2
 
7
3
  // Tokens that can't be configured through Angular Material's current theming API,
8
4
  // but may be in a future version of the theming API.
@@ -12,26 +8,8 @@
12
8
 
13
9
  // Tokens that can be configured through Angular Material's color theming API.
14
10
  @function get-color-tokens($theme) {
15
- $table-background: inspection.get-theme-color($theme, background, card);
16
- $text-color: inspection.get-theme-color($theme, foreground, secondary-text);
17
- $arrow-color: null;
18
-
19
- // Because the arrow is made up of multiple elements that are stacked on top of each other,
20
- // we can't use the semi-transparent color from the theme directly. If the value is a color
21
- // *type*, we convert it into a solid color by taking the opacity from the rgba value and
22
- // using the value to determine the percentage of the background to put into foreground
23
- // when mixing the colors together. Otherwise, if it resolves to something different
24
- // (e.g. it resolves to a CSS variable), we use the color directly.
25
- @if (meta.type-of($table-background) == color and meta.type-of($text-color) == color) {
26
- $text-opacity: color.opacity($text-color);
27
- $arrow-color: color.mix($table-background, rgba($text-color, 1), (1 - $text-opacity) * 100%);
28
- }
29
- @else {
30
- $arrow-color: $text-color;
31
- }
32
-
33
11
  @return (
34
- sort-arrow-color: $arrow-color,
12
+ sort-arrow-color: inspection.get-theme-color($theme, system, on-surface),
35
13
  );
36
14
  }
37
15
 
@@ -44,14 +22,3 @@
44
22
  @function get-density-tokens($theme) {
45
23
  @return ();
46
24
  }
47
-
48
- // Combines the tokens generated by the above functions into a single map with placeholder values.
49
- // This is used to create token slots.
50
- @function get-token-slots() {
51
- @return sass-utils.deep-merge-all(
52
- get-unthemable-tokens(),
53
- get-color-tokens(m2-utils.$placeholder-color-config),
54
- get-typography-tokens(m2-utils.$placeholder-typography-config),
55
- get-density-tokens(m2-utils.$placeholder-density-config)
56
- );
57
- }
@@ -1,8 +1,8 @@
1
1
  @use 'sass:map';
2
- @use '../core/tokens/m2-utils';
3
2
  @use '../core/theming/theming';
4
3
  @use '../core/theming/inspection';
5
- @use '../core/style/sass-utils';
4
+ @use '../core/tokens/m2-utils';
5
+ @use '../core/tokens/m3-utils';
6
6
 
7
7
  // Tokens that can't be configured through Angular Material's current theming API,
8
8
  // but may be in a future version of the theming API.
@@ -15,19 +15,19 @@
15
15
 
16
16
  // Tokens that can be configured through Angular Material's color theming API.
17
17
  @function get-color-tokens($theme) {
18
+ $system: m2-utils.get-system($theme);
18
19
  @return map.merge(private-get-color-palette-color-tokens($theme, primary), (
19
- stepper-container-color: inspection.get-theme-color($theme, background, card),
20
- stepper-line-color: inspection.get-theme-color($theme, foreground, divider),
21
- stepper-header-hover-state-layer-color: inspection.get-theme-color($theme, background, hover),
22
- stepper-header-focus-state-layer-color: inspection.get-theme-color($theme, background, hover),
23
- stepper-header-label-text-color: inspection.get-theme-color($theme, foreground, secondary-text),
24
- stepper-header-optional-label-text-color: inspection.get-theme-color(
25
- $theme, foreground, secondary-text),
26
- stepper-header-selected-state-label-text-color:
27
- inspection.get-theme-color($theme, foreground, text),
20
+ stepper-container-color: map.get($system, surface),
21
+ stepper-line-color: map.get($system, outline),
22
+ stepper-header-hover-state-layer-color: m3-utils.color-with-opacity(
23
+ map.get($system, on-surface), map.get($system, hover-state-layer-opacity)),
24
+ stepper-header-focus-state-layer-color: m3-utils.color-with-opacity(
25
+ map.get($system, on-surface), map.get($system, focus-state-layer-opacity)),
26
+ stepper-header-label-text-color: map.get($system, on-surface-variant),
27
+ stepper-header-optional-label-text-color: map.get($system, on-surface-variant),
28
+ stepper-header-selected-state-label-text-color: map.get($system, on-surface),
28
29
  stepper-header-error-state-label-text-color: inspection.get-theme-color($theme, warn, text),
29
- stepper-header-icon-background-color:
30
- inspection.get-theme-color($theme, foreground, secondary-text),
30
+ stepper-header-icon-background-color: map.get($system, on-surface-variant),
31
31
  stepper-header-error-state-icon-foreground-color:
32
32
  inspection.get-theme-color($theme, warn, text),
33
33
  stepper-header-error-state-icon-background-color: transparent,
@@ -67,28 +67,17 @@
67
67
  }
68
68
 
69
69
  // Generates the tokens used to theme the stepper based on a palette.
70
- @function private-get-color-palette-color-tokens($theme, $palette-name) {
71
- $active-state-foreground: inspection.get-theme-color($theme, $palette-name, default-contrast);
72
- $active-state-background: inspection.get-theme-color($theme, $palette-name);
70
+ @function private-get-color-palette-color-tokens($theme, $color-variant) {
71
+ $system: m2-utils.get-system($theme);
72
+ $system: m3-utils.replace-colors-with-variant($system, primary, $color-variant);
73
73
 
74
74
  @return (
75
- stepper-header-icon-foreground-color: $active-state-foreground,
76
- stepper-header-selected-state-icon-background-color: $active-state-background,
77
- stepper-header-selected-state-icon-foreground-color: $active-state-foreground,
78
- stepper-header-done-state-icon-background-color: $active-state-background,
79
- stepper-header-done-state-icon-foreground-color: $active-state-foreground,
80
- stepper-header-edit-state-icon-background-color: $active-state-background,
81
- stepper-header-edit-state-icon-foreground-color: $active-state-foreground,
82
- );
83
- }
84
-
85
- // Combines the tokens generated by the above functions into a single map with placeholder values.
86
- // This is used to create token slots.
87
- @function get-token-slots() {
88
- @return sass-utils.deep-merge-all(
89
- get-unthemable-tokens(),
90
- get-color-tokens(m2-utils.$placeholder-color-config),
91
- get-typography-tokens(m2-utils.$placeholder-typography-config),
92
- get-density-tokens(m2-utils.$placeholder-density-config)
75
+ stepper-header-icon-foreground-color: map.get($system, on-primary),
76
+ stepper-header-selected-state-icon-background-color: map.get($system, primary),
77
+ stepper-header-selected-state-icon-foreground-color: map.get($system, on-primary),
78
+ stepper-header-done-state-icon-background-color: map.get($system, primary),
79
+ stepper-header-done-state-icon-foreground-color: map.get($system, on-primary),
80
+ stepper-header-edit-state-icon-background-color: map.get($system, primary),
81
+ stepper-header-edit-state-icon-foreground-color: map.get($system, on-primary),
93
82
  );
94
83
  }
@@ -31,9 +31,9 @@ $prefix: (mat, stepper);
31
31
  stepper-header-error-state-icon-foreground-color: map.get($system, error),
32
32
  stepper-header-error-state-label-text-color: map.get($system, error),
33
33
  stepper-header-focus-state-layer-color: m3-utils.color-with-opacity(
34
- map.get($system, inverse-surface), map.get($system, focus-state-layer-opacity)),
34
+ map.get($system, on-surface), map.get($system, focus-state-layer-opacity)),
35
35
  stepper-header-hover-state-layer-color: m3-utils.color-with-opacity(
36
- map.get($system, inverse-surface), map.get($system, hover-state-layer-opacity)),
36
+ map.get($system, on-surface), map.get($system, hover-state-layer-opacity)),
37
37
  stepper-header-icon-background-color: map.get($system, on-surface-variant),
38
38
  stepper-header-icon-foreground-color: map.get($system, surface),
39
39
  stepper-header-label-text-color: map.get($system, on-surface-variant),
@@ -30,12 +30,12 @@
30
30
 
31
31
  .mat-step-header.mat-accent {
32
32
  @include token-utils.create-token-values-mixed(
33
- m2-stepper.private-get-color-palette-color-tokens($theme, accent));
33
+ m2-stepper.private-get-color-palette-color-tokens($theme, secondary));
34
34
  }
35
35
 
36
36
  .mat-step-header.mat-warn {
37
37
  @include token-utils.create-token-values-mixed(
38
- m2-stepper.private-get-color-palette-color-tokens($theme, warn));
38
+ m2-stepper.private-get-color-palette-color-tokens($theme, error));
39
39
  }
40
40
  }
41
41
  }