@angular/material 18.2.0-next.0 → 18.2.0-next.1

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 (286) hide show
  1. package/button/_icon-button-theme.scss +18 -9
  2. package/core/theming/_color-api-backwards-compatibility.scss +2 -0
  3. package/core/tokens/_token-utils.scss +33 -23
  4. package/core/tokens/m2/mat/_form-field.scss +2 -3
  5. package/core/tokens/m2/mat/_optgroup.scss +0 -9
  6. package/core/tokens/m2/mat/_option.scss +0 -9
  7. package/core/tokens/m2/mat/_paginator.scss +1 -2
  8. package/core/tokens/m2/mdc/_circular-progress.scss +2 -2
  9. package/core/tokens/m2/mdc/_slider.scss +3 -6
  10. package/core/tokens/m2/mdc/_switch.scss +12 -8
  11. package/core/tokens/m3/mat/_icon-button.scss +31 -2
  12. package/core/tokens/m3/mdc/_icon-button.scss +21 -2
  13. package/core/tokens/m3/mdc/_slider.scss +9 -2
  14. package/core/tokens/m3/mdc/_switch.scss +13 -2
  15. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  16. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  17. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  18. package/esm2022/autocomplete/module.mjs +5 -5
  19. package/esm2022/badge/badge-module.mjs +5 -5
  20. package/esm2022/badge/badge.mjs +7 -7
  21. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  22. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  23. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  24. package/esm2022/button/button-base.mjs +7 -7
  25. package/esm2022/button/button.mjs +7 -7
  26. package/esm2022/button/fab.mjs +17 -17
  27. package/esm2022/button/icon-button.mjs +7 -7
  28. package/esm2022/button/module.mjs +5 -5
  29. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  30. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  31. package/esm2022/card/card.mjs +43 -43
  32. package/esm2022/card/module.mjs +5 -5
  33. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  34. package/esm2022/checkbox/checkbox.mjs +4 -4
  35. package/esm2022/checkbox/module.mjs +9 -9
  36. package/esm2022/chips/chip-action.mjs +4 -4
  37. package/esm2022/chips/chip-edit-input.mjs +4 -4
  38. package/esm2022/chips/chip-grid.mjs +5 -5
  39. package/esm2022/chips/chip-icons.mjs +10 -10
  40. package/esm2022/chips/chip-input.mjs +4 -4
  41. package/esm2022/chips/chip-listbox.mjs +4 -4
  42. package/esm2022/chips/chip-option.mjs +4 -4
  43. package/esm2022/chips/chip-row.mjs +4 -4
  44. package/esm2022/chips/chip-set.mjs +4 -4
  45. package/esm2022/chips/chip.mjs +4 -4
  46. package/esm2022/chips/module.mjs +5 -5
  47. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  48. package/esm2022/core/datetime/index.mjs +9 -9
  49. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  50. package/esm2022/core/error/error-options.mjs +7 -7
  51. package/esm2022/core/internal-form-field/internal-form-field.mjs +4 -4
  52. package/esm2022/core/line/line.mjs +8 -8
  53. package/esm2022/core/option/index.mjs +5 -5
  54. package/esm2022/core/option/optgroup.mjs +4 -4
  55. package/esm2022/core/option/option.mjs +4 -4
  56. package/esm2022/core/private/ripple-loader.mjs +4 -4
  57. package/esm2022/core/ripple/index.mjs +5 -5
  58. package/esm2022/core/ripple/ripple.mjs +4 -4
  59. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  60. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  61. package/esm2022/core/version.mjs +1 -1
  62. package/esm2022/datepicker/calendar-body.mjs +4 -4
  63. package/esm2022/datepicker/calendar.mjs +7 -7
  64. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  65. package/esm2022/datepicker/date-range-input.mjs +4 -4
  66. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  67. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  68. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  69. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  70. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  71. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  72. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  73. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  74. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  75. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  76. package/esm2022/datepicker/datepicker.mjs +4 -4
  77. package/esm2022/datepicker/month-view.mjs +4 -4
  78. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  79. package/esm2022/datepicker/year-view.mjs +4 -4
  80. package/esm2022/dialog/dialog-container.mjs +4 -4
  81. package/esm2022/dialog/dialog-content-directives.mjs +16 -16
  82. package/esm2022/dialog/dialog.mjs +4 -4
  83. package/esm2022/dialog/module.mjs +5 -5
  84. package/esm2022/divider/divider-module.mjs +5 -5
  85. package/esm2022/divider/divider.mjs +4 -4
  86. package/esm2022/expansion/accordion.mjs +4 -4
  87. package/esm2022/expansion/expansion-module.mjs +5 -5
  88. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  89. package/esm2022/expansion/expansion-panel-header.mjs +11 -11
  90. package/esm2022/expansion/expansion-panel.mjs +7 -7
  91. package/esm2022/form-field/directives/error.mjs +4 -4
  92. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  93. package/esm2022/form-field/directives/hint.mjs +4 -4
  94. package/esm2022/form-field/directives/label.mjs +4 -4
  95. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  96. package/esm2022/form-field/directives/notched-outline.mjs +5 -5
  97. package/esm2022/form-field/directives/prefix.mjs +4 -4
  98. package/esm2022/form-field/directives/suffix.mjs +4 -4
  99. package/esm2022/form-field/form-field-control.mjs +4 -4
  100. package/esm2022/form-field/form-field.mjs +6 -6
  101. package/esm2022/form-field/module.mjs +5 -5
  102. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  103. package/esm2022/grid-list/grid-list.mjs +4 -4
  104. package/esm2022/grid-list/grid-tile.mjs +16 -16
  105. package/esm2022/icon/icon-module.mjs +5 -5
  106. package/esm2022/icon/icon-registry.mjs +4 -4
  107. package/esm2022/icon/icon.mjs +4 -4
  108. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  109. package/esm2022/input/input.mjs +4 -4
  110. package/esm2022/input/module.mjs +5 -5
  111. package/esm2022/list/action-list.mjs +4 -4
  112. package/esm2022/list/list-base.mjs +7 -7
  113. package/esm2022/list/list-item-sections.mjs +19 -19
  114. package/esm2022/list/list-module.mjs +5 -5
  115. package/esm2022/list/list-option.mjs +4 -4
  116. package/esm2022/list/list.mjs +7 -7
  117. package/esm2022/list/nav-list.mjs +4 -4
  118. package/esm2022/list/selection-list.mjs +4 -4
  119. package/esm2022/list/subheader.mjs +4 -4
  120. package/esm2022/menu/menu-content.mjs +4 -4
  121. package/esm2022/menu/menu-item.mjs +4 -4
  122. package/esm2022/menu/menu-trigger.mjs +4 -4
  123. package/esm2022/menu/menu.mjs +4 -4
  124. package/esm2022/menu/module.mjs +5 -5
  125. package/esm2022/paginator/module.mjs +5 -5
  126. package/esm2022/paginator/paginator-intl.mjs +4 -4
  127. package/esm2022/paginator/paginator.mjs +4 -4
  128. package/esm2022/progress-bar/module.mjs +5 -5
  129. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  130. package/esm2022/progress-spinner/module.mjs +5 -5
  131. package/esm2022/progress-spinner/progress-spinner.mjs +5 -5
  132. package/esm2022/radio/module.mjs +5 -5
  133. package/esm2022/radio/radio.mjs +7 -7
  134. package/esm2022/select/module.mjs +5 -5
  135. package/esm2022/select/select.mjs +7 -7
  136. package/esm2022/sidenav/drawer.mjs +10 -10
  137. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  138. package/esm2022/sidenav/sidenav.mjs +10 -10
  139. package/esm2022/slide-toggle/module.mjs +9 -9
  140. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  141. package/esm2022/slide-toggle/slide-toggle.mjs +6 -6
  142. package/esm2022/slider/module.mjs +5 -5
  143. package/esm2022/slider/slider-input.mjs +7 -7
  144. package/esm2022/slider/slider-thumb.mjs +4 -4
  145. package/esm2022/slider/slider.mjs +5 -5
  146. package/esm2022/snack-bar/module.mjs +5 -5
  147. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  148. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  149. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  150. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  151. package/esm2022/sort/sort-header-intl.mjs +4 -4
  152. package/esm2022/sort/sort-header.mjs +4 -4
  153. package/esm2022/sort/sort-module.mjs +5 -5
  154. package/esm2022/sort/sort.mjs +4 -4
  155. package/esm2022/stepper/step-content.mjs +4 -4
  156. package/esm2022/stepper/step-header.mjs +4 -4
  157. package/esm2022/stepper/step-label.mjs +4 -4
  158. package/esm2022/stepper/stepper-button.mjs +7 -7
  159. package/esm2022/stepper/stepper-icon.mjs +4 -4
  160. package/esm2022/stepper/stepper-intl.mjs +4 -4
  161. package/esm2022/stepper/stepper-module.mjs +5 -5
  162. package/esm2022/stepper/stepper.mjs +7 -7
  163. package/esm2022/table/cell.mjs +22 -22
  164. package/esm2022/table/module.mjs +5 -5
  165. package/esm2022/table/row.mjs +22 -22
  166. package/esm2022/table/table.mjs +7 -7
  167. package/esm2022/table/text-column.mjs +4 -4
  168. package/esm2022/tabs/ink-bar.mjs +4 -4
  169. package/esm2022/tabs/module.mjs +5 -5
  170. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  171. package/esm2022/tabs/tab-body.mjs +7 -7
  172. package/esm2022/tabs/tab-content.mjs +4 -4
  173. package/esm2022/tabs/tab-group.mjs +4 -4
  174. package/esm2022/tabs/tab-header.mjs +5 -5
  175. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  176. package/esm2022/tabs/tab-label.mjs +4 -4
  177. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +11 -11
  178. package/esm2022/tabs/tab.mjs +4 -4
  179. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  180. package/esm2022/toolbar/toolbar.mjs +7 -7
  181. package/esm2022/tooltip/module.mjs +5 -5
  182. package/esm2022/tooltip/tooltip.mjs +7 -7
  183. package/esm2022/tree/data-source/flat-data-source.mjs +9 -1
  184. package/esm2022/tree/node.mjs +106 -26
  185. package/esm2022/tree/outlet.mjs +4 -4
  186. package/esm2022/tree/padding.mjs +4 -4
  187. package/esm2022/tree/testing/node-harness.mjs +5 -1
  188. package/esm2022/tree/toggle.mjs +4 -4
  189. package/esm2022/tree/tree-module.mjs +5 -5
  190. package/esm2022/tree/tree.mjs +4 -5
  191. package/fesm2022/autocomplete.mjs +13 -13
  192. package/fesm2022/autocomplete.mjs.map +1 -1
  193. package/fesm2022/badge.mjs +10 -10
  194. package/fesm2022/badge.mjs.map +1 -1
  195. package/fesm2022/bottom-sheet.mjs +10 -10
  196. package/fesm2022/bottom-sheet.mjs.map +1 -1
  197. package/fesm2022/button-toggle.mjs +10 -10
  198. package/fesm2022/button-toggle.mjs.map +1 -1
  199. package/fesm2022/button.mjs +38 -38
  200. package/fesm2022/button.mjs.map +1 -1
  201. package/fesm2022/card.mjs +46 -46
  202. package/fesm2022/card.mjs.map +1 -1
  203. package/fesm2022/checkbox.mjs +14 -14
  204. package/fesm2022/checkbox.mjs.map +1 -1
  205. package/fesm2022/chips.mjs +41 -41
  206. package/fesm2022/chips.mjs.map +1 -1
  207. package/fesm2022/core.mjs +59 -59
  208. package/fesm2022/core.mjs.map +1 -1
  209. package/fesm2022/datepicker.mjs +82 -82
  210. package/fesm2022/datepicker.mjs.map +1 -1
  211. package/fesm2022/dialog.mjs +25 -25
  212. package/fesm2022/dialog.mjs.map +1 -1
  213. package/fesm2022/divider.mjs +7 -7
  214. package/fesm2022/divider.mjs.map +1 -1
  215. package/fesm2022/expansion.mjs +26 -26
  216. package/fesm2022/expansion.mjs.map +1 -1
  217. package/fesm2022/form-field.mjs +37 -37
  218. package/fesm2022/form-field.mjs.map +1 -1
  219. package/fesm2022/grid-list.mjs +22 -22
  220. package/fesm2022/grid-list.mjs.map +1 -1
  221. package/fesm2022/icon/testing.mjs +7 -7
  222. package/fesm2022/icon/testing.mjs.map +1 -1
  223. package/fesm2022/icon.mjs +10 -10
  224. package/fesm2022/icon.mjs.map +1 -1
  225. package/fesm2022/input.mjs +7 -7
  226. package/fesm2022/input.mjs.map +1 -1
  227. package/fesm2022/list.mjs +49 -49
  228. package/fesm2022/list.mjs.map +1 -1
  229. package/fesm2022/menu.mjs +16 -16
  230. package/fesm2022/menu.mjs.map +1 -1
  231. package/fesm2022/paginator.mjs +10 -10
  232. package/fesm2022/paginator.mjs.map +1 -1
  233. package/fesm2022/progress-bar.mjs +7 -7
  234. package/fesm2022/progress-bar.mjs.map +1 -1
  235. package/fesm2022/progress-spinner.mjs +8 -8
  236. package/fesm2022/progress-spinner.mjs.map +1 -1
  237. package/fesm2022/radio.mjs +10 -10
  238. package/fesm2022/radio.mjs.map +1 -1
  239. package/fesm2022/select.mjs +10 -10
  240. package/fesm2022/select.mjs.map +1 -1
  241. package/fesm2022/sidenav.mjs +22 -22
  242. package/fesm2022/sidenav.mjs.map +1 -1
  243. package/fesm2022/slide-toggle.mjs +16 -16
  244. package/fesm2022/slide-toggle.mjs.map +1 -1
  245. package/fesm2022/slider.mjs +17 -17
  246. package/fesm2022/slider.mjs.map +1 -1
  247. package/fesm2022/snack-bar.mjs +22 -22
  248. package/fesm2022/snack-bar.mjs.map +1 -1
  249. package/fesm2022/sort.mjs +13 -13
  250. package/fesm2022/sort.mjs.map +1 -1
  251. package/fesm2022/stepper.mjs +31 -31
  252. package/fesm2022/stepper.mjs.map +1 -1
  253. package/fesm2022/table.mjs +55 -55
  254. package/fesm2022/table.mjs.map +1 -1
  255. package/fesm2022/tabs.mjs +45 -45
  256. package/fesm2022/tabs.mjs.map +1 -1
  257. package/fesm2022/toolbar.mjs +10 -10
  258. package/fesm2022/toolbar.mjs.map +1 -1
  259. package/fesm2022/tooltip.mjs +10 -10
  260. package/fesm2022/tooltip.mjs.map +1 -1
  261. package/fesm2022/tree/testing.mjs +4 -0
  262. package/fesm2022/tree/testing.mjs.map +1 -1
  263. package/fesm2022/tree.mjs +130 -43
  264. package/fesm2022/tree.mjs.map +1 -1
  265. package/form-field/_form-field-subscript.scss +1 -3
  266. package/form-field/_form-field-theme.scss +20 -20
  267. package/form-field/_mdc-text-field-density-overrides.scss +2 -2
  268. package/form-field/_mdc-text-field-structure-overrides.scss +2 -13
  269. package/form-field/_mdc-text-field-structure.scss +610 -0
  270. package/package.json +2 -2
  271. package/prebuilt-themes/azure-blue.css +1 -1
  272. package/prebuilt-themes/cyan-orange.css +1 -1
  273. package/prebuilt-themes/deeppurple-amber.css +1 -1
  274. package/prebuilt-themes/indigo-pink.css +1 -1
  275. package/prebuilt-themes/magenta-violet.css +1 -1
  276. package/prebuilt-themes/pink-bluegrey.css +1 -1
  277. package/prebuilt-themes/purple-green.css +1 -1
  278. package/prebuilt-themes/rose-red.css +1 -1
  279. package/progress-spinner/_progress-spinner-theme.scss +11 -14
  280. package/schematics/ng-add/index.js +1 -1
  281. package/schematics/ng-add/index.mjs +1 -1
  282. package/slide-toggle/_slide-toggle-theme.scss +21 -26
  283. package/slider/_slider-theme.scss +24 -41
  284. package/tabs/_tabs-common.scss +14 -0
  285. package/tree/index.d.ts +60 -11
  286. package/tree/testing/index.d.ts +2 -0
