@angular/material 18.0.0-next.4 → 18.0.0-next.6

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 (304) hide show
  1. package/_index.scss +67 -60
  2. package/autocomplete/_autocomplete-theme.scss +7 -0
  3. package/autocomplete/index.d.ts +4 -12
  4. package/badge/_badge-theme.scss +9 -0
  5. package/bottom-sheet/_bottom-sheet-theme.scss +7 -0
  6. package/button/_button-theme.scss +25 -0
  7. package/button/_fab-theme.scss +13 -0
  8. package/button/_icon-button-theme.scss +8 -0
  9. package/button-toggle/_button-toggle-theme.scss +12 -0
  10. package/card/_card-theme.scss +9 -0
  11. package/checkbox/_checkbox-theme.scss +2 -4
  12. package/chips/_chips-theme.scss +10 -0
  13. package/core/_core-theme.scss +17 -0
  14. package/core/m2/_index.scss +52 -0
  15. package/core/m2/_theming.scss +295 -0
  16. package/core/{typography/_property-getters.scss → m2/_typography-utils.scss} +14 -0
  17. package/core/{typography/_definition.scss → m2/_typography.scss} +1 -1
  18. package/core/option/_optgroup-theme.scss +7 -0
  19. package/core/option/_option-theme.scss +9 -0
  20. package/core/ripple/_ripple-theme.scss +7 -0
  21. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +13 -0
  22. package/core/style/_sass-utils.scss +14 -1
  23. package/core/theming/_color-api-backwards-compatibility.scss +128 -0
  24. package/core/theming/_config-validation.scss +173 -0
  25. package/core/theming/_definition.scss +113 -0
  26. package/core/theming/_m2-inspection.scss +23 -22
  27. package/core/theming/_palettes.scss +947 -0
  28. package/core/theming/_theming-deprecated.scss +9 -9
  29. package/core/theming/_theming.scss +73 -339
  30. package/core/tokens/_custom-tokens.scss +1918 -0
  31. package/core/tokens/_density.scss +191 -0
  32. package/core/tokens/_format-tokens.scss +5 -0
  33. package/core/tokens/_m3-tokens.scss +1252 -0
  34. package/core/tokens/_token-utils.scss +39 -49
  35. package/core/tokens/m2/mat/_chip.scss +3 -3
  36. package/core/tokens/m2/mat/_form-field.scss +3 -3
  37. package/core/tokens/m2/mdc/_checkbox.scss +3 -2
  38. package/core/tokens/m2/mdc/_chip.scss +3 -3
  39. package/core/tokens/m2/mdc/_radio.scss +3 -2
  40. package/core/typography/_all-typography.scss +3 -2
  41. package/core/typography/_typography-utils.scss +0 -26
  42. package/core/typography/_typography.scss +0 -2
  43. package/core/typography/_versioning.scss +3 -3
  44. package/datepicker/_datepicker-theme.scss +9 -0
  45. package/datepicker/index.d.ts +6 -4
  46. package/dialog/_dialog-theme.scss +8 -0
  47. package/divider/_divider-theme.scss +7 -0
  48. package/esm2022/autocomplete/autocomplete-origin.mjs +3 -3
  49. package/esm2022/autocomplete/autocomplete-trigger.mjs +13 -7
  50. package/esm2022/autocomplete/autocomplete.mjs +7 -36
  51. package/esm2022/autocomplete/module.mjs +4 -4
  52. package/esm2022/badge/badge-module.mjs +4 -4
  53. package/esm2022/badge/badge.mjs +6 -6
  54. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +3 -3
  55. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +4 -4
  56. package/esm2022/bottom-sheet/bottom-sheet.mjs +3 -3
  57. package/esm2022/button/button-base.mjs +6 -6
  58. package/esm2022/button/button.mjs +6 -6
  59. package/esm2022/button/fab.mjs +12 -12
  60. package/esm2022/button/icon-button.mjs +6 -6
  61. package/esm2022/button/module.mjs +4 -4
  62. package/esm2022/button-toggle/button-toggle-module.mjs +4 -4
  63. package/esm2022/button-toggle/button-toggle.mjs +6 -6
  64. package/esm2022/card/card.mjs +42 -42
  65. package/esm2022/card/module.mjs +4 -4
  66. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  67. package/esm2022/checkbox/checkbox.mjs +3 -3
  68. package/esm2022/checkbox/module.mjs +8 -8
  69. package/esm2022/chips/chip-action.mjs +3 -3
  70. package/esm2022/chips/chip-edit-input.mjs +3 -3
  71. package/esm2022/chips/chip-grid.mjs +3 -3
  72. package/esm2022/chips/chip-icons.mjs +9 -9
  73. package/esm2022/chips/chip-input.mjs +3 -3
  74. package/esm2022/chips/chip-listbox.mjs +3 -3
  75. package/esm2022/chips/chip-option.mjs +3 -3
  76. package/esm2022/chips/chip-row.mjs +3 -3
  77. package/esm2022/chips/chip-set.mjs +3 -3
  78. package/esm2022/chips/chip.mjs +3 -3
  79. package/esm2022/chips/module.mjs +4 -4
  80. package/esm2022/core/common-behaviors/common-module.mjs +4 -4
  81. package/esm2022/core/datetime/index.mjs +8 -8
  82. package/esm2022/core/datetime/native-date-adapter.mjs +3 -3
  83. package/esm2022/core/error/error-options.mjs +6 -6
  84. package/esm2022/core/internal-form-field/internal-form-field.mjs +3 -3
  85. package/esm2022/core/line/line.mjs +7 -7
  86. package/esm2022/core/option/index.mjs +4 -4
  87. package/esm2022/core/option/optgroup.mjs +3 -3
  88. package/esm2022/core/option/option.mjs +3 -3
  89. package/esm2022/core/private/ripple-loader.mjs +3 -3
  90. package/esm2022/core/ripple/index.mjs +4 -4
  91. package/esm2022/core/ripple/ripple.mjs +3 -3
  92. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  93. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  94. package/esm2022/core/version.mjs +1 -1
  95. package/esm2022/datepicker/calendar-body.mjs +3 -3
  96. package/esm2022/datepicker/calendar.mjs +6 -6
  97. package/esm2022/datepicker/date-range-input-parts.mjs +9 -9
  98. package/esm2022/datepicker/date-range-input.mjs +9 -4
  99. package/esm2022/datepicker/date-range-picker.mjs +3 -3
  100. package/esm2022/datepicker/date-range-selection-strategy.mjs +3 -3
  101. package/esm2022/datepicker/date-selection-model.mjs +9 -9
  102. package/esm2022/datepicker/datepicker-actions.mjs +9 -9
  103. package/esm2022/datepicker/datepicker-base.mjs +10 -13
  104. package/esm2022/datepicker/datepicker-input-base.mjs +3 -3
  105. package/esm2022/datepicker/datepicker-input.mjs +3 -3
  106. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  107. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  108. package/esm2022/datepicker/datepicker-toggle.mjs +6 -6
  109. package/esm2022/datepicker/datepicker.mjs +3 -3
  110. package/esm2022/datepicker/month-view.mjs +3 -3
  111. package/esm2022/datepicker/multi-year-view.mjs +3 -3
  112. package/esm2022/datepicker/year-view.mjs +3 -3
  113. package/esm2022/dialog/dialog-container.mjs +3 -3
  114. package/esm2022/dialog/dialog-content-directives.mjs +15 -15
  115. package/esm2022/dialog/dialog.mjs +3 -3
  116. package/esm2022/dialog/module.mjs +4 -4
  117. package/esm2022/divider/divider-module.mjs +4 -4
  118. package/esm2022/divider/divider.mjs +3 -3
  119. package/esm2022/expansion/accordion.mjs +3 -3
  120. package/esm2022/expansion/expansion-module.mjs +4 -4
  121. package/esm2022/expansion/expansion-panel-content.mjs +3 -3
  122. package/esm2022/expansion/expansion-panel-header.mjs +9 -9
  123. package/esm2022/expansion/expansion-panel.mjs +6 -6
  124. package/esm2022/form-field/directives/error.mjs +3 -3
  125. package/esm2022/form-field/directives/floating-label.mjs +3 -3
  126. package/esm2022/form-field/directives/hint.mjs +3 -3
  127. package/esm2022/form-field/directives/label.mjs +3 -3
  128. package/esm2022/form-field/directives/line-ripple.mjs +3 -3
  129. package/esm2022/form-field/directives/notched-outline.mjs +3 -3
  130. package/esm2022/form-field/directives/prefix.mjs +3 -3
  131. package/esm2022/form-field/directives/suffix.mjs +3 -3
  132. package/esm2022/form-field/form-field-control.mjs +4 -4
  133. package/esm2022/form-field/form-field.mjs +6 -6
  134. package/esm2022/form-field/module.mjs +4 -4
  135. package/esm2022/grid-list/grid-list-module.mjs +4 -4
  136. package/esm2022/grid-list/grid-list.mjs +3 -3
  137. package/esm2022/grid-list/grid-tile.mjs +15 -15
  138. package/esm2022/icon/icon-module.mjs +4 -4
  139. package/esm2022/icon/icon-registry.mjs +3 -3
  140. package/esm2022/icon/icon.mjs +3 -3
  141. package/esm2022/icon/testing/fake-icon-registry.mjs +7 -7
  142. package/esm2022/input/input.mjs +3 -3
  143. package/esm2022/input/module.mjs +4 -4
  144. package/esm2022/list/action-list.mjs +3 -3
  145. package/esm2022/list/list-base.mjs +6 -6
  146. package/esm2022/list/list-item-sections.mjs +18 -18
  147. package/esm2022/list/list-module.mjs +4 -4
  148. package/esm2022/list/list-option.mjs +3 -3
  149. package/esm2022/list/list.mjs +6 -6
  150. package/esm2022/list/nav-list.mjs +3 -3
  151. package/esm2022/list/selection-list.mjs +3 -3
  152. package/esm2022/list/subheader.mjs +3 -3
  153. package/esm2022/menu/menu-content.mjs +3 -3
  154. package/esm2022/menu/menu-item.mjs +3 -3
  155. package/esm2022/menu/menu-trigger.mjs +3 -3
  156. package/esm2022/menu/menu.mjs +21 -16
  157. package/esm2022/menu/module.mjs +4 -4
  158. package/esm2022/paginator/module.mjs +4 -4
  159. package/esm2022/paginator/paginator-intl.mjs +3 -3
  160. package/esm2022/paginator/paginator.mjs +3 -3
  161. package/esm2022/progress-bar/module.mjs +4 -4
  162. package/esm2022/progress-bar/progress-bar.mjs +5 -5
  163. package/esm2022/progress-spinner/module.mjs +4 -4
  164. package/esm2022/progress-spinner/progress-spinner.mjs +3 -3
  165. package/esm2022/radio/module.mjs +4 -4
  166. package/esm2022/radio/radio.mjs +6 -6
  167. package/esm2022/select/module.mjs +4 -4
  168. package/esm2022/select/select.mjs +12 -7
  169. package/esm2022/sidenav/drawer.mjs +9 -9
  170. package/esm2022/sidenav/sidenav-module.mjs +4 -4
  171. package/esm2022/sidenav/sidenav.mjs +9 -9
  172. package/esm2022/slide-toggle/module.mjs +8 -8
  173. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  174. package/esm2022/slide-toggle/slide-toggle.mjs +3 -3
  175. package/esm2022/slider/module.mjs +4 -4
  176. package/esm2022/slider/slider-input.mjs +6 -6
  177. package/esm2022/slider/slider-thumb.mjs +3 -3
  178. package/esm2022/slider/slider.mjs +3 -3
  179. package/esm2022/snack-bar/module.mjs +4 -4
  180. package/esm2022/snack-bar/simple-snack-bar.mjs +3 -3
  181. package/esm2022/snack-bar/snack-bar-container.mjs +3 -3
  182. package/esm2022/snack-bar/snack-bar-content.mjs +9 -9
  183. package/esm2022/snack-bar/snack-bar.mjs +3 -3
  184. package/esm2022/sort/sort-header-intl.mjs +3 -3
  185. package/esm2022/sort/sort-header.mjs +3 -3
  186. package/esm2022/sort/sort-module.mjs +4 -4
  187. package/esm2022/sort/sort.mjs +3 -3
  188. package/esm2022/stepper/step-content.mjs +3 -3
  189. package/esm2022/stepper/step-header.mjs +3 -3
  190. package/esm2022/stepper/step-label.mjs +3 -3
  191. package/esm2022/stepper/stepper-button.mjs +6 -6
  192. package/esm2022/stepper/stepper-icon.mjs +3 -3
  193. package/esm2022/stepper/stepper-intl.mjs +3 -3
  194. package/esm2022/stepper/stepper-module.mjs +4 -4
  195. package/esm2022/stepper/stepper.mjs +6 -6
  196. package/esm2022/table/cell.mjs +21 -21
  197. package/esm2022/table/module.mjs +4 -4
  198. package/esm2022/table/row.mjs +21 -21
  199. package/esm2022/table/table.mjs +6 -6
  200. package/esm2022/table/text-column.mjs +3 -3
  201. package/esm2022/tabs/ink-bar.mjs +3 -3
  202. package/esm2022/tabs/module.mjs +4 -4
  203. package/esm2022/tabs/paginated-tab-header.mjs +3 -3
  204. package/esm2022/tabs/tab-body.mjs +6 -6
  205. package/esm2022/tabs/tab-content.mjs +3 -3
  206. package/esm2022/tabs/tab-group.mjs +6 -8
  207. package/esm2022/tabs/tab-header.mjs +3 -3
  208. package/esm2022/tabs/tab-label-wrapper.mjs +3 -3
  209. package/esm2022/tabs/tab-label.mjs +3 -3
  210. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +9 -9
  211. package/esm2022/tabs/tab.mjs +4 -4
  212. package/esm2022/toolbar/toolbar-module.mjs +4 -4
  213. package/esm2022/toolbar/toolbar.mjs +6 -6
  214. package/esm2022/tooltip/module.mjs +4 -4
  215. package/esm2022/tooltip/tooltip.mjs +6 -6
  216. package/esm2022/tree/node.mjs +9 -9
  217. package/esm2022/tree/outlet.mjs +3 -3
  218. package/esm2022/tree/padding.mjs +3 -3
  219. package/esm2022/tree/toggle.mjs +3 -3
  220. package/esm2022/tree/tree-module.mjs +4 -4
  221. package/esm2022/tree/tree.mjs +3 -3
  222. package/expansion/_expansion-theme.scss +7 -0
  223. package/fesm2022/autocomplete.mjs +26 -48
  224. package/fesm2022/autocomplete.mjs.map +1 -1
  225. package/fesm2022/badge.mjs +10 -10
  226. package/fesm2022/bottom-sheet.mjs +10 -10
  227. package/fesm2022/button-toggle.mjs +10 -10
  228. package/fesm2022/button.mjs +34 -34
  229. package/fesm2022/card.mjs +46 -46
  230. package/fesm2022/checkbox.mjs +14 -14
  231. package/fesm2022/chips.mjs +40 -40
  232. package/fesm2022/core.mjs +59 -59
  233. package/fesm2022/core.mjs.map +1 -1
  234. package/fesm2022/datepicker.mjs +89 -87
  235. package/fesm2022/datepicker.mjs.map +1 -1
  236. package/fesm2022/dialog.mjs +25 -25
  237. package/fesm2022/divider.mjs +7 -7
  238. package/fesm2022/expansion.mjs +25 -25
  239. package/fesm2022/form-field.mjs +36 -36
  240. package/fesm2022/form-field.mjs.map +1 -1
  241. package/fesm2022/grid-list.mjs +22 -22
  242. package/fesm2022/icon/testing.mjs +7 -7
  243. package/fesm2022/icon.mjs +10 -10
  244. package/fesm2022/input.mjs +7 -7
  245. package/fesm2022/list.mjs +49 -49
  246. package/fesm2022/menu.mjs +34 -28
  247. package/fesm2022/menu.mjs.map +1 -1
  248. package/fesm2022/paginator.mjs +10 -10
  249. package/fesm2022/progress-bar.mjs +8 -8
  250. package/fesm2022/progress-bar.mjs.map +1 -1
  251. package/fesm2022/progress-spinner.mjs +7 -7
  252. package/fesm2022/radio.mjs +10 -10
  253. package/fesm2022/select.mjs +15 -10
  254. package/fesm2022/select.mjs.map +1 -1
  255. package/fesm2022/sidenav.mjs +22 -22
  256. package/fesm2022/slide-toggle.mjs +14 -14
  257. package/fesm2022/slider.mjs +16 -16
  258. package/fesm2022/snack-bar.mjs +22 -22
  259. package/fesm2022/sort.mjs +13 -13
  260. package/fesm2022/stepper.mjs +31 -31
  261. package/fesm2022/table.mjs +55 -55
  262. package/fesm2022/tabs.mjs +46 -47
  263. package/fesm2022/tabs.mjs.map +1 -1
  264. package/fesm2022/toolbar.mjs +10 -10
  265. package/fesm2022/tooltip.mjs +10 -10
  266. package/fesm2022/tree.mjs +25 -25
  267. package/form-field/_form-field-theme.scss +15 -0
  268. package/form-field/index.d.ts +6 -0
  269. package/grid-list/_grid-list-theme.scss +7 -0
  270. package/icon/_icon-theme.scss +9 -0
  271. package/input/_input-theme.scss +8 -0
  272. package/list/_list-theme.scss +8 -0
  273. package/menu/_menu-theme.scss +7 -0
  274. package/menu/index.d.ts +1 -1
  275. package/package.json +3 -2
  276. package/paginator/_paginator-theme.scss +7 -0
  277. package/progress-bar/_progress-bar-theme.scss +11 -0
  278. package/progress-spinner/_progress-spinner-theme.scss +11 -0
  279. package/radio/_radio-theme.scss +10 -0
  280. package/schematics/collection.json +6 -0
  281. package/schematics/ng-add/index.js +1 -1
  282. package/schematics/ng-add/index.mjs +1 -1
  283. package/schematics/ng-add/theming/create-custom-theme.js +5 -6
  284. package/schematics/ng-add/theming/create-custom-theme.mjs +5 -6
  285. package/schematics/ng-generate/m3-theme/index_bundled.js +2682 -0
  286. package/schematics/ng-generate/m3-theme/index_bundled.js.map +7 -0
  287. package/schematics/ng-generate/m3-theme/schema.json +56 -0
  288. package/schematics/ng-update/index_bundled.js +215 -1
  289. package/schematics/ng-update/index_bundled.js.map +4 -4
  290. package/select/_select-theme.scss +9 -0
  291. package/select/index.d.ts +5 -0
  292. package/sidenav/_sidenav-theme.scss +7 -0
  293. package/slide-toggle/_slide-toggle-theme.scss +11 -0
  294. package/slider/_slider-theme.scss +10 -0
  295. package/snack-bar/_snack-bar-theme.scss +10 -0
  296. package/sort/_sort-theme.scss +7 -0
  297. package/stepper/_stepper-theme.scss +9 -0
  298. package/table/_table-theme.scss +7 -0
  299. package/tabs/_tabs-theme.scss +20 -0
  300. package/tabs/index.d.ts +2 -8
  301. package/toolbar/_toolbar-theme.scss +9 -0
  302. package/tooltip/_tooltip-theme.scss +8 -0
  303. package/tree/_tree-theme.scss +7 -0
  304. /package/core/{theming → m2}/_palette.scss +0 -0
