@angular/material 18.2.0-next.0 → 18.2.0-next.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 (409) hide show
  1. package/button/_button-base.scss +0 -6
  2. package/button/_icon-button-theme.scss +18 -9
  3. package/checkbox/_checkbox-common.scss +38 -4
  4. package/checkbox/index.d.ts +6 -1
  5. package/core/_core.scss +15 -18
  6. package/core/m2/_typography.scss +129 -2
  7. package/core/style/_elevation.scss +116 -27
  8. package/core/theming/_color-api-backwards-compatibility.scss +2 -0
  9. package/core/tokens/_m3-tokens.scss +13 -13
  10. package/core/tokens/_token-utils.scss +98 -25
  11. package/core/tokens/m2/mat/_fab-small.scss +1 -2
  12. package/core/tokens/m2/mat/_fab.scss +1 -2
  13. package/core/tokens/m2/mat/_filled-button.scss +1 -2
  14. package/core/tokens/m2/mat/_form-field.scss +2 -5
  15. package/core/tokens/m2/mat/_optgroup.scss +0 -9
  16. package/core/tokens/m2/mat/_option.scss +0 -9
  17. package/core/tokens/m2/mat/_paginator.scss +1 -2
  18. package/core/tokens/m2/mat/_protected-button.scss +1 -2
  19. package/core/tokens/m2/mdc/_checkbox.scss +1 -2
  20. package/core/tokens/m2/mdc/_circular-progress.scss +2 -2
  21. package/core/tokens/m2/mdc/_filled-button.scss +1 -2
  22. package/core/tokens/m2/mdc/_protected-button.scss +1 -2
  23. package/core/tokens/m2/mdc/_slider.scss +3 -6
  24. package/core/tokens/m2/mdc/_switch.scss +12 -8
  25. package/core/tokens/m3/definitions/_index.scss +94 -0
  26. package/core/tokens/m3/definitions/_md-comp-checkbox.scss +120 -0
  27. package/core/tokens/m3/definitions/_md-comp-circular-progress-indicator.scss +27 -0
  28. package/core/tokens/m3/definitions/_md-comp-data-table.scss +90 -0
  29. package/core/tokens/m3/definitions/_md-comp-dialog.scss +123 -0
  30. package/core/tokens/m3/definitions/_md-comp-elevated-button.scss +87 -0
  31. package/core/tokens/m3/definitions/_md-comp-elevated-card.scss +53 -0
  32. package/core/tokens/m3/definitions/_md-comp-extended-fab-primary.scss +90 -0
  33. package/core/tokens/m3/definitions/_md-comp-extended-fab-secondary.scss +91 -0
  34. package/core/tokens/m3/definitions/_md-comp-extended-fab-tertiary.scss +91 -0
  35. package/core/tokens/m3/definitions/_md-comp-fab-primary-small.scss +59 -0
  36. package/core/tokens/m3/definitions/_md-comp-fab-primary.scss +59 -0
  37. package/core/tokens/m3/definitions/_md-comp-fab-secondary-small.scss +60 -0
  38. package/core/tokens/m3/definitions/_md-comp-fab-secondary.scss +60 -0
  39. package/core/tokens/m3/definitions/_md-comp-fab-tertiary-small.scss +60 -0
  40. package/core/tokens/m3/definitions/_md-comp-fab-tertiary.scss +60 -0
  41. package/core/tokens/m3/definitions/_md-comp-filled-button.scss +85 -0
  42. package/core/tokens/m3/definitions/_md-comp-filled-card.scss +52 -0
  43. package/core/tokens/m3/definitions/_md-comp-filled-icon-button.scss +73 -0
  44. package/core/tokens/m3/definitions/_md-comp-filled-text-field.scss +189 -0
  45. package/core/tokens/m3/definitions/_md-comp-icon-button.scss +64 -0
  46. package/core/tokens/m3/definitions/_md-comp-linear-progress-indicator.scss +29 -0
  47. package/core/tokens/m3/definitions/_md-comp-list.scss +252 -0
  48. package/core/tokens/m3/definitions/_md-comp-outlined-button.scss +80 -0
  49. package/core/tokens/m3/definitions/_md-comp-outlined-card.scss +59 -0
  50. package/core/tokens/m3/definitions/_md-comp-outlined-icon-button.scss +73 -0
  51. package/core/tokens/m3/definitions/_md-comp-outlined-text-field.scss +171 -0
  52. package/core/tokens/m3/definitions/_md-comp-plain-tooltip.scss +51 -0
  53. package/core/tokens/m3/definitions/_md-comp-radio-button.scss +62 -0
  54. package/core/tokens/m3/definitions/_md-comp-secondary-navigation-tab.scss +80 -0
  55. package/core/tokens/m3/definitions/_md-comp-slider.scss +110 -0
  56. package/core/tokens/m3/definitions/_md-comp-snackbar.scss +125 -0
  57. package/core/tokens/m3/definitions/_md-comp-switch.scss +130 -0
  58. package/core/tokens/m3/definitions/_md-comp-text-button.scss +73 -0
  59. package/core/tokens/m3/definitions/_md-ref-palette.scss +100 -0
  60. package/core/tokens/m3/definitions/_md-ref-typeface.scss +14 -0
  61. package/core/tokens/m3/definitions/_md-sys-color.scss +126 -0
  62. package/core/tokens/m3/definitions/_md-sys-elevation.scss +15 -0
  63. package/core/tokens/m3/definitions/_md-sys-motion.scss +46 -0
  64. package/core/tokens/m3/definitions/_md-sys-shape.scss +24 -0
  65. package/core/tokens/m3/definitions/_md-sys-state.scss +13 -0
  66. package/core/tokens/m3/definitions/_md-sys-typescale.scss +308 -0
  67. package/core/tokens/m3/definitions/unused/_md-comp-assist-chip.scss +105 -0
  68. package/core/tokens/m3/definitions/unused/_md-comp-badge.scss +54 -0
  69. package/core/tokens/m3/definitions/unused/_md-comp-banner.scss +71 -0
  70. package/core/tokens/m3/definitions/unused/_md-comp-bottom-app-bar.scss +29 -0
  71. package/core/tokens/m3/definitions/unused/_md-comp-carousel-item.scss +59 -0
  72. package/core/tokens/m3/definitions/unused/_md-comp-date-input-modal.scss +87 -0
  73. package/core/tokens/m3/definitions/unused/_md-comp-date-picker-docked.scss +248 -0
  74. package/core/tokens/m3/definitions/unused/_md-comp-date-picker-modal.scss +313 -0
  75. package/core/tokens/m3/definitions/unused/_md-comp-divider.scss +19 -0
  76. package/core/tokens/m3/definitions/unused/_md-comp-extended-fab-branded.scss +82 -0
  77. package/core/tokens/m3/definitions/unused/_md-comp-extended-fab-surface.scss +86 -0
  78. package/core/tokens/m3/definitions/unused/_md-comp-fab-branded-large.scss +54 -0
  79. package/core/tokens/m3/definitions/unused/_md-comp-fab-branded.scss +54 -0
  80. package/core/tokens/m3/definitions/unused/_md-comp-fab-primary-large.scss +59 -0
  81. package/core/tokens/m3/definitions/unused/_md-comp-fab-secondary-large.scss +60 -0
  82. package/core/tokens/m3/definitions/unused/_md-comp-fab-surface-large.scss +58 -0
  83. package/core/tokens/m3/definitions/unused/_md-comp-fab-surface-small.scss +58 -0
  84. package/core/tokens/m3/definitions/unused/_md-comp-fab-surface.scss +58 -0
  85. package/core/tokens/m3/definitions/unused/_md-comp-fab-tertiary-large.scss +60 -0
  86. package/core/tokens/m3/definitions/unused/_md-comp-filled-autocomplete.scss +269 -0
  87. package/core/tokens/m3/definitions/unused/_md-comp-filled-menu-button.scss +94 -0
  88. package/core/tokens/m3/definitions/unused/_md-comp-filled-select.scss +274 -0
  89. package/core/tokens/m3/definitions/unused/_md-comp-filled-tonal-button.scss +95 -0
  90. package/core/tokens/m3/definitions/unused/_md-comp-filled-tonal-icon-button.scss +80 -0
  91. package/core/tokens/m3/definitions/unused/_md-comp-filter-chip.scss +205 -0
  92. package/core/tokens/m3/definitions/unused/_md-comp-full-screen-dialog.scss +109 -0
  93. package/core/tokens/m3/definitions/unused/_md-comp-input-chip.scss +180 -0
  94. package/core/tokens/m3/definitions/unused/_md-comp-menu.scss +31 -0
  95. package/core/tokens/m3/definitions/unused/_md-comp-navigation-bar.scss +110 -0
  96. package/core/tokens/m3/definitions/unused/_md-comp-navigation-drawer.scss +162 -0
  97. package/core/tokens/m3/definitions/unused/_md-comp-navigation-rail.scss +127 -0
  98. package/core/tokens/m3/definitions/unused/_md-comp-outlined-autocomplete.scss +259 -0
  99. package/core/tokens/m3/definitions/unused/_md-comp-outlined-menu-button.scss +90 -0
  100. package/core/tokens/m3/definitions/unused/_md-comp-outlined-segmented-button.scss +108 -0
  101. package/core/tokens/m3/definitions/unused/_md-comp-outlined-select.scss +264 -0
  102. package/core/tokens/m3/definitions/unused/_md-comp-primary-navigation-tab.scss +117 -0
  103. package/core/tokens/m3/definitions/unused/_md-comp-rich-tooltip.scss +121 -0
  104. package/core/tokens/m3/definitions/unused/_md-comp-scrim.scss +19 -0
  105. package/core/tokens/m3/definitions/unused/_md-comp-search-bar.scss +97 -0
  106. package/core/tokens/m3/definitions/unused/_md-comp-search-view.scss +91 -0
  107. package/core/tokens/m3/definitions/unused/_md-comp-sheet-bottom.scss +39 -0
  108. package/core/tokens/m3/definitions/unused/_md-comp-sheet-floating.scss +28 -0
  109. package/core/tokens/m3/definitions/unused/_md-comp-sheet-side.scss +87 -0
  110. package/core/tokens/m3/definitions/unused/_md-comp-standard-menu-button.scss +94 -0
  111. package/core/tokens/m3/definitions/unused/_md-comp-suggestion-chip.scss +121 -0
  112. package/core/tokens/m3/definitions/unused/_md-comp-time-input.scss +222 -0
  113. package/core/tokens/m3/definitions/unused/_md-comp-time-picker.scss +268 -0
  114. package/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-large.scss +59 -0
  115. package/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-medium.scss +59 -0
  116. package/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small-centered.scss +62 -0
  117. package/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small.scss +60 -0
  118. package/core/tokens/m3/mat/_icon-button.scss +31 -2
  119. package/core/tokens/m3/mdc/_icon-button.scss +21 -2
  120. package/core/tokens/m3/mdc/_slider.scss +9 -2
  121. package/core/tokens/m3/mdc/_switch.scss +13 -2
  122. package/esm2022/autocomplete/animations.mjs +1 -2
  123. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  124. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  125. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  126. package/esm2022/autocomplete/module.mjs +5 -5
  127. package/esm2022/badge/badge-module.mjs +5 -5
  128. package/esm2022/badge/badge.mjs +7 -7
  129. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  130. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  131. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  132. package/esm2022/button/button-base.mjs +7 -7
  133. package/esm2022/button/button.mjs +7 -7
  134. package/esm2022/button/fab.mjs +17 -17
  135. package/esm2022/button/icon-button.mjs +7 -7
  136. package/esm2022/button/module.mjs +5 -5
  137. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  138. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  139. package/esm2022/card/card.mjs +43 -43
  140. package/esm2022/card/module.mjs +5 -5
  141. package/esm2022/checkbox/checkbox-config.mjs +2 -1
  142. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  143. package/esm2022/checkbox/checkbox.mjs +13 -7
  144. package/esm2022/checkbox/module.mjs +9 -9
  145. package/esm2022/chips/chip-action.mjs +4 -4
  146. package/esm2022/chips/chip-edit-input.mjs +4 -4
  147. package/esm2022/chips/chip-grid.mjs +5 -5
  148. package/esm2022/chips/chip-icons.mjs +10 -10
  149. package/esm2022/chips/chip-input.mjs +4 -4
  150. package/esm2022/chips/chip-listbox.mjs +4 -4
  151. package/esm2022/chips/chip-option.mjs +4 -4
  152. package/esm2022/chips/chip-row.mjs +4 -4
  153. package/esm2022/chips/chip-set.mjs +4 -4
  154. package/esm2022/chips/chip.mjs +4 -4
  155. package/esm2022/chips/module.mjs +5 -5
  156. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  157. package/esm2022/core/datetime/index.mjs +9 -9
  158. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  159. package/esm2022/core/error/error-options.mjs +7 -7
  160. package/esm2022/core/internal-form-field/internal-form-field.mjs +4 -4
  161. package/esm2022/core/line/line.mjs +8 -8
  162. package/esm2022/core/option/index.mjs +5 -5
  163. package/esm2022/core/option/optgroup.mjs +4 -4
  164. package/esm2022/core/option/option.mjs +4 -4
  165. package/esm2022/core/private/ripple-loader.mjs +4 -4
  166. package/esm2022/core/ripple/index.mjs +5 -5
  167. package/esm2022/core/ripple/ripple.mjs +4 -4
  168. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  169. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  170. package/esm2022/core/version.mjs +1 -1
  171. package/esm2022/datepicker/calendar-body.mjs +4 -4
  172. package/esm2022/datepicker/calendar.mjs +7 -7
  173. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  174. package/esm2022/datepicker/date-range-input.mjs +4 -4
  175. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  176. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  177. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  178. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  179. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  180. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  181. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  182. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  183. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  184. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  185. package/esm2022/datepicker/datepicker.mjs +4 -4
  186. package/esm2022/datepicker/month-view.mjs +4 -4
  187. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  188. package/esm2022/datepicker/year-view.mjs +4 -4
  189. package/esm2022/dialog/dialog-container.mjs +4 -7
  190. package/esm2022/dialog/dialog-content-directives.mjs +16 -16
  191. package/esm2022/dialog/dialog.mjs +4 -4
  192. package/esm2022/dialog/module.mjs +5 -5
  193. package/esm2022/divider/divider-module.mjs +5 -5
  194. package/esm2022/divider/divider.mjs +4 -4
  195. package/esm2022/expansion/accordion.mjs +4 -4
  196. package/esm2022/expansion/expansion-module.mjs +5 -5
  197. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  198. package/esm2022/expansion/expansion-panel-header.mjs +11 -11
  199. package/esm2022/expansion/expansion-panel.mjs +7 -7
  200. package/esm2022/form-field/directives/error.mjs +4 -4
  201. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  202. package/esm2022/form-field/directives/hint.mjs +4 -4
  203. package/esm2022/form-field/directives/label.mjs +4 -4
  204. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  205. package/esm2022/form-field/directives/notched-outline.mjs +5 -5
  206. package/esm2022/form-field/directives/prefix.mjs +4 -4
  207. package/esm2022/form-field/directives/suffix.mjs +4 -4
  208. package/esm2022/form-field/form-field-control.mjs +4 -4
  209. package/esm2022/form-field/form-field.mjs +9 -6
  210. package/esm2022/form-field/module.mjs +5 -5
  211. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  212. package/esm2022/grid-list/grid-list.mjs +4 -4
  213. package/esm2022/grid-list/grid-tile.mjs +16 -16
  214. package/esm2022/icon/icon-module.mjs +5 -5
  215. package/esm2022/icon/icon-registry.mjs +4 -4
  216. package/esm2022/icon/icon.mjs +4 -4
  217. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  218. package/esm2022/input/input.mjs +39 -6
  219. package/esm2022/input/module.mjs +5 -5
  220. package/esm2022/list/action-list.mjs +4 -4
  221. package/esm2022/list/list-base.mjs +7 -7
  222. package/esm2022/list/list-item-sections.mjs +19 -19
  223. package/esm2022/list/list-module.mjs +5 -5
  224. package/esm2022/list/list-option.mjs +6 -6
  225. package/esm2022/list/list.mjs +7 -7
  226. package/esm2022/list/nav-list.mjs +4 -4
  227. package/esm2022/list/selection-list.mjs +4 -4
  228. package/esm2022/list/subheader.mjs +4 -4
  229. package/esm2022/list/testing/selection-list-harness.mjs +2 -2
  230. package/esm2022/menu/menu-content.mjs +4 -4
  231. package/esm2022/menu/menu-item.mjs +4 -4
  232. package/esm2022/menu/menu-trigger.mjs +4 -4
  233. package/esm2022/menu/menu.mjs +4 -4
  234. package/esm2022/menu/module.mjs +5 -5
  235. package/esm2022/paginator/module.mjs +5 -5
  236. package/esm2022/paginator/paginator-intl.mjs +4 -4
  237. package/esm2022/paginator/paginator.mjs +4 -4
  238. package/esm2022/progress-bar/module.mjs +5 -5
  239. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  240. package/esm2022/progress-spinner/module.mjs +5 -5
  241. package/esm2022/progress-spinner/progress-spinner.mjs +5 -5
  242. package/esm2022/radio/module.mjs +5 -5
  243. package/esm2022/radio/radio.mjs +7 -7
  244. package/esm2022/select/module.mjs +5 -5
  245. package/esm2022/select/select.mjs +7 -7
  246. package/esm2022/sidenav/drawer.mjs +10 -10
  247. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  248. package/esm2022/sidenav/sidenav.mjs +10 -10
  249. package/esm2022/slide-toggle/module.mjs +9 -9
  250. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  251. package/esm2022/slide-toggle/slide-toggle.mjs +6 -6
  252. package/esm2022/slider/module.mjs +5 -5
  253. package/esm2022/slider/slider-input.mjs +7 -7
  254. package/esm2022/slider/slider-thumb.mjs +4 -4
  255. package/esm2022/slider/slider.mjs +5 -5
  256. package/esm2022/snack-bar/module.mjs +5 -5
  257. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  258. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  259. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  260. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  261. package/esm2022/sort/sort-header-intl.mjs +4 -4
  262. package/esm2022/sort/sort-header.mjs +4 -4
  263. package/esm2022/sort/sort-module.mjs +5 -5
  264. package/esm2022/sort/sort.mjs +4 -4
  265. package/esm2022/stepper/step-content.mjs +4 -4
  266. package/esm2022/stepper/step-header.mjs +4 -4
  267. package/esm2022/stepper/step-label.mjs +4 -4
  268. package/esm2022/stepper/stepper-button.mjs +7 -7
  269. package/esm2022/stepper/stepper-icon.mjs +4 -4
  270. package/esm2022/stepper/stepper-intl.mjs +4 -4
  271. package/esm2022/stepper/stepper-module.mjs +5 -5
  272. package/esm2022/stepper/stepper.mjs +7 -7
  273. package/esm2022/table/cell.mjs +22 -22
  274. package/esm2022/table/module.mjs +5 -5
  275. package/esm2022/table/row.mjs +22 -22
  276. package/esm2022/table/table.mjs +7 -7
  277. package/esm2022/table/text-column.mjs +4 -4
  278. package/esm2022/tabs/ink-bar.mjs +4 -4
  279. package/esm2022/tabs/module.mjs +5 -5
  280. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  281. package/esm2022/tabs/tab-body.mjs +7 -7
  282. package/esm2022/tabs/tab-content.mjs +4 -4
  283. package/esm2022/tabs/tab-group.mjs +4 -4
  284. package/esm2022/tabs/tab-header.mjs +5 -5
  285. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  286. package/esm2022/tabs/tab-label.mjs +4 -4
  287. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +11 -11
  288. package/esm2022/tabs/tab.mjs +4 -4
  289. package/esm2022/tabs/testing/tab-harness.mjs +2 -2
  290. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  291. package/esm2022/toolbar/toolbar.mjs +7 -7
  292. package/esm2022/tooltip/module.mjs +5 -5
  293. package/esm2022/tooltip/tooltip.mjs +10 -7
  294. package/esm2022/tree/data-source/flat-data-source.mjs +9 -1
  295. package/esm2022/tree/node.mjs +106 -26
  296. package/esm2022/tree/outlet.mjs +4 -4
  297. package/esm2022/tree/padding.mjs +4 -4
  298. package/esm2022/tree/testing/node-harness.mjs +5 -1
  299. package/esm2022/tree/toggle.mjs +4 -4
  300. package/esm2022/tree/tree-module.mjs +5 -5
  301. package/esm2022/tree/tree.mjs +4 -5
  302. package/fesm2022/autocomplete.mjs +13 -14
  303. package/fesm2022/autocomplete.mjs.map +1 -1
  304. package/fesm2022/badge.mjs +10 -10
  305. package/fesm2022/badge.mjs.map +1 -1
  306. package/fesm2022/bottom-sheet.mjs +10 -10
  307. package/fesm2022/bottom-sheet.mjs.map +1 -1
  308. package/fesm2022/button-toggle.mjs +10 -10
  309. package/fesm2022/button-toggle.mjs.map +1 -1
  310. package/fesm2022/button.mjs +38 -38
  311. package/fesm2022/button.mjs.map +1 -1
  312. package/fesm2022/card.mjs +46 -46
  313. package/fesm2022/card.mjs.map +1 -1
  314. package/fesm2022/checkbox.mjs +24 -17
  315. package/fesm2022/checkbox.mjs.map +1 -1
  316. package/fesm2022/chips.mjs +41 -41
  317. package/fesm2022/chips.mjs.map +1 -1
  318. package/fesm2022/core.mjs +59 -59
  319. package/fesm2022/core.mjs.map +1 -1
  320. package/fesm2022/datepicker.mjs +82 -82
  321. package/fesm2022/datepicker.mjs.map +1 -1
  322. package/fesm2022/dialog.mjs +25 -28
  323. package/fesm2022/dialog.mjs.map +1 -1
  324. package/fesm2022/divider.mjs +7 -7
  325. package/fesm2022/divider.mjs.map +1 -1
  326. package/fesm2022/expansion.mjs +26 -26
  327. package/fesm2022/expansion.mjs.map +1 -1
  328. package/fesm2022/form-field.mjs +40 -37
  329. package/fesm2022/form-field.mjs.map +1 -1
  330. package/fesm2022/grid-list.mjs +22 -22
  331. package/fesm2022/grid-list.mjs.map +1 -1
  332. package/fesm2022/icon/testing.mjs +7 -7
  333. package/fesm2022/icon/testing.mjs.map +1 -1
  334. package/fesm2022/icon.mjs +10 -10
  335. package/fesm2022/icon.mjs.map +1 -1
  336. package/fesm2022/input.mjs +42 -9
  337. package/fesm2022/input.mjs.map +1 -1
  338. package/fesm2022/list/testing.mjs +1 -1
  339. package/fesm2022/list/testing.mjs.map +1 -1
  340. package/fesm2022/list.mjs +51 -51
  341. package/fesm2022/list.mjs.map +1 -1
  342. package/fesm2022/menu.mjs +16 -16
  343. package/fesm2022/menu.mjs.map +1 -1
  344. package/fesm2022/paginator.mjs +10 -10
  345. package/fesm2022/paginator.mjs.map +1 -1
  346. package/fesm2022/progress-bar.mjs +7 -7
  347. package/fesm2022/progress-bar.mjs.map +1 -1
  348. package/fesm2022/progress-spinner.mjs +8 -8
  349. package/fesm2022/progress-spinner.mjs.map +1 -1
  350. package/fesm2022/radio.mjs +10 -10
  351. package/fesm2022/radio.mjs.map +1 -1
  352. package/fesm2022/select.mjs +10 -10
  353. package/fesm2022/select.mjs.map +1 -1
  354. package/fesm2022/sidenav.mjs +22 -22
  355. package/fesm2022/sidenav.mjs.map +1 -1
  356. package/fesm2022/slide-toggle.mjs +16 -16
  357. package/fesm2022/slide-toggle.mjs.map +1 -1
  358. package/fesm2022/slider.mjs +17 -17
  359. package/fesm2022/slider.mjs.map +1 -1
  360. package/fesm2022/snack-bar.mjs +22 -22
  361. package/fesm2022/snack-bar.mjs.map +1 -1
  362. package/fesm2022/sort.mjs +13 -13
  363. package/fesm2022/sort.mjs.map +1 -1
  364. package/fesm2022/stepper.mjs +31 -31
  365. package/fesm2022/stepper.mjs.map +1 -1
  366. package/fesm2022/table.mjs +55 -55
  367. package/fesm2022/table.mjs.map +1 -1
  368. package/fesm2022/tabs/testing.mjs +1 -1
  369. package/fesm2022/tabs/testing.mjs.map +1 -1
  370. package/fesm2022/tabs.mjs +45 -45
  371. package/fesm2022/tabs.mjs.map +1 -1
  372. package/fesm2022/toolbar.mjs +10 -10
  373. package/fesm2022/toolbar.mjs.map +1 -1
  374. package/fesm2022/tooltip.mjs +13 -10
  375. package/fesm2022/tooltip.mjs.map +1 -1
  376. package/fesm2022/tree/testing.mjs +4 -0
  377. package/fesm2022/tree/testing.mjs.map +1 -1
  378. package/fesm2022/tree.mjs +130 -43
  379. package/fesm2022/tree.mjs.map +1 -1
  380. package/form-field/_form-field-focus-overlay.scss +1 -1
  381. package/form-field/_form-field-subscript.scss +1 -3
  382. package/form-field/_form-field-theme.scss +20 -20
  383. package/form-field/_mdc-text-field-density-overrides.scss +2 -2
  384. package/form-field/_mdc-text-field-structure-overrides.scss +2 -13
  385. package/form-field/_mdc-text-field-structure.scss +610 -0
  386. package/input/index.d.ts +13 -1
  387. package/list/testing/index.d.ts +1 -1
  388. package/package.json +3 -51
  389. package/prebuilt-themes/azure-blue.css +1 -1
  390. package/prebuilt-themes/cyan-orange.css +1 -1
  391. package/prebuilt-themes/deeppurple-amber.css +1 -1
  392. package/prebuilt-themes/indigo-pink.css +1 -1
  393. package/prebuilt-themes/magenta-violet.css +1 -1
  394. package/prebuilt-themes/pink-bluegrey.css +1 -1
  395. package/prebuilt-themes/purple-green.css +1 -1
  396. package/prebuilt-themes/rose-red.css +1 -1
  397. package/progress-spinner/_progress-spinner-theme.scss +11 -14
  398. package/schematics/ng-add/index.js +1 -1
  399. package/schematics/ng-add/index.mjs +1 -1
  400. package/schematics/ng-generate/m3-theme/index_bundled.js +2 -2
  401. package/schematics/ng-update/index_bundled.js +31 -31
  402. package/slide-toggle/_slide-toggle-theme.scss +21 -26
  403. package/slider/_slider-theme.scss +24 -41
  404. package/tabs/_tabs-common.scss +14 -0
  405. package/tabs/testing/index.d.ts +1 -1
  406. package/tooltip/index.d.ts +5 -0
  407. package/tree/index.d.ts +60 -11
  408. package/tree/testing/index.d.ts +2 -0
  409. package/core/mdc-helpers/_mdc-helpers.scss +0 -60
