@angular/material 20.0.0-rc.0 → 20.0.0-rc.2

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 (352) hide show
  1. package/autocomplete/_autocomplete-theme.scss +17 -37
  2. package/autocomplete/_m2-autocomplete.scss +3 -6
  3. package/autocomplete/_m3-autocomplete.scss +14 -9
  4. package/badge/_badge-theme.scss +26 -39
  5. package/badge/_m2-badge.scss +32 -35
  6. package/badge/_m3-badge.scss +41 -70
  7. package/bottom-sheet/_bottom-sheet-theme.scss +16 -27
  8. package/bottom-sheet/_m2-bottom-sheet.scss +11 -11
  9. package/bottom-sheet/_m3-bottom-sheet.scss +18 -17
  10. package/button/_button-theme.scss +29 -46
  11. package/button/_fab-theme.scss +22 -41
  12. package/button/_icon-button-theme.scss +29 -46
  13. package/button/_m2-button.scss +135 -133
  14. package/button/_m2-fab.scss +51 -53
  15. package/button/_m2-icon-button.scss +14 -17
  16. package/button/_m3-button.scss +145 -240
  17. package/button/_m3-fab.scss +69 -166
  18. package/button/_m3-icon-button.scss +28 -56
  19. package/button-toggle/_button-toggle-theme.scss +23 -49
  20. package/button-toggle/_m2-button-toggle.scss +45 -37
  21. package/button-toggle/_m3-button-toggle.scss +53 -53
  22. package/card/_card-theme.scss +16 -37
  23. package/card/_m2-card.scss +24 -25
  24. package/card/_m3-card.scss +32 -36
  25. package/checkbox/_checkbox-theme.scss +25 -52
  26. package/checkbox/_m2-checkbox.scss +32 -35
  27. package/checkbox/_m3-checkbox.scss +49 -84
  28. package/chips/_chips-theme.scss +24 -44
  29. package/chips/_m2-chip.scss +47 -51
  30. package/chips/_m3-chip.scss +63 -110
  31. package/core/_core-theme.scss +58 -56
  32. package/core/_core.scss +15 -18
  33. package/core/_m2-app.scss +3 -7
  34. package/core/_m3-app.scss +37 -24
  35. package/core/color/_all-color.scss +1 -1
  36. package/core/option/_m2-optgroup.scss +6 -9
  37. package/core/option/_m2-option.scss +10 -13
  38. package/core/option/_m3-optgroup.scss +16 -13
  39. package/core/option/_m3-option.scss +28 -48
  40. package/core/option/_optgroup-theme.scss +14 -25
  41. package/core/option/_option-theme.scss +22 -33
  42. package/core/ripple/_m2-ripple.scss +1 -4
  43. package/core/ripple/_m3-ripple.scss +11 -13
  44. package/core/ripple/_ripple-theme.scss +15 -33
  45. package/core/ripple/_ripple.scss +5 -5
  46. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +10 -11
  47. package/core/selection/pseudo-checkbox/_m3-pseudo-checkbox.scss +25 -40
  48. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +16 -27
  49. package/core/style/_sass-utils.scss +0 -29
  50. package/core/theming/_all-theme.scss +41 -0
  51. package/core/theming/_color-api-backwards-compatibility.scss +49 -35
  52. package/core/theming/_definition.scss +78 -72
  53. package/core/theming/_inspection.scss +23 -46
  54. package/core/tokens/_m3-system.scss +106 -112
  55. package/core/tokens/_m3-tokens.scss +30 -354
  56. package/core/tokens/_m3-utils.scss +36 -73
  57. package/core/tokens/_token-utils.scss +53 -226
  58. package/core/tokens/m3/_index.scss +7 -8
  59. package/core/tokens/m3/_md-sys-color.scss +125 -137
  60. package/core/tokens/m3/_md-sys-elevation.scss +7 -7
  61. package/core/tokens/m3/_md-sys-motion.scss +27 -38
  62. package/core/tokens/m3/_md-sys-shape.scss +13 -16
  63. package/core/tokens/m3/_md-sys-state.scss +5 -5
  64. package/core/tokens/m3/_md-sys-typescale.scss +107 -306
  65. package/core/tokens/m3/_theme.scss +47 -0
  66. package/datepicker/_datepicker-theme.scss +24 -39
  67. package/datepicker/_m2-datepicker.scss +55 -50
  68. package/datepicker/_m3-datepicker.scss +65 -113
  69. package/datepicker/index.d.ts +1 -0
  70. package/dialog/_dialog-theme.scss +15 -27
  71. package/dialog/_m2-dialog.scss +25 -26
  72. package/dialog/_m3-dialog.scss +35 -35
  73. package/divider/_divider-theme.scss +14 -25
  74. package/divider/_m2-divider.scss +2 -5
  75. package/divider/_m3-divider.scss +13 -13
  76. package/expansion/_expansion-theme.scss +15 -33
  77. package/expansion/_m2-expansion.scss +28 -27
  78. package/expansion/_m3-expansion.scss +41 -36
  79. package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
  80. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  81. package/fesm2022/autocomplete.mjs +23 -23
  82. package/fesm2022/autocomplete.mjs.map +1 -1
  83. package/fesm2022/badge/testing.mjs.map +1 -1
  84. package/fesm2022/badge.mjs +11 -11
  85. package/fesm2022/badge.mjs.map +1 -1
  86. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  87. package/fesm2022/bottom-sheet.mjs +11 -11
  88. package/fesm2022/bottom-sheet.mjs.map +1 -1
  89. package/fesm2022/button/testing.mjs.map +1 -1
  90. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  91. package/fesm2022/button-toggle.mjs +20 -24
  92. package/fesm2022/button-toggle.mjs.map +1 -1
  93. package/fesm2022/button.mjs +21 -21
  94. package/fesm2022/button.mjs.map +1 -1
  95. package/fesm2022/card/testing.mjs.map +1 -1
  96. package/fesm2022/card.mjs +47 -47
  97. package/fesm2022/card.mjs.map +1 -1
  98. package/fesm2022/checkbox/testing.mjs.map +1 -1
  99. package/fesm2022/checkbox.mjs +11 -11
  100. package/fesm2022/checkbox.mjs.map +1 -1
  101. package/fesm2022/chips/testing.mjs.map +1 -1
  102. package/fesm2022/chips.mjs +52 -52
  103. package/fesm2022/chips.mjs.map +1 -1
  104. package/fesm2022/{common-module-DZl8g1kc.mjs → common-module-BeAwwoi6.mjs} +5 -5
  105. package/fesm2022/common-module-BeAwwoi6.mjs.map +1 -0
  106. package/fesm2022/core/testing.mjs.map +1 -1
  107. package/fesm2022/core.mjs +24 -24
  108. package/fesm2022/core.mjs.map +1 -1
  109. package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
  110. package/fesm2022/date-range-input-harness-Bp1T4oUe.mjs.map +1 -1
  111. package/fesm2022/datepicker/testing.mjs.map +1 -1
  112. package/fesm2022/datepicker.mjs +99 -95
  113. package/fesm2022/datepicker.mjs.map +1 -1
  114. package/fesm2022/dialog/testing.mjs +18 -5
  115. package/fesm2022/dialog/testing.mjs.map +1 -1
  116. package/fesm2022/dialog.mjs +2 -2
  117. package/fesm2022/dialog.mjs.map +1 -1
  118. package/fesm2022/divider/testing.mjs.map +1 -1
  119. package/fesm2022/divider.mjs +8 -8
  120. package/fesm2022/divider.mjs.map +1 -1
  121. package/fesm2022/{error-options-BWOa3B4G.mjs → error-options-C79tZCHG.mjs} +7 -7
  122. package/fesm2022/error-options-C79tZCHG.mjs.map +1 -0
  123. package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
  124. package/fesm2022/expansion/testing.mjs.map +1 -1
  125. package/fesm2022/expansion.mjs +28 -28
  126. package/fesm2022/expansion.mjs.map +1 -1
  127. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  128. package/fesm2022/form-field/testing.mjs.map +1 -1
  129. package/fesm2022/{form-field-B3aq6ikj.mjs → form-field-Cdw3iYrm.mjs} +70 -62
  130. package/fesm2022/form-field-Cdw3iYrm.mjs.map +1 -0
  131. package/fesm2022/form-field.mjs +3 -3
  132. package/fesm2022/form-field.mjs.map +1 -1
  133. package/fesm2022/grid-list/testing.mjs.map +1 -1
  134. package/fesm2022/grid-list.mjs +24 -24
  135. package/fesm2022/grid-list.mjs.map +1 -1
  136. package/fesm2022/icon/testing.mjs +8 -8
  137. package/fesm2022/icon/testing.mjs.map +1 -1
  138. package/fesm2022/{icon-button-DH8TBWWr.mjs → icon-button-D5zzuoJc.mjs} +10 -10
  139. package/fesm2022/icon-button-D5zzuoJc.mjs.map +1 -0
  140. package/fesm2022/{icon-registry-Bk5cM8Z5.mjs → icon-registry-DVrJNtTv.mjs} +4 -4
  141. package/fesm2022/icon-registry-DVrJNtTv.mjs.map +1 -0
  142. package/fesm2022/icon.mjs +10 -10
  143. package/fesm2022/icon.mjs.map +1 -1
  144. package/fesm2022/index-CrjYeoWX.mjs +22 -0
  145. package/fesm2022/index-CrjYeoWX.mjs.map +1 -0
  146. package/fesm2022/index-DTIUI_kX.mjs +20 -0
  147. package/fesm2022/index-DTIUI_kX.mjs.map +1 -0
  148. package/fesm2022/input/testing.mjs.map +1 -1
  149. package/fesm2022/input-harness-oQzj5EsQ.mjs.map +1 -1
  150. package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
  151. package/fesm2022/input.mjs +12 -12
  152. package/fesm2022/input.mjs.map +1 -1
  153. package/fesm2022/{internal-form-field-DVvKYBKJ.mjs → internal-form-field-B9_shC5z.mjs} +4 -4
  154. package/fesm2022/internal-form-field-B9_shC5z.mjs.map +1 -0
  155. package/fesm2022/{line-Dwrcg_t9.mjs → line-XysKlyvU.mjs} +9 -9
  156. package/fesm2022/line-XysKlyvU.mjs.map +1 -0
  157. package/fesm2022/list/testing.mjs.map +1 -1
  158. package/fesm2022/list.mjs +55 -55
  159. package/fesm2022/list.mjs.map +1 -1
  160. package/fesm2022/material.mjs.map +1 -1
  161. package/fesm2022/menu/testing.mjs.map +1 -1
  162. package/fesm2022/menu.mjs +20 -20
  163. package/fesm2022/menu.mjs.map +1 -1
  164. package/fesm2022/{module-hX_hFZhs.mjs → module-CVpKZX1V.mjs} +7 -7
  165. package/fesm2022/module-CVpKZX1V.mjs.map +1 -0
  166. package/fesm2022/{module-B-ci3hbc.mjs → module-CdXqcjot.mjs} +28 -28
  167. package/fesm2022/module-CdXqcjot.mjs.map +1 -0
  168. package/fesm2022/{module-X29xYsIk.mjs → module-CwYXiMoV.mjs} +12 -12
  169. package/fesm2022/module-CwYXiMoV.mjs.map +1 -0
  170. package/fesm2022/{module-D9IKGg_w.mjs → module-r2U_2G3G.mjs} +17 -17
  171. package/fesm2022/module-r2U_2G3G.mjs.map +1 -0
  172. package/fesm2022/{option-MOeehkAg.mjs → option-D4ZNnnWi.mjs} +11 -11
  173. package/fesm2022/option-D4ZNnnWi.mjs.map +1 -0
  174. package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
  175. package/fesm2022/paginator/testing.mjs.map +1 -1
  176. package/fesm2022/paginator.mjs +25 -25
  177. package/fesm2022/paginator.mjs.map +1 -1
  178. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  179. package/fesm2022/progress-bar.mjs +8 -8
  180. package/fesm2022/progress-bar.mjs.map +1 -1
  181. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  182. package/fesm2022/progress-spinner.mjs +8 -8
  183. package/fesm2022/progress-spinner.mjs.map +1 -1
  184. package/fesm2022/{pseudo-checkbox-BFGIaGxz.mjs → pseudo-checkbox-DQugCpur.mjs} +4 -4
  185. package/fesm2022/pseudo-checkbox-DQugCpur.mjs.map +1 -0
  186. package/fesm2022/pseudo-checkbox-module-BXWS_-PP.mjs +20 -0
  187. package/fesm2022/pseudo-checkbox-module-BXWS_-PP.mjs.map +1 -0
  188. package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
  189. package/fesm2022/radio/testing.mjs.map +1 -1
  190. package/fesm2022/radio.mjs +19 -16
  191. package/fesm2022/radio.mjs.map +1 -1
  192. package/fesm2022/{ripple-CuyVtN3V.mjs → ripple-BtLhcfGO.mjs} +7 -7
  193. package/fesm2022/ripple-BtLhcfGO.mjs.map +1 -0
  194. package/fesm2022/{ripple-loader-pOctSZby.mjs → ripple-loader-DBdhLqHy.mjs} +5 -5
  195. package/fesm2022/ripple-loader-DBdhLqHy.mjs.map +1 -0
  196. package/fesm2022/select/testing.mjs.map +1 -1
  197. package/fesm2022/select.mjs +12 -12
  198. package/fesm2022/select.mjs.map +1 -1
  199. package/fesm2022/sidenav/testing.mjs.map +1 -1
  200. package/fesm2022/sidenav.mjs +29 -25
  201. package/fesm2022/sidenav.mjs.map +1 -1
  202. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  203. package/fesm2022/slide-toggle.mjs +11 -11
  204. package/fesm2022/slide-toggle.mjs.map +1 -1
  205. package/fesm2022/slider/testing.mjs.map +1 -1
  206. package/fesm2022/slider.mjs +21 -21
  207. package/fesm2022/slider.mjs.map +1 -1
  208. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  209. package/fesm2022/snack-bar.mjs +29 -29
  210. package/fesm2022/snack-bar.mjs.map +1 -1
  211. package/fesm2022/sort/testing.mjs.map +1 -1
  212. package/fesm2022/sort.mjs +15 -15
  213. package/fesm2022/sort.mjs.map +1 -1
  214. package/fesm2022/stepper/testing.mjs.map +1 -1
  215. package/fesm2022/stepper.mjs +38 -38
  216. package/fesm2022/stepper.mjs.map +1 -1
  217. package/fesm2022/{structural-styles-CasigI3l.mjs → structural-styles-DWEe15sC.mjs} +4 -4
  218. package/fesm2022/structural-styles-DWEe15sC.mjs.map +1 -0
  219. package/fesm2022/table/testing.mjs.map +1 -1
  220. package/fesm2022/table.mjs +56 -56
  221. package/fesm2022/table.mjs.map +1 -1
  222. package/fesm2022/tabs/testing.mjs.map +1 -1
  223. package/fesm2022/tabs.mjs +67 -63
  224. package/fesm2022/tabs.mjs.map +1 -1
  225. package/fesm2022/timepicker/testing.mjs.map +1 -1
  226. package/fesm2022/timepicker.mjs +20 -20
  227. package/fesm2022/timepicker.mjs.map +1 -1
  228. package/fesm2022/toolbar/testing.mjs.map +1 -1
  229. package/fesm2022/toolbar.mjs +12 -12
  230. package/fesm2022/toolbar.mjs.map +1 -1
  231. package/fesm2022/tooltip/testing.mjs.map +1 -1
  232. package/fesm2022/tooltip.mjs +2 -2
  233. package/fesm2022/tooltip.mjs.map +1 -1
  234. package/fesm2022/tree/testing.mjs.map +1 -1
  235. package/fesm2022/tree.mjs +26 -26
  236. package/fesm2022/tree.mjs.map +1 -1
  237. package/form-field/_form-field-theme.scss +23 -55
  238. package/form-field/_m2-form-field.scss +112 -91
  239. package/form-field/_m3-form-field.scss +116 -131
  240. package/form-field/index.d.ts +2 -2
  241. package/{form-field.d-CIxjiZIX.d.ts → form-field.d-C6p5uYjG.d.ts} +4 -2
  242. package/grid-list/_grid-list-theme.scss +13 -23
  243. package/grid-list/_m2-grid-list.scss +8 -7
  244. package/grid-list/_m3-grid-list.scss +14 -15
  245. package/icon/_icon-theme.scss +20 -30
  246. package/icon/_m2-icon.scss +1 -4
  247. package/icon/_m3-icon.scss +13 -27
  248. package/input/_input-theme.scss +7 -40
  249. package/input/index.d.ts +4 -4
  250. package/list/_list-theme.scss +22 -52
  251. package/list/_m2-list.scss +56 -55
  252. package/list/_m3-list.scss +69 -67
  253. package/menu/_m2-menu.scss +22 -25
  254. package/menu/_m3-menu.scss +35 -38
  255. package/menu/_menu-theme.scss +15 -27
  256. package/{module.d-CDrqNC7Q.d.ts → module.d-D1Ym5Wf2.d.ts} +1 -1
  257. package/{module.d-DZ8DPHcV.d.ts → module.d-DMabQ4_c.d.ts} +2 -2
  258. package/package.json +2 -2
  259. package/paginator/_m2-paginator.scss +16 -17
  260. package/paginator/_m3-paginator.scss +28 -27
  261. package/paginator/_paginator-theme.scss +14 -40
  262. package/paginator/index.d.ts +5 -5
  263. package/{paginator.d-Ci_wE-RV.d.ts → paginator.d-DuJ-oYgT.d.ts} +1 -1
  264. package/prebuilt-themes/azure-blue.css +1 -1
  265. package/prebuilt-themes/cyan-orange.css +1 -1
  266. package/prebuilt-themes/deeppurple-amber.css +1 -1
  267. package/prebuilt-themes/indigo-pink.css +1 -1
  268. package/prebuilt-themes/magenta-violet.css +1 -1
  269. package/prebuilt-themes/pink-bluegrey.css +1 -1
  270. package/prebuilt-themes/purple-green.css +1 -1
  271. package/prebuilt-themes/rose-red.css +1 -1
  272. package/progress-bar/_m2-progress-bar.scss +5 -8
  273. package/progress-bar/_m3-progress-bar.scss +17 -26
  274. package/progress-bar/_progress-bar-theme.scss +17 -27
  275. package/progress-spinner/_m2-progress-spinner.scss +3 -6
  276. package/progress-spinner/_m3-progress-spinner.scss +15 -22
  277. package/progress-spinner/_progress-spinner-theme.scss +20 -43
  278. package/radio/_m2-radio.scss +24 -27
  279. package/radio/_m3-radio.scss +44 -58
  280. package/radio/_radio-theme.scss +23 -50
  281. package/schematics/ng-add/index.js +1 -1
  282. package/schematics/ng-generate/theme-color/index_bundled.js +2 -2
  283. package/schematics/ng-generate/theme-color/index_bundled.js.map +1 -1
  284. package/schematics/ng-update/index_bundled.js +56 -2
  285. package/schematics/ng-update/index_bundled.js.map +1 -1
  286. package/select/_m2-select.scss +15 -18
  287. package/select/_m3-select.scss +32 -38
  288. package/select/_select-theme.scss +23 -50
  289. package/select/index.d.ts +3 -3
  290. package/sidenav/_m2-sidenav.scss +9 -12
  291. package/sidenav/_m3-sidenav.scss +20 -22
  292. package/sidenav/_sidenav-theme.scss +14 -25
  293. package/slide-toggle/_m2-slide-toggle.scss +82 -83
  294. package/slide-toggle/_m3-slide-toggle.scss +102 -143
  295. package/slide-toggle/_slide-toggle-theme.scss +26 -61
  296. package/slider/_m2-slider.scss +46 -46
  297. package/slider/_m3-slider.scss +54 -109
  298. package/slider/_slider-theme.scss +23 -34
  299. package/snack-bar/_m2-snack-bar.scss +10 -11
  300. package/snack-bar/_m3-snack-bar.scss +20 -19
  301. package/snack-bar/_snack-bar-theme.scss +14 -26
  302. package/sort/_m2-sort.scss +1 -4
  303. package/sort/_m3-sort.scss +11 -9
  304. package/sort/_sort-theme.scss +15 -27
  305. package/stepper/_m2-stepper.scss +32 -31
  306. package/stepper/_m3-stepper.scss +44 -79
  307. package/stepper/_stepper-theme.scss +22 -50
  308. package/table/_m2-table.scss +25 -26
  309. package/table/_m3-table.scss +36 -27
  310. package/table/_table-theme.scss +15 -32
  311. package/table/index.d.ts +2 -2
  312. package/tabs/_m2-tabs.scss +26 -29
  313. package/tabs/_m3-tabs.scss +40 -51
  314. package/tabs/_tabs-theme.scss +37 -58
  315. package/tabs/index.d.ts +5 -3
  316. package/timepicker/_m2-timepicker.scss +3 -6
  317. package/timepicker/_m3-timepicker.scss +14 -15
  318. package/timepicker/_timepicker-theme.scss +20 -45
  319. package/toolbar/_m2-toolbar.scss +11 -12
  320. package/toolbar/_m3-toolbar.scss +22 -17
  321. package/toolbar/_toolbar-theme.scss +13 -37
  322. package/tooltip/_m2-tooltip.scss +9 -11
  323. package/tooltip/_m3-tooltip.scss +19 -19
  324. package/tooltip/_tooltip-theme.scss +17 -35
  325. package/tree/_m2-tree.scss +6 -9
  326. package/tree/_m3-tree.scss +19 -16
  327. package/tree/_tree-theme.scss +14 -36
  328. package/core/tokens/m3/_md-ref-palette.scss +0 -100
  329. package/core/tokens/m3/_md-ref-typeface.scss +0 -14
  330. package/fesm2022/common-module-DZl8g1kc.mjs.map +0 -1
  331. package/fesm2022/error-options-BWOa3B4G.mjs.map +0 -1
  332. package/fesm2022/form-field-B3aq6ikj.mjs.map +0 -1
  333. package/fesm2022/icon-button-DH8TBWWr.mjs.map +0 -1
  334. package/fesm2022/icon-registry-Bk5cM8Z5.mjs.map +0 -1
  335. package/fesm2022/index-BHJ4tVIe.mjs +0 -22
  336. package/fesm2022/index-BHJ4tVIe.mjs.map +0 -1
  337. package/fesm2022/index-D2rZ0V78.mjs +0 -20
  338. package/fesm2022/index-D2rZ0V78.mjs.map +0 -1
  339. package/fesm2022/internal-form-field-DVvKYBKJ.mjs.map +0 -1
  340. package/fesm2022/line-Dwrcg_t9.mjs.map +0 -1
  341. package/fesm2022/module-B-ci3hbc.mjs.map +0 -1
  342. package/fesm2022/module-D9IKGg_w.mjs.map +0 -1
  343. package/fesm2022/module-X29xYsIk.mjs.map +0 -1
  344. package/fesm2022/module-hX_hFZhs.mjs.map +0 -1
  345. package/fesm2022/option-MOeehkAg.mjs.map +0 -1
  346. package/fesm2022/pseudo-checkbox-BFGIaGxz.mjs.map +0 -1
  347. package/fesm2022/pseudo-checkbox-module-Dxth-mPi.mjs +0 -20
  348. package/fesm2022/pseudo-checkbox-module-Dxth-mPi.mjs.map +0 -1
  349. package/fesm2022/ripple-CuyVtN3V.mjs.map +0 -1
  350. package/fesm2022/ripple-loader-pOctSZby.mjs.map +0 -1
  351. package/fesm2022/structural-styles-CasigI3l.mjs.map +0 -1
  352. package/schematics/tsconfig.json +0 -26
