@angular/material 19.0.0-next.8 → 19.0.0-rc.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 (229) hide show
  1. package/_index.scss +1 -2
  2. package/autocomplete/_autocomplete-theme.scss +37 -24
  3. package/autocomplete/index.d.ts +5 -6
  4. package/badge/_badge-theme.scss +38 -24
  5. package/bottom-sheet/_bottom-sheet-theme.scss +32 -20
  6. package/button/_button-theme.scss +229 -105
  7. package/button/_fab-theme.scss +95 -44
  8. package/button/_icon-button-theme.scss +38 -25
  9. package/button/index.d.ts +3 -3
  10. package/button-toggle/_button-toggle-theme.scss +62 -37
  11. package/card/_card-theme.scss +79 -38
  12. package/card/index.d.ts +2 -3
  13. package/checkbox/_checkbox-theme.scss +16 -10
  14. package/chips/_chips-theme.scss +64 -30
  15. package/core/_core-theme.scss +55 -37
  16. package/core/_core.scss +3 -6
  17. package/core/option/_optgroup-theme.scss +29 -18
  18. package/core/option/_option-theme.scss +34 -21
  19. package/core/ripple/_ripple-theme.scss +33 -21
  20. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +49 -23
  21. package/core/theming/_config-validation.scss +4 -4
  22. package/core/theming/_definition.scss +12 -2
  23. package/core/tokens/_m3-system.scss +86 -42
  24. package/core/tokens/_token-utils.scss +91 -34
  25. package/core/tokens/m2/mat/_badge.scss +12 -3
  26. package/core/tokens/m2/mdc/_radio.scss +1 -1
  27. package/core/tokens/m3/definitions/_md-comp-elevated-card.scss +1 -1
  28. package/core/tokens/m3/mat/_badge.scss +6 -3
  29. package/datepicker/_datepicker-theme.scss +53 -32
  30. package/datepicker/index.d.ts +33 -34
  31. package/dialog/_dialog-theme.scss +46 -23
  32. package/divider/_divider-theme.scss +28 -17
  33. package/expansion/_expansion-theme.scss +36 -24
  34. package/fesm2022/autocomplete/testing.mjs +2 -5
  35. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  36. package/fesm2022/autocomplete.mjs +225 -148
  37. package/fesm2022/autocomplete.mjs.map +1 -1
  38. package/fesm2022/badge/testing.mjs +2 -5
  39. package/fesm2022/badge/testing.mjs.map +1 -1
  40. package/fesm2022/badge.mjs +45 -35
  41. package/fesm2022/badge.mjs.map +1 -1
  42. package/fesm2022/bottom-sheet/testing.mjs +1 -1
  43. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  44. package/fesm2022/bottom-sheet.mjs +80 -58
  45. package/fesm2022/bottom-sheet.mjs.map +1 -1
  46. package/fesm2022/button/testing.mjs +2 -2
  47. package/fesm2022/button/testing.mjs.map +1 -1
  48. package/fesm2022/button-toggle/testing.mjs +4 -7
  49. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  50. package/fesm2022/button-toggle.mjs +82 -45
  51. package/fesm2022/button-toggle.mjs.map +1 -1
  52. package/fesm2022/button.mjs +106 -79
  53. package/fesm2022/button.mjs.map +1 -1
  54. package/fesm2022/card/testing.mjs +3 -6
  55. package/fesm2022/card/testing.mjs.map +1 -1
  56. package/fesm2022/card.mjs +56 -69
  57. package/fesm2022/card.mjs.map +1 -1
  58. package/fesm2022/checkbox/testing.mjs +4 -7
  59. package/fesm2022/checkbox/testing.mjs.map +1 -1
  60. package/fesm2022/checkbox.mjs +104 -62
  61. package/fesm2022/checkbox.mjs.map +1 -1
  62. package/fesm2022/chips/testing.mjs +11 -14
  63. package/fesm2022/chips/testing.mjs.map +1 -1
  64. package/fesm2022/chips.mjs +322 -276
  65. package/fesm2022/chips.mjs.map +1 -1
  66. package/fesm2022/core/testing.mjs +5 -11
  67. package/fesm2022/core/testing.mjs.map +1 -1
  68. package/fesm2022/core.mjs +242 -187
  69. package/fesm2022/core.mjs.map +1 -1
  70. package/fesm2022/datepicker/testing.mjs +13 -22
  71. package/fesm2022/datepicker/testing.mjs.map +1 -1
  72. package/fesm2022/datepicker.mjs +827 -582
  73. package/fesm2022/datepicker.mjs.map +1 -1
  74. package/fesm2022/dialog/testing.mjs +15 -10
  75. package/fesm2022/dialog/testing.mjs.map +1 -1
  76. package/fesm2022/dialog.mjs +221 -156
  77. package/fesm2022/dialog.mjs.map +1 -1
  78. package/fesm2022/divider/testing.mjs +1 -1
  79. package/fesm2022/divider/testing.mjs.map +1 -1
  80. package/fesm2022/divider.mjs +10 -12
  81. package/fesm2022/divider.mjs.map +1 -1
  82. package/fesm2022/expansion/testing.mjs +7 -10
  83. package/fesm2022/expansion/testing.mjs.map +1 -1
  84. package/fesm2022/expansion.mjs +86 -80
  85. package/fesm2022/expansion.mjs.map +1 -1
  86. package/fesm2022/form-field/testing.mjs +12 -15
  87. package/fesm2022/form-field/testing.mjs.map +1 -1
  88. package/fesm2022/form-field.mjs +179 -132
  89. package/fesm2022/form-field.mjs.map +1 -1
  90. package/fesm2022/grid-list/testing.mjs +11 -17
  91. package/fesm2022/grid-list/testing.mjs.map +1 -1
  92. package/fesm2022/grid-list.mjs +75 -56
  93. package/fesm2022/grid-list.mjs.map +1 -1
  94. package/fesm2022/icon/testing.mjs +8 -8
  95. package/fesm2022/icon/testing.mjs.map +1 -1
  96. package/fesm2022/icon.mjs +66 -46
  97. package/fesm2022/icon.mjs.map +1 -1
  98. package/fesm2022/input/testing.mjs +3 -3
  99. package/fesm2022/input/testing.mjs.map +1 -1
  100. package/fesm2022/input.mjs +103 -72
  101. package/fesm2022/input.mjs.map +1 -1
  102. package/fesm2022/list/testing.mjs +21 -38
  103. package/fesm2022/list/testing.mjs.map +1 -1
  104. package/fesm2022/list.mjs +197 -195
  105. package/fesm2022/list.mjs.map +1 -1
  106. package/fesm2022/menu/testing.mjs +3 -6
  107. package/fesm2022/menu/testing.mjs.map +1 -1
  108. package/fesm2022/menu.mjs +178 -127
  109. package/fesm2022/menu.mjs.map +1 -1
  110. package/fesm2022/paginator/testing.mjs +10 -13
  111. package/fesm2022/paginator/testing.mjs.map +1 -1
  112. package/fesm2022/paginator.mjs +83 -58
  113. package/fesm2022/paginator.mjs.map +1 -1
  114. package/fesm2022/progress-bar/testing.mjs +1 -1
  115. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  116. package/fesm2022/progress-bar.mjs +36 -35
  117. package/fesm2022/progress-bar.mjs.map +1 -1
  118. package/fesm2022/progress-spinner/testing.mjs +1 -1
  119. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  120. package/fesm2022/progress-spinner.mjs +28 -14
  121. package/fesm2022/progress-spinner.mjs.map +1 -1
  122. package/fesm2022/radio/testing.mjs +6 -12
  123. package/fesm2022/radio/testing.mjs.map +1 -1
  124. package/fesm2022/radio.mjs +123 -87
  125. package/fesm2022/radio.mjs.map +1 -1
  126. package/fesm2022/select/testing.mjs +6 -9
  127. package/fesm2022/select/testing.mjs.map +1 -1
  128. package/fesm2022/select.mjs +219 -182
  129. package/fesm2022/select.mjs.map +1 -1
  130. package/fesm2022/sidenav/testing.mjs +6 -6
  131. package/fesm2022/sidenav/testing.mjs.map +1 -1
  132. package/fesm2022/sidenav.mjs +136 -125
  133. package/fesm2022/sidenav.mjs.map +1 -1
  134. package/fesm2022/slide-toggle/testing.mjs +3 -6
  135. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  136. package/fesm2022/slide-toggle.mjs +77 -47
  137. package/fesm2022/slide-toggle.mjs.map +1 -1
  138. package/fesm2022/slider/testing.mjs +2 -2
  139. package/fesm2022/slider/testing.mjs.map +1 -1
  140. package/fesm2022/slider.mjs +262 -194
  141. package/fesm2022/slider.mjs.map +1 -1
  142. package/fesm2022/snack-bar/testing.mjs +4 -7
  143. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  144. package/fesm2022/snack-bar.mjs +143 -111
  145. package/fesm2022/snack-bar.mjs.map +1 -1
  146. package/fesm2022/sort/testing.mjs +3 -6
  147. package/fesm2022/sort/testing.mjs.map +1 -1
  148. package/fesm2022/sort.mjs +94 -74
  149. package/fesm2022/sort.mjs.map +1 -1
  150. package/fesm2022/stepper/testing.mjs +4 -4
  151. package/fesm2022/stepper/testing.mjs.map +1 -1
  152. package/fesm2022/stepper.mjs +146 -113
  153. package/fesm2022/stepper.mjs.map +1 -1
  154. package/fesm2022/table/testing.mjs +13 -25
  155. package/fesm2022/table/testing.mjs.map +1 -1
  156. package/fesm2022/table.mjs +183 -194
  157. package/fesm2022/table.mjs.map +1 -1
  158. package/fesm2022/tabs/testing.mjs +5 -5
  159. package/fesm2022/tabs/testing.mjs.map +1 -1
  160. package/fesm2022/tabs.mjs +329 -251
  161. package/fesm2022/tabs.mjs.map +1 -1
  162. package/fesm2022/timepicker/testing.mjs +7 -16
  163. package/fesm2022/timepicker/testing.mjs.map +1 -1
  164. package/fesm2022/timepicker.mjs +160 -155
  165. package/fesm2022/timepicker.mjs.map +1 -1
  166. package/fesm2022/toolbar/testing.mjs +2 -5
  167. package/fesm2022/toolbar/testing.mjs.map +1 -1
  168. package/fesm2022/toolbar.mjs +26 -17
  169. package/fesm2022/toolbar.mjs.map +1 -1
  170. package/fesm2022/tooltip/testing.mjs +6 -9
  171. package/fesm2022/tooltip/testing.mjs.map +1 -1
  172. package/fesm2022/tooltip.mjs +97 -74
  173. package/fesm2022/tooltip.mjs.map +1 -1
  174. package/fesm2022/tree/testing.mjs +3 -6
  175. package/fesm2022/tree/testing.mjs.map +1 -1
  176. package/fesm2022/tree.mjs +57 -61
  177. package/fesm2022/tree.mjs.map +1 -1
  178. package/form-field/_form-field-theme.scss +114 -61
  179. package/form-field/index.d.ts +9 -10
  180. package/grid-list/_grid-list-theme.scss +25 -15
  181. package/icon/_icon-theme.scss +22 -14
  182. package/input/_input-theme.scss +18 -11
  183. package/list/_list-theme.scss +89 -47
  184. package/list/index.d.ts +20 -21
  185. package/menu/_menu-theme.scss +33 -21
  186. package/menu/index.d.ts +8 -9
  187. package/package.json +2 -2
  188. package/paginator/_paginator-theme.scss +39 -23
  189. package/prebuilt-themes/azure-blue.css +1 -1
  190. package/prebuilt-themes/cyan-orange.css +1 -1
  191. package/prebuilt-themes/deeppurple-amber.css +1 -1
  192. package/prebuilt-themes/indigo-pink.css +1 -1
  193. package/prebuilt-themes/magenta-violet.css +1 -1
  194. package/prebuilt-themes/pink-bluegrey.css +1 -1
  195. package/prebuilt-themes/purple-green.css +1 -1
  196. package/prebuilt-themes/rose-red.css +1 -1
  197. package/progress-bar/_progress-bar-theme.scss +20 -16
  198. package/progress-spinner/_progress-spinner-theme.scss +41 -25
  199. package/progress-spinner/index.d.ts +3 -4
  200. package/radio/_radio-theme.scss +60 -32
  201. package/radio/index.d.ts +2 -3
  202. package/schematics/collection.json +3 -3
  203. package/schematics/ng-add/index.js +1 -1
  204. package/schematics/ng-add/index.mjs +1 -1
  205. package/schematics/ng-add/theming/create-custom-theme.js +1 -6
  206. package/schematics/ng-add/theming/create-custom-theme.mjs +1 -6
  207. package/schematics/ng-generate/{m3-theme → theme-color}/index_bundled.js +480 -288
  208. package/schematics/ng-generate/theme-color/index_bundled.js.map +7 -0
  209. package/schematics/ng-generate/{m3-theme → theme-color}/schema.json +7 -13
  210. package/schematics/ng-update/index_bundled.js +6 -1
  211. package/schematics/ng-update/index_bundled.js.map +1 -1
  212. package/select/_select-theme.scss +38 -25
  213. package/select/index.d.ts +6 -7
  214. package/sidenav/_sidenav-theme.scss +28 -17
  215. package/slide-toggle/_slide-toggle-theme.scss +52 -28
  216. package/slider/_slider-theme.scss +62 -38
  217. package/snack-bar/_snack-bar-theme.scss +29 -17
  218. package/sort/_sort-theme.scss +33 -21
  219. package/stepper/_stepper-theme.scss +40 -27
  220. package/stepper/index.d.ts +14 -15
  221. package/table/_table-theme.scss +36 -23
  222. package/tabs/_tabs-theme.scss +97 -50
  223. package/tabs/index.d.ts +2 -2
  224. package/timepicker/_timepicker-theme.scss +37 -24
  225. package/toolbar/_toolbar-theme.scss +35 -22
  226. package/tooltip/_tooltip-theme.scss +18 -15
  227. package/tooltip/index.d.ts +5 -6
  228. package/tree/_tree-theme.scss +33 -21
  229. package/schematics/ng-generate/m3-theme/index_bundled.js.map +0 -7