@@ -1,15 +1,15 @@
1
1
  @use 'sass:list';
2
2
  @use 'sass:map';
3
3
  @use 'sass:meta';
4
- @use '@material/theme/custom-properties' as mdc-custom-properties;
5
- @use '@material/theme/theme' as mdc-theme;
6
- @use '@material/theme/keys' as mdc-keys;
7
- @use '@material/tokens/v0_161' as mdc-tokens;
4
+ @use 'sass:string';
5
+ @use 'sass:color';
6
+ @use 'sass:math';
8
7
  @use '../style/elevation';
9
8
  @use '../style/sass-utils';
10
9
  @use '../m2/palette' as m2-palette;
11
10
  @use '../m2/theming' as m2-theming;
12
11
  @use '../m2/typography' as m2-typography;
12
+ @use './m3/definitions' as m3-token-definitions;
13
13
 
14
14
  // Indicates whether we're building internally. Used for backwards compatibility.
15
15
  $private-is-internal-build: false;
@@ -57,27 +57,33 @@ $placeholder-density-config: 0;
57
57
  $_tokens: null;
58
58
  $_component-prefix: null;
59
59
 
60
- @mixin _configure-token-prefix($first, $rest...) {
61
- $_component-prefix: '' !global;
62
- @each $item in $rest {
63
- $_component-prefix:
64
- if($_component-prefix == '', $item, '#{$_component-prefix}-#{$item}') !global;
65
- }
66
- @include mdc-custom-properties.configure($varname-prefix: $first) {
67
- @content;
68
- }
69
- $_component-prefix: null !global;
70
- }
71
-
72
60
  // Sets the token prefix and map to use when creating token slots.
