@angular/material 20.0.0-next.9 → 20.0.0-rc.1

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 (188) hide show
  1. package/badge/_badge-theme.scss +27 -14
  2. package/badge/_m3-badge.scss +39 -67
  3. package/badge/index.d.ts +2 -2
  4. package/badge/testing/index.d.ts +1 -1
  5. package/{badge.d-D0iThVg0.d.ts → badge.d-Cn81aRz4.d.ts} +2 -2
  6. package/button/index.d.ts +4 -4
  7. package/button-toggle/_m3-button-toggle.scss +1 -1
  8. package/checkbox/index.d.ts +4 -4
  9. package/checkbox/testing/index.d.ts +1 -1
  10. package/chips/index.d.ts +2 -2
  11. package/chips/testing/index.d.ts +1 -1
  12. package/core/color/_all-color.scss +1 -1
  13. package/core/m2/_typography.scss +1 -1
  14. package/core/theming/_all-theme.scss +41 -0
  15. package/core/theming/_color-api-backwards-compatibility.scss +3 -6
  16. package/core/theming/_definition.scss +72 -72
  17. package/core/theming/_inspection.scss +24 -22
  18. package/core/theming/_theming.scss +2 -2
  19. package/core/tokens/_m3-system.scss +112 -69
  20. package/core/tokens/_m3-tokens.scss +30 -226
  21. package/core/tokens/_m3-utils.scss +35 -0
  22. package/core/tokens/_token-utils.scss +22 -1
  23. package/core/tokens/m3/_index.scss +6 -8
  24. package/core/tokens/m3/_md-sys-color.scss +125 -137
  25. package/core/tokens/m3/_md-sys-elevation.scss +7 -7
  26. package/core/tokens/m3/_md-sys-motion.scss +27 -38
  27. package/core/tokens/m3/_md-sys-shape.scss +13 -16
  28. package/core/tokens/m3/_md-sys-state.scss +5 -5
  29. package/core/tokens/m3/_md-sys-typescale.scss +107 -306
  30. package/datepicker/index.d.ts +6 -6
  31. package/dialog/index.d.ts +2 -2
  32. package/dialog/testing/index.d.ts +4 -4
  33. package/{dialog.d-DsYAn2Gk.d.ts → dialog.d-hlN3f-Hk.d.ts} +1 -1
  34. package/fesm2022/autocomplete.mjs +23 -23
  35. package/fesm2022/autocomplete.mjs.map +1 -1
  36. package/fesm2022/badge.mjs +14 -14
  37. package/fesm2022/badge.mjs.map +1 -1
  38. package/fesm2022/bottom-sheet.mjs +11 -11
  39. package/fesm2022/bottom-sheet.mjs.map +1 -1
  40. package/fesm2022/button-toggle.mjs +16 -16
  41. package/fesm2022/button-toggle.mjs.map +1 -1
  42. package/fesm2022/button.mjs +21 -21
  43. package/fesm2022/button.mjs.map +1 -1
  44. package/fesm2022/card.mjs +47 -47
  45. package/fesm2022/card.mjs.map +1 -1
  46. package/fesm2022/checkbox.mjs +13 -13
  47. package/fesm2022/checkbox.mjs.map +1 -1
  48. package/fesm2022/chips.mjs +49 -49
  49. package/fesm2022/chips.mjs.map +1 -1
  50. package/fesm2022/{common-module-DZl8g1kc.mjs → common-module-CF0eSYO4.mjs} +5 -5
  51. package/fesm2022/{common-module-DZl8g1kc.mjs.map → common-module-CF0eSYO4.mjs.map} +1 -1
  52. package/fesm2022/core.mjs +24 -24
  53. package/fesm2022/core.mjs.map +1 -1
  54. package/fesm2022/datepicker.mjs +94 -94
  55. package/fesm2022/datepicker.mjs.map +1 -1
  56. package/fesm2022/dialog/testing.mjs +2 -2
  57. package/fesm2022/dialog.mjs +2 -2
  58. package/fesm2022/divider.mjs +8 -8
  59. package/fesm2022/divider.mjs.map +1 -1
  60. package/fesm2022/{error-options-BWOa3B4G.mjs → error-options-CbAHLQL5.mjs} +7 -7
  61. package/fesm2022/{error-options-BWOa3B4G.mjs.map → error-options-CbAHLQL5.mjs.map} +1 -1
  62. package/fesm2022/expansion.mjs +27 -27
  63. package/fesm2022/expansion.mjs.map +1 -1
  64. package/fesm2022/{form-field-BZd6Vhww.mjs → form-field-sL9_TuE-.mjs} +70 -62
  65. package/fesm2022/form-field-sL9_TuE-.mjs.map +1 -0
  66. package/fesm2022/form-field.mjs +3 -3
  67. package/fesm2022/grid-list.mjs +24 -24
  68. package/fesm2022/grid-list.mjs.map +1 -1
  69. package/fesm2022/icon/testing.mjs +8 -8
  70. package/fesm2022/icon/testing.mjs.map +1 -1
  71. package/fesm2022/{icon-button-4VvBKIK4.mjs → icon-button-BASP1JI8.mjs} +12 -12
  72. package/fesm2022/icon-button-BASP1JI8.mjs.map +1 -0
  73. package/fesm2022/{icon-registry-Bk5cM8Z5.mjs → icon-registry-DVLYRZv3.mjs} +4 -4
  74. package/fesm2022/{icon-registry-Bk5cM8Z5.mjs.map → icon-registry-DVLYRZv3.mjs.map} +1 -1
  75. package/fesm2022/icon.mjs +12 -12
  76. package/fesm2022/icon.mjs.map +1 -1
  77. package/fesm2022/index-BNtCg9r0.mjs +22 -0
  78. package/fesm2022/{index-BHJ4tVIe.mjs.map → index-BNtCg9r0.mjs.map} +1 -1
  79. package/fesm2022/index-DxCSjCL3.mjs +20 -0
  80. package/fesm2022/{index-D2rZ0V78.mjs.map → index-DxCSjCL3.mjs.map} +1 -1
  81. package/fesm2022/input.mjs +12 -12
  82. package/fesm2022/input.mjs.map +1 -1
  83. package/fesm2022/{internal-form-field-DVvKYBKJ.mjs → internal-form-field-_OHaksOO.mjs} +4 -4
  84. package/fesm2022/{internal-form-field-DVvKYBKJ.mjs.map → internal-form-field-_OHaksOO.mjs.map} +1 -1
  85. package/fesm2022/{line-Dwrcg_t9.mjs → line-CtAKiRo6.mjs} +9 -9
  86. package/fesm2022/{line-Dwrcg_t9.mjs.map → line-CtAKiRo6.mjs.map} +1 -1
  87. package/fesm2022/list.mjs +59 -59
  88. package/fesm2022/list.mjs.map +1 -1
  89. package/fesm2022/menu.mjs +20 -20
  90. package/fesm2022/menu.mjs.map +1 -1
  91. package/fesm2022/{module-D-cNfopD.mjs → module-ChwDH6BC.mjs} +28 -28
  92. package/fesm2022/module-ChwDH6BC.mjs.map +1 -0
  93. package/fesm2022/{module-CTd5xD2i.mjs → module-DToxyW7l.mjs} +7 -7
  94. package/fesm2022/{module-CTd5xD2i.mjs.map → module-DToxyW7l.mjs.map} +1 -1
  95. package/fesm2022/{module-qRXgbi2L.mjs → module-DqTK2swA.mjs} +17 -17
  96. package/fesm2022/{module-qRXgbi2L.mjs.map → module-DqTK2swA.mjs.map} +1 -1
  97. package/fesm2022/{module-X29xYsIk.mjs → module-m5vWw9-5.mjs} +12 -12
  98. package/fesm2022/{module-X29xYsIk.mjs.map → module-m5vWw9-5.mjs.map} +1 -1
  99. package/fesm2022/{option-MOeehkAg.mjs → option-hkPAbXDN.mjs} +10 -10
  100. package/fesm2022/{option-MOeehkAg.mjs.map → option-hkPAbXDN.mjs.map} +1 -1
  101. package/fesm2022/paginator.mjs +27 -27
  102. package/fesm2022/paginator.mjs.map +1 -1
  103. package/fesm2022/progress-bar.mjs +10 -10
  104. package/fesm2022/progress-bar.mjs.map +1 -1
  105. package/fesm2022/progress-spinner.mjs +10 -10
  106. package/fesm2022/progress-spinner.mjs.map +1 -1
  107. package/fesm2022/{pseudo-checkbox-BFGIaGxz.mjs → pseudo-checkbox-Ddidc23S.mjs} +4 -4
  108. package/fesm2022/{pseudo-checkbox-BFGIaGxz.mjs.map → pseudo-checkbox-Ddidc23S.mjs.map} +1 -1
  109. package/fesm2022/pseudo-checkbox-module--am9-RIA.mjs +20 -0
  110. package/fesm2022/{pseudo-checkbox-module-Dxth-mPi.mjs.map → pseudo-checkbox-module--am9-RIA.mjs.map} +1 -1
  111. package/fesm2022/radio.mjs +19 -19
  112. package/fesm2022/radio.mjs.map +1 -1
  113. package/fesm2022/{ripple-CuyVtN3V.mjs → ripple-DUGA2BAa.mjs} +7 -7
  114. package/fesm2022/{ripple-CuyVtN3V.mjs.map → ripple-DUGA2BAa.mjs.map} +1 -1
  115. package/fesm2022/{ripple-loader-pOctSZby.mjs → ripple-loader-Xy4bv6Xh.mjs} +5 -5
  116. package/fesm2022/{ripple-loader-pOctSZby.mjs.map → ripple-loader-Xy4bv6Xh.mjs.map} +1 -1
  117. package/fesm2022/select.mjs +12 -12
  118. package/fesm2022/sidenav.mjs +23 -23
  119. package/fesm2022/sidenav.mjs.map +1 -1
  120. package/fesm2022/slide-toggle.mjs +13 -13
  121. package/fesm2022/slide-toggle.mjs.map +1 -1
  122. package/fesm2022/slider.mjs +23 -23
  123. package/fesm2022/slider.mjs.map +1 -1
  124. package/fesm2022/snack-bar.mjs +28 -28
  125. package/fesm2022/snack-bar.mjs.map +1 -1
  126. package/fesm2022/sort.mjs +15 -15
  127. package/fesm2022/sort.mjs.map +1 -1
  128. package/fesm2022/stepper.mjs +43 -43
  129. package/fesm2022/stepper.mjs.map +1 -1
  130. package/fesm2022/{structural-styles-CasigI3l.mjs → structural-styles-DA18Hchc.mjs} +4 -4
  131. package/fesm2022/{structural-styles-CasigI3l.mjs.map → structural-styles-DA18Hchc.mjs.map} +1 -1
  132. package/fesm2022/table.mjs +56 -56
  133. package/fesm2022/table.mjs.map +1 -1
  134. package/fesm2022/tabs.mjs +54 -54
  135. package/fesm2022/tabs.mjs.map +1 -1
  136. package/fesm2022/timepicker.mjs +20 -20
  137. package/fesm2022/timepicker.mjs.map +1 -1
  138. package/fesm2022/toolbar.mjs +13 -13
  139. package/fesm2022/toolbar.mjs.map +1 -1
  140. package/fesm2022/tooltip.mjs +2 -2
  141. package/fesm2022/tree.mjs +26 -26
  142. package/fesm2022/tree.mjs.map +1 -1
  143. package/form-field/index.d.ts +2 -2
  144. package/{form-field.d-b9aHrR4I.d.ts → form-field.d-C6p5uYjG.d.ts} +8 -6
  145. package/icon/index.d.ts +1 -1
  146. package/{icon-module.d-sA1hmRKS.d.ts → icon-module.d-COXCrhrh.d.ts} +4 -4
  147. package/input/index.d.ts +4 -4
  148. package/list/index.d.ts +4 -4
  149. package/{module.d-BGzxQfCs.d.ts → module.d-D1Ym5Wf2.d.ts} +1 -1
  150. package/{module.d-CH_8jCsD.d.ts → module.d-DMabQ4_c.d.ts} +2 -2
  151. package/package.json +2 -2
  152. package/paginator/index.d.ts +5 -5
  153. package/paginator/testing/index.d.ts +2 -2
  154. package/{paginator.d-3kymf0wo.d.ts → paginator.d-DuJ-oYgT.d.ts} +3 -3
  155. package/prebuilt-themes/azure-blue.css +1 -1
  156. package/prebuilt-themes/cyan-orange.css +1 -1
  157. package/prebuilt-themes/magenta-violet.css +1 -1
  158. package/prebuilt-themes/rose-red.css +1 -1
  159. package/progress-bar/index.d.ts +4 -4
  160. package/progress-spinner/index.d.ts +2 -2
  161. package/progress-spinner/testing/index.d.ts +1 -1
  162. package/{progress-spinner.d-DtYCWeYd.d.ts → progress-spinner.d-Lfz4Wh5x.d.ts} +4 -4
  163. package/radio/index.d.ts +6 -6
  164. package/radio/testing/index.d.ts +2 -2
  165. package/schematics/ng-add/index.js +1 -1
  166. package/schematics/ng-add/schema.json +4 -4
  167. package/schematics/ng-add/theming/create-custom-theme.js +1 -1
  168. package/schematics/ng-generate/theme-color/index_bundled.js +2 -2
  169. package/schematics/ng-generate/theme-color/index_bundled.js.map +1 -1
  170. package/schematics/ng-update/index_bundled.js +54 -2
  171. package/schematics/ng-update/index_bundled.js.map +1 -1
  172. package/select/index.d.ts +3 -3
  173. package/slide-toggle/index.d.ts +4 -4
  174. package/slide-toggle/testing/index.d.ts +1 -1
  175. package/slider/index.d.ts +3 -3
  176. package/stepper/index.d.ts +7 -7
  177. package/table/index.d.ts +2 -2
  178. package/tabs/index.d.ts +8 -8
  179. package/toolbar/index.d.ts +2 -2
  180. package/tree/testing/index.d.ts +1 -1
  181. package/core/tokens/m3/_md-ref-palette.scss +0 -100
  182. package/core/tokens/m3/_md-ref-typeface.scss +0 -14
  183. package/fesm2022/form-field-BZd6Vhww.mjs.map +0 -1
  184. package/fesm2022/icon-button-4VvBKIK4.mjs.map +0 -1
  185. package/fesm2022/index-BHJ4tVIe.mjs +0 -22
  186. package/fesm2022/index-D2rZ0V78.mjs +0 -20
  187. package/fesm2022/module-D-cNfopD.mjs.map +0 -1
  188. package/fesm2022/pseudo-checkbox-module-Dxth-mPi.mjs +0 -20