@@ -13,13 +13,16 @@
13
13
  @mixin base($theme) {
14
14
  @if inspection.get-theme-version($theme) == 1 {
15
15
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
16
- }
17
- @else {
16
+ } @else {
18
17
  .mat-mdc-standard-chip {
19
18
  @include token-utils.create-token-values(
20
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-unthemable-tokens());
19
+ tokens-mdc-chip.$prefix,
20
+ tokens-mdc-chip.get-unthemable-tokens()
21
+ );
21
22
  @include token-utils.create-token-values(
22
- tokens-mat-chip.$prefix, tokens-mat-chip.get-unthemable-tokens());
23
+ tokens-mat-chip.$prefix,
24
+ tokens-mat-chip.get-unthemable-tokens()
25
+ );
23
26
  }
24
27
  }
25
28
  }
@@ -32,35 +35,50 @@
32
35
  @mixin color($theme, $options...) {
33
36
  @if inspection.get-theme-version($theme) == 1 {
34
37
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
35
- }
36
- @else {
38
+ } @else {
37
39
  .mat-mdc-standard-chip {
38
40
  @include token-utils.create-token-values(
39
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-color-tokens($theme));
41
+ tokens-mdc-chip.$prefix,
42
+ tokens-mdc-chip.get-color-tokens($theme)
43
+ );
40
44
  @include token-utils.create-token-values(
41
- tokens-mat-chip.$prefix, tokens-mat-chip.get-color-tokens($theme));
45
+ tokens-mat-chip.$prefix,
46
+ tokens-mat-chip.get-color-tokens($theme)
47
+ );
42
48
 
43
49
  &.mat-mdc-chip-selected,
44
50
  &.mat-mdc-chip-highlighted {
45
51
  &.mat-primary {
46
52
  @include token-utils.create-token-values(
47
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-color-tokens($theme, primary));
53
+ tokens-mdc-chip.$prefix,
54
+ tokens-mdc-chip.get-color-tokens($theme, primary)
55
+ );
48
56
  @include token-utils.create-token-values(
49
- tokens-mat-chip.$prefix, tokens-mat-chip.get-color-tokens($theme, primary));
57
+ tokens-mat-chip.$prefix,
58
+ tokens-mat-chip.get-color-tokens($theme, primary)
59
+ );
50
60
  }
