@angular/material 20.0.0-rc.1 → 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 (324) 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 +9 -35
  5. package/badge/_m2-badge.scss +32 -35
  6. package/badge/_m3-badge.scss +31 -32
  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/option/_m2-optgroup.scss +6 -9
  36. package/core/option/_m2-option.scss +10 -13
  37. package/core/option/_m3-optgroup.scss +16 -13
  38. package/core/option/_m3-option.scss +28 -48
  39. package/core/option/_optgroup-theme.scss +14 -25
  40. package/core/option/_option-theme.scss +22 -33
  41. package/core/ripple/_m2-ripple.scss +1 -4
  42. package/core/ripple/_m3-ripple.scss +11 -13
  43. package/core/ripple/_ripple-theme.scss +15 -33
  44. package/core/ripple/_ripple.scss +5 -5
  45. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +10 -11
  46. package/core/selection/pseudo-checkbox/_m3-pseudo-checkbox.scss +25 -40
  47. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +16 -27
  48. package/core/style/_sass-utils.scss +0 -29
  49. package/core/theming/_color-api-backwards-compatibility.scss +46 -29
  50. package/core/theming/_definition.scss +6 -0
  51. package/core/theming/_inspection.scss +0 -25
  52. package/core/tokens/_m3-system.scss +19 -68
  53. package/core/tokens/_m3-tokens.scss +0 -128
  54. package/core/tokens/_m3-utils.scss +11 -83
  55. package/core/tokens/_token-utils.scss +52 -246
  56. package/core/tokens/m3/_index.scss +1 -0
  57. package/core/tokens/m3/_theme.scss +47 -0
  58. package/datepicker/_datepicker-theme.scss +24 -39
  59. package/datepicker/_m2-datepicker.scss +55 -50
  60. package/datepicker/_m3-datepicker.scss +65 -113
  61. package/datepicker/index.d.ts +1 -0
  62. package/dialog/_dialog-theme.scss +15 -27
  63. package/dialog/_m2-dialog.scss +25 -26
  64. package/dialog/_m3-dialog.scss +35 -35
  65. package/divider/_divider-theme.scss +14 -25
  66. package/divider/_m2-divider.scss +2 -5
  67. package/divider/_m3-divider.scss +13 -13
  68. package/expansion/_expansion-theme.scss +15 -33
  69. package/expansion/_m2-expansion.scss +28 -27
  70. package/expansion/_m3-expansion.scss +41 -36
  71. package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
  72. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  73. package/fesm2022/autocomplete.mjs +23 -23
  74. package/fesm2022/autocomplete.mjs.map +1 -1
  75. package/fesm2022/badge/testing.mjs.map +1 -1
  76. package/fesm2022/badge.mjs +11 -11
  77. package/fesm2022/badge.mjs.map +1 -1
  78. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  79. package/fesm2022/bottom-sheet.mjs +11 -11
  80. package/fesm2022/bottom-sheet.mjs.map +1 -1
  81. package/fesm2022/button/testing.mjs.map +1 -1
  82. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  83. package/fesm2022/button-toggle.mjs +19 -23
  84. package/fesm2022/button-toggle.mjs.map +1 -1
  85. package/fesm2022/button.mjs +20 -20
  86. package/fesm2022/button.mjs.map +1 -1
  87. package/fesm2022/card/testing.mjs.map +1 -1
  88. package/fesm2022/card.mjs +47 -47
  89. package/fesm2022/card.mjs.map +1 -1
  90. package/fesm2022/checkbox/testing.mjs.map +1 -1
  91. package/fesm2022/checkbox.mjs +11 -11
  92. package/fesm2022/checkbox.mjs.map +1 -1
  93. package/fesm2022/chips/testing.mjs.map +1 -1
  94. package/fesm2022/chips.mjs +52 -52
  95. package/fesm2022/chips.mjs.map +1 -1
  96. package/fesm2022/{common-module-CF0eSYO4.mjs → common-module-BeAwwoi6.mjs} +5 -5
  97. package/fesm2022/common-module-BeAwwoi6.mjs.map +1 -0
  98. package/fesm2022/core/testing.mjs.map +1 -1
  99. package/fesm2022/core.mjs +24 -24
  100. package/fesm2022/core.mjs.map +1 -1
  101. package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
  102. package/fesm2022/date-range-input-harness-Bp1T4oUe.mjs.map +1 -1
  103. package/fesm2022/datepicker/testing.mjs.map +1 -1
  104. package/fesm2022/datepicker.mjs +99 -95
  105. package/fesm2022/datepicker.mjs.map +1 -1
  106. package/fesm2022/dialog/testing.mjs +18 -5
  107. package/fesm2022/dialog/testing.mjs.map +1 -1
  108. package/fesm2022/dialog.mjs +2 -2
  109. package/fesm2022/dialog.mjs.map +1 -1
  110. package/fesm2022/divider/testing.mjs.map +1 -1
  111. package/fesm2022/divider.mjs +8 -8
  112. package/fesm2022/divider.mjs.map +1 -1
  113. package/fesm2022/{error-options-CbAHLQL5.mjs → error-options-C79tZCHG.mjs} +7 -7
  114. package/fesm2022/error-options-C79tZCHG.mjs.map +1 -0
  115. package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
  116. package/fesm2022/expansion/testing.mjs.map +1 -1
  117. package/fesm2022/expansion.mjs +28 -28
  118. package/fesm2022/expansion.mjs.map +1 -1
  119. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  120. package/fesm2022/form-field/testing.mjs.map +1 -1
  121. package/fesm2022/{form-field-sL9_TuE-.mjs → form-field-Cdw3iYrm.mjs} +33 -33
  122. package/fesm2022/form-field-Cdw3iYrm.mjs.map +1 -0
  123. package/fesm2022/form-field.mjs +3 -3
  124. package/fesm2022/form-field.mjs.map +1 -1
  125. package/fesm2022/grid-list/testing.mjs.map +1 -1
  126. package/fesm2022/grid-list.mjs +24 -24
  127. package/fesm2022/grid-list.mjs.map +1 -1
  128. package/fesm2022/icon/testing.mjs +8 -8
  129. package/fesm2022/icon/testing.mjs.map +1 -1
  130. package/fesm2022/{icon-button-BASP1JI8.mjs → icon-button-D5zzuoJc.mjs} +9 -9
  131. package/fesm2022/icon-button-D5zzuoJc.mjs.map +1 -0
  132. package/fesm2022/{icon-registry-DVLYRZv3.mjs → icon-registry-DVrJNtTv.mjs} +4 -4
  133. package/fesm2022/icon-registry-DVrJNtTv.mjs.map +1 -0
  134. package/fesm2022/icon.mjs +10 -10
  135. package/fesm2022/icon.mjs.map +1 -1
  136. package/fesm2022/{index-BNtCg9r0.mjs → index-CrjYeoWX.mjs} +9 -9
  137. package/fesm2022/index-CrjYeoWX.mjs.map +1 -0
  138. package/fesm2022/{index-DxCSjCL3.mjs → index-DTIUI_kX.mjs} +7 -7
  139. package/fesm2022/index-DTIUI_kX.mjs.map +1 -0
  140. package/fesm2022/input/testing.mjs.map +1 -1
  141. package/fesm2022/input-harness-oQzj5EsQ.mjs.map +1 -1
  142. package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
  143. package/fesm2022/input.mjs +12 -12
  144. package/fesm2022/input.mjs.map +1 -1
  145. package/fesm2022/{internal-form-field-_OHaksOO.mjs → internal-form-field-B9_shC5z.mjs} +4 -4
  146. package/fesm2022/internal-form-field-B9_shC5z.mjs.map +1 -0
  147. package/fesm2022/{line-CtAKiRo6.mjs → line-XysKlyvU.mjs} +9 -9
  148. package/fesm2022/line-XysKlyvU.mjs.map +1 -0
  149. package/fesm2022/list/testing.mjs.map +1 -1
  150. package/fesm2022/list.mjs +55 -55
  151. package/fesm2022/list.mjs.map +1 -1
  152. package/fesm2022/material.mjs.map +1 -1
  153. package/fesm2022/menu/testing.mjs.map +1 -1
  154. package/fesm2022/menu.mjs +20 -20
  155. package/fesm2022/menu.mjs.map +1 -1
  156. package/fesm2022/{module-DToxyW7l.mjs → module-CVpKZX1V.mjs} +7 -7
  157. package/fesm2022/module-CVpKZX1V.mjs.map +1 -0
  158. package/fesm2022/{module-ChwDH6BC.mjs → module-CdXqcjot.mjs} +28 -28
  159. package/fesm2022/module-CdXqcjot.mjs.map +1 -0
  160. package/fesm2022/{module-m5vWw9-5.mjs → module-CwYXiMoV.mjs} +12 -12
  161. package/fesm2022/module-CwYXiMoV.mjs.map +1 -0
  162. package/fesm2022/{module-DqTK2swA.mjs → module-r2U_2G3G.mjs} +17 -17
  163. package/fesm2022/module-r2U_2G3G.mjs.map +1 -0
  164. package/fesm2022/{option-hkPAbXDN.mjs → option-D4ZNnnWi.mjs} +11 -11
  165. package/fesm2022/option-D4ZNnnWi.mjs.map +1 -0
  166. package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
  167. package/fesm2022/paginator/testing.mjs.map +1 -1
  168. package/fesm2022/paginator.mjs +25 -25
  169. package/fesm2022/paginator.mjs.map +1 -1
  170. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  171. package/fesm2022/progress-bar.mjs +8 -8
  172. package/fesm2022/progress-bar.mjs.map +1 -1
  173. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  174. package/fesm2022/progress-spinner.mjs +8 -8
  175. package/fesm2022/progress-spinner.mjs.map +1 -1
  176. package/fesm2022/{pseudo-checkbox-Ddidc23S.mjs → pseudo-checkbox-DQugCpur.mjs} +4 -4
  177. package/fesm2022/pseudo-checkbox-DQugCpur.mjs.map +1 -0
  178. package/fesm2022/{pseudo-checkbox-module--am9-RIA.mjs → pseudo-checkbox-module-BXWS_-PP.mjs} +7 -7
  179. package/fesm2022/pseudo-checkbox-module-BXWS_-PP.mjs.map +1 -0
  180. package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
  181. package/fesm2022/radio/testing.mjs.map +1 -1
  182. package/fesm2022/radio.mjs +19 -16
  183. package/fesm2022/radio.mjs.map +1 -1
  184. package/fesm2022/{ripple-DUGA2BAa.mjs → ripple-BtLhcfGO.mjs} +7 -7
  185. package/fesm2022/ripple-BtLhcfGO.mjs.map +1 -0
  186. package/fesm2022/{ripple-loader-Xy4bv6Xh.mjs → ripple-loader-DBdhLqHy.mjs} +5 -5
  187. package/fesm2022/ripple-loader-DBdhLqHy.mjs.map +1 -0
  188. package/fesm2022/select/testing.mjs.map +1 -1
  189. package/fesm2022/select.mjs +12 -12
  190. package/fesm2022/select.mjs.map +1 -1
  191. package/fesm2022/sidenav/testing.mjs.map +1 -1
  192. package/fesm2022/sidenav.mjs +29 -25
  193. package/fesm2022/sidenav.mjs.map +1 -1
  194. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  195. package/fesm2022/slide-toggle.mjs +11 -11
  196. package/fesm2022/slide-toggle.mjs.map +1 -1
  197. package/fesm2022/slider/testing.mjs.map +1 -1
  198. package/fesm2022/slider.mjs +21 -21
  199. package/fesm2022/slider.mjs.map +1 -1
  200. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  201. package/fesm2022/snack-bar.mjs +29 -29
  202. package/fesm2022/snack-bar.mjs.map +1 -1
  203. package/fesm2022/sort/testing.mjs.map +1 -1
  204. package/fesm2022/sort.mjs +15 -15
  205. package/fesm2022/sort.mjs.map +1 -1
  206. package/fesm2022/stepper/testing.mjs.map +1 -1
  207. package/fesm2022/stepper.mjs +38 -38
  208. package/fesm2022/stepper.mjs.map +1 -1
  209. package/fesm2022/{structural-styles-DA18Hchc.mjs → structural-styles-DWEe15sC.mjs} +4 -4
  210. package/fesm2022/structural-styles-DWEe15sC.mjs.map +1 -0
  211. package/fesm2022/table/testing.mjs.map +1 -1
  212. package/fesm2022/table.mjs +56 -56
  213. package/fesm2022/table.mjs.map +1 -1
  214. package/fesm2022/tabs/testing.mjs.map +1 -1
  215. package/fesm2022/tabs.mjs +67 -63
  216. package/fesm2022/tabs.mjs.map +1 -1
  217. package/fesm2022/timepicker/testing.mjs.map +1 -1
  218. package/fesm2022/timepicker.mjs +20 -20
  219. package/fesm2022/timepicker.mjs.map +1 -1
  220. package/fesm2022/toolbar/testing.mjs.map +1 -1
  221. package/fesm2022/toolbar.mjs +12 -12
  222. package/fesm2022/toolbar.mjs.map +1 -1
  223. package/fesm2022/tooltip/testing.mjs.map +1 -1
  224. package/fesm2022/tooltip.mjs +2 -2
  225. package/fesm2022/tooltip.mjs.map +1 -1
  226. package/fesm2022/tree/testing.mjs.map +1 -1
  227. package/fesm2022/tree.mjs +26 -26
  228. package/fesm2022/tree.mjs.map +1 -1
  229. package/form-field/_form-field-theme.scss +23 -55
  230. package/form-field/_m2-form-field.scss +112 -91
  231. package/form-field/_m3-form-field.scss +116 -131
  232. package/grid-list/_grid-list-theme.scss +13 -23
  233. package/grid-list/_m2-grid-list.scss +8 -7
  234. package/grid-list/_m3-grid-list.scss +14 -15
  235. package/icon/_icon-theme.scss +20 -30
  236. package/icon/_m2-icon.scss +1 -4
  237. package/icon/_m3-icon.scss +13 -27
  238. package/input/_input-theme.scss +7 -40
  239. package/list/_list-theme.scss +22 -52
  240. package/list/_m2-list.scss +56 -55
  241. package/list/_m3-list.scss +69 -67
  242. package/menu/_m2-menu.scss +22 -25
  243. package/menu/_m3-menu.scss +35 -38
  244. package/menu/_menu-theme.scss +15 -27
  245. package/package.json +2 -2
  246. package/paginator/_m2-paginator.scss +16 -17
  247. package/paginator/_m3-paginator.scss +28 -27
  248. package/paginator/_paginator-theme.scss +14 -40
  249. package/prebuilt-themes/deeppurple-amber.css +1 -1
  250. package/prebuilt-themes/indigo-pink.css +1 -1
  251. package/prebuilt-themes/pink-bluegrey.css +1 -1
  252. package/prebuilt-themes/purple-green.css +1 -1
  253. package/progress-bar/_m2-progress-bar.scss +5 -8
  254. package/progress-bar/_m3-progress-bar.scss +17 -26
  255. package/progress-bar/_progress-bar-theme.scss +17 -27
  256. package/progress-spinner/_m2-progress-spinner.scss +3 -6
  257. package/progress-spinner/_m3-progress-spinner.scss +15 -22
  258. package/progress-spinner/_progress-spinner-theme.scss +20 -43
  259. package/radio/_m2-radio.scss +24 -27
  260. package/radio/_m3-radio.scss +44 -58
  261. package/radio/_radio-theme.scss +23 -50
  262. package/schematics/ng-add/index.js +1 -1
  263. package/schematics/ng-update/index_bundled.js +2 -0
  264. package/schematics/ng-update/index_bundled.js.map +1 -1
  265. package/select/_m2-select.scss +15 -18
  266. package/select/_m3-select.scss +32 -38
  267. package/select/_select-theme.scss +23 -50
  268. package/sidenav/_m2-sidenav.scss +9 -12
  269. package/sidenav/_m3-sidenav.scss +20 -22
  270. package/sidenav/_sidenav-theme.scss +14 -25
  271. package/slide-toggle/_m2-slide-toggle.scss +82 -83
  272. package/slide-toggle/_m3-slide-toggle.scss +102 -143
  273. package/slide-toggle/_slide-toggle-theme.scss +26 -61
  274. package/slider/_m2-slider.scss +46 -46
  275. package/slider/_m3-slider.scss +54 -109
  276. package/slider/_slider-theme.scss +23 -34
  277. package/snack-bar/_m2-snack-bar.scss +10 -11
  278. package/snack-bar/_m3-snack-bar.scss +20 -19
  279. package/snack-bar/_snack-bar-theme.scss +14 -26
  280. package/sort/_m2-sort.scss +1 -4
  281. package/sort/_m3-sort.scss +11 -9
  282. package/sort/_sort-theme.scss +15 -27
  283. package/stepper/_m2-stepper.scss +32 -31
  284. package/stepper/_m3-stepper.scss +44 -79
  285. package/stepper/_stepper-theme.scss +22 -50
  286. package/table/_m2-table.scss +25 -26
  287. package/table/_m3-table.scss +36 -27
  288. package/table/_table-theme.scss +15 -32
  289. package/tabs/_m2-tabs.scss +26 -29
  290. package/tabs/_m3-tabs.scss +40 -51
  291. package/tabs/_tabs-theme.scss +37 -58
  292. package/tabs/index.d.ts +5 -3
  293. package/timepicker/_m2-timepicker.scss +3 -6
  294. package/timepicker/_m3-timepicker.scss +14 -15
  295. package/timepicker/_timepicker-theme.scss +20 -45
  296. package/toolbar/_m2-toolbar.scss +11 -12
  297. package/toolbar/_m3-toolbar.scss +22 -17
  298. package/toolbar/_toolbar-theme.scss +13 -37
  299. package/tooltip/_m2-tooltip.scss +9 -11
  300. package/tooltip/_m3-tooltip.scss +19 -19
  301. package/tooltip/_tooltip-theme.scss +17 -35
  302. package/tree/_m2-tree.scss +6 -9
  303. package/tree/_m3-tree.scss +19 -16
  304. package/tree/_tree-theme.scss +14 -36
  305. package/fesm2022/common-module-CF0eSYO4.mjs.map +0 -1
  306. package/fesm2022/error-options-CbAHLQL5.mjs.map +0 -1
  307. package/fesm2022/form-field-sL9_TuE-.mjs.map +0 -1
  308. package/fesm2022/icon-button-BASP1JI8.mjs.map +0 -1
  309. package/fesm2022/icon-registry-DVLYRZv3.mjs.map +0 -1
  310. package/fesm2022/index-BNtCg9r0.mjs.map +0 -1
  311. package/fesm2022/index-DxCSjCL3.mjs.map +0 -1
  312. package/fesm2022/internal-form-field-_OHaksOO.mjs.map +0 -1
  313. package/fesm2022/line-CtAKiRo6.mjs.map +0 -1
  314. package/fesm2022/module-ChwDH6BC.mjs.map +0 -1
  315. package/fesm2022/module-DToxyW7l.mjs.map +0 -1
  316. package/fesm2022/module-DqTK2swA.mjs.map +0 -1
  317. package/fesm2022/module-m5vWw9-5.mjs.map +0 -1
  318. package/fesm2022/option-hkPAbXDN.mjs.map +0 -1
  319. package/fesm2022/pseudo-checkbox-Ddidc23S.mjs.map +0 -1
  320. package/fesm2022/pseudo-checkbox-module--am9-RIA.mjs.map +0 -1
  321. package/fesm2022/ripple-DUGA2BAa.mjs.map +0 -1
  322. package/fesm2022/ripple-loader-Xy4bv6Xh.mjs.map +0 -1
  323. package/fesm2022/structural-styles-DA18Hchc.mjs.map +0 -1
  324. package/schematics/tsconfig.json +0 -26