73
61
  @mixin use-tokens($prefix, $tokens) {
62
+ $_component-prefix: $prefix !global;
74
63
  $_tokens: $tokens !global;
75
- @include _configure-token-prefix($prefix...) {
76
- @content;
77
- }
64
+
65
+ @content;
66
+
67
+ $_component-prefix: null !global;
78
68
  $_tokens: null !global;
79
69
  }
80
70
 
71
+ // Combines a prefix and a string to generate a CSS variable name for a token.
72
+ @function _get-css-variable($prefix, $name) {
73
+ @if $prefix == null or $name == null {
74
+ @error 'Must specify both prefix and name when generating token';
75
+ }
76
+
77
+ $string-prefix: '';
78
+
79
+ // Prefixes are lists so we need to combine them.
80
+ @each $part in $prefix {
81
+ $string-prefix: if($string-prefix == '', $part, '#{$string-prefix}-#{$part}');
82
+ }
83
+
84
+ @return string.unquote('--#{$string-prefix}-#{$name}');
85
+ }
86
+
81
87
  // Emits a slot for the given token, provided that it has a non-null value in the token map passed
82
88
  // to `use-tokens`.
83
89
  @mixin create-token-slot($property, $token, $emit-fallback: false) {
@@ -97,8 +103,9 @@ $_component-prefix: null;
97
103
  $fallback: $emit-fallback;
98
104
  }