@@ -5,14 +5,14 @@
5
5
  @use '@material/theme/theme' as mdc-theme;
6
6
  @use '@material/theme/keys' as mdc-keys;
7
7
  @use '../style/sass-utils';
8
- @use '../theming/palette';
9
- @use '../theming/theming';
10
- @use '../typography/typography';
8
+ @use '../m2/palette' as m2-palette;
9
+ @use '../m2/theming' as m2-theming;
10
+ @use '../m2/typography' as m2-typography;
11
11
 
12
12
  // Indicates whether we're building internally. Used for backwards compatibility.
13
13
  $private-is-internal-build: false;
14
14
 
15
- $_placeholder-color-palette: theming.define-palette(palette.$red-palette);
15
+ $_placeholder-color-palette: m2-theming.define-palette(m2-palette.$red-palette);
16
16
 
17
17
  // Placeholder color config that can be passed to token getter functions when generating token
18
18
  // slots.
@@ -21,11 +21,11 @@ $placeholder-color-config: (
21
21
  accent: $_placeholder-color-palette,
22
22
  warn: $_placeholder-color-palette,
23
23
  is-dark: false,
24
- foreground: palette.$light-theme-foreground-palette,
25
- background: palette.$light-theme-background-palette,
24
+ foreground: m2-palette.$light-theme-foreground-palette,
25
+ background: m2-palette.$light-theme-background-palette,
26
26
  );
