@angular/material 17.1.0-next.2 → 17.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/LICENSE +1 -1
  2. package/_index.scss +6 -6
  3. package/bottom-sheet/index.d.ts +2 -4
  4. package/button/_button-base.scss +20 -2
  5. package/button/_button-theme.scss +131 -97
  6. package/button/_fab-theme.scss +2 -8
  7. package/button/_icon-button-theme.scss +11 -9
  8. package/button/index.d.ts +31 -2
  9. package/core/_core-theme.scss +6 -7
  10. package/core/_core.scss +17 -2
  11. package/core/index.d.ts +10 -3
  12. package/core/mdc-helpers/_mdc-helpers.scss +0 -184
  13. package/core/style/_sass-utils.scss +19 -0
  14. package/core/tokens/_token-utils.scss +56 -0
  15. package/core/tokens/m2/_index.scss +19 -5
  16. package/core/tokens/m2/mat/{_slide-toggle.scss → _app.scss} +12 -15
  17. package/core/tokens/m2/mat/_fab.scss +3 -0
  18. package/core/tokens/m2/mat/_filled-button.scss +3 -0
  19. package/core/tokens/m2/mat/_form-field.scss +50 -1
  20. package/core/tokens/m2/mat/_icon-button.scss +3 -0
  21. package/core/tokens/m2/mat/_outlined-button.scss +3 -0
  22. package/core/tokens/m2/mat/_protected-button.scss +3 -0
  23. package/core/tokens/m2/mat/_slider.scss +34 -8
  24. package/core/tokens/m2/mat/_tab-header.scss +6 -1
  25. package/core/tokens/m2/mat/_text-button.scss +3 -0
  26. package/core/tokens/m2/mdc/_extended-fab.scss +7 -6
  27. package/core/tokens/m2/mdc/_fab.scss +5 -5
  28. package/core/tokens/m2/mdc/_filled-button.scss +13 -12
  29. package/core/tokens/m2/mdc/_outlined-button.scss +7 -7
  30. package/core/tokens/m2/mdc/_protected-button.scss +14 -13
  31. package/core/tokens/m2/mdc/_text-button.scss +7 -12
  32. package/esm2022/autocomplete/autocomplete-origin.mjs +3 -3
  33. package/esm2022/autocomplete/autocomplete-trigger.mjs +7 -5
  34. package/esm2022/autocomplete/autocomplete.mjs +4 -5
  35. package/esm2022/autocomplete/module.mjs +4 -4
  36. package/esm2022/badge/badge-module.mjs +4 -4
  37. package/esm2022/badge/badge.mjs +3 -3
  38. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +7 -8
  39. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +4 -4
  40. package/esm2022/bottom-sheet/bottom-sheet.mjs +3 -3
  41. package/esm2022/button/button-base.mjs +46 -19
  42. package/esm2022/button/button.mjs +9 -9
  43. package/esm2022/button/fab.mjs +17 -17
  44. package/esm2022/button/icon-button.mjs +9 -9
  45. package/esm2022/button/module.mjs +4 -4
  46. package/esm2022/button/public-api.mjs +2 -1
  47. package/esm2022/button/testing/button-harness.mjs +4 -3
  48. package/esm2022/button-toggle/button-toggle-module.mjs +4 -4
  49. package/esm2022/button-toggle/button-toggle.mjs +6 -6
  50. package/esm2022/card/card.mjs +42 -42
  51. package/esm2022/card/module.mjs +4 -4
  52. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  53. package/esm2022/checkbox/checkbox.mjs +3 -3
  54. package/esm2022/checkbox/module.mjs +8 -8
  55. package/esm2022/chips/chip-action.mjs +3 -3
  56. package/esm2022/chips/chip-edit-input.mjs +3 -3
  57. package/esm2022/chips/chip-grid.mjs +3 -3
  58. package/esm2022/chips/chip-icons.mjs +9 -9
  59. package/esm2022/chips/chip-input.mjs +3 -3
  60. package/esm2022/chips/chip-listbox.mjs +4 -5
  61. package/esm2022/chips/chip-option.mjs +3 -3
  62. package/esm2022/chips/chip-row.mjs +3 -3
  63. package/esm2022/chips/chip-set.mjs +3 -3
  64. package/esm2022/chips/chip.mjs +5 -4
  65. package/esm2022/chips/module.mjs +4 -4
  66. package/esm2022/core/common-behaviors/common-module.mjs +4 -4
  67. package/esm2022/core/datetime/index.mjs +16 -11
  68. package/esm2022/core/datetime/native-date-adapter.mjs +3 -3
  69. package/esm2022/core/error/error-options.mjs +6 -6
  70. package/esm2022/core/internal-form-field/internal-form-field.mjs +3 -3
  71. package/esm2022/core/line/line.mjs +7 -7
  72. package/esm2022/core/option/index.mjs +4 -4
  73. package/esm2022/core/option/optgroup.mjs +3 -3
  74. package/esm2022/core/option/option.mjs +3 -3
  75. package/esm2022/core/private/ripple-loader.mjs +30 -12
  76. package/esm2022/core/ripple/index.mjs +4 -4
  77. package/esm2022/core/ripple/ripple-renderer.mjs +1 -1
  78. package/esm2022/core/ripple/ripple.mjs +3 -3
  79. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  80. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  81. package/esm2022/core/version.mjs +1 -1
  82. package/esm2022/datepicker/calendar-body.mjs +3 -3
  83. package/esm2022/datepicker/calendar.mjs +8 -8
  84. package/esm2022/datepicker/date-range-input-parts.mjs +9 -9
  85. package/esm2022/datepicker/date-range-input.mjs +3 -3
  86. package/esm2022/datepicker/date-range-picker.mjs +3 -3
  87. package/esm2022/datepicker/date-range-selection-strategy.mjs +3 -3
  88. package/esm2022/datepicker/date-selection-model.mjs +9 -9
  89. package/esm2022/datepicker/datepicker-actions.mjs +9 -9
  90. package/esm2022/datepicker/datepicker-base.mjs +6 -6
  91. package/esm2022/datepicker/datepicker-errors.mjs +4 -4
  92. package/esm2022/datepicker/datepicker-input-base.mjs +3 -3
  93. package/esm2022/datepicker/datepicker-input.mjs +3 -3
  94. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  95. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  96. package/esm2022/datepicker/datepicker-toggle.mjs +6 -6
  97. package/esm2022/datepicker/datepicker.mjs +3 -3
  98. package/esm2022/datepicker/month-view.mjs +3 -3
  99. package/esm2022/datepicker/multi-year-view.mjs +3 -3
  100. package/esm2022/datepicker/year-view.mjs +3 -3
  101. package/esm2022/dialog/dialog-container.mjs +5 -5
  102. package/esm2022/dialog/dialog-content-directives.mjs +18 -21
  103. package/esm2022/dialog/dialog.mjs +3 -3
  104. package/esm2022/dialog/module.mjs +4 -4
  105. package/esm2022/divider/divider-module.mjs +4 -4
  106. package/esm2022/divider/divider.mjs +3 -3
  107. package/esm2022/expansion/accordion.mjs +4 -5
  108. package/esm2022/expansion/expansion-module.mjs +4 -4
  109. package/esm2022/expansion/expansion-panel-content.mjs +3 -3
  110. package/esm2022/expansion/expansion-panel-header.mjs +9 -9
  111. package/esm2022/expansion/expansion-panel.mjs +8 -8
  112. package/esm2022/form-field/directives/error.mjs +3 -3
  113. package/esm2022/form-field/directives/floating-label.mjs +3 -3
  114. package/esm2022/form-field/directives/hint.mjs +3 -3
  115. package/esm2022/form-field/directives/label.mjs +3 -3
  116. package/esm2022/form-field/directives/line-ripple.mjs +3 -3
  117. package/esm2022/form-field/directives/notched-outline.mjs +3 -3
  118. package/esm2022/form-field/directives/prefix.mjs +3 -3
  119. package/esm2022/form-field/directives/suffix.mjs +3 -3
  120. package/esm2022/form-field/form-field-control.mjs +3 -3
  121. package/esm2022/form-field/form-field.mjs +6 -6
  122. package/esm2022/form-field/module.mjs +4 -4
  123. package/esm2022/grid-list/grid-list-module.mjs +4 -4
  124. package/esm2022/grid-list/grid-list.mjs +3 -3
  125. package/esm2022/grid-list/grid-tile.mjs +15 -15
  126. package/esm2022/icon/icon-module.mjs +4 -4
  127. package/esm2022/icon/icon-registry.mjs +3 -3
  128. package/esm2022/icon/icon.mjs +3 -3
  129. package/esm2022/icon/testing/fake-icon-registry.mjs +7 -7
  130. package/esm2022/input/input.mjs +3 -3
  131. package/esm2022/input/module.mjs +4 -4
  132. package/esm2022/list/action-list.mjs +3 -3
  133. package/esm2022/list/list-base.mjs +6 -6
  134. package/esm2022/list/list-item-sections.mjs +18 -18
  135. package/esm2022/list/list-module.mjs +4 -4
  136. package/esm2022/list/list-option.mjs +6 -6
  137. package/esm2022/list/list.mjs +6 -6
  138. package/esm2022/list/nav-list.mjs +3 -3
  139. package/esm2022/list/selection-list.mjs +3 -3
  140. package/esm2022/list/subheader.mjs +3 -3
  141. package/esm2022/list/tokens.mjs +2 -2
  142. package/esm2022/menu/menu-content.mjs +3 -3
  143. package/esm2022/menu/menu-item.mjs +3 -3
  144. package/esm2022/menu/menu-trigger.mjs +3 -3
  145. package/esm2022/menu/menu.mjs +4 -5
  146. package/esm2022/menu/module.mjs +4 -4
  147. package/esm2022/paginator/module.mjs +4 -4
  148. package/esm2022/paginator/paginator-intl.mjs +3 -3
  149. package/esm2022/paginator/paginator.mjs +5 -5
  150. package/esm2022/progress-bar/module.mjs +4 -4
  151. package/esm2022/progress-bar/progress-bar.mjs +3 -3
  152. package/esm2022/progress-spinner/module.mjs +4 -4
  153. package/esm2022/progress-spinner/progress-spinner.mjs +3 -3
  154. package/esm2022/radio/module.mjs +4 -4
  155. package/esm2022/radio/radio.mjs +6 -6
  156. package/esm2022/select/module.mjs +4 -4
  157. package/esm2022/select/select.mjs +19 -19
  158. package/esm2022/sidenav/drawer.mjs +22 -18
  159. package/esm2022/sidenav/sidenav-module.mjs +4 -4
  160. package/esm2022/sidenav/sidenav.mjs +10 -13
  161. package/esm2022/slide-toggle/module.mjs +8 -8
  162. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  163. package/esm2022/slide-toggle/slide-toggle.mjs +7 -7
  164. package/esm2022/slider/module.mjs +4 -4
  165. package/esm2022/slider/slider-input.mjs +43 -26
  166. package/esm2022/slider/slider-interface.mjs +1 -1
  167. package/esm2022/slider/slider-thumb.mjs +12 -5
  168. package/esm2022/slider/slider.mjs +5 -6
  169. package/esm2022/snack-bar/module.mjs +4 -4
  170. package/esm2022/snack-bar/simple-snack-bar.mjs +3 -3
  171. package/esm2022/snack-bar/snack-bar-container.mjs +13 -12
  172. package/esm2022/snack-bar/snack-bar-content.mjs +9 -9
  173. package/esm2022/snack-bar/snack-bar.mjs +3 -3
  174. package/esm2022/sort/sort-header-intl.mjs +3 -3
  175. package/esm2022/sort/sort-header.mjs +3 -3
  176. package/esm2022/sort/sort-module.mjs +4 -4
  177. package/esm2022/sort/sort.mjs +3 -3
  178. package/esm2022/stepper/step-content.mjs +3 -3
  179. package/esm2022/stepper/step-header.mjs +3 -3
  180. package/esm2022/stepper/step-label.mjs +3 -3
  181. package/esm2022/stepper/stepper-button.mjs +7 -9
  182. package/esm2022/stepper/stepper-icon.mjs +3 -3
  183. package/esm2022/stepper/stepper-intl.mjs +3 -3
  184. package/esm2022/stepper/stepper-module.mjs +4 -4
  185. package/esm2022/stepper/stepper.mjs +16 -12
  186. package/esm2022/table/cell.mjs +21 -21
  187. package/esm2022/table/module.mjs +4 -4
  188. package/esm2022/table/row.mjs +21 -21
  189. package/esm2022/table/table.mjs +64 -31
  190. package/esm2022/table/text-column.mjs +3 -3
  191. package/esm2022/tabs/ink-bar.mjs +4 -4
  192. package/esm2022/tabs/module.mjs +4 -4
  193. package/esm2022/tabs/paginated-tab-header.mjs +13 -6
  194. package/esm2022/tabs/tab-body.mjs +6 -6
  195. package/esm2022/tabs/tab-content.mjs +3 -3
  196. package/esm2022/tabs/tab-group.mjs +20 -9
  197. package/esm2022/tabs/tab-header.mjs +6 -6
  198. package/esm2022/tabs/tab-label-wrapper.mjs +3 -3
  199. package/esm2022/tabs/tab-label.mjs +3 -3
  200. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +12 -12
  201. package/esm2022/tabs/tab.mjs +9 -5
  202. package/esm2022/toolbar/toolbar-module.mjs +4 -4
  203. package/esm2022/toolbar/toolbar.mjs +7 -7
  204. package/esm2022/tooltip/module.mjs +4 -4
  205. package/esm2022/tooltip/tooltip.mjs +6 -6
  206. package/esm2022/tree/node.mjs +9 -9
  207. package/esm2022/tree/outlet.mjs +3 -3
  208. package/esm2022/tree/padding.mjs +3 -3
  209. package/esm2022/tree/toggle.mjs +3 -3
  210. package/esm2022/tree/tree-module.mjs +4 -4
  211. package/esm2022/tree/tree.mjs +3 -3
  212. package/expansion/index.d.ts +2 -2
  213. package/fesm2022/autocomplete.mjs +16 -15
  214. package/fesm2022/autocomplete.mjs.map +1 -1
  215. package/fesm2022/badge.mjs +7 -7
  216. package/fesm2022/bottom-sheet.mjs +12 -13
  217. package/fesm2022/bottom-sheet.mjs.map +1 -1
  218. package/fesm2022/button/testing.mjs +3 -2
  219. package/fesm2022/button/testing.mjs.map +1 -1
  220. package/fesm2022/button-toggle.mjs +10 -10
  221. package/fesm2022/button.mjs +82 -55
  222. package/fesm2022/button.mjs.map +1 -1
  223. package/fesm2022/card.mjs +46 -46
  224. package/fesm2022/checkbox.mjs +14 -14
  225. package/fesm2022/chips.mjs +41 -41
  226. package/fesm2022/chips.mjs.map +1 -1
  227. package/fesm2022/core.mjs +93 -70
  228. package/fesm2022/core.mjs.map +1 -1
  229. package/fesm2022/datepicker.mjs +86 -86
  230. package/fesm2022/datepicker.mjs.map +1 -1
  231. package/fesm2022/dialog.mjs +28 -31
  232. package/fesm2022/dialog.mjs.map +1 -1
  233. package/fesm2022/divider.mjs +7 -7
  234. package/fesm2022/expansion.mjs +26 -27
  235. package/fesm2022/expansion.mjs.map +1 -1
  236. package/fesm2022/form-field.mjs +36 -36
  237. package/fesm2022/form-field.mjs.map +1 -1
  238. package/fesm2022/grid-list.mjs +22 -22
  239. package/fesm2022/icon/testing.mjs +7 -7
  240. package/fesm2022/icon.mjs +10 -10
  241. package/fesm2022/input.mjs +7 -7
  242. package/fesm2022/list.mjs +52 -52
  243. package/fesm2022/list.mjs.map +1 -1
  244. package/fesm2022/menu.mjs +16 -17
  245. package/fesm2022/menu.mjs.map +1 -1
  246. package/fesm2022/paginator.mjs +11 -11
  247. package/fesm2022/paginator.mjs.map +1 -1
  248. package/fesm2022/progress-bar.mjs +7 -7
  249. package/fesm2022/progress-spinner.mjs +7 -7
  250. package/fesm2022/radio.mjs +10 -10
  251. package/fesm2022/select.mjs +22 -22
  252. package/fesm2022/select.mjs.map +1 -1
  253. package/fesm2022/sidenav.mjs +34 -33
  254. package/fesm2022/sidenav.mjs.map +1 -1
  255. package/fesm2022/slide-toggle.mjs +17 -17
  256. package/fesm2022/slide-toggle.mjs.map +1 -1
  257. package/fesm2022/slider.mjs +60 -38
  258. package/fesm2022/slider.mjs.map +1 -1
  259. package/fesm2022/snack-bar.mjs +32 -30
  260. package/fesm2022/snack-bar.mjs.map +1 -1
  261. package/fesm2022/sort.mjs +13 -13
  262. package/fesm2022/stepper.mjs +40 -38
  263. package/fesm2022/stepper.mjs.map +1 -1
  264. package/fesm2022/table.mjs +111 -78
  265. package/fesm2022/table.mjs.map +1 -1
  266. package/fesm2022/tabs.mjs +76 -55
  267. package/fesm2022/tabs.mjs.map +1 -1
  268. package/fesm2022/toolbar.mjs +11 -11
  269. package/fesm2022/toolbar.mjs.map +1 -1
  270. package/fesm2022/tooltip.mjs +10 -10
  271. package/fesm2022/tree.mjs +25 -25
  272. package/form-field/_form-field-subscript.scss +1 -2
  273. package/form-field/_form-field-theme.scss +4 -2
  274. package/form-field/_mdc-text-field-density-overrides.scss +60 -0
  275. package/icon/_icon-theme.scss +24 -10
  276. package/list/index.d.ts +1 -1
  277. package/package.json +49 -49
  278. package/paginator/_paginator-theme.scss +5 -4
  279. package/prebuilt-themes/deeppurple-amber.css +1 -1
  280. package/prebuilt-themes/indigo-pink.css +1 -1
  281. package/prebuilt-themes/pink-bluegrey.css +1 -1
  282. package/prebuilt-themes/purple-green.css +1 -1
  283. package/schematics/ng-add/index.js +1 -1
  284. package/schematics/ng-add/index.mjs +1 -1
  285. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +3 -3
  286. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +1 -1
  287. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +5 -3
  288. package/schematics/ng-generate/mdc-migration/index_bundled.js +1251 -633
  289. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  290. package/schematics/ng-generate/mdc-migration/schema.json +0 -1
  291. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +3 -3
  292. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +3 -3
  293. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +3 -3
  294. package/slide-toggle/_slide-toggle-theme.scss +16 -28
  295. package/slide-toggle/index.d.ts +2 -2
  296. package/slider/_slider-theme.scss +10 -12
  297. package/slider/index.d.ts +9 -12
  298. package/snack-bar/index.d.ts +2 -2
  299. package/stepper/index.d.ts +5 -3
  300. package/table/index.d.ts +2 -4
  301. package/tabs/_tabs-common.scss +20 -1
  302. package/tabs/index.d.ts +14 -7
  303. package/form-field/_form-field-density.scss +0 -118
  304. package/form-field/_form-field-sizing.scss +0 -40