99
105
 
100
- $value: mdc-custom-properties.create('#{$_component-prefix}-#{$token}', $fallback: $fallback);
101
- @include mdc-theme.property($property, $value);
106
+ $var-name: _get-css-variable($_component-prefix, $token);
107
+ $var-reference: if($fallback == null, var(#{$var-name}), var(#{$var-name}, #{$fallback}));
108
+ #{$property}: #{$var-reference};
102
109
  }
103
110
  }
104
111
 
@@ -112,7 +119,7 @@ $_component-prefix: null;
112
119
  @error 'Token #{$token} does not exist. Configured tokens are: #{map.keys($_tokens)}';
113
120
  }
114
121
 
115
- @return mdc-custom-properties.create-varname('#{$_component-prefix}-#{$token}');
122
+ @return _get-css-variable($_component-prefix, $token);
116
123
  }
117
124
 
118
125
  // TODO(crisbeto): should be able to replace the usages of `get-token-variable` with this.
@@ -137,9 +144,14 @@ $_component-prefix: null;
137
144
  }
138
145
  }
139
146
 
147
+ // Outputs a map of tokens under a specific prefix.
140
148
  @mixin create-token-values($prefix, $tokens) {
141
- @include _configure-token-prefix($prefix...) {
142
- @include mdc-keys.declare-custom-properties($tokens, $_component-prefix);
149
+ @if $tokens != null {
150
+ @each $key, $value in $tokens {
151
+ @if $value != null {
152
+ #{_get-css-variable($prefix, $key)}: #{$value};
153
+ }
154
+ }
143
155
  }
144
156
  }
145
157
 
@@ -150,7 +162,8 @@ $_component-prefix: null;
150
162
  /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
151
163
  /// @return {List} Map of token names to values
152
164
  @function get-mdc-tokens($component, $systems, $exclude-hardcoded) {
153
- $fn: meta.get-function($name: 'md-comp-' + $component + '-values', $module: 'mdc-tokens');
165
+ $full-name: 'md-comp-' + $component + '-values';
166
+ $fn: meta.get-function($name: $full-name, $module: 'm3-token-definitions');
154
167
  @return meta.call($fn, $systems, $exclude-hardcoded);
155
168
  }
156
169
 
@@ -357,6 +370,66 @@ $_component-prefix: null;
357
370
  @return $result;
358
371
  }
