@angular/material 17.1.0-next.1 → 17.1.0-next.3

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 (386) hide show
  1. package/button/_button-base.scss +14 -2
  2. package/button/_button-theme.scss +11 -11
  3. package/button/_fab-theme.scss +1 -8
  4. package/button/index.d.ts +31 -2
  5. package/checkbox/_checkbox-theme.scss +5 -10
  6. package/checkbox/index.d.ts +28 -5
  7. package/core/index.d.ts +18 -2
  8. package/core/internal-form-field/_internal-form-field-theme.scss +37 -0
  9. package/core/tokens/m2/mat/_fab.scss +3 -0
  10. package/core/tokens/m2/mat/_filled-button.scss +3 -0
  11. package/core/tokens/m2/mat/_icon-button.scss +3 -0
  12. package/core/tokens/m2/mat/_outlined-button.scss +3 -0
  13. package/core/tokens/m2/mat/_protected-button.scss +3 -0
  14. package/core/tokens/m2/mat/_tab-header.scss +6 -1
  15. package/core/tokens/m2/mat/_text-button.scss +3 -0
  16. package/core/tokens/m2/mdc/_filled-button.scss +7 -6
  17. package/core/tokens/m2/mdc/_form-field.scss +46 -0
  18. package/core/tokens/m2/mdc/_outlined-button.scss +7 -7
  19. package/core/tokens/m2/mdc/_protected-button.scss +7 -6
  20. package/core/tokens/m2/mdc/_text-button.scss +7 -8
  21. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  22. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  23. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  24. package/esm2022/autocomplete/module.mjs +5 -5
  25. package/esm2022/autocomplete/testing/autocomplete-harness.mjs +1 -1
  26. package/esm2022/badge/badge-module.mjs +5 -5
  27. package/esm2022/badge/badge.mjs +4 -4
  28. package/esm2022/badge/testing/badge-harness.mjs +1 -1
  29. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  30. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  31. package/esm2022/bottom-sheet/bottom-sheet-ref.mjs +1 -1
  32. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  33. package/esm2022/button/button-base.mjs +46 -19
  34. package/esm2022/button/button.mjs +9 -9
  35. package/esm2022/button/fab.mjs +17 -17
  36. package/esm2022/button/icon-button.mjs +9 -9
  37. package/esm2022/button/module.mjs +5 -5
  38. package/esm2022/button/public-api.mjs +2 -1
  39. package/esm2022/button/testing/button-harness.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  41. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  42. package/esm2022/button-toggle/testing/button-toggle-harness.mjs +1 -1
  43. package/esm2022/card/card.mjs +43 -43
  44. package/esm2022/card/module.mjs +5 -5
  45. package/esm2022/checkbox/checkbox-required-validator.mjs +11 -5
  46. package/esm2022/checkbox/checkbox.mjs +39 -7
  47. package/esm2022/checkbox/module.mjs +16 -13
  48. package/esm2022/checkbox/testing/checkbox-harness.mjs +1 -1
  49. package/esm2022/chips/chip-action.mjs +4 -4
  50. package/esm2022/chips/chip-edit-input.mjs +4 -4
  51. package/esm2022/chips/chip-grid.mjs +4 -4
  52. package/esm2022/chips/chip-icons.mjs +10 -10
  53. package/esm2022/chips/chip-input.mjs +4 -4
  54. package/esm2022/chips/chip-listbox.mjs +4 -5
  55. package/esm2022/chips/chip-option.mjs +4 -4
  56. package/esm2022/chips/chip-row.mjs +4 -4
  57. package/esm2022/chips/chip-set.mjs +4 -4
  58. package/esm2022/chips/chip.mjs +5 -4
  59. package/esm2022/chips/module.mjs +5 -5
  60. package/esm2022/chips/testing/chip-edit-input-harness.mjs +1 -1
  61. package/esm2022/chips/testing/chip-input-harness.mjs +1 -1
  62. package/esm2022/chips/testing/chip-listbox-harness.mjs +1 -1
  63. package/esm2022/chips/testing/chip-option-harness.mjs +1 -1
  64. package/esm2022/chips/testing/chip-row-harness.mjs +1 -1
  65. package/esm2022/core/common-behaviors/color.mjs +1 -1
  66. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  67. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  68. package/esm2022/core/common-behaviors/initialized.mjs +1 -1
  69. package/esm2022/core/datetime/date-adapter.mjs +1 -1
  70. package/esm2022/core/datetime/index.mjs +9 -9
  71. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  72. package/esm2022/core/error/error-options.mjs +7 -7
  73. package/esm2022/core/internal-form-field/internal-form-field.mjs +29 -0
  74. package/esm2022/core/line/line.mjs +8 -8
  75. package/esm2022/core/option/index.mjs +5 -5
  76. package/esm2022/core/option/optgroup.mjs +4 -4
  77. package/esm2022/core/option/option.mjs +4 -4
  78. package/esm2022/core/private/ripple-loader.mjs +30 -12
  79. package/esm2022/core/public-api.mjs +2 -1
  80. package/esm2022/core/ripple/index.mjs +5 -5
  81. package/esm2022/core/ripple/ripple-event-manager.mjs +1 -1
  82. package/esm2022/core/ripple/ripple-renderer.mjs +1 -1
  83. package/esm2022/core/ripple/ripple.mjs +4 -4
  84. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  85. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  86. package/esm2022/core/version.mjs +1 -1
  87. package/esm2022/datepicker/aria-accessible-name.mjs +1 -1
  88. package/esm2022/datepicker/calendar-body.mjs +4 -4
  89. package/esm2022/datepicker/calendar.mjs +7 -7
  90. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  91. package/esm2022/datepicker/date-range-input.mjs +4 -4
  92. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  93. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  94. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  95. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  96. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  97. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  98. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  99. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  100. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  101. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  102. package/esm2022/datepicker/datepicker.mjs +4 -4
  103. package/esm2022/datepicker/month-view.mjs +4 -4
  104. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  105. package/esm2022/datepicker/testing/calendar-harness.mjs +1 -1
  106. package/esm2022/datepicker/testing/datepicker-input-harness-base.mjs +1 -1
  107. package/esm2022/datepicker/testing/datepicker-input-harness.mjs +1 -1
  108. package/esm2022/datepicker/testing/datepicker-trigger-harness-base.mjs +1 -1
  109. package/esm2022/datepicker/year-view.mjs +4 -4
  110. package/esm2022/dialog/dialog-container.mjs +4 -4
  111. package/esm2022/dialog/dialog-content-directives.mjs +13 -13
  112. package/esm2022/dialog/dialog-ref.mjs +1 -1
  113. package/esm2022/dialog/dialog.mjs +4 -4
  114. package/esm2022/dialog/module.mjs +5 -5
  115. package/esm2022/dialog/testing/dialog-opener.mjs +1 -1
  116. package/esm2022/divider/divider-module.mjs +5 -5
  117. package/esm2022/divider/divider.mjs +4 -4
  118. package/esm2022/expansion/accordion.mjs +4 -4
  119. package/esm2022/expansion/expansion-module.mjs +5 -5
  120. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  121. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  122. package/esm2022/expansion/expansion-panel.mjs +7 -7
  123. package/esm2022/expansion/testing/expansion-harness.mjs +1 -1
  124. package/esm2022/form-field/directives/error.mjs +4 -4
  125. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  126. package/esm2022/form-field/directives/hint.mjs +4 -4
  127. package/esm2022/form-field/directives/label.mjs +4 -4
  128. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  129. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  130. package/esm2022/form-field/directives/prefix.mjs +4 -4
  131. package/esm2022/form-field/directives/suffix.mjs +4 -4
  132. package/esm2022/form-field/form-field-control.mjs +4 -4
  133. package/esm2022/form-field/form-field.mjs +4 -4
  134. package/esm2022/form-field/module.mjs +5 -5
  135. package/esm2022/form-field/testing/form-field-harness.mjs +1 -1
  136. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  137. package/esm2022/grid-list/grid-list.mjs +4 -4
  138. package/esm2022/grid-list/grid-tile.mjs +16 -16
  139. package/esm2022/grid-list/testing/grid-list-harness.mjs +1 -1
  140. package/esm2022/grid-list/tile-coordinator.mjs +1 -1
  141. package/esm2022/grid-list/tile-styler.mjs +1 -1
  142. package/esm2022/icon/icon-module.mjs +5 -5
  143. package/esm2022/icon/icon-registry.mjs +4 -4
  144. package/esm2022/icon/icon.mjs +4 -4
  145. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  146. package/esm2022/icon/testing/icon-harness.mjs +1 -1
  147. package/esm2022/icon/trusted-types.mjs +1 -1
  148. package/esm2022/input/input.mjs +4 -4
  149. package/esm2022/input/module.mjs +5 -5
  150. package/esm2022/input/testing/input-harness.mjs +1 -1
  151. package/esm2022/input/testing/native-select-harness.mjs +1 -1
  152. package/esm2022/list/action-list.mjs +4 -4
  153. package/esm2022/list/list-base.mjs +7 -7
  154. package/esm2022/list/list-item-sections.mjs +19 -19
  155. package/esm2022/list/list-module.mjs +5 -5
  156. package/esm2022/list/list-option.mjs +4 -4
  157. package/esm2022/list/list.mjs +7 -7
  158. package/esm2022/list/nav-list.mjs +4 -4
  159. package/esm2022/list/selection-list.mjs +4 -4
  160. package/esm2022/list/subheader.mjs +4 -4
  161. package/esm2022/list/testing/list-harness-base.mjs +1 -1
  162. package/esm2022/list/testing/list-item-harness-base.mjs +1 -1
  163. package/esm2022/list/testing/selection-list-harness.mjs +1 -1
  164. package/esm2022/menu/menu-content.mjs +4 -4
  165. package/esm2022/menu/menu-item.mjs +4 -4
  166. package/esm2022/menu/menu-trigger.mjs +4 -4
  167. package/esm2022/menu/menu.mjs +4 -4
  168. package/esm2022/menu/module.mjs +5 -5
  169. package/esm2022/menu/testing/menu-harness.mjs +1 -1
  170. package/esm2022/paginator/module.mjs +5 -5
  171. package/esm2022/paginator/paginator-intl.mjs +4 -4
  172. package/esm2022/paginator/paginator.mjs +4 -4
  173. package/esm2022/paginator/testing/paginator-harness.mjs +1 -1
  174. package/esm2022/progress-bar/module.mjs +5 -5
  175. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  176. package/esm2022/progress-spinner/module.mjs +5 -5
  177. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  178. package/esm2022/radio/module.mjs +5 -5
  179. package/esm2022/radio/radio.mjs +12 -9
  180. package/esm2022/radio/testing/radio-harness.mjs +1 -1
  181. package/esm2022/select/module.mjs +5 -5
  182. package/esm2022/select/select.mjs +7 -7
  183. package/esm2022/select/testing/select-harness.mjs +1 -1
  184. package/esm2022/sidenav/drawer.mjs +10 -10
  185. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  186. package/esm2022/sidenav/sidenav.mjs +10 -10
  187. package/esm2022/sidenav/testing/drawer-harness.mjs +1 -1
  188. package/esm2022/slide-toggle/module.mjs +16 -22
  189. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +11 -4
  190. package/esm2022/slide-toggle/slide-toggle.mjs +39 -8
  191. package/esm2022/slide-toggle/testing/slide-toggle-harness.mjs +1 -1
  192. package/esm2022/slider/module.mjs +5 -5
  193. package/esm2022/slider/slider-input.mjs +9 -8
  194. package/esm2022/slider/slider-thumb.mjs +4 -4
  195. package/esm2022/slider/slider.mjs +6 -6
  196. package/esm2022/slider/testing/slider-harness.mjs +1 -1
  197. package/esm2022/snack-bar/module.mjs +5 -5
  198. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  199. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  200. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  201. package/esm2022/snack-bar/snack-bar-ref.mjs +1 -1
  202. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  203. package/esm2022/snack-bar/testing/snack-bar-harness.mjs +1 -1
  204. package/esm2022/sort/sort-header-intl.mjs +4 -4
  205. package/esm2022/sort/sort-header.mjs +4 -4
  206. package/esm2022/sort/sort-module.mjs +5 -5
  207. package/esm2022/sort/sort.mjs +4 -4
  208. package/esm2022/sort/testing/sort-harness.mjs +1 -1
  209. package/esm2022/sort/testing/sort-header-harness.mjs +1 -1
  210. package/esm2022/stepper/step-content.mjs +4 -4
  211. package/esm2022/stepper/step-header.mjs +4 -4
  212. package/esm2022/stepper/step-label.mjs +4 -4
  213. package/esm2022/stepper/stepper-button.mjs +7 -7
  214. package/esm2022/stepper/stepper-icon.mjs +4 -4
  215. package/esm2022/stepper/stepper-intl.mjs +4 -4
  216. package/esm2022/stepper/stepper-module.mjs +5 -5
  217. package/esm2022/stepper/stepper.mjs +7 -7
  218. package/esm2022/stepper/testing/step-harness.mjs +1 -1
  219. package/esm2022/stepper/testing/stepper-harness.mjs +1 -1
  220. package/esm2022/table/cell.mjs +22 -22
  221. package/esm2022/table/module.mjs +5 -5
  222. package/esm2022/table/row.mjs +22 -22
  223. package/esm2022/table/table-data-source.mjs +1 -1
  224. package/esm2022/table/table.mjs +7 -7
  225. package/esm2022/table/testing/cell-harness.mjs +1 -1
  226. package/esm2022/table/testing/table-harness.mjs +1 -1
  227. package/esm2022/table/text-column.mjs +4 -4
  228. package/esm2022/tabs/ink-bar.mjs +1 -1
  229. package/esm2022/tabs/module.mjs +5 -5
  230. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  231. package/esm2022/tabs/tab-body.mjs +7 -7
  232. package/esm2022/tabs/tab-content.mjs +4 -4
  233. package/esm2022/tabs/tab-group.mjs +14 -5
  234. package/esm2022/tabs/tab-header.mjs +5 -5
  235. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  236. package/esm2022/tabs/tab-label.mjs +4 -4
  237. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +11 -11
  238. package/esm2022/tabs/tab.mjs +4 -4
  239. package/esm2022/tabs/testing/tab-group-harness.mjs +1 -1
  240. package/esm2022/tabs/testing/tab-nav-bar-harness.mjs +1 -1
  241. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  242. package/esm2022/toolbar/toolbar.mjs +7 -7
  243. package/esm2022/tooltip/module.mjs +5 -5
  244. package/esm2022/tooltip/tooltip.mjs +7 -7
  245. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  246. package/esm2022/tree/node.mjs +10 -10
  247. package/esm2022/tree/outlet.mjs +4 -4
  248. package/esm2022/tree/padding.mjs +4 -4
  249. package/esm2022/tree/testing/node-harness.mjs +1 -1
  250. package/esm2022/tree/testing/tree-harness.mjs +1 -1
  251. package/esm2022/tree/toggle.mjs +4 -4
  252. package/esm2022/tree/tree-module.mjs +5 -5
  253. package/esm2022/tree/tree.mjs +4 -4
  254. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  255. package/fesm2022/autocomplete.mjs +13 -13
  256. package/fesm2022/autocomplete.mjs.map +1 -1
  257. package/fesm2022/badge/testing.mjs.map +1 -1
  258. package/fesm2022/badge.mjs +7 -7
  259. package/fesm2022/badge.mjs.map +1 -1
  260. package/fesm2022/bottom-sheet.mjs +10 -10
  261. package/fesm2022/bottom-sheet.mjs.map +1 -1
  262. package/fesm2022/button/testing.mjs +3 -2
  263. package/fesm2022/button/testing.mjs.map +1 -1
  264. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  265. package/fesm2022/button-toggle.mjs +10 -10
  266. package/fesm2022/button-toggle.mjs.map +1 -1
  267. package/fesm2022/button.mjs +82 -55
  268. package/fesm2022/button.mjs.map +1 -1
  269. package/fesm2022/card.mjs +46 -46
  270. package/fesm2022/card.mjs.map +1 -1
  271. package/fesm2022/checkbox/testing.mjs.map +1 -1
  272. package/fesm2022/checkbox.mjs +61 -20
  273. package/fesm2022/checkbox.mjs.map +1 -1
  274. package/fesm2022/chips/testing.mjs.map +1 -1
  275. package/fesm2022/chips.mjs +41 -41
  276. package/fesm2022/chips.mjs.map +1 -1
  277. package/fesm2022/core.mjs +103 -65
  278. package/fesm2022/core.mjs.map +1 -1
  279. package/fesm2022/datepicker/testing.mjs.map +1 -1
  280. package/fesm2022/datepicker.mjs +82 -82
  281. package/fesm2022/datepicker.mjs.map +1 -1
  282. package/fesm2022/dialog/testing.mjs.map +1 -1
  283. package/fesm2022/dialog.mjs +22 -22
  284. package/fesm2022/dialog.mjs.map +1 -1
  285. package/fesm2022/divider.mjs +7 -7
  286. package/fesm2022/divider.mjs.map +1 -1
  287. package/fesm2022/expansion/testing.mjs.map +1 -1
  288. package/fesm2022/expansion.mjs +25 -25
  289. package/fesm2022/expansion.mjs.map +1 -1
  290. package/fesm2022/form-field/testing.mjs.map +1 -1
  291. package/fesm2022/form-field.mjs +34 -34
  292. package/fesm2022/form-field.mjs.map +1 -1
  293. package/fesm2022/grid-list/testing.mjs.map +1 -1
  294. package/fesm2022/grid-list.mjs +22 -22
  295. package/fesm2022/grid-list.mjs.map +1 -1
  296. package/fesm2022/icon/testing.mjs +7 -7
  297. package/fesm2022/icon/testing.mjs.map +1 -1
  298. package/fesm2022/icon.mjs +10 -10
  299. package/fesm2022/icon.mjs.map +1 -1
  300. package/fesm2022/input/testing.mjs.map +1 -1
  301. package/fesm2022/input.mjs +7 -7
  302. package/fesm2022/input.mjs.map +1 -1
  303. package/fesm2022/list/testing.mjs.map +1 -1
  304. package/fesm2022/list.mjs +49 -49
  305. package/fesm2022/list.mjs.map +1 -1
  306. package/fesm2022/menu/testing.mjs.map +1 -1
  307. package/fesm2022/menu.mjs +16 -16
  308. package/fesm2022/menu.mjs.map +1 -1
  309. package/fesm2022/paginator/testing.mjs.map +1 -1
  310. package/fesm2022/paginator.mjs +10 -10
  311. package/fesm2022/paginator.mjs.map +1 -1
  312. package/fesm2022/progress-bar.mjs +7 -7
  313. package/fesm2022/progress-bar.mjs.map +1 -1
  314. package/fesm2022/progress-spinner.mjs +7 -7
  315. package/fesm2022/progress-spinner.mjs.map +1 -1
  316. package/fesm2022/radio/testing.mjs.map +1 -1
  317. package/fesm2022/radio.mjs +16 -13
  318. package/fesm2022/radio.mjs.map +1 -1
  319. package/fesm2022/select/testing.mjs.map +1 -1
  320. package/fesm2022/select.mjs +10 -10
  321. package/fesm2022/select.mjs.map +1 -1
  322. package/fesm2022/sidenav/testing.mjs.map +1 -1
  323. package/fesm2022/sidenav.mjs +22 -22
  324. package/fesm2022/sidenav.mjs.map +1 -1
  325. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  326. package/fesm2022/slide-toggle.mjs +61 -29
  327. package/fesm2022/slide-toggle.mjs.map +1 -1
  328. package/fesm2022/slider/testing.mjs.map +1 -1
  329. package/fesm2022/slider.mjs +20 -19
  330. package/fesm2022/slider.mjs.map +1 -1
  331. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  332. package/fesm2022/snack-bar.mjs +22 -22
  333. package/fesm2022/snack-bar.mjs.map +1 -1
  334. package/fesm2022/sort/testing.mjs.map +1 -1
  335. package/fesm2022/sort.mjs +13 -13
  336. package/fesm2022/sort.mjs.map +1 -1
  337. package/fesm2022/stepper/testing.mjs.map +1 -1
  338. package/fesm2022/stepper.mjs +31 -31
  339. package/fesm2022/stepper.mjs.map +1 -1
  340. package/fesm2022/table/testing.mjs.map +1 -1
  341. package/fesm2022/table.mjs +55 -55
  342. package/fesm2022/table.mjs.map +1 -1
  343. package/fesm2022/tabs/testing.mjs.map +1 -1
  344. package/fesm2022/tabs.mjs +52 -43
  345. package/fesm2022/tabs.mjs.map +1 -1
  346. package/fesm2022/toolbar.mjs +10 -10
  347. package/fesm2022/toolbar.mjs.map +1 -1
  348. package/fesm2022/tooltip.mjs +10 -10
  349. package/fesm2022/tooltip.mjs.map +1 -1
  350. package/fesm2022/tree/testing.mjs.map +1 -1
  351. package/fesm2022/tree.mjs +25 -25
  352. package/fesm2022/tree.mjs.map +1 -1
  353. package/package.json +2 -2
  354. package/prebuilt-themes/deeppurple-amber.css +1 -1
  355. package/prebuilt-themes/indigo-pink.css +1 -1
  356. package/prebuilt-themes/pink-bluegrey.css +1 -1
  357. package/prebuilt-themes/purple-green.css +1 -1
  358. package/radio/_radio-theme.scss +5 -10
  359. package/radio/index.d.ts +2 -0
  360. package/schematics/ng-add/fonts/material-fonts.js +1 -1
  361. package/schematics/ng-add/fonts/material-fonts.mjs +1 -1
  362. package/schematics/ng-add/index.js +2 -2
  363. package/schematics/ng-add/index.mjs +2 -2
  364. package/schematics/ng-add/package-config.js +1 -1
  365. package/schematics/ng-add/package-config.mjs +1 -1
  366. package/schematics/ng-add/setup-project.js +1 -1
  367. package/schematics/ng-add/setup-project.mjs +1 -1
  368. package/schematics/ng-add/theming/theming.js +1 -1
  369. package/schematics/ng-add/theming/theming.mjs +1 -1
  370. package/schematics/ng-generate/address-form/index.js +1 -1
  371. package/schematics/ng-generate/address-form/index.mjs +1 -1
  372. package/schematics/ng-generate/dashboard/index.js +1 -1
  373. package/schematics/ng-generate/dashboard/index.mjs +1 -1
  374. package/schematics/ng-generate/mdc-migration/index_bundled.js +202 -193
  375. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  376. package/schematics/ng-generate/navigation/index.js +1 -1
  377. package/schematics/ng-generate/navigation/index.mjs +1 -1
  378. package/schematics/ng-generate/table/index.js +1 -1
  379. package/schematics/ng-generate/table/index.mjs +1 -1
  380. package/schematics/ng-generate/tree/index.js +1 -1
  381. package/schematics/ng-generate/tree/index.mjs +1 -1
  382. package/schematics/ng-update/index_bundled.js.map +1 -1
  383. package/slide-toggle/_slide-toggle-theme.scss +5 -4
  384. package/slide-toggle/index.d.ts +30 -6
  385. package/tabs/_tabs-common.scss +20 -1
  386. package/tabs/index.d.ts +5 -1