@@ -3,7 +3,7 @@
3
3
  @use '../style/validation';
4
4
  @use './m2-inspection';
5
5
 
6
- $_internals: _mat-theming-internals-do-not-access;
6
+ $internals: _mat-theming-internals-do-not-access;
7
7
 
8
8
  $_m3-typescales: (
9
9
  display-large,
@@ -30,7 +30,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
30
30
  /// @return {Boolean|Null} true if the theme has errors, else null.
31
31
  @function _validate-theme-object($theme) {
32
32
  $err: validation.validate-type($theme, 'map') or
33
- map.get($theme, $_internals, theme-version) == null;
33
+ map.get($theme, $internals, theme-version) == null;
34
34
  @return if($err, true, null);
35
35
  }
36
36
 
@@ -40,7 +40,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
40
40
  /// @return {Number} The version number of the theme (0 if unknown).
41
41
  @function get-theme-version($theme) {
42
42
  $err: _validate-theme-object($theme);
43
- @return if($err, 0, map.get($theme, $_internals, theme-version) or 0);
43
+ @return if($err, 0, map.get($theme, $internals, theme-version) or 0);
44
44
  }
45
45
 
46
46
  /// Gets the type of theme represented by a theme object (light or dark).
@@ -55,13 +55,15 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
55
55
  @if not theme-has($theme, color) {
56
56
  @error 'Color information is not available on this theme.';
57
57
  }
58
- @return map.get($theme, $_internals, theme-type) or light;
58
+ @return map.get($theme, $internals, theme-type) or light;
59
59
  }
