@angular/material 20.0.0-next.6 → 20.0.0-next.7

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 (354) hide show
  1. package/autocomplete/_autocomplete-theme.scss +1 -1
  2. package/autocomplete/index.d.ts +9 -10
  3. package/autocomplete/testing/index.d.ts +2 -2
  4. package/badge/_badge-theme.scss +1 -1
  5. package/badge/index.d.ts +5 -5
  6. package/badge/testing/index.d.ts +2 -2
  7. package/{badge.d-619691fb.d.ts → badge.d-BUeRGv1E.d.ts} +3 -3
  8. package/bottom-sheet/_bottom-sheet-theme.scss +1 -1
  9. package/bottom-sheet/index.d.ts +3 -2
  10. package/button/_button-theme.scss +6 -1
  11. package/button/_fab-theme.scss +5 -1
  12. package/button/_icon-button-theme.scss +6 -1
  13. package/button/_m3-button.scss +22 -5
  14. package/button/_m3-fab.scss +13 -0
  15. package/button/_m3-icon-button.scss +15 -1
  16. package/button/index.d.ts +215 -8
  17. package/button-toggle/_button-toggle-theme.scss +6 -1
  18. package/button-toggle/_m3-button-toggle.scss +13 -0
  19. package/button-toggle/index.d.ts +6 -6
  20. package/button-toggle/testing/index.d.ts +1 -1
  21. package/{button-toggle.d-620c8912.d.ts → button-toggle.d-cP94fe1M.d.ts} +3 -3
  22. package/card/_card-theme.scss +1 -1
  23. package/card/index.d.ts +1 -1
  24. package/checkbox/_checkbox-theme.scss +6 -1
  25. package/checkbox/_m3-checkbox.scss +14 -1
  26. package/checkbox/index.d.ts +2 -2
  27. package/chips/_chips-theme.scss +5 -1
  28. package/chips/_m3-chip.scss +13 -0
  29. package/chips/index.d.ts +17 -5
  30. package/{common-module.d-421e3498.d.ts → common-module.d-CUT8AqiB.d.ts} +2 -2
  31. package/core/_core-theme.scss +1 -1
  32. package/core/density/private/_all-density.scss +38 -38
  33. package/core/index.d.ts +15 -15
  34. package/core/option/_optgroup-theme.scss +1 -1
  35. package/core/option/_option-theme.scss +1 -1
  36. package/core/ripple/_ripple-theme.scss +1 -1
  37. package/core/testing/index.d.ts +32 -3
  38. package/core/theming/_definition.scss +0 -1
  39. package/core/theming/_inspection.scss +1 -0
  40. package/core/tokens/_m3-system.scss +49 -9
  41. package/core/tokens/_m3-tokens.scss +0 -18
  42. package/core/tokens/_token-utils.scss +5 -0
  43. package/{date-adapter.d-e8299690.d.ts → date-adapter.d-DzP3EMeE.d.ts} +1 -1
  44. package/{date-range-input-harness.d-440b288d.d.ts → date-range-input-harness.d-CJDdddpn.d.ts} +3 -3
  45. package/datepicker/_datepicker-theme.scss +1 -1
  46. package/datepicker/index.d.ts +14 -9
  47. package/datepicker/testing/index.d.ts +4 -4
  48. package/dialog/_dialog-theme.scss +1 -1
  49. package/dialog/index.d.ts +5 -5
  50. package/dialog/testing/index.d.ts +1 -1
  51. package/{dialog.d-2ea3eab1.d.ts → dialog.d-DSidcNPx.d.ts} +2 -2
  52. package/divider/_divider-theme.scss +1 -1
  53. package/divider/index.d.ts +24 -4
  54. package/divider/testing/index.d.ts +15 -2
  55. package/{error-options.d-059d9639.d.ts → error-options.d-C1yXmo10.d.ts} +1 -1
  56. package/expansion/_expansion-theme.scss +6 -1
  57. package/expansion/_m3-expansion.scss +14 -0
  58. package/expansion/index.d.ts +1 -1
  59. package/fesm2022/{animation-e58fc357.mjs → animation-DYWs964N.mjs} +2 -2
  60. package/fesm2022/{animation-e58fc357.mjs.map → animation-DYWs964N.mjs.map} +1 -1
  61. package/fesm2022/autocomplete/testing.mjs +2 -2
  62. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  63. package/fesm2022/autocomplete.mjs +15 -15
  64. package/fesm2022/autocomplete.mjs.map +1 -1
  65. package/fesm2022/badge/testing.mjs.map +1 -1
  66. package/fesm2022/badge.mjs +5 -5
  67. package/fesm2022/badge.mjs.map +1 -1
  68. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  69. package/fesm2022/bottom-sheet.mjs +13 -5
  70. package/fesm2022/bottom-sheet.mjs.map +1 -1
  71. package/fesm2022/button/testing.mjs.map +1 -1
  72. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  73. package/fesm2022/button-toggle.mjs +9 -9
  74. package/fesm2022/button-toggle.mjs.map +1 -1
  75. package/fesm2022/button.mjs +218 -9
  76. package/fesm2022/button.mjs.map +1 -1
  77. package/fesm2022/card/testing.mjs.map +1 -1
  78. package/fesm2022/card.mjs +4 -4
  79. package/fesm2022/card.mjs.map +1 -1
  80. package/fesm2022/checkbox/testing.mjs.map +1 -1
  81. package/fesm2022/checkbox.mjs +8 -8
  82. package/fesm2022/checkbox.mjs.map +1 -1
  83. package/fesm2022/chips/testing.mjs.map +1 -1
  84. package/fesm2022/chips.mjs +38 -22
  85. package/fesm2022/chips.mjs.map +1 -1
  86. package/fesm2022/{common-module-6bff0328.mjs → common-module-BTLyTce6.mjs} +2 -2
  87. package/fesm2022/{common-module-6bff0328.mjs.map → common-module-BTLyTce6.mjs.map} +1 -1
  88. package/fesm2022/core/testing.mjs +35 -3
  89. package/fesm2022/core/testing.mjs.map +1 -1
  90. package/fesm2022/core.mjs +18 -18
  91. package/fesm2022/core.mjs.map +1 -1
  92. package/fesm2022/{date-formats-9cbc3057.mjs → date-formats-BQbO9F6H.mjs} +2 -2
  93. package/fesm2022/{date-formats-9cbc3057.mjs.map → date-formats-BQbO9F6H.mjs.map} +1 -1
  94. package/fesm2022/{date-range-input-harness-3d3cf01a.mjs → date-range-input-harness-qhTX-DXo.mjs} +3 -3
  95. package/fesm2022/{date-range-input-harness-3d3cf01a.mjs.map → date-range-input-harness-qhTX-DXo.mjs.map} +1 -1
  96. package/fesm2022/datepicker/testing.mjs +3 -3
  97. package/fesm2022/datepicker/testing.mjs.map +1 -1
  98. package/fesm2022/datepicker.mjs +38 -29
  99. package/fesm2022/datepicker.mjs.map +1 -1
  100. package/fesm2022/dialog/testing.mjs +4 -4
  101. package/fesm2022/dialog/testing.mjs.map +1 -1
  102. package/fesm2022/dialog.mjs +3 -3
  103. package/fesm2022/dialog.mjs.map +1 -1
  104. package/fesm2022/divider/testing.mjs +17 -2
  105. package/fesm2022/divider/testing.mjs.map +1 -1
  106. package/fesm2022/divider.mjs +55 -4
  107. package/fesm2022/divider.mjs.map +1 -1
  108. package/fesm2022/{error-options-e22abc6f.mjs → error-options-f2L_D2TV.mjs} +2 -2
  109. package/fesm2022/{error-options-e22abc6f.mjs.map → error-options-f2L_D2TV.mjs.map} +1 -1
  110. package/fesm2022/{error-state-5fa5df66.mjs → error-state-DAicm3pw.mjs} +2 -2
  111. package/fesm2022/{error-state-5fa5df66.mjs.map → error-state-DAicm3pw.mjs.map} +1 -1
  112. package/fesm2022/expansion/testing.mjs.map +1 -1
  113. package/fesm2022/expansion.mjs +8 -8
  114. package/fesm2022/expansion.mjs.map +1 -1
  115. package/fesm2022/form-field/testing/control.mjs +10 -2
  116. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  117. package/fesm2022/form-field/testing.mjs +6 -6
  118. package/fesm2022/form-field/testing.mjs.map +1 -1
  119. package/fesm2022/{form-field-ba7d9525.mjs → form-field-DXXhIBX2.mjs} +25 -7
  120. package/fesm2022/form-field-DXXhIBX2.mjs.map +1 -0
  121. package/fesm2022/form-field.mjs +4 -4
  122. package/fesm2022/grid-list/testing.mjs +2 -2
  123. package/fesm2022/grid-list/testing.mjs.map +1 -1
  124. package/fesm2022/grid-list.mjs +10 -11
  125. package/fesm2022/grid-list.mjs.map +1 -1
  126. package/fesm2022/icon/testing.mjs +1 -1
  127. package/fesm2022/icon/testing.mjs.map +1 -1
  128. package/fesm2022/{icon-button-c94ccf8a.mjs → icon-button-SnLX2J-J.mjs} +8 -8
  129. package/fesm2022/{icon-button-c94ccf8a.mjs.map → icon-button-SnLX2J-J.mjs.map} +1 -1
  130. package/fesm2022/{icon-registry-4f5f0eba.mjs → icon-registry-C2Nxi8Mq.mjs} +3 -3
  131. package/fesm2022/{icon-registry-4f5f0eba.mjs.map → icon-registry-C2Nxi8Mq.mjs.map} +1 -1
  132. package/fesm2022/icon.mjs +397 -9
  133. package/fesm2022/icon.mjs.map +1 -1
  134. package/fesm2022/{index-33bb4181.mjs → index-CYUgEsfZ.mjs} +6 -6
  135. package/fesm2022/{index-33bb4181.mjs.map → index-CYUgEsfZ.mjs.map} +1 -1
  136. package/fesm2022/{index-975cf4ab.mjs → index-D7tf-UtR.mjs} +4 -4
  137. package/fesm2022/{index-975cf4ab.mjs.map → index-D7tf-UtR.mjs.map} +1 -1
  138. package/fesm2022/input/testing.mjs +2 -2
  139. package/fesm2022/input/testing.mjs.map +1 -1
  140. package/fesm2022/{input-harness-6ca0e4e7.mjs → input-harness-CxVp_q3n.mjs} +3 -3
  141. package/fesm2022/{input-harness-6ca0e4e7.mjs.map → input-harness-CxVp_q3n.mjs.map} +1 -1
  142. package/fesm2022/{input-value-accessor-16c2d528.mjs → input-value-accessor-cp3A3zMa.mjs} +2 -2
  143. package/fesm2022/{input-value-accessor-16c2d528.mjs.map → input-value-accessor-cp3A3zMa.mjs.map} +1 -1
  144. package/fesm2022/input.mjs +21 -29
  145. package/fesm2022/input.mjs.map +1 -1
  146. package/fesm2022/{internal-form-field-a658b1d3.mjs → internal-form-field-Bq9jLDgy.mjs} +5 -5
  147. package/fesm2022/{internal-form-field-a658b1d3.mjs.map → internal-form-field-Bq9jLDgy.mjs.map} +1 -1
  148. package/fesm2022/{line-fa9011f8.mjs → line-DI2_SkWl.mjs} +3 -3
  149. package/fesm2022/{line-fa9011f8.mjs.map → line-DI2_SkWl.mjs.map} +1 -1
  150. package/fesm2022/list/testing.mjs +1 -1
  151. package/fesm2022/list/testing.mjs.map +1 -1
  152. package/fesm2022/list.mjs +21 -21
  153. package/fesm2022/list.mjs.map +1 -1
  154. package/fesm2022/menu/testing.mjs.map +1 -1
  155. package/fesm2022/menu.mjs +8 -8
  156. package/fesm2022/menu.mjs.map +1 -1
  157. package/fesm2022/{module-f0bd6006.mjs → module-BIHXUA0w.mjs} +4 -4
  158. package/fesm2022/{module-f0bd6006.mjs.map → module-BIHXUA0w.mjs.map} +1 -1
  159. package/fesm2022/{module-7aee2437.mjs → module-Bj-soMIE.mjs} +7 -7
  160. package/fesm2022/{module-7aee2437.mjs.map → module-Bj-soMIE.mjs.map} +1 -1
  161. package/fesm2022/{module-9e568fe9.mjs → module-Bj_BSG1B.mjs} +23 -14
  162. package/fesm2022/{module-9e568fe9.mjs.map → module-Bj_BSG1B.mjs.map} +1 -1
  163. package/fesm2022/{module-f09a8c90.mjs → module-nTxiyWBy.mjs} +11 -11
  164. package/fesm2022/{module-f09a8c90.mjs.map → module-nTxiyWBy.mjs.map} +1 -1
  165. package/fesm2022/{option-2e7efc25.mjs → option-Ce_vIVuD.mjs} +10 -10
  166. package/fesm2022/{option-2e7efc25.mjs.map → option-Ce_vIVuD.mjs.map} +1 -1
  167. package/fesm2022/{option-harness-4cd4ee4e.mjs → option-harness-D_dpAU04.mjs} +2 -2
  168. package/fesm2022/{option-harness-4cd4ee4e.mjs.map → option-harness-D_dpAU04.mjs.map} +1 -1
  169. package/fesm2022/paginator/testing.mjs +4 -4
  170. package/fesm2022/paginator/testing.mjs.map +1 -1
  171. package/fesm2022/paginator.mjs +22 -22
  172. package/fesm2022/paginator.mjs.map +1 -1
  173. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  174. package/fesm2022/progress-bar.mjs +5 -5
  175. package/fesm2022/progress-bar.mjs.map +1 -1
  176. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  177. package/fesm2022/progress-spinner.mjs +5 -5
  178. package/fesm2022/progress-spinner.mjs.map +1 -1
  179. package/fesm2022/{pseudo-checkbox-module-22aca2eb.mjs → pseudo-checkbox-module-B1fNUV1l.mjs} +4 -4
  180. package/fesm2022/{pseudo-checkbox-module-22aca2eb.mjs.map → pseudo-checkbox-module-B1fNUV1l.mjs.map} +1 -1
  181. package/fesm2022/{pseudo-checkbox-7c1050cc.mjs → pseudo-checkbox-rb5Qj2XH.mjs} +6 -6
  182. package/fesm2022/{pseudo-checkbox-7c1050cc.mjs.map → pseudo-checkbox-rb5Qj2XH.mjs.map} +1 -1
  183. package/fesm2022/{public-api-af61bf48.mjs → public-api-B95TI2uI.mjs} +2 -2
  184. package/fesm2022/{public-api-af61bf48.mjs.map → public-api-B95TI2uI.mjs.map} +1 -1
  185. package/fesm2022/radio/testing.mjs.map +1 -1
  186. package/fesm2022/radio.mjs +9 -9
  187. package/fesm2022/radio.mjs.map +1 -1
  188. package/fesm2022/{ripple-loader-9a207cda.mjs → ripple-loader-R9v4tIlx.mjs} +4 -4
  189. package/fesm2022/{ripple-loader-9a207cda.mjs.map → ripple-loader-R9v4tIlx.mjs.map} +1 -1
  190. package/fesm2022/{ripple-ca34ab3c.mjs → ripple-t-kasrhF.mjs} +6 -6
  191. package/fesm2022/{ripple-ca34ab3c.mjs.map → ripple-t-kasrhF.mjs.map} +1 -1
  192. package/fesm2022/select/testing.mjs +122 -5
  193. package/fesm2022/select/testing.mjs.map +1 -1
  194. package/fesm2022/select.mjs +14 -14
  195. package/fesm2022/sidenav/testing.mjs.map +1 -1
  196. package/fesm2022/sidenav.mjs +7 -7
  197. package/fesm2022/sidenav.mjs.map +1 -1
  198. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  199. package/fesm2022/slide-toggle.mjs +8 -8
  200. package/fesm2022/slide-toggle.mjs.map +1 -1
  201. package/fesm2022/slider/testing.mjs.map +1 -1
  202. package/fesm2022/slider.mjs +10 -10
  203. package/fesm2022/slider.mjs.map +1 -1
  204. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  205. package/fesm2022/snack-bar.mjs +14 -14
  206. package/fesm2022/snack-bar.mjs.map +1 -1
  207. package/fesm2022/sort/testing.mjs.map +1 -1
  208. package/fesm2022/sort.mjs +6 -6
  209. package/fesm2022/sort.mjs.map +1 -1
  210. package/fesm2022/stepper/testing.mjs.map +1 -1
  211. package/fesm2022/stepper.mjs +13 -13
  212. package/fesm2022/stepper.mjs.map +1 -1
  213. package/fesm2022/{structural-styles-fe60c44d.mjs → structural-styles-BcST1BXh.mjs} +5 -5
  214. package/fesm2022/{structural-styles-fe60c44d.mjs.map → structural-styles-BcST1BXh.mjs.map} +1 -1
  215. package/fesm2022/table/testing.mjs.map +1 -1
  216. package/fesm2022/table.mjs +6 -6
  217. package/fesm2022/table.mjs.map +1 -1
  218. package/fesm2022/tabs/testing.mjs.map +1 -1
  219. package/fesm2022/tabs.mjs +15 -15
  220. package/fesm2022/tabs.mjs.map +1 -1
  221. package/fesm2022/timepicker/testing.mjs +1 -1
  222. package/fesm2022/timepicker/testing.mjs.map +1 -1
  223. package/fesm2022/timepicker.mjs +13 -13
  224. package/fesm2022/timepicker.mjs.map +1 -1
  225. package/fesm2022/toolbar/testing.mjs.map +1 -1
  226. package/fesm2022/toolbar.mjs +4 -4
  227. package/fesm2022/toolbar.mjs.map +1 -1
  228. package/fesm2022/tooltip/testing.mjs.map +1 -1
  229. package/fesm2022/tooltip.mjs +3 -3
  230. package/fesm2022/tree/testing.mjs.map +1 -1
  231. package/fesm2022/tree.mjs +4 -4
  232. package/fesm2022/tree.mjs.map +1 -1
  233. package/form-field/_form-field-theme.scss +6 -1
  234. package/form-field/_m3-form-field.scss +17 -0
  235. package/form-field/index.d.ts +5 -5
  236. package/form-field/testing/control/index.d.ts +10 -2
  237. package/form-field/testing/index.d.ts +7 -8
  238. package/{form-field-control.d-9ed49092.d.ts → form-field-control.d-39fAGkWp.d.ts} +3 -1
  239. package/{form-field.d-486f4e86.d.ts → form-field.d-DeaA8Upo.d.ts} +5 -4
  240. package/grid-list/_grid-list-theme.scss +1 -1
  241. package/grid-list/index.d.ts +3 -4
  242. package/icon/_icon-theme.scss +1 -1
  243. package/icon/index.d.ts +4 -4
  244. package/icon/testing/index.d.ts +1 -1
  245. package/{icon-module.d-a4b3b1e1.d.ts → icon-module.d-BeibE7j0.d.ts} +5 -5
  246. package/{icon-registry.d-6dd1799a.d.ts → icon-registry.d-DyR40vgq.d.ts} +2 -2
  247. package/{index.d-511f9e6c.d.ts → index.d-_XdEyDn3.d.ts} +3 -3
  248. package/{index.d-73f24bb1.d.ts → index.d-osnm7rw7.d.ts} +5 -5
  249. package/input/_input-theme.scss +1 -1
  250. package/input/index.d.ts +15 -12
  251. package/input/testing/index.d.ts +2 -2
  252. package/{input-harness.d-be80831e.d.ts → input-harness.d-C1zsmszC.d.ts} +3 -3
  253. package/{line.d-712398cb.d.ts → line.d-OCn_JHOE.d.ts} +2 -2
  254. package/list/_list-theme.scss +5 -1
  255. package/list/_m3-list.scss +17 -3
  256. package/list/index.d.ts +9 -10
  257. package/list/testing/index.d.ts +2 -2
  258. package/{list-option-types.d-076a5300.d.ts → list-option-types.d-BcmY3SsC.d.ts} +1 -1
  259. package/menu/_menu-theme.scss +1 -1
  260. package/menu/index.d.ts +4 -4
  261. package/{module.d-f55544a0.d.ts → module.d-Cym1ScGE.d.ts} +5 -5
  262. package/{module.d-8839a0c2.d.ts → module.d-D0Yb5xFi.d.ts} +16 -11
  263. package/{module.d-683b2a19.d.ts → module.d-_FxAFBZR.d.ts} +3 -3
  264. package/{option-harness.d-4f143bc0.d.ts → option-harness.d-BpYClwei.d.ts} +2 -2
  265. package/{option-parent.d-d4243d2f.d.ts → option-parent.d-CvnRKBST.d.ts} +2 -2
  266. package/{option.d-4fb11594.d.ts → option.d-ef4idHSb.d.ts} +1 -1
  267. package/package.json +2 -2
  268. package/paginator/_m3-paginator.scss +16 -0
  269. package/paginator/_paginator-theme.scss +6 -1
  270. package/paginator/index.d.ts +19 -19
  271. package/paginator/testing/index.d.ts +4 -4
  272. package/{paginator.d-181ff014.d.ts → paginator.d-Ctdtnt7L.d.ts} +5 -5
  273. package/{palette.d-1d8ebc0d.d.ts → palette.d-fF1us9u8.d.ts} +1 -1
  274. package/prebuilt-themes/azure-blue.css +1 -1
  275. package/prebuilt-themes/cyan-orange.css +1 -1
  276. package/prebuilt-themes/deeppurple-amber.css +1 -1
  277. package/prebuilt-themes/indigo-pink.css +1 -1
  278. package/prebuilt-themes/magenta-violet.css +1 -1
  279. package/prebuilt-themes/pink-bluegrey.css +1 -1
  280. package/prebuilt-themes/purple-green.css +1 -1
  281. package/prebuilt-themes/rose-red.css +1 -1
  282. package/progress-bar/index.d.ts +2 -2
  283. package/progress-spinner/index.d.ts +5 -5
  284. package/progress-spinner/testing/index.d.ts +2 -2
  285. package/{progress-spinner.d-c723a559.d.ts → progress-spinner.d-DRWEU4qb.d.ts} +3 -3
  286. package/{pseudo-checkbox-module.d-42351ab6.d.ts → pseudo-checkbox-module.d-czRCRd5m.d.ts} +3 -3
  287. package/radio/_m3-radio.scss +14 -1
  288. package/radio/_radio-theme.scss +5 -1
  289. package/radio/index.d.ts +5 -5
  290. package/{ripple-loader.d-f51e5eb6.d.ts → ripple-loader.d-DL-hT7NH.d.ts} +1 -1
  291. package/{ripple.d-305c30f3.d.ts → ripple.d-DBFnJ3Aa.d.ts} +3 -3
  292. package/schematics/ng-add/index.js +1 -1
  293. package/schematics/ng-generate/theme-color/index_bundled.js +3829 -3941
  294. package/schematics/ng-generate/theme-color/index_bundled.js.map +3 -4
  295. package/select/_m3-select.scss +13 -0
  296. package/select/_select-theme.scss +6 -1
  297. package/select/index.d.ts +12 -12
  298. package/select/testing/index.d.ts +64 -5
  299. package/sidenav/_sidenav-theme.scss +1 -1
  300. package/sidenav/index.d.ts +2 -2
  301. package/sidenav/testing/index.d.ts +1 -1
  302. package/slide-toggle/_slide-toggle-theme.scss +1 -1
  303. package/slide-toggle/index.d.ts +2 -2
  304. package/slider/_slider-theme.scss +1 -1
  305. package/slider/index.d.ts +5 -5
  306. package/snack-bar/index.d.ts +7 -7
  307. package/sort/_sort-theme.scss +1 -1
  308. package/sort/index.d.ts +5 -6
  309. package/sort/testing/index.d.ts +1 -1
  310. package/{sort-direction.d-52bce05e.d.ts → sort-direction.d-Dlz8961P.d.ts} +1 -1
  311. package/{sort.d-7718b3de.d.ts → sort.d-CHu7FXsP.d.ts} +4 -4
  312. package/stepper/_m3-stepper.scss +13 -0
  313. package/stepper/_stepper-theme.scss +6 -1
  314. package/stepper/index.d.ts +6 -6
  315. package/table/_m3-table.scss +15 -0
  316. package/table/_table-theme.scss +5 -1
  317. package/table/index.d.ts +8 -8
  318. package/table/testing/index.d.ts +1 -1
  319. package/tabs/_m3-tabs.scss +13 -1
  320. package/tabs/_tabs-theme.scss +5 -1
  321. package/tabs/index.d.ts +4 -4
  322. package/timepicker/_timepicker-theme.scss +1 -1
  323. package/timepicker/index.d.ts +2 -2
  324. package/timepicker/testing/index.d.ts +1 -1
  325. package/toolbar/_m3-toolbar.scss +14 -0
  326. package/toolbar/_toolbar-theme.scss +6 -1
  327. package/toolbar/index.d.ts +1 -1
  328. package/tooltip/_tooltip-theme.scss +1 -1
  329. package/tooltip/index.d.ts +2 -2
  330. package/tree/_m3-tree.scss +13 -0
  331. package/tree/_tree-theme.scss +5 -1
  332. package/tree/index.d.ts +1 -1
  333. package/core/tokens/_density.scss +0 -151
  334. package/divider-harness.d-ee96b7aa.d.ts +0 -15
  335. package/divider-module.d-4305a1f1.d.ts +0 -24
  336. package/fesm2022/divider-harness-bea2a71d.mjs +0 -18
  337. package/fesm2022/divider-harness-bea2a71d.mjs.map +0 -1
  338. package/fesm2022/divider-module-15f4b7a3.mjs +0 -56
  339. package/fesm2022/divider-module-15f4b7a3.mjs.map +0 -1
  340. package/fesm2022/form-field-ba7d9525.mjs.map +0 -1
  341. package/fesm2022/form-field-control-harness-adcc773d.mjs +0 -11
  342. package/fesm2022/form-field-control-harness-adcc773d.mjs.map +0 -1
  343. package/fesm2022/icon-module-165b91b7.mjs +0 -395
  344. package/fesm2022/icon-module-165b91b7.mjs.map +0 -1
  345. package/fesm2022/module-f44de9b3.mjs +0 -214
  346. package/fesm2022/module-f44de9b3.mjs.map +0 -1
  347. package/fesm2022/optgroup-harness-d961ca3f.mjs +0 -36
  348. package/fesm2022/optgroup-harness-d961ca3f.mjs.map +0 -1
  349. package/fesm2022/select-harness-9656d727.mjs +0 -123
  350. package/fesm2022/select-harness-9656d727.mjs.map +0 -1
  351. package/form-field-control-harness.d-e3cf007b.d.ts +0 -10
  352. package/module.d-9a1d1c76.d.ts +0 -214
  353. package/optgroup-harness.d-c52f5a8b.d.ts +0 -32
  354. package/select-harness.d-485a3cf8.d.ts +0 -64
