@angular/material 21.0.0-next.3 → 21.0.0-next.4

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 (104) hide show
  1. package/core/tokens/_classes.scss +115 -134
  2. package/fesm2022/animation.mjs.map +1 -1
  3. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  4. package/fesm2022/autocomplete.mjs.map +1 -1
  5. package/fesm2022/badge/testing.mjs.map +1 -1
  6. package/fesm2022/badge.mjs.map +1 -1
  7. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  8. package/fesm2022/bottom-sheet.mjs.map +1 -1
  9. package/fesm2022/button/testing.mjs.map +1 -1
  10. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  11. package/fesm2022/button-toggle.mjs.map +1 -1
  12. package/fesm2022/button.mjs +6 -6
  13. package/fesm2022/button.mjs.map +1 -1
  14. package/fesm2022/card/testing.mjs.map +1 -1
  15. package/fesm2022/card.mjs.map +1 -1
  16. package/fesm2022/checkbox/testing.mjs.map +1 -1
  17. package/fesm2022/checkbox.mjs.map +1 -1
  18. package/fesm2022/chips/testing.mjs.map +1 -1
  19. package/fesm2022/chips.mjs.map +1 -1
  20. package/fesm2022/core/testing.mjs.map +1 -1
  21. package/fesm2022/core.mjs +1 -1
  22. package/fesm2022/core.mjs.map +1 -1
  23. package/fesm2022/date-formats.mjs.map +1 -1
  24. package/fesm2022/date-range-input-harness.mjs.map +1 -1
  25. package/fesm2022/datepicker/testing.mjs.map +1 -1
  26. package/fesm2022/datepicker.mjs.map +1 -1
  27. package/fesm2022/dialog/testing.mjs.map +1 -1
  28. package/fesm2022/dialog.mjs.map +1 -1
  29. package/fesm2022/divider/testing.mjs.map +1 -1
  30. package/fesm2022/divider.mjs.map +1 -1
  31. package/fesm2022/error-options.mjs.map +1 -1
  32. package/fesm2022/error-state.mjs.map +1 -1
  33. package/fesm2022/expansion/testing.mjs.map +1 -1
  34. package/fesm2022/expansion.mjs.map +1 -1
  35. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  36. package/fesm2022/form-field/testing.mjs.map +1 -1
  37. package/fesm2022/form-field.mjs.map +1 -1
  38. package/fesm2022/form-field2.mjs.map +1 -1
  39. package/fesm2022/grid-list/testing.mjs.map +1 -1
  40. package/fesm2022/grid-list.mjs.map +1 -1
  41. package/fesm2022/icon/testing.mjs.map +1 -1
  42. package/fesm2022/icon-button.mjs.map +1 -1
  43. package/fesm2022/icon-registry.mjs.map +1 -1
  44. package/fesm2022/icon.mjs.map +1 -1
  45. package/fesm2022/input/testing.mjs.map +1 -1
  46. package/fesm2022/input-harness.mjs.map +1 -1
  47. package/fesm2022/input-value-accessor.mjs.map +1 -1
  48. package/fesm2022/input.mjs.map +1 -1
  49. package/fesm2022/internal-form-field.mjs.map +1 -1
  50. package/fesm2022/line.mjs.map +1 -1
  51. package/fesm2022/list/testing.mjs.map +1 -1
  52. package/fesm2022/list.mjs.map +1 -1
  53. package/fesm2022/material.mjs.map +1 -1
  54. package/fesm2022/menu/testing.mjs.map +1 -1
  55. package/fesm2022/menu.mjs.map +1 -1
  56. package/fesm2022/option-harness.mjs.map +1 -1
  57. package/fesm2022/option-module.mjs.map +1 -1
  58. package/fesm2022/option.mjs.map +1 -1
  59. package/fesm2022/paginator/testing.mjs.map +1 -1
  60. package/fesm2022/paginator.mjs.map +1 -1
  61. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  62. package/fesm2022/progress-bar.mjs.map +1 -1
  63. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  64. package/fesm2022/progress-spinner.mjs.map +1 -1
  65. package/fesm2022/pseudo-checkbox-module.mjs.map +1 -1
  66. package/fesm2022/pseudo-checkbox.mjs.map +1 -1
  67. package/fesm2022/public-api.mjs.map +1 -1
  68. package/fesm2022/radio/testing.mjs.map +1 -1
  69. package/fesm2022/radio.mjs.map +1 -1
  70. package/fesm2022/ripple-loader.mjs.map +1 -1
  71. package/fesm2022/ripple-module.mjs.map +1 -1
  72. package/fesm2022/ripple.mjs.map +1 -1
  73. package/fesm2022/select/testing.mjs.map +1 -1
  74. package/fesm2022/select.mjs.map +1 -1
  75. package/fesm2022/sidenav/testing.mjs.map +1 -1
  76. package/fesm2022/sidenav.mjs.map +1 -1
  77. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  78. package/fesm2022/slide-toggle.mjs.map +1 -1
  79. package/fesm2022/slider/testing.mjs.map +1 -1
  80. package/fesm2022/slider.mjs.map +1 -1
  81. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  82. package/fesm2022/snack-bar.mjs.map +1 -1
  83. package/fesm2022/sort/testing.mjs.map +1 -1
  84. package/fesm2022/sort.mjs.map +1 -1
  85. package/fesm2022/stepper/testing.mjs.map +1 -1
  86. package/fesm2022/stepper.mjs.map +1 -1
  87. package/fesm2022/structural-styles.mjs.map +1 -1
  88. package/fesm2022/table/testing.mjs.map +1 -1
  89. package/fesm2022/table.mjs.map +1 -1
  90. package/fesm2022/tabs/testing.mjs.map +1 -1
  91. package/fesm2022/tabs.mjs +11 -3
  92. package/fesm2022/tabs.mjs.map +1 -1
  93. package/fesm2022/timepicker/testing.mjs.map +1 -1
  94. package/fesm2022/timepicker.mjs.map +1 -1
  95. package/fesm2022/toolbar/testing.mjs.map +1 -1
  96. package/fesm2022/toolbar.mjs.map +1 -1
  97. package/fesm2022/tooltip/testing.mjs.map +1 -1
  98. package/fesm2022/tooltip.mjs.map +1 -1
  99. package/fesm2022/tooltip2.mjs.map +1 -1
  100. package/fesm2022/tree/testing.mjs.map +1 -1
  101. package/fesm2022/tree.mjs.map +1 -1
  102. package/package.json +2 -2
  103. package/schematics/ng-add/index.js +1 -1
  104. package/tabs/index.d.ts +1 -0