60
60
  @else {
61
61
  @error #{'Unrecognized theme version:'} $version;
62
62
  }
63
63
  }
64
64
 
65
+
66
+
65
67
  /// Gets a color from a theme object. This function take a different amount of arguments depending
66
68
  /// on if it's working with an M2 or M3 theme:
67
69
  /// - With an M3 theme it accepts either 2 or 3 arguments. If 2 arguments are passed, the second
@@ -119,7 +121,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
119
121
  @if not theme-has($theme, color) {
120
122
  @error 'Color information is not available on this theme.';
121
123
  }
122
- $color-roles: map.get($theme, $_internals, color-tokens, (mat, theme));
124
+ $color-roles: map.get($theme, $internals, color-tokens, (mat, theme));
123
125
  $result: map.get($color-roles, $color-role-name);
124
126
  @if not $result {
125
127
  @error #{'Valid color roles are: #{map.keys($color-roles)}. Got:'} $color-role-name;
@@ -141,7 +143,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
141
143
  @if not theme-has($theme, color) {
142
144
  @error 'Color information is not available on this theme.';
143
145
  }
144
- $palettes: map.get($theme, $_internals, palettes);
146
+ $palettes: map.get($theme, $internals, palettes);
145
147
  $palette: map.get($palettes, $palette-name);
146
148
  @if not $palette {
147
149
  $supported-palettes: map.keys($palettes);
@@ -185,7 +187,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
185
187
  font-weight: '-weight'
186
188
  ), $property);
