@angular/material 20.0.0-rc.1 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) 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/autocomplete/index.d.ts +2 -2
  5. package/badge/_badge-theme.scss +9 -35
  6. package/badge/_m2-badge.scss +32 -35
  7. package/badge/_m3-badge.scss +31 -32
  8. package/bottom-sheet/_bottom-sheet-theme.scss +16 -27
  9. package/bottom-sheet/_m2-bottom-sheet.scss +11 -11
  10. package/bottom-sheet/_m3-bottom-sheet.scss +18 -17
  11. package/button/_button-theme.scss +29 -46
  12. package/button/_fab-theme.scss +22 -41
  13. package/button/_icon-button-theme.scss +29 -46
  14. package/button/_m2-button.scss +135 -133
  15. package/button/_m2-fab.scss +51 -53
  16. package/button/_m2-icon-button.scss +14 -17
  17. package/button/_m3-button.scss +145 -240
  18. package/button/_m3-fab.scss +69 -166
  19. package/button/_m3-icon-button.scss +28 -56
  20. package/button-toggle/_button-toggle-theme.scss +23 -49
  21. package/button-toggle/_m2-button-toggle.scss +45 -37
  22. package/button-toggle/_m3-button-toggle.scss +53 -53
  23. package/card/_card-theme.scss +16 -37
  24. package/card/_m2-card.scss +24 -25
  25. package/card/_m3-card.scss +32 -36
  26. package/checkbox/_checkbox-theme.scss +25 -52
  27. package/checkbox/_m2-checkbox.scss +32 -35
  28. package/checkbox/_m3-checkbox.scss +49 -84
  29. package/chips/_chips-theme.scss +24 -44
  30. package/chips/_m2-chip.scss +47 -51
  31. package/chips/_m3-chip.scss +63 -110
  32. package/core/_core-theme.scss +58 -56
  33. package/core/_core.scss +15 -18
  34. package/core/_m2-app.scss +3 -7
  35. package/core/_m3-app.scss +37 -24
  36. package/core/index.d.ts +2 -2
  37. package/core/option/_m2-optgroup.scss +6 -9
  38. package/core/option/_m2-option.scss +10 -13
  39. package/core/option/_m3-optgroup.scss +16 -13
  40. package/core/option/_m3-option.scss +28 -48
  41. package/core/option/_optgroup-theme.scss +14 -25
  42. package/core/option/_option-theme.scss +22 -33
  43. package/core/ripple/_m2-ripple.scss +1 -4
  44. package/core/ripple/_m3-ripple.scss +11 -13
  45. package/core/ripple/_ripple-theme.scss +15 -33
  46. package/core/ripple/_ripple.scss +5 -5
  47. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +10 -11
  48. package/core/selection/pseudo-checkbox/_m3-pseudo-checkbox.scss +25 -40
  49. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +16 -27
  50. package/core/style/_sass-utils.scss +0 -29
  51. package/core/theming/_color-api-backwards-compatibility.scss +46 -29
  52. package/core/theming/_definition.scss +6 -0
  53. package/core/theming/_inspection.scss +0 -25
  54. package/core/tokens/_m3-system.scss +19 -68
  55. package/core/tokens/_m3-tokens.scss +0 -128
  56. package/core/tokens/_m3-utils.scss +11 -83
  57. package/core/tokens/_token-utils.scss +52 -246
  58. package/core/tokens/m3/_index.scss +1 -0
  59. package/core/tokens/m3/_theme.scss +47 -0
  60. package/datepicker/_datepicker-theme.scss +24 -39
  61. package/datepicker/_m2-datepicker.scss +55 -50
  62. package/datepicker/_m3-datepicker.scss +65 -113
  63. package/datepicker/index.d.ts +9 -0
  64. package/dialog/_dialog-theme.scss +15 -27
  65. package/dialog/_m2-dialog.scss +25 -26
  66. package/dialog/_m3-dialog.scss +35 -35
  67. package/divider/_divider-theme.scss +14 -25
  68. package/divider/_m2-divider.scss +2 -5
  69. package/divider/_m3-divider.scss +13 -13
  70. package/expansion/_expansion-theme.scss +15 -33
  71. package/expansion/_m2-expansion.scss +28 -27
  72. package/expansion/_m3-expansion.scss +41 -36
  73. package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
  74. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  75. package/fesm2022/autocomplete.mjs +23 -23
  76. package/fesm2022/autocomplete.mjs.map +1 -1
  77. package/fesm2022/badge/testing.mjs.map +1 -1
  78. package/fesm2022/badge.mjs +11 -11
  79. package/fesm2022/badge.mjs.map +1 -1
  80. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  81. package/fesm2022/bottom-sheet.mjs +11 -11
  82. package/fesm2022/bottom-sheet.mjs.map +1 -1
  83. package/fesm2022/button/testing.mjs.map +1 -1
  84. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  85. package/fesm2022/button-toggle.mjs +19 -23
  86. package/fesm2022/button-toggle.mjs.map +1 -1
  87. package/fesm2022/button.mjs +20 -20
  88. package/fesm2022/button.mjs.map +1 -1
  89. package/fesm2022/card/testing.mjs.map +1 -1
  90. package/fesm2022/card.mjs +47 -47
  91. package/fesm2022/card.mjs.map +1 -1
  92. package/fesm2022/checkbox/testing.mjs.map +1 -1
  93. package/fesm2022/checkbox.mjs +22 -22
  94. package/fesm2022/checkbox.mjs.map +1 -1
  95. package/fesm2022/chips/testing.mjs.map +1 -1
  96. package/fesm2022/chips.mjs +52 -52
  97. package/fesm2022/chips.mjs.map +1 -1
  98. package/fesm2022/{common-module-CF0eSYO4.mjs → common-module-cKSwHniA.mjs} +5 -5
  99. package/fesm2022/common-module-cKSwHniA.mjs.map +1 -0
  100. package/fesm2022/core/testing.mjs.map +1 -1
  101. package/fesm2022/core.mjs +24 -24
  102. package/fesm2022/core.mjs.map +1 -1
  103. package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
  104. package/fesm2022/date-range-input-harness-Bp1T4oUe.mjs.map +1 -1
  105. package/fesm2022/datepicker/testing.mjs.map +1 -1
  106. package/fesm2022/datepicker.mjs +154 -133
  107. package/fesm2022/datepicker.mjs.map +1 -1
  108. package/fesm2022/dialog/testing.mjs +18 -5
  109. package/fesm2022/dialog/testing.mjs.map +1 -1
  110. package/fesm2022/dialog.mjs +2 -2
  111. package/fesm2022/dialog.mjs.map +1 -1
  112. package/fesm2022/divider/testing.mjs.map +1 -1
  113. package/fesm2022/divider.mjs +8 -8
  114. package/fesm2022/divider.mjs.map +1 -1
  115. package/fesm2022/{error-options-CbAHLQL5.mjs → error-options-DCNQlTOA.mjs} +7 -7
  116. package/fesm2022/error-options-DCNQlTOA.mjs.map +1 -0
  117. package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
  118. package/fesm2022/expansion/testing.mjs.map +1 -1
  119. package/fesm2022/expansion.mjs +28 -28
  120. package/fesm2022/expansion.mjs.map +1 -1
  121. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  122. package/fesm2022/form-field/testing.mjs.map +1 -1
  123. package/fesm2022/{form-field-sL9_TuE-.mjs → form-field-C9DZXojn.mjs} +33 -33
  124. package/fesm2022/form-field-C9DZXojn.mjs.map +1 -0
  125. package/fesm2022/form-field.mjs +3 -3
  126. package/fesm2022/form-field.mjs.map +1 -1
  127. package/fesm2022/grid-list/testing.mjs.map +1 -1
  128. package/fesm2022/grid-list.mjs +24 -24
  129. package/fesm2022/grid-list.mjs.map +1 -1
  130. package/fesm2022/icon/testing.mjs +8 -8
  131. package/fesm2022/icon/testing.mjs.map +1 -1
  132. package/fesm2022/{icon-button-BASP1JI8.mjs → icon-button-B2tPB5AH.mjs} +9 -9
  133. package/fesm2022/icon-button-B2tPB5AH.mjs.map +1 -0
  134. package/fesm2022/{icon-registry-DVLYRZv3.mjs → icon-registry-CwOTJ7YM.mjs} +4 -4
  135. package/fesm2022/icon-registry-CwOTJ7YM.mjs.map +1 -0
  136. package/fesm2022/icon.mjs +10 -10
  137. package/fesm2022/icon.mjs.map +1 -1
  138. package/fesm2022/index-BFRo2fUq.mjs +20 -0
  139. package/fesm2022/index-BFRo2fUq.mjs.map +1 -0
  140. package/fesm2022/index-DwiL-HGk.mjs +22 -0
  141. package/fesm2022/index-DwiL-HGk.mjs.map +1 -0
  142. package/fesm2022/input/testing.mjs.map +1 -1
  143. package/fesm2022/input-harness-oQzj5EsQ.mjs.map +1 -1
  144. package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
  145. package/fesm2022/input.mjs +12 -12
  146. package/fesm2022/input.mjs.map +1 -1
  147. package/fesm2022/{internal-form-field-_OHaksOO.mjs → internal-form-field-D5iFxU6d.mjs} +4 -4
  148. package/fesm2022/internal-form-field-D5iFxU6d.mjs.map +1 -0
  149. package/fesm2022/{line-CtAKiRo6.mjs → line-Bz5f9Cyx.mjs} +9 -9
  150. package/fesm2022/line-Bz5f9Cyx.mjs.map +1 -0
  151. package/fesm2022/list/testing.mjs.map +1 -1
  152. package/fesm2022/list.mjs +66 -66
  153. package/fesm2022/list.mjs.map +1 -1
  154. package/fesm2022/material.mjs.map +1 -1
  155. package/fesm2022/menu/testing.mjs.map +1 -1
  156. package/fesm2022/menu.mjs +20 -20
  157. package/fesm2022/menu.mjs.map +1 -1
  158. package/fesm2022/{module-DqTK2swA.mjs → module-BDiw_nWS.mjs} +25 -19
  159. package/fesm2022/module-BDiw_nWS.mjs.map +1 -0
  160. package/fesm2022/{module-m5vWw9-5.mjs → module-CWxMD37a.mjs} +12 -12
  161. package/fesm2022/module-CWxMD37a.mjs.map +1 -0
  162. package/fesm2022/{module-ChwDH6BC.mjs → module-Ce6F7TNm.mjs} +28 -28
  163. package/fesm2022/module-Ce6F7TNm.mjs.map +1 -0
  164. package/fesm2022/{module-DToxyW7l.mjs → module-DzZHEh7B.mjs} +7 -7
  165. package/fesm2022/module-DzZHEh7B.mjs.map +1 -0
  166. package/fesm2022/{option-hkPAbXDN.mjs → option-BzhYL_xC.mjs} +15 -15
  167. package/fesm2022/option-BzhYL_xC.mjs.map +1 -0
  168. package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
  169. package/fesm2022/paginator/testing.mjs.map +1 -1
  170. package/fesm2022/paginator.mjs +25 -25
  171. package/fesm2022/paginator.mjs.map +1 -1
  172. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  173. package/fesm2022/progress-bar.mjs +8 -8
  174. package/fesm2022/progress-bar.mjs.map +1 -1
  175. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  176. package/fesm2022/progress-spinner.mjs +8 -8
  177. package/fesm2022/progress-spinner.mjs.map +1 -1
  178. package/fesm2022/{pseudo-checkbox-Ddidc23S.mjs → pseudo-checkbox-DDmgx3P4.mjs} +4 -4
  179. package/fesm2022/pseudo-checkbox-DDmgx3P4.mjs.map +1 -0
  180. package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs +20 -0
  181. package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs.map +1 -0
  182. package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
  183. package/fesm2022/radio/testing.mjs.map +1 -1
  184. package/fesm2022/radio.mjs +19 -16
  185. package/fesm2022/radio.mjs.map +1 -1
  186. package/fesm2022/{ripple-DUGA2BAa.mjs → ripple-BYgV4oZC.mjs} +7 -7
  187. package/fesm2022/ripple-BYgV4oZC.mjs.map +1 -0
  188. package/fesm2022/{ripple-loader-Xy4bv6Xh.mjs → ripple-loader-BnMiRtmT.mjs} +5 -5
  189. package/fesm2022/ripple-loader-BnMiRtmT.mjs.map +1 -0
  190. package/fesm2022/select/testing.mjs.map +1 -1
  191. package/fesm2022/select.mjs +12 -12
  192. package/fesm2022/select.mjs.map +1 -1
  193. package/fesm2022/sidenav/testing.mjs.map +1 -1
  194. package/fesm2022/sidenav.mjs +35 -31
  195. package/fesm2022/sidenav.mjs.map +1 -1
  196. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  197. package/fesm2022/slide-toggle.mjs +11 -11
  198. package/fesm2022/slide-toggle.mjs.map +1 -1
  199. package/fesm2022/slider/testing.mjs.map +1 -1
  200. package/fesm2022/slider.mjs +21 -21
  201. package/fesm2022/slider.mjs.map +1 -1
  202. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  203. package/fesm2022/snack-bar.mjs +29 -29
  204. package/fesm2022/snack-bar.mjs.map +1 -1
  205. package/fesm2022/sort/testing.mjs.map +1 -1
  206. package/fesm2022/sort.mjs +15 -15
  207. package/fesm2022/sort.mjs.map +1 -1
  208. package/fesm2022/stepper/testing.mjs.map +1 -1
  209. package/fesm2022/stepper.mjs +39 -50
  210. package/fesm2022/stepper.mjs.map +1 -1
  211. package/fesm2022/{structural-styles-DA18Hchc.mjs → structural-styles-CObeNzjn.mjs} +4 -4
  212. package/fesm2022/structural-styles-CObeNzjn.mjs.map +1 -0
  213. package/fesm2022/table/testing.mjs.map +1 -1
  214. package/fesm2022/table.mjs +56 -56
  215. package/fesm2022/table.mjs.map +1 -1
  216. package/fesm2022/tabs/testing.mjs.map +1 -1
  217. package/fesm2022/tabs.mjs +81 -65
  218. package/fesm2022/tabs.mjs.map +1 -1
  219. package/fesm2022/timepicker/testing.mjs.map +1 -1
  220. package/fesm2022/timepicker.mjs +20 -20
  221. package/fesm2022/timepicker.mjs.map +1 -1
  222. package/fesm2022/toolbar/testing.mjs.map +1 -1
  223. package/fesm2022/toolbar.mjs +12 -12
  224. package/fesm2022/toolbar.mjs.map +1 -1
  225. package/fesm2022/tooltip/testing.mjs.map +1 -1
  226. package/fesm2022/tooltip.mjs +2 -2
  227. package/fesm2022/tooltip.mjs.map +1 -1
  228. package/fesm2022/tree/testing.mjs.map +1 -1
  229. package/fesm2022/tree.mjs +26 -26
  230. package/fesm2022/tree.mjs.map +1 -1
  231. package/form-field/_form-field-theme.scss +23 -55
  232. package/form-field/_m2-form-field.scss +112 -91
  233. package/form-field/_m3-form-field.scss +116 -131
  234. package/grid-list/_grid-list-theme.scss +13 -23
  235. package/grid-list/_m2-grid-list.scss +8 -7
  236. package/grid-list/_m3-grid-list.scss +14 -15
  237. package/icon/_icon-theme.scss +20 -30
  238. package/icon/_m2-icon.scss +1 -4
  239. package/icon/_m3-icon.scss +13 -27
  240. package/{index.d-CikM2bbf.d.ts → index.d-DAhBYbjm.d.ts} +1 -1
  241. package/input/_input-theme.scss +7 -40
  242. package/list/_list-theme.scss +22 -52
  243. package/list/_m2-list.scss +56 -55
  244. package/list/_m3-list.scss +69 -67
  245. package/menu/_m2-menu.scss +22 -25
  246. package/menu/_m3-menu.scss +35 -38
  247. package/menu/_menu-theme.scss +15 -27
  248. package/{module.d-DMabQ4_c.d.ts → module.d-bebo7gS5.d.ts} +5 -3
  249. package/package.json +6 -6
  250. package/paginator/_m2-paginator.scss +16 -17
  251. package/paginator/_m3-paginator.scss +28 -27
  252. package/paginator/_paginator-theme.scss +14 -40
  253. package/paginator/index.d.ts +3 -3
  254. package/prebuilt-themes/deeppurple-amber.css +1 -1
  255. package/prebuilt-themes/indigo-pink.css +1 -1
  256. package/prebuilt-themes/pink-bluegrey.css +1 -1
  257. package/prebuilt-themes/purple-green.css +1 -1
  258. package/progress-bar/_m2-progress-bar.scss +5 -8
  259. package/progress-bar/_m3-progress-bar.scss +17 -26
  260. package/progress-bar/_progress-bar-theme.scss +17 -27
  261. package/progress-spinner/_m2-progress-spinner.scss +3 -6
  262. package/progress-spinner/_m3-progress-spinner.scss +15 -22
  263. package/progress-spinner/_progress-spinner-theme.scss +20 -43
  264. package/radio/_m2-radio.scss +24 -27
  265. package/radio/_m3-radio.scss +44 -58
  266. package/radio/_radio-theme.scss +23 -50
  267. package/schematics/ng-add/index.js +2 -2
  268. package/schematics/ng-update/index_bundled.js +2 -0
  269. package/schematics/ng-update/index_bundled.js.map +1 -1
  270. package/select/_m2-select.scss +15 -18
  271. package/select/_m3-select.scss +32 -38
  272. package/select/_select-theme.scss +23 -50
  273. package/select/index.d.ts +3 -3
  274. package/sidenav/_m2-sidenav.scss +9 -12
  275. package/sidenav/_m3-sidenav.scss +20 -22
  276. package/sidenav/_sidenav-theme.scss +14 -25
  277. package/slide-toggle/_m2-slide-toggle.scss +82 -83
  278. package/slide-toggle/_m3-slide-toggle.scss +102 -143
  279. package/slide-toggle/_slide-toggle-theme.scss +26 -61
  280. package/slider/_m2-slider.scss +46 -46
  281. package/slider/_m3-slider.scss +54 -109
  282. package/slider/_slider-theme.scss +23 -34
  283. package/snack-bar/_m2-snack-bar.scss +10 -11
  284. package/snack-bar/_m3-snack-bar.scss +20 -19
  285. package/snack-bar/_snack-bar-theme.scss +14 -26
  286. package/sort/_m2-sort.scss +1 -4
  287. package/sort/_m3-sort.scss +11 -9
  288. package/sort/_sort-theme.scss +15 -27
  289. package/stepper/_m2-stepper.scss +32 -31
  290. package/stepper/_m3-stepper.scss +44 -79
  291. package/stepper/_stepper-theme.scss +22 -50
  292. package/stepper/index.d.ts +0 -3
  293. package/table/_m2-table.scss +25 -26
  294. package/table/_m3-table.scss +36 -27
  295. package/table/_table-theme.scss +15 -32
  296. package/tabs/_m2-tabs.scss +26 -29
  297. package/tabs/_m3-tabs.scss +40 -51
  298. package/tabs/_tabs-theme.scss +37 -58
  299. package/tabs/index.d.ts +11 -5
  300. package/timepicker/_m2-timepicker.scss +3 -6
  301. package/timepicker/_m3-timepicker.scss +14 -15
  302. package/timepicker/_timepicker-theme.scss +20 -45
  303. package/timepicker/index.d.ts +1 -1
  304. package/toolbar/_m2-toolbar.scss +11 -12
  305. package/toolbar/_m3-toolbar.scss +22 -17
  306. package/toolbar/_toolbar-theme.scss +13 -37
  307. package/tooltip/_m2-tooltip.scss +9 -11
  308. package/tooltip/_m3-tooltip.scss +19 -19
  309. package/tooltip/_tooltip-theme.scss +17 -35
  310. package/tree/_m2-tree.scss +6 -9
  311. package/tree/_m3-tree.scss +19 -16
  312. package/tree/_tree-theme.scss +14 -36
  313. package/fesm2022/common-module-CF0eSYO4.mjs.map +0 -1
  314. package/fesm2022/error-options-CbAHLQL5.mjs.map +0 -1
  315. package/fesm2022/form-field-sL9_TuE-.mjs.map +0 -1
  316. package/fesm2022/icon-button-BASP1JI8.mjs.map +0 -1
  317. package/fesm2022/icon-registry-DVLYRZv3.mjs.map +0 -1
  318. package/fesm2022/index-BNtCg9r0.mjs +0 -22
  319. package/fesm2022/index-BNtCg9r0.mjs.map +0 -1
  320. package/fesm2022/index-DxCSjCL3.mjs +0 -20
  321. package/fesm2022/index-DxCSjCL3.mjs.map +0 -1
  322. package/fesm2022/internal-form-field-_OHaksOO.mjs.map +0 -1
  323. package/fesm2022/line-CtAKiRo6.mjs.map +0 -1
  324. package/fesm2022/module-ChwDH6BC.mjs.map +0 -1
  325. package/fesm2022/module-DToxyW7l.mjs.map +0 -1
  326. package/fesm2022/module-DqTK2swA.mjs.map +0 -1
  327. package/fesm2022/module-m5vWw9-5.mjs.map +0 -1
  328. package/fesm2022/option-hkPAbXDN.mjs.map +0 -1
  329. package/fesm2022/pseudo-checkbox-Ddidc23S.mjs.map +0 -1
  330. package/fesm2022/pseudo-checkbox-module--am9-RIA.mjs +0 -20
  331. package/fesm2022/pseudo-checkbox-module--am9-RIA.mjs.map +0 -1
  332. package/fesm2022/ripple-DUGA2BAa.mjs.map +0 -1
  333. package/fesm2022/ripple-loader-Xy4bv6Xh.mjs.map +0 -1
  334. package/fesm2022/structural-styles-DA18Hchc.mjs.map +0 -1
  335. package/schematics/tsconfig.json +0 -26
  336. package/{option.d-BVGX3edu.d.ts → option.d-BcvS44bt.d.ts} +1 -1