@@ -3,134 +3,109 @@
3
3
  @mixin system-classes() {
4
4
 
5
5
  // ***********************************************************************************************
6
- // Background - Apply background color and a contrastful corresponding text color
7
- // See https://m3.material.io/styles/color/roles for guidance.
6
+ // Background - Applies background colors defined by Material Design.
7
+ // See https://m3.material.io/styles/color/roles for detailed guidance.
8
8
  // ***********************************************************************************************
9
9
 
10
- // Styles an element with a primary color background and applies an accessible contrasting
11
- // color for text and icons. Use for key components across the UI, such as buttons that
12
- // have greater importance on the page. In Angular Material, this is used for the selected
13
- // date in a datepicker, the handle of a slider, and the background of a checkbox.
10
+ // Styles an element with a primary color background. Use for key components across the UI, such
11
+ // as buttons that have greater importance on the page. In Angular Material, this is used for the
12
+ // selected date in a datepicker, the handle of a slider, and the background of a checkbox.
14
13
  .mat-bg-primary {
15
14
  background-color: var(--mat-sys-primary);
16
- color: var(--mat-sys-on-primary);
17
15
  }
18
16
 
19
- // Styles an element with a primary container color background and applies an accessible
20
- // contrasting color for text and icons. Use for filling components that should stand out
21
- // on a surface. In Angular Material, this is used for
22
- // the container of a floating action button.
17
+ // Styles an element with a primary container color background. Use for filling components that
18
+ // should stand out on a surface. In Angular Material, this is used for the container of a
19
+ // floating action button.
23
20
  .mat-bg-primary-container {
24
21
  background-color: var(--mat-sys-primary-container);
25
- color: var(--mat-sys-on-primary-container);
26
22
  }
27
23
 
28
- // Styles an element with a secondary color background and applies an accessible contrasting
29
- // color for text and icons. Use for less prominent components in the UI that have a different
30
- // color scheme than the primary.
24
+ // Styles an element with a secondary color background. Use for less prominent components in the
25
+ // UI that have a different color scheme than the primary.
31
26
  .mat-bg-secondary {
32
27
  background-color: var(--mat-sys-secondary);
33
- color: var(--mat-sys-on-secondary);
34
28
  }
35
29
 
36
- // Styles an element with a secondary container color background and applies an accessible
37
- // contrasting color for text and icons. Use for components that need less emphasis than
38
- // secondary, such as filter chips. In Angular Material, this is used for selected items
39
- // in a list and the container of a tonal button.
30
+ // Styles an element with a secondary container color background. Use for components that need
31
+ // less emphasis than secondary, such as filter chips. In Angular Material, this is used for
32
+ // selected items in a list and the container of a tonal button.
40
33
  .mat-bg-secondary-container {
41
34
  background-color: var(--mat-sys-secondary-container);
42
- color: var(--mat-sys-on-secondary-container);
43
35
  }
44
36
 
45
- // Styles an element with an error color background and applies an accessible contrasting
46
- // color for text and icons. Use for indicating an error state, such as an invalid text field, or
47
- // for the background of an important notification. In Angular Material, this is used for the
48
- // background of a badge.
37
+ // Styles an element with an error color background. Use for indicating an error state, such as
38
+ // an invalid text field, or for the background of an important notification. In Angular
39
+ // Material, this is used for the background of a badge.
49
40
  .mat-bg-error {
50
41
  background-color: var(--mat-sys-error);
51
- color: var(--mat-sys-on-error);
52
42
  }
53
43
 
54
- // Styles an element with an error container color background and applies an accessible
55
- // contrasting color for text and icons. Use for components that need less emphasis than
56
- // error, such as a container for error text.
44
+ // Styles an element with an error container color background. Use for components that need less
45
+ // emphasis than error, such as a container for error text.
57
46
  .mat-bg-error-container {
58
47
  background-color: var(--mat-sys-error-container);
59
- color: var(--mat-sys-on-error-container);
60
48
  }
61
49
 
62
- // Styles an element with a surface color background and applies an accessible contrasting
63
- // color for text and icons. Use for general surfaces of components. In Angular Material, this is
64
- // used for the background of many components, like tables, dialogs, menus, and toolbars.
50
+ // Styles an element with a surface color background. Use for general surfaces of components. In
51
+ // Angular Material, this is used for the background of many components, like tables, dialogs,
52
+ // menus, and toolbars.
65
53
  .mat-bg-surface {
66
54
  background-color: var(--mat-sys-surface);
67
- color: var(--mat-sys-on-surface);
68
55
  }
69
56
 
70
- // Styles an element with a surface variant color background and applies an accessible
71
- // contrasting color for text and icons. Use for surfaces that need to stand out from the
72
- // main surface color. In Angular Material, this is used for the background of a filled
73
- // form field and the track of a progress bar.
57
+ // Styles an element with a surface variant color background. Use for surfaces that need to stand
58
+ // out from the main surface color. In Angular Material, this is used for the background of a
59
+ // filled form field and the track of a progress bar.
74
60
  .mat-bg-surface-variant {
75
61
  background-color: var(--mat-sys-surface-variant);
76
- color: var(--mat-sys-on-surface-variant);
77
62
  }
78
63
 
79
- // Styles an element with the "highest" surface container color background and applies an
80
- // accessible contrasting color for text and icons. Use for surfaces that need the most
81
- // emphasis against the main surface color. In Angular Material, this is used for the
82
- // background of a filled card.
64
+ // Styles an element with the "highest" surface container color background. Use for surfaces that
65
+ // need the most emphasis against the main surface color. In Angular Material, this is used for
66
+ // the background of a filled card.
83
67
  .mat-bg-surface-container-highest {
84
68
  background-color: var(--mat-sys-surface-container-highest);
85
- color: var(--mat-sys-on-surface);
86
69
  }
87
70
 
88
- // Styles an element with a "high" surface container color background and applies an accessible
89
- // contrasting color for text and icons. Use for surfaces that need more emphasis against
90
- // the main surface color. In Angular Material, this is used for the background of a datepicker.
71
+ // Styles an element with a "high" surface container color background. Use for surfaces that need
72
+ // more emphasis against the main surface color. In Angular Material, this is used for the
73
+ // background of a datepicker.
91
74
  .mat-bg-surface-container-high {
92
75
  background-color: var(--mat-sys-surface-container-high);
93
- color: var(--mat-sys-on-surface);
94
76
  }
95
77
 
96
- // Styles an element with a surface container color background and applies an accessible
97
- // contrasting color for text and icons. Use for surfaces that need to stand out from the
98
- // main surface color. In Angular Material, this is used for the background of a menu.
78
+ // Styles an element with a surface container color background. Use for surfaces that need to
79
+ // stand out from the main surface color. In Angular Material, this is used for the background
80
+ // of a menu.
99
81
  .mat-bg-surface-container {
100
82
  background-color: var(--mat-sys-surface-container);
101
- color: var(--mat-sys-on-surface);
102
83
  }
103
84
 
104
- // Styles an element with a "low" surface container color background and applies an accessible
105
- // contrasting color for text and icons. Use for surfaces that need less emphasis against
106
- // the main surface color. In Angular Material, this is used for the background of a bottom sheet.
85
+ // Styles an element with a "low" surface container color background. Use for surfaces that need
86
+ // less emphasis against the main surface color. In Angular Material, this is used for the
87
+ // background of a bottom sheet.
107
88
  .mat-bg-surface-container-low {
108
89
  background-color: var(--mat-sys-surface-container-low);
109
- color: var(--mat-sys-on-surface);
110
90
  }
111
91
 
112
- // Styles an element with the "lowest" surface container color background and applies an
113
- // accessible contrasting color for text and icons. Use for surfaces that need the least
114
- // emphasis against the main surface color.
92
+ // Styles an element with the "lowest" surface container color background. Use for surfaces that
93
+ // need the least emphasis against the main surface color.
115
94
  .mat-bg-surface-container-lowest {
116
95
  background-color: var(--mat-sys-surface-container-lowest);
117
- color: var(--mat-sys-on-surface);
118
96
  }
119
97
 
120
- // Styles an element with an inverse surface color background and applies an accessible
121
- // contrasting color for text and icons. Use for making elements stand out against the
122
- // default color scheme. Good for temporary notifications. In Angular Material, this is used for
123
- // the background of a snackbar and a tooltip.
98
+ // Styles an element with an inverse surface color background. Use for making elements stand out
99
+ // against the default color scheme. Good for temporary notifications. In Angular Material, this
100
+ // is used for the background of a snackbar and a tooltip.
124
101
  .mat-bg-inverse-surface {
125
102
  background-color: var(--mat-sys-inverse-surface);
126
- color: var(--mat-sys-inverse-on-surface);
127
103
  }
128
104
 
129
- // Styles an element with a disabled color background and applies an accessible contrasting
130
- // color for text and icons. Use for disabled components. In Angular Material, this is used
131
- // for components generally filled with the primary color but are currently disabled.
105
+ // Styles an element with a disabled color background. Use for disabled components. In Angular
106
+ // Material, this is used for components generally filled with the primary color but are
107
+ // currently disabled.
132
108
  .mat-bg-disabled {
133
- color: color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent);
134
109
  background-color: color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent);