187
189
  $token-name: '#{$typescale}#{$property-key}';
188
- @return map.get($theme, $_internals, typography-tokens, (mat, typography), $token-name);
190
+ @return map.get($theme, $internals, typography-tokens, (mat, typography), $token-name);
189
191
  }
190
192
  @else {
191
193
  @error #{'Unrecognized theme version:'} $version;
@@ -204,7 +206,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
204
206
  @if not theme-has($theme, density) {
205
207
  @error 'Density information is not available on this theme.';
206
208
  }
207
- @return map.get($theme, $_internals, density-scale);
209
+ @return map.get($theme, $internals, density-scale);
208
210
  }
209
211
  @else {
210
212
  @error #{'Unrecognized theme version:'} $version;
@@ -222,18 +224,18 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
222
224
  }
223
225
  @else if $version == 1 {
224
226
  @if $system == base {
225
- @return map.get($theme, $_internals, base-tokens) != null;
227
+ @return map.get($theme, $internals, base-tokens) != null;
226
228
  }
227
229
  @if $system == color {
228
- @return map.get($theme, $_internals, color-tokens) != null and
229
- map.get($theme, $_internals, theme-type) != null and
230
- map.get($theme, $_internals, palettes) != null;
230
+ @return map.get($theme, $internals, color-tokens) != null and
231
+ map.get($theme, $internals, theme-type) != null and
232
+ map.get($theme, $internals, palettes) != null;
231
233
  }
232
234
  @if $system == typography {
233
- @return map.get($theme, $_internals, typography-tokens) != null;
235
+ @return map.get($theme, $internals, typography-tokens) != null;
234
236
  }
235
237
  @if $system == density {
236
- @return map.get($theme, $_internals, density-scale) != null;
238
+ @return map.get($theme, $internals, density-scale) != null;
237
239
  }
238
240
  @error 'Valid systems are: base, color, typography, density. Got:' $system;
239
241
  }