@@ -24,92 +24,109 @@
24
24
  $_overrides-only: true;
25
25
 
26
26
  @mixin _color-variant-styles($theme, $color-variant) {
27
- $primary-options: (color-variant: $color-variant, emit-overrides-only: $_overrides-only);
28
-
29
- // Some components use the secondary color rather than primary color for `.mat-primary`.
30
- // Those components should use the $secondary-color-variant.
31
- $secondary-options: (
32
- color-variant: if($color-variant == primary, secondary, $color-variant),
33
- emit-overrides-only: $_overrides-only
34
- );
27
+ $secondary-when-primary: if($color-variant == primary, secondary, $color-variant);
35
28
 
36
29
  & {
37
- @include option-theme.color($theme, $secondary-options...);
30
+ @if ($color-variant != primary) {
31
+ @include option-theme.color($theme, $secondary-when-primary);
32
+ }
38
33
  }
39
34
 
40
35
  & {
41
- @include progress-spinner-theme.color($theme, $primary-options...);
36
+ @if ($color-variant != primary) {
37
+ @include progress-spinner-theme.color($theme, $color-variant);
38
+ }
42
39
  }
43
40
 
44
41
  & {
45
- @include pseudo-checkbox-theme.color($theme, $primary-options...);
42
+ @if ($color-variant != primary) {
43
+ @include pseudo-checkbox-theme.color($theme, $color-variant);
44
+ }
46
45
  }
47
46
 
48
47
  & {
49
- @include stepper-theme.color($theme, $primary-options...);
48
+ @include stepper-theme.color($theme, $color-variant);
50
49
  }
51
50
 
52
51
  &.mat-icon {
53
- @include icon-theme.color($theme, $primary-options...);
52
+ @include icon-theme.color($theme, $color-variant);
54
53
  }
55
54
 
56
55
  &.mat-mdc-checkbox {
57
- @include checkbox-theme.color($theme, $primary-options...);
56
+ @if ($color-variant != primary) {
57
+ @include checkbox-theme.color($theme, $color-variant);
58
+ }
58
59
  }
59
60
 
60
61
  &.mat-mdc-slider {
61
- @include slider-theme.color($theme, $primary-options...);
62
+ @if ($color-variant != primary) {
63
+ @include slider-theme.color($theme, $color-variant);
64
+ }
62
65
  }
63
66
 
64
67
  &.mat-mdc-tab-group,
65
68
  &.mat-mdc-tab-nav-bar {
66
- @include tabs-theme.color($theme, $primary-options...);
69
+ @include tabs-theme.color($theme, $color-variant);
67
70
  }
68
71
 
69
72
  &.mat-mdc-slide-toggle {
70
- @include slide-toggle-theme.color($theme, $primary-options...);
73
+ @include slide-toggle-theme.color($theme, $color-variant);
71
74
  }
72
75
 
73
76
  &.mat-mdc-form-field {
74
- @include select-theme.color($theme, $primary-options...);
77
+ @if ($color-variant != primary) {
78
+ @include select-theme.color($theme, $color-variant);
79
+ }
75
80
  }
76
81
 
77
82
  &.mat-mdc-radio-button {
78
- @include radio-theme.color($theme, $primary-options...);
83
+ @if ($color-variant != primary) {
84
+ @include radio-theme.color($theme, $color-variant);
85
+ }
79
86
  }
80
87
 
81
88
  &.mat-mdc-progress-bar {
82
- @include progress-bar-theme.color($theme, $primary-options...);
89
+ @if ($color-variant != primary) {
90
+ @include progress-bar-theme.color($theme, $color-variant);
91
+ }
83
92
  }
84
93
 
85
94
  &.mat-mdc-form-field {
86
- @include form-field-theme.color($theme, $primary-options...);
95
+ @if ($color-variant != primary) {
96
+ @include form-field-theme.color($theme, $color-variant);
97
+ }
87
98
  }
88
99
 
89
100
  &.mat-datepicker-content {
90
- @include datepicker-theme.color($theme, $primary-options...);
101
+ @include datepicker-theme.color($theme, $color-variant);
91
102
  }
92
103
 
93
104
  &.mat-mdc-button-base {
94
- @include button-theme.color($theme, $primary-options...);
95
- @include icon-button-theme.color($theme, $primary-options...);
105
+ @if ($color-variant != primary) {
106
+ @include button-theme.color($theme, $color-variant);
107
+ }
108
+ @include icon-button-theme.color($theme, $color-variant);
96
109
  }
97
110
 
98
111
  &.mat-mdc-standard-chip {
99
- @include chips-theme.color($theme, $secondary-options...);
112
+ @if ($color-variant != primary) {
113
+ @include chips-theme.color($theme, $secondary-when-primary);
114
+ }
100
115
  }
101
116
 
102
117
  .mdc-list-item__start,
103
118
  .mdc-list-item__end {
104
- @include checkbox-theme.color($theme, $primary-options...);
105
- @include radio-theme.color($theme, $primary-options...);
119
+ @if ($color-variant != primary) {
120
+ @include checkbox-theme.color($theme, $color-variant);
121
+ @include radio-theme.color($theme, $color-variant);
122
+ }
106
123
  }
107
124
 
108
125
  // M3 dropped support for warn/error color FABs.
109
- @if $color-variant != error {
126
+ @if $color-variant != error and $color-variant != primary {
110
127
  &.mat-mdc-fab,
111
128
  &.mat-mdc-mini-fab {
112
- @include fab-theme.color($theme, $primary-options...);
129
+ @include fab-theme.color($theme, $color-variant);
113
130
  }
114
131
  }
115
132
  }
@@ -89,6 +89,12 @@ $theme-version: 1;
89
89
  md-sys-motion: m3.md-sys-motion-values(),
90
90
  md-sys-shape: m3.md-sys-shape-values(),
91
91
  md-sys-state: m3.md-sys-state-values(),
92
+ md-ref-palette: (
93
+ // Form field native select option text color
94
+ neutral10: map.get($palettes, neutral, 10),
95
+ // Sidenav scrim (container background shadow when opened),
96
+ neutral-variant20: map.get($palettes, neutral-variant, 20),
97
+ ),
92
98
  md-sys-typescale:
93
99
  m3-tokens.get-sys-typeface($typography, $typography-system-variables-prefix),
94
100
  palettes: $palettes,
@@ -280,31 +280,6 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac
280
280
  }