@@ -48,7 +48,7 @@
48
48
 
49
49
  @mixin density($theme) {
50
50
  @if inspection.get-theme-version($theme) == 1 {
51
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
51
+ // There are no M3 density tokens for this component
52
52
  } @else {
53
53
  @include sass-utils.current-selector-or-root() {
54
54
  @include token-utils.create-token-values-mixed(
@@ -1,20 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, AfterContentInit, OnDestroy, TemplateRef, ElementRef, QueryList, EventEmitter, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { AfterContentInit, OnDestroy, TemplateRef, ElementRef, QueryList, EventEmitter, InjectionToken, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';
3
3
  import * as i2 from '@angular/cdk/overlay';
4
4
  import { ScrollStrategy, Overlay } from '@angular/cdk/overlay';
5
- import { M as MatOptionModule } from '../index.d-73f24bb1.js';
6
- import { M as MatCommonModule } from '../common-module.d-421e3498.js';
7
- import { T as ThemePalette } from '../palette.d-1d8ebc0d.js';
8
- import { M as MatOption, a as MatOptgroup, b as MatOptionSelectionChange } from '../option.d-4fb11594.js';
9
- export { a as MatOptgroup, M as MatOption } from '../option.d-4fb11594.js';
5
+ import { MatOptionModule } from '../index.d-osnm7rw7.js';
6
+ import { MatCommonModule } from '../common-module.d-CUT8AqiB.js';
7
+ import { ThemePalette } from '../palette.d-fF1us9u8.js';
8
+ import { MatOption, MatOptgroup, MatOptionSelectionChange } from '../option.d-ef4idHSb.js';
10
9
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
11
10
  import { ControlValueAccessor } from '@angular/forms';
12
11
  import { Observable } from 'rxjs';
13
12
  import * as i5 from '@angular/cdk/scrolling';
14
- import '../index.d-511f9e6c.js';
15
- import '../ripple.d-305c30f3.js';
13
+ import '../index.d-_XdEyDn3.js';
14
+ import '../ripple.d-DBFnJ3Aa.js';
16
15
  import '@angular/cdk/platform';
17
- import '../pseudo-checkbox-module.d-42351ab6.js';
16
+ import '../pseudo-checkbox-module.d-czRCRd5m.js';
18
17
  import '@angular/cdk/bidi';
19
18
 
20
19
  /** Event object that is emitted when an autocomplete option is selected. */
@@ -438,5 +437,5 @@ declare class MatAutocompleteModule {
438
437
  static ɵinj: i0.ɵɵInjectorDeclaration<MatAutocompleteModule>;
439
438
  }
440
439
 
441
- export { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, MatAutocomplete, MatAutocompleteModule, MatAutocompleteOrigin, MatAutocompleteSelectedEvent, MatAutocompleteTrigger, getMatAutocompleteMissingPanelError };
440
+ export { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, MatAutocomplete, MatAutocompleteModule, MatAutocompleteOrigin, MatAutocompleteSelectedEvent, MatAutocompleteTrigger, MatOptgroup, MatOption, getMatAutocompleteMissingPanelError };
442
441
  export type { MatAutocompleteActivatedEvent, MatAutocompleteDefaultOptions };
@@ -1,6 +1,6 @@
1
1
  import { BaseHarnessFilters, ComponentHarness, ComponentHarnessConstructor, HarnessPredicate } from '@angular/cdk/testing';
2
- import { O as OptionHarnessFilters, M as MatOptionHarness } from '../../option-harness.d-4f143bc0.js';
3
- import { O as OptgroupHarnessFilters, M as MatOptgroupHarness } from '../../optgroup-harness.d-c52f5a8b.js';
2
+ import { OptionHarnessFilters, MatOptionHarness } from '../../option-harness.d-BpYClwei.js';
3
+ import { OptgroupHarnessFilters, MatOptgroupHarness } from '../../core/testing/index.js';
4
4
 
5
5
  /** A set of criteria that can be used to filter a list of `MatAutocompleteHarness` instances. */
6
6
  interface AutocompleteHarnessFilters extends BaseHarnessFilters {
@@ -74,7 +74,7 @@
74
74
  /// @param {Map} $theme The theme to generate density styles for.
75
75
  @mixin density($theme) {
76
76
  @if inspection.get-theme-version($theme) == 1 {
77
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
77
+ // There are no M3 density tokens for this component
78
78
  } @else {
79
79
  }
80
80
  }
package/badge/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import * as i1 from '@angular/cdk/a11y';
3
- import { M as MatCommonModule } from '../common-module.d-421e3498.js';
4
- import { M as MatBadge, _ as _MatBadgeStyleLoader } from '../badge.d-619691fb.js';
5
- export { M as MatBadge, a as MatBadgePosition, b as MatBadgeSize } from '../badge.d-619691fb.js';
3
+ import { MatCommonModule } from '../common-module.d-CUT8AqiB.js';
4
+ import { MatBadge, _MatBadgeStyleLoader } from '../badge.d-BUeRGv1E.js';
5
+ export { MatBadgePosition, MatBadgeSize } from '../badge.d-BUeRGv1E.js';
6
6
  import '@angular/cdk/bidi';
7
- import '../palette.d-1d8ebc0d.js';
7
+ import '../palette.d-fF1us9u8.js';
8
8
 
9
9
  declare class MatBadgeModule {
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<MatBadgeModule, never>;
@@ -12,4 +12,4 @@ declare class MatBadgeModule {
12
12
  static ɵinj: i0.ɵɵInjectorDeclaration<MatBadgeModule>;
13
13
  }
14
14
 
15
- export { MatBadgeModule };
15
+ export { MatBadge, MatBadgeModule };
@@ -1,7 +1,7 @@
1
1
  import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
- import { a as MatBadgePosition, b as MatBadgeSize } from '../../badge.d-619691fb.js';
2
+ import { MatBadgePosition, MatBadgeSize } from '../../badge.d-BUeRGv1E.js';
3
3
  import '@angular/core';
4
- import '../../palette.d-1d8ebc0d.js';
4
+ import '../../palette.d-fF1us9u8.js';
5
5
 
6
6
  interface BadgeHarnessFilters extends BaseHarnessFilters {
7
7
  text?: string | RegExp;
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnInit, OnDestroy } from '@angular/core';
3
- import { T as ThemePalette } from './palette.d-1d8ebc0d.js';
3
+ import { ThemePalette } from './palette.d-fF1us9u8.js';
4
4
 
5
5
  /** Allowed position options for matBadgePosition */
6
6
  type MatBadgePosition = 'above after' | 'above before' | 'below before' | 'below after' | 'before' | 'after' | 'above' | 'below';
@@ -95,5 +95,5 @@ declare class MatBadge implements OnInit, OnDestroy {
95
95
  static ngAcceptInputType_hidden: unknown;
96
96
  }
97
97
 
98
- export { MatBadge as M, _MatBadgeStyleLoader as _ };
99
- export type { MatBadgePosition as a, MatBadgeSize as b };
98
+ export { MatBadge, _MatBadgeStyleLoader };
99
+ export type { MatBadgePosition, MatBadgeSize };
@@ -48,7 +48,7 @@
48
48
 
49
49
  @mixin density($theme) {
50
50
  @if inspection.get-theme-version($theme) == 1 {
51
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
51
+ // There are no M3 density tokens for this component
52
52
  } @else {
53
53
  }
54
54
  }
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnDestroy, EventEmitter, InjectionToken, ViewContainerRef, ComponentRef, TemplateRef } from '@angular/core';
2
+ import { OnDestroy, EventEmitter, ViewContainerRef, InjectionToken, ComponentRef, TemplateRef } from '@angular/core';
3
3
  import * as i1 from '@angular/cdk/dialog';
4
4
  import { CdkDialogContainer, DialogRef } from '@angular/cdk/dialog';
5
- import { M as MatCommonModule } from '../common-module.d-421e3498.js';
5
+ import { MatCommonModule } from '../common-module.d-CUT8AqiB.js';
6
6
  import * as i3 from '@angular/cdk/portal';
7
7
  import { ComponentType } from '@angular/cdk/portal';
8
8
  import { Direction } from '@angular/cdk/bidi';
@@ -32,6 +32,7 @@ declare class MatBottomSheetContainer extends CdkDialogContainer implements OnDe
32
32
  exit(): void;
33
33
  ngOnDestroy(): void;
34
34
  private _simulateAnimation;
35
+ protected _trapFocus(): void;
35
36
  protected _handleAnimationEvent(isStart: boolean, animationName: string): void;
36
37
  static ɵfac: i0.ɵɵFactoryDeclaration<MatBottomSheetContainer, never>;
37
38
  static ɵcmp: i0.ɵɵComponentDeclaration<MatBottomSheetContainer, "mat-bottom-sheet-container", never, {}, {}, never, never, true, never>;
@@ -5,6 +5,7 @@
5
5
  @use '../core/tokens/token-utils';
6
6
  @use '../core/typography/typography';
7
7
  @use './m2-button';
8
+ @use './m3-button';
8
9
 
9
10
  @mixin _button-variant($theme, $palette) {
10
11
  $mat-tokens: if(
@@ -91,7 +92,8 @@
91
92
  /// @param {Map} $theme The theme to generate density styles for.
92
93
  @mixin density($theme) {
93
94
  @if inspection.get-theme-version($theme) == 1 {
94
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
95
+ @include token-utils.create-token-values(
96
+ m3-button.$prefix, m3-button.get-density-tokens($theme));
95
97
  } @else {
96
98
  @include sass-utils.current-selector-or-root() {
97
99
  @include token-utils.create-token-values-mixed(
@@ -127,6 +129,9 @@
127
129
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-button') {
128
130
  @if inspection.get-theme-version($theme) == 1 {
129
131
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
132
+ @if inspection.theme-has($theme, density) {
133
+ @include density($theme);
134
+ }
130
135
  } @else {
131
136
  @include base($theme);
132
137
  @if inspection.theme-has($theme, color) {
@@ -3,6 +3,7 @@
3
3
  @use '../core/theming/inspection';
4
4
  @use '../core/theming/validation';
5
5
  @use './m2-fab';
6
+ @use './m3-fab';
6
7
  @use '../core/tokens/token-utils';
7
8
  @use '../core/typography/typography';
8
9
 
@@ -80,7 +81,7 @@
80
81
  /// @param {Map} $theme The theme to generate density styles for.
81
82
  @mixin density($theme) {
82
83
  @if inspection.get-theme-version($theme) == 1 {
83
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
84
+ @include token-utils.create-token-values(m3-fab.$prefix, m3-fab.get-density-tokens($theme));
84
85
  } @else {
85
86
  @include sass-utils.current-selector-or-root() {
86
87
  @include token-utils.create-token-values-mixed(
@@ -116,6 +117,9 @@
116
117
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-fab') {
117
118
  @if inspection.get-theme-version($theme) == 1 {
118
119
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
120
+ @if inspection.theme-has($theme, density) {
121
+ @include density($theme);
122
+ }
119
123
  } @else {
120
124
  @include base($theme);
121
125
  @if inspection.theme-has($theme, color) {
@@ -1,6 +1,7 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:math';
3
3
  @use './m2-icon-button';
4
+ @use './m3-icon-button';
4
5
  @use '../core/style/sass-utils';
5
6
  @use '../core/tokens/token-utils';
6
7
  @use '../core/theming/theming';
@@ -74,7 +75,8 @@
74
75
 
75
76
  @mixin density($theme) {
76
77
  @if inspection.get-theme-version($theme) == 1 {
77
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
78
+ @include token-utils.create-token-values(
79
+ m3-icon-button.$prefix, m3-icon-button.get-density-tokens($theme));
78
80
  } @else {
79
81
  $icon-size: 24px;
80
82
  $density-scale: inspection.get-theme-density($theme);
@@ -137,6 +139,9 @@
137
139
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-icon-button') {
138
140
  @if inspection.get-theme-version($theme) == 1 {
139
141
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
142
+ @if inspection.theme-has($theme, density) {
143
+ @include density($theme);
144
+ }
140
145
  } @else {
141
146
  @include base($theme);
142
147
  @if inspection.theme-has($theme, color) {
@@ -1,7 +1,10 @@
1
1
  @use 'sass:map';
2
+ @use 'sass:list';
2
3
  @use '../core/tokens/m3-utils';
3
4
  @use '../core/style/sass-utils';
4
5
  @use '../core/style/elevation';
6
+ @use '../core/theming/theming';
7
+ @use '../core/theming/inspection';
5
8
 
6
9
  // The prefix used to generate the fully qualified name for tokens in this file.
7
10
  $prefix: (mat, button);
@@ -14,7 +17,6 @@ $prefix: (mat, button);
14
17
  @function get-tokens($systems, $exclude-hardcoded, $token-slots) {
15
18
  $tokens: (
16
19
  filled-container-color: map.get($systems, md-sys-color, primary),
17
- filled-container-height: if($exclude-hardcoded, null, 40px),
18
20
  filled-container-shape: map.get($systems, md-sys-shape, corner-full),
19
21
  filled-disabled-container-color: sass-utils.safe-color-change(
20
22
  map.get($systems, md-sys-color, on-surface), $alpha: 0.12),
@@ -37,7 +39,6 @@ $prefix: (mat, button);
37
39
  map.get($systems, md-sys-color, on-primary),
38
40
  $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ),
39
41
  filled-state-layer-color: map.get($systems, md-sys-color, on-primary),
40
- outlined-container-height: if($exclude-hardcoded, null, 40px),
41
42
  outlined-container-shape: map.get($systems, md-sys-shape, corner-full),
42
43
  outlined-disabled-label-text-color: sass-utils.safe-color-change(
43
44
  map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
@@ -64,7 +65,6 @@ $prefix: (mat, button);
64
65
  outlined-state-layer-color: map.get($systems, md-sys-color, primary),
65
66
  protected-container-color: map.get($systems, md-sys-color, surface),
66
67
  protected-container-elevation-shadow: map.get($systems, md-sys-elevation, level1),
67
- protected-container-height: if($exclude-hardcoded, null, 40px),
68
68
  protected-container-shape: map.get($systems, md-sys-shape, corner-full),
69
69
  protected-disabled-container-color: sass-utils.safe-color-change(
70
70
  map.get($systems, md-sys-color, on-surface), $alpha: 0.12),
@@ -91,7 +91,6 @@ $prefix: (mat, button);
91
91
  map.get($systems, md-sys-color, primary),
92
92
  $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
93
93
  protected-state-layer-color: map.get($systems, md-sys-color, primary),
94
- text-container-height: if($exclude-hardcoded, null, 40px),
95
94
  text-container-shape: map.get($systems, md-sys-shape, corner-full),
96
95
  text-disabled-label-text-color: sass-utils.safe-color-change(
97
96
  map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
@@ -113,7 +112,6 @@ $prefix: (mat, button);
113
112
  text-state-layer-color: map.get($systems, md-sys-color, primary),
114
113
  text-with-icon-horizontal-padding: m3-utils.hardcode(16px, $exclude-hardcoded),
115
114
  tonal-container-color: map.get($systems, md-sys-color, secondary-container),
116
- tonal-container-height: if($exclude-hardcoded, null, 40px),
117
115
  tonal-container-shape: map.get($systems, md-sys-shape, corner-full),
118
116
  tonal-disabled-container-color: sass-utils.safe-color-change(
119
117
  map.get($systems, md-sys-color, on-surface), $alpha: 0.12),
@@ -241,3 +239,22 @@ $prefix: (mat, button);
241
239
 
242
240
  @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots);
243
241
  }
242
+
243
+ // Tokens that can be configured through Angular Material's density theming API.
244
+ @function get-density-tokens($theme) {
245
+ $scale: theming.clamp-density(inspection.get-theme-density($theme), -3);
246
+ $index: ($scale * -1) + 1;
247
+
248
+ @return (
249
+ filled-touch-target-display: list.nth((block, block, none, none), $index),
250
+ filled-container-height: list.nth((40px, 36px, 32px, 28px), $index),
251
+ outlined-container-height: list.nth((40px, 36px, 32px, 28px), $index),
252
+ outlined-touch-target-display: list.nth((block, block, none, none), $index),
253
+ protected-touch-target-display: list.nth((block, block, none, none), $index),
254
+ protected-container-height: list.nth((40px, 36px, 32px, 28px), $index),
255
+ text-touch-target-display: list.nth((block, block, none, none), $index),
256
+ text-container-height: list.nth((40px, 36px, 32px, 28px), $index),
257
+ tonal-container-height: list.nth((40px, 36px, 32px, 28px), $index),
258
+ tonal-touch-target-display: list.nth((block, block, none, none), $index),
259
+ );
260
+ }
@@ -1,7 +1,10 @@
1
1
  @use 'sass:map';
2
+ @use 'sass:list';
2
3
  @use '../core/style/sass-utils';
3
4
  @use '../core/tokens/m3-utils';
4
5
  @use '../core/style/elevation';
6
+ @use '../core/theming/theming';
7
+ @use '../core/theming/inspection';
5
8
 
6
9
  // The prefix used to generate the fully qualified name for tokens in this file.
7
10
  $prefix: (mat, fab);
@@ -172,3 +175,13 @@ $prefix: (mat, fab);
172
175
 
173
176
  @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots);
174
177
  }
178
+
179
+ // Tokens that can be configured through Angular Material's density theming API.
180
+ @function get-density-tokens($theme) {
181
+ $scale: theming.clamp-density(inspection.get-theme-density($theme), -3);
182
+ $index: ($scale * -1) + 1;
183
+
184
+ @return (
185
+ touch-target-display: list.nth((block, block, none, none), $index),
186
+ );
187
+ }
@@ -1,6 +1,9 @@
1
1
  @use 'sass:map';
2
+ @use 'sass:list';
2
3
  @use '../core/tokens/m3-utils';
3
4
  @use '../core/style/sass-utils';
5
+ @use '../core/theming/theming';
6
+ @use '../core/theming/inspection';
4
7
 
5
8
  // The prefix used to generate the fully qualified name for tokens in this file.
6
9
  $prefix: (mat, icon-button);
@@ -24,7 +27,6 @@ $prefix: (mat, icon-button);
24
27
  disabled-icon-color: sass-utils.safe-color-change(
25
28
  map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
26
29
  icon-size: if($exclude-hardcoded, null, 24px),
27
- state-layer-size: if($exclude-hardcoded, null, 40px),
28
30
  icon-color: map.get($systems, md-sys-color, on-surface-variant),
29
31
  );
30
32
 
@@ -65,3 +67,15 @@ $prefix: (mat, icon-button);
65
67
 
66
68
  @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots);
67
69
  }
70
+
71
+ // Tokens that can be configured through Angular Material's density theming API.
72
+ @function get-density-tokens($theme) {
73
+ $scale: theming.clamp-density(inspection.get-theme-density($theme), -5);
74
+ $index: ($scale * -1) + 1;
75
+
76
+ @return (
77
+ touch-target-display: list.nth((block, block, none, none, none, none), $index),
78
+ // The size caps out at 24px, because anything lower will be smaller than the icon.
79
+ state-layer-size: list.nth((40px, 36px, 32px, 28px, 24px, 24px), $index),
80
+ );
81
+ }
package/button/index.d.ts CHANGED
@@ -1,10 +1,217 @@
1
- export { M as MAT_BUTTON_CONFIG, f as MAT_FAB_DEFAULT_OPTIONS, g as MAT_FAB_DEFAULT_OPTIONS_FACTORY, d as MatAnchor, c as MatButton, a as MatButtonAppearance, b as MatButtonConfig, n as MatButtonModule, j as MatFabAnchor, h as MatFabButton, e as MatFabDefaultOptions, m as MatIconAnchor, l as MatIconButton, k as MatMiniFabAnchor, i as MatMiniFabButton } from '../module.d-9a1d1c76.js';
2
- import '@angular/core';
3
- import '../common-module.d-421e3498.js';
1
+ import { FocusOrigin } from '@angular/cdk/a11y';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, AfterViewInit, OnDestroy, ElementRef, NgZone } from '@angular/core';
4
+ import { ThemePalette } from '../palette.d-fF1us9u8.js';
5
+ import { MatRippleLoader } from '../ripple-loader.d-DL-hT7NH.js';
6
+ import { MatCommonModule } from '../common-module.d-CUT8AqiB.js';
7
+ import { MatRippleModule } from '../index.d-_XdEyDn3.js';
4
8
  import '@angular/cdk/bidi';
5
- import '../index.d-511f9e6c.js';
6
- import '../ripple.d-305c30f3.js';
9
+ import '../ripple.d-DBFnJ3Aa.js';
7
10
  import '@angular/cdk/platform';
8
- import '@angular/cdk/a11y';
9
- import '../palette.d-1d8ebc0d.js';
10
- import '../ripple-loader.d-f51e5eb6.js';
11
+
12
+ /**
13
+ * Possible appearances for a `MatButton`.
14
+ * See https://m3.material.io/components/buttons/overview
15
+ */
16
+ type MatButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';
17
+ /** Object that can be used to configure the default options for the button component. */
18
+ interface MatButtonConfig {
19
+ /** Whether disabled buttons should be interactive. */
20
+ disabledInteractive?: boolean;
21
+ /** Default palette color to apply to buttons. */
22
+ color?: ThemePalette;
23
+ /** Default appearance for plain buttons (not icon buttons or FABs). */
24
+ defaultAppearance?: MatButtonAppearance;
25
+ }
26
+ /** Injection token that can be used to provide the default options the button component. */
27
+ declare const MAT_BUTTON_CONFIG: InjectionToken<MatButtonConfig>;
28
+ /** Base class for all buttons. */
29
+ declare class MatButtonBase implements AfterViewInit, OnDestroy {
30
+ _elementRef: ElementRef<HTMLElement>;
31
+ protected _ngZone: NgZone;
32
+ protected _animationsDisabled: boolean;
33
+ protected readonly _config: MatButtonConfig | null;
34
+ private readonly _focusMonitor;
35
+ private _cleanupClick;
36
+ private _renderer;
37
+ /**
38
+ * Handles the lazy creation of the MatButton ripple.
39
+ * Used to improve initial load time of large applications.
40
+ */
41
+ protected _rippleLoader: MatRippleLoader;
42
+ /** Whether the button is set on an anchor node. */
43
+ protected _isAnchor: boolean;
44
+ /** Whether this button is a FAB. Used to apply the correct class on the ripple. */
45
+ protected _isFab: boolean;
46
+ /**
47
+ * Theme color of the button. This API is supported in M2 themes only, it has
48
+ * no effect in M3 themes. For color customization in M3, see https://material.angular.io/components/button/styling.
49
+ *
50
+ * For information on applying color variants in M3, see
51
+ * https://material.angular.io/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants
52
+ */
53
+ color?: string | null;
54
+ /** Whether the ripple effect is disabled or not. */
55
+ get disableRipple(): boolean;
56
+ set disableRipple(value: any);
57
+ private _disableRipple;
58
+ /** Whether the button is disabled. */
59
+ get disabled(): boolean;
60
+ set disabled(value: any);
61
+ private _disabled;
62
+ /** `aria-disabled` value of the button. */
63
+ ariaDisabled: boolean | undefined;
64
+ /**
65
+ * Natively disabled buttons prevent focus and any pointer events from reaching the button.
66
+ * In some scenarios this might not be desirable, because it can prevent users from finding out
67
+ * why the button is disabled (e.g. via tooltip). This is also useful for buttons that may
68
+ * become disabled when activated, which would cause focus to be transferred to the document
69
+ * body instead of remaining on the button.
70
+ *
71
+ * Enabling this input will change the button so that it is styled to be disabled and will be
72
+ * marked as `aria-disabled`, but it will allow the button to receive events and focus.
73
+ *
74
+ * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't
75
+ * meant to be tabbable and you have to prevent the button action (e.g. form submissions).
76
+ */
77
+ disabledInteractive: boolean;
78
+ /** Tab index for the button. */
79
+ tabIndex: number;
80
+ /**
81
+ * Backwards-compatibility input that handles pre-existing `[tabindex]` bindings.
82
+ * @docs-private
83
+ */
84
+ set _tabindex(value: number);
85
+ constructor(...args: unknown[]);
86
+ ngAfterViewInit(): void;
87
+ ngOnDestroy(): void;
88
+ /** Focuses the button. */
89
+ focus(origin?: FocusOrigin, options?: FocusOptions): void;
90
+ protected _getAriaDisabled(): boolean | null;
91
+ protected _getDisabledAttribute(): true | null;
92
+ private _updateRippleDisabled;
93
+ protected _getTabIndex(): number;
94
+ private _setupAsAnchor;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonBase, never>;
96
+ 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; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "_tabindex": { "alias": "tabindex"; "required": false; }; }, {}, never, never, true, never>;
97
+ static ngAcceptInputType_disableRipple: unknown;
98
+ static ngAcceptInputType_disabled: unknown;
99
+ static ngAcceptInputType_ariaDisabled: unknown;
100
+ static ngAcceptInputType_disabledInteractive: unknown;
101
+ static ngAcceptInputType_tabIndex: unknown;
102
+ static ngAcceptInputType__tabindex: unknown;
103
+ }
104
+
105
+ /**
106
+ * Material Design button component. Users interact with a button to perform an action.
107
+ * See https://m3.material.io/components/buttons/overview
108
+ */
109
+ declare class MatButton extends MatButtonBase {
110
+ /** Appearance of the button. */
111
+ get appearance(): MatButtonAppearance | null;
112
+ set appearance(value: MatButtonAppearance | '');
113
+ private _appearance;
114
+ constructor(...args: unknown[]);
115
+ /** Programmatically sets the appearance of the button. */
116
+ setAppearance(appearance: MatButtonAppearance): void;
117
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatButton, never>;
118
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatButton, " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", ["matButton", "matAnchor"], { "appearance": { "alias": "matButton"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
119
+ }
120
+ /**
121
+ * Material Design button component for anchor elements. Anchor elements are used to provide
122
+ * links for the user to navigate across different routes or pages.
123
+ * See https://m3.material.io/components/buttons/overview
124
+ */
125
+ declare const MatAnchor: typeof MatButton;
126
+ type MatAnchor = MatButton;
127
+
128
+ /** Default FAB options that can be overridden. */
129
+ interface MatFabDefaultOptions {
130
+ /**
131
+ * Default theme color of the button. This API is supported in M2 themes
132
+ * only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.io/components/button/styling.
133
+ *
134
+ * For information on applying color variants in M3, see
135
+ * https://material.angular.io/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants.
136
+ */
137
+ color?: ThemePalette;
138
+ }
139
+ /** Injection token to be used to override the default options for FAB. */
140
+ declare const MAT_FAB_DEFAULT_OPTIONS: InjectionToken<MatFabDefaultOptions>;
141
+ /**
142
+ * @docs-private
143
+ * @deprecated No longer used, will be removed.
144
+ * @breaking-change 21.0.0
145
+ */
146
+ declare function MAT_FAB_DEFAULT_OPTIONS_FACTORY(): MatFabDefaultOptions;
147
+ /**
148
+ * Material Design floating action button (FAB) component. These buttons represent the primary
149
+ * or most common action for users to interact with.
150
+ * See https://m3.material.io/components/floating-action-button/overview
151
+ *
152
+ * The `MatFabButton` class has two appearances: normal and extended.
153
+ */
154
+ declare class MatFabButton extends MatButtonBase {
155
+ private _options;
156
+ _isFab: boolean;
157
+ extended: boolean;
158
+ constructor(...args: unknown[]);
159
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatFabButton, never>;
160
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatFabButton, "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", ["matButton", "matAnchor"], { "extended": { "alias": "extended"; "required": false; }; }, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
161
+ static ngAcceptInputType_extended: unknown;
162
+ }
163
+ /**
164
+ * Material Design mini floating action button (FAB) component. These buttons represent the primary
165
+ * or most common action for users to interact with.
166
+ * See https://m3.material.io/components/floating-action-button/overview
167
+ */
168
+ declare class MatMiniFabButton extends MatButtonBase {
169
+ private _options;
170
+ _isFab: boolean;
171
+ constructor(...args: unknown[]);
172
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatMiniFabButton, never>;
173
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatMiniFabButton, "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", ["matButton", "matAnchor"], {}, {}, never, [".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])", "*", ".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"], true, never>;
174
+ }
175
+ /**
176
+ * Material Design floating action button (FAB) component for anchor elements. Anchor elements
177
+ * are used to provide links for the user to navigate across different routes or pages.
178
+ * See https://m3.material.io/components/floating-action-button/overview
179
+ *
180
+ * The `MatFabAnchor` class has two appearances: normal and extended.
181
+ */
182
+ declare const MatFabAnchor: typeof MatFabButton;
183
+ type MatFabAnchor = MatFabButton;
184
+ /**
185
+ * Material Design mini floating action button (FAB) component for anchor elements. Anchor elements
186
+ * are used to provide links for the user to navigate across different routes or pages.
187
+ * See https://m3.material.io/components/floating-action-button/overview
188
+ */
189
+ declare const MatMiniFabAnchor: typeof MatMiniFabButton;
190
+ type MatMiniFabAnchor = MatMiniFabButton;
191
+
192
+ /**
193
+ * Material Design icon button component. This type of button displays a single interactive icon for
194
+ * users to perform an action.
195
+ * See https://material.io/develop/web/components/buttons/icon-buttons/
196
+ */
197
+ declare class MatIconButton extends MatButtonBase {
198
+ constructor(...args: unknown[]);
199
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatIconButton, never>;
200
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatIconButton, "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", ["matButton", "matAnchor"], {}, {}, never, ["*"], true, never>;
201
+ }
202
+ /**
203
+ * Material Design icon button component for anchor elements. This button displays a single
204
+ * interaction icon that allows users to navigate across different routes or pages.
205
+ * See https://material.io/develop/web/components/buttons/icon-buttons/
206
+ */
207
+ declare const MatIconAnchor: typeof MatIconButton;
208
+ type MatIconAnchor = MatIconButton;
209
+
210
+ declare class MatButtonModule {
211
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonModule, never>;
212
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatButtonModule, never, [typeof MatCommonModule, typeof MatRippleModule, typeof MatButton, typeof MatMiniFabButton, typeof MatIconButton, typeof MatFabButton], [typeof MatCommonModule, typeof MatButton, typeof MatMiniFabButton, typeof MatIconButton, typeof MatFabButton]>;
213
+ static ɵinj: i0.ɵɵInjectorDeclaration<MatButtonModule>;
214
+ }
215
+
216
+ export { MAT_BUTTON_CONFIG, MAT_FAB_DEFAULT_OPTIONS, MAT_FAB_DEFAULT_OPTIONS_FACTORY, MatAnchor, MatButton, MatButtonModule, MatFabAnchor, MatFabButton, MatIconAnchor, MatIconButton, MatMiniFabAnchor, MatMiniFabButton };
217
+ export type { MatButtonAppearance, MatButtonConfig, MatFabDefaultOptions };
@@ -5,6 +5,7 @@
5
5
  @use '../core/tokens/token-utils';
6
6
  @use '../core/typography/typography';
7
7
  @use './m2-button-toggle';
8
+ @use './m3-button-toggle';
8
9
 
9
10
  /// Outputs base theme styles (styles not dependent on the color, typography, or density settings)
10
11
  /// for the mat-button-toggle.
@@ -59,7 +60,8 @@
59
60
  /// @param {Map} $theme The theme to generate density styles for.
60
61
  @mixin density($theme) {
61
62
  @if inspection.get-theme-version($theme) == 1 {
62
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
63
+ @include token-utils.create-token-values(
64
+ m3-button-toggle.$prefix, m3-button-toggle.get-density-tokens($theme));
63
65
  } @else {
64
66
  @include sass-utils.current-selector-or-root() {
65
67
  @include token-utils.create-token-values-mixed(
@@ -97,6 +99,9 @@
97
99
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-button-toggle') {
98
100
  @if inspection.get-theme-version($theme) == 1 {
99
101
  @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
102
+ @if inspection.theme-has($theme, density) {
103
+ @include density($theme);
104
+ }
100
105
  } @else {
101
106
  @include base($theme);
102
107
  @if inspection.theme-has($theme, color) {
@@ -1,6 +1,9 @@
1
1
  @use 'sass:map';
2
+ @use 'sass:list';
2
3
  @use '../core/style/sass-utils';
3
4
  @use '../core/tokens/m3-utils';
5
+ @use '../core/theming/theming';
6
+ @use '../core/theming/inspection';
4
7
 
5
8
  // The prefix used to generate the fully qualified name for tokens in this file.
6
9
  $prefix: (mat, button-toggle);
@@ -58,3 +61,13 @@ $prefix: (mat, button-toggle);
58
61
 
59
62
  @return m3-utils.namespace($prefix, ($tokens, $color-variants), $token-slots);
60
63
  }
64
+
65
+ // Tokens that can be configured through Angular Material's density theming API.
66
+ @function get-density-tokens($theme) {
67
+ $scale: theming.clamp-density(inspection.get-theme-density($theme), -4);
68
+ $index: ($scale * -1) + 1;
69
+
70
+ @return (
71
+ height: list.nth((40px, 40px, 40px, 36px, 24px), $index),
72
+ );
73
+ }