@@ -1,4 +1,3 @@
1
- @use '@material/textfield/variables' as mdc-textfield-variables;
2
1
  @use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field;
3
2
  @use '../core/tokens/token-utils';
4
3
  @use '../core/style/vendor-prefixes';
@@ -101,8 +100,8 @@ $_enable-form-field-will-change-reset: true;
101
100
  [dir='rtl'] {
102
101
  // Undo the above padding removals which only apply in LTR languages.
103
102
  .mat-mdc-text-field-wrapper {
104
- padding-left: mdc-textfield-variables.$padding-horizontal;
105
- padding-right: mdc-textfield-variables.$padding-horizontal;
103
+ padding-left: 16px;
104
+ padding-right: 16px;
106
105
  }
107
106
  // ...and apply the correct padding resets for RTL languages.
108
107
  .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper {
@@ -164,16 +163,6 @@ $_enable-form-field-will-change-reset: true;
164
163
  padding-top: 0;
165
164
  }
166
165
 
167
- // Unset the baseline adjustment styles that are applied to the `.mdc-text-field` before
168
- // pseudo element. We control the vertical alignment of form field controls using infix
169
- // spacing since we support custom form-field controls. Those don't necessarily have an
170
- // explicit height that matches with the Material Design specification. If the height isn't
171
- // explicitly set to a specific value by MDC, the control will not align correctly vertically.
172
- // e.g. No vertical spacing to the bottom-line if the control is too large.
173
- .mat-mdc-text-field-wrapper::before {
174
- content: none;
175
- }
176
-
177
166
  // This fixes an issue where the notch appears to be thicker than the rest of the outline when
178
167
  // zoomed in on Chrome. The border inconsistency seems to be some kind of rendering artifact
179
168
  // that arises from a combination of the fact that the notch contains text, while the leading
@@ -0,0 +1,610 @@
1
+ @use '@angular/cdk';
2
+ @use '../core/style/vendor-prefixes';
3
+ @use '../core/tokens/token-utils';
4
+ @use '../core/tokens/m2/mdc/filled-text-field' as tokens-mdc-filled-text-field;
5
+ @use '../core/tokens/m2/mdc/outlined-text-field' as tokens-mdc-outlined-text-field;
6
+
7
+ // Includes the structural styles for the form field inherited from MDC.
8
+ @mixin private-text-field-structure {
9
+ $filled-slots: (tokens-mdc-filled-text-field.$prefix,
10
+ tokens-mdc-filled-text-field.get-token-slots());
11
+ $outlined-slots: (tokens-mdc-outlined-text-field.$prefix,
12
+ tokens-mdc-outlined-text-field.get-token-slots());
13
+
14
+ .mdc-text-field {
15
+ display: inline-flex;
16
+ align-items: baseline;
17
+ padding: 0 16px;
18
+ position: relative;
19
+ box-sizing: border-box;
20
+ overflow: hidden;
21
+ will-change: opacity, transform, color;
22
+
23
+ // TODO(crisbeto): The filled form field overrides these while the outlined doesn't.
24
+ // The correct thing to do would be to remove them from here and have the one based on the
25
+ // token in the outlined appearance. We keep them as is for now to avoid screenshot diffs.
26
+ border-top-left-radius: 4px;
27
+ border-top-right-radius: 4px;
28
+ border-bottom-right-radius: 0;
29
+ border-bottom-left-radius: 0;
30
+ }
31
+
32
+ .mdc-text-field__input {
33
+ width: 100%;
34
+ min-width: 0;
35
+ border: none;
36
+ border-radius: 0;
37
+ background: none;
38
+ padding: 0;
39
+ -moz-appearance: none;
40
+ -webkit-appearance: none;
41
+
42
+ // TODO(crisbeto): this height gets overwritten eventually, but there are some internal
43
+ // tests that depend on this being here in weird ways so we're keeping it around for now.
44
+ height: 28px;
45
+
46
+ // Note that while this style and the `-ms-clear` are identical, we can't combine
47
+ // them because if one of them isn't supported, it'll invalidate the whole rule.
48
+ &::-webkit-calendar-picker-indicator {
49
+ display: none;
50
+ }
51
+
52
+ &::-ms-clear {
53
+ display: none;
54
+ }
55
+
56
+ &:focus {
57
+ outline: none;
58
+ }
59
+
60
+ &:invalid {
61
+ box-shadow: none;
62
+ }
63
+
64
+ @include vendor-prefixes.input-placeholder {
65
+ opacity: 0;
66
+ }
67
+
68
+ .mdc-text-field--no-label &,
69
+ .mdc-text-field--focused & {
70
+ @include vendor-prefixes.input-placeholder {
71
+ opacity: 1;
72
+ }
73
+ }
74
+
75
+ .mdc-text-field--outlined &,
76
+ .mdc-text-field--filled.mdc-text-field--no-label & {
77
+ height: 100%;
78
+ }
79
+
80
+ .mdc-text-field--outlined & {
81
+ display: flex;
82
+ border: none !important;
83
+ background-color: transparent;
84
+ }
85
+
86
+ .mdc-text-field--disabled & {
87
+ pointer-events: auto;
88
+ }
89
+
90
+ @include token-utils.use-tokens($filled-slots...) {
91
+ @include _input-tokens('.mdc-text-field--filled');
92
+ }
93
+
94
+ @include token-utils.use-tokens($outlined-slots...) {
95
+ @include _input-tokens('.mdc-text-field--outlined');
96
+ }
97
+
98
+ @include cdk.high-contrast(active, off) {
99
+ .mdc-text-field--disabled & {
100
+ background-color: Window;
101
+ }
102
+ }
103
+ }
104
+
105
+ .mdc-text-field--filled {
106
+ height: 56px;
107
+ border-bottom-right-radius: 0;
108
+ border-bottom-left-radius: 0;
109
+
110
+ @include token-utils.use-tokens($filled-slots...) {
111
+ @include token-utils.create-token-slot(border-top-left-radius, container-shape);
112
+ @include token-utils.create-token-slot(border-top-right-radius, container-shape);
113
+
114
+ &:not(.mdc-text-field--disabled) {
115
+ @include token-utils.create-token-slot(background-color, container-color);
116
+ }
117
+
118
+ &.mdc-text-field--disabled {
119
+ @include token-utils.create-token-slot(background-color, disabled-container-color);
120
+ }
121
+ }
122
+ }
123
+
124
+ .mdc-text-field--outlined {
125
+ height: 56px;
126
+ overflow: visible;
127
+ padding-left: 16px;
128
+ padding-right: 16px;
129
+
130
+ @include _supports-max {
131
+ @include token-utils.use-tokens($outlined-slots...) {
132
+ $shape-var: token-utils.get-token-variable(container-shape);
133
+ padding-right: max(16px, var(#{$shape-var}));
134
+ padding-left: max(16px, calc(var(#{$shape-var}) + 4px));
135
+
136
+ [dir='rtl'] & {
137
+ padding-right: max(16px, calc(var(#{$shape-var}) + 4px));
138
+ padding-left: max(16px, var(#{$shape-var}));
139
+ }
140
+ }
141
+ }
142
+ }
143
+
144
+ .mdc-floating-label {
145
+ position: absolute;
146
+ left: 0;
147
+ transform-origin: left top;
148
+ line-height: 1.15rem;
149
+ text-align: left;
150
+ text-overflow: ellipsis;
151
+ white-space: nowrap;
152
+ cursor: text;
153
+ overflow: hidden;
154
+ will-change: transform;
155
+
156
+ [dir='rtl'] & {
157
+ right: 0;
158
+ left: auto;
159
+ transform-origin: right top;
160
+ text-align: right;
161
+ }
162
+
163
+ .mdc-text-field & {
164
+ top: 50%;
165
+ transform: translateY(-50%);
166
+ pointer-events: none;
167
+ }
168
+
169
+ .mdc-notched-outline & {
170
+ display: inline-block;
171
+ position: relative;
172
+ max-width: 100%;
173
+ }
174
+
175
+ .mdc-text-field--outlined & {
176
+ left: 4px;
177
+ right: auto;
178
+ }
179
+
180
+ [dir='rtl'] .mdc-text-field--outlined & {
181
+ left: auto;
182
+ right: 4px;
183
+ }
184
+
185
+ .mdc-text-field--filled & {
186
+ left: 16px;
187
+ right: auto;
188
+ }
189
+
190
+ [dir='rtl'] .mdc-text-field--filled & {
191
+ left: auto;
192
+ right: 16px;
193
+ }
194
+
195
+ .mdc-text-field--disabled & {
196
+ cursor: default;
197
+
198
+ @include cdk.high-contrast(active, off) {
199
+ z-index: 1;
200
+ }
201
+ }
202
+
203
+ .mdc-text-field--filled.mdc-text-field--no-label & {
204
+ display: none;
205
+ }
206
+
207
+ @include token-utils.use-tokens($filled-slots...) {
208
+ @include _floating-label-tokens('.mdc-text-field--filled');
209
+ }
210
+
211
+ @include token-utils.use-tokens($outlined-slots...) {
212
+ @include _floating-label-tokens('.mdc-text-field--outlined');
213
+ }
214
+ }
215
+
216
+ .mdc-floating-label--float-above {
217
+ cursor: auto;
218
+ transform: translateY(-106%) scale(0.75);
219
+
220
+ .mdc-text-field--filled & {
221
+ transform: translateY(-106%) scale(0.75);
222
+ }
223
+
224
+ .mdc-text-field--outlined & {
225
+ transform: translateY(-37.25px) scale(1);
226
+ font-size: 0.75rem;
227
+ }
228
+
229
+ .mdc-notched-outline & {
230
+ text-overflow: clip;
231
+ }
232
+
233
+ .mdc-notched-outline--upgraded & {
234
+ max-width: 133.3333333333%;
235
+ }
236
+
237
+ .mdc-text-field--outlined.mdc-notched-outline--upgraded &,
238
+ .mdc-text-field--outlined .mdc-notched-outline--upgraded & {
239
+ transform: translateY(-34.75px) scale(0.75);
240
+ }
241
+
242
+ .mdc-text-field--outlined.mdc-notched-outline--upgraded &,
243
+ .mdc-text-field--outlined .mdc-notched-outline--upgraded & {
244
+ font-size: 1rem;
245
+ }
246
+ }
247
+
248
+ .mdc-floating-label--required {
249
+ &:not(.mdc-floating-label--hide-required-marker)::after {
250
+ margin-left: 1px;
251
+ margin-right: 0;
252
+ content: '*';
253
+
254
+ [dir='rtl'] & {
255
+ margin-left: 0;
256
+ margin-right: 1px;
257
+ }
258
+ }
259
+ }
260
+
261
+ .mdc-notched-outline {
262
+ display: flex;
263
+ position: absolute;
264
+ top: 0;
265
+ right: 0;
266
+ left: 0;
267
+ box-sizing: border-box;
268
+ width: 100%;
269
+ max-width: 100%;
270
+ height: 100%;
271
+ text-align: left;
272
+ pointer-events: none;
273
+
274
+ [dir='rtl'] & {
275
+ text-align: right;
276
+ }
277
+
278
+ .mdc-text-field--outlined & {
279
+ z-index: 1;
280
+ }
281
+ }
282
+
283
+ .mat-mdc-notch-piece {
284
+ box-sizing: border-box;
285
+ height: 100%;
286
+ pointer-events: none;
287
+ border-top: 1px solid;
288
+ border-bottom: 1px solid;
289
+
290
+ .mdc-text-field--focused & {
291
+ border-width: 2px;
292
+ }
293
+
294
+ @include token-utils.use-tokens($outlined-slots...) {
295
+ // Moved out into variables because the selectors we inherited were too long.
296
+ $enabled-selector: '.mdc-text-field--outlined:not(.mdc-text-field--disabled)';
297
+ $hover-selector: ':not(.mdc-text-field--focused):hover';
298
+
299
+ #{$enabled-selector} & {
300
+ @include token-utils.create-token-slot(border-color, outline-color);
301
+ @include token-utils.create-token-slot(border-width, outline-width);
302
+ }
303
+
304
+ #{$enabled-selector}#{$hover-selector} & {
305
+ @include token-utils.create-token-slot(border-color, hover-outline-color);
306
+ }
307
+
308
+ #{$enabled-selector}.mdc-text-field--focused & {
309
+ @include token-utils.create-token-slot(border-color, focus-outline-color);
310
+ }
311
+
312
+ .mdc-text-field--outlined.mdc-text-field--disabled & {
313
+ @include token-utils.create-token-slot(border-color, disabled-outline-color);
314
+ }
315
+
316
+ #{$enabled-selector}.mdc-text-field--invalid & {
317
+ @include token-utils.create-token-slot(border-color, error-outline-color);
318
+ }
319
+
320
+ #{$enabled-selector}.mdc-text-field--invalid#{$hover-selector} .mdc-notched-outline & {
321
+ @include token-utils.create-token-slot(border-color, error-hover-outline-color);
322
+ }
323
+
324
+ #{$enabled-selector}.mdc-text-field--invalid.mdc-text-field--focused & {
325
+ @include token-utils.create-token-slot(border-color, error-focus-outline-color);
326
+ }
327
+
328
+ #{$enabled-selector}.mdc-text-field--focused .mdc-notched-outline & {
329
+ @include token-utils.create-token-slot(border-width, focus-outline-width);
330
+ }
331
+ }
332
+ }
333
+
334
+ .mdc-notched-outline__leading {
335
+ border-left: 1px solid;
336
+ border-right: none;
337
+ border-top-right-radius: 0;
338
+ border-bottom-right-radius: 0;
339
+ width: 12px;
340
+
341
+ @include token-utils.use-tokens($outlined-slots...) {
342
+ @include token-utils.create-token-slot(border-top-left-radius, container-shape);
343
+ @include token-utils.create-token-slot(border-bottom-left-radius, container-shape);
344
+
345
+ @include _supports-max {
346
+ .mdc-text-field--outlined .mdc-notched-outline & {
347
+ $shape-var: token-utils.get-token-variable(container-shape);
348
+ width: max(12px, var(#{$shape-var}));
349
+ }
350
+ }
351
+ }
352
+
353
+ [dir='rtl'] & {
354
+ border-left: none;
355
+ border-right: 1px solid;
356
+ border-bottom-left-radius: 0;
357
+ border-top-left-radius: 0;
358
+
359
+ @include token-utils.use-tokens($outlined-slots...) {
360
+ @include token-utils.create-token-slot(border-top-right-radius, container-shape);
361
+ @include token-utils.create-token-slot(border-bottom-right-radius, container-shape);
362
+ }
363
+ }
364
+ }
365
+
366
+ .mdc-notched-outline__trailing {
367
+ flex-grow: 1;
368
+ border-left: none;
369
+ border-right: 1px solid;
370
+ border-top-left-radius: 0;
371
+ border-bottom-left-radius: 0;
372
+
373
+ @include token-utils.use-tokens($outlined-slots...) {
374
+ @include token-utils.create-token-slot(border-top-right-radius, container-shape);
375
+ @include token-utils.create-token-slot(border-bottom-right-radius, container-shape);
376
+ }
377
+
378
+ [dir='rtl'] & {
379
+ border-left: 1px solid;
380
+ border-right: none;
381
+ border-top-right-radius: 0;
382
+ border-bottom-right-radius: 0;
383
+
384
+ @include token-utils.use-tokens($outlined-slots...) {
385
+ @include token-utils.create-token-slot(border-top-left-radius, container-shape);
386
+ @include token-utils.create-token-slot(border-bottom-left-radius, container-shape);
387
+ }
388
+ }
389
+ }
390
+
391
+ .mdc-notched-outline__notch {
392
+ flex: 0 0 auto;
393
+ width: auto;
394
+ max-width: calc(100% - 24px);
395
+
396
+ @include token-utils.use-tokens($outlined-slots...) {
397
+ @include _supports-max {
398
+ .mdc-text-field--outlined .mdc-notched-outline & {
399
+ $shape-var: token-utils.get-token-variable(container-shape);
400
+ max-width: calc(100% - max(12px, var(#{$shape-var})) * 2);
401
+ }
402
+ }
403
+ }
404
+
405
+ .mdc-text-field--outlined .mdc-notched-outline--notched & {
406
+ padding-top: 1px;
407
+ }
408
+
409
+ .mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched & {
410
+ padding-top: 2px;
411
+ }
412
+
413
+ .mdc-notched-outline--notched & {
414
+ padding-left: 0;
415
+ padding-right: 8px;
416
+ border-top: none;
417
+ }
418
+
419
+ [dir='rtl'] .mdc-notched-outline--notched & {
420
+ padding-left: 8px;
421
+ padding-right: 0;
422
+ }
423
+
424
+ .mdc-notched-outline--no-label & {
425
+ display: none;
426
+ }
427
+ }
428
+
429
+ .mdc-line-ripple {
430
+ &::before, &::after {
431
+ position: absolute;
432
+ bottom: 0;
433
+ left: 0;
434
+ width: 100%;
435
+ border-bottom-style: solid;
436
+ content: '';
437
+ }
438
+
439
+ &::before {
440
+ z-index: 1;
441
+
442
+ @include token-utils.use-tokens($filled-slots...) {
443
+ $enabled-field: '.mdc-text-field--filled:not(.mdc-text-field--disabled)';
444
+
445
+ @include token-utils.create-token-slot(border-bottom-width, active-indicator-height);
446
+
447
+ #{$enabled-field} & {
448
+ @include token-utils.create-token-slot(border-bottom-color, active-indicator-color);
449
+ }
450
+
451
+ #{$enabled-field}:not(.mdc-text-field--focused):hover & {
452
+ @include token-utils.create-token-slot(border-bottom-color, hover-active-indicator-color);
453
+ }
454
+
455
+ .mdc-text-field--filled.mdc-text-field--disabled & {
456
+ @include token-utils.create-token-slot(border-bottom-color,
457
+ disabled-active-indicator-color);
458
+ }
459
+
460
+ #{$enabled-field}.mdc-text-field--invalid & {
461
+ @include token-utils.create-token-slot(border-bottom-color, error-active-indicator-color);
462
+ }
463
+
464
+ #{$enabled-field}.mdc-text-field--invalid:not(.mdc-text-field--focused):hover & {
465
+ @include token-utils.create-token-slot(border-bottom-color,
466
+ error-hover-active-indicator-color);
467
+ }
468
+ }
469
+ }
470
+
471
+ &::after {
472
+ transform: scaleX(0);
473
+ opacity: 0;
474
+ z-index: 2;
475
+
476
+ @include token-utils.use-tokens($filled-slots...) {
477
+ .mdc-text-field--filled & {
478
+ @include token-utils.create-token-slot(border-bottom-width,
479
+ focus-active-indicator-height);
480
+ }
481
+
482
+ .mdc-text-field--filled:not(.mdc-text-field--disabled) & {
483
+ @include token-utils.create-token-slot(border-bottom-color, focus-active-indicator-color);
484
+ }
485
+
486
+ .mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) & {
487
+ @include token-utils.create-token-slot(border-bottom-color,
488
+ error-focus-active-indicator-color);
489
+ }
490
+ }
491
+ }
492
+ }
493
+
494
+ .mdc-line-ripple--active::after {
495
+ transform: scaleX(1);
496
+ opacity: 1;
497
+ }
498
+
499
+ .mdc-line-ripple--deactivating::after {
500
+ opacity: 0;
501
+ }
502
+
503
+ .mdc-text-field--disabled {
504
+ pointer-events: none;
505
+ }
506
+ }
507
+
508
+ // Includes the tokens for the floating label for a specific form field variant.
509
+ @mixin _floating-label-tokens($selector) {
510
+ $enabled-field: '#{$selector}:not(.mdc-text-field--disabled)';
511
+
512
+ #{$enabled-field} & {
513
+ @include token-utils.create-token-slot(color, label-text-color);
514
+ }
515
+
516
+ #{$enabled-field}.mdc-text-field--focused & {
517
+ @include token-utils.create-token-slot(color, focus-label-text-color);
518
+ }
519
+
520
+ #{$enabled-field}:not(.mdc-text-field--focused):hover & {
521
+ @include token-utils.create-token-slot(color, hover-label-text-color);
522
+ }
523
+
524
+ #{$selector}.mdc-text-field--disabled & {
525
+ @include token-utils.create-token-slot(color, disabled-label-text-color);
526
+ }
527
+
528
+ #{$enabled-field}.mdc-text-field--invalid & {
529
+ @include token-utils.create-token-slot(color, error-label-text-color);
530
+ }
531
+
532
+ #{$enabled-field}.mdc-text-field--invalid.mdc-text-field--focused & {
533
+ @include token-utils.create-token-slot(color, error-focus-label-text-color);
534
+ }
535
+
536
+ #{$enabled-field}.mdc-text-field--invalid:not(.mdc-text-field--disabled):hover & {
537
+ @include token-utils.create-token-slot(color, error-hover-label-text-color);
538
+ }
539
+
540
+ #{$selector} & {
541
+ @include token-utils.create-token-slot(font-family, label-text-font);
542
+ @include token-utils.create-token-slot(font-size, label-text-size);
543
+ @include token-utils.create-token-slot(font-weight, label-text-weight);
544
+ @include token-utils.create-token-slot(letter-spacing, label-text-tracking);
545
+ }
546
+ }
547
+
548
+ // Includes the tokens for the input for a specific form field variant.
549
+ @mixin _input-tokens($selector) {
550
+ #{$selector}:not(.mdc-text-field--disabled) & {
551
+ @include token-utils.create-token-slot(color, input-text-color);
552
+ @include token-utils.create-token-slot(caret-color, caret-color);
553
+
554
+ @include vendor-prefixes.input-placeholder {
555
+ @include token-utils.create-token-slot(color, input-text-placeholder-color);
556
+ }
557
+ }
558
+
559
+ #{$selector}.mdc-text-field--invalid:not(.mdc-text-field--disabled) & {
560
+ @include token-utils.create-token-slot(caret-color, error-caret-color);
561
+ }
562
+
563
+ #{$selector}.mdc-text-field--disabled & {
564
+ @include token-utils.create-token-slot(color, disabled-input-text-color);
565
+ }
566
+ }
567
+
568
+ // Wraps the content in a `@supports` query targeting the `max` CSS function.
569
+ @mixin _supports-max {
570
+ // stylelint-disable material/no-prefixes
571
+ @supports (top: max(0%)) {
572
+ @content;
573
+ }
574
+ // stylelint-enable
575
+ }
576
+
577
+ // Includes the animation styles for the form field inherited from MDC.
578
+ @mixin private-text-field-animations {
579
+ $timing-curve: cubic-bezier(0.4, 0, 0.2, 1);
580
+
581
+ .mdc-floating-label {
582
+ transition: transform 150ms $timing-curve, color 150ms $timing-curve;
583
+ }
584
+
585
+ .mdc-text-field__input {
586
+ transition: opacity 150ms $timing-curve;
587
+
588
+ @include vendor-prefixes.input-placeholder {
589
+ transition: opacity 67ms $timing-curve;
590
+ }
591
+ }
592
+
593
+ &.mdc-text-field--no-label,
594
+ &.mdc-text-field--focused {
595
+ .mdc-text-field__input {
596
+ @include vendor-prefixes.input-placeholder {
597
+ transition-delay: 40ms;
598
+ transition-duration: 110ms;
599
+ }
600
+ }
601
+ }
602
+
603
+ .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before {
604
+ transition-duration: 75ms;
605
+ }
606
+
607
+ .mdc-line-ripple::after {
608
+ transition: transform 180ms $timing-curve, opacity 180ms $timing-curve;
609
+ }
610
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/material",
3
- "version": "18.2.0-next.0",
3
+ "version": "18.2.0-next.1",
4
4
  "description": "Angular Material",
5
5
  "repository": {
6
6
  "type": "git",
@@ -490,7 +490,7 @@
490
490
  },
491
491
  "peerDependencies": {
492
492
  "@angular/animations": "^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0",
493
- "@angular/cdk": "18.2.0-next.0",
493
+ "@angular/cdk": "18.2.0-next.1",
494
494
  "@angular/core": "^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0",
495
495
  "@angular/common": "^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0",
496
496
  "@angular/forms": "^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0",