281
281
  }
282
282
 
283
- /// Gets the set of tokens from the given theme, limited to those affected by the requested theming
284
- /// systems.
285
- /// @param {Map} $theme The theme to get tokens from.
286
- /// @param {String...} $systems The theming systems to get tokens for. Valid values are: color,
287
- /// typography, density, base. If no systems are passed, all tokens will be returned.
288
- /// @return {Map} The requested tokens for the theme.
289
- @function get-theme-tokens($theme, $systems...) {
290
- $systems: if(list.length($systems) == 0, (color, typography, density, base), $systems);
291
- $err: _validate-theme-object($theme);
292
- @if $err {
293
- @error #{'Expected $theme to be an Angular Material theme object. Got:'} $theme;
294
- }
295
- $err: validation.validate-allowed-values($systems, color, typography, density, base);
296
- @if $err {
297
- @error #{'Expected $systems to contain valid system names (color, typography, density, or'}
298
- #{'base). Got invalid system names:'} $err;
299
- }
300
- $result: ();
301
- @each $system in $systems {
302
- $result: map.deep-merge($result, map.get($theme, $internals, '#{$system}-tokens') or ());
303
- }
304
-
305
- @return $result;
306
- }
307
-
308
283
  /// Gets a version of the theme with a modified typography config that preserves old behavior in
