@angular/material 17.1.1 → 17.2.0-next.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 (304) hide show
  1. package/_index.scss +4 -4
  2. package/badge/_badge-theme.scss +30 -11
  3. package/button/_button-base.scss +50 -10
  4. package/button/_button-theme.scss +92 -51
  5. package/button/_fab-theme.scss +82 -15
  6. package/button/_icon-button-theme.scss +11 -4
  7. package/button-toggle/_button-toggle-theme.scss +26 -11
  8. package/checkbox/_checkbox-theme.scss +41 -23
  9. package/chips/_chips-theme.scss +25 -9
  10. package/core/_core-theme.scss +85 -38
  11. package/core/mdc-helpers/_mdc-helpers.scss +0 -8
  12. package/core/option/_option-theme.scss +24 -10
  13. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +64 -24
  14. package/core/tokens/_token-utils.scss +22 -0
  15. package/core/tokens/m2/_index.scss +16 -0
  16. package/core/tokens/m2/mat/_badge.scss +27 -1
  17. package/core/tokens/m2/mat/_checkbox.scss +45 -0
  18. package/core/tokens/m2/mat/_dialog.scss +49 -0
  19. package/core/tokens/m2/mat/_fab-small.scss +95 -0
  20. package/core/tokens/m2/mat/_fab.scss +6 -1
  21. package/core/tokens/m2/mat/_filled-button.scss +17 -2
  22. package/core/tokens/m2/mat/_icon-button.scss +6 -1
  23. package/core/tokens/m2/mat/_outlined-button.scss +17 -2
  24. package/core/tokens/m2/mat/_protected-button.scss +17 -2
  25. package/core/tokens/m2/mat/_radio.scss +6 -1
  26. package/core/tokens/m2/mat/_stepper.scss +6 -1
  27. package/core/tokens/m2/mat/_text-button.scss +20 -2
  28. package/core/tokens/m2/mdc/_extended-fab.scss +3 -2
  29. package/core/tokens/m2/mdc/_fab-small.scss +90 -0
  30. package/core/tokens/m2/mdc/_fab.scss +0 -11
  31. package/core/tokens/m2/mdc/_icon-button.scss +15 -7
  32. package/datepicker/_datepicker-theme.scss +25 -9
  33. package/dialog/_dialog-theme.scss +10 -0
  34. package/dialog/index.d.ts +28 -9
  35. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  36. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  37. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  38. package/esm2022/autocomplete/module.mjs +5 -5
  39. package/esm2022/badge/badge-module.mjs +5 -5
  40. package/esm2022/badge/badge.mjs +8 -8
  41. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  42. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  43. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  44. package/esm2022/button/button-base.mjs +7 -7
  45. package/esm2022/button/button.mjs +9 -9
  46. package/esm2022/button/fab.mjs +17 -17
  47. package/esm2022/button/icon-button.mjs +9 -9
  48. package/esm2022/button/module.mjs +5 -5
  49. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  50. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  51. package/esm2022/card/card.mjs +43 -43
  52. package/esm2022/card/module.mjs +5 -5
  53. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  54. package/esm2022/checkbox/checkbox.mjs +6 -6
  55. package/esm2022/checkbox/module.mjs +9 -9
  56. package/esm2022/chips/chip-action.mjs +4 -4
  57. package/esm2022/chips/chip-edit-input.mjs +4 -4
  58. package/esm2022/chips/chip-grid.mjs +4 -4
  59. package/esm2022/chips/chip-icons.mjs +10 -10
  60. package/esm2022/chips/chip-input.mjs +4 -4
  61. package/esm2022/chips/chip-listbox.mjs +4 -4
  62. package/esm2022/chips/chip-option.mjs +4 -4
  63. package/esm2022/chips/chip-row.mjs +4 -4
  64. package/esm2022/chips/chip-set.mjs +4 -4
  65. package/esm2022/chips/chip.mjs +4 -4
  66. package/esm2022/chips/module.mjs +5 -5
  67. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  68. package/esm2022/core/datetime/index.mjs +9 -9
  69. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  70. package/esm2022/core/error/error-options.mjs +7 -7
  71. package/esm2022/core/internal-form-field/internal-form-field.mjs +4 -4
  72. package/esm2022/core/line/line.mjs +8 -8
  73. package/esm2022/core/option/index.mjs +5 -5
  74. package/esm2022/core/option/optgroup.mjs +4 -4
  75. package/esm2022/core/option/option.mjs +4 -4
  76. package/esm2022/core/private/ripple-loader.mjs +4 -4
  77. package/esm2022/core/ripple/index.mjs +5 -5
  78. package/esm2022/core/ripple/ripple.mjs +4 -4
  79. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  80. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  81. package/esm2022/core/version.mjs +1 -1
  82. package/esm2022/datepicker/calendar-body.mjs +4 -4
  83. package/esm2022/datepicker/calendar.mjs +7 -7
  84. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  85. package/esm2022/datepicker/date-range-input.mjs +4 -4
  86. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  87. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  88. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  89. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  90. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  91. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  92. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  93. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  94. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  95. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  96. package/esm2022/datepicker/datepicker.mjs +4 -4
  97. package/esm2022/datepicker/month-view.mjs +4 -4
  98. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  99. package/esm2022/datepicker/year-view.mjs +4 -4
  100. package/esm2022/dialog/dialog-config.mjs +1 -3
  101. package/esm2022/dialog/dialog-container.mjs +16 -5
  102. package/esm2022/dialog/dialog-content-directives.mjs +49 -31
  103. package/esm2022/dialog/dialog-ref.mjs +3 -1
  104. package/esm2022/dialog/dialog.mjs +4 -4
  105. package/esm2022/dialog/module.mjs +5 -5
  106. package/esm2022/dialog/public-api.mjs +2 -2
  107. package/esm2022/divider/divider-module.mjs +5 -5
  108. package/esm2022/divider/divider.mjs +4 -4
  109. package/esm2022/expansion/accordion.mjs +4 -4
  110. package/esm2022/expansion/expansion-module.mjs +5 -5
  111. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  112. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  113. package/esm2022/expansion/expansion-panel.mjs +7 -7
  114. package/esm2022/form-field/directives/error.mjs +4 -4
  115. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  116. package/esm2022/form-field/directives/hint.mjs +4 -4
  117. package/esm2022/form-field/directives/label.mjs +4 -4
  118. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  119. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  120. package/esm2022/form-field/directives/prefix.mjs +4 -4
  121. package/esm2022/form-field/directives/suffix.mjs +4 -4
  122. package/esm2022/form-field/form-field-control.mjs +4 -4
  123. package/esm2022/form-field/form-field.mjs +4 -4
  124. package/esm2022/form-field/module.mjs +5 -5
  125. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  126. package/esm2022/grid-list/grid-list.mjs +4 -4
  127. package/esm2022/grid-list/grid-tile.mjs +16 -16
  128. package/esm2022/icon/icon-module.mjs +5 -5
  129. package/esm2022/icon/icon-registry.mjs +4 -4
  130. package/esm2022/icon/icon.mjs +4 -4
  131. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  132. package/esm2022/input/input.mjs +4 -4
  133. package/esm2022/input/module.mjs +5 -5
  134. package/esm2022/list/action-list.mjs +4 -4
  135. package/esm2022/list/list-base.mjs +7 -7
  136. package/esm2022/list/list-item-sections.mjs +19 -19
  137. package/esm2022/list/list-module.mjs +5 -5
  138. package/esm2022/list/list-option.mjs +4 -4
  139. package/esm2022/list/list.mjs +7 -7
  140. package/esm2022/list/nav-list.mjs +4 -4
  141. package/esm2022/list/selection-list.mjs +4 -4
  142. package/esm2022/list/subheader.mjs +4 -4
  143. package/esm2022/menu/menu-content.mjs +4 -4
  144. package/esm2022/menu/menu-item.mjs +4 -4
  145. package/esm2022/menu/menu-trigger.mjs +4 -4
  146. package/esm2022/menu/menu.mjs +4 -4
  147. package/esm2022/menu/module.mjs +5 -5
  148. package/esm2022/paginator/module.mjs +5 -5
  149. package/esm2022/paginator/paginator-intl.mjs +4 -4
  150. package/esm2022/paginator/paginator.mjs +4 -4
  151. package/esm2022/progress-bar/module.mjs +5 -5
  152. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  153. package/esm2022/progress-spinner/module.mjs +5 -5
  154. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  155. package/esm2022/radio/module.mjs +5 -5
  156. package/esm2022/radio/radio.mjs +8 -8
  157. package/esm2022/select/module.mjs +5 -5
  158. package/esm2022/select/select.mjs +7 -7
  159. package/esm2022/sidenav/drawer.mjs +10 -10
  160. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  161. package/esm2022/sidenav/sidenav.mjs +10 -10
  162. package/esm2022/slide-toggle/module.mjs +9 -9
  163. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  164. package/esm2022/slide-toggle/slide-toggle.mjs +4 -4
  165. package/esm2022/slider/module.mjs +5 -5
  166. package/esm2022/slider/slider-input.mjs +7 -7
  167. package/esm2022/slider/slider-thumb.mjs +4 -4
  168. package/esm2022/slider/slider.mjs +4 -4
  169. package/esm2022/snack-bar/module.mjs +5 -5
  170. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  171. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  172. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  173. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  174. package/esm2022/sort/sort-header-intl.mjs +4 -4
  175. package/esm2022/sort/sort-header.mjs +4 -4
  176. package/esm2022/sort/sort-module.mjs +5 -5
  177. package/esm2022/sort/sort.mjs +4 -4
  178. package/esm2022/stepper/step-content.mjs +4 -4
  179. package/esm2022/stepper/step-header.mjs +5 -5
  180. package/esm2022/stepper/step-label.mjs +4 -4
  181. package/esm2022/stepper/stepper-button.mjs +7 -7
  182. package/esm2022/stepper/stepper-icon.mjs +4 -4
  183. package/esm2022/stepper/stepper-intl.mjs +4 -4
  184. package/esm2022/stepper/stepper-module.mjs +5 -5
  185. package/esm2022/stepper/stepper.mjs +7 -7
  186. package/esm2022/table/cell.mjs +22 -22
  187. package/esm2022/table/module.mjs +5 -5
  188. package/esm2022/table/row.mjs +22 -22
  189. package/esm2022/table/table.mjs +7 -7
  190. package/esm2022/table/text-column.mjs +4 -4
  191. package/esm2022/tabs/module.mjs +5 -5
  192. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  193. package/esm2022/tabs/tab-body.mjs +7 -7
  194. package/esm2022/tabs/tab-content.mjs +4 -4
  195. package/esm2022/tabs/tab-group.mjs +4 -4
  196. package/esm2022/tabs/tab-header.mjs +4 -4
  197. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  198. package/esm2022/tabs/tab-label.mjs +4 -4
  199. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +10 -10
  200. package/esm2022/tabs/tab.mjs +4 -4
  201. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  202. package/esm2022/toolbar/toolbar.mjs +7 -7
  203. package/esm2022/tooltip/module.mjs +5 -5
  204. package/esm2022/tooltip/tooltip.mjs +7 -7
  205. package/esm2022/tree/node.mjs +10 -10
  206. package/esm2022/tree/outlet.mjs +4 -4
  207. package/esm2022/tree/padding.mjs +4 -4
  208. package/esm2022/tree/toggle.mjs +4 -4
  209. package/esm2022/tree/tree-module.mjs +5 -5
  210. package/esm2022/tree/tree.mjs +4 -4
  211. package/fesm2022/autocomplete.mjs +13 -13
  212. package/fesm2022/autocomplete.mjs.map +1 -1
  213. package/fesm2022/badge.mjs +11 -11
  214. package/fesm2022/badge.mjs.map +1 -1
  215. package/fesm2022/bottom-sheet.mjs +10 -10
  216. package/fesm2022/bottom-sheet.mjs.map +1 -1
  217. package/fesm2022/button-toggle.mjs +10 -10
  218. package/fesm2022/button-toggle.mjs.map +1 -1
  219. package/fesm2022/button.mjs +42 -42
  220. package/fesm2022/button.mjs.map +1 -1
  221. package/fesm2022/card.mjs +46 -46
  222. package/fesm2022/card.mjs.map +1 -1
  223. package/fesm2022/checkbox.mjs +16 -16
  224. package/fesm2022/checkbox.mjs.map +1 -1
  225. package/fesm2022/chips.mjs +40 -40
  226. package/fesm2022/chips.mjs.map +1 -1
  227. package/fesm2022/core.mjs +59 -59
  228. package/fesm2022/core.mjs.map +1 -1
  229. package/fesm2022/datepicker.mjs +82 -82
  230. package/fesm2022/datepicker.mjs.map +1 -1
  231. package/fesm2022/dialog.mjs +72 -43
  232. package/fesm2022/dialog.mjs.map +1 -1
  233. package/fesm2022/divider.mjs +7 -7
  234. package/fesm2022/divider.mjs.map +1 -1
  235. package/fesm2022/expansion.mjs +25 -25
  236. package/fesm2022/expansion.mjs.map +1 -1
  237. package/fesm2022/form-field.mjs +34 -34
  238. package/fesm2022/form-field.mjs.map +1 -1
  239. package/fesm2022/grid-list.mjs +22 -22
  240. package/fesm2022/grid-list.mjs.map +1 -1
  241. package/fesm2022/icon/testing.mjs +7 -7
  242. package/fesm2022/icon/testing.mjs.map +1 -1
  243. package/fesm2022/icon.mjs +10 -10
  244. package/fesm2022/icon.mjs.map +1 -1
  245. package/fesm2022/input.mjs +7 -7
  246. package/fesm2022/input.mjs.map +1 -1
  247. package/fesm2022/list.mjs +49 -49
  248. package/fesm2022/list.mjs.map +1 -1
  249. package/fesm2022/menu.mjs +16 -16
  250. package/fesm2022/menu.mjs.map +1 -1
  251. package/fesm2022/paginator.mjs +10 -10
  252. package/fesm2022/paginator.mjs.map +1 -1
  253. package/fesm2022/progress-bar.mjs +7 -7
  254. package/fesm2022/progress-bar.mjs.map +1 -1
  255. package/fesm2022/progress-spinner.mjs +7 -7
  256. package/fesm2022/progress-spinner.mjs.map +1 -1
  257. package/fesm2022/radio.mjs +11 -11
  258. package/fesm2022/radio.mjs.map +1 -1
  259. package/fesm2022/select.mjs +10 -10
  260. package/fesm2022/select.mjs.map +1 -1
  261. package/fesm2022/sidenav.mjs +22 -22
  262. package/fesm2022/sidenav.mjs.map +1 -1
  263. package/fesm2022/slide-toggle.mjs +14 -14
  264. package/fesm2022/slide-toggle.mjs.map +1 -1
  265. package/fesm2022/slider.mjs +16 -16
  266. package/fesm2022/slider.mjs.map +1 -1
  267. package/fesm2022/snack-bar.mjs +22 -22
  268. package/fesm2022/snack-bar.mjs.map +1 -1
  269. package/fesm2022/sort.mjs +13 -13
  270. package/fesm2022/sort.mjs.map +1 -1
  271. package/fesm2022/stepper.mjs +32 -32
  272. package/fesm2022/stepper.mjs.map +1 -1
  273. package/fesm2022/table.mjs +55 -55
  274. package/fesm2022/table.mjs.map +1 -1
  275. package/fesm2022/tabs.mjs +40 -40
  276. package/fesm2022/tabs.mjs.map +1 -1
  277. package/fesm2022/toolbar.mjs +10 -10
  278. package/fesm2022/toolbar.mjs.map +1 -1
  279. package/fesm2022/tooltip.mjs +10 -10
  280. package/fesm2022/tooltip.mjs.map +1 -1
  281. package/fesm2022/tree.mjs +25 -25
  282. package/fesm2022/tree.mjs.map +1 -1
  283. package/form-field/_form-field-theme.scss +31 -14
  284. package/icon/_icon-theme.scss +2 -2
  285. package/package.json +7 -7
  286. package/paginator/_paginator-theme.scss +10 -16
  287. package/prebuilt-themes/deeppurple-amber.css +1 -1
  288. package/prebuilt-themes/indigo-pink.css +1 -1
  289. package/prebuilt-themes/pink-bluegrey.css +1 -1
  290. package/prebuilt-themes/purple-green.css +1 -1
  291. package/progress-bar/_progress-bar-theme.scss +27 -9
  292. package/progress-spinner/_progress-spinner-theme.scss +38 -17
  293. package/radio/_radio-theme.scss +34 -18
  294. package/schematics/ng-add/index.js +2 -2
  295. package/schematics/ng-add/index.mjs +2 -2
  296. package/schematics/ng-add/setup-project.js +7 -75
  297. package/schematics/ng-add/setup-project.mjs +7 -75
  298. package/schematics/ng-generate/mdc-migration/index_bundled.js +122 -115
  299. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  300. package/select/_select-theme.scss +24 -10
  301. package/slide-toggle/_slide-toggle-theme.scss +29 -9
  302. package/slider/_slider-theme.scss +28 -11
  303. package/stepper/_stepper-theme.scss +28 -7
  304. package/tabs/_tabs-theme.scss +32 -14