@@ -259,19 +261,19 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
259
261
  @else if $version == 1 {
260
262
  @each $system in $systems {
261
263
  @if $system == base {
262
- $theme: map.deep-remove($theme, $_internals, base-tokens);
264
+ $theme: map.deep-remove($theme, $internals, base-tokens);
263
265
  }
264
266
  @else if $system == color {
265
- $theme: map.deep-remove($theme, $_internals, color-tokens);
266
- $theme: map.deep-remove($theme, $_internals, theme-type);
267
- $theme: map.deep-remove($theme, $_internals, palettes);
267
+ $theme: map.deep-remove($theme, $internals, color-tokens);
268
+ $theme: map.deep-remove($theme, $internals, theme-type);
269
+ $theme: map.deep-remove($theme, $internals, palettes);
268
270
  }
269
271
  @else if $system == typography {
270
- $theme: map.deep-remove($theme, $_internals, typography-tokens);
272
+ $theme: map.deep-remove($theme, $internals, typography-tokens);
271
273
  }
272
274
  @else if $system == density {
273
- $theme: map.deep-remove($theme, $_internals, density-scale);
274
- $theme: map.deep-remove($theme, $_internals, density-tokens);
275
+ $theme: map.deep-remove($theme, $internals, density-scale);
276
+ $theme: map.deep-remove($theme, $internals, density-tokens);
275
277
  }
276
278
  }
277
279
  @return $theme;
@@ -297,7 +299,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
297
299
  }
298
300
  $result: ();
299
301
  @each $system in $systems {
300
- $result: map.deep-merge($result, map.get($theme, $_internals, '#{$system}-tokens') or ());
302
+ $result: map.deep-merge($result, map.get($theme, $internals, '#{$system}-tokens') or ());
301
303
  }
302
304
 
303
305
  @return $result;
@@ -15,13 +15,13 @@ $_generate-default-density: true !default;
15
15
 
16
16
  // Warning that will be printed if duplicated styles are generated by a theme.
17
17
  $_duplicate-warning: 'Read more about how style duplication can be avoided in a dedicated ' +
18
- 'guide. https://v18.material.angular.io/guide/duplicate-theming-styles';
18
+ 'guide. https://v18.material.angular.dev/guide/duplicate-theming-styles';
19
19
 
20
20
  // Warning that will be printed if the legacy theming API is used.