309
284
  /// some components that previously used `private-typography-to-2014-config`.
310
285
  /// Do not introduce new usages of this, it should be cleaned up and removed.
@@ -16,13 +16,10 @@
16
16
  @use '../../toolbar/m3-toolbar';
17
17
  @use '../../tree/m3-tree';
18
18
  @use '../style/elevation';
19
- @use '../style/sass-utils';
20
19
  @use '../theming/config-validation';
21
20
  @use '../theming/definition';
22
21
  @use '../theming/palettes';
23
22
  @use './m3';
24
- @use './m3-tokens';
25
- @use 'sass:list';
26
23
  @use 'sass:map';
27
24
  @use 'sass:meta';
28
25
 
@@ -147,9 +144,9 @@
147
144
  // Emit component-level density tokens if the scale is lower than 0. The density tokens
148
145
  // do not fallback to any system-level values and must be defined if the scale is different.
149
146
  $density-tokens: get-density-tokens($scale);
150
- @each $prefix, $tokens in $density-tokens {
147
+ @each $tokens in $density-tokens {
151
148
  @each $token-name, $token-value in $tokens {
152
- --#{list.nth($prefix, 1)}-#{list.nth($prefix, 2)}-#{$token-name}: #{$token-value};
149
+ --mat-#{$token-name}: #{$token-value};
153
150
  }
154
151
  }
155
152
  }