@@ -68,12 +68,17 @@
68
68
  @include token-utils.create-token-slot(background-color, state-layer-color);
69
69
  }
70
70
 
71
+ &.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before {
72
+ @include token-utils.create-token-slot(background-color, disabled-state-layer-color);
73
+ }
74
+
71
75
  &:hover .mat-mdc-button-persistent-ripple::before {
72
76
  @include token-utils.create-token-slot(opacity, hover-state-layer-opacity);
73
77
  }
74
78
 
75
79
  &.cdk-program-focused,
76
- &.cdk-keyboard-focused {
80
+ &.cdk-keyboard-focused,
81
+ &.mat-mdc-button-disabled-interactive:focus {
77
82
  .mat-mdc-button-persistent-ripple::before {
78
83
  @include token-utils.create-token-slot(opacity, focus-state-layer-opacity);
79
84
  }
@@ -91,11 +96,18 @@
91
96
  // and note that having pointer-events may have unintended side-effects, e.g. allowing the user
92
97
  // to click the target underneath the button.
93
98
  @mixin mat-private-button-disabled() {
94
- &[disabled] {
99
+ // `[disabled]` shouldn't be necessary, but we keep it to maintain
100
+ // compatibility with apps setting it through host bindings.
101
+ &[disabled],
102
+ &.mat-mdc-button-disabled {
95
103
  cursor: default;
96
104
  pointer-events: none;
97
105
  @content;
98
106
  }
107
+
108
+ &.mat-mdc-button-disabled-interactive {
109
+ pointer-events: auto;
110
+ }
99
111
  }
100
112
 
101
113
  // Hides the touch target on lower densities.
@@ -1,4 +1,3 @@
1
- @use '@material/button/button' as mdc-button;
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;
@@ -19,7 +18,7 @@
19
18
  @use '../core/tokens/m2/mat/protected-button' as tokens-mat-protected-button;
20
19
  @use '../core/tokens/m2/mdc/text-button' as tokens-mdc-text-button;
21
20
  @use '../core/tokens/m2/mat/text-button' as tokens-mat-text-button;
22
-
21
+ @use '../core/style/sass-utils';
23
22
 
24
23
  @mixin _text-button-variant($theme, $palette) {
25
24
  $mdc-tokens: if($palette,
@@ -165,15 +164,16 @@
165
164
  }
166
165
 
167
166
  @mixin typography($theme) {
168
- @include mdc-helpers.using-mdc-typography($theme) {
169
- @include mdc-button.without-ripple($query: mdc-helpers.$mdc-typography-styles-query);
170
- }
171
-
172
- .mat-mdc-button,
173
- .mat-mdc-raised-button,
174
- .mat-mdc-outlined-button,
175
- .mat-mdc-unelevated-button {
176
- line-height: inherit;
167
+ @include sass-utils.current-selector-or-root() {
168
+ $text-typography-tokens: tokens-mdc-text-button.get-typography-tokens($theme);
169
+ $filled-typography-tokens: tokens-mdc-filled-button.get-typography-tokens($theme);
170
+ $outlined-typography-tokens: tokens-mdc-outlined-button.get-typography-tokens($theme);
171
+ $protected-typography-tokens: tokens-mdc-protected-button.get-typography-tokens($theme);
172
+
173
+ @include mdc-button-text-theme.theme($text-typography-tokens);
174
+ @include mdc-button-filled-theme.theme($filled-typography-tokens);
175
+ @include mdc-button-outlined-theme.theme($outlined-typography-tokens);
176
+ @include mdc-button-protected-theme.theme($protected-typography-tokens);
177
177
  }
178
178
  }
179
179
 
@@ -1,8 +1,6 @@
1
1
  @use 'sass:map';
2
- @use '@material/fab/fab' as mdc-fab;
3
2
  @use '@material/fab/fab-theme' as mdc-fab-theme;
4
3
  @use '@material/fab/extended-fab-theme' as mdc-extended-fab-theme;
5
- @use '../core/mdc-helpers/mdc-helpers';
6
4
  @use '../core/style/sass-utils';
7
5
  @use '../core/theming/theming';
8
6
  @use '../core/theming/inspection';
@@ -73,13 +71,8 @@
73
71
  @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
74
72
  }
75
73
  @else {
76
- @include mdc-helpers.using-mdc-typography($theme) {
77
- @include mdc-fab.without-ripple($query: mdc-helpers.$mdc-typography-styles-query);
78
- }
79
-
80
- $typography-tokens: tokens-mdc-extended-fab.get-typography-tokens($theme);
81
74
  @include sass-utils.current-selector-or-root() {
82
- @include mdc-extended-fab-theme.theme($typography-tokens);
75
+ @include mdc-extended-fab-theme.theme(tokens-mdc-extended-fab.get-typography-tokens($theme));
83
76
  }
84
77
  }
85
78
  }
package/button/index.d.ts CHANGED
@@ -38,6 +38,9 @@ declare namespace i4 {
38
38
  }
39
39
  }
40
40
 
41
+ /** Injection token that can be used to provide the default options the button component. */
42
+ export declare const MAT_BUTTON_CONFIG: InjectionToken<MatButtonConfig>;
43
+
41
44
  /** Injection token to be used to override the default options for FAB. */
42
45
  export declare const MAT_FAB_DEFAULT_OPTIONS: InjectionToken<MatFabDefaultOptions>;
43
46
 
@@ -69,6 +72,7 @@ declare class MatAnchorBase extends MatButtonBase implements OnInit, OnDestroy {
69
72
  ngOnInit(): void;
70
73
  ngOnDestroy(): void;
71
74
  _haltDisabledEvents: (event: Event) => void;
75
+ protected _getAriaDisabled(): boolean;
72
76
  static ɵfac: i0.ɵɵFactoryDeclaration<MatAnchorBase, never>;
73
77
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatAnchorBase, never, never, { "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, false, never>;
74
78
  static ngAcceptInputType_tabIndex: unknown;
@@ -116,19 +120,44 @@ declare class MatButtonBase implements AfterViewInit, OnDestroy {
116
120
  get disableRipple(): boolean;
117
121
  set disableRipple(value: any);
118
122
  private _disableRipple;
123
+ /** Whether the button is disabled. */
119
124
  get disabled(): boolean;
120
125
  set disabled(value: any);
121
126
  private _disabled;
127
+ /** `aria-disabled` value of the button. */
128
+ ariaDisabled: boolean | undefined;
129
+ /**
130
+ * Natively disabled buttons prevent focus and any pointer events from reaching the button.
131
+ * In some scenarios this might not be desirable, because it can prevent users from finding out
132
+ * why the button is disabled (e.g. via tooltip).
133
+ *
134
+ * Enabling this input will change the button so that it is styled to be disabled and will be
135
+ * marked as `aria-disabled`, but it will allow the button to receive events and focus.
136
+ *
137
+ * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't
138
+ * meant to be tabbable and you have to prevent the button action (e.g. form submissions).
139
+ */
140
+ disabledInteractive: boolean;
122
141
  constructor(_elementRef: ElementRef, _platform: Platform, _ngZone: NgZone, _animationMode?: string | undefined);
123
142
  ngAfterViewInit(): void;
124
143
  ngOnDestroy(): void;
125
144
  /** Focuses the button. */
126
- focus(_origin?: FocusOrigin, options?: FocusOptions): void;
145
+ focus(origin?: FocusOrigin, options?: FocusOptions): void;
146
+ protected _getAriaDisabled(): boolean | null;
147
+ protected _getDisabledAttribute(): true | null;
127
148
  private _updateRippleDisabled;
128
149
  static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonBase, never>;
129
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatButtonBase, never, never, { "color": { "alias": "color"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
150
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatButtonBase, never, never, { "color": { "alias": "color"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "disabledInteractive": { "alias": "disabledInteractive"; "required": false; }; }, {}, never, never, false, never>;
130
151
  static ngAcceptInputType_disableRipple: unknown;
131
152
  static ngAcceptInputType_disabled: unknown;
153
+ static ngAcceptInputType_ariaDisabled: unknown;
154
+ static ngAcceptInputType_disabledInteractive: unknown;
155
+ }
156
+
157
+ /** Object that can be used to configure the default options for the button component. */
158
+ export declare interface MatButtonConfig {
159
+ /** Whether disabled buttons should be interactive. */
160
+ disabledInteractive?: boolean;
132
161
  }
133
162
 
134
163
  export declare class MatButtonModule {
@@ -1,12 +1,13 @@
1
1
  @use 'sass:map';
2
2
  @use '@material/checkbox/checkbox-theme' as mdc-checkbox-theme;
3
- @use '@material/form-field' as mdc-form-field;
3
+ @use '@material/form-field/form-field-theme' as mdc-form-field-theme;
4
4
  @use '../core/style/sass-utils';
5
5
  @use '../core/theming/theming';
6
6
  @use '../core/theming/inspection';
7
7
  @use '../core/typography/typography';
8
8
  @use '../core/mdc-helpers/mdc-helpers';
9
9
  @use '../core/tokens/m2/mdc/checkbox' as tokens-mdc-checkbox;
10
+ @use '../core/tokens/m2/mdc/form-field' as tokens-mdc-form-field;
10
11
 
11
12
  @mixin base($theme) {
12
13
  @if inspection.get-theme-version($theme) == 1 {
@@ -29,6 +30,8 @@
29
30
  }
30
31
 
31
32
  .mat-mdc-checkbox {
33
+ @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-color-tokens($theme));
34
+
32
35
  &.mat-primary {
33
36
  @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-color-tokens($theme, primary));
34
37
  }
@@ -37,11 +40,6 @@
37
40
  @include mdc-checkbox-theme.theme(tokens-mdc-checkbox.get-color-tokens($theme, warn));
38
41
  }
39
42
 
40
- @include mdc-helpers.using-mdc-theme($theme) {
41
- // TODO(mmalerba): Switch to static-styles, theme-styles, and theme once they're available.
42
- @include mdc-form-field.core-styles($query: mdc-helpers.$mdc-theme-styles-query);
43
- }
44
-
45
43
  &.mat-mdc-checkbox-disabled label {
46
44
  // MDC should set the disabled color on the label, but doesn't, so we do it here instead.
47
45
  color: inspection.get-theme-color($theme, foreground, disabled-text);
@@ -60,10 +58,7 @@
60
58
  }
61
59
 
62
60
  .mat-mdc-checkbox {
63
- @include mdc-helpers.using-mdc-typography($theme) {
64
- // TODO(mmalerba): Switch to static-styles, theme-styles, and theme once they're available.
65
- @include mdc-form-field.core-styles($query: mdc-helpers.$mdc-typography-styles-query);
66
- }
61
+ @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-typography-tokens($theme));
67
62
  }
68
63
  }
69
64
  }
@@ -1,3 +1,4 @@
1
+ import { AbstractControl } from '@angular/forms';
1
2
  import { AfterViewInit } from '@angular/core';
2
3
  import { ChangeDetectorRef } from '@angular/core';
3
4
  import { CheckboxRequiredValidator } from '@angular/forms';
@@ -6,12 +7,16 @@ import { ElementRef } from '@angular/core';
6
7
  import { EventEmitter } from '@angular/core';
7
8
  import { FocusableOption } from '@angular/cdk/a11y';
8
9
  import * as i0 from '@angular/core';
9
- import * as i2 from '@angular/material/core';
10
+ import * as i3 from '@angular/material/core';
10
11
  import { InjectionToken } from '@angular/core';
11
12
  import { MatRipple } from '@angular/material/core';
12
13
  import { NgZone } from '@angular/core';
14
+ import { OnChanges } from '@angular/core';
13
15
  import { Provider } from '@angular/core';
16
+ import { SimpleChanges } from '@angular/core';
14
17
  import { ThemePalette } from '@angular/material/core';
18
+ import { ValidationErrors } from '@angular/forms';
19
+ import { Validator } from '@angular/forms';
15
20
 
16
21
  declare namespace i1 {
17
22
  export {
@@ -20,7 +25,7 @@ declare namespace i1 {
20
25
  }
21
26
  }
22
27
 
23
- declare namespace i3 {
28
+ declare namespace i2 {
24
29
  export {
25
30
  TransitionCheckState,
26
31
  MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR,
@@ -29,6 +34,10 @@ declare namespace i3 {
29
34
  }
30
35
  }
31
36
 
37
+ /**
38
+ * @deprecated Will stop being exported.
39
+ * @breaking-change 19.0.0
40
+ */
32
41
  export declare const MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR: any;
33
42
 
34
43
  /** Injection token to be used to override the default options for `mat-checkbox`. */
@@ -37,9 +46,13 @@ export declare const MAT_CHECKBOX_DEFAULT_OPTIONS: InjectionToken<MatCheckboxDef
37
46
  /** @docs-private */
38
47
  export declare function MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY(): MatCheckboxDefaultOptions;
39
48
 
49
+ /**
50
+ * @deprecated No longer used, `MatCheckbox` implements required validation directly.
51
+ * @breaking-change 19.0.0
52
+ */
40
53
  export declare const MAT_CHECKBOX_REQUIRED_VALIDATOR: Provider;
41
54
 
42
- export declare class MatCheckbox implements AfterViewInit, ControlValueAccessor, FocusableOption {
55
+ export declare class MatCheckbox implements AfterViewInit, OnChanges, ControlValueAccessor, Validator, FocusableOption {
43
56
  _elementRef: ElementRef<HTMLElement>;
44
57
  private _changeDetectorRef;
45
58
  private _ngZone;
@@ -112,7 +125,9 @@ export declare class MatCheckbox implements AfterViewInit, ControlValueAccessor,
112
125
  private _currentAnimationClass;
113
126
  private _currentCheckState;
114
127
  private _controlValueAccessorChangeFn;
128
+ private _validatorChangeFn;
115
129
  constructor(_elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, tabIndex: string, _animationMode?: string | undefined, _options?: MatCheckboxDefaultOptions | undefined);
130
+ ngOnChanges(changes: SimpleChanges): void;
116
131
  ngAfterViewInit(): void;
117
132
  /** Whether the checkbox is checked. */
118
133
  get checked(): boolean;
@@ -138,6 +153,8 @@ export declare class MatCheckbox implements AfterViewInit, ControlValueAccessor,
138
153
  registerOnChange(fn: (value: any) => void): void;
139
154
  registerOnTouched(fn: any): void;
140
155
  setDisabledState(isDisabled: boolean): void;
156
+ validate(control: AbstractControl<boolean>): ValidationErrors | null;
157
+ registerOnValidatorChange(fn: () => void): void;
141
158
  private _transitionCheckState;
142
159
  private _emitChangeEvent;
143
160
  /** Toggles the `checked` state of the checkbox. */
@@ -202,7 +219,7 @@ export declare interface MatCheckboxDefaultOptions {
202
219
 
203
220
  export declare class MatCheckboxModule {
204
221
  static ɵfac: i0.ɵɵFactoryDeclaration<MatCheckboxModule, never>;
205
- static ɵmod: i0.ɵɵNgModuleDeclaration<MatCheckboxModule, never, [typeof i2.MatCommonModule, typeof i2.MatRippleModule, typeof _MatCheckboxRequiredValidatorModule, typeof i3.MatCheckbox], [typeof i3.MatCheckbox, typeof i2.MatCommonModule, typeof _MatCheckboxRequiredValidatorModule]>;
222
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatCheckboxModule, never, [typeof i2.MatCheckbox, typeof i3.MatCommonModule], [typeof i2.MatCheckbox, typeof i3.MatCommonModule]>;
206
223
  static ɵinj: i0.ɵɵInjectorDeclaration<MatCheckboxModule>;
207
224
  }
208
225
 
@@ -210,13 +227,19 @@ export declare class MatCheckboxModule {
210
227
  * Validator for Material checkbox's required attribute in template-driven checkbox.
211
228
  * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not
212
229
  * work with `mat-checkbox`.
230
+ *
231
+ * @deprecated No longer used, `MatCheckbox` implements required validation directly.
232
+ * @breaking-change 19.0.0
213
233
  */
214
234
  export declare class MatCheckboxRequiredValidator extends CheckboxRequiredValidator {
215
235
  static ɵfac: i0.ɵɵFactoryDeclaration<MatCheckboxRequiredValidator, never>;
216
236
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatCheckboxRequiredValidator, "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]", never, {}, {}, never, never, true, never>;
217
237
  }
218
238
 
219
- /** This module is used by both original and MDC-based checkbox implementations. */
239
+ /**
240
+ * @deprecated No longer used, `MatCheckbox` implements required validation directly.
241
+ * @breaking-change 19.0.0
242
+ */
220
243
  export declare class _MatCheckboxRequiredValidatorModule {
221
244
  static ɵfac: i0.ɵɵFactoryDeclaration<_MatCheckboxRequiredValidatorModule, never>;
222
245
  static ɵmod: i0.ɵɵNgModuleDeclaration<_MatCheckboxRequiredValidatorModule, never, [typeof i1.MatCheckboxRequiredValidator], [typeof i1.MatCheckboxRequiredValidator]>;
package/core/index.d.ts CHANGED
@@ -519,6 +519,18 @@ export declare const MATERIAL_SANITY_CHECKS: InjectionToken<SanityChecks>;
519
519
  /** @docs-private */
520
520
  declare function MATERIAL_SANITY_CHECKS_FACTORY(): SanityChecks;
521
521
 
522
+ /**
523
+ * Internal shared component used as a container in form field controls.
524
+ * Not to be confused with `mat-form-field` which MDC calls a "text field".
525
+ * @docs-private
526
+ */
527
+ export declare class _MatInternalFormField {
528
+ /** Position of the label relative to the content. */
529
+ labelPosition: 'before' | 'after';
530
+ static ɵfac: i0.ɵɵFactoryDeclaration<_MatInternalFormField, never>;
531
+ static ɵcmp: i0.ɵɵComponentDeclaration<_MatInternalFormField, "div[mat-internal-form-field]", never, { "labelPosition": { "alias": "labelPosition"; "required": true; }; }, {}, never, ["*"], true, never>;
532
+ }
533
+
522
534
  /**
523
535
  * Shared directive to count lines inside a text area, such as a list item.
524
536
  * Line elements can be extracted with a @ContentChildren(MatLine) query, then
@@ -803,6 +815,8 @@ export declare class MatRipple implements OnInit, OnDestroy, RippleTarget {
803
815
  *
804
816
  * This service allows us to avoid eagerly creating & attaching MatRipples.
805
817
  * It works by creating & attaching a ripple only when a component is first interacted with.
818
+ *
819
+ * @docs-private
806
820
  */
807
821
  export declare class MatRippleLoader implements OnDestroy {
808
822
  private _document;
@@ -810,6 +824,7 @@ export declare class MatRippleLoader implements OnDestroy {
810
824
  private _globalRippleOptions;
811
825
  private _platform;
812
826
  private _ngZone;
827
+ private _hosts;
813
828
  constructor();
814
829
  ngOnDestroy(): void;
815
830
  /**
@@ -830,8 +845,9 @@ export declare class MatRippleLoader implements OnDestroy {
830
845
  /** Handles creating and attaching component internals when a component it is initially interacted with. */
831
846
  private _onInteraction;
832
847
  /** Creates a MatRipple and appends it to the given element. */
833
- createRipple(host: HTMLElement): MatRipple | undefined;
834
- attachRipple(host: Element, ripple: MatRipple): void;
848
+ private _createRipple;
849
+ attachRipple(host: HTMLElement, ripple: MatRipple): void;
850
+ destroyRipple(host: HTMLElement): void;
835
851
  static ɵfac: i0.ɵɵFactoryDeclaration<MatRippleLoader, never>;
836
852
  static ɵprov: i0.ɵɵInjectableDeclaration<MatRippleLoader>;
837
853
  }
@@ -0,0 +1,37 @@
1
+ @use '@material/form-field/form-field-theme' as mdc-form-field-theme;
2
+ @use '../tokens/m2/mdc/form-field' as tokens-mdc-form-field;
3
+ @use '../style/sass-utils';
4
+ @use '../theming/theming';
5
+ @use '../theming/inspection';
6
+ @use '../typography/typography';
7
+
8
+ @mixin base($theme) {}
9
+
10
+ @mixin color($theme) {
11
+ @include sass-utils.current-selector-or-root() {
12
+ @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-color-tokens($theme));
13
+ }
14
+ }
15
+
16
+ @mixin typography($theme) {
17
+ @include sass-utils.current-selector-or-root() {
18
+ @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-typography-tokens($theme));
19
+ }
20
+ }
21
+
22
+ @mixin density($theme) {}
23
+
24
+ @mixin theme($theme) {
25
+ @include theming.private-check-duplicate-theme-styles($theme, 'mat-internal-form-field') {
26
+ @include base($theme);
27
+ @if inspection.theme-has($theme, color) {
28
+ @include color($theme);
29
+ }
30
+ @if inspection.theme-has($theme, density) {
31
+ @include density($theme);
32
+ }
33
+ @if inspection.theme-has($theme, typography) {
34
+ @include typography($theme);
35
+ }
36
+ }
37
+ }
@@ -30,6 +30,9 @@ $prefix: (mat, fab);
30
30
  // Color of the element that shows the hover, focus and pressed states.
31
31
  state-layer-color: $on-surface,
32
32
 
33
+ // Color of the element that shows the hover, focus and pressed states while disabled.
34
+ disabled-state-layer-color: $on-surface,
35
+
33
36
  // Color of the ripple element.
34
37
  ripple-color: rgba($on-surface, 0.1),
35
38
 
@@ -27,6 +27,9 @@ $prefix: (mat, filled-button);
27
27
  // Color of the element that shows the hover, focus and pressed states.
28
28
  state-layer-color: $on-surface,
29
29
 
30
+ // Color of the element that shows the hover, focus and pressed states while disabled.
31
+ disabled-state-layer-color: $on-surface,
32
+
30
33
  // Color of the ripple element.
31
34
  ripple-color: rgba($on-surface, 0.1),
32
35
 
@@ -27,6 +27,9 @@ $prefix: (mat, icon-button);
27
27
  // Color of the element that shows the hover, focus and pressed states.
28
28
  state-layer-color: $on-surface,
29
29
 
30
+ // Color of the element that shows the hover, focus and pressed states while disabled.
31
+ disabled-state-layer-color: $on-surface,
32
+
30
33
  // Color of the ripple element.
31
34
  ripple-color: rgba($on-surface, 0.1),
32
35
 
@@ -27,6 +27,9 @@ $prefix: (mat, outlined-button);
27
27
  // Color of the element that shows the hover, focus and pressed states.
28
28
  state-layer-color: $on-surface,
29
29
 
30
+ // Color of the element that shows the hover, focus and pressed states while disabled.
31
+ disabled-state-layer-color: $on-surface,
32
+
30
33
  // Color of the ripple element.
31
34
  ripple-color: rgba($on-surface, 0.1),
32
35
 
@@ -27,6 +27,9 @@ $prefix: (mat, protected-button);
27
27
  // Color of the element that shows the hover, focus and pressed states.
28
28
  state-layer-color: $on-surface,
29
29
 
30
+ // Color of the element that shows the hover, focus and pressed states while disabled.
31
+ disabled-state-layer-color: $on-surface,
32
+
30
33
  // Color of the ripple element.
31
34
  ripple-color: rgba($on-surface, 0.1),
32
35
 
@@ -8,7 +8,12 @@ $prefix: (mat, tab-header);
8
8
  // Tokens that can't be configured through Angular Material's current theming API,
9
9
  // but may be in a future version of the theming API.
10
10
  @function get-unthemable-tokens() {
11
- @return ();
11
+ @return (
12
+ // For some period of time, the MDC tabs removed the divider. This has been added back in
13
+ // and will be present in M3.
14
+ divider-color: transparent,
15
+ divider-height: 0,
16
+ );
12
17
  }
13
18
 
14
19
  // Tokens that can be configured through Angular Material's color theming API.
@@ -27,6 +27,9 @@ $prefix: (mat, text-button);
27
27
  // Color of the element that shows the hover, focus and pressed states.
28
28
  state-layer-color: $on-surface,
29
29
 
30
+ // Color of the element that shows the hover, focus and pressed states while disabled.
31
+ disabled-state-layer-color: $on-surface,
32
+
30
33
  // Color of the ripple element.
31
34
  ripple-color: rgba($on-surface, 0.1),
32
35
 
@@ -35,11 +35,6 @@ $prefix: (mdc, filled-button);
35
35
  container-shadow-color: null,
36
36
  focus-label-text-color: null,
37
37
  hover-label-text-color: null,
38
- label-text-font: null,
39
- label-text-size: null,
40
- label-text-tracking: null,
41
- label-text-transform: null,
42
- label-text-weight: null,
43
38
  pressed-label-text-color: null,
44
39
  with-icon-disabled-icon-color: null,
45
40
  with-icon-focus-icon-color: null,
@@ -81,7 +76,13 @@ $prefix: (mdc, filled-button);
81
76
 
82
77
  // Tokens that can be configured through Angular Material's typography theming API.
83
78
  @function get-typography-tokens($theme) {
84
- @return ();
79
+ @return (
80
+ label-text-font: inspection.get-theme-typography($theme, button, font-family),
81
+ label-text-size: inspection.get-theme-typography($theme, button, font-size),
82
+ label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing),
83
+ label-text-weight: inspection.get-theme-typography($theme, button, font-weight),
84
+ label-text-transform: none,
85
+ );
85
86
  }
86
87
 
87
88
  // Tokens that can be configured through Angular Material's density theming API.
@@ -0,0 +1,46 @@
1
+ @use '../../../theming/inspection';
2
+ @use '../../../style/sass-utils';
3
+ @use '../../token-utils';
4
+
5
+ // The prefix used to generate the fully qualified name for tokens in this file.
6
+ $prefix: (mdc, form-field);
7
+
8
+ // Tokens that can't be configured through Angular Material's current theming API,
9
+ // but may be in a future version of the theming API.
10
+ @function get-unthemable-tokens() {
11
+ @return ();
12
+ }
13
+
14
+ // Tokens that can be configured through Angular Material's color theming API.
15
+ @function get-color-tokens($theme) {
16
+ @return (
17
+ label-text-color: inspection.get-theme-color($theme, foreground, text),
18
+ );
19
+ }
20
+
21
+ // Tokens that can be configured through Angular Material's typography theming API.
22
+ @function get-typography-tokens($theme) {
23
+ @return (
24
+ label-text-font: inspection.get-theme-typography($theme, body-2, font-family),
25
+ label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height),
26
+ label-text-size: inspection.get-theme-typography($theme, body-2, font-size),
27
+ label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing),
28
+ label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight),
29
+ );
30
+ }
31
+
32
+ // Tokens that can be configured through Angular Material's density theming API.
33
+ @function get-density-tokens($theme) {
34
+ @return ();
35
+ }
36
+
37
+ // Combines the tokens generated by the above functions into a single map with placeholder values.
38
+ // This is used to create token slots.
39
+ @function get-token-slots() {
40
+ @return sass-utils.deep-merge-all(
41
+ get-unthemable-tokens(),
42
+ get-color-tokens(token-utils.$placeholder-color-config),
43
+ get-typography-tokens(token-utils.$placeholder-typography-config),
44
+ get-density-tokens(token-utils.$placeholder-density-config)
45
+ );
46
+ }
@@ -49,12 +49,6 @@ $prefix: (mdc, outlined-button);
49
49
  with-icon-focus-icon-color: null,
50
50
  with-icon-pressed-icon-color: null,
51
51
  with-icon-disabled-icon-color: null,
52
-
53
- label-text-size: null,
54
- label-text-font: null,
55
- label-text-weight: null,
56
- label-text-tracking: null,
57
- label-text-transform: null
58
52
  );
59
53
  }
60
54
 
@@ -87,7 +81,13 @@ $prefix: (mdc, outlined-button);
87
81
 
88
82
  // Tokens that can be configured through Angular Material's typography theming API.
89
83
  @function get-typography-tokens($theme) {
90
- @return ();
84
+ @return (
85
+ label-text-font: inspection.get-theme-typography($theme, button, font-family),
86
+ label-text-size: inspection.get-theme-typography($theme, button, font-size),
87
+ label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing),
88
+ label-text-weight: inspection.get-theme-typography($theme, button, font-weight),
89
+ label-text-transform: none,
90
+ );
91
91
  }
92
92
 
93
93
  // Tokens that can be configured through Angular Material's density theming API.
@@ -33,11 +33,6 @@ $prefix: (mdc, protected-button);
33
33
  disabled-container-elevation: null,
34
34
  focus-container-elevation: null,
35
35
  pressed-container-elevation: null,
36
- label-text-font: null,
37
- label-text-size: null,
38
- label-text-tracking: null,
39
- label-text-transform: null,
40
- label-text-weight: null,
41
36
  with-icon-icon-size: null,
42
37
  focus-label-text-color: null,
43
38
  hover-label-text-color: null,
@@ -80,7 +75,13 @@ $prefix: (mdc, protected-button);
80
75
 
81
76
  // Tokens that can be configured through Angular Material's typography theming API.
82
77
  @function get-typography-tokens($theme) {
83
- @return ();
78
+ @return (
79
+ label-text-font: inspection.get-theme-typography($theme, button, font-family),
80
+ label-text-size: inspection.get-theme-typography($theme, button, font-size),
81
+ label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing),
82
+ label-text-weight: inspection.get-theme-typography($theme, button, font-weight),
83
+ label-text-transform: none,
84
+ );
84
85
  }
85
86
 
86
87
  // Tokens that can be configured through Angular Material's density theming API.
@@ -21,13 +21,6 @@ $prefix: (mdc, text-button);
21
21
  // prevent the buttons from collapsing if a density mixin isn't included.
22
22
  container-height: 36px,
23
23
 
24
- // TODO: handle these through the typography styles eventually.
25
- label-text-font: null,
26
- label-text-size: null,
27
- label-text-tracking: null,
28
- label-text-transform: null,
29
- label-text-weight: null,
30
-
31
24
  // =============================================================================================
32
25
  // = TOKENS NOT USED IN ANGULAR MATERIAL =
33
26
  // =============================================================================================
@@ -74,7 +67,13 @@ $prefix: (mdc, text-button);
74
67
 
75
68
  // Tokens that can be configured through Angular Material's typography theming API.
76
69
  @function get-typography-tokens($theme) {
77
- @return ();
70
+ @return (
71
+ label-text-font: inspection.get-theme-typography($theme, button, font-family),
72
+ label-text-size: inspection.get-theme-typography($theme, button, font-size),
73
+ label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing),
74
+ label-text-weight: inspection.get-theme-typography($theme, button, font-weight),
75
+ label-text-transform: none,
76
+ );
78
77
  }
79
78
 
80
79
  // Tokens that can be configured through Angular Material's density theming API.