@@ -1,187 +1,90 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:list';
3
- @use '../core/style/sass-utils';
4
3
  @use '../core/tokens/m3-utils';
5
4
  @use '../core/style/elevation';
6
5
  @use '../core/theming/theming';
7
6
  @use '../core/theming/inspection';
8
-
9
- // The prefix used to generate the fully qualified name for tokens in this file.
10
- $prefix: (mat, fab);
7
+ @use '../core/tokens/m3';
11
8
 
12
9
  /// Generates custom tokens for the mat-fab.
13
- /// @param {Map} $systems The MDC system tokens
14
- /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
15
- /// @param {Map} $token-slots Possible token slots
16
- /// @return {Map} A set of custom tokens for the mat-fab
17
- @function get-tokens($systems, $exclude-hardcoded, $token-slots) {
18
- $tokens: (
19
- container-color: map.get($systems, md-sys-color, primary-container),
20
- container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
21
- container-shape: map.get($systems, md-sys-shape, corner-large),
22
- disabled-state-container-color: sass-utils.safe-color-change(
23
- map.get($systems, md-sys-color, on-surface), $alpha: 0.12),
24
- disabled-state-foreground-color: sass-utils.safe-color-change(
25
- map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
26
- extended-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
27
- extended-container-height: if($exclude-hardcoded, null, 56px),
28
- extended-container-shape: map.get($systems, md-sys-shape, corner-large),
29
- extended-focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
30
- extended-hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
31
- extended-label-text-font: map.get($systems, md-sys-typescale, label-large-font),
32
- extended-label-text-size: map.get($systems, md-sys-typescale, label-large-size),
33
- extended-label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking),
34
- extended-label-text-weight: map.get($systems, md-sys-typescale, label-large-weight),
35
- extended-pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
36
- focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
37
- focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
38
- foreground-color: map.get($systems, md-sys-color, on-primary-container),
39
- hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
40
- hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
41
- pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
42
- pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity),
43
- ripple-color: sass-utils.safe-color-change(
44
- map.get($systems, md-sys-color, on-primary-container),
45
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
46
- small-container-color: map.get($systems, md-sys-color, primary-container),
47
- small-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
48
- small-container-shape: map.get($systems, md-sys-shape, corner-medium),
49
- small-disabled-state-container-color: sass-utils.safe-color-change(
50
- map.get($systems, md-sys-color, on-surface), $alpha: 0.12),
51
- small-disabled-state-foreground-color: sass-utils.safe-color-change(
52
- map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
53
- small-focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
54
- small-focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
55
- small-foreground-color: map.get($systems, md-sys-color, on-primary-container),
56
- small-hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
57
- small-hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
58
- small-pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
59
- small-pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity),
60
- small-ripple-color: sass-utils.safe-color-change(
61
- map.get($systems, md-sys-color, on-primary-container),
62
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
63
- small-state-layer-color: map.get($systems, md-sys-color, on-primary-container),
64
- state-layer-color: map.get($systems, md-sys-color, on-primary-container),
65
- );
66
-
67
- $elevation-tokens: (
68
- extended-container-elevation-shadow,
69
- extended-focus-container-elevation-shadow,
70
- extended-hover-container-elevation-shadow,
71
- extended-pressed-container-elevation-shadow,
72
- small-container-elevation-shadow,
73
- small-focus-container-elevation-shadow,
74
- small-hover-container-elevation-shadow,
75
- small-pressed-container-elevation-shadow,
76
- );
77
-
78
- @each $token in $elevation-tokens {
79
- $elevation: map.get($tokens, $token);
80
-
81
- @if ($elevation != null) {
82
- $tokens: map.set($tokens, $token, elevation.get-box-shadow($elevation));
83
- }
10
+ @function get-tokens($theme: m3.$sys-theme, $color-variant: null) {
11
+ $system: m3-utils.get-system($theme);
12
+ @if $color-variant {
13
+ $system: m3-utils.replace-colors-with-variant($system, primary, $color-variant);
84
14
  }
85
15
 
86
- $variant-tokens: (
87
- // Color variants
88
- primary: (), // Default, no overrides needed.
89
- secondary: (
90
- container-color: map.get($systems, md-sys-color, secondary-container),
91
- container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
92
- container-shape: map.get($systems, md-sys-shape, corner-large),
93
- extended-container-height: if($exclude-hardcoded, null, 56px),
94
- extended-container-shape: map.get($systems, md-sys-shape, corner-large),
95
- extended-label-text-font: map.get($systems, md-sys-typescale, label-large-font),
96
- extended-label-text-size: map.get($systems, md-sys-typescale, label-large-size),
97
- extended-label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking),
98
- extended-label-text-weight: map.get($systems, md-sys-typescale, label-large-weight),
99
- focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
100
- focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
101
- foreground-color: map.get($systems, md-sys-color, on-secondary-container),
102
- hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
103
- hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
104
- pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
105
- ripple-color: sass-utils.safe-color-change(
106
- map.get($systems, md-sys-color, on-secondary-container),
107
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
108
- small-container-color: map.get($systems, md-sys-color, secondary-container),
109
- small-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
110
- small-container-shape: map.get($systems, md-sys-shape, corner-medium),
111
- small-focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
112
- small-focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
113
- small-foreground-color: map.get($systems, md-sys-color, on-secondary-container),
114
- small-hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
115
- small-hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
116
- small-pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
117
- small-pressed-state-layer-opacity:
118
- map.get($systems, md-sys-state, pressed-state-layer-opacity),
119
- small-ripple-color: sass-utils.safe-color-change(
120
- map.get($systems, md-sys-color, on-secondary-container),
121
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
122
- small-state-layer-color: map.get($systems, md-sys-color, on-secondary-container),
123
- state-layer-color: map.get($systems, md-sys-color, on-secondary-container),
16
+ $tokens: (
17
+ base: (
18
+ fab-container-shape: map.get($system, corner-large),
19
+ fab-extended-container-height: 56px,
20
+ fab-extended-container-shape: map.get($system, corner-large),
21
+ fab-small-container-shape: map.get($system, corner-medium),
22
+ fab-touch-target-display: null,
124
23
  ),
125
- tertiary: (
126
- container-color: map.get($systems, md-sys-color, tertiary-container),
127
- container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
128
- container-shape: map.get($systems, md-sys-shape, corner-large),
129
- extended-container-height: if($exclude-hardcoded, null, 56px),
130
- extended-container-shape: map.get($systems, md-sys-shape, corner-large),
131
- extended-label-text-font: map.get($systems, md-sys-typescale, label-large-font),
132
- extended-label-text-size: map.get($systems, md-sys-typescale, label-large-size),
133
- extended-label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking),
134
- extended-label-text-weight: map.get($systems, md-sys-typescale, label-large-weight),
135
- focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
136
- focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
137
- foreground-color: map.get($systems, md-sys-color, on-tertiary-container),
138
- hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
139
- hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
140
- pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
141
- ripple-color: sass-utils.safe-color-change(
142
- map.get($systems, md-sys-color, on-tertiary-container),
143
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
144
- small-container-color: map.get($systems, md-sys-color, tertiary-container),
145
- small-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
146
- small-container-shape: map.get($systems, md-sys-shape, corner-medium),
147
- small-focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
148
- small-focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
149
- small-foreground-color: map.get($systems, md-sys-color, on-tertiary-container),
150
- small-hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4),
151
- small-hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
152
- small-pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3),
153
- small-ripple-color: sass-utils.safe-color-change(
154
- map.get($systems, md-sys-color, on-tertiary-container),
155
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)),
156
- small-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container),
157
- state-layer-color: map.get($systems, md-sys-color, on-tertiary-container),
158
- )
159
- );
160
-
161
- $elevation-tokens: (
162
- container-elevation-shadow,
163
- focus-container-elevation-shadow,
164
- hover-container-elevation-shadow,
165
- pressed-container-elevation-shadow,
24
+ color: (
25
+ fab-container-color: map.get($system, primary-container),
26
+ fab-container-elevation-shadow: elevation.get-box-shadow(map.get($system, level3)),
27
+ fab-disabled-state-container-color:
28
+ m3-utils.color-with-opacity(map.get($system, on-surface), 12%),
29
+ fab-disabled-state-foreground-color:
30
+ m3-utils.color-with-opacity(map.get($system, on-surface), 38%),
31
+ fab-extended-container-elevation-shadow: elevation.get-box-shadow(map.get($system, level3)),
32
+ fab-extended-focus-container-elevation-shadow:
33
+ elevation.get-box-shadow(map.get($system, level3)),
34
+ fab-extended-hover-container-elevation-shadow:
35
+ elevation.get-box-shadow(map.get($system, level4)),
36
+ fab-extended-pressed-container-elevation-shadow: map.get($system, level3),
37
+ fab-focus-container-elevation-shadow: elevation.get-box-shadow(map.get($system, level3)),
38
+ fab-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
39
+ fab-foreground-color: map.get($system, on-primary-container),
40
+ fab-hover-container-elevation-shadow: elevation.get-box-shadow(map.get($system, level4)),
41
+ fab-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
42
+ fab-pressed-container-elevation-shadow: elevation.get-box-shadow(map.get($system, level3)),
43
+ fab-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
44
+ fab-ripple-color: m3-utils.color-with-opacity(
45
+ map.get($system, on-primary-container), map.get($system, pressed-state-layer-opacity)),
46
+ fab-small-container-color: map.get($system, primary-container),
47
+ fab-small-container-elevation-shadow: elevation.get-box-shadow(map.get($system, level3)),
48
+ fab-small-disabled-state-container-color:
49
+ m3-utils.color-with-opacity(map.get($system, on-surface), 12%),
50
+ fab-small-disabled-state-foreground-color:
51
+ m3-utils.color-with-opacity(map.get($system, on-surface), 38%),
52
+ fab-small-focus-container-elevation-shadow:
53
+ elevation.get-box-shadow(map.get($system, level3)),
54
+ fab-small-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
55
+ fab-small-foreground-color: map.get($system, on-primary-container),
56
+ fab-small-hover-container-elevation-shadow:
57
+ elevation.get-box-shadow(map.get($system, level4)),
58
+ fab-small-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
59
+ fab-small-pressed-container-elevation-shadow:
60
+ elevation.get-box-shadow(map.get($system, level3)),
61
+ fab-small-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
62
+ fab-small-ripple-color: m3-utils.color-with-opacity(
63
+ map.get($system, on-primary-container), map.get($system, pressed-state-layer-opacity)),
64
+ fab-small-state-layer-color: map.get($system, on-primary-container),
65
+ fab-state-layer-color: map.get($system, on-primary-container),
66
+ fab-disabled-state-layer-color: null,
67
+ fab-small-disabled-state-layer-color: null,
68
+ ),
69
+ typography: (
70
+ fab-extended-label-text-font: map.get($system, label-large-font),
71
+ fab-extended-label-text-size: map.get($system, label-large-size),
72
+ fab-extended-label-text-tracking: map.get($system, label-large-tracking),
73
+ fab-extended-label-text-weight: map.get($system, label-large-weight),
74
+ ),
75
+ density: get-density-tokens(map.get($theme, inspection.$internals, density-scale)),
166
76
  );
167
77
 
168
- @each $token in $elevation-tokens {
169
- $elevation: map.get($tokens, $token);
170
-
171
- @if ($elevation != null) {
172
- $tokens: map.set($tokens, $token, elevation.get-box-shadow($elevation));
173
- }
174
- }
175
-
176
- @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots);
78
+ @return $tokens;
177
79
  }
178
80
 
179
81
  // 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);
82
+ @function get-density-tokens($scale) {
83
+ $scale: theming.clamp-density($scale, -3);
182
84
  $index: ($scale * -1) + 1;
183
85
 
184
86
  @return (
185
- touch-target-display: list.nth((block, block, none, none), $index),
87
+ fab-small-touch-target-display: null,
88
+ fab-touch-target-display: list.nth((block, block, none, none), $index),
186
89
  );
187
90
  }
@@ -1,81 +1,53 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:list';
3
3
  @use '../core/tokens/m3-utils';
4
- @use '../core/style/sass-utils';
5
4
  @use '../core/theming/theming';
6
5
  @use '../core/theming/inspection';
7
-
8
- // The prefix used to generate the fully qualified name for tokens in this file.
9
- $prefix: (mat, icon-button);
6
+ @use '../core/tokens/m3';
10
7
 
11
8
  /// Generates custom tokens for the mat-icon-button.
12
9
  /// @param {Map} $systems The MDC system tokens
13
10
  /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
14
11
  /// @param {Map} $token-slots Possible token slots
15
12
  /// @return {Map} A set of custom tokens for the mat-icon-button
16
- @function get-tokens($systems, $exclude-hardcoded, $token-slots) {
17
- $tokens: (
18
- state-layer-color: map.get($systems, md-sys-color, on-surface-variant),
19
- disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant),
20
- ripple-color: sass-utils.safe-color-change(
21
- map.get($systems, md-sys-color, on-surface-variant),
22
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)
23
- ),
24
- hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
25
- focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
26
- pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity),
27
- disabled-icon-color: sass-utils.safe-color-change(
28
- map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
29
- icon-size: if($exclude-hardcoded, null, 24px),
30
- icon-color: map.get($systems, md-sys-color, on-surface-variant),
31
- );
13
+ @function get-tokens($theme: m3.$sys-theme, $color-variant: null) {
14
+ $system: m3-utils.get-system($theme);
15
+ @if $color-variant {
16
+ $system: m3-utils.replace-colors-with-variant($system, primary, $color-variant);
17
+ $system: map.set($system, on-surface-variant, map.get($system, $color-variant));
18
+ }
32
19
 
33
- $variant-tokens: (
34
- primary: (
35
- state-layer-color: map.get($systems, md-sys-color, primary),
36
- ripple-color: sass-utils.safe-color-change(
37
- map.get($systems, md-sys-color, primary),
38
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)
39
- ),
40
- icon-color: map.get($systems, md-sys-color, primary)
41
- ),
42
- secondary: (
43
- state-layer-color: map.get($systems, md-sys-color, secondary),
44
- ripple-color: sass-utils.safe-color-change(
45
- map.get($systems, md-sys-color, secondary),
46
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)
47
- ),
48
- icon-color: map.get($systems, md-sys-color, secondary)
20
+ $tokens: (
21
+ base: (
22
+ icon-button-icon-size: 24px,
49
23
  ),
50
- tertiary: (
51
- state-layer-color: map.get($systems, md-sys-color, tertiary),
52
- ripple-color: sass-utils.safe-color-change(
53
- map.get($systems, md-sys-color, tertiary),
54
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)
55
- ),
56
- icon-color: map.get($systems, md-sys-color, tertiary)
24
+ color: (
25
+ icon-button-disabled-icon-color:
26
+ m3-utils.color-with-opacity(map.get($system, on-surface), 38%),
27
+ icon-button-disabled-state-layer-color: map.get($system, on-surface-variant),
28
+ icon-button-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
29
+ icon-button-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
30
+ icon-button-icon-color: map.get($system, on-surface-variant),
31
+ icon-button-pressed-state-layer-opacity: map.get($system, pressed-state-layer-opacity),
32
+ icon-button-ripple-color: m3-utils.color-with-opacity(
33
+ map.get($system, on-surface-variant), map.get($system, pressed-state-layer-opacity)),
34
+ icon-button-state-layer-color: map.get($system, on-surface-variant),
57
35
  ),
58
- error: (
59
- state-layer-color: map.get($systems, md-sys-color, error),
60
- ripple-color: sass-utils.safe-color-change(
61
- map.get($systems, md-sys-color, error),
62
- $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)
63
- ),
64
- icon-color: map.get($systems, md-sys-color, error)
65
- )
36
+ typography: (),
37
+ density: get-density-tokens(map.get($theme, inspection.$internals, density-scale)),
66
38
  );