@@ -162,23 +159,23 @@
162
159
  // Gets all density-related tokens from the components.
163
160
  @function get-density-tokens($scale) {
164
161
  @return (
165
- m3-checkbox.$prefix: m3-checkbox.get-density-tokens($scale),
166
- m3-chip.$prefix: m3-chip.get-density-tokens($scale),
167
- m3-expansion.$prefix: m3-expansion.get-density-tokens($scale),
168
- m3-fab.$prefix: m3-fab.get-density-tokens($scale),
169
- m3-button.$prefix: m3-button.get-density-tokens($scale),
170
- m3-form-field.$prefix: m3-form-field.get-density-tokens($scale),
171
- m3-icon-button.$prefix: m3-icon-button.get-density-tokens($scale),
172
- m3-list.$prefix: m3-list.get-density-tokens($scale),
173
- m3-paginator.$prefix: m3-paginator.get-density-tokens($scale),
174
- m3-radio.$prefix: m3-radio.get-density-tokens($scale),
175
- m3-tabs.$prefix: m3-tabs.get-density-tokens($scale),
176
- m3-select.$prefix: m3-select.get-density-tokens($scale),
177
- m3-button-toggle.$prefix: m3-button-toggle.get-density-tokens($scale),
178
- m3-stepper.$prefix: m3-stepper.get-density-tokens($scale),
179
- m3-table.$prefix: m3-table.get-density-tokens($scale),
180
- m3-toolbar.$prefix: m3-toolbar.get-density-tokens($scale),
181
- m3-tree.$prefix: m3-tree.get-density-tokens($scale),
162
+ m3-checkbox.get-density-tokens($scale),
163
+ m3-chip.get-density-tokens($scale),
164
+ m3-expansion.get-density-tokens($scale),
165
+ m3-fab.get-density-tokens($scale),
166
+ m3-button.get-density-tokens($scale),
167
+ m3-form-field.get-density-tokens($scale),
168
+ m3-icon-button.get-density-tokens($scale),
169
+ m3-list.get-density-tokens($scale),
170
+ m3-paginator.get-density-tokens($scale),
171
+ m3-radio.get-density-tokens($scale),
172
+ m3-tabs.get-density-tokens($scale),
173
+ m3-select.get-density-tokens($scale),
174
+ m3-button-toggle.get-density-tokens($scale),
175
+ m3-stepper.get-density-tokens($scale),
176
+ m3-table.get-density-tokens($scale),
177
+ m3-toolbar.get-density-tokens($scale),
178
+ m3-tree.get-density-tokens($scale),
182
179
  );
183
180
  }
