@angular/material 20.1.0-next.0 → 20.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/_index.scss +1 -2
  2. package/autocomplete/_autocomplete-theme.scss +28 -37
  3. package/autocomplete/_m2-autocomplete.scss +5 -2
  4. package/badge/_badge-theme.scss +35 -44
  5. package/badge/_m2-badge.scss +3 -2
  6. package/bottom-sheet/_bottom-sheet-theme.scss +28 -40
  7. package/bottom-sheet/_m2-bottom-sheet.scss +12 -11
  8. package/button/_button-theme.scss +37 -55
  9. package/button/_fab-theme.scss +42 -56
  10. package/button/_icon-button-theme.scss +30 -48
  11. package/button/_m2-button.scss +60 -59
  12. package/button/_m2-fab.scss +19 -15
  13. package/button/_m2-icon-button.scss +7 -5
  14. package/button/testing/index.d.ts +1 -0
  15. package/button-toggle/_button-toggle-theme.scss +29 -44
  16. package/button-toggle/_m2-button-toggle.scss +11 -17
  17. package/card/_card-theme.scss +28 -36
  18. package/card/_m2-card.scss +12 -14
  19. package/checkbox/_checkbox-theme.scss +35 -50
  20. package/checkbox/_m2-checkbox.scss +8 -8
  21. package/chips/_chips-theme.scss +24 -30
  22. package/chips/_m2-chip.scss +12 -28
  23. package/core/_core-theme.scss +48 -67
  24. package/core/focus-indicators/_private.scss +2 -5
  25. package/core/m2/_theming.scss +68 -113
  26. package/core/option/_m2-optgroup.scss +10 -7
  27. package/core/option/_m2-option.scss +13 -11
  28. package/core/option/_optgroup-theme.scss +28 -30
  29. package/core/option/_option-theme.scss +35 -34
  30. package/core/ripple/_m2-ripple.scss +6 -10
  31. package/core/ripple/_ripple-theme.scss +28 -33
  32. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +2 -3
  33. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +55 -45
  34. package/core/theming/_all-theme.scss +38 -42
  35. package/core/theming/_definition.scss +20 -13
  36. package/core/theming/_inspection.scss +0 -12
  37. package/core/theming/_m2-inspection.scss +0 -33
  38. package/core/theming/_theming.scss +4 -172
  39. package/core/tokens/_m2-utils.scss +5 -75
  40. package/core/tokens/_m3-system.scss +11 -9
  41. package/core/tokens/_m3-utils.scss +2 -14
  42. package/core/tokens/_token-utils.scss +7 -27
  43. package/core/tokens/m2/_index.scss +6 -0
  44. package/core/tokens/m2/_md-sys-color.scss +123 -0
  45. package/core/tokens/m2/_md-sys-elevation.scss +16 -0
  46. package/core/tokens/m2/_md-sys-motion.scss +36 -0
  47. package/core/tokens/m2/_md-sys-shape.scss +22 -0
  48. package/core/tokens/m2/_md-sys-state.scss +15 -0
  49. package/core/tokens/m2/_md-sys-typescale.scss +68 -0
  50. package/core/tokens/m3/_md-sys-color.scss +2 -2
  51. package/core/tokens/m3/_md-sys-typescale.scss +1 -1
  52. package/core/tokens/m3/_theme.scss +14 -26
  53. package/datepicker/_datepicker-theme.scss +47 -87
  54. package/datepicker/_m2-datepicker.scss +33 -123
  55. package/datepicker/index.d.ts +1 -1
  56. package/dialog/_dialog-theme.scss +28 -34
  57. package/dialog/_m2-dialog.scss +17 -17
  58. package/divider/_divider-theme.scss +28 -30
  59. package/divider/_m2-divider.scss +4 -2
  60. package/expansion/_expansion-theme.scss +28 -39
  61. package/expansion/_m2-expansion.scss +11 -10
  62. package/expansion/_m3-expansion.scss +2 -0
  63. package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
  64. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  65. package/fesm2022/autocomplete.mjs +1 -1
  66. package/fesm2022/autocomplete.mjs.map +1 -1
  67. package/fesm2022/badge/testing.mjs.map +1 -1
  68. package/fesm2022/badge.mjs.map +1 -1
  69. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  70. package/fesm2022/bottom-sheet.mjs.map +1 -1
  71. package/fesm2022/button/testing.mjs +7 -4
  72. package/fesm2022/button/testing.mjs.map +1 -1
  73. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  74. package/fesm2022/button-toggle.mjs.map +1 -1
  75. package/fesm2022/button.mjs +2 -2
  76. package/fesm2022/button.mjs.map +1 -1
  77. package/fesm2022/card/testing.mjs.map +1 -1
  78. package/fesm2022/card.mjs.map +1 -1
  79. package/fesm2022/checkbox/testing.mjs.map +1 -1
  80. package/fesm2022/checkbox.mjs.map +1 -1
  81. package/fesm2022/chips/testing.mjs.map +1 -1
  82. package/fesm2022/chips.mjs +1 -1
  83. package/fesm2022/chips.mjs.map +1 -1
  84. package/fesm2022/common-module-cKSwHniA.mjs.map +1 -1
  85. package/fesm2022/core/testing.mjs.map +1 -1
  86. package/fesm2022/core.mjs +1 -1
  87. package/fesm2022/core.mjs.map +1 -1
  88. package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
  89. package/fesm2022/date-range-input-harness-DEyfkeOs.mjs.map +1 -1
  90. package/fesm2022/datepicker/testing.mjs.map +1 -1
  91. package/fesm2022/datepicker.mjs +1 -1
  92. package/fesm2022/datepicker.mjs.map +1 -1
  93. package/fesm2022/dialog/testing.mjs.map +1 -1
  94. package/fesm2022/dialog.mjs.map +1 -1
  95. package/fesm2022/divider/testing.mjs.map +1 -1
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/error-options-DCNQlTOA.mjs.map +1 -1
  98. package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
  99. package/fesm2022/expansion/testing.mjs.map +1 -1
  100. package/fesm2022/expansion.mjs +2 -2
  101. package/fesm2022/expansion.mjs.map +1 -1
  102. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  103. package/fesm2022/form-field/testing.mjs.map +1 -1
  104. package/fesm2022/{form-field-C9DZXojn.mjs → form-field-CFbrnFED.mjs} +3 -3
  105. package/fesm2022/form-field-CFbrnFED.mjs.map +1 -0
  106. package/fesm2022/form-field.mjs +2 -2
  107. package/fesm2022/form-field.mjs.map +1 -1
  108. package/fesm2022/grid-list/testing.mjs.map +1 -1
  109. package/fesm2022/grid-list.mjs.map +1 -1
  110. package/fesm2022/icon/testing.mjs.map +1 -1
  111. package/fesm2022/icon-button-DxiIc1ex.mjs.map +1 -1
  112. package/fesm2022/icon-registry-CwOTJ7YM.mjs.map +1 -1
  113. package/fesm2022/icon.mjs.map +1 -1
  114. package/fesm2022/index-BFRo2fUq.mjs.map +1 -1
  115. package/fesm2022/index-DwiL-HGk.mjs.map +1 -1
  116. package/fesm2022/input/testing.mjs.map +1 -1
  117. package/fesm2022/input-harness-C5Msdc4-.mjs.map +1 -1
  118. package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
  119. package/fesm2022/input.mjs +3 -27
  120. package/fesm2022/input.mjs.map +1 -1
  121. package/fesm2022/internal-form-field-D5iFxU6d.mjs.map +1 -1
  122. package/fesm2022/line-Bz5f9Cyx.mjs.map +1 -1
  123. package/fesm2022/list/testing.mjs.map +1 -1
  124. package/fesm2022/list.mjs.map +1 -1
  125. package/fesm2022/material.mjs.map +1 -1
  126. package/fesm2022/menu/testing.mjs +97 -13
  127. package/fesm2022/menu/testing.mjs.map +1 -1
  128. package/fesm2022/menu.mjs +343 -122
  129. package/fesm2022/menu.mjs.map +1 -1
  130. package/fesm2022/{module-BDiw_nWS.mjs → module-B0CLRw5e.mjs} +3 -3
  131. package/fesm2022/module-B0CLRw5e.mjs.map +1 -0
  132. package/fesm2022/{module-DzZHEh7B.mjs → module-B62K-792.mjs} +2 -2
  133. package/fesm2022/module-B62K-792.mjs.map +1 -0
  134. package/fesm2022/module-CWxMD37a.mjs.map +1 -1
  135. package/fesm2022/module-Ce6F7TNm.mjs.map +1 -1
  136. package/fesm2022/option-BzhYL_xC.mjs.map +1 -1
  137. package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
  138. package/fesm2022/paginator/testing.mjs.map +1 -1
  139. package/fesm2022/paginator.mjs +3 -3
  140. package/fesm2022/paginator.mjs.map +1 -1
  141. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  142. package/fesm2022/progress-bar.mjs.map +1 -1
  143. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  144. package/fesm2022/progress-spinner.mjs.map +1 -1
  145. package/fesm2022/pseudo-checkbox-DDmgx3P4.mjs.map +1 -1
  146. package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs.map +1 -1
  147. package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
  148. package/fesm2022/radio/testing.mjs.map +1 -1
  149. package/fesm2022/radio.mjs.map +1 -1
  150. package/fesm2022/ripple-BYgV4oZC.mjs.map +1 -1
  151. package/fesm2022/ripple-loader-BnMiRtmT.mjs.map +1 -1
  152. package/fesm2022/select/testing.mjs.map +1 -1
  153. package/fesm2022/select.mjs +3 -3
  154. package/fesm2022/select.mjs.map +1 -1
  155. package/fesm2022/sidenav/testing.mjs.map +1 -1
  156. package/fesm2022/sidenav.mjs.map +1 -1
  157. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  158. package/fesm2022/slide-toggle.mjs +2 -2
  159. package/fesm2022/slide-toggle.mjs.map +1 -1
  160. package/fesm2022/slider/testing.mjs.map +1 -1
  161. package/fesm2022/slider.mjs +2 -2
  162. package/fesm2022/slider.mjs.map +1 -1
  163. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  164. package/fesm2022/snack-bar.mjs +2 -2
  165. package/fesm2022/snack-bar.mjs.map +1 -1
  166. package/fesm2022/sort/testing.mjs.map +1 -1
  167. package/fesm2022/sort.mjs.map +1 -1
  168. package/fesm2022/stepper/testing.mjs.map +1 -1
  169. package/fesm2022/stepper.mjs.map +1 -1
  170. package/fesm2022/structural-styles-CObeNzjn.mjs.map +1 -1
  171. package/fesm2022/table/testing.mjs.map +1 -1
  172. package/fesm2022/table.mjs.map +1 -1
  173. package/fesm2022/tabs/testing.mjs.map +1 -1
  174. package/fesm2022/tabs.mjs.map +1 -1
  175. package/fesm2022/timepicker/testing.mjs.map +1 -1
  176. package/fesm2022/timepicker.mjs +1 -1
  177. package/fesm2022/timepicker.mjs.map +1 -1
  178. package/fesm2022/toolbar/testing.mjs.map +1 -1
  179. package/fesm2022/toolbar.mjs.map +1 -1
  180. package/fesm2022/tooltip/testing.mjs.map +1 -1
  181. package/fesm2022/tooltip.mjs.map +1 -1
  182. package/fesm2022/tree/testing.mjs.map +1 -1
  183. package/fesm2022/tree.mjs.map +1 -1
  184. package/form-field/_form-field-theme.scss +35 -51
  185. package/form-field/_m2-form-field.scss +23 -31
  186. package/grid-list/_grid-list-theme.scss +28 -28
  187. package/grid-list/_m2-grid-list.scss +7 -9
  188. package/icon/_icon-theme.scss +40 -41
  189. package/input/_input-theme.scss +1 -4
  190. package/input/index.d.ts +0 -11
  191. package/list/_list-theme.scss +55 -53
  192. package/list/_m2-list.scss +21 -35
  193. package/menu/_m2-menu.scss +18 -15
  194. package/menu/_menu-theme.scss +28 -33
  195. package/menu/index.d.ts +145 -61
  196. package/menu/testing/index.d.ts +50 -2
  197. package/package.json +2 -2
  198. package/paginator/_m2-paginator.scss +9 -9
  199. package/paginator/_paginator-theme.scss +28 -33
  200. package/prebuilt-themes/azure-blue.css +1 -1
  201. package/prebuilt-themes/cyan-orange.css +1 -1
  202. package/prebuilt-themes/deeppurple-amber.css +1 -1
  203. package/prebuilt-themes/indigo-pink.css +1 -1
  204. package/prebuilt-themes/magenta-violet.css +1 -1
  205. package/prebuilt-themes/pink-bluegrey.css +1 -1
  206. package/prebuilt-themes/purple-green.css +1 -1
  207. package/prebuilt-themes/rose-red.css +1 -1
  208. package/progress-bar/_progress-bar-theme.scss +35 -43
  209. package/progress-spinner/_progress-spinner-theme.scss +42 -43
  210. package/radio/_m2-radio.scss +6 -5
  211. package/radio/_m3-radio.scss +1 -1
  212. package/radio/_radio-theme.scss +33 -46
  213. package/schematics/ng-add/index.js +1 -1
  214. package/select/_m2-select.scss +10 -8
  215. package/select/_select-theme.scss +38 -48
  216. package/sidenav/_sidenav-theme.scss +28 -30
  217. package/slide-toggle/_m2-slide-toggle.scss +45 -58
  218. package/slide-toggle/_m3-slide-toggle.scss +1 -0
  219. package/slide-toggle/_slide-toggle-theme.scss +41 -79
  220. package/slider/_m2-slider.scss +33 -35
  221. package/slider/_slider-theme.scss +38 -45
  222. package/snack-bar/_m2-snack-bar.scss +5 -6
  223. package/snack-bar/_snack-bar-theme.scss +28 -31
  224. package/sort/_m2-sort.scss +5 -2
  225. package/sort/_sort-theme.scss +28 -33
  226. package/stepper/_m2-stepper.scss +10 -13
  227. package/stepper/_stepper-theme.scss +41 -49
  228. package/table/_m2-table.scss +23 -28
  229. package/table/_table-theme.scss +28 -36
  230. package/tabs/_m2-tabs.scss +11 -16
  231. package/tabs/_tabs-theme.scss +35 -43
  232. package/timepicker/_m2-timepicker.scss +5 -2
  233. package/timepicker/_timepicker-theme.scss +28 -46
  234. package/toolbar/_m2-toolbar.scss +10 -9
  235. package/toolbar/_toolbar-theme.scss +55 -46
  236. package/tooltip/_m2-tooltip.scss +5 -6
  237. package/tooltip/_tooltip-theme.scss +28 -37
  238. package/tree/_m2-tree.scss +9 -5
  239. package/tree/_tree-theme.scss +28 -38
  240. package/core/tokens/_format-tokens.scss +0 -5
  241. package/fesm2022/form-field-C9DZXojn.mjs.map +0 -1
  242. package/fesm2022/module-BDiw_nWS.mjs.map +0 -1
  243. package/fesm2022/module-DzZHEh7B.mjs.map +0 -1