51
61
 
52
62
  &.mat-accent {
53
63
  @include token-utils.create-token-values(
54
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-color-tokens($theme, accent));
64
+ tokens-mdc-chip.$prefix,
65
+ tokens-mdc-chip.get-color-tokens($theme, accent)
66
+ );
55
67
  @include token-utils.create-token-values(
56
- tokens-mat-chip.$prefix, tokens-mat-chip.get-color-tokens($theme, accent));
68
+ tokens-mat-chip.$prefix,
69
+ tokens-mat-chip.get-color-tokens($theme, accent)
70
+ );
57
71
  }
58
72
 
59
73
  &.mat-warn {
60
74
  @include token-utils.create-token-values(
61
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-color-tokens($theme, warn));
75
+ tokens-mdc-chip.$prefix,
76
+ tokens-mdc-chip.get-color-tokens($theme, warn)
77
+ );
62
78
  @include token-utils.create-token-values(
63
- tokens-mat-chip.$prefix, tokens-mat-chip.get-color-tokens($theme, warn));
79
+ tokens-mat-chip.$prefix,
80
+ tokens-mat-chip.get-color-tokens($theme, warn)
81
+ );
64
82
  }
65
83
  }
66
84
  }
@@ -72,13 +90,16 @@
72
90
  @mixin typography($theme) {
73
91
  @if inspection.get-theme-version($theme) == 1 {
74
92
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
75
- }
76
- @else {
93
+ } @else {
77
94
  .mat-mdc-standard-chip {
78
95
  @include token-utils.create-token-values(
79
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-typography-tokens($theme));
96
+ tokens-mdc-chip.$prefix,
97
+ tokens-mdc-chip.get-typography-tokens($theme)
98
+ );
80
99
  @include token-utils.create-token-values(
81
- tokens-mat-chip.$prefix, tokens-mat-chip.get-typography-tokens($theme));
100
+ tokens-mat-chip.$prefix,
101
+ tokens-mat-chip.get-typography-tokens($theme)
102
+ );
82
103
  }
