@angular/material-experimental 13.2.0-next.0 → 13.2.1

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 (300) hide show
  1. package/LICENSE +1 -1
  2. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
  3. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +3 -3
  4. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +3 -3
  5. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +3 -3
  6. package/esm2020/column-resize/column-resize-module.mjs +12 -12
  7. package/esm2020/column-resize/overlay-handle.mjs +3 -3
  8. package/esm2020/column-resize/resizable-directives/default-enabled-resizable.mjs +3 -3
  9. package/esm2020/column-resize/resizable-directives/resizable.mjs +3 -3
  10. package/esm2020/column-resize/resize-strategy.mjs +3 -3
  11. package/esm2020/mdc-autocomplete/autocomplete-origin.mjs +3 -3
  12. package/esm2020/mdc-autocomplete/autocomplete-trigger.mjs +3 -3
  13. package/esm2020/mdc-autocomplete/autocomplete.mjs +3 -3
  14. package/esm2020/mdc-autocomplete/module.mjs +4 -4
  15. package/esm2020/mdc-button/button-base.mjs +24 -21
  16. package/esm2020/mdc-button/button.mjs +9 -9
  17. package/esm2020/mdc-button/fab.mjs +18 -18
  18. package/esm2020/mdc-button/icon-button.mjs +11 -13
  19. package/esm2020/mdc-button/module.mjs +4 -4
  20. package/esm2020/mdc-card/card.mjs +42 -42
  21. package/esm2020/mdc-card/module.mjs +4 -4
  22. package/esm2020/mdc-checkbox/checkbox.mjs +9 -16
  23. package/esm2020/mdc-checkbox/module.mjs +6 -7
  24. package/esm2020/mdc-chips/chip-action.mjs +123 -0
  25. package/esm2020/mdc-chips/chip-edit-input.mjs +5 -5
  26. package/esm2020/mdc-chips/chip-grid.mjs +49 -99
  27. package/esm2020/mdc-chips/chip-icons.mjs +39 -101
  28. package/esm2020/mdc-chips/chip-input.mjs +6 -13
  29. package/esm2020/mdc-chips/chip-listbox.mjs +51 -156
  30. package/esm2020/mdc-chips/chip-option.mjs +84 -95
  31. package/esm2020/mdc-chips/chip-row.mjs +82 -90
  32. package/esm2020/mdc-chips/chip-set.mjs +119 -120
  33. package/esm2020/mdc-chips/chip.mjs +188 -180
  34. package/esm2020/mdc-chips/emit-event.mjs +27 -0
  35. package/esm2020/mdc-chips/module.mjs +8 -10
  36. package/esm2020/mdc-chips/testing/chip-harness.mjs +5 -1
  37. package/esm2020/mdc-chips/testing/chip-option-harness.mjs +2 -2
  38. package/esm2020/mdc-chips/testing/chip-row-harness.mjs +10 -1
  39. package/esm2020/mdc-core/option/index.mjs +4 -4
  40. package/esm2020/mdc-core/option/optgroup.mjs +3 -3
  41. package/esm2020/mdc-core/option/option.mjs +5 -5
  42. package/esm2020/mdc-core/public-api.mjs +2 -2
  43. package/esm2020/mdc-dialog/dialog-container.mjs +4 -4
  44. package/esm2020/mdc-dialog/dialog-content-directives.mjs +12 -12
  45. package/esm2020/mdc-dialog/dialog.mjs +3 -3
  46. package/esm2020/mdc-dialog/module.mjs +4 -4
  47. package/esm2020/mdc-form-field/directives/error.mjs +3 -3
  48. package/esm2020/mdc-form-field/directives/floating-label.mjs +3 -3
  49. package/esm2020/mdc-form-field/directives/hint.mjs +3 -3
  50. package/esm2020/mdc-form-field/directives/label.mjs +3 -3
  51. package/esm2020/mdc-form-field/directives/line-ripple.mjs +3 -3
  52. package/esm2020/mdc-form-field/directives/notched-outline.mjs +3 -3
  53. package/esm2020/mdc-form-field/directives/prefix.mjs +3 -3
  54. package/esm2020/mdc-form-field/directives/suffix.mjs +3 -3
  55. package/esm2020/mdc-form-field/form-field.mjs +21 -5
  56. package/esm2020/mdc-form-field/module.mjs +4 -4
  57. package/esm2020/mdc-input/input.mjs +5 -4
  58. package/esm2020/mdc-input/module.mjs +4 -4
  59. package/esm2020/mdc-list/action-list.mjs +4 -4
  60. package/esm2020/mdc-list/interactive-list-base.mjs +3 -3
  61. package/esm2020/mdc-list/list-base.mjs +138 -41
  62. package/esm2020/mdc-list/list-item-sections.mjs +138 -0
  63. package/esm2020/mdc-list/list-option.mjs +25 -17
  64. package/esm2020/mdc-list/list.mjs +24 -18
  65. package/esm2020/mdc-list/module.mjs +46 -23
  66. package/esm2020/mdc-list/nav-list.mjs +4 -4
  67. package/esm2020/mdc-list/public-api.mjs +3 -2
  68. package/esm2020/mdc-list/selection-list.mjs +8 -8
  69. package/esm2020/mdc-list/subheader.mjs +27 -0
  70. package/esm2020/mdc-list/testing/list-harness-filters.mjs +1 -1
  71. package/esm2020/mdc-list/testing/list-item-harness-base.mjs +100 -12
  72. package/esm2020/mdc-list/testing/public-api.mjs +2 -1
  73. package/esm2020/mdc-list/testing/selection-list-harness.mjs +1 -5
  74. package/esm2020/mdc-menu/directives.mjs +6 -6
  75. package/esm2020/mdc-menu/menu-item.mjs +3 -3
  76. package/esm2020/mdc-menu/menu.mjs +3 -3
  77. package/esm2020/mdc-menu/module.mjs +4 -4
  78. package/esm2020/mdc-paginator/module.mjs +4 -4
  79. package/esm2020/mdc-paginator/paginator.mjs +3 -3
  80. package/esm2020/mdc-progress-bar/module.mjs +4 -4
  81. package/esm2020/mdc-progress-bar/progress-bar.mjs +3 -3
  82. package/esm2020/mdc-progress-spinner/module.mjs +4 -4
  83. package/esm2020/mdc-progress-spinner/progress-spinner.mjs +3 -3
  84. package/esm2020/mdc-radio/module.mjs +4 -4
  85. package/esm2020/mdc-radio/radio.mjs +8 -8
  86. package/esm2020/mdc-select/module.mjs +4 -4
  87. package/esm2020/mdc-select/select.mjs +8 -8
  88. package/esm2020/mdc-sidenav/module.mjs +4 -4
  89. package/esm2020/mdc-slide-toggle/module.mjs +4 -4
  90. package/esm2020/mdc-slide-toggle/slide-toggle.mjs +5 -5
  91. package/esm2020/mdc-slider/global-change-and-input-listener.mjs +3 -3
  92. package/esm2020/mdc-slider/module.mjs +4 -4
  93. package/esm2020/mdc-slider/slider.mjs +33 -12
  94. package/esm2020/mdc-snack-bar/module.mjs +7 -7
  95. package/esm2020/mdc-snack-bar/public-api.mjs +2 -2
  96. package/esm2020/mdc-snack-bar/simple-snack-bar.mjs +7 -7
  97. package/esm2020/mdc-snack-bar/snack-bar-container.mjs +3 -3
  98. package/esm2020/mdc-snack-bar/snack-bar-content.mjs +9 -9
  99. package/esm2020/mdc-snack-bar/snack-bar.mjs +26 -12
  100. package/esm2020/mdc-table/cell.mjs +21 -21
  101. package/esm2020/mdc-table/module.mjs +4 -4
  102. package/esm2020/mdc-table/row.mjs +21 -21
  103. package/esm2020/mdc-table/table.mjs +8 -8
  104. package/esm2020/mdc-table/text-column.mjs +3 -3
  105. package/esm2020/mdc-tabs/module.mjs +10 -6
  106. package/esm2020/mdc-tabs/public-api.mjs +2 -2
  107. package/esm2020/mdc-tabs/tab-body.mjs +8 -8
  108. package/esm2020/mdc-tabs/tab-content.mjs +3 -3
  109. package/esm2020/mdc-tabs/tab-group.mjs +7 -7
  110. package/esm2020/mdc-tabs/tab-header.mjs +5 -5
  111. package/esm2020/mdc-tabs/tab-label-wrapper.mjs +3 -3
  112. package/esm2020/mdc-tabs/tab-label.mjs +3 -3
  113. package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +48 -11
  114. package/esm2020/mdc-tabs/tab.mjs +5 -5
  115. package/esm2020/mdc-tabs/testing/tab-harness-filters.mjs +1 -1
  116. package/esm2020/mdc-tabs/testing/tab-nav-bar-harness.mjs +13 -1
  117. package/esm2020/mdc-tabs/testing/tab-nav-panel-harness.mjs +27 -0
  118. package/esm2020/mdc-tooltip/module.mjs +4 -4
  119. package/esm2020/mdc-tooltip/tooltip.mjs +6 -6
  120. package/esm2020/menubar/menubar-item.mjs +3 -3
  121. package/esm2020/menubar/menubar-module.mjs +4 -4
  122. package/esm2020/menubar/menubar.mjs +3 -3
  123. package/esm2020/popover-edit/lens-directives.mjs +9 -9
  124. package/esm2020/popover-edit/popover-edit-module.mjs +4 -4
  125. package/esm2020/popover-edit/table-directives.mjs +12 -12
  126. package/esm2020/selection/row-selection.mjs +3 -3
  127. package/esm2020/selection/select-all.mjs +3 -3
  128. package/esm2020/selection/selection-column.mjs +3 -3
  129. package/esm2020/selection/selection-module.mjs +4 -4
  130. package/esm2020/selection/selection-toggle.mjs +3 -3
  131. package/esm2020/selection/selection.mjs +3 -3
  132. package/esm2020/version.mjs +1 -1
  133. package/fesm2015/column-resize.mjs +36 -36
  134. package/fesm2015/material-experimental.mjs +1 -1
  135. package/fesm2015/material-experimental.mjs.map +1 -1
  136. package/fesm2015/mdc-autocomplete.mjs +13 -13
  137. package/fesm2015/mdc-button.mjs +61 -60
  138. package/fesm2015/mdc-button.mjs.map +1 -1
  139. package/fesm2015/mdc-card.mjs +46 -46
  140. package/fesm2015/mdc-checkbox.mjs +13 -21
  141. package/fesm2015/mdc-checkbox.mjs.map +1 -1
  142. package/fesm2015/mdc-chips/testing.mjs +18 -8
  143. package/fesm2015/mdc-chips/testing.mjs.map +1 -1
  144. package/fesm2015/mdc-chips.mjs +753 -1063
  145. package/fesm2015/mdc-chips.mjs.map +1 -1
  146. package/fesm2015/mdc-core.mjs +12 -12
  147. package/fesm2015/mdc-core.mjs.map +1 -1
  148. package/fesm2015/mdc-dialog.mjs +23 -23
  149. package/fesm2015/mdc-form-field.mjs +50 -32
  150. package/fesm2015/mdc-form-field.mjs.map +1 -1
  151. package/fesm2015/mdc-input.mjs +8 -7
  152. package/fesm2015/mdc-input.mjs.map +1 -1
  153. package/fesm2015/mdc-list/testing.mjs +110 -18
  154. package/fesm2015/mdc-list/testing.mjs.map +1 -1
  155. package/fesm2015/mdc-list.mjs +353 -148
  156. package/fesm2015/mdc-list.mjs.map +1 -1
  157. package/fesm2015/mdc-menu.mjs +16 -16
  158. package/fesm2015/mdc-paginator.mjs +7 -7
  159. package/fesm2015/mdc-progress-bar.mjs +7 -7
  160. package/fesm2015/mdc-progress-spinner.mjs +7 -7
  161. package/fesm2015/mdc-radio.mjs +11 -11
  162. package/fesm2015/mdc-radio.mjs.map +1 -1
  163. package/fesm2015/mdc-select.mjs +12 -12
  164. package/fesm2015/mdc-sidenav.mjs +4 -4
  165. package/fesm2015/mdc-slide-toggle.mjs +8 -8
  166. package/fesm2015/mdc-slide-toggle.mjs.map +1 -1
  167. package/fesm2015/mdc-slider.mjs +39 -18
  168. package/fesm2015/mdc-slider.mjs.map +1 -1
  169. package/fesm2015/mdc-snack-bar.mjs +46 -41
  170. package/fesm2015/mdc-snack-bar.mjs.map +1 -1
  171. package/fesm2015/mdc-table.mjs +57 -57
  172. package/fesm2015/mdc-tabs/testing.mjs +34 -0
  173. package/fesm2015/mdc-tabs/testing.mjs.map +1 -1
  174. package/fesm2015/mdc-tabs.mjs +86 -45
  175. package/fesm2015/mdc-tabs.mjs.map +1 -1
  176. package/fesm2015/mdc-tooltip.mjs +10 -10
  177. package/fesm2015/menubar.mjs +10 -10
  178. package/fesm2015/popover-edit.mjs +25 -25
  179. package/fesm2015/selection.mjs +19 -19
  180. package/fesm2020/column-resize.mjs +36 -36
  181. package/fesm2020/material-experimental.mjs +1 -1
  182. package/fesm2020/material-experimental.mjs.map +1 -1
  183. package/fesm2020/mdc-autocomplete.mjs +13 -13
  184. package/fesm2020/mdc-button.mjs +62 -61
  185. package/fesm2020/mdc-button.mjs.map +1 -1
  186. package/fesm2020/mdc-card.mjs +46 -46
  187. package/fesm2020/mdc-checkbox.mjs +13 -21
  188. package/fesm2020/mdc-checkbox.mjs.map +1 -1
  189. package/fesm2020/mdc-chips/testing.mjs +14 -1
  190. package/fesm2020/mdc-chips/testing.mjs.map +1 -1
  191. package/fesm2020/mdc-chips.mjs +733 -1068
  192. package/fesm2020/mdc-chips.mjs.map +1 -1
  193. package/fesm2020/mdc-core.mjs +12 -12
  194. package/fesm2020/mdc-core.mjs.map +1 -1
  195. package/fesm2020/mdc-dialog.mjs +23 -23
  196. package/fesm2020/mdc-form-field.mjs +48 -32
  197. package/fesm2020/mdc-form-field.mjs.map +1 -1
  198. package/fesm2020/mdc-input.mjs +8 -7
  199. package/fesm2020/mdc-input.mjs.map +1 -1
  200. package/fesm2020/mdc-list/testing.mjs +100 -16
  201. package/fesm2020/mdc-list/testing.mjs.map +1 -1
  202. package/fesm2020/mdc-list.mjs +351 -148
  203. package/fesm2020/mdc-list.mjs.map +1 -1
  204. package/fesm2020/mdc-menu.mjs +16 -16
  205. package/fesm2020/mdc-paginator.mjs +7 -7
  206. package/fesm2020/mdc-progress-bar.mjs +7 -7
  207. package/fesm2020/mdc-progress-spinner.mjs +7 -7
  208. package/fesm2020/mdc-radio.mjs +11 -11
  209. package/fesm2020/mdc-radio.mjs.map +1 -1
  210. package/fesm2020/mdc-select.mjs +12 -12
  211. package/fesm2020/mdc-sidenav.mjs +4 -4
  212. package/fesm2020/mdc-slide-toggle.mjs +8 -8
  213. package/fesm2020/mdc-slide-toggle.mjs.map +1 -1
  214. package/fesm2020/mdc-slider.mjs +39 -18
  215. package/fesm2020/mdc-slider.mjs.map +1 -1
  216. package/fesm2020/mdc-snack-bar.mjs +44 -34
  217. package/fesm2020/mdc-snack-bar.mjs.map +1 -1
  218. package/fesm2020/mdc-table.mjs +57 -57
  219. package/fesm2020/mdc-tabs/testing.mjs +37 -0
  220. package/fesm2020/mdc-tabs/testing.mjs.map +1 -1
  221. package/fesm2020/mdc-tabs.mjs +86 -45
  222. package/fesm2020/mdc-tabs.mjs.map +1 -1
  223. package/fesm2020/mdc-tooltip.mjs +10 -10
  224. package/fesm2020/menubar.mjs +10 -10
  225. package/fesm2020/popover-edit.mjs +25 -25
  226. package/fesm2020/selection.mjs +19 -19
  227. package/mdc-button/_button-base.scss +28 -15
  228. package/mdc-button/_button-theme-private.scss +35 -28
  229. package/mdc-button/_button-theme.scss +118 -80
  230. package/mdc-button/_fab-theme.scss +31 -37
  231. package/mdc-button/_icon-button-theme.scss +15 -22
  232. package/mdc-button/button-base.d.ts +7 -5
  233. package/mdc-button/fab.d.ts +1 -1
  234. package/mdc-button/icon-button.d.ts +2 -2
  235. package/mdc-checkbox/_checkbox-private.scss +46 -0
  236. package/mdc-checkbox/_checkbox-theme.scss +19 -46
  237. package/mdc-checkbox/checkbox.d.ts +0 -6
  238. package/mdc-checkbox/module.d.ts +2 -3
  239. package/mdc-chips/_chips-theme.scss +53 -53
  240. package/mdc-chips/chip-action.d.ts +40 -0
  241. package/mdc-chips/chip-grid.d.ts +6 -24
  242. package/mdc-chips/chip-icons.d.ts +14 -37
  243. package/mdc-chips/chip-listbox.d.ts +4 -40
  244. package/mdc-chips/chip-option.d.ts +15 -11
  245. package/mdc-chips/chip-row.d.ts +13 -28
  246. package/mdc-chips/chip-set.d.ts +25 -42
  247. package/mdc-chips/chip.d.ts +37 -36
  248. package/mdc-chips/emit-event.d.ts +16 -0
  249. package/mdc-chips/module.d.ts +13 -12
  250. package/mdc-chips/testing/chip-harness.d.ts +1 -0
  251. package/mdc-chips/testing/chip-row-harness.d.ts +4 -0
  252. package/mdc-core/option/_option-theme.scss +3 -3
  253. package/mdc-core/option/option.d.ts +3 -3
  254. package/mdc-core/public-api.d.ts +1 -1
  255. package/mdc-form-field/_form-field-subscript.scss +11 -0
  256. package/mdc-form-field/form-field.d.ts +12 -1
  257. package/mdc-helpers/_focus-indicators.scss +15 -3
  258. package/mdc-list/_interactive-list-theme.scss +17 -11
  259. package/mdc-list/_list-option-theme.scss +3 -3
  260. package/mdc-list/_list-option-trailing-avatar-compat.scss +18 -13
  261. package/mdc-list/_list-theme.scss +18 -13
  262. package/mdc-list/list-base.d.ts +56 -11
  263. package/mdc-list/list-item-sections.d.ts +77 -0
  264. package/mdc-list/list-option.d.ts +11 -8
  265. package/mdc-list/list.d.ts +6 -2
  266. package/mdc-list/module.d.ts +7 -5
  267. package/mdc-list/public-api.d.ts +2 -1
  268. package/mdc-list/subheader.d.ts +9 -0
  269. package/mdc-list/testing/list-harness-filters.d.ts +8 -0
  270. package/mdc-list/testing/list-item-harness-base.d.ts +36 -3
  271. package/mdc-list/testing/public-api.d.ts +1 -1
  272. package/mdc-list/testing/selection-list-harness.d.ts +0 -2
  273. package/mdc-radio/_radio-theme.scss +0 -6
  274. package/mdc-select/_select-theme.scss +6 -27
  275. package/mdc-slider/slider.d.ts +13 -1
  276. package/mdc-snack-bar/module.d.ts +1 -1
  277. package/mdc-snack-bar/public-api.d.ts +1 -1
  278. package/mdc-snack-bar/simple-snack-bar.d.ts +4 -4
  279. package/mdc-snack-bar/snack-bar.d.ts +17 -5
  280. package/mdc-table/_table-theme.scss +1 -1
  281. package/mdc-tabs/_tabs-common.scss +8 -1
  282. package/mdc-tabs/_tabs-theme.scss +8 -55
  283. package/mdc-tabs/module.d.ts +1 -1
  284. package/mdc-tabs/public-api.d.ts +1 -1
  285. package/mdc-tabs/tab-nav-bar/tab-nav-bar.d.ts +11 -0
  286. package/mdc-tabs/testing/tab-harness-filters.d.ts +3 -0
  287. package/mdc-tabs/testing/tab-nav-bar-harness.d.ts +3 -0
  288. package/mdc-tabs/testing/tab-nav-panel-harness.d.ts +23 -0
  289. package/mdc-theming/prebuilt/deeppurple-amber.css +1 -0
  290. package/mdc-theming/prebuilt/indigo-pink.css +1 -1
  291. package/mdc-theming/prebuilt/pink-bluegrey.css +1 -0
  292. package/mdc-theming/prebuilt/purple-green.css +1 -0
  293. package/mdc-tooltip/_tooltip-theme.scss +1 -1
  294. package/package.json +16 -2
  295. package/esm2020/mdc-chips/grid-focus-key-manager.mjs +0 -21
  296. package/esm2020/mdc-chips/grid-key-manager.mjs +0 -218
  297. package/esm2020/mdc-list/list-styling.mjs +0 -92
  298. package/mdc-chips/grid-focus-key-manager.d.ts +0 -28
  299. package/mdc-chips/grid-key-manager.d.ts +0 -116
  300. package/mdc-list/list-styling.d.ts +0 -40
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @use '@material/touch-target' as mdc-touch-target;
2
3
  @use '../mdc-helpers/mdc-helpers';