@@ -1,5 +1,3 @@
1
- @use '../core/style/sass-utils';
2
- @use '../core/theming/theming';
3
1
  @use '../core/theming/inspection';
4
2
  @use './m2-fab';
5
3
  @use './m3-fab';
@@ -11,23 +9,12 @@
11
9
  /// for the mat-fab.
12
10
  /// @param {Map} $theme The theme to generate base styles for.
13
11
  @mixin base($theme) {
12
+ $tokens: m2-fab.get-unthemable-tokens();
14
13
  @if inspection.get-theme-version($theme) == 1 {
15
- @include token-utils.create-token-values(map.get(m3-fab.get-tokens($theme), base));
16
- } @else {
17
- @include sass-utils.current-selector-or-root() {
18
- @include token-utils.create-token-values-mixed(m2-fab.get-unthemable-tokens());
19
- }
14
+ $tokens: map.get(m3-fab.get-tokens($theme), base);
20
15
  }
21
- }
22
16
 
23
- @mixin _fab-variant($theme, $palette) {
24
- $mat-tokens: if(
25
- $palette,
26
- m2-fab.private-get-color-palette-color-tokens($theme, $palette),
27
- m2-fab.get-color-tokens($theme)
28
- );
29
-
30
- @include token-utils.create-token-values-mixed($mat-tokens);
17
+ @include token-utils.values($tokens);
31
18
  }