@@ -5,14 +5,11 @@
5
5
  @use '../core/style/elevation';
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, select);
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
- container-elevation-shadow: elevation.get-box-shadow(8),
12
+ select-container-elevation-shadow: elevation.get-box-shadow(8),
16
13
  );
17
14
  }
18
15
 
@@ -31,16 +28,16 @@ $prefix: (mat, select);
31
28
  inspection.get-theme-color($theme, foreground, divider, 1));
32
29
 
33
30
  @return (
34
- panel-background-color: inspection.get-theme-color($theme, background, card),
35
- enabled-trigger-text-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.87),
36
- disabled-trigger-text-color:
31
+ select-panel-background-color: inspection.get-theme-color($theme, background, card),
32
+ select-enabled-trigger-text-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.87),
33
+ select-disabled-trigger-text-color:
37
34
  sass-utils.safe-color-change($disabled-text-color-base, $alpha: 0.38),
38
- placeholder-text-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.6),
39
- enabled-arrow-color: sass-utils.safe-color-change($icon-color-base, $alpha: 0.54),
40
- disabled-arrow-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.38),
41
- focused-arrow-color: sass-utils.safe-color-change(
35
+ select-placeholder-text-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.6),
36
+ select-enabled-arrow-color: sass-utils.safe-color-change($icon-color-base, $alpha: 0.54),
37
+ select-disabled-arrow-color: sass-utils.safe-color-change($text-color-base, $alpha: 0.38),
38
+ select-focused-arrow-color: sass-utils.safe-color-change(
42
39
  inspection.get-theme-color($theme, $palette-name, default), $alpha: 0.87),