package/_index.scss CHANGED
@@ -60,7 +60,8 @@
60
60
  @forward './core/option/optgroup-theme' as optgroup-* show optgroup-color, optgroup-typography,
61
61
  optgroup-theme, optgroup-density, optgroup-base;
62
62
  @forward './core/selection/pseudo-checkbox/pseudo-checkbox-theme' as pseudo-checkbox-* show
63
- pseudo-checkbox-color, pseudo-checkbox-typography, pseudo-checkbox-theme, pseudo-checkbox-base;
63
+ pseudo-checkbox-color, pseudo-checkbox-typography, pseudo-checkbox-theme, pseudo-checkbox-density,
64
+ pseudo-checkbox-base;
64
65
  @forward './core/selection/pseudo-checkbox/pseudo-checkbox-common' as pseudo-checkbox-* show
65
66
  pseudo-checkbox-legacy-size;
66
67
  @forward './core/focus-indicators/focus-indicators-theme' as strong-focus-indicators-* show
@@ -145,9 +146,8 @@
145
146
  // MDC Helpers
146
147
  @forward './core/mdc-helpers/mdc-helpers' as private-* show
147
148
  private-disable-mdc-fallback-declarations, private-typography-config-level-from-mdc,
148
- private-if-touch-targets-unsupported, $private-mdc-base-styles-query,
149
- $private-mdc-base-styles-without-animation-query, $private-mdc-theme-styles-query,
150
- $private-mdc-typography-styles-query;
149
+ $private-mdc-base-styles-query, $private-mdc-base-styles-without-animation-query,
150
+ $private-mdc-theme-styles-query, $private-mdc-typography-styles-query;
151
151
 