67
39
 
68
- @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots);
40
+ @return $tokens;
69
41
  }
70
42
 
71
43
  // 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);
44
+ @function get-density-tokens($scale) {
45
+ $scale: theming.clamp-density($scale, -5);
74
46
  $index: ($scale * -1) + 1;
75
47
 
76
48
  @return (
77
- touch-target-display: list.nth((block, block, none, none, none, none), $index),
49
+ icon-button-touch-target-display: list.nth((block, block, none, none, none, none), $index),
78
50
  // 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),
51
+ icon-button-state-layer-size: list.nth((40px, 36px, 32px, 28px, 24px, 24px), $index),
80
52
  );
81
53
  }
@@ -1,40 +1,36 @@
1
1
  @use '../core/style/sass-utils';
2
2
  @use '../core/theming/inspection';
3
3
  @use '../core/theming/theming';
4
- @use '../core/theming/validation';
5
4
  @use '../core/tokens/token-utils';
6
5
  @use '../core/typography/typography';
7
6
  @use './m2-button-toggle';
8
7
  @use './m3-button-toggle';
8
+ @use 'sass:map';
9
9
 
10
10
  /// Outputs base theme styles (styles not dependent on the color, typography, or density settings)
11
11
  /// for the mat-button-toggle.
12
12
  /// @param {Map} $theme The theme to generate base styles for.