43
- invalid-arrow-color: sass-utils.safe-color-change(
40
+ select-invalid-arrow-color: sass-utils.safe-color-change(
44
41
  inspection.get-theme-color($theme, warn, default), $alpha: 0.87),
45
42
  );
46
43
  }
@@ -48,11 +45,11 @@ $prefix: (mat, select);
48
45
  // Tokens that can be configured through Angular Material's typography theming API.
49
46
  @function get-typography-tokens($theme) {
50
47
  @return (
51
- trigger-text-font: inspection.get-theme-typography($theme, body-1, font-family),
52
- trigger-text-line-height: inspection.get-theme-typography($theme, body-1, line-height),
53
- trigger-text-size: inspection.get-theme-typography($theme, body-1, font-size),
54
- trigger-text-tracking: inspection.get-theme-typography($theme, body-1, letter-spacing),
55
- trigger-text-weight: inspection.get-theme-typography($theme, body-1, font-weight)
48
+ select-trigger-text-font: inspection.get-theme-typography($theme, body-1, font-family),
49
+ select-trigger-text-line-height: inspection.get-theme-typography($theme, body-1, line-height),
50
+ select-trigger-text-size: inspection.get-theme-typography($theme, body-1, font-size),
51
+ select-trigger-text-tracking: inspection.get-theme-typography($theme, body-1, letter-spacing),
52
+ select-trigger-text-weight: inspection.get-theme-typography($theme, body-1, font-weight)
56
53
  );
57
54
  }