135
110
  }
136
111
 
@@ -145,8 +120,7 @@
145
120
  color: var(--mat-sys-primary);
146
121
  }
147
122
 
148
- // Styles the text of an element with the secondary color. Use for text that needs less emphasis
149
- // than primary text.
123
+ // Styles the text of an element with the secondary color. Use for text that needs to stand out.
150
124
  .mat-text-secondary {
151
125
  color: var(--mat-sys-secondary);
152
126
  }
@@ -158,11 +132,60 @@
158
132
  }
159
133
 
160
134
  // Styles the text of an element with the disabled color. Use for text in disabled components.
161
- // In Angular Material this is used to show text is disabled, generally on a "surface" background.
162
135
  .mat-text-disabled {
163
136
  color: color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent);
164
137
  }
165
138
 
139
+ // Styles the text of an element with the on-surface-variant color. Use for text that should have
140
+ // a lower emphasis than the surrounding text. This can include subheading, captions, and hint
141
+ // text.
142
+ .mat-text-on-surface-variant {
143
+ color: var(--mat-sys-on-surface-variant);
144
+ }
145
+
146
+ // Styles the text of an element with a color that contrasts well against a primary background.
147
+ .mat-text-on-primary {
148
+ color: var(--mat-sys-on-primary);
149
+ }
150
+
151
+ // Styles the text of an element with a color that contrasts well against a primary-container
152
+ // background.
153
+ .mat-text-on-primary-container {
154
+ color: var(--mat-sys-on-primary-container);
155
+ }
156
+
157
+ // Styles the text of an element with a color that contrasts well against a secondary background.
158
+ .mat-text-on-secondary {
159
+ color: var(--mat-sys-on-secondary);
160
+ }
161
+
162
+ // Styles the text of an element with a color that contrasts well against a secondary-container
163
+ // background.
164
+ .mat-text-on-secondary-container {
165
+ color: var(--mat-sys-on-secondary-container);
166
+ }
167
+
168
+ // Styles the text of an element with a color that contrasts well against an error background.
169
+ .mat-text-on-error {
170
+ color: var(--mat-sys-on-error);
171
+ }
172
+
173
+ // Styles the text of an element with a color that contrasts well against an error-container
174
+ // background.
175
+ .mat-text-on-error-container {
176
+ color: var(--mat-sys-on-error-container);
177
+ }
178
+
179
+ // Styles the text of an element with a color that contrasts well against a surface background.
180
+ .mat-text-on-surface {
181
+ color: var(--mat-sys-on-surface);
182
+ }
183
+
184
+ // Styles the text of an element with a color that contrasts well against an inverse-surface
185
+ // background.
186
+ .mat-text-inverse-on-surface {
187
+ color: var(--mat-sys-inverse-on-surface);
188
+ }
166
189
 