359
372
 
373
+ /// Inherited function from MDC that computes which contrast tone to use on top of a color.
374
+ /// This is used only in a narrow set of use cases when generating M2 button tokens to maintain
375
+ /// backwards compatibility.
376
+ /// @param {Color} $value Color for which we're calculating the contrast tone.
377
+ /// @param {Boolean} $is-dark Whether the current theme is dark.
378
+ /// @return {Map} Either `dark` or `light`.
379
+ @function contrast-tone($value, $is-dark) {
380
+ @if ($value == 'dark') {
381
+ @return 'light';
382
+ }
383
+
384
+ @if ($value == 'light') {
385
+ @return 'dark';
386
+ }
387
+
388
+ // Fallback if the app is using a non-color palette (e.g. CSS variable based).
389
+ @if (meta.type-of($value) != 'color') {
390
+ @return if($is-dark, 'light', 'dark');
391
+ }
392
+
393
+ $minimum-contrast: 3.1;
394
+ $light-contrast: _contrast($value, #fff);
395
+ $dark-contrast: _contrast($value, rgba(0, 0, 0, 0.87));
396
+
397
+ @if ($light-contrast < $minimum-contrast) and ($dark-contrast > $light-contrast) {
398
+ @return 'dark';
399
+ }
400
+
401
+ @return 'light';
402
+ }
403
+
404
+ @function _linear-channel-value($channel-value) {
405
+ $normalized-channel-value: math.div($channel-value, 255);
406
+
407
+ @if ($normalized-channel-value < 0.03928) {
408
+ @return math.div($normalized-channel-value, 12.92);
409
+ }
410
+
411
+ @return math.pow(math.div($normalized-channel-value + 0.055, 1.055), 2.4);
412
+ }
413
+
414
+ // Calculate the luminance for a color.
415
+ // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
416
+ @function _luminance($color) {
417
+ $red: _linear-channel-value(color.red($color));
418
+ $green: _linear-channel-value(color.green($color));
419
+ $blue: _linear-channel-value(color.blue($color));
420
+
421
+ @return 0.2126 * $red + 0.7152 * $green + 0.0722 * $blue;
422
+ }
423
+
424
+ // Calculate the contrast ratio between two colors.
425
+ // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
426
+ @function _contrast($back, $front) {
427
+ $back-lum: _luminance($back) + 0.05;
428
+ $fore-lum: _luminance($front) + 0.05;
429
+
430
+ @return math.div(math.max($back-lum, $fore-lum), math.min($back-lum, $fore-lum));
431
+ }
432
+
360
433
  /// Verifies that the token overrides exist and are used in one of the given token maps.
361
434
  @mixin _validate-token-overrides($overrides: (), $token-maps) {
362
435
  $valid-token-names: ();
@@ -3,7 +3,6 @@
3
3
  @use '../../../theming/theming';
4
4
  @use '../../../theming/inspection';
5
5
  @use '../../../style/sass-utils';
6
- @use '../../../mdc-helpers/mdc-helpers';
7
6
 
8
7
  // The prefix used to generate the fully qualified name for tokens in this file.
9
8
  $prefix: (mat, fab-small);
@@ -63,7 +62,7 @@ $prefix: (mat, fab-small);
63
62
  @if (token-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') {
64
63
  $is-dark: inspection.get-theme-type($theme) == dark;
65
64
  $container-color: inspection.get-theme-color($theme, $palette-name);
66
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($container-color, $is-dark);
65
+ $contrast-tone: token-utils.contrast-tone($container-color, $is-dark);
67
66
  $color: if($contrast-tone == 'dark', #000, #fff);
68
67
  $foreground-color: $color;
69
68
  $state-layer-color: $color;
@@ -3,7 +3,6 @@
3
3
  @use '../../../theming/theming';
4
4
  @use '../../../theming/inspection';
5
5
  @use '../../../style/sass-utils';
6
- @use '../../../mdc-helpers/mdc-helpers';
7
6
 
8
7
  // The prefix used to generate the fully qualified name for tokens in this file.
9
8
  $prefix: (mat, fab);
@@ -63,7 +62,7 @@ $prefix: (mat, fab);
63
62
  @if (token-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') {
64
63
  $is-dark: inspection.get-theme-type($theme) == dark;
65
64
  $container-color: inspection.get-theme-color($theme, $palette-name);
66
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($container-color, $is-dark);
65
+ $contrast-tone: token-utils.contrast-tone($container-color, $is-dark);
67
66
  $color: if($contrast-tone == 'dark', #000, #fff);
68
67
  $foreground-color: $color;
69
68
  $state-layer-color: $color;
@@ -3,7 +3,6 @@
3
3
  @use '../../../theming/theming';
4
4
  @use '../../../theming/inspection';
5
5
  @use '../../../style/sass-utils';
6
- @use '../../../mdc-helpers/mdc-helpers';
7
6
 
8
7
  // The prefix used to generate the fully qualified name for tokens in this file.
9
8
  $prefix: (mat, filled-button);
@@ -60,7 +59,7 @@ $prefix: (mat, filled-button);
60
59
  @if (token-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') {
61
60
  $is-dark: inspection.get-theme-type($theme) == dark;
62
61
  $container-color: inspection.get-theme-color($theme, $palette-name);
63
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($container-color, $is-dark);
62
+ $contrast-tone: token-utils.contrast-tone($container-color, $is-dark);
64
63
  $color: if($contrast-tone == 'dark', #000, #fff);
65
64
  $state-layer-color: $color;
66
65
  $ripple-color: rgba($color, 0.1);
@@ -1,6 +1,5 @@
1
1
  @use 'sass:math';
2
2
  @use 'sass:map';
3
- @use '@material/textfield' as mdc-textfield;
4
3
  @use '../../token-utils';
5
4
  @use '../../../style/sass-utils';
6
5
  @use '../../../theming/theming';
@@ -53,8 +52,6 @@ $prefix: (mat, form-field);
53
52
  error-hover-trailing-icon-color: unset,
54
53
  error-trailing-icon-color: unset,
55
54
 
56
- // These values are taken from the MDC select implementation:
57
- // https://github.com/material-components/material-components-web/blob/master/packages/mdc-select/_select-theme.scss
58
55
  enabled-select-arrow-color: inspection.get-theme-color($theme, foreground, icon, 0.54),
59
56
  disabled-select-arrow-color: inspection.get-theme-color($theme, foreground, icon, 0.38),
60
57
 
@@ -114,14 +111,14 @@ $prefix: (mat, form-field);
114
111
  -5: 36px,
115
112
  );
116
113
  $height: map.get($size-scale, $density-scale);
117
- $hide-label: $height < mdc-textfield.$minimum-height-for-filled-label;
114
+ $hide-label: $height < 52px;
118
115
 
119
116
  // We computed the desired height of the form-field using the density configuration. The
120
117
  // spec only describes vertical spacing/alignment in non-dense mode. This means that we
121
118
  // cannot update the spacing to explicit numbers based on the density scale. Instead, we
122
119
  // determine the height reduction and equally subtract it from the default `top` and `bottom`
123
120
  // padding that is provided by the Material Design specification.
124
- $vertical-deduction: math.div(mdc-textfield.$height - $height, 2);
121
+ $vertical-deduction: math.div(56px - $height, 2);
125
122
 
126
123
  // Note: these calculations are trivial enough that we could do them at runtime with `calc`
127
124
  // and the value of the `height` token. The problem is that because we need to hide the label
@@ -1,7 +1,6 @@
1
1
  @use '../../token-utils';
2
2
  @use '../../../theming/inspection';
3
3
  @use '../../../style/sass-utils';
4
- @use '../../../mdc-helpers/mdc-helpers';
5
4
 
6
5
  // The prefix used to generate the fully qualified name for tokens in this file.
7
6
  $prefix: (mat, optgroup);
@@ -21,14 +20,6 @@ $prefix: (mat, optgroup);
21
20
 
22
21
  // Tokens that can be configured through Angular Material's typography theming API.
23
22
  @function get-typography-tokens($theme) {
24
- // TODO(crisbeto): The earlier implementation of the option used MDC's APIs to create the
25
- // typography tokens. As a result, we unintentionally allowed `null` typography configs to be
26
- // passed in. Since there a lot of apps that now depend on this pattern, we need this temporary
27
- // fallback.
28
- @if ($theme == null) {
29
- $theme: mdc-helpers.private-fallback-typography-from-mdc();
30
- }
31
-
32
23
  @return (
33
24
  label-text-font: inspection.get-theme-typography($theme, body-1, font-family),
34
25
  label-text-line-height: inspection.get-theme-typography($theme, body-1, line-height),
@@ -1,7 +1,6 @@
1
1
  @use '../../token-utils';
2
2
  @use '../../../theming/inspection';
3
3
  @use '../../../style/sass-utils';
4
- @use '../../../mdc-helpers/mdc-helpers';
5
4
 
6
5
  // The prefix used to generate the fully qualified name for tokens in this file.
7
6
  $prefix: (mat, option);
@@ -29,14 +28,6 @@ $prefix: (mat, option);
29
28
 
30
29
  // Tokens that can be configured through Angular Material's typography theming API.
31
30
  @function get-typography-tokens($theme) {
32
- // TODO(crisbeto): The earlier implementation of the option used MDC's APIs to create the
33
- // typography tokens. As a result, we unintentionally allowed `null` typography configs to be
34
- // passed in. Since there a lot of apps that now depend on this pattern, we need this temporary
35
- // fallback.
36
- @if ($theme == null) {
37
- $theme: mdc-helpers.private-fallback-typography-from-mdc();
38
- }
39
-
40
31
  @return (
41
32
  label-text-font: inspection.get-theme-typography($theme, body-1, font-family),
42
33
  label-text-line-height: inspection.get-theme-typography($theme, body-1, line-height),
@@ -1,6 +1,5 @@
1
1
  @use 'sass:math';
2
2
  @use 'sass:map';
3
- @use '@material/textfield' as mdc-textfield;
4
3
  @use '../../token-utils';
5
4
  @use '../../../theming/theming';
6
5
  @use '../../../theming/inspection';
@@ -66,7 +65,7 @@ $prefix: (mat, paginator);
66
65
  // cannot update the spacing to explicit numbers based on the density scale. Instead, we
67
66
  // determine the height reduction and equally subtract it from the default `top` and `bottom`
68
67
  // padding that is provided by the Material Design specification.
69
- $form-field-vertical-deduction: math.div(mdc-textfield.$height - $form-field-height, 2);
68
+ $form-field-vertical-deduction: math.div(56px - $form-field-height, 2);
70
69
  $form-field-vertical-padding: 16px - $form-field-vertical-deduction;
71
70
 
72
71
  @return (
@@ -3,7 +3,6 @@
3
3
  @use '../../../theming/theming';
4
4
  @use '../../../theming/inspection';
5
5
  @use '../../../style/sass-utils';
6
- @use '../../../mdc-helpers/mdc-helpers';
7
6
 
8
7
  // The prefix used to generate the fully qualified name for tokens in this file.
9
8
  $prefix: (mat, protected-button);
@@ -60,7 +59,7 @@ $prefix: (mat, protected-button);
60
59
  @if (token-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') {
61
60
  $is-dark: inspection.get-theme-type($theme) == dark;
62
61
  $container-color: inspection.get-theme-color($theme, $palette-name);
63
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($container-color, $is-dark);
62
+ $contrast-tone: token-utils.contrast-tone($container-color, $is-dark);
64
63
  $color: if($contrast-tone == 'dark', #000, #fff);
65
64
  $state-layer-color: $color;
66
65
  $ripple-color: rgba($color, 0.1);
@@ -4,7 +4,6 @@
4
4
  @use '../../../theming/theming';
5
5
  @use '../../../theming/inspection';
6
6
  @use '../../../style/sass-utils';
7
- @use '../../../mdc-helpers/mdc-helpers';
8
7
  @use '../../token-utils';
9
8
 
10
9
  // The prefix used to generate the fully qualified name for tokens in this file.
@@ -61,7 +60,7 @@ $prefix: (mdc, checkbox);
61
60
  // Ideally we would derive all values directly from the theme, but it causes a lot of regressions
62
61
  // internally. For now we fall back to the old hardcoded behavior only for internal apps.
63
62
  @if (token-utils.$private-is-internal-build) {
64
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($palette-selected, $is-dark);
63
+ $contrast-tone: token-utils.contrast-tone($palette-selected, $is-dark);
65
64
  $selected-checkmark-color: if($contrast-tone == 'dark', #000, #fff);
66
65
  }
67
66
  @else {
@@ -32,10 +32,10 @@ $prefix: (mdc, circular-progress);
32
32
  }
33
33
 
34
34
  // Tokens that can be configured through Angular Material's color theming API.
35
- @function get-color-tokens($theme) {
35
+ @function get-color-tokens($theme, $palette-name: primary) {
36
36
  @return (
37
37
  // The color of the progress spinner's active indicator.
38
- active-indicator-color: inspection.get-theme-color($theme, primary)
38
+ active-indicator-color: inspection.get-theme-color($theme, $palette-name)
39
39
  );
40
40
  }
41
41
 
@@ -3,7 +3,6 @@
3
3
  @use '../../../style/sass-utils';
4
4
  @use '../../../theming/inspection';
5
5
  @use '../../../theming/theming';
6
- @use '../../../mdc-helpers/mdc-helpers';
7
6
 
8
7
  // The prefix used to generate the fully qualified name for tokens in this file.
9
8
  $prefix: (mdc, filled-button);
@@ -71,7 +70,7 @@ $prefix: (mdc, filled-button);
71
70
  // internally. For now we fall back to the old hardcoded behavior only for internal apps.
72
71
  @if (token-utils.$private-is-internal-build) {
73
72
  $is-dark: inspection.get-theme-type($theme) == dark;
74
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($container-color, $is-dark);
73
+ $contrast-tone: token-utils.contrast-tone($container-color, $is-dark);
75
74
  $label-text-color: if($contrast-tone == 'dark', #000, #fff);
76
75
  }
77
76
  @else {
@@ -4,7 +4,6 @@
4
4
  @use '../../../style/elevation';
5
5
  @use '../../../theming/inspection';
6
6
  @use '../../../theming/theming';
7
- @use '../../../mdc-helpers/mdc-helpers';
8
7
 
9
8
  // The prefix used to generate the fully qualified name for tokens in this file.
10
9
  $prefix: (mdc, protected-button);
@@ -77,7 +76,7 @@ $prefix: (mdc, protected-button);
77
76
  // internally. For now we fall back to the old hardcoded behavior only for internal apps.
78
77
  @if (token-utils.$private-is-internal-build) {
79
78
  $is-dark: inspection.get-theme-type($theme) == dark;
80
- $contrast-tone: mdc-helpers.variable-safe-contrast-tone($container-color, $is-dark);
79
+ $contrast-tone: token-utils.contrast-tone($container-color, $is-dark);
81
80
  $label-text-color: if($contrast-tone == 'dark', #000, #fff);
82
81
  }
83
82
  @else {
@@ -39,6 +39,8 @@ $prefix: (mdc, slider);
39
39
  with-tick-marks-container-size: 2px,
40
40
  // Opacity of inactive container with tick marks.
41
41
  with-tick-marks-inactive-container-opacity: 0.6,
42
+ // Elevation for the handle.
43
+ handle-elevation: elevation.get-box-shadow(1),
42
44
  // =============================================================================================
43
45
  // = TOKENS NOT USED IN ANGULAR MATERIAL =
44
46
  // =============================================================================================
@@ -49,6 +51,7 @@ $prefix: (mdc, slider);
49
51
  focus-state-layer-opacity: null,
50
52
  hover-state-layer-opacity: null,
51
53
  pressed-state-layer-opacity: null,
54
+ handle-shadow-color: null,
52
55
  // MDC does not seem to use these tokens.
53
56
  hover-state-layer-color: null,
54
57
  pressed-handle-color: null,
@@ -81,12 +84,6 @@ $prefix: (mdc, slider);
81
84
  with-overlap-handle-outline-color: #fff,
82
85
  // Color of container with tick marks when disabled.
83
86
  with-tick-marks-disabled-container-color: $on-surface,
84
- // (Part of the color tokens because it needs to be combined with the
85
- // shadow color to generate the box-shadow.)
86
- // Elevation level for handle.
87
- handle-elevation: 1,
88
- // Color of handle shadow.
89
- handle-shadow-color: if($elevation != null, $elevation, elevation.$color),
90
87
  )
91
88
  );
92
89
  }
@@ -53,12 +53,16 @@ $prefix: (mdc, switch);
53
53
  unselected-hover-state-layer-opacity: 0.04,
54
54
  // Opacity of ripple when unselected and pressed.
55
55
  unselected-pressed-state-layer-opacity: 0.1,
56
+
57
+ // Unused tokens
58
+ handle-elevation: null,
59
+ handle-shadow-color: null,
60
+ disabled-handle-elevation: null,
56
61
  );
57
62
  }
58
63
 
59
64
  // Tokens that can be configured through Angular Material's color theming API.
60
65
  @function get-color-tokens($theme) {
61
- $elevation: inspection.get-theme-color($theme, foreground, elevation);
62
66
  $is-dark: inspection.get-theme-type($theme) == dark;
63
67
  $on-surface: if($is-dark, #f5f5f5, #424242);
64
68
  $hairline: if($is-dark, #616161, #e0e0e0);
@@ -85,14 +89,10 @@ $prefix: (mdc, switch);
85
89
  disabled-unselected-icon-color: $icon-color,
86
90
  // Color of track when disabled.
87
91
  disabled-unselected-track-color: $on-surface,
92
+ // TODO(crisbeto): `handle-surface-color` was hardcoded to `var(--mdc-surface-color, #fff)`
93
+ // which made it basically hardcoded to #fff. Should it be based on the theme?
88
94
  // Color of slide-toggle handle's surface.
89
- handle-surface-color: surface,
90
- // Elevation level for handle.
91
- handle-elevation: 1,
92
- // Color of handle's shadow
93
- handle-shadow-color: if($elevation != null, $elevation, elevation.$color),
94
- // Elevation level for handle when disabled.
95
- disabled-handle-elevation: 0,
95
+ handle-surface-color: #fff,
96
96
  // Color of icon (ex. checkmark) when selected
97
97
  selected-icon-color: $icon-color,
98
98
  // Color of handle when unselected and focused.
@@ -119,6 +119,10 @@ $prefix: (mdc, switch);
119
119
  unselected-pressed-track-color: $hairline,
120
120
  // Color of track when selected.
121
121
  unselected-track-color: $hairline,
122
+ // Elevation level for handle.
123
+ handle-elevation-shadow: elevation.get-box-shadow(1),
124
+ // Elevation level for handle when disabled.
125
+ disabled-handle-elevation-shadow: elevation.get-box-shadow(0),
122
126
  )
123
127
  );
124
128
  }
@@ -0,0 +1,94 @@
1
+ @forward './md-comp-checkbox' as md-comp-checkbox-*;
2
+ @forward './md-comp-circular-progress-indicator' as md-comp-circular-progress-indicator-*;
3
+ @forward './md-comp-data-table' as md-comp-data-table-*;
4
+ @forward './md-comp-dialog' as md-comp-dialog-*;
5
+ @forward './md-comp-elevated-button' as md-comp-elevated-button-*;
6
+ @forward './md-comp-elevated-card' as md-comp-elevated-card-*;
7
+ @forward './md-comp-extended-fab-primary' as md-comp-extended-fab-primary-*;
8
+ @forward './md-comp-extended-fab-secondary' as md-comp-extended-fab-secondary-*;
9
+ @forward './md-comp-extended-fab-tertiary' as md-comp-extended-fab-tertiary-*;
10
+ @forward './md-comp-fab-primary-small' as md-comp-fab-primary-small-*;
11
+ @forward './md-comp-fab-primary' as md-comp-fab-primary-*;
12
+ @forward './md-comp-fab-secondary-small' as md-comp-fab-secondary-small-*;
13
+ @forward './md-comp-fab-secondary' as md-comp-fab-secondary-*;
14
+ @forward './md-comp-fab-tertiary-small' as md-comp-fab-tertiary-small-*;
15
+ @forward './md-comp-fab-tertiary' as md-comp-fab-tertiary-*;
16
+ @forward './md-comp-filled-button' as md-comp-filled-button-*;
17
+ @forward './md-comp-filled-card' as md-comp-filled-card-*;
18
+ @forward './md-comp-filled-icon-button' as md-comp-filled-icon-button-*;
19
+ @forward './md-comp-filled-text-field' as md-comp-filled-text-field-*;
20
+ @forward './md-comp-icon-button' as md-comp-icon-button-*;
21
+ @forward './md-comp-linear-progress-indicator' as md-comp-linear-progress-indicator-*;
22
+ @forward './md-comp-list' as md-comp-list-*;
23
+ @forward './md-comp-outlined-button' as md-comp-outlined-button-*;
24
+ @forward './md-comp-outlined-card' as md-comp-outlined-card-*;
25
+ @forward './md-comp-outlined-icon-button' as md-comp-outlined-icon-button-*;
26
+ @forward './md-comp-outlined-text-field' as md-comp-outlined-text-field-*;
27
+ @forward './md-comp-plain-tooltip' as md-comp-plain-tooltip-*;
28
+ @forward './md-comp-radio-button' as md-comp-radio-button-*;
29
+ @forward './md-comp-secondary-navigation-tab' as md-comp-secondary-navigation-tab-*;
30
+ @forward './md-comp-slider' as md-comp-slider-*;
31
+ @forward './md-comp-snackbar' as md-comp-snackbar-*;
32
+ @forward './md-comp-switch' as md-comp-switch-*;
33
+ @forward './md-comp-text-button' as md-comp-text-button-*;
34
+ @forward './md-ref-palette' as md-ref-palette-*;
35
+ @forward './md-ref-typeface' as md-ref-typeface-*;
36
+ @forward './md-sys-color' as md-sys-color-*;
37
+ @forward './md-sys-elevation' as md-sys-elevation-*;
38
+ @forward './md-sys-motion' as md-sys-motion-*;
39
+ @forward './md-sys-shape' as md-sys-shape-*;
40
+ @forward './md-sys-state' as md-sys-state-*;
41
+ @forward './md-sys-typescale' as md-sys-typescale-*;
42
+
43
+ // Tokens that are in the spec, but are currently unused.
44
+ // @forward './unused/md-comp-assist-chip' as md-comp-assist-chip-*;
45
+ // @forward './unused/md-comp-badge' as md-comp-badge-*;
46
+ // @forward './unused/md-comp-banner' as md-comp-banner-*;
47
+ // @forward './unused/md-comp-bottom-app-bar' as md-comp-bottom-app-bar-*;
48
+ // @forward './unused/md-comp-carousel-item' as md-comp-carousel-item-*;
49
+ // @forward './unused/md-comp-date-input-modal' as md-comp-date-input-modal-*;
50
+ // @forward './unused/md-comp-date-picker-docked' as md-comp-date-picker-docked-*;
51
+ // @forward './unused/md-comp-date-picker-modal' as md-comp-date-picker-modal-*;
52
+ // @forward './unused/md-comp-divider' as md-comp-divider-*;
53
+ // @forward './unused/md-comp-extended-fab-branded' as md-comp-extended-fab-branded-*;
54
+ // @forward './unused/md-comp-extended-fab-surface' as md-comp-extended-fab-surface-*;
55
+ // @forward './unused/md-comp-fab-branded-large' as md-comp-fab-branded-large-*;
56
+ // @forward './unused/md-comp-fab-branded' as md-comp-fab-branded-*;
57
+ // @forward './unused/md-comp-fab-primary-large' as md-comp-fab-primary-large-*;
58
+ // @forward './unused/md-comp-fab-secondary-large' as md-comp-fab-secondary-large-*;
59
+ // @forward './unused/md-comp-fab-surface-large' as md-comp-fab-surface-large-*;
60
+ // @forward './unused/md-comp-fab-surface-small' as md-comp-fab-surface-small-*;
61
+ // @forward './unused/md-comp-fab-surface' as md-comp-fab-surface-*;
62
+ // @forward './unused/md-comp-fab-tertiary-large' as md-comp-fab-tertiary-large-*;
63
+ // @forward './unused/md-comp-filled-autocomplete' as md-comp-filled-autocomplete-*;
64
+ // @forward './unused/md-comp-filled-menu-button' as md-comp-filled-menu-button-*;
65
+ // @forward './unused/md-comp-filled-select' as md-comp-filled-select-*;
66
+ // @forward './unused/md-comp-filled-tonal-button' as md-comp-filled-tonal-button-*;
67
+ // @forward './unused/md-comp-filled-tonal-icon-button' as md-comp-filled-tonal-icon-button-*;
68
+ // @forward './unused/md-comp-filter-chip' as md-comp-filter-chip-*;
69
+ // @forward './unused/md-comp-full-screen-dialog' as md-comp-full-screen-dialog-*;
70
+ // @forward './unused/md-comp-input-chip' as md-comp-input-chip-*;
71
+ // @forward './unused/md-comp-menu' as md-comp-menu-*;
72
+ // @forward './unused/md-comp-navigation-bar' as md-comp-navigation-bar-*;
73
+ // @forward './unused/md-comp-navigation-drawer' as md-comp-navigation-drawer-*;
74
+ // @forward './unused/md-comp-navigation-rail' as md-comp-navigation-rail-*;
75
+ // @forward './unused/md-comp-outlined-autocomplete' as md-comp-outlined-autocomplete-*;
76
+ // @forward './unused/md-comp-outlined-menu-button' as md-comp-outlined-menu-button-*;
77
+ // @forward './unused/md-comp-outlined-segmented-button' as md-comp-outlined-segmented-button-*;
78
+ // @forward './unused/md-comp-outlined-select' as md-comp-outlined-select-*;
79
+ // @forward './unused/md-comp-primary-navigation-tab' as md-comp-primary-navigation-tab-*;
80
+ // @forward './unused/md-comp-rich-tooltip' as md-comp-rich-tooltip-*;
81
+ // @forward './unused/md-comp-scrim' as md-comp-scrim-*;
82
+ // @forward './unused/md-comp-search-bar' as md-comp-search-bar-*;
83
+ // @forward './unused/md-comp-search-view' as md-comp-search-view-*;
84
+ // @forward './unused/md-comp-sheet-bottom' as md-comp-sheet-bottom-*;
85
+ // @forward './unused/md-comp-sheet-floating' as md-comp-sheet-floating-*;
86
+ // @forward './unused/md-comp-sheet-side' as md-comp-sheet-side-*;
87
+ // @forward './unused/md-comp-standard-menu-button' as md-comp-standard-menu-button-*;
88
+ // @forward './unused/md-comp-suggestion-chip' as md-comp-suggestion-chip-*;
89
+ // @forward './unused/md-comp-time-input' as md-comp-time-input-*;
90
+ // @forward './unused/md-comp-time-picker' as md-comp-time-picker-*;
91
+ // @forward './unused/md-comp-top-app-bar-large' as md-comp-top-app-bar-large-*;
92
+ // @forward './unused/md-comp-top-app-bar-medium' as md-comp-top-app-bar-medium-*;
93
+ // @forward './unused/md-comp-top-app-bar-small-centered' as md-comp-top-app-bar-small-centered-*;
94
+ // @forward './unused/md-comp-top-app-bar-small' as md-comp-top-app-bar-small-*;