27
27
 
28
- $_placeholder-typography-level-config: typography.typography-config-level-from-mdc(body1);
28
+ $_placeholder-typography-level-config: m2-typography.typography-config-level-from-mdc(body1);
29
29
 
30
30
  // Placeholder typography config that can be passed to token getter functions when generating token
31
31
  // slots.
@@ -203,42 +203,50 @@ $_component-prefix: null;
203
203
  }
204
204
  $overrides: map.get($tokens, list.append($prefix, $color-variant));
205
205
  @if $overrides == null {
206
- @error #{'Invalid color variant: '}#{$color-variant}#{'. Supported color variants are: '}#{
207
- _supported-color-variants($tokens, $prefix)
208
- }#{'.'};
206
+ $variants: _supported-color-variants($tokens, $prefix);
207
+ $secondary-message: if($variants == (),
208
+ 'Mixin does not support color variants',
209
+ 'Supported color variants are: #{$variants}'
210
+ );
211
+
212
+ @error 'Invalid color variant: #{$color-variant}. #{$secondary-message}.';
209
213
  }
210
214
  @return if($emit-overrides-only, $overrides, map.merge($values, $overrides));
211
215
  }
212
216
 
213
- /// Emits new token values for the given tokens.
214
- /// Verifies that the tokens passed in are valid tokens.
217
+ /// Emits new token values for the given token overrides.
218
+ /// Verifies that the overrides passed in are valid tokens.
215
219
  /// New token values are emitted under the current selector or root.