21
21
  $private-legacy-theme-warning: 'Angular Material themes should be created from a map containing ' +
22
22
  'the keys "color", "typography", and "density". The color value should be a map containing the ' +
23
23
  'palette values for "primary", "accent", and "warn". ' +
24
- 'See https://material.angular.io/guide/theming for more information.';
24
+ 'See https://material.angular.dev/guide/theming for more information.';
25
25
 
26
26
  // Flag whether to disable theme definitions copying color values to the top-level theme config.
27
27
  // This copy is to preserve backwards compatibility.
@@ -19,6 +19,7 @@
19
19
  @use '../style/sass-utils';
20
20
  @use '../theming/config-validation';
21
21
  @use '../theming/definition';
22
+ @use '../theming/palettes';
22
23
  @use './m3';
23
24
  @use './m3-tokens';
24
25
  @use 'sass:list';
@@ -63,9 +64,40 @@
63
64
  $color: map.set($color, theme-type, color-scheme);
64
65
  }
65
66
 
66
- $color-config: if($is-palette,
67
- definition.define-colors((primary: $color, theme-type: color-scheme)),
68
- definition.define-colors($color));
67
+ $color-config: $color;
68
+ @if ($is-palette) {
69
+ $color: map.set($color, tertiary, $color);
70
+ $color-config: (
71
+ definition.$internals: (
72
+ palettes: (
73
+ primary: map.remove($color, neutral, neutral-variant, secondary),
74
+ secondary: map.get($color, secondary),
75
+ tertiary: map.remove($color, neutral, neutral-variant, secondary, error),
76
+ neutral: map.get($color, neutral),
77
+ neutral-variant: map.get($color, neutral-variant),
78
+ error: map.get($color, error),
79
+ ),
80
+ theme-type: color-scheme,
81
+ )
82
+ );
83
+ } @else {
84
+ $primary: map.get($color, primary) or palettes.$violet-palette;
85
+ $tertiary: map.get($color, tertiary) or $primary;
86
+ $color-config: (
87
+ definition.$internals: (
88
+ palettes: (
89
+ primary: map.remove($primary, neutral, neutral-variant, secondary),
90
+ secondary: map.get($primary, secondary),
91
+ tertiary: map.remove($tertiary, neutral, neutral-variant, secondary, error),
92
+ neutral: map.get($primary, neutral),
93
+ neutral-variant: map.get($primary, neutral-variant),
94
+ error: map.get($primary, error),
95
+ ),
96
+ theme-type: map.get($color, theme-type),
97
+ )
98
+ );
99
+ }
100
+
69
101
  @include system-level-colors($color-config, $overrides, definition.$system-fallback-prefix);
70
102
  @include system-level-elevation($color-config, $overrides, definition.$system-fallback-prefix);
71
103
  }
@@ -73,9 +105,31 @@
73
105
  $typography: map.get($config, typography);
74
106
  $typography-config: null;
75
107
  @if ($typography) {
76
- $typography-config: if(meta.type-of($typography) == 'map',
77
- definition.define-typography($typography),
78
- definition.define-typography((plain-family: $typography)));
108
+ $plain: (Roboto, sans-serif);
109
+ $brand: $plain;
110
+ $bold: 700;
111
+ $medium: 500;
112
+ $regular: 400;
113
+ @if (meta.type-of($typography) == map) {
114
+ $plain: map.get($typography, plain-family);
115
+ $brand: map.get($typography, brand-family) or $plain;
116
+ $bold: map.get($typography, bold-weight) or $bold;
117
+ $medium: map.get($typography, medium-weight) or $medium;
118
+ $regular: map.get($typography, regular-weight) or $regular;
119
+ } @else {
120
+ $plain: $typography;
121
+ }
122
+ $typography-config: (
123
+ definition.$internals: (
124
+ font-definition: (
125
+ plain: $plain,
126
+ brand: $brand,
127
+ bold: $bold,
128
+ medium: $medium,
129
+ regular: $regular,
130
+ )
131
+ )
132
+ );
79
133
  @include system-level-typography(
80
134
  $typography-config, $overrides, definition.$system-fallback-prefix);
81
135
  }
@@ -83,10 +137,12 @@
83
137
  $density: map.get($config, density);
84
138
  $density-config: null;