@@ -8,7 +8,6 @@
8
8
  "type": "string",
9
9
  "format": "path",
10
10
  "description": "Workspace-relative path to a directory which will be migrated.",
11
- "alias": "d",
12
11
  "x-prompt": "Limit the migration to a specific directory? (Enter the relative path such as 'src/app/shared' or leave blank for all directories)"
13
12
  },
14
13
  "components": {
@@ -15,10 +15,10 @@ import { map, shareReplay } from 'rxjs/operators';
15
15
  <%= indentTextContent(resolvedFiles.template, 4) %>
16
16
  `,<% } else { %>
17
17
  templateUrl: './<%= dasherize(name) %>.component.html',<% } if(inlineStyle) { %>
18
- styles: [`
18
+ styles: `
19
19
  <%= indentTextContent(resolvedFiles.stylesheet, 4) %>
20
- `]<% } else { %>
21
- styleUrls: ['./<%= dasherize(name) %>.component.<%= style %>']<% } %><% if(!!viewEncapsulation) { %>,
20
+ `<% } else { %>
21
+ styleUrl: './<%= dasherize(name) %>.component.<%= style %>'<% } %><% if(!!viewEncapsulation) { %>,
22
22
  encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
23
23
  changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %><% if(standalone) { %>,
24
24
  standalone: true,
@@ -10,10 +10,10 @@ import { <%= classify(name) %>DataSource, <%= classify(name) %>Item } from './<%
10
10
  <%= indentTextContent(resolvedFiles.template, 4) %>
11
11
  `,<% } else { %>
12
12
  templateUrl: './<%= dasherize(name) %>.component.html',<% } if(inlineStyle) { %>
13
- styles: [`
13
+ styles: `
14
14
  <%= indentTextContent(resolvedFiles.stylesheet, 4) %>
15
- `]<% } else { %>
16
- styleUrls: ['./<%= dasherize(name) %>.component.<%= style %>']<% } %><% if(!!viewEncapsulation) { %>,
15
+ `<% } else { %>
16
+ styleUrl: './<%= dasherize(name) %>.component.<%= style %>'<% } %><% if(!!viewEncapsulation) { %>,
17
17
  encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
18
18
  changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %><% if(standalone) { %>,
19
19
  standalone: true,
@@ -29,10 +29,10 @@ export interface FlatTreeNode {
29
29
  <%= indentTextContent(resolvedFiles.template, 4) %>
30
30
  `,<% } else { %>
31
31
  templateUrl: './<%= dasherize(name) %>.component.html',<% } if (inlineStyle) { %>
32
- styles: [`
32
+ styles: `
33
33
  <%= indentTextContent(resolvedFiles.stylesheet, 4) %>
34
- `]<% } else { %>
35
- styleUrls: ['./<%= dasherize(name) %>.component.<%= style %>']<% } %><% if(!!viewEncapsulation) { %>,
34
+ `<% } else { %>
35
+ styleUrl: './<%= dasherize(name) %>.component.<%= style %>'<% } %><% if(!!viewEncapsulation) { %>,
36
36
  encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
37
37
  changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %><% if(standalone) { %>,
38
38
  standalone: true,
@@ -3,12 +3,9 @@
3
3
  @use '@material/form-field/form-field-theme' as mdc-form-field-theme;
4
4
  @use '../core/theming/theming';
5
5
  @use '../core/theming/inspection';
6
- @use '../core/mdc-helpers/mdc-helpers';
7
6
  @use '../core/typography/typography';
8
7
  @use '../core/tokens/m2/mdc/form-field' as tokens-mdc-form-field;
9
8
  @use '../core/tokens/m2/mdc/switch' as tokens-mdc-switch;
10
- @use '../core/tokens/m2/mat/slide-toggle' as tokens-mat-slide-toggle;
11
- @use '../core/tokens/token-utils';
12
9
 
13
10
  @mixin base($theme) {
14
11
  @if inspection.get-theme-version($theme) == 1 {
@@ -29,27 +26,25 @@
29
26
  $is-dark: inspection.get-theme-type($theme) == dark;
30
27
  $mdc-switch-color-tokens: tokens-mdc-switch.get-color-tokens($theme);
31
28
 
32
- @include mdc-helpers.using-mdc-theme($theme) {
33
- // Add values for MDC slide toggles tokens
34
- .mat-mdc-slide-toggle {
35
- @include mdc-switch-theme.theme($mdc-switch-color-tokens);
36
- @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-color-tokens($theme));
29
+ // Add values for MDC slide toggles tokens
30
+ .mat-mdc-slide-toggle {
31
+ @include mdc-switch-theme.theme($mdc-switch-color-tokens);
32
+ @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-color-tokens($theme));
37
33
 
38
- // MDC should set the disabled color on the label, but doesn't, so we do it here instead.
39
- .mdc-switch--disabled + label {
40
- color: inspection.get-theme-color($theme, foreground, disabled-text);
41
- }
34
+ // MDC should set the disabled color on the label, but doesn't, so we do it here instead.
35
+ .mdc-switch--disabled + label {
36
+ color: inspection.get-theme-color($theme, foreground, disabled-text);
37
+ }
42
38
 
43
- // Change the color palette related tokens to accent or warn if applicable
44
- &.mat-accent {
45
- @include mdc-switch-theme.theme(
46
- tokens-mdc-switch.private-get-color-palette-color-tokens($theme, accent));
47
- }
39
+ // Change the color palette related tokens to accent or warn if applicable
40
+ &.mat-accent {
41
+ @include mdc-switch-theme.theme(
42
+ tokens-mdc-switch.private-get-color-palette-color-tokens($theme, accent));
43
+ }
48
44
 
49
- &.mat-warn {
50
- @include mdc-switch-theme.theme(
51
- tokens-mdc-switch.private-get-color-palette-color-tokens($theme, warn));
52
- }
45
+ &.mat-warn {
46
+ @include mdc-switch-theme.theme(
47
+ tokens-mdc-switch.private-get-color-palette-color-tokens($theme, warn));
53
48
  }
54
49
  }
55
50
  }
@@ -61,16 +56,11 @@
61
56
  }
62
57
  @else {
63
58
  $mdc-switch-typography-tokens: tokens-mdc-switch.get-typography-tokens($theme);
64
- $mat-slide-toggle-typography-tokens: tokens-mat-slide-toggle.get-typography-tokens($theme);
65
59
 
66
60
  // Add values for MDC slide toggle tokens
67
61
  .mat-mdc-slide-toggle {
68
62
  @include mdc-switch-theme.theme($mdc-switch-typography-tokens);
69
63
  @include mdc-form-field-theme.theme(tokens-mdc-form-field.get-typography-tokens($theme));
70
- @include token-utils.create-token-values(
71
- tokens-mat-slide-toggle.$prefix,
72
- $mat-slide-toggle-typography-tokens
73
- );
74
64
  }
75
65
  }
76
66
  }
@@ -111,7 +101,5 @@
111
101
  @mixin _theme-from-tokens($tokens) {
112
102
  @if ($tokens != ()) {
113
103
  @include mdc-switch-theme.theme(map.get($tokens, tokens-mdc-switch.$prefix));
114
- @include token-utils.create-token-values(
115
- tokens-mat-slide-toggle.$prefix, map.get($tokens, tokens-mat-slide-toggle.$prefix));
116
104
  }
117
105
  }
@@ -138,11 +138,11 @@ export declare class MatSlideToggle implements OnDestroy, AfterContentInit, OnCh
138
138
  _handleClick(): void;
139
139
  _getAriaLabelledBy(): string | null;
140
140
  static ɵfac: i0.ɵɵFactoryDeclaration<MatSlideToggle, [null, null, null, { attribute: "tabindex"; }, null, { optional: true; }]>;
141
- static ɵcmp: i0.ɵɵComponentDeclaration<MatSlideToggle, "mat-slide-toggle", ["matSlideToggle"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; }; "required": { "alias": "required"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "hideIcon": { "alias": "hideIcon"; "required": false; }; }, { "change": "change"; "toggleChange": "toggleChange"; }, never, ["*"], true, never>;
141
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatSlideToggle, "mat-slide-toggle", ["matSlideToggle"], { "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; }; "required": { "alias": "required"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "hideIcon": { "alias": "hideIcon"; "required": false; }; }, { "change": "change"; "toggleChange": "toggleChange"; }, never, ["*"], true, never>;
142
+ static ngAcceptInputType_required: unknown;
142
143
  static ngAcceptInputType_disabled: unknown;
143
144
  static ngAcceptInputType_disableRipple: unknown;
144
145
  static ngAcceptInputType_tabIndex: unknown;
145
- static ngAcceptInputType_required: unknown;
146
146
  static ngAcceptInputType_checked: unknown;
147
147
  static ngAcceptInputType_hideIcon: unknown;
148
148
  }
@@ -15,6 +15,8 @@
15
15
  @else {
16
16
  // Add default values for tokens not related to color, typography, or density.
17
17
  @include sass-utils.current-selector-or-root() {
18
+ $mat-tokens: tokens-mat-slider.get-unthemable-tokens();
19
+ @include token-utils.create-token-values(tokens-mat-slider.$prefix, $mat-tokens);
18
20
  @include mdc-slider-theme.theme(tokens-mdc-slider.get-unthemable-tokens());
19
21
  }
20
22
  }
@@ -38,22 +40,27 @@
38
40
  // Add values for MDC slider tokens.
39
41
  @include sass-utils.current-selector-or-root() {
40
42
  @include mdc-slider-theme.theme($mdc-color-tokens);
41
- @include _slider-ripple-color($theme, primary);
42
43
  @include token-utils.create-token-values(
43
44
  tokens-mat-slider.$prefix,
44
45
  $mat-slider-color-tokens
45
46
  );
46
47
 
47
48
  .mat-accent {
49
+ @include token-utils.create-token-values(
50
+ tokens-mat-slider.$prefix,
51
+ tokens-mat-slider.private-get-color-palette-color-tokens($theme, accent),
52
+ );
48
53
  @include mdc-slider-theme.theme(
49
54
  tokens-mdc-slider.private-get-color-palette-color-tokens($theme, accent));
50
- @include _slider-ripple-color($theme, accent);
51
55
  }
52
56
 
53
57
  .mat-warn {
58
+ @include token-utils.create-token-values(
59
+ tokens-mat-slider.$prefix,
60
+ tokens-mat-slider.private-get-color-palette-color-tokens($theme, warn),
61
+ );
54
62
  @include mdc-slider-theme.theme(
55
63
  tokens-mdc-slider.private-get-color-palette-color-tokens($theme, warn));
56
- @include _slider-ripple-color($theme, warn);
57
64
  }
58
65
  }
59
66
  }
@@ -103,15 +110,6 @@
103
110
  }
104
111
  }
105
112
 
106
- // Generated MDC ripple color tokens are not being calculated so needs to be set
107
- @mixin _slider-ripple-color($theme, $palette-name) {
108
- $color: inspection.get-theme-color($theme, $palette-name);
109
-
110
- --mat-mdc-slider-ripple-color: #{$color};
111
- --mat-mdc-slider-hover-ripple-color: #{rgba($color, 0.05)};
112
- --mat-mdc-slider-focus-ripple-color: #{rgba($color, 0.2)};
113
- }
114
-
115
113
  @mixin _theme-from-tokens($tokens) {
116
114
  @if ($tokens != ()) {
117
115
  @include mdc-slider-theme.theme(map.get($tokens, tokens-mdc-slider.$prefix));
package/slider/index.d.ts CHANGED
@@ -139,7 +139,6 @@ export declare class MatSlider implements AfterViewInit, OnDestroy, _MatSlider {
139
139
  /** The radius of the native slider's knob. AFAIK there is no way to avoid hardcoding this. */
140
140
  _knobRadius: number;
141
141
  _inputPadding: number;
142
- _inputOffset: number;
143
142
  ngAfterViewInit(): void;
144
143
  private _initUINonRange;
145
144
  private _initUIRange;
@@ -243,17 +242,6 @@ declare interface _MatSlider {
243
242
  * thumb ripple extends past the end of the slider track clickable.
244
243
  */
245
244
  _inputPadding: number;
246
- /**
247
- * The offset represents left most translateX of the slider knob. Inversely,
248
- * (slider width - offset) = the right most translateX of the slider knob.
249
- *
250
- * Note:
251
- * * The native slider knob differs from the visual slider. It's knob cannot slide past
252
- * the end of the track AT ALL.
253
- * * The visual slider knob CAN slide past the end of the track slightly. It's knob can slide
254
- * past the end of the track such that it's center lines up with the end of the track.
255
- */
256
- _inputOffset: number;
257
245
  /** The radius of the visual slider's ripple. */
258
246
  _rippleRadius: number;
259
247
  /** The global configuration for `matRipple` instances. */
@@ -343,6 +331,7 @@ export declare class MatSliderRangeThumb extends MatSliderThumb implements _MatS
343
331
  * @docs-private
344
332
  */
345
333
  writeValue(value: any): void;
334
+ _setValue(value: string): void;
346
335
  static ɵfac: i0.ɵɵFactoryDeclaration<MatSliderRangeThumb, never>;
347
336
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatSliderRangeThumb, "input[matSliderStartThumb], input[matSliderEndThumb]", ["matSliderRangeThumb"], {}, {}, never, never, true, never>;
348
337
  }
@@ -378,6 +367,11 @@ export declare class MatSliderThumb implements _MatSliderThumb, OnDestroy, Contr
378
367
  protected _slider: _MatSlider;
379
368
  get value(): number;
380
369
  set value(value: number);
370
+ /**
371
+ * Handles programmatic value setting. This has been split out to
372
+ * allow the range thumb to override it and add additional necessary logic.
373
+ */
374
+ protected _setValue(value: string): void;
381
375
  /** Event emitted when the `value` is changed. */
382
376
  readonly valueChange: EventEmitter<number>;
383
377
  /** Event emitted when the slider thumb starts being dragged. */
@@ -417,6 +411,8 @@ export declare class MatSliderThumb implements _MatSliderThumb, OnDestroy, Contr
417
411
  _valuetext: string;
418
412
  /** The radius of a native html slider's knob. */
419
413
  _knobRadius: number;
414
+ /** The distance in px from the start of the slider track to the first tick mark. */
415
+ _tickMarkOffset: number;
420
416
  /** Whether user's cursor is currently in a mouse down state on the input. */
421
417
  _isActive: boolean;
422
418
  /** Whether the input is currently focused (either by tab or after clicking). */
@@ -626,6 +622,7 @@ export declare class MatSliderVisualThumb implements _MatSliderVisualThumb, Afte
626
622
  _isValueIndicatorVisible: boolean;
627
623
  /** The host native HTML input element. */
628
624
  _hostElement: HTMLElement;
625
+ private _platform;
629
626
  constructor(_cdr: ChangeDetectorRef, _ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _slider: _MatSlider);
630
627
  ngAfterViewInit(): void;
631
628
  ngOnDestroy(): void;
@@ -256,8 +256,8 @@ export declare class MatSnackBarContainer extends BasePortalOutlet implements On
256
256
  /** Makes sure the exit callbacks have been invoked when the element is destroyed. */
257
257
  ngOnDestroy(): void;
258
258
  /**
259
- * Waits for the zone to settle before removing the element. Helps prevent
260
- * errors where we end up removing an element which is in the middle of an animation.
259
+ * Removes the element in a microtask. Helps prevent errors where we end up
260
+ * removing an element which is in the middle of an animation.
261
261
  */
262
262
  private _completeExit;
263
263
  /**
@@ -198,12 +198,14 @@ export declare class MatStepper extends CdkStepper implements AfterContentInit {
198
198
  get animationDuration(): string;
199
199
  set animationDuration(value: string);
200
200
  private _animationDuration;
201
+ /** Whether the stepper is rendering on the server. */
202
+ protected _isServer: boolean;
201
203
  constructor(dir: Directionality, changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>);
202
204
  ngAfterContentInit(): void;
203
205
  _stepIsNavigable(index: number, step: MatStep): boolean;
204
206
  _getAnimationDuration(): string;
205
207
  static ɵfac: i0.ɵɵFactoryDeclaration<MatStepper, [{ optional: true; }, null, null]>;
206
- static ɵcmp: i0.ɵɵComponentDeclaration<MatStepper, "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", ["matStepper", "matVerticalStepper", "matHorizontalStepper"], { "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; }, { "animationDone": "animationDone"; }, ["_steps", "_icons"], never, true, never>;
208
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatStepper, "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", ["matStepper", "matVerticalStepper", "matHorizontalStepper"], { "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; }, { "animationDone": "animationDone"; }, ["_steps", "_icons"], ["*"], true, never>;
207
209
  }
208
210
 
209
211
  /**
@@ -263,13 +265,13 @@ export declare class MatStepperModule {
263
265
  /** Button that moves to the next step in a stepper workflow. */
264
266
  export declare class MatStepperNext extends CdkStepperNext {
265
267
  static ɵfac: i0.ɵɵFactoryDeclaration<MatStepperNext, never>;
266
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatStepperNext, "button[matStepperNext]", never, { "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
268
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatStepperNext, "button[matStepperNext]", never, {}, {}, never, never, true, never>;
267
269
  }
268
270
 
269
271
  /** Button that moves to the previous step in a stepper workflow. */
270
272
  export declare class MatStepperPrevious extends CdkStepperPrevious {
271
273
  static ɵfac: i0.ɵɵFactoryDeclaration<MatStepperPrevious, never>;
272
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatStepperPrevious, "button[matStepperPrevious]", never, { "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
274
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatStepperPrevious, "button[matStepperPrevious]", never, {}, {}, never, never, true, never>;
273
275
  }
274
276
 
275
277
  export { StepperOrientation }
package/table/index.d.ts CHANGED
@@ -21,7 +21,6 @@ import * as i1 from '@angular/material/core';
21
21
  import * as i2 from '@angular/cdk/table';
22
22
  import { MatPaginator } from '@angular/material/paginator';
23
23
  import { MatSort } from '@angular/material/sort';
24
- import { OnInit } from '@angular/core';
25
24
  import { Subscription } from 'rxjs';
26
25
 
27
26
  declare namespace i3 {
@@ -187,14 +186,13 @@ export declare class MatRowDef<T> extends CdkRowDef<T> {
187
186
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatRowDef<any>, "[matRowDef]", never, { "columns": { "alias": "matRowDefColumns"; "required": false; }; "when": { "alias": "matRowDefWhen"; "required": false; }; }, {}, never, never, true, never>;
188
187
  }
189
188
 
190
- export declare class MatTable<T> extends CdkTable<T> implements OnInit {
189
+ export declare class MatTable<T> extends CdkTable<T> {
191
190
  /** Overrides the sticky CSS class set by the `CdkTable`. */
192
191
  protected stickyCssClass: string;
193
192
  /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */
194
193
  protected needsPositionStickyOnElement: boolean;
195
- ngOnInit(): void;
196
194
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTable<any>, never>;
197
- static ɵcmp: i0.ɵɵComponentDeclaration<MatTable<any>, "mat-table, table[mat-table]", ["matTable"], {}, {}, never, ["caption", "colgroup, col"], true, never>;
195
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatTable<any>, "mat-table, table[mat-table]", ["matTable"], {}, {}, never, ["caption", "colgroup, col", "*"], true, never>;
198
196
  }
199
197
 
200
198
  /**
@@ -338,11 +338,30 @@ $mat-tab-animation-duration: 500ms !default;
338
338
  }
339
339
 
340
340
  // Structural styles for the element that wraps the paginated container's content.
341
- @mixin paginated-tab-header-container {
341
+ // Include a selector for an inverted header if the header may be optionally positioned on the
342
+ // bottom of the content.
343
+ @mixin paginated-tab-header-container($inverted-header-selector: null) {
342
344
  display: flex;
343
345
  flex-grow: 1;
344
346
  overflow: hidden;
345
347
  z-index: 1;
348
+ @include token-utils.use-tokens(
349
+ tokens-mat-tab-header.$prefix,
350
+ tokens-mat-tab-header.get-token-slots()
351
+ ) {
352
+ border-bottom-style: solid;
353
+ @include token-utils.create-token-slot(border-bottom-width, divider-height);
354
+ @include token-utils.create-token-slot(border-bottom-color, divider-color);
355
+
356
+ @if ($inverted-header-selector) {
357
+ #{$inverted-header-selector} & {
358
+ border-bottom: none;
359
+ border-top-style: solid;
360
+ @include token-utils.create-token-slot(border-top-width, divider-height);
361
+ @include token-utils.create-token-slot(border-top-color, divider-color);
362
+ }
363
+ }
364
+ }
346
365
  }
347
366
 
348
367
  @mixin paginated-tab-header-with-background($header-selector, $tab-selector) {
package/tabs/index.d.ts CHANGED
@@ -133,7 +133,7 @@ export declare class MatInkBar {
133
133
  */
134
134
  declare interface MatInkBarItem extends OnInit, OnDestroy {
135
135
  elementRef: ElementRef<HTMLElement>;
136
- activateInkBar(previousIndicatorClientRect?: ClientRect): void;
136
+ activateInkBar(previousIndicatorClientRect?: DOMRect): void;
137
137
  deactivateInkBar(): void;
138
138
  fitInkBarToContent: boolean;
139
139
  }
@@ -203,7 +203,7 @@ export declare abstract class MatPaginatedTabHeader implements AfterContentCheck
203
203
  disablePagination: boolean;
204
204
  /** The index of the active tab. */
205
205
  get selectedIndex(): number;
206
- set selectedIndex(v: unknown);
206
+ set selectedIndex(v: number);
207
207
  private _selectedIndex;
208
208
  /** Event emitted when the option is selected. */
209
209
  readonly selectFocusedIndex: EventEmitter<number>;
@@ -318,8 +318,9 @@ export declare abstract class MatPaginatedTabHeader implements AfterContentCheck
318
318
  */
319
319
  private _scrollTo;
320
320
  static ɵfac: i0.ɵɵFactoryDeclaration<MatPaginatedTabHeader, [null, null, null, { optional: true; }, null, null, { optional: true; }]>;
321
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatPaginatedTabHeader, never, never, { "disablePagination": { "alias": "disablePagination"; "required": false; }; }, {}, never, never, false, never>;
321
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatPaginatedTabHeader, never, never, { "disablePagination": { "alias": "disablePagination"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; }, { "selectFocusedIndex": "selectFocusedIndex"; "indexFocused": "indexFocused"; }, never, never, false, never>;
322
322
  static ngAcceptInputType_disablePagination: unknown;
323
+ static ngAcceptInputType_selectedIndex: unknown;
323
324
  }
324
325
 
325
326
  /** Item inside a paginated tab header. */
@@ -580,7 +581,11 @@ export declare class MatTabGroup implements AfterContentInit, AfterContentChecke
580
581
  * like iframes and videos from reloading next time it comes back into the view.
581
582
  */
582
583
  preserveContent: boolean;
583
- /** Background color of the tab group. */
584
+ /**
585
+ * Background color of the tab group.
586
+ * @deprecated The background color should be customized through Sass theming APIs.
587
+ * @breaking-change 20.0.0 Remove this input
588
+ */
584
589
  get backgroundColor(): ThemePalette;
585
590
  set backgroundColor(value: ThemePalette);
586
591
  private _backgroundColor;
@@ -593,6 +598,8 @@ export declare class MatTabGroup implements AfterContentInit, AfterContentChecke
593
598
  /** Event emitted when the tab selection has changed. */
594
599
  readonly selectedTabChange: EventEmitter<MatTabChangeEvent>;
595
600
  private _groupId;
601
+ /** Whether the tab group is rendered on the server. */
602
+ protected _isServer: boolean;
596
603
  constructor(_elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, defaultConfig?: MatTabsConfig, _animationMode?: string | undefined);
597
604
  /**
598
605
  * After the content is checked, this component knows what tabs have been defined
@@ -649,7 +656,7 @@ export declare class MatTabGroup implements AfterContentInit, AfterContentChecke
649
656
  /** Callback for when the focused state of a tab has changed. */
650
657
  _tabFocusChanged(focusOrigin: FocusOrigin, index: number): void;
651
658
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTabGroup, [null, null, { optional: true; }, { optional: true; }]>;
652
- static ɵcmp: i0.ɵɵComponentDeclaration<MatTabGroup, "mat-tab-group", ["matTabGroup"], { "color": { "alias": "color"; "required": false; }; "fitInkBarToContent": { "alias": "fitInkBarToContent"; "required": false; }; "stretchTabs": { "alias": "mat-stretch-tabs"; "required": false; }; "dynamicHeight": { "alias": "dynamicHeight"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "contentTabIndex": { "alias": "contentTabIndex"; "required": false; }; "disablePagination": { "alias": "disablePagination"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "preserveContent": { "alias": "preserveContent"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "focusChange": "focusChange"; "animationDone": "animationDone"; "selectedTabChange": "selectedTabChange"; }, ["_allTabs"], never, true, never>;
659
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatTabGroup, "mat-tab-group", ["matTabGroup"], { "color": { "alias": "color"; "required": false; }; "fitInkBarToContent": { "alias": "fitInkBarToContent"; "required": false; }; "stretchTabs": { "alias": "mat-stretch-tabs"; "required": false; }; "dynamicHeight": { "alias": "dynamicHeight"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "headerPosition": { "alias": "headerPosition"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "contentTabIndex": { "alias": "contentTabIndex"; "required": false; }; "disablePagination": { "alias": "disablePagination"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "preserveContent": { "alias": "preserveContent"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "focusChange": "focusChange"; "animationDone": "animationDone"; "selectedTabChange": "selectedTabChange"; }, ["_allTabs"], ["*"], true, never>;
653
660
  static ngAcceptInputType_fitInkBarToContent: unknown;
654
661
  static ngAcceptInputType_stretchTabs: unknown;
655
662
  static ngAcceptInputType_dynamicHeight: unknown;
@@ -688,7 +695,7 @@ export declare class MatTabHeader extends MatPaginatedTabHeader implements After
688
695
  ngAfterContentInit(): void;
689
696
  protected _itemSelected(event: KeyboardEvent): void;
690
697
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTabHeader, [null, null, null, { optional: true; }, null, null, { optional: true; }]>;
691
- static ɵcmp: i0.ɵɵComponentDeclaration<MatTabHeader, "mat-tab-header", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; }, { "selectFocusedIndex": "selectFocusedIndex"; "indexFocused": "indexFocused"; }, ["_items"], ["*"], true, never>;
698
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatTabHeader, "mat-tab-header", never, { "disableRipple": { "alias": "disableRipple"; "required": false; }; }, {}, ["_items"], ["*"], true, never>;
692
699
  static ngAcceptInputType_disableRipple: unknown;
693
700
  }
694
701
 
@@ -774,7 +781,7 @@ export declare class MatTabLink extends _MatTabLinkMixinBase implements AfterVie
774
781
  _getRole(): string | null;
775
782
  _getTabIndex(): number;
776
783
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTabLink, [null, null, { optional: true; }, { attribute: "tabindex"; }, null, { optional: true; }]>;
777
- static ɵcmp: i0.ɵɵComponentDeclaration<MatTabLink, "[mat-tab-link], [matTabLink]", ["matTabLink"], { "active": { "alias": "active"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, ["*"], true, never>;
784
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatTabLink, "[mat-tab-link], [matTabLink]", ["matTabLink"], { "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, {}, never, ["*"], true, never>;
778
785
  static ngAcceptInputType_active: unknown;
779
786
  static ngAcceptInputType_disabled: unknown;
780
787
  static ngAcceptInputType_disableRipple: unknown;
@@ -1,118 +0,0 @@
1
- @use 'sass:map';
2
- @use 'sass:math';
3
- @use '@material/density' as mdc-density;
4
- @use '@material/textfield' as mdc-textfield;
5
- @use '../core/theming/inspection';
6
-
7
- @use './form-field-sizing';
8
-
9
- // Mixin that sets the vertical spacing for the infix container of filled form fields.
10
- // We need to apply spacing to the infix container because we removed the input padding
11
- // provided by MDC in order to support arbitrary form-field controls.
12
- @mixin _infix-vertical-spacing-filled($with-label-padding, $no-label-padding) {
13
- .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix {
14
- padding-top: map.get($with-label-padding, top);
15
- padding-bottom: map.get($with-label-padding, bottom);
16
- }
17
-
18
- .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea)
19
- .mat-mdc-form-field-infix {
20
- padding-top: map.get($no-label-padding, top);
21
- padding-bottom: map.get($no-label-padding, bottom);
22
- }
23
- }
24
-
25
- // Mixin that sets the vertical spacing for the infix container of outlined form fields.
26
- // We need to apply spacing to the infix container because we removed the input padding
27
- // provided by MDC in order to support arbitrary form-field controls.
28
- @mixin _infix-vertical-spacing-outlined($padding) {
29
- .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix {
30
- padding-top: map.get($padding, top);
31
- padding-bottom: map.get($padding, bottom);
32
- }
33
- }
34
-
35
- // Mixin that includes the density styles for form fields. MDC provides their own density
36
- // styles for MDC text-field which we cannot use. MDC relies on input elements to stretch
37
- // vertically when the height is reduced as per density scale. This doesn't work for our
38
- // form field since we support custom form field controls without a fixed height. Instead, we
39
- // provide spacing that makes arbitrary controls align as specified in the Material Design
40
- // specification. In order to support density, we need to adjust the vertical spacing to be
41
- // based on the density scale.
42
- @mixin private-form-field-density($theme) {
43
- // Height of the form field that is based on the current density scale.
44
- $height: mdc-density.prop-value(
45
- $density-config: mdc-textfield.$density-config,
46
- $density-scale: inspection.get-theme-density($theme),
47
- $property-name: height,
48
- );
49
-
50
- // Whether floating labels for filled form fields should be hidden. MDC hides the label in
51
- // their density styles when the height decreases too much. We match their density styles.
52
- $hide-filled-floating-label: $height < mdc-textfield.$minimum-height-for-filled-label;
53
- // We computed the desired height of the form-field using the density configuration. The
54
- // spec only describes vertical spacing/alignment in non-dense mode. This means that we
55
- // cannot update the spacing to explicit numbers based on the density scale. Instead, we
56
- // determine the height reduction and equally subtract it from the default `top` and `bottom`
57
- // padding that is provided by the Material Design specification.
58
- $vertical-deduction: math.div(mdc-textfield.$height - $height, 2);
59
- // Map that describes the padding for form-fields with label.
60
- $with-label-padding: (
61
- top: form-field-sizing.$mat-form-field-with-label-input-padding-top - $vertical-deduction,
62
- bottom: form-field-sizing.$mat-form-field-with-label-input-padding-bottom - $vertical-deduction,
63
- );
64
- // Map that describes the padding for form-fields without label.
65
- $no-label-padding: (
66
- top: form-field-sizing.$mat-form-field-no-label-padding-top - $vertical-deduction,
67
- bottom: form-field-sizing.$mat-form-field-no-label-padding-bottom - $vertical-deduction,
68
- );
69
-
70
- // We add a minimum height to the infix container in order to ensure that custom controls have
71
- // the same default vertical space as text-field inputs (with respect to the vertical padding).
72
- .mat-mdc-form-field-infix {
73
- min-height: $height;
74
- }
75
-
76
- // By default, MDC aligns the label using percentage. This will be overwritten based
77
- // on whether a textarea is used. This is not possible in our implementation of the
78
- // form-field because we do not know what type of form-field control is set up. Hence
79
- // we always use a fixed position for the label. This does not have any implications.
80
- .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label {
81
- top: math.div($height, 2);
82
- }
83
-
84
- // For the outline appearance, we re-create the active floating label transform. This is
85
- // necessary because the transform for docked floating labels can be updated to account for
86
- // the width of prefix container.
87
- .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded
88
- .mdc-floating-label--float-above {
89
- --mat-mdc-form-field-label-transform: translateY(
90
- -#{mdc-textfield.get-outlined-label-position-y($height)})
91
- scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));
92
- transform: var(--mat-mdc-form-field-label-transform);
93
- }
94
-
95
- // Add vertical spacing to the infix to ensure that outlined form fields have their controls
96
- // aligned as if there is no label. This is done similarly in MDC and is specified in the
97
- // Material Design specification. Outline form fields position the control as if there is no
98
- // label. This is because the label overflows the form-field and doesn't need space at the top.
99
- @include _infix-vertical-spacing-outlined($no-label-padding);
100
-
101
- // MDC hides labels for filled form fields when the form field height decreases. We match
102
- // this behavior in our custom density styles.
103
- @if $hide-filled-floating-label {
104
- // Update the spacing for filled form fields to account for the hidden floating label.
105
- @include _infix-vertical-spacing-filled(
106
- $no-label-padding, $no-label-padding);
107
- .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label {
108
- display: none;
109
- }
110
- }
111
- @else {
112
- // By default, filled form fields align their controls differently based on whether there
113
- // is a label or not. MDC does this too, but we cannot rely on their styles as we support
114
- // arbitrary form field controls and MDC only applies their spacing to the `<input>` elements.
115
- @include _infix-vertical-spacing-filled(
116
- $with-label-padding, $no-label-padding);
117
- }
118
- }
@@ -1,40 +0,0 @@
1
- // Top spacing of the form-field outline. MDC does not have a variable for this
2
- // and just hard-codes it into their styles.
3
- $mat-form-field-outline-top-spacing: 12px;
4
-
5
- // Infix stretches to fit the container, but naturally wants to be this wide. We set
6
- // this in order to have a consistent natural size for the various types of controls
7
- // that can go in a form field.
8
- $mat-form-field-default-infix-width: 180px !default;
9
-
10
- // Minimum amount of space between start and end hints in the subscript. MDC does not
11
- // have built-in support for hints.
12
- $mat-form-field-hint-min-space: 1em !default;
13
-
14
- // Vertical spacing of the text-field if there is no label. MDC hard-codes the spacing
15
- // into their styles, but their spacing variables would not work for our form-field
16
- // structure anyway. This is because MDC's input elements are larger than the text, and
17
- // their padding variables are calculated with respect to the vertical empty space of the
18
- // inputs. We take the explicit numbers provided by the Material Design specification.
19
- // https://material.io/components/text-fields/#specs
20
-
21
- // Vertical spacing of the text-field if there is a label. MDC hard-codes the spacing into
22
- // their styles, but their spacing variables would not work for our form-field structure anyway.
23
- // This is because MDC's alignment depends on the input element to expand to full infix height.
24
- // We allow for arbitrary form controls and support dynamic height, so we manage the control
25
- // infix alignment through padding on the infix that works for any control. We manually measure
26
- // spacing as provided by the Material Design specification. The outlined dimensions in the
27
- // spec section do not match with the text fields shown in the overview or the ones implemented
28
- // by MDC. Note that we need to account for the input box offset. See above for more context.
29
- $mat-form-field-with-label-input-padding-top: 24px;
30
- $mat-form-field-with-label-input-padding-bottom: 8px;
31
-
32
- // Vertical spacing of the text-field if there is no label. We manually measure the
33
- // spacing in the specs. See comment above for padding for text fields with label. The
34
- // same reasoning applies to the padding for text fields without label.
35
- $mat-form-field-no-label-padding-bottom: 16px;
36
- $mat-form-field-no-label-padding-top: 16px;
37
-
38
- // The amount of padding between the icon prefix/suffix and the infix.
39
- // This assumes that the icon will be a 24px square with 12px padding.
40
- $mat-form-field-icon-prefix-infix-padding: 4px;