3
4
  @use '../../material/core/style/layout-common';
@@ -8,22 +9,10 @@
8
9
  // ripple and state container so that they fill the button, match the border radius, and avoid
9
10
  // pointer events.
10
11
  @mixin mat-private-button-interactive() {
11
- .mdc-button__ripple::before, .mdc-button__ripple::after,
12
- .mdc-fab__ripple::before, .mdc-fab__ripple::after {
13
- content: '';
14
- pointer-events: none;
15
- position: absolute;
16
- top: 0;
17
- right: 0;
18
- bottom: 0;
19
- left: 0;
20
- opacity: 0;
21
- border-radius: inherit;
22
- @content;
23
- }
24
-
25
12
  // The ripple container should match the bounds of the entire button.
26
- .mat-mdc-button-ripple, .mdc-button__ripple, .mdc-fab__ripple {
13
+ .mat-mdc-button-ripple,
14
+ .mat-mdc-button-persistent-ripple,
15
+ .mat-mdc-button-persistent-ripple::before {
27
16
  @include layout-common.fill;
28
17
 
29
18
  // Disable pointer events for the ripple container and state overlay because the container
@@ -38,6 +27,17 @@
38
27
  border-radius: inherit;
39
28
  }
40
29
 
30
+ // We use ::before so that we can reuse some of MDC's theming.
31
+ .mat-mdc-button-persistent-ripple::before {
32
+ content: '';
33
+ opacity: 0;
34
+ background-color: var(--mat-mdc-button-persistent-ripple-color);
35
+ }
36
+
37
+ .mat-ripple-element {
38
+ background-color: var(--mat-mdc-button-ripple-color);
39
+ }
40
+
41
41
  // The content should appear over the state and ripple layers, otherwise they may adversely affect
42
42
  // the accessibility of the text content.
43
43
  .mdc-button__label {
@@ -59,6 +59,7 @@
59
59
  &[disabled] {
60
60
  cursor: default;
61
61
  pointer-events: none;
62
+ @content;
62
63
  }
63
64
  }
64
65
 
@@ -75,3 +76,15 @@
75
76
  $query: mdc-helpers.$mat-base-styles-query);
76
77
  }