167
190
  // ***********************************************************************************************
168
191
  // Font - Apply typography styles
@@ -232,6 +255,26 @@
232
255
  letter-spacing: var(--mat-sys-headline-large-tracking);
233
256
  }
234
257
 
258
+ // Sets the font to the label small typeface. Use for small labels, such as text in a badge.
259
+ .mat-font-label-sm {
260
+ font: var(--mat-sys-label-small);
261
+ letter-spacing: var(--mat-sys-label-small-tracking);
262
+ }
263
+
264
+ // Sets the font to the label medium typeface. Use for medium labels. In Angular Material, this
265
+ // is used for the slider label.
266
+ .mat-font-label-md {
267
+ font: var(--mat-sys-label-medium);
268
+ letter-spacing: var(--mat-sys-label-medium-tracking);
269
+ }
270
+
271
+ // Sets the font to the label large typeface. Use for large labels. In Angular Material, this is
272
+ // used for buttons, chips, and menu labels.
273
+ .mat-font-label-lg {
274
+ font: var(--mat-sys-label-large);
275
+ letter-spacing: var(--mat-sys-label-large-tracking);
276
+ }
277
+
235
278
  // Sets the font to the title small typeface. Use for small titles, such as a card title. In
236
279
  // Angular Material, this is used for the header of a table and the label of an option group.