83
104
  }
84
105
  }
@@ -88,25 +109,38 @@
88
109
  @mixin density($theme) {
89
110
  @if inspection.get-theme-version($theme) == 1 {
90
111
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
91
- }
92
- @else {
112
+ } @else {
93
113
  .mat-mdc-chip.mat-mdc-standard-chip {
94
114
  @include token-utils.create-token-values(
95
- tokens-mdc-chip.$prefix, tokens-mdc-chip.get-density-tokens($theme));
115
+ tokens-mdc-chip.$prefix,
116
+ tokens-mdc-chip.get-density-tokens($theme)
117
+ );
96
118
  @include token-utils.create-token-values(
97
- tokens-mat-chip.$prefix, tokens-mat-chip.get-density-tokens($theme));
119
+ tokens-mat-chip.$prefix,
120
+ tokens-mat-chip.get-density-tokens($theme)
121
+ );
98
122
  }
99
123
  }
100
124
  }
101
125
 
126
+ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
127
+ @function _define-overrides() {
128
+ @return (
129
+ (
130
+ namespace: tokens-mdc-chip.$prefix,
131
+ tokens: tokens-mdc-chip.get-token-slots(),
132
+ ),
133
+ (
134
+ namespace: tokens-mat-chip.$prefix,
135
+ tokens: tokens-mat-chip.get-token-slots(),
136
+ ),
137
+ );
138
+ }
139
+
102
140
  /// Outputs the CSS variable values for the given tokens.
103
141
  /// @param {Map} $tokens The token values to emit.
104
142
  @mixin overrides($tokens: ()) {
105
- @include token-utils.batch-create-token-values(
106
- $tokens,
107
- (prefix: tokens-mdc-chip.$prefix, tokens: tokens-mdc-chip.get-token-slots()),
108
- (prefix: tokens-mat-chip.$prefix, tokens: tokens-mat-chip.get-token-slots()),
109
- );
143
+ @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
110
144
  }
111
145
 
112
146
  /// Outputs all (base, color, typography, and density) theme styles for the mat-chips.
