@angular/material 20.1.0-next.2 → 20.1.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 (213) hide show
  1. package/autocomplete/_autocomplete-theme.scss +4 -4
  2. package/autocomplete/_m2-autocomplete.scss +10 -22
  3. package/badge/_badge-theme.scss +4 -4
  4. package/badge/_m2-badge.scss +49 -63
  5. package/bottom-sheet/_bottom-sheet-theme.scss +4 -4
  6. package/bottom-sheet/_m2-bottom-sheet.scss +16 -30
  7. package/button/_button-theme.scss +4 -4
  8. package/button/_fab-theme.scss +4 -4
  9. package/button/_icon-button-theme.scss +10 -8
  10. package/button/_m2-button.scss +135 -154
  11. package/button/_m2-fab.scss +60 -69
  12. package/button/_m2-icon-button.scss +30 -50
  13. package/button/_m3-button.scss +1 -2
  14. package/button/_m3-fab.scss +1 -2
  15. package/button/_m3-icon-button.scss +1 -2
  16. package/button-toggle/_button-toggle-theme.scss +4 -4
  17. package/button-toggle/_m2-button-toggle.scss +58 -75
  18. package/button-toggle/_m3-button-toggle.scss +1 -2
  19. package/card/_card-theme.scss +4 -4
  20. package/card/_m2-card.scss +30 -43
  21. package/checkbox/_checkbox-theme.scss +10 -8
  22. package/checkbox/_m2-checkbox.scss +30 -41
  23. package/checkbox/_m3-checkbox.scss +1 -2
  24. package/chips/_chips-theme.scss +10 -7
  25. package/chips/_m2-chip.scss +40 -54
  26. package/chips/_m3-chip.scss +1 -2
  27. package/core/_core-theme.scss +4 -4
  28. package/core/_m2-app.scss +11 -23
  29. package/core/m2/_theming.scss +8 -4
  30. package/core/option/_m2-optgroup.scss +13 -25
  31. package/core/option/_m2-option.scss +16 -23
  32. package/core/option/_optgroup-theme.scss +4 -4
  33. package/core/option/_option-theme.scss +6 -6
  34. package/core/ripple/_m2-ripple.scss +8 -20
  35. package/core/ripple/_ripple-theme.scss +4 -4
  36. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +14 -21
  37. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +8 -8
  38. package/core/theming/_definition.scss +3 -1
  39. package/core/tokens/_m2-utils.scss +14 -6
  40. package/core/tokens/m3/_theme.scss +1 -1
  41. package/datepicker/_datepicker-theme.scss +6 -6
  42. package/datepicker/_m2-datepicker.scss +26 -33
  43. package/dialog/_dialog-theme.scss +4 -4
  44. package/dialog/_m2-dialog.scss +34 -46
  45. package/divider/_divider-theme.scss +4 -4
  46. package/divider/_m2-divider.scss +10 -21
  47. package/expansion/_expansion-theme.scss +4 -4
  48. package/expansion/_m2-expansion.scss +51 -67
  49. package/expansion/_m3-expansion.scss +1 -2
  50. package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
  51. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  52. package/fesm2022/autocomplete.mjs.map +1 -1
  53. package/fesm2022/badge/testing.mjs.map +1 -1
  54. package/fesm2022/badge.mjs.map +1 -1
  55. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  56. package/fesm2022/bottom-sheet.mjs.map +1 -1
  57. package/fesm2022/button/testing.mjs.map +1 -1
  58. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  59. package/fesm2022/button-toggle.mjs.map +1 -1
  60. package/fesm2022/button.mjs.map +1 -1
  61. package/fesm2022/card/testing.mjs.map +1 -1
  62. package/fesm2022/card.mjs.map +1 -1
  63. package/fesm2022/checkbox/testing.mjs.map +1 -1
  64. package/fesm2022/checkbox.mjs.map +1 -1
  65. package/fesm2022/chips/testing.mjs.map +1 -1
  66. package/fesm2022/chips.mjs.map +1 -1
  67. package/fesm2022/common-module-cKSwHniA.mjs.map +1 -1
  68. package/fesm2022/core/testing.mjs.map +1 -1
  69. package/fesm2022/core.mjs +1 -1
  70. package/fesm2022/core.mjs.map +1 -1
  71. package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
  72. package/fesm2022/date-range-input-harness-DEyfkeOs.mjs.map +1 -1
  73. package/fesm2022/datepicker/testing.mjs.map +1 -1
  74. package/fesm2022/datepicker.mjs.map +1 -1
  75. package/fesm2022/dialog/testing.mjs.map +1 -1
  76. package/fesm2022/dialog.mjs.map +1 -1
  77. package/fesm2022/divider/testing.mjs.map +1 -1
  78. package/fesm2022/divider.mjs.map +1 -1
  79. package/fesm2022/error-options-DCNQlTOA.mjs.map +1 -1
  80. package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
  81. package/fesm2022/expansion/testing.mjs.map +1 -1
  82. package/fesm2022/expansion.mjs.map +1 -1
  83. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  84. package/fesm2022/form-field/testing.mjs.map +1 -1
  85. package/fesm2022/form-field-CFbrnFED.mjs.map +1 -1
  86. package/fesm2022/form-field.mjs.map +1 -1
  87. package/fesm2022/grid-list/testing.mjs.map +1 -1
  88. package/fesm2022/grid-list.mjs.map +1 -1
  89. package/fesm2022/icon/testing.mjs.map +1 -1
  90. package/fesm2022/icon-button-DxiIc1ex.mjs.map +1 -1
  91. package/fesm2022/icon-registry-CwOTJ7YM.mjs.map +1 -1
  92. package/fesm2022/icon.mjs.map +1 -1
  93. package/fesm2022/index-BFRo2fUq.mjs.map +1 -1
  94. package/fesm2022/index-DwiL-HGk.mjs.map +1 -1
  95. package/fesm2022/input/testing.mjs.map +1 -1
  96. package/fesm2022/input-harness-C5Msdc4-.mjs.map +1 -1
  97. package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
  98. package/fesm2022/input.mjs.map +1 -1
  99. package/fesm2022/internal-form-field-D5iFxU6d.mjs.map +1 -1
  100. package/fesm2022/line-Bz5f9Cyx.mjs.map +1 -1
  101. package/fesm2022/list/testing.mjs.map +1 -1
  102. package/fesm2022/list.mjs.map +1 -1
  103. package/fesm2022/material.mjs.map +1 -1
  104. package/fesm2022/menu/testing.mjs.map +1 -1
  105. package/fesm2022/menu.mjs.map +1 -1
  106. package/fesm2022/module-B0CLRw5e.mjs.map +1 -1
  107. package/fesm2022/module-B62K-792.mjs.map +1 -1
  108. package/fesm2022/module-CWxMD37a.mjs.map +1 -1
  109. package/fesm2022/module-Ce6F7TNm.mjs.map +1 -1
  110. package/fesm2022/option-BzhYL_xC.mjs.map +1 -1
  111. package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
  112. package/fesm2022/paginator/testing.mjs.map +1 -1
  113. package/fesm2022/paginator.mjs.map +1 -1
  114. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  115. package/fesm2022/progress-bar.mjs.map +1 -1
  116. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  117. package/fesm2022/progress-spinner.mjs.map +1 -1
  118. package/fesm2022/pseudo-checkbox-DDmgx3P4.mjs.map +1 -1
  119. package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs.map +1 -1
  120. package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
  121. package/fesm2022/radio/testing.mjs.map +1 -1
  122. package/fesm2022/radio.mjs.map +1 -1
  123. package/fesm2022/ripple-BYgV4oZC.mjs.map +1 -1
  124. package/fesm2022/ripple-loader-BnMiRtmT.mjs.map +1 -1
  125. package/fesm2022/select/testing.mjs.map +1 -1
  126. package/fesm2022/select.mjs.map +1 -1
  127. package/fesm2022/sidenav/testing.mjs.map +1 -1
  128. package/fesm2022/sidenav.mjs +2 -4
  129. package/fesm2022/sidenav.mjs.map +1 -1
  130. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  131. package/fesm2022/slide-toggle.mjs.map +1 -1
  132. package/fesm2022/slider/testing.mjs.map +1 -1
  133. package/fesm2022/slider.mjs.map +1 -1
  134. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  135. package/fesm2022/snack-bar.mjs.map +1 -1
  136. package/fesm2022/sort/testing.mjs.map +1 -1
  137. package/fesm2022/sort.mjs.map +1 -1
  138. package/fesm2022/stepper/testing.mjs.map +1 -1
  139. package/fesm2022/stepper.mjs.map +1 -1
  140. package/fesm2022/structural-styles-CObeNzjn.mjs.map +1 -1
  141. package/fesm2022/table/testing.mjs.map +1 -1
  142. package/fesm2022/table.mjs.map +1 -1
  143. package/fesm2022/tabs/testing.mjs.map +1 -1
  144. package/fesm2022/tabs.mjs.map +1 -1
  145. package/fesm2022/timepicker/testing.mjs.map +1 -1
  146. package/fesm2022/timepicker.mjs.map +1 -1
  147. package/fesm2022/toolbar/testing.mjs.map +1 -1
  148. package/fesm2022/toolbar.mjs.map +1 -1
  149. package/fesm2022/tooltip/testing.mjs.map +1 -1
  150. package/fesm2022/tooltip.mjs.map +1 -1
  151. package/fesm2022/tree/testing.mjs.map +1 -1
  152. package/fesm2022/tree.mjs.map +1 -1
  153. package/form-field/_form-field-theme.scss +4 -4
  154. package/form-field/_m2-form-field.scss +125 -138
  155. package/form-field/_m3-form-field.scss +1 -2
  156. package/grid-list/_grid-list-theme.scss +4 -4
  157. package/grid-list/_m2-grid-list.scss +14 -25
  158. package/icon/_icon-theme.scss +4 -4
  159. package/icon/_m2-icon.scss +7 -21
  160. package/list/_list-theme.scss +14 -12
  161. package/list/_m2-list.scss +84 -98
  162. package/list/_m3-list.scss +1 -2
  163. package/menu/_m2-menu.scss +33 -46
  164. package/menu/_menu-theme.scss +4 -4
  165. package/package.json +2 -2
  166. package/paginator/_m2-paginator.scss +38 -57
  167. package/paginator/_m3-paginator.scss +1 -2
  168. package/paginator/_paginator-theme.scss +4 -4
  169. package/prebuilt-themes/deeppurple-amber.css +1 -1
  170. package/prebuilt-themes/indigo-pink.css +1 -1
  171. package/prebuilt-themes/pink-bluegrey.css +1 -1
  172. package/prebuilt-themes/purple-green.css +1 -1
  173. package/progress-bar/_m2-progress-bar.scss +11 -24
  174. package/progress-bar/_progress-bar-theme.scss +6 -6
  175. package/progress-spinner/_m2-progress-spinner.scss +9 -20
  176. package/progress-spinner/_progress-spinner-theme.scss +6 -6
  177. package/radio/_m2-radio.scss +30 -41
  178. package/radio/_m3-radio.scss +1 -2
  179. package/radio/_radio-theme.scss +6 -6
  180. package/schematics/ng-add/index.js +1 -1
  181. package/schematics/ng-generate/theme-color/schema.json +1 -1
  182. package/select/_m2-select.scss +23 -31
  183. package/select/_m3-select.scss +1 -2
  184. package/select/_select-theme.scss +6 -6
  185. package/sidenav/_m2-sidenav.scss +26 -36
  186. package/sidenav/_sidenav-theme.scss +4 -4
  187. package/slide-toggle/_m2-slide-toggle.scss +94 -113
  188. package/slide-toggle/_slide-toggle-theme.scss +6 -6
  189. package/slider/_m2-slider.scss +34 -52
  190. package/slider/_slider-theme.scss +4 -4
  191. package/snack-bar/_m2-snack-bar.scss +16 -36
  192. package/snack-bar/_snack-bar-theme.scss +4 -4
  193. package/sort/_m2-sort.scss +7 -18
  194. package/sort/_sort-theme.scss +4 -4
  195. package/stepper/_m2-stepper.scss +39 -54
  196. package/stepper/_m3-stepper.scss +1 -2
  197. package/stepper/_stepper-theme.scss +4 -4
  198. package/table/_m2-table.scss +54 -65
  199. package/table/_m3-table.scss +1 -2
  200. package/table/_table-theme.scss +4 -4
  201. package/tabs/_m2-tabs.scss +31 -47
  202. package/tabs/_m3-tabs.scss +1 -2
  203. package/tabs/_tabs-theme.scss +9 -9
  204. package/timepicker/_m2-timepicker.scss +10 -22
  205. package/timepicker/_timepicker-theme.scss +4 -4
  206. package/toolbar/_m2-toolbar.scss +26 -45
  207. package/toolbar/_m3-toolbar.scss +1 -2
  208. package/toolbar/_toolbar-theme.scss +4 -4
  209. package/tooltip/_m2-tooltip.scss +16 -33
  210. package/tooltip/_tooltip-theme.scss +4 -4
  211. package/tree/_m2-tree.scss +21 -39
  212. package/tree/_m3-tree.scss +1 -2
  213. package/tree/_tree-theme.scss +4 -4