216
- @mixin batch-create-token-values(
217
- $tokens: (),
218
- $mat-prefix: '',
219
- $mdc-prefix: '',
220
- $mat-tokens: (),
221
- $mdc-tokens: ()
222
- ) {
223
- $custom-mat-tokens: ();
224
- $custom-mdc-tokens: ();
220
+ @mixin batch-create-token-values($overrides: (), $token-maps...) {
221
+ @include _validate-token-overrides($overrides, $token-maps);
225
222
 
226
- $mat-token-names: map.keys($mat-tokens);
227
- $mdc-token-names: map.keys($mdc-tokens);
228
- $valid-token-names: _get-valid-token-names($mat-tokens, $mdc-tokens);
223
+ @each $token-map in $token-maps {
224
+ $prefix: map.get($token-map, prefix);
225
+ $tokens: map.get($token-map, tokens);
229
226
 
230
- @each $name, $value in $tokens {
231
- $is-mat-token: list.index($mat-token-names, $name) != null;
232
- $is-mdc-token: list.index($mdc-token-names, $name) != null;
227
+ @each $name, $value in $tokens {
228
+ $tokens: map.set($tokens, $name, map.get($overrides, $name));
229
+ }
233
230
 
234
- @if ($is-mat-token) {
235
- $custom-mat-tokens: map.set($custom-mat-tokens, $name, $value);
231
+ @include sass-utils.current-selector-or-root() {
232
+ @include create-token-values($prefix, $tokens);
236
233
  }
234
+ }
235
+ }
237
236
 
238
- @if ($is-mdc-token) {
239
- $custom-mdc-tokens: map.set($custom-mdc-tokens, $name, $value);
237
+ /// Verifies that the token overrides exist and are used in one of the given token maps.
238
+ @mixin _validate-token-overrides($overrides: (), $token-maps) {
239
+ $valid-token-names: ();
240
+
241
+ @each $token-map in $token-maps {
242
+ @each $name, $value in map.get($token-map, tokens) {
243
+ @if ($value != null and list.index($valid-token-names, $name) == null) {
244
+ $valid-token-names: list.append($valid-token-names, $name);
245
+ }
240
246
  }
247
+ }
241
248
 
249
+ @each $name in map.keys($overrides) {
242
250
  @if (list.index($valid-token-names, $name) == null) {
243
251
  @error (
244
252
  'Invalid token: "' + $name + '"'
@@ -246,22 +254,4 @@ $_component-prefix: null;
246
254
  );
247
255
  }
248
256
  }
249
-
250
- @include sass-utils.current-selector-or-root() {
251
- @include create-token-values($mat-prefix, $custom-mat-tokens);
252
- @include create-token-values($mdc-prefix, $custom-mdc-tokens);
253
- }
254
- }
255
-
256
- /// Returns the union of token names whose values are not null.
257
- @function _get-valid-token-names($mat-tokens, $mdc-tokens) {
258
- $mat-and-mdc-tokens: map.merge($mat-tokens, $mdc-tokens);
259
-
260
- @each $name, $value in $mat-and-mdc-tokens {
261
- @if ($value == null) {
262
- $mat-and-mdc-tokens: map.remove($mat-and-mdc-tokens, $name);
263
- }
264
- }
265
-
266
- @return map.keys($mat-and-mdc-tokens);
267
257
  }
@@ -2,7 +2,7 @@
2
2
  @use '../../token-utils';
3
3
  @use '../../../theming/inspection';
4
4
  @use '../../../style/sass-utils';
5
- @use '../../../theming/palette';
5
+ @use '../../../m2/palette' as m2-palette;
6
6
 
7
7
  // The prefix used to generate the fully qualified name for tokens in this file.
8
8
  $prefix: (mat, chip);
@@ -26,8 +26,8 @@ $prefix: (mat, chip);
26
26
  $foreground: null;
27
27
  @if $palette-name == null {
28
28
  $is-dark: inspection.get-theme-type($theme) == dark;
29
- $grey-50: map.get(palette.$grey-palette, 50);
30
- $grey-900: map.get(palette.$grey-palette, 900);
29
+ $grey-50: map.get(m2-palette.$grey-palette, 50);
30
+ $grey-900: map.get(m2-palette.$grey-palette, 900);
31
31
  $foreground: if($is-dark, $grey-50, $grey-900);
32
32
  }
33
33
  @else {
@@ -6,7 +6,7 @@
6
6
  @use '../../../style/sass-utils';
7
7
  @use '../../../theming/theming';
8
8
  @use '../../../theming/inspection';
9
- @use '../../../theming/palette';
9
+ @use '../../../m2/palette' as m2-palette;
10
10
 
11
11
  // The prefix used to generate the fully qualified name for tokens in this file.
12
12
  $prefix: (mat, form-field);
@@ -34,10 +34,10 @@ $prefix: (mat, form-field);
34
34
  // always on a white background inside the dropdown, causing them to blend in.
35
35
  // Since we can't change background of the dropdown, we need to explicitly
36
36
  // reset the color of the options to something dark.
37
- select-option-text-color: if($is-dark, palette.$dark-primary-text, inherit),
37
+ select-option-text-color: if($is-dark, m2-palette.$dark-primary-text, inherit),
38
38
  // Note the spelling of the `GrayText` here which is a system color. See:
39
39
  // https://developer.mozilla.org/en-US/docs/Web/CSS/system-color
40
- select-disabled-option-text-color: if($is-dark, palette.$dark-disabled-text, GrayText),
40
+ select-disabled-option-text-color: if($is-dark, m2-palette.$dark-disabled-text, GrayText),
41
41
 
42
42
  // These tokens are necessary for M3. MDC has them built in already, but:
43
43
  // 1. They are too specific, breaking a lot of internal clients.
@@ -1,5 +1,6 @@
1
1
  @use 'sass:map';
2
- @use '../../../theming/palette';
2
+ @use '../../../m2/palette' as m2-palette;
3
+ @use '../../../m2/theming' as m2-theming;
3
4
  @use '../../../theming/theming';
4
5
  @use '../../../theming/inspection';
5
6
  @use '../../../style/sass-utils';
@@ -51,7 +52,7 @@ $prefix: (mdc, checkbox);
51
52
  $border-color: sass-utils.safe-color-change(
52
53
  inspection.get-theme-color($theme, foreground, base), $alpha: 0.54);
53
54
  $active-border-color:
54
- theming.get-color-from-palette(palette.$gray-palette, if($is-dark, 200, 900));
55
+ m2-theming.get-color-from-palette(m2-palette.$gray-palette, if($is-dark, 200, 900));
55
56
  $selected-checkmark-color: null;
56
57
 
57
58
  // Ideally we would derive all values directly from the theme, but it causes a lot of regressions
@@ -5,7 +5,7 @@
5
5
  @use '../../../style/sass-utils';
6
6
  @use '../../../theming/theming';
7
7
  @use '../../../theming/inspection';
8
- @use '../../../theming/palette';
8
+ @use '../../../m2/palette' as m2-palette;
9
9
 
10
10
  // The prefix used to generate the fully qualified name for tokens in this file.
11
11
  $prefix: (mdc, chip);
@@ -224,8 +224,8 @@ $prefix: (mdc, chip);
224
224
 
225
225
  @if $palette-name == null {
226
226
  $is-dark: inspection.get-theme-type($theme) == dark;
227
- $grey-50: map.get(palette.$grey-palette, 50);
228
- $grey-900: map.get(palette.$grey-palette, 900);
227
+ $grey-50: map.get(m2-palette.$grey-palette, 50);
228
+ $grey-900: map.get(m2-palette.$grey-palette, 900);
229
229
  $foreground: if($is-dark, $grey-50, $grey-900);
230
230
 
231
231
  $surface: inspection.get-theme-color($theme, background, card);
@@ -1,5 +1,6 @@
1
1
  @use 'sass:map';
2
- @use '../../../theming/palette';
2
+ @use '../../../m2/palette' as m2-palette;
3
+ @use '../../../m2/theming' as m2-theming;
3
4
  @use '../../../theming/theming';
4
5
  @use '../../../theming/inspection';
5
6
  @use '../../../style/sass-utils';
@@ -45,7 +46,7 @@ $prefix: (mdc, radio);
45
46
  @function get-color-tokens($theme, $palette-name: accent) {
46
47
  $is-dark: inspection.get-theme-type($theme) == dark;
47
48
  $palette-color: inspection.get-theme-color($theme, $palette-name, default);
48
- $icon-color: theming.get-color-from-palette(palette.$gray-palette, if($is-dark, 200, 900));
49
+ $icon-color: m2-theming.get-color-from-palette(m2-palette.$gray-palette, if($is-dark, 200, 900));
49
50
 
50
51
  @return (
51
52
  disabled-selected-icon-color: inspection.get-theme-color($theme, foreground, icon, 1),
@@ -1,4 +1,5 @@
1
1
  @use './typography';
2
+ @use '../m2/typography' as m2-typography;
2
3
  @use '../../autocomplete/autocomplete-theme';
3
4
  @use '../../badge/badge-theme';
4
5
  @use '../../bottom-sheet/bottom-sheet-theme';
@@ -40,9 +41,9 @@
40
41
 
41
42
  // Includes all of the typographic styles.
42
43
  @mixin all-component-typographies($theme: null) {
43
- // If no actual color configuration has been specified, create a default one.
44
+ // If no actual typography configuration has been specified, create a default one.
44
45
  @if not inspection.theme-has($theme, typography) {
45
- $theme: typography.define-typography-config();
46
+ $theme: m2-typography.define-typography-config();
46
47
  }
47
48
 
48
49
  // TODO: COMP-309: Do not use individual mixins. Instead, use the all-theme mixin and only
@@ -1,10 +1,4 @@
1
1
  @use 'sass:list';
2
- @use 'sass:math';
3
- @use './property-getters';
4
-
5
- // Property getters live in their own file to avoid circular dependencies, but we re-export them
6
- // here so that historical imports from this file continue to work without needing to be updated.
7
- @forward './property-getters';
8
2
 
9
3
  /// Outputs the shorthand `font` CSS property, based on a set of typography values. Falls back to
10
4
  /// the individual properties if a value that isn't allowed in the shorthand is passed in.
@@ -35,23 +29,3 @@
35
29
  font: $font-weight list.slash($font-size, $line-height) $font-family;
36
30
  }
37
31
  }
38
-
39
- /// Emits CSS styles for the given typography level.
40
- /// @param {Map} $config A typography config.
41
- /// @param {Map} $level A typography level.
42
- @mixin typography-level($config, $level) {
43
- // we deliberately do not use the font shorthand here because it overrides
44
- // certain font properties that can't be configured in the current typography
45
- // config, e.g. the font-variant-caps or font-feature-settings property
46
- font-size: property-getters.font-size($config, $level);
47
- font-weight: property-getters.font-weight($config, $level);
48
- line-height: property-getters.line-height($config, $level);
49
- font-family: property-getters.font-family($config, $level);
50
- letter-spacing: property-getters.letter-spacing($config, $level);
51
- }
52
-
53
- /// Coerce a value to `em` if it is a unitless number, otherwise returns
54
- /// the value provided.
55
- @function private-coerce-unitless-to-em($value) {
56
- @return if(math.is-unitless($value), 1em * $value, $value);
57
- }
@@ -3,12 +3,10 @@
3
3
  @use 'sass:string';
4
4
  @use 'typography-utils';
5
5
  @use '../theming/inspection';
6
- @use './versioning';
7
6
 
8
7
  // Definition and versioning functions live in their own files to avoid circular dependencies, but
9
8
  // we re-export them here so that historical imports from this file continue to work without needing
10
9
  // to be updated.
11
- @forward './definition';
12
10
  @forward './versioning';
13
11
 
14
12
  @mixin typography-hierarchy($theme, $selector: '.mat-typography', $back-compat: false) {
@@ -1,5 +1,5 @@
1
1
  @use 'sass:map';
2
- @use './definition';
2
+ @use '../m2/typography' as m2-typography;
3
3
 
4
4
  // Whether a config is for the Material Design 2018 typography system.
5
5
  @function private-typography-is-2018-config($config) {
@@ -44,7 +44,7 @@
44
44
  $non-null-args: map.merge($non-null-args, ($key: $value));
45
45
  }
46
46
  }
47
- @return definition.define-legacy-typography-config($non-null-args...);
47
+ @return m2-typography.define-legacy-typography-config($non-null-args...);
48
48
  }
49
49
  @return $config;
50
50
  }
@@ -83,7 +83,7 @@
83
83
  button: map.get($config, button),
84
84
  caption: map.get($config, caption),
85
85
  overline: if(map.get($config, overline), map.get($config, overline),
86
- definition.define-typography-level(12px, 32px, 500)
86
+ m2-typography.define-typography-level(12px, 32px, 500)
87
87
  )
88
88
  );
89
89
  }
@@ -134,6 +134,15 @@ $calendar-weekday-table-font-size: 11px !default;
134
134
  }
135
135
  }
136
136
 
137
+ /// Outputs the CSS variable values for the given tokens.
138
+ /// @param {Map} $tokens The token values to emit.
139
+ @mixin overrides($tokens: ()) {
140
+ @include token-utils.batch-create-token-values(
141
+ $tokens,
142
+ (prefix: tokens-mat-datepicker.$prefix, tokens: tokens-mat-datepicker.get-token-slots()),
143
+ );
144
+ }
145
+
137
146
  /// Outputs all (base, color, typography, and density) theme styles for the mat-datepicker.
138
147
  /// @param {Map} $theme The theme to generate styles for.
139
148
  /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
@@ -732,10 +732,7 @@ declare abstract class MatDatepickerBase<C extends MatDatepickerControl<D>, S, D
732
732
  readonly openedStream: EventEmitter<void>;
733
733
  /** Emits when the datepicker has been closed. */
734
734
  readonly closedStream: EventEmitter<void>;
735
- /**
736
- * Classes to be passed to the date picker panel.
737
- * Supports string and string array values, similar to `ngClass`.
738
- */
735
+ /** Classes to be passed to the date picker panel. */
739
736
  get panelClass(): string | string[];
740
737
  set panelClass(value: string | string[]);
741
738
  private _panelClass;
@@ -1267,6 +1264,11 @@ export declare class MatDateRangeInput<D> implements MatFormFieldControl<DateRan
1267
1264
  ngControl: NgControl | null;
1268
1265
  /** Emits when the input's state has changed. */
1269
1266
  readonly stateChanges: Subject<void>;
1267
+ /**
1268
+ * Disable the automatic labeling to avoid issues like #27241.
1269
+ * @docs-private
1270
+ */
1271
+ readonly disableAutomaticLabeling = true;
1270
1272
  constructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, control: ControlContainer, _dateAdapter: DateAdapter<D>, _formField?: _MatFormFieldPartial | undefined);