85
139
  @if ($density) {
86
- $density-config: if(meta.type-of($density) == 'map',
87
- definition.define-density($density),
88
- definition.define-density((scale: $density)));
89
- $scale: map.get($density-config, _mat-theming-internals-do-not-access, density-scale);
140
+ $scale: 0;
141
+ @if (meta.type-of($density) == map) {
142
+ $scale: map.get($density, scale);
143
+ } @else {
144
+ $scale: $density;
145
+ }
90
146
  @if ($scale != 0) {
91
147
  // Emit component-level density tokens if the scale is lower than 0. The density tokens
92
148
  // do not fallback to any system-level values and must be defined if the scale is different.
@@ -130,8 +186,14 @@
130
186
  /// change the primary color to red, use `mat.theme-overrides((primary: red));`
131
187
  @mixin theme-overrides($overrides, $prefix: definition.$system-fallback-prefix) {
132
188
  $sys-names: map-merge-all(
133
- m3.md-sys-color-values-light(),
134
- m3.md-sys-typescale-values(),
189
+ m3.md-sys-color-values-light(palettes.$blue-palette),
190
+ m3.md-sys-typescale-values((
191
+ brand: (Roboto),
192
+ plain: (Roboto),
193
+ bold: 700,
194
+ medium: 500,
195
+ regular: 400
196
+ )),
135
197
  m3.md-sys-elevation-values(),
136
198
  m3.md-sys-shape-values(),
137
199
  m3.md-sys-state-values());
@@ -146,36 +208,21 @@
146
208
  }
147
209
 
148
210
  @mixin system-level-colors($theme, $overrides: (), $prefix: null) {
149
- $palettes: map.get($theme, _mat-theming-internals-do-not-access, palettes);
150
- $base-palettes: (
151
- neutral: map.get($palettes, neutral),
152
- neutral-variant: map.get($palettes, neutral-variant),
153
- secondary: map.get($palettes, secondary),
154
- error: map.get($palettes, error),
155
- );
156
-
157
- $type: map.get($theme, _mat-theming-internals-do-not-access, theme-type);
158
- $primary: map.merge(map.get($palettes, primary), $base-palettes);
159
- $tertiary: map.merge(map.get($palettes, tertiary), $base-palettes);
160
- $error: map.get($palettes, error);
211
+ $palettes: map.get($theme, definition.$internals, palettes);
212
+ $type: map.get($theme, definition.$internals, theme-type);
161
213
 
162
214
  @if (not $prefix) {
163
- $prefix: map.get($theme, _mat-theming-internals-do-not-access,
215
+ $prefix: map.get($theme, definition.$internals,
164
216
  color-system-variables-prefix) or definition.$system-level-prefix;
165
217
  }
166
218
 
167
- $ref: (
168
- md-ref-palette: m3-tokens.generate-ref-palette-tokens($primary, $tertiary, $error)
169
- );
170
219
 
171
- $sys-colors: _generate-sys-colors($ref, $type);
220
+ $sys-colors: _generate-sys-colors($palettes, $type);
172
221
 
173
222
  // Manually insert a subset of palette values that are used directly by components
174
223
  // instead of system variables.
175
- $sys-colors: map.set($sys-colors,
176
- 'neutral-variant20', map.get($ref, md-ref-palette, neutral-variant20));
177
- $sys-colors: map.set($sys-colors,
178
- 'neutral10', map.get($ref, md-ref-palette, neutral10));
224
+ $sys-colors: map.set($sys-colors, neutral-variant20, map.get($palettes, neutral-variant, 20));
225
+ $sys-colors: map.set($sys-colors, neutral10, map.get($palettes, neutral, 10));
179
226
 
180
227
  & {
181
228
  @each $name, $value in $sys-colors {
@@ -184,13 +231,13 @@
184
231
  }
185
232
  }
186
233
 
187
- @function _generate-sys-colors($ref, $type) {
188
- $light-sys-colors: m3.md-sys-color-values-light($ref);
234
+ @function _generate-sys-colors($palettes, $type) {
235
+ $light-sys-colors: m3.md-sys-color-values-light($palettes);
189
236
  @if ($type == light) {
190
237
  @return $light-sys-colors;
191
238
  }
192
239
 
193
- $dark-sys-colors: m3.md-sys-color-values-dark($ref);
240
+ $dark-sys-colors: m3.md-sys-color-values-dark($palettes);
194
241
  @if ($type == dark) {
195
242
  @return $dark-sys-colors;
196
243
  }
@@ -209,23 +256,15 @@
209
256
  }
210
257
 
211
258
  @mixin system-level-typography($theme, $overrides: (), $prefix: null) {
212
- $font-definition: map.get($theme, _mat-theming-internals-do-not-access, font-definition);
213
- $brand: map.get($font-definition, brand);
214
- $plain: map.get($font-definition, plain);
215
- $bold: map.get($font-definition, bold);
216
- $medium: map.get($font-definition, medium);
217
- $regular: map.get($font-definition, regular);
218
- $ref: (md-ref-typeface:
219
- m3-tokens.generate-ref-typeface-tokens($brand, $plain, $bold, $medium, $regular)
220
- );
259
+ $font-definition: map.get($theme, definition.$internals, font-definition);
221
260
 
222
261
  @if (not $prefix) {
223
- $prefix: map.get($theme, _mat-theming-internals-do-not-access,
262
+ $prefix: map.get($theme, definition.$internals,
224
263
  typography-system-variables-prefix) or definition.$system-level-prefix;
225
264
  }
226
265
 
227
266
  & {
228
- @each $name, $value in m3.md-sys-typescale-values($ref) {
267
+ @each $name, $value in m3.md-sys-typescale-values($font-definition) {
229
268
  --#{$prefix}-#{$name}: #{map.get($overrides, $name) or $value};
230
269
  }
231
270
  }
@@ -233,7 +272,7 @@
233
272
 
234
273
  @mixin system-level-elevation($theme, $overrides: (), $prefix: definition.$system-level-prefix) {
235
274
  $shadow-color: map.get(
236
- $theme, _mat-theming-internals-do-not-access, color-tokens, (mat, theme), shadow);
275
+ $theme, definition.$internals, palettes, neutral, 0);
237
276
 
238
277
  @each $name, $value in m3.md-sys-elevation-values() {
239
278
  $level: map.get($overrides, $name) or $value;
@@ -275,27 +314,6 @@
275
314
  // system fallback variables referencing Material's system keys.
276
315
  // Includes density token fallbacks where density is 0.
277
316
  @function create-system-fallbacks() {
278
- $app-vars: (
279
- 'md-sys-color':
280
- _create-system-app-vars-map(m3.md-sys-color-values-light()),
281
- 'md-sys-typescale':
282
- _create-system-app-vars-map(m3.md-sys-typescale-values()),
283
- 'md-sys-elevation':
284
- _create-system-app-vars-map(m3.md-sys-elevation-values()),
285
- 'md-sys-state':
286
- _create-system-app-vars-map(m3.md-sys-state-values()),
287
- 'md-sys-shape':
288
- _create-system-app-vars-map(m3.md-sys-shape-values()),
289
- // Add a subset of palette-specific colors used by components instead of system values
290
- 'md-ref-palette':
291
- _create-system-app-vars-map(
292
- (
293
- neutral10: '', // Form field native select option text color
294
- neutral-variant20: '', // Sidenav scrim (container background shadow when opened),
295
- )
296
- ),
297
- );
298
-
299
317
  @return sass-utils.deep-merge-all(
300
318
  m3-tokens.generate-tokens($app-vars, true, true),
301
319
  get-density-tokens(0),
@@ -310,3 +328,28 @@
310
328
  }
311
329
  @return $result;
312
330
  }
331
+
332
+ $placeholder-palettes: m3.md-sys-color-values-light(palettes.$blue-palette);
333
+ $placeholder-palettes: map.set($placeholder-palettes, primary, palettes.$blue-palette);
334
+ $app-vars: (
335
+ 'md-sys-color': _create-system-app-vars-map(m3.md-sys-color-values-light($placeholder-palettes)),
336
+ 'md-sys-typescale': _create-system-app-vars-map(m3.md-sys-typescale-values((
337
+ brand: (Roboto),
338
+ plain: (Roboto),
339
+ bold: 700,
340
+ medium: 500,
341
+ regular: 400
342
+ ))),
343
+ 'md-sys-elevation': _create-system-app-vars-map(m3.md-sys-elevation-values()),
344
+ 'md-sys-state': _create-system-app-vars-map(m3.md-sys-state-values()),
345
+ 'md-sys-shape': _create-system-app-vars-map(m3.md-sys-shape-values()),
346
+ // Add a subset of palette-specific colors used by components instead of system values
347
+ 'md-ref-palette': _create-system-app-vars-map(
348
+ (
349
+ neutral10: '', // Form field native select option text color
350
+ neutral-variant20: '', // Sidenav scrim (container background shadow when opened),
351
+ )
352
+ ),
353
+ );
354
+
355
+ $theme-with-system-vars: (definition.$internals: $app-vars);