@@ -118,8 +152,7 @@
118
152
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-chips') {
119
153
  @if inspection.get-theme-version($theme) == 1 {
120
154
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
121
- }
122
- @else {
155
+ } @else {
123
156
  @include base($theme);
124
157
  @if inspection.theme-has($theme, color) {
125
158
  @include color($theme);
@@ -136,7 +169,8 @@
136
169
 
137
170
  @mixin _theme-from-tokens($tokens, $options...) {
138
171
  @include validation.selector-defined(
139
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector');
172
+ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
173
+ );
140
174
  $mdc-chip-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-chip.$prefix, $options...);
141
175
  $mat-chip-tokens: token-utils.get-tokens-for($tokens, tokens-mat-chip.$prefix, $options...);
142
176
  @include token-utils.create-token-values(tokens-mdc-chip.$prefix, $mdc-chip-tokens);
@@ -18,15 +18,16 @@
18
18
  @mixin base($theme) {
19
19
  @if inspection.get-theme-version($theme) == 1 {
20
20
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
21
- }
22
- @else {
21
+ } @else {
23
22
  @include ripple-theme.base($theme);
24
23
  @include option-theme.base($theme);
25
24
  @include optgroup-theme.base($theme);
26
25
  @include pseudo-checkbox-theme.base($theme);
27
26
  @include sass-utils.current-selector-or-root() {
28
- @include token-utils.create-token-values(tokens-mat-app.$prefix,
29
- tokens-mat-app.get-unthemable-tokens());
27
+ @include token-utils.create-token-values(
28
+ tokens-mat-app.$prefix,
29
+ tokens-mat-app.get-unthemable-tokens()
30
+ );
30
31
  }
31
32
  }
32
33
  }
@@ -34,15 +35,16 @@
34
35
  @mixin color($theme) {
35
36
  @if inspection.get-theme-version($theme) == 1 {
36
37
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
37
- }
38
- @else {
38
+ } @else {
39
39
  @include ripple-theme.color($theme);
40
40
  @include option-theme.color($theme);
41
41
  @include optgroup-theme.color($theme);
42
42
  @include pseudo-checkbox-theme.color($theme);
43
43
  @include sass-utils.current-selector-or-root() {
44
- @include token-utils.create-token-values(tokens-mat-app.$prefix,
45
- tokens-mat-app.get-color-tokens($theme));
44
+ @include token-utils.create-token-values(
45
+ tokens-mat-app.$prefix,
46
+ tokens-mat-app.get-color-tokens($theme)
47
+ );
46
48
  }
47
49
  }
48
50
  }
@@ -50,8 +52,7 @@
50
52
  @mixin typography($theme) {
51
53
  @if inspection.get-theme-version($theme) == 1 {
52
54
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
53
- }
54
- @else {
55
+ } @else {
55
56
  @include option-theme.typography($theme);
56
57
  @include optgroup-theme.typography($theme);
57
58
  @include pseudo-checkbox-theme.typography($theme);
@@ -62,8 +63,7 @@
62
63
  @mixin density($theme) {
63
64
  @if inspection.get-theme-version($theme) == 1 {
64
65
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
65
- }
66
- @else {
66
+ } @else {
67
67
  @include option-theme.density($theme);
68
68
  @include optgroup-theme.density($theme);
69
69
  @include pseudo-checkbox-theme.density($theme);
@@ -71,29 +71,34 @@
71
71
  }
72
72
  }
73
73
 
74
- // This theme is a special case where not all of the imported tokens are supported in `overrides`.
75
- // To aid the docs token extraction, we have to pull the `overrides` token config out into a
76
- // separate function.
77
- // !!!Important!!! renaming or removal of this function requires the `extract-tokens.ts` script to
78
- // be updated as well.
79
- @function _get-supported-overrides-tokens() {
74
+ @function _define-overrides() {
80
75
  $app-tokens: tokens-mat-app.get-token-slots();
81
76
  $ripple-tokens: tokens-mat-ripple.get-token-slots();
82
77
  $option-tokens: tokens-mat-option.get-token-slots();
78
+ $optgroup-tokens: tokens-mat-optgroup.get-token-slots();
83
79
  $full-pseudo-checkbox-tokens: tokens-mat-full-pseudo-checkbox.get-token-slots();
84
80
  $minimal-pseudo-checkbox-tokens: tokens-mat-minimal-pseudo-checkbox.get-token-slots();
85
81
 
86
82
  @return (
87
- (prefix: tokens-mat-app.$prefix, tokens: $app-tokens),
88
- (prefix: tokens-mat-ripple.$prefix, tokens: $ripple-tokens),
89
- (prefix: tokens-mat-option.$prefix, tokens: $option-tokens),
90
- (prefix: tokens-mat-full-pseudo-checkbox.$prefix, tokens: $full-pseudo-checkbox-tokens),
91
- (prefix: tokens-mat-minimal-pseudo-checkbox.$prefix, tokens: $minimal-pseudo-checkbox-tokens),
83
+ (namespace: tokens-mat-app.$prefix, tokens: $app-tokens, prefix: 'app-'),
84
+ (namespace: tokens-mat-ripple.$prefix, tokens: $ripple-tokens, prefix: 'ripple-'),
85
+ (namespace: tokens-mat-option.$prefix, tokens: $option-tokens, prefix: 'option-'),
86
+ (namespace: tokens-mat-optgroup.$prefix, tokens: $optgroup-tokens, prefix: 'optgroup-'),
87
+ (
88
+ namespace: tokens-mat-full-pseudo-checkbox.$prefix,
89
+ tokens: $full-pseudo-checkbox-tokens,
90
+ prefix: 'pseudo-checkbox-full-'
91
+ ),
92
+ (
93
+ namespace: tokens-mat-minimal-pseudo-checkbox.$prefix,
94
+ tokens: $minimal-pseudo-checkbox-tokens,
95
+ prefix: 'pseudo-checkbox-minimal-'
96
+ )
92
97
  );
93
98
  }
94
99
 
95
100
  @mixin overrides($tokens: ()) {
96
- @include token-utils.batch-create-token-values($tokens, _get-supported-overrides-tokens()...);
101
+ @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
97
102
  }
98
103
 
99
104
  // Mixin that renders all of the core styles that depend on the theme.
@@ -104,8 +109,7 @@
104
109
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-core') {
105
110
  @if inspection.get-theme-version($theme) == 1 {
106
111
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
107
- }
108
- @else {
112
+ } @else {
109
113
  @include base($theme);
110
114
  @if inspection.theme-has($theme, color) {
111
115
  @include color($theme);
@@ -122,23 +126,37 @@
122
126
 
123
127
  @mixin _theme-from-tokens($tokens, $options...) {
124
128
  @include validation.selector-defined(
125
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector');
129
+ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
130
+ );
126
131
  $mat-app-tokens: token-utils.get-tokens-for($tokens, tokens-mat-app.$prefix, $options...);
127
132
  $mat-ripple-tokens: token-utils.get-tokens-for($tokens, tokens-mat-ripple.$prefix, $options...);
128
133
  $mat-option-tokens: token-utils.get-tokens-for($tokens, tokens-mat-option.$prefix, $options...);
129
- $mat-optgroup-tokens:
130
- token-utils.get-tokens-for($tokens, tokens-mat-optgroup.$prefix, $options...);
131
- $mat-full-pseudo-checkbox-tokens: token-utils.get-tokens-for($tokens,
132
- tokens-mat-full-pseudo-checkbox.$prefix, $options...);
133
- $mat-minimal-pseudo-checkbox-tokens: token-utils.get-tokens-for($tokens,
134
- tokens-mat-minimal-pseudo-checkbox.$prefix, $options...);
134
+ $mat-optgroup-tokens: token-utils.get-tokens-for(
135
+ $tokens,
136
+ tokens-mat-optgroup.$prefix,
137
+ $options...
138
+ );
139
+ $mat-full-pseudo-checkbox-tokens: token-utils.get-tokens-for(
140
+ $tokens,
141
+ tokens-mat-full-pseudo-checkbox.$prefix,
142
+ $options...
143
+ );
144
+ $mat-minimal-pseudo-checkbox-tokens: token-utils.get-tokens-for(
145
+ $tokens,
146
+ tokens-mat-minimal-pseudo-checkbox.$prefix,
147
+ $options...
148
+ );
135
149
 
136
150
  @include token-utils.create-token-values(tokens-mat-app.$prefix, $mat-app-tokens);
137
151
  @include token-utils.create-token-values(tokens-mat-ripple.$prefix, $mat-ripple-tokens);
138
152
  @include token-utils.create-token-values(tokens-mat-option.$prefix, $mat-option-tokens);
139
153
  @include token-utils.create-token-values(tokens-mat-optgroup.$prefix, $mat-optgroup-tokens);
140
- @include token-utils.create-token-values(tokens-mat-full-pseudo-checkbox.$prefix,
141
- $mat-full-pseudo-checkbox-tokens);
142
- @include token-utils.create-token-values(tokens-mat-minimal-pseudo-checkbox.$prefix,
143
- $mat-minimal-pseudo-checkbox-tokens);
154
+ @include token-utils.create-token-values(
155
+ tokens-mat-full-pseudo-checkbox.$prefix,
156
+ $mat-full-pseudo-checkbox-tokens
157
+ );
158
+ @include token-utils.create-token-values(
159
+ tokens-mat-minimal-pseudo-checkbox.$prefix,
160
+ $mat-minimal-pseudo-checkbox-tokens
161
+ );
144
162
  }
package/core/_core.scss CHANGED
@@ -1,12 +1,9 @@
1
- @use '@angular/cdk';
2
1
  @use './tokens/m2/mat/app' as tokens-mat-app;
3
2
  @use './tokens/token-utils';
4
3
  @use './style/elevation';
5
4
 
6
- // Mixin that renders all of the core styles that are not theme-dependent.
7
- @mixin core() {
8
- @include cdk.a11y-visually-hidden();
9
- }
5
+ /// @deprecated This mixin is a no-op and is going to be removed in v21.
6
+ @mixin core() {}
10
7
 
11
8
  // Emits the mat-app-background CSS class. This predefined class sets the
12
9
  // background color and text color of an element.
@@ -16,7 +13,7 @@
16
13
  // background color. However, if it isn't defined anywhere, then MSS
17
14
  // complains in its verification stage.
18
15
  html {
19
- --mat-app-on-surface: initial;
16
+ --mat-sys-on-surface: initial;
20
17
  }
21
18
 
22
19
  // Wrapper element that provides the theme background when the
@@ -10,18 +10,19 @@
10
10
  @mixin base($theme) {
11
11
  @if inspection.get-theme-version($theme) == 1 {
12
12
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
13
+ } @else {
13
14
  }
14
- @else {}
15
15
  }
16
16
 
17
17
  @mixin color($theme) {
18
18
  @if inspection.get-theme-version($theme) == 1 {
19
19
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
20
- }
21
- @else {
20
+ } @else {
22
21
  @include sass-utils.current-selector-or-root() {
23
- @include token-utils.create-token-values(tokens-mat-optgroup.$prefix,
24
- tokens-mat-optgroup.get-color-tokens($theme));
22
+ @include token-utils.create-token-values(
23
+ tokens-mat-optgroup.$prefix,
24
+ tokens-mat-optgroup.get-color-tokens($theme)
25
+ );
25
26
  }
26
27
  }
27
28
  }
@@ -29,11 +30,12 @@
29
30
  @mixin typography($theme) {
30
31
  @if inspection.get-theme-version($theme) == 1 {
31
32
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
32
- }
33
- @else {
33
+ } @else {
34
34
  @include sass-utils.current-selector-or-root() {
35
- @include token-utils.create-token-values(tokens-mat-optgroup.$prefix,
36
- tokens-mat-optgroup.get-typography-tokens($theme));
35
+ @include token-utils.create-token-values(
36
+ tokens-mat-optgroup.$prefix,
37
+ tokens-mat-optgroup.get-typography-tokens($theme)
38
+ );
37
39
  }
38
40
  }
39
41
  }
@@ -41,23 +43,29 @@
41
43
  @mixin density($theme) {
42
44
  @if inspection.get-theme-version($theme) == 1 {
43
45
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
46
+ } @else {
44
47
  }
45
- @else {}
46
48
  }
47
49
 
48
- @mixin overrides($tokens: ()) {
49
- @include token-utils.batch-create-token-values(
50
- $tokens,
51
- (prefix: tokens-mat-optgroup.$prefix, tokens: tokens-mat-optgroup.get-token-slots()),
50
+ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
51
+ @function _define-overrides() {
52
+ @return (
53
+ (
54
+ namespace: tokens-mat-optgroup.$prefix,
55
+ tokens: tokens-mat-optgroup.get-token-slots(),
56
+ ),
52
57
  );
53
58
  }
54
59
 
60
+ @mixin overrides($tokens: ()) {
61
+ @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
62
+ }
63
+
55
64
  @mixin theme($theme) {
56
65
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-optgroup') {
57
66
  @if inspection.get-theme-version($theme) == 1 {
58
67
  @include _theme-from-tokens(inspection.get-theme-tokens($theme));
59
- }
60
- @else {
68
+ } @else {
61
69
  @include base($theme);
62
70
  @if inspection.theme-has($theme, color) {
63
71
  @include color($theme);
@@ -74,9 +82,12 @@
74
82
 
75
83
  @mixin _theme-from-tokens($tokens) {
76
84
  @include validation.selector-defined(
77
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector');
85
+ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
86
+ );
78
87
  @if ($tokens != ()) {
79
88
  @include token-utils.create-token-values(
80
- tokens-mat-optgroup.$prefix, map.get($tokens, tokens-mat-optgroup.$prefix));
89
+ tokens-mat-optgroup.$prefix,
90
+ map.get($tokens, tokens-mat-optgroup.$prefix)
91
+ );
81
92
  }
82
93
  }
@@ -12,8 +12,8 @@
12
12
  @mixin base($theme) {
13
13
  @if inspection.get-theme-version($theme) == 1 {
14
14
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
15
+ } @else {
15
16
  }
16
- @else {}
17
17
  }
18
18
 
19
19
  /// Outputs color theme styles for the mat-option.
@@ -24,21 +24,26 @@
24
24
  @mixin color($theme, $options...) {
25
25
  @if inspection.get-theme-version($theme) == 1 {
26
26
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
27
- }
28
- @else {
27
+ } @else {
29
28
  @include sass-utils.current-selector-or-root() {
30
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
31
- tokens-mat-option.get-color-tokens($theme));
29
+ @include token-utils.create-token-values(
30
+ tokens-mat-option.$prefix,
31
+ tokens-mat-option.get-color-tokens($theme)
32
+ );
32
33
  }
33
34
 
34
35
  .mat-accent {
35
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
36
- tokens-mat-option.get-color-tokens($theme, accent));
36
+ @include token-utils.create-token-values(
37
+ tokens-mat-option.$prefix,
38
+ tokens-mat-option.get-color-tokens($theme, accent)
39
+ );
37
40
  }
38
41
 
39
42
  .mat-warn {
40
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
41
- tokens-mat-option.get-color-tokens($theme, warn));
43
+ @include token-utils.create-token-values(
44
+ tokens-mat-option.$prefix,
45
+ tokens-mat-option.get-color-tokens($theme, warn)
46
+ );
42
47
  }
43
48
  }
44
49
  }
@@ -48,11 +53,12 @@
48
53
  @mixin typography($theme) {
49
54
  @if inspection.get-theme-version($theme) == 1 {
50
55
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
51
- }
52
- @else {
56
+ } @else {
53
57
  @include sass-utils.current-selector-or-root() {
54
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
55
- tokens-mat-option.get-typography-tokens($theme));
58
+ @include token-utils.create-token-values(
59
+ tokens-mat-option.$prefix,
60
+ tokens-mat-option.get-typography-tokens($theme)
61
+ );
56
62
  }
57
63
  }
58
64
  }
@@ -62,17 +68,24 @@
62
68
  @mixin density($theme) {
63
69
  @if inspection.get-theme-version($theme) == 1 {
64
70
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
71
+ } @else {
65
72
  }
66
- @else {}
73
+ }
74
+
75
+ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
76
+ @function _define-overrides() {
77
+ @return (
78
+ (
79
+ namespace: tokens-mat-option.$prefix,
80
+ tokens: tokens-mat-option.get-token-slots(),
81
+ ),
82
+ );
67
83
  }
68
84
 
69
85
  /// Outputs the CSS variable values for the given tokens.
70
86
  /// @param {Map} $tokens The token values to emit.
71
87
  @mixin overrides($tokens: ()) {
72
- @include token-utils.batch-create-token-values(
73
- $tokens,
74
- (prefix: tokens-mat-option.$prefix, tokens: tokens-mat-option.get-token-slots()),
75
- );
88
+ @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
76
89
  }
77
90
 
78
91
  /// Outputs all (base, color, typography, and density) theme styles for the mat-option.
@@ -84,8 +97,7 @@
84
97
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-option') {
85
98
  @if inspection.get-theme-version($theme) == 1 {
86
99
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
87
- }
88
- @else {
100
+ } @else {
89
101
  @include base($theme);
90
102
  @if inspection.theme-has($theme, color) {
91
103
  @include color($theme);
@@ -102,7 +114,8 @@
102
114
 
103
115
  @mixin _theme-from-tokens($tokens, $options...) {
104
116
  @include validation.selector-defined(
105
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector');
117
+ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
118
+ );
106
119
  $mat-option-tokens: token-utils.get-tokens-for($tokens, tokens-mat-option.$prefix, $options...);
107
120
  @include token-utils.create-token-values(tokens-mat-option.$prefix, $mat-option-tokens);
108
121
  }
@@ -9,18 +9,19 @@
9
9
  @mixin base($theme) {
10
10
  @if inspection.get-theme-version($theme) == 1 {
11
11
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
12
+ } @else {
12
13
  }
13
- @else {}
14
14
  }
15
15
 
16
16
  @mixin color($theme) {
17
17
  @if inspection.get-theme-version($theme) == 1 {
18
18
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
19
- }
20
- @else {
19
+ } @else {
21
20
  @include sass-utils.current-selector-or-root() {
22
- @include token-utils.create-token-values(tokens-mat-ripple.$prefix,
23
- tokens-mat-ripple.get-color-tokens($theme));
21
+ @include token-utils.create-token-values(
22
+ tokens-mat-ripple.$prefix,
23
+ tokens-mat-ripple.get-color-tokens($theme)
24
+ );
24
25
  }
25
26
  }
26
27
  }
@@ -28,11 +29,12 @@
28
29
  @mixin typography($theme) {
29
30
  @if inspection.get-theme-version($theme) == 1 {
30
31
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
31
- }
32
- @else {
32
+ } @else {
33
33
  @include sass-utils.current-selector-or-root() {
34
- @include token-utils.create-token-values(tokens-mat-ripple.$prefix,
35
- tokens-mat-ripple.get-typography-tokens($theme));
34
+ @include token-utils.create-token-values(
35
+ tokens-mat-ripple.$prefix,
36
+ tokens-mat-ripple.get-typography-tokens($theme)
37
+ );
36
38
  }
37
39
  }
38
40
  }
@@ -40,28 +42,35 @@
40
42
  @mixin density($theme) {
41
43
  @if inspection.get-theme-version($theme) == 1 {
42
44
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
43
- }
44
- @else {
45
+ } @else {
45
46
  @include sass-utils.current-selector-or-root() {
46
- @include token-utils.create-token-values(tokens-mat-ripple.$prefix,
47
- tokens-mat-ripple.get-density-tokens($theme));
47
+ @include token-utils.create-token-values(
48
+ tokens-mat-ripple.$prefix,
49
+ tokens-mat-ripple.get-density-tokens($theme)
50
+ );
48
51
  }
49
52
  }
50
53
  }
51
54
 
52
- @mixin overrides($tokens: ()) {
53
- @include token-utils.batch-create-token-values(
54
- $tokens,
55
- (prefix: tokens-mat-ripple.$prefix, tokens: tokens-mat-ripple.get-token-slots()),
55
+ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
56
+ @function _define-overrides() {
57
+ @return (
58
+ (
59
+ namespace: tokens-mat-ripple.$prefix,
60
+ tokens: tokens-mat-ripple.get-token-slots(),
61
+ ),
56
62
  );
57
63
  }
58
64
 
65
+ @mixin overrides($tokens: ()) {
66
+ @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
67
+ }
68
+
59
69
  @mixin theme($theme) {
60
70
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-ripple') {
61
71
  @if inspection.get-theme-version($theme) == 1 {
62
72
  @include _theme-from-tokens(inspection.get-theme-tokens($theme));
63
- }
64
- @else {
73
+ } @else {
65
74
  @include base($theme);
66
75
  @if inspection.theme-has($theme, color) {
67
76
  @include color($theme);
@@ -78,9 +87,12 @@
78
87
 
79
88
  @mixin _theme-from-tokens($tokens) {
80
89
  @include validation.selector-defined(
81
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector');
90
+ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
91
+ );
82
92
  @if ($tokens != ()) {
83
93
  @include token-utils.create-token-values(
84
- tokens-mat-ripple.$prefix, map.get($tokens, tokens-mat-ripple.$prefix));
94
+ tokens-mat-ripple.$prefix,
95
+ map.get($tokens, tokens-mat-ripple.$prefix)
96
+ );
85
97
  }
86
98
  }