1271
1273
  /**
1272
1274
  * Implemented as a part of `MatFormFieldControl`.
@@ -56,6 +56,14 @@
56
56
  @else {}
57
57
  }
58
58
 
59
+ @mixin overrides($tokens: ()) {
60
+ @include token-utils.batch-create-token-values(
61
+ $tokens,
62
+ (prefix: tokens-mdc-dialog.$prefix, tokens: tokens-mdc-dialog.get-token-slots()),
63
+ (prefix: tokens-mat-dialog.$prefix, tokens: tokens-mat-dialog.get-token-slots()),
64
+ );
65
+ }
66
+
59
67
  @mixin theme($theme) {
60
68
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-dialog') {
61
69
  @if inspection.get-theme-version($theme) == 1 {
@@ -44,6 +44,13 @@
44
44
  @else {}
45
45
  }
46
46
 
47
+ @mixin overrides($tokens: ()) {
48
+ @include token-utils.batch-create-token-values(
49
+ $tokens,
50
+ (prefix: tokens-mat-divider.$prefix, tokens: tokens-mat-divider.get-token-slots()),
51
+ );
52
+ }
53
+
47
54
  @mixin theme($theme) {
48
55
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-divider') {
49
56
  @if inspection.get-theme-version($theme) == 1 {
@@ -17,10 +17,10 @@ export class MatAutocompleteOrigin {
17
17
  elementRef) {
18
18
  this.elementRef = elementRef;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatAutocompleteOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.1", type: MatAutocompleteOrigin, isStandalone: true, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatAutocompleteOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.5", type: MatAutocompleteOrigin, isStandalone: true, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: '[matAutocompleteOrigin]',