184
181
 
@@ -299,27 +296,6 @@
299
296
  }
300
297
  }
301
298
 
302
- // Return a new map where the values are the same as the provided map's
303
- // keys, prefixed with "--mat-sys-". For example:
304
- // (key1: '', key2: '') --> (key1: --mat-sys-key1, key2: --mat-sys-key2)
305
- @function _create-system-app-vars-map($map) {
306
- $new-map: ();
307
- @each $key, $value in $map {
308
- $new-map: map.set($new-map, $key, --#{definition.$system-fallback-prefix}-#{$key});
309
- }
310
- @return $new-map;
311
- }
312
-
313
- // Create a components tokens map where values are based on
314
- // system fallback variables referencing Material's system keys.
315
- // Includes density token fallbacks where density is 0.
316
- @function create-system-fallbacks() {
317
- @return sass-utils.deep-merge-all(
318
- m3-tokens.generate-tokens($app-vars, true, true),
319
- get-density-tokens(0),
320
- );
321
- }
322
-
323
299
  /// Creates a single merged map from the provided variable-length map arguments
324
300
  @function map-merge-all($maps...) {
325
301
  $result: ();
@@ -328,28 +304,3 @@
328
304
  }
329
305
  @return $result;
330
306
  }
331
-
332
- $placeholder-palettes: m3.md-sys-color-values-light(palettes.$blue-palette);
333
- $placeholder-palettes: map.set($placeholder-palettes, primary, palettes.$blue-palette);
334
- $app-vars: (
335
- 'md-sys-color': _create-system-app-vars-map(m3.md-sys-color-values-light($placeholder-palettes)),
336
- 'md-sys-typescale': _create-system-app-vars-map(m3.md-sys-typescale-values((
337
- brand: (Roboto),
338
- plain: (Roboto),
339
- bold: 700,
340
- medium: 500,
341
- regular: 400
342
- ))),
343
- 'md-sys-elevation': _create-system-app-vars-map(m3.md-sys-elevation-values()),
344
- 'md-sys-state': _create-system-app-vars-map(m3.md-sys-state-values()),
345
- 'md-sys-shape': _create-system-app-vars-map(m3.md-sys-shape-values()),
346
- // Add a subset of palette-specific colors used by components instead of system values
347
- 'md-ref-palette': _create-system-app-vars-map(
348
- (
349
- neutral10: '', // Form field native select option text color
350
- neutral-variant20: '', // Sidenav scrim (container background shadow when opened),
351
- )
352
- ),
353
- );
354
-
355
- $theme-with-system-vars: (definition.$internals: $app-vars);
@@ -1,75 +1,7 @@
1
- @use '../../autocomplete/m3-autocomplete';
2
- @use '../../bottom-sheet/m3-bottom-sheet';
3
- @use '../../button-toggle/m3-button-toggle';
4
- @use '../../button/m3-button';
5
- @use '../../button/m3-fab';
6
- @use '../../button/m3-icon-button';
7
- @use '../../card/m3-card';
8
- @use '../../checkbox/m3-checkbox';
9
- @use '../../chips/m3-chip';
10
- @use '../../datepicker/m3-datepicker';
11
- @use '../../dialog/m3-dialog';
12
- @use '../../divider/m3-divider';
13
- @use '../../expansion/m3-expansion';
14
- @use '../../form-field/m3-form-field';
15
- @use '../../grid-list/m3-grid-list';
16
- @use '../../icon/m3-icon';
17
- @use '../../list/m3-list';
18
- @use '../../menu/m3-menu';
19
- @use '../../paginator/m3-paginator';
20
- @use '../../progress-bar/m3-progress-bar';
21
- @use '../../progress-spinner/m3-progress-spinner';
22
- @use '../../radio/m3-radio';
23
- @use '../../select/m3-select';
24
- @use '../../sidenav/m3-sidenav';
25
- @use '../../slide-toggle/m3-slide-toggle';
26
- @use '../../slider/m3-slider';
27
- @use '../../snack-bar/m3-snack-bar';
28
- @use '../../sort/m3-sort';
29
- @use '../../stepper/m3-stepper';
30
- @use '../../table/m3-table';
31
- @use '../../tabs/m3-tabs';
32
- @use '../../timepicker/m3-timepicker';
33
- @use '../../toolbar/m3-toolbar';
34
- @use '../../tooltip/m3-tooltip';
35
- @use '../../tree/m3-tree';
36
- @use '../m2' as m2-theming;
37
- @use '../m3-app';
38
- @use '../option/m3-optgroup';
39
- @use '../option/m3-option';
40
- @use '../ripple/m3-ripple';
41
- @use '../selection/pseudo-checkbox/m3-pseudo-checkbox';
42
1
  @use '../style/sass-utils';