13
13
  @mixin base($theme) {
14
14
  @if inspection.get-theme-version($theme) == 1 {
15
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
15
+ @include token-utils.create-token-values(map.get(m3-button-toggle.get-tokens($theme), base));
16
16
  } @else {
17
17
  @include sass-utils.current-selector-or-root() {
18
- @include token-utils.create-token-values-mixed(
19
- m2-button-toggle.$prefix,
20
- m2-button-toggle.get-unthemable-tokens()
21
- );
18
+ @include token-utils.create-token-values-mixed(m2-button-toggle.get-unthemable-tokens());
22
19
  }
23
20
  }
24
21
  }
25
22
 
26
23
  /// Outputs color theme styles for the mat-button-toggle.
27
24
  /// @param {Map} $theme The theme to generate color styles for.
28
- /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
29
- /// $color-variant: The color variant to use for the button toggle: primary, secondary, tertiary,
30
- /// or error (If not specified, default secondary color will be used).
31
- @mixin color($theme, $options...) {
25
+ /// @param {String} $color-variant: The color variant to use for the button toggle: primary,
26
+ /// secondary, tertiary, or error (If not specified, default secondary color will be used).
27
+ @mixin color($theme, $color-variant: null) {
32
28
  @if inspection.get-theme-version($theme) == 1 {
33
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
29
+ @include token-utils.create-token-values(
30
+ map.get(m3-button-toggle.get-tokens($theme, $color-variant), color));
34
31
  } @else {
35
32
  @include sass-utils.current-selector-or-root() {
36
33
  @include token-utils.create-token-values-mixed(
37
- m2-button-toggle.$prefix,
38
34
  m2-button-toggle.get-color-tokens($theme)
39
35
  );
40
36
  }
@@ -45,13 +41,12 @@
45
41
  /// @param {Map} $theme The theme to generate typography styles for.
46
42
  @mixin typography($theme) {
47
43
  @if inspection.get-theme-version($theme) == 1 {
48
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
44
+ @include token-utils.create-token-values(
45
+ map.get(m3-button-toggle.get-tokens($theme), typography));
49
46
  } @else {
50
47
  @include sass-utils.current-selector-or-root() {
51
48
  @include token-utils.create-token-values-mixed(
52
- m2-button-toggle.$prefix,
53
- m2-button-toggle.get-typography-tokens($theme)
54
- );
49
+ m2-button-toggle.get-typography-tokens($theme));
55
50
  }
56
51
  }
57
52
  }
@@ -61,25 +56,20 @@
61
56
  @mixin density($theme) {
62
57
  @if inspection.get-theme-version($theme) == 1 {
63
58
  @include token-utils.create-token-values(
64
- m3-button-toggle.$prefix, m3-button-toggle.get-density-tokens($theme));
59
+ map.get(m3-button-toggle.get-tokens($theme), density));
65
60
  } @else {
66
61
  @include sass-utils.current-selector-or-root() {
67
- @include token-utils.create-token-values-mixed(
68
- m2-button-toggle.$prefix,
69
- m2-button-toggle.get-density-tokens($theme)
70
- );
62
+ @include token-utils.create-token-values-mixed(m2-button-toggle.get-density-tokens($theme));
71
63
  }
72
64
  }
73
65
  }
74
66
 
75
67
  /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
76
68
  @function _define-overrides() {
77
- $standard-tokens: m2-button-toggle.get-token-slots();
78
-
79
69
  @return (
80
70
  (
81
- namespace: m2-button-toggle.$prefix,
82
- tokens: $standard-tokens,
71
+ namespace: button-toggle,
72
+ tokens: token-utils.get-overrides(m3-button-toggle.get-tokens(), button-toggle)
83
73
  ),
84
74
  );
85
75
  }
@@ -87,21 +77,20 @@
87
77
  /// Outputs the CSS variable values for the given tokens.
88
78
  /// @param {Map} $tokens The token values to emit.
89
79
  @mixin overrides($tokens: ()) {
90
- @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
80
+ @include token-utils.batch-create-token-values($tokens, _define-overrides());
91
81
  }
92
82
 
93
83
  /// Outputs all (base, color, typography, and density) theme styles for the mat-button-toggle.
94
84
  /// @param {Map} $theme The theme to generate styles for.
95
- /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
96
- /// $color-variant: The color variant to use for the button toggle: primary, secondary, tertiary,
97
- /// or error (If not specified, default secondary color will be used).
98
- @mixin theme($theme, $options...) {
85
+ /// @param {String} $color-variant: The color variant to use for the button toggle: primary,
86
+ /// secondary, tertiary, or error (If not specified, default secondary color will be used).
87
+ @mixin theme($theme, $color-variant: null) {
99
88
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-button-toggle') {
100
89
  @if inspection.get-theme-version($theme) == 1 {
101
- @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
102
- @if inspection.theme-has($theme, density) {
103
- @include density($theme);
104
- }
90
+ @include base($theme);
91
+ @include color($theme, $color-variant);
92
+ @include density($theme);
93
+ @include typography($theme);
105
94
  } @else {
106
95
  @include base($theme);
107
96
  @if inspection.theme-has($theme, color) {
@@ -116,18 +105,3 @@
116
105
  }
117
106
  }
118
107
  }
119
-
120
- @mixin _theme-from-tokens($tokens, $options...) {
121
- @include validation.selector-defined(
122
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
123
- );
124
- $mat-standard-button-toggle-tokens: token-utils.get-tokens-for(
125
- $tokens,
126
- m2-button-toggle.$prefix,
127
- $options...
128
- );
129
- @include token-utils.create-token-values(
130
- m2-button-toggle.$prefix,
131
- $mat-standard-button-toggle-tokens
132
- );
133
- }
@@ -5,19 +5,16 @@
5
5
  @use '../core/theming/inspection';
6
6
  @use '../core/style/sass-utils';
7
7
 
8
- // The prefix used to generate the fully qualified name for tokens in this file.
9
- $prefix: (mat, button-toggle);
10
-
11
8
  // Tokens that can't be configured through Angular Material's current theming API,
12
9
  // but may be in a future version of the theming API.
13
10
  @function get-unthemable-tokens() {
14
11
  @return (
15
- focus-state-layer-opacity: 0.12,
16
- hover-state-layer-opacity: 0.04,
17
- legacy-focus-state-layer-opacity: 1,
18
- legacy-height: 36px,
19
- legacy-shape: 2px,
20
- shape: 4px,
12
+ button-toggle-focus-state-layer-opacity: 0.12,
13
+ button-toggle-hover-state-layer-opacity: 0.04,
14
+ button-toggle-legacy-focus-state-layer-opacity: 1,
15
+ button-toggle-legacy-height: 36px,
16
+ button-toggle-legacy-shape: 2px,
17
+ button-toggle-shape: 4px,
21
18
  );
22
19
  }
23
20
 
@@ -36,47 +33,58 @@ $prefix: (mat, button-toggle);
36
33
  $theme-divider-color);
37
34
 
38
35
  @return (
39
- background-color: inspection.get-theme-color($theme, background, card),
40
- disabled-selected-state-background-color:
36
+ button-toggle-background-color: inspection.get-theme-color($theme, background, card),
37
+ button-toggle-disabled-selected-state-background-color:
41
38
  inspection.get-theme-color($theme, background, selected-disabled-button),
42
- disabled-selected-state-text-color: inspection.get-theme-color($theme, foreground, text),
43
- disabled-state-background-color: inspection.get-theme-color($theme, background, card),
44
- disabled-state-text-color: inspection.get-theme-color($theme, foreground, disabled-button),
45
- divider-color: $divider-color,
46
- legacy-disabled-selected-state-background-color:
39
+ button-toggle-disabled-selected-state-text-color:
40
+ inspection.get-theme-color($theme, foreground, text),
41
+ button-toggle-disabled-state-background-color:
42
+ inspection.get-theme-color($theme, background, card),
43
+ button-toggle-disabled-state-text-color:
44
+ inspection.get-theme-color($theme, foreground, disabled-button),
45
+ button-toggle-divider-color: $divider-color,
46
+ button-toggle-legacy-disabled-selected-state-background-color:
47
47
  inspection.get-theme-color($theme, background, selected-disabled-button),
48
- legacy-disabled-state-background-color:
48
+ button-toggle-legacy-disabled-state-background-color:
49
49
  inspection.get-theme-color($theme, background, disabled-button-toggle),
50
- legacy-disabled-state-text-color:
50
+ button-toggle-legacy-disabled-state-text-color:
51
51
  inspection.get-theme-color($theme, foreground, disabled-button),
52
- legacy-selected-state-background-color:
52
+ button-toggle-legacy-selected-state-background-color:
53
53
  inspection.get-theme-color($theme, background, selected-button),
54
- legacy-selected-state-text-color:
54
+ button-toggle-legacy-selected-state-text-color:
55
55
  inspection.get-theme-color($theme, foreground, secondary-text),
56
- legacy-state-layer-color: inspection.get-theme-color($theme, background, focused-button),
57
- legacy-text-color: inspection.get-theme-color($theme, foreground, hint-text),
58
- selected-state-background-color:
56
+ button-toggle-legacy-state-layer-color:
57
+ inspection.get-theme-color($theme, background, focused-button),
58
+ button-toggle-legacy-text-color: inspection.get-theme-color($theme, foreground, hint-text),
59
+ button-toggle-selected-state-background-color:
59
60
  inspection.get-theme-color($theme, background, selected-button),
60
- selected-state-text-color: inspection.get-theme-color($theme, foreground, text),
61
- state-layer-color: sass-utils.safe-color-change(
61
+ button-toggle-selected-state-text-color: inspection.get-theme-color($theme, foreground, text),
62
+ button-toggle-state-layer-color: sass-utils.safe-color-change(
62
63
  inspection.get-theme-color($theme, background, focused-button), $alpha: 1),
63
- text-color: inspection.get-theme-color($theme, foreground, text),
64
+ button-toggle-text-color: inspection.get-theme-color($theme, foreground, text),
64
65
  );
65
66
  }
66
67
 
67
68
  // Tokens that can be configured through Angular Material's typography theming API.
68
69
  @function get-typography-tokens($theme) {
69
70
  @return (
70
- label-text-font: inspection.get-theme-typography($theme, body-1, font-family),
71
- label-text-line-height: inspection.get-theme-typography($theme, body-1, line-height),
72
- label-text-size: inspection.get-theme-typography($theme, body-1, font-size),
73
- label-text-tracking: inspection.get-theme-typography($theme, body-1, letter-spacing),
74
- label-text-weight: inspection.get-theme-typography($theme, body-1, font-weight),
75
- legacy-label-text-font: inspection.get-theme-typography($theme, body-1, font-family),
76
- legacy-label-text-line-height: inspection.get-theme-typography($theme, body-1, line-height),
77
- legacy-label-text-size: inspection.get-theme-typography($theme, body-1, font-size),
78
- legacy-label-text-tracking: inspection.get-theme-typography($theme, body-1, letter-spacing),
79
- legacy-label-text-weight: inspection.get-theme-typography($theme, body-1, font-weight),
71
+ button-toggle-label-text-font: inspection.get-theme-typography($theme, body-1, font-family),
72
+ button-toggle-label-text-line-height:
73
+ inspection.get-theme-typography($theme, body-1, line-height),
74
+ button-toggle-label-text-size: inspection.get-theme-typography($theme, body-1, font-size),
75
+ button-toggle-label-text-tracking:
76
+ inspection.get-theme-typography($theme, body-1, letter-spacing),
77
+ button-toggle-label-text-weight: inspection.get-theme-typography($theme, body-1, font-weight),
78
+ button-toggle-legacy-label-text-font:
79
+ inspection.get-theme-typography($theme, body-1, font-family),
80
+ button-toggle-legacy-label-text-line-height:
81
+ inspection.get-theme-typography($theme, body-1, line-height),
82
+ button-toggle-legacy-label-text-size:
83
+ inspection.get-theme-typography($theme, body-1, font-size),
84
+ button-toggle-legacy-label-text-tracking:
85
+ inspection.get-theme-typography($theme, body-1, letter-spacing),
86
+ button-toggle-legacy-label-text-weight:
87
+ inspection.get-theme-typography($theme, body-1, font-weight),
80
88
  );
81
89
  }
82
90
 
@@ -92,7 +100,7 @@ $prefix: (mat, button-toggle);
92
100
  );
93
101
 
94
102
  @return (
95
- height: map.get($size-scale, $density-scale)
103
+ button-toggle-height: map.get($size-scale, $density-scale)
96
104
  );
97
105
  }
98
106