77
78
  }
79
+
80
+ // Changes a button theme to exclude the ripple styles.
81
+ @function mat-private-button-remove-ripple($theme) {
82
+ @return map.merge($theme, (
83
+ focus-state-layer-color: null,
84
+ focus-state-layer-opacity: null,
85
+ hover-state-layer-color: null,
86
+ hover-state-layer-opacity: null,
87
+ pressed-state-layer-color: null,
88
+ pressed-state-layer-opacity: null,
89
+ ));
90
+ }
@@ -1,28 +1,43 @@
1
+ @use 'sass:map';
2
+ @use '@material/ripple/ripple-theme' as mdc-ripple-theme;
1
3
  @use '@material/theme/theme-color' as mdc-theme-color;
2
- @use '@material/theme/theme' as mdc-theme;
3
4
  @use '../../material/core/ripple/ripple-theme';
4
5
 
5
- // Selector for the element that has a background color and opacity applied to its ::before and
6
- // ::after for state interactions (hover, active, focus). Their API calls this their
7
- // "ripple target", but we do not use it as our ripple, just state color.
8
- $button-state-target: '.mdc-button__ripple';
9
- $fab-state-target: '.mdc-fab__ripple';
10
-
11
- // The MDC button's ripple ink color is based on the theme color, not on the foreground base
12
- // which is what the ripple mixin uses. This creates a new theme that sets the color to the
13
- // foreground base to appropriately color the ink.
14
- @mixin ripple-ink-color($mdc-color) {
15
- @include ripple-theme.color((
16
- foreground: (
17
- base: mdc-theme-color.prop-value($mdc-color)
18
- ),
19
- ));
6
+ @mixin _ripple-color($color) {
7
+ --mat-mdc-button-persistent-ripple-color: #{$color};
8
+ --mat-mdc-button-ripple-color: #{rgba($color, 0.1)};
20
9
  }
21
10
 
22
- // Applies the disabled theme color to the text color.
23
- @mixin apply-disabled-color() {
24
- @include mdc-theme.prop(color,
25
- mdc-theme-color.ink-color-for-fill_(disabled, mdc-theme-color.$background));
11
+ @mixin ripple-theme-styles($config, $is-filled) {
12
+ $opacities: if(map.get($config, is-dark),
13
+ mdc-ripple-theme.$light-ink-opacities, mdc-ripple-theme.$dark-ink-opacities);
14
+
15
+ // Ideally these styles would be structural, but MDC bases some of the opacities on the theme.
16
+ &:hover .mat-mdc-button-persistent-ripple::before {
17
+ opacity: map.get($opacities, hover);
18
+ }
19
+
20
+ &:focus .mat-mdc-button-persistent-ripple::before {
21
+ opacity: map.get($opacities, focus);
22
+ }
23
+
24
+ &:active .mat-mdc-button-persistent-ripple::before {
25
+ opacity: map.get($opacities, press);
26
+ }
27
+
28
+ @include _ripple-color(mdc-theme-color.prop-value(on-surface));
29
+
30
+ &.mat-primary {
31
+ @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-primary, primary)));
32
+ }
33
+
34
+ &.mat-accent {
35
+ @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-secondary, secondary)));
36
+ }
37
+
38
+ &.mat-warn {
39
+ @include _ripple-color(mdc-theme-color.prop-value(if($is-filled, on-error, error)));
40
+ }
26
41
  }