237
280
  .mat-font-title-sm {
@@ -317,68 +360,6 @@
317
360
  border: 1px solid var(--mat-sys-outline-variant);
318
361
  }
319
362
 
320
-
321
- // ***********************************************************************************************
322
- // Interactive - Adds interaction colors for hover, active, and focus
323
- // ***********************************************************************************************
324
-
325
- // Adds hover, focus, and active states to an element by applying varying shades of the surface
326
- // color. Use for interactive components that are not based on a primary color.
327
- .mat-interactive {
328
- &:hover {
329
- background: color-mix(
330
- in srgb,
331
- var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%),
332
- transparent
333
- );
334
- }
335
-
336
- &:focus {
337
- background: color-mix(
338
- in srgb,
339
- var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%),
340
- transparent
341
- );
342
- }
343
-
344
- &:active {
345
- background: color-mix(
346
- in srgb,
347
- var(--mat-sys-on-surface) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%),
348
- transparent
349
- );
350
- }
351
- }
352
-
353
- // Adds hover, focus, and active states to an element by applying varying shades of the primary
354
- // color. Use for interactive components that are not based on a primary color.
355
- .mat-interactive-primary {
356
- &:hover {
357
- background: color-mix(
358
- in srgb,
359
- var(--mat-sys-primary) calc(var(--mat-sys-hover-state-layer-opacity) * 100%),
360
- transparent
361
- );
362
- }
363
-
364
- &:focus {
365
- background: color-mix(
366
- in srgb,
367
- var(--mat-sys-primary) calc(var(--mat-sys-focus-state-layer-opacity) * 100%),
368
- transparent
369
- );
370
- }
371
-
372
- &:active {
373
- background: color-mix(
374
- in srgb,
375
- var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%),
376
- transparent
377
- );
378
- }
379
- }
380
-
381
-
382
363
  // ***********************************************************************************************
383
364
  // Shadow - Applies elevation levels through box-shadow
384
365
  // See https://m3.material.io/styles/elevation/applying-elevation for guidance.