152
152
  // New theming APIs:
153
153
  @forward './core/theming/inspection' show get-theme-version, get-theme-type, get-theme-color,
@@ -1,5 +1,4 @@
1
1
  @use 'sass:color';
2
- @use 'sass:map';
3
2
  @use '../core/theming/theming';
4
3
  @use '../core/theming/inspection';
5
4
  @use '../core/typography/typography';
@@ -7,16 +6,29 @@
7
6
  @use '../core/tokens/token-utils';
8
7
  @use '../core/style/sass-utils';
9
8
 
9
+ /// Outputs base theme styles (styles not dependent on the color, typography, or density settings)
10
+ /// for the mat-badge.
11
+ /// @param {Map} $theme The theme to generate base styles for.
10
12
  @mixin base($theme) {
11
13
  @if inspection.get-theme-version($theme) == 1 {
12
14
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
13
15
  }
14
- @else {}
16
+ @else {
17
+ @include sass-utils.current-selector-or-root() {
18
+ @include token-utils.create-token-values(tokens-mat-badge.$prefix,
19
+ tokens-mat-badge.get-unthemable-tokens());
20
+ }
21
+ }
15
22
  }
16
23
 
17
- @mixin color($theme) {
24
+ /// Outputs color theme styles for the mat-badge.
25
+ /// @param {Map} $theme The theme to generate color styles for.
26
+ /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
27
+ /// $color-variant: The color variant to use for the badge: primary, secondary, tertiary,
28
+ /// or error (If not specified, default error color will be used).
29
+ @mixin color($theme, $options...) {
18
30
  @if inspection.get-theme-version($theme) == 1 {
19
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
31
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
20
32
  }
21
33
  @else {
22
34
  @include sass-utils.current-selector-or-root() {
@@ -36,6 +48,8 @@
36
48
  }
37
49
  }
38
50
 
51
+ /// Outputs typography theme styles for the mat-badge.
52
+ /// @param {Map} $theme The theme to generate typography styles for.
39
53
  @mixin typography($theme) {
40
54
  @if inspection.get-theme-version($theme) == 1 {
41
55
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
@@ -48,6 +62,8 @@
48
62
  }
49
63
  }
50
64
 
65
+ /// Outputs density theme styles for the mat-badge.
66
+ /// @param {Map} $theme The theme to generate density styles for.
51
67
  @mixin density($theme) {
52
68
  @if inspection.get-theme-version($theme) == 1 {
53
69
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
@@ -55,10 +71,15 @@
55
71
  @else {}
56
72
  }
57
73
 
58
- @mixin theme($theme) {
74
+ /// Outputs all (base, color, typography, and density) theme styles for the mat-badge.
75
+ /// @param {Map} $theme The theme to generate styles for.
76
+ /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
77
+ /// $color-variant: The color variant to use for the badge: primary, secondary, tertiary,
78
+ /// or error (If not specified, default error color will be used).
79
+ @mixin theme($theme, $options...) {
59
80
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-badge') {
60
81
  @if inspection.get-theme-version($theme) == 1 {
61
- @include _theme-from-tokens(inspection.get-theme-tokens($theme));
82
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
62
83
  }
63
84
  @else {
64
85
  @include base($theme);
@@ -75,9 +96,7 @@
75
96
  }
76
97
  }
77
98
 
78
- @mixin _theme-from-tokens($tokens) {
79
- @if ($tokens != ()) {
80
- @include token-utils.create-token-values(
81
- tokens-mat-badge.$prefix, map.get($tokens, tokens-mat-badge.$prefix));
82
- }
99
+ @mixin _theme-from-tokens($tokens, $options...) {
100
+ $mat-badge-tokens: token-utils.get-tokens-for($tokens, tokens-mat-badge.$prefix, $options...);
101
+ @include token-utils.create-token-values(tokens-mat-badge.$prefix, $mat-badge-tokens);
83
102
  }
@@ -110,22 +110,13 @@
110
110
  }
111
111
  }
112
112
 
113
- // Hides the touch target on lower densities.
114
- @mixin mat-private-button-touch-target-density($scale) {
115
- @include mdc-helpers.if-touch-targets-unsupported($scale) {
116
- .mat-mdc-button-touch-target {
117
- display: none;
118
- }
119
- }
120
- }
121
-
122
113
  // Adds an elevation shadow to a button.
123
114
  @mixin mat-private-button-elevation($token-name) {
124
115
  // MDC outputs a variable that is the same as the token name, but suffixed with `-shadow`.
125
116
  box-shadow: var(#{token-utils.get-token-variable($token-name) + '-shadow'});
126
117
  }
127
118
 
128
- @mixin mat-private-button-touch-target($is-square) {
119
+ @mixin mat-private-button-touch-target($is-square, $prefix, $slots) {
129
120
  // Element used to ensure that the button has a touch target that meets the required minimum.
130
121
  // Note that we use this, instead of MDC's built-in `mdc-button--touch` class, because the MDC
131
122
  // class is implemented as `margin-top: 6px; margin-bottom: 6px` on the host element which
@@ -136,5 +127,54 @@
136
127
  @include mdc-touch-target.touch-target(
137
128
  $set-width: $is-square,
138
129
  $query: mdc-helpers.$mdc-base-styles-query);
130
+
131
+ @include token-utils.use-tokens($prefix, $slots) {
132
+ @include token-utils.create-token-slot(display, touch-target-display);
133
+ }
134
+ }
135
+ }
136
+
137
+ @mixin mat-private-button-horizontal-layout($prefix, $slots, $has-with-icon-padding) {
138
+ @include token-utils.use-tokens($prefix, $slots) {
139
+ $icon-spacing: token-utils.get-token-variable-reference(icon-spacing, true);
140
+ $icon-offset: token-utils.get-token-variable-reference(icon-offset, true);
141
+ $horizontal-padding: token-utils.get-token-variable-reference(horizontal-padding, true);
142
+ padding: 0 $horizontal-padding;
143
+
144
+ @if ($has-with-icon-padding) {
145
+ $with-icon-horizontal-padding:
146
+ token-utils.get-token-variable-reference(with-icon-horizontal-padding, true);
147
+
148
+ // stylelint-disable-next-line selector-class-pattern
149
+ &:has(.material-icons, mat-icon, [matButtonIcon]) {
150
+ padding: 0 $with-icon-horizontal-padding;
151
+ }
152
+ }
153
+
154
+ // MDC expects button icons to contain this HTML content:
155
+ // ```html
156
+ // <span class="mdc-button__icon material-icons">favorite</span>
157
+ // ```
158
+ // However, Angular Material expects a `mat-icon` instead. The following
159
+ // styles will lay out the icons appropriately.
160
+ & > .mat-icon {
161
+ margin-right: $icon-spacing;
162
+ margin-left: $icon-offset;
163
+
164
+ [dir='rtl'] & {
165
+ margin-right: $icon-offset;
166
+ margin-left: $icon-spacing;
167
+ }
168
+ }
169
+
170
+ .mdc-button__label + .mat-icon {
171
+ margin-right: $icon-offset;
172
+ margin-left: $icon-spacing;
173
+
174
+ [dir='rtl'] & {
175
+ margin-right: $icon-spacing;
176
+ margin-left: $icon-offset;
177
+ }
178
+ }
139
179
  }
140
180
  }
@@ -1,10 +1,8 @@
1
- @use 'sass:map';
2
1
  @use '@material/button/button-text-theme' as mdc-button-text-theme;
3
2
  @use '@material/button/button-filled-theme' as mdc-button-filled-theme;
4
3
  @use '@material/button/button-protected-theme' as mdc-button-protected-theme;
5
4
  @use '@material/button/button-outlined-theme' as mdc-button-outlined-theme;
6
5
 
7
- @use './button-base';
8
6
  @use '../core/theming/theming';
9
7
  @use '../core/theming/inspection';
10
8
  @use '../core/tokens/token-utils';
@@ -79,25 +77,39 @@
79
77
  @include token-utils.create-token-values(tokens-mat-outlined-button.$prefix, $mat-tokens);
80
78
  }
81
79
 
82
- @mixin _theme-from-tokens($tokens) {
83
- @if ($tokens != ()) {
84
- @include mdc-button-text-theme.theme(map.get($tokens, tokens-mdc-text-button.$prefix));
85
- @include mdc-button-protected-theme.theme(
86
- map.get($tokens, tokens-mdc-protected-button.$prefix));
87
- @include mdc-button-filled-theme.theme(map.get($tokens, tokens-mdc-filled-button.$prefix));
88
- @include mdc-button-outlined-theme.theme(map.get($tokens, tokens-mdc-outlined-button.$prefix));
89
-
90
- @include token-utils.create-token-values(
91
- tokens-mat-text-button.$prefix, map.get($tokens, tokens-mat-text-button.$prefix));
92
- @include token-utils.create-token-values(
93
- tokens-mat-protected-button.$prefix, map.get($tokens, tokens-mat-protected-button.$prefix));
94
- @include token-utils.create-token-values(
95
- tokens-mat-filled-button.$prefix, map.get($tokens, tokens-mat-filled-button.$prefix));
96
- @include token-utils.create-token-values(
97
- tokens-mat-outlined-button.$prefix, map.get($tokens, tokens-mat-outlined-button.$prefix));
98
- }
80
+ @mixin _theme-from-tokens($tokens, $options...) {
81
+ $mdc-text-button-tokens:
82
+ token-utils.get-tokens-for($tokens, tokens-mdc-text-button.$prefix, $options...);
83
+ $mdc-protected-button-tokens:
84
+ token-utils.get-tokens-for($tokens, tokens-mdc-protected-button.$prefix, $options...);
85
+ $mdc-filled-button-tokens:
86
+ token-utils.get-tokens-for($tokens, tokens-mdc-filled-button.$prefix, $options...);
87
+ $mdc-outlined-button-tokens:
88
+ token-utils.get-tokens-for($tokens, tokens-mdc-outlined-button.$prefix, $options...);
89
+ $mat-text-button-tokens:
90
+ token-utils.get-tokens-for($tokens, tokens-mat-text-button.$prefix, $options...);
91
+ $mat-protected-button-tokens:
92
+ token-utils.get-tokens-for($tokens, tokens-mat-protected-button.$prefix, $options...);
93
+ $mat-filled-button-tokens:
94
+ token-utils.get-tokens-for($tokens, tokens-mat-filled-button.$prefix, $options...);
95
+ $mat-outlined-button-tokens:
96
+ token-utils.get-tokens-for($tokens, tokens-mat-outlined-button.$prefix, $options...);
97
+ @include mdc-button-text-theme.theme($mdc-text-button-tokens);
98
+ @include mdc-button-protected-theme.theme($mdc-protected-button-tokens);
99
+ @include mdc-button-filled-theme.theme($mdc-filled-button-tokens);
100
+ @include mdc-button-outlined-theme.theme($mdc-outlined-button-tokens);
101
+ @include token-utils.create-token-values(tokens-mat-text-button.$prefix, $mat-text-button-tokens);
102
+ @include token-utils.create-token-values(
103
+ tokens-mat-protected-button.$prefix, $mat-protected-button-tokens);
104
+ @include token-utils.create-token-values(
105
+ tokens-mat-filled-button.$prefix, $mat-filled-button-tokens);
106
+ @include token-utils.create-token-values(
107
+ tokens-mat-outlined-button.$prefix, $mat-outlined-button-tokens);
99
108
  }
100
109
 
110
+ /// Outputs base theme styles (styles not dependent on the color, typography, or density settings)
111
+ /// for the mat-button.
112
+ /// @param {Map} $theme The theme to generate base styles for.
101
113
  @mixin base($theme) {
102
114
  @if inspection.get-theme-version($theme) == 1 {
103
115
  @include theme-from-tokens(inspection.get-theme-tokens($theme, base));
@@ -112,13 +124,27 @@
112
124
  tokens-mdc-protected-button.get-unthemable-tokens());
113
125
  @include mdc-button-outlined-theme.theme(
114
126
  tokens-mdc-outlined-button.get-unthemable-tokens());
127
+
128
+ @include token-utils.create-token-values(tokens-mat-text-button.$prefix,
129
+ tokens-mat-text-button.get-unthemable-tokens());
130
+ @include token-utils.create-token-values(tokens-mat-filled-button.$prefix,
131
+ tokens-mat-filled-button.get-unthemable-tokens());
132
+ @include token-utils.create-token-values(tokens-mat-protected-button.$prefix,
133
+ tokens-mat-protected-button.get-unthemable-tokens());
134
+ @include token-utils.create-token-values(tokens-mat-outlined-button.$prefix,
135
+ tokens-mat-outlined-button.get-unthemable-tokens());
115
136
  }
116
137
  }
117
138
  }
118
139
 
119
- @mixin color($theme) {
140
+ /// Outputs color theme styles for the mat-button.
141
+ /// @param {Map} $theme The theme to generate color styles for.
142
+ /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
143
+ /// $color-variant: The color variant to use for the button: primary, secondary, tertiary,
144
+ /// or error (If not specified, default primary color will be used).
145
+ @mixin color($theme, $options...) {
120
146
  @if inspection.get-theme-version($theme) == 1 {
121
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
147
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
122
148
  }
123
149
  @else {
124
150
  @include sass-utils.current-selector-or-root() {
@@ -186,58 +212,73 @@
186
212
  }
187
213
  }
188
214
 
215
+ /// Outputs typography theme styles for the mat-button.
216
+ /// @param {Map} $theme The theme to generate typography styles for.
189
217
  @mixin typography($theme) {
190
218
  @if inspection.get-theme-version($theme) == 1 {
191
219
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
192
220
  }
193
221
  @else {
194
222
  @include sass-utils.current-selector-or-root() {
195
- $text-typography-tokens: tokens-mdc-text-button.get-typography-tokens($theme);
196
- $filled-typography-tokens: tokens-mdc-filled-button.get-typography-tokens($theme);
197
- $outlined-typography-tokens: tokens-mdc-outlined-button.get-typography-tokens($theme);
198
- $protected-typography-tokens: tokens-mdc-protected-button.get-typography-tokens($theme);
199
-
200
- @include mdc-button-text-theme.theme($text-typography-tokens);
201
- @include mdc-button-filled-theme.theme($filled-typography-tokens);
202
- @include mdc-button-outlined-theme.theme($outlined-typography-tokens);
203
- @include mdc-button-protected-theme.theme($protected-typography-tokens);
223
+ @include mdc-button-text-theme.theme(
224
+ tokens-mdc-text-button.get-typography-tokens($theme));
225
+ @include mdc-button-filled-theme.theme(
226
+ tokens-mdc-filled-button.get-typography-tokens($theme));
227
+ @include mdc-button-outlined-theme.theme(
228
+ tokens-mdc-outlined-button.get-typography-tokens($theme));
229
+ @include mdc-button-protected-theme.theme(
230
+ tokens-mdc-protected-button.get-typography-tokens($theme));
231
+
232
+ @include token-utils.create-token-values(tokens-mat-text-button.$prefix,
233
+ tokens-mat-text-button.get-typography-tokens($theme));
234
+ @include token-utils.create-token-values(tokens-mat-filled-button.$prefix,
235
+ tokens-mat-filled-button.get-typography-tokens($theme));
236
+ @include token-utils.create-token-values(tokens-mat-protected-button.$prefix,
237
+ tokens-mat-protected-button.get-typography-tokens($theme));
238
+ @include token-utils.create-token-values(tokens-mat-outlined-button.$prefix,
239
+ tokens-mat-outlined-button.get-typography-tokens($theme));
204
240
  }
205
241
  }
206
242
  }
207
243
 
244
+ /// Outputs density theme styles for the mat-button.
245
+ /// @param {Map} $theme The theme to generate density styles for.
208
246
  @mixin density($theme) {
209
247
  @if inspection.get-theme-version($theme) == 1 {
210
248
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
211
249
  }
212
250
  @else {
213
- $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3);
214
-
215
251
  @include sass-utils.current-selector-or-root() {
216
- $text-density-tokens: tokens-mdc-text-button.get-density-tokens($theme);
217
- $filled-density-tokens: tokens-mdc-filled-button.get-density-tokens($theme);
218
- $outlined-density-tokens: tokens-mdc-outlined-button.get-density-tokens($theme);
219
- $protected-density-tokens: tokens-mdc-protected-button.get-density-tokens($theme);
220
-
221
- @include mdc-button-text-theme.theme($text-density-tokens);
222
- @include mdc-button-filled-theme.theme($filled-density-tokens);
223
- @include mdc-button-outlined-theme.theme($outlined-density-tokens);
224
- @include mdc-button-protected-theme.theme($protected-density-tokens);
225
- }
226
-
227
- .mat-mdc-button,
228
- .mat-mdc-raised-button,
229
- .mat-mdc-unelevated-button,
230
- .mat-mdc-outlined-button {
231
- // TODO: tokenize the touch target visibility.
232
- @include button-base.mat-private-button-touch-target-density($density-scale);
252
+ @include mdc-button-text-theme.theme(
253
+ tokens-mdc-text-button.get-density-tokens($theme));
254
+ @include mdc-button-filled-theme.theme(
255
+ tokens-mdc-filled-button.get-density-tokens($theme));
256
+ @include mdc-button-outlined-theme.theme(
257
+ tokens-mdc-outlined-button.get-density-tokens($theme));
258
+ @include mdc-button-protected-theme.theme(
259
+ tokens-mdc-protected-button.get-density-tokens($theme));
260
+
261
+ @include token-utils.create-token-values(tokens-mat-text-button.$prefix,
262
+ tokens-mat-text-button.get-density-tokens($theme));
263
+ @include token-utils.create-token-values(tokens-mat-filled-button.$prefix,
264
+ tokens-mat-filled-button.get-density-tokens($theme));
265
+ @include token-utils.create-token-values(tokens-mat-protected-button.$prefix,
266
+ tokens-mat-protected-button.get-density-tokens($theme));
267
+ @include token-utils.create-token-values(tokens-mat-outlined-button.$prefix,
268
+ tokens-mat-outlined-button.get-density-tokens($theme));
233
269
  }
234
270
  }
235
271
  }
236
272
 
237
- @mixin theme($theme) {
273
+ /// Outputs all (base, color, typography, and density) theme styles for the mat-button.
274
+ /// @param {Map} $theme The theme to generate styles for.
275
+ /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
276
+ /// $color-variant: The color variant to use for the button: primary, secondary, tertiary,
277
+ /// or error (If not specified, default primary color will be used).
278
+ @mixin theme($theme, $options...) {
238
279
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-button') {
239
280
  @if inspection.get-theme-version($theme) == 1 {
240
- @include _theme-from-tokens(inspection.get-theme-tokens($theme));
281
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
241
282
  }
242
283
  @else {
243
284
  @include base($theme);
@@ -1,15 +1,20 @@
1
- @use 'sass:map';
2
1
  @use '@material/fab/fab-theme' as mdc-fab-theme;
2
+ @use '@material/fab/fab-small-theme' as mdc-fab-small-theme;
3
3
  @use '@material/fab/extended-fab-theme' as mdc-extended-fab-theme;
4
4
  @use '../core/style/sass-utils';
5
5
  @use '../core/theming/theming';
6
6
  @use '../core/theming/inspection';
7
7
  @use '../core/tokens/m2/mdc/fab' as tokens-mdc-fab;
8
+ @use '../core/tokens/m2/mdc/fab-small' as tokens-mdc-fab-small;
8
9
  @use '../core/tokens/m2/mdc/extended-fab' as tokens-mdc-extended-fab;
9
10
  @use '../core/tokens/m2/mat/fab' as tokens-mat-fab;
11
+ @use '../core/tokens/m2/mat/fab-small' as tokens-mat-fab-small;
10
12
  @use '../core/tokens/token-utils';
11
13
  @use '../core/typography/typography';
12
14
 
15
+ /// Outputs base theme styles (styles not dependent on the color, typography, or density settings)
16
+ /// for the mat-fab.
17
+ /// @param {Map} $theme The theme to generate base styles for.
13
18
  @mixin base($theme) {
14
19
  @if inspection.get-theme-version($theme) == 1 {
15
20
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
@@ -18,6 +23,7 @@
18
23
  // Add default values for tokens not related to color, typography, or density.
19
24
  @include sass-utils.current-selector-or-root() {
20
25
  @include mdc-fab-theme.theme(tokens-mdc-fab.get-unthemable-tokens());
26
+ @include mdc-fab-small-theme.theme(tokens-mdc-fab-small.get-unthemable-tokens());
21
27
  @include mdc-extended-fab-theme.theme(
22
28
  tokens-mdc-extended-fab.get-unthemable-tokens()
23
29
  );
@@ -40,17 +46,37 @@
40
46
  @include token-utils.create-token-values(tokens-mat-fab.$prefix, $mat-tokens);
41
47
  }
42
48
 
43
- @mixin color($theme) {
49
+ @mixin _fab-small-variant($theme, $palette) {
50
+ $mdc-tokens: if($palette,
51
+ tokens-mdc-fab-small.private-get-color-palette-color-tokens($theme, $palette),
52
+ tokens-mdc-fab-small.get-color-tokens($theme)
53
+ );
54
+
55
+ $mat-tokens: if($palette,
56
+ tokens-mat-fab-small.private-get-color-palette-color-tokens($theme, $palette),
57
+ tokens-mat-fab-small.get-color-tokens($theme)
58
+ );
59
+
60
+ @include mdc-fab-small-theme.theme($mdc-tokens);
61
+ @include token-utils.create-token-values(tokens-mat-fab-small.$prefix, $mat-tokens);
62
+ }
63
+
64
+ /// Outputs color theme styles for the mat-fab.
65
+ /// @param {Map} $theme The theme to generate color styles for.
66
+ /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
67
+ /// $color-variant: The color variant to use for the fab: primary, secondary, or tertiary
68
+ /// (If not specified, default primary color will be used).
69
+ @mixin color($theme, $options...) {
44
70
  @if inspection.get-theme-version($theme) == 1 {
45
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
71
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
46
72
  }
47
73
  @else {
48
74
  @include sass-utils.current-selector-or-root() {
49
75
  @include _fab-variant($theme, null);
76
+ @include _fab-small-variant($theme, null);
50
77
  @include mdc-extended-fab-theme.theme(tokens-mdc-extended-fab.get-color-tokens($theme));
51
78
 
52
- .mat-mdc-fab,
53
- .mat-mdc-mini-fab {
79
+ .mat-mdc-fab {
54
80
  &.mat-primary {
55
81
  @include _fab-variant($theme, primary);
56
82
  }
@@ -63,10 +89,26 @@
63
89
  @include _fab-variant($theme, warn);
64
90
  }
65
91
  }
92
+
93
+ .mat-mdc-mini-fab {
94
+ &.mat-primary {
95
+ @include _fab-small-variant($theme, primary);
96
+ }
97
+
98
+ &.mat-accent {
99
+ @include _fab-small-variant($theme, accent);
100
+ }
101
+
102
+ &.mat-warn {
103
+ @include _fab-small-variant($theme, warn);
104
+ }
105
+ }
66
106
  }
67
107
  }
68
108
  }
69
109
 
110
+ /// Outputs typography theme styles for the mat-fab.
111
+ /// @param {Map} $theme The theme to generate typography styles for.
70
112
  @mixin typography($theme) {
71
113
  @if inspection.get-theme-version($theme) == 1 {
72
114
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
@@ -74,21 +116,39 @@
74
116
  @else {
75
117
  @include sass-utils.current-selector-or-root() {
76
118
  @include mdc-extended-fab-theme.theme(tokens-mdc-extended-fab.get-typography-tokens($theme));
119
+ @include token-utils.create-token-values(tokens-mat-fab.$prefix,
120
+ tokens-mat-fab.get-typography-tokens($theme));
121
+ @include token-utils.create-token-values(tokens-mat-fab-small.$prefix,
122
+ tokens-mat-fab-small.get-typography-tokens($theme));
77
123
  }
78
124
  }
79
125
  }
80
126
 
127
+ /// Outputs density theme styles for the mat-fab.
128
+ /// @param {Map} $theme The theme to generate density styles for.
81
129
  @mixin density($theme) {
82
130
  @if inspection.get-theme-version($theme) == 1 {
83
131
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
84
132
  }
85
- @else {}
133
+ @else {
134
+ @include sass-utils.current-selector-or-root() {
135
+ @include token-utils.create-token-values(tokens-mat-fab.$prefix,
136
+ tokens-mat-fab.get-density-tokens($theme));
137
+ @include token-utils.create-token-values(tokens-mat-fab-small.$prefix,
138
+ tokens-mat-fab-small.get-density-tokens($theme));
139
+ }
140
+ }
86
141
  }
87
142
 
88
- @mixin theme($theme) {
143
+ /// Outputs all (base, color, typography, and density) theme styles for the mat-checkbox.
144
+ /// @param {Map} $theme The theme to generate styles for.
145
+ /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
146
+ /// $color-variant: The color variant to use for the fab: primary, secondary, or tertiary
147
+ /// (If not specified, default primary color will be used).
148
+ @mixin theme($theme, $options...) {
89
149
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-fab') {
90
150
  @if inspection.get-theme-version($theme) == 1 {
91
- @include _theme-from-tokens(inspection.get-theme-tokens($theme));
151
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
92
152
  }
93
153
  @else {
94
154
  @include base($theme);
@@ -105,11 +165,18 @@
105
165
  }
106
166
  }
107
167
 
108
- @mixin _theme-from-tokens($tokens) {
109
- @if ($tokens != ()) {
110
- @include mdc-extended-fab-theme.theme(map.get($tokens, tokens-mdc-extended-fab.$prefix));
111
- @include mdc-fab-theme.theme(map.get($tokens, tokens-mdc-fab.$prefix));
112
- @include token-utils.create-token-values(
113
- tokens-mat-fab.$prefix, map.get($tokens, tokens-mat-fab.$prefix));
114
- }
168
+ @mixin _theme-from-tokens($tokens, $options...) {
169
+ $mdc-extended-fab-tokens: token-utils.get-tokens-for(
170
+ $tokens, tokens-mdc-extended-fab.$prefix, $options...);
171
+ $mdc-fab-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-fab.$prefix, $options...);
172
+ $mdc-fab-small-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-fab-small.$prefix,
173
+ $options...);
174
+ $mat-fab-tokens: token-utils.get-tokens-for($tokens, tokens-mat-fab.$prefix, $options...);
175
+ $mat-fab-small-tokens: token-utils.get-tokens-for($tokens, tokens-mat-fab-small.$prefix,
176
+ $options...);
177
+ @include mdc-extended-fab-theme.theme($mdc-extended-fab-tokens);
178
+ @include mdc-fab-theme.theme($mdc-fab-tokens);
179
+ @include mdc-fab-small-theme.theme($mdc-fab-small-tokens);
180
+ @include token-utils.create-token-values(tokens-mat-fab.$prefix, $mat-fab-tokens);
181
+ @include token-utils.create-token-values(tokens-mat-fab-small.$prefix, $mat-fab-small-tokens);
115
182
  }
@@ -5,7 +5,6 @@
5
5
  @use '../core/tokens/m2/mdc/icon-button' as tokens-mdc-icon-button;
6
6
  @use '../core/tokens/m2/mat/icon-button' as tokens-mat-icon-button;
7
7
  @use '../core/style/sass-utils';
8
- @use './button-base';
9
8
  @use '../core/tokens/token-utils';
10
9
  @use '../core/theming/theming';
11
10
  @use '../core/theming/inspection';
@@ -67,7 +66,12 @@
67
66
  @if inspection.get-theme-version($theme) == 1 {
68
67
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
69
68
  }
70
- @else {}
69
+ @else {
70
+ @include sass-utils.current-selector-or-root() {
71
+ @include token-utils.create-token-values(tokens-mat-icon-button.$prefix,
72
+ tokens-mat-icon-button.get-typography-tokens($theme));
73
+ }
74
+ }
71
75
  }
72
76
 
73
77
  @mixin density($theme) {
@@ -91,6 +95,11 @@
91
95
  $property-name: size,
92
96
  );
93
97
 
98
+ @include sass-utils.current-selector-or-root() {
99
+ @include token-utils.create-token-values(tokens-mat-icon-button.$prefix,
100
+ tokens-mat-icon-button.get-density-tokens($theme));
101
+ }
102
+
94
103
  // Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.
95
104
  .mat-mdc-icon-button.mat-mdc-button-base {
96
105
  // Match the styles that used to be present. This is necessary for backwards
@@ -107,8 +116,6 @@
107
116
  width: var(--mdc-icon-button-state-layer-size);
108
117
  height: var(--mdc-icon-button-state-layer-size);
109
118
  padding: math.div($calculated-size - $icon-size, 2);
110
-
111
- @include button-base.mat-private-button-touch-target-density($density-scale);
112
119
  }
113
120
  }
114
121
  }