58
55
 
@@ -61,7 +58,7 @@ $prefix: (mat, select);
61
58
  $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -2);
62
59
 
63
60
  @return (
64
- arrow-transform: map.get((
61
+ select-arrow-transform: map.get((
65
62
  0: translateY(-8px),
66
63
  -1: translateY(-8px),
67
64
  -2: none,
@@ -1,61 +1,55 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:list';
3
- @use '../core/style/sass-utils';
4
3
  @use '../core/style/elevation';
5
4
  @use '../core/tokens/m3-utils';
6
5
  @use '../core/theming/theming';
7
6
  @use '../core/theming/inspection';
7
+ @use '../core/tokens/m3';
8
8
 
9
9
  // The prefix used to generate the fully qualified name for tokens in this file.
10
10
  $prefix: (mat, select);
11
11
 
12
12
  /// Generates custom tokens for the mat-select.
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-select
17
- @function get-tokens($systems, $exclude-hardcoded, $token-slots) {
18
- $tokens: sass-utils.merge-all(
19
- m3-utils.generate-typography-tokens($systems, trigger-text, body-large),
20
- (
21
- panel-background-color: map.get($systems, md-sys-color, surface-container),
22
- enabled-trigger-text-color: map.get($systems, md-sys-color, on-surface),
23
- disabled-trigger-text-color: sass-utils.safe-color-change(
24
- map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
25
- placeholder-text-color: map.get($systems, md-sys-color, on-surface-variant),
26
- enabled-arrow-color: map.get($systems, md-sys-color, on-surface-variant),
27
- disabled-arrow-color: sass-utils.safe-color-change(
28
- map.get($systems, md-sys-color, on-surface), $alpha: 0.38),
29
- focused-arrow-color: map.get($systems, md-sys-color, primary),
30
- invalid-arrow-color: map.get($systems, md-sys-color, error),
31
- container-elevation-shadow:
32
- m3-utils.hardcode(elevation.get-box-shadow(2), $exclude-hardcoded),
33
- )
34
- );
13
+ /// @param {String} $color-variant The color variant to use for the component
14
+ @function get-tokens($theme: m3.$sys-theme, $color-variant: null) {
15
+ $system: m3-utils.get-system($theme);
16
+ @if $color-variant {
17
+ $system: m3-utils.replace-colors-with-variant($system, primary, $color-variant);
18
+ }
35
19
 
36
- $variant-tokens: (
37
- // Color variants:
38
- primary: (), // Default, no overrides needed
39
- secondary: (
40
- focused-arrow-color: map.get($systems, md-sys-color, secondary),
20
+ @return (
21
+ base: (
22
+ select-container-elevation-shadow: elevation.get-box-shadow(2),
41
23
  ),
42
- tertiary: (
43
- focused-arrow-color: map.get($systems, md-sys-color, tertiary),
24
+ color: (
25
+ select-panel-background-color: map.get($system, surface-container),
26
+ select-enabled-trigger-text-color: map.get($system, on-surface),
27
+ select-disabled-trigger-text-color:
28
+ m3-utils.color-with-opacity(map.get($system, on-surface), 38%),
29
+ select-placeholder-text-color: map.get($system, on-surface-variant),
30
+ select-enabled-arrow-color: map.get($system, on-surface-variant),
31
+ select-disabled-arrow-color:
32
+ m3-utils.color-with-opacity(map.get($system, on-surface), 38%),
33
+ select-focused-arrow-color: map.get($system, primary),
34
+ select-invalid-arrow-color: map.get($system, error),
44
35
  ),
45
- error: (
46
- focused-arrow-color: map.get($systems, md-sys-color, error),
47
- )
36
+ typography: (
37
+ select-trigger-text-font: map.get($system, body-large-font),
38
+ select-trigger-text-line-height: map.get($system, body-large-line-height),
39
+ select-trigger-text-size: map.get($system, body-large-size),
40
+ select-trigger-text-tracking: map.get($system, body-large-tracking),
41
+ select-trigger-text-weight: map.get($system, body-large-weight),
42
+ ),
43
+ density: get-density-tokens(map.get($theme, inspection.$internals, density-scale)),
48
44
  );
49
-
50
- @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots);
51
45
  }
52
46
 
53
47
  // Tokens that can be configured through Angular Material's density theming API.
54
- @function get-density-tokens($theme) {
55
- $scale: theming.clamp-density(inspection.get-theme-density($theme), -2);
48
+ @function get-density-tokens($scale) {
49
+ $scale: theming.clamp-density($scale, -2);
56
50
  $index: ($scale * -1) + 1;
57
51
 
58
52
  @return (
59
- arrow-transform: list.nth((translateY(-8px), translateY(-8px), none), $index),
53
+ select-arrow-transform: list.nth((translateY(-8px), translateY(-8px), none), $index),
60
54
  );
61
55
  }
@@ -1,53 +1,43 @@
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-select';
8
7
  @use './m3-select';
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-select.
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-select.get-tokens($theme), base));
16
16
  } @else {
17
17
  @include sass-utils.current-selector-or-root() {
18
18
  $mat-tokens: m2-select.get-unthemable-tokens();
19
- @include token-utils.create-token-values-mixed(m2-select.$prefix, $mat-tokens);
19
+ @include token-utils.create-token-values-mixed($mat-tokens);
20
20
  }
21
21
  }
22
22
  }
23
23
 
24
24
  /// Outputs color theme styles for the mat-select.
25
25
  /// @param {Map} $theme The theme to generate color styles for.
26
- /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
27
- /// $color-variant: The color variant to use for the select arrow: primary, secondary, tertiary,
28
- /// or error (If not specified, default primary color will be used).
29
- @mixin color($theme, $options...) {
26
+ /// @param {String} $color-variant The color variant to use for the component (M3 only)
27
+ @mixin color($theme, $color-variant: null) {
30
28
  @if inspection.get-theme-version($theme) == 1 {
31
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...);
29
+ @include token-utils.create-token-values(
30
+ map.get(m3-select.get-tokens($theme, $color-variant), color));
32
31
  } @else {
33
32
  @include sass-utils.current-selector-or-root() {
34
- @include token-utils.create-token-values-mixed(
35
- m2-select.$prefix,
36
- m2-select.get-color-tokens($theme)
37
- );
33
+ @include token-utils.create-token-values-mixed(m2-select.get-color-tokens($theme));
38
34
 
39
35
  .mat-mdc-form-field.mat-accent {
40
- @include token-utils.create-token-values-mixed(
41
- m2-select.$prefix,
42
- m2-select.get-color-tokens($theme, accent)
43
- );
36
+ @include token-utils.create-token-values-mixed(m2-select.get-color-tokens($theme, accent));
44
37
  }
45
38
 
46
39
  .mat-mdc-form-field.mat-warn {
47
- @include token-utils.create-token-values-mixed(
48
- m2-select.$prefix,
49
- m2-select.get-color-tokens($theme, warn)
50
- );
40
+ @include token-utils.create-token-values-mixed(m2-select.get-color-tokens($theme, warn));
51
41
  }
52
42
  }
53
43
  }
@@ -57,13 +47,10 @@
57
47
  /// @param {Map} $theme The theme to generate typography styles for.
58
48
  @mixin typography($theme) {
59
49
  @if inspection.get-theme-version($theme) == 1 {
60
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
50
+ @include token-utils.create-token-values(map.get(m3-select.get-tokens($theme), typography));
61
51
  } @else {
62
52
  @include sass-utils.current-selector-or-root() {
63
- @include token-utils.create-token-values-mixed(
64
- m2-select.$prefix,
65
- m2-select.get-typography-tokens($theme)
66
- );
53
+ @include token-utils.create-token-values-mixed(m2-select.get-typography-tokens($theme));
67
54
  }
68
55
  }
69
56
  }
@@ -72,14 +59,10 @@
72
59
  /// @param {Map} $theme The theme to generate density styles for.
73
60
  @mixin density($theme) {
74
61
  @if inspection.get-theme-version($theme) == 1 {
75
- @include token-utils.create-token-values(
76
- m3-select.$prefix, m3-select.get-density-tokens($theme));
62
+ @include token-utils.create-token-values(map.get(m3-select.get-tokens($theme), density));
77
63
  } @else {
78
64
  @include sass-utils.current-selector-or-root() {
79
- @include token-utils.create-token-values-mixed(
80
- m2-select.$prefix,
81
- m2-select.get-density-tokens($theme)
82
- );
65
+ @include token-utils.create-token-values-mixed(m2-select.get-density-tokens($theme));
83
66
  }
84
67
  }
85
68
  }
@@ -88,8 +71,8 @@
88
71
  @function _define-overrides() {
89
72
  @return (
90
73
  (
91
- namespace: m2-select.$prefix,
92
- tokens: m2-select.get-token-slots(),
74
+ namespace: select,
75
+ tokens: token-utils.get-overrides(m3-select.get-tokens(), select)
93
76
  ),
94
77
  );
95
78
  }
@@ -97,21 +80,19 @@
97
80
  /// Outputs the CSS variable values for the given tokens.
98
81
  /// @param {Map} $tokens The token values to emit.
99
82
  @mixin overrides($tokens: ()) {
100
- @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
83
+ @include token-utils.batch-create-token-values($tokens, _define-overrides());
101
84
  }
102
85
 
103
86
  /// Outputs all (base, color, typography, and density) theme styles for the mat-icon.
104
87
  /// @param {Map} $theme The theme to generate styles for.
105
- /// @param {ArgList} Additional optional arguments (only supported for M3 themes):
106
- /// $color-variant: The color variant to use for the select arrow: primary, secondary, tertiary,
107
- /// or error (If not specified, default primary color will be used).
108
- @mixin theme($theme, $options...) {
88
+ /// @param {String} $color-variant The color variant to use for the component (M3 only)
89
+ @mixin theme($theme, $color-variant: null) {
109
90
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-select') {
110
91
  @if inspection.get-theme-version($theme) == 1 {
111
- @include _theme-from-tokens(inspection.get-theme-tokens($theme), $options...);
112
- @if inspection.theme-has($theme, density) {
113
- @include density($theme);
114
- }
92
+ @include base($theme);
93
+ @include color($theme, $color-variant);
94
+ @include density($theme);
95
+ @include typography($theme);
115
96
  } @else {
116
97
  @include base($theme);
117
98
  @if inspection.theme-has($theme, color) {
@@ -126,11 +107,3 @@
126
107
  }
127
108
  }
128
109
  }
129
-
130
- @mixin _theme-from-tokens($tokens, $options...) {
131
- @include validation.selector-defined(
132
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
133
- );
134
- $mat-select-tokens: token-utils.get-tokens-for($tokens, m2-select.$prefix, $options...);
135
- @include token-utils.create-token-values(m2-select.$prefix, $mat-select-tokens);
136
- }
@@ -5,18 +5,15 @@
5
5
  @use '../core/style/elevation';
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, sidenav);
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
12
  // Currently zero, but it appears to be relevant for M3.
16
13
  // See: https://m3.material.io/components/navigation-drawer/overview
17
- container-shape: 0,
18
- container-elevation-shadow: elevation.get-box-shadow(16),
19
- container-width: auto,
14
+ sidenav-container-shape: 0,
15
+ sidenav-container-elevation-shadow: elevation.get-box-shadow(16),
16
+ sidenav-container-width: auto,
20
17
  );
21
18
  }
22
19
 
@@ -29,17 +26,17 @@ $prefix: (mat, sidenav);
29
26
  $fallback-scrim-color: if($is-dark, rgba(#fff, $scrim-opacity), rgba(#000, $scrim-opacity));
30
27
 
31
28
  @return (
32
- container-divider-color: inspection.get-theme-color($theme, foreground, divider),
33
- container-background-color: inspection.get-theme-color($theme, background, dialog),
34
- container-text-color: inspection.get-theme-color($theme, foreground, text),
35
- content-background-color: inspection.get-theme-color($theme, background, background),
36
- content-text-color: inspection.get-theme-color($theme, foreground, text),
29
+ sidenav-container-divider-color: inspection.get-theme-color($theme, foreground, divider),
30
+ sidenav-container-background-color: inspection.get-theme-color($theme, background, dialog),
31
+ sidenav-container-text-color: inspection.get-theme-color($theme, foreground, text),
32
+ sidenav-content-background-color: inspection.get-theme-color($theme, background, background),
33
+ sidenav-content-text-color: inspection.get-theme-color($theme, foreground, text),
37
34
 
38
35
  // We use invert() here to have the darken the background color expected to be used.
39
36
  // If the background is light, we use a dark backdrop. If the background is dark, we
40
37
  // use a light backdrop. If the value isn't a color, Sass will throw an error so we
41
38
  // fall back to something generic.
42
- scrim-color: if(meta.type-of($scrim-color) == color,
39
+ sidenav-scrim-color: if(meta.type-of($scrim-color) == color,
43
40
  color.invert($scrim-color), $fallback-scrim-color),
44
41
  );
45
42
  }
@@ -1,28 +1,26 @@
1
1
  @use 'sass:map';
2
- @use '../core/style/sass-utils';
3
2
  @use '../core/tokens/m3-utils';
4
-
5
- // The prefix used to generate the fully qualified name for tokens in this file.
6
- $prefix: (mat, sidenav);
3
+ @use '../core/tokens/m3';
7
4
 
8
5
  /// Generates custom tokens for the mat-sidenav.
9
- /// @param {Map} $systems The MDC system tokens
10
- /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
11
- /// @param {Map} $token-slots Possible token slots
12
- /// @return {Map} A set of custom tokens for the mat-sidenav
13
- @function get-tokens($systems, $exclude-hardcoded, $token-slots) {
14
- $tokens: (
15
- container-elevation-shadow: m3-utils.hardcode(none, $exclude-hardcoded),
16
- container-divider-color: m3-utils.hardcode(transparent, $exclude-hardcoded),
17
- container-width: m3-utils.hardcode(360px, $exclude-hardcoded),
18
- container-shape: map.get($systems, md-sys-shape, corner-large),
19
- container-background-color: map.get($systems, md-sys-color, surface),
20
- container-text-color: map.get($systems, md-sys-color, on-surface-variant),
21
- content-background-color: map.get($systems, md-sys-color, background),
22
- content-text-color: map.get($systems, md-sys-color, on-background),
23
- scrim-color: sass-utils.safe-color-change(
24
- map.get($systems, md-ref-palette, neutral-variant20), $alpha: 0.4),
25
- );
6
+ @function get-tokens($theme: m3.$sys-theme) {
7
+ $system: m3-utils.get-system($theme);
26
8
 
27
- @return m3-utils.namespace($prefix, $tokens, $token-slots);
9
+ @return (
10
+ base: (
11
+ sidenav-container-shape: map.get($system, corner-large),
12
+ sidenav-container-elevation-shadow: none,
13
+ sidenav-container-width: 360px,
14
+ sidenav-container-divider-color: transparent,
15
+ ),
16
+ color: (
17
+ sidenav-container-background-color: map.get($system, surface),
18
+ sidenav-container-text-color: map.get($system, on-surface-variant),
19
+ sidenav-content-background-color: map.get($system, background),
20
+ sidenav-content-text-color: map.get($system, on-background),
21
+ sidenav-scrim-color: m3-utils.color-with-opacity(map.get($system, neutral-variant20), 40%),
22
+ ),
23
+ typography: (),
24
+ density: (),
25
+ );
28
26
  }
@@ -2,42 +2,40 @@
2
2
  @use '../core/style/sass-utils';
3
3
  @use '../core/theming/inspection';
4
4
  @use '../core/theming/theming';
5
- @use '../core/theming/validation';
6
5
  @use '../core/tokens/token-utils';
7
6
  @use './m2-sidenav';
7
+ @use './m3-sidenav';
8
8
 
9
9
  @mixin base($theme) {
10
10
  @if inspection.get-theme-version($theme) == 1 {
11
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
11
+ @include token-utils.create-token-values(map.get(m3-sidenav.get-tokens($theme), base));
12
12
  } @else {
13
13
  @include sass-utils.current-selector-or-root() {
14
- @include token-utils.create-token-values-mixed(
15
- m2-sidenav.$prefix, m2-sidenav.get-unthemable-tokens());
14
+ @include token-utils.create-token-values-mixed(m2-sidenav.get-unthemable-tokens());
16
15
  }
17
16
  }
18
17
  }
19
18
 
20
19
  @mixin color($theme) {
21
20
  @if inspection.get-theme-version($theme) == 1 {
22
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
21
+ @include token-utils.create-token-values(map.get(m3-sidenav.get-tokens($theme), color));
23
22
  } @else {
24
23
  @include sass-utils.current-selector-or-root() {
25
- @include token-utils.create-token-values-mixed(
26
- m2-sidenav.$prefix, m2-sidenav.get-color-tokens($theme));
24
+ @include token-utils.create-token-values-mixed(m2-sidenav.get-color-tokens($theme));
27
25
  }
28
26
  }
29
27
  }
30
28
 
31
29
  @mixin typography($theme) {
32
30
  @if inspection.get-theme-version($theme) == 1 {
33
- @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
31
+ @include token-utils.create-token-values(map.get(m3-sidenav.get-tokens($theme), typography));
34
32
  } @else {
35
33
  }
36
34
  }
37
35
 
38
36
  @mixin density($theme) {
39
37
  @if inspection.get-theme-version($theme) == 1 {
40
- // There are no M3 density tokens for this component
38
+ @include token-utils.create-token-values(map.get(m3-sidenav.get-tokens($theme), base));
41
39
  } @else {
42
40
  }
43
41
  }
@@ -46,20 +44,23 @@
46
44
  @function _define-overrides() {
47
45
  @return (
48
46
  (
49
- namespace: m2-sidenav.$prefix,
50
- tokens: m2-sidenav.get-token-slots(),
47
+ namespace: sidenav,
48
+ tokens: token-utils.get-overrides(m3-sidenav.get-tokens(), sidenav)
51
49
  ),
52
50
  );
53
51
  }
54
52
 
55
53
  @mixin overrides($tokens: ()) {
56
- @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
54
+ @include token-utils.batch-create-token-values($tokens, _define-overrides());
57
55
  }
58
56
 
59
57
  @mixin theme($theme) {
60
58
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-sidenav') {
61
59
  @if inspection.get-theme-version($theme) == 1 {
62
- @include _theme-from-tokens(inspection.get-theme-tokens($theme));
60
+ @include base($theme);
61
+ @include color($theme);
62
+ @include density($theme);
63
+ @include typography($theme);
63
64
  } @else {
64
65
  @include base($theme);
65
66
  @if inspection.theme-has($theme, color) {
@@ -74,15 +75,3 @@
74
75
  }
75
76
  }
76
77
  }
77
-
78
- @mixin _theme-from-tokens($tokens) {
79
- @include validation.selector-defined(
80
- 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector'
81
- );
82
- @if ($tokens != ()) {
83
- @include token-utils.create-token-values(
84
- m2-sidenav.$prefix,
85
- map.get($tokens, m2-sidenav.$prefix)
86
- );
87
- }
88
- }