27
42
 
28
43
  // Wraps the content style in a selector for the disabled state.
@@ -37,14 +52,6 @@ $fab-state-target: '.mdc-fab__ripple';
37
52
  }
38
53
  }
39
54
 
40
- // Applies the disabled theme background color for raised buttons. Value is taken from
41
- // mixin `mdc-button--filled`.
42
- // TODO(andrewseguin): Discuss with the MDC team about providing a variable for the 0.12 value
43
- // or otherwise have a mixin we can call to apply this style for both button and anchors.
44
- @mixin apply-disabled-background() {
45
- @include mdc-theme.prop(background-color, rgba(mdc-theme-color.prop-value(on-surface), 0.12));
46
- }
47
-
48
55
  // Hides the touch target on lower densities.
49
56
  @mixin touch-target-density($scale) {
50
57
  @if ($scale == -2 or $scale == 'minimum') {
@@ -1,146 +1,184 @@
1
+ @use 'sass:map';
1
2
  @use '@material/button/button' as mdc-button;
2
3
  @use '@material/button/button-theme' as mdc-button-theme;
3
- @use '@material/ripple/ripple-theme' as mdc-ripple-theme;
4
+ @use '@material/button/button-text-theme' as mdc-button-text-theme;
5
+ @use '@material/button/button-filled-theme' as mdc-button-filled-theme;
6
+ @use '@material/button/button-protected-theme' as mdc-button-protected-theme;
7
+ @use '@material/button/button-outlined-theme' as mdc-button-outlined-theme;
4
8
  @use '@material/theme/theme-color' as mdc-theme-color;
5
- @use '@material/theme/theme' as mdc-theme;
6
- @use '@material/elevation/elevation-theme' as mdc-elevation-theme;
7
- @use '../../material/core/ripple/ripple-theme';
8
9
  @use '../../material/core/typography/typography';
9
10
  @use '../mdc-helpers/mdc-helpers';
10
11
  @use '../../material/core/theming/theming';
11
12
  @use './button-theme-private';
12
13
 
14
+ @mixin _button-variant($color) {
15
+ @include mdc-button-text-theme.theme((
16
+ label-text-color: $color,
17
+ ));
18
+ }
19
+
20
+ @mixin _unelevated-button-variant($foreground, $background) {
21
+ @include mdc-button-filled-theme.theme((
22
+ container-color: $background,
23
+ label-text-color: $foreground,
24
+ ));
25
+ }
26
+
27
+ @mixin _raised-button-variant($foreground, $background) {
28
+ @include mdc-button-protected-theme.theme((
29
+ container-color: $background,
30
+ label-text-color: $foreground,
31
+ ));
32
+ }
33
+
34
+ @mixin _outlined-button-variant($color) {
35
+ @include mdc-button-outlined-theme.theme((
36
+ label-text-color: $color,
37
+ ));
38
+ }
39
+
13
40
  @mixin color($config-or-theme) {
14
41
  $config: theming.get-color-config($config-or-theme);
15
42
  @include mdc-helpers.mat-using-mdc-theme($config) {
16
- // Add state interactions for hover, focus, press, active. Colors are changed based on
17
- // the mixin mdc-states-base-color
18
- .mat-mdc-button, .mat-mdc-raised-button, .mat-mdc-unelevated-button, .mat-mdc-outlined-button {
19
- @include mdc-ripple-theme.states(
20
- $query: mdc-helpers.$mat-theme-styles-query,
21
- $ripple-target: button-theme-private.$button-state-target);
22
- }
23
-
24
- .mat-mdc-button, .mat-mdc-outlined-button {
43
+ $is-dark: map.get($config, is-dark);
44
+ $on-surface: mdc-theme-color.prop-value(on-surface);
45
+ $surface: mdc-theme-color.prop-value(surface);
46
+ $disabled-ink-color: rgba($on-surface, if($is-dark, 0.5, 0.38));
47
+ $disabled-container-color: rgba($on-surface, 0.12);
48
+ $primary: mdc-theme-color.prop-value(primary);
49
+ $on-primary: mdc-theme-color.prop-value(on-primary);
50
+ $secondary: mdc-theme-color.prop-value(secondary);
51
+ $on-secondary: mdc-theme-color.prop-value(on-secondary);
52
+ $error: mdc-theme-color.prop-value(error);
53
+ $on-error: mdc-theme-color.prop-value(on-error);
54
+
55
+ .mat-mdc-button {
25
56
  &.mat-unthemed {
26
- @include mdc-button-theme.ink-color(mdc-theme-color.$on-surface,
27
- $query: mdc-helpers.$mat-theme-styles-query);
57
+ @include _button-variant($on-surface);
28
58
  }
29
59
 
30
60
  &.mat-primary {
31
- @include mdc-button-theme.ink-color(primary, $query: mdc-helpers.$mat-theme-styles-query);
32
- @include mdc-ripple-theme.states-base-color(primary,
33
- $query: mdc-helpers.$mat-theme-styles-query,
34
- $ripple-target: button-theme-private.$button-state-target);
35
- @include button-theme-private.ripple-ink-color(primary);
61
+ @include _button-variant($primary);
36
62
  }
37
63
 
38
64
  &.mat-accent {
39
- @include mdc-button-theme.ink-color(secondary, $query: mdc-helpers.$mat-theme-styles-query);
40
- @include mdc-ripple-theme.states-base-color(secondary,
41
- $query: mdc-helpers.$mat-theme-styles-query,
42
- $ripple-target: button-theme-private.$button-state-target);
43
- @include button-theme-private.ripple-ink-color(secondary);
65
+ @include _button-variant($secondary);
44
66
  }
45
67
 
46
68
  &.mat-warn {
47
- @include mdc-button-theme.ink-color(error, $query: mdc-helpers.$mat-theme-styles-query);
48
- @include mdc-ripple-theme.states-base-color(error,
49
- $query: mdc-helpers.$mat-theme-styles-query,
50
- $ripple-target: button-theme-private.$button-state-target);
51
- @include button-theme-private.ripple-ink-color(error);
69
+ @include _button-variant($error);
70
+ }
71
+
72
+ @include button-theme-private.apply-disabled-style() {
73
+ @include mdc-button-text-theme.theme((
74
+ // We need to pass both the disabled and enabled values, because the enabled
75
+ // ones apply to anchors while the disabled ones are for buttons.
76
+ disabled-label-text-color: $disabled-ink-color,
77
+ label-text-color: $disabled-ink-color
78
+ ));
52
79
  }
53
80
  }
54
81
 
55
- .mat-mdc-raised-button,
56
82
  .mat-mdc-unelevated-button {
57
83
  &.mat-unthemed {
58
- @include mdc-button-theme.container-fill-color(mdc-theme-color.$surface,
59
- $query: mdc-helpers.$mat-theme-styles-query);
60
- @include mdc-button-theme.ink-color(mdc-theme-color.$on-surface,
61
- $query: mdc-helpers.$mat-theme-styles-query);
62
- @include mdc-ripple-theme.states-base-color(mdc-theme-color.$on-surface,
63
- $query: mdc-helpers.$mat-theme-styles-query,
64
- $ripple-target: button-theme-private.$button-state-target);
84
+ @include _unelevated-button-variant($on-surface, $surface);
65
85
  }
66
86
 
67
87
  &.mat-primary {
68
- @include mdc-button-theme.container-fill-color(primary,
69
- $query: mdc-helpers.$mat-theme-styles-query);
70
- @include mdc-button-theme.ink-color(on-primary,
71
- $query: mdc-helpers.$mat-theme-styles-query);
72
- @include mdc-ripple-theme.states-base-color(on-primary,
73
- $query: mdc-helpers.$mat-theme-styles-query,
74
- $ripple-target: button-theme-private.$button-state-target);
75
- @include button-theme-private.ripple-ink-color(on-primary);
88
+ @include _unelevated-button-variant($on-primary, $primary);
76
89
  }
77
90
 
78
91
  &.mat-accent {
79
- @include mdc-button-theme.container-fill-color(secondary,
80
- $query: mdc-helpers.$mat-theme-styles-query);
81
- @include mdc-button-theme.ink-color(on-secondary,
82
- $query: mdc-helpers.$mat-theme-styles-query);
83
- @include mdc-ripple-theme.states-base-color(on-secondary,
84
- $query: mdc-helpers.$mat-theme-styles-query,
85
- $ripple-target: button-theme-private.$button-state-target);
86
- @include button-theme-private.ripple-ink-color(on-secondary);
92
+ @include _unelevated-button-variant($on-secondary, $secondary);
87
93
  }
88
94
 
89
95
  &.mat-warn {
90
- @include mdc-button-theme.container-fill-color(error,
91
- $query: mdc-helpers.$mat-theme-styles-query);
92
- @include mdc-button-theme.ink-color(on-error, $query: mdc-helpers.$mat-theme-styles-query);
93
- @include mdc-ripple-theme.states-base-color(on-error,
94
- $query: mdc-helpers.$mat-theme-styles-query,
95
- $ripple-target: button-theme-private.$button-state-target);
96
- @include button-theme-private.ripple-ink-color(on-error);
96
+ @include _unelevated-button-variant($on-error, $error);
97
97
  }
98
98
 
99
99
  @include button-theme-private.apply-disabled-style() {
100
- @include button-theme-private.apply-disabled-background();
100
+ @include mdc-button-filled-theme.theme((
101
+ // We need to pass both the disabled and enabled values, because the enabled
102
+ // ones apply to anchors while the disabled ones are for buttons.
103
+ disabled-container-color: $disabled-container-color,
104
+ disabled-label-text-color: $disabled-ink-color,
105
+ container-color: $disabled-container-color,
106
+ label-text-color: $disabled-ink-color,
107
+ ));
101
108
  }
102
109
  }
103
110
 
104
- .mat-mdc-outlined-button {
111
+ .mat-mdc-raised-button {
105
112
  &.mat-unthemed {
106
- @include mdc-button-theme.outline-color(mdc-theme-color.$on-surface,
107
- $query: mdc-helpers.$mat-theme-styles-query);
113
+ @include _raised-button-variant($on-surface, $surface);
108
114
  }
109
115
 
110
116
  &.mat-primary {
111
- @include mdc-button-theme.outline-color(primary,
112
- $query: mdc-helpers.$mat-theme-styles-query);
117
+ @include _raised-button-variant($on-primary, $primary);
113
118
  }
114
119
 
115
120
  &.mat-accent {
116
- @include mdc-button-theme.outline-color(secondary,
117
- $query: mdc-helpers.$mat-theme-styles-query);
121
+ @include _raised-button-variant($on-secondary, $secondary);
118
122
  }
119
123
 
120
124
  &.mat-warn {
121
- @include mdc-button-theme.outline-color(error,
122
- $query: mdc-helpers.$mat-theme-styles-query);
125
+ @include _raised-button-variant($on-error, $error);
123
126
  }
124
127
 
125
128
  @include button-theme-private.apply-disabled-style() {
126
- @include mdc-theme.prop(border-color,
127
- mdc-theme-color.ink-color-for-fill_(disabled, mdc-theme-color.$background));
129
+ @include mdc-button-protected-theme.theme((
130
+ // We need to pass both the disabled and enabled values, because the enabled
131
+ // ones apply to anchors while the disabled ones are for buttons.
132
+ disabled-container-color: $disabled-container-color,
133
+ disabled-label-text-color: $disabled-ink-color,
134
+ container-color: $disabled-container-color,
135
+ label-text-color: $disabled-ink-color,
136
+ container-elevation: 0,
137
+ ));
128
138
  }
129
139
  }
130
140
 
131
- .mat-mdc-raised-button {
132
- @include button-theme-private.apply-disabled-style() {
133
- @include mdc-elevation-theme.elevation(0, $query: mdc-helpers.$mat-theme-styles-query);
141
+ .mat-mdc-outlined-button {
142
+ @include mdc-button-outlined-theme.theme((
143
+ outline-color: rgba(mdc-theme-color.prop-value(on-surface), 0.12)
144
+ ));
145
+
146
+ &.mat-unthemed {
147
+ @include _outlined-button-variant($on-surface);
148
+ }
149
+
150
+ &.mat-primary {
151
+ @include _outlined-button-variant($primary);
152
+ }
153
+
154
+ &.mat-accent {
155
+ @include _outlined-button-variant($secondary);
156
+ }
157
+
158
+ &.mat-warn {
159
+ @include _outlined-button-variant($error);
134
160
  }
135
- }
136
161
 
137
- .mat-mdc-button, .mat-mdc-raised-button, .mat-mdc-unelevated-button, .mat-mdc-outlined-button {
138
162
  @include button-theme-private.apply-disabled-style() {
139
- @include button-theme-private.apply-disabled-color();
163
+ @include mdc-button-outlined-theme.theme((
164
+ // We need to pass both the disabled and enabled values, because the enabled
165
+ // ones apply to anchors while the disabled ones are for buttons.
166
+ label-text-color: $disabled-ink-color,
167
+ disabled-label-text-color: $disabled-ink-color,
168
+ outline-color: rgba($on-surface, 0.12),
169
+ disabled-outline-color: rgba($on-surface, 0.12),
170
+ ));
140
171
  }
141
172
  }
142
173
 
143
- @include mdc-button.without-ripple($query: mdc-helpers.$mat-theme-styles-query);
174
+ // Ripple colors
175
+ .mat-mdc-button, .mat-mdc-outlined-button {
176
+ @include button-theme-private.ripple-theme-styles($config, false);
177
+ }
178
+
179
+ .mat-mdc-raised-button, .mat-mdc-unelevated-button {
180
+ @include button-theme-private.ripple-theme-styles($config, true);
181
+ }
144
182
  }
145
183
  }
146
184
 
@@ -1,68 +1,62 @@
1
+ @use 'sass:map';
1
2
  @use '@material/fab/fab' as mdc-fab;
2
3
  @use '@material/fab/fab-theme' as mdc-fab-theme;
3
- @use '@material/ripple/ripple-theme' as mdc-ripple-theme;
4
- @use '@material/elevation/elevation-theme' as mdc-elevation-theme;
5
4
  @use '@material/theme/theme-color' as mdc-theme-color;
6
5
  @use '../mdc-helpers/mdc-helpers';
7
6
  @use '../../material/core/theming/theming';
8
7
  @use '../../material/core/typography/typography';
9
8
  @use './button-theme-private';
10
9
 
10
+ @mixin _fab-variant($foreground, $background) {
11
+ @include mdc-fab-theme.theme((
12
+ container-color: $background,
13
+ icon-color: $foreground,
14
+ ));
15
+
16
+ --mat-mdc-fab-color: #{$foreground};
17
+ }
18
+
11
19
  @mixin color($config-or-theme) {
12
20
  $config: theming.get-color-config($config-or-theme);
13
21
  @include mdc-helpers.mat-using-mdc-theme($config) {
22
+ $on-surface: mdc-theme-color.prop-value(on-surface);
23
+ $is-dark: map.get($config, is-dark);
24
+
14
25
  .mat-mdc-fab, .mat-mdc-mini-fab {
15
- @include mdc-ripple-theme.states(
16
- $query: mdc-helpers.$mat-theme-styles-query,
17
- $ripple-target: button-theme-private.$fab-state-target);
26
+ @include button-theme-private.ripple-theme-styles($config, true);
18
27
 
19
28
  &.mat-unthemed {
20
- @include mdc-ripple-theme.states-base-color(mdc-theme-color.$on-surface,
21
- $query: mdc-helpers.$mat-theme-styles-query,
22
- $ripple-target: button-theme-private.$fab-state-target);
23
- @include mdc-fab-theme.container-color(mdc-theme-color.$on-surface,
24
- $query: mdc-helpers.$mat-theme-styles-query);
25
- @include mdc-fab-theme.ink-color(mdc-theme-color.$on-surface,
26
- $query: mdc-helpers.$mat-theme-styles-query);
29
+ @include _fab-variant($on-surface, mdc-theme-color.prop-value(surface));
27
30
  }
28
31
 
29
32
  &.mat-primary {
30
- @include mdc-ripple-theme.states-base-color(on-primary,
31
- $query: mdc-helpers.$mat-theme-styles-query,
32
- $ripple-target: button-theme-private.$fab-state-target);
33
- @include mdc-fab-theme.container-color(primary,
34
- $query: mdc-helpers.$mat-theme-styles-query);
35
- @include mdc-fab-theme.ink-color(on-primary, $query: mdc-helpers.$mat-theme-styles-query);
36
- @include button-theme-private.ripple-ink-color(on-primary);
33
+ @include _fab-variant(
34
+ mdc-theme-color.prop-value(on-primary),
35
+ mdc-theme-color.prop-value(primary)
36
+ );
37
37
  }
38
38
 
39
39
  &.mat-accent {
40
- @include mdc-ripple-theme.states-base-color(on-secondary,
41
- $query: mdc-helpers.$mat-theme-styles-query,
42
- $ripple-target: button-theme-private.$fab-state-target);
43
- @include mdc-fab-theme.container-color(secondary,
44
- $query: mdc-helpers.$mat-theme-styles-query);
45
- @include mdc-fab-theme.ink-color(on-secondary, $query: mdc-helpers.$mat-theme-styles-query);
46
- @include button-theme-private.ripple-ink-color(on-secondary);
40
+ @include _fab-variant(
41
+ mdc-theme-color.prop-value(on-secondary),
42
+ mdc-theme-color.prop-value(secondary)
43
+ );
47
44
  }
48
45
 
49
46
  &.mat-warn {
50
- @include mdc-ripple-theme.states-base-color(on-error,
51
- $query: mdc-helpers.$mat-theme-styles-query,
52
- $ripple-target: button-theme-private.$fab-state-target);
53
- @include mdc-fab-theme.container-color(error, $query: mdc-helpers.$mat-theme-styles-query);
54
- @include mdc-fab-theme.ink-color(on-error, $query: mdc-helpers.$mat-theme-styles-query);
55
- @include button-theme-private.ripple-ink-color(on-error);
47
+ @include _fab-variant(
48
+ mdc-theme-color.prop-value(on-error),
49
+ mdc-theme-color.prop-value(error)
50
+ );
56
51
  }
57
52
 
58
53
  @include button-theme-private.apply-disabled-style() {
59
- @include button-theme-private.apply-disabled-color();
60
- @include button-theme-private.apply-disabled-background();
61
- @include mdc-elevation-theme.elevation(0, $query: mdc-helpers.$mat-theme-styles-query);
54
+ @include _fab-variant(
55
+ rgba($on-surface, if(map.get($config, is-dark), 0.5, 0.38)),
56
+ rgba($on-surface, 0.12)
57
+ );
62
58
  }
63
59
  }
64
-
65
- @include mdc-fab.without-ripple($query: mdc-helpers.$mat-theme-styles-query);
66
60
  }
67
61
  }
68
62
 
@@ -1,5 +1,7 @@
1
+ @use 'sass:map';
1
2
  @use '@material/icon-button/mixins' as mdc-icon-button;
2
- @use '@material/ripple/ripple-theme' as mdc-ripple-theme;
3
+ @use '@material/icon-button/icon-button-theme' as mdc-icon-button-theme;
4
+ @use '@material/theme/theme-color' as mdc-theme-color;
3
5
  @use '../mdc-helpers/mdc-helpers';
4
6
  @use '../../material/core/theming/theming';
5
7
  @use '../../material/core/typography/typography';
@@ -8,41 +10,32 @@
8
10
  @mixin color($config-or-theme) {
9
11
  $config: theming.get-color-config($config-or-theme);
10
12
  @include mdc-helpers.mat-using-mdc-theme($config) {
13
+ $is-dark: map.get($config, is-dark);
14
+ $on-surface: mdc-theme-color.prop-value(on-surface);
15
+ $disabled-color: rgba($on-surface, if($is-dark, 0.5, 0.38));
16
+
11
17
  .mat-mdc-icon-button {
12
- @include mdc-ripple-theme.states(
13
- $query: mdc-helpers.$mat-theme-styles-query,
14
- $ripple-target: button-theme-private.$button-state-target);
18
+ @include button-theme-private.ripple-theme-styles($config, false);
15
19
 
16
20
  &.mat-primary {
17
- @include mdc-ripple-theme.states-base-color(primary,
18
- $query: mdc-helpers.$mat-theme-styles-query,
19
- $ripple-target: button-theme-private.$button-state-target);
20
- @include mdc-icon-button.ink-color(primary, $query: mdc-helpers.$mat-theme-styles-query);
21
- @include button-theme-private.ripple-ink-color(primary);
21
+ @include mdc-icon-button-theme.theme((icon-color: mdc-theme-color.prop-value(primary)));
22
22
  }
23
23
 
24
24
  &.mat-accent {
25
- @include mdc-ripple-theme.states-base-color(secondary,
26
- $query: mdc-helpers.$mat-theme-styles-query,
27
- $ripple-target: button-theme-private.$button-state-target);
28
- @include mdc-icon-button.ink-color(secondary, $query: mdc-helpers.$mat-theme-styles-query);
29
- @include button-theme-private.ripple-ink-color(secondary);
25
+ @include mdc-icon-button-theme.theme((icon-color: mdc-theme-color.prop-value(secondary)));
30
26
  }
31
27
 
32
28
  &.mat-warn {
33
- @include mdc-ripple-theme.states-base-color(error,
34
- $query: mdc-helpers.$mat-theme-styles-query,
35
- $ripple-target: button-theme-private.$button-state-target);
36
- @include mdc-icon-button.ink-color(error, $query: mdc-helpers.$mat-theme-styles-query);
37
- @include button-theme-private.ripple-ink-color(error);
29
+ @include mdc-icon-button-theme.theme((icon-color: (mdc-theme-color.prop-value(error))));
38
30
  }
39
31
 
40
32
  @include button-theme-private.apply-disabled-style() {
41
- @include button-theme-private.apply-disabled-color();
33
+ @include mdc-icon-button-theme.theme((
34
+ icon-color: $disabled-color,
35
+ disabled-icon-color: $disabled-color,
36
+ ));
42
37
  }
43
38
  }
44
-
45
- @include mdc-icon-button.without-ripple($query: mdc-helpers.$mat-theme-styles-query);
46
39
  }
47
40
  }
48
41
 
@@ -6,7 +6,7 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  import { Platform } from '@angular/cdk/platform';
9
- import { ElementRef, NgZone } from '@angular/core';
9
+ import { ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
10
10
  import { CanColor, CanDisable, CanDisableRipple, MatRipple } from '@angular/material-experimental/mdc-core';
11
11
  import { FocusOrigin } from '@angular/cdk/a11y';
12
12
  import * as i0 from "@angular/core";
@@ -30,10 +30,10 @@ export declare class MatButtonBase extends _MatButtonMixin implements CanDisable
30
30
  _platform: Platform;
31
31
  _ngZone: NgZone;
32
32
  _animationMode?: string | undefined;
33
- /** Whether the ripple is centered on the button. */
34
- _isRippleCentered: boolean;
35
33
  /** Whether this button is a FAB. Used to apply the correct class on the ripple. */
36
34
  _isFab: boolean;
35
+ /** Whether this button is an icon button. Used to apply the correct class on the ripple. */
36
+ _isIconButton: boolean;
37
37
  /** Reference to the MatRipple instance of the button. */
38
38
  ripple: MatRipple;
39
39
  constructor(elementRef: ElementRef, _platform: Platform, _ngZone: NgZone, _animationMode?: string | undefined);
@@ -59,10 +59,12 @@ export declare const MAT_ANCHOR_HOST: {
59
59
  /**
60
60
  * Anchor button base.
61
61
  */
62
- export declare class MatAnchorBase extends MatButtonBase {
62
+ export declare class MatAnchorBase extends MatButtonBase implements OnInit, OnDestroy {
63
63
  tabIndex: number;
64
64
  constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
65
- _haltDisabledEvents(event: Event): void;
65
+ ngOnInit(): void;
66
+ ngOnDestroy(): void;
67
+ _haltDisabledEvents: (event: Event) => void;
66
68
  static ɵfac: i0.ɵɵFactoryDeclaration<MatAnchorBase, never>;
67
69
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatAnchorBase, never, never, {}, {}, never>;
68
70
  }
@@ -64,7 +64,7 @@ export declare class MatFabAnchor extends MatAnchor {
64
64
  private _extended;
65
65
  constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string, _options?: MatFabDefaultOptions | undefined);
66
66
  static ɵfac: i0.ɵɵFactoryDeclaration<MatFabAnchor, [null, null, null, { optional: true; }, { optional: true; }]>;
67
- static ɵcmp: i0.ɵɵComponentDeclaration<MatFabAnchor, "a[mat-fab]", ["matButton", "matAnchor"], { "disabled": "disabled"; "disableRipple": "disableRipple"; "color": "color"; "extended": "extended"; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd]"]>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatFabAnchor, "a[mat-fab]", ["matButton", "matAnchor"], { "disabled": "disabled"; "disableRipple": "disableRipple"; "color": "color"; "tabIndex": "tabIndex"; "extended": "extended"; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd]"]>;
68
68
  }
69
69
  /**
70
70
  * Material Design mini floating action button (FAB) component for anchor elements. Anchor elements
@@ -15,7 +15,7 @@ import * as i0 from "@angular/core";
15
15
  * See https://material.io/develop/web/components/buttons/icon-buttons/
16
16
  */
17
17
  export declare class MatIconButton extends MatButtonBase {
18
- _isRippleCentered: boolean;
18
+ _isIconButton: boolean;
19
19
  constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<MatIconButton, [null, null, null, { optional: true; }]>;
21
21
  static ɵcmp: i0.ɵɵComponentDeclaration<MatIconButton, "button[mat-icon-button]", ["matButton"], { "disabled": "disabled"; "disableRipple": "disableRipple"; "color": "color"; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd]"]>;
@@ -26,7 +26,7 @@ export declare class MatIconButton extends MatButtonBase {
26
26
  * See https://material.io/develop/web/components/buttons/icon-buttons/
27
27
  */
28
28
  export declare class MatIconAnchor extends MatAnchorBase {
29
- _isRippleCentered: boolean;
29
+ _isIconButton: boolean;
30
30
  constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, animationMode?: string);
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<MatIconAnchor, [null, null, null, { optional: true; }]>;
32
32
  static ɵcmp: i0.ɵɵComponentDeclaration<MatIconAnchor, "a[mat-icon-button]", ["matButton", "matAnchor"], { "disabled": "disabled"; "disableRipple": "disableRipple"; "color": "color"; "tabIndex": "tabIndex"; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd]"]>;