@@ -6,7 +6,7 @@
6
6
  @use 'm3-autocomplete';
7
7
 
8
8
  @mixin base($theme) {
9
- $tokens: m2-autocomplete.get-unthemable-tokens();
9
+ $tokens: map.get(m2-autocomplete.get-tokens($theme), base);
10
10
  @if inspection.get-theme-version($theme) == 1 {
11
11
  $tokens: map.get(m3-autocomplete.get-tokens($theme), base);
12
12
  }
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  @mixin color($theme) {
18
- $tokens: m2-autocomplete.get-color-tokens($theme);
18
+ $tokens: map.get(m2-autocomplete.get-tokens($theme), color);
19
19
  @if inspection.get-theme-version($theme) == 1 {
20
20
  $tokens: map.get(m3-autocomplete.get-tokens($theme), color);
21
21
  }
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  @mixin typography($theme) {
27
- $tokens: m2-autocomplete.get-typography-tokens($theme);
27
+ $tokens: map.get(m2-autocomplete.get-tokens($theme), typography);
28
28
  @if inspection.get-theme-version($theme) == 1 {
29
29
  $tokens: map.get(m3-autocomplete.get-tokens($theme), typography);
30
30
  }
@@ -33,7 +33,7 @@
33
33
  }
34
34
 
35
35
  @mixin density($theme) {
36
- $tokens: m2-autocomplete.get-density-tokens($theme);
36
+ $tokens: map.get(m2-autocomplete.get-tokens($theme), density);
37
37
  @if inspection.get-theme-version($theme) == 1 {
38
38
  $tokens: map.get(m3-autocomplete.get-tokens($theme), density);
39
39
  }
@@ -2,30 +2,18 @@
2
2
  @use '../core/tokens/m2-utils';
3
3
  @use 'sass:map';
4
4
 
5
- // Tokens that can't be configured through Angular Material's current theming API,
6
- // but may be in a future version of the theming API.
7
- @function get-unthemable-tokens() {
8
- @return (
9
- autocomplete-container-shape: 4px,
10
- autocomplete-container-elevation-shadow: elevation.get-box-shadow(8),
11
- );
12
- }
13
-
14
- // Tokens that can be configured through Angular Material's color theming API.
15
- @function get-color-tokens($theme) {
5
+ @function get-tokens($theme) {
16
6
  $system: m2-utils.get-system($theme);
17
7
 
18
8
  @return (
19
- autocomplete-background-color: map.get($system, surface)
9
+ base: (
10
+ autocomplete-container-shape: 4px,
11
+ autocomplete-container-elevation-shadow: elevation.get-box-shadow(8),
12
+ ),
13
+ color: (
14
+ autocomplete-background-color: map.get($system, surface)
15
+ ),
16
+ typography: (),
17
+ density: (),
20
18
  );
21
19
  }
22
-
23
- // Tokens that can be configured through Angular Material's typography theming API.
24
- @function get-typography-tokens($theme) {
25
- @return ();
26
- }
27
-
28
- // Tokens that can be configured through Angular Material's density theming API.
29
- @function get-density-tokens($theme) {
30
- @return ();
31
- }
@@ -10,7 +10,7 @@
10
10
  /// for the mat-badge.
11
11
  /// @param {Map} $theme The theme to generate base styles for.
12
12
  @mixin base($theme) {
13
- $tokens: m2-badge.get-unthemable-tokens();
13
+ $tokens: map.get(m2-badge.get-tokens($theme), base);
14
14
  @if inspection.get-theme-version($theme) == 1 {
15
15
  $tokens: map.get(m3-badge.get-tokens($theme), base);
16
16
  }
@@ -24,7 +24,7 @@
24
24
  /// the badge: primary, secondary, tertiary, or error (If not specified,
25
25
  /// default error color will be used).
26
26
  @mixin color($theme, $color-variant: null) {
27
- $tokens: m2-badge.get-color-tokens($theme);
27
+ $tokens: map.get(m2-badge.get-tokens($theme), color);
28
28
  @if inspection.get-theme-version($theme) == 1 {
29
29
  $tokens: map.get(m3-badge.get-tokens($theme, $color-variant), color);
30
30
  }
@@ -47,7 +47,7 @@
47
47
  /// Outputs typography theme styles for the mat-badge.
48
48
  /// @param {Map} $theme The theme to generate typography styles for.
49
49
  @mixin typography($theme) {
50
- $tokens: m2-badge.get-typography-tokens($theme);
50
+ $tokens: map.get(m2-badge.get-tokens($theme), typography);
51
51
  @if inspection.get-theme-version($theme) == 1 {
52
52
  $tokens: map.get(m3-badge.get-tokens($theme), typography);
53
53
  }
@@ -58,7 +58,7 @@
58
58
  /// Outputs density theme styles for the mat-badge.
59
59
  /// @param {Map} $theme The theme to generate density styles for.
60
60
  @mixin density($theme) {
61
- $tokens: m2-badge.get-density-tokens($theme);
61
+ $tokens: map.get(m2-badge.get-tokens($theme), density);
62
62
  @if inspection.get-theme-version($theme) == 1 {
63
63
  $tokens: map.get(m3-badge.get-tokens($theme), density);
64
64
  }
@@ -7,48 +7,59 @@ $_default-size: 22px;
7
7
  $_small-size: $_default-size - 6px;
8
8
  $_large-size: $_default-size + 6px;
9
9
 
10
- // Tokens that can't be configured through Angular Material's current theming API,
11
- // but may be in a future version of the theming API.
12
- @function get-unthemable-tokens() {
13
- $default-size: $_default-size;
14
- $small-size: $_small-size;
15
- $large-size: $_large-size;
16
-
17
- @return (
18
- badge-container-shape: 50%,
19
- badge-container-size: unset,
20
- badge-small-size-container-size: unset,
21
- badge-large-size-container-size: unset,
22
-
23
- badge-legacy-container-size: $default-size,
24
- badge-legacy-small-size-container-size: $small-size,
25
- badge-legacy-large-size-container-size: $large-size,
26
-
27
- badge-container-offset: math.div($default-size, -2) 0,
28
- badge-small-size-container-offset: math.div($small-size, -2) 0,
29
- badge-large-size-container-offset: math.div($large-size, -2) 0,
30
-
31
- badge-container-overlap-offset: math.div($default-size, -2),
32
- badge-small-size-container-overlap-offset: math.div($small-size, -2),
33
- badge-large-size-container-overlap-offset: math.div($large-size, -2),
34
-
35
- badge-container-padding: 0,
36
- badge-small-size-container-padding: 0,
37
- badge-large-size-container-padding: 0,
38
- );
39
- }
10
+ @function get-tokens($theme) {
11
+ $default-size: 22px;
12
+ $small-size: $default-size - 6px;
13
+ $large-size: $default-size + 6px;
14
+ $base-size: 12px;
40
15
 
41
- // Tokens that can be configured through Angular Material's color theming API.
42
- @function get-color-tokens($theme) {
43
16
  $system: m2-utils.get-system($theme);
44
17
  $disabled: m3-utils.color-with-opacity(map.get($system, on-surface), 38%);
45
- $disabled-container : m3-utils.color-with-opacity(map.get($system, on-surface), 12%);
18
+ $disabled-container: m3-utils.color-with-opacity(map.get($system, on-surface), 12%);
46
19
  $primary-color-tokens: private-get-color-palette-color-tokens($theme, primary);
47
- @return map.merge($primary-color-tokens, (
48
- badge-disabled-state-background-color: $disabled-container,
49
- badge-disabled-state-text-color: $disabled,
50
- ));
51
- }
20
+
21
+ @return (
22
+ base: (
23
+ badge-container-shape: 50%,
24
+ badge-container-size: unset,
25
+ badge-small-size-container-size: unset,
26
+ badge-large-size-container-size: unset,
27
+
28
+ badge-legacy-container-size: $default-size,
29
+ badge-legacy-small-size-container-size: $small-size,
30
+ badge-legacy-large-size-container-size: $large-size,
31
+
32
+ badge-container-offset: math.div($default-size, -2) 0,
33
+ badge-small-size-container-offset: math.div($small-size, -2) 0,
34
+ badge-large-size-container-offset: math.div($large-size, -2) 0,
35
+
36
+ badge-container-overlap-offset: math.div($default-size, -2),
37
+ badge-small-size-container-overlap-offset: math.div($small-size, -2),
38
+ badge-large-size-container-overlap-offset: math.div($large-size, -2),
39
+
40
+ badge-container-padding: 0,
41
+ badge-small-size-container-padding: 0,
42
+ badge-large-size-container-padding: 0,
43
+ ),
44
+ color: map.merge($primary-color-tokens, (
45
+ badge-disabled-state-background-color: $disabled-container,
46
+ badge-disabled-state-text-color: $disabled,
47
+ )),
48
+ typography: (
49
+ badge-text-font: map.get($system, body-medium-font),
50
+ badge-line-height: $_default-size,
51
+ badge-text-size: $base-size,
52
+ badge-text-weight: 600,
53
+
54
+ badge-small-size-text-size: $base-size * 0.75,
55
+ badge-small-size-line-height: $_small-size,
56
+
57
+ badge-large-size-text-size: $base-size * 2,
58
+ badge-large-size-line-height: $_large-size,
59
+ ),
60
+ density: (),
61
+ );
62
+ };
52
63
 
53
64
  // Generates the tokens used to theme the badge based on a palette.
54
65
  @function private-get-color-palette-color-tokens($theme, $color-variant) {
@@ -60,28 +71,3 @@ $_large-size: $_default-size + 6px;
60
71
  badge-text-color: map.get($system, on-primary),
61
72
  );
62
73
  }
63
-
64
- // Tokens that can be configured through Angular Material's typography theming API.
65
- @function get-typography-tokens($theme) {
66
- $system: m2-utils.get-system($theme);
67
-
68
- $base-size: 12px;
69
-
70
- @return (
71
- badge-text-font: map.get($system, body-medium-font),
72
- badge-line-height: $_default-size,
73
- badge-text-size: $base-size,
74
- badge-text-weight: 600,
75
-
76
- badge-small-size-text-size: $base-size * 0.75,
77
- badge-small-size-line-height: $_small-size,
78
-
79
- badge-large-size-text-size: $base-size * 2,
80
- badge-large-size-line-height: $_large-size,
81
- );
82
- }
83
-
84
- // Tokens that can be configured through Angular Material's density theming API.
85
- @function get-density-tokens($theme) {
86
- @return ();
87
- }
@@ -6,7 +6,7 @@
6
6
  @use './m3-bottom-sheet';
7
7
 
8
8
  @mixin base($theme) {
9
- $tokens: m2-bottom-sheet.get-unthemable-tokens();
9
+ $tokens: map.get(m2-bottom-sheet.get-tokens($theme), base);
10
10
  @if inspection.get-theme-version($theme) == 1 {
11
11
  $tokens: map.get(m3-bottom-sheet.get-tokens($theme), base);
12
12
  }
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  @mixin color($theme) {
18
- $tokens: m2-bottom-sheet.get-color-tokens($theme);
18
+ $tokens: map.get(m2-bottom-sheet.get-tokens($theme), color);
19
19
  @if inspection.get-theme-version($theme) == 1 {
20
20
  $tokens: map.get(m3-bottom-sheet.get-tokens($theme), color);
21
21
  }
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  @mixin typography($theme) {
27
- $tokens: m2-bottom-sheet.get-typography-tokens($theme);
27
+ $tokens: map.get(m2-bottom-sheet.get-tokens($theme), typography);
28
28
  @if inspection.get-theme-version($theme) == 1 {
29
29
  $tokens: map.get(m3-bottom-sheet.get-tokens($theme), typography);
30
30
  }
@@ -33,7 +33,7 @@
33
33
  }
34
34
 
35
35
  @mixin density($theme) {
36
- $tokens: m2-bottom-sheet.get-density-tokens($theme);
36
+ $tokens: map.get(m2-bottom-sheet.get-tokens($theme), density);
37
37
  @if inspection.get-theme-version($theme) == 1 {
38
38
  $tokens: map.get(m3-bottom-sheet.get-tokens($theme), density);
39
39
  }
@@ -1,38 +1,24 @@
1
1
  @use '../core/tokens/m2-utils';
2
2
  @use 'sass:map';
3
3
 
4
- // Tokens that can't be configured through Angular Material's current theming API,
5
- // but may be in a future version of the theming API.
6
- @function get-unthemable-tokens() {
7
- @return (
8
- // TODO: will be necessary for M3.
9
- bottom-sheet-container-shape: 4px,
10
- );
11
- }
12
-
13
- // Tokens that can be configured through Angular Material's color theming API.
14
- @function get-color-tokens($theme) {
4
+ @function get-tokens($theme) {
15
5
  $system: m2-utils.get-system($theme);
16
6
 
17
7
  @return (
18
- bottom-sheet-container-text-color: map.get($system, on-surface),
19
- bottom-sheet-container-background-color: map.get($system, surface),
8
+ base: (
9
+ bottom-sheet-container-shape: 4px,
10
+ ),
11
+ color: (
12
+ bottom-sheet-container-text-color: map.get($system, on-surface),
13
+ bottom-sheet-container-background-color: map.get($system, surface),
14
+ ),
15
+ typography: (
16
+ bottom-sheet-container-text-font: map.get($system, body-medium-font),
17
+ bottom-sheet-container-text-line-height: map.get($system, body-medium-line-height),
18
+ bottom-sheet-container-text-size: map.get($system, body-medium-size),
19
+ bottom-sheet-container-text-tracking: map.get($system, body-medium-tracking),
20
+ bottom-sheet-container-text-weight: map.get($system, body-medium-weight),
21
+ ),
22
+ density: (),
20
23
  );
21
24
  }
22
-
23
- // Tokens that can be configured through Angular Material's typography theming API.
24
- @function get-typography-tokens($theme) {
25
- $system: m2-utils.get-system($theme);
26
- @return (
27
- bottom-sheet-container-text-font: map.get($system, body-medium-font),
28
- bottom-sheet-container-text-line-height: map.get($system, body-medium-line-height),
29
- bottom-sheet-container-text-size: map.get($system, body-medium-size),
30
- bottom-sheet-container-text-tracking: map.get($system, body-medium-tracking),
31
- bottom-sheet-container-text-weight: map.get($system, body-medium-weight),
32
- );
33
- }
34
-
35
- // Tokens that can be configured through Angular Material's density theming API.
36
- @function get-density-tokens($theme) {
37
- @return ();
38
- }
@@ -9,7 +9,7 @@
9
9
  /// for the mat-button.
10
10
  /// @param {Map} $theme The theme to generate base styles for.
11
11
  @mixin base($theme) {
12
- $tokens: m2-button.get-unthemable-tokens();
12
+ $tokens: map.get(m2-button.get-tokens($theme), base);
13
13
  @if inspection.get-theme-version($theme) == 1 {
14
14
  $tokens: map.get(m3-button.get-tokens($theme), base);
15
15
  }
@@ -23,7 +23,7 @@
23
23
  /// the badge: primary, secondary, tertiary, or error (If not specified,
24
24
  /// default primary color will be used).
25
25
  @mixin color($theme, $color-variant: null) {
26
- $tokens: m2-button.get-color-tokens($theme);
26
+ $tokens: map.get(m2-button.get-tokens($theme), color);
27
27
  @if inspection.get-theme-version($theme) == 1 {
28
28
  $tokens: map.get(m3-button.get-tokens($theme, $color-variant), color);
29
29
  }
@@ -55,7 +55,7 @@
55
55
  }
56
56
 
57
57
  @mixin typography($theme) {
58
- $tokens: m2-button.get-typography-tokens($theme);
58
+ $tokens: map.get(m2-button.get-tokens($theme), typography);
59
59
  @if inspection.get-theme-version($theme) == 1 {
60
60
  $tokens: map.get(m3-button.get-tokens($theme), typography);
61
61
  }
@@ -64,7 +64,7 @@
64
64
  }
65
65
 
66
66
  @mixin density($theme) {
67
- $tokens: m2-button.get-density-tokens($theme);
67
+ $tokens: map.get(m2-button.get-tokens($theme), density);
68
68
  @if inspection.get-theme-version($theme) == 1 {
69
69
  $tokens: map.get(m3-button.get-tokens($theme), density);
70
70
  }
@@ -9,7 +9,7 @@
9
9
  /// for the mat-fab.
10
10
  /// @param {Map} $theme The theme to generate base styles for.
11
11
  @mixin base($theme) {
12
- $tokens: m2-fab.get-unthemable-tokens();
12
+ $tokens: map.get(m2-fab.get-tokens($theme), base);
13
13
  @if inspection.get-theme-version($theme) == 1 {
14
14
  $tokens: map.get(m3-fab.get-tokens($theme), base);
15
15
  }
@@ -22,7 +22,7 @@
22
22
  /// @param {ArgList} $color-variant: The color variant to use for the fab: primary, secondary,
23
23
  // or tertiary. (If not specified, default primary color will be used).
24
24
  @mixin color($theme, $color-variant: null) {
25
- $tokens: m2-fab.get-color-tokens($theme);
25
+ $tokens: map.get(m2-fab.get-tokens($theme), color);
26
26
  @if inspection.get-theme-version($theme) == 1 {
27
27
  $tokens: map.get(m3-fab.get-tokens($theme, $color-variant), color);
28
28
  }
@@ -52,7 +52,7 @@
52
52
  /// Outputs typography theme styles for the mat-fab.
53
53
  /// @param {Map} $theme The theme to generate typography styles for.
54
54
  @mixin typography($theme) {
55
- $tokens: m2-fab.get-typography-tokens($theme);
55
+ $tokens: map.get(m2-fab.get-tokens($theme), typography);
56
56
  @if inspection.get-theme-version($theme) == 1 {
57
57
  $tokens: map.get(m3-fab.get-tokens($theme), typography);
58
58
  }
@@ -63,7 +63,7 @@
63
63
  /// Outputs density theme styles for the mat-fab.
64
64
  /// @param {Map} $theme The theme to generate density styles for.
65
65
  @mixin density($theme) {
66
- $tokens: m2-fab.get-density-tokens($theme);
66
+ $tokens: map.get(m2-fab.get-tokens($theme), density);
67
67
  @if inspection.get-theme-version($theme) == 1 {
68
68
  $tokens: map.get(m3-fab.get-tokens($theme), density);
69
69
  }
@@ -3,10 +3,12 @@
3
3
  @use './m2-icon-button';
4
4
  @use './m3-icon-button';
5
5
  @use '../core/tokens/token-utils';
6
+ @use '../core/tokens/m2-utils';
6
7
  @use '../core/theming/inspection';
8
+ @use '../core/theming/theming';
7
9
 
8
10
  @mixin base($theme) {
9
- $tokens: m2-icon-button.get-unthemable-tokens();
11
+ $tokens: map.get(m2-icon-button.get-tokens($theme), base);
10
12
  @if inspection.get-theme-version($theme) == 1 {
11
13
  $tokens: map.get(m3-icon-button.get-tokens($theme), base);
12
14
  }
@@ -19,7 +21,7 @@
19
21
  /// @param {String} $color-variant: The color variant to use for the
20
22
  // button: primary, secondary, tertiary, or error.
21
23
  @mixin color($theme, $color-variant: null) {
22
- $tokens: m2-icon-button.get-color-tokens($theme);
24
+ $tokens: map.get(m2-icon-button.get-tokens($theme), color);
23
25
  @if inspection.get-theme-version($theme) == 1 {
24
26
  $tokens: map.get(m3-icon-button.get-tokens($theme, $color-variant), color);
25
27
  }
@@ -47,7 +49,7 @@
47
49
  }
48
50
 
49
51
  @mixin typography($theme) {
50
- $tokens: m2-icon-button.get-typography-tokens($theme);
52
+ $tokens: map.get(m2-icon-button.get-tokens($theme), typography);
51
53
  @if inspection.get-theme-version($theme) == 1 {
52
54
  $tokens: map.get(m3-icon-button.get-tokens($theme), typography);
53
55
  }
@@ -60,7 +62,8 @@
60
62
  @include token-utils.values(map.get(m3-icon-button.get-tokens($theme), density));
61
63
  } @else {
62
64
  $icon-size: 24px;
63
- $density-scale: inspection.get-theme-density($theme);
65
+ $system: m2-utils.get-system($theme);
66
+ $density-scale: theming.clamp-density(map.get($system, density-scale), -5);
64
67
  $size-map: (
65
68
  0: 48px,
66
69
  -1: 44px,
@@ -71,10 +74,9 @@
71
74
  );
72
75
  $calculated-size: map.get($size-map, $density-scale);
73
76
 
74
- @include token-utils.values(
75
- m2-icon-button.get-density-tokens(
76
- $theme, $exclude: (icon-button-state-layer-size))
77
- );
77
+ $density-tokens: map.get(m2-icon-button.get-tokens($theme), density);
78
+ $density-tokens: map.remove($density-tokens, icon-button-state-layer-size);
79
+ @include token-utils.values($density-tokens);
78
80
 
79
81
  // Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.
80
82
  .mat-mdc-icon-button.mat-mdc-button-base {