@@ -1 +1 @@
1
- {"version":3,"file":"animation.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/core/animation/animation.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MediaMatcher} from '@angular/cdk/layout';\nimport {ANIMATION_MODULE_TYPE, inject, InjectionToken} from '@angular/core';\n\n/** Object used to configure the animation in Angular Material. */\nexport interface AnimationsConfig {\n /** Whether all animations should be disabled. */\n animationsDisabled?: boolean;\n}\n\n/** Injection token used to configure the animations in Angular Material. */\nexport const MATERIAL_ANIMATIONS = new InjectionToken<AnimationsConfig>('MATERIAL_ANIMATIONS');\n\n/**\n * @deprecated No longer used, will be removed.\n * @breaking-change 21.0.0\n * @docs-private\n */\nexport class AnimationCurves {\n static STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\n static DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\n static ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\n static SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\n}\n\n/**\n * @deprecated No longer used, will be removed.\n * @breaking-change 21.0.0\n * @docs-private\n */\nexport class AnimationDurations {\n static COMPLEX = '375ms';\n static ENTERING = '225ms';\n static EXITING = '195ms';\n}\n\nlet reducedMotion: boolean | null = null;\n\n/**\n * Gets the the configured animations state.\n * @docs-private\n */\nexport function _getAnimationsState(): 'enabled' | 'di-disabled' | 'reduced-motion' {\n if (\n inject(MATERIAL_ANIMATIONS, {optional: true})?.animationsDisabled ||\n inject(ANIMATION_MODULE_TYPE, {optional: true}) === 'NoopAnimations'\n ) {\n return 'di-disabled';\n }\n\n reducedMotion ??= inject(MediaMatcher).matchMedia('(prefers-reduced-motion)').matches;\n return reducedMotion ? 'reduced-motion' : 'enabled';\n}\n\n/**\n * Returns whether animations have been disabled by DI. Must be called in a DI context.\n * @docs-private\n */\nexport function _animationsDisabled(): boolean {\n return _getAnimationsState() !== 'enabled';\n}\n"],"names":[],"mappings":";;;AAiBA;MACa,mBAAmB,GAAG,IAAI,cAAc,CAAmB,qBAAqB;AAE7F;;;;AAIG;MACU,eAAe,CAAA;AAC1B,IAAA,OAAO,cAAc,GAAG,6BAA6B;AACrD,IAAA,OAAO,kBAAkB,GAAG,6BAA6B;AACzD,IAAA,OAAO,kBAAkB,GAAG,2BAA2B;AACvD,IAAA,OAAO,WAAW,GAAG,6BAA6B;;AAGpD;;;;AAIG;MACU,kBAAkB,CAAA;AAC7B,IAAA,OAAO,OAAO,GAAG,OAAO;AACxB,IAAA,OAAO,QAAQ,GAAG,OAAO;AACzB,IAAA,OAAO,OAAO,GAAG,OAAO;;AAG1B,IAAI,aAAa,GAAmB,IAAI;AAExC;;;AAGG;SACa,mBAAmB,GAAA;IACjC,IACE,MAAM,CAAC,mBAAmB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,kBAAkB;AACjE,QAAA,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,KAAK,gBAAgB,EACpE;AACA,QAAA,OAAO,aAAa;;AAGtB,IAAA,aAAa,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,OAAO;IACrF,OAAO,aAAa,GAAG,gBAAgB,GAAG,SAAS;AACrD;AAEA;;;AAGG;SACa,mBAAmB,GAAA;AACjC,IAAA,OAAO,mBAAmB,EAAE,KAAK,SAAS;AAC5C;;;;"}
1
+ {"version":3,"file":"animation.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/core/animation/animation.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MediaMatcher} from '@angular/cdk/layout';\nimport {ANIMATION_MODULE_TYPE, inject, InjectionToken} from '@angular/core';\n\n/** Object used to configure the animation in Angular Material. */\nexport interface AnimationsConfig {\n /** Whether all animations should be disabled. */\n animationsDisabled?: boolean;\n}\n\n/** Injection token used to configure the animations in Angular Material. */\nexport const MATERIAL_ANIMATIONS = new InjectionToken<AnimationsConfig>('MATERIAL_ANIMATIONS');\n\n/**\n * @deprecated No longer used, will be removed.\n * @breaking-change 21.0.0\n * @docs-private\n */\nexport class AnimationCurves {\n static STANDARD_CURVE = 'cubic-bezier(0.4,0.0,0.2,1)';\n static DECELERATION_CURVE = 'cubic-bezier(0.0,0.0,0.2,1)';\n static ACCELERATION_CURVE = 'cubic-bezier(0.4,0.0,1,1)';\n static SHARP_CURVE = 'cubic-bezier(0.4,0.0,0.6,1)';\n}\n\n/**\n * @deprecated No longer used, will be removed.\n * @breaking-change 21.0.0\n * @docs-private\n */\nexport class AnimationDurations {\n static COMPLEX = '375ms';\n static ENTERING = '225ms';\n static EXITING = '195ms';\n}\n\nlet reducedMotion: boolean | null = null;\n\n/**\n * Gets the the configured animations state.\n * @docs-private\n */\nexport function _getAnimationsState(): 'enabled' | 'di-disabled' | 'reduced-motion' {\n if (\n inject(MATERIAL_ANIMATIONS, {optional: true})?.animationsDisabled ||\n inject(ANIMATION_MODULE_TYPE, {optional: true}) === 'NoopAnimations'\n ) {\n return 'di-disabled';\n }\n\n reducedMotion ??= inject(MediaMatcher).matchMedia('(prefers-reduced-motion)').matches;\n return reducedMotion ? 'reduced-motion' : 'enabled';\n}\n\n/**\n * Returns whether animations have been disabled by DI. Must be called in a DI context.\n * @docs-private\n */\nexport function _animationsDisabled(): boolean {\n return _getAnimationsState() !== 'enabled';\n}\n"],"names":[],"mappings":";;;AAiBA;MACa,mBAAmB,GAAG,IAAI,cAAc,CAAmB,qBAAqB;AAE7F;;;;AAIG;MACU,eAAe,CAAA;AAC1B,IAAA,OAAO,cAAc,GAAG,6BAA6B;AACrD,IAAA,OAAO,kBAAkB,GAAG,6BAA6B;AACzD,IAAA,OAAO,kBAAkB,GAAG,2BAA2B;AACvD,IAAA,OAAO,WAAW,GAAG,6BAA6B;;AAGpD;;;;AAIG;MACU,kBAAkB,CAAA;AAC7B,IAAA,OAAO,OAAO,GAAG,OAAO;AACxB,IAAA,OAAO,QAAQ,GAAG,OAAO;AACzB,IAAA,OAAO,OAAO,GAAG,OAAO;;AAG1B,IAAI,aAAa,GAAmB,IAAI;AAExC;;;AAGG;SACa,mBAAmB,GAAA;IACjC,IACE,MAAM,CAAC,mBAAmB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,kBAAkB;AACjE,QAAA,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,KAAK,gBAAgB,EACpE;AACA,QAAA,OAAO,aAAa;;AAGtB,IAAA,aAAa,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,OAAO;IACrF,OAAO,aAAa,GAAG,gBAAgB,GAAG,SAAS;AACrD;AAEA;;;AAGG;SACa,mBAAmB,GAAA;AACjC,IAAA,OAAO,mBAAmB,EAAE,KAAK,SAAS;AAC5C;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/autocomplete/testing/autocomplete-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {\n MatOptgroupHarness,\n MatOptionHarness,\n OptgroupHarnessFilters,\n OptionHarnessFilters,\n} from '../../core/testing';\nimport {AutocompleteHarnessFilters} from './autocomplete-harness-filters';\n\nexport class MatAutocompleteHarness extends ComponentHarness {\n private _documentRootLocator = this.documentRootLocatorFactory();\n\n /** The selector for the host element of a `MatAutocomplete` instance. */\n static hostSelector = '.mat-mdc-autocomplete-trigger';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an autocomplete with specific\n * attributes.\n * @param options Options for filtering which autocomplete instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatAutocompleteHarness>(\n this: ComponentHarnessConstructor<T>,\n options: AutocompleteHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('value', options.value, (harness, value) =>\n HarnessPredicate.stringMatches(harness.getValue(), value),\n )\n .addOption('disabled', options.disabled, async (harness, disabled) => {\n return (await harness.isDisabled()) === disabled;\n });\n }\n\n /** Gets the value of the autocomplete input. */\n async getValue(): Promise<string> {\n return (await this.host()).getProperty<string>('value');\n }\n\n /** Whether the autocomplete input is disabled. */\n async isDisabled(): Promise<boolean> {\n const disabled = (await this.host()).getAttribute('disabled');\n return coerceBooleanProperty(await disabled);\n }\n\n /** Focuses the autocomplete input. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the autocomplete input. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the autocomplete input is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Enters text into the autocomplete. */\n async enterText(value: string): Promise<void> {\n return (await this.host()).sendKeys(value);\n }\n\n /** Clears the input value. */\n async clear(): Promise<void> {\n return (await this.host()).clear();\n }\n\n /** Gets the options inside the autocomplete panel. */\n async getOptions(filters?: Omit<OptionHarnessFilters, 'ancestor'>): Promise<MatOptionHarness[]> {\n if (!(await this.isOpen())) {\n throw new Error('Unable to retrieve options for autocomplete. Autocomplete panel is closed.');\n }\n\n return this._documentRootLocator.locatorForAll(\n MatOptionHarness.with({\n ...(filters || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionHarnessFilters),\n )();\n }\n\n /** Gets the option groups inside the autocomplete panel. */\n async getOptionGroups(\n filters?: Omit<OptgroupHarnessFilters, 'ancestor'>,\n ): Promise<MatOptgroupHarness[]> {\n if (!(await this.isOpen())) {\n throw new Error(\n 'Unable to retrieve option groups for autocomplete. Autocomplete panel is closed.',\n );\n }\n\n return this._documentRootLocator.locatorForAll(\n MatOptgroupHarness.with({\n ...(filters || {}),\n ancestor: await this._getPanelSelector(),\n } as OptgroupHarnessFilters),\n )();\n }\n\n /** Selects the first option matching the given filters. */\n async selectOption(filters: OptionHarnessFilters): Promise<void> {\n await this.focus(); // Focus the input to make sure the autocomplete panel is shown.\n const options = await this.getOptions(filters);\n if (!options.length) {\n throw Error(`Could not find a mat-option matching ${JSON.stringify(filters)}`);\n }\n await options[0].click();\n }\n\n /** Whether the autocomplete is open. */\n async isOpen(): Promise<boolean> {\n const panel = await this._getPanel();\n return !!panel && (await panel.hasClass(`mat-mdc-autocomplete-visible`));\n }\n\n /** Gets the panel associated with this autocomplete trigger. */\n private async _getPanel(): Promise<TestElement | null> {\n // Technically this is static, but it needs to be in a\n // function, because the autocomplete's panel ID can changed.\n return this._documentRootLocator.locatorForOptional(await this._getPanelSelector())();\n }\n\n /** Gets the selector that can be used to find the autocomplete trigger's panel. */\n protected async _getPanelSelector(): Promise<string> {\n return `#${await (await this.host()).getAttribute('aria-controls')}`;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/autocomplete/testing/autocomplete-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {\n MatOptgroupHarness,\n MatOptionHarness,\n OptgroupHarnessFilters,\n OptionHarnessFilters,\n} from '../../core/testing';\nimport {AutocompleteHarnessFilters} from './autocomplete-harness-filters';\n\nexport class MatAutocompleteHarness extends ComponentHarness {\n private _documentRootLocator = this.documentRootLocatorFactory();\n\n /** The selector for the host element of a `MatAutocomplete` instance. */\n static hostSelector = '.mat-mdc-autocomplete-trigger';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an autocomplete with specific\n * attributes.\n * @param options Options for filtering which autocomplete instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatAutocompleteHarness>(\n this: ComponentHarnessConstructor<T>,\n options: AutocompleteHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('value', options.value, (harness, value) =>\n HarnessPredicate.stringMatches(harness.getValue(), value),\n )\n .addOption('disabled', options.disabled, async (harness, disabled) => {\n return (await harness.isDisabled()) === disabled;\n });\n }\n\n /** Gets the value of the autocomplete input. */\n async getValue(): Promise<string> {\n return (await this.host()).getProperty<string>('value');\n }\n\n /** Whether the autocomplete input is disabled. */\n async isDisabled(): Promise<boolean> {\n const disabled = (await this.host()).getAttribute('disabled');\n return coerceBooleanProperty(await disabled);\n }\n\n /** Focuses the autocomplete input. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the autocomplete input. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the autocomplete input is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Enters text into the autocomplete. */\n async enterText(value: string): Promise<void> {\n return (await this.host()).sendKeys(value);\n }\n\n /** Clears the input value. */\n async clear(): Promise<void> {\n return (await this.host()).clear();\n }\n\n /** Gets the options inside the autocomplete panel. */\n async getOptions(filters?: Omit<OptionHarnessFilters, 'ancestor'>): Promise<MatOptionHarness[]> {\n if (!(await this.isOpen())) {\n throw new Error('Unable to retrieve options for autocomplete. Autocomplete panel is closed.');\n }\n\n return this._documentRootLocator.locatorForAll(\n MatOptionHarness.with({\n ...(filters || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionHarnessFilters),\n )();\n }\n\n /** Gets the option groups inside the autocomplete panel. */\n async getOptionGroups(\n filters?: Omit<OptgroupHarnessFilters, 'ancestor'>,\n ): Promise<MatOptgroupHarness[]> {\n if (!(await this.isOpen())) {\n throw new Error(\n 'Unable to retrieve option groups for autocomplete. Autocomplete panel is closed.',\n );\n }\n\n return this._documentRootLocator.locatorForAll(\n MatOptgroupHarness.with({\n ...(filters || {}),\n ancestor: await this._getPanelSelector(),\n } as OptgroupHarnessFilters),\n )();\n }\n\n /** Selects the first option matching the given filters. */\n async selectOption(filters: OptionHarnessFilters): Promise<void> {\n await this.focus(); // Focus the input to make sure the autocomplete panel is shown.\n const options = await this.getOptions(filters);\n if (!options.length) {\n throw Error(`Could not find a mat-option matching ${JSON.stringify(filters)}`);\n }\n await options[0].click();\n }\n\n /** Whether the autocomplete is open. */\n async isOpen(): Promise<boolean> {\n const panel = await this._getPanel();\n return !!panel && (await panel.hasClass(`mat-mdc-autocomplete-visible`));\n }\n\n /** Gets the panel associated with this autocomplete trigger. */\n private async _getPanel(): Promise<TestElement | null> {\n // Technically this is static, but it needs to be in a\n // function, because the autocomplete's panel ID can changed.\n return this._documentRootLocator.locatorForOptional(await this._getPanelSelector())();\n }\n\n /** Gets the selector that can be used to find the autocomplete trigger's panel. */\n protected async _getPanelSelector(): Promise<string> {\n return `#${await (await this.host()).getAttribute('aria-controls')}`;\n }\n}\n"],"names":[],"mappings":"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"}