32
19
 
33
20
  /// Outputs color theme styles for the mat-fab.
@@ -35,25 +22,28 @@
35
22
  /// @param {ArgList} $color-variant: The color variant to use for the fab: primary, secondary,
36
23
  // or tertiary. (If not specified, default primary color will be used).
37
24
  @mixin color($theme, $color-variant: null) {
25
+ $tokens: m2-fab.get-color-tokens($theme);
38
26
  @if inspection.get-theme-version($theme) == 1 {
39
- @include token-utils.create-token-values(
40
- map.get(m3-fab.get-tokens($theme, $color-variant), color));
41
- } @else {
42
- @include sass-utils.current-selector-or-root() {
43
- @include _fab-variant($theme, null);
27
+ $tokens: map.get(m3-fab.get-tokens($theme, $color-variant), color);
28
+ }
29
+
30
+ @include token-utils.values($tokens);
44
31
 
45
- .mat-mdc-fab, .mat-mdc-mini-fab {
46
- &.mat-primary {
47
- @include _fab-variant($theme, primary);
48
- }
32
+ @if inspection.get-theme-version($theme) != 1 {
33
+ .mat-mdc-fab, .mat-mdc-mini-fab {
34
+ &.mat-primary {
35
+ $tokens: m2-fab.private-get-color-palette-color-tokens($theme, primary);
36
+ @include token-utils.values($tokens);
37
+ }
49
38
 
50
- &.mat-accent {
51
- @include _fab-variant($theme, secondary);
52
- }
39
+ &.mat-accent {
40
+ $tokens: m2-fab.private-get-color-palette-color-tokens($theme, secondary);
41
+ @include token-utils.values($tokens);
42
+ }
53
43
 
54
- &.mat-warn {
55
- @include _fab-variant($theme, error);
56
- }
44
+ &.mat-warn {
45
+ $tokens: m2-fab.private-get-color-palette-color-tokens($theme, error);
46
+ @include token-utils.values($tokens);
57
47
  }
58
48
  }
59
49
  }
@@ -62,25 +52,23 @@
62
52
  /// Outputs typography theme styles for the mat-fab.
63
53
  /// @param {Map} $theme The theme to generate typography styles for.
64
54
  @mixin typography($theme) {
55
+ $tokens: m2-fab.get-typography-tokens($theme);
65
56
  @if inspection.get-theme-version($theme) == 1 {
66
- @include token-utils.create-token-values(map.get(m3-fab.get-tokens($theme), typography));
67
- } @else {
68
- @include sass-utils.current-selector-or-root() {
69
- @include token-utils.create-token-values-mixed(m2-fab.get-typography-tokens($theme));
70
- }
57
+ $tokens: map.get(m3-fab.get-tokens($theme), typography);
71
58
  }
59
+
60
+ @include token-utils.values($tokens);
72
61
  }
73
62
 
74
63
  /// Outputs density theme styles for the mat-fab.
75
64
  /// @param {Map} $theme The theme to generate density styles for.
76
65
  @mixin density($theme) {
66
+ $tokens: m2-fab.get-density-tokens($theme);
77
67
  @if inspection.get-theme-version($theme) == 1 {
78
- @include token-utils.create-token-values(map.get(m3-fab.get-tokens($theme), density));
79
- } @else {
80
- @include sass-utils.current-selector-or-root() {
81
- @include token-utils.create-token-values-mixed(m2-fab.get-density-tokens($theme));
82
- }
68
+ $tokens: map.get(m3-fab.get-tokens($theme), density);
83
69
  }
70
+
71
+ @include token-utils.values($tokens);
84
72
  }
85
73
 
86
74
  /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
@@ -103,23 +91,21 @@
103
91
  /// @param {Map} $theme The theme to generate styles for.
104
92
  /// @param {String} $color-variant: The color variant to use for the fab
105
93
  @mixin theme($theme, $color-variant: null) {
106
- @include theming.private-check-duplicate-theme-styles($theme, 'mat-fab') {
107
- @if inspection.get-theme-version($theme) == 1 {
108
- @include base($theme);
109
- @include color($theme, $color-variant);
94
+ @if inspection.get-theme-version($theme) == 1 {
95
+ @include base($theme);
96
+ @include color($theme, $color-variant);
97
+ @include density($theme);
98
+ @include typography($theme);
99
+ } @else {
100
+ @include base($theme);
101
+ @if inspection.theme-has($theme, color) {
102
+ @include color($theme);
103
+ }
104
+ @if inspection.theme-has($theme, density) {
110
105
  @include density($theme);
106
+ }
107
+ @if inspection.theme-has($theme, typography) {
111
108
  @include typography($theme);
112
- } @else {
113
- @include base($theme);
114
- @if inspection.theme-has($theme, color) {
115
- @include color($theme);
116
- }
117
- @if inspection.theme-has($theme, density) {
118
- @include density($theme);
119
- }
120
- @if inspection.theme-has($theme, typography) {
121
- @include typography($theme);
122
- }
123
109
  }
124
110
  }
125
111
  }
@@ -2,30 +2,16 @@
2
2
  @use 'sass:math';
3
3
  @use './m2-icon-button';
4
4
  @use './m3-icon-button';
5
- @use '../core/style/sass-utils';
6
5
  @use '../core/tokens/token-utils';
7
- @use '../core/theming/theming';
8
6
  @use '../core/theming/inspection';
9
7
 
10
8
  @mixin base($theme) {
9
+ $tokens: m2-icon-button.get-unthemable-tokens();
11
10
  @if inspection.get-theme-version($theme) == 1 {
12
- @include token-utils.create-token-values(map.get(m3-icon-button.get-tokens($theme), base));
13
- } @else {
14
- // Add default values for tokens not related to color, typography, or density.
15
- @include sass-utils.current-selector-or-root() {
16
- @include token-utils.create-token-values-mixed(m2-icon-button.get-unthemable-tokens());
17
- }
11
+ $tokens: map.get(m3-icon-button.get-tokens($theme), base);
18
12
  }
19
- }
20
-
21
- @mixin _m2-icon-button-variant($theme, $palette) {
22
- $mat-tokens: if(
23
- $palette,
24
- m2-icon-button.private-get-color-palette-color-tokens($theme, $palette),
25
- m2-icon-button.get-color-tokens($theme)
26
- );
27
13
 
28
- @include token-utils.create-token-values-mixed($mat-tokens);
14
+ @include token-utils.values($tokens);
29
15
  }
30
16
 
31
17
  /// Outputs color theme styles for the mat-icon-button.
@@ -33,45 +19,45 @@
33
19
  /// @param {String} $color-variant: The color variant to use for the
34
20
  // button: primary, secondary, tertiary, or error.
35
21
  @mixin color($theme, $color-variant: null) {
22
+ $tokens: m2-icon-button.get-color-tokens($theme);
36
23
  @if inspection.get-theme-version($theme) == 1 {
37
- @include token-utils.create-token-values(
38
- map.get(m3-icon-button.get-tokens($theme, $color-variant), color));
39
- } @else {
40
- @include sass-utils.current-selector-or-root() {
41
- @include _m2-icon-button-variant($theme, null);
24
+ $tokens: map.get(m3-icon-button.get-tokens($theme, $color-variant), color);
25
+ }
26
+
27
+ @include token-utils.values($tokens);
42
28
 
43
- .mat-mdc-icon-button {
44
- &.mat-primary {
45
- @include _m2-icon-button-variant($theme, primary);
46
- }
29
+ @if inspection.get-theme-version($theme) != 1 {
30
+ .mat-mdc-icon-button {
31
+ &.mat-primary {
32
+ $tokens: m2-icon-button.private-get-color-palette-color-tokens($theme, primary);
33
+ @include token-utils.values($tokens);
34
+ }
47
35
 
48
- &.mat-accent {
49
- @include _m2-icon-button-variant($theme, secondary);
50
- }
36
+ &.mat-accent {
37
+ $tokens: m2-icon-button.private-get-color-palette-color-tokens($theme, secondary);
38
+ @include token-utils.values($tokens);
39
+ }
51
40
 
52
- &.mat-warn {
53
- @include _m2-icon-button-variant($theme, error);
54
- }
41
+ &.mat-warn {
42
+ $tokens: m2-icon-button.private-get-color-palette-color-tokens($theme, error);
43
+ @include token-utils.values($tokens);
55
44
  }
56
45
  }
57
46
  }
58
47
  }
59
48
 
60
49
  @mixin typography($theme) {
50
+ $tokens: m2-icon-button.get-typography-tokens($theme);
61
51
  @if inspection.get-theme-version($theme) == 1 {
62
- @include token-utils.create-token-values(
63
- map.get(m3-icon-button.get-tokens($theme), typography));
64
- } @else {
65
- @include sass-utils.current-selector-or-root() {
66
- @include token-utils.create-token-values-mixed(m2-icon-button.get-typography-tokens($theme)
67
- );
68
- }
52
+ $tokens: map.get(m3-icon-button.get-tokens($theme), typography);
69
53
  }
54
+
55
+ @include token-utils.values($tokens);
70
56
  }
71
57
 
72
58
  @mixin density($theme) {
73
59
  @if inspection.get-theme-version($theme) == 1 {
74
- @include token-utils.create-token-values(map.get(m3-icon-button.get-tokens($theme), density));
60
+ @include token-utils.values(map.get(m3-icon-button.get-tokens($theme), density));
75
61
  } @else {
76
62
  $icon-size: 24px;
77
63
  $density-scale: inspection.get-theme-density($theme);
@@ -85,12 +71,10 @@
85
71
  );
86
72
  $calculated-size: map.get($size-map, $density-scale);
87
73
 
88
- @include sass-utils.current-selector-or-root() {
89
- @include token-utils.create-token-values-mixed(
90
- m2-icon-button.get-density-tokens(
91
- $theme, $exclude: (icon-button-state-layer-size))
92
- );
93
- }
74
+ @include token-utils.values(
75
+ m2-icon-button.get-density-tokens(
76
+ $theme, $exclude: (icon-button-state-layer-size))
77
+ );
94
78
 
95
79
  // Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.
96
80
  .mat-mdc-icon-button.mat-mdc-button-base {
@@ -130,7 +114,6 @@
130
114
  /// @param {String} $color-variant: The color variant to use for the button: primary,
131
115
  // secondary, tertiary, or error.
132
116
  @mixin theme($theme, $color-variant: null) {
133
- @include theming.private-check-duplicate-theme-styles($theme, 'mat-icon-button') {
134
117
  @if inspection.get-theme-version($theme) == 1 {
135
118
  @include base($theme);
136
119
  @include color($theme, $color-variant);
@@ -146,7 +129,6 @@
146
129
  }
147
130
  @if inspection.theme-has($theme, typography) {
148
131
  @include typography($theme);
149
- }
150
132
  }
151
133
  }
152
134
  }
@@ -44,7 +44,6 @@
44
44
  @function get-color-tokens($theme) {
45
45
  $system: m2-utils.get-system($theme);
46
46
  $is-dark: inspection.get-theme-type($theme) == dark;
47
- $outline: inspection.get-theme-color($theme, system, outline);
48
47
  $disabled: m3-utils.color-with-opacity(map.get($system, on-surface), 38%);
49
48
  $disabled-container : m3-utils.color-with-opacity(map.get($system, on-surface), 12%);
50
49
 
@@ -52,55 +51,56 @@
52
51
  button-filled-container-color: map.get($system, surface),
53
52
  button-filled-disabled-container-color: $disabled-container,
54
53
  button-filled-disabled-label-text-color: $disabled,
55
- button-filled-disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
54
+ button-filled-disabled-state-layer-color: map.get($system, on-surface-variant),
56
55
  button-filled-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
57
56
  button-filled-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
58
- button-filled-label-text-color: inspection.get-theme-color($theme, foreground, base),
57
+ button-filled-label-text-color: map.get($system, on-surface),
59
58
  button-filled-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
60
- button-filled-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
61
- button-filled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
59
+ button-filled-ripple-color: m3-utils.color-with-opacity(
60
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
61
+ button-filled-state-layer-color: map.get($system, on-surface),
62
62
  button-outlined-disabled-label-text-color: $disabled,
63
- button-outlined-disabled-outline-color: $outline,
64
- button-outlined-disabled-state-layer-color:
65
- inspection.get-theme-color($theme, foreground, base),
63
+ button-outlined-disabled-outline-color: map.get($system, outline),
64
+ button-outlined-disabled-state-layer-color: map.get($system, on-surface-variant),
66
65
  button-outlined-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
67
66
  button-outlined-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
68
- button-outlined-label-text-color: inspection.get-theme-color($theme, foreground, base),
69
- button-outlined-outline-color: $outline,
70
- button-outlined-pressed-state-layer-opacity:
71
- map.get($system, pressed-state-layer-opacity),
72
- button-outlined-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
73
- button-outlined-state-layer-color: inspection.get-theme-color($theme, foreground, base),
67
+ button-outlined-label-text-color: map.get($system, on-surface),
68
+ button-outlined-outline-color: map.get($system, outline),
69
+ button-outlined-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
70
+ button-outlined-ripple-color: m3-utils.color-with-opacity(
71
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
72
+ button-outlined-state-layer-color: map.get($system, on-surface),
74
73
  button-protected-container-color: map.get($system, surface),
75
74
  button-protected-disabled-container-color: $disabled-container,
76
75
  button-protected-disabled-label-text-color: $disabled,
77
- button-protected-disabled-state-layer-color:
78
- inspection.get-theme-color($theme, foreground, base),
76
+ button-protected-disabled-state-layer-color: map.get($system, on-surface-variant),
79
77
  button-protected-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
80
78
  button-protected-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
81
- button-protected-label-text-color: inspection.get-theme-color($theme, foreground, base),
82
- button-protected-pressed-state-layer-opacity:
83
- map.get($system, pressed-state-layer-opacity),
84
- button-protected-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
85
- button-protected-state-layer-color: inspection.get-theme-color($theme, foreground, base),
79
+ button-protected-label-text-color: map.get($system, on-surface),
80
+ button-protected-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
81
+ button-protected-ripple-color: m3-utils.color-with-opacity(
82
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
83
+ button-protected-state-layer-color: map.get($system, on-surface),
86
84
  button-text-disabled-label-text-color: $disabled,
87
- button-text-disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
85
+ button-text-disabled-state-layer-color: map.get($system, on-surface-variant),
88
86
  button-text-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
89
87
  button-text-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
90
- button-text-label-text-color: inspection.get-theme-color($theme, foreground, base),
88
+ button-text-label-text-color: map.get($system, on-surface),
91
89
  button-text-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
92
- button-text-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
93
- button-text-state-layer-color: inspection.get-theme-color($theme, foreground, base),
90
+ button-text-ripple-color: m3-utils.color-with-opacity(
91
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
92
+ button-text-state-layer-color: map.get($system, on-surface),
94
93
  button-tonal-container-color: map.get($system, surface),
95
94
  button-tonal-disabled-container-color: $disabled-container,
96
95
  button-tonal-disabled-label-text-color: $disabled,
97
- button-tonal-disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
96
+ button-tonal-disabled-state-layer-color: map.get($system, on-surface-variant),
98
97
  button-tonal-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
99
98
  button-tonal-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
100
- button-tonal-label-text-color: inspection.get-theme-color($theme, foreground, base),
99
+ button-tonal-label-text-color: map.get($system, on-surface),
101
100
  button-tonal-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
102
- button-tonal-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
103
- button-tonal-state-layer-color: inspection.get-theme-color($theme, foreground, base),
101
+ button-tonal-ripple-color: m3-utils.color-with-opacity(
102
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
103
+ button-tonal-state-layer-color: map.get($system, on-surface),
104
104
  );
105
105
  }
106
106
 
@@ -116,60 +116,61 @@
116
116
  @return (
117
117
  button-filled-container-color: map.get($system, primary),
118
118
  button-filled-label-text-color: map.get($system, on-primary),
119
- button-filled-ripple-color: m3-utils.color-with-opacity(map.get($system, on-primary), 10%),
119
+ button-filled-ripple-color: m3-utils.color-with-opacity(
120
+ map.get($system, on-primary), map.get($system, pressed-state-layer-opacity)),
120
121
  button-filled-state-layer-color: map.get($system, on-primary),
121
122
  button-outlined-label-text-color: map.get($system, primary),
122
123
  button-outlined-outline-color: map.get(get-color-tokens($theme), button-outlined-outline-color),
123
- button-outlined-ripple-color: m3-utils.color-with-opacity(map.get($system, primary), 10%),
124
+ button-outlined-ripple-color: m3-utils.color-with-opacity(
125
+ map.get($system, primary), map.get($system, pressed-state-layer-opacity)),
124
126
  button-outlined-state-layer-color: map.get($system, primary),
125
127
  button-protected-container-color: map.get($system, primary),
126
128
  button-protected-label-text-color: map.get($system, on-primary),
127
- button-protected-ripple-color: m3-utils.color-with-opacity(map.get($system, on-primary), 10%),
129
+ button-protected-ripple-color: m3-utils.color-with-opacity(
130
+ map.get($system, on-primary), map.get($system, pressed-state-layer-opacity)),
128
131
  button-protected-state-layer-color: map.get($system, on-primary),
129
132
  button-text-label-text-color: map.get($system, primary),
130
- button-text-ripple-color: m3-utils.color-with-opacity(map.get($system, primary), 10%),
133
+ button-text-ripple-color: m3-utils.color-with-opacity(
134
+ map.get($system, primary), map.get($system, pressed-state-layer-opacity)),
131
135
  button-text-state-layer-color: map.get($system, primary),
132
136
  button-tonal-container-color: map.get($system, primary),
133
137
  button-tonal-label-text-color: map.get($system, on-primary),
134
- button-tonal-ripple-color: m3-utils.color-with-opacity(map.get($system, on-primary), 10%),
138
+ button-tonal-ripple-color: m3-utils.color-with-opacity(
139
+ map.get($system, on-primary), map.get($system, pressed-state-layer-opacity)),
135
140
  button-tonal-state-layer-color: map.get($system, on-primary),
136
141
  );
137
142
  }
138
143
 
139
144
  // Tokens that can be configured through Angular Material's typography theming API.
140
145
  @function get-typography-tokens($theme) {
141
- $font-family: inspection.get-theme-typography($theme, button, font-family);
142
- $font-size: inspection.get-theme-typography($theme, button, font-size);
143
- $font-weight: inspection.get-theme-typography($theme, button, font-weight);
144
- $letter-spacing: inspection.get-theme-typography($theme, button, letter-spacing);
145
- $text-transform: none;
146
+ $system: m2-utils.get-system($theme);
146
147
 
147
148
  @return (
148
- button-filled-label-text-font: $font-family,
149
- button-filled-label-text-size: $font-size,
150
- button-filled-label-text-tracking: $letter-spacing,
149
+ button-filled-label-text-font: map.get($system, label-small-font),
150
+ button-filled-label-text-size: map.get($system, label-small-size),
151
+ button-filled-label-text-tracking: map.get($system, label-small-tracking),
151
152
  button-filled-label-text-transform: none,
152
- button-filled-label-text-weight: $font-weight,
153
- button-outlined-label-text-font: $font-family,
154
- button-outlined-label-text-size: $font-size,
155
- button-outlined-label-text-tracking: $letter-spacing,
153
+ button-filled-label-text-weight: map.get($system, label-small-weight),
154
+ button-outlined-label-text-font: map.get($system, label-small-font),
155
+ button-outlined-label-text-size: map.get($system, label-small-size),
156
+ button-outlined-label-text-tracking: map.get($system, label-small-tracking),
156
157
  button-outlined-label-text-transform: none,
157
- button-outlined-label-text-weight: $font-weight,
158
- button-protected-label-text-font: $font-family,
159
- button-protected-label-text-size: $font-size,
160
- button-protected-label-text-tracking: $letter-spacing,
158
+ button-outlined-label-text-weight: map.get($system, label-small-weight),
159
+ button-protected-label-text-font: map.get($system, label-small-font),
160
+ button-protected-label-text-size: map.get($system, label-small-size),
161
+ button-protected-label-text-tracking: map.get($system, label-small-tracking),
161
162
  button-protected-label-text-transform: none,
162
- button-protected-label-text-weight: $font-weight,
163
- button-text-label-text-font: $font-family,
164
- button-text-label-text-size: $font-size,
165
- button-text-label-text-tracking: $letter-spacing,
163
+ button-protected-label-text-weight: map.get($system, label-small-weight),
164
+ button-text-label-text-font: map.get($system, label-small-font),
165
+ button-text-label-text-size: map.get($system, label-small-size),
166
+ button-text-label-text-tracking: map.get($system, label-small-tracking),
166
167
  button-text-label-text-transform: none,
167
- button-text-label-text-weight: $font-weight,
168
- button-tonal-label-text-font: $font-family,
169
- button-tonal-label-text-size: $font-size,
170
- button-tonal-label-text-tracking: $letter-spacing,
168
+ button-text-label-text-weight: map.get($system, label-small-weight),
169
+ button-tonal-label-text-font: map.get($system, label-small-font),
170
+ button-tonal-label-text-size: map.get($system, label-small-size),
171
+ button-tonal-label-text-tracking: map.get($system, label-small-tracking),
171
172
  button-tonal-label-text-transform: none,
172
- button-tonal-label-text-weight: $font-weight,
173
+ button-tonal-label-text-weight: map.get($system, label-small-weight),
173
174
  );
174
175
  }
175
176
 
@@ -39,23 +39,25 @@
39
39
  fab-container-color: map.get($system, surface),
40
40
  fab-disabled-state-container-color: $disabled-container,
41
41
  fab-disabled-state-foreground-color: $disabled,
42
- fab-disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
42
+ fab-disabled-state-layer-color: map.get($system, on-surface-variant),
43
43
  fab-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
44
- fab-foreground-color: inspection.get-theme-color($theme, foreground, base),
44
+ fab-foreground-color: map.get($system, on-surface),
45
45
  fab-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
46
46
  fab-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
47
- fab-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
47
+ fab-ripple-color: m3-utils.color-with-opacity(
48
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
48
49
  fab-small-container-color: map.get($system, surface),
49
50
  fab-small-disabled-state-container-color: $disabled-container,
50
51
  fab-small-disabled-state-foreground-color: $disabled,
51
- fab-small-disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
52
+ fab-small-disabled-state-layer-color: map.get($system, on-surface-variant),
52
53
  fab-small-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
53
- fab-small-foreground-color: inspection.get-theme-color($theme, foreground, base),
54
+ fab-small-foreground-color: map.get($system, on-surface),
54
55
  fab-small-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
55
56
  fab-small-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
56
- fab-small-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
57
- fab-small-state-layer-color: inspection.get-theme-color($theme, foreground, base),
58
- fab-state-layer-color: inspection.get-theme-color($theme, foreground, base),
57
+ fab-small-ripple-color: m3-utils.color-with-opacity(
58
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
59
+ fab-small-state-layer-color: map.get($system, on-surface),
60
+ fab-state-layer-color: map.get($system, on-surface),
59
61
  );
60
62
  }
61
63
 
@@ -67,10 +69,12 @@
67
69
  @return (
68
70
  fab-container-color: map.get($system, primary),
69
71
  fab-foreground-color: map.get($system, on-primary),
70
- fab-ripple-color: m3-utils.color-with-opacity(map.get($system, on-primary), 10%),
72
+ fab-ripple-color: m3-utils.color-with-opacity(
73
+ map.get($system, primary), map.get($system, pressed-state-layer-opacity)),
71
74
  fab-small-container-color: map.get($system, primary),
72
75
  fab-small-foreground-color: map.get($system, on-primary),
73
- fab-small-ripple-color: m3-utils.color-with-opacity(map.get($system, on-primary), 10%),
76
+ fab-small-ripple-color: m3-utils.color-with-opacity(
77
+ map.get($system, on-primary), map.get($system, pressed-state-layer-opacity)),
74
78
  fab-small-state-layer-color: map.get($system, on-primary),
75
79
  fab-state-layer-color: map.get($system, on-primary),
76
80
  );
@@ -78,12 +82,12 @@
78
82
 
79
83
  // Tokens that can be configured through Angular Material's typography theming API.
80
84
  @function get-typography-tokens($theme) {
85
+ $system: m2-utils.get-system($theme);
81
86
  @return (
82
- fab-extended-label-text-font: inspection.get-theme-typography($theme, button, font-family),
83
- fab-extended-label-text-size: inspection.get-theme-typography($theme, button, font-size),
84
- fab-extended-label-text-tracking:
85
- inspection.get-theme-typography($theme, button, letter-spacing),
86
- fab-extended-label-text-weight: inspection.get-theme-typography($theme, button, font-weight)
87
+ fab-extended-label-text-font: map.get($system, label-small-font),
88
+ fab-extended-label-text-size: map.get($system, label-small-size),
89
+ fab-extended-label-text-tracking: map.get($system, label-small-tracking),
90
+ fab-extended-label-text-weight: map.get($system, label-small-weight)
87
91
  );
88
92
  }
89
93
 
@@ -19,14 +19,15 @@
19
19
  $is-dark: inspection.get-theme-type($theme) == dark;
20
20
 
21
21
  @return (
22
- icon-button-disabled-icon-color: if($is-dark, rgba(#fff, 0.5), rgba(#000, 0.38)),
23
- icon-button-disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base),
22
+ icon-button-disabled-icon-color: m3-utils.color-with-opacity(map.get($system, on-surface), 38%),
23
+ icon-button-disabled-state-layer-color: map.get($system, on-surface-variant),
24
24
  icon-button-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
25
25
  icon-button-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
26
26
  icon-button-icon-color: inherit,
27
27
  icon-button-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
28
- icon-button-ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1),
29
- icon-button-state-layer-color: inspection.get-theme-color($theme, foreground, base),
28
+ icon-button-ripple-color: m3-utils.color-with-opacity(
29
+ map.get($system, on-surface), map.get($system, pressed-state-layer-opacity)),
30
+ icon-button-state-layer-color: map.get($system, on-surface),
30
31
  );
31
32
  }
32
33
 
@@ -38,7 +39,8 @@
38
39
  @return (
39
40
  icon-button-icon-color: map.get($system, primary),
40
41
  icon-button-state-layer-color: map.get($system, primary),
41
- icon-button-ripple-color: m3-utils.color-with-opacity(map.get($system, primary), 10%),
42
+ icon-button-ripple-color: m3-utils.color-with-opacity(
43
+ map.get($system, primary), map.get($system, pressed-state-layer-opacity)),
42
44
  );
43
45
  }
44
46
 
@@ -18,6 +18,7 @@ interface ButtonHarnessFilters extends BaseHarnessFilters {
18
18
 
19
19
  /** Harness for interacting with a mat-button in tests. */
20
20
  declare class MatButtonHarness extends ContentContainerComponentHarness {
21
+ /** Selector for the harness. */
21
22
  static hostSelector: string;
22
23
  /**
23
24
  * Gets a `HarnessPredicate` that can be used to search for a button with specific attributes.