43
- @use './m2-tokens';
44
2
  @use './m3';
45
3
  @use 'sass:map';
46
4
 
47
- $_cached-token-slots: null;
48
-
49
- /// Determines the token slots for all components.
50
- @function _get-token-slots() {
51
- // Cache the slots since they're constant and calculating
52
- // them appears to be expensive (see #29009).
53
- @if ($_cached-token-slots) {
54
- @return $_cached-token-slots;
55
- }
56
-
57
- // TODO(mmalerba): Refactor this to not depend on the legacy theme when moving out of
58
- // material-experimental. This is a hack for now because there is no good way to get the token
59
- // slots in material-experimental without exposing them all from material.
60
- $fake-theme: m2-theming.define-light-theme((
61
- color: (
62
- primary: m2-theming.define-palette(m2-theming.$red-palette),
63
- accent: m2-theming.define-palette(m2-theming.$red-palette),
64
- warn: m2-theming.define-palette(m2-theming.$red-palette),
65
- ),
66
- typography: m2-theming.define-typography-config(),
67
- density: 0
68
- ));
69
- $_cached-token-slots: m2-tokens.m2-tokens-from-theme($fake-theme) !global;
70
- @return $_cached-token-slots;
71
- }
72
-
73
5
  /// Generates a set of namespaced tokens for all components.
74
6
  /// @param {Map} $systems The MDC system tokens
75
7
  /// @param {Boolean} $include-non-systemized Whether to include non-systemized tokens
@@ -86,8 +18,6 @@ $_cached-token-slots: null;
86
18
  ), $systems);
87
19
  $exclude-hardcoded: not $include-non-systemized;
88
20
 
89
- $token-slots: _get-token-slots();
90
-
91
21
  // TODO(mmalerba): Fill in remaining tokens.
92
22
  $result: sass-utils.deep-merge-all(
93
23
  // Add the system color & typography tokens (so we can give users access via an API).
@@ -95,7 +25,6 @@ $_cached-token-slots: null;
95
25
  (mat, theme): map.get($systems, md-sys-color),
96
26
  (mat, typography): map.get($systems, md-sys-typescale),
97
27
  ),
98
- get-m3-tokens($systems, $exclude-hardcoded, $token-slots),
99
28
  );
100
29
 
101
30
  @return $result;
@@ -191,60 +120,3 @@ $_cached-token-slots: null;
191
120
  md-sys-shape: m3.md-sys-shape-values(),
192
121
  ), $include-non-systemized: true);
193
122
  }
194
-
195
- /// Gets the full set of M3 tokens for the given theme object.
196
- /// @param {Map} $systems The MDC system tokens
197
- /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
198
- /// @param {Map} $token-slots Possible token slots
199
- /// @return {Map} Full set of M3 tokens
200
- @function get-m3-tokens($systems, $exclude-hardcoded, $token-slots) {
201
- $tokens-list: (
202
- m3-app.get-tokens($systems, $exclude-hardcoded, $token-slots),
203
- m3-autocomplete.get-tokens($systems, $exclude-hardcoded, $token-slots),
204
- m3-bottom-sheet.get-tokens($systems, $exclude-hardcoded, $token-slots),
205
- m3-button-toggle.get-tokens($systems, $exclude-hardcoded, $token-slots),
206
- m3-button.get-tokens($systems, $exclude-hardcoded, $token-slots),
207
- m3-card.get-tokens($systems, $exclude-hardcoded, $token-slots),
208
- m3-checkbox.get-tokens($systems, $exclude-hardcoded, $token-slots),
209
- m3-chip.get-tokens($systems, $exclude-hardcoded, $token-slots),
210
- m3-datepicker.get-tokens($systems, $exclude-hardcoded, $token-slots),
211
- m3-dialog.get-tokens($systems, $exclude-hardcoded, $token-slots),
212
- m3-divider.get-tokens($systems, $exclude-hardcoded, $token-slots),
213
- m3-expansion.get-tokens($systems, $exclude-hardcoded, $token-slots),
214
- m3-fab.get-tokens($systems, $exclude-hardcoded, $token-slots),
215
- m3-form-field.get-tokens($systems, $exclude-hardcoded, $token-slots),
216
- m3-grid-list.get-tokens($systems, $exclude-hardcoded, $token-slots),
217
- m3-icon-button.get-tokens($systems, $exclude-hardcoded, $token-slots),
218
- m3-icon.get-tokens($systems, $exclude-hardcoded, $token-slots),
219
- m3-list.get-tokens($systems, $exclude-hardcoded, $token-slots),
220
- m3-menu.get-tokens($systems, $exclude-hardcoded, $token-slots),
221
- m3-optgroup.get-tokens($systems, $exclude-hardcoded, $token-slots),
222
- m3-option.get-tokens($systems, $exclude-hardcoded, $token-slots),
223
- m3-paginator.get-tokens($systems, $exclude-hardcoded, $token-slots),
224
- m3-progress-bar.get-tokens($systems, $exclude-hardcoded, $token-slots),
225
- m3-progress-spinner.get-tokens($systems, $exclude-hardcoded, $token-slots),
226
- m3-pseudo-checkbox.get-tokens($systems, $exclude-hardcoded, $token-slots),
227
- m3-radio.get-tokens($systems, $exclude-hardcoded, $token-slots),
228
- m3-ripple.get-tokens($systems, $exclude-hardcoded, $token-slots),
229
- m3-tabs.get-tokens($systems, $exclude-hardcoded, $token-slots),
230
- m3-select.get-tokens($systems, $exclude-hardcoded, $token-slots),
231
- m3-sidenav.get-tokens($systems, $exclude-hardcoded, $token-slots),
232
- m3-slide-toggle.get-tokens($systems, $exclude-hardcoded, $token-slots),
233
- m3-slider.get-tokens($systems, $exclude-hardcoded, $token-slots),
234
- m3-snack-bar.get-tokens($systems, $exclude-hardcoded, $token-slots),
235
- m3-sort.get-tokens($systems, $exclude-hardcoded, $token-slots),
236
- m3-stepper.get-tokens($systems, $exclude-hardcoded, $token-slots),
237
- m3-table.get-tokens($systems, $exclude-hardcoded, $token-slots),
238
- m3-timepicker.get-tokens($systems, $exclude-hardcoded, $token-slots),
239
- m3-toolbar.get-tokens($systems, $exclude-hardcoded, $token-slots),
240
- m3-tooltip.get-tokens($systems, $exclude-hardcoded, $token-slots),
241
- m3-tree.get-tokens($systems, $exclude-hardcoded, $token-slots),
242
- );
243
-
244
- $merged-tokens: ();
245
- @each $tokens in $tokens-list {
246
- $merged-tokens: map.deep-merge($merged-tokens, $tokens);
247
- }
248
-
249
- @return $merged-tokens;
250
- }
@@ -1,90 +1,7 @@
1
1
  @use 'sass:map';
2
- @use 'sass:list';
3
2
  @use 'sass:meta';
4
3
  @use 'sass:string';
5
4
 
6
- /// Gets the MDC tokens for the given prefix, M3 token values, and supported token slots.
7
- /// @param {List} $prefix The token prefix for the given tokens.
8
- /// @param {Map|(Map, Map)} $values A map of M3 token values for the given prefix.
9
- /// This param may also be a tuple of maps, the first one representing the default M3 token values,
10
- // and the second containing overrides for different color variants.
11
- // Single map example:
12
- // (token1: green, token2: 2px)
13
- // Tuple example:
14
- // (
15
- // (token1: green, token2: 2px),
16
- // (
17
- // secondary: (token1: blue),
18
- // error: (token1: red),
19
- // )
20
- // )
21
- /// @param {Map} $slots A map of token slots, with null value indicating the token is not supported.
22
- /// @param {String|null} $variant The name of the variant the token values are for.
23
- /// @return {Map} A map of fully qualified token names to values, for only the supported tokens.
24
- @function namespace($prefix, $values, $slots, $variant: null) {
25
- $result: ();
26
- @if $variant == null and meta.type-of($values) == 'list' and list.length($values == 2) {
27
- $variants: list.nth($values, 2);
28
- $values: list.nth($values, 1);
29
- @each $variant, $overrides in $variants {
30
-
31
- $result: map.merge($result, namespace($prefix, $overrides, $slots, $variant));
32
- }
33
- }
34
- $used-token-names: map.keys(_filter-nulls(map.get($slots, $prefix)));
35
- $used-m3-tokens: _pick(_filter-nulls($values), $used-token-names);
36
- $prefix: if($variant == null, $prefix, list.append($prefix, $variant));
37
- @return map.merge($result, ($prefix: $used-m3-tokens));
38
- }
39
-
40
- /// Hardcode the given value, or null if hardcoded values are excluded.
41
- @function hardcode($value, $exclude-hardcoded) {
42
- @return if($exclude-hardcoded, null, $value);
43
- }
44
-
45
- /// Picks a submap containing only the given keys out the given map.
46
- /// @param {Map} $map The map to pick from.
47
- /// @param {List} $keys The map keys to pick.
48
- /// @return {Map} A submap containing only the given keys.
49
- @function _pick($map, $keys) {
50
- $result: ();
51
- @each $key in $keys {
52
- @if map.has-key($map, $key) {
53
- $result: map.set($result, $key, map.get($map, $key));
54
- }
55
- }
56
- @return $result;
57
- }
58
-
59
-
60
- /// Filters keys with a null value out of the map.
61
- /// @param {Map} $map The map to filter.
62
- /// @return {Map} The given map with all of the null keys filtered out.
63
- @function _filter-nulls($map) {
64
- $result: ();
65
- @each $key, $val in $map {
66
- @if $val != null {
67
- $result: map.set($result, $key, $val);
68
- }
69
- }
70
- @return $result;
71
- }
72
-
73
- /// Sets all of the standard typography tokens for the given token base name to the given typography
74
- /// level.
75
- /// @param {Map} $systems The MDC system tokens
76
- /// @param {String} $base-name The token base name to get the typography tokens for
77
- /// @param {String} $typography-level The typography level to base the token values on
78
- /// @return {Map} A map containing the typography tokens for the given base token name
79
- @function generate-typography-tokens($systems, $base-name, $typography-level) {
80
- $result: ();
81
- @each $prop in (font, line-height, size, tracking, weight) {
82
- $result: map.set($result, #{$base-name}-#{$prop},
83
- map.get($systems, md-sys-typescale, #{$typography-level}-#{$prop}));
84
- }
85
- @return $result;
86
- }
87
-
88
5
  // Replaces color tokens in the map with those defined as the variant color.
89
6
  @function replace-colors-with-variant($system, $color, $variant) {
90
7
  $system: map.set($system, on-#{$color}, map.get($system, on-#{$variant}));
@@ -107,6 +24,8 @@
107
24
  map.get($theme, _mat-theming-internals-do-not-access, md-sys-state));
108
25
  $system: map.merge($system,
109
26
  map.get($theme, _mat-theming-internals-do-not-access, md-sys-typescale));
27
+ $system: map.merge($system,
28
+ map.get($theme, _mat-theming-internals-do-not-access, md-ref-palette));
110
29
  @return $system;
111
30
  }
112
31
 
@@ -116,5 +35,14 @@
116
35
  @if (meta.type-of($color) == string and string.index($color, '--') == 1) {
117
36
  $color: var($color);
118
37
  }
38
+
39
+ // Opacity may be a system level value less than 1, instead of the intended
40
+ // whole percentage, e.g. 38%. Remove this support when possible.
41
+ @if (meta.type-of($opacity) == string and string.index($opacity, '--') == 1) {
42
+ $opacity: 'calc(var(#{$opacity}) * 100%)';
43
+ } @else if (meta.type-of($opacity) == number and $opacity < 1) {
44
+ $opacity: '#{$opacity * 100}%';
45
+ }
46
+
119
47
  @return color-mix(in srgb, #{$color} #{$opacity}, transparent);
120
48
  }